Commit graph

3066 commits

Author SHA1 Message Date
Scott Percival
f7e2a19327 DIRECTOR: Fix video palette mismatch in Mac gamma mode
A few places in the code fetch the palette from the window manager. This
is not the source of truth; the WM might have a gamma-converted palette.

Fixes incorrect video colouring in the Mac version of Wrath of the Gods.
2025-03-25 12:17:34 +08:00
Scott Percival
b4c9557086 DIRECTOR: LINGO: Slight improvement in Cosmology of Kyoto patch 2025-03-25 12:17:34 +08:00
Scott Percival
255821d1c4 DIRECTOR: LINGO: Improve accuracy of 'the result'
Fixes the dialogue entry box in Cosmology of Kyoto.

Fixes director-tests/D4-unit/T_LING03.DIR
2025-03-25 12:17:34 +08:00
Scott Percival
5a6ef0b133 DIRECTOR: LINGO: Improve accuracy of b_integer
Fixes restoring save games in Derrat Sorcerum.
2025-03-25 12:17:34 +08:00
Scott Percival
dd553c4443 DIRECTOR: Add several games to detection table
Thanks to Tim Reimer for the tipoff.
2025-03-25 12:17:34 +08:00
Scott Percival
427c31acd8 DIRECTOR: LINGO: Limit functions which can be discovered
Handlers inside scoped script types (e.g. CastScript) should not be
discoverable via getHandler.

Fixes menu screen in Derrat Sorcerum.
2025-03-25 12:17:34 +08:00
Scott Percival
9c5443ca9d DIRECTOR: LINGO: Allow setting properties on nonexistent cast members
Similar to how you can get properties from nonexistent cast members,
Director will allow you to set them. This list was done by manually
checking in Director 4 which was a no-op instead of an exception.

Fixes Psych.
2025-03-25 12:17:34 +08:00
Scott Percival
0f44adce38 DIRECTOR: XOBJ: Add stubs for GetSoundInLevel and ListDev 2025-03-25 12:17:34 +08:00
Scott Percival
6876787d65 DIRECTOR: Add stubs for OpenURL and RolloverToolkit Xtras 2025-03-25 12:17:34 +08:00
rinevard
68158a9de0 DIRECTOR: Implement text line height 2025-03-18 13:32:56 +08:00
Filippos Karapetis
c85421c6fc
DIRECTOR: Fix MSVC warnings (#6464)
* DIRECTOR: Fix warning about usage of ABS()

* DIRECTOR: Remove MSVC-specific argument size modifier prefix from imgui

The I (uppercase i) modifier is a Microsoft extension, and is not ISO
compatible. MSVC supports the z modifier, which is ISO compatible, so
use that everywhere inside the ImGui code.

The relevant MSVC documentation can be found here:
https://learn.microsoft.com/en-us/cpp/c-runtime-library/format-specification-syntax-printf-and-wprintf-functions?view=msvc-170

* DIRECTOR: Fix assigning negative value to string end position
2025-03-11 09:37:38 +01:00
Eugene Sandulenko
b1e72ffbd7
DIRECTOR: XLIBS: Improved node jump processing in callback in QTVR Xlib 2025-03-04 23:49:28 +01:00
Filippos Karapetis
bb0a499aa1 DIRECTOR: Remove redundant virtual specifiers on overriding functions 2025-03-03 23:43:13 +02:00
Filippos Karapetis
5f723a4027 DIRECTOR: Initialize struct members 2025-03-03 23:43:12 +02:00
Eugene Sandulenko
03e4962b49
DIRECTOR: Improve debug output 2025-03-02 23:13:16 +01:00
Eugene Sandulenko
77834dd43c
DIRECTOR: Fix initial rect on DigitalVideo
trektech has set the receiving rect to 1x1 while in reality the
dimensions are taken from the video.

This fixes the ship object movie
2025-03-02 22:29:48 +01:00
Filippos Karapetis
6f0438bc77 DIRECTOR: Fix warning 2025-03-01 22:12:36 +02:00
Eugene Sandulenko
21ce1227b5
DIRECTOR: TESTS: added test for 'add' and 'findPos' 2025-02-28 18:55:48 +01:00
Eugene Sandulenko
f9fc9ff674
DIRECTOR: LINGO: Implemented b_findPos() for arrays 2025-02-28 18:55:48 +01:00
Eugene Sandulenko
a179395768
DIRECTOR: LINGO: Proper comparison in b_addProp 2025-02-28 18:55:48 +01:00
Eugene Sandulenko
74c3528df3
DIRECTOR: LINGO: Implement shortcut in b_sort() for sorted arrays 2025-02-28 18:55:48 +01:00
Eugene Sandulenko
6b959edbeb
DIRECTOR: LINGO: Use proper comparison when sorting arrays 2025-02-28 18:55:48 +01:00
Eugene Sandulenko
16e364b65a
DIRECTOR: LINGO: Fix const'ness of Datum comparison operations 2025-02-28 18:55:47 +01:00
Eugene Sandulenko
7d630751f1
DIRECTOR: LINGO: Optimize man/max for sorted arrays 2025-02-28 18:55:47 +01:00
Eugene Sandulenko
769e16c299
DIRECTOR: LINGO: Persist sorted flag when duplicating arrays 2025-02-28 18:55:47 +01:00
Eugene Sandulenko
02ca64a019
DIECTOR: LINGO: Fix b_add documentation and take into account sorted list property 2025-02-28 17:39:22 +01:00
Scott Percival
257804824a DIRECTOR: Fix getting the blend of sprite
Fixes the three toads viewable through the telescope of the T room of
Cyber Grannies.
2025-02-27 21:01:03 +01:00
Scott Percival
29e2397bf8 DIRECTOR: LINGO: Improve accuracy of "play done"
After a script reaches "play done", that script gets aborted.
The Lingo frozen play script (aka the script that initially invoked
play) will be thawed before stopMovie.

Fixes director-tests/D4-unit/T_PLAY01.DIR.
Fixes movie switching in Cyber Grannies.
2025-02-27 21:01:03 +01:00
Eugene Sandulenko
e4fc48ee2a
DIRECTOR: LINGO: Implement window moveToFront method 2025-02-26 18:35:49 +01:00
Eugene Sandulenko
51ce5217f2
DIRECTOR: XLIBS: Actually execute rollover callback in QTVR Xlib 2025-02-25 22:46:16 +01:00
Eugene Sandulenko
55e342f814
DIRECTOR: XLIBS: Fix callback calling and added sanity check to QTVR Xlib 2025-02-25 22:46:16 +01:00
Eugene Sandulenko
0f01d699b9
DIRECTOR: XLIBS: Fix methods table <facepalm> 2025-02-24 11:47:48 +01:00
Eugene Sandulenko
909af07511
DIRECTOR: XLIBS: Improved hotspot callback handling 2025-02-24 11:47:48 +01:00
Le Philousophe
1b13790d00 Revert "DIRECTOR: Fix AmigaOS compilation"
This reverts commit c19577d10d.
This was an improper fix.
2025-02-24 09:06:57 +01:00
Eugene Sandulenko
91a521be3f
DIRECTOR: XLIBS: Changed callback notation for QTVR Xlib 2025-02-24 01:14:39 +01:00
Eugene Sandulenko
c19577d10d
DIRECTOR: Fix AmigaOS compilation 2025-02-23 17:18:17 +01:00
Eugene Sandulenko
70f430e4a9
DIRECTOR: XLIBS: Implement 'mouseOver' method 2025-02-23 17:18:17 +01:00
Eugene Sandulenko
f39956e57e
DIRECTOR: LINGO: 'the result' could be anything, not just Int, fixing that 2025-02-23 17:18:17 +01:00
Eugene Sandulenko
fff67c6e7c
DIRECTOR: XLIBS: Unstub rest of the minor methods in QTVR Xlib 2025-02-23 17:18:17 +01:00
Eugene Sandulenko
3275e633e8
DIRECTOR: XLIBS: Unstub minor methods in QTVR Xlib 2025-02-23 17:18:17 +01:00
Roland van Laar
4e71407278 DIRECTOR: LINGO: XTRA: TimeXTRA: improve comment
`m_getTime` doesn't start at 01:00. It starts at 00:00 UTC.
The underlying GetSystemTime returns the time in UTC.
The comment was updated to reflect this.
2025-02-23 10:55:46 +01:00
Le Philousophe
fa8365d0f7 DIRECTOR: Fix int vs int32 discrepancy
This fixes Amiga build
2025-02-23 10:52:35 +01:00
Eugene Sandulenko
714c3faf0a
DIRECTOR: XLIBS: Initial code for QTVR Xlib
Used in trektech
2025-02-23 01:20:35 +01:00
Roland van Laar
fcb3c6253f DIRECTOR: LINGO: b_script implement castLib query
For `script`, as it's with `member`, it's possible to specify the
castlib. When two args are given query for the member together with the castlib.

This is used in Safecracker in the following way:
    set gTimeObject to new(script "Timer Parent" of castLib "MAIN.CST")
2025-02-22 23:50:46 +01:00
Roland van Laar
c76ace988e JANITORIAL: remove superfluous whiteline 2025-02-22 23:50:46 +01:00
Roland van Laar
eb6dc58b6f DIRECTOR: LINGO: XTRA: TimeXtra: implement getTime
Testing on win95 showed the following:

    Return value is hours * 3600 + minutes * 60 + seconds
    where the starting point 01:00 is 0.

Safecrackers only needs the number of seconds since the start of the game.
Since not all platforms that run ScummVM have a clock, it's implemented as
the number of seconds since the start of ScummVM.
2025-02-22 23:50:45 +01:00
Torbjörn Andersson
9bb4a11ff8 DIRECTOR: Fix warnings 2025-02-22 11:18:32 +01:00
Eugene Sandulenko
f95f16c6e0
DIRECTOR: LINGO: Added b_lineHeight() stub 2025-02-21 21:39:54 +01:00
Eugene Sandulenko
c9d29e879c
DIRECTOR: LINGO: Do not complain on empty strings in b_do()
Safecracker uses dynamic scripts which are initially empty, so
consider this situation as normal and exit gracefully without
producing noise
2025-02-21 14:03:34 +01:00
Eugene Sandulenko
b3d390e358
DIRECTOR: XTRAS: Filter out dsSetLoop with loops > 1 only, in DirectSound Xtra 2025-02-21 13:55:31 +01:00