TrustedUser
2,147
edits
(→Enhanced debug/error messages: Tony now implements the getDebugger API.) |
(→Loading/Saving during run time: Implemented in supernova engine) |
||
(33 intermediate revisions by 6 users not shown) | |||
Line 18: | Line 18: | ||
'''Relevant Engine API''' | '''Relevant Engine API''' | ||
< | <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; | ||
</ | </syntaxhighlight> | ||
'''Implemented by:''' | '''Implemented by:''' | ||
[[AGOS]], [[Draci]], [[Gob]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sword2]], [[Toon]] | [[AGOS]], [[Draci]], [[Gob]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[SAGA]], [[SCI]], [[SCUMM]], [[Supernova]], [[Sword2]], [[Toon]], [[ZVision]] | ||
'''Not implemented by:''' | '''Not implemented by:''' | ||
[[AGI]], [[Cine]], [[CruisE]], [[Drascula]], [[Groovie]], [[Hugo]], [[Lastexpress]], [[MADE]], [[Queen]], [[Sky]], [[Sword1]], [[Sword25]], [[Tinsel]], [[Touche]], [[Tucker]] | [[AGI]], [[Avalanche]], [[CGE]], [[Cine]], [[Composer]], [[CruisE]], [[Drascula]], [[Dreamweb]], [[Fullpipe]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Lastexpress]], [[MADE]], [[Neverhood]], [[Queen]], [[Sky]], [[Sword1]], [[Sword25]], [[Tinsel]], [[Toltecs]], [[Tony]], [[Touche]], [[TsAGE]], [[Tucker]], [[Wintermute]] | ||
'''Support not necessary:''' | '''Support not necessary:''' | ||
Line 41: | Line 41: | ||
'''Relevant Engine API''' | '''Relevant Engine API''' | ||
< | <syntaxhighlight lang="cpp"> | ||
void quitGame(); | |||
bool shouldQuit() const; | bool shouldQuit() const; | ||
kSupportsRTL feature flag</ | kSupportsRTL feature flag | ||
</syntaxhighlight> | |||
'''Implemented by:''' | '''Implemented by:''' | ||
[[AGI]], [[AGOS]], [[Cine]], [[CruisE]], [[Draci]], [[Drascula]], [[Gob]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lastexpress]], [[Lure]], [[MADE]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[TeenAgent]], [[Toon]], [[Touche]], [[Tucker]] | [[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:''' | '''Not implemented by:''' [[Avalanche]], [[Dreamweb]], [[Fullpipe]], [[Tinsel]] | ||
===Global options dialog support=== | ===Global options dialog support=== | ||
Line 60: | Line 61: | ||
'''Relevant Engine API''' | '''Relevant Engine API''' | ||
< | <syntaxhighlight lang="cpp"> | ||
virtual void syncSoundSettings(); | |||
</syntaxhighlight> | |||
'''Implemented by:''' | '''Implemented by:''' | ||
[[AGOS]], [[CruisE]], [[Draci]], [[Gob]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lure]], [[MADE]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sword1]], [[Sword2]], [[Touche]], [[ | [[AGOS]], [[Cine]], [[CruisE]], [[Draci]], [[Gob]], [[Groovie]], [[Hopkins]], [[Hugo]], [[Kyra]], [[Lastexpress]], [[Lure]], [[MADE]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[Toltecs]], [[Tony]], [[Touche]], [[TsAGE]], [[ZVision]] | ||
'''Not implemented by:''' | '''Not implemented by:''' | ||
[[ | [[Avalanche]], [[CGE]], [[Composer]], [[Drascula]], [[Dreamweb]], [[Fullpipe]], [[Mohawk]], [[Neverhood]], [[Parallaction]], [[Pegasus]], [[Sword25]], [[Tucker]], [[Wintermute]] | ||
'''Support not necessary:''' [[AGI]], [[Mortevielle]], [[TeenAgent]], [[Tinsel]], [[Toon]] | '''Support not necessary:''' [[AGI]], [[Mortevielle]], [[TeenAgent]], [[Tinsel]], [[Toon]] | ||
Line 98: | 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: | ||
< | <syntaxhighlight lang="bash"> | ||
$ ./scummvm --list-saves --game=monkey2 | |||
Saves for target 'monkey2': | Saves for target 'monkey2': | ||
Slot Description | Slot Description | ||
Line 105: | Line 109: | ||
1 Start | 1 Start | ||
2 Quicksave 2 | 2 Quicksave 2 | ||
$</ | $ | ||
</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 118: | Line 123: | ||
'''Relevant MetaEngine API''' | '''Relevant MetaEngine API''' | ||
< | <syntaxhighlight lang="cpp"> | ||
virtual SaveStateList listSaves(const char *target) const; | |||
virtual int getMaximumSaveSlot() const; | virtual int getMaximumSaveSlot() const; | ||
kSupportsListSaves feature flag</ | kSupportsListSaves feature flag | ||
</syntaxhighlight> | |||
'''Implemented by:''' | '''Implemented by:''' | ||
[[AGI]], [[AGOS]], [[Cine]], [[Draci]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[ | [[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]] | ||
===Loading savestates via command line or Launcher=== | ===Loading savestates via command line or Launcher=== | ||
Line 137: | Line 144: | ||
'''Relevant MetaEngine API''' | '''Relevant MetaEngine API''' | ||
< | <syntaxhighlight lang="cpp"> | ||
save_slot ConfigMan setting | |||
kSupportsLoadingDuringStartup feature flag</ | kSupportsLoadingDuringStartup feature flag | ||
</syntaxhighlight> | |||
'''Implemented by:''' | '''Implemented by:''' | ||
[[AGI]], [[Cine]], [[Draci]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[ | [[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:''' | ||
[[AGOS]], [[ | [[AGOS]], [[Composer]], [[Fullpipe]], [[Gob]], [[Lastexpress]], [[MADE]], [[Parallaction]], [[Sword25]] | ||
===Deleting savestates via the Launcher and GMM=== | ===Deleting savestates via the Launcher and GMM=== | ||
Line 158: | Line 167: | ||
'''Relevant MetaEngine API''' | '''Relevant MetaEngine API''' | ||
< | <syntaxhighlight lang="cpp"> | ||
void removeSaveState(const char *target, int slot) const; | |||
kSupportsDeleteSave feature flag</ | kSupportsDeleteSave feature flag | ||
</syntaxhighlight> | |||
'''Implemented by:''' | '''Implemented by:''' | ||
[[AGI]], [[Cine]], [[Draci]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[ | [[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:''' | ||
[[AGOS]], [[ | [[AGOS]], [[Composer]], [[Fullpipe]], [[Gob]], [[Lastexpress]], [[MADE]], [[Mortevielle]], [[Sword25]] | ||
===Savestate metadata support=== | ===Savestate metadata support=== | ||
Line 178: | Line 189: | ||
'''Relevant MetaEngine API''' | '''Relevant MetaEngine API''' | ||
< | <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</ | kSavesSupportPlayTime feature flag | ||
</syntaxhighlight> | |||
'''Implemented by:''' | '''Implemented by:''' | ||
[[AGI]], [[Draci]], [[Hugo]], [[Kyra]], [[Mortevielle]], [[SAGA]], [[SCI]], [[SCUMM]], [[TeenAgent]], [[Toon]] | [[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]], [[ | [[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 204: | Line 217: | ||
'''Relevant Engine API''' | '''Relevant Engine API''' | ||
< | <syntaxhighlight lang="cpp"> | ||
virtual Common::Error loadGameState(int slot); | |||
virtual bool canLoadGameStateCurrently(); | virtual bool canLoadGameStateCurrently(); | ||
kSupportsLoadingDuringRuntime feature flag</ | kSupportsLoadingDuringRuntime feature flag | ||
</syntaxhighlight> | |||
:'''Implemented by:''' [[AGI]], [[Cine]], [[Draci]], [[Hugo]], [[Kyra]], [[Mohawk]], [[Mortevielle]], [[Pegasus]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Tinsel]], [[ | :'''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]], [[CruisE]], [[ | :'''Not implemented by:''' [[AGOS]], [[Composer]], [[CruisE]], [[Fullpipe]], [[Gob]], [[Groovie]], [[Lastexpress]], [[Lure]], [[MADE]], [[Parallaction]], [[Queen]], [[Sword2]], [[Sword25]] | ||
< | <syntaxhighlight lang="cpp"> | ||
virtual Common::Error saveGameState(int slot, const Common::String &desc); | |||
virtual bool canSaveGameStateCurrently(); | virtual bool canSaveGameStateCurrently(); | ||
kSupportsSavingDuringRuntime feature flag</ | kSupportsSavingDuringRuntime feature flag | ||
</syntaxhighlight> | |||
:'''Implemented by:''' [[AGI]], [[Cine]], [[Draci]], [[Hugo]], [[Kyra]], [[Mohawk]], [[Mortevielle]], [[Pegasus]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[TeenAgent]], [[Toon]], [[Touche]], [[Tucker]] | :'''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]], [[CruisE]], [[ | :'''Not implemented by:''' [[AGOS]], [[Composer]], [[CruisE]], [[Fullpipe]], [[Gob]], [[Groovie]], [[Lastexpress]], [[Lure]], [[MADE]], [[Parallaction]], [[Queen]], [[Sword2]], [[Sword25]], [[Tinsel]] | ||
==Misc== | ==Misc== | ||
Line 234: | Line 251: | ||
'''Relevant Engine API''' | '''Relevant Engine API''' | ||
< | <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 240: | 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]] | ||
< | <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]], [[Tucker]], [[Wintermute]] | :'''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:''' |