22#ifndef FREESCAPE_DARK_H
23#define FREESCAPE_DARK_H
25#include "audio/mixer.h"
26#include "common/array.h"
27#include "freescape/music.h"
28#include "freescape/games/dark/c64.music.h"
29#include "freescape/games/dark/c64.sfx.h"
34 kVariableDarkEnding = 28,
35 kVariableDarkECD = 29,
36 kVariableActiveECDs = 60,
40 kDarkEndingEvathDestroyed = 1,
41 kDarkEndingECDsDestroyed = 2,
60 uint32 _initialEnergy;
61 uint32 _initialShield;
62 uint32 _jetFuelSeconds;
63 void addSkanner(
Area *area);
66 void initGameState()
override;
67 void borderScreen()
override;
68 bool triggerWinCondition()
override;
69 bool checkIfGameEnded()
override;
70 void endGame()
override;
72 void gotoArea(uint16 areaID,
int entranceID)
override;
73 void pressedKey(
const int keycode)
override;
78 void initAmigaAtari();
82 void loadAssets()
override;
83 void loadAssetsDOSFullGame()
override;
84 void loadAssetsDOSDemo()
override;
85 void loadAssetsC64FullGame()
override;
86 void loadAssetsAmigaFullGame()
override;
88 void loadAssetsAtariFullGame()
override;
91 void loadAssetsCPCFullGame()
override;
93 void loadAssetsZXDemo()
override;
94 void loadAssetsZXFullGame()
override;
99 void updateTimeVariables()
override;
101 void drawBinaryClock(
Graphics::Surface *surface,
int xPosition,
int yPosition, uint32 front, uint32 back);
106 void updateIndicatorsDOS(
const byte *palette);
108 void drawSensorShoot(
Sensor *sensor)
override;
122 uint32 _cpcActionIndicatorUntilMillis;
131 static const int kAtariSpriteDelta = 0xE052;
140 bool _amigaCompassYawPhaseInitialized;
141 int _amigaCompassYawPhase;
142 int _amigaCompassYawLastUpdateTick;
143 bool _jetpackIndicatorStateInitialized;
144 bool _jetpackIndicatorLastFlyMode;
145 int _jetpackIndicatorTransitionFrame;
146 int _jetpackIndicatorTransitionDirection;
147 uint32 _jetpackIndicatorNextFrameMillis;
155 int _soundIndexRestoreECD;
156 int _soundIndexDestroyECD;
162 bool _c64CompassInitialized;
163 int _c64CompassPosition;
166 void toggleC64Sound();
170 void drawString(
const DarkFontSize size,
const Common::String &str,
int x,
int y, uint32 primaryColor, uint32 secondaryColor, uint32 backColor,
Graphics::Surface *surface);
171 void drawInfoMenu()
override;
177 void addECDs(
Area *area);
178 void addECD(
Area *area,
const Math::Vector3d position,
int index);
179 void restoreECD(
Area &area,
int index);
180 bool checkECD(uint16 areaID,
int index);
181 bool tryDestroyECD(
int index);
182 bool tryDestroyECDFullGame(
int index);
183 void addWalls(
Area *area);
190 void drawVerticalCompass(
Graphics::Surface *surface,
int x,
int y,
float angle, uint32 color);
191 void drawHorizontalCompass(
int x,
int y,
float angle, uint32 front, uint32 back,
Graphics::Surface *surface);
Definition: instruction.h:49
Definition: freescape.h:191
Definition: managed_surface.h:51
Definition: advancedDetector.h:164