mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
fix: vehicles no longer digest food, and no longer auto-consume food
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5473 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+10
-5
@@ -38,6 +38,7 @@ UINT8 gSectorWaterType[256][4];
|
|||||||
//extern BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse );
|
//extern BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse );
|
||||||
//extern BOOLEAN TacticalRemoveSoldier( UINT16 usSoldierIndex );
|
//extern BOOLEAN TacticalRemoveSoldier( UINT16 usSoldierIndex );
|
||||||
extern BOOLEAN GetSectorFlagStatus( INT16 sMapX, INT16 sMapY, UINT8 bMapZ, UINT32 uiFlagToSet );
|
extern BOOLEAN GetSectorFlagStatus( INT16 sMapX, INT16 sMapY, UINT8 bMapZ, UINT32 uiFlagToSet );
|
||||||
|
extern BOOLEAN IsVehicle(SOLDIERTYPE *pSoldier);
|
||||||
|
|
||||||
// these midifiers are applied separately for both food and water
|
// these midifiers are applied separately for both food and water
|
||||||
// apart from the ubStatDamageChance values, be careful not to set any modifiers below -50 or above 0 unless you know what you are doing!!!
|
// apart from the ubStatDamageChance values, be careful not to set any modifiers below -50 or above 0 unless you know what you are doing!!!
|
||||||
@@ -70,6 +71,10 @@ BOOLEAN ApplyFood( SOLDIERTYPE *pSoldier, OBJECTTYPE *pObject, BOOLEAN fForce, B
|
|||||||
if ( !pSoldier || !pObject || !(pObject->exists() ) || (*pObject)[0]->data.objectStatus < 1 )
|
if ( !pSoldier || !pObject || !(pObject->exists() ) || (*pObject)[0]->data.objectStatus < 1 )
|
||||||
return( FALSE);
|
return( FALSE);
|
||||||
|
|
||||||
|
// dont feed our machines
|
||||||
|
if ( pSoldier->ubProfile == ROBOT || IsVehicle(pSoldier) )
|
||||||
|
return( FALSE);
|
||||||
|
|
||||||
UINT32 foodtype = Item[pObject->usItem].foodtype;
|
UINT32 foodtype = Item[pObject->usItem].foodtype;
|
||||||
|
|
||||||
// if not a food item, nothing to see here
|
// if not a food item, nothing to see here
|
||||||
@@ -364,7 +369,7 @@ void HourlyFoodSituationUpdate( SOLDIERTYPE *pSoldier )
|
|||||||
pSoldier->timeChanges.uiChangeStrengthTime = GetJA2Clock();
|
pSoldier->timeChanges.uiChangeStrengthTime = GetJA2Clock();
|
||||||
pSoldier->usValueGoneUp &= ~( STRENGTH_INCREASE );
|
pSoldier->usValueGoneUp &= ~( STRENGTH_INCREASE );
|
||||||
|
|
||||||
if ( foodsituation > FOOD_NORMAL )
|
if ( foodsituation < FOOD_NORMAL )
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's strength was damaged due to being overfed!", pSoldier->name );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's strength was damaged due to being overfed!", pSoldier->name );
|
||||||
else
|
else
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's strength was damaged due to lack of nutrition!", pSoldier->name );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's strength was damaged due to lack of nutrition!", pSoldier->name );
|
||||||
@@ -395,7 +400,7 @@ void HourlyFoodSituationUpdate( SOLDIERTYPE *pSoldier )
|
|||||||
gMercProfiles[ pSoldier->ubProfile ].bLifeMax = pSoldier->stats.bLifeMax;
|
gMercProfiles[ pSoldier->ubProfile ].bLifeMax = pSoldier->stats.bLifeMax;
|
||||||
gMercProfiles[ pSoldier->ubProfile ].records.usTimesStatDamaged++;
|
gMercProfiles[ pSoldier->ubProfile ].records.usTimesStatDamaged++;
|
||||||
|
|
||||||
if ( foodsituation > FOOD_NORMAL )
|
if ( foodsituation < FOOD_NORMAL )
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's health was damaged due to being overfed!", pSoldier->name );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's health was damaged due to being overfed!", pSoldier->name );
|
||||||
else
|
else
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's health was damaged due to lack of nutrition!", pSoldier->name );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's health was damaged due to lack of nutrition!", pSoldier->name );
|
||||||
@@ -448,7 +453,7 @@ void HourlyFoodSituationUpdate( SOLDIERTYPE *pSoldier )
|
|||||||
pSoldier->timeChanges.uiChangeStrengthTime = GetJA2Clock();
|
pSoldier->timeChanges.uiChangeStrengthTime = GetJA2Clock();
|
||||||
pSoldier->usValueGoneUp &= ~( STRENGTH_INCREASE );
|
pSoldier->usValueGoneUp &= ~( STRENGTH_INCREASE );
|
||||||
|
|
||||||
if ( watersituation > FOOD_NORMAL )
|
if ( watersituation < FOOD_NORMAL )
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's strength was damaged due to excessive drinking!", pSoldier->name );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's strength was damaged due to excessive drinking!", pSoldier->name );
|
||||||
else
|
else
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's strength was damaged due to lack of water!", pSoldier->name );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's strength was damaged due to lack of water!", pSoldier->name );
|
||||||
@@ -481,7 +486,7 @@ void HourlyFoodSituationUpdate( SOLDIERTYPE *pSoldier )
|
|||||||
gMercProfiles[ pSoldier->ubProfile ].bLifeMax = pSoldier->stats.bLifeMax;
|
gMercProfiles[ pSoldier->ubProfile ].bLifeMax = pSoldier->stats.bLifeMax;
|
||||||
gMercProfiles[ pSoldier->ubProfile ].records.usTimesStatDamaged++;
|
gMercProfiles[ pSoldier->ubProfile ].records.usTimesStatDamaged++;
|
||||||
|
|
||||||
if ( watersituation > FOOD_NORMAL )
|
if ( watersituation < FOOD_NORMAL )
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's health was damaged due to excessive drinking!", pSoldier->name );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's health was damaged due to excessive drinking!", pSoldier->name );
|
||||||
else
|
else
|
||||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's health was damaged due to lack of water!", pSoldier->name );
|
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"%s's health was damaged due to lack of water!", pSoldier->name );
|
||||||
@@ -700,7 +705,7 @@ void HourlyFoodUpdate( void )
|
|||||||
for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; ++bMercID, ++pSoldier)
|
for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; ++bMercID, ++pSoldier)
|
||||||
{
|
{
|
||||||
//if the merc is active, and in Arulco
|
//if the merc is active, and in Arulco
|
||||||
if ( pSoldier && pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE && !(pSoldier->bAssignment == IN_TRANSIT || pSoldier->bAssignment == ASSIGNMENT_DEAD ) )
|
if ( pSoldier && pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE && pSoldier->ubProfile != ROBOT && !IsVehicle(pSoldier) && !(pSoldier->bAssignment == IN_TRANSIT || pSoldier->bAssignment == ASSIGNMENT_DEAD ) )
|
||||||
{
|
{
|
||||||
// digestion
|
// digestion
|
||||||
HourlyFoodSituationUpdate( pSoldier );
|
HourlyFoodSituationUpdate( pSoldier );
|
||||||
|
|||||||
@@ -2930,7 +2930,7 @@ void RenderSMPanel( BOOLEAN *pfDirty )
|
|||||||
{
|
{
|
||||||
GetMoraleString( gpSMCurrentMerc, pMoraleStr );
|
GetMoraleString( gpSMCurrentMerc, pMoraleStr );
|
||||||
// Flugente: food info if food system is active
|
// Flugente: food info if food system is active
|
||||||
if ( gGameOptions.fFoodSystem )
|
if ( gGameOptions.fFoodSystem && gpSMCurrentMerc->ubProfile != ROBOT && !IsVehicle(gpSMCurrentMerc) )
|
||||||
{
|
{
|
||||||
// Flugente: added a display for poison, only show text if actually poisoned
|
// Flugente: added a display for poison, only show text if actually poisoned
|
||||||
if ( gpSMCurrentMerc->bPoisonSum > 0 )
|
if ( gpSMCurrentMerc->bPoisonSum > 0 )
|
||||||
@@ -5507,7 +5507,7 @@ void RenderTEAMPanel( BOOLEAN fDirty )
|
|||||||
{
|
{
|
||||||
GetMoraleString( pSoldier, pMoraleStr );
|
GetMoraleString( pSoldier, pMoraleStr );
|
||||||
|
|
||||||
if ( gGameOptions.fFoodSystem )
|
if ( gGameOptions.fFoodSystem && pSoldier->ubProfile != ROBOT && !IsVehicle(pSoldier) )
|
||||||
{
|
{
|
||||||
// Flugente: added a display for poison, only show text if actually poisoned
|
// Flugente: added a display for poison, only show text if actually poisoned
|
||||||
if ( pSoldier->bPoisonSum > 0 )
|
if ( pSoldier->bPoisonSum > 0 )
|
||||||
|
|||||||
Reference in New Issue
Block a user