TSAGE: Fix double-Miranda bug when Rock is drunk (scene 4100)

This commit is contained in:
strangerke 2011-04-20 00:00:07 +02:00
parent 3897e6f5e0
commit ecf5d62a10
2 changed files with 22 additions and 22 deletions

View File

@ -2420,14 +2420,14 @@ void Scene4100::Action5::signal() {
case 1:
if (_globals->_inventory._ladder._sceneNumber == 4100) {
_globals->_inventory._ladder._sceneNumber = 1;
scene->_hotspot6.remove();
scene->_ladder.remove();
} else {
scene->_hotspot6.postInit();
scene->_hotspot6.setVisage(4101);
scene->_hotspot6.setPosition(Common::Point(49, 144));
scene->_ladder.postInit();
scene->_ladder.setVisage(4101);
scene->_ladder.setPosition(Common::Point(49, 144));
_globals->_inventory._ladder._sceneNumber = 4100;
_globals->_sceneItems.push_front(&scene->_hotspot6);
_globals->_sceneItems.push_front(&scene->_ladder);
}
_globals->_player.enableControl();
@ -2511,7 +2511,7 @@ void Scene4100::Hotspot2::doAction(int action) {
}
}
void Scene4100::Hotspot5::doAction(int action) {
void Scene4100::Miranda::doAction(int action) {
Scene4100 *scene = (Scene4100 *)_globals->_sceneManager._scene;
switch (action) {
@ -2528,7 +2528,7 @@ void Scene4100::Hotspot5::doAction(int action) {
}
}
void Scene4100::Hotspot6::doAction(int action) {
void Scene4100::Ladder::doAction(int action) {
Scene4100 *scene = (Scene4100 *)_globals->_sceneManager._scene;
switch (action) {
@ -2621,26 +2621,26 @@ void Scene4100::postInit(SceneObjectList *OwnerList) {
_hotspot4.setStrip2(2);
_hotspot4.setPosition(Common::Point(152, 167));
if (_globals->getFlag(36)) {
if (!_globals->getFlag(36)) {
_hotspot1.setVisage(4105);
_hotspot1.setStrip(1);
_hotspot1.setFrame(4);
} else if (!_globals->getFlag(43)) {
_hotspot5.postInit();
_hotspot5.setVisage(4102);
_hotspot5.setStrip2(3);
_hotspot5.setFrame(2);
_hotspot5.setPosition(Common::Point(65, 188));
_miranda.postInit();
_miranda.setVisage(4102);
_miranda.setStrip2(3);
_miranda.setFrame(2);
_miranda.setPosition(Common::Point(65, 188));
_globals->_sceneItems.push_back(&_hotspot5);
_globals->_sceneItems.push_back(&_miranda);
}
if (_globals->_inventory._ladder._sceneNumber == 4100) {
_hotspot6.postInit();
_hotspot6.setVisage(4101);
_hotspot6.setPosition(Common::Point(49, 144));
_ladder.postInit();
_ladder.setVisage(4101);
_ladder.setPosition(Common::Point(49, 144));
_globals->_sceneItems.push_back(&_hotspot6);
_globals->_sceneItems.push_back(&_ladder);
}
_hotspot14.setBounds(Rect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT));

View File

@ -395,11 +395,11 @@ class Scene4100 : public Scene {
public:
virtual void doAction(int action);
};
class Hotspot5 : public SceneObject {
class Miranda : public SceneObject {
public:
virtual void doAction(int action);
};
class Hotspot6 : public SceneObject {
class Ladder : public SceneObject {
public:
virtual void doAction(int action);
};
@ -425,8 +425,8 @@ public:
Hotspot1 _hotspot1;
Hotspot2 _hotspot2;
DisplayHotspot _hotspot3, _hotspot4;
Hotspot5 _hotspot5;
Hotspot6 _hotspot6;
Miranda _miranda;
Ladder _ladder;
DisplayHotspot _hotspot7, _hotspot8, _hotspot9, _hotspot10;
DisplayHotspot _hotspot11, _hotspot12, _hotspot13;
Hotspot14 _hotspot14;