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 PauseToken(PauseToken &&);
118 void operator=(
const PauseToken &);
119 void operator=(PauseToken &&);
132 bool isActive()
const {
return _engine !=
nullptr; }
135 constexpr PauseToken(
Engine *engine) : _engine(engine) {}
183 int32 _activeEnhancements = kEnhGameBreakingBugFixes;
203 uint32 _pauseStartTime;
208 int _pauseScreenChangeID;
215 int32 _engineStartTime;
220 int _autosaveInterval;
225 int _lastAutosaveTime;
248 static bool _quitRequested;
360 virtual void errorString(
const char *buf_input,
char *buf_output,
int buf_output_size);
375 _debugger = debugger;
390 bool enhancementEnabled(int32 cls);
409 virtual void syncSoundSettings();
421 virtual void flipMute();
457 void setGameToLoadSlot(
int slot);
497 bool saveGameDialog();
502 bool loadGameDialog();
510 virtual void pauseEngineIntern(
bool pause);
522 static void quitGame();
529 static bool shouldQuit();
570 bool warnBeforeOverwritingAutosave();
582 void openMainMenuDialog();
602 static bool warnUserAboutUnsupportedAddOn(
Common::String addOnName);
625 uint32 getTotalPlayTime()
const;
636 void setTotalPlayTime(uint32 time = 0);
655 bool existExtractedCDAudioFiles(uint track = 1);
660 bool isDataAndCDAudioReadFromSameCD();
664 void warnMissingExtractedCDAudio();
669 void handleAutoSave();
674 void saveAutosaveIfEnabled();
680 return canSaveGameStateCurrently();
696 virtual bool gameTypeHasAddOns()
const;
718 void defaultSyncSoundSettings();
751 bool empty() {
return _chainedGames.empty(); }
755 #define ChainedGamesMan ChainedGamesManager::instance()
virtual int getAutosaveSlot() const
Definition: engine.h:689
Common::TimerManager * getTimerManager()
Definition: engine.h:641
EngineFeature
Definition: engine.h:258
static String format(MSVC_PRINTF const char *fmt,...) GCC_PRINTF(1
bool isActive() const
Definition: engine.h:132
Definition: debugger.h:41
ErrorCode
Definition: error.h:47
bool empty()
Definition: engine.h:751
OSystem * _system
Definition: engine.h:149
MetaEngine * getMetaEngine() const
Definition: engine.h:534
int FORCEINLINE GCC_PRINTF(2, 0) int vsprintf_s(T(&dst)[N]
void GUIErrorMessageFormatU32StringPtr(const Common::U32String *fmt,...)
virtual void applyGameSettings()
Definition: engine.h:416
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:181
Common::EventManager * getEventManager()
Definition: engine.h:645
Common::EventManager * _eventMan
Definition: engine.h:163
bool isPaused() const
Definition: engine.h:577
void setDebugger(GUI::Debugger *debugger)
Definition: engine.h:373
GUI::Dialog * _mainMenuDialog
Definition: engine.h:172
void GUIErrorMessage(const Common::U32String &msg, const char *url=nullptr)
Definition: savefile.h:142
Common::TimerManager * _timer
Definition: engine.h:159
void setMetaEngine(MetaEngine *metaEngine)
Definition: engine.h:539
Common::SaveFileManager * getSaveFileManager()
Definition: engine.h:649
virtual GUI::Debugger * getDebugger() final
Definition: engine.h:365
virtual Common::String getSaveStateName(int slot) const
Definition: engine.h:426
Common::SaveFileManager * _saveFileMan
Definition: engine.h:167
virtual bool hasFeature(EngineFeature f) const
Definition: engine.h:388
Definition: singleton.h:42
virtual bool canSaveAutosaveCurrently()
Definition: engine.h:679
Audio::Mixer * _mixer
Definition: engine.h:153