From b98732daa7db604ef294edea60f4ae23e85581b5 Mon Sep 17 00:00:00 2001 From: Asdow <20314541+Asdow@users.noreply.github.com> Date: Fri, 15 Nov 2024 19:06:34 +0200 Subject: [PATCH] Convert gusSelectedSoldier to SoldierID --- Ja2/aniviewscreen.cpp | 2 +- Ja2/gamescreen.cpp | 12 +- Ja2/jascreens.cpp | 44 +++---- Strategic/strategicmap.cpp | 10 +- Tactical/Dialogue Control.cpp | 18 +-- Tactical/DisplayCover.cpp | 17 ++- Tactical/Handle UI Plan.cpp | 3 +- Tactical/Handle UI.cpp | 14 +-- Tactical/Interface Control.cpp | 4 +- Tactical/Interface Cursors.cpp | 4 +- Tactical/Interface Panels.cpp | 6 +- Tactical/Interface Utils.cpp | 2 +- Tactical/Interface.cpp | 6 +- Tactical/Overhead.cpp | 64 +++++----- Tactical/Overhead.h | 4 +- Tactical/Real Time Input.cpp | 34 +++--- Tactical/ShopKeeper Interface.cpp | 10 +- Tactical/Soldier Control.cpp | 2 +- Tactical/SoldierTooltips.cpp | 16 +-- Tactical/Squads.cpp | 2 +- Tactical/Strategic Exit GUI.cpp | 32 ++--- Tactical/TeamTurns.cpp | 22 ++-- Tactical/Turn Based Input.cpp | 196 +++++++++++++++--------------- Tactical/UI Cursors.cpp | 2 +- Tactical/opplist.cpp | 12 +- TileEngine/Explosion Control.cpp | 9 +- TileEngine/Interactive Tiles.cpp | 4 +- TileEngine/overhead map.cpp | 2 +- TileEngine/renderworld.cpp | 4 +- TileEngine/worlddef.cpp | 2 +- 30 files changed, 270 insertions(+), 289 deletions(-) diff --git a/Ja2/aniviewscreen.cpp b/Ja2/aniviewscreen.cpp index 638e67a2..9a3f3946 100644 --- a/Ja2/aniviewscreen.cpp +++ b/Ja2/aniviewscreen.cpp @@ -104,7 +104,7 @@ UINT32 AniEditScreenHandle(void) fToggle2 = FALSE; ubCurLoadedState = 0; - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; gTacticalStatus.uiFlags |= LOADING_SAVED_GAME; diff --git a/Ja2/gamescreen.cpp b/Ja2/gamescreen.cpp index dcaa3be8..d1f48eb4 100644 --- a/Ja2/gamescreen.cpp +++ b/Ja2/gamescreen.cpp @@ -261,17 +261,17 @@ void EnterTacticalScreen( ) if ( gusSelectedSoldier != NOBODY ) { DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("EnterTacticalScreen: check our guy")); - if ( !OK_CONTROLLABLE_MERC( MercPtrs[ gusSelectedSoldier ] ) ) + if ( !OK_CONTROLLABLE_MERC( gusSelectedSoldier ) ) { DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("EnterTacticalScreen: SelectNextAvailSoldier, merc not controllable")); - SelectNextAvailSoldier( MercPtrs[ gusSelectedSoldier ] ); + SelectNextAvailSoldier( gusSelectedSoldier ); } DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("EnterTacticalScreen: who is selected? %d", gusSelectedSoldier)); // ATE: If the current guy is sleeping, change.... - if ( gusSelectedSoldier != NOBODY && MercPtrs[ gusSelectedSoldier ]->flags.fMercAsleep ) + if ( gusSelectedSoldier != NOBODY && gusSelectedSoldier->flags.fMercAsleep ) { DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("EnterTacticalScreen: SelectNextAvailSoldier, merc asleep")); - SelectNextAvailSoldier( MercPtrs[ gusSelectedSoldier ] ); + SelectNextAvailSoldier( gusSelectedSoldier ); } } else @@ -684,7 +684,7 @@ UINT32 MainGameScreenHandle(void) // Select a guy if he hasn;' if( !gfTacticalPlacementGUIActive ) { - if ( gusSelectedSoldier != NOBODY && OK_INTERRUPT_MERC( MercPtrs[ gusSelectedSoldier ] ) ) + if ( gusSelectedSoldier != NOBODY && OK_INTERRUPT_MERC( gusSelectedSoldier ) ) { DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("maingamescreenhandle: selectsoldier")); SelectSoldier( gusSelectedSoldier, FALSE, TRUE ); @@ -933,7 +933,7 @@ UINT32 MainGameScreenHandle(void) if ( gusSelectedSoldier != NOBODY ) { if( !gGameSettings.fOptions[ TOPTION_MUTE_CONFIRMATIONS ] ) - MercPtrs[ gusSelectedSoldier ]->DoMercBattleSound( BATTLE_SOUND_ATTN1 ); + gusSelectedSoldier->DoMercBattleSound( BATTLE_SOUND_ATTN1 ); } } diff --git a/Ja2/jascreens.cpp b/Ja2/jascreens.cpp index b431dd2e..5362171a 100644 --- a/Ja2/jascreens.cpp +++ b/Ja2/jascreens.cpp @@ -514,31 +514,25 @@ UINT32 PalEditScreenShutdown(void) void PalEditRenderHook( ) { - SOLDIERTYPE *pSoldier; - - if ( gusSelectedSoldier != NOBODY ) + if ( gusSelectedSoldier < NOBODY && gusSelectedSoldier->bActive) { - // Set to current - GetSoldier( &pSoldier, gusSelectedSoldier ); - - DisplayPaletteRep( pSoldier->HeadPal, 50, 10, FRAME_BUFFER ); - DisplayPaletteRep( pSoldier->PantsPal, 50, 50, FRAME_BUFFER ); - DisplayPaletteRep( pSoldier->VestPal, 50, 90, FRAME_BUFFER ); - DisplayPaletteRep( pSoldier->SkinPal, 50, 130, FRAME_BUFFER ); - + DisplayPaletteRep( gusSelectedSoldier->HeadPal, 50, 10, FRAME_BUFFER ); + DisplayPaletteRep( gusSelectedSoldier->PantsPal, 50, 50, FRAME_BUFFER ); + DisplayPaletteRep( gusSelectedSoldier->VestPal, 50, 90, FRAME_BUFFER ); + DisplayPaletteRep( gusSelectedSoldier->SkinPal, 50, 130, FRAME_BUFFER ); } } BOOLEAN PalEditKeyboardHook( InputAtom *pInputEvent ) { - UINT8 ubType; - SOLDIERTYPE *pSoldier; - UINT8 ubPaletteRep; - UINT32 cnt; - UINT8 ubStartRep = 0; - UINT8 ubEndRep = 0; + SOLDIERTYPE *pSoldier; + UINT32 cnt; + UINT8 ubType; + UINT8 ubPaletteRep; + UINT8 ubStartRep = 0; + UINT8 ubEndRep = 0; - if ( gusSelectedSoldier == NOBODY ) + if ( gusSelectedSoldier >= NOBODY || gusSelectedSoldier->bActive == FALSE ) { return( FALSE ); } @@ -549,11 +543,10 @@ BOOLEAN PalEditKeyboardHook( InputAtom *pInputEvent ) return( TRUE ); } + pSoldier = gusSelectedSoldier; + if ((pInputEvent->usEvent == KEY_DOWN )&& ( pInputEvent->usParam == 'h' )) { - // Get Soldier - GetSoldier( &pSoldier, gusSelectedSoldier ); - // Get index of current CHECKF( GetPaletteRepIndexFromID( pSoldier->HeadPal, &ubPaletteRep ) ); ubType = gpPalRep[ ubPaletteRep ].ubType; @@ -582,9 +575,6 @@ BOOLEAN PalEditKeyboardHook( InputAtom *pInputEvent ) if ((pInputEvent->usEvent == KEY_DOWN )&& ( pInputEvent->usParam == 'v' )) { - // Get Soldier - GetSoldier( &pSoldier, gusSelectedSoldier ); - // Get index of current CHECKF( GetPaletteRepIndexFromID( pSoldier->VestPal, &ubPaletteRep ) ); ubType = gpPalRep[ ubPaletteRep ].ubType; @@ -612,9 +602,6 @@ BOOLEAN PalEditKeyboardHook( InputAtom *pInputEvent ) if ((pInputEvent->usEvent == KEY_DOWN )&& ( pInputEvent->usParam == 'p' )) { - // Get Soldier - GetSoldier( &pSoldier, gusSelectedSoldier ); - // Get index of current CHECKF( GetPaletteRepIndexFromID( pSoldier->PantsPal, &ubPaletteRep ) ); ubType = gpPalRep[ ubPaletteRep ].ubType; @@ -642,9 +629,6 @@ BOOLEAN PalEditKeyboardHook( InputAtom *pInputEvent ) if ((pInputEvent->usEvent == KEY_DOWN )&& ( pInputEvent->usParam == 's' )) { - // Get Soldier - GetSoldier( &pSoldier, gusSelectedSoldier ); - // Get index of current CHECKF( GetPaletteRepIndexFromID( pSoldier->SkinPal, &ubPaletteRep ) ); ubType = gpPalRep[ ubPaletteRep ].ubType; diff --git a/Strategic/strategicmap.cpp b/Strategic/strategicmap.cpp index b0f37b70..cca5a3ee 100644 --- a/Strategic/strategicmap.cpp +++ b/Strategic/strategicmap.cpp @@ -3993,7 +3993,7 @@ void JumpIntoAdjacentSector( UINT8 ubTacticalDirection, UINT8 ubJumpCode, INT32 // This guy should always be 1 ) selected and 2 ) close enough to exit sector to leave if ( gusSelectedSoldier != NOBODY ) { - pValidSoldier = MercPtrs[gusSelectedSoldier]; + pValidSoldier = gusSelectedSoldier; ubDirection = GetInsertionDataFromAdjacentMoveDirection( ubTacticalDirection, sAdditionalData ); } @@ -4839,13 +4839,13 @@ BOOLEAN OKForSectorExit( INT8 bExitDirection, INT32 usAdditionalData, UINT32 *pu UINT8 ubNumMercs = 0, ubNumEPCs = 0; UINT8 ubPlayerControllableMercsInSquad = 0; - if ( gusSelectedSoldier == NOBODY ) + if ( gusSelectedSoldier >= NOBODY ) { //must have a selected soldier to be allowed to tactically traverse. return FALSE; } // anv: vehicles can't use inner exit grids - if ( bExitDirection == (-1) && MercPtrs[gusSelectedSoldier]->bAssignment == VEHICLE ) + if ( bExitDirection == (-1) && gusSelectedSoldier->bAssignment == VEHICLE ) { return FALSE; } @@ -4959,12 +4959,12 @@ BOOLEAN OKForSectorExit( INT8 bExitDirection, INT32 usAdditionalData, UINT32 *pu // If we are here, at least one guy is controllable in this sector, at least he can go! if ( fAtLeastOneMercControllable ) { - ubPlayerControllableMercsInSquad = (UINT8)NumberOfPlayerControllableMercsInSquad( MercPtrs[gusSelectedSoldier]->bAssignment ); + ubPlayerControllableMercsInSquad = (UINT8)NumberOfPlayerControllableMercsInSquad( gusSelectedSoldier->bAssignment ); if ( fAtLeastOneMercControllable <= ubPlayerControllableMercsInSquad ) { //if the selected merc is an EPC and we can only leave with that merc, then prevent it //as EPCs aren't allowed to leave by themselves. Instead of restricting this in the //exiting sector gui, we restrict it by explaining it with a message box. - if ( AM_AN_EPC( MercPtrs[gusSelectedSoldier] ) ) + if ( AM_AN_EPC( gusSelectedSoldier ) ) { if ( AM_A_ROBOT( pSoldier ) && !pSoldier->CanRobotBeControlled( ) ) { diff --git a/Tactical/Dialogue Control.cpp b/Tactical/Dialogue Control.cpp index 6ffe3ee1..cc8c8e67 100644 --- a/Tactical/Dialogue Control.cpp +++ b/Tactical/Dialogue Control.cpp @@ -657,13 +657,13 @@ void HandleDialogue( ) { if( gfMorrisShouldSayHi ) { - SOLDIERTYPE * pMorris; - SOLDIERTYPE * pSoldier; - INT16 sPlayerGridNo; - UINT8 ubPlayerID; - UINT8 ubQualifiedSoldierIDArray[ NUM_MERCS_WITH_NEW_QUOTES ]; - UINT8 ubNumQualifiedMercs=0; - UINT8 ubCnt=0; + SOLDIERTYPE *pMorris; + SOLDIERTYPE *pSoldier; + INT16 sPlayerGridNo; + SoldierID ubPlayerID; + UINT8 ubQualifiedSoldierIDArray[ NUM_MERCS_WITH_NEW_QUOTES ]; + UINT8 ubNumQualifiedMercs=0; + UINT8 ubCnt=0; if( !( gMercProfiles[ MORRIS_UB ].ubMiscFlags2 & PROFILE_MISC_FLAG2_SAID_FIRSTSEEN_QUOTE ) ) { @@ -676,7 +676,7 @@ void HandleDialogue( ) ubPlayerID = WhoIsThere2( sPlayerGridNo, 0 ); if (ubPlayerID != NOBODY) { - InitiateConversation( pMorris, MercPtrs[ ubPlayerID ], NPC_INITIAL_QUOTE, 0 ); + InitiateConversation( pMorris, ubPlayerID, NPC_INITIAL_QUOTE, 0 ); gMercProfiles[ pMorris->ubProfile ].ubMiscFlags2 |= PROFILE_MISC_FLAG2_SAID_FIRSTSEEN_QUOTE; } } @@ -1887,7 +1887,7 @@ BOOLEAN CharacterDialogue( UINT8 ubCharacterNum, UINT16 usQuoteNum, INT32 iFaceI { if ( gusSelectedSoldier != NOBODY ) { - AdditionalTacticalCharacterDialogue_CallsLua( MercPtrs[gusSelectedSoldier], ADE_DIALOGUE_REACTION, ubCharacterNum, usQuoteNum, ( gMercProfiles[ubCharacterNum].ubMiscFlags & PROFILE_MISC_FLAG_RECRUITED ) ? 1 : 0 ); + AdditionalTacticalCharacterDialogue_CallsLua( gusSelectedSoldier, ADE_DIALOGUE_REACTION, ubCharacterNum, usQuoteNum, ( gMercProfiles[ubCharacterNum].ubMiscFlags & PROFILE_MISC_FLAG_RECRUITED ) ? 1 : 0 ); } } // if team members talk, anyone may answer diff --git a/Tactical/DisplayCover.cpp b/Tactical/DisplayCover.cpp index b4324511..40f674f1 100644 --- a/Tactical/DisplayCover.cpp +++ b/Tactical/DisplayCover.cpp @@ -538,11 +538,10 @@ void DisplayCover( BOOLEAN forceUpdate ) static void CalculateCoverFromEnemies() { - if (gusSelectedSoldier == NOBODY) + if (gusSelectedSoldier == NOBODY || gusSelectedSoldier->bActive == false) return; - SOLDIERTYPE* pSoldier; - GetSoldier(&pSoldier, gusSelectedSoldier); + SOLDIERTYPE* pSoldier = gusSelectedSoldier; const INT8 OurSoldierStealth = GetStealth(pSoldier); const INT8 OurSoldierLBESightAdjustment = GetSightAdjustmentBasedOnLBE(pSoldier); @@ -673,10 +672,10 @@ void CalculateCover() INT8 ubZ; SOLDIERTYPE* pSoldier; - if (gusSelectedSoldier == NOBODY) + if (gusSelectedSoldier == NOBODY || gusSelectedSoldier->bActive == false) return; - GetSoldier(&pSoldier, gusSelectedSoldier); + pSoldier = gusSelectedSoldier; for (ubX = gsMinCellX; ubX <= gsMaxCellX; ++ubX) { @@ -1199,7 +1198,7 @@ void CalculateMines() return; } - const INT32& sSelectedSoldierGridNo = MercPtrs[ gusSelectedSoldier ]->sGridNo; + const INT32& sSelectedSoldierGridNo = gusSelectedSoldier->sGridNo; for ( ubX=gsMinCellX; ubX<=gsMaxCellX; ++ubX ) { @@ -1453,7 +1452,7 @@ void CalculateTraitRange() return; } - const INT32& sSelectedSoldierGridNo = MercPtrs[ gusSelectedSoldier ]->sGridNo; + const INT32& sSelectedSoldierGridNo = gusSelectedSoldier->sGridNo; for ( ubX=gsMinCellX; ubX<=gsMaxCellX; ++ubX ) { @@ -1591,7 +1590,7 @@ void CalculateTrackerRange( ) UINT16 range = gSkillTraitValues.usSVTrackerMaxRange * trackerskill; - const INT32& sSelectedSoldierGridNo = MercPtrs[gusSelectedSoldier]->sGridNo; + const INT32& sSelectedSoldierGridNo = gusSelectedSoldier->sGridNo; for ( ubX = gsMinCellX; ubX <= gsMaxCellX; ++ubX ) { @@ -1775,7 +1774,7 @@ void CalculateWeapondata() BOOLEAN guninhand = WeaponInHand( pSoldier ); - INT32 sSelectedSoldierGridNo = MercPtrs[gusSelectedSoldier]->sGridNo; + INT32 sSelectedSoldierGridNo = gusSelectedSoldier->sGridNo; if ( TileIsOutOfBounds( sSelectedSoldierGridNo ) ) return; diff --git a/Tactical/Handle UI Plan.cpp b/Tactical/Handle UI Plan.cpp index 33b0708d..0669e172 100644 --- a/Tactical/Handle UI Plan.cpp +++ b/Tactical/Handle UI Plan.cpp @@ -197,7 +197,7 @@ BOOLEAN AddUIPlan( INT32 sGridNo, UINT8 ubPlanID ) pPlanSoldier->ChangeSoldierState( pPlanSoldier->usUIMovementMode, 0, FALSE ); // Change selected soldier - gusSelectedSoldier = (UINT16)pPlanSoldier->ubID; + gusSelectedSoldier = pPlanSoldier->ubID; // Change global planned mode to this guy! gpUIPlannedSoldier = pPlanSoldier; @@ -243,6 +243,7 @@ void EndUIPlan( ) SOLDIERTYPE *pSoldier; // Zero out any planned soldiers + //FIXME for( cnt = MAX_NUM_SOLDIERS; cnt < TOTAL_SOLDIERS; cnt++ ) { pSoldier = MercPtrs[ cnt ]; diff --git a/Tactical/Handle UI.cpp b/Tactical/Handle UI.cpp index f72f4848..92eeec76 100644 --- a/Tactical/Handle UI.cpp +++ b/Tactical/Handle UI.cpp @@ -1013,7 +1013,7 @@ void SetUIMouseCursor( ) if( GetMouseMapPos( &usMapPos) ) { - if ( gusSelectedSoldier != NOBODY && MercPtrs[ gusSelectedSoldier ]->pathing.bLevel == 0 ) + if ( gusSelectedSoldier != NOBODY && gusSelectedSoldier->pathing.bLevel == 0 ) { // ATE: Is this place revealed? if ( !InARoom( usMapPos, &usRoomNum ) || ( InARoom( usMapPos, &usRoomNum ) && gpWorldLevelData[ usMapPos ].uiFlags & MAPELEMENT_REVEALED ) ) @@ -1953,7 +1953,7 @@ UINT32 UIHandleAOnTerrain( UI_EVENT *pUIEvent ) if ( gfUIFullTargetFound ) { // No, ok display message IF this is the first time at this gridno - if ( gsOutOfRangeGridNo != MercPtrs[ gusUIFullTargetID ]->sGridNo || gubOutOfRangeMerc != gusSelectedSoldier ) + if ( gsOutOfRangeGridNo != gusUIFullTargetID->sGridNo || gubOutOfRangeMerc != gusSelectedSoldier ) { // Display ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, TacticalStr[ OUT_OF_RANGE_STRING ] ); @@ -1961,7 +1961,7 @@ UINT32 UIHandleAOnTerrain( UI_EVENT *pUIEvent ) //PlayJA2Sample( TARGET_OUT_OF_RANGE, RATE_11025, MIDVOLUME, 1, MIDDLEPAN ); // Set - gsOutOfRangeGridNo = MercPtrs[ gusUIFullTargetID ]->sGridNo; + gsOutOfRangeGridNo = gusUIFullTargetID->sGridNo; gubOutOfRangeMerc = gusSelectedSoldier; } } @@ -2058,7 +2058,7 @@ UINT32 UIHandleCWait( UI_EVENT *pUIEvent ) { if( pSoldier->flags.uiStatusFlags & SOLDIER_DRIVER ) { - pSoldier = GetSoldierStructureForVehicle( MercPtrs[ gusSelectedSoldier ]->iVehicleId ); + pSoldier = GetSoldierStructureForVehicle( gusSelectedSoldier->iVehicleId ); } pInvTile = GetCurInteractiveTile( ); @@ -3746,7 +3746,7 @@ BOOLEAN UIHandleOnMerc( BOOLEAN fMovementMode ) // anv: don't switch if passengers are blocked from attacking if( gusSelectedSoldier != NOBODY ) { - SOLDIERTYPE *pSelectedSoldier = MercPtrs[gusSelectedSoldier]; + SOLDIERTYPE *pSelectedSoldier = gusSelectedSoldier; if( pSelectedSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) { SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( pSelectedSoldier->iVehicleId ); @@ -6386,7 +6386,7 @@ BOOLEAN IsValidTalkableNPC( UINT16 ubSoldierID, BOOLEAN fGive, BOOLEAN fAllowMer if ( gusSelectedSoldier != NOBODY ) { - if ( AM_A_ROBOT( MercPtrs[ gusSelectedSoldier ] ) ) + if ( AM_A_ROBOT( gusSelectedSoldier ) ) { return( FALSE ); } @@ -7042,7 +7042,7 @@ BOOLEAN SelectedGuyInBusyAnimation( ) if ( gusSelectedSoldier != NOBODY ) { - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; if ( pSoldier->usAnimState == LOB_ITEM || pSoldier->usAnimState == THROW_ITEM || diff --git a/Tactical/Interface Control.cpp b/Tactical/Interface Control.cpp index 1d733042..294f03e2 100644 --- a/Tactical/Interface Control.cpp +++ b/Tactical/Interface Control.cpp @@ -317,7 +317,7 @@ void SetUpInterface( ) { if ( gusSelectedSoldier != NOBODY ) { - if ( MercPtrs[ gusSelectedSoldier ]->sGridNo != gsUIHandleShowMoveGridLocation ) + if ( gusSelectedSoldier->sGridNo != gsUIHandleShowMoveGridLocation ) { if ( gfUIHandleShowMoveGrid == 2 ) { @@ -327,7 +327,7 @@ void SetUpInterface( ) } else { - if ( MercPtrs[ gusSelectedSoldier ]->bStealthMode ) + if ( gusSelectedSoldier->bStealthMode ) { AddTopmostToHead( gsUIHandleShowMoveGridLocation, GetSnapCursorIndex( FIRSTPOINTERS9 ) ); gpWorldLevelData[gsUIHandleShowMoveGridLocation].pTopmostHead->ubShadeLevel=DEFAULT_SHADE_LEVEL; diff --git a/Tactical/Interface Cursors.cpp b/Tactical/Interface Cursors.cpp index aaae395b..386e086a 100644 --- a/Tactical/Interface Cursors.cpp +++ b/Tactical/Interface Cursors.cpp @@ -354,7 +354,7 @@ BOOLEAN DrawUICursor( ) // ATE; Is the current guy in steath mode? if ( gusSelectedSoldier != NOBODY ) { - if ( MercPtrs[ gusSelectedSoldier ]->bStealthMode ) + if ( gusSelectedSoldier->bStealthMode ) { usTileCursor = FIRSTPOINTERS9; } @@ -367,7 +367,7 @@ BOOLEAN DrawUICursor( ) // ATE; Is the current guy in steath mode? if ( gusSelectedSoldier != NOBODY ) { - if ( MercPtrs[ gusSelectedSoldier ]->bStealthMode ) + if ( gusSelectedSoldier->bStealthMode ) { usTileCursor = FIRSTPOINTERS10; } diff --git a/Tactical/Interface Panels.cpp b/Tactical/Interface Panels.cpp index 0a8ebe93..defdd7d7 100644 --- a/Tactical/Interface Panels.cpp +++ b/Tactical/Interface Panels.cpp @@ -6201,7 +6201,7 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason ) if ( OK_CONTROLLABLE_MERC( MercPtrs[ ubSoldierID ] ) && !( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & ( SOLDIER_VEHICLE | SOLDIER_PASSENGER | SOLDIER_DRIVER ) ) ) { //ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s added", MercPtrs[ ubSoldierID ]->name ); - MercPtrs[ gusSelectedSoldier ]->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED; + gusSelectedSoldier->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED; MercPtrs[ ubSoldierID ]->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED; EndMultiSoldierSelection( TRUE ); } @@ -6213,7 +6213,7 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason ) MercPtrs[ ubSoldierID ]->flags.uiStatusFlags &= (~SOLDIER_MULTI_SELECTED ); if (ubSoldierID != gusSelectedSoldier) { - MercPtrs[ gusSelectedSoldier ]->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED; + gusSelectedSoldier->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED; } EndMultiSoldierSelection( TRUE ); } @@ -7194,7 +7194,7 @@ UINT16 FindNextMercInTeamPanel( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLif //Select next squad iCurrentSquad = CurrentSquad( ); - pNewSoldier = FindNextActiveSquad( MercPtrs[ gusSelectedSoldier ] ); + pNewSoldier = FindNextActiveSquad( gusSelectedSoldier ); if ( pNewSoldier->bAssignment != iCurrentSquad ) { diff --git a/Tactical/Interface Utils.cpp b/Tactical/Interface Utils.cpp index b0bbfae5..53417ea2 100644 --- a/Tactical/Interface Utils.cpp +++ b/Tactical/Interface Utils.cpp @@ -43,7 +43,7 @@ extern UINT32 guiBrownBackgroundForTeamPanel; extern UINT32 guiGoldBackgroundForTeamPanel; // selected grunt -extern UINT16 gusSelectedSoldier; +extern SoldierID gusSelectedSoldier; // car portraits enum{ diff --git a/Tactical/Interface.cpp b/Tactical/Interface.cpp index 34bdc582..8ba363ec 100644 --- a/Tactical/Interface.cpp +++ b/Tactical/Interface.cpp @@ -851,7 +851,7 @@ void PopupMovementMenu( UI_EVENT *pUIEvent ) if ( gusSelectedSoldier != NOBODY ) { - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; } // Blit background! @@ -6136,7 +6136,7 @@ void ShowEnemyWeapon( INT16 sX, INT16 sY, SOLDIERTYPE* pTargetSoldier ) INT32 iVisibleDistance; if ( gusSelectedSoldier != NOBODY ) - pSelectedSoldier = MercPtrs[ gusSelectedSoldier ]; + pSelectedSoldier = gusSelectedSoldier; else return; @@ -6182,7 +6182,7 @@ void ShowEnemyHealthBar( INT16 sX, INT16 sY, SOLDIERTYPE* pSoldier ) SOLDIERTYPE *pSelectedSoldier; if ( gusSelectedSoldier != NOBODY ) - pSelectedSoldier = MercPtrs[ gusSelectedSoldier ]; + pSelectedSoldier = gusSelectedSoldier; else return; diff --git a/Tactical/Overhead.cpp b/Tactical/Overhead.cpp index 8c413bff..5a67e3c3 100644 --- a/Tactical/Overhead.cpp +++ b/Tactical/Overhead.cpp @@ -298,7 +298,7 @@ SOLDIERTYPE* SoldierFromID(const SoldierID id, SOLDIERTYPE* Array[TOTAL_SOLDIERS UINT8 gbPlayerNum = 0; // Global for current selected soldier -UINT16 gusSelectedSoldier = NOBODY; +SoldierID gusSelectedSoldier = NOBODY; INT8 gbShowEnemies = FALSE; BOOLEAN gfMovingAnimation = FALSE; @@ -3362,7 +3362,7 @@ void InternalSelectSoldier( UINT16 usSoldierID, BOOLEAN fAcknowledge, BOOLEAN fF if ( gusSelectedSoldier != NOBODY ) { // Get guy - pOldSoldier = MercPtrs[ gusSelectedSoldier ]; + pOldSoldier = gusSelectedSoldier; pOldSoldier->flags.fShowLocator = FALSE; pOldSoldier->flags.fFlashLocator = FALSE; @@ -4249,8 +4249,8 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld ) //if the person was Raul, and we are to say the blown up quotes if( pSoldierOld->ubProfile == RAUL_UB /*RAUL */ && IsJa25GeneralFlagSet( JA_GF__RAUL_BLOW_HIMSELF_UP ) ) { - UINT8 SoldierId1; - UINT8 SoldierId2; + SoldierID SoldierId1; + SoldierID SoldierId2; //Get some random Soldier ID's of the valid mercs if( Get3RandomQualifiedMercs( &SoldierId1, &SoldierId2, NULL ) != 0 ) @@ -6571,8 +6571,8 @@ void EnterCombatMode( UINT8 ubStartingTeam ) DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("EnterCombatMode continuing... start player turn, selected soldier = %d",gusSelectedSoldier)); // OK, make sure we have a selected guy // Madd: this was causing a weird crash becuase gusSelectedSoldier was 156 (out of the array bounds) for some reason - //if ( MercPtrs[ gusSelectedSoldier ]->aiData.bOppCnt == 0 ) - if ( gusSelectedSoldier != NOBODY && MercPtrs[ gusSelectedSoldier ]->aiData.bOppCnt == 0 ) + //if ( gusSelectedSoldier->aiData.bOppCnt == 0 ) + if ( gusSelectedSoldier != NOBODY && gusSelectedSoldier->aiData.bOppCnt == 0 ) { DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"EnterCombatMode continuing... nobody selected"); // OK, look through and find one.... @@ -9631,7 +9631,7 @@ SOLDIERTYPE *InternalReduceAttackBusyCount( ) if (gTacticalStatus.ubCurrentTeam == gbPlayerNum && gusSelectedSoldier < TOTAL_SOLDIERS) { - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; } else { @@ -9658,7 +9658,7 @@ SOLDIERTYPE *InternalReduceAttackBusyCount( ) return( NULL ); } - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; } if (!pSoldier) @@ -10179,7 +10179,7 @@ void RemoveManFromTeam( INT8 bTeam ) void RemoveSoldierFromTacticalSector( SOLDIERTYPE *pSoldier, BOOLEAN fAdjustSelected ) { - UINT16 ubID; + SoldierID ubID; SOLDIERTYPE *pNewSoldier; // reset merc's opplist @@ -10935,7 +10935,7 @@ void TurnCoatAttemptMessageBoxCallBack( UINT8 ubExitValue ) INT16 approachselected = DropDownTemplate::getInstance().GetSelectedEntryKey(); - UINT8 approachchance = MercPtrs[gusSelectedSoldier]->GetTurncoatConvinctionChance( prisonerdialoguetargetID, approachselected ); + UINT8 approachchance = gusSelectedSoldier->GetTurncoatConvinctionChance( prisonerdialoguetargetID, approachselected ); // you can never turn a VIP (though we don't tell the player if someone is a VIP, lest they have an exploit to find out) if ( pSoldier->usSoldierFlagMask & SOLDIER_VIP ) @@ -10953,24 +10953,24 @@ void TurnCoatAttemptMessageBoxCallBack( UINT8 ubExitValue ) ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szTurncoatText[0], pSoldier->GetName() ); // increase intel penalty. We can only try to convert enemies if the penalty is low, and having a high penalty means we can't mine intel for a few hours but have to hide - MercPtrs[gusSelectedSoldier]->usSkillCooldown[SOLDIER_COOLDOWN_INTEL_PENALTY] += 1; + gusSelectedSoldier->usSkillCooldown[SOLDIER_COOLDOWN_INTEL_PENALTY] += 1; - StatChange( MercPtrs[gusSelectedSoldier], EXPERAMT, 2, FROM_SUCCESS ); - StatChange( MercPtrs[gusSelectedSoldier], LDRAMT, 4, FROM_SUCCESS ); + StatChange( gusSelectedSoldier, EXPERAMT, 2, FROM_SUCCESS ); + StatChange( gusSelectedSoldier, LDRAMT, 4, FROM_SUCCESS ); } else { ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szTurncoatText[1], pSoldier->GetName() ); // increase intel penalty. We can only try to convert enemies if the penalty is low, and having a high penalty means we can't mine intel for a few hours but have to hide - MercPtrs[gusSelectedSoldier]->usSkillCooldown[SOLDIER_COOLDOWN_INTEL_PENALTY] += 4; + gusSelectedSoldier->usSkillCooldown[SOLDIER_COOLDOWN_INTEL_PENALTY] += 4; - StatChange( MercPtrs[gusSelectedSoldier], EXPERAMT, 1, FROM_FAILURE ); - StatChange( MercPtrs[gusSelectedSoldier], LDRAMT, 1, FROM_FAILURE ); + StatChange( gusSelectedSoldier, EXPERAMT, 1, FROM_FAILURE ); + StatChange( gusSelectedSoldier, LDRAMT, 1, FROM_FAILURE ); } // explain that suspicion is so high that we have to stop - if ( MercPtrs[gusSelectedSoldier]->usSkillCooldown[SOLDIER_COOLDOWN_INTEL_PENALTY] >= 20 ) + if ( gusSelectedSoldier->usSkillCooldown[SOLDIER_COOLDOWN_INTEL_PENALTY] >= 20 ) ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szTurncoatText[2] ); // use up resources spent, regardless of whether or not we were successful @@ -10979,7 +10979,7 @@ void TurnCoatAttemptMessageBoxCallBack( UINT8 ubExitValue ) INT32 bribeamount = 10 * min( 10, CurrentPlayerProgressPercentage() ); // substract money spent - AddTransactionToPlayersBook ( TRANSFER_FUNDS_TO_MERC, MercPtrs[gusSelectedSoldier]->ubProfile, GetWorldTotalMin(), -bribeamount ); + AddTransactionToPlayersBook ( TRANSFER_FUNDS_TO_MERC, gusSelectedSoldier->ubProfile, GetWorldTotalMin(), -bribeamount ); } else if ( approachselected == 4 ) { @@ -10989,7 +10989,7 @@ void TurnCoatAttemptMessageBoxCallBack( UINT8 ubExitValue ) } // spend AP - DeductPoints( MercPtrs[gusSelectedSoldier], APBPConstants[AP_TALK], 0, UNTRIGGERED_INTERRUPT ); + DeductPoints( gusSelectedSoldier, APBPConstants[AP_TALK], 0, UNTRIGGERED_INTERRUPT ); //ReduceAttackBusyCount(); } @@ -11014,12 +11014,12 @@ void HandleTurncoatAttempt( SOLDIERTYPE* pSoldier ) std::vector > dropdownvector_1; INT16 cnt = 1; - UINT8 chance = MercPtrs[gusSelectedSoldier]->GetTurncoatConvinctionChance( prisonerdialoguetargetID, cnt ); + UINT8 chance = gusSelectedSoldier->GetTurncoatConvinctionChance( prisonerdialoguetargetID, cnt ); swprintf( gTurncoatDropdownText[cnt-1], szTurncoatText[3], chance ); dropdownvector_1.push_back( std::make_pair( cnt, gTurncoatDropdownText[cnt - 1] ) ); ++cnt; - chance = MercPtrs[gusSelectedSoldier]->GetTurncoatConvinctionChance( prisonerdialoguetargetID, cnt ); + chance = gusSelectedSoldier->GetTurncoatConvinctionChance( prisonerdialoguetargetID, cnt ); swprintf( gTurncoatDropdownText[cnt - 1], szTurncoatText[4], chance ); dropdownvector_1.push_back( std::make_pair( cnt, gTurncoatDropdownText[cnt - 1] ) ); @@ -11028,7 +11028,7 @@ void HandleTurncoatAttempt( SOLDIERTYPE* pSoldier ) INT32 bribeamount = 10 * min( 10, ubCurrentProgress ); if ( bribeamount <= balance ) { - chance = MercPtrs[gusSelectedSoldier]->GetTurncoatConvinctionChance( prisonerdialoguetargetID, cnt ); + chance = gusSelectedSoldier->GetTurncoatConvinctionChance( prisonerdialoguetargetID, cnt ); swprintf( gTurncoatDropdownText[cnt - 1], szTurncoatText[5], bribeamount, chance ); dropdownvector_1.push_back( std::make_pair( cnt, gTurncoatDropdownText[cnt - 1] ) ); } @@ -11038,7 +11038,7 @@ void HandleTurncoatAttempt( SOLDIERTYPE* pSoldier ) int intelbribeneeded = max( 2, ( ubCurrentProgress + 5 ) / 10 ); if ( intelbribeneeded <= intelreserve ) { - chance = MercPtrs[gusSelectedSoldier]->GetTurncoatConvinctionChance( prisonerdialoguetargetID, cnt ); + chance = gusSelectedSoldier->GetTurncoatConvinctionChance( prisonerdialoguetargetID, cnt ); swprintf( gTurncoatDropdownText[cnt - 1], szTurncoatText[6], intelbribeneeded, chance ); dropdownvector_1.push_back( std::make_pair( cnt, gTurncoatDropdownText[cnt - 1] ) ); } @@ -11163,7 +11163,7 @@ void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue ) if ( ubExitValue == 1 ) { SOLDIERTYPE *pSoldierToSurrender = MercPtrs[prisonerdialoguetargetID]; - DeductPoints( MercPtrs[gusSelectedSoldier], APBPConstants[AP_TALK], 0, UNTRIGGERED_INTERRUPT ); + DeductPoints( gusSelectedSoldier, APBPConstants[AP_TALK], 0, UNTRIGGERED_INTERRUPT ); if ( !gGameExternalOptions.fEnemyCanSurrender ) { @@ -11285,7 +11285,7 @@ void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue ) // dynamic opinion: a merc caused the remaining enemies to give up if (gGameExternalOptions.fDynamicOpinions && gusSelectedSoldier != NOBODY ) - HandleDynamicOpinionChange( MercPtrs[gusSelectedSoldier], OPINIONEVENT_BATTLE_TOOK_PRISONER, TRUE, TRUE ); + HandleDynamicOpinionChange( gusSelectedSoldier, OPINIONEVENT_BATTLE_TOOK_PRISONER, TRUE, TRUE ); } else { @@ -11295,22 +11295,22 @@ void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue ) ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szPrisonerTextStr[STR_PRISONER_REFUSE_SURRENDER] ); // if asking for surrender while undercover and the enemy refuses, he learns who you are, so he uncovers you - if ( gusSelectedSoldier != NOBODY && MercPtrs[ gusSelectedSoldier ]->usSoldierFlagMask & (SOLDIER_COVERT_CIV|SOLDIER_COVERT_SOLDIER) ) + if ( gusSelectedSoldier != NOBODY && gusSelectedSoldier->usSoldierFlagMask & (SOLDIER_COVERT_CIV|SOLDIER_COVERT_SOLDIER) ) { - MercPtrs[ gusSelectedSoldier ]->LooseDisguise(); + gusSelectedSoldier->LooseDisguise(); if ( gSkillTraitValues.fCOStripIfUncovered ) - MercPtrs[ gusSelectedSoldier ]->Strip(); + gusSelectedSoldier->Strip(); ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szCovertTextStr[STR_COVERT_SURRENDER_FAILED] ); - ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szCovertTextStr[STR_COVERT_UNCOVER_SINGLE], MercPtrs[ gusSelectedSoldier ]->GetName() ); + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szCovertTextStr[STR_COVERT_UNCOVER_SINGLE], gusSelectedSoldier->GetName() ); } } } // we offered to surrender OURSELVES TO the enemy else if ( ubExitValue == 2 ) { - DeductPoints( MercPtrs[gusSelectedSoldier], APBPConstants[AP_TALK], 0, UNTRIGGERED_INTERRUPT ); + DeductPoints( gusSelectedSoldier, APBPConstants[AP_TALK], 0, UNTRIGGERED_INTERRUPT ); if ( !gGameExternalOptions.fPlayerCanAsktoSurrender || MercPtrs[prisonerdialoguetargetID]->bTeam == CREATURE_TEAM ) { @@ -11323,7 +11323,7 @@ void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue ) // we distract the enemy by essentially talking them to death else if ( ubExitValue == 3 ) { - DeductPoints( MercPtrs[gusSelectedSoldier], APBPConstants[AP_TALK], 0, UNTRIGGERED_INTERRUPT ); + DeductPoints( gusSelectedSoldier, APBPConstants[AP_TALK], 0, UNTRIGGERED_INTERRUPT ); // Flugente: if we are disguised and talk to a non-profile NPC, we will continue to 'chat' with the enemy as long as we aren't ordered to do something else. // This way we can easily order our spies to 'distract' enemies @@ -11367,7 +11367,7 @@ void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue ) else { // normal dialog - DeductPoints( MercPtrs[gusSelectedSoldier], APBPConstants[AP_TALK], 0, UNTRIGGERED_INTERRUPT ); + DeductPoints( gusSelectedSoldier, APBPConstants[AP_TALK], 0, UNTRIGGERED_INTERRUPT ); StartCivQuote(MercPtrs[prisonerdialoguetargetID]); } } diff --git a/Tactical/Overhead.h b/Tactical/Overhead.h index f75aa410..5ed891e3 100644 --- a/Tactical/Overhead.h +++ b/Tactical/Overhead.h @@ -170,8 +170,8 @@ struct TacticalStatusType extern UINT8 gbPlayerNum; extern INT8 gbShowEnemies; -extern UINT16 gusSelectedSoldier; -extern UINT16 gusOldSelectedSoldier; +extern SoldierID gusSelectedSoldier; +extern UINT16 gusOldSelectedSoldier; extern CHAR8 gzAlertStr[][ 30 ]; extern CHAR8 gzActionStr[][ 30 ]; diff --git a/Tactical/Real Time Input.cpp b/Tactical/Real Time Input.cpp index 81b606ba..ab0797f7 100644 --- a/Tactical/Real Time Input.cpp +++ b/Tactical/Real Time Input.cpp @@ -202,11 +202,11 @@ void QueryRTLeftButton( UINT32 *puiNewEvent ) if ( gusSelectedSoldier != NOBODY ) { - if ( MercPtrs[ gusSelectedSoldier ]->pTempObject != NULL ) + if ( gusSelectedSoldier->pTempObject != NULL ) { return; } - if ( MercPtrs[ gusSelectedSoldier ]->flags.uiStatusFlags & SOLDIER_DRIVER ) + if ( gusSelectedSoldier->flags.uiStatusFlags & SOLDIER_DRIVER ) { pVehicle = GetSoldierStructureForVehicle( MercPtrs[ usSubjectSoldier ]->iVehicleId ); usSubjectSoldier = pVehicle->ubID; @@ -448,8 +448,8 @@ void QueryRTLeftButton( UINT32 *puiNewEvent ) { // Set movement mode // OK, only change this if we are stationary! - //if ( gAnimControl[ MercPtrs[ gusSelectedSoldier ]->usAnimState ].uiFlags & ANIM_STATIONARY ) - //if ( MercPtrs[ gusSelectedSoldier ]->usAnimState == WALKING ) + //if ( gAnimControl[ gusSelectedSoldier->usAnimState ].uiFlags & ANIM_STATIONARY ) + //if ( gusSelectedSoldier->usAnimState == WALKING ) { MercPtrs[ usSubjectSoldier ]->flags.fUIMovementFast = TRUE; *puiNewEvent = C_MOVE_MERC; @@ -621,7 +621,7 @@ void QueryRTLeftButton( UINT32 *puiNewEvent ) //{ // if ( gusSelectedSoldier != NOBODY ) // { - // if ( !( gAnimControl[ MercPtrs[ gusSelectedSoldier ]->usAnimState ].uiFlags & ANIM_STATIONARY ) ) + // if ( !( gAnimControl[ gusSelectedSoldier->usAnimState ].uiFlags & ANIM_STATIONARY ) ) // { //gUITargetShotWaiting = TRUE; @@ -680,7 +680,7 @@ void QueryRTLeftButton( UINT32 *puiNewEvent ) // OK, if we have a selected guy.. make him part too.... if ( gusSelectedSoldier != NOBODY ) { - MercPtrs[ gusSelectedSoldier ]->flags.uiStatusFlags |= (SOLDIER_MULTI_SELECTED ); + gusSelectedSoldier->flags.uiStatusFlags |= (SOLDIER_MULTI_SELECTED ); } } @@ -715,7 +715,7 @@ void QueryRTLeftButton( UINT32 *puiNewEvent ) // OK, if we have a selected guy.. make him part too.... if ( gusSelectedSoldier != NOBODY ) { - MercPtrs[ gusSelectedSoldier ]->flags.uiStatusFlags |= (SOLDIER_MULTI_SELECTED ); + gusSelectedSoldier->flags.uiStatusFlags |= (SOLDIER_MULTI_SELECTED ); } gfIgnoreOnSelectedGuy = TRUE; @@ -1017,7 +1017,7 @@ void QueryRTRightButton( UINT32 *puiNewEvent ) if ( gfUICanBeginAllMoveCycle ) { // ATE: Here, check if we can do this.... - if ( !UIOKMoveDestination( MercPtrs[ gusSelectedSoldier ], usMapPos ) ) + if ( !UIOKMoveDestination( gusSelectedSoldier, usMapPos ) ) { ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ CANT_MOVE_THERE_STR ] ); gfRTClickLeftHoldIntercepted = TRUE; @@ -1041,7 +1041,7 @@ void QueryRTRightButton( UINT32 *puiNewEvent ) { gfBeginBurstSpreadTracking = FALSE; gfRTClickLeftHoldIntercepted = TRUE; - MercPtrs[ gusSelectedSoldier ]->flags.fDoSpread = FALSE; + gusSelectedSoldier->flags.fDoSpread = FALSE; fClickHoldIntercepted = TRUE; *puiNewEvent = A_END_ACTION; gCurrentUIMode = MOVE_MODE; @@ -1234,7 +1234,7 @@ void QueryRTRightButton( UINT32 *puiNewEvent ) case MOVE_MODE: case TALKCURSOR_MODE: // anv: don't switch if passengers are blocked from attacking - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; if( pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) { SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( pSoldier->iVehicleId ); @@ -2032,13 +2032,13 @@ void HandleMouseRTWheel( void ) if ( _KeyDown( ALT ) ) { if ( (gusSelectedSoldier != NOBODY) && ( gpItemPointer == NULL ) ) - GotoLowerStance(MercPtrs[ gusSelectedSoldier ]); + GotoLowerStance(gusSelectedSoldier); return; } if ( gusSelectedSoldier != NOBODY ) { //Select prev merc - bID = FindPrevActiveAndAliveMerc( MercPtrs[ gusSelectedSoldier ], TRUE, TRUE ); + bID = FindPrevActiveAndAliveMerc( gusSelectedSoldier, TRUE, TRUE ); HandleLocateSelectMerc( bID, LOCATEANDSELECT_MERC ); // Center to guy.... LocateSoldier( gusSelectedSoldier, SETLOCATOR ); @@ -2050,14 +2050,14 @@ void HandleMouseRTWheel( void ) if ( _KeyDown( ALT ) ) { if ( (gusSelectedSoldier != NOBODY) && ( gpItemPointer == NULL ) ) - GotoHeigherStance( MercPtrs[ gusSelectedSoldier ] ); + GotoHeigherStance( gusSelectedSoldier ); return; } //ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"wheel %d", gViewportRegion.WheelState); if ( gusSelectedSoldier != NOBODY ) { //Select next merc - bID = FindNextMercInTeamPanel( MercPtrs[ gusSelectedSoldier ], FALSE, FALSE ); + bID = FindNextMercInTeamPanel( gusSelectedSoldier, FALSE, FALSE ); HandleLocateSelectMerc( bID, LOCATEANDSELECT_MERC ); // Center to guy.... LocateSoldier( gusSelectedSoldier, SETLOCATOR ); @@ -2073,7 +2073,7 @@ void HandleMouseRTMButton( UINT32 *puiNewEvent ) // toggle fire mode if ( ( gpItemPointer == NULL ) && ( gusSelectedSoldier != NOBODY ) && ( ( gsCurInterfacePanel != SM_PANEL ) || ( ButtonList[ iSMPanelButtons[ BURSTMODE_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) ) - ChangeWeaponMode( MercPtrs[ gusSelectedSoldier ] ); + ChangeWeaponMode( gusSelectedSoldier ); } else *puiNewEvent = LC_LOOK; @@ -2140,7 +2140,7 @@ void HandleMouseRTX1Button( UINT32 *puiNewEvent ) void HandleMouseRTX2Button( UINT32 *puiNewEvent ) { if ( _KeyDown( ALT ) ) - AutoReload( MercPtrs[ gusSelectedSoldier ] ); + AutoReload( gusSelectedSoldier ); else // Toggle squad's stealth mode..... // For each guy on squad... @@ -2252,7 +2252,7 @@ void HandleRTToggleFireMode( void ) // toggle fire mode if ( ( gpItemPointer == NULL ) && ( gusSelectedSoldier != NOBODY ) && ( ( gsCurInterfacePanel != SM_PANEL ) || ( ButtonList[ iSMPanelButtons[ BURSTMODE_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) ) - ChangeWeaponMode( MercPtrs[ gusSelectedSoldier ] ); + ChangeWeaponMode( gusSelectedSoldier ); } void HandleRTLocateSoldier( void ) { diff --git a/Tactical/ShopKeeper Interface.cpp b/Tactical/ShopKeeper Interface.cpp index 72241b74..a09f5020 100644 --- a/Tactical/ShopKeeper Interface.cpp +++ b/Tactical/ShopKeeper Interface.cpp @@ -766,7 +766,7 @@ BOOLEAN EnterShopKeeperInterface() //ADB if we are here, we must be able to talk with an extended ear (CheckIfRadioIsEquipped()) //but if we are physically too far away, we don't have extended arms! - SOLDIERTYPE* pSoldier = MercPtrs[ gusSelectedSoldier ]; + SOLDIERTYPE* pSoldier = gusSelectedSoldier; SOLDIERTYPE* pShopkeeper = NULL; if ( gusIDOfCivTrader != NOBODY ) @@ -826,7 +826,7 @@ BOOLEAN EnterShopKeeperInterface() } // make sure current merc is close enough and eligible to talk to the shopkeeper. - AssertMsg( CanMercInteractWithSelectedShopkeeper( MercPtrs[ gusSelectedSoldier ] ), "Selected merc can't interact with shopkeeper. Send save AM-1"); + AssertMsg( CanMercInteractWithSelectedShopkeeper( gusSelectedSoldier ), "Selected merc can't interact with shopkeeper. Send save AM-1"); // Create a video surface to blt corner of the tactical screen that still shines through vs_desc.fCreateFlags = VSURFACE_CREATE_DEFAULT | VSURFACE_SYSTEM_MEM_USAGE; @@ -2477,7 +2477,7 @@ void EnterShopKeeperInterfaceScreen_NonNPC( INT8 ubArmsDealerID, UINT16 aMercID // Flugente: additional dialogue if ( gusSelectedSoldier != NOBODY ) - AdditionalTacticalCharacterDialogue_CallsLua( MercPtrs[gusSelectedSoldier], ADE_MERCHANT_CHAT, ubArmsDealerID >= 0 ? (UINT32)ubArmsDealerID : 0 ); + AdditionalTacticalCharacterDialogue_CallsLua( gusSelectedSoldier, ADE_MERCHANT_CHAT, ubArmsDealerID >= 0 ? (UINT32)ubArmsDealerID : 0 ); LeaveTacticalScreen( SHOPKEEPER_SCREEN ); } @@ -6780,7 +6780,7 @@ void DealWithItemsStillOnTheTable() } else { - pDropSoldier = MercPtrs[ gusSelectedSoldier ]; + pDropSoldier = gusSelectedSoldier; } // this guy HAS to be valid! @@ -7023,7 +7023,7 @@ void SelectArmsDealersDropItemToGroundRegionCallBack(MOUSE_REGION * pRegion, INT } else { - pDropSoldier = MercPtrs[ gusSelectedSoldier ]; + pDropSoldier = gusSelectedSoldier; } //if we don't have an item, pick one up diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index 2b256bb3..595994bb 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -2763,7 +2763,7 @@ BOOLEAN ReCreateSelectedSoldierLight( ) return(FALSE); } - pSoldier = MercPtrs[gusSelectedSoldier]; + pSoldier = gusSelectedSoldier; return(pSoldier->ReCreateSoldierLight( )); } diff --git a/Tactical/SoldierTooltips.cpp b/Tactical/SoldierTooltips.cpp index 731bb636..0adebc5a 100644 --- a/Tactical/SoldierTooltips.cpp +++ b/Tactical/SoldierTooltips.cpp @@ -132,8 +132,8 @@ void SoldierTooltip( SOLDIERTYPE* pSoldier ) if ( gusSelectedSoldier != NOBODY && gusUIFullTargetID != NOBODY ) { //CHRISL: Changed the second parameter to use the same information as the 'F' hotkey uses. - //iRangeToTarget = GetRangeInCellCoordsFromGridNoDiff( MercPtrs[ gusSelectedSoldier ]->sGridNo, sSoldierGridNo ) / 10; - iRangeToTarget = GetRangeInCellCoordsFromGridNoDiff( MercPtrs[ gusSelectedSoldier ]->sGridNo, MercPtrs[ gusUIFullTargetID ]->sGridNo ) / 10; + //iRangeToTarget = GetRangeInCellCoordsFromGridNoDiff( gusSelectedSoldier->sGridNo, sSoldierGridNo ) / 10; + iRangeToTarget = GetRangeInCellCoordsFromGridNoDiff( gusSelectedSoldier->sGridNo, MercPtrs[ gusUIFullTargetID ]->sGridNo ) / 10; } // WANNE: If we want to show the tooltip of milita and no merc is present in the sector else @@ -145,14 +145,14 @@ void SoldierTooltip( SOLDIERTYPE* pSoldier ) // SANDRO - don't use this if detail set to debug! if ( gGameExternalOptions.gfAllowUDTRange && gGameExternalOptions.ubSoldierTooltipDetailLevel != DL_Debug && !(gTacticalStatus.uiFlags & SHOW_ALL_MERCS) ) { - uiMaxTooltipDistance = (UINT32)( MercPtrs[ gusSelectedSoldier ]->GetMaxDistanceVisible(MercPtrs[ gusUIFullTargetID ]->sGridNo, 0, CALC_FROM_WANTED_DIR) * (gGameExternalOptions.ubUDTModifier)); + uiMaxTooltipDistance = (UINT32)( gusSelectedSoldier->GetMaxDistanceVisible(MercPtrs[ gusUIFullTargetID ]->sGridNo, 0, CALC_FROM_WANTED_DIR) * (gGameExternalOptions.ubUDTModifier)); uiMaxTooltipDistance /= 100; } //SCORE: Otherwise if we're using dynamics then do this // SANDRO - don't use this if detail set to debug! else if ( gGameExternalOptions.fEnableDynamicSoldierTooltips && gGameExternalOptions.ubSoldierTooltipDetailLevel != DL_Debug && !(gTacticalStatus.uiFlags & SHOW_ALL_MERCS) ) { - OBJECTTYPE* pObject = &(MercPtrs[gusSelectedSoldier]->inv[HANDPOS]); + OBJECTTYPE* pObject = &(gusSelectedSoldier->inv[HANDPOS]); for (attachmentList::iterator iter = (*pObject)[0]->attachments.begin(); iter != (*pObject)[0]->attachments.end(); ++iter) { if ( Item[iter->usItem].visionrangebonus > 0 && iter->exists()) { @@ -175,14 +175,14 @@ void SoldierTooltip( SOLDIERTYPE* pSoldier ) { // add 10% to max tooltip viewing distance per level of the merc // sevenfm: fixed incorrect integer calculation - uiMaxTooltipDistance = (INT32)( uiMaxTooltipDistance * ( 1 + ( (FLOAT)( EffectiveExpLevel( MercPtrs[ gusSelectedSoldier ] ) ) / 10.0 ) ) ); // SANDRO - changed to effective level calc + uiMaxTooltipDistance = (INT32)( uiMaxTooltipDistance * ( 1 + ( (FLOAT)( EffectiveExpLevel( gusSelectedSoldier ) ) / 10.0 ) ) ); // SANDRO - changed to effective level calc // sevenfm: this calculation doesn't make sense: disabled //if ( gGameExternalOptions.gfAllowLimitedVision ) // uiMaxTooltipDistance *= 1 - (gGameExternalOptions.ubVisDistDecreasePerRainIntensity / 100); - if ( !(Item[MercPtrs[gusSelectedSoldier]->inv[HEAD1POS].usItem].nightvisionrangebonus > 0) && - !(Item[MercPtrs[gusSelectedSoldier]->inv[HEAD2POS].usItem].nightvisionrangebonus > 0) && + if ( !(Item[gusSelectedSoldier->inv[HEAD1POS].usItem].nightvisionrangebonus > 0) && + !(Item[gusSelectedSoldier->inv[HEAD2POS].usItem].nightvisionrangebonus > 0) && !DayTime() ) { // if night reduce max tooltip viewing distance by a factor of 4 if merc is not wearing NVG @@ -321,7 +321,7 @@ void SoldierTooltip( SOLDIERTYPE* pSoldier ) if ( ubTooltipDetailLevel < DL_Full) { // Get the current selected merc - SOLDIERTYPE* pMerc = MercPtrs[ gusSelectedSoldier ]; + SOLDIERTYPE* pMerc = gusSelectedSoldier; if ( pMerc->aiData.bOppList[pSoldier->ubID] != SEEN_CURRENTLY ) { diff --git a/Tactical/Squads.cpp b/Tactical/Squads.cpp index 355bbf8a..26d7f5c3 100644 --- a/Tactical/Squads.cpp +++ b/Tactical/Squads.cpp @@ -926,7 +926,7 @@ BOOLEAN SetCurrentSquad( INT32 iCurrentSquad, BOOLEAN fForce ) // check if the currently selected guy is on this squad, if not, get the first one on the new squad if ( gusSelectedSoldier != NOBODY ) { - if( Menptr[ gusSelectedSoldier ].bAssignment != iCurrentTacticalSquad ) + if( gusSelectedSoldier->bAssignment != iCurrentTacticalSquad ) { // ATE: Changed this to FALSE for ackoledgement sounds.. sounds bad if just starting/entering sector.. SelectSoldier( Squad[ iCurrentTacticalSquad ][ 0 ]->ubID, FALSE, TRUE ); diff --git a/Tactical/Strategic Exit GUI.cpp b/Tactical/Strategic Exit GUI.cpp index 58d4459c..c8b87e8d 100644 --- a/Tactical/Strategic Exit GUI.cpp +++ b/Tactical/Strategic Exit GUI.cpp @@ -177,7 +177,7 @@ BOOLEAN InternalInitSectorExitMenu( UINT8 ubDirection, INT32 sAdditionalData )// } // anv: vehicle always move with all passengers inside - if( MercPtrs[gusSelectedSoldier]->bAssignment == VEHICLE ) + if( gusSelectedSoldier->bAssignment == VEHICLE ) { gExitDialog.fSingleMoveDisabled = TRUE; gExitDialog.fSingleMoveOn = FALSE; @@ -217,7 +217,7 @@ BOOLEAN InternalInitSectorExitMenu( UINT8 ubDirection, INT32 sAdditionalData )// gExitDialog.fGotoSector = TRUE; } - gExitDialog.ubNumPeopleOnSquad = NumberOfPlayerControllableMercsInSquad( MercPtrs[ gusSelectedSoldier ]->bAssignment ); + gExitDialog.ubNumPeopleOnSquad = NumberOfPlayerControllableMercsInSquad( gusSelectedSoldier->bAssignment ); //Determine for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) @@ -230,8 +230,8 @@ BOOLEAN InternalInitSectorExitMenu( UINT8 ubDirection, INT32 sAdditionalData )// if( !pSoldier->flags.fBetweenSectors && pSoldier->sSectorX == gWorldSectorX && pSoldier->sSectorY == gWorldSectorY && pSoldier->bSectorZ == gbWorldSectorZ && pSoldier->stats.bLife >= OKLIFE && - ( pSoldier->bAssignment != MercPtrs[ gusSelectedSoldier ]->bAssignment || - ( pSoldier->bAssignment == VEHICLE && pSoldier->iVehicleId != MercPtrs[ gusSelectedSoldier ]->iVehicleId ) ) && + ( pSoldier->bAssignment != gusSelectedSoldier->bAssignment || + ( pSoldier->bAssignment == VEHICLE && pSoldier->iVehicleId != gusSelectedSoldier->iVehicleId ) ) && pSoldier->bAssignment != ASSIGNMENT_POW && pSoldier->bAssignment != IN_TRANSIT && pSoldier->bAssignment != ASSIGNMENT_DEAD && pSoldier->bAssignment != ASSIGNMENT_MINIEVENT && pSoldier->bAssignment != ASSIGNMENT_REBELCOMMAND && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) ) { //KM: We need to determine if there are more than one squad (meaning other concious mercs in a different squad or assignment) @@ -245,7 +245,7 @@ BOOLEAN InternalInitSectorExitMenu( UINT8 ubDirection, INT32 sAdditionalData )// // Double check that ... // if we are a EPC and are the selected guy, make single move off and disable it.... - if ( AM_AN_EPC( MercPtrs[ gusSelectedSoldier ] ) ) + if ( AM_AN_EPC( gusSelectedSoldier ) ) { // Check if there are more than one in this squad if ( gExitDialog.ubNumPeopleOnSquad > 1 ) @@ -268,7 +268,7 @@ BOOLEAN InternalInitSectorExitMenu( UINT8 ubDirection, INT32 sAdditionalData )// { continue; } - if( MercPtrs[ i ]->bAssignment == MercPtrs[ gusSelectedSoldier ]->bAssignment ) + if( MercPtrs[ i ]->bAssignment == gusSelectedSoldier->bAssignment ) { if( AM_AN_EPC( MercPtrs[ i ] ) ) { @@ -550,7 +550,7 @@ void UpdateSectorExitMenu( ) if( gExitDialog.fSelectedMercIsEPC ) { //EPCs cannot leave the sector alone and must be escorted CHAR16 str[ 256 ]; - swprintf( str, pExitingSectorHelpText[ EXIT_GUI_ESCORTED_CHARACTERS_MUST_BE_ESCORTED_HELPTEXT ], MercPtrs[ gusSelectedSoldier ]->name ); + swprintf( str, pExitingSectorHelpText[ EXIT_GUI_ESCORTED_CHARACTERS_MUST_BE_ESCORTED_HELPTEXT ], gusSelectedSoldier->name ); SetButtonFastHelpText( gExitDialog.uiSingleMoveButton, str ); SetRegionFastHelpText( &gExitDialog.SingleRegion, str ); } @@ -561,26 +561,26 @@ void UpdateSectorExitMenu( ) CHAR16 str[ 256 ]; if( !gExitDialog.fSquadHasMultipleEPCs ) { - if( gMercProfiles[ MercPtrs[ gusSelectedSoldier ]->ubProfile ].bSex == MALE ) + if( gMercProfiles[ gusSelectedSoldier->ubProfile ].bSex == MALE ) { //male singular - swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_MALE_SINGULAR ], MercPtrs[ gusSelectedSoldier ]->name, + swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_MALE_SINGULAR ], gusSelectedSoldier->name, MercPtrs[ gExitDialog.bSingleMoveWillIsolateEPC ]->name ); } else { //female singular - swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_FEMALE_SINGULAR ], MercPtrs[ gusSelectedSoldier ]->name, + swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_FEMALE_SINGULAR ], gusSelectedSoldier->name, MercPtrs[ gExitDialog.bSingleMoveWillIsolateEPC ]->name ); } } else { - if( gMercProfiles[ MercPtrs[ gusSelectedSoldier ]->ubProfile ].bSex == MALE ) + if( gMercProfiles[ gusSelectedSoldier->ubProfile ].bSex == MALE ) { //male plural - swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_MALE_PLURAL ], MercPtrs[ gusSelectedSoldier ]->name ); + swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_MALE_PLURAL ], gusSelectedSoldier->name ); } else { //female plural - swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_FEMALE_PLURAL ], MercPtrs[ gusSelectedSoldier ]->name ); + swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_FEMALE_PLURAL ], gusSelectedSoldier->name ); } } SetButtonFastHelpText( gExitDialog.uiSingleMoveButton, str ); @@ -592,7 +592,7 @@ void UpdateSectorExitMenu( ) CHAR16 str[ 256 ]; EnableButton( gExitDialog.uiSingleMoveButton ); MSYS_EnableRegion(&(gExitDialog.SingleRegion) ); - swprintf( str, pExitingSectorHelpText[ EXIT_GUI_SINGLE_TRAVERSAL_WILL_SEPARATE_SQUADS_HELPTEXT ], MercPtrs[ gusSelectedSoldier ]->name ); + swprintf( str, pExitingSectorHelpText[ EXIT_GUI_SINGLE_TRAVERSAL_WILL_SEPARATE_SQUADS_HELPTEXT ], gusSelectedSoldier->name ); SetButtonFastHelpText( gExitDialog.uiSingleMoveButton, str ); SetRegionFastHelpText( &gExitDialog.SingleRegion, str ); } @@ -762,12 +762,12 @@ void RemoveSectorExitMenu( BOOLEAN fOk ) gfIgnoreScrolling = FALSE; // if we are an EPC, don't allow this if nobody else on squad - if ( fOk && AM_AN_EPC( MercPtrs[ gusSelectedSoldier ] ) ) + if ( fOk && AM_AN_EPC( gusSelectedSoldier ) ) { // Check if there are more than one in this squad if ( gExitDialog.ubNumPeopleOnSquad == 0 ) { - swprintf( Str, pMessageStrings[ MSG_EPC_CANT_TRAVERSE ], MercPtrs[ gusSelectedSoldier ]->name ); + swprintf( Str, pMessageStrings[ MSG_EPC_CANT_TRAVERSE ], gusSelectedSoldier->name ); DoMessageBox( MSG_BOX_BASIC_STYLE, Str, GAME_SCREEN, ( UINT8 )MSG_BOX_FLAG_OK, NULL, NULL ); return; diff --git a/Tactical/TeamTurns.cpp b/Tactical/TeamTurns.cpp index 6173458d..d3962619 100644 --- a/Tactical/TeamTurns.cpp +++ b/Tactical/TeamTurns.cpp @@ -212,10 +212,10 @@ void StartPlayerTeamTurn( BOOLEAN fDoBattleSnd, BOOLEAN fEnteringCombatMode ) if ( gusSelectedSoldier != NOBODY ) { // Check if this guy is able to be selected.... - if ( MercPtrs[ gusSelectedSoldier ]->stats.bLife < OKLIFE ) + if ( gusSelectedSoldier->stats.bLife < OKLIFE ) { DebugMsg(TOPIC_JA2INTERRUPT,DBG_LEVEL_3,String("StartPlayerTeamTurn: SelectNextAvailSoldier")); - SelectNextAvailSoldier( MercPtrs[ gusSelectedSoldier ] ); + SelectNextAvailSoldier( gusSelectedSoldier ); } else { @@ -230,7 +230,7 @@ void StartPlayerTeamTurn( BOOLEAN fDoBattleSnd, BOOLEAN fEnteringCombatMode ) if ( fDoBattleSnd ) { // Say ATTENTION SOUND... - MercPtrs[ gusSelectedSoldier ]->DoMercBattleSound( BATTLE_SOUND_ATTN1 ); + gusSelectedSoldier->DoMercBattleSound( BATTLE_SOUND_ATTN1 ); } if ( gsInterfaceLevel == 1 ) @@ -1289,14 +1289,14 @@ void EndInterrupt( BOOLEAN fMarkInterruptOccurred ) gfHiddenInterrupt = FALSE; // If we can continue a move, do so! - if ( MercPtrs[ gusSelectedSoldier ]->flags.fNoAPToFinishMove && pSoldier->ubReasonCantFinishMove != REASON_STOPPED_SIGHT ) + if ( gusSelectedSoldier->flags.fNoAPToFinishMove && pSoldier->ubReasonCantFinishMove != REASON_STOPPED_SIGHT ) { // Continue - MercPtrs[ gusSelectedSoldier ]->AdjustNoAPToFinishMove( FALSE ); + gusSelectedSoldier->AdjustNoAPToFinishMove( FALSE ); - if ( MercPtrs[ gusSelectedSoldier ]->sGridNo != MercPtrs[ gusSelectedSoldier ]->pathing.sFinalDestination ) + if ( gusSelectedSoldier->sGridNo != gusSelectedSoldier->pathing.sFinalDestination ) { - MercPtrs[ gusSelectedSoldier ]->EVENT_GetNewSoldierPath( MercPtrs[ gusSelectedSoldier ]->pathing.sFinalDestination, MercPtrs[ gusSelectedSoldier ]->usUIMovementMode ); + gusSelectedSoldier->EVENT_GetNewSoldierPath( gusSelectedSoldier->pathing.sFinalDestination, gusSelectedSoldier->usUIMovementMode ); } else { @@ -1332,7 +1332,7 @@ void EndInterrupt( BOOLEAN fMarkInterruptOccurred ) SlideTo( NOWHERE, gusSelectedSoldier, NOBODY ,SETLOCATOR); // Say ATTENTION SOUND... - MercPtrs[ gusSelectedSoldier ]->DoMercBattleSound( BATTLE_SOUND_ATTN1 ); + gusSelectedSoldier->DoMercBattleSound( BATTLE_SOUND_ATTN1 ); if ( gsInterfaceLevel == 1 ) { @@ -1692,7 +1692,7 @@ BOOLEAN StandardInterruptConditionsMet( SOLDIERTYPE * pSoldier, UINT16 ubOpponen // the selected character, ie. his friends... if ( pOpponent->bTeam == gbPlayerNum ) { - if ((ubOpponentID != gusSelectedSoldier) && (pSoldier->bSide != Menptr[gusSelectedSoldier].bSide)) + if ((ubOpponentID != gusSelectedSoldier) && (pSoldier->bSide != gusSelectedSoldier->bSide)) { return( FALSE ); } @@ -1714,7 +1714,7 @@ BOOLEAN StandardInterruptConditionsMet( SOLDIERTYPE * pSoldier, UINT16 ubOpponen } /* old DG code for same: - if ((ubOpponentID != gusSelectedSoldier) && (pSoldier->bSide != Menptr[gusSelectedSoldier].bSide)) + if ((ubOpponentID != gusSelectedSoldier) && (pSoldier->bSide != gusSelectedSoldier->bSide)) { return(FALSE); } @@ -2356,7 +2356,7 @@ void DoneAddingToIntList( SOLDIERTYPE * pSoldier, BOOLEAN fChange, UINT8 ubInter send_interrupt( npSoldier ); - SOLDIERTYPE* pMerc = MercPtrs[ gusSelectedSoldier ]; + SOLDIERTYPE* pMerc = gusSelectedSoldier; //AdjustNoAPToFinishMove( pMerc, TRUE ); pMerc->HaultSoldierFromSighting(TRUE); //pMerc->fTurningFromPronePosition = FALSE;// hmmm ?? diff --git a/Tactical/Turn Based Input.cpp b/Tactical/Turn Based Input.cpp index 6346f087..bdd31b7f 100644 --- a/Tactical/Turn Based Input.cpp +++ b/Tactical/Turn Based Input.cpp @@ -493,7 +493,7 @@ void QueryTBLeftButton( UINT32 *puiNewEvent ) { BOOLEAN fResult; - if ( ( fResult = UIOKMoveDestination( MercPtrs[ gusSelectedSoldier ], usMapPos ) ) == 1 ) + if ( ( fResult = UIOKMoveDestination( gusSelectedSoldier, usMapPos ) ) == 1 ) { // ATE: CHECK IF WE CAN GET TO POSITION // Check if we are not in combat @@ -998,10 +998,10 @@ void QueryTBRightButton( UINT32 *puiNewEvent ) gfFirstCycleMovementStarted = TRUE; // OK, set this guy's movement mode to crawling fo rthat we will start cycling in run..... - if ( MercPtrs[ gusSelectedSoldier ]->usUIMovementMode != RUNNING ) + if ( gusSelectedSoldier->usUIMovementMode != RUNNING ) { // ATE: UNLESS WE ARE IN RUNNING MODE ALREADY - MercPtrs[ gusSelectedSoldier ]->usUIMovementMode = CRAWLING; + gusSelectedSoldier->usUIMovementMode = CRAWLING; } } @@ -1016,7 +1016,7 @@ void QueryTBRightButton( UINT32 *puiNewEvent ) { gfBeginBurstSpreadTracking = FALSE; gfRTClickLeftHoldIntercepted = TRUE; - MercPtrs[ gusSelectedSoldier ]->flags.fDoSpread = FALSE; + gusSelectedSoldier->flags.fDoSpread = FALSE; fClickHoldIntercepted = TRUE; *puiNewEvent = A_END_ACTION; gCurrentUIMode = MOVE_MODE; @@ -1070,7 +1070,7 @@ void QueryTBRightButton( UINT32 *puiNewEvent ) case MOVE_MODE: // anv: don't switch if passengers are blocked from attacking - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; if( pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER | SOLDIER_PASSENGER ) ) { SOLDIERTYPE *pVehicle = GetSoldierStructureForVehicle( pSoldier->iVehicleId ); @@ -1627,8 +1627,8 @@ void CheatCreateItem( ) CreateItem( usitem, status, &newobj ); (newobj)[0]->data.bTemperature = temperature; - if ( !AutoPlaceObject( MercPtrs[ gusSelectedSoldier ], &newobj, FALSE ) ) - AddItemToPool( MercPtrs[ gusSelectedSoldier ]->sGridNo, &newobj, 1, 0, 0, -1 ); + if ( !AutoPlaceObject( gusSelectedSoldier, &newobj, FALSE ) ) + AddItemToPool( gusSelectedSoldier->sGridNo, &newobj, 1, 0, 0, -1 ); } } @@ -2121,7 +2121,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) gfRTClickLeftHoldIntercepted = TRUE; if ( gusSelectedSoldier != NOBODY ) { - MercPtrs[ gusSelectedSoldier ]->flags.fDoSpread = FALSE; + gusSelectedSoldier->flags.fDoSpread = FALSE; } // Before anything, delete popup box! @@ -2223,11 +2223,11 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) continue; } else if (gusSelectedSoldier != NOBODY && - MercPtrs[gusSelectedSoldier] && - !(gAnimControl[MercPtrs[gusSelectedSoldier]->usAnimState].uiFlags & ANIM_STATIONARY)) + gusSelectedSoldier && + !(gAnimControl[gusSelectedSoldier->usAnimState].uiFlags & ANIM_STATIONARY)) { // If soldier is not stationary, stop - MercPtrs[gusSelectedSoldier]->StopSoldier(); + gusSelectedSoldier->StopSoldier(); *puiNewEvent = A_CHANGE_TO_MOVE; continue; } @@ -2235,21 +2235,21 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) // sevenfm: also stop dragging if (gusSelectedSoldier != NOBODY && - MercPtrs[gusSelectedSoldier] && - MercPtrs[gusSelectedSoldier]->IsDragging(false)) + gusSelectedSoldier && + gusSelectedSoldier->IsDragging(false)) { - MercPtrs[gusSelectedSoldier]->CancelDrag(); - DirtyMercPanelInterface(MercPtrs[gusSelectedSoldier], DIRTYLEVEL2); + gusSelectedSoldier->CancelDrag(); + DirtyMercPanelInterface(gusSelectedSoldier, DIRTYLEVEL2); continue; } // sevenfm: unready weapon if (gusSelectedSoldier != NOBODY && - MercPtrs[gusSelectedSoldier] && - WeaponReady(MercPtrs[gusSelectedSoldier])) + gusSelectedSoldier && + WeaponReady(gusSelectedSoldier)) { - MercPtrs[gusSelectedSoldier]->InternalSoldierReadyWeapon(MercPtrs[gusSelectedSoldier]->ubDirection, TRUE, FALSE); - HandleSight(MercPtrs[gusSelectedSoldier], SIGHT_LOOK); + gusSelectedSoldier->InternalSoldierReadyWeapon(gusSelectedSoldier->ubDirection, TRUE, FALSE); + HandleSight(gusSelectedSoldier, SIGHT_LOOK); continue; } } @@ -2313,19 +2313,19 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) // { // if ( gusSelectedSoldier != NOBODY ) // { - // if ( gTacticalStatus.uiFlags & TURNBASED && !MercPtrs[ gusSelectedSoldier ]->fDontChargeReadyAPs ) + // if ( gTacticalStatus.uiFlags & TURNBASED && !gusSelectedSoldier->fDontChargeReadyAPs ) // { - // INT16 apCost = GetAPsToReadyWeapon( MercPtrs[ gusSelectedSoldier ], 0 ); - // if (MercPtrs[ gusSelectedSoldier ]->bActionPoints >= apCost ) + // INT16 apCost = GetAPsToReadyWeapon( gusSelectedSoldier, 0 ); + // if (gusSelectedSoldier->bActionPoints >= apCost ) // { - // DeductPoints( MercPtrs[ gusSelectedSoldier ],apCost , 0 ); - // DirtyMercPanelInterface( MercPtrs[ gusSelectedSoldier ], DIRTYLEVEL2 ); - // SoldierReadyWeapon( MercPtrs[ gusSelectedSoldier ] ); + // DeductPoints( gusSelectedSoldier,apCost , 0 ); + // DirtyMercPanelInterface( gusSelectedSoldier, DIRTYLEVEL2 ); + // SoldierReadyWeapon( gusSelectedSoldier ); // } // } // else // { - // SoldierReadyWeapon( MercPtrs[ gusSelectedSoldier ] ); + // SoldierReadyWeapon( gusSelectedSoldier ); // } // } @@ -2344,7 +2344,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) for ( i = 0; i < 1000; i++ ) { - CalculateLaunchItemChanceToGetThrough( MercPtrs[ gusSelectedSoldier ], &(MercPtrs[ gusSelectedSoldier ]->inv[ HANDPOS ] ), usMapPos, 0, 0, &sGridNo, TRUE, (INT8 *)&ubLevel, TRUE ); + CalculateLaunchItemChanceToGetThrough( gusSelectedSoldier, &(gusSelectedSoldier->inv[ HANDPOS ] ), usMapPos, 0, 0, &sGridNo, TRUE, (INT8 *)&ubLevel, TRUE ); } ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_TESTVERSION, L"Physics 100 times: %d", ( GetJA2Clock( ) - iTime ) ); @@ -2412,7 +2412,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) //Select next squad iCurrentSquad = CurrentSquad( ); - pNewSoldier = FindNextActiveSquad( MercPtrs[ gusSelectedSoldier ] ); + pNewSoldier = FindNextActiveSquad( gusSelectedSoldier ); if ( pNewSoldier->bAssignment != iCurrentSquad ) { @@ -2436,7 +2436,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) { //Select next merc UINT16 bID; - bID = FindNextMercInTeamPanel( MercPtrs[ gusSelectedSoldier ], FALSE, FALSE ); + bID = FindNextMercInTeamPanel( gusSelectedSoldier, FALSE, FALSE ); HandleLocateSelectMerc( bID, LOCATEANDSELECT_MERC ); @@ -2458,7 +2458,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) if ( fCtrl ) { if ( gusSelectedSoldier != NOBODY ) - SwapMercPortraits( MercPtrs[ gusSelectedSoldier ], -1 ); + SwapMercPortraits( gusSelectedSoldier, -1 ); } break; @@ -2467,7 +2467,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) if ( fCtrl ) { if ( gusSelectedSoldier != NOBODY ) - SwapMercPortraits( MercPtrs[ gusSelectedSoldier ], 1 ); + SwapMercPortraits( gusSelectedSoldier, 1 ); } break; @@ -2498,10 +2498,10 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) // Lalien: commented out, to fix "end move & LOS bug" (same button has two different actions) // if ( gusSelectedSoldier != NOBODY ) // { - // if ( CheckForMercContMove( MercPtrs[ gusSelectedSoldier ] ) ) + // if ( CheckForMercContMove( gusSelectedSoldier ) ) // { // // Continue - // ContinueMercMovement( MercPtrs[ gusSelectedSoldier ] ); + // ContinueMercMovement( gusSelectedSoldier ); // ErasePath( TRUE ); // } // } @@ -2521,7 +2521,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) // nothing in hand and either not in SM panel, or the matching button is enabled if we are in SM panel if ( ( gpItemPointer == NULL ) ) { - GotoHeigherStance( MercPtrs[ gusSelectedSoldier ] ); + GotoHeigherStance( gusSelectedSoldier ); } } } @@ -2541,7 +2541,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) // nothing in hand and either not in SM panel, or the matching button is enabled if we are in SM panel if ( ( gpItemPointer == NULL ) ) { - GotoLowerStance( MercPtrs[ gusSelectedSoldier ] ); + GotoLowerStance( gusSelectedSoldier ); } } } @@ -2921,7 +2921,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) { if ( gusSelectedSoldier != NOBODY ) { - HandleTacticalFunctionSelection(MercPtrs[ gusSelectedSoldier ], usMapPos ); + HandleTacticalFunctionSelection(gusSelectedSoldier, usMapPos ); } } else if ( fAlt ) @@ -2994,8 +2994,8 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) if (CHEATER_CHEAT_LEVEL()) { //ChangeSoldiersBodyType( TANK_NW, TRUE ); - // MercPtrs[ gusSelectedSoldier ]->flags.uiStatusFlags |= SOLDIER_CREATURE; - //EVENT_InitNewSoldierAnim( MercPtrs[ gusSelectedSoldier ], CRIPPLE_BEG, 0 , TRUE ); + // gusSelectedSoldier->flags.uiStatusFlags |= SOLDIER_CREATURE; + //EVENT_InitNewSoldierAnim( gusSelectedSoldier, CRIPPLE_BEG, 0 , TRUE ); } } else if( fAlt ) @@ -3034,12 +3034,12 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) { if (CHEATER_CHEAT_LEVEL()) { - MercPtrs[gusSelectedSoldier]->EVENT_InitNewSoldierAnim(KID_SKIPPING, 0, TRUE); + gusSelectedSoldier->EVENT_InitNewSoldierAnim(KID_SKIPPING, 0, TRUE); //ChangeSoldiersBodyType( LARVAE_MONSTER, TRUE ); - //MercPtrs[ gusSelectedSoldier ]->usAttackingWeapon = TANK_CANNON; + //gusSelectedSoldier->usAttackingWeapon = TANK_CANNON; //LocateSoldier( gusSelectedSoldier, FALSE ); - //EVENT_FireSoldierWeapon( MercPtrs[ gusSelectedSoldier ], sMapPos ); + //EVENT_FireSoldierWeapon( gusSelectedSoldier, sMapPos ); } } else if( fAlt ) @@ -3510,7 +3510,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) if ( gusSelectedSoldier != NOBODY ) { - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; if ( pSoldier->aiData.bOppCnt > 0 ) { @@ -3529,7 +3529,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) //CHRISL: drop all items if ( gusSelectedSoldier != NOBODY && !(gTacticalStatus.fEnemyInSector) ) { - SOLDIERTYPE *pSoldier = MercPtrs[ gusSelectedSoldier ]; + SOLDIERTYPE *pSoldier = gusSelectedSoldier; for(int i = BODYPOSFINAL; iinv[i].exists() == true) @@ -3593,12 +3593,12 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) if ( gfUIFullTargetFound ) { //Display the range to the target - DisplayRangeToTarget( MercPtrs[gusSelectedSoldier], MercPtrs[gusUIFullTargetID]->sGridNo ); + DisplayRangeToTarget( gusSelectedSoldier, MercPtrs[gusUIFullTargetID]->sGridNo ); } else { //Display the range to the target - DisplayRangeToTarget( MercPtrs[gusSelectedSoldier], usGridNo ); + DisplayRangeToTarget( gusSelectedSoldier, usGridNo ); } } @@ -4022,7 +4022,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) //CHRISL: Swap gunsling if ( gusSelectedSoldier != NOBODY ) { - SOLDIERTYPE *pSoldier = MercPtrs[ gusSelectedSoldier ]; + SOLDIERTYPE *pSoldier = gusSelectedSoldier; if ( fAlt ) // switch to knife, or from knife to gun @@ -4324,7 +4324,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) { if ( CHEATER_CHEAT_LEVEL( ) ) { - ReloadWeapon( MercPtrs[ gusSelectedSoldier ], MercPtrs[ gusSelectedSoldier ]->ubAttackingHand ); + ReloadWeapon( gusSelectedSoldier, gusSelectedSoldier->ubAttackingHand ); } else HandleTBReload(); @@ -4355,7 +4355,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) { if ( fAlt ) { - RemoveCharacterFromSquads( MercPtrs[gusSelectedSoldier] ); + RemoveCharacterFromSquads( gusSelectedSoldier ); } else if ( !fDisableMapInterfaceDueToBattle && !( gTacticalStatus.uiFlags & ENGAGED_IN_CONV ) && !is_networked ) { @@ -4475,7 +4475,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) else if ( fAlt && fShift ) { //resort Team by ubID - SortSquadByID(MercPtrs[gusSelectedSoldier]->bTeam); + SortSquadByID(gusSelectedSoldier->bTeam); } else { @@ -4597,7 +4597,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) { if ( gusSelectedSoldier != NOBODY ) { - CreateItem( FLAMETHROWER, 100, &( MercPtrs[ gusSelectedSoldier ]->inv[ HANDPOS ]) ); + CreateItem( FLAMETHROWER, 100, &( gusSelectedSoldier->inv[ HANDPOS ]) ); } } } @@ -4642,7 +4642,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) //Check if we have a good selected guy if ( gusSelectedSoldier != NOBODY ) { - pSoldier1 = MercPtrs[ gusSelectedSoldier ]; + pSoldier1 = gusSelectedSoldier; BOOLEAN fFoundGoodTarget = FALSE; if ( gfUIFullTargetFound ) @@ -4879,7 +4879,7 @@ BOOLEAN HandleCheckForExitArrowsInput( BOOLEAN fAdjustConfirm ) } else if( gfLoneEPCAttemptingTraversal ) { - ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, pExitingSectorHelpText[ EXIT_GUI_ESCORTED_CHARACTERS_CANT_LEAVE_SECTOR_ALONE_STR ], MercPtrs[ gusSelectedSoldier ]->GetName() ); + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, pExitingSectorHelpText[ EXIT_GUI_ESCORTED_CHARACTERS_CANT_LEAVE_SECTOR_ALONE_STR ], gusSelectedSoldier->GetName() ); gfLoneEPCAttemptingTraversal = FALSE; } else if( gubLoneMercAttemptingToAbandonEPCs ) @@ -4887,26 +4887,26 @@ BOOLEAN HandleCheckForExitArrowsInput( BOOLEAN fAdjustConfirm ) CHAR16 str[256]; if( gubLoneMercAttemptingToAbandonEPCs == 1 ) { //Use the singular version of the string - if( gMercProfiles[ MercPtrs[ gusSelectedSoldier ]->ubProfile ].bSex == MALE ) + if( gMercProfiles[ gusSelectedSoldier->ubProfile ].bSex == MALE ) { //male singular - swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_MALE_SINGULAR ], MercPtrs[ gusSelectedSoldier ]->GetName(), + swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_MALE_SINGULAR ], gusSelectedSoldier->GetName(), MercPtrs[ gbPotentiallyAbandonedEPCSlotID ]->GetName() ); } else { //female singular - swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_FEMALE_SINGULAR ], MercPtrs[ gusSelectedSoldier ]->GetName(), + swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_FEMALE_SINGULAR ], gusSelectedSoldier->GetName(), MercPtrs[ gbPotentiallyAbandonedEPCSlotID ]->GetName() ); } } else { //Use the plural version of the string - if( gMercProfiles[ MercPtrs[ gusSelectedSoldier ]->ubProfile ].bSex == MALE ) + if( gMercProfiles[ gusSelectedSoldier->ubProfile ].bSex == MALE ) { //male plural - swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_MALE_PLURAL ], MercPtrs[ gusSelectedSoldier ]->GetName() ); + swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_MALE_PLURAL ], gusSelectedSoldier->GetName() ); } else { //female plural - swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_FEMALE_PLURAL ], MercPtrs[ gusSelectedSoldier ]->GetName() ); + swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_FEMALE_PLURAL ], gusSelectedSoldier->GetName() ); } } ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, str ); @@ -4918,7 +4918,7 @@ BOOLEAN HandleCheckForExitArrowsInput( BOOLEAN fAdjustConfirm ) } else { - ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ MERC_IS_TOO_FAR_AWAY_STR ], MercPtrs[ gusSelectedSoldier ]->GetName() ); + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ MERC_IS_TOO_FAR_AWAY_STR ], gusSelectedSoldier->GetName() ); } return( TRUE ); @@ -5148,7 +5148,7 @@ void CycleSelectedMercsItem() if( gusSelectedSoldier != NOBODY ) { // Get soldier... - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; UINT16 usOldHandItem = pSoldier->inv[HANDPOS].usItem; @@ -5377,7 +5377,7 @@ void SetBurstMode() { if ( gusSelectedSoldier != NOBODY ) { - ChangeWeaponMode( MercPtrs[ gusSelectedSoldier ] ); + ChangeWeaponMode( gusSelectedSoldier ); } } @@ -5386,12 +5386,12 @@ void SetScopeMode( INT32 usMapPos ) if ( gusSelectedSoldier != NOBODY ) { if ( GetMouseMapPos( &usMapPos )) - ChangeScopeMode( MercPtrs[ gusSelectedSoldier ], usMapPos ); + ChangeScopeMode( gusSelectedSoldier, usMapPos ); else - ChangeScopeMode( MercPtrs[ gusSelectedSoldier ], NOWHERE ); + ChangeScopeMode( gusSelectedSoldier, NOWHERE ); // reevaluate sight - ManLooksForOtherTeams( MercPtrs[ gusSelectedSoldier ] ); + ManLooksForOtherTeams( gusSelectedSoldier ); } } #pragma optimize("", off) @@ -6115,14 +6115,14 @@ INT8 HandleMoveModeInteractiveClick( INT32 usMapPos, UINT32 *puiNewEvent ) if ( fContinue ) { - sActionGridNo = FindAdjacentGridEx( MercPtrs[ gusSelectedSoldier ], sIntTileGridNo, &ubDirection, NULL, FALSE, TRUE ); + sActionGridNo = FindAdjacentGridEx( gusSelectedSoldier, sIntTileGridNo, &ubDirection, NULL, FALSE, TRUE ); if ( sActionGridNo == -1 ) { sActionGridNo = sIntTileGridNo; } // If this is not the same tile as ours, check if we can get to dest! - if ( sActionGridNo != MercPtrs[ gusSelectedSoldier ]->sGridNo && gsCurrentActionPoints == 0 ) + if ( sActionGridNo != gusSelectedSoldier->sGridNo && gsCurrentActionPoints == 0 ) { ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_UI_FEEDBACK, TacticalStr[ NO_PATH ] ); bReturnCode = -1; @@ -6403,7 +6403,7 @@ void HandleStanceChangeFromUIKeys( UINT8 ubAnimHeight ) { if( gusSelectedSoldier != NOBODY ) { - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; // silversurfer: If we decide to stand up or press "s" again while we are standing we should reset movement to walk mode. // If we want to run we have to press "r" which is handled elsewhere. if ( ubAnimHeight == ANIM_STAND ) @@ -6508,9 +6508,9 @@ void HandleStealthChangeFromUIKeys( ) { if( gusSelectedSoldier != NOBODY ) { - if ( !AM_A_ROBOT( MercPtrs[ gusSelectedSoldier ] ) ) + if ( !AM_A_ROBOT( gusSelectedSoldier ) ) { - ToggleStealthMode( MercPtrs[ gusSelectedSoldier ] ); + ToggleStealthMode( gusSelectedSoldier ); } } } @@ -7475,12 +7475,12 @@ void HandleMouseTBWheel( void ) //change stance ->DOWN if ( _KeyDown( ALT ) ) { if ( (gusSelectedSoldier != NOBODY) && ( gpItemPointer == NULL ) ) - GotoLowerStance(MercPtrs[ gusSelectedSoldier ]); + GotoLowerStance(gusSelectedSoldier); return; } if ( gusSelectedSoldier != NOBODY ) { - bID = FindPrevActiveAndAliveMerc( MercPtrs[ gusSelectedSoldier ], TRUE, TRUE ); + bID = FindPrevActiveAndAliveMerc( gusSelectedSoldier, TRUE, TRUE ); HandleLocateSelectMerc( bID, LOCATEANDSELECT_MERC ); ErasePath(TRUE); gfPlotNewMovement = TRUE; @@ -7494,14 +7494,14 @@ void HandleMouseTBWheel( void ) //change stance ->UP if ( _KeyDown( ALT ) ) { if ( (gusSelectedSoldier != NOBODY) && ( gpItemPointer == NULL ) ) - GotoHeigherStance( MercPtrs[ gusSelectedSoldier ] ); + GotoHeigherStance( gusSelectedSoldier ); return; } //ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"wheel %d", gViewportRegion.WheelState); if ( gusSelectedSoldier != NOBODY ) { //Select next merc - bID = FindNextMercInTeamPanel( MercPtrs[ gusSelectedSoldier ], FALSE, FALSE ); + bID = FindNextMercInTeamPanel( gusSelectedSoldier, FALSE, FALSE ); HandleLocateSelectMerc( bID, LOCATEANDSELECT_MERC ); ErasePath(TRUE); gfPlotNewMovement = TRUE; @@ -7546,7 +7546,7 @@ void HandleMouseTBX1Button( UINT32 *puiNewEvent ) void HandleMouseTBX2Button( UINT32 *puiNewEvent ) { if ( _KeyDown( ALT ) ) - AutoReload( MercPtrs[ gusSelectedSoldier ] ); + AutoReload( gusSelectedSoldier ); else HandleTBToggleStealthAll(); } @@ -7761,7 +7761,7 @@ void HandleTBCycleThroughVisibleEnemies( void ) if ( gusSelectedSoldier != NOBODY ) { - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; if ( pSoldier->aiData.bOppCnt > 0 ) { @@ -7780,7 +7780,7 @@ void HandleTBCycleThroughVisibleEnemiesBackward( void ) if ( gusSelectedSoldier != NOBODY ) { - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; if ( pSoldier->aiData.bOppCnt > 0 ) { @@ -7808,9 +7808,9 @@ void HandleTBChangeLevel( void ) void HandleTBSwapHands( void ) { // swap primary & secondary hand - if ( gusSelectedSoldier != NOBODY && !AM_A_ROBOT( MercPtrs[ gusSelectedSoldier ] )) + if ( gusSelectedSoldier != NOBODY && !AM_A_ROBOT( gusSelectedSoldier )) { - SOLDIERTYPE *pSoldier = MercPtrs[ gusSelectedSoldier ]; + SOLDIERTYPE *pSoldier = gusSelectedSoldier; UINT16 usOldHandItem = pSoldier->inv[HANDPOS].usItem; SwapHandItems( pSoldier ); pSoldier->ReLoadSoldierAnimationDueToHandItemChange( usOldHandItem, pSoldier->inv[HANDPOS].usItem ); @@ -7825,7 +7825,7 @@ void HandleTBSwapGunsling( void ) if ( gusSelectedSoldier != NOBODY && UsingNewInventorySystem() == true) { - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; pSoldier->SwitchWeapons( ); } } @@ -7833,7 +7833,7 @@ void HandleTBSwapKnife( void ) { if ( gusSelectedSoldier != NOBODY && UsingNewInventorySystem() == true) { - SOLDIERTYPE *pSoldier = MercPtrs[ gusSelectedSoldier ]; + SOLDIERTYPE *pSoldier = gusSelectedSoldier; pSoldier->SwitchWeapons( TRUE ); } } @@ -7841,7 +7841,7 @@ void HandleTBSwapSidearm( void ) { if ( gusSelectedSoldier != NOBODY && UsingNewInventorySystem() == true) { - SOLDIERTYPE *pSoldier = MercPtrs[ gusSelectedSoldier ]; + SOLDIERTYPE *pSoldier = gusSelectedSoldier; pSoldier->SwitchWeapons( FALSE, TRUE ); } } @@ -7941,7 +7941,7 @@ void HandleTBToggleStealth( void ) } void HandleTBReload( void ) { - AutoReload( MercPtrs[ gusSelectedSoldier ] ); + AutoReload( gusSelectedSoldier ); } void HandleTBReloadAll( void ) { @@ -8242,19 +8242,19 @@ void HandleTBToggleTrapNetworkView( void ) void HandleTBGotoHigherStance( void ) { if ( (gusSelectedSoldier != NOBODY) && ( gpItemPointer == NULL ) ) - GotoHeigherStance(MercPtrs[ gusSelectedSoldier ]); + GotoHeigherStance(gusSelectedSoldier); } void HandleTBGotoLowerStance( void ) { if ( (gusSelectedSoldier != NOBODY) && ( gpItemPointer == NULL ) ) - GotoLowerStance( MercPtrs[ gusSelectedSoldier ] ); + GotoLowerStance( gusSelectedSoldier ); } void HandleTBLocateNextMerc( void ) { UINT16 bID; if ( gusSelectedSoldier != NOBODY ) { //Select next merc - bID = FindNextMercInTeamPanel( MercPtrs[ gusSelectedSoldier ], FALSE, FALSE ); + bID = FindNextMercInTeamPanel( gusSelectedSoldier, FALSE, FALSE ); HandleLocateSelectMerc( bID, LOCATEANDSELECT_MERC ); // Center to guy.... LocateSoldier( gusSelectedSoldier, SETLOCATOR ); @@ -8265,7 +8265,7 @@ void HandleTBLocatePrevMerc( void ) UINT16 bID; if ( gusSelectedSoldier != NOBODY ) { - bID = FindPrevActiveAndAliveMerc( MercPtrs[ gusSelectedSoldier ], TRUE, TRUE ); + bID = FindPrevActiveAndAliveMerc( gusSelectedSoldier, TRUE, TRUE ); HandleLocateSelectMerc( bID, LOCATEANDSELECT_MERC ); // Center to guy.... LocateSoldier( gusSelectedSoldier, SETLOCATOR ); @@ -8338,7 +8338,7 @@ void HandleTBDropBackpacks( void ) //if( UsingNewInventorySystem() && gusSelectedSoldier != NOBODY ) if( UsingNewInventorySystem() ) { - //SOLDIERTYPE *pSoldier = MercPtrs[ gusSelectedSoldier ]; + //SOLDIERTYPE *pSoldier = gusSelectedSoldier; SOLDIERTYPE *pTeamSoldier; UINT16 ubLoop; @@ -8376,7 +8376,7 @@ void HandleTBPickUpBackpacks( void ) //if( UsingNewInventorySystem() && gusSelectedSoldier != NOBODY ) if( UsingNewInventorySystem() ) { - //SOLDIERTYPE *pSoldier = MercPtrs[ gusSelectedSoldier ]; + //SOLDIERTYPE *pSoldier = gusSelectedSoldier; SOLDIERTYPE *pTeamSoldier; UINT16 ubLoop; @@ -8411,7 +8411,7 @@ void HandleTBPickUpBackpacks( void ) void HandleTBSoldierRun( void ) { - SOLDIERTYPE *pSoldier = MercPtrs[ gusSelectedSoldier ]; + SOLDIERTYPE *pSoldier = gusSelectedSoldier; if ( pSoldier->flags.uiStatusFlags & ( SOLDIER_DRIVER ) ) { pSoldier = GetSoldierStructureForVehicle( pSoldier->iVehicleId ); @@ -8861,7 +8861,7 @@ void HandleTacticalStoreInvItem( void ) UINT16 APTotalCost = 0; if( gusSelectedSoldier != NOBODY ) - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; else return; @@ -8934,7 +8934,7 @@ void HandleTacticalTakeInvItem( INT32 iType ) } if( gusSelectedSoldier != NOBODY ) - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; else return; @@ -9044,7 +9044,7 @@ void HandleTacticalDropItem( UINT8 ubSlot ) UINT16 APTotalCost = 0; if( gusSelectedSoldier != NOBODY ) - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; else return; @@ -9069,7 +9069,7 @@ void HandleTacticalTakeItem( void ) SOLDIERTYPE *pSoldier; if( gusSelectedSoldier != NOBODY ) - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; else return; @@ -9108,7 +9108,7 @@ void HandleTacticalReload() INT16 bAPs = 0; if (gusSelectedSoldier != NOBODY) - pSoldier = MercPtrs[gusSelectedSoldier]; + pSoldier = gusSelectedSoldier; else return; @@ -9579,10 +9579,10 @@ void HandleTBSkillsMenu(void) { TraitsMenu(usMapPos); } - else if (gusSelectedSoldier != NOBODY && MercPtrs[gusSelectedSoldier] && !TileIsOutOfBounds(MercPtrs[gusSelectedSoldier]->sGridNo)) + else if (gusSelectedSoldier != NOBODY && gusSelectedSoldier && !TileIsOutOfBounds(gusSelectedSoldier->sGridNo)) { - LocateGridNo(MercPtrs[gusSelectedSoldier]->sGridNo); - TraitsMenu(MercPtrs[gusSelectedSoldier]->sGridNo); + LocateGridNo(gusSelectedSoldier->sGridNo); + TraitsMenu(gusSelectedSoldier->sGridNo); } } @@ -9606,7 +9606,7 @@ void HandleTBPickUpBackpacks(BOOLEAN fAll) if (gusSelectedSoldier != NOBODY) { - pSoldier = MercPtrs[gusSelectedSoldier]; + pSoldier = gusSelectedSoldier; } INT16 sAPCost = APBPConstants[AP_BACK_PACK]; diff --git a/Tactical/UI Cursors.cpp b/Tactical/UI Cursors.cpp index 24c5614b..6cdd0e3d 100644 --- a/Tactical/UI Cursors.cpp +++ b/Tactical/UI Cursors.cpp @@ -364,7 +364,7 @@ UINT8 HandleActivatedTargetCursor( SOLDIERTYPE *pSoldier, INT32 usMapPos, BOOLEA // If we are in realtime, follow! if ( ( !( gTacticalStatus.uiFlags & INCOMBAT ) ) ) { - if ( ( gAnimControl[ MercPtrs[ gusSelectedSoldier ]->usAnimState ].uiFlags & ANIM_STATIONARY ) ) + if ( ( gAnimControl[ gusSelectedSoldier->usAnimState ].uiFlags & ANIM_STATIONARY ) ) { if ( gUITargetShotWaiting ) { diff --git a/Tactical/opplist.cpp b/Tactical/opplist.cpp index 3c68ee3a..39b72bfa 100644 --- a/Tactical/opplist.cpp +++ b/Tactical/opplist.cpp @@ -4642,16 +4642,16 @@ void DebugSoldierPage3( ) // OPIONION OF SELECTED MERC if ( gusSelectedSoldier != NOBODY && pSoldier->ubProfile != NO_PROFILE && ( - gMercProfiles[MercPtrs[gusSelectedSoldier]->ubProfile].Type == PROFILETYPE_AIM || - gMercProfiles[MercPtrs[gusSelectedSoldier]->ubProfile].Type == PROFILETYPE_MERC || - gMercProfiles[MercPtrs[gusSelectedSoldier]->ubProfile].Type == PROFILETYPE_RPC || - gMercProfiles[MercPtrs[gusSelectedSoldier]->ubProfile].Type == PROFILETYPE_IMP ) ) + gMercProfiles[gusSelectedSoldier->ubProfile].Type == PROFILETYPE_AIM || + gMercProfiles[gusSelectedSoldier->ubProfile].Type == PROFILETYPE_MERC || + gMercProfiles[gusSelectedSoldier->ubProfile].Type == PROFILETYPE_RPC || + gMercProfiles[gusSelectedSoldier->ubProfile].Type == PROFILETYPE_IMP ) ) { SetFontShade(LARGEFONT1, FONT_SHADE_GREEN); gprintf( 0, LINE_HEIGHT * ubLine, L"NPC Opinion:"); SetFontShade(LARGEFONT1, FONT_SHADE_NEUTRAL); - if (OKToCheckOpinion(MercPtrs[ gusSelectedSoldier ]->ubProfile)) - gprintf( 150, LINE_HEIGHT * ubLine, L"%d", gMercProfiles[ pSoldier->ubProfile ].bMercOpinion[ MercPtrs[ gusSelectedSoldier ]->ubProfile ] ); + if (OKToCheckOpinion(gusSelectedSoldier->ubProfile)) + gprintf( 150, LINE_HEIGHT * ubLine, L"%d", gMercProfiles[ pSoldier->ubProfile ].bMercOpinion[ gusSelectedSoldier->ubProfile ] ); ubLine++; } } diff --git a/TileEngine/Explosion Control.cpp b/TileEngine/Explosion Control.cpp index 2c467f85..6d3c28b2 100644 --- a/TileEngine/Explosion Control.cpp +++ b/TileEngine/Explosion Control.cpp @@ -4387,7 +4387,7 @@ void HandleExplosionWarningAnimations( ) // show focus area if skill is active if ( gusSelectedSoldier != NOBODY ) { - SOLDIERTYPE* pSoldier = MercPtrs[gusSelectedSoldier]; + SOLDIERTYPE* pSoldier = gusSelectedSoldier; if ( pSoldier->bActive && pSoldier->bInSector) { @@ -5620,10 +5620,8 @@ void FireFragmentsTrapGun( SOLDIERTYPE* pThrower, INT32 gridno, INT16 sZ, OBJECT void HavePersonAtGridnoStop( UINT32 sGridNo ) { - UINT8 ubID; - //Sewe if there is a person at the gridno - ubID = WhoIsThere2( sGridNo, 0 ); + SoldierID ubID = WhoIsThere2( sGridNo, 0 ); //is it a valid person if ( (ubID != NOBODY) && (MercPtrs[ ubID ]->bTeam == gbPlayerNum) ) @@ -5813,8 +5811,7 @@ void HandleSwitchToOpenFortifiedDoor( UINT32 sGridNo ) void HandleSeeingPowerGenFan( UINT32 sGridNo ) { -// INT8 bID; - UINT8 ubPerson; + SoldierID ubPerson; BOOLEAN fFanIsStopped; BOOLEAN fFanHasBeenStopped; SOLDIERTYPE *pSoldier; diff --git a/TileEngine/Interactive Tiles.cpp b/TileEngine/Interactive Tiles.cpp index 550df2ae..e8216082 100644 --- a/TileEngine/Interactive Tiles.cpp +++ b/TileEngine/Interactive Tiles.cpp @@ -505,7 +505,7 @@ void LogMouseOverInteractiveTile( INT32 sGridNo ) } // Also, don't allow for mercs who are on upper level... - if ( gusSelectedSoldier != NOBODY && MercPtrs[ gusSelectedSoldier ]->pathing.bLevel == 1 ) + if ( gusSelectedSoldier != NOBODY && gusSelectedSoldier->pathing.bLevel == 1 ) { return; } @@ -789,7 +789,7 @@ BOOLEAN RefineLogicOnStruct( INT32 sGridNo, LEVELNODE *pNode ) return( FALSE ); } - if ( gusSelectedSoldier != NOBODY && MercPtrs[ gusSelectedSoldier ]->ubBodyType == ROBOTNOWEAPON ) + if ( gusSelectedSoldier != NOBODY && gusSelectedSoldier->ubBodyType == ROBOTNOWEAPON ) { return( FALSE ); } diff --git a/TileEngine/overhead map.cpp b/TileEngine/overhead map.cpp index e3c2dcae..9db3faca 100644 --- a/TileEngine/overhead map.cpp +++ b/TileEngine/overhead map.cpp @@ -567,7 +567,7 @@ void HandleOverheadMap( ) if( !gfEditMode && !gfTacticalPlacementGUIActive && gusSelectedSoldier != NOBODY ) { - pSoldier = MercPtrs[ gusSelectedSoldier ]; + pSoldier = gusSelectedSoldier; DisplayMercNameInOverhead( pSoldier ); } diff --git a/TileEngine/renderworld.cpp b/TileEngine/renderworld.cpp index 85eb7bd9..2a93d397 100644 --- a/TileEngine/renderworld.cpp +++ b/TileEngine/renderworld.cpp @@ -1069,7 +1069,7 @@ inline UINT16 * GetShadeTable(LEVELNODE * pNode, SOLDIERTYPE * pSoldier, SOLDIER SOLDIERTYPE * pSelSoldier; if (gusSelectedSoldier != NOBODY) { - pSelSoldier = MercPtrs[gusSelectedSoldier]; + pSelSoldier = gusSelectedSoldier; } else { @@ -1149,7 +1149,7 @@ inline UINT16 * GetShadeTable(LEVELNODE * pNode, SOLDIERTYPE * pSoldier, SOLDIER } //if ( gusSelectedSoldier != NOBODY ) //{ - // pSelSoldier = MercPtrs[ gusSelectedSoldier ]; + // pSelSoldier = gusSelectedSoldier; // Shade differently depending on visiblity // if ( pSoldier->bVisible == 0 || ( pSelSoldier->aiData.bOppList[ pSoldier->ubID ] == 0 ) ) // { diff --git a/TileEngine/worlddef.cpp b/TileEngine/worlddef.cpp index 628a35e3..6265f093 100644 --- a/TileEngine/worlddef.cpp +++ b/TileEngine/worlddef.cpp @@ -3291,7 +3291,7 @@ BOOLEAN LoadWorld(const STR8 puiFilename, FLOAT* pMajorMapVersion, UINT8* pMinor // CHECK IF OUR SELECTED GUY IS GONE! if(gusSelectedSoldier != NOBODY) { - if(MercPtrs[gusSelectedSoldier]->bActive == FALSE) + if(gusSelectedSoldier->bActive == FALSE) gusSelectedSoldier = NOBODY; } AdjustSoldierCreationStartValues();