23 #ifndef ENGINES_ENGINE_H 24 #define ENGINES_ENGINE_H 26 #include "common/scummsys.h" 27 #include "common/str.h" 28 #include "common/language.h" 29 #include "common/platform.h" 30 #include "common/queue.h" 31 #include "common/singleton.h" 43 class SaveFileManager;
46 class SeekableReadStream;
67 void GUIErrorMessage(
const Common::U32String &msg,
const char *url =
nullptr);
72 void GUIErrorMessage(
const Common::String &msg,
const char *url =
nullptr);
108 PauseToken(
const PauseToken &);
109 #if __cplusplus >= 201103L 110 PauseToken(PauseToken &&);
116 void operator=(
const PauseToken &);
117 #if __cplusplus >= 201103L 118 void operator=(PauseToken &&);
131 bool isActive()
const {
return _engine !=
nullptr; }
134 PauseToken(Engine *);
175 virtual int runDialog(GUI::Dialog &dialog);
195 uint32 _pauseStartTime;
202 int32 _engineStartTime;
207 const int _autosaveInterval;
212 int _lastAutosaveTime;
225 GUI::Debugger *_debugger;
286 kSupportsArbitraryResolutions
314 virtual void initializePath(
const Common::FSNode &gamePath);
321 virtual Common::Error run() = 0;
326 virtual void errorString(
const char *buf_input,
char *buf_output,
int buf_output_size);
341 _debugger = debugger;
349 GUI::Debugger *getOrCreateDebugger();
373 virtual void syncSoundSettings();
385 virtual void flipMute();
391 return Common::String::format(
"%s.%03d", _targetName.c_str(), slot);
401 virtual Common::Error loadGameState(
int slot);
410 virtual Common::Error loadGameStream(Common::SeekableReadStream *stream);
421 void setGameToLoadSlot(
int slot);
426 virtual bool canLoadGameStateCurrently();
437 virtual Common::Error saveGameState(
int slot,
const Common::String &desc,
bool isAutosave =
false);
447 virtual Common::Error saveGameStream(Common::WriteStream *stream,
bool isAutosave =
false);
452 virtual bool canSaveGameStateCurrently();
457 bool saveGameDialog();
462 bool loadGameDialog();
470 virtual void pauseEngineIntern(
bool pause);
482 static void quitGame();
488 static bool shouldQuit();
534 void openMainMenuDialog();
541 static bool warnUserAboutUnsupportedGame();
549 static void errorUnsupportedGame(Common::String &extraMsg);
556 uint32 getTotalPlayTime()
const;
567 void setTotalPlayTime(uint32 time = 0);
590 void handleAutoSave();
595 void saveAutosaveIfEnabled();
601 return canSaveGameStateCurrently();
639 Common::String target;
643 Common::Queue<Game> _chainedGames;
650 void push(
const Common::String target,
const int slot = -1);
652 bool pop(Common::String &target,
int &slot);
656 #define ChainedGamesMan ChainedGamesManager::instance()
virtual int getAutosaveSlot() const
Definition: engine.h:609
Common::TimerManager * getTimerManager()
Definition: engine.h:572
void GUIErrorMessageFormat(Common::U32String fmt,...)
EngineFeature
Definition: engine.h:236
bool isActive() const
Definition: engine.h:131
OSystem * _system
Definition: engine.h:148
Definition: metaengine.h:52
virtual void applyGameSettings()
Definition: engine.h:380
Definition: advancedDetector.h:33
virtual GUI::Debugger * getDebugger()
Definition: engine.h:331
void GUIErrorMessageWithURL(const Common::U32String &msg, const char *url)
const Common::String _targetName
Definition: engine.h:180
Common::EventManager * getEventManager()
Definition: engine.h:576
Common::EventManager * _eventMan
Definition: engine.h:162
bool isPaused() const
Definition: engine.h:529
void setDebugger(GUI::Debugger *debugger)
Definition: engine.h:339
GUI::Dialog * _mainMenuDialog
Definition: engine.h:171
void GUIErrorMessage(const Common::U32String &msg, const char *url=nullptr)
Common::TimerManager * _timer
Definition: engine.h:158
Common::SaveFileManager * getSaveFileManager()
Definition: engine.h:580
virtual Common::String getSaveStateName(int slot) const
Definition: engine.h:390
Common::SaveFileManager * _saveFileMan
Definition: engine.h:166
virtual bool hasFeature(EngineFeature f) const
Definition: engine.h:354
bool shouldPerformAutoSave(int lastSaveTime)
Definition: engine.h:617
virtual bool canSaveAutosaveCurrently()
Definition: engine.h:600
Audio::Mixer * _mixer
Definition: engine.h:152