aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/detection.cpp
AgeCommit message (Collapse)Author
2018-05-10ENGINES: Add unknown game variants to the game detector resultsBastien Bouclet
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.
2016-11-29ALL: Remove comma before the word 'instead'Ben Castricum
2016-08-24ALL: Make simpleSaveNames() a MetaEngineFeatureAlexander Tkachev
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-24ALL: Add MetaEngine::simpleSaveNames()Alexander Tkachev
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-03-08ENGINES: Make variable names of ADGameDescription conform to our guidelines.Johannes Schickel
gameid -> gameId guioptions -> guiOptions
2016-03-08ENGINES: Make variable names of AdvancedMetaEngine conform to our guidelines.Johannes Schickel
_singleid -> _singleId _gameids -> _gameIds _guioptions -> _guiOptions
2016-02-28AGI: Remove comma from "Pause when entering commands"Martin Kiewitz
2016-02-28AGI: Add optional "pause, when entering commands" featureMartin Kiewitz
Shows a prompt window and pauses the game (just like original AGI did, but original AGI only did it in Hercules rendering mode).
2016-02-27AGI: Add support for upscaling and Hercules hires fontMartin Kiewitz
- User option to force Hercules hires font for any rendering mode - Also change mouse cursor hotspots from 1,1 to 0,0 - Fix inaccuracy in mouse controlled game menu - Change render_Block(), drawBox(), drawDisplayRect() to use upper Y instead of lower Y. Original AGI uses lower Y, but upper Y makes upscaling way easier.
2016-02-25AGI: Let listSaves return list sorted on slot numbers.Johannes Schickel
2016-02-13AGI: Adding seconds of current time to saved gamesMartin Kiewitz
Useful to properly detect the most recent saved game (that's done by the original save/restore dialogs)
2016-02-02AGI: Fix formatting.Johannes Schickel
This mostly enforces tabs for indentation and spaces for formatting. But also fixes spaces on empty lines, some extra/missing spaces. astyle + manual fixup
2016-02-01AGI: change how menus are triggered on Non-PCMartin Kiewitz
2016-01-31AGI: getflag/setflag/etc. cleanupMartin Kiewitz
renamed getflag() to getFlag() renamed setflag() to setFlag() renamed flipflag() to flipFlag() preagi: renamed setFlag for this engine to setWinnieFlag
2016-01-30AGI: do not allow load/save while in inner loopMartin Kiewitz
load/saving via ScummVM menu Mixed up mother goose has an endless script loop, when no user name was entered, which means restoring while in there would result in us staying in the inner loop until the user entered something
2016-01-29AGI: graphics rewrite + cleanupMartin Kiewitz
- graphics code fully rewritten - Apple IIgs font support - Amiga Topaz support - Word parser rewritten - menu code rewritten - removed forced 2 second delay on all room changes replaced with heuristic to detect situations, where it's required - lots of naming cleanup - new console commands show_map, screenobj, vmvars and vmflags - all sorts of hacks/workarounds removed - added SCI wait mouse cursor - added Apple IIgs mouse cursor - added Atari ST mouse cursor - added Amiga/Apple IIgs transition - added Atari ST transition - user can select another render mode and use Apple IIgs palette + transition for PC versions - inventory screen rewritten - SetSimple command now properly implemented - PreAGI Mickey: Sierra logo now shown - saved games: now saving controller key mapping also saving automatic save data (SetSimple command) - fixed invalid memory access when saving games (31 bytes were saved using Common::String c_ptr() Special Thanks to: - fuzzie for helping out with the Apple IIgs font + valgrind - eriktorbjorn for helping out with valgrind - LordHoto for figuring out the code, that caused invalid memory access in the original code, when saving a game - sev for help out with reversing the Amiga transition currently missing: - mouse support for menu - mouse support for system dialogs - predictive dialog support
2016-01-26AGI: Only request actual save slots in listSaves.Johannes Schickel
2015-05-15AGI: mouse support cleanupMartin Kiewitz
2015-05-15AGI: implement engine option to disable mouseMartin Kiewitz
engine option gets disabled for all Amiga games also disabled for certain fanmade games, which require a mouse. defaults to enabled mouse Engine options are not shown for previously detected games until those games get redetected If there is a way to handle those cases, please fix.
2014-12-22AGI: use Common::String::format when possiblePino Toscano
Use Common::String::format instead of a MAXPATHLEN-sized char[] buffer.
2014-12-07AGI: Set the correct palette to use for each Amiga gameFilippos Karapetis
The Amiga palettes were added in 16529e58e6, but were never used. A new game-specific option has been added for the old Amiga palette
2014-02-18AGI: Make GPL headers consistent in themselves.Johannes Schickel
2013-05-11AGI: Remove obsolete TODOFilippos Karapetis
We now set the play time - commit 5e10737015faa15d225f70b364096982923eb415
2013-05-02COMMON: Change kPlatformPC to kPlatformDOSMatthew Hoops
"PC" was very ambiguous and now it matches what we show in the GUI. This also corrects sword2's platform to Windows.
2012-08-15AGI: Replace detector printf usage with logMessage.Alyssa Milburn
2012-03-27AGI: Add played time information to saved gamesFilippos Karapetis
2012-03-27AGI: Use the ScummVM dialogs for saving/loadingFilippos Karapetis
An option has been added to use the original ones, if needed
2011-10-23AD: Switched rest of the engines to new GUIOEugene Sandulenko
2011-09-25AGI: Add some comments regarding save slot 0, and use the default ↵Filippos Karapetis
SaveStateDescriptor constructor
2011-09-25AGI/COMMON: Fixed bug #3407308 - "AGI: SQ2: Saving allowed in autosave slot ↵Filippos Karapetis
0 from scummvmmenu" The save/load dialog code was not polling for meta info for empty slots
2011-08-15AGI: Make Troll inherit from PreAgiEngineMatthew Hoops
2011-08-15AGI: Make Mickey inherit from PreAgiEngineMatthew Hoops
2011-08-15AGI: Make Winnie inherit from PreAgiEngineMatthew Hoops
2011-08-13AGI: Switched booters detection to ADEugene Sandulenko
2011-08-13AGI: Add loader and detection for Black Cauldron booterJussi Pitkanen
2011-08-13AGI: CleanupJussi Pitkanen
2011-08-13AGI: Do not try to pass filenames of disk images from the detector to engineJussi Pitkanen
2011-08-13AGI: Detect the bootable floppy version of Donald Duck's PlaygroundJussi Pitkanen
Also create a framework into which more booter games can be added.
2011-08-07GRAPHICS: Simplify the interface of Graphics::loadThumbnail().Christoph Mallon
Now it returns the Surface, so the caller does not need to create one and pass it.
2011-06-20ALL: Remove trailing whitespacesMax Horn
This tries to make our code a bit more compliant with our code formatting conventions. For future use, this is the command I used: git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-06-14DETECTOR: Pass allFiles to AdvancedMetaEngine::fallbackDetect()Max Horn
Also reorder the parameters of composeFileHashMap, placing the "return value" first.
2011-06-14DETECTOR: Merge ADParams into AdvancedMetaEngineMax Horn
2011-06-10AGI: Switch to alternate AdvancedMetaEngine, avoid ADParamsMax Horn
2011-06-10ENGINES: Change incorrect use of 'target' to 'gameid'Max Horn
2011-05-16ENGINES: Unify engine namesThierry Crozat
This unifies the engine names in MetaEngine::getName() and the credits. In particular drop "Engine" or "engine" from the names when it was present and use expanded names in credits when the MetaEngine uses it (e.g. "Beneath a Steel Sky" instead of "BASS").
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-05-02ALL: Mark printf and various other symbols as forbiddenMax Horn
Right now, a few places in the frontend code still use printf and consorts. We mark the affected files with a FIXME for now, and add a dedicated exception for each. To be fixed! Also tweak FORBIDDEN_SYMBOL_REPLACEMENT to hopefully really always enforce a compiler error
2011-04-28JANITORIAL: Reduce header dependencies in shared codeOri Avtalion
Some backends may break as I only compiled SDL
2011-04-12COMMON: Replace MKID_BE by MKTAGMax Horn
MKID_BE relied on unspecified behavior of the C++ compiler, and as such was always a bit unsafe. The new MKTAG macro is slightly less elegant, but does no longer depend on the behavior of the compiler. Inspired by FFmpeg, which has an almost identical macro.