22 #ifndef NANCY_ACTION_DRIVINGPUZZLE_H 23 #define NANCY_ACTION_DRIVINGPUZZLE_H 25 #include "engines/nancy/action/actionrecord.h" 26 #include "engines/nancy/commontypes.h" 27 #include "engines/nancy/action/navigationrecords.h" 28 #include "engines/nancy/action/actionzone.h" 69 enum Variant { kDriving = 0, kChase };
77 void execute()
override;
80 bool isViewportRelative()
const override {
return true; }
84 return _variant == kChase ?
"ChasePuzzle" :
"DrivingPuzzle";
97 uint16 fadeTotalTime = 0;
98 uint16 fadeToBlackTime = 0;
100 int16 eventFlag = -1;
101 byte eventFlagValue = 0;
102 bool autoTrigger =
false;
103 bool carInside =
false;
109 kChaseGate01Flag = 0,
110 kChaseOffViewScene = 1,
111 kChaseOffViewFlag = 2,
112 kChaseGate12Flag = 3,
113 kChasePathEndScene = 4
133 bool wasActive =
false;
148 bool carInside =
false;
169 bool aboveCar =
false;
178 double heading = 0.0;
201 void armExitScene(uint16 sceneID, int16 flag, byte flagValue);
206 void updatePhysics(
int throttle,
double cursorDist);
213 void saveState()
const;
223 bool isWall(
int px,
int py)
const;
233 uint frameIndexForHeading(
double heading, uint frameCount)
const;
256 int32 _startAngle = 0;
257 int32 _forwardSpeed = 0;
258 int32 _reverseSpeed = 0;
259 int16 _frictionIndex = 0;
260 static const uint kTireResourceIndex = 2;
261 int32 _distanceDivisor = 0;
262 bool _retainState =
false;
263 uint16 _finishScene = kNoScene;
274 int16 _chaseParams[5] = {};
294 double _carHeading = 0.0;
295 double _carVelocity = 0.0;
296 double _speedCap = 0.0;
297 uint32 _lastPhysicsMs = 0;
298 int _parkedDest = -1;
303 bool _exitHasFade =
false;
304 byte _exitFadeType = 0;
305 uint16 _exitFadeTotalTime = 0;
306 uint16 _exitFadeToBlackTime = 0;
308 int16 _exitFlag = -1;
309 byte _exitFlagValue = 0;
313 ChaseState _chaseState = kPursuit;
314 bool _chaserOnPathB =
false;
320 double _fuelBurnAccum = 0.0;
322 bool _flatTirePending =
false;
323 bool _infiniteFuel =
false;
326 bool _chaseStarted =
false;
327 uint32 _chaseStartTime = 0;
328 uint _chaserWaypoint = 0;
329 double _chaserX = 0.0;
330 double _chaserY = 0.0;
331 double _chaserHeading = 0.0;
342 #endif // NANCY_ACTION_DRIVINGPUZZLE_H Definition: managed_surface.h:51
Definition: drivingpuzzle.h:92
Definition: drivingpuzzle.h:154
Definition: drivingpuzzle.h:163
Definition: commontypes.h:165
Definition: drivingpuzzle.h:137
Definition: drivingpuzzle.h:144
Definition: actionrecord.h:161
Definition: commontypes.h:300
Definition: drivingpuzzle.h:127
Definition: actionmanager.h:32
Definition: drivingpuzzle.h:67
Definition: drivingpuzzle.h:174