Public Member Functions | |
MetaEngine * | getMetaEngine () const |
void | setMetaEngine (MetaEngine *metaEngine) |
PauseToken | pauseEngine () |
bool | isPaused () const |
void | openMainMenuDialog () |
uint32 | getTotalPlayTime () const |
void | setTotalPlayTime (uint32 time=0) |
Common::TimerManager * | getTimerManager () |
Common::EventManager * | getEventManager () |
Common::SaveFileManager * | getSaveFileManager () |
bool | existExtractedCDAudioFiles (uint track=1) |
bool | isDataAndCDAudioReadFromSameCD () |
void | warnMissingExtractedCDAudio () |
void | handleAutoSave () |
void | saveAutosaveIfEnabled () |
virtual bool | canSaveAutosaveCurrently () |
virtual int | getAutosaveSlot () const |
Static Public Member Functions | |
static void | quitGame () |
static bool | shouldQuit () |
static bool | warnUserAboutUnsupportedGame (Common::String msg=Common::String()) |
static void | errorUnsupportedGame (Common::String extraMsg) |
Public Attributes | |
OSystem * | _system |
Audio::Mixer * | _mixer |
Protected Member Functions | |
virtual int | runDialog (GUI::Dialog &dialog) |
void | defaultSyncSoundSettings () |
Protected Attributes | |
Common::TimerManager * | _timer |
Common::EventManager * | _eventMan |
Common::SaveFileManager * | _saveFileMan |
GUI::Dialog * | _mainMenuDialog |
const Common::String | _targetName |
int32 | _activeEnhancements = kEnhGameBreakingBugFixes |
Overloadable methods | |
All Engine subclasses should consider overloading some or all of the following methods. | |
virtual void | pauseEngineIntern (bool pause) |
Engine (OSystem *syst) | |
virtual | ~Engine () |
virtual void | initializePath (const Common::FSNode &gamePath) |
virtual Common::Error | run ()=0 |
virtual void | errorString (const char *buf_input, char *buf_output, int buf_output_size) |
virtual GUI::Debugger * | getDebugger () final |
void | setDebugger (GUI::Debugger *debugger) |
GUI::Debugger * | getOrCreateDebugger () |
virtual bool | hasFeature (EngineFeature f) const |
bool | enhancementEnabled (int32 cls) |
virtual void | syncSoundSettings () |
virtual void | applyGameSettings () |
virtual void | flipMute () |
virtual Common::String | getSaveStateName (int slot) const |
virtual Common::Error | loadGameState (int slot) |
virtual Common::Error | loadGameStream (Common::SeekableReadStream *stream) |
void | setGameToLoadSlot (int slot) |
virtual bool | canLoadGameStateCurrently (Common::U32String *msg=nullptr) |
virtual Common::Error | saveGameState (int slot, const Common::String &desc, bool isAutosave=false) |
virtual Common::Error | saveGameStream (Common::WriteStream *stream, bool isAutosave=false) |
virtual bool | canSaveGameStateCurrently (Common::U32String *msg=nullptr) |
bool | saveGameDialog () |
bool | loadGameDialog () |
Engine features.
A feature in this context means an ability of the engine that can be either available or not.
Enumerator | |
---|---|
kSupportsSubtitleOptions | Enable the subtitle speed and toggle items in the Options section of the global main menu. |
kSupportsReturnToLauncher | The 'Return to launcher' feature is supported. This means that EVENT_RETURN_TO_LAUNCHER is handled either directly, or indirectly (the engine calls and honors the result of the Engine::shouldQuit() method appropriately). |
kSupportsLoadingDuringRuntime | Loading save states during runtime is supported. This means that the engine implements loadGameState() and canLoadGameStateCurrently(). If this feature is supported, then the corresponding MetaEngine must support the kSupportsListSaves feature. |
kSupportsSavingDuringRuntime | Loading save states during runtime is supported. This means that the engine implements saveGameState() and canSaveGameStateCurrently(). If this feature is supported, then the corresponding MetaEngine must support the kSupportsListSaves feature. |
kSupportsChangingOptionsDuringRuntime | Changing the game settings during runtime is supported. This enables showing the Engine Options tab in the config dialog accessed through the global main menu. |
kSupportsArbitraryResolutions | Arbitrary resolutions are supported. This means that the engine allows the backend to override the resolution passed to OSystem::setupScreen. The engine will need to read the actual resolution used by the backend using OSystem::getWidth and OSystem::getHeight. |
kSupportsHelp | The game provides custom help. This enables the help button in the main menu. |
kSupportsQuitDialogOverride | The engine provides overrides to the quit and exit to launcher dialogs. |
Engine::Engine | ( | OSystem * | syst | ) |
Create an instance of the engine.
|
virtual |
Destroy the engine instance.
|
protectedvirtual |
Run a GUI dialog.
Reimplemented in Twp::TwpEngine.
|
virtual |
Initialize SearchMan according to the game path.
By default, this adds the directory in non-flat mode with a depth of 4 as priority 0 to SearchMan.
gamePath | The base directory of the game data. |
Reimplemented in CryOmni3D::Versailles::CryOmni3DEngine_Versailles, Ultima::Ultima8::Ultima8Engine, Tinsel::TinselEngine, Private::PrivateEngine, HDB::HDBGame, Hypno::HypnoEngine, Crab::CrabEngine, Titanic::TitanicEngine, VCruise::VCruiseEngine, and Bagel::SpaceBar::SpaceBarEngine.
|
pure virtual |
Initialize the engine and start its main loop.
Implemented in Agi::AgiBase, Mohawk::MohawkEngine_LivingBooks, Scumm::ScummEngine, Saga::SagaEngine, Touche::ToucheEngine, Tucker::TuckerEngine, Mortevielle::MortevielleEngine, BladeRunner::BladeRunnerEngine, Lilliput::LilliputEngine, Griffon::GriffonEngine, Drascula::DrasculaEngine, Hugo::HugoEngine, Efh::EfhEngine, Director::DirectorEngine, Prince::PrinceEngine, CryOmni3D::Versailles::CryOmni3DEngine_Versailles, Dragons::DragonsEngine, AGOS::AGOSEngine, Bbvs::BbvsEngine, Parallaction::Parallaction, StarTrek::StarTrekEngine, TwinE::TwinEEngine, CGE::CGEEngine, Gnap::GnapEngine, Pegasus::PegasusEngine, Lab::LabEngine, Kyra::KyraEngine_v1, MacVenture::MacVentureEngine, Dgds::DgdsEngine, DM::DMEngine, Immortal::ImmortalEngine, Trecision::TrecisionEngine, CryOmni3D::CryOmni3DEngine_HNMPlayer, Freescape::FreescapeEngine, CGE2::CGE2Engine, ZVision::ZVision, Tinsel::TinselEngine, Ultima::Ultima8::Ultima8Engine, Voyeur::VoyeurEngine, HDB::HDBGame, Private::PrivateEngine, Sword1::SwordEngine, Composer::ComposerEngine, Sword2::Sword2Engine, Sci::SciEngine, Sherlock::SherlockEngine, Hopkins::HopkinsEngine, Groovie::GroovieEngine, Wage::WageEngine, Cine::CineEngine, Mohawk::MohawkEngine_CSTime, Mohawk::MohawkEngine_Myst, Toon::ToonEngine, Nancy::NancyEngine, Hypno::HypnoEngine, Avalanche::AvalancheEngine, Queen::QueenEngine, Sky::SkyEngine, Lure::LureEngine, NGI::NGIEngine, Access::AccessEngine, Hadesch::HadeschEngine, Saga2::Saga2Engine, DreamWeb::DreamWebEngine, Stark::StarkEngine, Titanic::TitanicEngine, MADS::MADSEngine, Pink::PinkEngine, Petka::PetkaEngine, Crab::CrabEngine, Toltecs::ToltecsEngine, Ultima::Shared::UltimaEarlyEngine, Kingdom::KingdomGame, Mohawk::MohawkEngine_Riven, Myst3::Myst3Engine, Twp::TwpEngine, TsAGE::TSageEngine, Cruise::CruiseEngine, TeenAgent::TeenAgentEngine, Darkseed::DarkseedEngine, AGS::AGSEngine, CryOmni3D::CryOmni3DEngine, Illusions::IllusionsEngine_Duckman, Plumbers::PlumbersGame, Asylum::AsylumEngine, QDEngine::QDEngineEngine, Tetraedge::TetraedgeEngine, Ultima::Nuvie::NuvieEngine, Draci::DraciEngine, Sword25::Sword25Engine, LastExpress::LastExpressEngine, Made::MadeEngine, Sludge::SludgeEngine, Buried::BuriedEngine, Supernova::SupernovaEngine, M4::M4Engine, Illusions::IllusionsEngine_BBDOU, Neverhood::NeverhoodEngine, Grim::GrimEngine, MutationOfJB::MutationOfJBEngine, Ultima::Ultima4::Ultima4Engine, Chewy::ChewyEngine, Wintermute::WintermuteEngine, Cryo::CryoEngine, Mohawk::MohawkEngine, Hpl1::Hpl1Engine, MTropolis::MTropolisEngine, Chamber::ChamberEngine, ICB::IcbEngine, Watchmaker::WatchmakerGame, Testbed::TestbedEngine, VCruise::VCruiseEngine, Playground3d::Playground3dEngine, and Bagel::SpaceBar::SpaceBarEngine.
|
virtual |
Prepare an error string that is printed by the error() function.
Reimplemented in Scumm::ScummEngine, Sci::SciEngine, and Nancy::NancyEngine.
|
inlinefinalvirtual |
Return the engine's debugger instance, if any.
|
inline |
Set the engine's debugger.
Once set, the Engine class is responsible for managing the debugger, and freeing it on exit.
GUI::Debugger* Engine::getOrCreateDebugger | ( | ) |
Return the engine's debugger instance, or create one if none is present.
Used by error() to invoke the debugger when a severe error is reported.
|
inlinevirtual |
Determine whether the engine supports the specified feature.
Reimplemented in Immortal::ImmortalEngine, Agi::AgiBase, Scumm::ScummEngine, Freescape::FreescapeEngine, Hypno::SpiderEngine, Saga::SagaEngine, Touche::ToucheEngine, Tucker::TuckerEngine, Hypno::WetEngine, Mortevielle::MortevielleEngine, NGI::NGIEngine, Toon::ToonEngine, BladeRunner::BladeRunnerEngine, Drascula::DrasculaEngine, Lilliput::LilliputEngine, Hugo::HugoEngine, Prince::PrinceEngine, Efh::EfhEngine, CryOmni3D::Versailles::CryOmni3DEngine_Versailles, AGOS::AGOSEngine, Parallaction::Parallaction, ZVision::ZVision, Bbvs::BbvsEngine, Dgds::DgdsEngine, Dragons::DragonsEngine, TwinE::TwinEEngine, Gnap::GnapEngine, Lab::LabEngine, Kyra::KyraEngine_v1, Mohawk::MohawkEngine_Myst, MacVenture::MacVentureEngine, Darkseed::DarkseedEngine, Grim::GrimEngine, Director::DirectorEngine, Trecision::TrecisionEngine, Private::PrivateEngine, Ultima::Ultima8::Ultima8Engine, DM::DMEngine, CGE2::CGE2Engine, Composer::ComposerEngine, Tinsel::TinselEngine, Voyeur::VoyeurEngine, CGE::CGEEngine, Sword1::SwordEngine, HDB::HDBGame, Crab::CrabEngine, Sword2::Sword2Engine, Sci::SciEngine, Hopkins::HopkinsEngine, Groovie::GroovieEngine, Cine::CineEngine, Wage::WageEngine, Sky::SkyEngine, AGS::AGSEngine, Lure::LureEngine, Queen::QueenEngine, Mohawk::MohawkEngine_Riven, Access::AccessEngine, Hadesch::HadeschEngine, M4::M4Engine, Myst3::Myst3Engine, QDEngine::QDEngineEngine, Saga2::Saga2Engine, Twp::TwpEngine, DreamWeb::DreamWebEngine, Stark::StarkEngine, Titanic::TitanicEngine, Avalanche::AvalancheEngine, Toltecs::ToltecsEngine, Tetraedge::TetraedgeEngine, Pink::PinkEngine, MADS::MADSEngine, Petka::PetkaEngine, Sherlock::SherlockEngine, Cruise::CruiseEngine, CryOmni3D::CryOmni3DEngine, Kingdom::KingdomGame, TeenAgent::TeenAgentEngine, Buried::BuriedEngine, Nancy::NancyEngine, Illusions::IllusionsEngine_Duckman, Bagel::BagelEngine, Hpl1::Hpl1Engine, Pegasus::PegasusEngine, TsAGE::TSageEngine, Made::MadeEngine, Asylum::AsylumEngine, Draci::DraciEngine, Neverhood::NeverhoodEngine, Sword25::Sword25Engine, LastExpress::LastExpressEngine, Mohawk::MohawkEngine, Supernova::SupernovaEngine, MutationOfJB::MutationOfJBEngine, Illusions::IllusionsEngine_BBDOU, Chewy::ChewyEngine, Ultima::Shared::UltimaEngine, Wintermute::WintermuteEngine, Cryo::CryoEngine, MTropolis::MTropolisEngine, Testbed::TestbedEngine, Chamber::ChamberEngine, VCruise::VCruiseEngine, MM::MMEngine, ICB::IcbEngine, and Playground3d::Playground3dEngine.
|
virtual |
Notify the engine that the sound settings in the config manager might have changed and that it should adjust any internal volume (and other) values accordingly.
The default implementation sets the volume levels of all mixer sound types according to the config entries of the active domain. When overwriting, call the default implementation first, then adjust the volumes further (if required).
Reimplemented in Agi::AgiEngine, Scumm::ScummEngine, Saga::SagaEngine, Touche::ToucheEngine, BladeRunner::BladeRunnerEngine, Griffon::GriffonEngine, Drascula::DrasculaEngine, Lilliput::LilliputEngine, Ultima::Ultima8::Ultima8Engine, Hugo::HugoEngine, Dragons::DragonsEngine, AGOS::AGOSEngine, ZVision::ZVision, MM::Xeen::XeenEngine, Toon::ToonEngine, Hopkins::HopkinsEngine, AGS::AGSEngine, Kyra::KyraEngine_v1, Crab::CrabEngine, Sherlock::SherlockEngine, MADS::MADSEngine, Darkseed::DarkseedEngine, HDB::HDBGame, Sword1::SwordEngine, Titanic::TitanicEngine, Sci::SciEngine, Sword2::Sword2Engine, Groovie::GroovieEngine, Cine::CineEngine, QDEngine::QDEngineEngine, Lure::LureEngine, Queen::QueenEngine, M4::M4Engine, Saga2::Saga2Engine, Cruise::CruiseEngine, Toltecs::ToltecsEngine, Chewy::ChewyEngine, Sky::SkyEngine, TsAGE::TSageEngine, Myst3::Myst3Engine, MM::MM1::MM1Engine, Ultima::Nuvie::NuvieEngine, Made::MadeEngine, Draci::DraciEngine, and VCruise::VCruiseEngine.
|
inlinevirtual |
Notify the engine that the settings editable from the Game tab in the in-game options dialog might have changed and that they need to be applied if necessary.
Reimplemented in Ultima::Ultima8::Ultima8Engine, Mohawk::MohawkEngine_Myst, Mohawk::MohawkEngine_Riven, and Petka::PetkaEngine.
|
virtual |
Flip mute all sound options.
|
inlinevirtual |
Generate the savegame filename.
Reimplemented in Tucker::TuckerEngine, Touche::ToucheEngine, Saga::SagaEngine, Mortevielle::MortevielleEngine, NGI::NGIEngine, Hugo::HugoEngine, Adl::AdlEngine, CryOmni3D::Versailles::CryOmni3DEngine_Versailles, Sword2::Sword2Engine, Mohawk::MohawkEngine_Myst, Sword1::SwordEngine, Cine::CineEngine, Buried::BuriedEngine, Neverhood::NeverhoodEngine, Cruise::CruiseEngine, Mohawk::MohawkEngine_Riven, Pink::PinkEngine, Sky::SkyEngine, Queen::QueenEngine, Supernova::SupernovaEngine, TeenAgent::TeenAgentEngine, and Draci::DraciEngine.
|
virtual |
Load a game state.
slot | The slot from which a save state should be loaded. |
Reimplemented in Agi::AgiEngine, Tucker::TuckerEngine, Kyra::KyraEngine_HoF, Saga::SagaEngine, Touche::ToucheEngine, Scumm::ScummEngine, Bbvs::BbvsEngine, Mortevielle::MortevielleEngine, Kyra::KyraEngine_v1, NGI::NGIEngine, BladeRunner::BladeRunnerEngine, Toon::ToonEngine, Drascula::DrasculaEngine, Ultima::Ultima8::Ultima8Engine, Gnap::GnapEngine, Hugo::HugoEngine, Prince::PrinceEngine, Efh::EfhEngine, Access::AccessEngine, Adl::AdlEngine, CryOmni3D::Versailles::CryOmni3DEngine_Versailles, ZVision::ZVision, Dragons::DragonsEngine, Illusions::IllusionsEngine, Wage::WageEngine, Kingdom::KingdomGame, MM::Xeen::XeenEngine, Lab::LabEngine, Toltecs::ToltecsEngine, Kyra::KyraEngine_LoK, HDB::HDBGame, Voyeur::VoyeurEngine, Asylum::AsylumEngine, MacVenture::MacVentureEngine, Mohawk::MohawkEngine_Myst, DM::DMEngine, Hopkins::HopkinsEngine, CGE2::CGE2Engine, Crab::CrabEngine, AGS::AGSEngine, Sword2::Sword2Engine, Tinsel::TinselEngine, CGE::CGEEngine, Sword1::SwordEngine, Composer::ComposerEngine, Cine::CineEngine, Sherlock::SherlockEngine, MADS::MADSEngine, Lure::LureEngine, Sci::SciEngine, Titanic::TitanicEngine, Groovie::GroovieEngine, Tetraedge::TetraedgeEngine, Twp::TwpEngine, M4::M4Engine, Myst3::Myst3Engine, Petka::PetkaEngine, Neverhood::NeverhoodEngine, Saga2::Saga2Engine, DreamWeb::DreamWebEngine, Avalanche::AvalancheEngine, Stark::StarkEngine, Mohawk::MohawkEngine_Riven, Cruise::CruiseEngine, Pink::PinkEngine, Sky::SkyEngine, Bagel::BagelEngine, Ultima::Nuvie::NuvieEngine, Queen::QueenEngine, Hpl1::Hpl1Engine, TsAGE::TSageEngine, TeenAgent::TeenAgentEngine, Grim::GrimEngine, Draci::DraciEngine, Pegasus::PegasusEngine, MutationOfJB::MutationOfJBEngine, Supernova::SupernovaEngine, and Wintermute::WintermuteEngine.
|
virtual |
Load a game state.
stream | The stream to load the save state from. |
Reimplemented in Hypno::BoyzEngine, Freescape::FreescapeEngine, Hypno::SpiderEngine, Hypno::WetEngine, Ultima::Ultima8::Ultima8Engine, TwinE::TwinEEngine, Dgds::DgdsEngine, Darkseed::DarkseedEngine, Private::PrivateEngine, Trecision::TrecisionEngine, Buried::BuriedEngine, M4::M4Engine, Tetraedge::TetraedgeEngine, Twp::TwpEngine, QDEngine::QDEngineEngine, Ultima::Shared::UltimaEarlyEngine, Ultima::Ultima4::Ultima4Engine, Hadesch::HadeschEngine, Saga2::Saga2Engine, Bagel::BagelEngine, Hpl1::Hpl1Engine, MM::MM1::MM1Engine, Chewy::ChewyEngine, Nancy::NancyEngine, Chamber::ChamberEngine, and VCruise::VCruiseEngine.
void Engine::setGameToLoadSlot | ( | int | slot | ) |
Set the game slot for a savegame to be loaded after the global main menu execution.
This is to avoid loading a savegame from inside the menu loop which causes bugs like #4420.
slot | The slot from which a save state should be loaded. |
|
virtual |
Indicate whether a game state can be loaded.
msg | Optional pointer to message explaining why it is disabled |
Reimplemented in Agi::AgiBase, Tucker::TuckerEngine, Immortal::ImmortalEngine, Saga::SagaEngine, Touche::ToucheEngine, Scumm::ScummEngine, Freescape::FreescapeEngine, Bbvs::BbvsEngine, Mortevielle::MortevielleEngine, NGI::NGIEngine, Kyra::KyraEngine_v1, BladeRunner::BladeRunnerEngine, Drascula::DrasculaEngine, Ultima::Ultima8::Ultima8Engine, Access::AccessEngine, Prince::PrinceEngine, Efh::EfhEngine, Hugo::HugoEngine, Dragons::DragonsEngine, ZVision::ZVision, MM::Xeen::XeenEngine, TwinE::TwinEEngine, Illusions::IllusionsEngine, Toon::ToonEngine, Dgds::DgdsEngine, Lab::LabEngine, Toltecs::ToltecsEngine, HDB::HDBGame, Voyeur::VoyeurEngine, Asylum::AsylumEngine, Darkseed::DarkseedEngine, MacVenture::MacVentureEngine, Mohawk::MohawkEngine_Myst, Trecision::TrecisionEngine, Private::PrivateEngine, DM::DMEngine, Hopkins::HopkinsEngine, Hypno::HypnoEngine, Tinsel::TinselEngine, CGE2::CGE2Engine, Sword2::Sword2Engine, CGE::CGEEngine, Cine::CineEngine, Sword1::SwordEngine, AGS::AGSEngine, Composer::ComposerEngine, Crab::CrabEngine, Lure::LureEngine, Sci::SciEngine, Buried::BuriedEngine, Sherlock::SherlockEngine, Groovie::GroovieEngine, MADS::MADSEngine, Titanic::TitanicEngine, Wage::WageEngine, Petka::PetkaEngine, Myst3::Myst3Engine, Twp::TwpEngine, M4::M4Engine, QDEngine::QDEngineEngine, Neverhood::NeverhoodEngine, Ultima::Shared::UltimaEngine, Hadesch::HadeschEngine, Saga2::Saga2Engine, Tetraedge::TetraedgeEngine, Avalanche::AvalancheEngine, Stark::StarkEngine, Cruise::CruiseEngine, Mohawk::MohawkEngine_Riven, Sherlock::Tattoo::TattooEngine, Pink::PinkEngine, Sky::SkyEngine, CryOmni3D::CryOmni3DEngine, Queen::QueenEngine, MM::MM1::MM1Engine, TeenAgent::TeenAgentEngine, TsAGE::TSageEngine, Grim::GrimEngine, M4::Burger::BurgerEngine, Nancy::NancyEngine, Bagel::BagelEngine, Chewy::ChewyEngine, Draci::DraciEngine, Hpl1::Hpl1Engine, Pegasus::PegasusEngine, MutationOfJB::MutationOfJBEngine, Supernova::SupernovaEngine, Wintermute::WintermuteEngine, VCruise::VCruiseEngine, and Chamber::ChamberEngine.
|
virtual |
Save a game state.
slot | The slot into which the save state should be stored. |
desc | Description for the save state, entered by the user. |
isAutosave | Expected to be true if an autosave is being created. |
Reimplemented in Agi::AgiEngine, Tucker::TuckerEngine, Saga::SagaEngine, Touche::ToucheEngine, Scumm::ScummEngine, Bbvs::BbvsEngine, Mortevielle::MortevielleEngine, Kyra::KyraEngine_v1, NGI::NGIEngine, BladeRunner::BladeRunnerEngine, Toon::ToonEngine, Drascula::DrasculaEngine, Ultima::Ultima8::Ultima8Engine, Gnap::GnapEngine, Hugo::HugoEngine, Prince::PrinceEngine, Efh::EfhEngine, Access::AccessEngine, Adl::AdlEngine, CryOmni3D::Versailles::CryOmni3DEngine_Versailles, ZVision::ZVision, Dragons::DragonsEngine, Illusions::IllusionsEngine, MM::Xeen::XeenEngine, Wage::WageEngine, Kingdom::KingdomGame, Lab::LabEngine, Toltecs::ToltecsEngine, Voyeur::VoyeurEngine, HDB::HDBGame, Asylum::AsylumEngine, MacVenture::MacVentureEngine, Mohawk::MohawkEngine_Myst, Hopkins::HopkinsEngine, AGS::AGSEngine, CGE2::CGE2Engine, Crab::CrabEngine, CGE::CGEEngine, Sword2::Sword2Engine, Sherlock::SherlockEngine, Sword1::SwordEngine, Composer::ComposerEngine, Cine::CineEngine, MADS::MADSEngine, Titanic::TitanicEngine, Lure::LureEngine, Sci::SciEngine, Groovie::GroovieEngine, Twp::TwpEngine, Petka::PetkaEngine, Myst3::Myst3Engine, Neverhood::NeverhoodEngine, Tetraedge::TetraedgeEngine, DreamWeb::DreamWebEngine, Saga2::Saga2Engine, Stark::StarkEngine, Mohawk::MohawkEngine_Riven, Ultima::Ultima4::Ultima4Engine, Cruise::CruiseEngine, Avalanche::AvalancheEngine, Ultima::Nuvie::NuvieEngine, Pink::PinkEngine, Sky::SkyEngine, Queen::QueenEngine, TsAGE::TSageEngine, Bagel::BagelEngine, TeenAgent::TeenAgentEngine, Draci::DraciEngine, Pegasus::PegasusEngine, MutationOfJB::MutationOfJBEngine, Supernova::SupernovaEngine, and Wintermute::WintermuteEngine.
|
virtual |
Save a game state.
stream | The write stream to save the savegame data to. |
isAutosave | Expected to be true if an autosave is being created. |
Reimplemented in Hypno::BoyzEngine, Freescape::FreescapeEngine, Hypno::SpiderEngine, Hypno::WetEngine, Ultima::Ultima8::Ultima8Engine, TwinE::TwinEEngine, Dgds::DgdsEngine, Darkseed::DarkseedEngine, Private::PrivateEngine, Trecision::TrecisionEngine, Buried::BuriedEngine, M4::M4Engine, Ultima::Shared::UltimaEarlyEngine, QDEngine::QDEngineEngine, Twp::TwpEngine, Ultima::Ultima4::Ultima4Engine, Tetraedge::TetraedgeEngine, Hadesch::HadeschEngine, Saga2::Saga2Engine, MM::MM1::MM1Engine, Chewy::ChewyEngine, Bagel::BagelEngine, Hpl1::Hpl1Engine, Nancy::NancyEngine, MTropolis::MTropolisEngine, Chamber::ChamberEngine, and VCruise::VCruiseEngine.
|
virtual |
Indicate whether a game state can be saved.
msg | Optional pointer to message explaining why it is disabled |
Reimplemented in Agi::AgiBase, Tucker::TuckerEngine, Immortal::ImmortalEngine, Saga::SagaEngine, Touche::ToucheEngine, Scumm::ScummEngine, Freescape::FreescapeEngine, Bbvs::BbvsEngine, Mortevielle::MortevielleEngine, NGI::NGIEngine, Kyra::KyraEngine_v1, BladeRunner::BladeRunnerEngine, Drascula::DrasculaEngine, Ultima::Ultima8::Ultima8Engine, Access::AccessEngine, Prince::PrinceEngine, Efh::EfhEngine, Adl::AdlEngine, Hugo::HugoEngine, Dragons::DragonsEngine, ZVision::ZVision, MM::Xeen::XeenEngine, TwinE::TwinEEngine, Illusions::IllusionsEngine, Toon::ToonEngine, Dgds::DgdsEngine, Lab::LabEngine, Toltecs::ToltecsEngine, HDB::HDBGame, Voyeur::VoyeurEngine, Asylum::AsylumEngine, Darkseed::DarkseedEngine, MacVenture::MacVentureEngine, Mohawk::MohawkEngine_Myst, Private::PrivateEngine, Trecision::TrecisionEngine, Hopkins::HopkinsEngine, Hypno::HypnoEngine, CGE2::CGE2Engine, Sword2::Sword2Engine, CGE::CGEEngine, AGS::AGSEngine, Sword1::SwordEngine, Cine::CineEngine, Crab::CrabEngine, Composer::ComposerEngine, Lure::LureEngine, Sci::SciEngine, Sherlock::SherlockEngine, Buried::BuriedEngine, MADS::MADSEngine, Groovie::GroovieEngine, Titanic::TitanicEngine, Wage::WageEngine, Ultima::Shared::UltimaEngine, Petka::PetkaEngine, Twp::TwpEngine, QDEngine::QDEngineEngine, M4::M4Engine, Myst3::Myst3Engine, Neverhood::NeverhoodEngine, Hadesch::HadeschEngine, Saga2::Saga2Engine, Tetraedge::TetraedgeEngine, Cruise::CruiseEngine, Sherlock::Tattoo::TattooEngine, Stark::StarkEngine, Mohawk::MohawkEngine_Riven, Avalanche::AvalancheEngine, Pink::PinkEngine, Sky::SkyEngine, CryOmni3D::CryOmni3DEngine, Queen::QueenEngine, TeenAgent::TeenAgentEngine, TsAGE::TSageEngine, Chewy::ChewyEngine, Nancy::NancyEngine, Bagel::BagelEngine, MM::MM1::MM1Engine, Draci::DraciEngine, Pegasus::PegasusEngine, MTropolis::MTropolisEngine, MutationOfJB::MutationOfJBEngine, Supernova::SupernovaEngine, Wintermute::WintermuteEngine, VCruise::VCruiseEngine, Chamber::ChamberEngine, and Adl::AdlEngine_v2.
bool Engine::saveGameDialog | ( | ) |
Show the ScummVM save dialog, allowing users to save their game.
bool Engine::loadGameDialog | ( | ) |
Show the ScummVM Restore dialog, allowing users to load a game.
|
protectedvirtual |
Actual implementation of pauseEngine by subclasses.
Reimplemented in Scumm::ScummEngine, Freescape::FreescapeEngine, Saga::SagaEngine, Mortevielle::MortevielleEngine, BladeRunner::BladeRunnerEngine, Prince::PrinceEngine, AGOS::AGOSEngine, Parallaction::Parallaction, Toon::ToonEngine, Pegasus::PegasusEngine, Kyra::KyraEngine_v1, Grim::GrimEngine, ZVision::ZVision, Ultima::Ultima8::Ultima8Engine, Sword2::Sword2Engine, Sci::SciEngine, Groovie::GroovieEngine, Petka::PetkaEngine, Nancy::NancyEngine, Lure::LureEngine, Scumm::ScummEngine_v60he, Bagel::BagelEngine, Made::MadeEngine, Pink::PinkEngine, Stark::StarkEngine, DreamWeb::DreamWebEngine, Myst3::Myst3Engine, Buried::BuriedEngine, MTropolis::MTropolisEngine, Draci::DraciEngine, Kyra::KyraEngine_v2, Supernova::SupernovaEngine, VCruise::VCruiseEngine, Hpl1::Hpl1Engine, and Kyra::KyraEngine_HoF.
|
static |
Request the engine to quit.
Sends an EVENT_QUIT event to the Event Manager.
|
static |
Return whether the engine should quit.
This can mean either quitting ScummVM altogether, or returning to the launcher.
|
inline |
Return the MetaEngine instance used by this engine.
|
inline |
Set the MetaEngine instance used by this engine.
PauseToken Engine::pauseEngine | ( | ) |
Pause the engine.
This should stop any audio playback and other operations. Called right before the system runs a global dialog (like a global pause, main menu, options, or 'confirm exit' dialog).
Returns a PauseToken. Multiple pause tokens can exist. The engine will be resumed when all associated pause tokens reach the end of their lives.
|
inline |
Return whether the engine is currently paused or not.
void Engine::openMainMenuDialog | ( | ) |
Run the global main menu dialog.
|
static |
Display a warning to the user that the game is not fully supported.
msg | A message that will be presented to user. If empty, then generic message regarding unsupported game is presented |
|
static |
Display an error message to the user that the game is not supported.
extraMsg | An extra message that will be appended to the default message. |
uint32 Engine::getTotalPlayTime | ( | ) | const |
Get the total play time.
void Engine::setTotalPlayTime | ( | uint32 | time = 0 | ) |
Set the game time counter to the specified time.
This can be used to set the play time counter after loading a savegame, for example. Another use case is when the engine wants to exclude from the counter the time that the user spent in original engine dialogs.
time | Play time to set up in ms. |
|
inline |
Return the TimerManager instance used by this engine.
|
inline |
Return the EventManager instance used by this engine.
|
inline |
Return the SaveFileManager instance used by this engine.
bool Engine::existExtractedCDAudioFiles | ( | uint | track = 1 | ) |
Check if extracted CD Audio files are found.
bool Engine::isDataAndCDAudioReadFromSameCD | ( | ) |
On some systems, check whether the game appears to be run from the same CD drive, which also should play CD audio.
void Engine::warnMissingExtractedCDAudio | ( | ) |
Display a warning for no extracted CD Audio files found.
void Engine::handleAutoSave | ( | ) |
Check whether it is time to autosave, and if so, do it.
void Engine::saveAutosaveIfEnabled | ( | ) |
Autosave immediately if autosaves are enabled.
|
inlinevirtual |
Indicate whether an autosave can currently be done.
Reimplemented in Freescape::FreescapeEngine, Hypno::SpiderEngine, Tucker::TuckerEngine, MM::Xeen::XeenEngine, Dgds::DgdsEngine, Asylum::AsylumEngine, Private::PrivateEngine, Mohawk::MohawkEngine_Riven, Hypno::HypnoEngine, Twp::TwpEngine, Tetraedge::TetraedgeEngine, MTropolis::MTropolisEngine, Wintermute::WintermuteEngine, and VCruise::VCruiseEngine.
|
inlinevirtual |
Return the slot that should be used for autosaves, or -1 for engines that don't support autosave.
Reimplemented in Tucker::TuckerEngine, BladeRunner::BladeRunnerEngine, Kyra::KyraEngine_v1, Bbvs::BbvsEngine, Adl::AdlEngine, Asylum::AsylumEngine, Sci::SciEngine, AGS::AGSEngine, Petka::PetkaEngine, Groovie::GroovieEngine, and Queen::QueenEngine.
|
protected |
Syncs the engine's mixer using the default volume syncing behavior.
Audio::Mixer* Engine::_mixer |
The Mixer instance used by the engine.
|
protected |
The TimerManager instance used by the engine.
|
protected |
The EventManager instance used by the engine.
|
protected |
The SaveFileManager used by the engine.
|
protected |
The Dialog instance used by the engine.
|
protected |
Target name for saves.