Commit Graph
148 Commits
Author SHA1 Message Date
Simon Delamarre fc8d530e51 GOB: protection from sound-only videos without proper flags in Adibou2
Such videos may try to allocate a Surface with null width/height.

Fix the jokes "jingle" of the radio in Adibou's house.
2022-12-02 11:44:34 +01:00
Simon Delamarre dc83f97a2e GOB: fix interrupted intro sound in Adibou2
The script relies on "var_off_212" (current frame) becoming "-1" when the video ends, but its update was disabled for sound-only videos, by a hack for "Bamboo" game to deal with multiple live videos.

We disable this hack (i.e. re-enable var_off_212 update) when there is only one "live" video.
2022-12-02 11:44:33 +01:00
Simon Delamarre 653ae7caf3 GOB: ensure waitSoundEnd is not called on "live" videos
waitSoundEnd call finishSound(), an then updateLive(), which will load new frames while being in "finished" state.
The !props.noBlock check on call site was not enough, as sometimes the close order on a live video does not have "live" flags.
2022-12-02 11:44:33 +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 97a66c329e GOB: yet more int16->uint16 changes, to accommodate for Playtoons/Adibou2 larger variable space
This makes the Playtoons-like minigame in Adibou2 playable (with glitches).
2022-12-02 11:44:28 +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 7ed26da61b GOB: implement y-axis reflection, needed by some character animations
Some animations for characters moves do not exist for "east" directions (E, NE, SE), but are obtained by symmetry from "west" ones (W, NW, SW).
2022-12-02 11:44:24 +01:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Luca Barbato 58d32add42 GOB: Avoid an off by one
Lost in Time (English floppy version but CD version might be affected as well)
garbles colours during some clips playback otherwise.
2021-07-14 20:09:32 +01:00
Ori Avtalion 064df1ff27 GOB: Reduce audio header dependencies 2016-04-14 17:18:33 +03:00
Johannes Schickel ea21bc939a GOB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00
Johannes Schickel 63a2e47bfe GOB: Take advantage of Surface::getPixels. 2013-08-03 04:02:50 +02:00
Johannes Schickel 690d55d763 GOB: Prefer getBasePtr over direct Surface::pixels access. 2013-08-03 02:52:32 +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
Johannes Schickel 44068338e5 GOB: Made some static data const. 2011-09-08 20:03:30 +02:00
Strangerke b60a706751 JANITORIAL: Fix some formatting glitches in gob, hugo and toon 2011-09-08 07:55:40 +02:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Johannes Schickel ca81ab1a4c GOB: Do not access Surface::bytesPerPixel anymore. 2011-04-17 20:56:16 +02:00
Max Horn 357c225f64 VIDEO: Rename VideoDecoder::load() to loadStream()
svn-id: r55810
2011-02-07 17:54:16 +00:00
Sven Hesse fed0adacb7 GOB: Close the just ended live video, not the first one
svn-id: r55734
2011-02-02 17:03:14 +00:00
Sven Hesse 076b9c9e53 GOB: Remove the vidMode parameter from Video::initSurfDesc
svn-id: r55727
2011-02-02 16:48:04 +00:00
Torbjörn Andersson 128e36275d GOB: Remove unnecessary semicolon
svn-id: r55609
2011-01-29 09:56:23 +00:00
Sven Hesse 9eea8c6bca GOB: Wait for the exact moment of the video sound's end
This should fix all cut-off sound issues in Urban Runner

svn-id: r55503
2011-01-24 14:10:15 +00:00
Eugene Sandulenko caa6684752 VIDEO: Move video classes to Video:: namespace
svn-id: r55479
2011-01-23 19:08:09 +00:00
Sven Hesse ccd5129588 GOB: Pass engine pause to the VideoPlayer and decoders
Entering the GMM or the debug console during a video will not
mess up audio/video sync anymore.

svn-id: r55466
2011-01-23 15:33:30 +00:00
Sven Hesse 0722df9472 GOB: Hacking in multiple live videos
Needed for Bambou. The narrator voice and the "Do you want to quit?"
voices are live videos that should continue while the live video
buttons are playing.

svn-id: r55443
2011-01-22 19:28:23 +00:00
Sven Hesse cbbafc962d GOB: Extend the good-measure wait to all videos with sound
Fixes a glitch in Bambou, where the intro movie is cut off to
soon.

svn-id: r55432
2011-01-22 16:29:54 +00:00
Sven Hesse a8e6fa3346 GOB: Don't blit dirty rectangles while playing a live video
This fixes the inventory list flickering in live videos :)

svn-id: r55430
2011-01-22 15:39:52 +00:00
Sven Hesse 2bb8cf25df GOB: Force live videos onto the backSurface
Fixes some inventory list uglyness in live videos.
It still flickers when mousing over it though, and keeps popping
when mousing over the register during the hotel scene

svn-id: r55429
2011-01-22 15:06:12 +00:00
Sven Hesse 7c14cf2b1b GOB: Fix some of the live-video glitchyness
svn-id: r55421
2011-01-22 12:26:31 +00:00
Sven Hesse 6e254c4f01 GOB: Actually, startFrame == -2 seems to be the only live video flag
svn-id: r55418
2011-01-22 11:39:03 +00:00
Sven Hesse d99ca6e58c GOB: Don't mess with the break key in Urban Runner
To be able ESC videos, you need to switch on ESC in the settings
in the right part of the menu, because the scripts needs to
trigger the drawing of the last frame of the ESC'd video.
Otherwise, the graphics e.g. stops mid-frame during a turn.

svn-id: r55407
2011-01-22 04:39:39 +00:00
Sven Hesse bb6c230587 GOB: Implement looping live videos
Needed for the buttons in the Playtoons series

svn-id: r55359
2011-01-20 18:17:39 +00:00
Sven Hesse 715560edb9 GOB: Don't temper with the break key for live videos
svn-id: r55355
2011-01-20 17:06:50 +00:00
Sven Hesse adf8820aee GOB: Make blocking videos default
svn-id: r55354
2011-01-20 15:29:32 +00:00
Sven Hesse 3976342ec0 GOB: Don't not play videos with only sound
svn-id: r55349
2011-01-20 12:28:46 +00:00
Sven Hesse 6e403b38ba GOB: Reverse-blit the final frame of a live video
Fixes some glitches at the end of live videos

svn-id: r55347
2011-01-20 10:21:27 +00:00
Sven Hesse 6b85f809d9 GOB: Urban: Fix missing visuals at Cemetary/Lab
Urban Runner decouples _frontSurface and
_spritesArray[kFrontSurface] at that screen... *sigh*

svn-id: r55346
2011-01-20 10:20:57 +00:00
Sven Hesse bd3f9ad1e2 GOB: Use Surface::blit() in VideoPlayer::copyFrame()
svn-id: r55344
2011-01-20 05:19:41 +00:00
Sven Hesse d77899e158 GOB: Make Urban Runner's "3D view" work again
svn-id: r55340
2011-01-20 03:22:43 +00:00
Sven Hesse bad7f1ce9a GOB: Implement "live" (non-blocking) videos
Many thanks to SylvainTV. :)
Urban Runner might actually be completeable now.
One caveat: Hotspots at that hotel sequence are a bit glitchy...

svn-id: r55333
2011-01-19 18:57:43 +00:00
Sven Hesse da65a3cbf3 GOB: Fix the flow rate gauge in Urban Runner
svn-id: r55275
2011-01-17 09:48:42 +00:00
Sven Hesse 68ebdf20d5 GOB: Don't clobber the global palette
svn-id: r55270
2011-01-16 22:28:20 +00:00
Sven Hesse 518e858d85 GOB: Allow true-color VMD cursors
svn-id: r55264
2011-01-16 16:30:15 +00:00
Sven Hesse b451d3b51c GOB: Add the property switchColorMode
To allow the videoplayer (and ultimatively the demoplayer)
to switch color modes if necessary.

svn-id: r55262
2011-01-16 16:29:19 +00:00
Matthew Hoops 375f32fbe9 VIDEO: Make VideoDecoder::decodeNextFrame() return a const Surface pointer
svn-id: r54927
2010-12-16 01:35:13 +00:00
Max Horn a0df86955f ALL: Push down deps on stream.h from .h to .cpp files
svn-id: r54358
2010-11-19 01:37:04 +00:00
Sven Hesse 16a3cc8a84 GOB: Clean up class DataIO
Removing the need for class DataStream and that handle mess.

svn-id: r53984
2010-10-31 20:07:14 +00:00
Sven Hesse 835455798f GOB: Remove the now useless helper.h
svn-id: r53491
2010-10-15 13:55:18 +00:00
Sven Hesse 51fd528fe5 GOB: Change all drawing to use class Surface
svn-id: r52947
2010-09-30 13:02:16 +00:00