From a8e62cc406e4e7d6666ece3a6e3fc9069da9f977 Mon Sep 17 00:00:00 2001 From: Flugente Date: Thu, 4 Jan 2018 15:50:31 +0000 Subject: [PATCH] - To make it easier to search for dialogue and understand what a line is supposed to mean, changed a few dialogue enums. - Merged IsMercOnTeam...(...) functions into one - Fix: during hiring, AIM mercs only complained about their hated ones if these were already in the country, thus ignoring other mercs in transit git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8512 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Laptop/AimMembers.cpp | 16 ++--- Laptop/mercs Account.cpp | 6 +- Laptop/mercs.cpp | 18 +++--- Strategic/Merc Contract.cpp | 6 +- Strategic/MilitiaSquads.cpp | 5 +- Strategic/Strategic Merc Handler.cpp | 4 +- Tactical/Dialogue Control.h | 14 ++--- Tactical/Ja25_Tactical.cpp | 8 +-- Tactical/ShopKeeper Interface.cpp | 2 +- Tactical/Soldier Add.cpp | 92 +++------------------------- Tactical/Soldier Add.h | 8 +-- Tactical/Soldier Profile.cpp | 2 +- 12 files changed, 50 insertions(+), 131 deletions(-) diff --git a/Laptop/AimMembers.cpp b/Laptop/AimMembers.cpp index b3e788db..dd1e0f07 100644 --- a/Laptop/AimMembers.cpp +++ b/Laptop/AimMembers.cpp @@ -3217,7 +3217,7 @@ BOOLEAN CanMercBeHired() continue; } - if( IsMercOnTeamAndInOmertaAlready( bMercID ) ) + if( IsMercOnTeam( bMercID, TRUE, FALSE ) ) { //if the merc hates someone on the team, see if a buddy is on the team for ( UINT8 j = 0; j< NUMBER_HATED_MERCS_ONTEAM; ++j ) @@ -3239,7 +3239,7 @@ BOOLEAN CanMercBeHired() if( bMercID < 0 ) continue; - if( IsMercOnTeam( bMercID ) && !IsMercDead( bMercID ) ) + if( IsMercOnTeam( bMercID, FALSE, FALSE ) && !IsMercDead( bMercID ) ) { if ( j == 0 ) { @@ -3282,7 +3282,7 @@ BOOLEAN CanMercBeHired() } else { - InitVideoFaceTalking(gbCurrentSoldier, QUOTE_PERSONALITY_BIAS_WITH_HATED_1 ); + InitVideoFaceTalking(gbCurrentSoldier, QUOTE_HATED_1_ON_TEAM_LONGTIMETOHATE ); fRetVal = TRUE; } } @@ -3296,8 +3296,8 @@ BOOLEAN CanMercBeHired() } else { - InitVideoFaceTalking(gbCurrentSoldier, QUOTE_PERSONALITY_BIAS_WITH_HATED_2 ); -// DelayMercSpeech( gbCurrentSoldier, QUOTE_PERSONALITY_BIAS_WITH_MERC_2, 750, TRUE, FALSE ); + InitVideoFaceTalking(gbCurrentSoldier, QUOTE_HATED_2_ON_TEAM_LONGTIMETOHATE ); +// DelayMercSpeech( gbCurrentSoldier, QUOTE_HATED_2_ON_TEAM_LONGTIMETOHATE, 750, TRUE, FALSE ); fRetVal = TRUE; } } @@ -3311,7 +3311,7 @@ BOOLEAN CanMercBeHired() } else { - InitVideoFaceTalking(gbCurrentSoldier, QUOTE_PERSONALITY_BIAS_WITH_HATED_3 ); + InitVideoFaceTalking(gbCurrentSoldier, QUOTE_HATED_3_ON_TEAM_LONGTIMETOHATE ); fRetVal = TRUE; } } @@ -3325,7 +3325,7 @@ BOOLEAN CanMercBeHired() } else { - InitVideoFaceTalking(gbCurrentSoldier, QUOTE_PERSONALITY_BIAS_WITH_HATED_4 ); + InitVideoFaceTalking(gbCurrentSoldier, QUOTE_HATED_4_ON_TEAM_LONGTIMETOHATE ); fRetVal = TRUE; } } @@ -3339,7 +3339,7 @@ BOOLEAN CanMercBeHired() } else { - InitVideoFaceTalking(gbCurrentSoldier, QUOTE_PERSONALITY_BIAS_WITH_HATED_5 ); + InitVideoFaceTalking(gbCurrentSoldier, QUOTE_HATED_5_ON_TEAM_LONGTIMETOHATE ); fRetVal = TRUE; } } diff --git a/Laptop/mercs Account.cpp b/Laptop/mercs Account.cpp index 235241aa..bad6394c 100644 --- a/Laptop/mercs Account.cpp +++ b/Laptop/mercs Account.cpp @@ -204,7 +204,7 @@ INT32 GetNumberOfHiredMercs() usMercID = GetMercIDFromMERCArray( i ); // Is the merc hired? - if( IsMercOnTeam( (UINT8)usMercID ) || gMercProfiles[ usMercID ].iMercMercContractLength != 0 ) + if( IsMercOnTeam( (UINT8)usMercID, FALSE, FALSE ) || gMercProfiles[ usMercID ].iMercMercContractLength != 0 ) { #ifdef JA2UB @@ -527,7 +527,7 @@ void DisplayHiredMercs() usMercID = GetMercIDFromMERCArray( i ); //is the merc on the team, or is owed money - if( IsMercOnTeam( (UINT8)usMercID ) || gMercProfiles[ usMercID ].iMercMercContractLength != 0 ) + if( IsMercOnTeam( (UINT8)usMercID, FALSE, FALSE ) || gMercProfiles[ usMercID ].iMercMercContractLength != 0 ) { // count the number of mercs we really hired, but only display those that should be on this page ++merccounter; @@ -616,7 +616,7 @@ void SettleMercAccounts() ubMercID = GetMercIDFromMERCArray( (UINT8) i ); //if the merc is on the team, or does the player owe money for a fired merc - if( IsMercOnTeam( ubMercID ) || ( gMercProfiles[ ubMercID ].iMercMercContractLength != 0 ) ) + if( IsMercOnTeam( ubMercID, FALSE, FALSE ) || ( gMercProfiles[ ubMercID ].iMercMercContractLength != 0 ) ) { //Calc the contract charge #ifdef JA2UB diff --git a/Laptop/mercs.cpp b/Laptop/mercs.cpp index 26ab17b4..e796b9e2 100644 --- a/Laptop/mercs.cpp +++ b/Laptop/mercs.cpp @@ -1001,10 +1001,10 @@ void DailyUpdateOfMercSite( UINT16 usDate) iNumDays = 0; //loop through all of the hired mercs from M.E.R.C. - for(i=0; iubProfile ].bHatedCount[ i ] == 0 ) { @@ -609,7 +609,7 @@ BOOLEAN WillMercRenew( SOLDIERTYPE *pSoldier, BOOLEAN fSayQuote ) if ( bMercID >= 0 ) { - if ( IsMercOnTeamAndInOmertaAlreadyAndAlive( (UINT8) bMercID ) ) + if ( IsMercOnTeam( (UINT8) bMercID, TRUE, TRUE ) ) { if ( gMercProfiles[ pSoldier->ubProfile ].bLearnToHateCount == 0 ) { diff --git a/Strategic/MilitiaSquads.cpp b/Strategic/MilitiaSquads.cpp index 5228d69a..9cddc7dc 100644 --- a/Strategic/MilitiaSquads.cpp +++ b/Strategic/MilitiaSquads.cpp @@ -2586,7 +2586,8 @@ void InitManualMobileRestrictions() } -extern BOOLEAN IsMercOnTeam(UINT8 ubMercID); +extern BOOLEAN IsMercOnTeam(UINT8 ubMercID, BOOLEAN aAlreadyInCountry, BOOLEAN aAlive ); + // @brief Calculates the contingent for mobile militia. // Calculates current active mobile militia and compares to variable maximum limit which can be altered by external data. // @param printMessage Set to TRUE to get a screenmessage telling the player which maximum is reached. No message is generated when the maximum is not yet reached (<=100). @@ -2650,7 +2651,7 @@ UINT8 GetMobileMilitiaQuota( BOOLEAN printMessage ) UINT16 rebelStructSize = sizeof ( gProfilesRPC ); for (UINT16 rebelPC = 0; rebelPC < rebelStructSize; rebelPC++) { - if ( IsMercOnTeam ( gProfilesRPC[ rebelPC ].ProfilId ) ) iNumRebelsInPlayerTeam++; + if ( IsMercOnTeam ( gProfilesRPC[ rebelPC ].ProfilId, FALSE, FALSE ) ) iNumRebelsInPlayerTeam++; } } //if ( IsMercOnTeam ( IRA ) ) iNumRebelsInPlayerTeam++; diff --git a/Strategic/Strategic Merc Handler.cpp b/Strategic/Strategic Merc Handler.cpp index 8eb0f630..aacf6a7f 100644 --- a/Strategic/Strategic Merc Handler.cpp +++ b/Strategic/Strategic Merc Handler.cpp @@ -412,7 +412,7 @@ void MercDailyUpdate() // WANNE: Only send mails from the original 1.13 merc, and not from the wildfire merc, // otherwise we get wrong mails cause of hardcoded Email.edt structure!!!!! UINT16 numOriginalProfiles = 255; - for( cnt = 0; cnt < numOriginalProfiles; cnt++) + for( cnt = 0; cnt < numOriginalProfiles; ++cnt) { pProfile = &(gMercProfiles[ cnt ]); @@ -426,7 +426,7 @@ void MercDailyUpdate() pProfile->uiPrecedentQuoteSaid = 0; // skip anyone currently on the player's team - if ( IsMercOnTeam( (UINT8) cnt )) + if ( IsMercOnTeam( (UINT8) cnt, FALSE, FALSE )) { continue; } diff --git a/Tactical/Dialogue Control.h b/Tactical/Dialogue Control.h index 44476979..93eb17a5 100644 --- a/Tactical/Dialogue Control.h +++ b/Tactical/Dialogue Control.h @@ -110,14 +110,14 @@ enum DialogQuoteIDs //70 QUOTE_ENEMY_RETREATED, QUOTE_GOING_TO_AUTO_SLEEP, - QUOTE_WORK_UP_AND_RETURNING_TO_ASSIGNMENT, // woke up from auto sleep, going back to wo + QUOTE_WORK_UP_AND_RETURNING_TO_ASSIGNMENT, // woke up from auto sleep, going back to work QUOTE_ME_TOO, // me too quote, in agreement with whatever the merc previous said QUOTE_USELESS_ITEM, QUOTE_BOOBYTRAP_ITEM, QUOTE_SUSPICIOUS_GROUND, QUOTE_DROWNING, QUOTE_MERC_REACHED_DESTINATION, - QUOTE_SPARE2, + QUOTE_JA2UB_LAPTOP_FIXED, // JA2UB: played when the laptop is fixed //80 QUOTE_REPUTATION_REFUSAL, //80 @@ -171,8 +171,8 @@ enum DialogQuoteIDs QUOTE_IMPATIENT_QUOTE, QUOTE_LENGTH_OF_CONTRACT, QUOTE_COMMENT_BEFORE_HANG_UP, - QUOTE_PERSONALITY_BIAS_WITH_HATED_1, - QUOTE_PERSONALITY_BIAS_WITH_HATED_2, + QUOTE_HATED_1_ON_TEAM_LONGTIMETOHATE, // played when we refuse to be hired because hated person is present and hatetime >= 24 (else play QUOTE_HATED_1_ON_TEAM) + QUOTE_HATED_2_ON_TEAM_LONGTIMETOHATE, QUOTE_MERC_LEAVING_ALSUCO_SOON, QUOTE_MERC_GONE_UP_IN_PRICE, #ifdef JA2UB @@ -210,9 +210,9 @@ enum DialogQuoteIDs QUOTE_RENEWING_CAUSE_BUDDY_3_ON_TEAM, QUOTE_RENEWING_CAUSE_BUDDY_4_ON_TEAM, QUOTE_RENEWING_CAUSE_BUDDY_5_ON_TEAM, - QUOTE_PERSONALITY_BIAS_WITH_HATED_3, - QUOTE_PERSONALITY_BIAS_WITH_HATED_4, - QUOTE_PERSONALITY_BIAS_WITH_HATED_5, + QUOTE_HATED_3_ON_TEAM_LONGTIMETOHATE, + QUOTE_HATED_4_ON_TEAM_LONGTIMETOHATE, + QUOTE_HATED_5_ON_TEAM_LONGTIMETOHATE, }; diff --git a/Tactical/Ja25_Tactical.cpp b/Tactical/Ja25_Tactical.cpp index d6839a5e..46020e3a 100644 --- a/Tactical/Ja25_Tactical.cpp +++ b/Tactical/Ja25_Tactical.cpp @@ -889,7 +889,7 @@ void HandlePowerGenAlarm() if( bID != -1 ) { - TacticalCharacterDialogue( &Menptr[ bID ], QUOTE_PERSONALITY_BIAS_WITH_HATED_2 ); + TacticalCharacterDialogue( &Menptr[ bID ], QUOTE_HATED_2_ON_TEAM_LONGTIMETOHATE ); } } else @@ -899,15 +899,15 @@ void HandlePowerGenAlarm() if( bSoldierId1 != -1 && Menptr[ bSoldierId1 ].ubProfile != BIGGENS_UB ) //BIGGENS { - TacticalCharacterDialogue( &Menptr[ bSoldierId1 ], QUOTE_PERSONALITY_BIAS_WITH_HATED_1 ); + TacticalCharacterDialogue( &Menptr[ bSoldierId1 ], QUOTE_HATED_1_ON_TEAM_LONGTIMETOHATE ); } else if( bSoldierId2 != -1 && Menptr[ bSoldierId2 ].ubProfile != BIGGENS_UB ) //BIGGENS { - TacticalCharacterDialogue( &Menptr[ bSoldierId2 ], QUOTE_PERSONALITY_BIAS_WITH_HATED_1 ); + TacticalCharacterDialogue( &Menptr[ bSoldierId2 ], QUOTE_HATED_1_ON_TEAM_LONGTIMETOHATE ); } else if( bSoldierId3 != -1 && Menptr[ bSoldierId3 ].ubProfile != BIGGENS_UB ) // BIGGENS { - TacticalCharacterDialogue( &Menptr[ bSoldierId3 ], QUOTE_PERSONALITY_BIAS_WITH_HATED_1 ); + TacticalCharacterDialogue( &Menptr[ bSoldierId3 ], QUOTE_HATED_1_ON_TEAM_LONGTIMETOHATE ); } } } diff --git a/Tactical/ShopKeeper Interface.cpp b/Tactical/ShopKeeper Interface.cpp index 368b2853..2332c1ab 100644 --- a/Tactical/ShopKeeper Interface.cpp +++ b/Tactical/ShopKeeper Interface.cpp @@ -1186,7 +1186,7 @@ BOOLEAN ExitShopKeeperInterface() bSoldierID = RandomSoldierIdFromNewMercsOnPlayerTeam(); if( bSoldierID != -1 ) { - TacticalCharacterDialogue( &Menptr[ bSoldierID ], QUOTE_SPARE2 ); + TacticalCharacterDialogue( &Menptr[ bSoldierID ], QUOTE_JA2UB_LAPTOP_FIXED ); } gJa25SaveStruct.uiJa25GeneralFlags |= JA_GF__PLAYER_SAID_LAPTOP_FIXED_QUOTE; diff --git a/Tactical/Soldier Add.cpp b/Tactical/Soldier Add.cpp index ca796722..5cf7694e 100644 --- a/Tactical/Soldier Add.cpp +++ b/Tactical/Soldier Add.cpp @@ -1767,103 +1767,27 @@ void AddSoldierToSectorGridNo( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 ubDir // IsMercOnTeam() checks to see if the passed in Merc Profile ID is currently on the player's team -BOOLEAN IsMercOnTeam(UINT8 ubMercID) +BOOLEAN IsMercOnTeam(UINT8 ubMercID, BOOLEAN aAlreadyInCountry, BOOLEAN aAlive) { UINT16 cnt; UINT8 ubLastTeamID; SOLDIERTYPE *pTeamSoldier; cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - ubLastTeamID = gTacticalStatus.Team[ OUR_TEAM ].bLastID; // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= ubLastTeamID; cnt++,pTeamSoldier++) + for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= ubLastTeamID; ++cnt, pTeamSoldier++) { - if ( pTeamSoldier->ubProfile == ubMercID ) + if ( pTeamSoldier->ubProfile == ubMercID && pTeamSoldier->bActive ) { - if( pTeamSoldier->bActive ) - return(TRUE); - } - } + if ( aAlreadyInCountry && pTeamSoldier->bAssignment == IN_TRANSIT ) + continue; - return(FALSE); -} + if ( aAlive && pTeamSoldier->stats.bLife <= 0 ) + continue; -// ATE: Added this new function for contract renewals -BOOLEAN IsMercOnTeamAndAlive(UINT8 ubMercID) -{ - UINT16 cnt; - UINT8 ubLastTeamID; - SOLDIERTYPE *pTeamSoldier; - - cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - - ubLastTeamID = gTacticalStatus.Team[ OUR_TEAM ].bLastID; - - // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= ubLastTeamID; cnt++,pTeamSoldier++) - { - if ( pTeamSoldier->ubProfile == ubMercID ) - { - if( pTeamSoldier->bActive ) - { - if ( pTeamSoldier->stats.bLife > 0 ) - { - return(TRUE); - } - } - } - } - - return(FALSE); -} - -BOOLEAN IsMercOnTeamAndInOmertaAlready(UINT8 ubMercID) -{ - UINT16 cnt; - UINT8 ubLastTeamID; - SOLDIERTYPE *pTeamSoldier; - - cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - - ubLastTeamID = gTacticalStatus.Team[ OUR_TEAM ].bLastID; - - // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= ubLastTeamID; cnt++,pTeamSoldier++) - { - if ( pTeamSoldier->ubProfile == ubMercID ) - { - if ( pTeamSoldier->bActive && pTeamSoldier->bAssignment != IN_TRANSIT ) - return(TRUE); - } - } - - return(FALSE); -} - -BOOLEAN IsMercOnTeamAndInOmertaAlreadyAndAlive(UINT8 ubMercID) -{ - UINT16 cnt; - UINT8 ubLastTeamID; - SOLDIERTYPE *pTeamSoldier; - - cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - - ubLastTeamID = gTacticalStatus.Team[ OUR_TEAM ].bLastID; - - // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= ubLastTeamID; cnt++,pTeamSoldier++) - { - if ( pTeamSoldier->ubProfile == ubMercID ) - { - if ( pTeamSoldier->bActive && pTeamSoldier->bAssignment != IN_TRANSIT ) - { - if ( pTeamSoldier->stats.bLife > 0 ) - { - return(TRUE); - } - } + return( TRUE ); } } diff --git a/Tactical/Soldier Add.h b/Tactical/Soldier Add.h index 589ad05e..bb96f44e 100644 --- a/Tactical/Soldier Add.h +++ b/Tactical/Soldier Add.h @@ -37,13 +37,7 @@ BOOLEAN AddSoldierToSectorNoCalculateDirection( UINT8 ubID ); BOOLEAN AddSoldierToSectorNoCalculateDirectionUseAnimation( UINT8 ubID, UINT16 usAnimState, UINT16 usAnimCode ); // IsMercOnTeam() checks to see if the passed in Merc Profile ID is currently on the player's team -BOOLEAN IsMercOnTeam(UINT8 ubMercID); -// requires non-intransit assignment, too -BOOLEAN IsMercOnTeamAndInOmertaAlready(UINT8 ubMercID); -// ATE: Added for contract renewals -BOOLEAN IsMercOnTeamAndAlive(UINT8 ubMercID); -// ATE: Added for contract renewals -BOOLEAN IsMercOnTeamAndInOmertaAlreadyAndAlive(UINT8 ubMercID); +BOOLEAN IsMercOnTeam( UINT8 ubMercID, BOOLEAN aAlreadyInCountry, BOOLEAN aAlive ); diff --git a/Tactical/Soldier Profile.cpp b/Tactical/Soldier Profile.cpp index 458cba40..8a0b3ea7 100644 --- a/Tactical/Soldier Profile.cpp +++ b/Tactical/Soldier Profile.cpp @@ -2300,7 +2300,7 @@ BOOLEAN DoesMercHaveABuddyOnTheTeam( UINT8 ubMercID ) if( bBuddyID < 0 ) continue; - if( IsMercOnTeam( bBuddyID ) ) + if( IsMercOnTeam( bBuddyID, FALSE, FALSE ) ) { if( !IsMercDead( bBuddyID ) ) {