King's Quest IV: The Perils of Rosella Retold

Started by DrSlash, Wed 05/05/2021 21:36:11

Previous topic - Next topic

DrSlash

Hi tag2015! Thanks for letting me know, I've provided Crimson Wizard with more information as well as the relevant room script.
Looks like it's indeed being caused by a change in behavior between different engine versions. Could you clarify which version of the game you were playing — Windows/Mac/Linux?

tag2015

Quote from: DrSlash on Tue 03/06/2025 11:29:08Hi tag2015! Thanks for letting me know, I've provided Crimson Wizard with more information as well as the relevant room script.
Looks like it's indeed being caused by a change in behavior between different engine versions. Could you clarify which version of the game you were playing — Windows/Mac/Linux?
I used the Windows 1.0.5 version for all my tests  :)

Crimson Wizard

#102
I have found a change in the engine that caused this problem. This is a "smooth walk transition" functionality added in 3.6.1. Historically each Character.Walk stopped the character before making it walk again. If character was already walking, this caused it to "stumble" for a split second, resetting any current step. The smooth transition carries current step progress over to make new walk order seamless with the previous one.

I have no idea why, but this behavior causes this game script to malfunction. The only guess that I have is that there's some "fragile" logic there that depends on characters being in exact coordinates, and maybe exact timing.

I added a backwards compatible hack in the engine. This fixes this cutscene for the game compiled prior to 3.6.1. But this won't fix it if it's compiled in 3.6.1+. A game script should be fixed instead.

The exact old behavior may be recreated (maybe) by issuing Character.Stop command before each next Walk. But I believe that fixing trigger conditions is better.

SMF spam blocked by CleanTalk