aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/menumodule.cpp
AgeCommit message (Collapse)Author
2018-04-07ALL: Load savegame thumbnail only when necessaryAdrian Frühwirth
This commit introduces the following changes: 1. Graphics::loadThumbnail() Now returns a boolean and takes a new argument skipThumbnail which defaults to false. In case of true, loadThumbnail() reads past the thumbnail data in the input stream instead of actually loading the thumbnail. This simplifies savegame handling where, up until now, many engines always read the whole savegame metadata (including the thumbnail) and then threw away the thumbnail when not needed (which is in almost all cases, the most common exception being MetaEngine::querySaveMetaInfos() which is responsible for loading savegame metadata for displaying it in the GUI launcher. 2. readSavegameHeader() Engines which already implement such a method (name varies) now take a new argument skipThumbnail (default: true) which is passed through to loadThumbnail(). This means that the default case for readSavegameHeader() is now _not_ loading the thumbnail from a savegame and just reading past it. In those cases, e.g. querySaveMetaInfos(), where we actually are interested in loading the thumbnail readSavegameHeader() needs to explicitely be called with skipThumbnail == false. Engines whose readSavegameHeader() (name varies) already takes an argument loadThumbnail have been adapted to have a similar prototype and semantics. I.e. readSaveHeader(in, loadThumbnail, header) now is readSaveHeader(in, header, skipThumbnail). 3. Error handling Engines which previously did not check the return value of readSavegameHeader() (name varies) now do so ensuring that possibly broken savegames (be it a broken thumbnail or something else) don't make it into the GUI launcher list in the first place.
2017-12-03BASE: Remove bad casts between incompatible Plugin typesColin Snover
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.
2016-05-21NEVERHOOD: Reduce audio header dependenciesOri Avtalion
2016-04-15NEVERHOOD: Avoid crash in original load/delete game dialogsTorbjörn Andersson
The original game would display a message if you tried to load or delete a game without actually selecting one. At least for now, let's just avoid crashing.
2016-04-15NEVERHOOD: Fix bug #7116 ("Crash upon clicking ...")Torbjörn Andersson
Don't crash when clicking a read-only text widget. In the original, the load game dialog's text widget isn't read-only, but since we allow multiple games to have the same name it's probably for the best that we don't quite match the original behavior here.
2016-04-15NEVERHOOD: Tiny whitespace fixTorbjörn Andersson
It's bugging me, ok?
2015-10-05NEVERHOOD: Don't crash when loading savegames with a high slot IDOri Avtalion
2015-01-21JANITORIAL: Remove unnecessary semicolonsTorbjörn Andersson
2014-02-18NEVERHOOD: Make GPL headers consisten in themselves.Johannes Schickel
2014-01-06NEVERHOOD: Minor adjustment to original load/delete dialogsTorbjörn Andersson
This makes space for one additional savegame slot, giving them the same number of slots as the original save dialog. I can't compare to the original, but it arguably looks better this way.
2014-01-06NEVERHOOD: Add mousewheel support to original save/load dialogsTorbjörn Andersson
2014-01-02NEVERHOOD: Stop background sounds during credits (bug #6475)Filippos Karapetis
2013-12-28NEVERHOOD: Fix quitting via the menu (bug #6474)Filippos Karapetis
2013-12-28NEVERHOOD: Close the game menu when pressing the Escape keyFilippos Karapetis
2013-12-26NEVERHOOD: Add an option to scale the making of videos to full screenFilippos Karapetis
2013-12-25NEVERHOOD: Change more message values to enumsFilippos Karapetis
2013-12-23NEVERHOOD: Add names to some message IDsFilippos Karapetis
2013-10-31NEVERHOOD: Fix bug #3615124 - "NEVERHOOD: Music from Credits continues to play"Filippos Karapetis
2013-09-27NEVERHOOD: Fix uninitialized member of the TextEditWidget class - CID 1022333Filippos Karapetis
2013-09-21NEVERHOOD: Document two resources used in game menusFilippos Karapetis
2013-09-17NEVERHOOD: Implement the music toggle menu buttonFilippos Karapetis
2013-08-05NEVERHOOD: Remove NRect constructorMax Horn
Otherwise, every global variable of type NRect requires a constructor to be run, which can cause portability issue.
2013-07-14JANITORIAL: Remove trailing whitespaceSven Hesse
2013-07-03NEVERHOOD: Fix save slot selectionFilippos Karapetis
My initial suggestion to fix the issue was made in 163023a, which broke the save slot selection logic. The actual save slot selection problem was fixed in commit 2ca36ab
2013-06-28NEVERHOOD: Use the ScummVM dialogs for saving/loadingFilippos Karapetis
An option has been added to use the original ones, if needed
2013-06-26NEVERHOOD: Stop sound updates while the main menu is activeFilippos Karapetis
2013-06-15NEVERHOOD: Fix 2 off-by-one errors in the savegame slot selection boxFilippos Karapetis
2013-06-09NEVERHOOD: Add a console command to display the current surfacesFilippos Karapetis
2013-05-08NEVERHOOD: Fix issues in the save/load screensjohndoe123
- Add virtual keyboard support in save/load screens
2013-05-08NEVERHOOD: Fix some logic bugs and minor changesjohndoe123
- Fix video speed in the very last scene (Scene1317) - Fix back door not opening in Scene1401 - Fix projector not moving in Scene1402 - Fix projector not appearing in Scene1403 - Fix wrong Klaymen walking in Scene2205 - Fix wrong scene change in Module2300 - Fix symbols not appearing in Scene3011 - Define out some remaining logic debug code - Remove some obsolete comments - Reduce debug output - Use a List instead of an Array when building the microtiles rectangles
2013-05-08NEVERHOOD: Work on the save/load/delete menusjohndoe123
- Rename WidgetScene to GameStateMenu - Merge common code from the save/load/delete into GameStateMenu
2013-05-08NEVERHOOD: Add game-internal savegame delete menujohndoe123
- Rename Widget::addSprite to Widget::initialize
2013-05-08NEVERHOOD: Changed the save/load menu to allow gaps in saved games to ↵johndoe123
simplify game deletion
2013-05-08NEVERHOOD: Merge some code in the save/load menusjohndoe123
2013-05-08NEVERHOOD: Delete all sound/music items on exitjohndoe123
- Minor cleanup
2013-05-08NEVERHOOD: Implement game-internal savegame overwrite query screenjohndoe123
- Rename and reorder fields in the Klaymen class
2013-05-08NEVERHOOD: Add support for loading/saving games with the game's own menujohndoe123
- Add LoadGameMenu class
2013-05-08NEVERHOOD: Implement restart functionality (from both main menu and game logic)johndoe123
- Some minor cleanup
2013-05-08NEVERHOOD: Change graphic resource draw method to get a Surface instead of ↵johndoe123
separate pixels/pitch - Merge SpriteResource::load and load2
2013-05-08NEVERHOOD: Clean up DiskplayerScenejohndoe123
- Enable return to launcher - Remove obsolete comments - Remove braces in single-line statements - Remove unused non-transparent drawing code in BaseSurface::copyFrom - Clean up mouse cursor insertion code in Scene class
2013-05-08NEVERHOOD: Merge TextSurface into FontSurfacejohndoe123
2013-05-08NEVERHOOD: Merge CollisionMan into Scene classjohndoe123
2013-05-08NEVERHOOD: Rename some CollisionMan methods/fieldsjohndoe123
- Remove fallback detector (I think it's not needed) - Rename Scene insertMouse methods
2013-05-08NEVERHOOD: A little more work on the menu stuffjohndoe123
2013-05-08NEVERHOOD: More work on the menu system:johndoe123
- Add handling of ascii and system key input - Fix TextSurface::drawChar() - Pause audio when entering the menu, resume it again afterwards - Add TextEditWidget - Add SaveGameMenu (doesn't actually save anything yet and needs more work)
2013-05-08NEVERHOOD: Add SavegameListBoxjohndoe123
2013-05-08NEVERHOOD: Add TextLabelWidget (still doesn't do anything)johndoe123
2013-05-08NEVERHOOD: Start with menu widget stuff (doesn't do anything yet!)johndoe123
2013-05-08NEVERHOOD: Add new method StaticSprite::loadSprite and use it instead of ↵johndoe123
setting stuff "manually"
2013-05-08NEVERHOOD: Make use of NDrawRect::setjohndoe123