mirror of
https://github.com/1dot13/source.git
synced 2026-08-05 14:00:23 +02:00
More buddies/foes (by anv)
- Currently MercProfiles.xml contains 5 records for buddies and 5 for foes + 1 per "learn to", but in code only 2 first + "learn to" are handled. I changed it so all possible buddies and foes can be used, and it's possible to add their specific like/dislike quotes to quote .edts. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6538 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -510,9 +510,19 @@ BOOLEAN WillMercRenew( SOLDIERTYPE *pSoldier, BOOLEAN fSayQuote )
|
||||
|
||||
// find out if the merc has a buddy working for the player
|
||||
// loop through the list of people the merc considers buddies
|
||||
for(i=0; i<5; i++)
|
||||
for(i=0; i<6; i++)
|
||||
{
|
||||
bMercID = gMercProfiles[ pSoldier->ubProfile ].bBuddy[i];
|
||||
if( i<5 )
|
||||
{
|
||||
bMercID = gMercProfiles[ pSoldier->ubProfile ].bBuddy[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
bMercID = gMercProfiles[ pSoldier->ubProfile ].bLearnToLike;
|
||||
// ignore learn to like, if he's not a buddy yet
|
||||
if( gMercProfiles[ pSoldier->ubProfile ].bLearnToLikeCount > 0 )
|
||||
continue;
|
||||
}
|
||||
|
||||
if( bMercID < 0 )
|
||||
continue;
|
||||
@@ -526,6 +536,12 @@ BOOLEAN WillMercRenew( SOLDIERTYPE *pSoldier, BOOLEAN fSayQuote )
|
||||
usBuddyQuote = QUOTE_RENEWING_CAUSE_BUDDY_1_ON_TEAM;
|
||||
else if( i == 1 )
|
||||
usBuddyQuote = QUOTE_RENEWING_CAUSE_BUDDY_2_ON_TEAM;
|
||||
else if( i == 2 )
|
||||
usBuddyQuote = QUOTE_RENEWING_CAUSE_BUDDY_3_ON_TEAM;
|
||||
else if( i == 3 )
|
||||
usBuddyQuote = QUOTE_RENEWING_CAUSE_BUDDY_4_ON_TEAM;
|
||||
else if( i == 4 )
|
||||
usBuddyQuote = QUOTE_RENEWING_CAUSE_BUDDY_5_ON_TEAM;
|
||||
else
|
||||
usBuddyQuote = QUOTE_RENEWING_CAUSE_LEARNED_TO_LIKE_BUDDY_ON_TEAM;
|
||||
|
||||
@@ -541,7 +557,7 @@ BOOLEAN WillMercRenew( SOLDIERTYPE *pSoldier, BOOLEAN fSayQuote )
|
||||
|
||||
// see if someone the merc hates is on the team
|
||||
// loop through the list of people the merc hates
|
||||
for(i=0; i<2; i++)
|
||||
for(i=0; i<5; i++)
|
||||
{
|
||||
bMercID = gMercProfiles[ pSoldier->ubProfile ].bHated[ i ];
|
||||
|
||||
@@ -570,9 +586,14 @@ BOOLEAN WillMercRenew( SOLDIERTYPE *pSoldier, BOOLEAN fSayQuote )
|
||||
{
|
||||
if( i == 0 )
|
||||
usReasonQuote = QUOTE_HATE_MERC_1_ON_TEAM_WONT_RENEW;
|
||||
else
|
||||
else if( i == 1 )
|
||||
usReasonQuote = QUOTE_HATE_MERC_2_ON_TEAM_WONT_RENEW;
|
||||
|
||||
else if( i == 2 )
|
||||
usReasonQuote = QUOTE_HATE_MERC_3_ON_TEAM_WONT_RENEW;
|
||||
else if( i == 3 )
|
||||
usReasonQuote = QUOTE_HATE_MERC_4_ON_TEAM_WONT_RENEW;
|
||||
else if( i == 4 )
|
||||
usReasonQuote = QUOTE_HATE_MERC_5_ON_TEAM_WONT_RENEW;
|
||||
// use first hated in case there are multiple
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -954,12 +954,15 @@ void UpdateBuddyAndHatedCounters( void )
|
||||
|
||||
ubOtherProfileID = pOtherSoldier->ubProfile;
|
||||
|
||||
for ( iLoop = 0; iLoop < 4; iLoop++ )
|
||||
for ( iLoop = 0; iLoop < 7; iLoop++ )
|
||||
{
|
||||
switch( iLoop )
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
if (pProfile->bHated[iLoop] == ubOtherProfileID)
|
||||
{
|
||||
// arrgs, we're on assignment with the person we loathe!
|
||||
@@ -978,10 +981,31 @@ void UpdateBuddyAndHatedCounters( void )
|
||||
{
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_ONE );
|
||||
}
|
||||
else
|
||||
else if (iLoop == 1)
|
||||
{
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_TWO );
|
||||
}
|
||||
else if (iLoop == 2)
|
||||
{
|
||||
if( pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_AIM_HATED_MERC_THREE );
|
||||
else
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_NON_AIM_HATED_MERC_THREE );
|
||||
}
|
||||
else if (iLoop == 3)
|
||||
{
|
||||
if( pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_AIM_HATED_MERC_FOUR );
|
||||
else
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_NON_AIM_HATED_MERC_FOUR );
|
||||
}
|
||||
else if (iLoop == 4)
|
||||
{
|
||||
if( pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_AIM_HATED_MERC_FIVE );
|
||||
else
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_NON_AIM_HATED_MERC_FIVE );
|
||||
}
|
||||
StopTimeCompression();
|
||||
}
|
||||
else if ( pProfile->bHatedCount[iLoop] == 0 )
|
||||
@@ -994,10 +1018,22 @@ void UpdateBuddyAndHatedCounters( void )
|
||||
{
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_MERC_QUIT_HATED1 );
|
||||
}
|
||||
else
|
||||
else if (iLoop == 1)
|
||||
{
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_MERC_QUIT_HATED2 );
|
||||
}
|
||||
else if (iLoop == 2)
|
||||
{
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_MERC_QUIT_HATED3 );
|
||||
}
|
||||
else if (iLoop == 3)
|
||||
{
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_MERC_QUIT_HATED4 );
|
||||
}
|
||||
else if (iLoop == 4)
|
||||
{
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_MERC_QUIT_HATED5 );
|
||||
}
|
||||
|
||||
// Leave now! ( handle equipment too )....
|
||||
TacticalCharacterDialogueWithSpecialEvent( pSoldier, 0, DIALOGUE_SPECIAL_EVENT_CONTRACT_ENDING, 0,0 );
|
||||
@@ -1011,10 +1047,31 @@ void UpdateBuddyAndHatedCounters( void )
|
||||
{
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_ONE );
|
||||
}
|
||||
else
|
||||
else if (iLoop == 1)
|
||||
{
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_TWO );
|
||||
}
|
||||
else if (iLoop == 2)
|
||||
{
|
||||
if( pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_AIM_HATED_MERC_THREE );
|
||||
else
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_NON_AIM_HATED_MERC_THREE );
|
||||
}
|
||||
else if (iLoop == 3)
|
||||
{
|
||||
if( pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_AIM_HATED_MERC_FOUR );
|
||||
else
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_NON_AIM_HATED_MERC_FOUR );
|
||||
}
|
||||
else if (iLoop == 4)
|
||||
{
|
||||
if( pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_AIM_HATED_MERC_FIVE );
|
||||
else
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_NON_AIM_HATED_MERC_FIVE );
|
||||
}
|
||||
pProfile->ubTimeTillNextHatedComplaint = TIME_BETWEEN_HATED_COMPLAINTS - 1;
|
||||
}
|
||||
}
|
||||
@@ -1043,15 +1100,36 @@ void UpdateBuddyAndHatedCounters( void )
|
||||
{
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_ONE );
|
||||
}
|
||||
else
|
||||
else if (iLoop == 1)
|
||||
{
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_TWO );
|
||||
}
|
||||
else if (iLoop == 2)
|
||||
{
|
||||
if( pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_AIM_HATED_MERC_THREE );
|
||||
else
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_NON_AIM_HATED_MERC_THREE );
|
||||
}
|
||||
else if (iLoop == 3)
|
||||
{
|
||||
if( pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_AIM_HATED_MERC_FOUR );
|
||||
else
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_NON_AIM_HATED_MERC_FOUR );
|
||||
}
|
||||
else if (iLoop == 4)
|
||||
{
|
||||
if( pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_AIM_HATED_MERC_FIVE );
|
||||
else
|
||||
TacticalCharacterDialogue( pSoldier, QUOTE_NON_AIM_HATED_MERC_FIVE );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case 5:
|
||||
if (pProfile->bLearnToHate == ubOtherProfileID)
|
||||
{
|
||||
if ( pProfile->bLearnToHateCount > 0 )
|
||||
@@ -1071,8 +1149,9 @@ void UpdateBuddyAndHatedCounters( void )
|
||||
else if (pProfile->bLearnToHateCount == 0)
|
||||
{
|
||||
// set as bHated[2];
|
||||
// anv: nope, we don't want to overwrite possible standard foe, instead added extra check to WhichHated(), CanMercBeHired()
|
||||
if (OKToCheckOpinion(ubOtherProfileID)) {
|
||||
pProfile->bHated[2] = pProfile->bLearnToHate;
|
||||
//pProfile->bHated[2] = pProfile->bLearnToHate;
|
||||
pProfile->bMercOpinion[ubOtherProfileID] = HATED_OPINION;
|
||||
}
|
||||
#ifdef JA2UB
|
||||
@@ -1125,15 +1204,16 @@ void UpdateBuddyAndHatedCounters( void )
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case 6:
|
||||
if (pProfile->bLearnToLikeCount > 0 && pProfile->bLearnToLike == ubOtherProfileID)
|
||||
{
|
||||
pProfile->bLearnToLikeCount--;
|
||||
if (pProfile->bLearnToLikeCount == 0)
|
||||
{
|
||||
// add to liked!
|
||||
// anv: nope, we don't want to overwrite possible standard buddy, instead added extra check to WhichBuddy(), DoesMercHaveABuddyOnTheTeam(), CanMercBeHired()
|
||||
if (OKToCheckOpinion(ubOtherProfileID)) {
|
||||
pProfile->bBuddy[2] = pProfile->bLearnToLike;
|
||||
//pProfile->bBuddy[2] = pProfile->bLearnToLike;
|
||||
pProfile->bMercOpinion[ubOtherProfileID] = BUDDY_OPINION;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,6 +122,27 @@ void HandleSoldierDeadComments( SOLDIERTYPE *pSoldier )
|
||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_BUDDY_TWO_KILLED );
|
||||
break;
|
||||
case 2:
|
||||
// buddy #3 died!
|
||||
if( pTeamSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_AIM_BUDDY_THREE_KILLED );
|
||||
else
|
||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_NON_AIM_BUDDY_THREE_KILLED );
|
||||
break;
|
||||
case 3:
|
||||
// buddy #4 died!
|
||||
if( pTeamSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_AIM_BUDDY_FOUR_KILLED );
|
||||
else
|
||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_NON_AIM_BUDDY_FOUR_KILLED );
|
||||
break;
|
||||
case 4:
|
||||
// buddy #5 died!
|
||||
if( pTeamSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_AIM_BUDDY_FIVE_KILLED );
|
||||
else
|
||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_NON_AIM_BUDDY_FIVE_KILLED );
|
||||
break;
|
||||
case 5:
|
||||
// learn to like buddy died!
|
||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_LEARNED_TO_LIKE_MERC_KILLED );
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user