aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
AgeCommit message (Collapse)Author
2018-05-10SCUMM: Improve autosave handlingAdrian Frühwirth
v5+ scripts can request saving/loading of savegames, this type of savegame is internally called a "temporary" savegame (_saveStateTemporary == true) which is invisible to the user (I'm not sure whether this is by design or not). Currently the savegame handling in scummLoop_handleSaveLoad() doesn't distinguish between such temporary savegames and normal autosaves and unconditionally resets _lastSaveTime (even after loading). This has the unwanted side effect of potentially delaying the creation of normal autosaves which are supposed to be created in accordance with the autosave period setting in the GUI. This commit makes sure that _lastSaveTime only gets updated if and only if saving a (non-temporary) autosave.
2018-05-07SCUMM: Remove superfluous 'else' in IMuseInternal::ImSetTrigger()Adrian Frühwirth
Both means to calculate `diff` are essentially equal because wraparound of unsigned integers is well-defined and does what the 'else' branch is simulating manually. Because of this, gcc complains when compiling with -Wduplicated-branches.
2018-05-07SCUMM: Simplify clampCameraPos() using CLIPAdrian Frühwirth
2018-05-05ALL: Use CLIP to clip volumesAdrian Frühwirth
2018-05-01SCUMM: Protect autosave (slot 0) from deletion/overwritingAdrian Frühwirth
2018-04-29ENGINES: Show the unknown Game dialog only when the detector is launched by ↵Lothar Serra Mari
the Add Game feature
2018-04-19JANITORIAL: Fix whitespaceAdrian Frühwirth
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.
2018-03-28SCUMM: Mark methods as overrideEugene Sandulenko
2018-03-24SCUMM: Fix interrupting speech not working with AZERTY keyboardThierry Crozat
On my AZERTY keyboard the period is obtained using SHIFT + ; and the code checking the PERIOD keycode and no modifier was failing on both account. The manual for my French DOTT mentions the period key, but I have not actually checked how it worked with the original executable and if using the semicolon key without shift or using the colon key (which would be the period key on a English-US layout) works.
2018-03-12GUI: Remove the ThemeItem draw queuesBastien Bouclet
Drawing nows happens directly when the Dialog or Widget draw methods are called. This makes it easy to debug why a particular low level draw method was called, by inspecting the call stack. This replaces the notion of "buffering" by two independant ways to control what is drawn and where: - The active layer is used to select whether the foreground or background part of the dialogs are rendered by the draw calls. - The active surface is used to select if the draw calls affect the back buffer or the screen. The foreground layer of the active dialog is drawn directly to the screen. Its background layer is drawn to the back buffer. This way widgets can restore the back buffer in order to update without having to redraw the dialog's background. Dialogs lower in the dialog stack are drawn entirely to the back buffer.
2018-03-12SCUMM: MM V0: Fix regression from 038b3b178939f1bcc6714eda1b88c3e80e787c02 ↵Robert Crossfield
and comment/cleanup
2018-02-04JANITORIAL: Fix code formattingEugene Sandulenko
2018-02-04SCUMM HE: Use Miles AdLib drivernukeykt
2018-02-01Revert "SCUMM: Check for and flag demos correctly"Eugene Sandulenko
There are too many regressions.
2018-01-31SCUMM: Fix compilation failure when DISABLE_TOWNS_DUAL_LAYER_MODE is definedColin Snover
2018-01-31SCUMM: Rename iMUSE save/load function to avoid confusing function hidingColin Snover
2018-01-31SCUMM: Check for and flag demos correctlyHenrik "Henke37" Andersson
Rewrote the detection matching to use the extra field like the other two. This requires extensive testing due to touching code shared for a lot of games and being sensitive to individual versions of games.
2018-01-31SCUMM: Remove variable shadowingColin Snover
2018-01-31SCUMM: Fix compilation failureColin Snover
2018-01-31SCUMM: Fix warning (it generates another one in common/ though)Eugene Sandulenko
2018-01-31COMMON: Move VER macro for serializer into common codeColin Snover
2018-01-31SCUMM: Replace UB-triggering serialization code with Common::SerializerColin Snover
Fixes Trac#10342.
2018-01-31SCUMM: Fix stack overflow initializing localsColin Snover
This happens when clicking on the triangular button in room 27 in The Dig. There are probably several other places where this overflow happens, since there are several different `int args[16]` in the code (and many more `int args[` of various sizes, not all of which are at least NUM_SCRIPT_LOCAL).
2018-01-31SCUMM: Fix stack overflow initializing localsColin Snover
This happens at least when trying to right click on the motorcycle at the start of Full Throttle.
2018-01-31SCUMM: implement lipsync for v7 gamesAdrian Frühwirth
2018-01-31SCUMM: really implement lipsyncGiovanni Bajo
It looks like the code was there, but it was never fully implemented because _curSoundPos was never being incremented. Experimentally, it looks like it works if it is a 60FPS counter.
2018-01-27GUI: Remove Dialog::markAsDirty to expose full GUI redrawsBastien Bouclet
2017-12-22SCUMM HE: Add early version of Let's Explore the Farm with Buzzy.Kirben
2017-12-01SCUMM: Fix array overflow writing var when no current script is setColin Snover
This situation is triggered normally when _currentScript is 0xFF, but it could potentially also happen if _currentScript is some other number >= NUM_SCRIPT_SLOT, so the check is a bit more conservative than it might appear to need to be.
2017-12-01SCUMM: Fix signed integer overflow reading default v70HE cursorColin Snover
2017-12-01SCUMM: Fix buffer overflow reading default v70HE cursorColin Snover
2017-12-01SCUMM: Fix possible return of garbage valuesColin Snover
2017-12-01SCUMM: Fix UB shifting negative integers in ActorColin Snover
2017-12-01SCUMM HE: Fix UB shifting negative integersColin Snover
2017-11-27SCUMM: Revert skipping of MM C64 demo original save screen display attemptEugene Sandulenko
As per discussion in bug #10116.
2017-11-26SCUMM: Do not do anything for real with original save screen in MM C64 demoEugene Sandulenko
2017-11-25SCUMM: Do not try to show original save/load screen in C64 demoEugene Sandulenko
Fixes bug #10116
2017-11-12SCUMM: Fix race condition in MOD playerColin Snover
Fixes Trac#6272.
2017-11-10ALL: Fix misuse of comma operatorColin Snover
2017-10-31SCUMM: Prevent false detection of Steam gamesBen Castricum
2017-10-07SCUMM: Fix compilation on systems without USE_RGB_COLORColin Snover
2017-10-07ENGINES: Remove default1x scaler flagColin Snover
This flag is removed for a few reasons: * Engines universally set this flag to true for widths > 320, which made it redundant everywhere; * This flag functioned primarily as a "force 1x scaler" flag, since its behaviour was almost completely undocumented and users would need to figure out that they'd need an explicit non-default scaler set to get a scaler to operate at widths > 320; * (Most importantly) engines should not be in the business of deciding how the backend may choose to render its virtual screen. The choice of rendering behaviour belongs to the user, and the backend, in that order. A nearby future commit restores the default1x scaler behaviour in the SDL backend code for the moment, but in the future it is my hope that there will be a better configuration UI to allow users to specify how they want scaling to work for high resolutions.
2017-09-22ALL: Specify the DisposeAfterUse constructor argument for dynamic memory ↵Bastien Bouclet
write streams
2017-08-21SCUMM: Update MD5 include fileBen Castricum
2017-08-21SCUMM: Add detection for German version of Spy Fox 1, fixes bug #9732Ben Castricum
2017-08-17SCUMM: Prevent darkenPallete() in Room 0 in FT, fixes bug #9871Ben Castricum
2017-08-11SCUMM: Moonbase: Mark original bug as fall through to silence GCC 7 warningEugene Sandulenko
2017-08-11SCUMM: Add missing return statementEugene Sandulenko
2017-08-11SCUMM: Add missing break to INSANE code. Thanks to eriktorbjorn and GCC7Eugene Sandulenko