Commit Graph
192 Commits
Author SHA1 Message Date
Simon Delamarre 8884cc4d22 GOB: Fix endianess issue in Goblin_v7::setGoblinState (Adibou2) - bug #15516 2024-12-01 22:56:57 +01:00
Filippos Karapetis 383993f11e GOB: Skip the copy protection screen in the Amiga version of Gob2
We already skip the copy protection in the PC floppy version.
We are in direct contact with the current IP right owners, so there is
no issue with skipping copy protection in gob games
2024-11-18 20:17:54 +02:00
Filippos Karapetis e8ddc07721 GOB: Fix footstep sounds in Gob2 CD - bug 15341
This is the same workaround as the one done for Gob 3 in a852f30fb2
2024-11-07 01:02:09 +02:00
Eugene Sandulenko 5dcdfd2600 GOB: Dual-license the gob engine under LGPL
The major contributors provided their consent:
DrMcCoy, Strangerke, sdelamarre, sev.

The goal is to allow the re-release of this code under
Switch, which is incompatible with pure GPL
2024-01-08 01:44:04 +01:00
Simon Delamarre 01530e25a2 GOB: workaround for an infinite loop in the save screen of Adibou1 "Paint" game 2023-05-01 22:14:10 +02:00
Simon Delamarre 1c801b4c24 GOB: workaround for an infinite loop in Adibou2 flower garden activity 2023-04-23 00:57:57 +02:00
Simon Delamarre 0099c3624c GOB: coordinates adjustment for games existing in several resolutions
This mechanism was used to accommodate games existing in several resolutions, while keeping the same script logic across versions.
Opcodes manipulating coordinates and lengths call the adjustCoords() function to double or halve their values depending on the adjustment needed.

Its usage has been confirmed only in a German version of Adibou1 for now, restrict the feature to this game.
2023-04-21 00:13:44 +02:00
Simon Delamarre c2b9ceefa8 GOB: safety check for zero width or height in o1_capturePush
Fixes the "Feed the rabbits" game in Adibou1 "Count 4-5 years" application
2023-04-20 00:39:21 +02:00
Simon Delamarre 0945f86626 GOB: fix objects offset in Adibou1 construction game 2023-04-13 01:17:18 +02:00
Simon Delamarre 82ed59a150 GOB: skipping copy protection of Adibou1 applications 2023-04-05 23:29:11 +02:00
Simon Delamarre 8bb49c1acf GOB: fix cursor still visible in breakout game of some Adibou2 versions
Only cursors drawn from scripts must be copied in _cursorSprites, not the ones loaded from executable.
This simplifies a lot of globals from the Draw object, that were needed only in the cursor-from-exec case.

Note: other GOB games are not impacted even if shared code from draw_v2.cpp, inter_v1.cpp is modified (_cursorHotspotsX and _doCursorPalettes are non-null only in Adibou 2).
2023-01-12 23:26:40 +01:00
Vladimir Serbinenko f3daf65116 GOB: Don't use rawString.
The result is being fed to File::open so \x1f and / get conflated later anyway,
so toString('/') has exactly the same effect.
2022-12-14 05:08:46 +01:00
eientei b08b8cf66e GOB: Add fix for Adiboo 2 EN demo loading files from subfolder 2022-12-12 20:40:51 +01:00
Simon Delamarre 50a6555ec3 GOB: misc format/style fixes in Adibou2 changes 2022-12-02 11:44:36 +01:00
Simon Delamarre 5d519ed33b GOB: be more conservative about possible regressions in Adibou2 changes 2022-12-02 11:44:35 +01:00
Simon Delamarre 6a1e2d5d21 GOB: misc format/style/typo fixes in Adibou2 changes 2022-12-02 11:44:35 +01:00
Simon Delamarre 6705ee619d GOB: fix a typo in a comment 2022-12-02 11:44:33 +01:00
Simon Delamarre 2d0ee1ffa1 GOB: fix some parasite sprites issues in Adibou2
Some sprite cleaning was missing when destroying objects.
2022-12-02 11:44:32 +01:00
Simon Delamarre cab63f8d31 GOB: skip copy protection test in Adibou1 2022-12-02 11:44:30 +01:00
Simon Delamarre b6e991f1c4 GOB: implement case -1 of o1_keyFunc
Same as case 1. Fixes the "Cancel" button of "Change CD" screen in Adibou2.
2022-12-02 11:44:30 +01:00
Simon Delamarre 141cd85e75 GOB: workaround for an issue with text tool in Adibou2 paint game 2022-12-02 11:44:30 +01:00
Simon Delamarre da7439b3f3 GOB: Adibou2 forces palette entries 0 / 255 to be black / white 2022-12-02 11:44:29 +01:00
Simon Delamarre edb0528536 GOB: no "fade" animation in Adibou2 after o1_palLoad
No fade transitions in the original game, and it leads to glitches (e.g. sometimes a scene is shown to soon, with a wrong palette, due to unexpected retrace in fade() call).
2022-12-02 11:44:29 +01:00
Simon Delamarre 48fa677c17 GOB: fix cursor issues in Adibou2
- resizeCursors should be able to shrink cursor sizes (sometimes Adibou2 uses 50*50 cursors, and then goes back to 32*32)
- cursor palettes (_draw->_cursorPalettes) should not be used when initializing cursoes with o1_initCursor
2022-12-02 11:44:28 +01:00
Simon Delamarre fa13e43c18 GOB: remove "multiple click protection" from o1_keyFunc in Adibou2
(As already done for Fascination)
Adibou scripts sometimes call functions with a storeMouse() in  a row before checking the result, expecting a mouse down from the first processing to be still stored in variables.

E.g.
sub_5257 {
	o1_animatePalette();
	o1_keyFunc(1);
	o1_keyFunc(2);
	if (var32_16==1) {
2022-12-02 11:44:27 +01:00
Simon Delamarre da923e24c1 GOB: Mult_object field_38 is videofile metadata, equivalent to 'slot' field 2022-12-02 11:44:27 +01:00
Simon Delamarre 0db96b5b0b GOB: partially handle missing cases in o1_palLoad
Only adjust position in script - implementation itself not done yet.
2022-12-02 11:44:25 +01:00
Simon Delamarre 24b6eeb0a0 GOB: Adibou2 characters animations 2022-12-02 11:44:24 +01:00
Simon Delamarre 35eceb6bd3 GOB: draw sprites when animation < 0 without associated VMD 2022-12-02 11:44:23 +01:00
Le Philousophe 4a82710bc0 GOB: Don't use unsafe sprintf and vsprintf 2022-10-23 22:46:19 +02:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh 8d91d66a15 GOB: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
sluicebox 93eeffc84d JANITORIAL: Update old bug tracker numbers 2021-03-03 02:15:05 +02:00
D G Turner 799a088b6e GOB: Fix Missing Default Switch Cases
These are flagged by GCC if -Wswitch-default is enabled.
2019-12-12 17:31:01 +00:00
Sven Hesse 7bdf48170a GOB: Remove useless memcpy()
Happened while removing Draw::_vgaSmallPalette in 0f9b1364c.

Fixes Coverity issue #1230309.
2014-10-19 00:08:32 +02:00
Sven Hesse 0f9b1364cf GOB: Remove the last remnants of Draw::_vgaSmallPalette
Draw::_vgaSmallPalette was supposed to be a 16-color VGA
palette / EGA palette, but we've been using the first 16
entries of Draw::_vgaPalette for that for ages now.

The only parts where we didn't were codepaths never
actually taken in the gob games, so for the sake of
clarity (and fixing Coverity issues), this commit removes
those as well.

Fixes Coverity issues 1192648 and 1192649.
2014-03-16 15:35:35 +01:00
Johannes Schickel ea21bc939a GOB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
Sven Hesse 7632246264 GOB: Implement Util::getKeyState() for Little Red
This makes the bees level playable, removing the "lock-up".
Collision detection between Little Red and the bees and butterflies
doesn't work yet though, so they're just flying through her.

Nevertheless, the game seems to be completable now.
2012-06-15 13:35:46 +02:00
Sven Hesse 3b8b3c4caf GOB: Fix a failed assert in Litte Red Riding Hood 2012-06-14 23:40:18 +02:00
Sven Hesse fe44939eba GOB: Play the music on the title screen of Gob1 EGA
The EGA version of Gobliiins comes with an MDY track.
While the original doesn't play it, we thought it might
be a nice idea to play it nevertheless.
2012-06-11 06:20:34 +02:00
Sven Hesse 8c3d2fc741 GOB: Add a way to reopen currently opened IMD/VMD videos
This is a workaround for how Lost in Time behaves in combination
with changes I made to the DataIO code for running Urban Runner
on low-memory devices.

Urban Runner's intro are far to big to have them copied into
memory for these devices, so I made the DataIO code return a
SafeSeekableSubReadStream into the opened archive stream instead.
Unfortunately, Lost in Time might not close a video file when it
closes the data file which it was originally in, especially when
loading a saved game. Since the video player needs to be able to
gaplessly continue a video and there does not, by itself, close
the video if not requested by the scripts, this leads to reading
out of an already closed stream in certain cases.

So, to worka round this issues, the video player tries to reopen
each currently opened video after a data archive was closed, to
make sure that that video is still available. If not, the video
is closed.
2012-06-07 00:29:46 +02:00
Sven Hesse 2f7ae1109b GOB: Add a cheat debug command
- Cheat the Diving minigame to a win
- Get the mastermind solution
2012-01-29 00:10:11 +01:00
Sven Hesse c66afb213b GOB: Fix analyser warnings regarding sprintf() parameter signness 2011-11-03 17:01:54 +01:00
Sven Hesse 5dd26b9a36 GOB: Add cheat output for Geisha's mastermind 2011-08-26 11:50:37 +02:00
Sven Hesse 225f0ad3dc GOB: Fix EGA palette animation
The Geisha intro is now watchable
2011-08-26 04:45:34 +02:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Ori Avtalion 9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03:00
Sven Hesse 076b9c9e53 GOB: Remove the vidMode parameter from Video::initSurfDesc
svn-id: r55727
2011-02-02 16:48:04 +00:00
Sven Hesse 65bc46d3ab GOB: Add Script::evalInt() and Script::evalString()
svn-id: r55634
2011-01-29 22:47:53 +00:00
Sven Hesse 40bf0286a1 GOB: Rename Script::evalBoolResult() to Script::evalBool()
svn-id: r55633
2011-01-29 22:47:14 +00:00