25 #include "common/array.h" 26 #include "common/compression/installshieldv3_archive.h" 27 #include "common/random.h" 28 #include "common/serializer.h" 29 #include "common/str-array.h" 30 #include "common/stream.h" 31 #include "engines/engine.h" 32 #include "graphics/font.h" 33 #include "graphics/fontman.h" 34 #include "graphics/surface.h" 35 #include "video/subtitles.h" 37 #include "hypno/grammar.h" 38 #include "hypno/libfile.h" 41 class SeekableAudioStream;
73 kHypnoColorGreen = 251,
74 kHypnoColorWhiteOrBlue = 252,
75 kHypnoColorYellow = 253,
76 kHypnoColorBlack = 254,
82 kSpiderColorWhite = 248,
83 kSpiderColorBlue = 252,
100 kActionDifficultyChump,
101 kActionDifficultyPunk,
102 kActionDifficultyBadass,
103 kActionDifficultExit,
150 bool _infiniteHealthCheat;
151 bool _infiniteAmmoCheat;
152 bool _unlockAllLevels;
153 bool _restoredContentEnabled;
162 virtual void resetSceneState();
163 bool checkSceneCompleted();
164 bool checkLevelWon();
166 void runScene(
Scene *scene);
171 virtual void runCode(
Code *code);
178 virtual void loadAssets();
199 virtual void loadGame(
const Common::String &nextLevel,
int score,
int puzzleDifficulty,
int combatDifficulty);
207 void adjustSubtitleSize();
212 void playVideo(
MVideo &video);
213 void skipVideo(
MVideo &video);
217 void loadImage(
const Common::String &file,
int x,
int y,
bool transparent,
bool palette =
false,
int frameNumber = 0);
220 void loadPalette(
const byte *palette, uint32 offset, uint32 size);
221 byte *getPalette(uint32 idx);
225 uint32 _defaultCursorIdx;
227 void disableCursor();
228 void defaultCursor();
229 virtual void changeCursor(
const Common::String &cursor, uint32 n,
bool centerCursor =
false);
231 virtual void changeCursor(
const Graphics::Surface &entry, byte *palette,
bool centerCursor =
false);
234 virtual void runMenu(
Hotspots *hs,
bool only_menu =
false);
237 void runMice(
Mice *a);
239 void runSave(
Save *a);
240 void runLoad(
Load *a);
242 void runTimer(
Timer *a);
243 void runQuit(
Quit *a);
245 void runIntro(
Intro *a);
246 void runPlay(
Play *a);
247 void runSound(
Sound *a);
250 void runWalN(
WalN *a);
251 bool runGlobal(
Global *a);
252 void runTalk(
Talk *a);
255 virtual void drawBackToMenu(
Hotspot *h);
258 int _screenW, _screenH;
262 uint32 _transparentColor;
264 void updateScreen(
MVideo &video);
265 void updateVideo(
MVideo &video);
269 void runIntro(
MVideo &video);
270 void runIntros(
Videos &videos);
271 void runIntrosWithSubtitles(
Videos &videos);
287 Videos _nextSequentialVideoToPlay;
288 Videos _nextParallelVideoToPlay;
289 Videos _escapeSequentialVideoToPlay;
299 void playSound(
const Filename &filename, uint32 loops, uint32 sampleRate = 22050,
bool stereo =
false);
300 void playMusic(
const Filename &filename, uint32 sampleRate = 22050,
bool stereo =
false);
303 bool isMusicActive();
309 virtual bool availableObjectives();
310 virtual bool checkArcadeObjectives();
316 virtual void pressedKey(
const int keycode);
317 virtual bool clickedPrimaryShoot(
const Common::Point &mousePos);
318 virtual bool clickedSecondaryShoot(
const Common::Point &mousePos);
321 virtual void hitPlayer();
325 virtual bool checkRButtonUp();
326 virtual void setRButtonUp(
const bool val);
327 virtual void disableGameKeymaps();
328 virtual void enableGameKeymaps();
333 uint32 _segmentOffset;
334 uint32 _segmentRepetition;
335 uint32 _segmentRepetitionMax;
336 uint32 _segmentShootSequenceOffset;
337 uint32 _segmentShootSequenceMax;
343 void resetStatistics();
345 void incShotsFired();
347 void incEnemyTargets();
348 void incTargetsDestroyed();
349 void incTargetsMissed();
350 void incFriendliesEncountered();
351 void incInfoReceived();
353 void incScore(
int inc);
354 void incBonus(
int inc);
357 uint32 accuracyRatio();
362 bool _skipDefeatVideo;
365 virtual void drawCursorArcade(
const Common::Point &mousePos);
366 virtual void drawPlayer();
367 virtual void drawHealth();
368 virtual void drawAmmo();
393 int _playerFrameStart;
399 uint32 _objKillsCount[2];
400 uint32 _objMissesCount[2];
401 uint32 _objKillsRequired[2];
402 uint32 _objMissesAllowed[2];
412 bool _refreshConversation;
413 virtual void showConversation();
414 virtual void endConversation();
415 virtual void rightClickedConversation(
const Common::Point &mousePos);
416 virtual void leftClickedConversation(
const Common::Point &mousePos);
417 virtual bool hoverConversation(
const Common::Point &mousePos);
419 virtual void showCredits();
424 bool _keepTimerDuringScenes;
426 bool startCountdown(uint32);
437 int objectivesPos[2];
452 void loadAssets()
override;
453 void loadAssetsDemoDisc();
454 void loadAssetsEarlyDemo();
455 void loadAssetsGen4();
456 void loadAssetsPCW();
457 void loadAssetsPCG();
458 void loadAssetsFullGame();
465 void showCredits()
override;
466 bool clickedSecondaryShoot(
const Common::Point &mousePos)
override;
468 void drawPlayer()
override;
469 void drawHealth()
override;
470 void drawAmmo()
override;
471 void hitPlayer()
override;
472 void drawCursorArcade(
const Common::Point &mousePos)
override;
477 void runCode(
Code *code)
override;
490 void pressedKey(
const int keycode)
override;
496 bool checkRButtonUp()
override;
497 void setRButtonUp(
const bool val)
override;
498 void disableGameKeymaps()
override;
499 void enableGameKeymaps()
override;
503 return (f == kSupportsReturnToLauncher);
509 void drawGlyph(
const Common::BitArray &font,
int x,
int y,
int bitoffset,
int width,
int height,
int pitch, uint32 color,
bool invert);
510 void drawKoreanChar(uint16 chr,
int &curx,
int y, uint32 color);
511 void runMainMenu(
Code *code);
512 void runLevelMenu(
Code *code);
513 void runCheckLives(
Code *code);
514 void endCredits(
Code *code);
515 void showDemoScore();
516 uint32 findPaletteIndexZones(uint32
id);
519 void restoreScoreMilestones(
int score);
520 bool checkScoreMilestones(
int score);
527 void generateStaticEffect();
544 void loadAssets()
override;
545 void loadAssetsDemo();
546 void loadAssetsFullGame();
547 void showCredits()
override;
549 void drawCursorArcade(
const Common::Point &mousePos)
override;
551 void drawPlayer()
override;
552 void drawHealth()
override;
554 void hitPlayer()
override;
557 void pressedKey(
const int keycode)
override;
564 void drawBackToMenu(
Hotspot *h)
override;
565 void runCode(
Code *code)
override;
572 void showConversation()
override;
573 void endConversation()
override;
574 void rightClickedConversation(
const Common::Point &mousePos)
override;
575 void leftClickedConversation(
const Common::Point &mousePos)
override;
576 bool hoverConversation(
const Common::Point &mousePos)
override;
578 void loadGame(
const Common::String &nextLevel,
int score,
int puzzleDifficulty,
int combatDifficulty)
override;
586 return (f == kSupportsSavingDuringRuntime || f == kSupportsLoadingDuringRuntime || f == kSupportsReturnToLauncher);
590 void runMatrix(
Code *code);
591 void addIngredient(
Code *code);
592 void checkMixture(
Code *code);
593 void runNote(
Code *code);
594 void runFusePanel(
Code *code);
595 void runRecept(
Code *code);
596 void runOffice(
Code *code);
597 void runFileCabinet(
Code *code);
598 void runLock(
Code *code);
599 void runFuseBox(
Code *code);
603 uint32 _currentPlayerPosition;
604 uint32 _lastPlayerPosition;
606 bool _fuseState[2][10] = {};
607 bool _isFuseRust =
true;
608 bool _isFuseUnreadable =
false;
609 bool ingredients[7] = {};
626 void loadAssets()
override;
627 void runCode(
Code *code)
override;
632 void resetSceneState()
override;
633 void runMenu(
Hotspots *hs,
bool only_menu =
false)
override;
639 void pressedKey(
const int keycode)
override;
641 void drawCursorArcade(
const Common::Point &mousePos)
override;
643 bool clickedSecondaryShoot(
const Common::Point &mousePos)
override;
644 void showCredits()
override;
646 void showArcadeStats(
int territory,
const ArcadeStats &data);
651 void drawHealth()
override;
652 void drawAmmo()
override;
654 void hitPlayer()
override;
655 void drawPlayer()
override;
670 void renderHighlights(
Hotspots *hs);
671 void waitForUserClick(uint32 timeout);
673 int _selectedCorrectBox;
674 char selectDirection();
676 void runMainMenu(
Code *code);
678 void runRetryMenu(
Code *code);
679 void runCheckC3(
Code *code);
680 void runCheckHo(
Code *code);
681 void runCheckC5(
Code *code);
682 void runAlarmC5(
Code *code);
683 void runDifficultyMenu(
Code *code);
684 void endCredits(
Code *code);
691 void unlockAllLevels();
703 int _weaponMaxAmmo[8];
705 byte *_crosshairsPalette;
713 void updateFromScript();
717 ScriptMode _currentMode;
718 uint32 _currentActor;
719 uint32 _currentWeapon;
729 return (f == kSupportsReturnToLauncher);
bool canSaveAutosaveCurrently() override
Definition: hypno.h:581
Definition: grammar.h:732
Definition: image_decoder.h:53
Definition: grammar.h:333
Definition: installshieldv3_archive.h:35
Definition: grammar.h:359
EngineFeature
Definition: engine.h:258
Definition: grammar.h:121
Definition: grammar.h:221
Definition: grammar.h:244
Definition: grammar.h:440
Definition: grammar.h:152
Definition: advancedDetector.h:164
Definition: grammar.h:214
Definition: grammar.h:235
Definition: grammar.h:707
Definition: audiostream.h:212
Definition: subtitles.h:78
Definition: grammar.h:228
bool canLoadGameStateCurrently(Common::U32String *msg=nullptr) override
Definition: hypno.h:200
Definition: grammar.h:187
Definition: grammar.h:262
Definition: grammar.h:311
Definition: bitarray.h:29
Definition: grammar.h:253
bool canSaveGameStateCurrently(Common::U32String *msg=nullptr) override
Definition: hypno.h:202
Definition: grammar.h:132
bool hasFeature(EngineFeature f) const override
Definition: hypno.h:502
Definition: grammar.h:600
Definition: grammar.h:745
Definition: grammar.h:141
Definition: grammar.h:277
Definition: grammar.h:207
Definition: grammar.h:104
bool hasFeature(EngineFeature f) const override
Definition: hypno.h:585
bool canSaveAutosaveCurrently() override
Definition: hypno.h:201
Definition: movie_decoder.h:32
Definition: grammar.h:395
Definition: grammar.h:170
Definition: grammar.h:294
Language
Definition: language.h:45