Commit Graph
55 Commits
Author SHA1 Message Date
Matthew Duggan 2d568a8e49 DGDS: Call scene mouse ops in default path for inventory
If there is no inventory-specific mouse action, fall back to the scene mouse
action.

This is a regression from other mouse behavior fixes that broke taking items
away from lucky (in HoC) or Blade (in Dragon).  This fixes #15851.
2025-04-06 17:50:15 +10:00
Matthew Duggan 5462978ddf DGDS: Add detection for Willy Beamish French FDD
This fixes #15822.
2025-03-25 20:28:22 +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 ef7e1f034a DGDS: Fix dropping in inventory for Willy Beamish 2025-03-02 08:02:31 +11:00
Matthew Duggan b344d053a5 DGDS: Fixes for willy beamish interactions
Willy handles dragging of items a bit differently to the other games, try to be
a bit more like the original.  Specifically:
* Drag-drop does not need the mouse to be held down
* Don't reopen the inventory if that's where we dragged an item from

Also fix some small crashes in an older Willy Beamish demo.
2025-01-23 19:50:48 +11:00
Matthew Duggan 3a5a7c88a5 DGDS: Avoid going to blank page in inventory 2025-01-04 16:20:14 +11:00
Matthew Duggan 408127ff35 DGDS: Select correct item from inventory page 2 2025-01-04 12:30:15 +11:00
Matthew Duggan 631447e36b DGDS: More Willy Beamish fixes
* Swap between look and interact mode with right mouse
* Implement credits
* Mostly fix graphical glitch in intro
2024-12-31 19:02:30 +11:00
Matthew Duggan 854c2c4665 DGDS: Fix inventory wrapping for Willy Beamish 2024-12-30 20:04:15 +11:00
Matthew Duggan 14e119bb78 DGDS: Misc fixes for Willy Beamish
* Play sample should be one-shot (don't replay every frame)
* TTM op 0020 should save to background differently (fixes double-drawing)
* Disabled areas still change mouse cursor and hold clicks until enabled,
  properly fixes eg exiting detention at the start
* Fix the way "used" sequences are calculated so Willy can enter his house,
  removing the previous hack
* Refactor scene condition check to separate file
* Small const correctness improvements
2024-12-30 20:04:15 +11:00
Matthew Duggan 2f0c00cabf DGDS: Fix dragging items into/out-of inventory in Beamish 2024-12-30 20:04:15 +11:00
Matthew Duggan 3db6e1344b DGDS: Small rendering fixes for Willy Beamish 2024-12-24 14:08:42 +11:00
Matthew Duggan 49e5ccf793 DGDS: Fix opening and rendering of Willy Beamish inventory 2024-12-21 17:52:57 +11:00
Matthew Duggan 6780a9227a DGDS: Fix rendering issues in HoC inventory
* Fix header location, color, border
* Properly filter items when counting if we need to show arrows

The arrow buttons were being shown when the total held items filled the
inventory, not when the current character's items filled it.
2024-12-05 19:59:09 +11:00
Torbjörn Andersson d43c128aac DGDS: Add missing break 2024-11-19 18:18:54 +01: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
Filippos Karapetis 65239032a5 DGDS: Replace numeric screen width/height values with defines 2024-11-07 22:13:52 +02:00
Matthew Duggan 4312a96913 DGDS: Update various strings for German RotD
Some hard-coded strings needed their own version for the German version of Rise
of the Dragon.

This fixes #15456.
2024-11-05 22:19:10 +11:00
Hubert Maier ef3b6c5fbb JANITORIAL: DGDS: Fix typos in comments/warnings 2024-08-01 20:16:37 +03:00
Matthew Duggan f759dbb0b8 DGDS: Implement some small Willy Beamish features 2024-07-27 19:31:11 +10:00
Matthew Duggan e9f7121d7a DGDS: Implement HoC shell game 2024-07-26 21:12:08 +10:00
Matthew Duggan 403b55c5ba DGDS: Add support for both-button ops
This allows you to shoot the snakes in HoC.
2024-07-21 19:58:38 +10:00
Matthew Duggan d472339369 DGDS: Clear background when opening HoC inventory zoom
This is also done in the original because the zoom box uses a different palette
to the game.
2024-07-20 13:56:04 +10:00
Matthew Duggan dbb1b856ce DGDS: Implement HoC inventory give-to and swap-char buttons
A little closer to the original rendering, still need to fix the buttons
themselves.
2024-07-20 13:56:04 +10:00
Matthew Duggan cb5eb5b661 DGDS: Improve inventory rendering for HoC 2024-07-20 10:29:24 +10:00
Matthew Duggan 2bd84e77bc DGDS: Small rendering fixes to be more like original
Thanks to @eriktorbjorn for noticing the inconsistencies and suggesting fixes.

* Adjust X position of timestamp in RotD inventory
* Fix y offset of type 2 dialogs
* Make inventory button visible in background after opening inventory
2024-07-20 09:44:20 +10:00
Filippos Karapetis 9452bb185e DGDS: Fix typo 2024-07-13 11:36:52 +03:00
Filippos Karapetis 0137a6f9c9 DGDS: Add support for HoC's different inventories per character
Thanks to @mduggan for his help on this
2024-07-13 11:34:59 +03:00
Matthew Duggan eeecc8dc5b DGDS: Add various heart of china features
Most dialogs now render correctly and the game is partly playable.  Still a
bunch of work to do for inventory and menus to render correctly.

Added loading for TDS (talking head) data structures too, but they are not yet
used.
2024-07-07 16:15:30 +10:00
Filippos Karapetis 3e6f6b7fae DGDS: Rename game IDs to match the internal game names 2024-07-07 03:27:38 +03:00
Matthew Duggan a3c17eaa35 DGDS: Add Willy Beamish demo and fix to make it run 2024-07-03 09:12:09 +10:00
Matthew Duggan 7a77af7160 DGDS: Fix many small issues identified by Coverity 2024-07-01 19:32:57 +10:00
Matthew Duggan 5f63c5b1af DGDS: Fix parsing for Willy Beamish
The game now starts to play the intro.  Still a few new unknown values in the
various structures.
2024-06-30 22:49:18 +03:00
Matthew Duggan ffef4790f4 DGDS: Fix font, music, and rendering slightly in SQ5 demo 2024-06-30 22:49:18 +03:00
Matthew Duggan f7baf88cf2 DGDS: Cleanups, remove excessive casts 2024-06-30 22:49:18 +03:00
Matthew Duggan 7582100484 DGDS: Fix inventory right-click zoom 2024-06-30 22:49:18 +03:00
Matthew Duggan 25f1fa5604 DGDS: Fix some msvc errors 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 15f8a90b31 DGDS: Refactor to split into smaller files
Split TTM and ADS logic into their own files, and separate palette management
from image loading.

Also refactor scene types a bit to be more objecty.
2024-06-30 22:49:18 +03:00
Matthew Duggan 2e408a73c3 DGDS: Fix msvc build 2024-06-30 22:49:18 +03:00
Matthew Duggan dddb5097cf DGDS: Add sq5 demo detection 2024-06-30 22:49:18 +03:00
Matthew Duggan 38185598b6 DGDS: Remove foreground buffer
With this change, the rendering now seems to closely match the original in most
situations.
2024-06-30 22:49:18 +03:00
Matthew Duggan 723761ec2f DGDS: Fix some inventory interactions 2024-06-30 22:49:18 +03:00
Matthew Duggan c79b6d8982 DGDS: Fix dragging in inventory a bit 2024-06-30 22:49:18 +03:00
Matthew Duggan 48ce6e938b DGDS: Fix some drag-drop, dialog, and resource loading issues 2024-06-30 22:49:18 +03:00
Matthew Duggan c028ebf8ce DGDS: Fix dragging out of inventory 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 272827e9d4 DGDS: support for multi-ads, inventory now sorta works 2024-06-30 22:49:18 +03:00
Matthew Duggan c219ffd53e DGDS: Add object-object interactions 2024-06-30 22:49:18 +03:00
Matthew Duggan 1030ef3224 DGDS: Implement more inventory stuff 2024-06-30 22:49:18 +03:00