25#include "common/text-to-speech.h"
27#include "engines/engine.h"
31#include "hugo/detection.h"
33#define HUGO_DAT_VER_MAJ 0
34#define HUGO_DAT_VER_MIN 44
35#define DATAALIGNMENT 4
38class SeekableReadStream;
57static const int kSavegameVersion = 6;
58static const int kInvDx = 32;
59static const int kInvDy = 32;
60static const int kMaxTunes = 16;
61static const int kStepDx = 5;
62static const int kStepDy = 4;
63static const int kXPix = 320;
64static const int kYPix = 200;
65static const int kViewSizeX = kXPix;
66static const int kViewSizeY = 192;
67static const int kDibOffY = 0;
68static const int kCompLineSize = 40;
69static const int kMaxTextCols = 40;
70static const int kMaxTextRows = 25;
71static const int kMaxLineSize = kMaxTextCols - 2;
72static const int kMaxBoxChar = kMaxTextCols * kMaxTextRows;
73static const int kOvlSize = kCompLineSize * kYPix;
74static const int kStateDontCare = 0xFF;
75static const int kHeroIndex = 0;
76static const int kArrowNumb = 2;
77static const int kLeftArrow = -2;
78static const int kRightArrow = -3;
79static const int kMaxPath = 256;
80static const int kHeroMaxWidth = 24;
81static const int kHeroMinWidth = 16;
83typedef char Command[kMaxLineSize + 8];
89 bool _playlist[kMaxTunes];
92typedef byte Icondib[kXPix * kInvDy];
93typedef byte Viewdib[(long)kXPix * kYPix];
105 kActionMoveBottomRight,
106 kActionMoveBottomLeft,
117enum HugoDebugChannels {
139enum Istate {kInventoryOff, kInventoryUp, kInventoryDown, kInventoryActive};
144enum Vstate {kViewIdle, kViewIntroInit, kViewIntro, kViewPlay, kViewInvent, kViewExit};
155enum {kPriorityForeground, kPriorityBackground, kPriorityFloating, kPriorityOverOverlay};
160enum Dupdate {kDisplayInit, kDisplayAdd, kDisplayDisplay, kDisplayRestore};
165enum Priority {kSoundPriorityLow, kSoundPriorityMedium, kSoundPriorityHigh};
179 bool _showBoundariesFl;
194 int _x1, _y1, _x2, _y2;
196 int16 _viewx, _viewy, _direction;
201 kTtsSpeech = (1 << 0),
202 kTtsReplaceNewlines = ((1 << 1) | kTtsSpeech)
209class InventoryHandler;
251 const char *_episode;
258 bool _voiceScoreLine;
259 bool _voiceSoundSetting;
260 bool _queueAllVoicing;
267 uint32 getFeatures()
const;
268 const char *getGameId()
const;
270 GameType getGameType()
const;
272 bool isPacked()
const;
273 bool useWindowsInterface()
const;
277 assert(s_Engine !=
nullptr);
292 void readScreenFiles(
const int screen);
293 void setNewScreen(
const int screen);
298 int getScore()
const;
299 void setScore(
const int newScore);
300 void adjustScore(
const int adjustment);
301 int getMaxScore()
const;
302 void setMaxScore(
const int newScore);
306 const char *getCopyrightString1()
const;
307 const char *getCopyrightString2()
const;
312 Common::KeyCode notifyBox(
const Common::String &text,
bool protect =
false, TtsOptions ttsOptions = kTtsReplaceNewlines);
315 void takeObjectBox(
const char *name);
318 void sayText(
const Common::String &text, Common::TextToSpeechManager::Action action = Common::TextToSpeechManager::INTERRUPT);
340 static const int kTurboTps = 16;
351 bool _windowsInterfaceFl;
356 void initPlaylist(
bool playlist[kMaxTunes]);
EngineFeature
Definition: engine.h:282
bool canLoadGameStateCurrently(Common::U32String *msg=nullptr) override
bool canSaveGameStateCurrently(Common::U32String *msg=nullptr) override
Common::String getSaveStateName(int slot) const override
bool hasFeature(EngineFeature f) const override
void syncSoundSettings() override
Common::Error saveGameState(int slot, const Common::String &desc, bool isAutosave=false) override
Common::Error loadGameState(int slot) override
Common::Error run() override
Definition: inventory.h:38
Definition: schedule.h:516
Definition: default_display_client.h:68
Definition: algorithm.h:29
Vstate
Definition: hugo.h:144
Dupdate
Definition: hugo.h:160
Priority
Definition: hugo.h:165
Istate
Definition: hugo.h:139
Definition: detection.h:50
Definition: atari-screen.h:58