mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +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:
+77
-3
@@ -102,7 +102,7 @@
|
|||||||
#define SIZE_MERC_ADDITIONAL_INFO 160 * 2
|
#define SIZE_MERC_ADDITIONAL_INFO 160 * 2
|
||||||
|
|
||||||
#define MERC_ANNOYED_WONT_CONTACT_TIME_MINUTES 6 * 60
|
#define MERC_ANNOYED_WONT_CONTACT_TIME_MINUTES 6 * 60
|
||||||
#define NUMBER_HATED_MERCS_ONTEAM 3
|
#define NUMBER_HATED_MERCS_ONTEAM 6
|
||||||
|
|
||||||
#define STATS_X IMAGE_OFFSET_X + 121
|
#define STATS_X IMAGE_OFFSET_X + 121
|
||||||
#define STATS_Y IMAGE_OFFSET_Y + 66
|
#define STATS_Y IMAGE_OFFSET_Y + 66
|
||||||
@@ -3350,7 +3350,17 @@ BOOLEAN CanMercBeHired()
|
|||||||
for(i=0; i< NUMBER_HATED_MERCS_ONTEAM; i++)
|
for(i=0; i< NUMBER_HATED_MERCS_ONTEAM; i++)
|
||||||
{
|
{
|
||||||
//see if someone the merc hates is on the team
|
//see if someone the merc hates is on the team
|
||||||
bMercID = gMercProfiles[ gbCurrentSoldier ].bHated[i];
|
if( i< NUMBER_HATED_MERCS_ONTEAM - 1 )
|
||||||
|
{
|
||||||
|
bMercID = gMercProfiles[ gbCurrentSoldier ].bHated[i];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bMercID = gMercProfiles[ gbCurrentSoldier ].bLearnToHate;
|
||||||
|
// ignore learn to hate, if he's not a foe yet
|
||||||
|
if( gMercProfiles[ gbCurrentSoldier ].bLearnToHateCount > 0 )
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if( bMercID < 0 )
|
if( bMercID < 0 )
|
||||||
continue;
|
continue;
|
||||||
@@ -3368,7 +3378,17 @@ BOOLEAN CanMercBeHired()
|
|||||||
for(j=0; j< NUMBER_HATED_MERCS_ONTEAM; j++)
|
for(j=0; j< NUMBER_HATED_MERCS_ONTEAM; j++)
|
||||||
{
|
{
|
||||||
//if a buddy is on the team, the merc will join
|
//if a buddy is on the team, the merc will join
|
||||||
bMercID = gMercProfiles[ gbCurrentSoldier ].bBuddy[j];
|
if( i< NUMBER_HATED_MERCS_ONTEAM - 1 )
|
||||||
|
{
|
||||||
|
bMercID = gMercProfiles[ gbCurrentSoldier ].bBuddy[j];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bMercID = gMercProfiles[ gbCurrentSoldier ].bLearnToLike;
|
||||||
|
// ignore learn to like, if he's not a buddy yet
|
||||||
|
if( gMercProfiles[ gbCurrentSoldier ].bLearnToLikeCount > 0 )
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if( bMercID < 0 )
|
if( bMercID < 0 )
|
||||||
continue;
|
continue;
|
||||||
@@ -3383,6 +3403,18 @@ BOOLEAN CanMercBeHired()
|
|||||||
{
|
{
|
||||||
InitVideoFaceTalking(gbCurrentSoldier, QUOTE_JOINING_CAUSE_BUDDY_2_ON_TEAM);
|
InitVideoFaceTalking(gbCurrentSoldier, QUOTE_JOINING_CAUSE_BUDDY_2_ON_TEAM);
|
||||||
}
|
}
|
||||||
|
else if(j == 2 )
|
||||||
|
{
|
||||||
|
InitVideoFaceTalking(gbCurrentSoldier, QUOTE_JOINING_CAUSE_BUDDY_3_ON_TEAM);
|
||||||
|
}
|
||||||
|
else if(j == 3 )
|
||||||
|
{
|
||||||
|
InitVideoFaceTalking(gbCurrentSoldier, QUOTE_JOINING_CAUSE_BUDDY_4_ON_TEAM);
|
||||||
|
}
|
||||||
|
else if(j == 4 )
|
||||||
|
{
|
||||||
|
InitVideoFaceTalking(gbCurrentSoldier, QUOTE_JOINING_CAUSE_BUDDY_5_ON_TEAM);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
InitVideoFaceTalking(gbCurrentSoldier, QUOTE_JOINING_CAUSE_LEARNED_TO_LIKE_BUDDY_ON_TEAM);
|
InitVideoFaceTalking(gbCurrentSoldier, QUOTE_JOINING_CAUSE_LEARNED_TO_LIKE_BUDDY_ON_TEAM);
|
||||||
@@ -3423,6 +3455,48 @@ BOOLEAN CanMercBeHired()
|
|||||||
fRetVal = TRUE;
|
fRetVal = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if( i == 2)
|
||||||
|
{
|
||||||
|
if( gMercProfiles[ gbCurrentSoldier ].bHatedTime[ i ] < 24 )
|
||||||
|
{
|
||||||
|
WaitForMercToFinishTalkingOrUserToClick();
|
||||||
|
InitVideoFaceTalking(gbCurrentSoldier, QUOTE_HATE_MERC_3_ON_TEAM);
|
||||||
|
fRetVal = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
InitVideoFaceTalking(gbCurrentSoldier, QUOTE_PERSONALITY_BIAS_WITH_MERC_3);
|
||||||
|
fRetVal = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if( i == 3)
|
||||||
|
{
|
||||||
|
if( gMercProfiles[ gbCurrentSoldier ].bHatedTime[ i ] < 24 )
|
||||||
|
{
|
||||||
|
WaitForMercToFinishTalkingOrUserToClick();
|
||||||
|
InitVideoFaceTalking(gbCurrentSoldier, QUOTE_HATE_MERC_4_ON_TEAM);
|
||||||
|
fRetVal = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
InitVideoFaceTalking(gbCurrentSoldier, QUOTE_PERSONALITY_BIAS_WITH_MERC_4);
|
||||||
|
fRetVal = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if( i == 4)
|
||||||
|
{
|
||||||
|
if( gMercProfiles[ gbCurrentSoldier ].bHatedTime[ i ] < 24 )
|
||||||
|
{
|
||||||
|
WaitForMercToFinishTalkingOrUserToClick();
|
||||||
|
InitVideoFaceTalking(gbCurrentSoldier, QUOTE_HATE_MERC_5_ON_TEAM);
|
||||||
|
fRetVal = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
InitVideoFaceTalking(gbCurrentSoldier, QUOTE_PERSONALITY_BIAS_WITH_MERC_5);
|
||||||
|
fRetVal = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WaitForMercToFinishTalkingOrUserToClick();
|
WaitForMercToFinishTalkingOrUserToClick();
|
||||||
|
|||||||
@@ -510,9 +510,19 @@ BOOLEAN WillMercRenew( SOLDIERTYPE *pSoldier, BOOLEAN fSayQuote )
|
|||||||
|
|
||||||
// find out if the merc has a buddy working for the player
|
// find out if the merc has a buddy working for the player
|
||||||
// loop through the list of people the merc considers buddies
|
// 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 )
|
if( bMercID < 0 )
|
||||||
continue;
|
continue;
|
||||||
@@ -526,6 +536,12 @@ BOOLEAN WillMercRenew( SOLDIERTYPE *pSoldier, BOOLEAN fSayQuote )
|
|||||||
usBuddyQuote = QUOTE_RENEWING_CAUSE_BUDDY_1_ON_TEAM;
|
usBuddyQuote = QUOTE_RENEWING_CAUSE_BUDDY_1_ON_TEAM;
|
||||||
else if( i == 1 )
|
else if( i == 1 )
|
||||||
usBuddyQuote = QUOTE_RENEWING_CAUSE_BUDDY_2_ON_TEAM;
|
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
|
else
|
||||||
usBuddyQuote = QUOTE_RENEWING_CAUSE_LEARNED_TO_LIKE_BUDDY_ON_TEAM;
|
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
|
// see if someone the merc hates is on the team
|
||||||
// loop through the list of people the merc hates
|
// 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 ];
|
bMercID = gMercProfiles[ pSoldier->ubProfile ].bHated[ i ];
|
||||||
|
|
||||||
@@ -570,9 +586,14 @@ BOOLEAN WillMercRenew( SOLDIERTYPE *pSoldier, BOOLEAN fSayQuote )
|
|||||||
{
|
{
|
||||||
if( i == 0 )
|
if( i == 0 )
|
||||||
usReasonQuote = QUOTE_HATE_MERC_1_ON_TEAM_WONT_RENEW;
|
usReasonQuote = QUOTE_HATE_MERC_1_ON_TEAM_WONT_RENEW;
|
||||||
else
|
else if( i == 1 )
|
||||||
usReasonQuote = QUOTE_HATE_MERC_2_ON_TEAM_WONT_RENEW;
|
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
|
// use first hated in case there are multiple
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -954,12 +954,15 @@ void UpdateBuddyAndHatedCounters( void )
|
|||||||
|
|
||||||
ubOtherProfileID = pOtherSoldier->ubProfile;
|
ubOtherProfileID = pOtherSoldier->ubProfile;
|
||||||
|
|
||||||
for ( iLoop = 0; iLoop < 4; iLoop++ )
|
for ( iLoop = 0; iLoop < 7; iLoop++ )
|
||||||
{
|
{
|
||||||
switch( iLoop )
|
switch( iLoop )
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
case 4:
|
||||||
if (pProfile->bHated[iLoop] == ubOtherProfileID)
|
if (pProfile->bHated[iLoop] == ubOtherProfileID)
|
||||||
{
|
{
|
||||||
// arrgs, we're on assignment with the person we loathe!
|
// arrgs, we're on assignment with the person we loathe!
|
||||||
@@ -978,10 +981,31 @@ void UpdateBuddyAndHatedCounters( void )
|
|||||||
{
|
{
|
||||||
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_ONE );
|
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_ONE );
|
||||||
}
|
}
|
||||||
else
|
else if (iLoop == 1)
|
||||||
{
|
{
|
||||||
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_TWO );
|
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();
|
StopTimeCompression();
|
||||||
}
|
}
|
||||||
else if ( pProfile->bHatedCount[iLoop] == 0 )
|
else if ( pProfile->bHatedCount[iLoop] == 0 )
|
||||||
@@ -994,10 +1018,22 @@ void UpdateBuddyAndHatedCounters( void )
|
|||||||
{
|
{
|
||||||
TacticalCharacterDialogue( pSoldier, QUOTE_MERC_QUIT_HATED1 );
|
TacticalCharacterDialogue( pSoldier, QUOTE_MERC_QUIT_HATED1 );
|
||||||
}
|
}
|
||||||
else
|
else if (iLoop == 1)
|
||||||
{
|
{
|
||||||
TacticalCharacterDialogue( pSoldier, QUOTE_MERC_QUIT_HATED2 );
|
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 )....
|
// Leave now! ( handle equipment too )....
|
||||||
TacticalCharacterDialogueWithSpecialEvent( pSoldier, 0, DIALOGUE_SPECIAL_EVENT_CONTRACT_ENDING, 0,0 );
|
TacticalCharacterDialogueWithSpecialEvent( pSoldier, 0, DIALOGUE_SPECIAL_EVENT_CONTRACT_ENDING, 0,0 );
|
||||||
@@ -1011,10 +1047,31 @@ void UpdateBuddyAndHatedCounters( void )
|
|||||||
{
|
{
|
||||||
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_ONE );
|
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_ONE );
|
||||||
}
|
}
|
||||||
else
|
else if (iLoop == 1)
|
||||||
{
|
{
|
||||||
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_TWO );
|
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;
|
pProfile->ubTimeTillNextHatedComplaint = TIME_BETWEEN_HATED_COMPLAINTS - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1043,15 +1100,36 @@ void UpdateBuddyAndHatedCounters( void )
|
|||||||
{
|
{
|
||||||
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_ONE );
|
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_ONE );
|
||||||
}
|
}
|
||||||
else
|
else if (iLoop == 1)
|
||||||
{
|
{
|
||||||
TacticalCharacterDialogue( pSoldier, QUOTE_HATED_MERC_TWO );
|
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;
|
break;
|
||||||
case 2:
|
case 5:
|
||||||
if (pProfile->bLearnToHate == ubOtherProfileID)
|
if (pProfile->bLearnToHate == ubOtherProfileID)
|
||||||
{
|
{
|
||||||
if ( pProfile->bLearnToHateCount > 0 )
|
if ( pProfile->bLearnToHateCount > 0 )
|
||||||
@@ -1071,8 +1149,9 @@ void UpdateBuddyAndHatedCounters( void )
|
|||||||
else if (pProfile->bLearnToHateCount == 0)
|
else if (pProfile->bLearnToHateCount == 0)
|
||||||
{
|
{
|
||||||
// set as bHated[2];
|
// 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)) {
|
if (OKToCheckOpinion(ubOtherProfileID)) {
|
||||||
pProfile->bHated[2] = pProfile->bLearnToHate;
|
//pProfile->bHated[2] = pProfile->bLearnToHate;
|
||||||
pProfile->bMercOpinion[ubOtherProfileID] = HATED_OPINION;
|
pProfile->bMercOpinion[ubOtherProfileID] = HATED_OPINION;
|
||||||
}
|
}
|
||||||
#ifdef JA2UB
|
#ifdef JA2UB
|
||||||
@@ -1125,15 +1204,16 @@ void UpdateBuddyAndHatedCounters( void )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 6:
|
||||||
if (pProfile->bLearnToLikeCount > 0 && pProfile->bLearnToLike == ubOtherProfileID)
|
if (pProfile->bLearnToLikeCount > 0 && pProfile->bLearnToLike == ubOtherProfileID)
|
||||||
{
|
{
|
||||||
pProfile->bLearnToLikeCount--;
|
pProfile->bLearnToLikeCount--;
|
||||||
if (pProfile->bLearnToLikeCount == 0)
|
if (pProfile->bLearnToLikeCount == 0)
|
||||||
{
|
{
|
||||||
// add to liked!
|
// 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)) {
|
if (OKToCheckOpinion(ubOtherProfileID)) {
|
||||||
pProfile->bBuddy[2] = pProfile->bLearnToLike;
|
//pProfile->bBuddy[2] = pProfile->bLearnToLike;
|
||||||
pProfile->bMercOpinion[ubOtherProfileID] = BUDDY_OPINION;
|
pProfile->bMercOpinion[ubOtherProfileID] = BUDDY_OPINION;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,6 +122,27 @@ void HandleSoldierDeadComments( SOLDIERTYPE *pSoldier )
|
|||||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_BUDDY_TWO_KILLED );
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_BUDDY_TWO_KILLED );
|
||||||
break;
|
break;
|
||||||
case 2:
|
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!
|
// learn to like buddy died!
|
||||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_LEARNED_TO_LIKE_MERC_KILLED );
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_LEARNED_TO_LIKE_MERC_KILLED );
|
||||||
break;
|
break;
|
||||||
|
|||||||
+62
-16
@@ -120,26 +120,38 @@ enum DialogQuoteIDs
|
|||||||
QUOTE_SPARE2,
|
QUOTE_SPARE2,
|
||||||
|
|
||||||
//80
|
//80
|
||||||
QUOTE_REPUTATION_REFUSAL,
|
QUOTE_REPUTATION_REFUSAL, //80
|
||||||
QUOTE_DEATH_RATE_REFUSAL, //= 99,
|
QUOTE_NON_AIM_BUDDY_THREE_KILLED = QUOTE_REPUTATION_REFUSAL,
|
||||||
|
QUOTE_DEATH_RATE_REFUSAL, //= 81,
|
||||||
|
QUOTE_NON_AIM_BUDDY_FOUR_KILLED = QUOTE_DEATH_RATE_REFUSAL,
|
||||||
QUOTE_LAME_REFUSAL, //= 82,
|
QUOTE_LAME_REFUSAL, //= 82,
|
||||||
QUOTE_WONT_RENEW_CONTRACT_LAME_REFUSAL, // ARM: now unused
|
QUOTE_NON_AIM_BUDDY_FIVE_KILLED = QUOTE_LAME_REFUSAL,
|
||||||
QUOTE_ANSWERING_MACHINE_MSG,
|
QUOTE_WONT_RENEW_CONTRACT_LAME_REFUSAL, //=83,
|
||||||
QUOTE_DEPARTING_COMMENT_CONTRACT_NOT_RENEWED_OR_48_OR_MORE,
|
QUOTE_NON_AIM_HATED_MERC_THREE = QUOTE_WONT_RENEW_CONTRACT_LAME_REFUSAL,
|
||||||
QUOTE_HATE_MERC_1_ON_TEAM,// = 100,
|
QUOTE_ANSWERING_MACHINE_MSG, //= 84,
|
||||||
QUOTE_HATE_MERC_2_ON_TEAM,// = 101,
|
QUOTE_NON_AIM_HATED_MERC_FOUR = QUOTE_ANSWERING_MACHINE_MSG,
|
||||||
QUOTE_LEARNED_TO_HATE_MERC_ON_TEAM,// = 102,
|
QUOTE_DEPARTING_COMMENT_CONTRACT_NOT_RENEWED_OR_48_OR_MORE, //=85,
|
||||||
|
QUOTE_NON_AIM_HATED_MERC_FIVE = QUOTE_DEPARTING_COMMENT_CONTRACT_NOT_RENEWED_OR_48_OR_MORE,
|
||||||
|
QUOTE_HATE_MERC_1_ON_TEAM,// = 86,
|
||||||
|
QUOTE_NON_AIM_BUDDY_3_GOOD = QUOTE_HATE_MERC_1_ON_TEAM,
|
||||||
|
QUOTE_HATE_MERC_2_ON_TEAM,// = 87,
|
||||||
|
QUOTE_NON_AIM_BUDDY_4_GOOD = QUOTE_HATE_MERC_2_ON_TEAM,
|
||||||
|
QUOTE_LEARNED_TO_HATE_MERC_ON_TEAM,// = 88,
|
||||||
|
QUOTE_NON_AIM_BUDDY_5_GOOD = QUOTE_LEARNED_TO_HATE_MERC_ON_TEAM,
|
||||||
QUOTE_CONTRACTS_OVER,// = 89,
|
QUOTE_CONTRACTS_OVER,// = 89,
|
||||||
|
QUOTE_MERC_QUIT_HATED3 = QUOTE_CONTRACTS_OVER,
|
||||||
|
|
||||||
//90
|
//90
|
||||||
QUOTE_ACCEPT_CONTRACT_RENEWAL,
|
QUOTE_ACCEPT_CONTRACT_RENEWAL, // =90,
|
||||||
QUOTE_CONTRACT_ACCEPTANCE,
|
QUOTE_MERC_QUIT_HATED4 = QUOTE_ACCEPT_CONTRACT_RENEWAL,
|
||||||
QUOTE_JOINING_CAUSE_BUDDY_1_ON_TEAM,// = 103,
|
QUOTE_CONTRACT_ACCEPTANCE,// =91,
|
||||||
QUOTE_JOINING_CAUSE_BUDDY_2_ON_TEAM,// = 104,
|
QUOTE_MERC_QUIT_HATED5 = QUOTE_CONTRACT_ACCEPTANCE,
|
||||||
QUOTE_JOINING_CAUSE_LEARNED_TO_LIKE_BUDDY_ON_TEAM,// = 105,
|
QUOTE_JOINING_CAUSE_BUDDY_1_ON_TEAM,// = 92,
|
||||||
|
QUOTE_JOINING_CAUSE_BUDDY_2_ON_TEAM,// = 93,
|
||||||
|
QUOTE_JOINING_CAUSE_LEARNED_TO_LIKE_BUDDY_ON_TEAM,// = 94,
|
||||||
QUOTE_REFUSAL_RENEW_DUE_TO_MORALE,// = 95,
|
QUOTE_REFUSAL_RENEW_DUE_TO_MORALE,// = 95,
|
||||||
QUOTE_PRECEDENT_TO_REPEATING_ONESELF,// = 106,
|
QUOTE_PRECEDENT_TO_REPEATING_ONESELF,// = 96,
|
||||||
QUOTE_REFUSAL_TO_JOIN_LACK_OF_FUNDS,// = 107,
|
QUOTE_REFUSAL_TO_JOIN_LACK_OF_FUNDS,// = 97,
|
||||||
QUOTE_DEPART_COMMET_CONTRACT_NOT_RENEWED_OR_TERMINATED_UNDER_48,// = 98,
|
QUOTE_DEPART_COMMET_CONTRACT_NOT_RENEWED_OR_TERMINATED_UNDER_48,// = 98,
|
||||||
QUOTE_DEATH_RATE_RENEWAL,
|
QUOTE_DEATH_RATE_RENEWAL,
|
||||||
|
|
||||||
@@ -168,6 +180,40 @@ enum DialogQuoteIDs
|
|||||||
QUOTE_ENTER_SECTOR_WITH_FAN_2,
|
QUOTE_ENTER_SECTOR_WITH_FAN_2,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
QUOTE_AIM_BUDDY_THREE_KILLED = 119,
|
||||||
|
|
||||||
|
//120
|
||||||
|
QUOTE_AIM_BUDDY_FOUR_KILLED,
|
||||||
|
QUOTE_AIM_BUDDY_FIVE_KILLED,
|
||||||
|
QUOTE_AIM_HATED_MERC_THREE,
|
||||||
|
QUOTE_AIM_HATED_MERC_FOUR,
|
||||||
|
QUOTE_AIM_HATED_MERC_FIVE,
|
||||||
|
QUOTE_HATED_3_ARRIVES,
|
||||||
|
QUOTE_HATED_4_ARRIVES,
|
||||||
|
QUOTE_HATED_5_ARRIVES,
|
||||||
|
QUOTE_AIM_BUDDY_3_GOOD,
|
||||||
|
QUOTE_AIM_BUDDY_4_GOOD,
|
||||||
|
|
||||||
|
//130
|
||||||
|
QUOTE_AIM_BUDDY_5_GOOD,
|
||||||
|
QUOTE_HATE_MERC_3_ON_TEAM,
|
||||||
|
QUOTE_HATE_MERC_4_ON_TEAM,
|
||||||
|
QUOTE_HATE_MERC_5_ON_TEAM,
|
||||||
|
QUOTE_JOINING_CAUSE_BUDDY_3_ON_TEAM,
|
||||||
|
QUOTE_JOINING_CAUSE_BUDDY_4_ON_TEAM,
|
||||||
|
QUOTE_JOINING_CAUSE_BUDDY_5_ON_TEAM,
|
||||||
|
QUOTE_HATE_MERC_3_ON_TEAM_WONT_RENEW,
|
||||||
|
QUOTE_HATE_MERC_4_ON_TEAM_WONT_RENEW,
|
||||||
|
QUOTE_HATE_MERC_5_ON_TEAM_WONT_RENEW,
|
||||||
|
|
||||||
|
//140
|
||||||
|
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_MERC_3,
|
||||||
|
QUOTE_PERSONALITY_BIAS_WITH_MERC_4,
|
||||||
|
QUOTE_PERSONALITY_BIAS_WITH_MERC_5,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -716,6 +716,15 @@ void HandleMercArrivesQuotes( SOLDIERTYPE *pSoldier )
|
|||||||
case 1:
|
case 1:
|
||||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_HATED_2_ARRIVES );
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_HATED_2_ARRIVES );
|
||||||
break;
|
break;
|
||||||
|
case 2:
|
||||||
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_HATED_3_ARRIVES );
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_HATED_4_ARRIVES );
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_HATED_5_ARRIVES );
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1244,7 +1244,7 @@ void HourlyMoraleUpdate( void )
|
|||||||
if (bOpinion == HATED_OPINION)
|
if (bOpinion == HATED_OPINION)
|
||||||
{
|
{
|
||||||
bHated = WhichHated( pSoldier->ubProfile, pOtherSoldier->ubProfile );
|
bHated = WhichHated( pSoldier->ubProfile, pOtherSoldier->ubProfile );
|
||||||
if ( bHated >= 2 )
|
if ( bHated >= 5 )
|
||||||
{
|
{
|
||||||
// learn to hate which has become full-blown hatred, full strength
|
// learn to hate which has become full-blown hatred, full strength
|
||||||
fFoundHated = TRUE;
|
fFoundHated = TRUE;
|
||||||
|
|||||||
+31
-7
@@ -3371,13 +3371,34 @@ void HandlePlayerTeamMemberDeath( SOLDIERTYPE *pSoldier )
|
|||||||
// buddy #2 died!
|
// buddy #2 died!
|
||||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_BUDDY_TWO_KILLED );
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_BUDDY_TWO_KILLED );
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
// learn to like buddy died!
|
// buddy #3 died!
|
||||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_LEARNED_TO_LIKE_MERC_KILLED );
|
if( pTeamSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||||
break;
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_AIM_BUDDY_THREE_KILLED );
|
||||||
default:
|
else
|
||||||
break;
|
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;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
#ifdef JA2UB
|
#ifdef JA2UB
|
||||||
#else
|
#else
|
||||||
// anv: handle Speck witnessing his employee death
|
// anv: handle Speck witnessing his employee death
|
||||||
@@ -7075,6 +7096,9 @@ BOOLEAN CheckForEndOfBattle( BOOLEAN fAnEnemyRetreated )
|
|||||||
pTeamSoldier->usQuoteSaidExtFlags &= (~SOLDIER_QUOTE_SAID_BUDDY_1_WITNESSED);
|
pTeamSoldier->usQuoteSaidExtFlags &= (~SOLDIER_QUOTE_SAID_BUDDY_1_WITNESSED);
|
||||||
pTeamSoldier->usQuoteSaidExtFlags &= (~SOLDIER_QUOTE_SAID_BUDDY_2_WITNESSED);
|
pTeamSoldier->usQuoteSaidExtFlags &= (~SOLDIER_QUOTE_SAID_BUDDY_2_WITNESSED);
|
||||||
pTeamSoldier->usQuoteSaidExtFlags &= (~SOLDIER_QUOTE_SAID_BUDDY_3_WITNESSED);
|
pTeamSoldier->usQuoteSaidExtFlags &= (~SOLDIER_QUOTE_SAID_BUDDY_3_WITNESSED);
|
||||||
|
pTeamSoldier->usQuoteSaidExtFlags &= (~SOLDIER_QUOTE_SAID_BUDDY_4_WITNESSED);
|
||||||
|
pTeamSoldier->usQuoteSaidExtFlags &= (~SOLDIER_QUOTE_SAID_BUDDY_5_WITNESSED);
|
||||||
|
pTeamSoldier->usQuoteSaidExtFlags &= (~SOLDIER_QUOTE_SAID_BUDDY_6_WITNESSED);
|
||||||
|
|
||||||
// toggle stealth mode....
|
// toggle stealth mode....
|
||||||
gfUIStanceDifferent = TRUE;
|
gfUIStanceDifferent = TRUE;
|
||||||
|
|||||||
@@ -840,6 +840,27 @@ INT32 SkillCheck( SOLDIERTYPE * pSoldier, INT8 bReason, INT8 bChanceMod )
|
|||||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_BUDDY_2_GOOD );
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_BUDDY_2_GOOD );
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
// buddy #3 did something good!
|
||||||
|
if( pTeamSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||||
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_AIM_BUDDY_3_GOOD );
|
||||||
|
else
|
||||||
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_NON_AIM_BUDDY_3_GOOD );
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
// buddy #4 did something good!
|
||||||
|
if( pTeamSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||||
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_AIM_BUDDY_4_GOOD );
|
||||||
|
else
|
||||||
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_NON_AIM_BUDDY_4_GOOD );
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
// buddy #5 did something good!
|
||||||
|
if( pTeamSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||||
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_AIM_BUDDY_5_GOOD );
|
||||||
|
else
|
||||||
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_NON_AIM_BUDDY_5_GOOD );
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
// learn to like buddy did something good!
|
// learn to like buddy did something good!
|
||||||
TacticalCharacterDialogue( pTeamSoldier, QUOTE_LEARNED_TO_LIKE_WITNESSED );
|
TacticalCharacterDialogue( pTeamSoldier, QUOTE_LEARNED_TO_LIKE_WITNESSED );
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -3457,6 +3457,27 @@ void SayBuddyWitnessedQuoteFromKill( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
if ( pTeamSoldier->usQuoteSaidExtFlags & SOLDIER_QUOTE_SAID_BUDDY_4_WITNESSED )
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
if ( pTeamSoldier->usQuoteSaidExtFlags & SOLDIER_QUOTE_SAID_BUDDY_5_WITNESSED )
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5:
|
||||||
|
if ( pTeamSoldier->usQuoteSaidExtFlags & SOLDIER_QUOTE_SAID_BUDDY_6_WITNESSED )
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TO LOS check to killed
|
// TO LOS check to killed
|
||||||
@@ -3502,9 +3523,33 @@ void SayBuddyWitnessedQuoteFromKill( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
usQuoteNum = QUOTE_LEARNED_TO_LIKE_WITNESSED;
|
if( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||||
|
usQuoteNum = QUOTE_AIM_BUDDY_3_GOOD;
|
||||||
|
else
|
||||||
|
usQuoteNum = QUOTE_NON_AIM_BUDDY_3_GOOD;
|
||||||
MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_3_WITNESSED;
|
MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_3_WITNESSED;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
if( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||||
|
usQuoteNum = QUOTE_AIM_BUDDY_4_GOOD;
|
||||||
|
else
|
||||||
|
usQuoteNum = QUOTE_NON_AIM_BUDDY_4_GOOD;
|
||||||
|
MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_4_WITNESSED;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
if( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
||||||
|
usQuoteNum = QUOTE_AIM_BUDDY_5_GOOD;
|
||||||
|
else
|
||||||
|
usQuoteNum = QUOTE_NON_AIM_BUDDY_5_GOOD;
|
||||||
|
MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_5_WITNESSED;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5:
|
||||||
|
usQuoteNum = QUOTE_LEARNED_TO_LIKE_WITNESSED;
|
||||||
|
MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_6_WITNESSED;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
TacticalCharacterDialogue( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ], usQuoteNum );
|
TacticalCharacterDialogue( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ], usQuoteNum );
|
||||||
}
|
}
|
||||||
@@ -3529,7 +3574,7 @@ void HandleKilledQuote( SOLDIERTYPE *pKilledSoldier, SOLDIERTYPE *pKillerSoldier
|
|||||||
BOOLEAN fCanWeSeeLocation = ( SoldierTo3DLocationLineOfSightTest( pKillerSoldier, sGridNo, bLevel, 3, TRUE, CALC_FROM_ALL_DIRS ) != 0 );
|
BOOLEAN fCanWeSeeLocation = ( SoldierTo3DLocationLineOfSightTest( pKillerSoldier, sGridNo, bLevel, 3, TRUE, CALC_FROM_ALL_DIRS ) != 0 );
|
||||||
|
|
||||||
// Are we killing mike?
|
// Are we killing mike?
|
||||||
if ( pKilledSoldier->ubProfile == MIKE && pKillerSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC )
|
if ( pKilledSoldier->ubProfile == MIKE && ( pKillerSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC || ( pKillerSoldier->ubWhatKindOfMercAmI == MERC_TYPE__MERC && gMercProfiles[pKillerSoldier->ubProfile].bLearnToHate == 255 ) ) )
|
||||||
{
|
{
|
||||||
// Can we see?
|
// Can we see?
|
||||||
if ( fCanWeSeeLocation )
|
if ( fCanWeSeeLocation )
|
||||||
|
|||||||
@@ -152,6 +152,9 @@ INT8 NUM_SKILL_TRAITS( SOLDIERTYPE * pSoldier, UINT8 uiSkillTraitNumber );
|
|||||||
#define SOLDIER_QUOTE_SAID_BUDDY_1_WITNESSED 0x0040
|
#define SOLDIER_QUOTE_SAID_BUDDY_1_WITNESSED 0x0040
|
||||||
#define SOLDIER_QUOTE_SAID_BUDDY_2_WITNESSED 0x0080
|
#define SOLDIER_QUOTE_SAID_BUDDY_2_WITNESSED 0x0080
|
||||||
#define SOLDIER_QUOTE_SAID_BUDDY_3_WITNESSED 0x0100
|
#define SOLDIER_QUOTE_SAID_BUDDY_3_WITNESSED 0x0100
|
||||||
|
#define SOLDIER_QUOTE_SAID_BUDDY_4_WITNESSED 0x0400
|
||||||
|
#define SOLDIER_QUOTE_SAID_BUDDY_5_WITNESSED 0x0800
|
||||||
|
#define SOLDIER_QUOTE_SAID_BUDDY_6_WITNESSED 0x1000
|
||||||
|
|
||||||
#ifdef JA2UB
|
#ifdef JA2UB
|
||||||
#define SOLDIER_QUOTE_SAID_THOUGHT_KILLED_YOU 0x0200
|
#define SOLDIER_QUOTE_SAID_THOUGHT_KILLED_YOU 0x0200
|
||||||
|
|||||||
@@ -834,6 +834,9 @@ BOOLEAN LoadMercProfiles(void)
|
|||||||
// ARM: this is also being done inside the profile editor, but put it here too, so this project's code makes sense
|
// ARM: this is also being done inside the profile editor, but put it here too, so this project's code makes sense
|
||||||
gMercProfiles[ uiLoop ].bHatedCount[0] = gMercProfiles[ uiLoop ].bHatedTime[0];
|
gMercProfiles[ uiLoop ].bHatedCount[0] = gMercProfiles[ uiLoop ].bHatedTime[0];
|
||||||
gMercProfiles[ uiLoop ].bHatedCount[1] = gMercProfiles[ uiLoop ].bHatedTime[1];
|
gMercProfiles[ uiLoop ].bHatedCount[1] = gMercProfiles[ uiLoop ].bHatedTime[1];
|
||||||
|
gMercProfiles[ uiLoop ].bHatedCount[2] = gMercProfiles[ uiLoop ].bHatedTime[2];
|
||||||
|
gMercProfiles[ uiLoop ].bHatedCount[3] = gMercProfiles[ uiLoop ].bHatedTime[3];
|
||||||
|
gMercProfiles[ uiLoop ].bHatedCount[4] = gMercProfiles[ uiLoop ].bHatedTime[4];
|
||||||
gMercProfiles[ uiLoop ].bLearnToHateCount = gMercProfiles[ uiLoop ].bLearnToHateTime;
|
gMercProfiles[ uiLoop ].bLearnToHateCount = gMercProfiles[ uiLoop ].bLearnToHateTime;
|
||||||
gMercProfiles[ uiLoop ].bLearnToLikeCount = gMercProfiles[ uiLoop ].bLearnToLikeTime;
|
gMercProfiles[ uiLoop ].bLearnToLikeCount = gMercProfiles[ uiLoop ].bLearnToLikeTime;
|
||||||
|
|
||||||
@@ -2034,13 +2037,17 @@ INT8 WhichBuddy( UINT8 ubCharNum, UINT8 ubBuddy )
|
|||||||
|
|
||||||
pProfile = &( gMercProfiles[ ubCharNum ] );
|
pProfile = &( gMercProfiles[ ubCharNum ] );
|
||||||
|
|
||||||
for (bLoop = 0; bLoop < 3; bLoop++)
|
for (bLoop = 0; bLoop < 5; bLoop++)
|
||||||
{
|
{
|
||||||
if ( pProfile->bBuddy[bLoop] == ubBuddy )
|
if ( pProfile->bBuddy[bLoop] == ubBuddy )
|
||||||
{
|
{
|
||||||
return( bLoop );
|
return( bLoop );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if( pProfile->bLearnToLike == ubBuddy && pProfile->bLearnToLikeCount == 0 )
|
||||||
|
{
|
||||||
|
return( 5 );
|
||||||
|
}
|
||||||
return( -1 );
|
return( -1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2051,13 +2058,17 @@ INT8 WhichHated( UINT8 ubCharNum, UINT8 ubHated )
|
|||||||
|
|
||||||
pProfile = &( gMercProfiles[ ubCharNum ] );
|
pProfile = &( gMercProfiles[ ubCharNum ] );
|
||||||
|
|
||||||
for (bLoop = 0; bLoop < 3; bLoop++)
|
for (bLoop = 0; bLoop < 5; bLoop++)
|
||||||
{
|
{
|
||||||
if ( pProfile->bHated[bLoop] == ubHated )
|
if ( pProfile->bHated[bLoop] == ubHated )
|
||||||
{
|
{
|
||||||
return( bLoop );
|
return( bLoop );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if( pProfile->bLearnToHate == ubHated && pProfile->bLearnToHateCount == 0 )
|
||||||
|
{
|
||||||
|
return( 5 );
|
||||||
|
}
|
||||||
return( -1 );
|
return( -1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2161,10 +2172,20 @@ BOOLEAN DoesMercHaveABuddyOnTheTeam( UINT8 ubMercID )
|
|||||||
UINT8 bBuddyID;
|
UINT8 bBuddyID;
|
||||||
|
|
||||||
// loop through the list of people the merc is buddies with
|
// loop through the list of people the merc is buddies with
|
||||||
for(ubCnt=0; ubCnt< 3; ubCnt++)
|
for(ubCnt=0; ubCnt< 6; ubCnt++)
|
||||||
{
|
{
|
||||||
//see if the merc has a buddy on the team
|
//see if the merc has a buddy on the team
|
||||||
bBuddyID = gMercProfiles[ ubMercID ].bBuddy[ubCnt];
|
if( ubCnt<5 )
|
||||||
|
{
|
||||||
|
bBuddyID = gMercProfiles[ ubMercID ].bBuddy[ubCnt];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bBuddyID = gMercProfiles[ ubMercID ].bLearnToLike;
|
||||||
|
// ignore learn to like, if he's not a buddy yet
|
||||||
|
if( gMercProfiles[ ubMercID ].bLearnToLikeCount > 0 )
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
//If its not a valid 'buddy'
|
//If its not a valid 'buddy'
|
||||||
if( bBuddyID < 0 )
|
if( bBuddyID < 0 )
|
||||||
|
|||||||
@@ -2439,7 +2439,7 @@ void ManSeesMan(SOLDIERTYPE *pSoldier, SOLDIERTYPE *pOpponent, INT32 sOppGridNo,
|
|||||||
gfMorrisShouldSayHi = TRUE;
|
gfMorrisShouldSayHi = TRUE;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if ( (pOpponent->ubProfile == MIKE) && ( pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC ) && !(pSoldier->usQuoteSaidExtFlags & SOLDIER_QUOTE_SAID_EXT_MIKE) )
|
if ( (pOpponent->ubProfile == MIKE) && ( pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC || pSoldier->ubWhatKindOfMercAmI == MERC_TYPE__MERC ) && !(pSoldier->usQuoteSaidExtFlags & SOLDIER_QUOTE_SAID_EXT_MIKE) )
|
||||||
{
|
{
|
||||||
if (gfMikeShouldSayHi == FALSE)
|
if (gfMikeShouldSayHi == FALSE)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -364,8 +364,8 @@ typedef enum
|
|||||||
ONEQUARTER_EVOLUTION,
|
ONEQUARTER_EVOLUTION,
|
||||||
} CharacterEvolution;
|
} CharacterEvolution;
|
||||||
|
|
||||||
#define BUDDY_MERC( prof, bud ) ((prof)->bBuddy[0] == (bud) || (prof)->bBuddy[1] == (bud) || (prof)->bBuddy[2] == (bud) )
|
#define BUDDY_MERC( prof, bud ) ((prof)->bBuddy[0] == (bud) || (prof)->bBuddy[1] == (bud) || (prof)->bBuddy[2] == (bud) || (prof)->bBuddy[3] == (bud) || (prof)->bBuddy[4] == (bud) || ( (prof)->bLearnToLike == (bud) && (prof)->bLearnToLikeCount == 0 ) )
|
||||||
#define HATED_MERC( prof, hat ) ((prof)->bHated[0] == (hat) || (prof)->bHated[1] == (hat) || (prof)->bHated[2] == (hat) )
|
#define HATED_MERC( prof, hat ) ((prof)->bHated[0] == (hat) || (prof)->bHated[1] == (hat) || (prof)->bHated[2] == (hat) || (prof)->bHated[3] == (hat) || (prof)->bHated[4] == (hat) || ( (prof)->bLearnToHate == (hat) && (prof)->bLearnToHateCount == 0 ) )
|
||||||
|
|
||||||
#define BUDDY_OPINION +25
|
#define BUDDY_OPINION +25
|
||||||
#define HATED_OPINION -25
|
#define HATED_OPINION -25
|
||||||
|
|||||||
Reference in New Issue
Block a user