Commit Graph

99 Commits

Author SHA1 Message Date
Eugene Sandulenko
0fcb6aa3e5
METAENGINE: Add optional offset parameter for extended saves 2021-07-16 01:18:56 +02:00
a/
17b2c657ae ENGINES: METAENGINE: Add method to append extended save header to stream 2021-07-16 05:43:27 +09:00
Martin Gerhardy
dfd6b6a9a4 COMMON: moved AchievementDescriptionList into Common namespace
getAchievementsInfo is also moved into the MetaEngine to reduce code duplication
2021-06-16 00:25:14 +03:00
ysj1173886760
859d9acef3 ENGINE: add doxygen comments fo DebugChannelDef and getDebugChannels 2021-05-22 01:34:57 +02:00
ysj1173886760
5feac6bdff BASE: add list-all-debugflags and list-debugflags to commandLine 2021-05-22 01:34:57 +02:00
ysj1173886760
96aa98ed14 ENGINE: change the name of the delimiter of DebugChannelDef 2021-05-22 01:34:57 +02:00
ysj1173886760
dde0961225 ENGINE: return the pointer of array instead of a array of getDebugChannels in metaengine 2021-05-22 01:34:57 +02:00
ysj1173886760
9d149b7988 ENGINE: add method getDebugChannelOptions for metaegine detection 2021-05-22 01:34:57 +02:00
a/
bad9008a89 DETECTOR: Modify getFileProperties to cache md5 results 2021-05-14 22:35:23 +02:00
a/
45aa165b80 Modify getFileProperties to cache md5 results 2021-05-14 22:35:23 +02:00
Orgad Shaneh
a05e54f00c JANITORIAL: Remove trailing whitespaces 2021-05-04 11:46:30 +03:00
Paul Gilbert
ae4da8bce0 ENGINES: Make creation of savegame thumbnails an overrideable method 2021-03-07 09:34:33 -08:00
Thierry Crozat
67720ef658 JANITORIAL: Remove obselete references to MetaEngineConnect
At some point when splitting the MetaEngine to a detection
plugin and a static meta engine, the former was called
MetaEngine while the latter was called MetaEngineConnect.
Thus was then later change to MetaEngineDetection and
MetaEngine. But some references were left to the former
names in comments and documentation.
2021-02-14 14:32:36 +00:00
Bartosz Gentkowski
f04056519a DOXYGEN: Review of high prio headers from engines
This is a doxygen review for 4 header files that have been
identified as high priority for GSoD:

- advancedDetector.h
- metaengine.h
- engine.h
- util.h

It also adds doxy groups to other headers from this folder to
make them appear properly in the structure.
2020-12-02 00:13:49 +00:00
Eugene Sandulenko
7ff34bc9ec PLUGINS: MetaEngineStatic -> MetaEngineDetection 2020-10-11 23:14:39 +02:00
Eugene Sandulenko
7ea6781043 PLUGINS: PLUGIN_TYPE_METAENGINE -> PLUGIN_TYPE_ENGINE_DETECTION 2020-10-11 23:12:32 +02:00
aryanrawlani28
e3e8e81815 ENGINES: METAENGINE: Improve comments 2020-10-03 14:56:36 +02:00
aryanrawlani28
71a820caff ENGINES: Begin class renaming of ME & AME
- ME -> MetaEngineStatic (static parts)
- MEC -> MetaEngine (dynamic parts)
2020-10-03 14:56:36 +02:00
aryanrawlani28
81ba5d5627 ENGINES: ME & MEC: Allow MEC to build engine options widget.
- Rename the one in ME to avoid ambiguity.
- ME is named *static & MEC is named *dynamic.
- This change means that engines  can build 2 types of option widgets.
- The "Engine" tab is created statically regardless if an engine plugin is present or not.
- The in-game options are built using the MEC.
- With this commit, engines/dialogs is no longer dependant on MetaEngine, and instead used MEC all over.
2020-10-03 14:56:36 +02:00
aryanrawlani28
30d2d9167e ENGINES: ME: Mark destructor as virtual 2020-10-03 14:56:36 +02:00
aryanrawlani28
1616d7d515 ENGINES: ME & MEC: Move achievements-related code to MetaEngineConnect
- Adjust accordingly for dialogs.
2020-10-03 14:56:36 +02:00
aryanrawlani28
fd1e333100 ENGINES: METAENGINE: Move initKeymaps into MetaEngineConnect.
- Used by Sky, for example.
2020-10-03 14:56:36 +02:00
aryanrawlani28
01efb65931 ENGINES: METAENGINE: Shift save/load related content to MetaEngineConnect
- These include various functions and functionalities related to save/load.
- These are shifted, because the MEC class will house things that can be dynamic in nature.
- The MetaEngine class is fully & only dependent on ScummVM code, so it can always be built into executable.
2020-10-03 14:56:36 +02:00
aryanrawlani28
a73858a3df ENGINES: MEC & AMEC: Provide notes for getName().
- If classes inherting provide the same name here as they did in the relevant MetaEngine, we can easily match a Engine with MetaEngine.
2020-10-03 14:56:36 +02:00
aryanrawlani28
09a16347de ENGINES: Move createInstance from ME to MetaEngineConnect class 2020-10-03 14:56:36 +02:00
aryanrawlani28
24ee4c7559 ENGINES: ME & AME: Add new classes related to ME & AME.
- MetaEngineConnect
- AdvancedMetaEngineConnect
- These classes will have "bridge" functions, see comments for more info.
2020-10-03 14:56:36 +02:00
aryanrawlani28
943df64b32 ENGINES: Change behaviour of EngineMan::getPlugins.
- Changed so we can get any type of plugins.
- This used to always return PLUGIN_TYPE_ENGINE.
- Because now we can differentiate between engines and metaengine, this must be changed.
- For now, return METAENGINE by default
2020-10-03 14:56:36 +02:00
Paul Gilbert
bf754b76aa ENGINES: Cleanup of get savegame file & patterns 2020-09-19 09:31:49 -07:00
Paul Gilbert
5136ff228e ENGINES: Fix defaults for engines using new extended format
This fixes two issues. First of all, when I was fleshing
out the Quux example engine with save support, I realised
that the default savegame pattern for engines is target.***,
whereas for the meta engine it was target.s**. This was
causing newly created saves not to appear in the savegame list.
The second is a minor convenience nicety.. if an engine is
supporting the new extended format, it means they do have saves,
so it's better to default to 100 slots by default without
requiring the engine to explicity declare it.
2020-09-16 21:52:38 -07:00
lolbot-iichan
b1ddd940ae ENGINES: Add achievements info API 2020-04-29 10:31:36 +02:00
Bastien Bouclet
bcfb7145fa GUI: Allow engines to define a fully custom tab in the edit game dialog
By implementing MetaEngine::buildEngineOptionsWidget, engines can
instantiate a container widget that will be shown in the Engine tab of
the edit game dialog. The default implementation retains the existing
behavior and shows the extra GUI options.
2020-03-28 07:38:39 +01:00
Paul Gilbert
52b87e7660 ENGINES: Add an autosave flag to the extended savegame data 2020-02-16 15:44:28 -08:00
Paul Gilbert
1687427e8e ENGINES: Mark autosave slots as write protected
If the autosave slot doesn't yet have any file in it, when the
GMM save dialog is open, the autosave slot will show a default
'Autosave' entry which is write-only, to prevent users
accidentally making a savegame in that slot
2020-02-16 15:44:28 -08:00
Paul Gilbert
9f8c45ac4e ENGINES: Provide a default MetaEngine::hasFeature with extended save options on 2020-02-04 20:04:11 -08:00
Paul Gilbert
b9e598f9e2 ENGINES: Add proper thumbnail saving for extended savegames 2020-02-01 13:13:51 -08:00
Bastien Bouclet
519b4a57e2 KEYMAPPER: Allow engines to return multiple keymaps
The idea is that keymaps may be situational. A keymap may be always
enabled, while another one may be enabled only during combat..
2020-01-29 08:51:29 +01:00
Bastien Bouclet
ee8229dc00 ENGINES: Move keymap initialization to MetaEngine
To be able to access the keymap while the engine is not running.
2020-01-26 23:09:08 +02:00
Eugene Sandulenko
4fbf91e829 ENGINES: Extend MetaEngine class with ExtendedSaves support 2019-11-13 22:07:08 +01:00
Bastien Bouclet
8ba2d22407 ENGINES: Remove useless TODO 2019-11-03 11:43:00 +01:00
Bastien Bouclet
c142838122 BASE: Change the command line interface to use engine-qualified game names
Qualified game names have the following form: engineId:gameId.
Unqualified game names are still supported as long as they are not
ambiguous. However they are considered deprecated and are no longer
displayed by the --list-games command.
2019-11-03 11:43:00 +01:00
Bastien Bouclet
ae9f764c7a ENGINES: Automatically upgrade the targets on launch to add an engine ID 2019-11-03 11:43:00 +01:00
Bastien Bouclet
bb813719b5 ENGINES: Change targets to have an 'engine ID'
The engine ID identifies which engine should be used to launch the target.
Also remove the 'single ID' system. Different games from engines that used
that system now have different game IDs.

Also-By: Matthew Hoops <clone2727@gmail.com>
2019-11-03 11:43:00 +01:00
Bastien Bouclet
90b78c5446 ENGINES: Merge GameDescriptor and DetectedGame 2018-05-10 09:04:23 +02:00
Bastien Bouclet
faa2534f46 ENGINES: Factor adding games to ConfMan 2018-05-10 09:04:23 +02:00
Bastien Bouclet
643c24db75 ENGINES: Change MetaEngine::listSupportedGames to return plain game descriptors 2018-05-10 09:04:23 +02:00
Bastien Bouclet
8fb149e3c7 ENGINES: Change MetaEngine::findGame to return a plain game descriptor 2018-05-10 09:04:23 +02:00
Bastien Bouclet
cf1ebf2951 ENGINES: Add unknown game variants to the game detector results 2018-05-10 09:04:23 +02:00
Lothar Serra Mari
451cf2304f ENGINES: Show the unknown Game dialog only when the detector is launched by the Add Game feature 2018-04-29 21:47:10 +01:00
Colin Snover
d087c9605f BASE: Remove bad casts between incompatible Plugin types
Previously, a C-style cast was used to convert a
Common::Array<Plugin *>, populated with pointers to StaticPlugin
and DynamicPlugin instances, to a
Common::Array<PluginSubclass<T> *>, but PluginSubclass<T> is a
*sibling* class to StaticPlugin/DynamicPlugin, so this cast was
invalid and the results undefined. The methods for retrieving
subclasses of plugins can't be easily changed to just generate an
array of temporary wrapper objects that expose an identical API
which dereferences to the preferred PluginObject subclass because
pointers to these objects are retained by other parts of ScummVM,
so the wrappers would needed to be persisted or they would need to
just re-expose the underlying Plugin object again. This indicated
that a way to solve this problem is to have the callers receive
Plugin objects and get the PluginObject from the Plugin by
explicitly stating their desired type, in a similar manner to
std::get(std::variant), so that the pattern used by this patch to
solve the problem.

Closes gh-1051.
2017-12-03 20:26:38 -06:00
Alexander Tkachev
b665fc933d ALL: Make simpleSaveNames() a MetaEngineFeature
Added it into hasFeature() of all engines which returned `true` in
simpleSaveNames() before.

As mentioned in #788, SCI is not always using simple names, so it
doesn't have such feature now.
2016-08-24 16:07:55 +06:00