Convert to SoldierID

This commit is contained in:
Asdow
2024-11-17 23:45:48 +02:00
parent d149b6ffea
commit b74ccf3ddc
45 changed files with 376 additions and 375 deletions
+61 -61
View File
@@ -293,7 +293,7 @@ BOOLEAN gfResetUIMovementOptimization = FALSE;
BOOLEAN gfResetUIItemCursorOptimization = FALSE;
BOOLEAN gfBeginVehicleCursor = FALSE;
INT32 gsOutOfRangeGridNo = NOWHERE;
UINT16 gubOutOfRangeMerc = NOBODY;
SoldierID gubOutOfRangeMerc = NOBODY;
BOOLEAN gfOKForExchangeCursor = FALSE;
UINT32 guiUIInterfaceSwapCursorsTime = 0;
INT32 gsJumpOverGridNo = 0;
@@ -463,29 +463,29 @@ BOOLEAN gfUICanBeginAllMoveCycle = FALSE; // GEts set so we know that the ne
INT32 gsSelectedGridNo = 0;
INT16 gsSelectedLevel = I_GROUND_LEVEL;
INT16 gsSelectedGuy = NOBODY;
SoldierID gsSelectedGuy = NOBODY;
BOOLEAN gfUIDisplayDamage = FALSE;
INT8 gbDamage = 0;
INT32 gsDamageGridNo = 0;
BOOLEAN gfUIDisplayDamage = FALSE;
INT8 gbDamage = 0;
INT32 gsDamageGridNo = 0;
BOOLEAN gfUIRefreshArrows = FALSE;
BOOLEAN gfUIRefreshArrows = FALSE;
// Thse flags are not re-set after each frame
BOOLEAN gfPlotNewMovement = FALSE;
BOOLEAN gfPlotNewMovementNOCOST = FALSE;
UINT32 guiShowUPDownArrows = ARROWS_HIDE_UP | ARROWS_HIDE_DOWN;
INT8 gbAdjustStanceDiff = 0;
INT8 gbClimbID = 0;
BOOLEAN gfPlotNewMovement = FALSE;
BOOLEAN gfPlotNewMovementNOCOST = FALSE;
UINT32 guiShowUPDownArrows = ARROWS_HIDE_UP | ARROWS_HIDE_DOWN;
INT8 gbAdjustStanceDiff = 0;
INT8 gbClimbID = 0;
BOOLEAN gfUIShowExitEast = FALSE;
BOOLEAN gfUIShowExitWest = FALSE;
BOOLEAN gfUIShowExitNorth = FALSE;
BOOLEAN gfUIShowExitSouth = FALSE;
BOOLEAN gfUIShowExitExitGrid = FALSE;
BOOLEAN gfUIShowExitEast = FALSE;
BOOLEAN gfUIShowExitWest = FALSE;
BOOLEAN gfUIShowExitNorth = FALSE;
BOOLEAN gfUIShowExitSouth = FALSE;
BOOLEAN gfUIShowExitExitGrid = FALSE;
BOOLEAN gfUINewStateForIntTile = FALSE;
BOOLEAN gfUINewStateForIntTile = FALSE;
BOOLEAN gfUIForceReExamineCursorData = FALSE;
@@ -2210,7 +2210,7 @@ UINT32 UIHandleCMoveMerc( UI_EVENT *pUIEvent )
// anv: if we selected vehicle driver, move his vehicle
if ( pSoldier->flags.uiStatusFlags & (SOLDIER_DRIVER ) )
{
pSoldier = GetSoldierStructureForVehicle( MercPtrs[ pSoldier->ubID ]->iVehicleId );
pSoldier = GetSoldierStructureForVehicle( pSoldier->iVehicleId );
// anv: if shift is pressed, treat is as ram + move - flag has to be set for later add structure checks
if ( _KeyDown( SHIFT ) )
{
@@ -2981,7 +2981,7 @@ UINT32 UIHandleCAMercShoot( UI_EVENT *pUIEvent )
if ( gfUIFullTargetFound )
{
// Get target soldier, if one exists
pTSoldier = MercPtrs[ gusUIFullTargetID ];
pTSoldier = gusUIFullTargetID;
}
if ( pTSoldier != NULL )
@@ -3464,7 +3464,7 @@ BOOLEAN SelectedMercCanAffordMove( )
return( FALSE );
}
void GetMercClimbDirection( UINT16 ubSoldierID, BOOLEAN *pfGoDown, BOOLEAN *pfGoUp )
void GetMercClimbDirection( SoldierID ubSoldierID, BOOLEAN *pfGoDown, BOOLEAN *pfGoUp )
{
INT8 bNewDirection;
SOLDIERTYPE *pSoldier;
@@ -3625,11 +3625,11 @@ void ToggleLookCursorMode( UINT32 *puiNewEvent )
BOOLEAN UIHandleOnMerc( BOOLEAN fMovementMode )
{
SOLDIERTYPE *pSoldier;
UINT16 usSoldierIndex;
UINT32 uiMercFlags;
INT32 usMapPos;
BOOLEAN fFoundMerc = FALSE;
SOLDIERTYPE *pSoldier;
SoldierID usSoldierIndex;
UINT32 uiMercFlags;
INT32 usMapPos;
BOOLEAN fFoundMerc = FALSE;
if( !GetMouseMapPos( &usMapPos) )
{
@@ -3768,16 +3768,16 @@ BOOLEAN UIHandleOnMerc( BOOLEAN fMovementMode )
ErasePath( TRUE );
// Show cursor with highlight on selected merc
guiNewUICursor = NO_UICURSOR;
guiNewUICursor = NO_UICURSOR;
// Show cursor with highlight
gfUIHandleSelection = ENEMY_GUY_SELECTION;
gsSelectedGridNo = pSoldier->sGridNo;
gsSelectedLevel = pSoldier->pathing.bLevel;
gfUIHandleSelection = ENEMY_GUY_SELECTION;
gsSelectedGridNo = pSoldier->sGridNo;
gsSelectedLevel = pSoldier->pathing.bLevel;
}
}
gfUIHandleSelectionAboveGuy = TRUE;
gsSelectedGuy = usSoldierIndex;
gfUIHandleSelectionAboveGuy = TRUE;
gsSelectedGuy = usSoldierIndex;
}
}
else
@@ -3838,9 +3838,9 @@ UINT32 UIHandleIETOnTerrain( UI_EVENT *pUIEvent )
}
void UIHandleSoldierStanceChange( UINT16 ubSoldierID, INT8 bNewStance )
void UIHandleSoldierStanceChange( SoldierID ubSoldierID, INT8 bNewStance )
{
SOLDIERTYPE *pSoldier = MercPtrs[ ubSoldierID ];
SOLDIERTYPE *pSoldier = ubSoldierID;
if( pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) )
{
@@ -4058,7 +4058,7 @@ void GetCursorMovementFlags( UINT32 *puiCursorFlags )
BOOLEAN HandleUIMovementCursor( SOLDIERTYPE *pSoldier, UINT32 uiCursorFlags, INT32 usMapPos, UINT32 uiFlags )
{
BOOLEAN fSetCursor = FALSE;
static UINT16 usTargetID = NOBODY;
static SoldierID usTargetID = NOBODY;
static BOOLEAN fTargetFound = FALSE;
BOOLEAN fTargetFoundAndLookingForOne = FALSE;
@@ -4588,7 +4588,7 @@ INT8 DrawUIMovementPath( SOLDIERTYPE *pSoldier, INT32 usMapPos, UINT32 uiFlags )
// Check if we are on a target
if ( gfUIFullTargetFound )
{
sActionGridNo = FindAdjacentGridEx( pSoldier, MercPtrs[ gusUIFullTargetID ]->sGridNo, &ubDirection, &sAdjustedGridNo, TRUE, FALSE );
sActionGridNo = FindAdjacentGridEx( pSoldier, gusUIFullTargetID->sGridNo, &ubDirection, &sAdjustedGridNo, TRUE, FALSE );
if ( sActionGridNo == -1 )
{
sActionGridNo = sAdjustedGridNo;
@@ -4596,7 +4596,7 @@ INT8 DrawUIMovementPath( SOLDIERTYPE *pSoldier, INT32 usMapPos, UINT32 uiFlags )
/////////////////////////////////////////////////////////////////////////////////////////
// CHANGED BY SANDRO - REDUCE AP COST TO STEAL FOR MARTIAL ARTS AND HAND TO HAND NEW TRAITS
if (MercPtrs[ gusUIFullTargetID ]->bCollapsed && gGameExternalOptions.fEnhancedCloseCombatSystem)
if (gusUIFullTargetID->bCollapsed && gGameExternalOptions.fEnhancedCloseCombatSystem)
{
sAPCost += (GetBasicAPsToPickupItem( pSoldier )); // stealing from collapsed soldiers is treated differently
}
@@ -4641,7 +4641,7 @@ INT8 DrawUIMovementPath( SOLDIERTYPE *pSoldier, INT32 usMapPos, UINT32 uiFlags )
{
if ( gfUIFullTargetFound )
{
sActionGridNo = FindAdjacentGridEx( pSoldier, MercPtrs[ gusUIFullTargetID ]->sGridNo, &ubDirection, &sAdjustedGridNo, TRUE, FALSE );
sActionGridNo = FindAdjacentGridEx( pSoldier, gusUIFullTargetID->sGridNo, &ubDirection, &sAdjustedGridNo, TRUE, FALSE );
if (!TileIsOutOfBounds(sActionGridNo))
{
@@ -4813,7 +4813,7 @@ BOOLEAN UIMouseOnValidAttackLocation( SOLDIERTYPE *pSoldier )
{
if ( gfUIFullTargetFound )
{
usMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo;
usMapPos = gusUIFullTargetID->sGridNo;
}
if ( IsRepairableStructAtGridNo( usMapPos, NULL ) && pSoldier->pathing.bLevel == 0 )
@@ -4830,7 +4830,7 @@ BOOLEAN UIMouseOnValidAttackLocation( SOLDIERTYPE *pSoldier )
{
if ( gfUIFullTargetFound )
{
usMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo;
usMapPos = gusUIFullTargetID->sGridNo;
}
if ( IsRefuelableStructAtGridNo( usMapPos, NULL ) && pSoldier->pathing.bLevel == 0 )
@@ -4847,7 +4847,7 @@ BOOLEAN UIMouseOnValidAttackLocation( SOLDIERTYPE *pSoldier )
{
if ( gfUIFullTargetFound )
{
usMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo;
usMapPos = gusUIFullTargetID->sGridNo;
}
if ( pSoldier->pathing.bLevel == 0 )
@@ -4874,7 +4874,7 @@ BOOLEAN UIMouseOnValidAttackLocation( SOLDIERTYPE *pSoldier )
{
if ( gfUIFullTargetFound )
{
usMapPos = MercPtrs[gusUIFullTargetID]->sGridNo;
usMapPos = gusUIFullTargetID->sGridNo;
}
UINT16 structindex;
@@ -4893,7 +4893,7 @@ BOOLEAN UIMouseOnValidAttackLocation( SOLDIERTYPE *pSoldier )
{
if ( gfUIFullTargetFound )
{
usMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo;
usMapPos = gusUIFullTargetID->sGridNo;
return( TRUE );
}
@@ -4916,7 +4916,7 @@ BOOLEAN UIMouseOnValidAttackLocation( SOLDIERTYPE *pSoldier )
{
if ( gfUIFullTargetFound )
{
if ( pSoldier->ubID != gusUIFullTargetID && MercPtrs[gusUIFullTargetID]->IsValidBloodDonor() )
if ( pSoldier->ubID != gusUIFullTargetID && gusUIFullTargetID->IsValidBloodDonor() )
return( TRUE );
}
}
@@ -4930,7 +4930,7 @@ BOOLEAN UIMouseOnValidAttackLocation( SOLDIERTYPE *pSoldier )
{
if ( gfUIFullTargetFound )
{
if ( pSoldier->ubID != gusUIFullTargetID && MercPtrs[gusUIFullTargetID]->CanReceiveSplint() )
if ( pSoldier->ubID != gusUIFullTargetID && gusUIFullTargetID->CanReceiveSplint() )
return( TRUE );
}
}
@@ -4944,7 +4944,7 @@ BOOLEAN UIMouseOnValidAttackLocation( SOLDIERTYPE *pSoldier )
{
if ( gfUIFullTargetFound )
{
usMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo;
usMapPos = gusUIFullTargetID->sGridNo;
return( TRUE );
}
@@ -4998,7 +4998,7 @@ BOOLEAN UIMouseOnValidAttackLocation( SOLDIERTYPE *pSoldier )
}
// IF a guy's here, chack if they need medical help!
pTSoldier = MercPtrs[ gusUIFullTargetID ];
pTSoldier = gusUIFullTargetID;
// If we are a vehicle...
if ( ( pTSoldier->flags.uiStatusFlags & ( SOLDIER_VEHICLE | SOLDIER_ROBOT ) ) )
@@ -5578,12 +5578,12 @@ UINT32 UIHandleLCLook( UI_EVENT *pUIEvent )
UINT32 UIHandleTOnTerrain( UI_EVENT *pUIEvent )
{
SOLDIERTYPE *pSoldier;
UINT16 ubTargID;
UINT32 uiRange;
INT32 usMapPos;
BOOLEAN fValidTalkableGuy = FALSE;
INT32 sTargetGridNo;
SOLDIERTYPE *pSoldier;
SoldierID ubTargID;
UINT32 uiRange;
INT32 usMapPos;
BOOLEAN fValidTalkableGuy = FALSE;
INT32 sTargetGridNo;
// Get soldier
if ( !GetSoldier( &pSoldier, gusSelectedSoldier ) )
@@ -5616,7 +5616,7 @@ UINT32 UIHandleTOnTerrain( UI_EVENT *pUIEvent )
// Get distance away
if ( fValidTalkableGuy )
{
sTargetGridNo = MercPtrs[ ubTargID ]->sGridNo;
sTargetGridNo = ubTargID->sGridNo;
}
uiRange = PythSpacesAway( pSoldier->sGridNo, sTargetGridNo );
@@ -6365,7 +6365,7 @@ UINT32 UIHandleLAEndLockOurTurn( UI_EVENT *pUIEvent )
BOOLEAN IsValidTalkableNPCFromMouse( UINT16 * pubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed )
BOOLEAN IsValidTalkableNPCFromMouse( SoldierID *pubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed )
{
// Check if there is a guy here to talk to!
if ( gfUIFullTargetFound )
@@ -6790,7 +6790,7 @@ INT8 UIHandleInteractiveTilesAndItemsOnTerrain( SOLDIERTYPE *pSoldier, INT32 usM
// unless we are over our own vehicle, then we can call vehicle menu
if( gfUIFullTargetFound )
{
pTSoldier = MercPtrs[ gusUIFullTargetID ];
pTSoldier = gusUIFullTargetID;
if( pSoldier->iVehicleId == pTSoldier->bVehicleID )
{
guiNewUICursor = ENTER_VEHICLE_UICURSOR;
@@ -6803,7 +6803,7 @@ INT8 UIHandleInteractiveTilesAndItemsOnTerrain( SOLDIERTYPE *pSoldier, INT32 usM
if ( gfUIFullTargetFound )
{
pTSoldier = MercPtrs[ gusUIFullTargetID ];
pTSoldier = gusUIFullTargetID;
// anv: added condition - make sure we won't put vehicle in another vehicle
if ( OK_ENTERABLE_VEHICLE( pTSoldier ) && pTSoldier->bVisible != -1 && !( pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER | SOLDIER_VEHICLE ) ) )
@@ -7198,7 +7198,7 @@ BOOLEAN ValidQuickExchangePosition( )
// Check if we over a civ
if ( gfUIFullTargetFound )
{
pOverSoldier = MercPtrs[ gusUIFullTargetID ];
pOverSoldier = gusUIFullTargetID;
//KM: Replaced this older if statement for the new one which allows exchanging with militia
//if ( ( pOverSoldier->bSide != gbPlayerNum ) && pOverSoldier->aiData.bNeutral )
@@ -7265,7 +7265,7 @@ BOOLEAN IsValidJumpLocation( SOLDIERTYPE *pSoldier, INT32 sGridNo, BOOLEAN fChec
INT32 sFourGrids[4], sDistance=0, sSpot, sInBetween, sInBetween2, iDoorGridNo;
static const UINT8 sDirs[4] = { NORTH, EAST, SOUTH, WEST };
//INT32 cnt;
UINT16 ubGuyThere;
SoldierID ubGuyThere;
UINT8 ubMovementCost, ubDirection;
INT8 bTileHeight = 0;
@@ -7370,7 +7370,7 @@ BOOLEAN IsValidJumpLocation( SOLDIERTYPE *pSoldier, INT32 sGridNo, BOOLEAN fChec
ubGuyThere = WhoIsThere2( sInBetween, pSoldier->pathing.bLevel );
if ( ubGuyThere != NOBODY && ubGuyThere != pSoldier->ubID )
{
if ( gAnimControl[ MercPtrs[ ubGuyThere ]->usAnimState ].ubHeight != ANIM_PRONE )
if ( gAnimControl[ ubGuyThere->usAnimState ].ubHeight != ANIM_PRONE )
{
return( FALSE );
}
@@ -7444,12 +7444,12 @@ BOOLEAN IsValidJumpLocation( SOLDIERTYPE *pSoldier, INT32 sGridNo, BOOLEAN fChec
// If there's a guy on any of the two middle tiles, and he's not prone, we can't jump over him
ubGuyThere = WhoIsThere2( sInBetween, pSoldier->pathing.bLevel );
if ( ubGuyThere != NOBODY && ubGuyThere != pSoldier->ubID && gAnimControl[ MercPtrs[ ubGuyThere ]->usAnimState ].ubHeight != ANIM_PRONE )
if ( ubGuyThere != NOBODY && ubGuyThere != pSoldier->ubID && gAnimControl[ ubGuyThere->usAnimState ].ubHeight != ANIM_PRONE )
{
return( FALSE );
}
ubGuyThere = WhoIsThere2( sInBetween2, pSoldier->pathing.bLevel );
if ( ubGuyThere != NOBODY && ubGuyThere != pSoldier->ubID && gAnimControl[ MercPtrs[ ubGuyThere ]->usAnimState ].ubHeight != ANIM_PRONE )
if ( ubGuyThere != NOBODY && ubGuyThere != pSoldier->ubID && gAnimControl[ ubGuyThere->usAnimState ].ubHeight != ANIM_PRONE )
{
return( FALSE );
}
+4 -4
View File
@@ -198,7 +198,7 @@ extern UINT32 guiShowUPDownArrows;
extern BOOLEAN gfUIHandleSelection;
extern BOOLEAN gfUIHandleSelectionAboveGuy;
extern INT32 gsSelectedGridNo;
extern INT16 gsSelectedGuy;
extern SoldierID gsSelectedGuy;
extern BOOLEAN gfUIInDeadlock;
extern UINT16 gUIDeadlockedSoldier;
@@ -320,13 +320,13 @@ void AdjustSoldierCreationStartValues( );
BOOLEAN SelectedMercCanAffordAttack( );
BOOLEAN SelectedMercCanAffordMove( );
void GetMercClimbDirection( UINT16 ubSoldierID, BOOLEAN *pfGoDown, BOOLEAN *pfGoUp );
void GetMercClimbDirection( SoldierID ubSoldierID, BOOLEAN *pfGoDown, BOOLEAN *pfGoUp );
void ToggleHandCursorMode( UINT32 *puiNewEvent );
void ToggleTalkCursorMode( UINT32 *puiNewEvent );
void ToggleLookCursorMode( UINT32 *puiNewEvent );
void UIHandleSoldierStanceChange( UINT16 ubSoldierID, INT8 bNewStance );
void UIHandleSoldierStanceChange( SoldierID ubSoldierID, INT8 bNewStance );
void GetCursorMovementFlags( UINT32 *puiCursorFlags );
BOOLEAN HandleUIMovementCursor( SOLDIERTYPE *pSoldier, UINT32 uiCursorFlags, INT32 usMapPos, UINT32 uiFlags );
@@ -334,7 +334,7 @@ BOOLEAN UIMouseOnValidAttackLocation( SOLDIERTYPE *pSoldier );
BOOLEAN UIOkForItemPickup( SOLDIERTYPE *pSoldier, INT32 sGridNo );
BOOLEAN IsValidTalkableNPCFromMouse( UINT16 * pubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed );
BOOLEAN IsValidTalkableNPCFromMouse( SoldierID *pubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed );
BOOLEAN IsValidTalkableNPC( SoldierID ubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed );
BOOLEAN HandleTalkInit( );
+1 -1
View File
@@ -335,7 +335,7 @@ BOOLEAN DrawUICursor( )
// If we are over a target, jump to that....
if ( gfUIFullTargetFound )
{
gusTargetDropPos = MercPtrs[ gusUIFullTargetID ]->sGridNo;
gusTargetDropPos = gusUIFullTargetID->sGridNo;
}
// Put tile on the floor
+22 -22
View File
@@ -8773,23 +8773,23 @@ BOOLEAN SoldierCanSeeCatchComing( SOLDIERTYPE *pSoldier, INT32 sSrcGridNo )
void DrawItemTileCursor( )
{
INT32 usMapPos;
UINT16 usIndex;
UINT16 ubSoldierID;
INT16 sAPCost;
BOOLEAN fRecalc;
UINT32 uiCursorFlags;
INT32 sFinalGridNo;
UINT32 uiCursorId = CURSOR_ITEM_GOOD_THROW;
SOLDIERTYPE *pSoldier;
BOOLEAN fGiveItem = FALSE;
INT32 sActionGridNo;
UINT8 ubDirection;
static UINT32 uiOldCursorId = 0;
static UINT16 usOldMousePos = 0;
INT16 sEndZ = 0;
INT16 sDist;
INT8 bLevel;
INT32 usMapPos;
UINT16 usIndex;
SoldierID ubSoldierID;
INT16 sAPCost;
BOOLEAN fRecalc;
UINT32 uiCursorFlags;
INT32 sFinalGridNo;
UINT32 uiCursorId = CURSOR_ITEM_GOOD_THROW;
SOLDIERTYPE *pSoldier;
BOOLEAN fGiveItem = FALSE;
INT32 sActionGridNo;
UINT8 ubDirection;
static UINT32 uiOldCursorId = 0;
static UINT16 usOldMousePos = 0;
INT16 sEndZ = 0;
INT16 sDist;
INT8 bLevel;
if (GetMouseMapPos( &usMapPos) )
{
@@ -9120,15 +9120,15 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos )
}
UINT8 ubDirection;
UINT16 ubSoldierID;
UINT16 usItem;
UINT8 ubDirection;
SoldierID ubSoldierID;
UINT16 usItem;
INT16 sAPCost;
SOLDIERTYPE *pSoldier=NULL;
UINT8 ubThrowActionCode=0;
UINT32 uiThrowActionData=0;
UINT32 uiThrowActionData=0;
INT16 sEndZ = 0;
BOOLEAN fGiveItem = FALSE;
BOOLEAN fGiveItem = FALSE;
INT32 sGridNo;
INT16 sDist;
+3 -3
View File
@@ -6403,10 +6403,10 @@ void ShowRadioLocator( SoldierID ubID, UINT8 ubLocatorSpeed )
}
}
void EndRadioLocator( UINT16 ubID )
void EndRadioLocator( SoldierID ubID )
{
MercPtrs[ ubID ]->flags.fFlashLocator = FALSE;
MercPtrs[ ubID ]->flags.fShowLocator = FALSE;
ubID->flags.fFlashLocator = FALSE;
ubID->flags.fShowLocator = FALSE;
}
+1 -1
View File
@@ -108,7 +108,7 @@ extern INT8 gbNewItemCycle[ NUM_INV_SLOTS ];
extern UINT8 gubNewItemMerc;
void ShowRadioLocator( SoldierID ubID, UINT8 ubLocatorSpeed );
void EndRadioLocator( UINT16 ubID );
void EndRadioLocator( SoldierID ubID );
extern MOUSE_REGION gSMPanelRegion;
+1 -1
View File
@@ -1667,7 +1667,7 @@ void DrawCTHPixelToBuffer( UINT16 *pBuffer, UINT32 uiPitch, INT16 sLeft, INT16 s
//QUOTE_SYSTEM_STRUCT soldierTTInfo;
void DrawSelectedUIAboveGuy( UINT16 usSoldierID )
void DrawSelectedUIAboveGuy( SoldierID usSoldierID )
{
SOLDIERTYPE *pSoldier;
INT16 sXPos, sYPos;
+1 -1
View File
@@ -458,7 +458,7 @@ void HandleInterfaceBackgrounds( );
void BeginOverlayMessage( UINT32 uiFont, STR16 pFontString, ... );
void EndOverlayMessage( );
void DrawSelectedUIAboveGuy( UINT16 usSoldierID );
void DrawSelectedUIAboveGuy( SoldierID usSoldierID );
// HEADROCK HAM 4: Draw the CTH indicator, using values grabbed from the global CTH array
BOOLEAN DrawCTHIndicator();
+38 -38
View File
@@ -355,7 +355,7 @@ UINT8 ubHeliScripts[ NUM_HELI_STATES ][ MAX_HELI_SCRIPT ] =
BOOLEAN gfHandleHeli = FALSE;
UINT16 gusHeliSeats[ MAX_MERC_IN_HELI ];
SoldierID gusHeliSeats[ MAX_MERC_IN_HELI ];
INT8 gbNumHeliSeatsOccupied = 0;
BOOLEAN gfFirstGuyDown = FALSE;
@@ -392,7 +392,7 @@ void ResetHeliSeats( )
gbNumHeliSeatsOccupied = 0;
}
void AddMercToHeli( UINT16 ubID )
void AddMercToHeli( SoldierID ubID )
{
if ( gbNumHeliSeatsOccupied < MAX_MERC_IN_HELI )
{
@@ -502,21 +502,21 @@ void HandleHeliDrop( BOOLEAN fPlayer )
{
// Add merc to sector
#ifdef JA2UB
//MercPtrs[ gusHeliSeats[ cnt ] ]->ubStrategicInsertionCode = INSERTION_CODE_NORTH;
MercPtrs[ gusHeliSeats[ cnt ] ]->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO;
MercPtrs[ gusHeliSeats[ cnt ] ]->usStrategicInsertionData = gGameUBOptions.LOCATEGRIDNO;
//gusHeliSeats[ cnt ]->ubStrategicInsertionCode = INSERTION_CODE_NORTH;
gusHeliSeats[ cnt ]->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO;
gusHeliSeats[ cnt ]->usStrategicInsertionData = gGameUBOptions.LOCATEGRIDNO;
#else
//MercPtrs[ gusHeliSeats[ cnt ] ]->ubStrategicInsertionCode = INSERTION_CODE_NORTH;
MercPtrs[ gusHeliSeats[ cnt ] ]->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO;
MercPtrs[ gusHeliSeats[ cnt ] ]->usStrategicInsertionData = gGameExternalOptions.iInitialMercArrivalLocation;
//gusHeliSeats[ cnt ]->ubStrategicInsertionCode = INSERTION_CODE_NORTH;
gusHeliSeats[ cnt ]->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO;
gusHeliSeats[ cnt ]->usStrategicInsertionData = gGameExternalOptions.iInitialMercArrivalLocation;
#endif
// HEADROCK HAM 3.5: Externalized!
UpdateMercInSector( MercPtrs[ gusHeliSeats[ cnt ] ], gGameExternalOptions.ubDefaultArrivalSectorX, gGameExternalOptions.ubDefaultArrivalSectorY, startingZ );
UpdateMercInSector( gusHeliSeats[ cnt ], gGameExternalOptions.ubDefaultArrivalSectorX, gGameExternalOptions.ubDefaultArrivalSectorY, startingZ );
// Check for merc arrives quotes...
HandleMercArrivesQuotes( MercPtrs[ gusHeliSeats[ cnt ] ] );
HandleMercArrivesQuotes( gusHeliSeats[ cnt ] );
ScreenMsg( FONT_MCOLOR_WHITE, MSG_INTERFACE, TacticalStr[ MERC_HAS_ARRIVED_STR ], MercPtrs[ gusHeliSeats[ cnt ] ]->GetName() );
ScreenMsg( FONT_MCOLOR_WHITE, MSG_INTERFACE, TacticalStr[ MERC_HAS_ARRIVED_STR ], gusHeliSeats[ cnt ]->GetName() );
}
@@ -558,23 +558,23 @@ void HandleHeliDrop( BOOLEAN fPlayer )
{
// Add merc to sector
#ifdef JA2UB
//MercPtrs[ gusHeliSeats[ cnt ] ]->ubStrategicInsertionCode = INSERTION_CODE_NORTH;
MercPtrs[ gusHeliSeats[ cnt ] ]->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO;
MercPtrs[ gusHeliSeats[ cnt ] ]->usStrategicInsertionData = gGameUBOptions.LOCATEGRIDNO;
//gusHeliSeats[ cnt ]->ubStrategicInsertionCode = INSERTION_CODE_NORTH;
gusHeliSeats[ cnt ]->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO;
gusHeliSeats[ cnt ]->usStrategicInsertionData = gGameUBOptions.LOCATEGRIDNO;
#else
//MercPtrs[ gusHeliSeats[ cnt ] ]->ubStrategicInsertionCode = INSERTION_CODE_NORTH;
MercPtrs[ gusHeliSeats[ cnt ] ]->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO;
//gusHeliSeats[ cnt ]->ubStrategicInsertionCode = INSERTION_CODE_NORTH;
gusHeliSeats[ cnt ]->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO;
// sevenfm: if soldiers land into enemy sector, use gsGridNoSweetSpot
//MercPtrs[ gusHeliSeats[ cnt ] ]->usStrategicInsertionData = gGameExternalOptions.iInitialMercArrivalLocation;
MercPtrs[gusHeliSeats[cnt]]->usStrategicInsertionData = gsGridNoSweetSpot;
//gusHeliSeats[ cnt ]->usStrategicInsertionData = gGameExternalOptions.iInitialMercArrivalLocation;
gusHeliSeats[ cnt ]->usStrategicInsertionData = gsGridNoSweetSpot;
#endif
// HEADROCK HAM 3.5: Externalized!
UpdateMercInSector( MercPtrs[ gusHeliSeats[ cnt ] ], gGameExternalOptions.ubDefaultArrivalSectorX, gGameExternalOptions.ubDefaultArrivalSectorY, startingZ );
UpdateMercInSector( gusHeliSeats[ cnt ], gGameExternalOptions.ubDefaultArrivalSectorX, gGameExternalOptions.ubDefaultArrivalSectorY, startingZ );
// Check for merc arrives quotes...
HandleMercArrivesQuotes( MercPtrs[ gusHeliSeats[ cnt ] ] );
HandleMercArrivesQuotes( gusHeliSeats[ cnt ] );
ScreenMsg( FONT_MCOLOR_WHITE, MSG_INTERFACE, TacticalStr[ MERC_HAS_ARRIVED_STR ], MercPtrs[ gusHeliSeats[ cnt ] ]->GetName() );
ScreenMsg( FONT_MCOLOR_WHITE, MSG_INTERFACE, TacticalStr[ MERC_HAS_ARRIVED_STR ], gusHeliSeats[ cnt ]->GetName() );
}
// Remove heli
@@ -698,24 +698,24 @@ void HandleHeliDrop( BOOLEAN fPlayer )
{
// Flugente: it is now possible to use airdrops with soldiers after they have arrived in Arulco. In that case, they might have an animation that breaks EVENT_InitNewSoldierAnim prematurely.
// In the worst case, this can cause the game to be unable to finish the airdrop. For that reason, we set all those soldiers to the STANDING animation.
MercPtrs[ gusHeliSeats[ gbCurDrop ] ]->usAnimState = STANDING;
MercPtrs[ gusHeliSeats[ gbCurDrop ] ]->EVENT_InitNewSoldierAnim( HELIDROP, 0 , FALSE );
gusHeliSeats[ gbCurDrop ]->usAnimState = STANDING;
gusHeliSeats[ gbCurDrop ]->EVENT_InitNewSoldierAnim( HELIDROP, 0 , FALSE );
// Change insertion code
MercPtrs[ gusHeliSeats[ gbCurDrop ] ]->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO;
MercPtrs[ gusHeliSeats[ gbCurDrop ] ]->usStrategicInsertionData = gsGridNoSweetSpot;
gusHeliSeats[ gbCurDrop ]->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO;
gusHeliSeats[ gbCurDrop ]->usStrategicInsertionData = gsGridNoSweetSpot;
// HEADROCK HAM 3.5: Externalized!
UpdateMercInSector( MercPtrs[ gusHeliSeats[ gbCurDrop ] ], gGameExternalOptions.ubDefaultArrivalSectorX, gGameExternalOptions.ubDefaultArrivalSectorY, startingZ );
//EVENT_SetSoldierPosition( MercPtrs[ gusHeliSeats[ gbCurDrop ] ], sWorldX, sWorldY );
UpdateMercInSector( gusHeliSeats[ gbCurDrop ], gGameExternalOptions.ubDefaultArrivalSectorX, gGameExternalOptions.ubDefaultArrivalSectorY, startingZ );
//EVENT_SetSoldierPosition( gusHeliSeats[ gbCurDrop ], sWorldX, sWorldY );
// IF the first guy down, set squad!
if ( gfFirstGuyDown )
{
gfFirstGuyDown = FALSE;
SetCurrentSquad( MercPtrs[ gusHeliSeats[ gbCurDrop ] ]->bAssignment, TRUE );
SetCurrentSquad( gusHeliSeats[ gbCurDrop ]->bAssignment, TRUE );
}
ScreenMsg( FONT_MCOLOR_WHITE, MSG_INTERFACE, TacticalStr[ MERC_HAS_ARRIVED_STR ], MercPtrs[ gusHeliSeats[ gbCurDrop ] ]->GetName() );
ScreenMsg( FONT_MCOLOR_WHITE, MSG_INTERFACE, TacticalStr[ MERC_HAS_ARRIVED_STR ], gusHeliSeats[ gbCurDrop ]->GetName() );
++gbCurDrop;
@@ -1024,7 +1024,7 @@ void HandleFirstHeliDropOfGame( )
CharacterDialogueWithSpecialEvent( 0, 0, 0, DIALOGUE_TACTICAL_UI , FALSE , FALSE , DIALOGUE_SPECIAL_EVENT_ENABLE_AI ,0, 0 );
}
UINT16 SpawnAirDropElite( INT32 sGridNo )
SoldierID SpawnAirDropElite( INT32 sGridNo )
{
SOLDIERTYPE *pSoldier;
@@ -1076,7 +1076,7 @@ void InitiateEnemyAirDropSoldiers( INT32 sGridNo )
for ( int i = 0; i < 6; ++i )
{
UINT16 id = SpawnAirDropElite( gMapInformation.sSouthGridNo + i );
SoldierID id = SpawnAirDropElite( gMapInformation.sSouthGridNo + i );
if ( id == NOBODY )
return;
@@ -1192,23 +1192,23 @@ void HandleEnemyAirdrop( )
{
// Flugente: it is now possible to use airdrops with soldiers after they have arrived in Arulco. In that case, they might have an animation that breaks EVENT_InitNewSoldierAnim prematurely.
// In the worst case, this can cause the game to be unable to finish the airdrop. For that reason, we set all those soldiers to the STANDING aniamtion.
//MercPtrs[ gusHeliSeats[ gbCurDrop ] ]->usAnimState = STANDING;
MercPtrs[gusHeliSeats[gbCurDrop]]->EVENT_InitNewSoldierAnim( HELIDROP, 0, FALSE );
//gusHeliSeats[ gbCurDrop ]->usAnimState = STANDING;
gusHeliSeats[gbCurDrop]->EVENT_InitNewSoldierAnim( HELIDROP, 0, FALSE );
// Change insertion code
MercPtrs[gusHeliSeats[gbCurDrop]]->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO;
MercPtrs[gusHeliSeats[gbCurDrop]]->usStrategicInsertionData = gsGridNoSweetSpot;
gusHeliSeats[gbCurDrop]->ubStrategicInsertionCode = INSERTION_CODE_GRIDNO;
gusHeliSeats[gbCurDrop]->usStrategicInsertionData = gsGridNoSweetSpot;
// HEADROCK HAM 3.5: Externalized!
UpdateMercInSector( MercPtrs[gusHeliSeats[gbCurDrop]], gWorldSectorX, gWorldSectorY, startingZ );
UpdateMercInSector( gusHeliSeats[gbCurDrop], gWorldSectorX, gWorldSectorY, startingZ );
// IF the first guy down, set squad!
if ( gfFirstGuyDown )
{
gfFirstGuyDown = FALSE;
//SetCurrentSquad( MercPtrs[ gusHeliSeats[ gbCurDrop ] ]->bAssignment, TRUE );
//SetCurrentSquad( gusHeliSeats[ gbCurDrop ]->bAssignment, TRUE );
}
ScreenMsg( FONT_MCOLOR_WHITE, MSG_INTERFACE, TacticalStr[MERC_HAS_ARRIVED_STR], MercPtrs[gusHeliSeats[gbCurDrop]]->GetName( ) );
ScreenMsg( FONT_MCOLOR_WHITE, MSG_INTERFACE, TacticalStr[MERC_HAS_ARRIVED_STR], gusHeliSeats[gbCurDrop]->GetName( ) );
++gbCurDrop;
+2 -2
View File
@@ -425,7 +425,7 @@ INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc)
}
void MercArrivesCallback( UINT16 ubSoldierID )
void MercArrivesCallback( SoldierID ubSoldierID )
{
MERCPROFILESTRUCT *pMerc;
SOLDIERTYPE *pSoldier;
@@ -457,7 +457,7 @@ void MercArrivesCallback( UINT16 ubSoldierID )
// stop time compression until player restarts it
StopTimeCompression();
pSoldier = &Menptr[ ubSoldierID ];
pSoldier = ubSoldierID;
pMerc = &gMercProfiles[ pSoldier->ubProfile ];
+1 -1
View File
@@ -46,7 +46,7 @@ extern INT16 gsMercArriveSectorY;
INT8 HireMerc( MERC_HIRE_STRUCT *pHireMerc);
void MercArrivesCallback( UINT16 ubSoldierID );
void MercArrivesCallback( SoldierID ubSoldierID );
BOOLEAN IsMercHireable( UINT8 ubMercID );
BOOLEAN IsMercDead( UINT8 ubMercID );
UINT16 NumberOfMercsOnPlayerTeam();
+1 -1
View File
@@ -361,7 +361,7 @@ typedef CHAR8 PaletteRepID[ 30 ];
typedef struct
{
UINT8 ubType;
PaletteRepID ID;
PaletteRepID ID;
UINT8 ubPaletteSize;
UINT8 *r;
UINT8 *g;
+2 -2
View File
@@ -1489,7 +1489,7 @@ void GetRTMousePositionInput( UINT32 *puiNewEvent )
{
if( gfUIFullTargetFound )
{
if ( IsValidTalkableNPC( gusUIFullTargetID, FALSE, FALSE, FALSE ) && !_KeyDown( SHIFT ) && !AM_AN_EPC( pSoldier ) && MercPtrs[ gusUIFullTargetID ]->bTeam != ENEMY_TEAM && !ValidQuickExchangePosition( ) )
if ( IsValidTalkableNPC( gusUIFullTargetID, FALSE, FALSE, FALSE ) && !_KeyDown( SHIFT ) && !AM_AN_EPC( pSoldier ) && gusUIFullTargetID->bTeam != ENEMY_TEAM && !ValidQuickExchangePosition( ) )
{
uiMoveTargetSoldierId = gusUIFullTargetID;
*puiNewEvent = T_CHANGE_TO_TALKING;
@@ -1536,7 +1536,7 @@ void GetRTMousePositionInput( UINT32 *puiNewEvent )
{
guiUITargetSoldierId = gusUIFullTargetID;
if ( MercPtrs[ gusUIFullTargetID ]->bTeam != gbPlayerNum )
if ( gusUIFullTargetID->bTeam != gbPlayerNum )
{
fOnValidGuy = TRUE;
}
+59 -59
View File
@@ -788,65 +788,65 @@ public:
void ConvertFrom_101_To_102(const OLDSOLDIERTYPE_101& src);
public:
// AI STUFF from before the changes to the memory structure
INT8 bOppList[MAX_NUM_SOLDIERS]; // AI knowledge database
INT8 bLastAction;
INT8 bAction;
INT32 usActionData;
INT8 bNextAction;
INT32 usNextActionData;
INT8 bActionInProgress;
INT8 bAlertStatus;
INT8 bOppCnt;
INT8 bNeutral;
INT8 bNewSituation;
INT8 bNextTargetLevel;
INT8 bOrders;
INT8 bAttitude;
INT8 bUnderFire;
INT8 bShock;
INT8 bUnderEscort;
INT8 bBypassToGreen;
UINT8 ubLastMercToRadio;
INT8 bDominantDir; // AI main direction to face...
INT8 bPatrolCnt; // number of patrol gridnos
INT8 bNextPatrolPnt; // index to next patrol gridno
INT32 sPatrolGrid[MAXPATROLGRIDS];// AI list for ptr->orders==PATROL
INT32 sNoiseGridno;
UINT8 ubNoiseVolume;
INT8 bLastAttackHit;
UINT16 ubXRayedBy;
FLOAT dHeightAdjustment;
INT8 bMorale;
INT8 bTeamMoraleMod;
INT8 bTacticalMoraleMod;
INT8 bStrategicMoraleMod;
INT8 bAIMorale;
UINT8 ubPendingAction;
UINT8 ubPendingActionAnimCount;
UINT32 uiPendingActionData1;
INT32 sPendingActionData2;
INT8 bPendingActionData3;
INT8 ubDoorHandleCode;
UINT32 uiPendingActionData4;
INT8 bInterruptDuelPts;
INT8 bPassedLastInterrupt;
INT16 bIntStartAPs; //100AP
INT8 bMoved;
INT8 bHunting;
UINT8 ubLastCall;
UINT16 ubCaller;
INT32 sCallerGridNo;
UINT8 bCallPriority;
INT8 bCallActedUpon;
INT8 bFrenzied;
INT8 bNormalSmell;
INT8 bMonsterSmell;
INT8 bMobility;
INT8 bRTPCombat;
INT8 fAIFlags;
INT16 bAimTime; //100AP
INT8 bShownAimTime;
UINT8 ubInterruptCounter[MAX_NUM_SOLDIERS]; // SANDRO - interrupt counter added
INT8 bOppList[MAX_NUM_SOLDIERS]; // AI knowledge database
INT8 bLastAction;
INT8 bAction;
INT32 usActionData;
INT8 bNextAction;
INT32 usNextActionData;
INT8 bActionInProgress;
INT8 bAlertStatus;
INT8 bOppCnt;
INT8 bNeutral;
INT8 bNewSituation;
INT8 bNextTargetLevel;
INT8 bOrders;
INT8 bAttitude;
INT8 bUnderFire;
INT8 bShock;
INT8 bUnderEscort;
INT8 bBypassToGreen;
UINT8 ubLastMercToRadio;
INT8 bDominantDir; // AI main direction to face...
INT8 bPatrolCnt; // number of patrol gridnos
INT8 bNextPatrolPnt; // index to next patrol gridno
INT32 sPatrolGrid[MAXPATROLGRIDS];// AI list for ptr->orders==PATROL
INT32 sNoiseGridno;
UINT8 ubNoiseVolume;
INT8 bLastAttackHit;
UINT16 ubXRayedBy;
FLOAT dHeightAdjustment;
INT8 bMorale;
INT8 bTeamMoraleMod;
INT8 bTacticalMoraleMod;
INT8 bStrategicMoraleMod;
INT8 bAIMorale;
UINT8 ubPendingAction;
UINT8 ubPendingActionAnimCount;
UINT32 uiPendingActionData1;
INT32 sPendingActionData2;
INT8 bPendingActionData3;
INT8 ubDoorHandleCode;
UINT32 uiPendingActionData4;
INT8 bInterruptDuelPts;
INT8 bPassedLastInterrupt;
INT16 bIntStartAPs; //100AP
INT8 bMoved;
INT8 bHunting;
UINT8 ubLastCall;
SoldierID ubCaller;
INT32 sCallerGridNo;
UINT8 bCallPriority;
INT8 bCallActedUpon;
INT8 bFrenzied;
INT8 bNormalSmell;
INT8 bMonsterSmell;
INT8 bMobility;
INT8 bRTPCombat;
INT8 fAIFlags;
INT16 bAimTime; //100AP
INT8 bShownAimTime;
UINT8 ubInterruptCounter[MAX_NUM_SOLDIERS]; // SANDRO - interrupt counter added
};
class STRUCT_Flags//last edited at version 102
+2 -2
View File
@@ -133,7 +133,7 @@ void SoldierTooltip( SOLDIERTYPE* pSoldier )
{
//CHRISL: Changed the second parameter to use the same information as the 'F' hotkey uses.
//iRangeToTarget = GetRangeInCellCoordsFromGridNoDiff( gusSelectedSoldier->sGridNo, sSoldierGridNo ) / 10;
iRangeToTarget = GetRangeInCellCoordsFromGridNoDiff( gusSelectedSoldier->sGridNo, MercPtrs[ gusUIFullTargetID ]->sGridNo ) / 10;
iRangeToTarget = GetRangeInCellCoordsFromGridNoDiff( gusSelectedSoldier->sGridNo, gusUIFullTargetID->sGridNo ) / 10;
}
// WANNE: If we want to show the tooltip of milita and no merc is present in the sector
else
@@ -145,7 +145,7 @@ void SoldierTooltip( SOLDIERTYPE* pSoldier )
// SANDRO - don't use this if detail set to debug!
if ( gGameExternalOptions.gfAllowUDTRange && gGameExternalOptions.ubSoldierTooltipDetailLevel != DL_Debug && !(gTacticalStatus.uiFlags & SHOW_ALL_MERCS) )
{
uiMaxTooltipDistance = (UINT32)( gusSelectedSoldier->GetMaxDistanceVisible(MercPtrs[ gusUIFullTargetID ]->sGridNo, 0, CALC_FROM_WANTED_DIR) * (gGameExternalOptions.ubUDTModifier));
uiMaxTooltipDistance = (UINT32)( gusSelectedSoldier->GetMaxDistanceVisible(gusUIFullTargetID->sGridNo, 0, CALC_FROM_WANTED_DIR) * (gGameExternalOptions.ubUDTModifier));
uiMaxTooltipDistance /= 100;
}
//SCORE: Otherwise if we're using dynamics then do this
+12 -12
View File
@@ -573,7 +573,7 @@ void QueryTBLeftButton( UINT32 *puiNewEvent )
if ( gfUIFullTargetFound )
{
// Select guy
if ( ( guiUIFullTargetFlags & SELECTED_MERC) && !( guiUIFullTargetFlags & UNCONSCIOUS_MERC ) && !( MercPtrs[ gusUIFullTargetID ]->flags.uiStatusFlags & SOLDIER_VEHICLE ) )
if ( ( guiUIFullTargetFlags & SELECTED_MERC) && !( guiUIFullTargetFlags & UNCONSCIOUS_MERC ) && !( gusUIFullTargetID->flags.uiStatusFlags & SOLDIER_VEHICLE ) )
{
*puiNewEvent = M_CHANGE_TO_ADJPOS_MODE;
fIgnoreLeftUp = FALSE;
@@ -1250,7 +1250,7 @@ void GetTBMousePositionInput( UINT32 *puiNewEvent )
if( gfUIFullTargetFound )
{
// ATE: Don't do this automatically for enemies......
if ( MercPtrs[ gusUIFullTargetID ]->bTeam != ENEMY_TEAM )
if ( gusUIFullTargetID->bTeam != ENEMY_TEAM )
{
uiMoveTargetSoldierId = gusUIFullTargetID;
if ( IsValidTalkableNPC( gusUIFullTargetID, FALSE, FALSE, FALSE ) && !_KeyDown( SHIFT ) && !AM_AN_EPC( pSoldier ) && !ValidQuickExchangePosition( ) )
@@ -1280,7 +1280,7 @@ void GetTBMousePositionInput( UINT32 *puiNewEvent )
{
guiUITargetSoldierId = gusUIFullTargetID;
if ( MercPtrs[ gusUIFullTargetID ]->bTeam != gbPlayerNum )
if ( gusUIFullTargetID->bTeam != gbPlayerNum )
{
fOnValidGuy = TRUE;
//ddd turn off flag that indicates aim/autofire mode adjustment (aimed burst/auto)
@@ -3593,7 +3593,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent )
if ( gfUIFullTargetFound )
{
//Display the range to the target
DisplayRangeToTarget( gusSelectedSoldier, MercPtrs[gusUIFullTargetID]->sGridNo );
DisplayRangeToTarget( gusSelectedSoldier, gusUIFullTargetID->sGridNo );
}
else
{
@@ -4648,7 +4648,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent )
if ( gfUIFullTargetFound )
{
// Get soldier...
pSoldier2 = MercPtrs[ gusUIFullTargetID ];
pSoldier2 = gusUIFullTargetID;
// Check if both OK....
if ( pSoldier1->stats.bLife >= OKLIFE && pSoldier2->ubID != gusSelectedSoldier )
@@ -5677,7 +5677,7 @@ INT8 CheckForAndHandleHandleVehicleInteractiveClick( SOLDIERTYPE *pSoldier, UINT
if ( gfUIFullTargetFound )
{
pTSoldier = MercPtrs[ gusUIFullTargetID ];
pTSoldier = gusUIFullTargetID;
// anv: added condition - make sure we won't put vehicle in another vehicle
if ( OK_ENTERABLE_VEHICLE( pTSoldier ) && pTSoldier->bVisible != -1 && OKUseVehicle( pTSoldier->ubProfile ) && !( pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER | SOLDIER_VEHICLE ) ) )
@@ -5824,18 +5824,18 @@ void HandleHandCursorClick( INT32 usMapPos, UINT32 *puiNewEvent )
// Flugente: allow stealing if the other guy is an enemy, OR if we are on the same team
if ( (( guiUIFullTargetFlags & ENEMY_MERC ) && !( guiUIFullTargetFlags & UNCONSCIOUS_MERC )) || (AllowedToStealFromTeamMate(pSoldier->ubID, (UINT8)gusUIFullTargetID) && guiUIFullTargetFlags & OWNED_MERC) )
{
sActionGridNo = FindAdjacentGridEx( pSoldier, MercPtrs[ gusUIFullTargetID ]->sGridNo, &ubDirection, &sAdjustedGridNo, TRUE, FALSE );
sActionGridNo = FindAdjacentGridEx( pSoldier, gusUIFullTargetID->sGridNo, &ubDirection, &sAdjustedGridNo, TRUE, FALSE );
if ( sActionGridNo == -1 )
{
sActionGridNo = sAdjustedGridNo;
}
// Steal!
sAPCost = GetAPsToStealItem( pSoldier, MercPtrs[ gusUIFullTargetID ], sActionGridNo ); // SANDRO - added target variable
sAPCost = GetAPsToStealItem( pSoldier, gusUIFullTargetID, sActionGridNo ); // SANDRO - added target variable
if ( EnoughPoints( pSoldier, sAPCost, 0, TRUE ) )
{
MercStealFromMerc( pSoldier, MercPtrs[ gusUIFullTargetID ] );
MercStealFromMerc( pSoldier, gusUIFullTargetID );
*puiNewEvent = A_CHANGE_TO_MOVE;
@@ -5962,7 +5962,7 @@ void HandleHandCursorRightClick( INT32 usMapPos, UINT32 *puiNewEvent )
if( gfUIFullTargetFound )
{
pTSoldier = MercPtrs[ gusUIFullTargetID ];
pTSoldier = gusUIFullTargetID;
if( OK_ENTERABLE_VEHICLE( pTSoldier ) && pTSoldier->bVisible != -1 && OKUseVehicle( pTSoldier->ubProfile ) )
{
// anv: if we are passengers, only show menu when clicking on vehicle we're in
@@ -6058,10 +6058,10 @@ INT8 HandleMoveModeInteractiveClick( INT32 usMapPos, UINT32 *puiNewEvent )
if ( ValidQuickExchangePosition( ) )
{
// Check if we can...
if ( CanExchangePlaces( pSoldier, MercPtrs[ gusUIFullTargetID ], TRUE ) )
if ( CanExchangePlaces( pSoldier, gusUIFullTargetID, TRUE ) )
{
gpExchangeSoldier1 = pSoldier;
gpExchangeSoldier2 = MercPtrs[ gusUIFullTargetID ];
gpExchangeSoldier2 = gusUIFullTargetID;
// Do message box...
//DoMessageBox( MSG_BOX_BASIC_STYLE, TacticalStr[ EXCHANGE_PLACES_REQUESTER ], GAME_SCREEN, ( UINT8 )MSG_BOX_FLAG_YESNO, ExchangeMessageBoxCallBack, NULL );
+18 -18
View File
@@ -134,7 +134,7 @@ BOOLEAN GetMouseRecalcAndShowAPFlags( UINT32 *puiCursorFlags, BOOLEAN *pfShowAPs
// FUNCTIONS FOR CURSOR DETERMINATION!
UINT8 GetProperItemCursor( UINT16 ubSoldierID, UINT16 ubItemIndex, INT32 usMapPos, BOOLEAN fActivated )
UINT8 GetProperItemCursor( SoldierID ubSoldierID, UINT16 ubItemIndex, INT32 usMapPos, BOOLEAN fActivated )
{
SOLDIERTYPE *pSoldier;
UINT32 uiCursorFlags;
@@ -144,7 +144,7 @@ UINT8 GetProperItemCursor( UINT16 ubSoldierID, UINT16 ubItemIndex, INT32 usMapPo
UINT8 ubCursorID=0;
UINT8 ubItemCursor = 0;
pSoldier = MercPtrs[ ubSoldierID ];
pSoldier = ubSoldierID;
fRecalc = GetMouseRecalcAndShowAPFlags( &uiCursorFlags, &fShowAPs );
@@ -159,7 +159,7 @@ UINT8 GetProperItemCursor( UINT16 ubSoldierID, UINT16 ubItemIndex, INT32 usMapPo
// Calculate target gridno!
if ( gfUIFullTargetFound )
{
sTargetGridNo = MercPtrs[ gusUIFullTargetID ]->sGridNo;
sTargetGridNo = gusUIFullTargetID->sGridNo;
}
else
{
@@ -573,7 +573,7 @@ UINT8 HandleActivatedTargetCursor( SOLDIERTYPE *pSoldier, INT32 usMapPos, BOOLEA
{
if ( gusUIFullTargetID != NOBODY )
{
if ( SoldierToSoldierBodyPartChanceToGetThrough( pSoldier, MercPtrs[ gusUIFullTargetID ], pSoldier->bAimShotLocation ) < OK_CHANCE_TO_GET_THROUGH )
if ( SoldierToSoldierBodyPartChanceToGetThrough( pSoldier, gusUIFullTargetID, pSoldier->bAimShotLocation ) < OK_CHANCE_TO_GET_THROUGH )
{
gfCannotGetThrough = TRUE;
}
@@ -1556,7 +1556,7 @@ void DetermineCursorBodyLocation( UINT16 ubSoldierID, BOOLEAN fDisplay, BOOLEAN
// Check if we can find a soldier here
if ( gfUIFullTargetFound )
{
pTargetSoldier = MercPtrs[ gusUIFullTargetID ];
pTargetSoldier = gusUIFullTargetID;
if ( FindRelativeSoldierPosition( pTargetSoldier, &usFlags, gusMouseXPos, gusMouseYPos ) )
{
@@ -1594,7 +1594,7 @@ void DetermineCursorBodyLocation( UINT16 ubSoldierID, BOOLEAN fDisplay, BOOLEAN
{
if ( gfUIFullTargetFound )
{
pTargetSoldier = MercPtrs[ gusUIFullTargetID ];
pTargetSoldier = gusUIFullTargetID;
if ( pTargetSoldier->ubBodyType == CROW )
{
@@ -2583,7 +2583,7 @@ void HandleRightClickAdjustCursor( SOLDIERTYPE *pSoldier, INT32 usMapPos )
// 'snap' cursor to target tile....
if ( gfUIFullTargetFound )
{
usMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo;
usMapPos = gusUIFullTargetID->sGridNo;
}
@@ -2609,7 +2609,7 @@ void HandleRightClickAdjustCursor( SOLDIERTYPE *pSoldier, INT32 usMapPos )
if ( gfUIFullTargetFound )
{
// Get target soldier, if one exists
pTSoldier = MercPtrs[ gusUIFullTargetID ];
pTSoldier = gusUIFullTargetID;
sGridNo = pTSoldier->sGridNo;
bTargetLevel = pSoldier->pathing.bLevel;
@@ -2727,7 +2727,7 @@ void HandleRightClickAdjustCursor( SOLDIERTYPE *pSoldier, INT32 usMapPos )
if ( gfUIFullTargetFound )
{
// Get target soldier, if one exists
pTSoldier = MercPtrs[ gusUIFullTargetID ];
pTSoldier = gusUIFullTargetID;
sGridNo = pTSoldier->sGridNo;
bTargetLevel = pSoldier->pathing.bLevel;
@@ -3172,7 +3172,7 @@ void HandleWheelAdjustCursor( SOLDIERTYPE *pSoldier, INT16 sMapPos, INT16 sDelta
// 'snap' cursor to target tile....
if ( gfUIFullTargetFound )
{
sMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo;
sMapPos = gusUIFullTargetID->sGridNo;
}
switch( ubCursor )
@@ -3180,8 +3180,8 @@ void HandleWheelAdjustCursor( SOLDIERTYPE *pSoldier, INT16 sMapPos, INT16 sDelta
case TARGETCURS:
// warn if bad chance to get through
if ( gfUIFullTargetFound &&
!HandleCheckForBadChangeToGetThrough( pSoldier, MercPtrs[ gusUIFullTargetID ],
MercPtrs[ gusUIFullTargetID ]->sGridNo , MercPtrs[ gusUIFullTargetID ]->pathing.bLevel ) )
!HandleCheckForBadChangeToGetThrough( pSoldier, gusUIFullTargetID,
gusUIFullTargetID->sGridNo , gusUIFullTargetID->pathing.bLevel ) )
{
return;
}
@@ -3370,7 +3370,7 @@ void HandleWheelAdjustCursor( SOLDIERTYPE *pSoldier, INT16 sMapPos, INT16 sDelta
// 'snap' cursor to target tile....
if ( gfUIFullTargetFound )
{
sMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo;
sMapPos = gusUIFullTargetID->sGridNo;
}
@@ -3442,7 +3442,7 @@ void HandleWheelAdjustCursor( SOLDIERTYPE *pSoldier, INT16 sMapPos, INT16 sDelta
if ( gfUIFullTargetFound )
{
// Get target soldier, if one exists
pTSoldier = MercPtrs[ gusUIFullTargetID ];
pTSoldier = gusUIFullTargetID;
sGridNo = pTSoldier->sGridNo;
bTargetLevel = pSoldier->pathing.bLevel;
@@ -3608,7 +3608,7 @@ void HandleWheelAdjustCursor( SOLDIERTYPE *pSoldier, INT32 sMapPos, INT32 sDelta
// 'snap' cursor to target tile....
if ( gfUIFullTargetFound )
sMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo;
sMapPos = gusUIFullTargetID->sGridNo;
int aimlevelchange = 1;
int maxAimCanAfford = 0;
@@ -3681,7 +3681,7 @@ void HandleWheelAdjustCursor( SOLDIERTYPE *pSoldier, INT32 sMapPos, INT32 sDelta
if ( gfUIFullTargetFound )
{
// Get target soldier, if one exists
pTSoldier = MercPtrs[ gusUIFullTargetID ];
pTSoldier = gusUIFullTargetID;
sGridNo = pTSoldier->sGridNo;
bTargetLevel = pSoldier->pathing.bLevel;
@@ -3836,7 +3836,7 @@ void HandleWheelAdjustCursorWOAB( SOLDIERTYPE *pSoldier, INT32 sMapPos, INT32 sD
// 'snap' cursor to target tile....
if ( gfUIFullTargetFound )
{
sMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo;
sMapPos = gusUIFullTargetID->sGridNo;
}
@@ -3908,7 +3908,7 @@ void HandleWheelAdjustCursorWOAB( SOLDIERTYPE *pSoldier, INT32 sMapPos, INT32 sD
if ( gfUIFullTargetFound )
{
// Get target soldier, if one exists
pTSoldier = MercPtrs[ gusUIFullTargetID ];
pTSoldier = gusUIFullTargetID;
sGridNo = pTSoldier->sGridNo;
bTargetLevel = pSoldier->pathing.bLevel;
+2 -2
View File
@@ -9,7 +9,7 @@
#define REFINE_KNIFE_2 (gGameExternalOptions.fEnhancedCloseCombatSystem ? gSkillTraitValues.ubModifierForAPsAddedOnAimedBladedAttackes*2 : 6)
UINT8 GetProperItemCursor( UINT16 ubSoldierID, UINT16 ubItemIndex, INT32 usMapPos, BOOLEAN fActivated );
UINT8 GetProperItemCursor( SoldierID ubSoldierID, UINT16 ubItemIndex, INT32 usMapPos, BOOLEAN fActivated );
void DetermineCursorBodyLocation( UINT16 ubSoldierID, BOOLEAN fDisplay, BOOLEAN fRecalc );
void HandleLeftClickCursor( SOLDIERTYPE *pSoldier );
@@ -30,4 +30,4 @@ BOOLEAN GetMouseRecalcAndShowAPFlags( UINT32 *puiCursorFlags, BOOLEAN *pfShowAPs
// based on how trained the shooter is.
UINT32 ChanceToHitApproximation( SOLDIERTYPE * pSoldier, UINT32 uiChance );
#endif
#endif
+2 -2
View File
@@ -4,7 +4,7 @@
extern BOOLEAN gfIngagedInDrop;
void ResetHeliSeats( );
void AddMercToHeli( UINT16 ubID );
void AddMercToHeli( SoldierID ubID );
// Flugente: we might want to set the helicopter dropoff point without starting it at the same time
void SetHelicopterDroppoint( INT32 sGridNo );
@@ -14,7 +14,7 @@ void StartHelicopterRun();
void HandleHeliDrop( BOOLEAN fPlayer = TRUE );
UINT16 SpawnAirDropElite( INT32 sGridNo );
SoldierID SpawnAirDropElite( INT32 sGridNo );
void InitiateEnemyAirDropSoldiers( INT32 sGridNo );
void HandleEnemyAirdrop( );