Commit Graph
309 Commits
Author SHA1 Message Date
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 d26bbe521c ENGINES: ALL: Finish renaming ME & AME classes
- ME -> MetaEngineStatic (static parts)
- MEC -> MetaEngine (dynamic parts)
2020-10-03 14:56:36 +02:00
aryanrawlani28 a56dc094b9 ENGINES: ALL: Move detection_enums -> detection.h
- Cleans up headers quite a bit.
2020-10-03 14:56:36 +02:00
aryanrawlani28 29ceb07959 ENGINES: ALL: Revert detection submodule to be directly present in the engine directory
- DETECT_OBJS are present and added inside an engine's modules.mk file.
2020-10-03 14:56:36 +02:00
aryanrawlani28 f3b9477893 ENGINES: ALL: Add header guards for the new detection-header files. 2020-10-03 14:56:36 +02:00
aryanrawlani28 8189a05316 ENGINES: ALL: Adapt to changes for new plugins by defining a new detection module
For each engine:
- Make a new folder detection
- Move detection-related files inside the folder
- Add a new module "enginename/detection"
- Add DETECT_OBJS here
- Adjust the normal engine module to remove detect_objs
- Adjust every file for the new changes.
2020-10-03 14:56:36 +02:00
aryanrawlani28 7c7263564b TUCKER: Split detection features & adapt to new plugins. 2020-10-03 14:56:36 +02:00
mataniko 581a6ec7d6 JANITORIAL: Rename kSupportsRTL to kSupportsReturnToLauncher 2020-05-12 10:36:38 +02:00
mataniko 06242a712b JANITORIAL: Rename EVENT_RTL
Now that ScummVM is adding RTL support, the EVENT_RTL should be disambigious that it is for returning to launcher
2020-05-12 10:36:38 +02:00
Eugene Sandulenko 982e931c82 TUCKER: Add override keywords 2020-04-24 01:03:56 +02: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 6c187dbb30 TUCKER: Changing autosave to work with common Engine code 2020-02-16 15:44:28 -08:00
Paul Gilbert a00e44ba6c ENGINES: Merge saveGameState virtual methods into a single one 2020-02-16 15:44:28 -08:00
Paul Gilbert 85b469ff5d TUCKER: Refactor to use Engine debugger 2020-02-16 13:07:19 +02:00
Bastien Bouclet 31771a565e TUCKER: Add override keywords 2020-02-09 12:43:16 +01:00
Eugene Sandulenko c9da2585aa TUCKER: Added override keywords 2020-02-06 23:46:47 +01:00
Paul Gilbert 5b80320525 ENGINES: Adding override keyword to hasFeature methods 2020-02-04 20:04:11 -08:00
Eugene Sandulenko 8118ce8375 TUCKER: Added override keywords 2020-01-31 14:35:04 +01:00
D G Turner 3544fe355a TUCKER: Fix Missing Default Switch Cases
These are flagged by GCC if -Wswitch-default is enabled.
2019-11-09 17:54:34 +00:00
Bastien Bouclet 9c8bd056d6 ENGINES: Stop using 'single id' 2019-11-03 11:43:00 +01:00
Bastien Bouclet 4b42112721 ENGINES: Add an engine ID to all the engines 2019-11-03 11:43:00 +01:00
Henrik "Henke37" Andersson 24e58d88db TUCKER: Game doesn't use MIDI, mark it as such. 2019-09-29 19:34:16 +03:00
Eugene Sandulenko a9d12069d8 TUCKER: Added support for Russian fan translation 2018-12-30 19:52:27 +01:00
Bastien Bouclet 9a4c0ae281 ENGINES: Normalize the getName() result of metaengines
Also-By: Matthew Hoops <clone2727@gmail.com>
2018-12-10 06:47:27 +01:00
Adrian Frühwirth bdd98756ca TUCKER: Make _updateScreenPicture bool 2018-07-04 13:10:24 +02:00
Adrian Frühwirth 931113789b TUCKER: Use empty() instead of comparing against empty string literal 2018-07-04 13:09:06 +02:00
Adrian Frühwirth cf0f0122e4 TUCKER: Make _compressedSoundFlags uint16 2018-07-04 13:04:59 +02:00
Adrian Frühwirth aadaf0ce50 TUCKER: Fix unnecessary conversion from int to bool 2018-07-04 12:53:29 +02:00
Adrian Frühwirth d56d97c83e TUCKER: Fix parameter name inconsistency in setCursorStyle() 2018-07-04 12:50:18 +02:00
Adrian Frühwirth dd431526be TUCKER: Use nullptr 2018-07-04 12:42:34 +02:00
Bastien Bouclet cf1ebf2951 ENGINES: Add unknown game variants to the game detector results 2018-05-10 09:04:23 +02:00
Adrian Frühwirth 08bbef8f7d TUCKER: Improve autosave error handling 2018-04-21 16:02:51 +02:00
Adrian Frühwirth 2bbed8146f TUCKER: Try autosaving only once per autosave interval 2018-04-21 15:45:34 +02:00
Adrian Frühwirth 3676c3886d TUCKER: Fix panel background being off by one pixel
This fixes an original game glitch where the main options menu background
image is drawn one pixel too high.

Fixes Trac#10496.
2018-04-21 00:57:12 +02:00
Adrian Frühwirth fa1b23889a TUCKER: Draw text only when hovering over hotspots when using the map 2018-04-20 23:00:44 +02:00
Adrian Frühwirth 9b21e7507c TUCKER: Do not assign negative value to unsigned int 2018-04-07 13:06:05 +02:00
Adrian Frühwirth 00e59a3122 ALL: Load savegame thumbnail only when necessary
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-04-07 09:26:20 +02:00
Adrian Frühwirth 0bf68e9581 TUCKER: Follow code formatting convention for switch statements 2018-03-28 21:40:10 +02:00
Adrian Frühwirth 2b9aa962d9 TUCKER: Check '.' instead of KEYCODE_PERIOD when skipping speech
See commit 7cbf5a9289 for more information.
2018-03-28 20:00:42 +02:00
Adrian Frühwirth a86a4e0286 TUCKER: Use kLastSaveSlot where appropriate 2018-03-21 21:59:43 +01:00
Adrian Frühwirth 976d31be68 JANITORIAL: Fix indentation 2018-03-21 16:49:10 +01:00
Adrian Frühwirth 0749507a34 TUCKER: Add Location enum 2018-03-21 16:47:10 +01:00
Adrian Frühwirth 5a07bc82c3 TUCKER: Remove unhelpful comment
Code matches disassembly and works like in the original. I can't spot
anything out of the ordinary with regards to audio playback either.
2018-03-20 23:22:35 +01:00
Adrian Frühwirth d4636f4616 TUCKER: Reset panel type to normal after loading a savegame 2018-03-20 22:53:18 +01:00
Adrian Frühwirth b4c1efe2f2 TUCKER: Remove superfluous workaround for Trac#4156
Despite what the comment says this does not seem to be in the original
game and I cannot replicate this in either the original or a current
ScummVM build. It is highly likely that this was one of several sprite
offset bugs which were present in our implementation earlier but which
have since been fixed.
2018-03-20 22:22:11 +01:00
Adrian Frühwirth ef593ed8e3 TUCKER: Work around original game bug when using the map in the mall in part three
If you don't have the appointment card yet and use the map to go to
Seedy Street Bud ends up being teleported back to the mall.
Because of the destination coordinates which warp Bud past x==583
Violet's logic, which makes him refuse Bud entrance to the dentist,
triggers. On top of that the graphics end up all garbled which
indicates that even worse things happen under the hood.
To work around this we only trigger Violet if Bud actually _walked_
past the trigger coordinates (as opposed to using the map).

This fixes Trac#10452.
2018-03-19 23:31:19 +01:00
Adrian Frühwirth d2ae21624e TUCKER: Implement workaround for original script bug mentioned in commit 23fd97c99a 2018-03-19 21:36:13 +01:00
Adrian Frühwirth 23fd97c99a TUCKER: Actually implement mof opcode
When the 'mof' opcode was added in commit 1946dead77 it was implemented
as a NOOP, but what it actually should do is disable the mouse (set
_cursorState to kCursorStateDisabledHidden).
This is used in at least the Spanish and Polish versions of the game to
work around an earlier script bug which allowed the player to use the
mouse while freeing the professor in part two.

This commit fixes the 'mof' instruction so that the original script works
as intended in those versions that ship with the fix.

TODO: Add a workaround for those game versions which don't do the 'mof'
themselves.
2018-03-18 23:38:52 +01:00
Adrian Frühwirth 91ec2a0c38 TUCKER: Add missing buv and c0v opcodes
This commit adds the 'buv' and 'c0v' opcodes which are used to set speech
volume. Because these only seem to be used once in the English demo and
we right now playback all speech at kMaxSoundVolume anyway we can treat
them as NOOPs.

This fixes a bug in said demo which resulted in Bud being unable to talk
to Del.
2018-03-18 22:16:33 +01:00