diff --git a/Ja2/SaveLoadGame.cpp b/Ja2/SaveLoadGame.cpp index 34f283fe..18270276 100644 --- a/Ja2/SaveLoadGame.cpp +++ b/Ja2/SaveLoadGame.cpp @@ -6731,9 +6731,9 @@ BOOLEAN LoadSavedGame( int ubSavedGameID ) // player team character fixes SOLDIERTYPE *pTeamSoldier; - for (UINT16 bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++) + for (SoldierID bLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop) { - pTeamSoldier=MercPtrs[bLoop]; + pTeamSoldier = bLoop; // silversurfer: added additional check to only remove the flags when there is no boxing activity going on at the moment. // WANNE: This should fix the bug if any merc are still under PC control. This could happen after boxing in SAN MONA. @@ -9277,20 +9277,20 @@ BOOLEAN LoadGeneralInfo( HWFILE hFile ) gCamoFace[i].gSnowCamoface = FALSE; } - SOLDIERTYPE * pSoldier; - UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; - UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; - for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; ++bMercID,pSoldier++) + SoldierID Soldier = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; + for ( ; Soldier <= bLastTeamID; ++Soldier) { - if ( pSoldier ) + if ( Soldier ) { - gCamoFace[pSoldier->ubProfile].gCamoface = ( pSoldier->bCamo > 0 ); - gCamoFace[pSoldier->ubProfile].gUrbanCamoface = ( pSoldier->urbanCamo > 0 ); - gCamoFace[pSoldier->ubProfile].gDesertCamoface = ( pSoldier->desertCamo > 0 ); - gCamoFace[pSoldier->ubProfile].gSnowCamoface = ( pSoldier->snowCamo > 0 ); + UINT8 profile = Soldier->ubProfile; + gCamoFace[profile].gCamoface = ( Soldier->bCamo > 0 ); + gCamoFace[profile].gUrbanCamoface = ( Soldier->urbanCamo > 0 ); + gCamoFace[profile].gDesertCamoface = ( Soldier->desertCamo > 0 ); + gCamoFace[profile].gSnowCamoface = ( Soldier->snowCamo > 0 ); - DeleteSoldierFace( pSoldier ); - pSoldier->iFaceIndex = InitSoldierFace( pSoldier ); + DeleteSoldierFace( Soldier ); + Soldier->iFaceIndex = InitSoldierFace( Soldier ); } } } @@ -9511,18 +9511,19 @@ void GetBestPossibleSectorXYZValues( INT16 *psSectorX, INT16 *psSectorY, INT8 *p } else { - UINT16 sSoldierCnt; + SoldierID sSoldierCnt; + SoldierID bLastTeamID; SOLDIERTYPE *pSoldier; - UINT16 bLastTeamID; - BOOLEAN fFoundAMerc=FALSE; + BOOLEAN fFoundAMerc = FALSE; // Set locator to first merc sSoldierCnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; //loop through all the mercs on the players team to find the one that is not moving - for ( pSoldier = MercPtrs[ sSoldierCnt ]; sSoldierCnt <= bLastTeamID; sSoldierCnt++,pSoldier++) + for ( ; sSoldierCnt <= bLastTeamID; ++sSoldierCnt ) { + pSoldier = sSoldierCnt; // test for !NULL (if initilization fails and MercPtrs contains 'NULL's) if( pSoldier && pSoldier->bActive ) { @@ -9546,8 +9547,9 @@ void GetBestPossibleSectorXYZValues( INT16 *psSectorX, INT16 *psSectorY, INT8 *p bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; //loop through all the mercs and find one that is moving - for ( pSoldier = MercPtrs[ sSoldierCnt ]; sSoldierCnt <= bLastTeamID; sSoldierCnt++,pSoldier++) + for ( ; sSoldierCnt <= bLastTeamID; ++sSoldierCnt ) { + pSoldier = sSoldierCnt; if( pSoldier && pSoldier->bActive ) { //we found an alive, merc that is not moving diff --git a/Ja2/gamescreen.cpp b/Ja2/gamescreen.cpp index e4f9046d..89b01fb7 100644 --- a/Ja2/gamescreen.cpp +++ b/Ja2/gamescreen.cpp @@ -1030,10 +1030,7 @@ void DisableFPSOverlay( BOOLEAN fEnable ) void TacticalScreenLocateToSoldier( ) { - INT32 cnt; - SOLDIERTYPE *pSoldier; - UINT16 bLastTeamID; - BOOLEAN fPreferedGuyUsed = FALSE; + BOOLEAN fPreferedGuyUsed = FALSE; if ( gubPreferredInitialSelectedGuy != NOBODY ) { @@ -1050,14 +1047,14 @@ void TacticalScreenLocateToSoldier( ) if ( !fPreferedGuyUsed ) { // Set locator to first merc - cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= bLastTeamID; cnt++,pSoldier++) + SoldierID Soldier = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + SoldierID bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; + for ( ; Soldier <= bLastTeamID; ++Soldier) { - if ( OK_CONTROLLABLE_MERC( pSoldier ) && OK_INTERRUPT_MERC( pSoldier ) ) + if ( OK_CONTROLLABLE_MERC( Soldier ) && OK_INTERRUPT_MERC( Soldier ) ) { - LocateSoldier( pSoldier->ubID, 10 ); - SelectSoldier( pSoldier->ubID, FALSE, TRUE ); + LocateSoldier( Soldier, 10 ); + SelectSoldier( Soldier, FALSE, TRUE ); break; } } @@ -1075,22 +1072,17 @@ void EnterMapScreen( ) void UpdateTeamPanelAssignments( ) { - INT32 cnt; - SOLDIERTYPE *pSoldier; - UINT16 bLastTeamID; - // Remove all players RemoveAllPlayersFromSlot( ); // Set locator to first merc - cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= bLastTeamID; cnt++,pSoldier++) + SoldierID Soldier = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + SoldierID bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; + for ( ; Soldier <= bLastTeamID; ++Soldier) { // Setup team interface - CheckForAndAddMercToTeamPanel( pSoldier ); + CheckForAndAddMercToTeamPanel( Soldier ); } - } diff --git a/Strategic/strategicmap.cpp b/Strategic/strategicmap.cpp index b5908ecf..ff7e2edc 100644 --- a/Strategic/strategicmap.cpp +++ b/Strategic/strategicmap.cpp @@ -7541,16 +7541,15 @@ void HandleMovingTheEnemiesToBeNearPlayerWhenEnteringComplexMap( ) //if the player made a 'noise' going through the gate at the end of the tunnel sector if ( gJa25SaveStruct.uiJa25GeneralFlags & JA_GF__DID_PLAYER_MAKE_SOUND_GOING_THROUGH_TUNNEL_GATE ) { - UINT8 cnt; - // //Move some of the enemies to be 'near' them player when the enter the room // // Loop through the list and move some of the enemies - cnt = gTacticalStatus.Team[ENEMY_TEAM].bFirstID; - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[ENEMY_TEAM].bLastID; cnt++, pSoldier++ ) + SoldierID cnt = gTacticalStatus.Team[ENEMY_TEAM].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[ENEMY_TEAM].bLastID; ++cnt) { + pSoldier = cnt; //if the soldier is active, if ( pSoldier->bActive ) { @@ -7581,8 +7580,9 @@ void HandleMovingTheEnemiesToBeNearPlayerWhenEnteringComplexMap( ) while ( ubNumEnemiesMoved < 3 ) { cnt = gTacticalStatus.Team[ENEMY_TEAM].bFirstID; - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[ENEMY_TEAM].bLastID; cnt++, pSoldier++ ) + for ( ; cnt <= gTacticalStatus.Team[ENEMY_TEAM].bLastID; ++cnt ) { + pSoldier = cnt; //if the soldier is active, if ( pSoldier->bActive && pSoldier->sGridNo != 15705 && pSoldier->sGridNo != 15712 && pSoldier->sGridNo != 15233 ) {