diff --git a/Strategic/Ja25 Strategic Ai.h b/Strategic/Ja25 Strategic Ai.h index a329bfdf..705959cf 100644 --- a/Strategic/Ja25 Strategic Ai.h +++ b/Strategic/Ja25 Strategic Ai.h @@ -66,11 +66,11 @@ typedef struct BOOLEAN fEnemyShouldImmediatelySeekThePlayer; INT8 bSectorTheEnemyWillSeekEnemy; - INT8 bNewMercProfileIDForSayingMorrisNote; + UINT8 usFiller1; UINT8 ubDisplayCommanderMorrisNote; - UINT16 usFiller1; + INT16 bNewMercProfileIDForSayingMorrisNote; UINT32 uiTurnLastSaidSeeEnemyQuote; diff --git a/Strategic/strategicmap.cpp b/Strategic/strategicmap.cpp index d5141eac..acd40e7e 100644 --- a/Strategic/strategicmap.cpp +++ b/Strategic/strategicmap.cpp @@ -6897,15 +6897,14 @@ typedef struct void HandlePlayerTeamQuotesWhenEnteringSector( INT16 sSectorX, INT16 sSectorY, INT16 sSectorZ ) { - UINT32 uiCnt; - INT8 bNumValidMercs = -1; + UINT32 uiCnt; + UINT8 usNumValidMercs = 0; INT32 iSectorID = SECTOR( sSectorX, sSectorY ); UINT8 ubValidMercProfileIDArray[NUM_MERCS_WITH_NEW_QUOTES]; SOLDIERTYPE *pSoldier = NULL; - - - #define NUM_VALID_SECTORS 6 - #define DELAY_FOR_PLAYER_DESC_OF_SECTOR 2 + +#define NUM_VALID_SECTORS 6 +#define DELAY_FOR_PLAYER_DESC_OF_SECTOR 2 ENTER_SECTOR_PLAYER_QUOTE PlayerSectorDescQuote[ NUM_VALID_SECTORS ] = { @@ -6929,7 +6928,7 @@ void HandlePlayerTeamQuotesWhenEnteringSector( INT16 sSectorX, INT16 sSectorY, I }; //loop through all the sectors that have the quotes - for ( uiCnt = 0; uiCnt -1 ) + DelayedMercQuote( (UINT16)sMercToSayQuote, PlayerSectorDescQuote[ uiCnt ].ubQuoteNum, GetWorldTotalSeconds() + DELAY_FOR_PLAYER_DESC_OF_SECTOR ); } /* switch ( iSectorID ) @@ -7112,8 +7109,6 @@ void HandlePlayerTeamQuotesWhenEnteringSector( INT16 sSectorX, INT16 sSectorY, I void HandlePlayerQuotesWhenEnteringFirstTunnelSector( ) { - UINT8 ubID; - //if the player got through using the timed method if ( gJa25SaveStruct.ubHowPlayerGotThroughFan == PG__PLAYER_STOPPED_FAN_TO_GET_THROUGH ) { @@ -7121,38 +7116,34 @@ void HandlePlayerQuotesWhenEnteringFirstTunnelSector( ) UINT8 ubNumPlayersOnTeam = NumberOfMercsOnPlayerTeam( ); //Get a random qualified merc to say the quote - ubID = RandomSoldierIdFromNewMercsOnPlayerTeam( ); + INT16 bID = RandomSoldierIdFromNewMercsOnPlayerTeam( ); //if there is no valid merc - if ( ubID == -1 ) + if ( bID == -1 ) return; //if not all the players made it through if ( ubNumPlayersInSector < ubNumPlayersOnTeam ) { // TacticalCharacterDialogue( &Menptr[ ubID ], QUOTE_CONTRACTS_OVER ); - DelayedMercQuote( Menptr[ubID].ubProfile, QUOTE_CONTRACTS_OVER, GetWorldTotalSeconds( ) + DELAY_FOR_PLAYER_DESC_OF_SECTOR ); + DelayedMercQuote( Menptr[bID].ubProfile, QUOTE_CONTRACTS_OVER, GetWorldTotalSeconds( ) + DELAY_FOR_PLAYER_DESC_OF_SECTOR ); } //if ALL mercs made it through else if ( ubNumPlayersInSector == ubNumPlayersOnTeam ) { - DelayedMercQuote( Menptr[ubID].ubProfile, QUOTE_CONTRACT_ACCEPTANCE, GetWorldTotalSeconds( ) + DELAY_FOR_PLAYER_DESC_OF_SECTOR ); + DelayedMercQuote( Menptr[bID].ubProfile, QUOTE_CONTRACT_ACCEPTANCE, GetWorldTotalSeconds( ) + DELAY_FOR_PLAYER_DESC_OF_SECTOR ); // TacticalCharacterDialogue( &Menptr[ ubID ], QUOTE_CONTRACT_ACCEPTANCE ); } } - - else if ( gJa25SaveStruct.ubHowPlayerGotThroughFan == PG__PLAYER_BLEW_UP_FAN_TO_GET_THROUGH ) + /*else if ( gJa25SaveStruct.ubHowPlayerGotThroughFan == PG__PLAYER_BLEW_UP_FAN_TO_GET_THROUGH ) { - /* Chnaged to be played when fan blows up //Get a random qualified merc to say the quote ubID = RandomSoldierIdFromNewMercsOnPlayerTeam(); DelayedMercQuote( Menptr[ ubID ].ubProfile, QUOTE_ACCEPT_CONTRACT_RENEWAL, GetWorldTotalSeconds() + DELAY_FOR_PLAYER_DESC_OF_SECTOR ); - */ - } - + }*/ else { Assert( 0 ); diff --git a/Tactical/Dialogue Control.cpp b/Tactical/Dialogue Control.cpp index 74a9c934..24f98aaa 100644 --- a/Tactical/Dialogue Control.cpp +++ b/Tactical/Dialogue Control.cpp @@ -734,7 +734,7 @@ void HandleDialogue( ) if( ubNumQualifiedMercs != 0 ) { //loop through all the mercs - for( ubCnt=0; ubCntubCharacterNum; ExecuteCharacterDialogue( QItem->ubCharacterNum, QItem->usQuoteNum, QItem->iFaceIndex, QItem->bUIHandlerID, QItem->fFromSoldier ); - } if ( QItem->uiSpecialEventFlag & DIALOGUE_SPECIAL_EVENT_ENABLE_AI ) @@ -3911,7 +3908,7 @@ void HandlePlayerClosingMorrisNoteDisplayedOnScreen() } else { - DelayedMercQuote( gJa25SaveStruct.bNewMercProfileIDForSayingMorrisNote, DQ__MORRIS_NOTE_DISPLAY_NOTE_1, GetWorldTotalSeconds() + 1 ); + DelayedMercQuote( (UINT16)(gJa25SaveStruct.bNewMercProfileIDForSayingMorrisNote), DQ__MORRIS_NOTE_DISPLAY_NOTE_1, GetWorldTotalSeconds() + 1 ); } } #endif diff --git a/Tactical/Interface Dialogue.cpp b/Tactical/Interface Dialogue.cpp index 897c83f7..ac89aecb 100644 --- a/Tactical/Interface Dialogue.cpp +++ b/Tactical/Interface Dialogue.cpp @@ -5188,39 +5188,22 @@ void CarmenLeavesSectorCallback( void ) #ifdef JA2UB //JA25 UB - void PerformJerryMiloAction301() { UINT8 ubMercsPresent[NUM_MERCS_WITH_NEW_QUOTES]; - INT8 bNumMercsPresent=-1; + UINT8 usNumMercsPresent; SOLDIERTYPE *pSoldier=NULL; - INT32 cnt; UINT8 ubId; //Get the number and array of the new soldiers - bNumMercsPresent = GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( ubMercsPresent, NULL ); + usNumMercsPresent = GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( ubMercsPresent, NULL ); - -//Randomly choose one -/* //if there is at least 1 of the desired mercs found - if( bNumMercsPresent != -1 ) - { - ubId = ubMercsPresent[ Random( bNumMercsPresent ) ]; - - pSoldier = MercPtrs[ ubId ]; - - TacticalCharacterDialogue( pSoldier, QUOTE_DEATH_RATE_REFUSAL ); - } -*/ //Have them all say their quote - - for( cnt=0; cnt 0 ) { UINT8 ubProfileID = NO_PROFILE; UINT8 ubIdOfMercWhoSaidQuote; - ubIdOfMercWhoSaidQuote = Random( bNumMercsPresent ); - ubId = ubMercsPresent[ ubIdOfMercWhoSaidQuote ]; + ubIdOfMercWhoSaidQuote = Random( usNumMercsPresent ); + UINT8 ubId = ubMercsPresent[ ubIdOfMercWhoSaidQuote ]; - pSoldier = MercPtrs[ ubId ]; + SOLDIERTYPE* pSoldier = MercPtrs[ ubId ]; TacticalCharacterDialogue( pSoldier, QUOTE_LAME_REFUSAL ); - if( bNumMercsPresent == 1 ) + if( usNumMercsPresent == 1 ) ubProfileID = MercPtrs[ ubId ]->ubProfile; else { @@ -5263,7 +5244,7 @@ void PerformJerryMiloAction302() while( !fDone ) { - ubProfileID = Random( bNumMercsPresent ); + ubProfileID = Random( usNumMercsPresent ); if( ubProfileID != ubIdOfMercWhoSaidQuote ) { @@ -5276,8 +5257,7 @@ void PerformJerryMiloAction302() } //Say the quote in 15 seconds - DelayedMercQuote( ubProfileID, QUOTE_DEPARTING_COMMENT_CONTRACT_NOT_RENEWED_OR_48_OR_MORE, GetWorldTotalSeconds( ) + 15 ); - + DelayedMercQuote( ubProfileID, QUOTE_DEPARTING_COMMENT_CONTRACT_NOT_RENEWED_OR_48_OR_MORE, GetWorldTotalSeconds( ) + 15 ); } //handle the merc arrives quotes now @@ -5388,7 +5368,7 @@ void HandleSpecificQuoteWhenLeavingNpcTalkMenu() void HaveQualifiedMercSayQuoteAboutNpcWhenLeavingTalkScreen( UINT8 ubNpcProfileID, UINT32 uiQuoteNum ) { - INT8 bNumMercsPresent=-1; + UINT8 usNumMercsPresent; UINT8 SoldierIdArray[NUM_MERCS_WITH_NEW_QUOTES]; UINT8 ValidSoldierIdArray[NUM_MERCS_WITH_NEW_QUOTES] = {0}; UINT8 ubNumValidSoldiers=0; @@ -5403,17 +5383,16 @@ void HaveQualifiedMercSayQuoteAboutNpcWhenLeavingTalkScreen( UINT8 ubNpcProfileI } //Get the number and array of the new soldiers - bNumMercsPresent = GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( SoldierIdArray, NULL ); + usNumMercsPresent = GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( SoldierIdArray, NULL ); //if the player doesnt have any qualified players on the team - if( bNumMercsPresent == -1 ) + if( !usNumMercsPresent ) { return; } - //loop through the mercs and see if there in range of the dealer - for( ubCnt=0; ubCntsGridNo, 0, 0, (UINT8)MaxDistanceVisible(), TRUE ) ) { ValidSoldierIdArray[ ubNumValidSoldiers ] = pSoldier->ubID; - ubNumValidSoldiers++; + ++ubNumValidSoldiers; } } diff --git a/Tactical/Ja25_Tactical.cpp b/Tactical/Ja25_Tactical.cpp index 46020e3a..c4b1ede2 100644 --- a/Tactical/Ja25_Tactical.cpp +++ b/Tactical/Ja25_Tactical.cpp @@ -259,7 +259,6 @@ void Old_UB_Inventory () MORRIS_INSTRUCTION_NOTE = 336; } - void New_UB_Inventory () { //inshy: chenge index of items to 1.13 version. Now we dont need Items.xml in UB-113 folder @@ -390,7 +389,6 @@ void InitGridNoUB() CALICO_950_UB = gGameUBOptions.ubCALICO_950_UB; CALICO_900_UB = gGameUBOptions.ubCALICO_900_UB; } - BOOLEAN IsSoldierQualifiedMerc( SOLDIERTYPE *pSoldier ) { @@ -411,7 +409,6 @@ BOOLEAN IsSoldierQualifiedMerc( SOLDIERTYPE *pSoldier ) } } - BOOLEAN IsSoldierQualifiedMercForSeeingPowerGenFan( SOLDIERTYPE *pSoldier ) { if( pSoldier->ubProfile == MANUEL_UB ||//MANUEL || @@ -428,7 +425,6 @@ BOOLEAN IsSoldierQualifiedMercForSeeingPowerGenFan( SOLDIERTYPE *pSoldier ) } } - BOOLEAN IsSoldierQualifiedGunCommenterMerc( SOLDIERTYPE *pSoldier ) { if( pSoldier->ubProfile == GASTON_UB || // GASTON @@ -445,7 +441,6 @@ BOOLEAN IsSoldierQualifiedGunCommenterMerc( SOLDIERTYPE *pSoldier ) } } - BOOLEAN IsSoldierQualifiedInitialHireMerc( SOLDIERTYPE *pSoldier ) { if( pSoldier->ubProfile == GASTON_UB || // GASTON @@ -461,13 +456,10 @@ BOOLEAN IsSoldierQualifiedInitialHireMerc( SOLDIERTYPE *pSoldier ) } } - - -INT8 GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( UINT8 *pSoldierIdArray, UINT8 *pProfileIdArray ) +UINT8 GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( UINT8 *pSoldierIdArray, UINT8 *pProfileIdArray ) { SOLDIERTYPE *pSoldier=NULL; - INT32 cnt; - INT8 bNumMercsPresent=0; + UINT8 usNumMercsPresent=0; if( pSoldierIdArray ) memset( pSoldierIdArray, NOBODY, NUM_MERCS_WITH_NEW_QUOTES ); @@ -475,10 +467,10 @@ INT8 GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( UINT8 *pSoldierIdArra if( pProfileIdArray ) memset( pProfileIdArray, NO_PROFILE, NUM_MERCS_WITH_NEW_QUOTES ); - cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; + INT32 cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; //Check to see if Gaston, Stogie or the PGC is on the team - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; cnt++,pSoldier++) + for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt, ++pSoldier ) { //if the merc is alive, in sector, etc... //Note: cant do the OK_CONTROLLABLE_MERC() cause it does bInSector which is not set when EnterSector is finshed ( we need it then ) @@ -506,30 +498,28 @@ INT8 GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( UINT8 *pSoldierIdArra pSoldierIdArray[ bNumMercsPresent ] = pSoldier->ubID; } - bNumMercsPresent++; + ++usNumMercsPresent; } } } - return( bNumMercsPresent ); + return usNumMercsPresent; } - - -INT8 RandomProfileIdFromNewMercsOnPlayerTeam() +INT16 RandomProfileIdFromNewMercsOnPlayerTeam() { - INT8 bNumMercsPresent=-1; - UINT8 ProfileIdArray[NUM_MERCS_WITH_NEW_QUOTES]; + UINT8 usNumMercsPresent; + UINT8 ProfileIdArray[NUM_MERCS_WITH_NEW_QUOTES]; //Get the number and array of the new soldiers - bNumMercsPresent = GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( NULL, ProfileIdArray ); + usNumMercsPresent = GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( NULL, ProfileIdArray ); - Assert( bNumMercsPresent < NUM_MERCS_WITH_NEW_QUOTES ); + Assert( usNumMercsPresent < NUM_MERCS_WITH_NEW_QUOTES ); - if( bNumMercsPresent != 0 ) + if( usNumMercsPresent > 0 ) { //return a random merc from the array - return( ProfileIdArray[ Random( bNumMercsPresent ) ] ); + return( (INT16)(ProfileIdArray[ Random( usNumMercsPresent ) ]) ); } else { @@ -537,21 +527,20 @@ INT8 RandomProfileIdFromNewMercsOnPlayerTeam() } } - -INT8 RandomSoldierIdFromNewMercsOnPlayerTeam() +INT16 RandomSoldierIdFromNewMercsOnPlayerTeam() { - INT8 bNumMercsPresent=-1; + UINT8 usNumMercsPresent; UINT8 SoldierIdArray[NUM_MERCS_WITH_NEW_QUOTES]; //Get the number and array of the new soldiers - bNumMercsPresent = GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( SoldierIdArray, NULL ); + usNumMercsPresent = GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( SoldierIdArray, NULL ); - Assert( bNumMercsPresent < NUM_MERCS_WITH_NEW_QUOTES ); + Assert( usNumMercsPresent < NUM_MERCS_WITH_NEW_QUOTES ); - if( bNumMercsPresent != 0 ) + if( usNumMercsPresent > 0 ) { //return a random merc from the array - return( SoldierIdArray[ Random( bNumMercsPresent ) ] ); + return( (INT16)( SoldierIdArray[ Random( usNumMercsPresent ) ] )); } else { @@ -559,13 +548,11 @@ INT8 RandomSoldierIdFromNewMercsOnPlayerTeam() } } - -INT8 RandomArrayOfQualifiedMercs( UINT8 *pRandomSoldierIdArray ) +UINT8 RandomArrayOfQualifiedMercs( UINT8 *pRandomSoldierIdArray ) { - INT8 bNumMercsPresent=-1; - UINT8 SoldierIdArray[NUM_MERCS_WITH_NEW_QUOTES]; + UINT8 usNumMercsPresent; + UINT8 SoldierIdArray[NUM_MERCS_WITH_NEW_QUOTES]; BOOLEAN UsedArray[NUM_MERCS_WITH_NEW_QUOTES]; - UINT8 ubCnt; BOOLEAN fFound=FALSE; UINT8 ubRand; @@ -573,21 +560,21 @@ INT8 RandomArrayOfQualifiedMercs( UINT8 *pRandomSoldierIdArray ) memset( pRandomSoldierIdArray, NOBODY, NUM_MERCS_WITH_NEW_QUOTES ); //Get the number and array of the new soldiers - bNumMercsPresent = GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( SoldierIdArray, NULL ); + usNumMercsPresent = GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( SoldierIdArray, NULL ); Assert( bNumMercsPresent < NUM_MERCS_WITH_NEW_QUOTES ); - if( bNumMercsPresent != 0 ) + if( usNumMercsPresent > 0 ) { //loop through all the available mercs - for( ubCnt=0; ubCnt= 1 && pSoldierId1 != NULL ) + + if( usNumMercs >= 1 && pSoldierId1 != NULL ) { *pSoldierId1 = RandomSoldierIdArray[ 0 ]; ubNumberDifMercsAssigned++; } - if( bNumMercs >= 2 && pSoldierId2 != NULL ) + if( usNumMercs >= 2 && pSoldierId2 != NULL ) { *pSoldierId2 = RandomSoldierIdArray[ 1 ]; ubNumberDifMercsAssigned++; @@ -642,12 +628,12 @@ UINT8 Get3RandomQualifiedMercs( UINT8 *pSoldierId1, UINT8 *pSoldierId2, UINT8 *p if( pSoldierId3 != NULL ) { - if( bNumMercs >= 3 ) + if( usNumMercs >= 3 ) { *pSoldierId3 = RandomSoldierIdArray[ 2 ]; ubNumberDifMercsAssigned++; } - else if( bNumMercs >= 2 ) + else if( usNumMercs >= 2 ) { if( Chance( 50 ) ) *pSoldierId3 = RandomSoldierIdArray[ 1 ]; @@ -659,7 +645,6 @@ UINT8 Get3RandomQualifiedMercs( UINT8 *pSoldierId1, UINT8 *pSoldierId2, UINT8 *p return( ubNumberDifMercsAssigned ); } - void HandleWhenCertainPercentageOfEnemiesDie() { UINT32 uiPercentEnemiesKilled; @@ -685,10 +670,10 @@ void HandleWhenCertainPercentageOfEnemiesDie() //all enemies are dead and if the quote hasnt been said yet if( uiPercentEnemiesKilled >= 100 && !( gJa25SaveStruct.uiJa25GeneralFlags & JA_GF__ALL_DEAD_TOP_LEVEL_OF_COMPLEX ) ) { - INT8 bProfile = RandomProfileIdFromNewMercsOnPlayerTeam(); + INT16 bProfile = RandomProfileIdFromNewMercsOnPlayerTeam(); if( bProfile != -1 ) - DelayedMercQuote( bProfile, QUOTE_WONT_RENEW_CONTRACT_LAME_REFUSAL, GetWorldTotalSeconds() + 5 ); + DelayedMercQuote( (UINT16)bProfile, QUOTE_WONT_RENEW_CONTRACT_LAME_REFUSAL, GetWorldTotalSeconds() + 5 ); gJa25SaveStruct.uiJa25GeneralFlags |= JA_GF__ALL_DEAD_TOP_LEVEL_OF_COMPLEX; } @@ -885,7 +870,7 @@ void HandlePowerGenAlarm() // if( gubFact[ FACT_PLAYER_KNOWS_ABOUT_FAN_STOPPING ] ) { - INT8 bID = RandomSoldierIdFromNewMercsOnPlayerTeam(); + INT16 bID = RandomSoldierIdFromNewMercsOnPlayerTeam(); if( bID != -1 ) { @@ -971,10 +956,8 @@ BOOLEAN HandlePlayerSayingQuoteWhenFailingToOpenGateInTunnel( SOLDIERTYPE *pSold { INT8 bSlot; UINT32 cnt; - UINT8 ubID; SOLDIERTYPE *pSoldier; - - + //is this the right sector K14-1 if( !( gWorldSectorX == SECTOR_OPEN_GATE_IN_TUNNEL_X && gWorldSectorY == SECTOR_OPEN_GATE_IN_TUNNEL_Y && gbWorldSectorZ == SECTOR_OPEN_GATE_IN_TUNNEL_Z ) ) { @@ -1008,12 +991,12 @@ BOOLEAN HandlePlayerSayingQuoteWhenFailingToOpenGateInTunnel( SOLDIERTYPE *pSold } } - ubID = RandomSoldierIdFromNewMercsOnPlayerTeam(); + INT16 bID = RandomSoldierIdFromNewMercsOnPlayerTeam(); - if( ubID != -1 ) + if( bID != -1 ) { //have the merc say the quote about the tough gate - TacticalCharacterDialogue( &Menptr[ ubID ], QUOTE_IMPATIENT_QUOTE ); + TacticalCharacterDialogue( &Menptr[ bID ], QUOTE_IMPATIENT_QUOTE ); } //remeber we said the quote @@ -1077,26 +1060,23 @@ void HandlePlayingQuoteWhenHiringNpc( UINT8 ubProfile ) } else if ( ubProfile == TEX_UB ) //TEX: SayQuoteFromAllNewHiredMercButDoGastonLast( ubProfile, QUOTE_DEATH_RATE_RENEWAL ); - - } BOOLEAN SayQuoteFromAllNewHiredMercButDoGastonLast( UINT8 ubProfile, UINT32 uiQuoteNum ) { - INT8 bNumMercsPresent=-1; + UINT8 usNumMercsPresent; UINT8 SoldierIdArray[NUM_MERCS_WITH_NEW_QUOTES]; - INT32 iCnt; SOLDIERTYPE *pSoldier=NULL; //Get an array of the mercs on the team - bNumMercsPresent = GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( SoldierIdArray, NULL ); + usNumMercsPresent = GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( SoldierIdArray, NULL ); - if( bNumMercsPresent == -1 ) + if( !usNumMercsPresent ) { return( FALSE ); } - for( iCnt=0; iCntubProfile, DQ__NEW_MERC_SAY_NOTE_QUOTES, GetWorldTotalSeconds()+1 ); } - //else if there is a new merc on the team else if( bID != -1 ) { @@ -1373,7 +1350,6 @@ void HandlePickingUpMorrisInstructionNote( SOLDIERTYPE *pSoldier, INT32 iIndex ) DelayedMercQuote( NOBODY, DQ__MORRIS_NOTE_NEW_MERC_DELAY, uiTime ); } - else { // @@ -1897,8 +1873,6 @@ void DisplayCommanderMorrisNote( SOLDIERTYPE *pSoldier ) void HandleCommanderMorrisNewMercWantsNoteDelayedSpeech() { - INT8 bID=-1; - //if the note has already been picked up by a new merc, or the note has been displayed if( gJa25SaveStruct.ubMorrisNoteState == MN__PICKED_UP_BY_NEW_MERC || gJa25SaveStruct.ubMorrisNoteState == MN__FINISHED ) @@ -1907,7 +1881,7 @@ void HandleCommanderMorrisNewMercWantsNoteDelayedSpeech() } //if the original merc who said the quote is valid - bID = gJa25SaveStruct.bNewMercProfileIDForSayingMorrisNote; + INT16 bID = gJa25SaveStruct.bNewMercProfileIDForSayingMorrisNote; if( bID != -1 && IsSoldierQualifiedMerc( &Menptr[ bID ] ) ) { } diff --git a/Tactical/Ja25_Tactical.h b/Tactical/Ja25_Tactical.h index e5fe2fb6..4f086238 100644 --- a/Tactical/Ja25_Tactical.h +++ b/Tactical/Ja25_Tactical.h @@ -36,9 +36,9 @@ typedef struct */ extern BOOLEAN gfFirstTimeInGameHeliCrash; -INT8 RandomProfileIdFromNewMercsOnPlayerTeam(); -INT8 RandomSoldierIdFromNewMercsOnPlayerTeam(); -INT8 GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( UINT8 *pSoldierIdArray, UINT8 *pProfileIdArray ); +INT16 RandomProfileIdFromNewMercsOnPlayerTeam(); +INT16 RandomSoldierIdFromNewMercsOnPlayerTeam(); +UINT8 GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( UINT8 *pSoldierIdArray, UINT8 *pProfileIdArray ); BOOLEAN IsSoldierQualifiedMerc( SOLDIERTYPE *pSoldier ); BOOLEAN IsSoldierQualifiedInitialHireMerc( SOLDIERTYPE *pSoldier ); BOOLEAN IsSoldierQualifiedMercForSeeingPowerGenFan( SOLDIERTYPE *pSoldier ); @@ -47,7 +47,7 @@ BOOLEAN SayQuoteFromAllNewHiredMercButDoGastonLast( UINT8 ubProfile, UINT32 uiQu //Pass in an array of size NUM_MERCS_WITH_NEW_QUOTES, array will be filled with //random soldier IDs of the qualified mercs -INT8 RandomArrayOfQualifiedMercs( UINT8 *pRandomSoldierIdArray ); +UINT8 RandomArrayOfQualifiedMercs( UINT8 *pRandomSoldierIdArray ); extern UINT8 Get3RandomQualifiedMercs( UINT8 *pSoldierId1, UINT8 *pSoldierId2, UINT8 *pSoldierId3 ); diff --git a/Tactical/Overhead.cpp b/Tactical/Overhead.cpp index 5e1213c2..5ea8a491 100644 --- a/Tactical/Overhead.cpp +++ b/Tactical/Overhead.cpp @@ -414,7 +414,7 @@ UINT8 NumEnemyInSectorNotDeadOrDying( ); UINT8 NumBloodcatsInSectorNotDeadOrDying( ); UINT8 gubWaitingForAllMercsToExitCode = 0; -INT8 gbNumMercsUntilWaitingOver = 0; +UINT8 gusNumMercsUntilWaitingOver = 0; UINT32 guiWaitingForAllMercsToExitData[3]; UINT32 guiWaitingForAllMercsToExitTimer = 0; BOOLEAN gfKillingGuysForLosingBattle = FALSE; @@ -1359,7 +1359,7 @@ BOOLEAN ExecuteOverhead( ) else if ( pSoldier->ubWaitActionToDo == 1 ) { pSoldier->ubWaitActionToDo = 0; - gbNumMercsUntilWaitingOver--; + gusNumMercsUntilWaitingOver = max(0, gusNumMercsUntilWaitingOver - 1); pSoldier->SoldierGotoStationaryStance( ); // If we are at an exit-grid, make disappear..... if ( gubWaitingForAllMercsToExitCode == WAIT_FOR_MERCS_TO_WALK_TO_GRIDNO ) @@ -1915,7 +1915,7 @@ BOOLEAN ExecuteOverhead( ) #ifdef JA2BETAVERSION ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_DEBUG, L"Waiting too long for Mercs to exit...forcing entry." ); #endif - gbNumMercsUntilWaitingOver = 0; + gusNumMercsUntilWaitingOver = 0; // Reset all waitng codes for ( cnt = 0; cnt < guiNumMercSlots; cnt++ ) @@ -1929,12 +1929,11 @@ BOOLEAN ExecuteOverhead( ) } } - if ( gbNumMercsUntilWaitingOver == 0 ) + if ( gusNumMercsUntilWaitingOver == 0 ) { // ATE: Unset flag to ignore sight... gTacticalStatus.uiFlags &= ( ~DISALLOW_SIGHT ); - // OK cheif, do something here.... switch( gubWaitingForAllMercsToExitCode ) { @@ -3807,28 +3806,24 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld ) #ifdef JA2UB if ( pSoldierOld->ubProfile == MORRIS_UB ) { - { - INT8 bSoldierID; - SOLDIERTYPE * pOther; + INT16 bSoldierID; + SOLDIERTYPE* pOther = FindSoldierByProfileID( MORRIS_UB, FALSE ); + if ( pOther ) + { + OBJECTTYPE Object; + CreateItem( MORRIS_INSTRUCTION_NOTE, 100, &Object ); + AutoPlaceObject( pOther, &Object, TRUE ); + } - pOther = FindSoldierByProfileID( MORRIS_UB, FALSE ); - if ( pOther ) - { - OBJECTTYPE Object; - CreateItem( MORRIS_INSTRUCTION_NOTE, 100, &Object ); - AutoPlaceObject( pOther, &Object, TRUE ); - } - - //Geta a random soldier ID - bSoldierID = RandomSoldierIdFromNewMercsOnPlayerTeam(); + //Geta a random soldier ID + bSoldierID = RandomSoldierIdFromNewMercsOnPlayerTeam(); - //if there is any - if( bSoldierID != -1 ) - { - //say the MORRIS dead quote - TacticalCharacterDialogue( &Menptr[ bSoldierID ], QUOTE_LEARNED_TO_HATE_ON_TEAM_WONT_RENEW ); - } - } + //if there is any + if( bSoldierID != -1 ) + { + //say the MORRIS dead quote + TacticalCharacterDialogue( &Menptr[ bSoldierID ], QUOTE_LEARNED_TO_HATE_ON_TEAM_WONT_RENEW ); + } } // Ja25no queen #else @@ -9682,10 +9677,10 @@ void ResetAllMercSpeeds( ) } -void SetActionToDoOnceMercsGetToLocation( UINT8 ubActionCode, INT8 bNumMercsWaiting, UINT32 uiData1, UINT32 uiData2, UINT32 uiData3 ) +void SetActionToDoOnceMercsGetToLocation( UINT8 ubActionCode, UINT8 uiNumMercsWaiting, UINT32 uiData1, UINT32 uiData2, UINT32 uiData3 ) { - gubWaitingForAllMercsToExitCode = ubActionCode; - gbNumMercsUntilWaitingOver = bNumMercsWaiting; + gubWaitingForAllMercsToExitCode = ubActionCode; + gusNumMercsUntilWaitingOver = uiNumMercsWaiting; guiWaitingForAllMercsToExitData[ 0 ] = uiData1; guiWaitingForAllMercsToExitData[ 1 ] = uiData2; guiWaitingForAllMercsToExitData[ 2 ] = uiData3; @@ -9695,7 +9690,6 @@ void SetActionToDoOnceMercsGetToLocation( UINT8 ubActionCode, INT8 bNumMercsWa // ATE: Set flag to ignore sight... gTacticalStatus.uiFlags |= ( DISALLOW_SIGHT ); - } void HandleBloodForNewGridNo( SOLDIERTYPE *pSoldier ) diff --git a/Tactical/Overhead.h b/Tactical/Overhead.h index edb854ee..7bde6d19 100644 --- a/Tactical/Overhead.h +++ b/Tactical/Overhead.h @@ -282,7 +282,7 @@ void CycleThroughKnownEnemies( BOOLEAN backward = FALSE ); BOOLEAN CheckForEndOfCombatMode( BOOLEAN fIncrementTurnsNotSeen ); SOLDIERTYPE * FreeUpAttacker( ); BOOLEAN PlayerTeamFull( ); -void SetActionToDoOnceMercsGetToLocation( UINT8 ubActionCode, INT8 bNumMercsWaiting, UINT32 uiData1, UINT32 uiData2, UINT32 uiData3 ); +void SetActionToDoOnceMercsGetToLocation( UINT8 ubActionCode, UINT8 uiNumMercsWaiting, UINT32 uiData1, UINT32 uiData2, UINT32 uiData3 ); void ResetAllMercSpeeds( ); BOOLEAN HandleGotoNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving, BOOLEAN fInitialMove, UINT16 usAnimState ); SOLDIERTYPE * ReduceAttackBusyCount( ); diff --git a/Tactical/ShopKeeper Interface.cpp b/Tactical/ShopKeeper Interface.cpp index 2dca4a09..5756d58d 100644 --- a/Tactical/ShopKeeper Interface.cpp +++ b/Tactical/ShopKeeper Interface.cpp @@ -1179,14 +1179,12 @@ BOOLEAN ExitShopKeeperInterface() //if the laptop was just fixed if( gubQuest[ QUEST_FIX_LAPTOP ] == QUESTDONE && !( gJa25SaveStruct.uiJa25GeneralFlags & JA_GF__PLAYER_SAID_LAPTOP_FIXED_QUOTE ) ) - { - INT8 bSoldierID=-1; - + { //Have a new merc say a quote - bSoldierID = RandomSoldierIdFromNewMercsOnPlayerTeam(); - if( bSoldierID != -1 ) + INT16 bSoldierID = RandomSoldierIdFromNewMercsOnPlayerTeam(); + if( bSoldierID > -1 ) { - TacticalCharacterDialogue( &Menptr[ bSoldierID ], QUOTE_JA2UB_LAPTOP_FIXED ); + TacticalCharacterDialogue( &Menptr[bSoldierID], QUOTE_JA2UB_LAPTOP_FIXED ); } gJa25SaveStruct.uiJa25GeneralFlags |= JA_GF__PLAYER_SAID_LAPTOP_FIXED_QUOTE; diff --git a/Tactical/Soldier Tile.cpp b/Tactical/Soldier Tile.cpp index fcbc8360..6a9f16d8 100644 --- a/Tactical/Soldier Tile.cpp +++ b/Tactical/Soldier Tile.cpp @@ -51,15 +51,12 @@ #include "Soldier macros.h" #endif -extern INT8 gbNumMercsUntilWaitingOver; extern UINT8 gubWaitingForAllMercsToExitCode; //forward declarations of common classes to eliminate includes class OBJECTTYPE; class SOLDIERTYPE; - - #define NEXT_TILE_CHECK_DELAY 700 #ifdef JA2BETAVERSION diff --git a/Tactical/opplist.cpp b/Tactical/opplist.cpp index abcfc063..d9ba4bf8 100644 --- a/Tactical/opplist.cpp +++ b/Tactical/opplist.cpp @@ -2464,13 +2464,13 @@ void ManSeesMan(SOLDIERTYPE *pSoldier, SOLDIERTYPE *pOpponent, INT32 sOppGridNo, else if ( pSoldier->bTeam == gbPlayerNum ) { #ifdef JA2UB - if( (pOpponent->ubProfile == MORRIS_UB ) && - ( GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( NULL, NULL ) != 0 ) && - !( pSoldier->usQuoteSaidExtFlags & SOLDIER_QUOTE_SAID_EXT_MORRIS ) && - !( gMercProfiles[ MORRIS_UB ].ubMiscFlags2 & PROFILE_MISC_FLAG2_SAID_FIRSTSEEN_QUOTE ) ) - { + if ( (pOpponent->ubProfile == MORRIS_UB ) && + ( GetNumSoldierIdAndProfileIdOfTheNewMercsOnPlayerTeam( NULL, NULL ) > 0 ) && + !( pSoldier->usQuoteSaidExtFlags & SOLDIER_QUOTE_SAID_EXT_MORRIS ) && + !( gMercProfiles[ MORRIS_UB ].ubMiscFlags2 & PROFILE_MISC_FLAG2_SAID_FIRSTSEEN_QUOTE ) ) + { gfMorrisShouldSayHi = TRUE; - } + } #else if ( (pOpponent->ubProfile == MIKE) && ( pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC || pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__MERC ) && !(pSoldier->usQuoteSaidExtFlags & SOLDIER_QUOTE_SAID_EXT_MIKE) ) { diff --git a/TileEngine/Explosion Control.cpp b/TileEngine/Explosion Control.cpp index a828fcaa..987351cd 100644 --- a/TileEngine/Explosion Control.cpp +++ b/TileEngine/Explosion Control.cpp @@ -5483,7 +5483,6 @@ BOOLEAN IsFanGraphicInSectorAtThisGridNo( UINT32 sGridNo ) void HandleDestructionOfPowerGenFan() { UINT8 ubShadeLevel=0; - INT8 bID; //if we have already destroyed the fan if( gJa25SaveStruct.ubHowPlayerGotThroughFan == PG__PLAYER_BLEW_UP_FAN_TO_GET_THROUGH ) @@ -5523,13 +5522,12 @@ void HandleDestructionOfPowerGenFan() //Stop the fan sound HandleRemovingPowerGenFanSound(); - - + // // Have a qualified merc say a quote // //Get a random qualified merc to say the quote - bID = RandomSoldierIdFromNewMercsOnPlayerTeam(); + INT16 bID = RandomSoldierIdFromNewMercsOnPlayerTeam(); if( bID != -1 ) { DelayedMercQuote( Menptr[ bID ].ubProfile, QUOTE_ACCEPT_CONTRACT_RENEWAL, GetWorldTotalSeconds() + 2 ); @@ -5552,8 +5550,6 @@ void HandleExplosionsInTunnelSector( UINT32 sGridNo ) void HandleSeeingFortifiedDoor( UINT32 sGridNo ) { - INT32 sID=0; - //if this isnt the First level of the complex K15-1 if( !( gWorldSectorX == gGameUBOptions.SectorDoorInTunnelX && gWorldSectorY == gGameUBOptions.SectorDoorInTunnelY && gbWorldSectorZ == gGameUBOptions.SectorDoorInTunnelZ ) ) { @@ -5572,7 +5568,7 @@ void HandleSeeingFortifiedDoor( UINT32 sGridNo ) gJa25SaveStruct.uiJa25GeneralFlags |= JA_GF__PLAYER_HAS_SEEN_FORTIFIED_DOOR; //find out whos is the one walking across the trap - sID = WhoIsThere2( sGridNo, 0 ); + INT16 sID = WhoIsThere2( sGridNo, 0 ); if( sID != NOBODY && IsSoldierQualifiedMerc( &Menptr[ sID ] ) ) { } @@ -5591,8 +5587,6 @@ void HandleSeeingFortifiedDoor( UINT32 sGridNo ) void HandleSwitchToOpenFortifiedDoor( UINT32 sGridNo ) { - INT8 bID; - //if the door is already opened if( gJa25SaveStruct.ubStatusOfFortifiedDoor == FD__OPEN ) { @@ -5602,7 +5596,7 @@ void HandleSwitchToOpenFortifiedDoor( UINT32 sGridNo ) //remeber that the switch to open the forified door on level 1, has been pulled gJa25SaveStruct.ubStatusOfFortifiedDoor = FD__OPEN; - bID = RandomSoldierIdFromNewMercsOnPlayerTeam(); + INT16 bID = RandomSoldierIdFromNewMercsOnPlayerTeam(); if( bID != -1 ) {