Difference between revisions of "Advanced Engine Features"

Jump to navigation Jump to search
→‎Loading/Saving during run time: Implemented in supernova engine
(ZVision supports all advanced engine features)
(→‎Loading/Saving during run time: Implemented in supernova engine)
(14 intermediate revisions by 3 users not shown)
Line 18: Line 18:


'''Relevant Engine API'''
'''Relevant Engine API'''
<syntax type="C++">
<syntaxhighlight lang="cpp">
virtual void pauseEngineIntern(bool pause);
virtual void pauseEngineIntern(bool pause);
void pauseEngine(bool pause);
void pauseEngine(bool pause);
bool isPaused() const;
bool isPaused() const;
</syntax>
</syntaxhighlight>


'''Implemented by:'''
'''Implemented by:'''
[[AGOS]], [[Draci]], [[Gob]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sword2]], [[Toon]], [[ZVision]]
[[AGOS]], [[Draci]], [[Gob]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[SAGA]], [[SCI]], [[SCUMM]], [[Supernova]], [[Sword2]], [[Toon]], [[ZVision]]


'''Not implemented by:'''
'''Not implemented by:'''
Line 41: Line 41:


'''Relevant Engine API'''
'''Relevant Engine API'''
<syntax type="C++"> void quitGame();
<syntaxhighlight lang="cpp">
void quitGame();
bool shouldQuit() const;
bool shouldQuit() const;


kSupportsRTL feature flag</syntax>
kSupportsRTL feature flag
</syntaxhighlight>


'''Implemented by:'''
'''Implemented by:'''
[[AGI]], [[AGOS]], [[CGE]], [[Cine]], [[Composer]], [[CruisE]], [[Draci]], [[Drascula]], [[Gob]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Lastexpress]], [[Lure]], [[MADE]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[TeenAgent]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[TsAGE]], [[Wintermute]], [[ZVision]]
[[AGI]], [[AGOS]], [[CGE]], [[Cine]], [[Composer]], [[CruisE]], [[Draci]], [[Drascula]], [[Gob]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Lastexpress]], [[Lure]], [[MADE]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Supernova]], [[Sword1]], [[Sword2]], [[Sword25]], [[TeenAgent]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]


'''Not implemented by:''' [[Avalanche]], [[Dreamweb]], [[Fullpipe]], [[Tinsel]], [[Tucker]]
'''Not implemented by:''' [[Avalanche]], [[Dreamweb]], [[Fullpipe]], [[Tinsel]]


===Global options dialog support===
===Global options dialog support===
Line 59: Line 61:


'''Relevant Engine API'''
'''Relevant Engine API'''
<syntax type="C++"> virtual void syncSoundSettings();</syntax>
<syntaxhighlight lang="cpp">
virtual void syncSoundSettings();
</syntaxhighlight>


'''Implemented by:'''
'''Implemented by:'''
Line 97: Line 101:
'''What is this about?'''<br>
'''What is this about?'''<br>
With this feature, it is possible to build a list of available save slots for a given game target. This can be used by the user to list all saveslots from the command line, as the following example illustrates:
With this feature, it is possible to build a list of available save slots for a given game target. This can be used by the user to list all saveslots from the command line, as the following example illustrates:
<syntax type="Bash">$ ./scummvm --list-saves=monkey2
<syntaxhighlight lang="bash">
$ ./scummvm --list-saves --game=monkey2
Saves for target 'monkey2':
Saves for target 'monkey2':
   Slot Description                                           
   Slot Description                                           
Line 104: Line 109:
   1    Start
   1    Start
   2    Quicksave 2
   2    Quicksave 2
$</syntax>
$
</syntaxhighlight>
Furthermore, this is used by the load/save dialogs in the Launcher and the GMM to build the list of savestates they show visually to the user.
Furthermore, this is used by the load/save dialogs in the Launcher and the GMM to build the list of savestates they show visually to the user.


Line 117: Line 123:


'''Relevant MetaEngine API'''
'''Relevant MetaEngine API'''
<syntax type="C++"> virtual SaveStateList listSaves(const char *target) const;
<syntaxhighlight lang="cpp">
virtual SaveStateList listSaves(const char *target) const;
virtual int getMaximumSaveSlot() const;
virtual int getMaximumSaveSlot() const;


kSupportsListSaves feature flag</syntax>
kSupportsListSaves feature flag
</syntaxhighlight>


'''Implemented by:'''
'''Implemented by:'''
[[AGI]], [[AGOS]], [[Avalanche]], [[CGE]], [[Cine]], [[CruisE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[Tinsel]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[Wintermute]], [[ZVision]]
[[AGI]], [[AGOS]], [[Avalanche]], [[CGE]], [[Cine]], [[CruisE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Supernova]], [[Sword1]], [[Sword2]], [[Sword25]], [[Tinsel]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[Tucker]], [[Wintermute]], [[ZVision]]


'''Not implemented by:'''
'''Not implemented by:'''
[[Composer]], [[Fullpipe]], [[Gob]], [[Lastexpress]], [[MADE]], [[TeenAgent]], [[TsAGE]], [[Tucker]]
[[Composer]], [[Fullpipe]], [[Gob]], [[Lastexpress]], [[MADE]], [[TeenAgent]], [[TsAGE]]


===Loading savestates via command line or Launcher===
===Loading savestates via command line or Launcher===
Line 136: Line 144:


'''Relevant MetaEngine API'''
'''Relevant MetaEngine API'''
<syntax type="C++"> save_slot ConfigMan setting
<syntaxhighlight lang="cpp">
save_slot ConfigMan setting


kSupportsLoadingDuringStartup feature flag</syntax>
kSupportsLoadingDuringStartup feature flag
</syntaxhighlight>


'''Implemented by:'''
'''Implemented by:'''
[[AGI]], [[Avalanche]], [[Cine]], [[CGE]], [[CruisE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[TeenAgent]], [[Tinsel]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]
[[AGI]], [[Avalanche]], [[Cine]], [[CGE]], [[CruisE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Supernova]], [[Sword1]], [[Sword2]], [[TeenAgent]], [[Tinsel]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]


'''Not implemented by:'''
'''Not implemented by:'''
Line 157: Line 167:


'''Relevant MetaEngine API'''
'''Relevant MetaEngine API'''
<syntax type="C++"> void removeSaveState(const char *target, int slot) const;
<syntaxhighlight lang="cpp">
void removeSaveState(const char *target, int slot) const;


kSupportsDeleteSave feature flag</syntax>
kSupportsDeleteSave feature flag
</syntaxhighlight>


'''Implemented by:'''
'''Implemented by:'''
[[AGI]], [[Avalanche]], [[Cine]], [[CGE]], [[CruisE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Neverhood]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[TeenAgent]], [[Tinsel]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]
[[AGI]], [[Avalanche]], [[Cine]], [[CGE]], [[CruisE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Neverhood]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Supernova]], [[Sword1]], [[Sword2]], [[TeenAgent]], [[Tinsel]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]


'''Not implemented by:'''
'''Not implemented by:'''
Line 177: Line 189:


'''Relevant MetaEngine API'''
'''Relevant MetaEngine API'''
<syntax type="C++"> virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;
<syntaxhighlight lang="cpp">
virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const;


kSavesSupportMetaInfo feature flag
kSavesSupportMetaInfo feature flag
kSavesSupportThumbnail feature flag
kSavesSupportThumbnail feature flag
kSavesSupportCreationDate feature flag
kSavesSupportCreationDate feature flag
kSavesSupportPlayTime feature flag</syntax>
kSavesSupportPlayTime feature flag
</syntaxhighlight>


'''Implemented by:'''
'''Implemented by:'''
[[AGI]], [[Avalanche]], [[CGE]], [[CruisE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Mortevielle]], [[Neverhood]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sword1]], [[TeenAgent]], [[Toltecs]], [[Tony]], [[Toon]], [[TsAGE]], [[Wintermute]], [[ZVision]]
[[AGI]], [[Avalanche]], [[CGE]], [[CruisE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Mortevielle]], [[Neverhood]], [[SAGA]], [[SCI]], [[SCUMM]], [[Supernova]], [[Sword1]], [[TeenAgent]], [[Toltecs]], [[Tony]], [[Toon]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]


'''Not implemented by:'''
'''Not implemented by:'''
[[AGOS]], [[Cine]], [[Composer]], [[Fullpipe]], [[Gob]], [[Lastexpress]], [[Lure]], [[Mohawk]], [[MADE]], [[Parallaction]], [[Pegasus]], [[Queen]], [[Sky]], [[Sword2]], [[Sword25]], [[Touche]], [[Tinsel]], [[Tucker]]
[[AGOS]], [[Cine]], [[Composer]], [[Fullpipe]], [[Gob]], [[Lastexpress]], [[Lure]], [[Mohawk]], [[MADE]], [[Parallaction]], [[Pegasus]], [[Queen]], [[Sky]], [[Sword2]], [[Sword25]], [[Touche]], [[Tinsel]]


===Loading/Saving during run time===
===Loading/Saving during run time===
Line 203: Line 217:


'''Relevant Engine API'''
'''Relevant Engine API'''
<syntax type="C++"> virtual Common::Error loadGameState(int slot);
<syntaxhighlight lang="cpp">
virtual Common::Error loadGameState(int slot);
virtual bool canLoadGameStateCurrently();
virtual bool canLoadGameStateCurrently();


kSupportsLoadingDuringRuntime feature flag</syntax>
kSupportsLoadingDuringRuntime feature flag
</syntaxhighlight>


:'''Implemented by:''' [[AGI]], [[Avalanche]], [[Cine]], [[CGE]], [[Draci]], [[Dreamweb]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Pegasus]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[TeenAgent]], [[Tinsel]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]
:'''Implemented by:''' [[AGI]], [[Avalanche]], [[Cine]], [[CGE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Pegasus]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Supernova]], [[Sword1]], [[TeenAgent]], [[Tinsel]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]


:'''Not implemented by:''' [[AGOS]], [[Composer]], [[CruisE]], [[Drascula]], [[Fullpipe]], [[Gob]], [[Groovie]], [[Lastexpress]], [[Lure]], [[MADE]], [[Parallaction]], [[Queen]], [[Sword2]], [[Sword25]]
:'''Not implemented by:''' [[AGOS]], [[Composer]], [[CruisE]], [[Fullpipe]], [[Gob]], [[Groovie]], [[Lastexpress]], [[Lure]], [[MADE]], [[Parallaction]], [[Queen]], [[Sword2]], [[Sword25]]


<syntax type="C++"> virtual Common::Error saveGameState(int slot, const Common::String &desc);
<syntaxhighlight lang="cpp">
virtual Common::Error saveGameState(int slot, const Common::String &desc);
virtual bool canSaveGameStateCurrently();
virtual bool canSaveGameStateCurrently();


kSupportsSavingDuringRuntime feature flag</syntax>
kSupportsSavingDuringRuntime feature flag
</syntaxhighlight>


:'''Implemented by:''' [[AGI]], [[Avalanche]], [[Cine]], [[CGE]], [[Draci]], [[Dreamweb]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Pegasus]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[TeenAgent]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]
:'''Implemented by:''' [[AGI]], [[Avalanche]], [[Cine]], [[CGE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Pegasus]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Supernova]], [[Sword1]], [[TeenAgent]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]


:'''Not implemented by:''' [[AGOS]], [[Composer]], [[CruisE]], [[Drascula]], [[Fullpipe]], [[Gob]], [[Groovie]], [[Lastexpress]], [[Lure]], [[MADE]], [[Parallaction]], [[Queen]], [[Sword2]], [[Sword25]], [[Tinsel]]
:'''Not implemented by:''' [[AGOS]], [[Composer]], [[CruisE]], [[Fullpipe]], [[Gob]], [[Groovie]], [[Lastexpress]], [[Lure]], [[MADE]], [[Parallaction]], [[Queen]], [[Sword2]], [[Sword25]], [[Tinsel]]


==Misc==
==Misc==
Line 233: Line 251:


'''Relevant Engine API'''
'''Relevant Engine API'''
<syntax type="C++"> virtual void errorString(const char *buf_input, char *buf_output, int buf_output_size);</syntax>
<syntaxhighlight lang="cpp">
virtual void errorString(const char *buf_input, char *buf_output, int buf_output_size);
</syntaxhighlight>


:'''Implemented by:''' [[SCUMM]]
:'''Implemented by:''' [[SCUMM]]
Line 239: Line 259:
:'''Not implemented by:''' [[AGI]], [[AGOS]], [[Avalanche]], [[Cine]], [[CGE]], [[Composer]], [[CruisE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Fullpipe]], [[Gob]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Lastexpress]], [[Lure]], [[MADE]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[TeenAgent]], [[Tinsel]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]
:'''Not implemented by:''' [[AGI]], [[AGOS]], [[Avalanche]], [[Cine]], [[CGE]], [[Composer]], [[CruisE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Fullpipe]], [[Gob]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Lastexpress]], [[Lure]], [[MADE]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[TeenAgent]], [[Tinsel]], [[Toltecs]], [[Tony]], [[Toon]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]


<syntax type="C++"> virtual GUI::Debugger *getDebugger();</syntax>
<syntaxhighlight lang="cpp">
    virtual GUI::Debugger *getDebugger();
</syntaxhighlight>


:'''Implemented by:''' [[AGI]], [[AGOS]], [[Avalanche]], [[Cine]], [[CGE]], [[Composer]], [[CruisE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Fullpipe]], [[Gob]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Lastexpress]], [[Lure]], [[MADE]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[TeenAgent]], [[Tinsel]], [[Toltecs]], [[Toon]], [[Tony]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]
:'''Implemented by:''' [[AGI]], [[AGOS]], [[Avalanche]], [[Cine]], [[CGE]], [[Composer]], [[CruisE]], [[Draci]], [[Drascula]], [[Dreamweb]], [[Fullpipe]], [[Gob]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Lastexpress]], [[Lure]], [[MADE]], [[Mohawk]], [[Mortevielle]], [[Neverhood]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[TeenAgent]], [[Tinsel]], [[Toltecs]], [[Toon]], [[Tony]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]], [[ZVision]]


:'''Not implemented by:'''
:'''Not implemented by:'''
TrustedUser
2,147

edits

Navigation menu