diff --git a/Laptop/insurance Contract.cpp b/Laptop/insurance Contract.cpp index 0e23acc6..418df377 100644 --- a/Laptop/insurance Contract.cpp +++ b/Laptop/insurance Contract.cpp @@ -1461,8 +1461,8 @@ void InsuranceContractPayLifeInsuranceForDeadMerc( UINT16 ubPayoutID ) if( LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID == Menptr[ LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID ].ubID ) { // and if the soldier is still active ( player hasn't removed carcass yet ), reset insurance flag - if( Menptr[ LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID ].bActive ) - Menptr[ LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID ].usLifeInsurance = 0; + if( LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID->bActive ) + LaptopSaveInfo.pLifeInsurancePayouts[ ubPayoutID ].ubSoldierID->usLifeInsurance = 0; } //add transaction to players account diff --git a/Multiplayer/client.cpp b/Multiplayer/client.cpp index 2b65f0fc..251f81f5 100644 --- a/Multiplayer/client.cpp +++ b/Multiplayer/client.cpp @@ -470,7 +470,7 @@ typedef struct float dForceY; float dForceZ; UINT32 sTargetGridNo; - UINT16 ubID; + SoldierID ubID; UINT8 ubActionCode; UINT32 uiActionData; UINT16 usItem; @@ -494,7 +494,7 @@ typedef struct typedef struct { UINT32 sGridNo; - UINT16 ubID; + SoldierID ubID; UINT16 usItem; UINT8 ubItemStatus; UINT32 uiWorldIndex; // the local World Index of this bomb on its creators client @@ -506,7 +506,7 @@ typedef struct typedef struct { - UINT16 ubID; + SoldierID ubID; UINT32 uiWorldItemIndex; UINT8 ubMPTeamIndex; UINT32 uiPreRandomIndex; // send out our current pre-random index @@ -516,7 +516,7 @@ typedef struct { UINT32 uiWorldItemIndex; UINT8 ubMPTeamIndex; - UINT16 ubID; + SoldierID ubID; UINT32 sGridNo; UINT32 uiPreRandomIndex; // send out our current pre-random index } disarm_struct; @@ -526,7 +526,7 @@ typedef struct INT32 sGridNo; UINT8 ubRadius; UINT16 usItem; - UINT16 ubOwner; + SoldierID ubOwner; BOOLEAN fSubsequent; INT8 bLevel; INT32 iSmokeEffectID; @@ -802,7 +802,7 @@ void recievePATH(RPCParameters *rpcParameters) EV_S_SENDPATHTONETWORK* SNetPath = (EV_S_SENDPATHTONETWORK*)rpcParameters->input; - SOLDIERTYPE *pSoldier = MercPtrs[ SNetPath->usSoldierID ]; + SOLDIERTYPE *pSoldier = SNetPath->usSoldierID; memcpy(pSoldier->pathing.usPathingData, SNetPath->usPathData,sizeof(UINT16)*30); @@ -863,7 +863,7 @@ void recieveSTANCE(RPCParameters *rpcParameters) EV_S_CHANGESTANCE* SChangeStance = (EV_S_CHANGESTANCE*)rpcParameters->input; - SOLDIERTYPE *pSoldier = MercPtrs[ SChangeStance->usSoldierID ]; + SOLDIERTYPE *pSoldier = SChangeStance->usSoldierID; pSoldier->ChangeSoldierStance( SChangeStance->ubNewStance ); @@ -906,7 +906,7 @@ void recieveDIR(RPCParameters *rpcParameters) EV_S_SETDESIREDDIRECTION* SSetDesiredDirection = (EV_S_SETDESIREDDIRECTION*)rpcParameters->input; - SOLDIERTYPE *pSoldier = MercPtrs[ SSetDesiredDirection->usSoldierID ]; + SOLDIERTYPE *pSoldier = SSetDesiredDirection->usSoldierID; pSoldier->EVENT_SetSoldierDesiredDirection( SSetDesiredDirection->usDesiredDirection ); @@ -945,7 +945,7 @@ void recieveFIRE(RPCParameters *rpcParameters) EV_S_BEGINFIREWEAPON* SBeginFireWeapon = (EV_S_BEGINFIREWEAPON*)rpcParameters->input; //ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"SendBeginFireWeaponEvent" ); - SOLDIERTYPE *pSoldier = MercPtrs[ SBeginFireWeapon->usSoldierID ]; + SOLDIERTYPE *pSoldier = SBeginFireWeapon->usSoldierID; pSoldier->sTargetGridNo = SBeginFireWeapon->sTargetGridNo; pSoldier->bTargetLevel = SBeginFireWeapon->bTargetLevel; @@ -1019,7 +1019,7 @@ void send_dismiss(UINT16 ubCurrentSoldierID) client->RPC("sendDISMISS",(const char*)&sDismissMerc, (int)sizeof(send_dismiss_struct)*8, HIGH_PRIORITY, RELIABLE, 0, UNASSIGNED_SYSTEM_ADDRESS, true, 0, UNASSIGNED_NETWORK_ID,0); } -void send_hire( UINT8 iNewIndex, UINT8 ubCurrentSoldier, INT16 iTotalContractLength, BOOLEAN fCopyProfileItemsOver) +void send_hire( SoldierID iNewIndex, UINT8 ubCurrentSoldier, INT16 iTotalContractLength, BOOLEAN fCopyProfileItemsOver) { send_hire_struct sHireMerc; @@ -1028,7 +1028,7 @@ void send_hire( UINT8 iNewIndex, UINT8 ubCurrentSoldier, INT16 iTotalContractLen sHireMerc.fCopyProfileItemsOver=fCopyProfileItemsOver; sHireMerc.bTeam=netbTeam; - SOLDIERTYPE *pSoldier = MercPtrs[ iNewIndex ]; + SOLDIERTYPE *pSoldier = iNewIndex; UINT8 sectorEdge = cStartingSectorEdge; @@ -1169,7 +1169,7 @@ void recieveguiPOS(RPCParameters *rpcParameters) { gui_pos* gnPOS = (gui_pos*)rpcParameters->input; - SOLDIERTYPE *pSoldier = MercPtrs[ gnPOS->usSoldierID ]; + SOLDIERTYPE *pSoldier = gnPOS->usSoldierID; INT32 sNewGridNo; @@ -1195,7 +1195,7 @@ void recieveguiDIR(RPCParameters *rpcParameters) { gui_dir* gnDIR = (gui_dir*)rpcParameters->input; - SOLDIERTYPE *pSoldier = MercPtrs[ gnDIR->usSoldierID ]; + SOLDIERTYPE *pSoldier = gnDIR->usSoldierID; pSoldier->EVENT_SetSoldierDirection( gnDIR->usNewDirection ); } @@ -1899,7 +1899,7 @@ void recieveSTOP (RPCParameters *rpcParameters) { EV_S_STOP_MERC* SStopMerc =(EV_S_STOP_MERC*)rpcParameters->input; - SOLDIERTYPE *pSoldier = MercPtrs[ SStopMerc->usSoldierID ]; + SOLDIERTYPE *pSoldier = SStopMerc->usSoldierID; pSoldier->EVENT_InternalSetSoldierPosition( SStopMerc->sXPos, SStopMerc->sYPos,FALSE, FALSE, FALSE ); pSoldier->EVENT_SetSoldierDirection( SStopMerc->ubDirection ); @@ -1944,7 +1944,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier) if (cGameType == MP_TYPE_COOP) { INT_STRUCT* INT = (INT_STRUCT*)rpcParameters->input; - SOLDIERTYPE* pOpponent = MercPtrs[ INT->Interrupted]; + SOLDIERTYPE* pOpponent = INT->Interrupted; if( INT->bTeam == netbTeam || is_server)//its for us or we are server and its for AI which we control { @@ -1978,7 +1978,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier) ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Recieved interrupt between %s and %s.", TeamNameStrings[pOpponent->bTeam], TeamNameStrings[INT->bTeam] ); //start interrupt turn //real interrupt code - SOLDIERTYPE* pSoldier = MercPtrs[ INT->ubID ]; + SOLDIERTYPE* pSoldier = INT->ubID; ManSeesMan(pSoldier,pOpponent,pOpponent->sGridNo,pOpponent->pathing.bLevel,2,1); StartInterrupt(); } @@ -1994,7 +1994,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier) { ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Interrupt of %s awarded to you.", TeamNameStrings[pOpponent->bTeam] );//was MPClientMessage[37], can be reconnected if text updated and translated - SOLDIERTYPE* pSoldier = MercPtrs[ INT->ubID ]; + SOLDIERTYPE* pSoldier = INT->ubID; ManSeesMan(pSoldier,pOpponent,pOpponent->sGridNo,pOpponent->pathing.bLevel,2,1); StartInterrupt(); } @@ -2003,7 +2003,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier) else { INT_STRUCT* INT = (INT_STRUCT*)rpcParameters->input; - SOLDIERTYPE* pOpponent = MercPtrs[ INT->Interrupted]; + SOLDIERTYPE* pOpponent = INT->Interrupted; if(INT->bTeam==netbTeam)//for us { @@ -2028,7 +2028,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier) if( INT->bTeam != 0)//not for our team - hayden { //stop moving merc who was interrupted and init UI bar - SOLDIERTYPE* pMerc = MercPtrs[ INT->ubID ]; + SOLDIERTYPE* pMerc = INT->ubID; pMerc->HaultSoldierFromSighting(TRUE); FreezeInterfaceForEnemyTurn(); InitEnemyUIBar( 0, 0 ); @@ -2049,7 +2049,7 @@ void send_interrupt (SOLDIERTYPE *pSoldier) { ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Interrupt of %s awarded to you.", TeamNameStrings[pOpponent->bTeam] );//was MPClientMessage[37], can be reconnected if text updated and translated - SOLDIERTYPE* pSoldier = MercPtrs[ INT->ubID ]; + SOLDIERTYPE* pSoldier = INT->ubID; ManSeesMan(pSoldier,pOpponent,pOpponent->sGridNo,pOpponent->pathing.bLevel,2,1); StartInterrupt(); } @@ -2924,7 +2924,7 @@ void send_grenade (OBJECTTYPE *pGameObj, float dLifeLength, float xPos, float yP { ubOwner = MPEncodeSoldierID(ubOwner); // translate our soldier to the "network" version - SOLDIERTYPE* pSoldier = MercPtrs[ubOwner]; + SOLDIERTYPE* pSoldier = ubOwner; if (pSoldier != NULL) { if ((pSoldier->bTeam == 1 && is_server) || IsOurSoldier(pSoldier)) @@ -2942,7 +2942,6 @@ void send_grenade (OBJECTTYPE *pGameObj, float dLifeLength, float xPos, float yP gren.ubID = ubOwner; gren.usItem = pGameObj->usItem; gren.sTargetGridNo = sTargetGridNo; - gren.ubID = ubOwner; gren.RealObjectID = iRealObjectID; gren.IsThrownGrenade = bIsThrownGrenade; gren.uiPreRandomIndex = guiPreRandomIndex; @@ -2965,7 +2964,7 @@ void recieveGRENADE (RPCParameters *rpcParameters) gren->ubID = MPDecodeSoldierID(gren->ubID); - SOLDIERTYPE* pThrower = MercPtrs[ gren->ubID ]; + SOLDIERTYPE* pThrower = gren->ubID; if (pThrower != NULL) { guiPreRandomIndex = gren->uiPreRandomIndex; @@ -3067,7 +3066,7 @@ void recieveGRENADERESULT (RPCParameters *rpcParameters) gres->ubOwnerID = MPDecodeSoldierID(gres->ubOwnerID); - SOLDIERTYPE* pThrower = MercPtrs[ gres->ubOwnerID ]; + SOLDIERTYPE* pThrower = gres->ubOwnerID; if (pThrower != NULL) { // grenade wasnt thrown by one of our guys, so we should do it on the client @@ -3128,7 +3127,7 @@ void recieveGRENADERESULT (RPCParameters *rpcParameters) } } -void send_plant_explosive (UINT16 ubID,UINT16 usItem,UINT8 ubItemStatus,UINT16 usFlags, UINT32 sGridNo,UINT8 ubLevel, UINT32 uiWorldItemIndex) +void send_plant_explosive (SoldierID ubID,UINT16 usItem,UINT8 ubItemStatus,UINT16 usFlags, UINT32 sGridNo,UINT8 ubLevel, UINT32 uiWorldItemIndex) { explosive_obj exp; @@ -3160,7 +3159,7 @@ void recievePLANTEXPLOSIVE (RPCParameters *rpcParameters) exp->ubID = MPDecodeSoldierID( exp->ubID ); - SOLDIERTYPE* pSoldier = MercPtrs[ exp->ubID ]; + SOLDIERTYPE* pSoldier = exp->ubID; if (pSoldier != NULL) { // explosive wasnt planted on our client, so we should do it on the client @@ -3297,7 +3296,7 @@ void recieveDETONATEEXPLOSIVE (RPCParameters *rpcParameters) det->ubID = MPDecodeSoldierID(det->ubID); - SOLDIERTYPE* pSoldier = MercPtrs[det->ubID]; + SOLDIERTYPE* pSoldier = det->ubID; if (pSoldier != NULL) { // if explosive detonation didnt originate from this client then its need to be performed here @@ -3410,7 +3409,7 @@ void recieveDISARMEXPLOSIVE (RPCParameters *rpcParameters) disarm->ubID = MPDecodeSoldierID(disarm->ubID); - SOLDIERTYPE* pSoldier = MercPtrs[disarm->ubID]; + SOLDIERTYPE* pSoldier = disarm->ubID; if (pSoldier != NULL) { // if explosive disarm didnt originate from this client then its need to be performed here @@ -3439,7 +3438,7 @@ void recieveDISARMEXPLOSIVE (RPCParameters *rpcParameters) // print out a screen message if it was our bomb if (disarm->ubMPTeamIndex == netbTeam) { - SOLDIERTYPE * pBombOwner = MercPtrs[gWorldItems[ gWorldBombs[ uiCount ].iItemIndex ].soldierID]; + SOLDIERTYPE * pBombOwner = gWorldItems[ gWorldBombs[ uiCount ].iItemIndex ].soldierID; if (pBombOwner != NULL) { ScreenMsg( FONT_LTBLUE , MSG_MPSYSTEM , MPClientMessage[71], pBombOwner->name, pSoldier->name); @@ -3494,7 +3493,7 @@ void recieveSPREADEFFECT (RPCParameters *rpcParameters) sef->ubOwner = MPDecodeSoldierID(sef->ubOwner); - SOLDIERTYPE* pSoldier = MercPtrs[sef->ubOwner]; + SOLDIERTYPE* pSoldier = sef->ubOwner; if (pSoldier != NULL) { @@ -3579,7 +3578,7 @@ void recieveNEWSMOKEEFFECT (RPCParameters *rpcParameters) // translate any of our soldier ids back to the correct local copy sef->ubOwner = MPDecodeSoldierID(sef->ubOwner); - SOLDIERTYPE* pSoldier = MercPtrs[sef->ubOwner]; + SOLDIERTYPE* pSoldier = sef->ubOwner; if (pSoldier != NULL) { // new smoke effect didnt originate from us @@ -3665,7 +3664,7 @@ void recieveEXPLOSIONDAMAGE (RPCParameters *rpcParameters) exp->ubAttackerID = MPDecodeSoldierID(exp->ubAttackerID); - SOLDIERTYPE* pSoldier = MercPtrs[exp->ubSoldierID]; + SOLDIERTYPE* pSoldier = exp->ubSoldierID; if (pSoldier != NULL) { @@ -3733,7 +3732,7 @@ void recieveBULLET(RPCParameters *rpcParameters) INT8 bTeam = OUR_TEAM; if ( netb->net_bullet.ubFirerID != NOBODY ) { - pFirer = MercPtrs[ netb->net_bullet.ubFirerID ]; + pFirer = netb->net_bullet.ubFirerID; bTeam=pFirer->bTeam; } @@ -3837,8 +3836,8 @@ void recieveSTATE(RPCParameters *rpcParameters) void send_death( SOLDIERTYPE *pSoldier ) { death_struct nDeath; - nDeath.soldier_id=pSoldier->ubID; - nDeath.attacker_id=pSoldier->ubAttackerID; + nDeath.soldier_id = pSoldier->ubID; + nDeath.attacker_id = pSoldier->ubAttackerID; // Translate soldier id for other clients if the soldier was one of ours if(pSoldier->ubID<20)nDeath.soldier_id=nDeath.soldier_id+ubID_prefix; @@ -3852,7 +3851,7 @@ void send_death( SOLDIERTYPE *pSoldier ) nDeath.attacker_id = pSoldier->ubNextToPreviousAttackerID; } - SOLDIERTYPE * pAttacker=MercPtrs[ nDeath.attacker_id ]; + SOLDIERTYPE * pAttacker = nDeath.attacker_id; INT8 pA_bTeam=CLIENT_NUM; CHAR16 pA_name[ 10 ]; INT8 pS_bTeam=CLIENT_NUM; @@ -3951,15 +3950,15 @@ void send_death( SOLDIERTYPE *pSoldier ) void recieveDEATH (RPCParameters *rpcParameters) { death_struct* nDeath = (death_struct*)rpcParameters->input; - SOLDIERTYPE * pSoldier=MercPtrs[ nDeath->soldier_id ]; + SOLDIERTYPE * pSoldier = nDeath->soldier_id; - UINT16 ubAttackerID; + SoldierID ubAttackerID; if((nDeath->attacker_id >= ubID_prefix) && (nDeath->attacker_id < (ubID_prefix+6))) ubAttackerID = (nDeath->attacker_id - ubID_prefix); else ubAttackerID = nDeath->attacker_id; - SOLDIERTYPE * pAttacker=MercPtrs[ ubAttackerID ]; + SOLDIERTYPE * pAttacker = ubAttackerID; INT8 pA_bTeam; CHAR16 pA_name[ 10 ]; INT8 pS_bTeam; @@ -4070,7 +4069,7 @@ void send_miss(EV_S_MISS * SMiss) void recievehitSTRUCT (RPCParameters *rpcParameters) { EV_S_STRUCTUREHIT* struct_hit = (EV_S_STRUCTUREHIT*)rpcParameters->input; - SOLDIERTYPE *pSoldier = MercPtrs[ struct_hit->ubAttackerID ]; + SOLDIERTYPE *pSoldier = struct_hit->ubAttackerID; INT8 bTeam=pSoldier->bTeam; INT32 iBullet = bTable[bTeam][struct_hit->iBullet].local_id; @@ -4093,7 +4092,7 @@ void recieveMISS (RPCParameters *rpcParameters) { EV_S_MISS* shot_miss = (EV_S_MISS*)rpcParameters->input; - SOLDIERTYPE *pSoldier = MercPtrs[ shot_miss->ubAttackerID ]; + SOLDIERTYPE *pSoldier = shot_miss->ubAttackerID; INT8 bTeam=pSoldier->bTeam; INT32 iBullet = bTable[bTeam][shot_miss->iBullet].local_id; @@ -4198,7 +4197,7 @@ BOOLEAN check_status (void)// any 'enemies' and clients left to fight ?? void UpdateSoldierToNetwork ( SOLDIERTYPE *pSoldier ) { //this send stats to other clients at intervals - UINT16 id = pSoldier->ubID; + SoldierID id = pSoldier->ubID; UINT32 time = GetJA2Clock(); if(id < 20 || (is_server && id <120)) @@ -4243,7 +4242,7 @@ void UpdateSoldierFromNetwork (RPCParameters *rpcParameters) { EV_S_UPDATENETWORKSOLDIER* SUpdateNetworkSoldier = (EV_S_UPDATENETWORKSOLDIER*)rpcParameters->input; - SOLDIERTYPE *pSoldier = MercPtrs[ SUpdateNetworkSoldier->usSoldierID ]; + SOLDIERTYPE *pSoldier = SUpdateNetworkSoldier->usSoldierID; pSoldier->bBreath=SUpdateNetworkSoldier->bBreath; pSoldier->stats.bLife=SUpdateNetworkSoldier->bLife; @@ -4424,7 +4423,7 @@ void recieve_fireweapon (RPCParameters *rpcParameters) { EV_S_FIREWEAPON* SFireWeapon = (EV_S_FIREWEAPON*)rpcParameters->input; - SOLDIERTYPE *pSoldier = MercPtrs[ SFireWeapon->usSoldierID ]; + SOLDIERTYPE *pSoldier = SFireWeapon->usSoldierID; pSoldier->sTargetGridNo = SFireWeapon->sTargetGridNo; pSoldier->bTargetLevel = SFireWeapon->bTargetLevel; @@ -4449,7 +4448,7 @@ void recieve_door (RPCParameters *rpcParameters) { doors* sDoor = (doors*)rpcParameters->input; - SOLDIERTYPE *pSoldier = MercPtrs[ sDoor->ubID ]; + SOLDIERTYPE *pSoldier = sDoor->ubID; BOOLEAN fNoAnimations = FALSE; if ( !AllMercsLookForDoor( sDoor->sGridNo, FALSE ) )//check for los @@ -4725,14 +4724,14 @@ void recieve_heal (RPCParameters *rpcParameters) { heal* data = (heal*)rpcParameters->input; - UINT16 healed; + SoldierID healed; if((data->ubID >= ubID_prefix) && (data->ubID < (ubID_prefix+6))) healed = (data->ubID - ubID_prefix); else healed = data->ubID; - SOLDIERTYPE *pSoldier = MercPtrs[ healed ]; + SOLDIERTYPE *pSoldier = healed; pSoldier->bBleeding=data->bBleeding; pSoldier->stats.bLife=data->bLife; @@ -4758,7 +4757,7 @@ void awardINT (RPCParameters *rpcParameters) { AIint* data= (AIint*)rpcParameters->input; - SOLDIERTYPE *pSoldier = MercPtrs[ data->ubID ]; + SOLDIERTYPE *pSoldier = data->ubID; StartInterrupt(); diff --git a/Multiplayer/connect.h b/Multiplayer/connect.h index 31fe44ea..349d524d 100644 --- a/Multiplayer/connect.h +++ b/Multiplayer/connect.h @@ -96,7 +96,7 @@ void send_dir ( SOLDIERTYPE *pSoldier, UINT16 usDesiredDirection ); void send_fire( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo ); void send_hit( EV_S_WEAPONHIT *SWeaponHit ); void send_bullet( BULLET * pBullet, UINT16 usHandItem); -void send_hire( UINT8 iNewIndex, UINT8 ubCurrentSoldier, INT16 iTotalContractLength, BOOLEAN fCopyProfileItemsOver); +void send_hire( SoldierID iNewIndex, UINT8 ubCurrentSoldier, INT16 iTotalContractLength, BOOLEAN fCopyProfileItemsOver); void send_dismiss( UINT16 ubCurrentSoldierID); void send_gui_pos(SOLDIERTYPE *pSoldier, FLOAT dNewXPos, FLOAT dNewYPos); @@ -113,7 +113,7 @@ 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, SoldierID ubOwner, UINT8 ubActionCode, UINT32 uiActionData, INT32 iRealObjectID, bool bIsThrownGrenade); 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_plant_explosive ( SoldierID ubID,UINT16 usItem,UINT8 ubItemStatus,UINT16 usFlags, UINT32 sGridNo,UINT8 ubLevel, UINT32 uiWorldIndex); void send_detonate_explosive (UINT32 uiWorldIndex, SoldierID ubID); void send_spreadeffect ( INT32 sGridNo, UINT8 ubRadius, UINT16 usItem, SoldierID ubOwner, BOOLEAN fSubsequent, INT8 bLevel, INT32 iSmokeEffectID ); void send_newsmokeeffect(INT32 sGridNo, UINT16 usItem, INT8 bLevel, SoldierID ubOwner, INT32 iSmokeEffectID); @@ -220,7 +220,7 @@ inline SoldierID MPEncodeSoldierID( SoldierID ubID ) } // this one can be called anywhere, even if the ID was not "encoded" -inline UINT16 MPDecodeSoldierID( UINT16 ubID ) +inline SoldierID MPDecodeSoldierID( SoldierID ubID ) { if ( ubID >= ubID_prefix && ubID < (ubID_prefix + 7) ) return ubID - ubID_prefix; // soldier is ours diff --git a/Multiplayer/fresh_header.h b/Multiplayer/fresh_header.h index 46f90ec4..913bb035 100644 --- a/Multiplayer/fresh_header.h +++ b/Multiplayer/fresh_header.h @@ -5,29 +5,29 @@ extern int readyteamreg[10]; typedef struct { - UINT16 soldier_id; - UINT16 attacker_id; + SoldierID soldier_id; + SoldierID attacker_id; UINT8 attacker_team; UINT8 soldier_team; }death_struct; typedef struct { - UINT16 ubID; + SoldierID ubID; INT32 sGridNo; BOOLEAN fNoAnimations; }doors; typedef struct { - UINT16 ubID; + SoldierID ubID; INT8 bLife; INT8 bBleeding; }heal; typedef struct { - UINT16 ubID; + SoldierID ubID; INT8 bteam; }AIint; @@ -65,4 +65,4 @@ BOOLEAN check_status (void); extern UINT16 NumEnemyInSector( ); extern UINT16 NumActiveAndConsciousTeamMembers( UINT8 ubTeam ); void send_heal (SOLDIERTYPE *pSoldier ); -void requestAIint(SOLDIERTYPE *pSoldier ); \ No newline at end of file +void requestAIint(SOLDIERTYPE *pSoldier ); diff --git a/Strategic/Map Screen Interface.cpp b/Strategic/Map Screen Interface.cpp index d23f06c1..8e51fa4c 100644 --- a/Strategic/Map Screen Interface.cpp +++ b/Strategic/Map Screen Interface.cpp @@ -2380,9 +2380,9 @@ void RandomMercInGroupSaysQuote( GROUP *pGroup, UINT16 usQuoteNum ) { PLAYERGROUP *pPlayer; SOLDIERTYPE *pSoldier; - UINT16 ubMercsInGroup[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ]; - UINT16 ubNumMercs = 0; - UINT16 ubChosenMerc; + SoldierID ubMercsInGroup[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ]; + UINT16 ubNumMercs = 0; + UINT16 ubChosenMerc; // if traversing tactically, don't do this, unless time compression was required for some reason (don't go to sector) @@ -2414,7 +2414,7 @@ void RandomMercInGroupSaysQuote( GROUP *pGroup, UINT16 usQuoteNum ) if ( ubNumMercs > 0 ) { ubChosenMerc = (UINT16)Random( ubNumMercs ); - pSoldier = MercPtrs[ ubMercsInGroup[ ubChosenMerc ] ]; + pSoldier = ubMercsInGroup[ ubChosenMerc ]; TacticalCharacterDialogue( pSoldier, usQuoteNum ); } diff --git a/Strategic/Merc Contract.cpp b/Strategic/Merc Contract.cpp index 983d3e20..c0f4e4e2 100644 --- a/Strategic/Merc Contract.cpp +++ b/Strategic/Merc Contract.cpp @@ -1416,7 +1416,7 @@ void FindOutIfAnyMercAboutToLeaveIsGonnaRenew( void ) SOLDIERTYPE *pSoldier = NULL, *pSoldierWhoWillQuit = NULL; INT32 iCounter= 0, iNumberOnTeam = 0; // WDS - make number of mercenaries, etc. be configurable - UINT16 ubPotentialMercs[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 }; + SoldierID ubPotentialMercs[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 }; UINT16 ubNumMercs = 0; UINT16 ubChosenMerc; @@ -1499,15 +1499,16 @@ void FindOutIfAnyMercAboutToLeaveIsGonnaRenew( void ) if ( ubNumMercs > 0 ) { ubChosenMerc = (UINT16)Random( ubNumMercs ); + SOLDIERTYPE *pChosenSoldier = ubPotentialMercs[ubChosenMerc]; SpecialCharacterDialogueEvent( DIALOGUE_SPECIAL_EVENT_LOCK_INTERFACE,1 ,MAP_SCREEN ,0 ,0 ,0 ); - HandleImportantMercQuote( MercPtrs[ ubPotentialMercs[ ubChosenMerc ] ], QUOTE_CONTRACTS_OVER ); + HandleImportantMercQuote( pChosenSoldier, QUOTE_CONTRACTS_OVER ); SpecialCharacterDialogueEvent( DIALOGUE_SPECIAL_EVENT_LOCK_INTERFACE,0 ,MAP_SCREEN ,0 ,0 ,0 ); AddReasonToWaitingListQueue( CONTRACT_EXPIRE_WARNING_REASON ); - TacticalCharacterDialogueWithSpecialEvent( MercPtrs[ ubPotentialMercs[ ubChosenMerc ] ], 0, DIALOGUE_SPECIAL_EVENT_SHOW_UPDATE_MENU, 0,0 ); + TacticalCharacterDialogueWithSpecialEvent( pChosenSoldier, 0, DIALOGUE_SPECIAL_EVENT_SHOW_UPDATE_MENU, 0,0 ); - MercPtrs[ ubPotentialMercs[ ubChosenMerc ] ]->ubContractRenewalQuoteCode = SOLDIER_CONTRACT_RENEW_QUOTE_89_USED; + pChosenSoldier->ubContractRenewalQuoteCode = SOLDIER_CONTRACT_RENEW_QUOTE_89_USED; } } } diff --git a/Strategic/PreBattle Interface.cpp b/Strategic/PreBattle Interface.cpp index 36fd826a..5aed8f36 100644 --- a/Strategic/PreBattle Interface.cpp +++ b/Strategic/PreBattle Interface.cpp @@ -2558,15 +2558,16 @@ void CheckForRobotAndIfItsControlled( void ) // search for the robot on player's team for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) { - if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->stats.bLife && AM_A_ROBOT( MercPtrs[ i ] )) + SOLDIERTYPE *pSoldier = MercPtrs[i]; + if( pSoldier->bActive && pSoldier->stats.bLife && AM_A_ROBOT( pSoldier )) { // check whether it has a valid controller with it. This sets its ubRobotRemoteHolderID field. - MercPtrs[ i ]->UpdateRobotControllerGivenRobot( ); + pSoldier->UpdateRobotControllerGivenRobot( ); // if he has a controller, set controllers - if ( MercPtrs[ i ]->ubRobotRemoteHolderID != NOBODY ) + if ( pSoldier->ubRobotRemoteHolderID != NOBODY ) { - MercPtrs[ MercPtrs[ i ]->ubRobotRemoteHolderID ]->UpdateRobotControllerGivenController( ); + pSoldier->ubRobotRemoteHolderID->UpdateRobotControllerGivenController( ); } break; diff --git a/Strategic/mapscreen.cpp b/Strategic/mapscreen.cpp index 082b7825..0f563116 100644 --- a/Strategic/mapscreen.cpp +++ b/Strategic/mapscreen.cpp @@ -14656,7 +14656,7 @@ void SortListOfMercsInTeamPanel( BOOLEAN fRetainSelectedMercs, BOOLEAN fReverse INT32 iCounter = 0, iCounterA = 0; INT16 sEndSectorA, sEndSectorB; INT32 iExpiryTime, iExpiryTimeA; - UINT16 uiID, uiIDA; + SoldierID uiID, uiIDA; SOLDIERTYPE *pSelectedSoldier[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ]; SOLDIERTYPE *pCurrentSoldier = NULL; SOLDIERTYPE *pPreviousSelectedInfoChar = NULL; @@ -15859,7 +15859,7 @@ void CancelPathsOfAllSelectedCharacters() // if we've clicked on a selected valid character if( ( gCharactersList[ bCounter ].fValid == TRUE ) && IsEntryInSelectedListSet( bCounter ) ) { - pSoldier = MercPtrs[ gCharactersList[ bCounter ].usSolID ]; + pSoldier = gCharactersList[ bCounter ].usSolID; // and he has a route set if ( GetLengthOfMercPath( pSoldier ) > 0 ) @@ -16283,10 +16283,10 @@ void RandomAwakeSelectedMercConfirmsStrategicMove( void ) SOLDIERTYPE *pSoldier = NULL; INT32 iCounter; // WDS - make number of mercenaries, etc. be configurable - UINT16 ubSelectedMercID[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ]; - UINT16 ubSelectedMercIndex[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ]; - UINT16 ubNumMercs = 0; - UINT16 ubChosenMerc; + SoldierID ubSelectedMercID[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ]; + UINT16 ubSelectedMercIndex[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ]; + UINT16 ubNumMercs = 0; + UINT16 ubChosenMerc; for( iCounter = 0; iCounter < giMAXIMUM_NUMBER_OF_PLAYER_SLOTS; iCounter++ ) @@ -16313,7 +16313,7 @@ void RandomAwakeSelectedMercConfirmsStrategicMove( void ) // select that merc so that when he speaks we're showing his portrait and not someone else ChangeSelectedInfoChar( ubSelectedMercIndex[ ubChosenMerc ], FALSE ); - MercPtrs[ ubSelectedMercID[ ubChosenMerc ] ]->DoMercBattleSound( BATTLE_SOUND_OK1 ); + ubSelectedMercID[ ubChosenMerc ]->DoMercBattleSound( BATTLE_SOUND_OK1 ); //TacticalCharacterDialogue( MercPtrs[ ubSelectedMercID[ ubChosenMerc ] ], ubQuoteNum ); } } diff --git a/Tactical/Handle Items.cpp b/Tactical/Handle Items.cpp index d4a9abb9..d95b6157 100644 --- a/Tactical/Handle Items.cpp +++ b/Tactical/Handle Items.cpp @@ -2953,12 +2953,12 @@ OBJECTTYPE* AddItemToPool( INT32 sGridNo, OBJECTTYPE *pObject, INT8 bVisible, UI return InternalAddItemToPool( &sGridNo, pObject, bVisible, ubLevel, usFlags, bRenderZHeightAboveLevel, soldierID, NULL ); } -OBJECTTYPE * AddItemToPoolAndGetIndex( INT32 sGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 soldierID, INT32 * piItemIndex ) +OBJECTTYPE * AddItemToPoolAndGetIndex( INT32 sGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, SoldierID soldierID, INT32 * piItemIndex ) { return( InternalAddItemToPool( &sGridNo, pObject, bVisible, ubLevel, usFlags, bRenderZHeightAboveLevel, soldierID, piItemIndex ) ); } -OBJECTTYPE* InternalAddItemToPool( INT32 *psGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 soldierID, INT32 * piItemIndex ) +OBJECTTYPE* InternalAddItemToPool( INT32 *psGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, SoldierID soldierID, INT32 * piItemIndex ) { ITEM_POOL *pItemPool; ITEM_POOL *pItemPoolTemp; diff --git a/Tactical/Handle Items.h b/Tactical/Handle Items.h index b01e4b4a..d43a42b5 100644 --- a/Tactical/Handle Items.h +++ b/Tactical/Handle Items.h @@ -195,8 +195,8 @@ void AllSoldiersLookforItems( BOOLEAN RevealRoofsAndItems ); void SoldierGetItemFromWorld( SOLDIERTYPE *pSoldier, INT32 iItemIndex, INT32 sGridNo, INT8 bZLevel, BOOLEAN *pfSelectionList ); OBJECTTYPE* AddItemToPool(INT32 sGridNo, OBJECTTYPE* pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 soldierID = -1); -OBJECTTYPE* AddItemToPoolAndGetIndex( INT32 sGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 soldierID, INT32 * piItemIndex ); -OBJECTTYPE* InternalAddItemToPool( INT32 *psGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT16 soldierID, INT32 * piItemIndex ); +OBJECTTYPE* AddItemToPoolAndGetIndex( INT32 sGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, SoldierID soldierID, INT32 * piItemIndex ); +OBJECTTYPE* InternalAddItemToPool( INT32 *psGridNo, OBJECTTYPE *pObject, INT8 bVisible, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, SoldierID soldierID, INT32 * piItemIndex ); INT32 AdjustGridNoForItemPlacement( SOLDIERTYPE *pSoldier, INT32 sGridNo ); BOOLEAN GetItemPool( INT32 usMapPos, ITEM_POOL **ppItemPool, UINT8 ubLevel ); diff --git a/Tactical/Interface Panels.cpp b/Tactical/Interface Panels.cpp index 40df6462..ae0ed4cc 100644 --- a/Tactical/Interface Panels.cpp +++ b/Tactical/Interface Panels.cpp @@ -3725,7 +3725,7 @@ void SMInvClickCallback( MOUSE_REGION * pRegion, INT32 iReason ) } else // item in cursor { - UINT16 ubSrcID, ubDestID; + SoldierID ubSrcID, ubDestID; BOOLEAN fOKToGo = FALSE; BOOLEAN fDeductPoints = FALSE; @@ -5277,7 +5277,7 @@ BOOLEAN InitializeTEAMPanel( ) { if ( gTeamPanel[ cnt ].ubID != NOBODY ) { - HandleMouseOverSoldierFaceForContMove( MercPtrs[ gTeamPanel[ cnt ].ubID ], TRUE ); + HandleMouseOverSoldierFaceForContMove( gTeamPanel[ cnt ].ubID, TRUE ); } } @@ -5352,7 +5352,7 @@ BOOLEAN ShutdownTEAMPanel( ) if ( gTeamPanel[ cnt ].ubID != NOBODY ) { - HandleMouseOverSoldierFaceForContMove( MercPtrs[ gTeamPanel[ cnt ].ubID ], FALSE ); + HandleMouseOverSoldierFaceForContMove( gTeamPanel[ cnt ].ubID, FALSE ); } } @@ -5416,7 +5416,7 @@ void RenderTEAMPanel( BOOLEAN fDirty ) } else { - pSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ]; + pSoldier = gTeamPanel[ cnt ].ubID; if ( pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER ) ) { @@ -5520,7 +5520,7 @@ void RenderTEAMPanel( BOOLEAN fDirty ) // GET SOLDIER if ( gTeamPanel[ cnt ].fOccupied ) { - pSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ]; + pSoldier = gTeamPanel[ cnt ].ubID; // Update animations.... if ( pSoldier->flags.fClosePanel || pSoldier->flags.fClosePanelToDie ) @@ -6016,7 +6016,8 @@ void HandleMouseOverTeamFaceForContMove( BOOLEAN fOn ) void MercFacePanelMoveCallback( MOUSE_REGION * pRegion, INT32 iReason ) { - UINT16 ubID, ubSoldierID; + UINT16 ubID; + SoldierID ubSoldierID; SOLDIERTYPE *pSoldier; ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 ); @@ -6040,7 +6041,7 @@ void MercFacePanelMoveCallback( MOUSE_REGION * pRegion, INT32 iReason ) return; } - pSoldier = MercPtrs[ ubSoldierID ]; + pSoldier = ubSoldierID; if ( !pSoldier->bActive ) { @@ -6062,7 +6063,8 @@ void MercFacePanelMoveCallback( MOUSE_REGION * pRegion, INT32 iReason ) void EnemyIndicatorClickCallback( MOUSE_REGION * pRegion, INT32 iReason ) { - UINT16 ubID, ubSoldierID; + UINT16 ubID; + SoldierID ubSoldierID; ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 ); @@ -6085,7 +6087,7 @@ void EnemyIndicatorClickCallback( MOUSE_REGION * pRegion, INT32 iReason ) return; } - if ( !MercPtrs[ ubSoldierID ]->bActive ) + if ( !ubSoldierID->bActive ) { return; } @@ -6093,14 +6095,14 @@ void EnemyIndicatorClickCallback( MOUSE_REGION * pRegion, INT32 iReason ) if (iReason & MSYS_CALLBACK_REASON_LBUTTON_DWN) { - //if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) + //if ( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) //{ //} //else { SOLDIERTYPE *pSoldier; - pSoldier = MercPtrs[ ubSoldierID ]; + pSoldier = ubSoldierID; if ( pSoldier->aiData.bOppCnt > 0 ) { // Cycle.... @@ -6117,7 +6119,8 @@ void EnemyIndicatorClickCallback( MOUSE_REGION * pRegion, INT32 iReason ) void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason ) { - UINT16 ubID, ubSoldierID; + UINT16 ubID; + SoldierID ubSoldierID; ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 ); @@ -6155,12 +6158,12 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason ) return; } - if ( !MercPtrs[ ubSoldierID ]->bActive ) + if ( !ubSoldierID->bActive ) { return; } - if (!OK_INTERRUPT_MERC(MercPtrs[ubSoldierID])) + if (!OK_INTERRUPT_MERC(ubSoldierID)) { return; } @@ -6169,10 +6172,10 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason ) { if ( !gfInItemPickupMenu && gpItemPointer == NULL ) { - //if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) - //if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER ) ) + //if ( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) + //if ( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_DRIVER ) ) //{ - // pVehicle = GetSoldierStructureForVehicle( MercPtrs[ ubSoldierID ]->iVehicleId ); + // pVehicle = GetSoldierStructureForVehicle( ubSoldierID->iVehicleId ); // HandleLocateSelectMerc( pVehicle->ubID, 0 ); //} @@ -6181,10 +6184,10 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason ) if ( !InOverheadMap( ) ) { // If we can continue a move, do so! - if ( CheckForMercContMove( MercPtrs[ ubSoldierID ] ) ) + if ( CheckForMercContMove( ubSoldierID ) ) { // Continue - ContinueMercMovement( MercPtrs[ ubSoldierID ] ); + ContinueMercMovement( ubSoldierID ); ErasePath( TRUE ); } else @@ -6192,21 +6195,21 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason ) // HEADROCK HAM 3.5: Shift-Click a merc's face will add him to the current selection. if (!(gTacticalStatus.uiFlags & INCOMBAT) && _KeyDown( SHIFT ) ) { - if ( ! (MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & SOLDIER_MULTI_SELECTED ) ) + if ( ! (ubSoldierID->flags.uiStatusFlags & SOLDIER_MULTI_SELECTED ) ) { - if ( OK_CONTROLLABLE_MERC( MercPtrs[ ubSoldierID ] ) && !( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_VEHICLE | SOLDIER_PASSENGER | SOLDIER_DRIVER ) ) ) + if ( OK_CONTROLLABLE_MERC( ubSoldierID ) && !( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_VEHICLE | SOLDIER_PASSENGER | SOLDIER_DRIVER ) ) ) { - //ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s added", MercPtrs[ ubSoldierID ]->name ); + //ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s added", ubSoldierID->name ); gusSelectedSoldier->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED; - MercPtrs[ ubSoldierID ]->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED; + ubSoldierID->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED; EndMultiSoldierSelection( TRUE ); } } // A shift-click on a selected character will remove that character from the current selection. else { - //ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s removed", MercPtrs[ ubSoldierID ]->name ); - MercPtrs[ ubSoldierID ]->flags.uiStatusFlags &= (~SOLDIER_MULTI_SELECTED ); + //ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s removed", ubSoldierID->name ); + ubSoldierID->flags.uiStatusFlags &= (~SOLDIER_MULTI_SELECTED ); if (ubSoldierID != gusSelectedSoldier) { gusSelectedSoldier->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED; @@ -6216,7 +6219,7 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason ) } else { - //ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s selected", MercPtrs[ ubSoldierID ]->name ); + //ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s selected", ubSoldierID->name ); HandleLocateSelectMerc( ubSoldierID, 0 ); } } @@ -6233,8 +6236,8 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason ) if ( !InOverheadMap( ) ) { // Only if guy is not dead! - //if ( !( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & SOLDIER_DEAD ) && !AM_AN_EPC( MercPtrs[ ubSoldierID ] ) && !( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) ) - if ( !( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & SOLDIER_DEAD ) && !AM_AN_EPC( MercPtrs[ ubSoldierID ] ) ) + //if ( !( ubSoldierID->flags.uiStatusFlags & SOLDIER_DEAD ) && !AM_AN_EPC( ubSoldierID ) && !( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) ) + if ( !( ubSoldierID->flags.uiStatusFlags & SOLDIER_DEAD ) && !AM_AN_EPC( ubSoldierID ) ) { gfSwitchPanel = TRUE; gbNewPanel = SM_PANEL; @@ -6671,7 +6674,8 @@ void RenderSoldierTeamInv( SOLDIERTYPE *pSoldier, INT16 sX, INT16 sY, UINT8 ubPa void TMFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason ) { - UINT16 ubID, ubSoldierID; + UINT16 ubID; + SoldierID ubSoldierID; ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 ); @@ -6694,7 +6698,7 @@ void TMFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason ) ubSoldierID = gTeamPanel[ ubID ].ubID; - if ( !MercPtrs[ ubSoldierID ]->bActive ) + if ( !ubSoldierID->bActive ) { return; } @@ -6721,7 +6725,8 @@ void TMFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason ) void TMClickFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason ) { - UINT16 ubID, ubSoldierID; + UINT16 ubID; + SoldierID ubSoldierID; UINT16 usOldHandItem; ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 ); @@ -6739,9 +6744,9 @@ void TMClickFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason ) if (iReason == MSYS_CALLBACK_REASON_LBUTTON_UP ) { // anv: select vehicle by clicking on the steering wheel - //if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & SOLDIER_DRIVER ) + //if ( ubSoldierID->flags.uiStatusFlags & SOLDIER_DRIVER ) //{ - // SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( MercPtrs[ ubSoldierID ]->iVehicleId ); + // SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( ubSoldierID->iVehicleId ); // HandleLocateSelectMerc( pVehicle->ubID, 0 ); //} //else @@ -6753,12 +6758,12 @@ void TMClickFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason ) if (iReason == MSYS_CALLBACK_REASON_RBUTTON_UP ) { - if ( !AM_A_ROBOT( MercPtrs[ ubSoldierID ] ) ) + if ( !AM_A_ROBOT( ubSoldierID ) ) { - usOldHandItem = MercPtrs[ ubSoldierID ]->inv[HANDPOS].usItem; - //SwapOutHandItem( MercPtrs[ ubSoldierID ] ); - SwapHandItems( MercPtrs[ ubSoldierID ] ); - MercPtrs[ ubSoldierID ]->ReLoadSoldierAnimationDueToHandItemChange( usOldHandItem, MercPtrs[ ubSoldierID ]->inv[HANDPOS].usItem ); + usOldHandItem = ubSoldierID->inv[HANDPOS].usItem; + //SwapOutHandItem( ubSoldierID ); + SwapHandItems( ubSoldierID ); + ubSoldierID->ReLoadSoldierAnimationDueToHandItemChange( usOldHandItem, ubSoldierID->inv[HANDPOS].usItem ); fInterfacePanelDirty = DIRTYLEVEL2; } } @@ -6767,7 +6772,8 @@ void TMClickFirstHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason ) void TMClickSecondHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason ) { - UINT16 ubID, ubSoldierID; + UINT16 ubID; + SoldierID ubSoldierID; UINT16 usOldHandItem; ubID = (UINT16) MSYS_GetRegionUserData( pRegion, 0 ); @@ -6783,28 +6789,28 @@ void TMClickSecondHandInvCallback( MOUSE_REGION * pRegion, INT32 iReason ) if (iReason == MSYS_CALLBACK_REASON_LBUTTON_UP ) { - if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_PASSENGER | SOLDIER_DRIVER ) ) + if ( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_PASSENGER | SOLDIER_DRIVER ) ) { - ExitVehicle( MercPtrs[ ubSoldierID ] ); + ExitVehicle( ubSoldierID ); } - else if (UsingNewInventorySystem() && !AM_A_ROBOT(MercPtrs[ubSoldierID])) + else if (UsingNewInventorySystem() && !AM_A_ROBOT(ubSoldierID)) { - MercPtrs[ubSoldierID]->SwitchWeapons(); + ubSoldierID->SwitchWeapons(); } } if (iReason == MSYS_CALLBACK_REASON_RBUTTON_UP ) { - if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_PASSENGER | SOLDIER_DRIVER ) ) + if ( ubSoldierID->flags.uiStatusFlags & ( SOLDIER_PASSENGER | SOLDIER_DRIVER ) ) { } else { - if ( !AM_A_ROBOT( MercPtrs[ ubSoldierID ] ) ) + if ( !AM_A_ROBOT( ubSoldierID ) ) { - usOldHandItem = MercPtrs[ ubSoldierID ]->inv[HANDPOS].usItem; - SwapHandItems( MercPtrs[ ubSoldierID ] ); - MercPtrs[ ubSoldierID ]->ReLoadSoldierAnimationDueToHandItemChange( usOldHandItem, MercPtrs[ ubSoldierID ]->inv[HANDPOS].usItem ); + usOldHandItem = ubSoldierID->inv[HANDPOS].usItem; + SwapHandItems( ubSoldierID ); + ubSoldierID->ReLoadSoldierAnimationDueToHandItemChange( usOldHandItem, ubSoldierID->inv[HANDPOS].usItem ); fInterfacePanelDirty = DIRTYLEVEL2; } } @@ -6831,7 +6837,7 @@ BOOLEAN PlayerExistsInSlot( SoldierID ubID ) } -INT8 GetTeamSlotFromPlayerID( UINT16 ubID ) +INT8 GetTeamSlotFromPlayerID( SoldierID ubID ) { INT8 cnt; @@ -6850,7 +6856,7 @@ INT8 GetTeamSlotFromPlayerID( UINT16 ubID ) } -BOOLEAN RemovePlayerFromTeamSlotGivenMercID( UINT16 ubMercID ) +BOOLEAN RemovePlayerFromTeamSlotGivenMercID( SoldierID ubMercID ) { INT32 cnt; @@ -6954,7 +6960,7 @@ BOOLEAN InitTEAMSlots( ) } -BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, UINT16 * pubID ) +BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, SoldierID * pubID ) { if ( ubPanelSlot >= gGameOptions.ubSquadSize ) { @@ -6992,14 +6998,14 @@ BOOLEAN RemovePlayerFromInterfaceTeamSlot( UINT8 ubPanelSlot ) if ( gTeamPanel[ ubPanelSlot ].fOccupied ) { - if ( !( MercPtrs[ gTeamPanel[ ubPanelSlot ].ubID ]->flags.uiStatusFlags & SOLDIER_DEAD ) ) + if ( !( gTeamPanel[ ubPanelSlot ].ubID->flags.uiStatusFlags & SOLDIER_DEAD ) ) { // Set Id to close - MercPtrs[ gTeamPanel[ ubPanelSlot ].ubID ]->flags.fUICloseMerc = TRUE; + gTeamPanel[ ubPanelSlot ].ubID->flags.fUICloseMerc = TRUE; } // Set face to inactive... - SetAutoFaceInActive( MercPtrs[ gTeamPanel[ ubPanelSlot ].ubID ]->iFaceIndex ); + SetAutoFaceInActive( gTeamPanel[ ubPanelSlot ].ubID->iFaceIndex ); gTeamPanel[ ubPanelSlot ].fOccupied = FALSE; @@ -7132,7 +7138,7 @@ void CleanUpStack( OBJECTTYPE * pObj, OBJECTTYPE * pCursorObj ) } } -UINT16 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ) +SoldierID FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ) { INT32 cnt; INT32 bFirstID; @@ -7151,7 +7157,7 @@ UINT16 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLif if ( gTeamPanel[ cnt ].fOccupied ) { // Set Id to close - pTeamSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ]; + pTeamSoldier = gTeamPanel[ cnt ].ubID; if ( fOnlyRegularMercs ) { @@ -7211,7 +7217,7 @@ UINT16 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLif { if ( gTeamPanel[ cnt ].fOccupied ) { - pTeamSoldier = MercPtrs[ gTeamPanel[ cnt ].ubID ]; + pTeamSoldier = gTeamPanel[ cnt ].ubID; if ( fOnlyRegularMercs ) { diff --git a/Tactical/Interface Panels.h b/Tactical/Interface Panels.h index 8908aa30..78fe0367 100644 --- a/Tactical/Interface Panels.h +++ b/Tactical/Interface Panels.h @@ -85,10 +85,10 @@ void UpdateSMPanel( ); BOOLEAN InitTEAMSlots( ); void AddPlayerToInterfaceTeamSlot( SoldierID ubID ); BOOLEAN RemovePlayerFromInterfaceTeamSlot( UINT8 ubID ); -BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, UINT16 * pubID ); +BOOLEAN GetPlayerIDFromInterfaceTeamSlot( UINT8 ubPanelSlot, SoldierID * pubID ); void RemoveAllPlayersFromSlot( ); BOOLEAN PlayerExistsInSlot( SoldierID ubID ); -BOOLEAN RemovePlayerFromTeamSlotGivenMercID( UINT16 ubMercID ); +BOOLEAN RemovePlayerFromTeamSlotGivenMercID( SoldierID ubMercID ); void CheckForAndAddMercToTeamPanel( SOLDIERTYPE *pSoldier ); void CleanUpStack( OBJECTTYPE * pObj, OBJECTTYPE * pCursorObj ); @@ -149,7 +149,7 @@ void GoToMapScreenFromTactical( void ); void FinishAnySkullPanelAnimations( ); -UINT16 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ); +SoldierID FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ); // CHRISL: New callback functions for backpack buttons BOOLEAN ChangeDropPackStatus(SOLDIERTYPE *pSoldier, BOOLEAN newStatus); diff --git a/Tactical/Item Types.cpp b/Tactical/Item Types.cpp index 7409cc2f..85e2af84 100644 --- a/Tactical/Item Types.cpp +++ b/Tactical/Item Types.cpp @@ -125,7 +125,7 @@ bool IsSlotASmallPocket(int slot) return false; } -void CreateLBE (OBJECTTYPE* pObj, UINT16 ubID, int numSubPockets) +void CreateLBE (OBJECTTYPE* pObj, SoldierID ubID, int numSubPockets) { int uniqueID; LBENODE* pLBE = NULL; diff --git a/Tactical/Item Types.h b/Tactical/Item Types.h index db414597..67600237 100644 --- a/Tactical/Item Types.h +++ b/Tactical/Item Types.h @@ -247,7 +247,7 @@ public: UINT32 lbeClass; UINT16 lbeIndex; - UINT16 ubID; + SoldierID ubID; BOOLEAN ZipperFlag; int uniqueID; UINT32 uiNodeChecksum; @@ -259,7 +259,7 @@ public: #define SIZEOF_LBENODE_POD (offsetof(LBENODE, endOfPOD)) bool checkLBEArrayIntegrity(bool verbose=false); // BOB: checks all worldItems for missing LBE info -void CreateLBE(OBJECTTYPE* pObj, UINT16 ubID, int numSubPockets); +void CreateLBE(OBJECTTYPE* pObj, SoldierID ubID, int numSubPockets); bool DestroyLBEIfEmpty(OBJECTTYPE* pObj, int stackIndex = 0); void DestroyLBE(OBJECTTYPE* pObj, int stackIndex = 0); void GetLBESlots(UINT32 LBEType, std::vector& LBESlots); diff --git a/Tactical/Turn Based Input.cpp b/Tactical/Turn Based Input.cpp index 9fb928c1..ff479b90 100644 --- a/Tactical/Turn Based Input.cpp +++ b/Tactical/Turn Based Input.cpp @@ -284,7 +284,7 @@ void ItemCreationCallBack( UINT8 ubResult ); void CheatCreateItem(); // silversurfer: added for merc portrait swapping in tactical void SwapMercPortraits ( SOLDIERTYPE *pSoldier, INT8 bDirection ); -extern INT8 GetTeamSlotFromPlayerID( UINT16 ubID ); +extern INT8 GetTeamSlotFromPlayerID( SoldierID ubID ); extern FACETYPE *gpCurrentTalkingFace; // Flugente: toggle display of enemy role indicators @@ -6257,7 +6257,7 @@ void ChangeCurrentSquad( INT32 iSquad ) void HandleSelectMercSlot( UINT8 ubPanelSlot, INT8 bCode ) { - UINT16 ubID; + SoldierID ubID; if ( GetPlayerIDFromInterfaceTeamSlot( ubPanelSlot, &ubID ) ) { diff --git a/Tactical/UI Cursors.cpp b/Tactical/UI Cursors.cpp index bfbc2e96..b4e81763 100644 --- a/Tactical/UI Cursors.cpp +++ b/Tactical/UI Cursors.cpp @@ -1420,7 +1420,7 @@ UINT8 HandleNonActivatedTargetCursor( SOLDIERTYPE *pSoldier, INT32 usMapPos , BO } -void DetermineCursorBodyLocation( UINT16 ubSoldierID, BOOLEAN fDisplay, BOOLEAN fRecalc ) +void DetermineCursorBodyLocation( SoldierID ubSoldierID, BOOLEAN fDisplay, BOOLEAN fRecalc ) { INT32 usMapPos; SOLDIERTYPE *pTargetSoldier = NULL, *pSoldier; @@ -1429,7 +1429,7 @@ void DetermineCursorBodyLocation( UINT16 ubSoldierID, BOOLEAN fDisplay, BOOLEAN BOOLEAN fOnGuy = FALSE; LEVELNODE *pNode; - pSoldier = MercPtrs[ ubSoldierID ]; + pSoldier = ubSoldierID; if ( gTacticalStatus.ubAttackBusyCount > 0 ) { @@ -2263,10 +2263,10 @@ UINT8 HandleBloodbagCursor( SOLDIERTYPE *pSoldier, INT32 sGridNo, BOOLEAN fActiv if ( HasItemFlag( ( &( pSoldier->inv[HANDPOS] ) )->usItem, EMPTY_BLOOD_BAG ) ) { // is there a person here? - UINT16 usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel ); + SoldierID usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel ); if ( usSoldierIndex != NOBODY ) { - if ( usSoldierIndex != pSoldier->ubID && MercPtrs[usSoldierIndex]->IsValidBloodDonor() ) + if ( usSoldierIndex != pSoldier->ubID && usSoldierIndex->IsValidBloodDonor() ) return BLOODBAG_GREY_UICURSOR; } } @@ -2298,10 +2298,10 @@ UINT8 HandleSplintCursor( SOLDIERTYPE *pSoldier, INT32 sGridNo, BOOLEAN fActivat } // is there a person here? - UINT16 usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel ); + SoldierID usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel ); if ( usSoldierIndex != NOBODY ) { - if ( usSoldierIndex != pSoldier->ubID && MercPtrs[usSoldierIndex]->CanReceiveSplint() ) + if ( usSoldierIndex != pSoldier->ubID && usSoldierIndex->CanReceiveSplint() ) return SPLINT_GREY_UICURSOR; } } @@ -2384,8 +2384,8 @@ UINT8 HandleHandcuffCursor( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT32 uiCurso if ( HasItemFlag( (&(pSoldier->inv[HANDPOS]))->usItem, HANDCUFFS ) ) { // is there a person here? - UINT16 usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel ); - if (usSoldierIndex != NOBODY && MercPtrs[usSoldierIndex] && MercPtrs[usSoldierIndex]->bVisible >= 0 && MercPtrs[usSoldierIndex]->CanBeCaptured()) + SoldierID usSoldierIndex = WhoIsThere2( sGridNo, pSoldier->pathing.bLevel ); + if (usSoldierIndex != NOBODY && usSoldierIndex->bVisible >= 0 && usSoldierIndex->CanBeCaptured()) { return( HANDCUFF_GREY_UICURSOR ); } @@ -2406,8 +2406,8 @@ UINT8 HandleApplyItemCursor(SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT32 uiCurso if (ItemCanBeAppliedToOthers((&(pSoldier->inv[HANDPOS]))->usItem)) { // is there a person here? - UINT16 ubPerson = WhoIsThere2(sGridNo, pSoldier->pathing.bLevel); - if (ubPerson != NOBODY && MercPtrs[ubPerson] && MercPtrs[ubPerson]->bVisible >= 0) + SoldierID ubPerson = WhoIsThere2(sGridNo, pSoldier->pathing.bLevel); + if (ubPerson != NOBODY && ubPerson->bVisible >= 0) { return(APPLYITEM_GREY_UICURSOR); } @@ -3022,8 +3022,8 @@ UINT8 GetActionModeCursor( SOLDIERTYPE *pSoldier ) if ( GetMouseMapPos( &usMapPos ) ) { // is there a person here? - UINT16 ubPerson = WhoIsThere2(usMapPos, pSoldier->pathing.bLevel); - if (ubPerson != NOBODY && MercPtrs[ubPerson] && MercPtrs[ubPerson]->bVisible >= 0) + SoldierID ubPerson = WhoIsThere2(usMapPos, pSoldier->pathing.bLevel); + if (ubPerson != NOBODY && ubPerson->bVisible >= 0) { ubCursor = APPLYITEMCURS; } diff --git a/Tactical/UI Cursors.h b/Tactical/UI Cursors.h index 415246c4..6723dd46 100644 --- a/Tactical/UI Cursors.h +++ b/Tactical/UI Cursors.h @@ -10,7 +10,7 @@ UINT8 GetProperItemCursor( SoldierID ubSoldierID, UINT16 ubItemIndex, INT32 usMapPos, BOOLEAN fActivated ); -void DetermineCursorBodyLocation( UINT16 ubSoldierID, BOOLEAN fDisplay, BOOLEAN fRecalc ); +void DetermineCursorBodyLocation( SoldierID ubSoldierID, BOOLEAN fDisplay, BOOLEAN fRecalc ); void HandleLeftClickCursor( SOLDIERTYPE *pSoldier ); void HandleRightClickAdjustCursor( SOLDIERTYPE *pSoldier, INT32 usMapPos ); diff --git a/Tactical/World Items.cpp b/Tactical/World Items.cpp index adcb9671..39238f14 100644 --- a/Tactical/World Items.cpp +++ b/Tactical/World Items.cpp @@ -610,7 +610,7 @@ void ResizeWorldItems(void)//dnl ch75 271013 #endif } -INT32 AddItemToWorld( INT32 sGridNo, OBJECTTYPE *pObject, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT8 bVisible, INT16 soldierID ) +INT32 AddItemToWorld( INT32 sGridNo, OBJECTTYPE *pObject, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT8 bVisible, SoldierID soldierID ) { UINT32 iItemIndex; INT32 iReturn; @@ -658,12 +658,15 @@ INT32 AddItemToWorld( INT32 sGridNo, OBJECTTYPE *pObject, UINT8 ubLevel, UINT16 { SOLDIERTYPE* pSoldier = NULL; - if (soldierID == -1) + if (soldierID == NOBODY) { if (gWorldItems[ iItemIndex ].object[0]->data.misc.ubBombOwner > 1) { soldierID = gWorldItems[ iItemIndex ].object[0]->data.misc.ubBombOwner - 2; // undo the hack - pSoldier = MercPtrs[ soldierID ]; + if ( soldierID < NOBODY ) + { + pSoldier = soldierID; + } } } diff --git a/Tactical/World Items.h b/Tactical/World Items.h index cd3ae1ee..03ae16f9 100644 --- a/Tactical/World Items.h +++ b/Tactical/World Items.h @@ -122,7 +122,7 @@ public: extern std::vector gWorldItems;//dnl ch75 261013 extern UINT32 guiNumWorldItems; -INT32 AddItemToWorld( INT32 sGridNo, OBJECTTYPE *pObject, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT8 bVisible, INT16 soldierID ); +INT32 AddItemToWorld( INT32 sGridNo, OBJECTTYPE *pObject, UINT8 ubLevel, UINT16 usFlags, INT8 bRenderZHeightAboveLevel, INT8 bVisible, SoldierID soldierID ); void RemoveItemFromWorld( INT32 iItemIndex ); INT32 FindWorldItem( UINT16 usItem ); diff --git a/TileEngine/renderworld.cpp b/TileEngine/renderworld.cpp index 52a575d8..755f4738 100644 --- a/TileEngine/renderworld.cpp +++ b/TileEngine/renderworld.cpp @@ -1106,7 +1106,7 @@ inline UINT16 * GetShadeTable(LEVELNODE * pNode, SOLDIERTYPE * pSoldier, SOLDIER } // Set shade // If a bad guy is highlighted - if (gfUIHandleSelectionAboveGuy == TRUE && MercPtrs[gsSelectedGuy]->bSide != gbPlayerNum) + if (gfUIHandleSelectionAboveGuy == TRUE && gsSelectedGuy->bSide != gbPlayerNum) { if (gsSelectedGuy == pSoldier->ubID) {