diff --git a/Multiplayer/client.cpp b/Multiplayer/client.cpp index 4d967455..f6c28480 100644 --- a/Multiplayer/client.cpp +++ b/Multiplayer/client.cpp @@ -388,16 +388,16 @@ typedef struct typedef struct { - UINT16 usSoldierID; - FLOAT dNewXPos; - FLOAT dNewYPos; + SoldierID usSoldierID; + FLOAT dNewXPos; + FLOAT dNewYPos; } gui_pos; typedef struct { - UINT16 usSoldierID; - INT16 usNewDirection; + SoldierID usSoldierID; + INT16 usNewDirection; } gui_dir; @@ -425,12 +425,12 @@ typedef struct typedef struct { - UINT16 ubID; + SoldierID ubID; INT8 bTeam; UINT16 gubOutOfTurnPersons; UINT16 gubOutOfTurnOrder[MAXMERCS]; BOOLEAN fMarkInterruptOccurred; - UINT16 Interrupted; + SoldierID Interrupted; } INT_STRUCT; typedef struct @@ -486,7 +486,7 @@ typedef struct float dZ; INT32 sGridNo; bool bWasDud; - UINT16 ubOwnerID; + SoldierID ubOwnerID; INT32 RealObjectID; // the local ID on the initiating client UINT32 uiPreRandomIndex; // send out our current pre-random index } grenade_result; @@ -967,7 +967,7 @@ void send_hit( EV_S_WEAPONHIT *SWeaponHit ) memcpy( &weaphit_struct , SWeaponHit, sizeof( EV_S_WEAPONHIT )); - UINT16 usSoldierID=weaphit_struct.usSoldierID; + SoldierID usSoldierID = weaphit_struct.usSoldierID; if(SWeaponHit->usSoldierID < 20)weaphit_struct.usSoldierID = weaphit_struct.usSoldierID+ubID_prefix; if(SWeaponHit->ubAttackerID < 20)weaphit_struct.ubAttackerID = weaphit_struct.ubAttackerID+ubID_prefix; @@ -981,9 +981,9 @@ void recieveHIT(RPCParameters *rpcParameters) EV_S_WEAPONHIT* SWeaponHit = (EV_S_WEAPONHIT*)rpcParameters->input; - SOLDIERTYPE *pSoldier = MercPtrs[ SWeaponHit->usSoldierID ]; - UINT16 usSoldierID; - UINT16 ubAttackerID; + SOLDIERTYPE *pSoldier = SWeaponHit->usSoldierID; + SoldierID usSoldierID; + SoldierID ubAttackerID; if((SWeaponHit->usSoldierID >= ubID_prefix) && (SWeaponHit->usSoldierID < (ubID_prefix+6))) // within our netbTeam range... usSoldierID = (SWeaponHit->usSoldierID - ubID_prefix); @@ -1157,7 +1157,7 @@ void send_gui_pos(SOLDIERTYPE *pSoldier, FLOAT dNewXPos, FLOAT dNewYPos) { gui_pos gnPOS; - gnPOS.usSoldierID = (pSoldier->ubID)+ubID_prefix; + gnPOS.usSoldierID = pSoldier->ubID + ubID_prefix; gnPOS.dNewXPos = dNewXPos; gnPOS.dNewYPos = dNewYPos; @@ -1916,7 +1916,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier) memcpy(INT.gubOutOfTurnOrder, gubOutOfTurnOrder, sizeof(UINT16) * MAXMERCS); INT.gubOutOfTurnPersons = gubOutOfTurnPersons; - INT.Interrupted=gusSelectedSoldier+ubID_prefix; + INT.Interrupted = gusSelectedSoldier + ubID_prefix; if(INT.bTeam==0) { @@ -3030,11 +3030,11 @@ void recieveGRENADE (RPCParameters *rpcParameters) } // we send a grenade result out to the clients as it may have been a fizzer -void send_grenade_result (float xPos, float yPos, float zPos, INT32 sGridNo, UINT8 ubOwnerID, INT32 iRealObjectID, bool bIsDud) +void send_grenade_result (float xPos, float yPos, float zPos, INT32 sGridNo, SoldierID ubOwnerID, INT32 iRealObjectID, bool bIsDud) { ubOwnerID = MPEncodeSoldierID(ubOwnerID); // translate our soldier to the "network" version - SOLDIERTYPE* pSoldier = MercPtrs[ubOwnerID]; + SOLDIERTYPE* pSoldier = ubOwnerID; if (pSoldier != NULL) { if ((pSoldier->bTeam == 1 && is_server) || IsOurSoldier(pSoldier)) @@ -3343,11 +3343,11 @@ void recieveDETONATEEXPLOSIVE (RPCParameters *rpcParameters) } } -void send_disarm_explosive(UINT32 sGridNo, UINT32 uiWorldItem, UINT16 ubID) +void send_disarm_explosive(UINT32 sGridNo, UINT32 uiWorldItem, SoldierID ubID) { ubID = MPEncodeSoldierID(ubID); - SOLDIERTYPE* pSoldier = MercPtrs[ubID]; + SOLDIERTYPE* pSoldier = ubID; if (pSoldier != NULL) { // explosive disarmed on this client, notify the other clients diff --git a/Multiplayer/connect.h b/Multiplayer/connect.h index e0975256..75f5d48b 100644 --- a/Multiplayer/connect.h +++ b/Multiplayer/connect.h @@ -112,14 +112,14 @@ void send_interrupt(SOLDIERTYPE *pSoldier); // OJW - 20091002 - explosives void send_grenade (OBJECTTYPE *pGameObj, float dLifeLength, float xPos, float yPos, float zPos, float xForce, float yForce, float zForce, UINT32 sTargetGridNo, UINT16 ubOwner, UINT8 ubActionCode, UINT32 uiActionData, INT32 iRealObjectID, bool bIsThrownGrenade); -void send_grenade_result (float xPos, float yPos, float zPos, INT32 sGridNo, UINT8 ubOwnerID, INT32 iRealObjectID, bool bIsDud); +void send_grenade_result (float xPos, float yPos, float zPos, INT32 sGridNo, SoldierID ubOwnerID, INT32 iRealObjectID, bool bIsDud); void send_plant_explosive (UINT16 ubID,UINT16 usItem,UINT8 ubItemStatus,UINT16 usFlags, UINT32 sGridNo,UINT8 ubLevel, UINT32 uiWorldIndex); void send_detonate_explosive (UINT32 uiWorldIndex, UINT16 ubID); void send_spreadeffect ( INT32 sGridNo, UINT8 ubRadius, UINT16 usItem, UINT16 ubOwner, BOOLEAN fSubsequent, INT8 bLevel, INT32 iSmokeEffectID ); void send_newsmokeeffect(INT32 sGridNo, UINT16 usItem, INT8 bLevel, UINT16 ubOwner, INT32 iSmokeEffectID); void send_gasdamage( SOLDIERTYPE * pSoldier, UINT16 usExplosiveClassID, INT16 sSubsequent, BOOLEAN fRecompileMovementCosts, INT16 sWoundAmt, INT16 sBreathAmt, SoldierID ubOwner ); void send_explosivedamage( UINT16 ubPerson, UINT16 ubOwner, INT32 sBombGridNo, INT16 sWoundAmt, INT16 sBreathAmt, UINT32 uiDist, UINT16 usItem, INT16 sSubsequent ); -void send_disarm_explosive(UINT32 sGridNo, UINT32 uiWorldIndex, UINT16 ubID); +void send_disarm_explosive(UINT32 sGridNo, UINT32 uiWorldIndex, SoldierID ubID); void OpenChatMsgBox(void); @@ -211,7 +211,7 @@ extern BOOLEAN fClientReceivedAllFiles; // sick of confusing myself :) // this one should be called before passing an ID off the client -inline UINT16 MPEncodeSoldierID( UINT16 ubID ) +inline SoldierID MPEncodeSoldierID( SoldierID ubID ) { if ( ubID < 20 ) return ubID + ubID_prefix; // soldier is ours diff --git a/Strategic/LuaInitNPCs.cpp b/Strategic/LuaInitNPCs.cpp index 84c9a86f..f8ad68eb 100644 --- a/Strategic/LuaInitNPCs.cpp +++ b/Strategic/LuaInitNPCs.cpp @@ -2717,7 +2717,7 @@ void LuaHandleSectorLiberation( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, B void LuaHandleInteractiveActionResult( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, - INT32 sGridNo, UINT8 bLevel, UINT16 ubId, + INT32 sGridNo, UINT8 bLevel, SoldierID ubId, UINT16 usActionType, INT32 sLuaactionid, INT32 difficulty, UINT16 skill ) { const char* filename = "scripts\\Overhead.lua"; @@ -2731,7 +2731,7 @@ void LuaHandleInteractiveActionResult( INT16 sSectorX, INT16 sSectorY, SGP_THROW_IFFALSE( _LS.L.EvalFile( filename ), _BS( "Cannot open file: " ) << filename << _BS::cget ); - LuaFunction( _LS.L, "HandleInteractiveActionResult" ).Param( sSectorX ).Param( sSectorY ).Param( bSectorZ ).Param( sGridNo ).Param( bLevel ).Param( ubId ).Param( usActionType ).Param( sLuaactionid ).Param( difficulty ).Param( skill ).Call( 10 ); + LuaFunction( _LS.L, "HandleInteractiveActionResult" ).Param( sSectorX ).Param( sSectorY ).Param( bSectorZ ).Param( sGridNo ).Param( bLevel ).Param( ubId.i ).Param( usActionType ).Param( sLuaactionid ).Param( difficulty ).Param( skill ).Call( 10 ); } void LuaRecruitRPCAdditionalHandling( UINT8 usProfile ) diff --git a/Strategic/LuaInitNPCs.h b/Strategic/LuaInitNPCs.h index 043c0fa1..4a78976d 100644 --- a/Strategic/LuaInitNPCs.h +++ b/Strategic/LuaInitNPCs.h @@ -62,7 +62,7 @@ extern BOOLEAN LuaHandleQuestCodeOnSector( INT16 sSectorX, INT16 sSectorY, INT8 void LuaHandleSectorLiberation( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, BOOLEAN fFirstTime ); void LuaHandleInteractiveActionResult( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, - INT32 sGridNo, UINT8 bLevel, UINT16 ubId, + INT32 sGridNo, UINT8 bLevel, SoldierID ubId, UINT16 usActionType, INT32 sLuaactionid, INT32 difficulty, UINT16 skill ); void LuaRecruitRPCAdditionalHandling( UINT8 usProfile ); void LuaHandleSectorTacticalEntry( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ, BOOLEAN fHasEverBeenPlayerControlled ); diff --git a/Tactical/Faces.cpp b/Tactical/Faces.cpp index a61a627f..97415f41 100644 --- a/Tactical/Faces.cpp +++ b/Tactical/Faces.cpp @@ -2087,10 +2087,10 @@ void HandleRenderFaceAdjustments( FACETYPE *pFace, BOOLEAN fDisplayBuffer, BOOLE // Flugente: are we supplying ammo to someone else? if (gGameExternalOptions.ubExternalFeeding > 0) { - UINT16 ubID1 = 0; + SoldierID ubID1 = NOBODY; UINT16 ubGunSlot1 = 0; UINT16 ubFaceSlot1 = 0; - UINT16 ubID2 = 0; + SoldierID ubID2 = NOBODY; UINT16 ubGunSlot2 = 0; UINT16 ubFaceSlot2 = 0; if (pSoldier->IsFeedingExternal(&ubID1, &ubGunSlot1, &ubFaceSlot1, &ubID2, &ubGunSlot2, &ubFaceSlot2)) diff --git a/Tactical/Handle Items.cpp b/Tactical/Handle Items.cpp index de09582e..d4a9abb9 100644 --- a/Tactical/Handle Items.cpp +++ b/Tactical/Handle Items.cpp @@ -239,20 +239,20 @@ BOOLEAN HandleCheckForBadChangeToGetThrough( SOLDIERTYPE *pSoldier, SOLDIERTYPE INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHandItem, BOOLEAN fFromUI ) { - SOLDIERTYPE *pTargetSoldier = NULL; - UINT16 usSoldierIndex; - INT32 sTargetGridNo; - INT16 sAPCost; - INT32 sActionGridNo; - UINT8 ubDirection = 0; - INT32 sAdjustedGridNo; - BOOLEAN fDropBomb = FALSE; - BOOLEAN fAddingTurningCost = FALSE; - BOOLEAN fAddingRaiseGunCost = FALSE; - LEVELNODE *pIntNode; - STRUCTURE *pStructure; - UINT16 usRaiseGunCost = 0; - UINT16 usTurningCost = 0; + SOLDIERTYPE *pTargetSoldier = NULL; + SoldierID usSoldierIndex; + INT32 sTargetGridNo; + INT16 sAPCost; + INT32 sActionGridNo; + UINT8 ubDirection = 0; + INT32 sAdjustedGridNo; + BOOLEAN fDropBomb = FALSE; + BOOLEAN fAddingTurningCost = FALSE; + BOOLEAN fAddingRaiseGunCost = FALSE; + LEVELNODE *pIntNode; + STRUCTURE *pStructure; + UINT16 usRaiseGunCost = 0; + UINT16 usTurningCost = 0; //shadooow: automatically close EDB when opened and trying to use any weapon or action if (gfInItemDescBox) @@ -277,7 +277,7 @@ INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHa //if ( FindSoldier( sGridNo, &usSoldierIndex, &uiMercFlags, FIND_SOLDIER_GRIDNO ) ) if ( ( usSoldierIndex = WhoIsThere2( sGridNo, bLevel ) ) != NOBODY ) { - pTargetSoldier = MercPtrs[ usSoldierIndex ]; + pTargetSoldier = usSoldierIndex; // anv: don't try to heal interactive spots if (fFromUI && Item[usHandItem].usItemClass != IC_MEDKIT) @@ -1394,11 +1394,11 @@ INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHa } } - UINT16 ubPerson = WhoIsThere2(usMapPos, pSoldier->pathing.bLevel); + SoldierID ubPerson = WhoIsThere2(usMapPos, pSoldier->pathing.bLevel); // Flugente: apply misc items to other soldiers // sevenfm: check that target soldier is visible - if (ItemCanBeAppliedToOthers(usHandItem) && ubPerson != NOBODY && MercPtrs[ubPerson] && MercPtrs[ubPerson]->bVisible != 0) + if (ItemCanBeAppliedToOthers(usHandItem) && ubPerson != NOBODY && ubPerson->bVisible != 0) { // ATE: AI CANNOT GO THROUGH HERE! BOOLEAN fHadToUseCursorPos = FALSE; @@ -4292,9 +4292,8 @@ BOOLEAN DrawItemPoolList( ITEM_POOL *pItemPool, INT32 sGridNo, UINT8 bCommand, I if (gGameExternalOptions.gfShowBackpackOwner && Item[gWorldItems[pItemPool->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR && LoadBearingEquipment[Item[gWorldItems[pItemPool->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK && - gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY && - MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]) - swprintf(pStr, L"%s (%d) (%s)", ShortItemNames[gWorldItems[pTempItemPool->iItemIndex].object.usItem], gWorldItems[pTempItemPool->iItemIndex].object.ubNumberOfObjects, MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]->GetName()); + gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY) + swprintf(pStr, L"%s (%d) (%s)", ShortItemNames[gWorldItems[pTempItemPool->iItemIndex].object.usItem], gWorldItems[pTempItemPool->iItemIndex].object.ubNumberOfObjects, gWorldItems[pItemPool->iItemIndex].soldierID->GetName()); else swprintf( pStr, L"%s (%d)", ShortItemNames[ gWorldItems[ pTempItemPool->iItemIndex ].object.usItem ], gWorldItems[ pTempItemPool->iItemIndex ].object.ubNumberOfObjects ); } @@ -4303,9 +4302,8 @@ BOOLEAN DrawItemPoolList( ITEM_POOL *pItemPool, INT32 sGridNo, UINT8 bCommand, I if (gGameExternalOptions.gfShowBackpackOwner && Item[gWorldItems[pItemPool->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR && LoadBearingEquipment[Item[gWorldItems[pItemPool->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK && - gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY && - MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]) - swprintf(pStr, L"%s (%s)", ShortItemNames[gWorldItems[pTempItemPool->iItemIndex].object.usItem], MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]->GetName()); + gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY) + swprintf(pStr, L"%s (%s)", ShortItemNames[gWorldItems[pTempItemPool->iItemIndex].object.usItem], gWorldItems[pItemPool->iItemIndex].soldierID->GetName()); else swprintf( pStr, L"%s", ShortItemNames[ gWorldItems[ pTempItemPool->iItemIndex ].object.usItem ] ); } @@ -4413,9 +4411,8 @@ BOOLEAN DrawItemPoolList( ITEM_POOL *pItemPool, INT32 sGridNo, UINT8 bCommand, I if (gGameExternalOptions.gfShowBackpackOwner && Item[gWorldItems[pItemPool->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR && LoadBearingEquipment[Item[gWorldItems[pItemPool->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK && - gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY && - MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]) - swprintf(pStr, L"%s (%d) (%s)", ShortItemNames[gWorldItems[pItemPool->iItemIndex].object.usItem], gWorldItems[pItemPool->iItemIndex].object.ubNumberOfObjects, MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]->GetName()); + gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY) + swprintf(pStr, L"%s (%d) (%s)", ShortItemNames[gWorldItems[pItemPool->iItemIndex].object.usItem], gWorldItems[pItemPool->iItemIndex].object.ubNumberOfObjects, gWorldItems[pItemPool->iItemIndex].soldierID->GetName()); else swprintf( pStr, L"%s (%d)", ShortItemNames[ gWorldItems[ pItemPool->iItemIndex ].object.usItem ], gWorldItems[ pItemPool->iItemIndex ].object.ubNumberOfObjects ); } @@ -4424,9 +4421,8 @@ BOOLEAN DrawItemPoolList( ITEM_POOL *pItemPool, INT32 sGridNo, UINT8 bCommand, I if (gGameExternalOptions.gfShowBackpackOwner && Item[gWorldItems[pItemPool->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR && LoadBearingEquipment[Item[gWorldItems[pItemPool->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK && - gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY && - MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]) - swprintf(pStr, L"%s (%s)", ShortItemNames[gWorldItems[pItemPool->iItemIndex].object.usItem], MercPtrs[gWorldItems[pItemPool->iItemIndex].soldierID]->GetName()); + gWorldItems[pItemPool->iItemIndex].soldierID != NOBODY) + swprintf(pStr, L"%s (%s)", ShortItemNames[gWorldItems[pItemPool->iItemIndex].object.usItem], gWorldItems[pItemPool->iItemIndex].soldierID->GetName()); else swprintf( pStr, L"%s", ShortItemNames[ gWorldItems[ pItemPool->iItemIndex ].object.usItem ] ); } @@ -4814,12 +4810,12 @@ void RenderTopmostFlashingItems( ) BOOLEAN VerifyGiveItem( SOLDIERTYPE *pSoldier, SOLDIERTYPE **ppTargetSoldier ) { SOLDIERTYPE *pTSoldier; - UINT16 usSoldierIndex; + SoldierID usSoldierIndex; OBJECTTYPE *pObject; INT32 sGridNo; - UINT8 ubDirection; - UINT16 ubTargetMercID; + UINT8 ubDirection; + SoldierID ubTargetMercID; // DO SOME CHECKS IF WE CAN DO ANIMATION..... @@ -4828,7 +4824,7 @@ BOOLEAN VerifyGiveItem( SOLDIERTYPE *pSoldier, SOLDIERTYPE **ppTargetSoldier ) sGridNo = pSoldier->aiData.sPendingActionData2; ubDirection = pSoldier->aiData.bPendingActionData3; - ubTargetMercID = (UINT16)pSoldier->aiData.uiPendingActionData4; + ubTargetMercID = static_cast( pSoldier->aiData.uiPendingActionData4 ); usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel ); @@ -4864,7 +4860,7 @@ BOOLEAN VerifyGiveItem( SOLDIERTYPE *pSoldier, SOLDIERTYPE **ppTargetSoldier ) if ( ubTargetMercID != NOBODY ) { - MercPtrs[ ubTargetMercID ]->flags.uiStatusFlags &= (~SOLDIER_ENGAGEDINACTION ); + ubTargetMercID->flags.uiStatusFlags &= (~SOLDIER_ENGAGEDINACTION ); } OBJECTTYPE::DeleteMe( &pSoldier->pTempObject ); @@ -5078,13 +5074,13 @@ void SoldierGiveItemFromAnimation( SOLDIERTYPE *pSoldier ) INT32 AdjustGridNoForItemPlacement( SOLDIERTYPE *pSoldier, INT32 sGridNo ) { - STRUCTURE *pStructure; - INT16 sDesiredLevel; - INT32 sActionGridNo; - BOOLEAN fStructFound = FALSE; - UINT8 ubDirection; - INT32 sAdjustedGridNo; - UINT16 ubTargetID; + STRUCTURE *pStructure; + INT16 sDesiredLevel; + INT32 sActionGridNo; + BOOLEAN fStructFound = FALSE; + UINT8 ubDirection; + INT32 sAdjustedGridNo; + SoldierID ubTargetID; sActionGridNo = sGridNo; @@ -9405,11 +9401,11 @@ void DoInteractiveAction( INT32 sGridNo, SOLDIERTYPE *pSoldier ) // handle the default result of an interactive action // This is called either if no lua action id is set, or by lua if this should happen as a supplement to whatever lua does -void DoInteractiveActionDefaultResult( INT32 sGridNo, UINT16 ubID, BOOLEAN aSuccess ) +void DoInteractiveActionDefaultResult( INT32 sGridNo, SoldierID ubID, BOOLEAN aSuccess ) { SOLDIERTYPE* pSoldier = NULL; if ( ubID != NOBODY ) - pSoldier = MercPtrs[ubID]; + pSoldier = ubID; // we need a valid soldier and a valid object if ( !pSoldier ) @@ -10457,9 +10453,9 @@ void TakePhoto(SOLDIERTYPE* pSoldier, INT32 sGridNo, INT8 bLevel ) InARoom( newgridno, &room ); // check if there is someone here - UINT16 ubid = WhoIsThere2( newgridno, bLevel ); + SoldierID ubid = WhoIsThere2( newgridno, bLevel ); - LuaAddPhotoData( gWorldSectorX, gWorldSectorY, gbWorldSectorZ, newgridno, bLevel, pSoldier->ubProfile, room, ( ubid == NOBODY ) ? NO_PROFILE : MercPtrs[ubid]->ubProfile ); + LuaAddPhotoData( gWorldSectorX, gWorldSectorY, gbWorldSectorZ, newgridno, bLevel, pSoldier->ubProfile, room, ( ubid == NOBODY ) ? NO_PROFILE : ubid->ubProfile ); } } } diff --git a/Tactical/Handle Items.h b/Tactical/Handle Items.h index 596b889a..b01e4b4a 100644 --- a/Tactical/Handle Items.h +++ b/Tactical/Handle Items.h @@ -329,7 +329,7 @@ extern ITEM_POOL *gpItemPool;//dnl ch26 210909 // Flugente: interactive actions void DoInteractiveAction( INT32 sGridNo, SOLDIERTYPE *pSoldier ); -void DoInteractiveActionDefaultResult( INT32 sGridNo, UINT16 ubID, BOOLEAN aSuccess ); +void DoInteractiveActionDefaultResult( INT32 sGridNo, SoldierID ubID, BOOLEAN aSuccess ); BOOLEAN SpendMoney( SOLDIERTYPE *pSoldier, UINT32 aAmount ); // character spends money - either from inventory or the account // Flugente: intel diff --git a/Tactical/Handle UI.cpp b/Tactical/Handle UI.cpp index 2ad4e76e..aa5c7910 100644 --- a/Tactical/Handle UI.cpp +++ b/Tactical/Handle UI.cpp @@ -429,41 +429,41 @@ INT16 guiCreateBadGuyIndex = 8; // FLAGS // These flags are set for a single frame execution and then are reset for the next iteration. -BOOLEAN gfUIDisplayActionPoints = FALSE; +BOOLEAN gfUIDisplayActionPoints = FALSE; BOOLEAN gfUIDisplayActionPointsInvalid = FALSE; BOOLEAN gfUIDisplayActionPointsBlack = FALSE; -BOOLEAN gfUIDisplayActionPointsCenter = FALSE; +BOOLEAN gfUIDisplayActionPointsCenter = FALSE; -INT16 gUIDisplayActionPointsOffY = 0; -INT16 gUIDisplayActionPointsOffX = 0; -BOOLEAN gfUIDoNotHighlightSelMerc = FALSE; -BOOLEAN gfUIHandleSelection = FALSE; -BOOLEAN gfUIHandleSelectionAboveGuy = FALSE; -BOOLEAN gfUIInDeadlock = FALSE; -UINT16 gUIDeadlockedSoldier = NOBODY; -BOOLEAN gfUIHandleShowMoveGrid = FALSE; +INT16 gUIDisplayActionPointsOffY = 0; +INT16 gUIDisplayActionPointsOffX = 0; +BOOLEAN gfUIDoNotHighlightSelMerc = FALSE; +BOOLEAN gfUIHandleSelection = FALSE; +BOOLEAN gfUIHandleSelectionAboveGuy = FALSE; +BOOLEAN gfUIInDeadlock = FALSE; +UINT16 gUIDeadlockedSoldier = NOBODY; +BOOLEAN gfUIHandleShowMoveGrid = FALSE; INT32 gsUIHandleShowMoveGridLocation = NOWHERE ; -BOOLEAN gfUIOverItemPool = FALSE; -INT32 gfUIOverItemPoolGridNo = 0; -INT16 gsCurrentActionPoints = 1; -BOOLEAN gfUIHandlePhysicsTrajectory = FALSE; -BOOLEAN gfUIMouseOnValidCatcher = FALSE; -UINT16 gubUIValidCatcherID = 0; +BOOLEAN gfUIOverItemPool = FALSE; +INT32 gfUIOverItemPoolGridNo = 0; +INT16 gsCurrentActionPoints = 1; +BOOLEAN gfUIHandlePhysicsTrajectory = FALSE; +BOOLEAN gfUIMouseOnValidCatcher = FALSE; +SoldierID gubUIValidCatcherID = NOBODY; -BOOLEAN gfUIConfirmExitArrows = FALSE; +BOOLEAN gfUIConfirmExitArrows = FALSE; -BOOLEAN gfUIShowCurIntTile = FALSE; +BOOLEAN gfUIShowCurIntTile = FALSE; -BOOLEAN gfUIWaitingForUserSpeechAdvance = FALSE; // Waiting for key input/mouse click to advance speech -BOOLEAN gfUIKeyCheatModeOn = FALSE; // Sets cool cheat keys on -BOOLEAN gfUIAllMoveOn = FALSE; // Sets to all move -BOOLEAN gfUICanBeginAllMoveCycle = FALSE; // GEts set so we know that the next right-click is a move-call inc\stead of a movement cycle through +BOOLEAN gfUIWaitingForUserSpeechAdvance = FALSE; // Waiting for key input/mouse click to advance speech +BOOLEAN gfUIKeyCheatModeOn = FALSE; // Sets cool cheat keys on +BOOLEAN gfUIAllMoveOn = FALSE; // Sets to all move +BOOLEAN gfUICanBeginAllMoveCycle = FALSE; // GEts set so we know that the next right-click is a move-call inc\stead of a movement cycle through -INT32 gsSelectedGridNo = 0; -INT16 gsSelectedLevel = I_GROUND_LEVEL; -INT16 gsSelectedGuy = NOBODY; +INT32 gsSelectedGridNo = 0; +INT16 gsSelectedLevel = I_GROUND_LEVEL; +INT16 gsSelectedGuy = NOBODY; BOOLEAN gfUIDisplayDamage = FALSE; INT8 gbDamage = 0; diff --git a/Tactical/Handle UI.h b/Tactical/Handle UI.h index 22bd3fa4..ce634e5c 100644 --- a/Tactical/Handle UI.h +++ b/Tactical/Handle UI.h @@ -181,7 +181,7 @@ extern UI_EVENT gEvents[ NUM_UI_EVENTS ]; extern UI_MODE gCurrentUIMode; extern UI_MODE gOldUIMode; extern UINT32 guiCurrentEvent; -extern INT16 gsSelectedLevel; +extern INT16 gsSelectedLevel; extern BOOLEAN gfPlotNewMovement; extern UINT32 guiPendingOverrideEvent; @@ -191,34 +191,34 @@ extern BOOLEAN gfUIDisplayActionPoints; extern BOOLEAN gfUIDisplayActionPointsInvalid; extern BOOLEAN gfUIDisplayActionPointsBlack; extern BOOLEAN gfUIDisplayActionPointsCenter; -extern INT16 gUIDisplayActionPointsOffY; -extern INT16 gUIDisplayActionPointsOffX; +extern INT16 gUIDisplayActionPointsOffY; +extern INT16 gUIDisplayActionPointsOffX; extern BOOLEAN gfUIDoNotHighlightSelMerc; extern UINT32 guiShowUPDownArrows; extern BOOLEAN gfUIHandleSelection; extern BOOLEAN gfUIHandleSelectionAboveGuy; -extern INT32 gsSelectedGridNo; -extern INT16 gsSelectedGuy; +extern INT32 gsSelectedGridNo; +extern INT16 gsSelectedGuy; extern BOOLEAN gfUIInDeadlock; extern UINT16 gUIDeadlockedSoldier; extern BOOLEAN gfUIMouseOnValidCatcher; -extern UINT16 gubUIValidCatcherID; +extern SoldierID gubUIValidCatcherID; extern BOOLEAN gUIUseReverse; extern BOOLEAN gfUIHandleShowMoveGrid; -extern INT32 gsUIHandleShowMoveGridLocation; +extern INT32 gsUIHandleShowMoveGridLocation; extern BOOLEAN gfUIDisplayDamage; extern INT8 gbDamage; -extern INT32 gsDamageGridNo; +extern INT32 gsDamageGridNo; extern BOOLEAN gfFontPopupDo; extern BOOLEAN gUITargetReady; extern BOOLEAN gUITargetShotWaiting; -extern INT32 gsUITargetShotGridNo; +extern INT32 gsUITargetShotGridNo; extern CHAR16 gzLocation[ 20 ]; extern BOOLEAN gfUIBodyHitLocation; diff --git a/Tactical/Interface Items.cpp b/Tactical/Interface Items.cpp index c6235487..cdd87caa 100644 --- a/Tactical/Interface Items.cpp +++ b/Tactical/Interface Items.cpp @@ -3548,7 +3548,7 @@ void DegradeNewlyAddedItems( ) // GET SOLDIER if ( gTeamPanel[ cnt2 ].fOccupied ) { - pSoldier = MercPtrs[ gTeamPanel[ cnt2 ].ubID ]; + pSoldier = gTeamPanel[ cnt2 ].ubID; UINT32 invsize = pSoldier->inv.size(); for ( UINT32 cnt = 0; cnt < invsize; ++cnt ) @@ -4434,7 +4434,7 @@ void INVRenderSteeringWheel( UINT32 uiBuffer, UINT32 uiSteeringWheelIndex, SOLDI return; } - pVehicle = GetSoldierStructureForVehicle ( MercPtrs[ pSoldier->ubID ]->iVehicleId ); + pVehicle = GetSoldierStructureForVehicle ( pSoldier->ubID->iVehicleId ); if ( pVehicle == NULL ) { @@ -8796,11 +8796,11 @@ void DrawItemTileCursor( ) /*CHRISL: For some reason it's possible that gpItemPointerSoldier is not correctly set when we come into this function, but we require it to be set for this function to work. So for now, let's set it using gusUIFullTargetID.*/ if(gpItemPointerSoldier->exists() == false) - gpItemPointerSoldier = MercPtrs[ gusUIFullTargetID ]; + gpItemPointerSoldier = gusUIFullTargetID; if ( gfUIFullTargetFound ) { // Force mouse position to guy... - usMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo; + usMapPos = gusUIFullTargetID->sGridNo; } gusCurMousePos = usMapPos; @@ -8871,7 +8871,7 @@ void DrawItemTileCursor( ) if ( gfUIFullTargetFound ) { // Get soldier - pSoldier = MercPtrs[ gusUIFullTargetID ]; + pSoldier = gusUIFullTargetID; // Are they on our team? // ATE: Can't be an EPC @@ -8881,7 +8881,7 @@ void DrawItemTileCursor( ) { // OK, on a valid pass gfUIMouseOnValidCatcher = 4; - gubUIValidCatcherID = gusUIFullTargetID; + gubUIValidCatcherID = gusUIFullTargetID; } else { @@ -8890,7 +8890,7 @@ void DrawItemTileCursor( ) { // OK, set global that this buddy can see catch... gfUIMouseOnValidCatcher = TRUE; - gubUIValidCatcherID = gusUIFullTargetID; + gubUIValidCatcherID = gusUIFullTargetID; } } } @@ -8927,7 +8927,7 @@ void DrawItemTileCursor( ) gubUIValidCatcherID = gusUIFullTargetID; // If this is a robot, change to say 'reload' - if ( MercPtrs[ gusUIFullTargetID ]->flags.uiStatusFlags & SOLDIER_ROBOT ) + if ( gusUIFullTargetID->flags.uiStatusFlags & SOLDIER_ROBOT ) { gfUIMouseOnValidCatcher = 3; } @@ -8947,9 +8947,9 @@ void DrawItemTileCursor( ) // Get AP cost - if ( MercPtrs[ gusUIFullTargetID ]->flags.uiStatusFlags & SOLDIER_ROBOT ) + if ( gusUIFullTargetID->flags.uiStatusFlags & SOLDIER_ROBOT ) { - sAPCost = GetAPsToReloadRobot( gpItemPointerSoldier, MercPtrs[ gusUIFullTargetID ] ); + sAPCost = GetAPsToReloadRobot( gpItemPointerSoldier, gusUIFullTargetID ); } else { @@ -9011,7 +9011,7 @@ void DrawItemTileCursor( ) { if ( gfUIMouseOnValidCatcher ) { - switch( gAnimControl[ MercPtrs[ gubUIValidCatcherID ]->usAnimState ].ubHeight ) + switch( gAnimControl[ gubUIValidCatcherID->usAnimState ].ubHeight ) { case ANIM_STAND: @@ -9029,7 +9029,7 @@ void DrawItemTileCursor( ) break; } - if ( MercPtrs[ gubUIValidCatcherID ]->pathing.bLevel > 0 ) + if ( gubUIValidCatcherID->pathing.bLevel > 0 ) { sEndZ = 0; } @@ -9135,9 +9135,9 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos ) if ( gfUIFullTargetFound ) { // Force mouse position to guy... - usMapPos = MercPtrs[ gusUIFullTargetID ]->sGridNo; + usMapPos = gusUIFullTargetID->sGridNo; - if ( gAnimControl[ MercPtrs[ gusUIFullTargetID ]->usAnimState ].uiFlags & ANIM_MOVING ) + if ( gAnimControl[ gusUIFullTargetID->usAnimState ].uiFlags & ANIM_MOVING ) { return( FALSE ); } @@ -9380,14 +9380,14 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos ) sGridNo = usMapPos; // Kaiden: Vehicle Inventory change - Commented the following If test: - //if ( sDist <= PASSING_ITEM_DISTANCE_OKLIFE && gfUIFullTargetFound && MercPtrs[ gusUIFullTargetID ]->bTeam == gbPlayerNum && !AM_AN_EPC( MercPtrs[ gusUIFullTargetID ] ) && !( MercPtrs[ gusUIFullTargetID ]->flags.uiStatusFlags & SOLDIER_VEHICLE ) ) + //if ( sDist <= PASSING_ITEM_DISTANCE_OKLIFE && gfUIFullTargetFound && gusUIFullTargetID->bTeam == gbPlayerNum && !AM_AN_EPC( gusUIFullTargetID ) && !( gusUIFullTargetID->flags.uiStatusFlags & SOLDIER_VEHICLE ) ) // And added this one instead: - if ( ( sDist <= PASSING_ITEM_DISTANCE_OKLIFE && gfUIFullTargetFound && MercPtrs[ gusUIFullTargetID ]->bTeam == gbPlayerNum && !AM_AN_EPC( MercPtrs[ gusUIFullTargetID ] ) ) && !( (!gGameExternalOptions.fVehicleInventory) && (MercPtrs[ gusUIFullTargetID ]->flags.uiStatusFlags & SOLDIER_VEHICLE) ) ) + if ( ( sDist <= PASSING_ITEM_DISTANCE_OKLIFE && gfUIFullTargetFound && gusUIFullTargetID->bTeam == gbPlayerNum && !AM_AN_EPC( gusUIFullTargetID ) ) && !( (!gGameExternalOptions.fVehicleInventory) && (gusUIFullTargetID->flags.uiStatusFlags & SOLDIER_VEHICLE) ) ) { // OK, do the transfer... { - pSoldier = MercPtrs[ gusUIFullTargetID ]; + pSoldier = gusUIFullTargetID; { // Change to inventory.... @@ -9489,7 +9489,7 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos ) // IF OVER OUR GUY... if ( gfUIFullTargetFound ) { - pSoldier = MercPtrs[ gusUIFullTargetID ]; + pSoldier = gusUIFullTargetID; // Kaiden: Vehicle Inventory change - Commented the following If Test: //if ( pSoldier->bTeam == gbPlayerNum && pSoldier->stats.bLife >= OKLIFE && !AM_AN_EPC( pSoldier ) && !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) ) @@ -11483,9 +11483,9 @@ void RenderItemPickupMenu( ) Item[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].object.usItem].usItemClass == IC_LBEGEAR && LoadBearingEquipment[Item[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].object.usItem].ubClassIndex].lbeClass == BACKPACK && gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID != NOBODY && - MercPtrs[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID]) + gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID) //swprintf(pStr, L"%s (%s)", ShortItemNames[pObject->usItem], MercPtrs[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID]->GetName()); - swprintf(pStr, L"(%s)", MercPtrs[gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID]->GetName()); + swprintf(pStr, L"(%s)", gWorldItems[gItemPickupMenu.ItemPoolSlots[cnt]->iItemIndex].soldierID->GetName()); else swprintf( pStr, L"%s", ShortItemNames[ pObject->usItem ] ); } @@ -12757,7 +12757,7 @@ BOOLEAN LoadItemCursorFromSavedGame( HWFILE hFile ) } else { - gpItemPointerSoldier = MercPtrs[ SaveStruct.ubSoldierID ]; + gpItemPointerSoldier = SaveStruct.ubSoldierID; } // Inv slot diff --git a/Tactical/Interface Items.h b/Tactical/Interface Items.h index e08f44e3..05192f76 100644 --- a/Tactical/Interface Items.h +++ b/Tactical/Interface Items.h @@ -166,7 +166,7 @@ public: BOOLEAN Save(HWFILE hFile); BOOLEAN Load(HWFILE hFile); - UINT16 ubSoldierID; + SoldierID ubSoldierID; UINT8 ubInvSlot; BOOLEAN fCursorActive; OBJECTTYPE ItemPointerInfo; diff --git a/Tactical/Interface Panels.cpp b/Tactical/Interface Panels.cpp index e5663769..d606dfb7 100644 --- a/Tactical/Interface Panels.cpp +++ b/Tactical/Interface Panels.cpp @@ -569,7 +569,7 @@ void UpdateSelectedSoldier( UINT16 usSoldierID, BOOLEAN fSelect ); void CheckForFacePanelStartAnims( SOLDIERTYPE *pSoldier, INT16 sPanelX, INT16 sPanelY ); void HandleSoldierFaceFlash( SOLDIERTYPE *pSoldier, INT16 sFaceX, INT16 sFaceY ); -BOOLEAN PlayerExistsInSlot( UINT16 ubID ); +BOOLEAN PlayerExistsInSlot( SoldierID ubID ); void UpdateStatColor( UINT32 uiTimer, BOOLEAN fIncrease, BOOLEAN fDamaged, BOOLEAN fAugmented ); // SANDRO - added argument // Flugente - me too extern void UpdateItemHatches(); @@ -6812,7 +6812,7 @@ void TMClickSecondHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason ) } -BOOLEAN PlayerExistsInSlot( UINT16 ubID ) +BOOLEAN PlayerExistsInSlot( SoldierID ubID ) { INT32 cnt; @@ -6870,17 +6870,17 @@ BOOLEAN RemovePlayerFromTeamSlotGivenMercID( UINT16 ubMercID ) } -void AddPlayerToInterfaceTeamSlot( UINT16 ubID ) +void AddPlayerToInterfaceTeamSlot( SoldierID ubID ) { INT32 cnt; // If we are a vehicle don't ever add..... - if ( MercPtrs[ ubID ]->flags.uiStatusFlags & SOLDIER_VEHICLE ) + if ( ubID->flags.uiStatusFlags & SOLDIER_VEHICLE ) { return; } - if ( !( MercPtrs[ ubID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) ) + if ( !( ubID->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) ) { if ( !PlayerExistsInSlot( ubID ) ) { @@ -6899,7 +6899,7 @@ void AddPlayerToInterfaceTeamSlot( UINT16 ubID ) fInterfacePanelDirty = DIRTYLEVEL2; // Set ID to do open anim - MercPtrs[ ubID ]->flags.fUInewMerc = TRUE; + ubID->flags.fUInewMerc = TRUE; break; } @@ -6909,14 +6909,14 @@ void AddPlayerToInterfaceTeamSlot( UINT16 ubID ) else { // anv: for passengers, position on team panel will be linked with seat in vehicle - if ( MercPtrs[ ubID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) + if ( ubID->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) { - SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( MercPtrs[ ubID ]->iVehicleId ); + SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( ubID->iVehicleId ); if( pVehicle != NULL ) { - for( UINT8 iCounter = 0; iCounter < gNewVehicle[ pVehicleList[ MercPtrs[ ubID ]->iVehicleId ].ubVehicleType ].iNewSeatingCapacities; iCounter++ ) + for( UINT8 iCounter = 0; iCounter < gNewVehicle[ pVehicleList[ ubID->iVehicleId ].ubVehicleType ].iNewSeatingCapacities; iCounter++ ) { - SOLDIERTYPE *pPassenger = pVehicleList[ MercPtrs[ ubID ]->iVehicleId ].pPassengers[ iCounter ]; + SOLDIERTYPE *pPassenger = pVehicleList[ ubID->iVehicleId ].pPassengers[ iCounter ]; if( pPassenger != NULL && pPassenger->ubID == ubID ) { gTeamPanel[ iCounter ].fOccupied = TRUE; @@ -6929,7 +6929,7 @@ void AddPlayerToInterfaceTeamSlot( UINT16 ubID ) fInterfacePanelDirty = DIRTYLEVEL2; // Set ID to do open anim - MercPtrs[ ubID ]->flags.fUInewMerc = TRUE; + ubID->flags.fUInewMerc = TRUE; return; } diff --git a/Tactical/Interface Panels.h b/Tactical/Interface Panels.h index e109ace3..95563cf2 100644 --- a/Tactical/Interface Panels.h +++ b/Tactical/Interface Panels.h @@ -83,11 +83,11 @@ SoldierID GetSMPanelCurrentMerc( ); void UpdateSMPanel( ); BOOLEAN InitTEAMSlots( ); -void AddPlayerToInterfaceTeamSlot( UINT16 ubID ); +void AddPlayerToInterfaceTeamSlot( SoldierID ubID ); BOOLEAN RemovePlayerFromInterfaceTeamSlot( UINT8 ubID ); BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, UINT16 * pubID ); void RemoveAllPlayersFromSlot( ); -BOOLEAN PlayerExistsInSlot( UINT16 ubID ); +BOOLEAN PlayerExistsInSlot( SoldierID ubID ); BOOLEAN RemovePlayerFromTeamSlotGivenMercID( UINT16 ubMercID ); void CheckForAndAddMercToTeamPanel( SOLDIERTYPE *pSoldier ); void CleanUpStack( OBJECTTYPE * pObj, OBJECTTYPE * pCursorObj ); @@ -105,7 +105,7 @@ void InitOldInventorySystem( ); // ATE TO BE MOVED TO INTERFACE_ITEMS.C extern INT8 gbNewItem[ NUM_INV_SLOTS ]; extern INT8 gbNewItemCycle[ NUM_INV_SLOTS ]; -extern UINT8 gubNewItemMerc; +extern UINT8 gubNewItemMerc; void ShowRadioLocator( SoldierID ubID, UINT8 ubLocatorSpeed ); void EndRadioLocator( UINT16 ubID ); @@ -118,12 +118,12 @@ extern BOOLEAN gfDisableTacticalPanelButtons; typedef struct { - UINT16 ubID; - BOOLEAN fOccupied; + SoldierID ubID; + BOOLEAN fOccupied; } TEAM_PANEL_SLOTS_TYPE; -extern TEAM_PANEL_SLOTS_TYPE gTeamPanel[ NUM_TEAM_SLOTS ]; +extern TEAM_PANEL_SLOTS_TYPE gTeamPanel[ NUM_TEAM_SLOTS ]; diff --git a/Tactical/Item Types.h b/Tactical/Item Types.h index 2034d16b..db414597 100644 --- a/Tactical/Item Types.h +++ b/Tactical/Item Types.h @@ -1,7 +1,7 @@ #ifndef ITEM_TYPES_H #define ITEM_TYPES_H -#include "types.h" +#include "Overhead Types.h" #include #include // THE_BOB : added for pocket popup definitions @@ -408,15 +408,15 @@ namespace ObjectDataStructs { struct OBJECT_BOMBS_AND_OTHER { // this is used by placed bombs, switches, and the action item INT16 bBombStatus; // % status - INT8 bDetonatorType; // timed, remote, or pressure-activated + INT8 bDetonatorType; // timed, remote, or pressure-activated UINT16 usBombItem; // the usItem of the bomb. union { INT8 bDelay; // >=0 values used only INT8 bFrequency; // >=0 values used only }; - UINT16 ubBombOwner; // side which placed the bomb - UINT8 bActionValue; // this is used by the ACTION_ITEM fake item + SoldierID ubBombOwner; // side which placed the bomb + UINT8 bActionValue; // this is used by the ACTION_ITEM fake item union { UINT8 ubTolerance; // tolerance value for panic triggers diff --git a/Tactical/Items.cpp b/Tactical/Items.cpp index cbcdfcd5..f17ed417 100644 --- a/Tactical/Items.cpp +++ b/Tactical/Items.cpp @@ -15287,10 +15287,10 @@ BOOLEAN ObjectIsExternalFeeder(SOLDIERTYPE* pSoldier, OBJECTTYPE * pObject) if ( !pSoldier || !pObject) return( FALSE ); - UINT16 usSoldierFeedingTarget1 = 0; + SoldierID usSoldierFeedingTarget1 = NOBODY; UINT16 usGunSlot1 = 0; UINT16 usAmmoSlot1 = 0; - UINT16 usSoldierFeedingTarget2 = 0; + SoldierID usSoldierFeedingTarget2 = NOBODY; UINT16 usGunSlot2 = 0; UINT16 usAmmoSlot2 = 0; if ( pSoldier->IsFeedingExternal(&usSoldierFeedingTarget1, &usGunSlot1, &usAmmoSlot1, &usSoldierFeedingTarget2, &usGunSlot2, &usAmmoSlot2) ) @@ -15345,10 +15345,10 @@ OBJECTTYPE* GetExternalFeedingObject(SOLDIERTYPE* pSoldier, OBJECTTYPE * pObject continue; // we check if that guy is feeding someone, and that someone is really us - UINT16 usTeamSoldierFeedingTarget1 = 0; + SoldierID usTeamSoldierFeedingTarget1 = NOBODY; UINT16 usGunSlot1 = 0; UINT16 usAmmoSlot1 = 0; - UINT16 usTeamSoldierFeedingTarget2 = 0; + SoldierID usTeamSoldierFeedingTarget2 = NOBODY; UINT16 usGunSlot2 = 0; UINT16 usAmmoSlot2 = 0; if ( pTeamSoldier->IsFeedingExternal(&usTeamSoldierFeedingTarget1, &usGunSlot1, &usAmmoSlot1, &usTeamSoldierFeedingTarget2, &usGunSlot2, &usAmmoSlot2) ) diff --git a/Tactical/LOS.cpp b/Tactical/LOS.cpp index 9d9154c6..fff95973 100644 --- a/Tactical/LOS.cpp +++ b/Tactical/LOS.cpp @@ -4390,7 +4390,7 @@ UINT8 SoldierToSoldierBodyPartChanceToGetThrough( SOLDIERTYPE * pStartSoldier, S return( ChanceToGetThrough( pStartSoldier, (FLOAT) sX, (FLOAT) sY, dEndZPos ) ); } -UINT8 SoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel, UINT16 ubTargetID ) +UINT8 SoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel, SoldierID ubTargetID ) { FLOAT dEndZPos; INT16 sXPos; diff --git a/Tactical/LOS.h b/Tactical/LOS.h index 01bd9679..a03b4216 100644 --- a/Tactical/LOS.h +++ b/Tactical/LOS.h @@ -152,7 +152,7 @@ UINT8 SoldierToSoldierChanceToGetThrough( SOLDIERTYPE * pStartSoldier, SOLDIERTY UINT8 SoldierToSoldierBodyPartChanceToGetThrough( SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier, UINT8 ubAimLocation ); UINT8 AISoldierToSoldierChanceToGetThrough( SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier ); UINT8 AISoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel ); -UINT8 SoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel, UINT16 ubTargetID ); +UINT8 SoldierToLocationChanceToGetThrough( SOLDIERTYPE * pStartSoldier, INT32 sGridNo, INT8 bLevel, INT8 bCubeLevel, SoldierID ubTargetID ); INT32 SoldierToLocationWindowTest( SOLDIERTYPE * pStartSoldier, INT32 sEndGridNo ); // sevenfm: AI LOS functions INT32 LOS_Raised(SOLDIERTYPE * pStartSoldier, SOLDIERTYPE * pEndSoldier, int iTileSightLimit = CALC_FROM_ALL_DIRS, UINT8 ubAimLocation = LOS_POS); @@ -261,4 +261,4 @@ void DamageRiotShield( SOLDIERTYPE* pSoldier, INT32& rsDamage, INT32& rsSecondar extern INT8 GetStealth(SOLDIERTYPE* pSoldier); extern INT8 GetSightAdjustmentBasedOnLBE(SOLDIERTYPE* pSoldier); -#endif \ No newline at end of file +#endif diff --git a/Tactical/Overhead.h b/Tactical/Overhead.h index d001ad45..e9a09bbb 100644 --- a/Tactical/Overhead.h +++ b/Tactical/Overhead.h @@ -128,7 +128,7 @@ struct TacticalStatusType BOOLEAN fCantGetThrough; INT32 sCantGetThroughGridNo; INT32 sCantGetThroughSoldierGridNo; - UINT16 ubCantGetThroughID; + SoldierID ubCantGetThroughID; BOOLEAN fDidGameJustStart; BOOLEAN fStatChangeCheatOn; UINT8 ubLastRequesterTargetID; diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index 37cf962a..79fd04e8 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -2285,14 +2285,13 @@ void SOLDIERTYPE::CalcNewActionPoints( void ) void SOLDIERTYPE::DoNinjaAttack( void ) { - //UINT32 uiMercFlags; - UINT16 usSoldierIndex; - SOLDIERTYPE *pTSoldier; - UINT8 ubTDirection; - UINT8 ubTargetStance; + //UINT32 uiMercFlags; + SOLDIERTYPE *pTSoldier; + UINT8 ubTDirection; + UINT8 ubTargetStance; - usSoldierIndex = WhoIsThere2( this->sTargetGridNo, this->pathing.bLevel ); + SoldierID usSoldierIndex = WhoIsThere2( this->sTargetGridNo, this->pathing.bLevel ); if ( usSoldierIndex != NOBODY ) { GetSoldier( &pTSoldier, usSoldierIndex ); @@ -9449,8 +9448,8 @@ void SOLDIERTYPE::BeginSoldierClimbUpRoof(void) return;//hayden disable climbing roof } - INT8 bNewDirection; - UINT16 ubWhoIsThere; + INT8 bNewDirection; + SoldierID ubWhoIsThere; if (FindHeigherLevel(this, this->sGridNo, this->ubDirection, &bNewDirection) && (this->pathing.bLevel == 0)) { @@ -9623,8 +9622,8 @@ void SOLDIERTYPE::BeginSoldierClimbWindow( void ) void SOLDIERTYPE::BeginSoldierClimbWall( void ) { - INT8 bNewDirection; - UINT16 ubWhoIsThere; + INT8 bNewDirection; + SoldierID ubWhoIsThere; if ( FindWallJumpDirection( this, this->sGridNo, this->ubDirection, &bNewDirection ) && (this->pathing.bLevel == 0) ) { @@ -9660,8 +9659,8 @@ void SOLDIERTYPE::BeginSoldierClimbWall( void ) void SOLDIERTYPE::BeginSoldierClimbWallUp( void ) { - INT8 bNewDirection; - UINT16 ubWhoIsThere; + INT8 bNewDirection; + SoldierID ubWhoIsThere; if ( FindLowerLevelWall( this, this->sGridNo, this->ubDirection, &bNewDirection ) && (this->pathing.bLevel > 0) ) { @@ -11309,8 +11308,8 @@ BOOLEAN SOLDIERTYPE::CheckSoldierHitRoof( void ) void SOLDIERTYPE::BeginSoldierClimbDownRoof(void) { - INT8 bNewDirection; - UINT16 ubWhoIsThere; + INT8 bNewDirection; + SoldierID ubWhoIsThere; if (FindLowerLevel(this, this->sGridNo, this->ubDirection, &bNewDirection) && (this->pathing.bLevel > 0)) { @@ -12469,7 +12468,7 @@ void SOLDIERTYPE::EVENT_SoldierBeginBladeAttack( INT32 sGridNo, UINT8 ubDirectio { SOLDIERTYPE *pTSoldier; //UINT32 uiMercFlags; - UINT16 usSoldierIndex; + SoldierID usSoldierIndex; UINT8 ubTDirection; ROTTING_CORPSE *pCorpse; @@ -12692,7 +12691,7 @@ void SOLDIERTYPE::EVENT_SoldierBeginPunchAttack( INT32 sGridNo, UINT8 ubDirectio BOOLEAN fMartialArtist = FALSE; SOLDIERTYPE *pTSoldier; //UINT32 uiMercFlags; - UINT16 usSoldierIndex; + SoldierID usSoldierIndex; UINT8 ubTDirection; UINT16 usItem; @@ -15148,7 +15147,7 @@ void SOLDIERTYPE::InventoryExplosion( void ) } // Flugente: do we currently provide ammo (pAmmoSlot) for someone else's (pubId) gun (pGunSlot)? -BOOLEAN SOLDIERTYPE::IsFeedingExternal( UINT16 * pubId1, UINT16* pGunSlot1, UINT16* pAmmoSlot1, UINT16 * pubId2, UINT16* pGunSlot2, UINT16* pAmmoSlot2 ) +BOOLEAN SOLDIERTYPE::IsFeedingExternal( SoldierID * pubId1, UINT16* pGunSlot1, UINT16* pAmmoSlot1, SoldierID * pubId2, UINT16* pGunSlot2, UINT16* pAmmoSlot2 ) { // make sure we have to check this... if ( gGameExternalOptions.ubExternalFeeding == 0 ) diff --git a/Tactical/Soldier Control.h b/Tactical/Soldier Control.h index 81498083..eebd00ee 100644 --- a/Tactical/Soldier Control.h +++ b/Tactical/Soldier Control.h @@ -1839,7 +1839,7 @@ public: void InventoryExplosion( void ); // Flugente: do we currently provide ammo (pAmmoSlot) for someone else's (pubId) gun (pGunSlot)? - BOOLEAN IsFeedingExternal(UINT16 * pubId1, UINT16* pGunSlot1, UINT16* pAmmoSlot1, UINT16 * pubId2, UINT16* pGunSlot2, UINT16* pAmmoSlot2); + BOOLEAN IsFeedingExternal(SoldierID * pubId1, UINT16* pGunSlot1, UINT16* pAmmoSlot1, SoldierID* pubId2, UINT16* pGunSlot2, UINT16* pAmmoSlot2); // Flugente: return first found object with a specific flag from our inventory OBJECTTYPE* GetObjectWithFlag( UINT64 aFlag ); diff --git a/Tactical/Vehicles.cpp b/Tactical/Vehicles.cpp index bf7c5f98..b4e6ad96 100644 --- a/Tactical/Vehicles.cpp +++ b/Tactical/Vehicles.cpp @@ -176,7 +176,7 @@ INT16 sVehicleInternalOrigArmorValues[ NUMBER_OF_TYPES_OF_VEHICLES ][ NUMBER_OF_ // set the driver of the vehicle -void SetDriver( INT32 iID, UINT16 ubID ); +void SetDriver( INT32 iID, SoldierID ubID ); //void RemoveSoldierFromVehicleBetweenSectors( pSoldier, iId ); @@ -1556,7 +1556,7 @@ SOLDIERTYPE *GetDriver( INT32 iID ) INT32 iCounter; if( pVehicleList[ iID ].ubDriver != NOBODY ) { - return( MercPtrs[ pVehicleList[ iID ].ubDriver ] ); + return( pVehicleList[ iID ].ubDriver ); } else { @@ -1573,25 +1573,27 @@ SOLDIERTYPE *GetDriver( INT32 iID ) } -void SetDriver( INT32 iID, UINT16 ubID ) +void SetDriver( INT32 iID, SoldierID ubID ) { // anv: first make sure previous driver won't be driver anymore - if( pVehicleList[ iID ].ubDriver != NOBODY && MercPtrs[ pVehicleList[ iID ].ubDriver ]->iVehicleId == iID ) + SOLDIERTYPE* prevDriver = pVehicleList[iID].ubDriver; + + if( prevDriver != NOBODY && prevDriver->iVehicleId == iID ) { - if( MercPtrs[ pVehicleList[ iID ].ubDriver ] ) + if( prevDriver ) { - MercPtrs[ pVehicleList[ iID ].ubDriver ]->flags.uiStatusFlags &= ~(SOLDIER_DRIVER); - if( GetSeatIndexFromSoldier( MercPtrs[ pVehicleList[ iID ].ubDriver ] ) != (-1) ) + prevDriver->flags.uiStatusFlags &= ~(SOLDIER_DRIVER); + if( GetSeatIndexFromSoldier( prevDriver ) != (-1) ) { - MercPtrs[ pVehicleList[ iID ].ubDriver ]->flags.uiStatusFlags |= SOLDIER_PASSENGER; + prevDriver->flags.uiStatusFlags |= SOLDIER_PASSENGER; } } } // set proper flags if( ubID != NOBODY ) { - MercPtrs[ ubID ]->flags.uiStatusFlags |= SOLDIER_DRIVER; - MercPtrs[ ubID ]->flags.uiStatusFlags &= ~(SOLDIER_PASSENGER); + ubID->flags.uiStatusFlags |= SOLDIER_DRIVER; + ubID->flags.uiStatusFlags &= ~(SOLDIER_PASSENGER); } pVehicleList[ iID ].ubDriver = ubID; } @@ -1821,7 +1823,7 @@ BOOLEAN ExitVehicle( SOLDIERTYPE *pSoldier ) } else { - UINT16 usTempSelectedSoldier = gusSelectedSoldier; + SoldierID usTempSelectedSoldier = gusSelectedSoldier; SetCurrentSquad( CurrentSquad(), TRUE ); @@ -1984,7 +1986,7 @@ void AddPassangersToTeamPanel( INT32 iId ) } -void VehicleTakeDamage( UINT8 ubID, UINT8 ubReason, INT16 sDamage, INT32 sGridNo, UINT16 ubAttackerID ) +void VehicleTakeDamage( UINT8 ubID, UINT8 ubReason, INT16 sDamage, INT32 sGridNo, SoldierID ubAttackerID ) { if ( ubReason != TAKE_DAMAGE_GAS_FIRE && ubReason != TAKE_DAMAGE_GAS_NOTFIRE ) { @@ -2013,7 +2015,7 @@ void VehicleTakeDamage( UINT8 ubID, UINT8 ubReason, INT16 sDamage, INT32 sGridNo } -void HandleCriticalHitForVehicleInLocation( UINT8 ubID, INT16 sDmg, INT32 sGridNo, UINT16 ubAttackerID ) +void HandleCriticalHitForVehicleInLocation( UINT8 ubID, INT16 sDmg, INT32 sGridNo, SoldierID ubAttackerID ) { // check state the armor was s'posed to be in vs. the current state..the difference / orig state is % chance // that a critical hit will occur diff --git a/Tactical/Vehicles.h b/Tactical/Vehicles.h index ceef6143..6cae9f84 100644 --- a/Tactical/Vehicles.h +++ b/Tactical/Vehicles.h @@ -289,7 +289,7 @@ typedef struct BOOLEAN fBetweenSectors; // between sectors? INT32 sGridNo; // location in tactical SOLDIERTYPE *pPassengers[ MAXPASSENGERS ]; - UINT16 ubDriver; + SoldierID ubDriver; INT16 sInternalHitLocations[ NUMBER_OF_EXTERNAL_HIT_LOCATIONS_ON_VEHICLE ]; INT16 sArmourType; INT16 sExternalArmorLocationsStatus[ NUMBER_OF_EXTERNAL_HIT_LOCATIONS_ON_VEHICLE ]; @@ -404,7 +404,7 @@ BOOLEAN SwapVehicleSeat( SOLDIERTYPE *pVehicle, SOLDIERTYPE *pSoldier, UINT8 ubS void AddPassangersToTeamPanel( INT32 iId ); -void VehicleTakeDamage( UINT8 ubID, UINT8 ubReason, INT16 sDamage, INT32 sGridNo , UINT16 ubAttackerID ); +void VehicleTakeDamage( UINT8 ubID, UINT8 ubReason, INT16 sDamage, INT32 sGridNo , SoldierID ubAttackerID ); // the soldiertype containing this tactical incarnation of this vehicle SOLDIERTYPE * GetSoldierStructureForVehicle( INT32 iId ); @@ -415,7 +415,7 @@ void AdjustVehicleAPs( SOLDIERTYPE *pSoldier, INT16 *pubPoints ); //INT16 GetOrigInternalArmorValueForVehicleInLocation( UINT8 ubID, UINT8 ubLocation ); // handle crit hit to vehicle in this location -void HandleCriticalHitForVehicleInLocation( UINT8 ubID, INT16 sDmg, INT32 sGridNo, UINT16 ubAttackerID ); +void HandleCriticalHitForVehicleInLocation( UINT8 ubID, INT16 sDmg, INT32 sGridNo, SoldierID ubAttackerID ); // ste up armor values for this vehicle void SetUpArmorForVehicle( UINT8 ubID );