mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-14 21:59:17 +00:00
Fix for bug #2057200 - "IHNM: Invisible inventory objects"
svn-id: r34189
This commit is contained in:
parent
df5c0b6d0c
commit
c89281e4a3
@ -276,31 +276,14 @@ void Script::sfTakeObject(SCRIPTFUNC_PARAMS) {
|
|||||||
if (obj->_sceneNumber != ITE_SCENE_INV) {
|
if (obj->_sceneNumber != ITE_SCENE_INV) {
|
||||||
obj->_sceneNumber = ITE_SCENE_INV;
|
obj->_sceneNumber = ITE_SCENE_INV;
|
||||||
|
|
||||||
// WORKAROUND for a problematic object in IHNM
|
// Normally, when objects are picked up, they should always have the same
|
||||||
// There are 3 different scenes in front of the zeppelin, in Gorrister's chapter. A scene where the
|
// _spriteListResourceId as their _index value. Some don't in IHNM, so
|
||||||
// zeppelin is in the air (scene 17), a scene where it approaches Gorrister's (scene 16) and another one
|
// we fix their sprite here
|
||||||
// where it has landed (scene 18).
|
// Fixes bugs #2057200 - "IHNM: Invisible inventory objects",
|
||||||
// In two of these scenes (the "on air" and "approaching" ones), when the player uses the knife with the
|
// #1861126 - "IHNM: Crash when Gorrister cuts sheet in the mooring ring"
|
||||||
// rope, the associated script picks up object id 16392. In the "zeppelin landed" scene (scene 18), the
|
// and some incorrect objects in the IHNM demo
|
||||||
// associated script picks up object id 16390. This seems to be a script bug, as it should be id 16392,
|
if (_vm->getGameType() == GType_IHNM)
|
||||||
// like in the other two scenes, as it is the same object (the rope). Picking up object 16390 leads to an
|
obj->_spriteListResourceId = obj->_index;
|
||||||
// assertion anyway, therefore we change the problematic object (16390) to the correct one (16392) here.
|
|
||||||
// Fixes bug #1861126 - "IHNM: Crash when Gorrister cuts sheet in the mooring ring"
|
|
||||||
if (_vm->getGameType() == GType_IHNM) {
|
|
||||||
if (_vm->_scene->currentChapterNumber() == 1 && _vm->_scene->currentSceneNumber() == 18) {
|
|
||||||
if (objectId == 16390)
|
|
||||||
objectId = 16392;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WORKAROUND for two incorrect object sprites in the IHNM demo
|
|
||||||
// (the mirror and the icon in Ted's part). Set them correctly here
|
|
||||||
if (_vm->getGameId() == GID_IHNM_DEMO) {
|
|
||||||
if (objectId == 16408)
|
|
||||||
obj->_spriteListResourceId = 24;
|
|
||||||
if (objectId == 16409)
|
|
||||||
obj->_spriteListResourceId = 25;
|
|
||||||
}
|
|
||||||
|
|
||||||
_vm->_interface->addToInventory(objectId);
|
_vm->_interface->addToInventory(objectId);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user