Added new records: diseases caught, interrogations, total damage taken, total damage dealt

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8376 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2017-01-26 20:46:26 +00:00
parent e643c1ea57
commit 5f2da3707c
12 changed files with 96 additions and 16 deletions
+28 -9
View File
@@ -8644,8 +8644,6 @@ void AssignPersonnelAssistsHelpText( INT32 ubProfile )
// Set region help text // Set region help text
SetRegionFastHelpText( &(gSkillTraitHelpTextRegion[8]), apStr ); SetRegionFastHelpText( &(gSkillTraitHelpTextRegion[8]), apStr );
SetRegionHelpEndCallback( &gSkillTraitHelpTextRegion[8], MSYS_NO_CALLBACK ); SetRegionHelpEndCallback( &gSkillTraitHelpTextRegion[8], MSYS_NO_CALLBACK );
return;
} }
void AssignPersonnelHitPercentageHelpText( INT32 ubProfile ) void AssignPersonnelHitPercentageHelpText( INT32 ubProfile )
@@ -8689,12 +8687,15 @@ void AssignPersonnelHitPercentageHelpText( INT32 ubProfile )
swprintf(atStr, pPersonnelRecordsHelpTexts[ 16 ], gMercProfiles[ubProfile].records.usShotsHit ); swprintf(atStr, pPersonnelRecordsHelpTexts[ 16 ], gMercProfiles[ubProfile].records.usShotsHit );
wcscat( apStr, atStr ); wcscat( apStr, atStr );
} }
if ( gMercProfiles[ubProfile].records.usDamageDealt > 0 || fShowRecordsIfZero )
{
swprintf( atStr, pPersonnelRecordsHelpTexts[52], gMercProfiles[ubProfile].records.usDamageDealt );
wcscat( apStr, atStr );
}
// Set region help text // Set region help text
SetRegionFastHelpText( &(gSkillTraitHelpTextRegion[9]), apStr ); SetRegionFastHelpText( &(gSkillTraitHelpTextRegion[9]), apStr );
SetRegionHelpEndCallback( &gSkillTraitHelpTextRegion[9], MSYS_NO_CALLBACK ); SetRegionHelpEndCallback( &gSkillTraitHelpTextRegion[9], MSYS_NO_CALLBACK );
return;
} }
void AssignPersonnelAchievementsHelpText( INT32 ubProfile ) void AssignPersonnelAchievementsHelpText( INT32 ubProfile )
@@ -8800,12 +8801,15 @@ void AssignPersonnelAchievementsHelpText( INT32 ubProfile )
swprintf(atStr, pPersonnelRecordsHelpTexts[ 30 ], gMercProfiles[ubProfile].records.ubQuestsHandled ); swprintf(atStr, pPersonnelRecordsHelpTexts[ 30 ], gMercProfiles[ubProfile].records.ubQuestsHandled );
wcscat( apStr, atStr ); wcscat( apStr, atStr );
} }
if ( gMercProfiles[ubProfile].records.usInterrogations > 0 || fShowRecordsIfZero )
{
swprintf( atStr, pPersonnelRecordsHelpTexts[49], gMercProfiles[ubProfile].records.usInterrogations );
wcscat( apStr, atStr );
}
// Set region help text // Set region help text
SetRegionFastHelpText( &(gSkillTraitHelpTextRegion[10]), apStr ); SetRegionFastHelpText( &(gSkillTraitHelpTextRegion[10]), apStr );
SetRegionHelpEndCallback( &gSkillTraitHelpTextRegion[10], MSYS_NO_CALLBACK ); SetRegionHelpEndCallback( &gSkillTraitHelpTextRegion[10], MSYS_NO_CALLBACK );
return;
} }
void AssignPersonnelBattlesHelpText( INT32 ubProfile ) void AssignPersonnelBattlesHelpText( INT32 ubProfile )
@@ -8899,6 +8903,18 @@ void AssignPersonnelWoundsHelpText( INT32 ubProfile )
wcscat( apStr, atStr ); wcscat( apStr, atStr );
} }
if ( gMercProfiles[ubProfile].records.usTimesInfected > 0 || fShowRecordsIfZero )
{
swprintf( atStr, pPersonnelRecordsHelpTexts[50], gMercProfiles[ubProfile].records.usTimesInfected );
wcscat( apStr, atStr );
}
if ( gMercProfiles[ubProfile].records.usDamageTaken > 0 || fShowRecordsIfZero )
{
swprintf( atStr, pPersonnelRecordsHelpTexts[51], gMercProfiles[ubProfile].records.usDamageTaken );
wcscat( apStr, atStr );
}
// Set region help text // Set region help text
SetRegionFastHelpText( &(gSkillTraitHelpTextRegion[12]), apStr ); SetRegionFastHelpText( &(gSkillTraitHelpTextRegion[12]), apStr );
SetRegionHelpEndCallback( &gSkillTraitHelpTextRegion[12], MSYS_NO_CALLBACK ); SetRegionHelpEndCallback( &gSkillTraitHelpTextRegion[12], MSYS_NO_CALLBACK );
@@ -8946,8 +8962,9 @@ INT8 CalculateMercsAchievementPercentage( INT32 ubProfile )
+ +
( gMercProfiles[ pTeamSoldier->ubProfile ].records.usMilitiaTrained /4) ( gMercProfiles[ pTeamSoldier->ubProfile ].records.usMilitiaTrained /4)
+ +
( gMercProfiles[ pTeamSoldier->ubProfile ].records.ubQuestsHandled *2); ( gMercProfiles[ pTeamSoldier->ubProfile ].records.ubQuestsHandled *2)
+
(gMercProfiles[pTeamSoldier->ubProfile].records.usInterrogations);
} }
} }
} }
@@ -8978,7 +8995,9 @@ INT8 CalculateMercsAchievementPercentage( INT32 ubProfile )
+ +
( gMercProfiles[ ubProfile ].records.usMilitiaTrained /4) ( gMercProfiles[ ubProfile ].records.usMilitiaTrained /4)
+ +
( gMercProfiles[ ubProfile ].records.ubQuestsHandled *2); ( gMercProfiles[ ubProfile ].records.ubQuestsHandled *2)
+
( gMercProfiles[ubProfile].records.usInterrogations );
// Calculate percentage // Calculate percentage
if( ulTotalMercPoints != 0 ) if( ulTotalMercPoints != 0 )
+4
View File
@@ -7277,6 +7277,10 @@ void HandlePrisonerProcessingInSector( INT16 sMapX, INT16 sMapY, INT8 bZ )
StatChange( pSoldier, WISDOMAMT, max( 0, exppoints ), TRUE ); StatChange( pSoldier, WISDOMAMT, max( 0, exppoints ), TRUE );
StatChange( pSoldier, EXPERAMT, max( 0, exppoints - 1 ), TRUE ); StatChange( pSoldier, EXPERAMT, max( 0, exppoints - 1 ), TRUE );
} }
// add to our records. Screw exact values, just add them all and call it a day
if ( pSoldier->ubProfile != NO_PROFILE )
gMercProfiles[pSoldier->ubProfile].records.usInterrogations += prisonersinterrogated;
} }
} }
} }
+19
View File
@@ -9930,6 +9930,14 @@ UINT8 SOLDIERTYPE::SoldierTakeDamage( INT8 bHeight, INT16 sLifeDeduct, INT16 sBr
VehicleTakeDamage( this->bVehicleID, ubReason, sLifeDeduct, this->sGridNo, ubAttacker ); VehicleTakeDamage( this->bVehicleID, ubReason, sLifeDeduct, this->sGridNo, ubAttacker );
HandleTakeDamageDeath( this, bOldLife, ubReason ); HandleTakeDamageDeath( this, bOldLife, ubReason );
// add to our records.
if ( ubAttacker != NOBODY && MercPtrs[ubAttacker] && MercPtrs[ubAttacker]->ubProfile != NO_PROFILE )
gMercProfiles[MercPtrs[ubAttacker]->ubProfile].records.usDamageDealt += sLifeDeduct;
if ( this->ubProfile != NO_PROFILE )
gMercProfiles[this->ubProfile].records.usDamageTaken += sLifeDeduct;
return(0); return(0);
} }
@@ -10096,6 +10104,13 @@ UINT8 SOLDIERTYPE::SoldierTakeDamage( INT8 bHeight, INT16 sLifeDeduct, INT16 sBr
this->usPendingAnimation = NO_PENDING_ANIMATION; this->usPendingAnimation = NO_PENDING_ANIMATION;
} }
// add to our records.
if ( ubAttacker != NOBODY && MercPtrs[ubAttacker] && MercPtrs[ubAttacker]->ubProfile != NO_PROFILE )
gMercProfiles[MercPtrs[ubAttacker]->ubProfile].records.usDamageDealt += sLifeDeduct;
if ( this->ubProfile != NO_PROFILE )
gMercProfiles[this->ubProfile].records.usDamageTaken += sLifeDeduct;
if ( fShowDamage ) if ( fShowDamage )
{ {
this->sDamage += sLifeDeduct; this->sDamage += sLifeDeduct;
@@ -18478,6 +18493,10 @@ void SOLDIERTYPE::AnnounceDisease( UINT8 aDisease )
if ( this->bTeam == gbPlayerNum ) if ( this->bTeam == gbPlayerNum )
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szDiseaseText[TEXT_DISEASE_DIAGNOSE_GENERAL], this->GetName( ), Disease[aDisease].szName ); ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, szDiseaseText[TEXT_DISEASE_DIAGNOSE_GENERAL], this->GetName( ), Disease[aDisease].szName );
// add to our records.
if ( this->ubProfile != NO_PROFILE )
gMercProfiles[this->ubProfile].records.usTimesInfected += 1;
} }
// do we have any disease? fDiagnosedOnly: check for wether we know of this infection fHealableOnly: check wether it can be healed // do we have any disease? fDiagnosedOnly: check for wether we know of this infection fHealableOnly: check wether it can be healed
+4 -6
View File
@@ -443,12 +443,10 @@ public:
UINT16 usSectorsDiscovered; UINT16 usSectorsDiscovered;
UINT8 ubQuestsHandled; UINT8 ubQuestsHandled;
UINT16 zFiller1; UINT16 usInterrogations;
UINT16 zFiller2; UINT32 usDamageTaken;
UINT16 zFiller3; UINT32 usDamageDealt;
UINT16 zFiller4; UINT16 usTimesInfected;
UINT16 zFiller5;
UINT16 zFiller6;
UINT16 zFiller7; UINT16 zFiller7;
UINT16 zFiller8; UINT16 zFiller8;
UINT8 zFiller9; UINT8 zFiller9;
+5
View File
@@ -3082,6 +3082,11 @@ STR16 pPersonnelRecordsHelpTexts[] =
L"背景:", L"背景:",
L"性格:", L"性格:",
L"Prisoners interrogated: %d\n", // TODO.Translate
L"Diseases caught: %d\n",
L"Total damage received: %d\n",
L"Total damage caused: %d\n",
}; };
+5
View File
@@ -3082,6 +3082,11 @@ STR16 pPersonnelRecordsHelpTexts[] =
L"Background:", // TODO.Translate L"Background:", // TODO.Translate
L"Personality:", // TODO.Translate L"Personality:", // TODO.Translate
L"Prisoners interrogated: %d\n", // TODO.Translate
L"Diseases caught: %d\n",
L"Total damage received: %d\n",
L"Total damage caused: %d\n",
}; };
+5
View File
@@ -3082,6 +3082,11 @@ STR16 pPersonnelRecordsHelpTexts[] =
L"Background:", L"Background:",
L"Personality:", L"Personality:",
L"Prisoners interrogated: %d\n",
L"Diseases caught: %d\n",
L"Total damage received: %d\n",
L"Total damage caused: %d\n",
}; };
+5
View File
@@ -3090,6 +3090,11 @@ STR16 pPersonnelRecordsHelpTexts[] =
L"Passif :", L"Passif :",
L"Personnalité :", L"Personnalité :",
L"Prisoners interrogated: %d\n", // TODO.Translate
L"Diseases caught: %d\n",
L"Total damage received: %d\n",
L"Total damage caused: %d\n",
}; };
+5
View File
@@ -3098,6 +3098,11 @@ STR16 pPersonnelRecordsHelpTexts[] =
L"Werdegang:", L"Werdegang:",
L"Personalität:", L"Personalität:",
L"Prisoners interrogated: %d\n", // TODO.Translate
L"Diseases caught: %d\n",
L"Total damage received: %d\n",
L"Total damage caused: %d\n",
}; };
+5
View File
@@ -3078,6 +3078,11 @@ STR16 pPersonnelRecordsHelpTexts[] =
L"Background:", // TODO.Translate L"Background:", // TODO.Translate
L"Personality:", // TODO.Translate L"Personality:", // TODO.Translate
L"Prisoners interrogated: %d\n", // TODO.Translate
L"Diseases caught: %d\n",
L"Total damage received: %d\n",
L"Total damage caused: %d\n",
}; };
+5
View File
@@ -3088,6 +3088,11 @@ STR16 pPersonnelRecordsHelpTexts[] =
L"Background:", // TODO.Translate L"Background:", // TODO.Translate
L"Personality:", // TODO.Translate L"Personality:", // TODO.Translate
L"Prisoners interrogated: %d\n", // TODO.Translate
L"Diseases caught: %d\n",
L"Total damage received: %d\n",
L"Total damage caused: %d\n",
}; };
+5
View File
@@ -3082,6 +3082,11 @@ STR16 pPersonnelRecordsHelpTexts[] =
L"Биография:", L"Биография:",
L"Характер:", L"Характер:",
L"Prisoners interrogated: %d\n", // TODO.Translate
L"Diseases caught: %d\n",
L"Total damage received: %d\n",
L"Total damage caused: %d\n",
}; };