21 #ifndef SCUMM_INSANE_MORTIMER_FLIGHT_H 22 #define SCUMM_INSANE_MORTIMER_FLIGHT_H 24 #include "scumm/insane/mortimer/movie.h" 30 enum { kWidth = 384, kHeight = 288 };
31 enum Weapon { kRevitascope, kSlimeGun };
32 enum ShotResult { kMiss, kAnimalRescued, kHornetHit, kShellRestored };
34 uint16 id, toggle, remapToggle;
41 explicit MortimerFlight(
bool isDemo =
true,
bool keepProgress =
false);
45 void reset()
override;
46 bool advance(
bool renderFrame =
true)
override;
50 uint rescuedCount()
const {
return _rescuedCount; }
51 uint rescuedSpecies()
const {
return _rescuedSpecies; }
52 Weapon weapon()
const {
return _weapon; }
53 void resetWeapon() { _weapon = kRevitascope; }
54 void setWeapon(Weapon weapon) { _weapon = weapon; }
57 bool interactive()
const {
return _interactive; }
58 void setSteering(
const Common::Point &point) { _steering = point; }
59 void setCollisionRadius(uint radius) { _collisionRadius = radius; }
62 void handleAction(
const byte *data, uint32 size)
override;
70 int objectScale(byte codec)
const override;
71 Target *findTarget(uint16
id);
72 bool targetHit(uint16
id)
const;
73 void hitTarget(uint16
id);
79 const bool _isDemo, _keepProgress;
80 bool _hitTargets[1400];
81 bool _initialInteractive, _interactive, _inBranch, _ignoreCollisions;
84 uint _rescuedCount, _rescuedSpecies, _collisionRadius;