25 #include "engines/engine.h" 28 #include "hugo/game.h" 29 #include "hugo/detection.h" 31 #define HUGO_DAT_VER_MAJ 0 // 1 byte 32 #define HUGO_DAT_VER_MIN 42 // 1 byte 33 #define DATAALIGNMENT 4 36 class SeekableReadStream;
55 static const int kSavegameVersion = 6;
56 static const int kInvDx = 32;
57 static const int kInvDy = 32;
58 static const int kMaxTunes = 16;
59 static const int kStepDx = 5;
60 static const int kStepDy = 4;
61 static const int kXPix = 320;
62 static const int kYPix = 200;
63 static const int kViewSizeX = kXPix;
64 static const int kViewSizeY = 192;
65 static const int kDibOffY = 0;
66 static const int kCompLineSize = 40;
67 static const int kMaxLineSize = kCompLineSize - 2;
68 static const int kMaxTextRows = 25;
69 static const int kMaxBoxChar = kMaxLineSize * kMaxTextRows;
70 static const int kOvlSize = kCompLineSize * kYPix;
71 static const int kStateDontCare = 0xFF;
72 static const int kHeroIndex = 0;
73 static const int kArrowNumb = 2;
74 static const int kLeftArrow = -2;
75 static const int kRightArrow = -3;
76 static const int kMaxPath = 256;
77 static const int kHeroMaxWidth = 24;
78 static const int kHeroMinWidth = 16;
80 typedef char Command[kMaxLineSize + 8];
86 bool _playlist[kMaxTunes];
89 typedef byte Icondib[kXPix * kInvDy];
90 typedef byte Viewdib[(long)kXPix * kYPix];
102 kActionMoveBottomRight,
103 kActionMoveBottomLeft,
114 enum HugoDebugChannels {
115 kDebugSchedule = 1 << 0,
116 kDebugEngine = 1 << 1,
117 kDebugDisplay = 1 << 2,
118 kDebugMouse = 1 << 3,
119 kDebugParser = 1 << 4,
121 kDebugRoute = 1 << 6,
122 kDebugInventory = 1 << 7,
123 kDebugObject = 1 << 8,
127 enum HugoRegistered {
136 enum Istate {kInventoryOff, kInventoryUp, kInventoryDown, kInventoryActive};
141 enum Vstate {kViewIdle, kViewIntroInit, kViewIntro, kViewPlay, kViewInvent, kViewExit};
152 enum {kPriorityForeground, kPriorityBackground, kPriorityFloating, kPriorityOverOverlay};
157 enum Dupdate {kDisplayInit, kDisplayAdd, kDisplayDisplay, kDisplayRestore};
162 enum Priority {kSoundPriorityLow, kSoundPriorityMedium, kSoundPriorityHigh};
176 bool _showBoundariesFl;
191 int _x1, _y1, _x2, _y2;
193 int16 _viewx, _viewy, _direction;
242 const char *_episode;
249 uint32 getFeatures()
const;
250 const char *getGameId()
const;
252 GameType getGameType()
const;
254 bool isPacked()
const;
258 assert(s_Engine !=
nullptr);
273 void readScreenFiles(
const int screen);
274 void setNewScreen(
const int screen);
276 void syncSoundSettings()
override;
279 int getScore()
const;
280 void setScore(
const int newScore);
281 void adjustScore(
const int adjustment);
282 int getMaxScore()
const;
283 void setMaxScore(
const int newScore);
287 const char *getCopyrightString()
const;
311 static const int kTurboTps = 16;
326 void initPlaylist(
bool playlist[kMaxTunes]);
338 #endif // HUGO_HUGO_H
EngineFeature
Definition: engine.h:253
Definition: detection.h:50
Dupdate
Definition: hugo.h:157
Definition: schedule.h:516
Definition: inventory.h:38
Definition: algorithm.h:29
Vstate
Definition: hugo.h:141
Priority
Definition: hugo.h:162
Definition: default_display_client.h:65
Istate
Definition: hugo.h:136