Commit Graph
18 Commits
Author SHA1 Message Date
Matthew Duggan ac491547e4 DGDS: Switch to 15 game frames per second
But, pump mouse messages as fast as we can to make the game feel better.

This is more accurate to how the original games work.  We stop pumping if a
mouse click event happens, but that should work petty well.

This fixes a number of bugs in the way Willy Beamish was playing.
2025-01-04 16:13:17 +11:00
Matthew Duggan 70609012c8 DGDS: Fix comment typo 2025-01-04 12:30: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 49e5ccf793 DGDS: Fix opening and rendering of Willy Beamish inventory 2024-12-21 17:52:57 +11:00
Matthew Duggan 03e8c688f4 DGDS: Don't show inventory button by default in Willy Beamish
Confirmed that it does not automatically add the button to the scene like the
other games do.
2024-12-21 17:52:57 +11:00
Matthew Duggan 2e9d97ed0f DGDS: Use frame ms consistently for checks
Some game timing events are based on ms elapsed, but we were just getting the
current ms when it was evaluated.  This was not very consistent and could
potentially lead to weird problems, although in practice they were unlikely

Record the elapsed ms at the start of each frame so we can use the same
comparison point in every operation.
2024-11-08 20:03:48 +11: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
Matthew Duggan 21c2612456 DGDS: Fix scene ops on scene change
In d26ee6, I changed the scene ops to always be executed to the end even if the
scene changed - this was not correct and it breaks scene 60 (police cutscene)
in Rise of the Dragon, which stores the current day into a variable - but if
run twice will leave the day as 999 after leaving.

The correct behavior is not to abort ops *only* in the case of scene change to
inventory.  All other scene changes should still abort running scene ops.
2024-10-21 23:13:38 +11:00
Matthew Duggan e9f7121d7a DGDS: Implement HoC shell game 2024-07-26 21:12:08 +10: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 b593f026f7 DGDS: Fix small things to make china not crash 2024-06-30 22:49:18 +03:00
Matthew Duggan ccdfdb683d DGDS: Implement opening menu from script 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 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 72535a9c61 DGDS: Add inventory button
Still does nothing, but screen looks more correct now.
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