Helicopter features (by anv):

- Waldo can now repair the helicopter for money
- alternative fuel system
- damage to helicopter can damage passengers

Appropriate Data in GameDir r1897.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6695 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2013-12-19 22:01:44 +00:00
parent 80c1b65494
commit faba9ea713
39 changed files with 1075 additions and 131 deletions
+40
View File
@@ -49,6 +49,9 @@
#include "Luaglobal.h"
// anv: Waldo The Mechanic - for fact checking with helicopter
#include "Vehicles.h"
#define TESTQUESTS
extern SOLDIERTYPE * gpSrcSoldier;
@@ -1307,6 +1310,43 @@ BOOLEAN CheckFact( UINT16 usFact, UINT8 ubProfileID )
gubFact[usFact] = ;
break;
*/
// anv: facts for checking if Waldo can repair helicopter
case FACT_HELI_DAMAGED_CAN_START_REPAIR:
gubFact[usFact] = ( gGameExternalOptions.fWaldoCanRepairHelicopter &&
!fHelicopterDestroyed && !fHelicopterIsAirBorne && gubHelicopterHitsTaken == 1 &&
pVehicleList[ iHelicopterVehicleId ].sSectorX == gMercProfiles[ WALDO ].sSectorX && pVehicleList[ iHelicopterVehicleId ].sSectorY == gMercProfiles[ WALDO ].sSectorY &&
LaptopSaveInfo.iCurrentBalance >= CalculateHelicopterRepairCost( FALSE ) &&
gubHelicopterHoursToRepair == 0 && CheckFact( FACT_WALDO_MET, 0 ) );
break;
case FACT_HELI_SERIOUSLY_DAMAGED_CAN_START_REPAIR:
gubFact[usFact] = ( gGameExternalOptions.fWaldoCanRepairHelicopter &&
!fHelicopterDestroyed && !fHelicopterIsAirBorne && gubHelicopterHitsTaken == 2 &&
pVehicleList[ iHelicopterVehicleId ].sSectorX == gMercProfiles[ WALDO ].sSectorX && pVehicleList[ iHelicopterVehicleId ].sSectorY == gMercProfiles[ WALDO ].sSectorY &&
LaptopSaveInfo.iCurrentBalance >= CalculateHelicopterRepairCost( TRUE ) &&
gubHelicopterHoursToRepair == 0 && CheckFact( FACT_WALDO_MET, 0 ) );
break;
case FACT_HELI_GIVEN_MONEY_CAN_START_REPAIR:
gubFact[usFact] = ( ( gGameExternalOptions.fWaldoCanRepairHelicopter &&
!fHelicopterDestroyed && !fHelicopterIsAirBorne && gubHelicopterHitsTaken > 0 &&
pVehicleList[ iHelicopterVehicleId ].sSectorX == gMercProfiles[ WALDO ].sSectorX && pVehicleList[ iHelicopterVehicleId ].sSectorY == gMercProfiles[ WALDO ].sSectorY &&
gubHelicopterHoursToRepair == 0 ) &&
( CheckFact(FACT_GIVEN_ENOUGH_TO_REPAIR_HELI, 0) || CheckFact(FACT_GIVEN_ENOUGH_TO_SERIOUSLY_REPAIR_HELI, 0) ) && CheckFact( FACT_WALDO_MET, 0 ) );
break;
case FACT_HELI_CANT_START_REPAIR:
gubFact[usFact] = ( !CheckFact(FACT_HELI_GIVEN_MONEY_CAN_START_REPAIR, 0) && !CheckFact(FACT_HELICOPTER_IN_PERFECT_CONDITION, 0));
break;
case FACT_HELICOPTER_IN_PERFECT_CONDITION:
gubFact[usFact] = ( gubHelicopterHitsTaken == 0 );
break;
case FACT_HELICOPTER_LOST:
gubFact[usFact] = fHelicopterDestroyed;
break;
default:
break;