The counters for how many times a scene has been
visited now get incremented only when we exit it. This
makes sure the counter is not incremented when loading a
save, and makes sure dependencies that require the
sceneCount to be equal to 0 can actually execute
(e.g. nancy6 scene 2319)
Added support for the TwoDialPuzzle action record, which
is an incredibly simple puzzle with two dials that need to
be rotated in the correct position.
Fixed an issue where the alarm clock's buttons sounds
wouldn't play in nancy6, since they were using the same
channel as the sound that should play when the alarm has
been set. Also, the alarm setting sound now actually plays.
When clicking "buy clue" in the microscope puzzle, the game could crash with a division by zero in
cartesian:buyClue, depending on the initialization of the puzzle itself. Because the initialization is
random and non-deterministic, this crash would only occur very rarely
When converting DrawList to use Common::Array in the previous commit,
I couldn't see a reason to not reuse them in frameOut() and avoid
the extra heap allocations on every frame.
What was I thinking when I added this?!
This code unconditionally enters sections, with the risk
of them being active throughout the whole game, without
ever being closed. I sure love hearing the Irish Pub fiddle
player from within the ending scene with the Neo-Templars. :-)
Fixed an off-by-one error when calculating the inventory
box, which would result in some items getting their top
few pixels clipped when the inventory has grown
sufficiently full
Fixed the Dependency processing code so the rare cases
where a single ActionRecord has multiple CursorType
dependencies works correctly (plays the right "can't" sound,
removes/re-adds held items as indended). This fixes the
keymaker's return slot in nancy5.
Added a check inside OverrideLockPuzzle specific to nancy5.
This checks whether the player is holding the rubber gloves,
and leaves them on if so. This is used during the electrified
gate sequence.
We're no longer skipping over what apparently was a flag
indicating whether a particular static Overlay frame has
a hotspot or not. This fixes the rubber gloves item in
nancy5, which can now be picked up.
I say "mostly" because I still have off-by-one positioning inaccuracies,
and navigating the PSX disasm is very tiresome... I'm not even sure
we are rendering sprites in the correct position anymore... Argh!
This fixes rendering in WAGE (8-bit texts) while keeping the Richtext images
intact.
The regression was introduced in 004eba9d250071a717d8640a5eba392b97001041
We are only updating the menu bars when the screen is not fading.
This optimization restores the same code speed as previous
codebase iterations without thread-safeness whenever a menu
is interacted with during a palette fade.
This commit deals with all the copyRectToScreen calls which, during
a palette fade, can collide with screen updates. These changes are
verified with a Thread Sanitizer enabled build.
I know that the latest commits have introduced lots of locks, and
I'm going to optimize the optimizable, but first I have to reach a
no-crash point :-)