Open main menu

Difference between revisions of "Advanced Engine Features"

Remove "Already" from the notes as not good English syntax.
(→‎Enhanced debug/error messages: Split implementation notes to be clearer)
(Remove "Already" from the notes as not good English syntax.)
Line 1: Line 1:
In the following, some of the more advanced features a ScummVM Engine may implement are described. We describe what advantage each feature gives to the engine author respectively to engine users, and sketch how to implement support for it. Features are roughly grouped and sorted by mutual dependency.
In the following, some of the more advanced features a ScummVM Engine may implement are described. We describe what advantage each feature gives to the engine author respectively to engine users, and sketch how to implement support for it.<br>Features are roughly grouped and sorted by mutual dependency.


==Enhanced user interaction==
==Enhanced user interaction==
Line 24: Line 24:
</syntax>
</syntax>


'''Already 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]], [[Sword2]], [[Toon]]


Line 46: Line 46:
kSupportsRTL feature flag</syntax>
kSupportsRTL feature flag</syntax>


'''Already 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]], [[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]]


Line 62: Line 62:
<syntax type="C++"> virtual void syncSoundSettings();</syntax>
<syntax type="C++"> virtual void syncSoundSettings();</syntax>


'''Already implemented by:'''
'''Implemented by:'''
[[AGOS]], [[CruisE]], [[Draci]], [[Gob]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lure]], [[MADE]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sword1]], [[Sword2]], [[Touche]], [[Tucker]]
[[AGOS]], [[CruisE]], [[Draci]], [[Gob]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lure]], [[MADE]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sword1]], [[Sword2]], [[Touche]], [[Tucker]]


Line 83: Line 83:
None.
None.


'''Already implemented by:'''
'''Implemented by:'''
''not applicable''
''not applicable''


Line 123: Line 123:
kSupportsListSaves feature flag</syntax>
kSupportsListSaves feature flag</syntax>


'''Already implemented by:'''
'''Implemented by:'''
[[AGI]], [[AGOS]], [[Cine]], [[Draci]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[TeenAgent]], [[Tinsel]], [[Toon]], [[Touche]], [[Tucker]]
[[AGI]], [[AGOS]], [[Cine]], [[Draci]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[TeenAgent]], [[Tinsel]], [[Toon]], [[Touche]], [[Tucker]]


Line 141: Line 141:
kSupportsLoadingDuringStartup feature flag</syntax>
kSupportsLoadingDuringStartup feature flag</syntax>


'''Already implemented by:'''
'''Implemented by:'''
[[AGI]], [[Cine]], [[Draci]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[TeenAgent]], [[Tinsel]], [[Toon]], [[Touche]]
[[AGI]], [[Cine]], [[Draci]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[TeenAgent]], [[Tinsel]], [[Toon]], [[Touche]]


Line 162: Line 162:
kSupportsDeleteSave feature flag</syntax>
kSupportsDeleteSave feature flag</syntax>


'''Already implemented by:'''
'''Implemented by:'''
[[AGI]], [[Cine]], [[Draci]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword2]], [[TeenAgent]], [[Tinsel]], [[Toon]], [[Touche]], [[Tucker]]
[[AGI]], [[Cine]], [[Draci]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lure]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword2]], [[TeenAgent]], [[Tinsel]], [[Toon]], [[Touche]], [[Tucker]]


Line 185: Line 185:
kSavesSupportPlayTime feature flag</syntax>
kSavesSupportPlayTime feature flag</syntax>


'''Already implemented by:'''
'''Implemented by:'''
[[AGI]], [[Draci]], [[Hugo]], [[Kyra]], [[Mortevielle]], [[SAGA]], [[SCI]], [[SCUMM]], [[TeenAgent]], [[Toon]]
[[AGI]], [[Draci]], [[Hugo]], [[Kyra]], [[Mortevielle]], [[SAGA]], [[SCI]], [[SCUMM]], [[TeenAgent]], [[Toon]]


Line 212: Line 212:
kSupportsSavingDuringRuntime feature flag</syntax>
kSupportsSavingDuringRuntime feature flag</syntax>


'''Already implemented by:'''
'''Implemented by:'''
[[AGI]], [[Cine]], [[Draci]], [[Hugo]], [[Kyra]], [[Mohawk]], [[Mortevielle]], [[Pegasus]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Tinsel]] (loading only), [[TeenAgent]], [[Toon]], [[Touche]], [[Tucker]]
[[AGI]], [[Cine]], [[Draci]], [[Hugo]], [[Kyra]], [[Mohawk]], [[Mortevielle]], [[Pegasus]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Tinsel]] (loading only), [[TeenAgent]], [[Toon]], [[Touche]], [[Tucker]]


Line 232: Line 232:
<syntax type="C++"> virtual void errorString(const char *buf_input, char *buf_output, int buf_output_size);</syntax>
<syntax type="C++"> virtual void errorString(const char *buf_input, char *buf_output, int buf_output_size);</syntax>


:'''Already implemented by:''' [[SCUMM]]
:'''Implemented by:''' [[SCUMM]]


:'''Not implemented by:''' [[AGI]], [[AGOS]], [[Cine]], [[CruisE]], [[Draci]], [[Drascula]], [[Gob]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lastexpress]], [[Lure]], [[MADE]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[TeenAgent]], [[Tinsel]], [[Toon]], [[Touche]], [[Tucker]]
:'''Not implemented by:''' [[AGI]], [[AGOS]], [[Cine]], [[CruisE]], [[Draci]], [[Drascula]], [[Gob]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lastexpress]], [[Lure]], [[MADE]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[TeenAgent]], [[Tinsel]], [[Toon]], [[Touche]], [[Tucker]]
Line 238: Line 238:
<syntax type="C++"> virtual GUI::Debugger *getDebugger();</syntax>
<syntax type="C++"> virtual GUI::Debugger *getDebugger();</syntax>


:'''Already implemented by:''' [[AGI]], [[AGOS]], [[Cine]], [[CruisE]], [[Draci]], [[Gob]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lastexpress]], [[Lure]], [[MADE]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[Toon]], [[Touche]], [[Tucker]]
:'''Implemented by:''' [[AGI]], [[AGOS]], [[Cine]], [[CruisE]], [[Draci]], [[Gob]], [[Groovie]], [[Hugo]], [[Kyra]], [[Lastexpress]], [[Lure]], [[MADE]], [[Mohawk]], [[Mortevielle]], [[Parallaction]], [[Pegasus]], [[Queen]], [[SAGA]], [[SCI]], [[SCUMM]], [[Sky]], [[Sword1]], [[Sword2]], [[Sword25]], [[Toon]], [[Touche]], [[Tucker]]


:'''Not implemented by:''' [[Drascula]], [[TeenAgent]], [[Tinsel]]
:'''Not implemented by:''' [[Drascula]], [[TeenAgent]], [[Tinsel]]
TrustedUser
574

edits