22 #ifndef MYST3_ENGINE_H 23 #define MYST3_ENGINE_H 25 #include "engines/engine.h" 27 #include "common/array.h" 28 #include "common/ptr.h" 29 #include "common/system.h" 30 #include "common/random.h" 32 #include "engines/myst3/archive.h" 47 kDebugVariable = (1 << 0),
48 kDebugSaveLoad = (1 << 1),
49 kDebugNode = (1 << 2),
50 kDebugScript = (1 << 3)
57 kTransitionLeftToRight,
58 kTransitionRightToLeft
83 struct Myst3GameDescription;
92 void syncSoundSettings()
override;
93 void pauseEngineIntern(
bool pause)
override;
117 uint32 getGameLocalizationType()
const;
118 uint32 getGameLayoutType()
const;
119 bool isTextLanguageEnglish()
const;
120 bool isWideScreenModEnabled()
const;
130 Archive::ResourceType type);
132 Archive::ResourceType type);
137 void goToNode(uint16 nodeID, TransitionType transition);
138 void loadNode(uint16 nodeID, uint32 roomID = 0, uint32 ageID = 0);
140 void loadNodeCubeFaces(uint16 nodeID);
141 void loadNodeFrame(uint16 nodeID);
142 void loadNodeMenu(uint16 nodeID);
144 void setupTransition();
145 void drawTransition(TransitionType transitionType);
147 void dragItem(uint16 statusVar, uint16 movie, uint16 frame, uint16 hoverFrame, uint16 itemVar);
148 void dragSymbol(uint16 var, uint16
id);
149 int16 openDialog(uint16
id);
151 void runNodeInitScripts();
152 void runNodeBackgroundScripts();
153 void runScriptsFromNode(uint16 nodeID, uint32 roomID = 0, uint32 ageID = 0);
154 void runBackgroundSoundScriptsFromNode(uint16 nodeID, uint32 roomID = 0, uint32 ageID = 0);
155 void runAmbientScripts(uint32 node);
157 void loadMovie(uint16
id, uint16 condition,
bool resetCond,
bool loop);
158 void playMovieGoToNode(uint16 movie, uint16 node);
159 void playMovieFullFrame(uint16 movie);
160 void playSimpleMovie(uint16
id,
bool fullframe =
false,
bool refreshAmbientSounds =
false);
161 void removeMovie(uint16
id);
162 void setMovieLooping(uint16
id,
bool loop);
164 void addSpotItem(uint16
id, int16 condition,
bool fade);
166 void loadNodeSubtitles(uint32
id);
168 void addSunSpot(uint16 pitch, uint16 heading, uint16 intensity,
169 uint16 color, uint16 var,
bool varControlledIntensity, uint16 radius);
170 SunSpot computeSunspotsIntensity(
float pitch,
float heading);
172 void setMenuAction(uint16 action) { _menuAction = action; }
174 void animateDirectionChange(
float pitch,
float heading, uint16 scriptTicks);
175 void getMovieLookAt(uint16
id,
bool start,
float &pitch,
float &heading);
177 void drawFrame(
bool noSwap =
false);
179 void processInput(
bool interactive);
180 void processEventForKeyboardState(
const Common::Event &event);
182 void updateInputState();
184 bool inputValidatePressed();
185 bool inputEscapePressed();
186 bool inputSpacePressed();
187 bool inputTilePressed();
189 void settingsInitDefaults();
190 void settingsLoadToVars();
191 void settingsApplyFromVars();
218 bool _inputSpacePressed;
219 bool _inputEnterPressed;
220 bool _inputEscapePressed;
221 bool _inputEscapePressedNotConsumed;
222 bool _inputTildePressed;
226 uint32 _backgroundSoundScriptLastRoomId;
227 uint32 _backgroundSoundScriptLastAgeId;
235 bool _inventoryManualHide;
237 HotSpot *getHoveredHotspot(NodePtr nodeData, uint16 var = 0);
240 bool checkDatafiles();
244 void closeArchives();
246 bool isInventoryVisible();
248 void interactWithHoveredElement();
Definition: framelimiter.h:37
EngineFeature
Definition: engine.h:253
Definition: effects.h:160
Definition: effects.h:139
Definition: transition.h:35
Definition: atari-cursor.h:38
Definition: algorithm.h:29
Definition: formatinfo.h:28
Definition: database.h:162
Definition: inventory.h:38
Definition: lobject.h:332
Definition: archive.h:105
Definition: detection.h:43
Language
Definition: language.h:45