AGI: Fix Hold-Key-Mode implementation

Hold-Key-Mode got introduced v2.425, it was simply not possible
to disable it until 3.098.
Now creating a AGI_KEY_STATIONARY event, so that it works properly

Fixes Mixed Up Mother Goose
This commit is contained in:
Martin Kiewitz 2016-02-04 22:53:15 +01:00
parent 9f7ff8351b
commit 4b7d49dcff
5 changed files with 36 additions and 14 deletions

View file

@ -252,8 +252,13 @@ void AgiEngine::processScummVMEvents() {
break;
case Common::EVENT_KEYUP:
if (_egoHoldKey)
_game.screenObjTable[SCREENOBJECTS_EGO_ENTRY].direction = 0;
if (_keyHoldMode) {
// Original AGI actually created direction events in here
// We don't do that, that's why we create a stationary event instead, which will
// result in a direction change to 0 in handleController().
keyEnqueue(AGI_KEY_STATIONARY);
}
break;
default:
break;