diff options
author | Strangerke | 2012-01-16 19:23:52 +0100 |
---|---|---|
committer | Strangerke | 2012-01-16 19:23:52 +0100 |
commit | 1ae18a2e2bff95cfde7cd93983b0ca3fd5f824b1 (patch) | |
tree | 409c60c7aaf63ec63a2a3fe71d65a6a836b0a2a6 /engines/tsage | |
parent | 5bb473df88c3574df1be4f16cea2e7a389ab3577 (diff) | |
download | scummvm-rg350-1ae18a2e2bff95cfde7cd93983b0ca3fd5f824b1.tar.gz scummvm-rg350-1ae18a2e2bff95cfde7cd93983b0ca3fd5f824b1.tar.bz2 scummvm-rg350-1ae18a2e2bff95cfde7cd93983b0ca3fd5f824b1.zip |
TSAGE: R2R - Scene 1550: Implement UnkObj15502::subA5CDF()
Diffstat (limited to 'engines/tsage')
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes1.cpp | 57 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes1.h | 1 |
2 files changed, 57 insertions, 1 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 3510920057..8bbf9adf85 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -2175,6 +2175,61 @@ bool Scene1550::UnkObj15502::startAction(CursorType action, Event &event) { } } +void Scene1550::UnkObj15502::subA5CDF(int strip) { + _fieldA4 = strip; + postInit(); + setup(1517, _fieldA4, 1); + switch (_fieldA4 - 1) { + case 0: + if (R2_INVENTORY.getObjectScene(R2_22) == 0) + setFrame(5); + setPosition(Common::Point(287, 85)); + break; + case 1: + if (R2_INVENTORY.getObjectScene(R2_25) == 0) + setFrame(5); + setPosition(Common::Point(248, 100)); + break; + case 2: + if (R2_INVENTORY.getObjectScene(R2_28) == 0) + setFrame(5); + setPosition(Common::Point(217, 85)); + break; + case 3: + if (R2_INVENTORY.getObjectScene(R2_23)) + setFrame(5); + setPosition(Common::Point(161, 121)); + break; + case 4: + if (R2_INVENTORY.getObjectScene(R2_27)) + setFrame(5); + setPosition(Common::Point(117, 121)); + break; + case 5: + if (R2_INVENTORY.getObjectScene(R2_17)) + setFrame(5); + setPosition(Common::Point(111, 85)); + break; + case 6: + if (R2_INVENTORY.getObjectScene(R2_45)) + setFrame(5); + setPosition(Common::Point(95, 84)); + break; + case 7: { + setup(1516, 1, 1); + setPosition(Common::Point(201, 45)); + Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; + if ((scene->_sceneMode == 1577) || (scene->_sceneMode == 1578)) + hide(); + fixPriority(92); + setDetails(1550, 70, -1, -1, 2, (SceneItem *) NULL); + } + break; + default: + break; + } +} + Scene1550::UnkObj15503::UnkObj15503() { _fieldA4 = 0; } @@ -2503,7 +2558,7 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { _field412 = 1; _actor1.postInit(); - warning("_arrUnkObj15502[7].subA5CDF()"); + _arrUnkObj15502[7].subA5CDF(8); _arrUnkObj15502[7].hide(); if (R2_GLOBALS._player._characterIndex == 1) _sceneMode = 1577; diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index aa39545288..ba146ab5a9 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -251,6 +251,7 @@ class Scene1550 : public SceneExt { void synchronize(Serializer &s); virtual bool startAction(CursorType action, Event &event); + void subA5CDF(int strip); }; class UnkObj15503 : public SceneActor { |