[Scummvm-git-logs] scummvm master -> 30bfbecc1fd96bd7ff878140c59a0391437b4b4b
sluicebox
noreply at scummvm.org
Wed Mar 6 18:22:55 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:
30bfbecc1f AGI: Fix KQ3 Rosella staircase bug
Commit: 30bfbecc1fd96bd7ff878140c59a0391437b4b4b
https://github.com/scummvm/scummvm/commit/30bfbecc1fd96bd7ff878140c59a0391437b4b4b
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-03-06T11:21:46-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 2edf5414673..53da0ace7b8 100644
--- a/engines/agi/op_cmd.cpp
+++ b/engines/agi/op_cmd.cpp
@@ -1398,6 +1398,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