22 #ifndef ALG_GAME_SPACEPIRATES_H 23 #define ALG_GAME_SPACEPIRATES_H 25 #include "common/hashmap.h" 26 #include "common/rect.h" 28 #include "gui/debugger.h" 31 #include "alg/scene.h" 57 void debug_warpTo(
int val);
61 void registerScriptFunctions();
62 void verifyScriptFunctions();
63 void unregisterScriptFunctions();
65 SPScriptFunctionRect getScriptFunctionRectHit(
Common::String name);
66 SPScriptFunctionScene getScriptFunctionScene(SceneFuncType type,
Common::String name);
70 SPScriptFunctionRectMap _rectHitFuncs;
71 SPScriptFunctionSceneMap _scenePreOps;
72 SPScriptFunctionSceneMap _sceneShowMsg;
73 SPScriptFunctionSceneMap _sceneInsOps;
74 SPScriptFunctionSceneMap _sceneWepDwn;
75 SPScriptFunctionSceneMap _sceneScnScr;
76 SPScriptFunctionSceneMap _sceneNxtFrm;
77 SPScriptFunctionSceneMap _sceneNxtScn;
78 SPScriptFunctionSceneMap _sceneMissedRects;
103 uint8 _difficulty = 1;
104 uint8 _oldDifficulty = 1;
105 bool _holster =
false;
109 int32 _oldScore = -1;
113 uint8 _oldWhichGun = 0xFF;
115 bool _gameLoaded =
false;
116 int8 _livesLoaded = 0;
117 uint16 _shotsLoaded = 0;
118 int32 _scoreLoaded = 0;
119 uint8 _difficultyLoaded = 0;
120 bool _nextSceneFound =
false;
121 bool _playerDied =
false;
122 int16 _randomPicked = -1;
123 uint32 _lastExtraLifeScore = 0;
124 uint16 _randomScenesValues[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
125 uint8 _randomScenesUsed[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
126 uint8 _maxRandom = 0;
127 uint8 _randomCount = 0;
128 uint8 _randomCountAsteroids = 0;
129 uint8 _randomCountMidship = 0;
130 uint8 _miscRoomsCount = 0;
131 uint16 _pickedMiscRooms = 0;
133 int8 _currentWorld = 0;
134 uint16 _worldGotTo[4] = {0, 0, 0, 0};
135 bool _worldDone[4] = {
false,
false,
false,
false};
136 bool _selectedAWorld =
false;
137 uint16 _selectedWorldStart = 0;
138 uint16 _sceneBeforeFlyingSkulls = 0;
139 uint8 _shotGrinReaperCount = 0;
141 uint8 _shotColor = 0;
142 uint8 _shotDirection = 0;
143 uint8 _crystalsShot = 0;
144 uint8 _crystalState = 0;
145 uint16 _pickedStartSplitter = 0;
146 bool _targetPracticeReset =
false;
152 void changeDifficulty(uint8 newDifficulty);
153 void showDifficulty(uint8 newDifficulty,
bool updateCursor);
157 void displayLivesLeft();
158 void displayScores();
159 void displayShotsLeft();
166 void playErrorSound();
167 void displayShotFiredImage();
169 void displayShotLine(uint16 startX, uint16 startY, uint16 endX, uint16 endY);
170 void displayMultipleShotLines();
171 void enableVideoFadeIn();
173 uint16 randomUnusedScene(uint8 max);
174 uint16 randomNumberInRange(uint16 min, uint16 max);
175 uint16 pickCrystalScene(uint16 scene1, uint16 scene2, uint16 scene3);
178 void rectNewScene(
Rect *rect);
179 void rectShotMenu(
Rect *rect);
180 void rectSave(
Rect *rect);
181 void rectLoad(
Rect *rect);
182 void rectContinue(
Rect *rect);
183 void rectStart(
Rect *rect);
184 void rectEasy(
Rect *rect);
185 void rectAverage(
Rect *rect);
186 void rectHard(
Rect *rect);
187 void rectExit(
Rect *rect);
188 void rectDefault(
Rect *rect);
189 void rectKillInnocentPerson(
Rect *rect);
190 void rectContinueJunkRings(
Rect *rect);
191 void rectShotGrinReaper(
Rect *rect);
192 void rectShowMadDog(
Rect *rect);
193 void rectPottWorldShowCrystal(
Rect *rect);
194 void rectShotLeft(
Rect *rect);
195 void rectShotRight(
Rect *rect);
196 void rectShotGold(
Rect *rect);
197 void rectShotSilver(
Rect *rect);
198 void rectSelectedDuneWorld(
Rect *rect);
199 void rectSelectedJunkWorld(
Rect *rect);
200 void rectSelectedDragonsTeethWorld(
Rect *rect);
201 void rectSelectedVolcanoWorld(
Rect *rect);
202 void rectShotRedDeathGrip(
Rect *rect);
203 void rectShotBlueDeathGrip(
Rect *rect);
204 void rectShotGreenDeathGrip(
Rect *rect);
205 void rectShotYellow(
Rect *rect);
206 void rectShotBlue(
Rect *rect);
207 void rectShotRedCrystal(
Rect *rect);
208 void rectShotBlueCrystal(
Rect *rect);
209 void rectShotGreenCrystal(
Rect *rect);
210 void rectShotBlackDragon1(
Rect *rect);
211 void rectShotBlackDragon2(
Rect *rect);
212 void rectShotBlackDragon3(
Rect *rect);
213 void rectDoFlyingSkull(
Rect *rect);
214 void rectSkipScene(
Rect *rect);
215 void rectHitPirateShip(
Rect *rect);
218 void scenePsoFadeInVideo(
Scene *scene);
219 void scenePsoSetGotTo(
Scene *scene);
220 void scenePsoSetGotToNoFadeIn(
Scene *scene);
221 void scenePsoSetWorldGotTo(
Scene *scene);
224 void sceneIsoPickAWorld(
Scene *scene);
225 void sceneIsoSetWorldGotTo(
Scene *scene);
228 void sceneNxtscnGotChewedOut(
Scene *scene);
229 void sceneNxtscnRestartFromLast(
Scene *scene);
230 void sceneNxtscnPlayerDied(
Scene *scene);
231 void sceneNxtscnMiscRooms1(
Scene *scene);
232 void sceneNxtscnPickDungeonClue(
Scene *scene);
233 void sceneNxtscnContinueDungeonClue(
Scene *scene);
234 void sceneNxtscnStartMidshipRandomScene(
Scene *scene);
235 void sceneNxtscnContinueMidshipRandomScene(
Scene *scene);
236 void sceneNxtscnShowDeathGripBeamColor(
Scene *scene);
237 void sceneNxtscnSelectAsteroids(
Scene *scene);
238 void sceneNxtscnAsteroidsDone(
Scene *scene);
239 void sceneNxtscnDoFlyingSkulls(
Scene *scene);
240 void sceneNxtscnDidFlyingSkulls(
Scene *scene);
241 void sceneNxtscnShowWhichStartSplitter(
Scene *scene);
242 void sceneNxtscnGotoSelectedWorld(
Scene *scene);
243 void sceneNxtscnStartVolcanoPopup(
Scene *scene);
244 void sceneNxtscnContinueVolcanoPopup(
Scene *scene);
245 void sceneNxtscnGiveFalinaClue(
Scene *scene);
246 void sceneNxtscnCheckFalinaClues(
Scene *scene);
247 void sceneNxtscnSetupFalinaTargetPractice(
Scene *scene);
248 void sceneNxtscnContinueFalinaTargetPractice(
Scene *scene);
249 void sceneNxtscnStartDunePopup(
Scene *scene);
250 void sceneNxtscnContinueDunePopup(
Scene *scene);
251 void sceneNxtscnPottOrPanShoots(
Scene *scene);
252 void sceneNxtscnSetupPottTargetPractice(
Scene *scene);
253 void sceneNxtscnContinuePottTargetPractice(
Scene *scene);
254 void sceneNxtscnStartDragonsTeethPopup(
Scene *scene);
255 void sceneNxtscnContinueDragonsTeethPopup(
Scene *scene);
256 void sceneNxtscnGrinReaperClue(
Scene *scene);
257 void sceneNxtscnStartGrinReaper(
Scene *scene);
258 void sceneNxtscnContinueGrinReaper(
Scene *scene);
259 void sceneNxtscnGrinTargetPractice(
Scene *scene);
260 void sceneNxtscnContinueGrinTargetPractice(
Scene *scene);
261 void sceneNxtscnStartJunkWorld(
Scene *scene);
262 void sceneNxtscnContinueJunkWorld(
Scene *scene);
263 void sceneNxtscnStartJunkRings(
Scene *scene);
264 void sceneNxtscnShowJunkWorldCrystal(
Scene *scene);
265 void sceneNxtscnStartJunkWorldTargetPractice(
Scene *scene);
266 void sceneNxtscnContinueJunkWorldTargetPractice(
Scene *scene);
267 void sceneNxtscnAreAllWorldsDone(
Scene *scene);
268 void sceneNxtscnStartPracticePirateShip(
Scene *scene);
269 void sceneNxtscnMorePracticePirateShip(
Scene *scene);
270 void sceneNxtscnPlayerWon(
Scene *scene);
273 void sceneMissedRectsDefault(
Scene *scene);
274 void sceneMissedRectsMissedPirateShip(
Scene *scene);
277 void sceneDefaultWepdwn(
Scene *scene);
280 void sceneDefaultScore(
Scene *scene);
286 bool cmdWarpTo(
int argc,
const char **argv);
287 bool cmdDumpLib(
int argc,
const char **argv);
Definition: savefile.h:54
Definition: debugger.h:41
Definition: audiostream.h:212
Definition: game_spacepirates.h:40
Definition: game_spacepirates.h:283
Definition: detection.h:39