diff options
Diffstat (limited to 'engines/tsage')
-rw-r--r-- | engines/tsage/events.cpp | 5 | ||||
-rw-r--r-- | engines/tsage/events.h | 1 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_logic.cpp | 207 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_logic.h | 100 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes2.cpp | 242 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes2.h | 52 |
6 files changed, 309 insertions, 298 deletions
diff --git a/engines/tsage/events.cpp b/engines/tsage/events.cpp index ac6ce0bf8e..d2d8464763 100644 --- a/engines/tsage/events.cpp +++ b/engines/tsage/events.cpp @@ -271,6 +271,11 @@ void EventsClass::setCursor(CursorType cursorType) { _currentCursor = cursorType; cursor = g_resourceManager->getSubResource(5, 1, cursorType - R2CURSORS_START, &size); break; + + case R2_CURSOR_ROPE: + _currentCursor = cursorType; + cursor = g_resourceManager->getSubResource(5, 4, 1, &size); + break; } // Decode the cursor diff --git a/engines/tsage/events.h b/engines/tsage/events.h index a1e9da3477..9ef4813e47 100644 --- a/engines/tsage/events.h +++ b/engines/tsage/events.h @@ -108,6 +108,7 @@ enum CursorType { EXITCURSOR_NE = 0x800D, EXITCURSOR_SE = 0x800E, EXITCURSOR_SW = 0x800F, EXITCURSOR_NW = 0x8010, SHADECURSOR_UP = 0x8011, SHADECURSOR_DOWN = 0x8012, SHADECURSOR_HAND = 0x8013, R2_CURSOR_20 = 0x8014, R2_CURSOR_21 = 0x8015, R2_CURSOR_22 = 0x8016, R2_CURSOR_23 = 0x8017, + R2_CURSOR_ROPE = 0x8025, // Cursors CURSOR_WALK = 0x100, CURSOR_LOOK = 0x200, CURSOR_700 = 700, CURSOR_USE = 0x400, CURSOR_TALK = 0x800, diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp index 9c50d810fc..a607ebe6a4 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.cpp +++ b/engines/tsage/ringworld2/ringworld2_logic.cpp @@ -376,6 +376,10 @@ void SceneExt::remove() { _sceneAreas.clear(); Scene::remove(); R2_GLOBALS._uiElements._active = true; + + if (R2_GLOBALS._events.getCursor() >= EXITCURSOR_N && + R2_GLOBALS._events.getCursor() <= SHADECURSOR_DOWN) + R2_GLOBALS._events.setCursor(CURSOR_WALK); } void SceneExt::process(Event &event) { @@ -778,116 +782,115 @@ bool DisplayObject::performAction(int action) { Ringworld2InvObjectList::Ringworld2InvObjectList(): _none(1, 1), - _inv1(1, 2), - _inv2(1, 3), + _optoDisk(1, 2), + _reader(1, 3), _negatorGun(1, 4), _steppingDisks(1, 5), - _inv5(1, 6), - _inv6(1, 7), - _inv7(1, 8), - _inv8(1, 9), - _inv9(1, 10), - _inv10(1, 11), - _inv11(1, 12), - _inv12(1, 13), - _inv13(1, 14), - _inv14(1, 15), - _inv15(1, 16), - _inv16(1, 17), - _inv17(2, 2), - _inv18(2, 3), - _inv19(2, 4), - _inv20(2, 5), - _inv21(2, 5), - _inv22(2, 6), - _inv23(2, 7), - _inv24(2, 8), - _inv25(2, 9), - _inv26(2, 10), - _inv27(2, 11), - _inv28(2, 12), - _inv29(2, 13), - _inv30(2, 14), - _inv31(2, 15), - _inv32(2, 16), - _inv33(3, 2), - _inv34(3, 3), - _inv35(3, 4), - _inv36(3, 5), - _inv37(3, 6), - _inv38(3, 7), - _inv39(1, 10), - _inv40(3, 8), - _inv41(3, 9), - _inv42(3, 10), - _inv43(3, 11), - _inv44(3, 12), - _inv45(3, 13), - _inv46(3, 17), - _inv47(3, 14), - _inv48(3, 14), - _inv49(3, 15), - _inv50(3, 15), - _inv51(3, 17), - _inv52(4, 2) { + _attractorUnit(1, 6), + _sensorProbe(1, 7), + _sonicStunner(1, 8), + _cableHarness(1, 9), + _comScanner(1, 10), + _spentPowerCapsule(1, 11), // 10 + _chargedPowerCapsule(1, 12), + _aerosol(1, 13), + _remoteControl(1, 14), + _opticalFibre(1, 15), + _clamp(1, 16), + _attractorHarness(1, 17), + _fuelCell(2, 2), + _gyroscope(2, 3), + _airbag(2, 4), + _rebreatherTank(2, 5), // 20 + _reserveTank(2, 5), + _guidanceModule(2, 6), + _thrusterValve(2, 7), + _balloonBackpack(2, 8), + _radarMechanism(2, 9), + _joystick(2, 10), + _ignitor(2, 11), + _diagnosticsDisplay(2, 12), + _glassDome(2, 13), + _wickLamp(2, 14), // 30 + _scrithKey(2, 15), + _tannerMask(2, 16), + _pureGrainAlcohol(3, 2), + _blueSapphire(3, 3), + _ancientScrolls(3, 4), + _flute(3, 5), + _gunpowder(3, 6), + _unused(3, 7), + _comScanner2(1, 10), + _superconductorWire(3, 8), // 40 + _pillow(3, 9), + _foodTray(3, 10), + _laserHacksaw(3, 11), + _photonStunner(3, 12), + _battery(3, 13), + _soakedFaceMask(2, 17), + _lightBulb(3, 14), + _alcoholLamp1(2, 14), + _alcoholLamp2(3, 15), + _alocholLamp3(3, 15), // 50 + _brokenDisplay(3, 17), + _toolbox(4, 2) { // Add the items to the list _itemList.push_back(&_none); - _itemList.push_back(&_inv1); - _itemList.push_back(&_inv2); + _itemList.push_back(&_optoDisk); + _itemList.push_back(&_reader); _itemList.push_back(&_negatorGun); _itemList.push_back(&_steppingDisks); - _itemList.push_back(&_inv5); - _itemList.push_back(&_inv6); - _itemList.push_back(&_inv7); - _itemList.push_back(&_inv8); - _itemList.push_back(&_inv9); - _itemList.push_back(&_inv10); - _itemList.push_back(&_inv11); - _itemList.push_back(&_inv12); - _itemList.push_back(&_inv13); - _itemList.push_back(&_inv14); - _itemList.push_back(&_inv15); - _itemList.push_back(&_inv16); - _itemList.push_back(&_inv17); - _itemList.push_back(&_inv18); - _itemList.push_back(&_inv19); - _itemList.push_back(&_inv20); - _itemList.push_back(&_inv21); - _itemList.push_back(&_inv22); - _itemList.push_back(&_inv23); - _itemList.push_back(&_inv24); - _itemList.push_back(&_inv25); - _itemList.push_back(&_inv26); - _itemList.push_back(&_inv27); - _itemList.push_back(&_inv28); - _itemList.push_back(&_inv29); - _itemList.push_back(&_inv30); - _itemList.push_back(&_inv31); - _itemList.push_back(&_inv32); - _itemList.push_back(&_inv33); - _itemList.push_back(&_inv34); - _itemList.push_back(&_inv35); - _itemList.push_back(&_inv36); - _itemList.push_back(&_inv37); - _itemList.push_back(&_inv38); - _itemList.push_back(&_inv39); - _itemList.push_back(&_inv40); - _itemList.push_back(&_inv41); - _itemList.push_back(&_inv42); - _itemList.push_back(&_inv43); - _itemList.push_back(&_inv44); - _itemList.push_back(&_inv45); - _itemList.push_back(&_inv46); - _itemList.push_back(&_inv47); - _itemList.push_back(&_inv48); - _itemList.push_back(&_inv49); - _itemList.push_back(&_inv50); - _itemList.push_back(&_inv51); - _itemList.push_back(&_inv52); + _itemList.push_back(&_attractorUnit); + _itemList.push_back(&_sensorProbe); + _itemList.push_back(&_sonicStunner); + _itemList.push_back(&_cableHarness); + _itemList.push_back(&_comScanner); + _itemList.push_back(&_spentPowerCapsule); // 10 + _itemList.push_back(&_chargedPowerCapsule); + _itemList.push_back(&_aerosol); + _itemList.push_back(&_remoteControl); + _itemList.push_back(&_opticalFibre); + _itemList.push_back(&_clamp); + _itemList.push_back(&_attractorHarness); + _itemList.push_back(&_fuelCell); + _itemList.push_back(&_gyroscope); + _itemList.push_back(&_airbag); + _itemList.push_back(&_rebreatherTank); // 20 + _itemList.push_back(&_reserveTank); + _itemList.push_back(&_guidanceModule); + _itemList.push_back(&_thrusterValve); + _itemList.push_back(&_balloonBackpack); + _itemList.push_back(&_radarMechanism); + _itemList.push_back(&_joystick); + _itemList.push_back(&_ignitor); + _itemList.push_back(&_diagnosticsDisplay); + _itemList.push_back(&_glassDome); + _itemList.push_back(&_wickLamp); // 30 + _itemList.push_back(&_scrithKey); + _itemList.push_back(&_tannerMask); + _itemList.push_back(&_pureGrainAlcohol); + _itemList.push_back(&_blueSapphire); + _itemList.push_back(&_ancientScrolls); + _itemList.push_back(&_flute); + _itemList.push_back(&_gunpowder); + _itemList.push_back(&_unused); + _itemList.push_back(&_comScanner2); + _itemList.push_back(&_superconductorWire); // 40 + _itemList.push_back(&_pillow); + _itemList.push_back(&_foodTray); + _itemList.push_back(&_laserHacksaw); + _itemList.push_back(&_photonStunner); + _itemList.push_back(&_battery); + _itemList.push_back(&_soakedFaceMask); + _itemList.push_back(&_lightBulb); + _itemList.push_back(&_alcoholLamp1); + _itemList.push_back(&_alcoholLamp2); + _itemList.push_back(&_alocholLamp3); // 50 + _itemList.push_back(&_brokenDisplay); + _itemList.push_back(&_toolbox); _selectedItem = NULL; - } void Ringworld2InvObjectList::reset() { @@ -1061,7 +1064,7 @@ bool Ringworld2InvObjectList::SelectItem(int objectNumber) { currentItem == R2_PURE_GRAIN_ALCOHOL) { R2_INVENTORY.setObjectScene(R2_TANNER_MASK, 0); R2_INVENTORY.setObjectScene(R2_PURE_GRAIN_ALCOHOL, 0); - R2_INVENTORY.setObjectScene(R2_SOAKED_FACEMASK, 1); + R2_INVENTORY.setObjectScene(R2_SOAKED_FACEMASK, R2_SEEKER); } else { selectDefault(objectNumber); } diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h index c7e36fc5f0..b3d501935b 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.h +++ b/engines/tsage/ringworld2/ringworld2_logic.h @@ -163,58 +163,58 @@ private: static void selectDefault(int obectNumber); public: InvObject _none; - InvObject _inv1; - InvObject _inv2; + InvObject _optoDisk; + InvObject _reader; InvObject _negatorGun; InvObject _steppingDisks; - InvObject _inv5; - InvObject _inv6; - InvObject _inv7; - InvObject _inv8; - InvObject _inv9; - InvObject _inv10; - InvObject _inv11; - InvObject _inv12; - InvObject _inv13; - InvObject _inv14; - InvObject _inv15; - InvObject _inv16; - InvObject _inv17; - InvObject _inv18; - InvObject _inv19; - InvObject _inv20; - InvObject _inv21; - InvObject _inv22; - InvObject _inv23; - InvObject _inv24; - InvObject _inv25; - InvObject _inv26; - InvObject _inv27; - InvObject _inv28; - InvObject _inv29; - InvObject _inv30; - InvObject _inv31; - InvObject _inv32; - InvObject _inv33; - InvObject _inv34; - InvObject _inv35; - InvObject _inv36; - InvObject _inv37; - InvObject _inv38; - InvObject _inv39; - InvObject _inv40; - InvObject _inv41; - InvObject _inv42; - InvObject _inv43; - InvObject _inv44; - InvObject _inv45; - InvObject _inv46; - InvObject _inv47; - InvObject _inv48; - InvObject _inv49; - InvObject _inv50; - InvObject _inv51; - InvObject _inv52; + InvObject _attractorUnit; + InvObject _sensorProbe; + InvObject _sonicStunner; + InvObject _cableHarness; + InvObject _comScanner; + InvObject _spentPowerCapsule; // 10 + InvObject _chargedPowerCapsule; + InvObject _aerosol; + InvObject _remoteControl; + InvObject _opticalFibre; + InvObject _clamp; + InvObject _attractorHarness; + InvObject _fuelCell; + InvObject _gyroscope; + InvObject _airbag; + InvObject _rebreatherTank; // 20 + InvObject _reserveTank; + InvObject _guidanceModule; + InvObject _thrusterValve; + InvObject _balloonBackpack; + InvObject _radarMechanism; + InvObject _joystick; + InvObject _ignitor; + InvObject _diagnosticsDisplay; + InvObject _glassDome; + InvObject _wickLamp; // 30 + InvObject _scrithKey; + InvObject _tannerMask; + InvObject _pureGrainAlcohol; + InvObject _blueSapphire; + InvObject _ancientScrolls; + InvObject _flute; + InvObject _gunpowder; + InvObject _unused; + InvObject _comScanner2; + InvObject _superconductorWire; // 40 + InvObject _pillow; + InvObject _foodTray; + InvObject _laserHacksaw; + InvObject _photonStunner; + InvObject _battery; + InvObject _soakedFaceMask; + InvObject _lightBulb; + InvObject _alcoholLamp1; + InvObject _alcoholLamp2; + InvObject _alocholLamp3; // 50 + InvObject _brokenDisplay; + InvObject _toolbox; Ringworld2InvObjectList(); void reset(); diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index a8fc6eae49..cc50de0cf5 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -349,9 +349,9 @@ void Scene2000::initExits() { break; case 23: _northExit._enabled = true; - _northExit._bounds.set(108, 83, 128, 184); + _northExit._bounds.set(108, 83, 184, 125); _northExit.setDest(Common::Point(135, 129)); - _northExit._cursorNum = CURSOR_INVALID; + _northExit._cursorNum = EXITCURSOR_NE; loadScene(2275); R2_GLOBALS._walkRegions.load(2000); if (!_exitingFlag) @@ -1280,20 +1280,20 @@ void Scene2400::signal() { } /*-------------------------------------------------------------------------- - * Scene 2425 - Spill Mountains: + * Scene 2425 - Spill Mountains: The Hall Of Records * *--------------------------------------------------------------------------*/ -bool Scene2425::Item1::startAction(CursorType action, Event &event) { +bool Scene2425::RopeDest1::startAction(CursorType action, Event &event) { Scene2425 *scene = (Scene2425 *)R2_GLOBALS._sceneManager._scene; - if ((action == R2_GUNPOWDER) && (!R2_GLOBALS.getFlag(84))) { + if ((action == R2_CURSOR_ROPE) && (!R2_GLOBALS.getFlag(84))) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 2426; - scene->setAction(&scene->_sequenceManager, scene, 2426, &R2_GLOBALS._player, &scene->_actor1, NULL); + scene->setAction(&scene->_sequenceManager, scene, 2426, &R2_GLOBALS._player, &scene->_rope, NULL); R2_GLOBALS.setFlag(84); return true; - } else if (action == R2_GUNPOWDER) { + } else if (action == R2_CURSOR_ROPE) { R2_GLOBALS._events.setCursor(CURSOR_USE); R2_GLOBALS._player.enableControl(CURSOR_USE); return NamedHotspot::startAction(CURSOR_USE, event); @@ -1301,16 +1301,16 @@ bool Scene2425::Item1::startAction(CursorType action, Event &event) { return NamedHotspot::startAction(action, event); } -bool Scene2425::Item2::startAction(CursorType action, Event &event) { +bool Scene2425::RopeDest2::startAction(CursorType action, Event &event) { Scene2425 *scene = (Scene2425 *)R2_GLOBALS._sceneManager._scene; - if ((action == R2_GUNPOWDER) && (R2_GLOBALS.getFlag(84))) { + if ((action == R2_CURSOR_ROPE) && (R2_GLOBALS.getFlag(84))) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 2427; - scene->setAction(&scene->_sequenceManager, scene, 2427, &R2_GLOBALS._player, &scene->_actor1, NULL); + scene->setAction(&scene->_sequenceManager, scene, 2427, &R2_GLOBALS._player, &scene->_rope, NULL); R2_GLOBALS.clearFlag(84); return true; - } else if (action == R2_GUNPOWDER) { + } else if (action == R2_CURSOR_ROPE) { R2_GLOBALS._events.setCursor(CURSOR_USE); R2_GLOBALS._player.enableControl(CURSOR_USE); return NamedHotspot::startAction(CURSOR_USE, event); @@ -1318,27 +1318,27 @@ bool Scene2425::Item2::startAction(CursorType action, Event &event) { return NamedHotspot::startAction(action, event); } -bool Scene2425::Item3::startAction(CursorType action, Event &event) { +bool Scene2425::Crevasse::startAction(CursorType action, Event &event) { Scene2425 *scene = (Scene2425 *)R2_GLOBALS._sceneManager._scene; - if (action != R2_GUNPOWDER) + if (action != R2_CURSOR_ROPE) return NamedHotspot::startAction(action, event); else { R2_GLOBALS._player.disableControl(); if (R2_GLOBALS.getFlag(84)) { scene->_sceneMode = 20; - scene->setAction(&scene->_sequenceManager, scene, 2427, &R2_GLOBALS._player, &scene->_actor1, NULL); + scene->setAction(&scene->_sequenceManager, scene, 2427, &R2_GLOBALS._player, &scene->_rope, NULL); R2_GLOBALS.clearFlag(84); } else { scene->_sceneMode = 2425; - scene->setAction(&scene->_sequenceManager, scene, 2425, &R2_GLOBALS._player, &scene->_actor1, NULL); + scene->setAction(&scene->_sequenceManager, scene, 2425, &R2_GLOBALS._player, &scene->_rope, NULL); } return true; } } bool Scene2425::Item4::startAction(CursorType action, Event &event) { - if (action != R2_GUNPOWDER) + if (action != R2_CURSOR_ROPE) return NamedHotspot::startAction(action, event); else { R2_GLOBALS._events.setCursor(CURSOR_USE); @@ -1347,22 +1347,22 @@ bool Scene2425::Item4::startAction(CursorType action, Event &event) { } } -bool Scene2425::Actor1::startAction(CursorType action, Event &event) { - if (action == R2_STEPPING_DISKS) { +bool Scene2425::Rope::startAction(CursorType action, Event &event) { + if (action == CURSOR_USE) { if (R2_GLOBALS._player._characterIndex == R2_SEEKER) { - R2_GLOBALS._events.setCursor(R2_GUNPOWDER); + R2_GLOBALS._events.setCursor(R2_CURSOR_ROPE); return true; } else { return SceneActor::startAction(action, event); } - } else if (R2_GLOBALS._events.getCursor() == R2_GUNPOWDER) + } else if (R2_GLOBALS._events.getCursor() == R2_CURSOR_ROPE) return false; else return SceneActor::startAction(action, event); } -bool Scene2425::Actor2::startAction(CursorType action, Event &event) { - if (action != R2_GUNPOWDER) +bool Scene2425::Pictographs::startAction(CursorType action, Event &event) { + if (action != R2_CURSOR_ROPE) return SceneActor::startAction(action, event); else { R2_GLOBALS._events.setCursor(CURSOR_USE); @@ -1407,39 +1407,39 @@ void Scene2425::postInit(SceneObjectList *OwnerList) { } if (R2_GLOBALS._player._characterScene[R2_QUINN] == R2_GLOBALS._player._characterScene[R2_SEEKER]) { - _actor2.postInit(); + _pictographs1.postInit(); if (R2_GLOBALS._player._characterIndex == 1) { - _actor2.setup(20, 5, 1); - _actor2.setDetails(9002, 0, 4, 3, 1, (SceneItem *)NULL); + _pictographs1.setup(20, 5, 1); + _pictographs1.setDetails(9002, 0, 4, 3, 1, (SceneItem *)NULL); } else { - _actor2.setup(2008, 5, 1); - _actor2.setDetails(9001, 0, 5, 3, 1, (SceneItem *)NULL); + _pictographs1.setup(2008, 5, 1); + _pictographs1.setDetails(9001, 0, 5, 3, 1, (SceneItem *)NULL); } - _actor2.setPosition(Common::Point(250, 185)); + _pictographs1.setPosition(Common::Point(250, 185)); } - _actor1.postInit(); + _rope.postInit(); if (R2_GLOBALS._sceneManager._previousScene == 2455) - _actor1.setup(2426, 1, 1); + _rope.setup(2426, 1, 1); else - _actor1.setup(2426, 1, 2); + _rope.setup(2426, 1, 2); - _actor1.setPosition(Common::Point(290, 9)); - _actor1.fixPriority(20); - _actor1.setDetails(2455, 12, -1, -1, 1, (SceneItem *)NULL); - _item1.setDetails(Rect(225, 52, 248, 65), 2425, -1, -1, -1, 1, NULL); - _item2.setDetails(Rect(292, 81, 316, 94), 2425, -1, -1, -1, 1, NULL); + _rope.setPosition(Common::Point(290, 9)); + _rope.fixPriority(20); + _rope.setDetails(2455, 12, -1, -1, 1, (SceneItem *)NULL); + _ropeDest1.setDetails(Rect(225, 52, 248, 65), 2425, -1, -1, -1, 1, NULL); + _ropeDest2.setDetails(Rect(292, 81, 316, 94), 2425, -1, -1, -1, 1, NULL); // CHECKME: SceneActor using a SceneItem function?? -// _actor3.setDetails(11, 2425, 3, -1, 6); - _actor3._sceneRegionId = 11; - _actor3._resNum = 2425; - _actor3._lookLineNum = 3; - _actor3._talkLineNum = -1; - _actor3._useLineNum = 6; - g_globals->_sceneItems.push_back(&_actor3); - - _item3.setDetails(12, 2425, 7, -1, 9); +// _pictographs2.setDetails(11, 2425, 3, -1, 6); + _pictographs2._sceneRegionId = 11; + _pictographs2._resNum = 2425; + _pictographs2._lookLineNum = 3; + _pictographs2._talkLineNum = -1; + _pictographs2._useLineNum = 6; + g_globals->_sceneItems.push_back(&_pictographs2); + + _crevasse.setDetails(12, 2425, 7, -1, 9); _item4.setDetails(Rect(0, 0, 320, 200), 2425, 0, -1, -1, 1, NULL); R2_GLOBALS._player.disableControl(); @@ -1460,7 +1460,7 @@ void Scene2425::postInit(SceneObjectList *OwnerList) { break; case 2455: _sceneMode = 2428; - setAction(&_sequenceManager, this, 2428, &R2_GLOBALS._player, &_actor1, NULL); + setAction(&_sequenceManager, this, 2428, &R2_GLOBALS._player, &_rope, NULL); break; default: R2_GLOBALS._player.setPosition(Common::Point(280, 150)); @@ -1483,7 +1483,7 @@ void Scene2425::signal() { break; case 20: _sceneMode = 2425; - setAction(&_sequenceManager, this, 2425, &R2_GLOBALS._player, &_actor1, NULL); + setAction(&_sequenceManager, this, 2425, &R2_GLOBALS._player, &_rope, NULL); break; case 2425: g_globals->_sceneManager.changeScene(2455); @@ -2223,18 +2223,18 @@ void Scene2450::signal() { * *--------------------------------------------------------------------------*/ -bool Scene2455::Actor1::startAction(CursorType action, Event &event) { +bool Scene2455::Lamp::startAction(CursorType action, Event &event) { Scene2455 *scene = (Scene2455 *)R2_GLOBALS._sceneManager._scene; if (action == R2_GLASS_DOME) { if ((R2_INVENTORY.getObjectScene(R2_ALCOHOL_LAMP_2) == 2455) || (R2_INVENTORY.getObjectScene(R2_ALCOHOL_LAMP_3) == 2455)) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 2458; - scene->_actor2._lookLineNum = 9; - scene->_actor1.remove(); - scene->_actor3.postInit(); - scene->_actor3.setDetails(2455, 16, 1, -1, 2, (SceneItem *)NULL); - scene->setAction(&scene->_sequenceManager, scene, 2458, &R2_GLOBALS._player, &scene->_actor2, &scene->_actor3, NULL); + scene->_pool._lookLineNum = 9; + scene->_lamp.remove(); + scene->_scrithKey.postInit(); + scene->_scrithKey.setDetails(2455, 16, 1, -1, 2, (SceneItem *)NULL); + scene->setAction(&scene->_sequenceManager, scene, 2458, &R2_GLOBALS._player, &scene->_pool, &scene->_scrithKey, NULL); return true; } } @@ -2242,31 +2242,31 @@ bool Scene2455::Actor1::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); } -bool Scene2455::Actor2::startAction(CursorType action, Event &event) { +bool Scene2455::Pool::startAction(CursorType action, Event &event) { Scene2455 *scene = (Scene2455 *)R2_GLOBALS._sceneManager._scene; switch (action) { case R2_ALCOHOL_LAMP_2: if (R2_INVENTORY.getObjectScene(R2_ALCOHOL_LAMP_3) != 2455) { R2_GLOBALS._player.disableControl(); - scene->_actor1.postInit(); - scene->_actor1.setup(2456, 3, 3); - scene->_actor1.setPosition(Common::Point(162, 165)); - scene->_actor1.setDetails(2455, 15, 1, -1, 2, (SceneItem *)NULL); + scene->_lamp.postInit(); + scene->_lamp.setup(2456, 3, 3); + scene->_lamp.setPosition(Common::Point(162, 165)); + scene->_lamp.setDetails(2455, 15, 1, -1, 2, (SceneItem *)NULL); scene->_sceneMode = 11; - scene->setAction(&scene->_sequenceManager, scene, 2457, &R2_GLOBALS._player, &scene->_actor2, NULL); + scene->setAction(&scene->_sequenceManager, scene, 2457, &R2_GLOBALS._player, &scene->_pool, NULL); return true; } break; case R2_ALCOHOL_LAMP_3: if (R2_INVENTORY.getObjectScene(R2_ALCOHOL_LAMP_2) != 2455) { R2_GLOBALS._player.disableControl(); - scene->_actor1.postInit(); - scene->_actor1.setup(2456, 3, 3); - scene->_actor1.setPosition(Common::Point(162, 165)); - scene->_actor1.setDetails(2455, 15, 1, -1, 2, (SceneItem *)NULL); + scene->_lamp.postInit(); + scene->_lamp.setup(2456, 3, 3); + scene->_lamp.setPosition(Common::Point(162, 165)); + scene->_lamp.setDetails(2455, 15, 1, -1, 2, (SceneItem *)NULL); scene->_sceneMode = 12; - scene->setAction(&scene->_sequenceManager, scene, 2457, &R2_GLOBALS._player, &scene->_actor2, NULL); + scene->setAction(&scene->_sequenceManager, scene, 2457, &R2_GLOBALS._player, &scene->_pool, NULL); return true; } break; @@ -2277,13 +2277,13 @@ bool Scene2455::Actor2::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); } -bool Scene2455::Actor3::startAction(CursorType action, Event &event) { +bool Scene2455::ScrithKey::startAction(CursorType action, Event &event) { Scene2455 *scene = (Scene2455 *)R2_GLOBALS._sceneManager._scene; if (action == CURSOR_USE) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 2459; - scene->setAction(&scene->_sequenceManager, scene, 2459, &R2_GLOBALS._player, &scene->_actor3, NULL); + scene->setAction(&scene->_sequenceManager, scene, 2459, &R2_GLOBALS._player, &scene->_scrithKey, NULL); return true; } @@ -2313,37 +2313,36 @@ void Scene2455::postInit(SceneObjectList *OwnerList) { _exit1.setDetails(Rect(0, 0, 320, 15), EXITCURSOR_N, 2425); if (R2_INVENTORY.getObjectScene(R2_GLASS_DOME) == 2455) { - if ((R2_INVENTORY.getObjectScene(R2_ALCOHOL_LAMP_3) == 2455) || (R2_INVENTORY.getObjectScene(R2_ALCOHOL_LAMP_2) == 2455)) { - _actor1.postInit(); - _actor1.setup(2456, 3, 3); - _actor1.setPosition(Common::Point(162, 165)); - _actor1.setDetails(2455, 15, 1, -1, 1, (SceneItem *)NULL); - } - } else { - _actor3.postInit(); - _actor3.setup(2456, 3, 1); - _actor3.setPosition(Common::Point(176, 165)); - _actor3.setDetails(2455, 16, 1, -1, 1, (SceneItem *)NULL); - } - - _actor2.postInit(); + _scrithKey.postInit(); + _scrithKey.setup(2456, 3, 1); + _scrithKey.setPosition(Common::Point(176, 165)); + _scrithKey.setDetails(2455, 16, 1, -1, 1, (SceneItem *)NULL); + } else if ((R2_INVENTORY.getObjectScene(R2_ALCOHOL_LAMP_3) == 2455) || + (R2_INVENTORY.getObjectScene(R2_ALCOHOL_LAMP_2) == 2455)) { + _lamp.postInit(); + _lamp.setup(2456, 3, 3); + _lamp.setPosition(Common::Point(162, 165)); + _lamp.setDetails(2455, 15, 1, -1, 1, (SceneItem *)NULL); + } + + _pool.postInit(); if (R2_INVENTORY.getObjectScene(R2_GLASS_DOME) == 2455) { - _actor2.setup(2456, 3, 2); - _actor2.setDetails(2455, 9, 1, -1, 1, (SceneItem *)NULL); + _pool.setup(2456, 3, 2); + _pool.setDetails(2455, 9, 1, -1, 1, (SceneItem *)NULL); } else { if ((R2_INVENTORY.getObjectScene(R2_ALCOHOL_LAMP_3) != 2455) && (R2_INVENTORY.getObjectScene(R2_ALCOHOL_LAMP_2) != 2455)) - _actor2.setup(2455, 1, 1); + _pool.setup(2455, 1, 1); else - _actor2.setup(2456, 1, 1); - _actor2.setDetails(2455, 3, 1, -1, 1, (SceneItem *)NULL); + _pool.setup(2456, 1, 1); + _pool.setDetails(2455, 3, 1, -1, 1, (SceneItem *)NULL); } - _actor2.setPosition(Common::Point(162, 165)); - _actor2.fixPriority(20); + _pool.setPosition(Common::Point(162, 165)); + _pool.fixPriority(20); if (R2_INVENTORY.getObjectScene(R2_GLASS_DOME) != 2455) - _actor2.animate(ANIM_MODE_2, NULL); + _pool.animate(ANIM_MODE_2, NULL); R2_GLOBALS._player.postInit(); - _item1.setDetails(Rect(0, 0, 320, 200), 2455, 0, 1, -1, 1, NULL); + _background.setDetails(Rect(0, 0, 320, 200), 2455, 0, 1, -1, 1, NULL); R2_GLOBALS._player.disableControl(); if (R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] == 2425) { @@ -2386,7 +2385,7 @@ void Scene2455::signal() { R2_GLOBALS._player._canWalk = false; break; case 2459: - _actor3.remove(); + _scrithKey.remove(); R2_INVENTORY.setObjectScene(R2_SCRITH_KEY, 2); R2_GLOBALS._player.enableControl(CURSOR_USE); R2_GLOBALS._player._canWalk = false; @@ -2507,6 +2506,7 @@ void Scene2500::signal() { * Scene 2525 - Furnace room * *--------------------------------------------------------------------------*/ + bool Scene2525::Item5::startAction(CursorType action, Event &event) { Scene2525 *scene = (Scene2525 *)R2_GLOBALS._sceneManager._scene; @@ -2520,7 +2520,7 @@ bool Scene2525::Item5::startAction(CursorType action, Event &event) { return SceneItem::startAction(action, event); } -bool Scene2525::Actor3::startAction(CursorType action, Event &event) { +bool Scene2525::GlassDome::startAction(CursorType action, Event &event) { Scene2525 *scene = (Scene2525 *)R2_GLOBALS._sceneManager._scene; if (action != CURSOR_USE) @@ -2529,7 +2529,7 @@ bool Scene2525::Actor3::startAction(CursorType action, Event &event) { if (R2_GLOBALS._player._characterIndex == R2_SEEKER) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 2525; - scene->setAction(&scene->_sequenceManager, scene, 2525, &R2_GLOBALS._player, &scene->_actor3, NULL); + scene->setAction(&scene->_sequenceManager, scene, 2525, &R2_GLOBALS._player, &scene->_glassDome, NULL); } else { SceneItem::display(2530, 33, 0, 280, 1, 160, 9, 1, 2, 20, 7, 7, -999); } @@ -2558,11 +2558,11 @@ void Scene2525::postInit(SceneObjectList *OwnerList) { _exit1.setDetails(Rect(86, 155, 228, 168), EXITCURSOR_S, 2000); if (R2_INVENTORY.getObjectScene(R2_GLASS_DOME) == 2525) { - _actor3.postInit(); - _actor3.setup(2435, 1, 2); - _actor3.setPosition(Common::Point(78, 155)); - _actor3.fixPriority(155); - _actor3.setDetails(2525, 27, -1, -1, 1, (SceneItem *)NULL); + _glassDome.postInit(); + _glassDome.setup(2435, 1, 2); + _glassDome.setPosition(Common::Point(78, 155)); + _glassDome.fixPriority(155); + _glassDome.setDetails(2525, 27, -1, -1, 1, (SceneItem *)NULL); } _actor2.postInit(); @@ -2629,7 +2629,7 @@ void Scene2525::signal() { g_globals->_sceneManager.changeScene(2000); break; case 2525: - _actor3.remove(); + _glassDome.remove(); R2_INVENTORY.setObjectScene(R2_GLASS_DOME, 2); R2_GLOBALS._player.enableControl(); break; @@ -2647,7 +2647,8 @@ void Scene2525::signal() { * Scene 2530 - Spill Mountains: Well * *--------------------------------------------------------------------------*/ -bool Scene2530::Actor2::startAction(CursorType action, Event &event) { + +bool Scene2530::Flask::startAction(CursorType action, Event &event) { Scene2530 *scene = (Scene2530 *)R2_GLOBALS._sceneManager._scene; if (action != CURSOR_USE) @@ -2656,7 +2657,7 @@ bool Scene2530::Actor2::startAction(CursorType action, Event &event) { if (R2_GLOBALS._player._characterIndex == R2_SEEKER) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 2530; - scene->setAction(&scene->_sequenceManager, scene, 2530, &R2_GLOBALS._player, &scene->_actor2, NULL); + scene->setAction(&scene->_sequenceManager, scene, 2530, &R2_GLOBALS._player, &scene->_flask, NULL); } else { SceneItem::display(2530, 33, 0, 280, 1, 160, 9, 1, 2, 20, 7, 7, -999); } @@ -2664,29 +2665,29 @@ bool Scene2530::Actor2::startAction(CursorType action, Event &event) { return true; } -bool Scene2530::Actor3::startAction(CursorType action, Event &event) { +bool Scene2530::Crank::startAction(CursorType action, Event &event) { Scene2530 *scene = (Scene2530 *)R2_GLOBALS._sceneManager._scene; if (action != CURSOR_USE) return SceneActor::startAction(action, event); - if (R2_GLOBALS._player._characterIndex == 1) { + if (R2_GLOBALS._player._characterIndex == R2_QUINN) { if (R2_GLOBALS.getFlag(73)) SceneItem::display(2530, 35, 0, 280, 1, 160, 9, 1, 2, 20, 7, 7, -999); else { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 2532; - scene->setAction(&scene->_sequenceManager, scene, 2532, &R2_GLOBALS._player, &scene->_actor3, NULL); + scene->setAction(&scene->_sequenceManager, scene, 2532, &R2_GLOBALS._player, &scene->_crank, NULL); } } else { if (R2_GLOBALS.getFlag(73)) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 2533; - scene->setAction(&scene->_sequenceManager, scene, 2533, &R2_GLOBALS._player, &scene->_actor3, NULL); + scene->setAction(&scene->_sequenceManager, scene, 2533, &R2_GLOBALS._player, &scene->_crank, NULL); } else { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 2531; - scene->setAction(&scene->_sequenceManager, scene, 2531, &R2_GLOBALS._player, &scene->_actor3, NULL); + scene->setAction(&scene->_sequenceManager, scene, 2531, &R2_GLOBALS._player, &scene->_crank, NULL); } } @@ -2714,22 +2715,22 @@ void Scene2530::postInit(SceneObjectList *OwnerList) { _exit1.setDest(Common::Point(108, 160)); if (R2_INVENTORY.getObjectScene(R2_PURE_GRAIN_ALCOHOL) == 2530) { - _actor2.postInit(); - _actor2.setup(2435, 1, 3); - _actor2.setPosition(Common::Point(299, 80)); - _actor2.fixPriority(80); - _actor2.setDetails(2530, 28, -1, -1, 1, (SceneItem *)NULL); + _flask.postInit(); + _flask.setup(2435, 1, 3); + _flask.setPosition(Common::Point(299, 80)); + _flask.fixPriority(80); + _flask.setDetails(2530, 28, -1, -1, 1, (SceneItem *)NULL); } - _actor3.postInit(); + _crank.postInit(); if (R2_GLOBALS.getFlag(73)) { - _actor3.setup(2531, 4, 2); - _actor3.setPosition(Common::Point(154, 130)); + _crank.setup(2531, 4, 2); + _crank.setPosition(Common::Point(154, 130)); } else { - _actor3.setup(2531, 4, 1); - _actor3.setPosition(Common::Point(173, 131)); + _crank.setup(2531, 4, 1); + _crank.setPosition(Common::Point(173, 131)); } - _actor3.setDetails(2530, 22, -1, -1, 1, (SceneItem *)NULL); + _crank.setDetails(2530, 22, -1, -1, 1, (SceneItem *)NULL); R2_GLOBALS._player.postInit(); R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); @@ -2758,8 +2759,8 @@ void Scene2530::postInit(SceneObjectList *OwnerList) { _item2.setDetails(Rect(108, 90, 135, 205), 2530, 22, -1, -1, 1, NULL); _item5.setDetails(Rect(115, 112, 206, 130), 2530, 25, -1, 27, 1, NULL); - _item3.setDetails(Rect(256, 64, 311, 85), 2530, 31, -1, 33, 1, NULL); - _item1.setDetails(Rect(0, 0, 320, 200), 2530, 0, 1, -1, 1, NULL); + _shelf.setDetails(Rect(256, 64, 311, 85), 2530, 31, -1, 33, 1, NULL); + _background.setDetails(Rect(0, 0, 320, 200), 2530, 0, 1, -1, 1, NULL); R2_GLOBALS._player.disableControl(); @@ -2782,7 +2783,8 @@ void Scene2530::signal() { break; case 2530: R2_INVENTORY.setObjectScene(R2_PURE_GRAIN_ALCOHOL, 2); - _actor2.remove(); + _flask.remove(); + R2_GLOBALS._player.enableControl(); break; case 2531: // No break on purpose @@ -2945,7 +2947,7 @@ void Scene2535::signal() { g_globals->_sceneManager.changeScene(2000); break; case 2535: - R2_INVENTORY.setObjectScene(R2_TANNER_MASK, 2); + R2_INVENTORY.setObjectScene(R2_TANNER_MASK, R2_SEEKER); _tannerMask.remove(); R2_GLOBALS._player.enableControl(); break; diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index 90dd97a5e4..f90126b5a1 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -141,15 +141,15 @@ public: }; class Scene2425 : public SceneExt { - class Item1 : public NamedHotspot { + class RopeDest1 : public NamedHotspot { public: virtual bool startAction(CursorType action, Event &event); }; - class Item2 : public NamedHotspot { + class RopeDest2 : public NamedHotspot { public: virtual bool startAction(CursorType action, Event &event); }; - class Item3 : public NamedHotspot { + class Crevasse : public NamedHotspot { public: virtual bool startAction(CursorType action, Event &event); }; @@ -158,11 +158,11 @@ class Scene2425 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Actor1 : public SceneActor { + class Rope : public SceneActor { public: bool startAction(CursorType action, Event &event); }; - class Actor2 : public SceneActor { + class Pictographs : public SceneActor { public: bool startAction(CursorType action, Event &event); }; @@ -172,13 +172,13 @@ class Scene2425 : public SceneExt { virtual void changeScene(); }; public: - Item1 _item1; - Item2 _item2; - Item3 _item3; + RopeDest1 _ropeDest1; + RopeDest2 _ropeDest2; + Crevasse _crevasse; Item4 _item4; - Actor1 _actor1; - Actor2 _actor2; - Actor2 _actor3; + Rope _rope; + Pictographs _pictographs1; + Pictographs _pictographs2; Exit1 _exit1; SequenceManager _sequenceManager; @@ -333,15 +333,15 @@ public: }; class Scene2455 : public SceneExt { - class Actor1 : public SceneActor { + class Lamp : public SceneActor { public: bool startAction(CursorType action, Event &event); }; - class Actor2 : public SceneActor { + class Pool : public SceneActor { public: bool startAction(CursorType action, Event &event); }; - class Actor3 : public SceneActor { + class ScrithKey : public SceneActor { public: bool startAction(CursorType action, Event &event); }; @@ -351,10 +351,10 @@ class Scene2455 : public SceneExt { virtual void changeScene(); }; public: - NamedHotspot _item1; - Actor1 _actor1; - Actor2 _actor2; - Actor3 _actor3; + NamedHotspot _background; + Lamp _lamp; + Pool _pool; + ScrithKey _scrithKey; Exit1 _exit1; SequenceManager _sequenceManager; @@ -390,7 +390,7 @@ class Scene2525 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Actor3 : public SceneActor { + class GlassDome : public SceneActor { public: bool startAction(CursorType action, Event &event); }; @@ -407,7 +407,7 @@ public: Item5 _item5; SceneActor _actor1; SceneActor _actor2; - Actor3 _actor3; + GlassDome _glassDome; Exit1 _exit1; SequenceManager _sequenceManager; @@ -417,11 +417,11 @@ public: }; class Scene2530 : public SceneExt { - class Actor2 : public SceneActor { + class Flask : public SceneActor { public: bool startAction(CursorType action, Event &event); }; - class Actor3 : public SceneActor { + class Crank : public SceneActor { public: bool startAction(CursorType action, Event &event); }; @@ -431,14 +431,14 @@ class Scene2530 : public SceneExt { virtual void changeScene(); }; public: - NamedHotspot _item1; + NamedHotspot _background; NamedHotspot _item2; - NamedHotspot _item3; + NamedHotspot _shelf; NamedHotspot _item4; NamedHotspot _item5; SceneActor _actor1; - Actor2 _actor2; - Actor3 _actor3; + Flask _flask; + Crank _crank; Exit1 _exit1; SequenceManager _sequenceManager; |