Commit Graph
628 Commits
Author SHA1 Message Date
djsrv 19dab8f130 DIRECTOR: Set cursors per-movie, not globally 2021-08-06 01:11:49 -04:00
djsrv 65b43f1c57 DIRECTOR: Improve tempo stub
Warns about all unhandled tempos now.
2021-08-05 16:48:48 -04:00
djsrv 8b2d369fe4 DIRECTOR: Fix max FPS
The slider goes up to 120.
2021-08-05 16:48:39 -04:00
djsrv f94363acc5 DIRECTOR: Fix pause
I accidentally removed "if (!_vm->_playbackPaused)" while figuring out
the logic for eded70bc8a.
2021-07-29 20:20:46 -04:00
ysj1173886760 9e9fa48101 DIRECTOR: replace magic numbers by using constants. 2021-07-28 15:06:52 +08:00
djsrv a16d823201 DIRECTOR: Improve puppetSound
Most variants of puppetSounds don't actually start the sound immediately
but wait until the frame is updated. So I've created a SoundID struct
which stores a reference to a cast member or externals sound, and that
is used to store the puppetSound until it's actually supposed to start.
In addition, puppet status is now per-channel instead of a universal
flag.
2021-07-27 22:54:16 -04:00
djsrv a2e8da00e5 DIRECTOR: Don't render next frame if exitFrame stopped the movie 2021-07-27 22:42:09 -04:00
djsrv 8a9b1cd09c DIRECTOR: Give each window its own sound manager
This Should prevent conflicts between the sound channels of movies
running in parallel.
2021-07-27 22:42:09 -04:00
djsrv eded70bc8a DIRECTOR: Start _currentFrame at 1, not 0
If a startMovie handler gets 'the frame', it should return 1, not 0.
2021-07-26 19:57:12 -04:00
djsrv fc1831a462 DIRECTOR: LINGO: Replace _hasFrozenContext
This fixes https://trello.com/c/bucHPI2F/429-majestic-regression
hasFrozenContext is now a function which checks the call stack for
frozen contexts. Not updating this variable manually leaves less room
for error.
2021-07-26 12:59:06 -04:00
ysj1173886760 76509c8fc8 DIRECTOR: add range check for sampled sounds. 2021-07-25 16:43:40 +08:00
ysj1173886760 99642ec18e DIRECTOR: fix the behaviour of puppet sound. 2021-07-25 14:39:25 +08:00
ysj1173886760 dfd3c9c5cd DIRECTOR: fix playing sample sounds in score. 2021-07-25 14:26:25 +08:00
djsrv 7b7d351a54 DIRECTOR: Use updateVideo instead of renderFrame in b_updateStage
This partially reverts
30f0b3995a.
I mistakenly stated that we need to re-render the entire frame in
b_updateStage in that commit, but that was incorrect.
This fixes a regression in Chop Suey's cursors.
2021-07-24 01:44:27 -04:00
djsrv f1a7d94f2d DIRECTOR: Don't use renderFrame for video updates
This adds a renderVideo function which updates a frame's digital video
and nothing else. renderFrame resets all sprites to what's stored in the
score which is an unwanted side effect.
2021-07-24 01:44:27 -04:00
djsrv ab0fc404c1 DIRECTOR: Process stepMovie events if outdated Lingo is allowed
Used in Meet MediaBand.
2021-07-23 18:08:53 -04:00
djsrv 44ad31a043 DIRECTOR: LINGO: Only freeze one context at a time 2021-07-21 20:41:36 -04:00
djsrv 5a7c191ac4 DIRECTOR: LINGO: Create one call stack per window
Since there may be frames left on the call stack after Lingo::execute()
is called now, it isn't safe to share one call stack between several
movies executing in parallel.
2021-07-21 20:35:40 -04:00
djsrv ce4aa63781 DIRECTOR: Fix where initial call stack size is recorded 2021-07-21 19:04:54 -04:00
djsrv e2a34fccc1 DIRECTOR: LINGO: Temporarily freeze script context in func_goto 2021-07-21 18:27:05 -04:00
djsrv 6cf6412e0c DIRECTOR: Fix stepMovie version check 2021-07-21 18:27:05 -04:00
ysj1173886760 876f998a05 DIRECTOR: check and play queued fplay sound in score. Amend the implementation of playFPlaySound 2021-07-19 10:41:22 +08:00
djsrv 30f0b3995a DIRECTOR: Always call renderFrame in updateStage
If we don't do this, nothing is actually updated.
2021-07-16 14:46:21 -04:00
djsrv 5e5c32c2e2 DIRECTOR: Return to previous movie when playback ends 2021-07-16 12:53:54 -04:00
djsrv 88ea6e1645 DIRECTOR: Re-encode loaded text to UTF-8 2021-07-15 16:31:47 -04:00
ysj1173886760 fcb49bbd15 DIRECTOR: implement playExternalSound for DirectorSound, organize the code 2021-07-14 18:00:50 +08:00
ysj1173886760 9ef812b0ba DIRECTOR: implement playing external sample sounds in score 2021-07-14 18:00:50 +08:00
ysj1173886760 0d7c1a51b2 DIRECTOR: amend resolvePaletteId. 2021-07-08 02:25:11 +02:00
ysj1173886760 fcd8703356 DIRECTOR: regard 0 as the default palette 2021-07-08 02:25:11 +02:00
djsrv 615995fdc1 DIRECTOR: Change member refs to use CastMemberID 2021-06-30 22:32:19 -04:00
ysj1173886760 aff4592ba3 DIRECTOR: update editableTextChannel after we rendering the sprites. 2021-06-26 16:08:20 +02:00
ysj1173886760 2ea18a03fb DIRECTOR: add getOriginalSpriteById to score, which allowing us modify the original sprite data instead the one we store in channel 2021-06-26 16:08:20 +02:00
ysj1173886760 44b2f54a4d DIRECTOR: fix use-after-free issue for the sprites stored in channel 2021-06-26 16:08:20 +02:00
ysj1173886760 b0b7cdedf0 DIRECTOR: modify cursor behaviour, it will depends on the top-most channel now. 2021-06-20 14:33:53 +02:00
djsrv eee17da97a DIRECTOR: Add Score::getSpriteIdByMemberId 2021-06-10 10:57:19 -04:00
djsrv 1043519df5 DIRECTOR: Avoid drawing previous frame
The previous frame was getting drawn if video was playing. Only render
if we need to keep waiting before switching the frame.
2021-06-07 18:31:55 -04:00
djsrv ed8ca876e3 DIRECTOR: Use version from VWCF for loading 2021-06-07 14:48:48 -04:00
Scott Percival 527a093228 DIRECTOR: Fix the _videoPlayback flag
The _videoPlayback flag needs to be enabled as soon as a video starts
playing, instead of the frame after.

Fixes the morphing cloud animations in Chop Suey.
2021-04-25 23:22:51 +08:00
Torbjörn Andersson ba37c52047 JANITORIAL: Remove some unnecessary semicolons 2020-11-17 07:22:49 +01:00
Eugene Sandulenko 92bd514902 DIRECTOR: LINGO: Make sure video is rendered on 'updateStage' 2020-08-25 10:43:47 +02:00
Eugene Sandulenko 233e0e21a8 DIRECTOR: Draw video only when it is truly changed 2020-08-24 20:53:37 +02:00
Eugene Sandulenko e8d9dfe62b DIRECTOR: Proper implementation of 'directToStage' 2020-08-23 20:31:48 +02:00
Eugene Sandulenko 806c946fd6 DIRECTOR: Attempt to implement 'directToStage'
Not working, as it is not clear how to change priority of a channel
2020-08-23 19:46:58 +02:00
Eugene Sandulenko f3f0816bd3 DIRECTOR: Fixed showing initial frame on stopped videos 2020-08-22 18:02:10 +02:00
djsrv 3bf6f79a3e DIRECTOR: Fix crash on mouse move in lingotests 2020-08-21 21:52:54 -04:00
Nathanael Gentry 73c970421f DIRECTOR: Re-render changed cursors on new frame 2020-08-19 16:31:36 -04:00
Nathanael Gentry d7ec21cbeb DIRECTOR: Properly discover sprite cursors
We canot just use getSpriteIDFromPos, as Director gets the cursor from the
topmost sprite that has a non-empty cursor.
2020-08-19 10:41:55 -04:00
Nathanael Gentry 7d68cd7771 Revert "DIRECTOR: Do not attempt to render cursor from empty sprite"
This reverts commit 12a35cda57.
2020-08-19 10:41:55 -04:00
Nathanael Gentry bd2c3f2bba DIRECTOR: Show ink type as decimal 2020-08-19 10:41:54 -04:00
Eugene Sandulenko 5ec3815106 DIRECTOR: Update digital video independently from the frame tempo 2020-08-18 13:08:52 +02:00