22 #ifndef ENGINES_ENGINE_H 23 #define ENGINES_ENGINE_H 25 #include "common/error.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" 32 #include "engines/enhancements.h" 45 class SaveFileManager;
48 class SeekableReadStream;
88 template<
class... TParam>
111 PauseToken(
const PauseToken &);
112 #if __cplusplus >= 201103L 113 PauseToken(PauseToken &&);
119 void operator=(
const PauseToken &);
120 #if __cplusplus >= 201103L 121 void operator=(PauseToken &&);
134 bool isActive()
const {
return _engine !=
nullptr; }
137 constexpr PauseToken(
Engine *engine) : _engine(engine) {}
185 int32 _activeEnhancements = kEnhGameBreakingBugFixes;
205 uint32 _pauseStartTime;
210 int _pauseScreenChangeID;
217 int32 _engineStartTime;
222 int _autosaveInterval;
227 int _lastAutosaveTime;
250 static bool _quitRequested;
362 virtual void errorString(
const char *buf_input,
char *buf_output,
int buf_output_size);
377 _debugger = debugger;
392 bool enhancementEnabled(int32 cls);
411 virtual void syncSoundSettings();
423 virtual void flipMute();
459 void setGameToLoadSlot(
int slot);
499 bool saveGameDialog();
504 bool loadGameDialog();
512 virtual void pauseEngineIntern(
bool pause);
524 static void quitGame();
531 static bool shouldQuit();
572 bool warnBeforeOverwritingAutosave();
584 void openMainMenuDialog();
604 static bool warnUserAboutUnsupportedAddOn(
Common::String addOnName);
627 uint32 getTotalPlayTime()
const;
638 void setTotalPlayTime(uint32 time = 0);
657 bool existExtractedCDAudioFiles(uint track = 1);
662 bool isDataAndCDAudioReadFromSameCD();
666 void warnMissingExtractedCDAudio();
671 void handleAutoSave();
676 void saveAutosaveIfEnabled();
682 return canSaveGameStateCurrently();
698 virtual bool gameTypeHasAddOns()
const;
720 void defaultSyncSoundSettings();
753 bool empty() {
return _chainedGames.empty(); }
757 #define ChainedGamesMan ChainedGamesManager::instance()
virtual int getAutosaveSlot() const
Definition: engine.h:691
Common::TimerManager * getTimerManager()
Definition: engine.h:643
EngineFeature
Definition: engine.h:260
static String format(MSVC_PRINTF const char *fmt,...) GCC_PRINTF(1
bool isActive() const
Definition: engine.h:134
Definition: debugger.h:41
ErrorCode
Definition: error.h:47
bool empty()
Definition: engine.h:753
OSystem * _system
Definition: engine.h:151
MetaEngine * getMetaEngine() const
Definition: engine.h:536
int FORCEINLINE GCC_PRINTF(2, 0) int vsprintf_s(T(&dst)[N]
void GUIErrorMessageFormatU32StringPtr(const Common::U32String *fmt,...)
virtual void applyGameSettings()
Definition: engine.h:418
Definition: algorithm.h:29
void GUIErrorMessageFormat(const Common::U32String &fmt, TParam... param)
Definition: engine.h:89
void GUIErrorMessageWithURL(const Common::U32String &msg, const char *url)
const Common::String _targetName
Definition: engine.h:183
Common::EventManager * getEventManager()
Definition: engine.h:647
Common::EventManager * _eventMan
Definition: engine.h:165
bool isPaused() const
Definition: engine.h:579
void setDebugger(GUI::Debugger *debugger)
Definition: engine.h:375
GUI::Dialog * _mainMenuDialog
Definition: engine.h:174
void GUIErrorMessage(const Common::U32String &msg, const char *url=nullptr)
Definition: savefile.h:142
Common::TimerManager * _timer
Definition: engine.h:161
void setMetaEngine(MetaEngine *metaEngine)
Definition: engine.h:541
Common::SaveFileManager * getSaveFileManager()
Definition: engine.h:651
virtual GUI::Debugger * getDebugger() final
Definition: engine.h:367
virtual Common::String getSaveStateName(int slot) const
Definition: engine.h:428
Common::SaveFileManager * _saveFileMan
Definition: engine.h:169
virtual bool hasFeature(EngineFeature f) const
Definition: engine.h:390
Definition: singleton.h:42
virtual bool canSaveAutosaveCurrently()
Definition: engine.h:681
Audio::Mixer * _mixer
Definition: engine.h:155