diff --git a/Tactical/Handle UI.cpp b/Tactical/Handle UI.cpp index cca15ed9..2ad4e76e 100644 --- a/Tactical/Handle UI.cpp +++ b/Tactical/Handle UI.cpp @@ -6378,9 +6378,9 @@ BOOLEAN IsValidTalkableNPCFromMouse( UINT16 * pubSoldierID, BOOLEAN fGive, BOOLE } -BOOLEAN IsValidTalkableNPC( UINT16 ubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed ) +BOOLEAN IsValidTalkableNPC( SoldierID ubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed ) { - SOLDIERTYPE *pSoldier = MercPtrs[ ubSoldierID ]; + SOLDIERTYPE *pSoldier = ubSoldierID; BOOLEAN fValidGuy = FALSE; if ( gusSelectedSoldier != NOBODY ) diff --git a/Tactical/Handle UI.h b/Tactical/Handle UI.h index b72930ae..22bd3fa4 100644 --- a/Tactical/Handle UI.h +++ b/Tactical/Handle UI.h @@ -335,7 +335,7 @@ BOOLEAN UIMouseOnValidAttackLocation( SOLDIERTYPE *pSoldier ); BOOLEAN UIOkForItemPickup( SOLDIERTYPE *pSoldier, INT32 sGridNo ); BOOLEAN IsValidTalkableNPCFromMouse( UINT16 * pubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed ); -BOOLEAN IsValidTalkableNPC( UINT16 ubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed ); +BOOLEAN IsValidTalkableNPC( SoldierID ubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMercs, BOOLEAN fCheckCollapsed ); BOOLEAN HandleTalkInit( ); diff --git a/Tactical/LOS.cpp b/Tactical/LOS.cpp index 7c607510..9d9154c6 100644 --- a/Tactical/LOS.cpp +++ b/Tactical/LOS.cpp @@ -3436,7 +3436,7 @@ BOOLEAN BulletHitMerc( BULLET * pBullet, STRUCTURE * pStructure, BOOLEAN fIntend // be legal, but the bLevel May change... sNewGridNo = NewGridNo( pBullet->sGridNo, DirectionInc( gOppositeDirection[ SWeaponHit.usDirection ] ) ); - bSpewBloodLevel = MercPtrs[ SWeaponHit.usSoldierID ]->pathing.bLevel; + bSpewBloodLevel = SWeaponHit.usSoldierID->pathing.bLevel; fCanSpewBlood = TRUE; // If on anything other than bLevel of 0, we can pretty much freely spew blood diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index 84addbd3..37cf962a 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -1730,10 +1730,10 @@ void AdjustForFastTurnAnimation( SOLDIERTYPE *pSoldier ); UINT16 SelectFireAnimation( SOLDIERTYPE *pSoldier, UINT8 ubHeight ); void SelectFallAnimation( SOLDIERTYPE *pSoldier ); BOOLEAN FullStructAlone( INT32 sGridNo, UINT8 ubRadius ); -void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT16 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ); +void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, SoldierID ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ); void SoldierGotHitBlade( SOLDIERTYPE* pSoldier, UINT8 ubHitLocation ); -void SoldierGotHitPunch( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT8 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ); -void SoldierGotHitExplosion( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT8 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ); +void SoldierGotHitPunch( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, SoldierID ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ); +void SoldierGotHitExplosion( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, SoldierID ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ); void SoldierGotHitVehicle( SOLDIERTYPE* pSoldier, UINT16 bDirection ); UINT8 CalcScreamVolume( SOLDIERTYPE * pSoldier, UINT8 ubCombinedLoss ); void PlaySoldierFootstepSound( SOLDIERTYPE *pSoldier ); @@ -6492,7 +6492,7 @@ void DoGenericHit( SOLDIERTYPE *pSoldier, UINT8 ubSpecial, INT16 bDirection ) } -void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT16 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ) +void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, SoldierID ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ) { INT32 usNewGridNo; BOOLEAN fBlownAway = FALSE; @@ -6517,7 +6517,7 @@ void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sD if ( Item[usWeaponIndex].usItemClass == IC_GUN ) ubDistMessy *= gItemSettings.fDistMessyModifierGun[Weapon[usWeaponIndex].ubWeaponType]; - if ( SpacesAway( pSoldier->sGridNo, Menptr[ubAttackerID].sGridNo ) <= ubDistMessy ) + if ( SpacesAway( pSoldier->sGridNo, ubAttackerID->sGridNo ) <= ubDistMessy ) { usNewGridNo = NewGridNo( pSoldier->sGridNo, (INT8)(DirectionInc( pSoldier->ubDirection )) ); @@ -6546,7 +6546,7 @@ void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sD if ( Item[usWeaponIndex].usItemClass == IC_GUN ) ubDistMessy *= gItemSettings.fDistMessyModifierGun[Weapon[usWeaponIndex].ubWeaponType]; - if ( SpacesAway( pSoldier->sGridNo, Menptr[ubAttackerID].sGridNo ) <= ubDistMessy ) + if ( SpacesAway( pSoldier->sGridNo, ubAttackerID->sGridNo ) <= ubDistMessy ) { // possibly play torso explosion anim! @@ -6619,7 +6619,7 @@ void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sD // Flugente: dynamic opinions if (gGameExternalOptions.fDynamicOpinions && ubAttackerID != NOBODY ) - HandleDynamicOpinionChange( MercPtrs[ubAttackerID], OPINIONEVENT_BRUTAL_GOOD, TRUE, TRUE ); + HandleDynamicOpinionChange( ubAttackerID, OPINIONEVENT_BRUTAL_GOOD, TRUE, TRUE ); return; } @@ -6634,7 +6634,7 @@ void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sD // Flugente: dynamic opinions if (gGameExternalOptions.fDynamicOpinions && ubAttackerID != NOBODY ) - HandleDynamicOpinionChange( MercPtrs[ubAttackerID], OPINIONEVENT_BRUTAL_GOOD, TRUE, TRUE ); + HandleDynamicOpinionChange( ubAttackerID, OPINIONEVENT_BRUTAL_GOOD, TRUE, TRUE ); return; } @@ -6643,7 +6643,7 @@ void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sD DoGenericHit( pSoldier, ubSpecial, bDirection ); } -void SoldierGotHitExplosion( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT8 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ) +void SoldierGotHitExplosion( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, SoldierID ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ) { // Flugente: if hit in legs or torso, blood will be on our uniform - parts of the clothes cannot be worn anymore if ( ubHitLocation == AIM_SHOT_TORSO ) @@ -6858,7 +6858,7 @@ void SoldierGotHitBlade( SOLDIERTYPE *pSoldier, UINT8 ubHitLocation ) } -void SoldierGotHitPunch( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, UINT8 ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ) +void SoldierGotHitPunch( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sDamage, UINT16 bDirection, UINT16 sRange, SoldierID ubAttackerID, UINT8 ubSpecial, UINT8 ubHitLocation ) { // IF HERE AND GUY IS DEAD, RETURN! @@ -12507,9 +12507,9 @@ void SOLDIERTYPE::EVENT_SoldierBeginBladeAttack( INT32 sGridNo, UINT8 ubDirectio if ( this->flags.uiStatusFlags & SOLDIER_MONSTER ) { // Is there an unconscious guy at gridno...... - UINT16 ubTargetID = WhoIsThere2( sGridNo, this->bTargetLevel ); + SoldierID ubTargetID = WhoIsThere2( sGridNo, this->bTargetLevel ); - if ( ubTargetID != NOBODY && ((MercPtrs[ubTargetID]->stats.bLife < OKLIFE && MercPtrs[ubTargetID]->stats.bLife > 0) || (MercPtrs[ubTargetID]->bBreath < OKBREATH && MercPtrs[ubTargetID]->bCollapsed)) ) + if ( ubTargetID != NOBODY && ((ubTargetID->stats.bLife < OKLIFE && ubTargetID->stats.bLife > 0) || (ubTargetID->bBreath < OKBREATH && ubTargetID->bCollapsed)) ) { this->aiData.uiPendingActionData4 = ubTargetID; @@ -13140,13 +13140,12 @@ void SOLDIERTYPE::EVENT_SoldierBeginFirstAid( INT32 sGridNo, UINT8 ubDirection ) { SOLDIERTYPE *pTSoldier; //UINT32 uiMercFlags; - UINT16 usSoldierIndex; BOOLEAN fRefused = FALSE; - usSoldierIndex = WhoIsThere2( sGridNo, this->pathing.bLevel ); + SoldierID usSoldierIndex = WhoIsThere2( sGridNo, this->pathing.bLevel ); if ( usSoldierIndex != NOBODY ) { - pTSoldier = MercPtrs[usSoldierIndex]; + pTSoldier = usSoldierIndex; //SANDRO - hack! Find out if we are a doctor with medical bag trying to make a surgery this->fDoingSurgery = FALSE; @@ -13275,7 +13274,7 @@ void SOLDIERTYPE::EVENT_SoldierEnterVehicle( INT32 sGridNo, UINT8 ubDirection, U if ( FindSoldier( sGridNo, &usSoldierIndex, &uiMercFlags, FIND_SOLDIER_GRIDNO ) ) { - pTSoldier = MercPtrs[usSoldierIndex]; + pTSoldier = usSoldierIndex; // Enter vehicle... EnterVehicle( pTSoldier, this, ubSeatIndex ); @@ -13790,7 +13789,7 @@ void SOLDIERTYPE::InternalGivingSoldierCancelServices( BOOLEAN fPlayEndAnim ) // GET TARGET SOLDIER if ( this->ubServicePartner != NOBODY ) { - pTSoldier = MercPtrs[this->ubServicePartner]; + pTSoldier = this->ubServicePartner; // END SERVICE! pTSoldier->ubServiceCount--; @@ -14773,12 +14772,12 @@ BOOLEAN SOLDIERTYPE::IsWeaponMounted( void ) if ( !IsLocationSittable( nextGridNoinSight, 0 ) ) { // resting our gun on people is allowed sometimes - UINT16 usPersonID = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel ); + SoldierID usPersonID = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel ); if ( usPersonID == NOBODY ) applybipod = TRUE; else { - SOLDIERTYPE* pSoldier = MercPtrs[usPersonID]; + SOLDIERTYPE* pSoldier = usPersonID; // anv: vehicles don't mind if ( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) @@ -14797,7 +14796,7 @@ BOOLEAN SOLDIERTYPE::IsWeaponMounted( void ) // Flugente: dynamic opinions if (gGameExternalOptions.fDynamicOpinions) { - AddOpinionEvent(MercPtrs[usPersonID]->ubProfile, this->ubProfile, OPINIONEVENT_YOUMOUNTEDAGUNONMYBREASTS); + AddOpinionEvent(pSoldier->ubProfile, this->ubProfile, OPINIONEVENT_YOUMOUNTEDAGUNONMYBREASTS); } } } @@ -14847,12 +14846,12 @@ BOOLEAN SOLDIERTYPE::IsWeaponMounted( void ) if ( !IsLocationSittable( nextGridNoinSight, 0 ) ) { // resting our gun on people is allowed sometimes - UINT16 usPersonID = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel ); + SoldierID usPersonID = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel ); if ( usPersonID == NOBODY ) applybipod = TRUE; else { - SOLDIERTYPE* pSoldier = MercPtrs[usPersonID]; + SOLDIERTYPE* pSoldier = usPersonID; // anv: vehicles don't mind if ( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) @@ -14867,7 +14866,7 @@ BOOLEAN SOLDIERTYPE::IsWeaponMounted( void ) // Flugente: dynamic opinions if (gGameExternalOptions.fDynamicOpinions) { - AddOpinionEvent(MercPtrs[usPersonID]->ubProfile, this->ubProfile, OPINIONEVENT_YOUMOUNTEDAGUNONMYBREASTS); + AddOpinionEvent(pSoldier->ubProfile, this->ubProfile, OPINIONEVENT_YOUMOUNTEDAGUNONMYBREASTS); } } } @@ -15328,7 +15327,7 @@ BOOLEAN SOLDIERTYPE::IsFeedingExternal( UINT16 * pubId1, UINT16* pGunSlot1, UIN UINT16 lastslotforammo = MEDPOCK3POS; // for robots and AI-controlled soldiers (who don't have any LBE gear), we put a change in here so that ALL their slots are checked for ammo - if ( this->bTeam != gbPlayerNum || MercPtrs[this->ubID]->flags.uiStatusFlags & SOLDIER_ROBOT ) + if ( this->bTeam != gbPlayerNum || this->ubID->flags.uiStatusFlags & SOLDIER_ROBOT ) { firstslotforammo = HANDPOS; lastslotforammo = NUM_INV_SLOTS; @@ -15835,9 +15834,9 @@ BOOLEAN SOLDIERTYPE::EquipmentTooGood( BOOLEAN fCloselook ) // are we in covert mode? we need to have the correct flag set, and not wear anything suspicious, or behave in a suspicious way -BOOLEAN SOLDIERTYPE::SeemsLegit( UINT16 ubObserverID ) +BOOLEAN SOLDIERTYPE::SeemsLegit( SoldierID ubObserverID ) { - SOLDIERTYPE* pSoldier = MercPtrs[ubObserverID]; + SOLDIERTYPE* pSoldier = ubObserverID; if ( !pSoldier ) return TRUE; @@ -16123,7 +16122,7 @@ BOOLEAN SOLDIERTYPE::SeemsLegit( UINT16 ubObserverID ) } // do we recognize someone else as a combatant? -BOOLEAN SOLDIERTYPE::RecognizeAsCombatant( UINT16 ubTargetID ) +BOOLEAN SOLDIERTYPE::RecognizeAsCombatant( SoldierID ubTargetID ) { // this will only work with the new trait system if ( !gGameOptions.fNewTraitSystem ) @@ -16132,7 +16131,7 @@ BOOLEAN SOLDIERTYPE::RecognizeAsCombatant( UINT16 ubTargetID ) if ( ubTargetID == NOBODY ) return TRUE; - SOLDIERTYPE* pSoldier = MercPtrs[ubTargetID]; + SOLDIERTYPE* pSoldier = ubTargetID; if ( !pSoldier ) return TRUE; @@ -16462,12 +16461,12 @@ BOOLEAN SOLDIERTYPE::FreePrisoner( ) // we can only free people we are facing INT32 nextGridNoinSight = NewGridNo( this->sGridNo, DirectionInc( this->ubDirection ) ); - UINT16 target = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel ); + SoldierID target = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel ); // is there somebody? if ( target != NOBODY ) { - SOLDIERTYPE* pSoldier = MercPtrs[target]; + SOLDIERTYPE* pSoldier = target; // if he is captured, free him! // note that this would also work for prisoner civs that we spawn in our prisons. All needed would be commanding the AI to get there @@ -18860,7 +18859,7 @@ BOOLEAN SOLDIERTYPE::OrderArtilleryStrike( UINT32 usSectorNr, INT32 sTargetGridN // if he does not do so, active vox operators will be targetted. Who knows, the vox operator might be doing a heroic last stand for all we know... //BOOLEAN signalshellfired = FALSE; const UINT8 maxFiringMortarsAmount = 5; - UINT16 radiooperatorID = 0; + SoldierID radiooperatorID = 0; UINT8 mortaritemcnt = 0; UINT16 mortararray[maxFiringMortarsAmount] = { 0 }; @@ -19008,7 +19007,7 @@ BOOLEAN SOLDIERTYPE::OrderArtilleryStrike( UINT32 usSectorNr, INT32 sTargetGridN if ( radiooperatorID ) { - pSoldier = MercPtrs[radiooperatorID]; + pSoldier = radiooperatorID; // also drain the other guy's radio batteries pSoldier->UseRadio( ); @@ -19337,12 +19336,12 @@ BOOLEAN SOLDIERTYPE::AIDoctorFriend( ) // we can only free people we are facing INT32 nextGridNoinSight = NewGridNo( this->sGridNo, DirectionInc( this->ubDirection ) ); - UINT16 target = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel ); + SoldierID target = WhoIsThere2( nextGridNoinSight, this->pathing.bLevel ); // is there somebody? if ( target != NOBODY ) { - SOLDIERTYPE* pSoldier = MercPtrs[target]; + SOLDIERTYPE* pSoldier = target; if ( pSoldier->bTeam != ENEMY_TEAM ) return FALSE; @@ -20517,13 +20516,13 @@ BOOLEAN SOLDIERTYPE::CanDragInPrinciple(BOOLEAN fCheckStance) return TRUE; } -BOOLEAN SOLDIERTYPE::CanDragPerson(UINT16 usID, BOOLEAN fCheckStance) +BOOLEAN SOLDIERTYPE::CanDragPerson(SoldierID usID, BOOLEAN fCheckStance) { if (!CanDragInPrinciple(fCheckStance)) return FALSE; // check whether this guy exists etc. - SOLDIERTYPE* pSoldier = MercPtrs[usID]; + SOLDIERTYPE* pSoldier = usID; if ( pSoldier && pSoldier->bActive && pSoldier->bInSector ) { @@ -20804,7 +20803,7 @@ BOOLEAN SOLDIERTYPE::IsDragging( bool aStopIfConditionNotSatisfied ) return FALSE; } -void SOLDIERTYPE::SetDragOrderPerson( UINT16 usID ) +void SOLDIERTYPE::SetDragOrderPerson( SoldierID usID ) { if ( CanDragPerson( usID ) ) { @@ -20825,16 +20824,16 @@ void SOLDIERTYPE::SetDragOrderPerson( UINT16 usID ) } } -void SOLDIERTYPE::SetDragOrderCorpse( UINT32 usID ) +void SOLDIERTYPE::SetDragOrderCorpse( UINT32 uiCorpseID ) { - if ( CanDragCorpse( usID ) ) + if ( CanDragCorpse( uiCorpseID ) ) { // sevenfm: if someone is dragging this corpse, cancel drag SOLDIERTYPE *pSoldier; for (UINT32 uiLoop = 0; uiLoop < guiNumMercSlots; uiLoop++) { pSoldier = MercPtrs[uiLoop]; - if (pSoldier && pSoldier->sDragCorpseID == usID) + if (pSoldier && pSoldier->sDragCorpseID == uiCorpseID) { pSoldier->CancelDrag(); } @@ -20842,7 +20841,7 @@ void SOLDIERTYPE::SetDragOrderCorpse( UINT32 usID ) CancelDrag(); - this->sDragCorpseID = usID; + this->sDragCorpseID = uiCorpseID; } } @@ -21014,7 +21013,7 @@ void SOLDIERTYPE::StopChatting() { ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, TacticalStr[DISTRACT_STOP_STR], this->GetName(), this->usChatPartnerID->GetName() ); - MercPtrs[this->usChatPartnerID]->usChatPartnerID = NOBODY; + this->usChatPartnerID->usChatPartnerID = NOBODY; this->usChatPartnerID = NOBODY; } } @@ -21372,7 +21371,7 @@ UINT8 SOLDIERTYPE::GetThiefEvadeDetectionChance() return totalvalue; } -BOOLEAN SOLDIERTYPE::InPositionForTurncoatAttempt( UINT16 usID ) +BOOLEAN SOLDIERTYPE::InPositionForTurncoatAttempt( SoldierID usID ) { if ( !gSkillTraitValues.fCOTurncoats || gbWorldSectorZ @@ -21387,7 +21386,7 @@ BOOLEAN SOLDIERTYPE::InPositionForTurncoatAttempt( UINT16 usID ) || usID == NOBODY ) return FALSE; - SOLDIERTYPE* pSoldier = MercPtrs[usID]; + SOLDIERTYPE* pSoldier = usID; if ( !pSoldier || pSoldier->bTeam != ENEMY_TEAM @@ -21543,12 +21542,12 @@ UINT8 SOLDIERTYPE::GetTurncoatConvinctionChance( SoldierID usID, INT16 sApproac return max( 0, min( 100, recruitrating - enemyresistancerating ) ); } -void SOLDIERTYPE::AttemptToCreateTurncoat( UINT16 usID ) +void SOLDIERTYPE::AttemptToCreateTurncoat( SoldierID usID ) { if ( usID >= NOBODY ) return; - SOLDIERTYPE* pSoldier = MercPtrs[usID]; + SOLDIERTYPE* pSoldier = usID; if ( !pSoldier || pSoldier->bTeam != ENEMY_TEAM @@ -21558,12 +21557,12 @@ void SOLDIERTYPE::AttemptToCreateTurncoat( UINT16 usID ) HandleTurncoatAttempt( pSoldier ); } -BOOLEAN SOLDIERTYPE::OrderTurnCoatToSwitchSides( UINT16 usID ) +BOOLEAN SOLDIERTYPE::OrderTurnCoatToSwitchSides( SoldierID usID ) { if ( usID >= NOBODY ) return FALSE; - SOLDIERTYPE* pSoldier = MercPtrs[usID]; + SOLDIERTYPE* pSoldier = usID; if (!pSoldier || pSoldier->bTeam != ENEMY_TEAM @@ -22545,12 +22544,12 @@ void SOLDIERTYPE::EVENT_SoldierHandcuffPerson( INT32 sGridNo, UINT8 ubDirection if ( !gGameExternalOptions.fAllowPrisonerSystem ) return; - UINT16 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); + SoldierID ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); - if ( ubPerson != NOBODY && MercPtrs[ubPerson]->CanBeCaptured( ) ) + if ( ubPerson != NOBODY && ubPerson->CanBeCaptured( ) ) { // we found someone we can handcuff - SOLDIERTYPE* pSoldier = MercPtrs[ubPerson]; + SOLDIERTYPE* pSoldier = ubPerson; // check wether we will be successful BOOLEAN success = FALSE; @@ -22688,12 +22687,12 @@ void SOLDIERTYPE::EVENT_SoldierHandcuffPerson( INT32 sGridNo, UINT8 ubDirection void SOLDIERTYPE::EVENT_SoldierApplyItemToPerson( INT32 sGridNo, UINT8 ubDirection ) { - UINT16 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); + SoldierID ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); if ( ubPerson != NOBODY ) { // we found someone - SOLDIERTYPE* pSoldier = MercPtrs[ubPerson]; + SOLDIERTYPE* pSoldier = ubPerson; OBJECTTYPE* pObj = &(this->inv[HANDPOS]); @@ -22824,12 +22823,12 @@ void SOLDIERTYPE::EVENT_SoldierApplyItemToPerson( INT32 sGridNo, UINT8 ubDirecti void SOLDIERTYPE::EVENT_SoldierTakeBloodFromPerson( INT32 sGridNo, UINT8 ubDirection ) { - UINT16 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); + SoldierID ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); if ( ubPerson != NOBODY && ubPerson != this->ubID ) { // we found someone - SOLDIERTYPE* pSoldier = MercPtrs[ubPerson]; + SOLDIERTYPE* pSoldier = ubPerson; OBJECTTYPE* pObj = &( this->inv[HANDPOS] ); @@ -22895,12 +22894,12 @@ void SOLDIERTYPE::EVENT_SoldierTakeBloodFromPerson( INT32 sGridNo, UINT8 ubDirec void SOLDIERTYPE::EVENT_SoldierApplySplintToPerson( INT32 sGridNo, UINT8 ubDirection ) { - UINT16 ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); + SoldierID ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); if ( ubPerson != NOBODY && ubPerson != this->ubID ) { // we found someone - SOLDIERTYPE* pSoldier = MercPtrs[ubPerson]; + SOLDIERTYPE* pSoldier = ubPerson; OBJECTTYPE* pObj = &( this->inv[HANDPOS] ); @@ -22964,12 +22963,10 @@ void SOLDIERTYPE::EVENT_SoldierInteractiveAction( INT32 sGridNo, UINT16 usAction void SOLDIERTYPE::EVENT_SoldierBeginReloadRobot( INT32 sGridNo, UINT8 ubDirection, UINT8 ubMercSlot ) { - UINT16 ubPerson; - // Make sure we have a robot here.... - ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); + SoldierID ubPerson = WhoIsThere2( sGridNo, this->pathing.bLevel ); - if ( ubPerson != NOBODY && MercPtrs[ubPerson]->flags.uiStatusFlags & SOLDIER_ROBOT ) + if ( ubPerson != NOBODY && ubPerson->flags.uiStatusFlags & SOLDIER_ROBOT ) { // CHANGE DIRECTION AND GOTO ANIMATION NOW if (this->ubDirection != ubDirection) @@ -23195,18 +23192,18 @@ void AbandonBoxingDueToSurrenderCallback(UINT8 ubExitValue) } SOLDIERTYPE *pTMilitiaSoldier;//global pointer -BOOLEAN SOLDIERTYPE::PlayerSoldierStartTalking( UINT16 ubTargetID, BOOLEAN fValidate ) +BOOLEAN SOLDIERTYPE::PlayerSoldierStartTalking( SoldierID ubTargetID, BOOLEAN fValidate ) { - INT16 sFacingDir, sXPos, sYPos, sAPCost; - SOLDIERTYPE *pTSoldier; - UINT32 uiRange; + INT16 sFacingDir, sXPos, sYPos, sAPCost; + SOLDIERTYPE *pTSoldier; + UINT32 uiRange; if ( ubTargetID == NOBODY ) { return(FALSE); } - pTSoldier = MercPtrs[ubTargetID]; + pTSoldier = ubTargetID; // Check distance again, to be sure if ( fValidate ) @@ -23392,7 +23389,7 @@ BOOLEAN SOLDIERTYPE::IsValidSecondHandBurst( void ) { if ( this->bDoAutofire ) { - // if second gun cannot use atuofire mode + // if second gun cannot use autofire mode if ( !IsGunAutofireCapable( &this->inv[SECONDHANDPOS] ) ) { return(FALSE); diff --git a/Tactical/Soldier Control.h b/Tactical/Soldier Control.h index 3ccedd4e..81498083 100644 --- a/Tactical/Soldier Control.h +++ b/Tactical/Soldier Control.h @@ -1254,7 +1254,7 @@ public: UINT16 *pCurrentShade; UINT8 ubFadeLevel; UINT8 ubServiceCount; - UINT16 ubServicePartner; + SoldierID ubServicePartner; THROW_PARAMS *pThrowParams; INT8 bReverse; LEVELNODE *pLevelNode; @@ -1427,7 +1427,7 @@ public: INT8 bOldBattleSnd; INT32 iBurstSoundID; INT8 bSlotItemTakenFrom; - UINT16 ubAutoBandagingMedic; + SoldierID ubAutoBandagingMedic; SoldierID ubRobotRemoteHolderID; UINT32 uiTimeOfLastContractUpdate; INT8 bTypeOfLastContract; @@ -1808,7 +1808,7 @@ public: BOOLEAN CheckSoldierHitRoof( void ); BOOLEAN CheckForBreathCollapse( void ); - BOOLEAN PlayerSoldierStartTalking( UINT16 ubTargetID, BOOLEAN fValidate ); + BOOLEAN PlayerSoldierStartTalking( SoldierID ubTargetID, BOOLEAN fValidate ); BOOLEAN InternalIsValidStance( INT8 bDirection, INT8 bNewStance ); BOOLEAN IsValidSecondHandShot( void ); BOOLEAN IsValidSecondHandBurst( void ); @@ -1859,10 +1859,10 @@ public: BOOLEAN EquipmentTooGood( BOOLEAN fCloselook ); // does soldier ubObserverID recognize us as his enemy? - BOOLEAN SeemsLegit( UINT16 ubObserverID ); + BOOLEAN SeemsLegit( SoldierID ubObserverID ); // do we recognize someone else as a combatant? - BOOLEAN RecognizeAsCombatant(UINT16 ubTargetID); + BOOLEAN RecognizeAsCombatant(SoldierID ubTargetID); // loose covert property void LooseDisguise( void ); @@ -2053,12 +2053,12 @@ public: // Flugente: drag people BOOLEAN CanDragInPrinciple(BOOLEAN fCheckStance = FALSE); - BOOLEAN CanDragPerson(UINT16 usID, BOOLEAN fCheckStance = FALSE); + BOOLEAN CanDragPerson(SoldierID usID, BOOLEAN fCheckStance = FALSE); BOOLEAN CanDragCorpse(UINT16 usCorpseNum, BOOLEAN fCheckStance = FALSE); BOOLEAN CanDragStructure(INT32 sGridNo, BOOLEAN fCheckStance = FALSE); BOOLEAN IsDragging(bool aStopIfConditionNotSatisfied = true); - void SetDragOrderPerson( UINT16 usID ); - void SetDragOrderCorpse( UINT32 usID ); + void SetDragOrderPerson( SoldierID usID ); + void SetDragOrderCorpse( UINT32 uiCorpseID ); void SetDragOrderStructure( INT32 sGridNo ); void CancelDrag(); @@ -2086,10 +2086,10 @@ public: UINT8 GetThiefEvadeDetectionChance(); // Flugente: turncoats - BOOLEAN InPositionForTurncoatAttempt( UINT16 usID ); + BOOLEAN InPositionForTurncoatAttempt( SoldierID usID ); UINT8 GetTurncoatConvinctionChance( SoldierID usID, INT16 usApproach ); - void AttemptToCreateTurncoat( UINT16 usID ); - BOOLEAN OrderTurnCoatToSwitchSides( UINT16 usID ); + void AttemptToCreateTurncoat( SoldierID usID ); + BOOLEAN OrderTurnCoatToSwitchSides( SoldierID usID ); void OrderAllTurnCoatToSwitchSides(); // Flugente: exploration assignment diff --git a/Tactical/TeamTurns.cpp b/Tactical/TeamTurns.cpp index fd496bd5..49d53cfd 100644 --- a/Tactical/TeamTurns.cpp +++ b/Tactical/TeamTurns.cpp @@ -102,9 +102,9 @@ UINT16 gubOutOfTurnPersons = 0; #define REMOVE_LATEST_INTERRUPT_GUY() (DeleteFromIntList( (gubOutOfTurnPersons), TRUE )) #define INTERRUPTS_OVER (gubOutOfTurnPersons == 1) -INT16 InterruptOnlyGuynum = NOBODY; -BOOLEAN InterruptsAllowed = TRUE; -BOOLEAN gfHiddenInterrupt = FALSE; +SoldierID InterruptOnlyGuynum = NOBODY; +BOOLEAN InterruptsAllowed = TRUE; +BOOLEAN gfHiddenInterrupt = FALSE; UINT8 gubLastInterruptedGuy = 0; extern UINT16 gsWhoThrewRock; @@ -1797,7 +1797,7 @@ BOOLEAN StandardInterruptConditionsMet( SOLDIERTYPE * pSoldier, UINT16 ubOpponen } -INT8 CalcInterruptDuelPts( SOLDIERTYPE * pSoldier, UINT16 ubOpponentID, BOOLEAN fUseWatchSpots ) +INT8 CalcInterruptDuelPts( SOLDIERTYPE * pSoldier, SoldierID ubOpponentID, BOOLEAN fUseWatchSpots ) { INT32 iPoints; INT8 bLightLevel; @@ -1853,7 +1853,7 @@ INT8 CalcInterruptDuelPts( SOLDIERTYPE * pSoldier, UINT16 ubOpponentID, BOOLEAN if (fUseWatchSpots && !(pSoldier->usSoldierFlagMask2 & SOLDIER_TRAIT_FOCUS)) { // if this is a previously noted spot of enemies, give bonus points! - iPoints += GetWatchedLocPoints( pSoldier->ubID, MercPtrs[ ubOpponentID ]->sGridNo, MercPtrs[ ubOpponentID ]->pathing.bLevel ); + iPoints += GetWatchedLocPoints( pSoldier->ubID, ubOpponentID->sGridNo, ubOpponentID->pathing.bLevel ); } // LOSE one point for each 2 additional opponents he currently sees, above 2 @@ -1882,7 +1882,7 @@ INT8 CalcInterruptDuelPts( SOLDIERTYPE * pSoldier, UINT16 ubOpponentID, BOOLEAN // if soldier is still in shock from recent injuries, that penalizes him iPoints -= pSoldier->aiData.bShock; - ubDistance = (UINT8) PythSpacesAway( pSoldier->sGridNo, MercPtrs[ ubOpponentID ]->sGridNo ); + ubDistance = (UINT8) PythSpacesAway( pSoldier->sGridNo, ubOpponentID->sGridNo ); // if we are in combat mode - thus doing an interrupt rather than determine who gets first turn - // then give bonus @@ -1951,7 +1951,7 @@ INT8 CalcInterruptDuelPts( SOLDIERTYPE * pSoldier, UINT16 ubOpponentID, BOOLEAN INT16 range = PythSpacesAway( pSoldier->sFocusGridNo, pSoldier->sGridNo ); INT16 radius = gSkillTraitValues.ubSNFocusRadius * range / 20; - INT16 range_opponent = PythSpacesAway( pSoldier->sFocusGridNo, MercPtrs[ubOpponentID]->sGridNo ); + INT16 range_opponent = PythSpacesAway( pSoldier->sFocusGridNo, ubOpponentID->sGridNo ); if ( range_opponent <= radius ) iPoints += gSkillTraitValues.sSNFocusInterruptBonus; @@ -2034,7 +2034,7 @@ INT8 CalcInterruptDuelPts( SOLDIERTYPE * pSoldier, UINT16 ubOpponentID, BOOLEAN #endif if(is_networked) { - SOLDIERTYPE *pOpp = &Menptr[ubOpponentID]; + SOLDIERTYPE *pOpp = ubOpponentID; #ifdef JA2BETAVERSION ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_MPSYSTEM, L"Interrupt: '%s' vs '%s' = %d points.",pSoldier->name,pOpp->name, iPoints ); #endif @@ -2448,7 +2448,7 @@ void ResolveInterruptsVs( SOLDIERTYPE * pSoldier, UINT8 ubInterruptType) default: // interrupt is possible, run a duel DebugMsg( TOPIC_JA2INTERRUPT, DBG_LEVEL_3, "Calculating int duel pts for onlooker in ResolveInterruptsVs" ); - pSoldier->aiData.bInterruptDuelPts = CalcInterruptDuelPts(pSoldier,pOpponent->ubID,TRUE); + pSoldier->aiData.bInterruptDuelPts = CalcInterruptDuelPts(pSoldier, pOpponent->ubID, TRUE); fIntOccurs = InterruptDuel(pOpponent,pSoldier); #ifdef DEBUG_INTERRUPTS if (fIntOccurs) diff --git a/Tactical/TeamTurns.h b/Tactical/TeamTurns.h index a53c0489..828e445b 100644 --- a/Tactical/TeamTurns.h +++ b/Tactical/TeamTurns.h @@ -11,7 +11,7 @@ extern BOOLEAN gfHiddenTurnbased; #define INTERRUPT_QUEUED (gubOutOfTurnPersons > 0) extern BOOLEAN StandardInterruptConditionsMet( SOLDIERTYPE * pSoldier, UINT16 ubOpponentID, INT8 bOldOppList); -extern INT8 CalcInterruptDuelPts( SOLDIERTYPE * pSoldier, UINT16 ubOpponentID, BOOLEAN fUseWatchSpots ); +extern INT8 CalcInterruptDuelPts( SOLDIERTYPE * pSoldier, SoldierID ubOpponentID, BOOLEAN fUseWatchSpots ); extern void EndAITurn( void ); extern void DisplayHiddenInterrupt( SOLDIERTYPE * pSoldier ); extern BOOLEAN InterruptDuel( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pOpponent); @@ -30,4 +30,4 @@ void EndTurnEvents( void ); BOOLEAN NPCFirstDraw( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pTargetSoldier ); -#endif \ No newline at end of file +#endif diff --git a/Tactical/Weapons.cpp b/Tactical/Weapons.cpp index 4b2653c3..b2436930 100644 --- a/Tactical/Weapons.cpp +++ b/Tactical/Weapons.cpp @@ -5478,23 +5478,23 @@ BOOLEAN DoSpecialEffectAmmoMiss( UINT16 ubAttackerID, UINT16 usWeaponIndex, INT3 } -void WeaponHit( UINT16 usSoldierID, UINT16 usWeaponIndex, INT16 sDamage, INT16 sBreathLoss, UINT16 usDirection, INT16 sXPos, INT16 sYPos, INT16 sZPos, INT16 sRange, UINT16 ubAttackerID, BOOLEAN fHit, UINT8 ubSpecial, UINT8 ubHitLocation ) +void WeaponHit( SoldierID usSoldierID, UINT16 usWeaponIndex, INT16 sDamage, INT16 sBreathLoss, UINT16 usDirection, INT16 sXPos, INT16 sYPos, INT16 sZPos, INT16 sRange, SoldierID ubAttackerID, BOOLEAN fHit, UINT8 ubSpecial, UINT8 ubHitLocation ) { SOLDIERTYPE* pTargetSoldier = NULL; SOLDIERTYPE* pSoldier = NULL; - OBJECTTYPE* pObj = NULL; + OBJECTTYPE* pObj = NULL; // Get attacker if ( ubAttackerID != NOBODY ) { - pSoldier = MercPtrs[ ubAttackerID ]; + pSoldier = ubAttackerID; // Flugente: check for underbarrel weapons and use that object if necessary pObj = pSoldier->GetUsedWeapon( &pSoldier->inv[pSoldier->ubAttackingHand] ); } // Get Target - pTargetSoldier = MercPtrs[ usSoldierID ]; + pTargetSoldier = usSoldierID; MakeNoise( ubAttackerID, pTargetSoldier->sGridNo, pTargetSoldier->pathing.bLevel, gpWorldLevelData[pTargetSoldier->sGridNo].ubTerrainID, Weapon[ usWeaponIndex ].ubHitVolume, NOISE_BULLET_IMPACT ); @@ -5589,12 +5589,12 @@ void WeaponHit( UINT16 usSoldierID, UINT16 usWeaponIndex, INT16 sDamage, INT16 s } -void StructureHit( INT32 iBullet, UINT16 usWeaponIndex, INT16 bWeaponStatus, UINT16 ubAttackerID, UINT16 sXPos, INT16 sYPos, INT16 sZPos, UINT16 usStructureID, INT32 iImpact, BOOLEAN fStopped ) +void StructureHit( INT32 iBullet, UINT16 usWeaponIndex, INT16 bWeaponStatus, SoldierID ubAttackerID, UINT16 sXPos, INT16 sYPos, INT16 sZPos, UINT16 usStructureID, INT32 iImpact, BOOLEAN fStopped ) { BOOLEAN fDoMissForGun = FALSE; ANITILE *pNode; INT32 sGridNo; - INT8 bLevel; + INT8 bLevel; ANITILE_PARAMS AniParams; UINT16 usMissTileIndex, usMissTileType; STRUCTURE *pStructure = NULL; @@ -5610,9 +5610,9 @@ void StructureHit( INT32 iBullet, UINT16 usWeaponIndex, INT16 bWeaponStatus, UIN // Flugente: check for underbarrel weapons and use that object if necessary if ( ubAttackerID != NOBODY ) { - pObj = MercPtrs[ ubAttackerID ]->GetUsedWeapon( &MercPtrs [ ubAttackerID ]->inv[MercPtrs[ubAttackerID]->ubAttackingHand] ); + pObj = ubAttackerID->GetUsedWeapon( &ubAttackerID->inv[ubAttackerID->ubAttackingHand] ); - pAttacker = MercPtrs[ ubAttackerID ]; + pAttacker = ubAttackerID; } // HEADROCK HAM 5: Define differently for fragments @@ -5676,7 +5676,7 @@ void StructureHit( INT32 iBullet, UINT16 usWeaponIndex, INT16 bWeaponStatus, UIN // Get attacker if ( ubAttackerID != NOBODY ) - pSoldier = MercPtrs[ ubAttackerID ]; + pSoldier = ubAttackerID; UINT8 usDirection = DIRECTION_IRRELEVANT; if ( pSoldier ) @@ -5777,13 +5777,13 @@ void StructureHit( INT32 iBullet, UINT16 usWeaponIndex, INT16 bWeaponStatus, UIN case MGCLASS: // Guy has missed, play random sound - if ( ubAttackerID != NOBODY && MercPtrs[ ubAttackerID ]->bTeam == gbPlayerNum ) + if ( ubAttackerID != NOBODY && ubAttackerID->bTeam == gbPlayerNum ) { - if ( !MercPtrs[ ubAttackerID ]->bDoBurst ) + if ( !ubAttackerID->bDoBurst ) { if ( Random( 40 ) == 0 ) { - MercPtrs[ ubAttackerID ]->DoMercBattleSound( BATTLE_SOUND_CURSE1 ); + ubAttackerID->DoMercBattleSound( BATTLE_SOUND_CURSE1 ); } } } @@ -6046,7 +6046,7 @@ void StructureHit( INT32 iBullet, UINT16 usWeaponIndex, INT16 bWeaponStatus, UIN // ATE: Show misses...( if our team ) if ( gGameSettings.fOptions[ TOPTION_SHOW_MISSES ] ) { - if ( ubAttackerID != NOBODY && MercPtrs[ ubAttackerID ]->bTeam == gbPlayerNum ) + if ( ubAttackerID != NOBODY && ubAttackerID->bTeam == gbPlayerNum ) { LocateGridNo( sGridNo ); } diff --git a/Tactical/Weapons.h b/Tactical/Weapons.h index 657b34cf..958d8642 100644 --- a/Tactical/Weapons.h +++ b/Tactical/Weapons.h @@ -454,8 +454,8 @@ extern INT8 ArmourVersusExplosivesPercent( SOLDIERTYPE * pSoldier ); // Flugente: fire resistance INT16 ArmourVersusFirePercent( SOLDIERTYPE * pSoldier ); extern BOOLEAN FireWeapon( SOLDIERTYPE *pSoldier , INT32 sTargetGridNo ); -extern void WeaponHit( UINT16 usSoldierID, UINT16 usWeaponIndex, INT16 sDamage, INT16 sBreathLoss, UINT16 usDirection, INT16 sXPos, INT16 sYPos, INT16 sZPos, INT16 sRange, UINT16 ubAttackerID, BOOLEAN fHit, UINT8 ubSpecial, UINT8 ubHitLocation ); -extern void StructureHit( INT32 iBullet, UINT16 usWeaponIndex, INT16 bWeaponStatus, UINT16 ubAttackerID, UINT16 sXPos, INT16 sYPos, INT16 sZPos, UINT16 usStructureID, INT32 iImpact, BOOLEAN fStopped ); +extern void WeaponHit( SoldierID usSoldierID, UINT16 usWeaponIndex, INT16 sDamage, INT16 sBreathLoss, UINT16 usDirection, INT16 sXPos, INT16 sYPos, INT16 sZPos, INT16 sRange, SoldierID ubAttackerID, BOOLEAN fHit, UINT8 ubSpecial, UINT8 ubHitLocation ); +extern void StructureHit( INT32 iBullet, UINT16 usWeaponIndex, INT16 bWeaponStatus, SoldierID ubAttackerID, UINT16 sXPos, INT16 sYPos, INT16 sZPos, UINT16 usStructureID, INT32 iImpact, BOOLEAN fStopped ); extern void WindowHit( INT32 sGridNo, UINT16 usStructureID, BOOLEAN fBlowWindowSouth, BOOLEAN fLargeForce ); // HEADROCK HAM 5.1: Moved to Bullets.h extern BOOLEAN InRange( SOLDIERTYPE *pSoldier, INT32 sGridNo ); diff --git a/Tactical/faces.h b/Tactical/faces.h index 4ecc2b6c..adfa524d 100644 --- a/Tactical/faces.h +++ b/Tactical/faces.h @@ -170,7 +170,7 @@ typedef struct BOOLEAN fOldShowHighlight; INT8 bOldAssignment; INT8 ubOldServiceCount; - UINT8 ubOldServicePartner; + SoldierID ubOldServicePartner; BOOLEAN fOldShowMoveHilight; UINT16 sMouthFrame; diff --git a/TileEngine/physics.cpp b/TileEngine/physics.cpp index ac3761b5..d4ac3b3f 100644 --- a/TileEngine/physics.cpp +++ b/TileEngine/physics.cpp @@ -214,7 +214,7 @@ void RecountObjectSlots(void) } -INT32 CreatePhysicalObject( OBJECTTYPE *pGameObj, real dLifeLength, real xPos, real yPos, real zPos, real xForce, real yForce, real zForce, UINT16 ubOwner, UINT8 ubActionCode, UINT32 uiActionData, BOOLEAN fTestObject ) +INT32 CreatePhysicalObject( OBJECTTYPE *pGameObj, real dLifeLength, real xPos, real yPos, real zPos, real xForce, real yForce, real zForce, SoldierID ubOwner, UINT8 ubActionCode, UINT32 uiActionData, BOOLEAN fTestObject ) { INT32 iObjectIndex; FLOAT mass; @@ -258,7 +258,7 @@ INT32 CreatePhysicalObject( OBJECTTYPE *pGameObj, real dLifeLength, real xPos, r pObject->Position.z = zPos; pObject->fVisible = TRUE; pObject->fTestObject = fTestObject; - pObject->ubOwner = ubOwner; + pObject->ubOwner = ubOwner; pObject->ubActionCode = ubActionCode; pObject->uiActionData = uiActionData; pObject->fDropItem = TRUE; @@ -546,7 +546,7 @@ BOOLEAN PhysicsUpdateLife( REAL_OBJECT *pObject, real DeltaTime ) { SOLDIERTYPE *pSoldier; - pSoldier = MercPtrs[ pObject->ubLastTargetTakenDamage ]; + pSoldier = pObject->ubLastTargetTakenDamage; bLevel = pSoldier->pathing.bLevel; } diff --git a/TileEngine/physics.h b/TileEngine/physics.h index 249334c8..17ed89ea 100644 --- a/TileEngine/physics.h +++ b/TileEngine/physics.h @@ -118,8 +118,8 @@ public: FLOAT dLifeSpan; BOOLEAN fFirstTimeMoved; INT32 sFirstGridNo; - UINT16 ubOwner; - UINT8 ubActionCode; + SoldierID ubOwner; + UINT8 ubActionCode; UINT32 uiActionData; BOOLEAN fDropItem; UINT32 uiNumTilesMoved; @@ -153,7 +153,7 @@ extern REAL_OBJECT ObjectSlots[ NUM_OBJECT_SLOTS ]; // OBJECT LIST STUFF -INT32 CreatePhysicalObject( OBJECTTYPE *pGameObj, real dLifeLength, real xPos, real yPos, real zPos, real xForce, real yForce, real zForce, UINT16 ubOwner, UINT8 ubActionCode, UINT32 uiActionData, BOOLEAN fTestObject ); +INT32 CreatePhysicalObject( OBJECTTYPE *pGameObj, real dLifeLength, real xPos, real yPos, real zPos, real xForce, real yForce, real zForce, SoldierID ubOwner, UINT8 ubActionCode, UINT32 uiActionData, BOOLEAN fTestObject ); BOOLEAN RemoveObjectSlot( INT32 iObject ); void RemoveAllPhysicsObjects( ); // OJW - 20091002 - mp explosives diff --git a/TileEngine/worldman.cpp b/TileEngine/worldman.cpp index 1a91a147..f5692f28 100644 --- a/TileEngine/worldman.cpp +++ b/TileEngine/worldman.cpp @@ -3750,7 +3750,7 @@ BOOLEAN IsRoofVisible2( INT32 sMapPos ) } -UINT16 WhoIsThere2( INT32 sGridNo, INT8 bLevel ) +SoldierID WhoIsThere2( INT32 sGridNo, INT8 bLevel ) { STRUCTURE * pStructure; diff --git a/TileEngine/worldman.h b/TileEngine/worldman.h index eed5ca67..83cdf308 100644 --- a/TileEngine/worldman.h +++ b/TileEngine/worldman.h @@ -128,7 +128,7 @@ BOOLEAN RemoveShadowFromLevelNode( INT32 iMapIndex, LEVELNODE *pNode ); BOOLEAN AddMercToHead( INT32 iMapIndex, SOLDIERTYPE *pSoldier, BOOLEAN fAddStructInfo ); BOOLEAN RemoveMerc( INT32 iMapIndex, SOLDIERTYPE *pSoldier, BOOLEAN fPlaceHolder ); -UINT16 WhoIsThere2( INT32 sGridNo, INT8 bLevel ); +SoldierID WhoIsThere2( INT32 sGridNo, INT8 bLevel ); BOOLEAN AddMercStructureInfo( INT32 sGridNo, SOLDIERTYPE *pSoldier ); BOOLEAN AddMercStructureInfoFromAnimSurface( INT32 sGridNo, SOLDIERTYPE *pSoldier, UINT16 usAnimSurface, UINT16 usAnimState ); BOOLEAN UpdateMercStructureInfo( SOLDIERTYPE *pSoldier ); @@ -179,4 +179,4 @@ BOOLEAN IsLegionLevel( INT32 sGridNo ); BOOLEAN FindStruct(INT32 sSpot, INT8 bLevel, UINT16 usIndex); BOOLEAN FindStructFlag(INT32 sSpot, INT8 bLevel, UINT32 uiFlag); -#endif \ No newline at end of file +#endif