SAGA: Fixed script bug #3358007 - "IHNM: Freeze when exiting from the motor room's right door"
Thanks to digital for finding the actual script bug
This commit is contained in:
parent
e3d7606188
commit
dae9fbd9e6
1 changed files with 13 additions and 0 deletions
|
@ -26,6 +26,7 @@
|
||||||
#include "saga/gfx.h"
|
#include "saga/gfx.h"
|
||||||
#include "saga/console.h"
|
#include "saga/console.h"
|
||||||
|
|
||||||
|
#include "saga/animation.h"
|
||||||
#include "saga/script.h"
|
#include "saga/script.h"
|
||||||
#include "saga/interface.h"
|
#include "saga/interface.h"
|
||||||
#include "saga/itedata.h"
|
#include "saga/itedata.h"
|
||||||
|
@ -941,6 +942,18 @@ void Script::opSpeak(SCRIPTOP_PARAMS) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_IHNM
|
||||||
|
// WORKAROUND for script bug #3358007 in IHNM. When the zeppelin is landing
|
||||||
|
// and the player attempts to exit from the right door in room 13, the game
|
||||||
|
// scripts change to scene 5, but do not clear the cutaway that appears
|
||||||
|
// before Gorrister's speech starts, resulting in a deadlock. We do this
|
||||||
|
// manually here.
|
||||||
|
if (_vm->getGameId() == GID_IHNM && _vm->_scene->currentChapterNumber() == 1 &&
|
||||||
|
_vm->_scene->currentSceneNumber() == 5 && _vm->_anim->hasCutaway()) {
|
||||||
|
_vm->_anim->returnFromCutaway();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int stringsCount = scriptS->readByte();
|
int stringsCount = scriptS->readByte();
|
||||||
uint16 actorId = scriptS->readUint16LE();
|
uint16 actorId = scriptS->readUint16LE();
|
||||||
uint16 speechFlags = scriptS->readByte();
|
uint16 speechFlags = scriptS->readByte();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue