Commit graph

118 commits

Author SHA1 Message Date
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
6a1e2d5d21
GOB: misc format/style/typo fixes in Adibou2 changes 2022-12-02 11:44:35 +01:00
Simon Delamarre
2ec5b0185d
GOB: more comments on Map "oblique" coordinates used in Adibou2 2022-12-02 11:44:35 +01:00
Simon Delamarre
685277c2ec
GOB: fix another parasite sprite issue in Adibou2
Some sprite cleanup was still missing.
2022-12-02 11:44:34 +01:00
Simon Delamarre
abade0260d
GOB: fix some animation speed issues in Adibou2
In some cases, e.g. Adibou walking from his house, the animation is drawn using video object and _mult->animate() calls, but outside any "evaluate hotspots" loop. The loop is done directly from the scripts and has no synchronization with frame rate, so the animation goes too fast.

We add a timing correction in the animate() loop, by not incrementing the video frame number in video object if we are in advance, and continuing the loop, to keep the UI responsive.
2022-12-02 11:44:34 +01:00
Simon Delamarre
709df52d48
GOB: fix some audio/video sync issues in Adibou2
This workaround solves audio/video sync issues that used to appear frequently in many animations, e.g. when Adibou kicks the ball in the garden.

Those animations easily get out of sync when the timing is done by hotspots::evaluate, which sometimes does not call animate() as often as needed for good sync (mouse events processing, in particular, can delay the call).
The original game seems to use also some kind of frame skipping to address this problem.
2022-12-02 11:44:33 +01:00
Simon Delamarre
df04e1c74c
GOB: drawing order bugfix in Adibou2
Order "100" (and above) should not be modified.

+ rewrite more clearly "order correction" rules
2022-12-02 11:44:32 +01:00
Simon Delamarre
65ec3bfa8a
GOB: remove a forced retrace in newCycleAnim for Adibou2
Lead to glitches (scenes shown too soon before loading the correct palette), and does not seem to be needed.
2022-12-02 11:44:29 +01:00
Simon Delamarre
e67c5be5a5
GOB: fix disappearing sprites issues in Adibou2 2022-12-02 11:44:27 +01:00
Simon Delamarre
44c724db55
GOB: more video object glitches fixes in Adibou2 2022-12-02 11:44:27 +01:00
Simon Delamarre
1e020bcd04
GOB: fix phantom sprites glitches in Adibou2 vegetables garden 2022-12-02 11:44:27 +01:00
Simon Delamarre
f0ab394243
GOB: fix missing closeVideo
This revealed some dirty rectangle issues on a few exercises.
2022-12-02 11:44:26 +01:00
Simon Delamarre
79a8634143
GOB: a few animation fixes in Adibou2 2022-12-02 11:44:25 +01:00
Simon Delamarre
95ddb1ca87
GOB: new workaround for Adibou2 failed assert(_finished) sound problem
Seems to be occurs when o7_playWmdOrMusic is called a second time to close a previously open video
2022-12-02 11:44:25 +01:00
Simon Delamarre
4c551956c5
GOB: fix disappearing objects in Adibou2 after video play
The video slot was sometimes not closed, preventing the mult object to be reused with a static image.
2022-12-02 11:44:25 +01:00
Simon Delamarre
5a53644bd7
GOB: rename changeDirection -> setGoblinState 2022-12-02 11:44:24 +01:00
Simon Delamarre
c0f76d7578
GOB: Adibou2 characters path computation 2022-12-02 11:44:24 +01:00
Simon Delamarre
24b6eeb0a0
GOB: Adibou2 characters animations 2022-12-02 11:44:24 +01:00
Simon Delamarre
f6bb7902fc
GOB: Adibou2 drawing order fixes 2022-12-02 11:44:23 +01:00
Simon Delamarre
32dc085cf4
GOB: implement order correction feature in animate()
Enabled by _vm->_map->_mapUnknownBool.
2022-12-02 11:44:23 +01: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
Orgad Shaneh
9c3d7c9621 GOB: Replace new[]/memset with new[]() 2021-11-10 19:53:15 +01: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
Johannes Schickel
ea21bc939a GOB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
Sven Hesse
2a1308b4e1 GOB: Add a sanity check 2013-04-15 18:36:44 +02:00
Sven Hesse
1666d9da82 GOB: Fix mult object collision detection I broke in 2007
This fixes the sidescroller levels (like the bees and butterflies)
in Little Red.

I really wonder if this breakage had other effects too...
2012-06-16 01:39:14 +02:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Sven Hesse
c88ee19478 GOB: Stub some Adibou mult stuff
svn-id: r55653
2011-01-30 13:14:32 +00:00
Sven Hesse
7ffd94004e GOB: Try to also open VMD files in Gob3 Win
Because the scripts reference it as IMD, while there are actually
only VMDs files in the data files of the Windows version

svn-id: r53037
2010-10-05 21:22:30 +00:00
Sven Hesse
51fd528fe5 GOB: Change all drawing to use class Surface
svn-id: r52947
2010-09-30 13:02:16 +00:00
Arnaud Boutonné
97943cef45 Fascination - (SylvainTV) Replace DRAW_DRAWLETTER by DRAW_BLITSURF. It makes a difference for Fascination, not for the other games using mult_v2. This fixes the refresh of all the little animations in Fascination.
svn-id: r52132
2010-08-16 21:16:13 +00:00
Sven Hesse
cebc1aca81 GOB: Fix playing of slot videos
The actual frame content is still not there, though :P

svn-id: r51911
2010-08-08 01:03:21 +00:00
Sven Hesse
bab55f3a1d GOB: Adapt the remaining bits to the new VideoPlayer interface
svn-id: r51895
2010-08-08 00:55:27 +00:00
Sven Hesse
2296aad042 VIDEO/GOB: Fix IMD playing
Fix IMD playing for some fringe cases, especially when seeking
beforehand.

svn-id: r51871
2010-08-08 00:44:33 +00:00
Sven Hesse
a824bcefaa GOB: Make playImd() use the new VideoPlayer interface
svn-id: r51868
2010-08-08 00:43:22 +00:00
Sven Hesse
4415953393 GOB: Add constants for different surfaces/sprites
Add
static const int kFrontSurface   = 20;
static const int kBackSurface    = 21;
static const int kAnimSurface    = 22;
static const int kCursorSurface  = 23;
static const int kCaptureSurface = 30;
to class Draw and substitute the raw numbers in other files with
those aliases, for readability.

svn-id: r51852
2010-08-08 00:35:18 +00:00
Sven Hesse
a802e1e64f VIDEO: Stub a VideoDecoder-like CoktelDecoder
This creates a new CoktelDecoder class using the VideoDecoder
interface, which will eventually become the new way to decode
PreIMD, IMD and VMD videos.
Since the VideoPlayer in gob is not yet ready for this, we're
disabling all video playback in the gob engine for now.

svn-id: r51850
2010-08-08 00:33:59 +00:00
Torbjörn Andersson
30a92bec6b Removed unused variables.
svn-id: r50947
2010-07-16 23:02:17 +00:00
Arnaud Boutonné
7601f1b14f gob - fix valgrind warning: invalid read when animKeysCount equals 0
svn-id: r44716
2009-10-06 19:57:17 +00:00
Sven Hesse
256a27350a Changed the scroll-handling to be more like the original. This fixes bug #2832362 ("GOB3: Scrolling locked after cutscene")
svn-id: r43147
2009-08-08 21:43:07 +00:00
Sven Hesse
d03dc08b64 Wrapping resources (out of TOT, EXT, IM? and EX? files) loading into its own class
svn-id: r41839
2009-06-24 21:49:37 +00:00
Sven Hesse
f6118f7a85 Added Script methods to get the TOT major and minor version
svn-id: r41788
2009-06-23 01:19:03 +00:00
Sven Hesse
962fc19b57 Encapsulating script file access
svn-id: r41753
2009-06-22 10:13:37 +00:00
Sven Hesse
48a8e69546 Fixed an animation speed regression that got introduced when I added a lag compensation for Woodruff
svn-id: r41508
2009-06-14 12:19:42 +00:00
Sven Hesse
6f49d1576b Added a workaround for Win Lost in Time.
It's got VMD files which are still referenced as IMD

svn-id: r41407
2009-06-09 18:53:35 +00:00
Max Horn
0989bb0b90 GOB: Got rid of class ReferenceCounter; changed SurfaceDesc::Ptr to SurfaceDescPtr (a Common::SharedPtr); and changed many SurfaceDesc pointers to references
svn-id: r41299
2009-06-06 20:03:13 +00:00
Sven Hesse
c88b077fcc Some minor clean-up
svn-id: r40166
2009-04-27 18:56:28 +00:00
Eugene Sandulenko
696897b058 Whoa! Removing trailing spaces.
svn-id: r35648
2009-01-01 15:06:43 +00:00
Sven Hesse
4e0485197f Fixing a segfault in the Bargon Attack menu
svn-id: r33896
2008-08-15 10:47:42 +00:00