mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
- 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:
+5
-20
@@ -5437,14 +5437,11 @@ BOOLEAN DisplayHighLightBox( void )
|
||||
// add to dead list
|
||||
void AddCharacterToDeadList( SOLDIERTYPE *pSoldier )
|
||||
{
|
||||
INT32 iCounter = 0;
|
||||
|
||||
|
||||
for( iCounter = 0; iCounter < 256; iCounter++ )
|
||||
for ( INT32 iCounter = 0; iCounter < 256; ++iCounter )
|
||||
{
|
||||
if( LaptopSaveInfo.ubDeadCharactersList[ iCounter ] == -1 )
|
||||
{
|
||||
// valid slot, merc not found yet, inset here
|
||||
// valid slot, merc not found yet, insert here
|
||||
LaptopSaveInfo.ubDeadCharactersList[ iCounter ] = pSoldier->ubProfile;
|
||||
|
||||
// leave
|
||||
@@ -5454,7 +5451,6 @@ void AddCharacterToDeadList( SOLDIERTYPE *pSoldier )
|
||||
// are they already in the list?
|
||||
if( LaptopSaveInfo.ubDeadCharactersList[ iCounter ] == pSoldier->ubProfile )
|
||||
{
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -5463,10 +5459,7 @@ void AddCharacterToDeadList( SOLDIERTYPE *pSoldier )
|
||||
|
||||
void AddCharacterToFiredList( SOLDIERTYPE *pSoldier )
|
||||
{
|
||||
INT32 iCounter = 0;
|
||||
|
||||
|
||||
for( iCounter = 0; iCounter < 256; iCounter++ )
|
||||
for ( INT32 iCounter = 0; iCounter < 256; ++iCounter )
|
||||
{
|
||||
if( LaptopSaveInfo.ubLeftCharactersList[ iCounter ] == -1 )
|
||||
{
|
||||
@@ -5480,19 +5473,14 @@ void AddCharacterToFiredList( SOLDIERTYPE *pSoldier )
|
||||
// are they already in the list?
|
||||
if( LaptopSaveInfo.ubLeftCharactersList[ iCounter ] == pSoldier->ubProfile )
|
||||
{
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void AddCharacterToOtherList( SOLDIERTYPE *pSoldier )
|
||||
{
|
||||
INT32 iCounter = 0;
|
||||
|
||||
|
||||
for( iCounter = 0; iCounter < 256; iCounter++ )
|
||||
for ( INT32 iCounter = 0; iCounter < 256; ++iCounter )
|
||||
{
|
||||
if( LaptopSaveInfo.ubOtherCharactersList[ iCounter ] == -1 )
|
||||
{
|
||||
@@ -5506,7 +5494,6 @@ void AddCharacterToOtherList( SOLDIERTYPE *pSoldier )
|
||||
// are they already in the list?
|
||||
if( LaptopSaveInfo.ubOtherCharactersList[ iCounter ] == pSoldier->ubProfile )
|
||||
{
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -5518,9 +5505,7 @@ void AddCharacterToOtherList( SOLDIERTYPE *pSoldier )
|
||||
//to be on your team list, and departed list )
|
||||
BOOLEAN RemoveNewlyHiredMercFromPersonnelDepartedList( UINT8 ubProfile )
|
||||
{
|
||||
INT32 iCounter = 0;
|
||||
|
||||
for( iCounter = 0; iCounter < 256; iCounter++ )
|
||||
for ( INT32 iCounter = 0; iCounter < 256; ++iCounter )
|
||||
{
|
||||
// are they already in the Dead list?
|
||||
if( LaptopSaveInfo.ubDeadCharactersList[ iCounter ] == ubProfile )
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user