(in the first cave, when trying to cross the broken bridge and falling into the river, a "cut off" Herman's head could appear on screen beside the death dialog)
The animator code is a bit different here between versions. Our code was apparently based only on DOS CD (Talkie).
Shouldn't make a visible difference, but it is more correct this way. The actual bug I was trying to fix ("cut off" Herman's head appearing after restoring text background) is actually an animator code bug...
(The game restarts the last song which is stored in the savegame, but for many scenes the scene entry scripts will start the same song again right afterwards. This causes some audible "stuttering".
HOF and MR don't seem to require this fix. For these games the music restart is controlled via the last argument of enterNewScene(). If it is set to 1 then no song will be started. And that is what happens when calling from loadGameState()...
7f0d69367b297b0e45ed131e299681a5cbcec7ee introduced a fix for
fetching the palette. However, it misinterpreted the number as an
unsigned int instead of a signed int, leading to incorrect palettes
on certain other games.
including:
demos from Software Buyer's Guide (v7n1)
demo from Your Computer - Hardware and Software Buyers Guide (Australian Windows Publishing) (1997)
Neon Genesis Evangelion: EVA-00 Paper Figure
Spelunx GameTap/Steam remaster
These are emitted when the base class has virtual functions with a
non-virtual destructor (including the default implicit one created
by the compiler). The warning is enabled when -Wnon-virtual-dtor is
passed to the GCC compiler.
Was broken by 7a1ee192e2
Fixes bug #13477 AGS: Heroine's Quest intro shows portrait bug
This old commit was trying to fix a problem in old game(s), when
character was set to a loop with no frames. In such case the old
engine would seek for the first loop with frames, starting with 0.
The condition for doing so was made incorrect though: instead of
testing simply for a empty loop, it tested for frame number being
outside of the current loop's frame range.
This broke games where e.g. some walking view's loops were shorter
than the others.
A replacement is a condition that tests exactly for an empty loop
instead. The frame exceeding a loop's frame count is fixed later
along the way, so it's not a problem here.
From upstream ac73a555d737fb3f759cc7da9eeaf488a3bdcb2f