22 #ifndef CRYOMNI3D_CRYOMNI3D_H 23 #define CRYOMNI3D_CRYOMNI3D_H 25 #include "audio/mixer.h" 27 #include "common/array.h" 28 #include "common/keyboard.h" 29 #include "common/queue.h" 30 #include "common/rect.h" 31 #include "common/scummsys.h" 33 #include "engines/engine.h" 35 #include "graphics/cursorman.h" 37 #include "cryomni3d/font_manager.h" 38 #include "cryomni3d/objects.h" 39 #include "cryomni3d/sprites.h" 40 #include "cryomni3d/detection.h" 46 class SeekableReadStream;
68 kDebugFile = (1 << 0),
69 kDebugVariable = (1 << 1),
70 kDebugSaveLoad = (1 << 2)
74 kDragStatus_NoDrag = 0,
90 const char *getGameId()
const;
91 uint32 getFeatures()
const;
92 uint16 getVersion()
const;
94 uint8 getGameType()
const;
101 void setCanLoadSave(
bool canLoadSave) { _canLoadSave = canLoadSave; }
102 static const uint kSaveDescriptionLen = 20;
104 void pauseEngineIntern(
bool)
override;
109 void fillSurface(byte color);
112 void setCursor(uint cursorId)
const;
113 bool showMouse(
bool visible) {
return CursorMan.showMouse(visible); }
117 HNMCallback beforeDraw =
nullptr, HNMCallback afterDraw =
nullptr);
118 bool displayHLZ(
const Common::Path &filepath, uint32 timeout = uint(-1));
123 uint getCurrentMouseButton() {
return _lastMouseButton; }
125 bool checkKeysPressed();
126 bool checkKeysPressed(uint numKeys, ...);
127 void clearKeys() { _keysPressed.clear(); }
128 void waitMouseRelease();
129 void setAutoRepeatClick(uint millis);
130 DragStatus getDragStatus() {
return _dragStatus; }
133 virtual bool hasPlaceDocumentation() = 0;
134 virtual bool displayPlaceDocumentation() = 0;
135 virtual uint displayOptions() = 0;
139 virtual void setupPalette(
const byte *colors, uint start, uint num) = 0;
144 void copySubPalette(byte *dst,
const byte *src, uint start, uint num);
145 void setPalette(
const byte *colors, uint start, uint num);
146 void lockPalette(uint startRW, uint endRW) { _lockPaletteStartRW = startRW; _lockPaletteEndRW = endRW; }
147 void unlockPalette() { _lockPaletteStartRW = 0; _lockPaletteEndRW = 255; }
148 void fadeOutPalette();
149 void fadeInPalette(
const byte *colors);
150 void setBlackPalette();
152 void setHNMClipping(
const Common::Rect &clip) { _hnmClipping = clip; _hnmHasClip =
true; }
153 void unsetHNMClipping() { _hnmHasClip =
false; }
165 DragStatus _dragStatus;
167 uint _lastMouseButton;
168 uint _autoRepeatNextEvent;
171 uint _lockPaletteStartRW;
172 uint _lockPaletteEndRW;
186 bool displayToolbar(
const Graphics::Surface *original)
override {
return false; }
187 bool hasPlaceDocumentation()
override {
return false; }
188 bool displayPlaceDocumentation()
override {
return false; }
189 uint displayOptions()
override {
return 0; }
191 void setupPalette(
const byte *colors, uint start, uint num)
override {}
Definition: image_decoder.h:52
Definition: cryomni3d.h:62
EngineFeature
Definition: engine.h:253
bool canLoadGameStateCurrently(Common::U32String *msg=nullptr) override
Definition: cryomni3d.h:98
Definition: display_client.h:58
Definition: font_manager.h:40
SoundType
Definition: mixer.h:62
Definition: detection.h:48
Definition: datstream.h:33
Definition: cryomni3d.h:80
Definition: algorithm.h:29
bool canSaveGameStateCurrently(Common::U32String *msg=nullptr) override
Definition: cryomni3d.h:99
Definition: keyboard.h:294
Definition: cryomni3d.h:178
Definition: movie_decoder.h:32
Language
Definition: language.h:45