[Scummvm-tracker] [ScummVM :: Bugs] #17092: DIRECTOR: QTVR mouseOver command discards hotspot result
ScummVM :: Bugs
trac at scummvm.org
Sun Aug 23 04:48:19 UTC 2026
#17092: DIRECTOR: QTVR mouseOver command discards hotspot result
------------------------+------------------------------
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 a panoramic location containing an inspectable object.
2. Move over an object with a QTVR hotspot.
3. Click the object.
== Actual result ==
The hotspot does not open the object's close-up. ScummVM detects the
hotspot and calculates the expected XObject result, but the builtin
command dispatcher drops it:
{{{
WARNING: Builtin 'mouseOver' dropping return value: "undf,165"!
WARNING: Builtin 'mouseOver' dropping return value: "jump,14"!
WARNING: Builtin 'mouseOver' dropping return value: "pan ,0"!
}}}
The title invokes the QTVR `mouseOver` method as a command and reads `the
result`. Handler return values already update `the result` when called
without a return-value context, but builtin command return values are
popped in `Lingo::call` without updating it.
== Expected result ==
The XObject result remains available through `the result`, allowing the
game script to select and open the close-up.
== Proposed fix ==
In `engines/director/lingo/xlibs/q/qtvr.cpp`, set `g_lingo->_theResult` to
the calculated QTVR result before pushing it. The attached patch scopes
this behavior to the legacy QTVR `mouseOver` method instead of changing
all builtin command semantics.
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/17092>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list