- Fix: cleaning weapons prompt read parameters wrong

- when a merc regains HP via surgery, display the gain
- if an EPC leaves the team, add them to the list of departed characters

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7977 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2015-08-17 20:00:19 +00:00
parent 873929c410
commit 5385ae1295
4 changed files with 29 additions and 24 deletions
+3 -3
View File
@@ -4975,7 +4975,7 @@ void CleanWeapons( BOOLEAN fEntireTeam )
return;
// if in combat, always only for selected merc
if ( !fEntireTeam || (gTacticalStatus.uiFlags & INCOMBAT) )
if ( !fEntireTeam )
{
if ( gusSelectedSoldier == NOBODY )
return;
@@ -4987,7 +4987,7 @@ void CleanWeapons( BOOLEAN fEntireTeam )
}
else // perform action for every merc in this sector
{
UINT8 bMercID, bLastTeamID;
UINT16 bMercID, bLastTeamID;
SOLDIERTYPE* pSoldier = NULL;
bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
@@ -5326,7 +5326,7 @@ void TacticalFunctionSelectionMessageBoxCallBack( UINT8 ubExitValue )
break;
case 3:
// clean weapons - in realtime of the entire team, in turnbased only for the selected merc
CleanWeapons( gTacticalStatus.uiFlags & INCOMBAT );
CleanWeapons( !(gTacticalStatus.uiFlags & INCOMBAT) );
break;
case 4:
UpdateGear();
+17
View File
@@ -13031,13 +13031,22 @@ UINT32 SOLDIERTYPE::SoldierDressWound( SOLDIERTYPE *pVictim, INT16 sKitPts, INT1
pVictim->bBleeding = 0;
uiMedcost += max( 0, (((usLifeReturned / 100) - pVictim->bBleeding) / 2) ); // add medkit points cost for unbandaged part
}
// display healing done
pVictim->flags.fDisplayDamage = TRUE;
pVictim->sDamage -= (usLifeReturned / 100);
}
else // this shouldn't even happen, but we still want to have it here for sure
{
// display healing done
pVictim->flags.fDisplayDamage = TRUE;
pVictim->sDamage -= (pVictim->stats.bLifeMax - pVictim->stats.bLife);
pVictim->stats.bLife = pVictim->stats.bLifeMax;
pVictim->iHealableInjury = 0;
pVictim->bBleeding = 0;
}
// Reduce max breath based on life returned
if ( (pVictim->bBreathMax - (((usLifeReturned / 100) * gSkillTraitValues.usDOSurgeryMaxBreathLoss) / 100)) <= BREATHMAX_ABSOLUTE_MINIMUM )
{
@@ -22540,9 +22549,17 @@ UINT32 VirtualSoldierDressWound( SOLDIERTYPE *pSoldier, SOLDIERTYPE *pVictim, OB
pVictim->bBleeding = 0;
uiMedcost += max( 0, (((iLifeReturned / 100) - pVictim->bBleeding) / 2) ); // add medkit points cost for unbandaged part
}
// display healing done
pVictim->flags.fDisplayDamage = TRUE;
pVictim->sDamage -= (iLifeReturned / 100);
}
else // this shouldn't even happen, but we still want to have it here for sure
{
// display healing done
pVictim->flags.fDisplayDamage = TRUE;
pVictim->sDamage -= (pVictim->stats.bLifeMax - pVictim->stats.bLife);
pVictim->stats.bLife = pVictim->stats.bLifeMax;
pVictim->iHealableInjury = 0;
pVictim->bBleeding = 0;
+4 -1
View File
@@ -2067,12 +2067,15 @@ BOOLEAN UnRecruitEPC( UINT8 ubCharNum )
if ( pSoldier->bAssignment < ON_DUTY )
{
ResetDeadSquadMemberList( pSoldier->bAssignment );
ResetDeadSquadMemberList( pSoldier->bAssignment );
}
// Rmeove from squad....
RemoveCharacterFromSquads( pSoldier );
// Add to our 'departed' list
AddCharacterToOtherList( pSoldier );
// O< check if this is the only guy in the sector....
if ( gusSelectedSoldier == pSoldier->ubID )
{