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