[Scummvm-git-logs] scummvm branch-2-8 -> 9ec216e9d71f4c4f6a5e23c25621313a9ab454af
sluicebox
noreply at scummvm.org
Wed Mar 6 19:06:31 UTC 2024
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
9ec216e9d7 AGI: Fix KQ3 Rosella staircase bug
Commit: 9ec216e9d71f4c4f6a5e23c25621313a9ab454af
https://github.com/scummvm/scummvm/commit/9ec216e9d71f4c4f6a5e23c25621313a9ab454af
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-03-06T12:06:18-07:00
Commit Message:
AGI: Fix KQ3 Rosella staircase bug
Fixes bug #11996
Changed paths:
engines/agi/op_cmd.cpp
diff --git a/engines/agi/op_cmd.cpp b/engines/agi/op_cmd.cpp
index b809c92bcdf..6291c821258 100644
--- a/engines/agi/op_cmd.cpp
+++ b/engines/agi/op_cmd.cpp
@@ -1419,6 +1419,17 @@ void cmdPositionF(AgiGame *state, AgiEngine *vm, uint8 *parameter) {
screenObj->xPos = screenObj->xPos_prev = vm->getVar(varNr1);
screenObj->yPos = screenObj->yPos_prev = vm->getVar(varNr2);
+
+ // WORKAROUND: KQ3 Rosella Staircase bug; fixed by Sierra in Amiga version 2.15.
+ // When changing rooms while Rosella follows, if ego is facing left or right
+ // but not diagonal, then Rosella is placed at the same position as ego.
+ // This can trap the player on the stairs. Sierra fixed this by placing Rosella
+ // one pixel above ego, just like when facing down or diagonal-down. Bug #11996
+ if (vm->getGameID() == GID_KQ3 && state->curLogicNr == 119 && objectNr == 15 &&
+ screenObj->yPos == state->screenObjTable[SCREENOBJECTS_EGO_ENTRY].yPos) {
+ screenObj->yPos--;
+ screenObj->yPos_prev--;
+ }
}
void cmdPositionFV1(AgiGame *state, AgiEngine *vm, uint8 *parameter) {
More information about the Scummvm-git-logs
mailing list