Fix vehicles consuming fuel after instant movement cancel (#213)

This commit is contained in:
Andrzej Fałkowski
2023-08-28 16:26:02 +03:00
committed by GitHub
parent 8ec02b2d40
commit 3ddacf1a44
+16 -16
View File
@@ -1951,33 +1951,33 @@ void GroupArrivedAtSector( UINT8 ubGroupID, BOOLEAN fCheckForBattle, BOOLEAN fNe
SectorInfo[SECTOR( pGroup->ubSectorX, pGroup->ubSectorY )].bLastKnownEnemies = NumNonPlayerTeamMembersInSector( pGroup->ubSectorX, pGroup->ubSectorY, ENEMY_TEAM ); SectorInfo[SECTOR( pGroup->ubSectorX, pGroup->ubSectorY )].bLastKnownEnemies = NumNonPlayerTeamMembersInSector( pGroup->ubSectorX, pGroup->ubSectorY, ENEMY_TEAM );
} }
// award life 'experience' for travelling, based on travel time!
if ( !pGroup->fVehicle )
{
// Flugente: do not award experience gain if we never left // Flugente: do not award experience gain if we never left
if ( !fNeverLeft ) if (!fNeverLeft)
{
// award life 'experience' for travelling, based on travel time!
if (!pGroup->fVehicle)
{ {
// gotta be walking to get tougher // gotta be walking to get tougher
AwardExperienceForTravelling( pGroup ); AwardExperienceForTravelling(pGroup);
} }
} else if (!IsGroupTheHelicopterGroup(pGroup))
else if( !IsGroupTheHelicopterGroup( pGroup ) )
{ {
SOLDIERTYPE *pSoldier; SOLDIERTYPE* pSoldier;
INT32 iVehicleID; INT32 iVehicleID;
iVehicleID = GivenMvtGroupIdFindVehicleId( pGroup->ubGroupID ); iVehicleID = GivenMvtGroupIdFindVehicleId(pGroup->ubGroupID);
AssertMsg( iVehicleID != -1, "GroupArrival for vehicle group. Invalid iVehicleID. " ); AssertMsg(iVehicleID != -1, "GroupArrival for vehicle group. Invalid iVehicleID. ");
pSoldier = GetSoldierStructureForVehicle( iVehicleID ); pSoldier = GetSoldierStructureForVehicle(iVehicleID);
AssertMsg( pSoldier, "GroupArrival for vehicle group. Invalid soldier pointer." ); AssertMsg(pSoldier, "GroupArrival for vehicle group. Invalid soldier pointer.");
SpendVehicleFuel( pSoldier, (INT16)(pGroup->uiTraverseTime*6) ); SpendVehicleFuel(pSoldier, (INT16)(pGroup->uiTraverseTime * 6));
if( !VehicleFuelRemaining( pSoldier ) ) if (!VehicleFuelRemaining(pSoldier))
{ {
ReportVehicleOutOfGas( iVehicleID, pGroup->ubSectorX, pGroup->ubSectorY ); ReportVehicleOutOfGas(iVehicleID, pGroup->ubSectorX, pGroup->ubSectorY);
//Nuke the group's path, so they don't continue moving. //Nuke the group's path, so they don't continue moving.
ClearMercPathsAndWaypointsForAllInGroup( pGroup ); ClearMercPathsAndWaypointsForAllInGroup(pGroup);
}
} }
} }
} }