Commit graph

49 commits

Author SHA1 Message Date
Matthew Duggan
5607de83a0 DGDS: Fix implementation of a few HoC globals
Implement difficulty level and pal fade globals.
2025-03-15 17:45:17 +11:00
Matthew Duggan
957e4a0cd7 DGDS: Multiple mouse fixes to match original
This changes the mouse behavior to better match the original games.

* Left-click "use" should only happen on a short click (mouse button goes down
  and up within a few frames) - longer clicks should always do "pick up"
  operation.
* Right-click "look" should only happen on short clicks, longer right button
  should start targetting mode
* Both-click should operate on all areas under the mouse, ignoring their
  conditions

This fixes #15774 and #15782, and also fixes eg Rise of the Dragon trying to
fire the gun in Blade's apartment.
2025-03-09 14:45:31 +11:00
Matthew Duggan
0005ca1a96 DGDS: Show Willy's dollars correctly in inventory 2025-01-04 12:30:15 +11:00
Matthew Duggan
a87b9e7080 DGDS: Implement Willy Beamish help menu 2024-12-31 15:46:46 +11:00
Matthew Duggan
9329538095 DGDS: Fix willy trouble gauge rendering 2024-12-31 11:15:43 +11:00
Matthew Duggan
29bc5487cd DGDS: Implement willy trouble gauge 2024-12-30 20:47:58 +11:00
Matthew Duggan
e7a181c26a DGDS: More Willy Beamish fixes
* Hook up ADS variable globals so correct scripts can run
* Hack "running" status of scripts so that delayed is not running
2024-12-27 07:32:24 +11:00
Matthew Duggan
74c8de7240 DGDS: Implement another Willy Beamish global
This controls visibility of some buttons in the inventory screen.
2024-11-19 21:01:41 +11:00
Matthew Duggan
582528e371 DGDS: Implement another Willy Beamish global 2024-11-19 21:01:41 +11:00
Matthew Duggan
e9fe7a468b DGDS: Implement some more things for Willy Beamish
Can now give the hair to the school principal near the start.
2024-11-19 21:01:41 +11:00
Filippos Karapetis
94403bd3a9 DGDS: Raise debuglevel of all debug statements to at least 1
This reduces the chatty debug output, which isn't of any use to
regular users
2024-11-16 18:44:46 +02:00
Matthew Duggan
54cafe5733 DGDS: Implement Willy Beamish type talking heads
There are a few differences in the way the talking heads work in Willy Beamish
vs HoC.  This only implements the FDD version of Willy Beamish heads. The CD
version has different data to implement animated talking heads and voice
acting.
2024-11-16 21:20:35 +11:00
Matthew Duggan
0880fd91ca DGDS: Drop non-existent global set to warning.
This happens when you right-click on the Fisto box in RotD.

This fixes #15454.
2024-11-03 21:40:23 +11:00
Matthew Duggan
50cface678 DGDS: Implement Heart of China intro natives
The full intro cinematic can now play correctly.
2024-10-27 18:25:47 +11:00
Matthew Duggan
b928f84e19 DGDS: Drop missing global back to warning
It happens in RoTD and also HoC, so this is a common enough error that we
have to just make it a warning for now.
2024-10-04 19:58:23 +10:00
Matthew Duggan
836010fa7e DGDS: Clean up dragon arcade code slightly 2024-09-22 10:01:25 +03:00
Matthew Duggan
74ebf32934 DGDS: WIP Rise of the Dragon arcade support 2024-09-22 10:01:25 +03:00
Matthew Duggan
e9f7121d7a DGDS: Implement HoC shell game 2024-07-26 21:12:08 +10:00
Filippos Karapetis
5d17b28de7 DGDS: Add another exception for a global variable in HoC scene 21 2024-07-18 03:02:02 +03:00
Filippos Karapetis
4f4426a03b DGDS: Rename HoC global 44 to sheckels (currency used in Istanbul) 2024-07-18 02:19:52 +03:00
Matthew Duggan
5050713fd9 DGDS: Add support for flood fill opcode 2024-07-17 21:37:24 +10:00
Matthew Duggan
fdfbdb8433 DGDS: Add more char swap features for HoC 2024-07-13 21:03:34 +10:00
Matthew Duggan
7c0b4971d3 DGDS: Willy Beamish loading improvements
* Add support for new type of op in Willy Beamish scene data
* Flesh out the game globals
2024-07-09 21:38:55 +10:00
Matthew Duggan
9b31f56be7 DGDS: Flesh out HoC game globals a bit more 2024-07-08 19:42:43 +10:00
Filippos Karapetis
2ad5cf099e DGDS: Add more globals for HoC 2024-07-07 17:38:53 +03:00
Filippos Karapetis
5cb955e34e DGDS: Add character-related globals for HoC 2024-07-07 13:33:27 +03:00
Matthew Duggan
76a2745922 DGDS: Small cleanups 2024-07-07 16:35:58 +10:00
Matthew Duggan
e3b13b3c62 DGDS: Remove unused variable 2024-07-07 16:35:05 +10:00
Filippos Karapetis
5da28d3549 DGDS: Add another global for HoC 2024-07-07 05:26:29 +03:00
Filippos Karapetis
d308c4cbae DGDS: Split game-specific globals 2024-07-07 03:27:39 +03:00
Filippos Karapetis
3e6f6b7fae DGDS: Rename game IDs to match the internal game names 2024-07-07 03:27:38 +03:00
Filippos Karapetis
a32db8c396 DGDS: Fix ordering of globals 2024-07-06 22:00:55 +03:00
Filippos Karapetis
998a1af483 DGDS: Add another global for HoC 2024-07-06 21:52:32 +03:00
Filippos Karapetis
d6bc7eb5cf DGDS: Add new game globals for HoC and Beamish 2024-07-06 18:15:38 +03:00
Filippos Karapetis
3a0ecdb2f7 DGDS: Add safeguards against undefined behavior in scene globals
Guard against potential cases where a scene global isn't correctly
set, and we fall back to game globals. This essentially resulted in
undefined behavior, so now we properly try to handle such cases, or
error out to detect potential game-breaking bugs
2024-07-06 17:40:05 +03:00
Matthew Duggan
fec21fa8f3 DGDS: Small cleanups to run non-interactive demos 2024-06-30 22:49:18 +03:00
Matthew Duggan
30363ff492 DGDS: Skip arcade sequences automatically 2024-06-30 22:49:18 +03:00
Matthew Duggan
b1a67aa263 DGDS: Refactor globals as some are common between games 2024-06-30 22:49:18 +03:00
Matthew Duggan
fc14318df3 DGDS: Fix game events happening at wrong times 2024-06-30 22:49:18 +03:00
Matthew Duggan
c3b0b32df5 DGDS: Implement RST (reset state) loading 2024-06-30 22:49:18 +03:00
Matthew Duggan
11c3480ffe DGDS: Fix a few small game interaction bugs 2024-06-30 22:49:18 +03:00
Matthew Duggan
46b90500b5 DGDS: Add minutes on various events 2024-06-30 22:49:18 +03:00
Matthew Duggan
affe5bf0b8 DGDS: Add initial load/save code 2024-06-30 22:49:18 +03:00
Matthew Duggan
1030ef3224 DGDS: Implement more inventory stuff 2024-06-30 22:49:18 +03:00
Matthew Duggan
87fa1a8482 DGDS: Improve clock and scene condition evaluation 2024-06-30 22:49:18 +03:00
Matthew Duggan
2f44f3f1a2 DGDS: Start to implement Inventory screen 2024-06-30 22:49:18 +03:00
Matthew Duggan
01525c55b5 DGDS: Add code to draw game clock
Always on for now, but can be easily changed to turn on and off.
2024-06-30 22:49:18 +03:00
Matthew Duggan
7164439ff2 DGDS: Make globals signed ints 2024-06-30 22:49:18 +03:00
Matthew Duggan
6112d70c1b DGDS: Add handling for game globals 2024-06-30 22:49:18 +03:00