mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
- Fix: when Larry changes profiles, several stats are not properly copied
- Fix: when Larry changes profiles, Goodguy is always copied over git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8583 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -2369,20 +2369,11 @@ BOOLEAN MercIsInTropicalSector( SOLDIERTYPE * pSoldier )
|
||||
|
||||
SOLDIERTYPE * SwapLarrysProfiles( SOLDIERTYPE * pSoldier )
|
||||
{
|
||||
UINT8 ubSrcProfile;
|
||||
UINT8 ubDestProfile;
|
||||
MERCPROFILESTRUCT * pNewProfile;
|
||||
MERCPROFILESTRUCT* pNewProfile;
|
||||
UINT8 ubSrcProfile = pSoldier->ubProfile;
|
||||
|
||||
ubSrcProfile = pSoldier->ubProfile;
|
||||
if ( ubSrcProfile == LARRY_NORMAL)
|
||||
{
|
||||
ubDestProfile = LARRY_DRUNK;
|
||||
}
|
||||
else if ( ubSrcProfile == LARRY_DRUNK )
|
||||
{
|
||||
ubDestProfile = LARRY_NORMAL;
|
||||
}
|
||||
else
|
||||
// need a stop criteria...
|
||||
if ( FALSE )
|
||||
{
|
||||
// I don't think so!
|
||||
return( pSoldier );
|
||||
@@ -2437,6 +2428,11 @@ SOLDIERTYPE * SwapLarrysProfiles( SOLDIERTYPE * pSoldier )
|
||||
pNewProfile->records.usSectorsDiscovered = gMercProfiles[ ubSrcProfile ].records.usSectorsDiscovered;
|
||||
pNewProfile->records.usMilitiaTrained = gMercProfiles[ ubSrcProfile ].records.usMilitiaTrained;
|
||||
pNewProfile->records.ubQuestsHandled = gMercProfiles[ ubSrcProfile ].records.ubQuestsHandled;
|
||||
pNewProfile->records.usInterrogations = gMercProfiles[ubSrcProfile].records.usInterrogations;
|
||||
pNewProfile->records.usDamageTaken = gMercProfiles[ubSrcProfile].records.usDamageTaken;
|
||||
pNewProfile->records.usDamageDealt = gMercProfiles[ubSrcProfile].records.usDamageDealt;
|
||||
pNewProfile->records.usTimesInfected = gMercProfiles[ubSrcProfile].records.usTimesInfected;
|
||||
pNewProfile->records.usPointsHealed = gMercProfiles[ubSrcProfile].records.usPointsHealed;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
pNewProfile->usTotalDaysServed = gMercProfiles[ ubSrcProfile ].usTotalDaysServed;
|
||||
@@ -2451,11 +2447,21 @@ SOLDIERTYPE * SwapLarrysProfiles( SOLDIERTYPE * pSoldier )
|
||||
pNewProfile->bSectorZ = gMercProfiles[ ubSrcProfile ].bSectorZ;
|
||||
pNewProfile->usStrategicInsertionData = gMercProfiles[ ubSrcProfile ].usStrategicInsertionData;
|
||||
pNewProfile->sTrueSalary = gMercProfiles[ ubSrcProfile ].sTrueSalary;
|
||||
|
||||
// the goodguy property is permanent and shouldn't carry over, so check for that
|
||||
BOOLEAN goodguy = ( gMercProfiles[ubDestProfile].ubMiscFlags3 & PROFILE_MISC_FLAG3_GOODGUY ) ? TRUE : FALSE;
|
||||
|
||||
pNewProfile->ubMiscFlags3 = gMercProfiles[ ubSrcProfile ].ubMiscFlags3;
|
||||
|
||||
pNewProfile->ubMiscFlags3 &= ~PROFILE_MISC_FLAG3_GOODGUY;
|
||||
if ( goodguy )
|
||||
pNewProfile->ubMiscFlags3 |= PROFILE_MISC_FLAG3_GOODGUY;
|
||||
|
||||
pNewProfile->ubDaysOfMoraleHangover = gMercProfiles[ ubSrcProfile ].ubDaysOfMoraleHangover;
|
||||
pNewProfile->ubNumTimesDrugUseInLifetime = gMercProfiles[ ubSrcProfile ].ubNumTimesDrugUseInLifetime;
|
||||
pNewProfile->uiPrecedentQuoteSaid = gMercProfiles[ ubSrcProfile ].uiPrecedentQuoteSaid;
|
||||
pNewProfile->sPreCombatGridNo = gMercProfiles[ ubSrcProfile ].sPreCombatGridNo;
|
||||
pNewProfile->ubSnitchExposedCooldown = gMercProfiles[ubSrcProfile].ubSnitchExposedCooldown;
|
||||
|
||||
// CJC: this is causing problems so just skip the transfer of exp...
|
||||
/*
|
||||
@@ -2484,6 +2490,28 @@ SOLDIERTYPE * SwapLarrysProfiles( SOLDIERTYPE * pSoldier )
|
||||
pNewProfile->bExplosivesDelta = gMercProfiles[ ubSrcProfile ].bExplosivesDelta;
|
||||
*/
|
||||
|
||||
pNewProfile->sLifeGain = gMercProfiles[ubSrcProfile].sLifeGain;
|
||||
pNewProfile->sAgilityGain = gMercProfiles[ubSrcProfile].sAgilityGain;
|
||||
pNewProfile->sDexterityGain = gMercProfiles[ubSrcProfile].sDexterityGain;
|
||||
pNewProfile->sStrengthGain = gMercProfiles[ubSrcProfile].sStrengthGain;
|
||||
pNewProfile->sWisdomGain = gMercProfiles[ubSrcProfile].sWisdomGain;
|
||||
pNewProfile->sExpLevelGain = gMercProfiles[ubSrcProfile].sExpLevelGain;
|
||||
|
||||
pNewProfile->bLifeDelta = gMercProfiles[ubSrcProfile].bLifeDelta;
|
||||
pNewProfile->bAgilityDelta = gMercProfiles[ubSrcProfile].bAgilityDelta;
|
||||
pNewProfile->bDexterityDelta = gMercProfiles[ubSrcProfile].bDexterityDelta;
|
||||
pNewProfile->bStrengthDelta = gMercProfiles[ubSrcProfile].bStrengthDelta;
|
||||
pNewProfile->bWisdomDelta = gMercProfiles[ubSrcProfile].bWisdomDelta;
|
||||
pNewProfile->bExpLevelDelta = gMercProfiles[ubSrcProfile].bExpLevelDelta;
|
||||
|
||||
pNewProfile->bLife = gMercProfiles[ubSrcProfile].bLife;
|
||||
pNewProfile->bAgility = gMercProfiles[ubSrcProfile].bAgility;
|
||||
pNewProfile->bDexterity = gMercProfiles[ubSrcProfile].bDexterity;
|
||||
pNewProfile->bStrength = gMercProfiles[ubSrcProfile].bStrength;
|
||||
pNewProfile->bWisdom = gMercProfiles[ubSrcProfile].bWisdom;
|
||||
pNewProfile->bExpLevel = gMercProfiles[ubSrcProfile].bExpLevel;
|
||||
|
||||
|
||||
pNewProfile->bInvStatus = gMercProfiles[ ubSrcProfile ].bInvStatus;
|
||||
pNewProfile->bInvNumber = gMercProfiles[ ubSrcProfile ].bInvNumber;
|
||||
pNewProfile->inv = gMercProfiles[ ubSrcProfile ].inv;
|
||||
@@ -2503,11 +2531,11 @@ SOLDIERTYPE * SwapLarrysProfiles( SOLDIERTYPE * pSoldier )
|
||||
pSoldier->stats.bStrength = pNewProfile->bStrength + pNewProfile->bStrengthDelta;
|
||||
pSoldier->stats.bDexterity = pNewProfile->bDexterity + pNewProfile->bDexterityDelta;
|
||||
pSoldier->stats.bAgility = pNewProfile->bAgility + pNewProfile->bAgilityDelta;
|
||||
pSoldier->stats.bWisdom = pNewProfile->bWisdom + pNewProfile->bWisdomDelta;
|
||||
pSoldier->stats.bWisdom = pNewProfile->bWisdom + pNewProfile->bWisdomDelta;
|
||||
pSoldier->stats.bExpLevel = pNewProfile->bExpLevel + pNewProfile->bExpLevelDelta;
|
||||
pSoldier->stats.bLeadership = pNewProfile->bLeadership + pNewProfile->bLeadershipDelta;
|
||||
|
||||
pSoldier->stats.bMarksmanship = pNewProfile->bMarksmanship + pNewProfile->bMarksmanshipDelta;
|
||||
pSoldier->stats.bMarksmanship = pNewProfile->bMarksmanship + pNewProfile->bMarksmanshipDelta;
|
||||
pSoldier->stats.bMechanical = pNewProfile->bMechanical + pNewProfile->bMechanicDelta;
|
||||
pSoldier->stats.bMedical = pNewProfile->bMedical + pNewProfile->bMedicalDelta;
|
||||
pSoldier->stats.bExplosive = pNewProfile->bExplosive + pNewProfile->bExplosivesDelta;
|
||||
@@ -2527,7 +2555,7 @@ SOLDIERTYPE * SwapLarrysProfiles( SOLDIERTYPE * pSoldier )
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else
|
||||
else if ( pSoldier->ubProfile == LARRY_NORMAL )
|
||||
{
|
||||
SetFactFalse( FACT_LARRY_CHANGED );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user