22#ifndef ENGINES_ENGINE_H
23#define ENGINES_ENGINE_H
25#include "common/array.h"
26#include "common/error.h"
27#include "common/rect.h"
28#include "common/scummsys.h"
29#include "common/str.h"
30#include "common/language.h"
31#include "common/platform.h"
32#include "common/queue.h"
33#include "common/singleton.h"
34#include "engines/enhancements.h"
50class SeekableReadStream;
93template<
class... TParam>
137 bool isActive()
const {
return _engine !=
nullptr; }
188 int32 _activeEnhancements = kEnhGameBreakingBugFixes;
227 uint32 _pauseStartTime;
232 int _pauseScreenChangeID;
239 int32 _engineStartTime;
244 int _autosaveInterval;
249 int _lastAutosaveTime;
272 static bool _quitRequested;
384 virtual void errorString(
const char *buf_input,
char *buf_output,
int buf_output_size);
399 _debugger = debugger;
414 bool enhancementEnabled(int32 cls)
const;
631 bool warnBeforeOverwritingAutosave();
817 bool empty() {
return _chainedGames.empty(); }
821#define ChainedGamesMan ChainedGamesManager::instance()
void push(const Common::String &target, const int slot=-1)
bool pop(Common::String &target, int &slot)
bool empty()
Definition: engine.h:817
Definition: savefile.h:142
Definition: singleton.h:42
static String format(MSVC_PRINTF const char *fmt,...) GCC_PRINTF(1
void defaultSyncSoundSettings()
void saveAutosaveIfEnabled()
bool isDataAndCDAudioReadFromSameCD()
Common::TimerManager * getTimerManager()
Definition: engine.h:707
virtual void drawHotspots()
Common::ErrorCode updateAddOns(const MetaEngine *metaEngine) const
bool isPaused() const
Definition: engine.h:638
virtual Common::Error loadGameStream(Common::SeekableReadStream *stream)
virtual int getAutosaveSlot() const
Definition: engine.h:755
virtual void getHotspotPositions(Common::Array< Graphics::HotspotInfo > &hotspots)
virtual void errorString(const char *buf_input, char *buf_output, int buf_output_size)
void openMainMenuDialog()
static void errorAddingAddOnWithoutBaseGame(Common::String addOnName, Common::String gameId)
bool _showHotspots
Definition: engine.h:193
static bool warnUserAboutUnsupportedAddOn(Common::String addOnName)
virtual bool dirCanBeGameAddOn(const Common::FSDirectory &dir) const
bool existExtractedCDAudioFiles(uint track=1)
virtual Common::String getSaveStateName(int slot) const
Definition: engine.h:450
void setDebugger(GUI::Debugger *debugger)
Definition: engine.h:397
void setGameToLoadSlot(int slot)
bool _hotspotForceRedraw
Definition: engine.h:200
static void warnUserAboutTestingMode()
Common::SaveFileManager * _saveFileMan
Definition: engine.h:172
virtual void initializePath(const Common::FSNode &gamePath)
virtual GUI::Debugger * getDebugger() final
Definition: engine.h:389
virtual Common::Error run()=0
void setMetaEngine(MetaEngine *metaEngine)
Definition: engine.h:600
const Common::String _targetName
Definition: engine.h:186
Common::TimerManager * _timer
Definition: engine.h:164
virtual void pauseEngineIntern(bool pause)
static void errorUnsupportedGame(Common::String extraMsg)
void warnMissingExtractedCDAudio()
virtual bool dirMustBeGameAddOn(const Common::FSDirectory &dir) const
virtual bool gameTypeHasAddOns() const
MetaEngine * getMetaEngine() const
Definition: engine.h:595
GUI::Debugger * getOrCreateDebugger()
Common::EventManager * _eventMan
Definition: engine.h:168
Common::SaveFileManager * getSaveFileManager()
Definition: engine.h:715
virtual bool hotspotDirty() const
OSystem * _system
Definition: engine.h:154
void setTotalPlayTime(uint32 time=0)
virtual void syncSoundSettings()
virtual bool canLoadGameStateCurrently(Common::U32String *msg=nullptr)
virtual Common::Error loadGameState(int slot)
virtual bool canSaveAutosaveCurrently()
Definition: engine.h:745
virtual Common::Error saveGameStream(Common::WriteStream *stream, bool isAutosave=false)
EngineFeature
Definition: engine.h:282
@ kSupportsHelp
Definition: engine.h:339
@ kSupportsReturnToLauncher
Definition: engine.h:296
@ kSupportsQuitDialogOverride
Definition: engine.h:344
@ kSupportsSavingDuringRuntime
Definition: engine.h:314
@ kSupportsLoadingDuringRuntime
Definition: engine.h:305
@ kSupportsArbitraryResolutions
Definition: engine.h:332
@ kSupportsSubtitleOptions
Definition: engine.h:287
@ kSupportsChangingOptionsDuringRuntime
Definition: engine.h:322
virtual Common::Error saveGameState(int slot, const Common::String &desc, bool isAutosave=false)
virtual void applyGameSettings()
Definition: engine.h:440
virtual bool hasFeature(EngineFeature f) const
Definition: engine.h:412
bool _hotspotPrevCursorVisible
Definition: engine.h:207
Audio::Mixer * _mixer
Definition: engine.h:158
Common::EventManager * getEventManager()
Definition: engine.h:711
virtual int runDialog(GUI::Dialog &dialog)
virtual void showHotspots(bool show)
virtual bool canSaveGameStateCurrently(Common::U32String *msg=nullptr)
uint32 getTotalPlayTime() const
static bool warnUserAboutUnsupportedGame(Common::String msg=Common::String())
GUI::Dialog * _mainMenuDialog
Definition: engine.h:177
Definition: debugger.h:41
void operator=(const PauseToken &)
bool isActive() const
Definition: engine.h:137
PauseToken(const PauseToken &)
ErrorCode
Definition: error.h:47
int FORCEINLINE GCC_PRINTF(2, 0) int vsprintf_s(T(&dst)[N]
void GUIErrorMessageFormat(const Common::U32String &fmt, TParam... param)
Definition: engine.h:94
void GUIErrorMessage(const Common::U32String &msg, const char *url=nullptr)
void GUIErrorMessageWithURL(const Common::U32String &msg, const char *url)
void GUIErrorMessageFormatU32StringPtr(const Common::U32String *fmt,...)
Definition: algorithm.h:29
Definition: formatinfo.h:28