25#include "audio/mixer.h"
26#include "common/scummsys.h"
27#include "common/events.h"
28#include "common/keyboard.h"
29#include "common/ptr.h"
30#include "common/random.h"
31#include "common/savefile.h"
32#include "common/system.h"
33#include "graphics/managed_surface.h"
35#include "engines/engine.h"
36#include "ngi/console.h"
45 kDebugPathfinding = 1,
72#define MAXGAMEOBJH 10000
74struct NGIGameDescription;
89class GlobalMessageQueueList;
109 memset(pal, 0, 256 * 4);
112 void copy(
const Palette &src) {
114 memcpy(pal, src.pal, 256 * 4);
120int global_messageHandler1(
ExCommand *cmd);
121int global_messageHandler2(
ExCommand *cmd);
122int global_messageHandler3(
ExCommand *cmd);
123int global_messageHandler4(
ExCommand *cmd);
124void global_messageHandler_handleSound(
ExCommand *cmd);
140 void setMusicAllowed(
int val) { _musicAllowed = val; }
144 uint32 getFeatures()
const;
147 const char *getGameId()
const;
148 int getGameGID()
const;
152 Common::KeyCode _keyState;
161 bool loadGam(
const char *fname,
int scene = 0);
166 GameVar *getGameLoaderGameVar();
169 int _gameProjectVersion;
175 bool _flgGameIsRunning;
178 bool _mainMenu_debugEnabled;
183 Scene *_currentScene;
196 int _currentCheatPos;
198 void defHandleKeyDown(
int key);
201 int _currSoundListCount;
206 bool _sceneTrackHasSequence;
211 int _trackStartDelay;
213 bool _sceneTrackIsPlaying;
215 void stopAllSounds();
217 void playSound(
int id,
int flag);
218 void playTrack(
GameVar *sceneVar,
const char *name,
bool delayed);
220 void updateTrackDelay();
221 void startSceneTrack();
224 void stopSoundStream2();
225 void stopAllSoundStreams();
226 void stopAllSoundInstances(
int id);
227 void updateSoundVolume();
228 void setMusicVolume(
int vol);
242 bool _isProcessingMessages;
257 void deleteModalObject();
261 void updateMapPiece(
int mapId,
int update);
264 void freeGameLoader();
273 void enableSaves() { _isSaveAllowed =
true; }
274 void disableSaves(ExCommand *ex);
275 bool isSaveAllowed();
277 void initObjectStates();
278 void setLevelStates();
279 void setSwallowedEggsState();
280 void loadAllScenes();
283 void addCursor(CursorInfo *cursorInfo, Scene *inv,
int pictureId,
int hotspotX,
int hotspotY,
int itemPictureOffsX,
int itemPictureOffsY);
285 int32 _mapTable[200];
287 Scene *_inventoryScene;
288 Inventory2 *_inventory;
289 int _currSelectedInventoryItemId;
292 int32 _lastInputTicks;
293 int32 _lastButtonUpTicks;
295 BaseModalObject *_modalObject;
297 int (*_updateScreenCallback)();
298 int (*_updateCursorCallback)();
300 void drawAlphaRectangle(
int x1,
int y1,
int x2,
int y2,
int alpha);
301 void sceneFade(Scene *sc,
bool direction);
307 GameObject *_objectAtCursor;
308 int _objectIdAtCursor;
310 void setCursor(
int id);
311 void updateCursorCommon();
315 int getObjectEnumState(
const Common::String &name,
const char *state);
317 void sceneAutoScrolling();
318 bool sceneSwitcher(
const EntranceInfo &entrance);
319 Scene *accessScene(
int sceneId);
320 void setSceneMusicParameters(GameVar *var);
321 int convertScene(
int scene);
322 int getSceneEntrance(
int scene);
323 int getSceneFromTag(
int tag);
325 NGIArchive *_currArchive;
331 PictureObject *_arcadeOverlay;
332 PictureObject *_arcadeOverlayHelper;
335 int _arcadeOverlayMidX;
336 int _arcadeOverlayMidY;
338 void initArcadeKeys(
const char *varname);
339 void processArcade(ExCommand *ex);
341 void setArcadeOverlay(
int picId);
342 int drawArcadeOverlay(
int adjust);
344 void getAllInventory();
346 StaticANIObject *_lastLiftButton;
347 MessageQueue *_liftEnterMQ;
348 MessageQueue *_liftExitMQ;
349 StaticANIObject *_lift;
353 int lift_getButtonIdP(
int objid);
354 int lift_getButtonIdH(
int objid);
355 int lift_getButtonIdN(
int objid);
356 void lift_setButton(
const char *name,
int state);
357 void lift_init(Scene *sc,
int qu1,
int qu2);
358 void lift_setButtonStatics(Scene *sc,
int buttonId);
359 void lift_exitSeq(ExCommand *ex);
360 void lift_closedoorSeq();
361 void lift_clickButton();
362 void lift_walkAndGo();
363 void lift_goAnimation();
364 void lift_animateButton(StaticANIObject *button);
365 void lift_startExitQueue();
366 void lift_hoverButton(ExCommand *ex);
367 bool lift_checkButton(
const char *varname);
368 void lift_openLift();
370 GameVar *_musicGameVar;
376 bool _stream2playing;
378 GameObjHMap _gameObjH;
EngineFeature
Definition: engine.h:282
Definition: managed_surface.h:51
Definition: messages.h:59
Common::Error saveGameState(int slot, const Common::String &description, bool isAutosave=false) override
Common::Error run() override
bool canLoadGameStateCurrently(Common::U32String *msg=nullptr) override
Definition: ngi.h:388
bool hasFeature(EngineFeature f) const override
Common::String getSaveStateName(int slot) const override
bool canSaveGameStateCurrently(Common::U32String *msg=nullptr) override
Definition: ngi.h:389
Common::Error loadGameState(int slot) override
Definition: statics.h:172
Language
Definition: language.h:45
Definition: messages.h:177
Definition: detection.h:34
Definition: gameloader.h:64