[Scummvm-tracker] [ScummVM :: Bugs] #17093: DIRECTOR: Lingo-assigned digital video remains inactive and transit is skipped

ScummVM :: Bugs trac at scummvm.org
Sun Aug 23 04:48:47 UTC 2026


#17093: DIRECTOR: Lingo-assigned digital video remains inactive and transit is
skipped
------------------------+------------------------------
Reporter:  stephend999  |      Owner:  (none)
    Type:  patch        |     Status:  new
Priority:  normal       |  Component:  Engine: Director
 Version:               |   Keywords:
    Game:               |
------------------------+------------------------------
 == Game and environment ==

 * Game: Star Trek: The Next Generation Interactive Technical Manual
 * Game version: English Windows CD-ROM
 * OS: Windows 11 64-bit
 * ScummVM: 2026.3.1git31220-g437002af599 (Aug 22 2026), SDL 2.26.2
 * Engine: Director
 * Source: legally owned original disc/ISO

 == Reproduction ==

 1. Open the location interface.
 2. Select a destination.
 3. Choose transit/walk mode.

 == Actual result ==

 The game jumps directly to the destination instead of playing the corridor
 fly-through. Its trace confirms that it chooses and installs the correct
 QuickTime movie before advancing immediately:

 {{{
 >prepTransitQT: gets TravelAgent(mRouter #flythru) = 07S04Q.MOV
 >prepTransitQT: the cast of QTsprite = qtflythru
 playTransitQT> Playing QT with castnum of sprite QTsprite = 125
 playTransitQT> entry pic loaded
 >getDestination: now heading for: E
 NewImage  Transit > Main
 }}}

 == Expected result ==

 The selected corridor QuickTime movie plays, and the title waits for it
 before loading the destination.

 == Analysis and proposed fix ==

 `Channel::setCast()` loads and starts a newly assigned digital-video cast
 member, but does not establish an active movie rate. For a paused-at-start
 member, `DigitalVideoCastMember::startVideo()` leaves `_movieRate` at
 zero. Director score wait logic requires a nonzero rate and therefore
 considers the video inactive.

 The normal `Channel::replaceSprite()` video path sets `_movieRate = 1.0`
 before starting. The attached patch makes the Lingo cast-assignment path
 consistent by setting the rate before `startVideo()`.

 The patch applies cleanly to source commit `ec424f1b` and passes `git diff
 --check`. Runtime validation needs an official Windows build because
 locally built MinGW executables rendered a black frame even without this
 gameplay patch, while the official daily build rendered correctly.
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/17093>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list