Commit graph

70 commits

Author SHA1 Message Date
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
Alexander Tkachev
ab1d160ec8 ALL: Add MetaEngine::simpleSaveNames()
Engines with "simple" savenames would support "Run in background" in
save/load dialog and gradual save slots unlocking. Other engines
save/load feature would be locked until save sync is over.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
f1a56eaf36 GUI: Show "locked" saves during sync 2016-08-24 16:07:55 +06:00
Johannes Schickel
470cdabc58 ENGINES: Fix Typos. 2016-02-28 07:44:26 +01:00
Johannes Schickel
d7bb90ba84 ENGINES: Document sorting guaranty for MetaEngine::listSaves. 2016-02-25 21:39:45 +01:00
Johannes Schickel
53e83147be ENGINES: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
Filippos Karapetis
6a49d3eadd ENGINES: Return all available custom GUI options if no target is specified
This is used to set default settings for all custom game options when an
engine starts
2012-03-31 13:55:03 +03:00
Filippos Karapetis
c84cd8dee8 GUI: Add per-engine and per-game options 2012-03-19 20:32:34 +01:00
Johannes Schickel
96853b234c ENGINES: Get rid of unnecessary friend in EngineManager. 2012-02-01 19:22:55 +01:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Ori Avtalion
cd6ee0589d JANITORIAL: Format forward declarations to follow convention 2011-04-28 12:20:34 +03:00
Yotam Barnoy
ee2b1092ab PLUGINS: switched plugin manager to inheritance rather than #defines
The reason for this was that I found issues where the wrong functions were called in EngineManager for single plugin operation. Rather than inserting more messy #defines, I preferred to change the PluginManager to use virtual functions, which also makes EngineManager simpler.

svn-id: r55024
2010-12-23 13:38:37 +00:00
Yotam Barnoy
a6bee87990 PLUGINS: improved one-at-a-time plugin code
I reduced memory fragmentation using 2 principles: Plugins should be loaded for as little time as possible, and long lasting memory allocations should be allocated before plugins are loaded. There might still be a little fragmentation left.
Note that command line settings that require plugins to be loaded don't work yet, but they didn't work (properly) before either.

svn-id: r54097
2010-11-05 13:24:57 +00:00
Tony Puccinelli
66b42d486b added intermediary function 'findGameOnePlugAtATime' and switched load game and run game code to use it. Added checks for DYNAMIC_MODULES defines to the checks for NEW_PLUGIN_DESIGN_FIRST_REFINEMENT
svn-id: r51746
2010-08-05 00:26:46 +00:00
Max Horn
92c896d883 Patch #2973290: Semicolon cleanup
svn-id: r48359
2010-03-22 20:28:08 +00:00
Max Horn
8db54382bb ENGINES: Move SaveStateDescriptor etc. to engine/savestate.*
svn-id: r48283
2010-03-18 15:09:48 +00:00
Jordi Vilalta Prat
047f116515 Renamed MetaEngine::getCopyright() to getOriginalCopyright() to better match the meaning of the returned string, as discussed some time ago in scummvm-devel
svn-id: r39132
2009-03-05 12:04:58 +00:00
Eugene Sandulenko
696897b058 Whoa! Removing trailing spaces.
svn-id: r35648
2009-01-01 15:06:43 +00:00
Johannes Schickel
fac44f1e57 Update documentation.
svn-id: r34971
2008-11-09 20:08:54 +00:00
Johannes Schickel
ed1b12571b Updated documentation.
svn-id: r34964
2008-11-09 17:43:39 +00:00
Filippos Karapetis
f5729a4a8b - The GMM save dialog is now working for all engines which support the appropriate features
- Added a new method to the MetaEngine class, getMaximumSaveSlot(), and implemented it in all engines for which the listSavefiles() method is implemented (it goes together with the listSavefiles method). It is used to fill the unused save slots in the save/load dialogs of each engine, so that the user can create new save games in empty slots
- Unified the save/load dialog list numbering in the GMM load/save screens and in the load screen of the main menu (before a game is started)

svn-id: r34963
2008-11-09 16:13:34 +00:00
Max Horn
f32be87633 Turned enum PluginError into Common::Error, which in the future is to be used in more places. Help with this is highly welcome
svn-id: r34906
2008-11-05 17:24:56 +00:00
Max Horn
61aadb378d Fixed the EngineFeature vs. MetaEngineFeature mess, clarified some EngineFeature comments
svn-id: r34896
2008-11-04 16:11:40 +00:00
Johannes Schickel
112feada4e - Extended some comments
- Added @todos to engines/engine.h
- Added a FIXME to engines/dialogs.cpp

svn-id: r34887
2008-11-03 20:00:36 +00:00
Max Horn
55c10e0ec6 Patch #2122869: ALL: Common load dialog
svn-id: r34883
2008-11-03 18:32:16 +00:00
Filippos Karapetis
b7a219ebc6 Renamed engine feature kSupportsDirectLoad to kSupportsLoadingDuringStartup, as discussed in patch #2122869
svn-id: r34854
2008-10-26 16:42:08 +00:00
Max Horn
6a2f3dc0b9 Added new type Engine::Feature; pushed down some #include dependencies
svn-id: r34755
2008-10-06 12:48:52 +00:00
Max Horn
b41cd58cee Renamed some MetaEngine feature flags; removed explicit numbers from this feature flag list (nothing should rely on their specific values, anyway); added a note that Engine::hasFeature should become independant of MetaEngine::hasFeature
svn-id: r34738
2008-10-04 13:09:01 +00:00
Max Horn
a7005b84ff cleanup
svn-id: r34697
2008-09-30 11:33:43 +00:00
Max Horn
a6dd4b7d4d Moved base/game.* to engines/game.*
svn-id: r34589
2008-09-17 17:31:29 +00:00