diff options
Diffstat (limited to 'engines/tsage')
-rw-r--r-- | engines/tsage/core.cpp | 21 | ||||
-rw-r--r-- | engines/tsage/core.h | 7 | ||||
-rw-r--r-- | engines/tsage/globals.cpp | 47 | ||||
-rw-r--r-- | engines/tsage/globals.h | 16 | ||||
-rw-r--r-- | engines/tsage/graphics.cpp | 17 | ||||
-rw-r--r-- | engines/tsage/graphics.h | 3 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_logic.cpp | 28 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_logic.h | 2 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes0.cpp | 75 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes1.cpp | 1582 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes1.h | 190 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes2.cpp | 76 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes2.h | 56 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes3.cpp | 1298 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes3.h | 100 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_speakers.cpp | 44 | ||||
-rw-r--r-- | engines/tsage/sound.cpp | 2 | ||||
-rw-r--r-- | engines/tsage/staticres.cpp | 6 | ||||
-rw-r--r-- | engines/tsage/staticres.h | 6 |
19 files changed, 1721 insertions, 1855 deletions
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp index e703b714b2..fd36d4fb01 100644 --- a/engines/tsage/core.cpp +++ b/engines/tsage/core.cpp @@ -2106,7 +2106,7 @@ SceneObject::SceneObject() : SceneHotspot() { _endFrame = 0; _field68 = 0; _regionIndex = 0; - _field9C = NULL; + _shadowMap = NULL; } SceneObject::SceneObject(const SceneObject &so) : SceneHotspot() { @@ -2735,9 +2735,24 @@ void SceneObject::draw() { Rect destRect = _bounds; destRect.translate(-g_globals->_sceneManager._scene->_sceneBounds.left, -g_globals->_sceneManager._scene->_sceneBounds.top); - Region *priorityRegion = g_globals->_sceneManager._scene->_priorities.find(_priority); GfxSurface frame = getFrame(); - g_globals->gfxManager().copyFrom(frame, destRect, priorityRegion); + Region *priorityRegion = g_globals->_sceneManager._scene->_priorities.find(_priority); + + if (g_vm->getGameID() == GType_Ringworld2) { + switch (_effect) { + case EFFECT_SHADOW_MAP: { + assert(_shadowMap); + + GLOBALS.gfxManager().getSurface().copyFrom(frame, frame.getBounds(), + destRect, priorityRegion, _shadowMap); + return; + } + default: + break; + } + } + + GLOBALS.gfxManager().copyFrom(frame, destRect, priorityRegion); } /** diff --git a/engines/tsage/core.h b/engines/tsage/core.h index 2c88f6be79..05f6f4b3a0 100644 --- a/engines/tsage/core.h +++ b/engines/tsage/core.h @@ -466,8 +466,9 @@ enum AnimateMode {ANIM_MODE_NONE = 0, ANIM_MODE_1 = 1, ANIM_MODE_2 = 2, ANIM_MOD ANIM_MODE_9 = 9 }; -enum Effect { EFFECT_NONE = 0, EFFECT_SHADED = 1, EFFECT_2 = 2, EFFECT_3 = 3, - EFFECT_4 = 4, EFFECT_5 = 5 }; +// Actor effect enumeration used in Return to Ringworld 2 +enum Effect { EFFECT_NONE = 0, EFFECT_SHADED = 1, EFFECT_3 = 3, + EFFECT_SHADOW_MAP = 5, EFFECT_SHADED2 = 6 }; class SceneObject; @@ -552,7 +553,7 @@ public: uint32 _regionBitList; // Ringworld 2 specific fields - byte *_field9C; + byte *_shadowMap; int _shade, _oldShade; int _effect; SceneObject *_linkedActor; diff --git a/engines/tsage/globals.cpp b/engines/tsage/globals.cpp index a8ab145dbb..6540f4dccc 100644 --- a/engines/tsage/globals.cpp +++ b/engines/tsage/globals.cpp @@ -426,11 +426,11 @@ Ringworld2Globals::Ringworld2Globals() { _balloonAltitude = 5; _scene1925CurrLevel = 0; _walkwaySceneNumber = 0; - _v56AA0 = 0; + _mirandaJailState = 0; _scientistConvIndex = 0; - _v56AA6 = 1; - _v56AA7 = 1; - _v56AA8 = 1; + _ductMazePanel1State = 1; + _ductMazePanel2State = 1; + _ductMazePanel3State = 1; _scene180Mode = -1; _v57709 = 0; _v5780C = 0; @@ -443,10 +443,8 @@ Ringworld2Globals::Ringworld2Globals() { _animationCtr = 0; _electromagnetChangeAmount = 0; _electromagnetZoom = 0; - _v565E5 = 0; - _v565E7 = 0; - _v565E9 = -5; - _v565EB = 26; + _tractorField = false; + _cableAttached = 0; _foodCount = 0; _rimLocation = 0; _rimTransportLocation = 0; @@ -478,15 +476,11 @@ void Ringworld2Globals::reset() { Common::fill(&_paletteMap[0], &_paletteMap[4096], 0); _fadePaletteFlag = false; - _v5589E.set(0, 0, 0, 0); - _v558B6.set(0, 0, 0, 0); _animationCtr = 0; _electromagnetChangeAmount = 0; _electromagnetZoom = 0; - _v565E5 = 0; - _v565E7 = 0; - _v565E9 = -5; - _v565EB = 26; + _tractorField = false; + _cableAttached = 0; _foodCount = 0; _rimLocation = 0; _rimTransportLocation = 0; @@ -543,12 +537,12 @@ void Ringworld2Globals::reset() { _balloonAltitude = 5; _scene1925CurrLevel = 0; //_v56A9C _walkwaySceneNumber = 0; - _v56AA0 = 0; + _mirandaJailState = 0; _scientistConvIndex = 0; _ventCellPos = Common::Point(60, 660); - _v56AA6 = 1; - _v56AA7 = 1; - _v56AA8 = 1; + _ductMazePanel1State = 1; + _ductMazePanel2State = 1; + _ductMazePanel3State = 1; _scene180Mode = -1; _v57709 = 0; _v5780C = 0; @@ -586,16 +580,11 @@ void Ringworld2Globals::synchronize(Serializer &s) { TsAGE2Globals::synchronize(s); int i; - _v5589E.synchronize(s); - _v558B6.synchronize(s); - s.syncAsSint16LE(_animationCtr); s.syncAsSint16LE(_electromagnetChangeAmount); s.syncAsSint16LE(_electromagnetZoom); - s.syncAsSint16LE(_v565E5); - s.syncAsSint16LE(_v565E7); - s.syncAsSint16LE(_v565E9); - s.syncAsSint16LE(_v565EB); + s.syncAsSint16LE(_tractorField); + s.syncAsSint16LE(_cableAttached); s.syncAsSint16LE(_foodCount); s.syncAsSint32LE(_rimLocation); s.syncAsSint16LE(_rimTransportLocation); @@ -626,11 +615,11 @@ void Ringworld2Globals::synchronize(Serializer &s) { s.syncAsByte(_desertStepsRemaining); s.syncAsByte(_desertCorrectDirection); s.syncAsByte(_desertPreviousDirection); - s.syncAsByte(_v56AA0); + s.syncAsByte(_mirandaJailState); s.syncAsByte(_scientistConvIndex); - s.syncAsByte(_v56AA6); - s.syncAsByte(_v56AA7); - s.syncAsByte(_v56AA8); + s.syncAsByte(_ductMazePanel1State); + s.syncAsByte(_ductMazePanel2State); + s.syncAsByte(_ductMazePanel3State); for (i = 0; i < 14; ++i) s.syncAsByte(_spillLocation[i]); diff --git a/engines/tsage/globals.h b/engines/tsage/globals.h index b9c8076042..4523a7bca0 100644 --- a/engines/tsage/globals.h +++ b/engines/tsage/globals.h @@ -252,15 +252,11 @@ public: byte _paletteMap[4096]; int _insetUp; int _frameEdgeColor; - Rect _v5589E; - Rect _v558B6; int _animationCtr; int _electromagnetChangeAmount; int _electromagnetZoom; - int _v565E5; - int _v565E7; - int _v565E9; - int _v565EB; // CHECKME: IS it a constant? + bool _tractorField; + bool _cableAttached; int _foodCount; int _rimLocation; int _rimTransportLocation; @@ -279,12 +275,12 @@ public: byte _balloonAltitude; int _scene1925CurrLevel; //_v56A9C int _walkwaySceneNumber; - byte _v56AA0; + byte _mirandaJailState; byte _scientistConvIndex; Common::Point _ventCellPos; - byte _v56AA6; - byte _v56AA7; - byte _v56AA8; + byte _ductMazePanel1State; + byte _ductMazePanel2State; + byte _ductMazePanel3State; int _scene180Mode; // _v575f7 int _v57709; int _v5780C; diff --git a/engines/tsage/graphics.cpp b/engines/tsage/graphics.cpp index 32810626e7..f00dcf0378 100644 --- a/engines/tsage/graphics.cpp +++ b/engines/tsage/graphics.cpp @@ -559,9 +559,11 @@ static GfxSurface ResizeSurface(GfxSurface &src, int xSize, int ySize, int trans } /** - * Copys an area from one GfxSurface to another + * Copys an area from one GfxSurface to another. + * */ -void GfxSurface::copyFrom(GfxSurface &src, Rect srcBounds, Rect destBounds, Region *priorityRegion) { +void GfxSurface::copyFrom(GfxSurface &src, Rect srcBounds, Rect destBounds, + Region *priorityRegion, const byte *shadowMap) { GfxSurface srcImage; if (srcBounds.isEmpty()) return; @@ -631,8 +633,15 @@ void GfxSurface::copyFrom(GfxSurface &src, Rect srcBounds, Rect destBounds, Regi if (!priorityRegion || !priorityRegion->contains(Common::Point( xp + g_globals->_sceneManager._scene->_sceneBounds.left, destBounds.top + y + g_globals->_sceneManager._scene->_sceneBounds.top))) { - if (*tempSrc != src._transColor) - *tempDest = *tempSrc; + if (*tempSrc != src._transColor) { + if (shadowMap) { + // Using a shadow map, so translate the dest pixel using the mapping array + *tempDest = shadowMap[*tempDest]; + } else { + // Otherwise, it's a standard pixel copy + *tempDest = *tempSrc; + } + } } ++tempSrc; ++tempDest; diff --git a/engines/tsage/graphics.h b/engines/tsage/graphics.h index 497cd76ad6..d31bac0738 100644 --- a/engines/tsage/graphics.h +++ b/engines/tsage/graphics.h @@ -105,7 +105,8 @@ public: void setBounds(const Rect &bounds) { _bounds = bounds; } const Rect &getBounds() const { return _bounds; } - void copyFrom(GfxSurface &src, Rect srcBounds, Rect destBounds, Region *priorityRegion = NULL); + void copyFrom(GfxSurface &src, Rect srcBounds, Rect destBounds, + Region *priorityRegion = NULL, const byte *shadowMap = NULL); void copyFrom(GfxSurface &src, Rect destBounds, Region *priorityRegion = NULL) { copyFrom(src, src.getBounds(), destBounds, priorityRegion); } diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp index e5d8b0702b..b495a7e052 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.cpp +++ b/engines/tsage/ringworld2/ringworld2_logic.cpp @@ -336,7 +336,7 @@ SceneExt::SceneExt(): Scene() { _stripManager._onEnd = SceneExt::endStrip; for (int i = 0; i < 256; i++) - _field312[i] = 0; + _shadowPaletteMap[i] = 0; _savedPlayerEnabled = false; _savedUiEnabled = false; @@ -356,7 +356,7 @@ SceneExt::SceneExt(): Scene() { void SceneExt::synchronize(Serializer &s) { Scene::synchronize(s); - s.syncBytes(&_field312[0], 256); + s.syncBytes(&_shadowPaletteMap[0], 256); _sceneAreas.synchronize(s); } @@ -585,7 +585,7 @@ void SceneExt::scalePalette(int RFactor, int GFactor, int BFactor) { varC = tmp; varD = j; } - this->_field312[i] = varD; + this->_shadowPaletteMap[i] = varD; } } @@ -1285,7 +1285,7 @@ void SceneActor::postInit(SceneObjectList *OwnerList) { void SceneActor::remove() { R2_GLOBALS._sceneItems.remove(this); - _field9C = NULL; + _shadowMap = NULL; _linkedActor = NULL; SceneObject::remove(); @@ -1326,26 +1326,6 @@ bool SceneActor::startAction(CursorType action, Event &event) { GfxSurface SceneActor::getFrame() { GfxSurface frame = SceneObject::getFrame(); - // TODO: Proper effects handling - switch (_effect) { - case EFFECT_NONE: - case EFFECT_5: - // TODO: Figure out purpose of setting image flags to 64, and getting - // scene priorities -1 or _shade - break; - case EFFECT_SHADED: - // TODO: Transposing using R2_GLOBALS._pixelArrayMap - break; - case EFFECT_2: - // No effect - break; - case EFFECT_4: - break; - default: - // TODO: Default effect - break; - } - return frame; } diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h index ff5bfc0b6f..50e506de11 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.h +++ b/engines/tsage/ringworld2/ringworld2_logic.h @@ -81,7 +81,7 @@ private: static void startStrip(); static void endStrip(); public: - byte _field312[256]; + byte _shadowPaletteMap[256]; bool _savedPlayerEnabled; bool _savedUiEnabled; bool _savedCanWalk; diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.cpp b/engines/tsage/ringworld2/ringworld2_scenes0.cpp index aabcd261c7..d673c33c5a 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes0.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes0.cpp @@ -3491,7 +3491,7 @@ void Scene300::postInit(SceneObjectList *OwnerList) { if (R2_GLOBALS._sceneManager._previousScene == 1500) { R2_GLOBALS._player._oldCharacterScene[R2_MIRANDA] = 3150; R2_GLOBALS._player._characterScene[R2_MIRANDA] = 3150; - R2_GLOBALS._player._effect = 0; + R2_GLOBALS._player._effect = EFFECT_NONE; R2_GLOBALS._player.setAction(NULL); R2_GLOBALS._player.disableControl(); @@ -3676,7 +3676,7 @@ void Scene300::signal() { case 313: _sceneMode = 14; - R2_GLOBALS._player._effect = 0; + R2_GLOBALS._player._effect = EFFECT_NONE; _seeker.setAction(&_sequenceManager3, this, 314, &_seeker, &_doorway, NULL); R2_GLOBALS._events.setCursor(CURSOR_ARROW); _stripManager.start(301, this); @@ -3685,7 +3685,7 @@ void Scene300::signal() { case 314: R2_GLOBALS._player.disableControl(); _sceneMode = 315; - R2_GLOBALS._player._effect = 1; + R2_GLOBALS._player._effect = EFFECT_SHADED; setAction(&_sequenceManager1, this, 315, &R2_GLOBALS._player, &_doorway, NULL); break; @@ -5290,7 +5290,7 @@ void Scene500::PanelDialog::Button::doButtonPress() { } else { scene->_suit.postInit(); scene->_suit.hide(); - scene->_suit._effect = 1; + scene->_suit._effect = EFFECT_SHADED; scene->_suit.setDetails(500, -1, -1, -1, 2, (SceneItem *)NULL); scene->_suit.setup(502, R2_GLOBALS._landerSuitNumber + 2, 1); @@ -5325,14 +5325,14 @@ void Scene500::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._walkRegions.enableRegion(1); _seeker.postInit(); - _seeker._effect = 1; + _seeker._effect = EFFECT_SHADED; _seeker.setup(1505, 1, 1); _seeker._moveDiff.x = 5; _seeker.setPosition(Common::Point(42, 151)); _seeker.setDetails(500, 34, 35, 36, 1, (SceneItem *)NULL); } else if (R2_GLOBALS._player._characterScene[R2_QUINN] == 500) { _seeker.postInit(); - _seeker._effect = 1; + _seeker._effect = EFFECT_SHADED; _seeker.setup(R2_GLOBALS.getFlag(26) ? 1500 : 10, 1, 1); _seeker.setPosition(Common::Point(42, 151)); @@ -5407,7 +5407,7 @@ void Scene500::postInit(SceneObjectList *OwnerList) { } _suits.postInit(); - _suits._effect = 1; + _suits._effect = EFFECT_SHADED; _suits.setup(502, 1, 1); _suits.setPosition(Common::Point(258, 99)); _suits.fixPriority(50); @@ -5421,7 +5421,7 @@ void Scene500::postInit(SceneObjectList *OwnerList) { _transparentDoor.setup(500, 8, 7); _suit.postInit(); - _suit._effect = 1; + _suit._effect = EFFECT_SHADED; _suit.setPosition(Common::Point(247, 52)); _suit.setDetails(500, -1, -1, -1, 2, (SceneItem *)NULL); @@ -5594,7 +5594,7 @@ void Scene525::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._sound1.play(105); _actor1.postInit(); - _actor1._effect = 1; + _actor1._effect = EFFECT_SHADED; R2_GLOBALS._player.postInit(); R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); @@ -5767,7 +5767,7 @@ bool Scene600::Laser::startAction(CursorType action, Event &event) { scene->_smoke.postInit(); scene->_smoke.setup(601, 3, 1); - scene->_smoke._effect = 3; + scene->_smoke._effect = EFFECT_3; scene->_smoke._moveDiff = Common::Point(1, 1); scene->_smoke._moveRate = 2; scene->_smoke._numFrames = 3; @@ -5948,7 +5948,7 @@ void Scene600::postInit(SceneObjectList *OwnerList) { _smoke._numFrames = 3; _smoke.animate(ANIM_MODE_2, NULL); _smoke.fixPriority(130); - _smoke._effect = 3; + _smoke._effect = EFFECT_3; _smoke.setDetails(600, 24, 25, 26, 1, (SceneItem *) NULL); _smoke.signal(); } @@ -6019,7 +6019,7 @@ void Scene600::signal() { R2_INVENTORY.setObjectScene(R2_AEROSOL, 600); R2_GLOBALS.setFlag(5); - _smoke._effect = 3; + _smoke._effect = EFFECT_3; _smoke.signal(); break; case 606: @@ -6127,6 +6127,9 @@ void Scene600::dispatch() { * *--------------------------------------------------------------------------*/ +#define CABLE700_X 26 +#define CABLE700_Y -5 + Scene700::Scene700() { _rotation = NULL; } @@ -6293,8 +6296,6 @@ void Scene700::postInit(SceneObjectList *OwnerList) { loadScene(700); if (R2_GLOBALS._sceneManager._previousScene == 900) _sceneBounds = Rect(160, 0, 480, 200); - - R2_GLOBALS._v558B6.set(60, 0, 260, 200); SceneExt::postInit(); _rotation = R2_GLOBALS._scenePalette.addRotation(237, 246, -1); @@ -6352,7 +6353,7 @@ void Scene700::postInit(SceneObjectList *OwnerList) { break; case 700: _cable.setup(701, 3, 1); - _cable.setPosition(Common::Point(356 - (R2_GLOBALS._v565EB * 8), 148 - (((R2_GLOBALS._v565E9 + 10) / 5) * 4))); + _cable.setPosition(Common::Point(356 - (CABLE700_X * 8), 148 - (((CABLE700_Y + 10) / 5) * 4))); _cable.setDetails(700, 37, -1, -1, 1, (SceneItem *) NULL); break; default: @@ -6362,7 +6363,7 @@ void Scene700::postInit(SceneObjectList *OwnerList) { case 700: switch (R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS)) { case 0: - if ((R2_GLOBALS._v565E5 != 0) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) + if (R2_GLOBALS._tractorField && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) _cable.setup(701, 2, 1); else _cable.setup(701, 2, 8); @@ -6372,8 +6373,8 @@ void Scene700::postInit(SceneObjectList *OwnerList) { break; case 700: _cable.setup(701, 1, 8); - if (R2_GLOBALS._v565E7 == 0) { - _cable.setPosition(Common::Point(356 - (R2_GLOBALS._v565EB * 8), 148 - (((R2_GLOBALS._v565E9 + 10) / 5) * 4))); + if (!R2_GLOBALS._cableAttached) { + _cable.setPosition(Common::Point(356 - (CABLE700_X * 8), 148 - (((CABLE700_Y + 10) / 5) * 4))); } else { _cable.setup(701, 1, 1); _cable.setPosition(Common::Point(_electromagnet._position.x + 1, _electromagnet._position.y + 120)); @@ -6521,12 +6522,12 @@ void Scene700::signal() { _sceneMode = 17; _cable.setup(701, 1, 8); _cable.setDetails(700, 38, -1, -1, 3, (SceneItem *) NULL); - if ((R2_GLOBALS._v565E5 != 0) && (_cable._position.x == _electromagnet._position.x + 1) && (_cable._position.x == 148 - (((R2_GLOBALS._electromagnetChangeAmount + 10) / 5) * 4))) { + if (R2_GLOBALS._tractorField && (_cable._position.x == _electromagnet._position.x + 1) && (_cable._position.x == 148 - (((R2_GLOBALS._electromagnetChangeAmount + 10) / 5) * 4))) { _cable.animate(ANIM_MODE_6, NULL); Common::Point pt(_cable._position.x, _electromagnet._position.y + 120); NpcMover *mover = new NpcMover(); _cable.addMover(mover, &pt, NULL); - R2_GLOBALS._v565E7 = 1; + R2_GLOBALS._cableAttached = true; } R2_GLOBALS._player.animate(ANIM_MODE_6, this); break; @@ -6546,7 +6547,7 @@ void Scene700::signal() { break; case 21: _cable.fixPriority(77); - if ((R2_GLOBALS._v565E5 != 0) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) + if (R2_GLOBALS._tractorField && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) _cable.animate(ANIM_MODE_6, NULL); R2_INVENTORY.setObjectScene(R2_ATTRACTOR_CABLE_HARNESS, 700); @@ -6564,7 +6565,7 @@ void Scene700::signal() { case 706: _cable.setDetails(700, 38, -1, -1, 3, (SceneItem *) NULL); _cable.fixPriority(77); - if ((R2_GLOBALS._v565E5 != 0) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) + if (R2_GLOBALS._tractorField && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) _cable.animate(ANIM_MODE_6, NULL); R2_INVENTORY.setObjectScene(R2_ATTRACTOR_UNIT, 0); R2_INVENTORY.setObjectScene(R2_ATTRACTOR_CABLE_HARNESS, 700); @@ -7002,7 +7003,7 @@ void Scene825::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._interfaceY = SCREEN_HEIGHT; R2_GLOBALS._player.postInit(); - R2_GLOBALS._player._effect = 0; + R2_GLOBALS._player._effect = EFFECT_NONE; R2_GLOBALS._player.setVisage(10); R2_GLOBALS._player.hide(); R2_GLOBALS._player.disableControl(); @@ -7479,10 +7480,10 @@ bool Scene900::Button::startAction(CursorType action, Event &event) { scene->_sceneMode = 2; scene->signal(); } else if (scene->_controlsScreenNumber == 2) { - if (R2_GLOBALS._v565E5 == 0) { + if (!R2_GLOBALS._tractorField) { scene->_aSound1.play(30); setup(900, 3, 11); - R2_GLOBALS._v565E5 = 1; + R2_GLOBALS._tractorField = true; if ((R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS == 700)) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70) && (scene->_cable._animateMode != ANIM_MODE_6)) { scene->_cable.animate(ANIM_MODE_6, NULL); } else { @@ -7501,12 +7502,12 @@ bool Scene900::Button::startAction(CursorType action, Event &event) { } else { scene->_aSound1.play(53); setup(900, 3, 9); - R2_GLOBALS._v565E5 = 0; + R2_GLOBALS._tractorField = false; if ((R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) == 700) && (scene->_cable._frame < 8) && (scene->_cable._animateMode != ANIM_MODE_5)) { scene->_cable.animate(ANIM_MODE_5, NULL); } else if ((R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 700) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) == 700) && (scene->_cable._frame < 8)) { - R2_GLOBALS._v565E7 = 0; + R2_GLOBALS._cableAttached = false; if (scene->_cable._animateMode != 5) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 5; @@ -7613,7 +7614,7 @@ void Scene900::postInit(SceneObjectList *OwnerList) { _electromagnet.fixPriority(1); _electromagnet.setup(900, 1, 2); _electromagnet.setPosition(Common::Point(89, 0)); - _electromagnet._effect = 1; + _electromagnet._effect = EFFECT_SHADED; _electromagnet.setDetails(900, 6, -1, 8, 1, (SceneItem *) NULL); if ((R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) != 1) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) != 1)) { @@ -7624,7 +7625,7 @@ void Scene900::postInit(SceneObjectList *OwnerList) { if (R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) { if (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) != 700) { _cable.setup(901, 3, 2); - } else if ((R2_GLOBALS._v565E5 != 0) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) { + } else if (R2_GLOBALS._tractorField && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) { _cable.setup(901, 2, 1); } else { _cable.setup(901, 2, 8); @@ -7633,11 +7634,11 @@ void Scene900::postInit(SceneObjectList *OwnerList) { _cable.setDetails(700, -1, -1, -1, 1, (SceneItem *) NULL); } else { _cable.setDetails(700, -1, -1, -1, 1, (SceneItem *) NULL); - if (R2_GLOBALS._v565E7 == 0) { + if (!R2_GLOBALS._cableAttached) { _cable.setup(901, 1, 8); // Original set two times the same values: skipped - _cable.setPosition(Common::Point((((100 - ((R2_GLOBALS._v565EB * 350) / 100)) * 49) / 100) + ((R2_GLOBALS._v565E9 * _electromagnet._percent * 6) / 100) + 89, 166 - (R2_GLOBALS._v565EB / 3))); - _cable.changeZoom(((100 - ((R2_GLOBALS._v565EB * 350) / 100) + 52) / 10) * 10); + _cable.setPosition(Common::Point((((100 - ((CABLE700_X * 350) / 100)) * 49) / 100) + ((CABLE700_Y * _electromagnet._percent * 6) / 100) + 89, 166 - (CABLE700_X / 3))); + _cable.changeZoom(((100 - ((CABLE700_X * 350) / 100) + 52) / 10) * 10); } } } @@ -7682,7 +7683,7 @@ void Scene900::signal() { _button3.remove(); _button2.initButton(2); - if (R2_GLOBALS._v565E5 == 0) + if (!R2_GLOBALS._tractorField) _button2.setup(900, 3, 9); else _button2.setup(900, 3, 11); @@ -7727,7 +7728,7 @@ void Scene900::signal() { _sceneMode = 0; R2_GLOBALS._player.enableControl(); R2_GLOBALS._player._canWalk = false; - R2_GLOBALS._v565E7 = 1; + R2_GLOBALS._cableAttached = true; break; case 900: R2_GLOBALS._player.enableControl(CURSOR_USE); @@ -7777,11 +7778,11 @@ void Scene900::dispatch() { } if (R2_GLOBALS._sceneObjects->contains(&_cable)) { - if ((R2_GLOBALS._v565E5 != 0) && (R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) == 700) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) { + if (R2_GLOBALS._tractorField && (R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) == 700) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) { if ((_cable._frame > 1) && (_cable._animateMode != ANIM_MODE_6)) _cable.animate(ANIM_MODE_6, NULL); } else { - if ((_cable._frame < 8) && (_cable._animateMode != ANIM_MODE_5) && (R2_GLOBALS._v565E7 == 0) && (R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) == 700) && (_sceneMode != 4)) + if ((_cable._frame < 8) && (_cable._animateMode != ANIM_MODE_5) && !R2_GLOBALS._cableAttached && (R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) == 700) && (_sceneMode != 4)) _cable.animate(ANIM_MODE_5, NULL); } } @@ -7789,7 +7790,7 @@ void Scene900::dispatch() { _electromagnet.changeZoom(100 - ((R2_GLOBALS._electromagnetZoom * 70) / 100)); _electromagnet.setPosition(Common::Point(((_electromagnet._percent * R2_GLOBALS._electromagnetChangeAmount * 6) / 100) + 89, R2_GLOBALS._electromagnetZoom)); - if ((R2_GLOBALS._sceneObjects->contains(&_cable)) && (R2_GLOBALS._v565E7 != 0) && (!_cable._mover) && (_cable._animateMode == ANIM_MODE_NONE)) { + if ((R2_GLOBALS._sceneObjects->contains(&_cable)) && R2_GLOBALS._cableAttached && (!_cable._mover) && (_cable._animateMode == ANIM_MODE_NONE)) { _cable.setPosition(Common::Point(_electromagnet._position.x + ((_electromagnet._percent * 49) / 100), _electromagnet._position.y + ((_electromagnet._percent * 3) / 10))); if (R2_GLOBALS._electromagnetZoom >= 75) { _cable.setup(901, 1, 1); diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 3d99ecd035..4bc82c7059 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -547,7 +547,6 @@ void Scene1020::postInit(SceneObjectList *OwnerList) { _sceneBounds = Rect(160, 0, SCREEN_WIDTH + 160, 200); R2_GLOBALS._interfaceY = SCREEN_HEIGHT; - R2_GLOBALS._v558B6.set(160, 0, 160, 161); R2_GLOBALS._player.postInit(); if (R2_GLOBALS._sceneManager._previousScene == 1010) { @@ -779,8 +778,6 @@ void Scene1100::postInit(SceneObjectList *OwnerList) { if ((R2_GLOBALS._sceneManager._previousScene == 1000) && (!R2_GLOBALS.getFlag(44))) { R2_GLOBALS._uiElements._active = false; - R2_GLOBALS._v5589E.left = 0; - R2_GLOBALS._v5589E.right = 200; } if (R2_GLOBALS._player._characterScene[R2_QUINN] == 1100) @@ -788,8 +785,6 @@ void Scene1100::postInit(SceneObjectList *OwnerList) { if (R2_GLOBALS._sceneManager._previousScene == -1) { R2_GLOBALS._uiElements._active = false; - R2_GLOBALS._v5589E.left = 0; - R2_GLOBALS._v5589E.right = 200; } SceneExt::postInit(); @@ -868,8 +863,8 @@ void Scene1100::postInit(SceneObjectList *OwnerList) { _palette1.loadPalette(1101); R2_GLOBALS._player.postInit(); R2_GLOBALS._player.disableControl(); - R2_GLOBALS._player._effect = 5; - R2_GLOBALS._player._field9C = _field312; + R2_GLOBALS._player._effect = EFFECT_SHADOW_MAP; + R2_GLOBALS._player._shadowMap = _shadowPaletteMap; R2_GLOBALS._player.setup(1102, 3, 2); R2_GLOBALS._player.setObjectWrapper(NULL); R2_GLOBALS._player.setPosition(Common::Point(111,-20)); @@ -894,8 +889,8 @@ void Scene1100::postInit(SceneObjectList *OwnerList) { _shipFormationShadow.setup(1102, 6, 2); _shipFormationShadow._moveRate = 30; _shipFormationShadow._moveDiff.x = 2; - _shipFormationShadow._effect = 5; - _shipFormationShadow._field9C = _field312; + _shipFormationShadow._effect = EFFECT_SHADOW_MAP; + _shipFormationShadow._shadowMap = _shadowPaletteMap; R2_GLOBALS._sound1.play(86); @@ -1038,12 +1033,12 @@ void Scene1100::signal() { break; case 5: _runningGuy1.postInit(); - _runningGuy1._effect = 6; + _runningGuy1._effect = EFFECT_SHADED2; _runningGuy1.setup(1103, 3, 1); _runningGuy1._moveRate = 30; _runningGuy2.postInit(); - _runningGuy2._effect = 6; + _runningGuy2._effect = EFFECT_SHADED2; _runningGuy2.setup(1103, 4, 1); _runningGuy2._moveRate = 25; @@ -1063,7 +1058,7 @@ void Scene1100::signal() { setAction(&_sequenceManager1, this, 1103, &_chief, &_laserShot, NULL); break; case 8: - R2_GLOBALS._player._effect = 0; + R2_GLOBALS._player._effect = EFFECT_NONE; _animation.postInit(); setAction(&_sequenceManager1, this, 1105, &R2_GLOBALS._player, &_laserShot, &_animation, &_chief, NULL); break; @@ -1084,7 +1079,7 @@ void Scene1100::signal() { case 11: { setAction(&_sequenceManager1, this, 1106, &_animation, &_laserShot, &_leftImpacts, NULL); - R2_GLOBALS._player._effect = 5; + R2_GLOBALS._player._effect = EFFECT_SHADOW_MAP; R2_GLOBALS._player.setup(1102, 3, 2); R2_GLOBALS._player.setPosition(Common::Point(-50, 131)); R2_GLOBALS._sound2.play(84); @@ -1356,7 +1351,7 @@ void Scene1200::LaserPanel::Jumper::init(int state) { switch (_state) { case 1: - switch (R2_GLOBALS._v56AA6) { + switch (R2_GLOBALS._ductMazePanel1State) { case 1: setFrame2(2); setPosition(Common::Point(129, 101)); @@ -1370,7 +1365,7 @@ void Scene1200::LaserPanel::Jumper::init(int state) { } break; case 2: - switch (R2_GLOBALS._v56AA7) { + switch (R2_GLOBALS._ductMazePanel2State) { case 1: setFrame2(2); setPosition(Common::Point(152, 101)); @@ -1388,7 +1383,7 @@ void Scene1200::LaserPanel::Jumper::init(int state) { } break; case 3: - switch (R2_GLOBALS._v56AA8) { + switch (R2_GLOBALS._ductMazePanel3State) { case 1: setFrame2(3); setPosition(Common::Point(158, 95)); @@ -1415,22 +1410,22 @@ bool Scene1200::LaserPanel::Jumper::startAction(CursorType action, Event &event) R2_GLOBALS._sound2.play(260); switch (_state) { case 1: - if (R2_GLOBALS._v56AA6 == 1) { - R2_GLOBALS._v56AA6 = 2; + if (R2_GLOBALS._ductMazePanel1State == 1) { + R2_GLOBALS._ductMazePanel1State = 2; setFrame2(3); setPosition(Common::Point(135, 95)); } else { - R2_GLOBALS._v56AA6 = 1; + R2_GLOBALS._ductMazePanel1State = 1; setFrame2(2); setPosition(Common::Point(129, 101)); } break; case 2: - ++R2_GLOBALS._v56AA7; - if (R2_GLOBALS._v56AA7 == 4) - R2_GLOBALS._v56AA7 = 1; + ++R2_GLOBALS._ductMazePanel2State; + if (R2_GLOBALS._ductMazePanel2State == 4) + R2_GLOBALS._ductMazePanel2State = 1; - switch (R2_GLOBALS._v56AA7) { + switch (R2_GLOBALS._ductMazePanel2State) { case 1: setFrame2(2); setPosition(Common::Point(152, 101)); @@ -1448,12 +1443,12 @@ bool Scene1200::LaserPanel::Jumper::startAction(CursorType action, Event &event) } break; case 3: - if (R2_GLOBALS._v56AA8 == 1) { - R2_GLOBALS._v56AA8 = 2; + if (R2_GLOBALS._ductMazePanel3State == 1) { + R2_GLOBALS._ductMazePanel3State = 2; setFrame2(2); setPosition(Common::Point(175, 101)); } else { - R2_GLOBALS._v56AA8 = 1; + R2_GLOBALS._ductMazePanel3State = 1; setFrame2(3); setPosition(Common::Point(158, 95)); } @@ -1465,13 +1460,13 @@ bool Scene1200::LaserPanel::Jumper::startAction(CursorType action, Event &event) Scene1200 *scene = (Scene1200 *)R2_GLOBALS._sceneManager._scene; scene->_field418 = 0; - if ((R2_GLOBALS._v56AA6 == 1) && (R2_GLOBALS._v56AA7 == 1) && (R2_GLOBALS._v56AA8 == 1)) + if ((R2_GLOBALS._ductMazePanel1State == 1) && (R2_GLOBALS._ductMazePanel2State == 1) && (R2_GLOBALS._ductMazePanel3State == 1)) scene->_field418 = 1; - else if ((R2_GLOBALS._v56AA6 == 2) && (R2_GLOBALS._v56AA7 == 1) && (R2_GLOBALS._v56AA8 == 1)) + else if ((R2_GLOBALS._ductMazePanel1State == 2) && (R2_GLOBALS._ductMazePanel2State == 1) && (R2_GLOBALS._ductMazePanel3State == 1)) scene->_field418 = 2; - else if ((R2_GLOBALS._v56AA6 == 2) && (R2_GLOBALS._v56AA7 == 1) && (R2_GLOBALS._v56AA8 == 2)) + else if ((R2_GLOBALS._ductMazePanel1State == 2) && (R2_GLOBALS._ductMazePanel2State == 1) && (R2_GLOBALS._ductMazePanel3State == 2)) scene->_field418 = 3; - else if ((R2_GLOBALS._v56AA6 == 2) && (R2_GLOBALS._v56AA7 == 3) && (R2_GLOBALS._v56AA8 == 1)) + else if ((R2_GLOBALS._ductMazePanel1State == 2) && (R2_GLOBALS._ductMazePanel2State == 3) && (R2_GLOBALS._ductMazePanel3State == 1)) scene->_field418 = 4; return true; @@ -1520,13 +1515,13 @@ void Scene1200::postInit(SceneObjectList *OwnerList) { _field418 = 0; _field41A = 0; - if ((R2_GLOBALS._v56AA6 == 1) && (R2_GLOBALS._v56AA7 == 1) && (R2_GLOBALS._v56AA8 == 1)) + if ((R2_GLOBALS._ductMazePanel1State == 1) && (R2_GLOBALS._ductMazePanel2State == 1) && (R2_GLOBALS._ductMazePanel3State == 1)) _field418 = 1; - else if ((R2_GLOBALS._v56AA6 == 2) && (R2_GLOBALS._v56AA7 == 1) && (R2_GLOBALS._v56AA8 == 1)) + else if ((R2_GLOBALS._ductMazePanel1State == 2) && (R2_GLOBALS._ductMazePanel2State == 1) && (R2_GLOBALS._ductMazePanel3State == 1)) _field418 = 2; - else if ((R2_GLOBALS._v56AA6 == 2) && (R2_GLOBALS._v56AA7 == 1) && (R2_GLOBALS._v56AA8 == 2)) + else if ((R2_GLOBALS._ductMazePanel1State == 2) && (R2_GLOBALS._ductMazePanel2State == 1) && (R2_GLOBALS._ductMazePanel3State == 2)) _field418 = 3; - else if ((R2_GLOBALS._v56AA6 == 2) && (R2_GLOBALS._v56AA7 == 3) && (R2_GLOBALS._v56AA8 == 1)) + else if ((R2_GLOBALS._ductMazePanel1State == 2) && (R2_GLOBALS._ductMazePanel2State == 3) && (R2_GLOBALS._ductMazePanel3State == 1)) _field418 = 4; R2_GLOBALS._player.postInit(); @@ -6023,7 +6018,7 @@ void Scene1337::subCF31D() { count = rndVal; break; } - + // CHECKME: inside the check on rndVal? rndVal--; if (rndVal < 0) rndVal = 3; @@ -6047,9 +6042,10 @@ void Scene1337::subCF31D() { int rndVal = R2_GLOBALS._randomSource.getRandomNumber(3); for (int j = 0; j <= 3; j++) { + //CHECKME: tmpVal or rndVal? if (tmpVal != 1) { for (int k = 0; k <= 7; k++) { - // 'k' is not used in that loop. + // CHECKME: 'k' is not used in that loop. // It looks suspicious. if ((_arrunkObj1337[tmpVal]._arr3[0]._field34 == 0) && (subC32B1(tmpVal, _arrunkObj1337[1]._arr1[i]._field34))) { count = tmpVal; @@ -6073,12 +6069,9 @@ void Scene1337::subCF31D() { } } - if (found) { - if (count == -1) - return; - + if (found) subC3456(&_arrunkObj1337[1]._arr1[i], &_arrunkObj1337[count]._arr3[0]); - } else { + else { int j; for (j = 0; j <= 3; j++) { if (subC27F9(_arrunkObj1337[1]._arr1[j]._field34) != -1) { @@ -6108,14 +6101,10 @@ void Scene1337::subCF31D() { } } - if (found) { - if (count == -1) - return; - + if (found) subC3456(&_arrunkObj1337[1]._arr1[j], &_arrunkObj1337[count]._arr3[0]); - } else { + else subC2835(1); - } } } @@ -6896,8 +6885,6 @@ void Scene1337::subD1A48(int arg1) { void Scene1500::postInit(SceneObjectList *OwnerList) { loadScene(1500); R2_GLOBALS._uiElements._active = false; - R2_GLOBALS._v5589E.top = 0; - R2_GLOBALS._v5589E.bottom = 200; setZoomPercents(170, 13, 240, 100); SceneExt::postInit(); scalePalette(65, 65, 65); @@ -6908,9 +6895,9 @@ void Scene1500::postInit(SceneObjectList *OwnerList) { _starshipShadow.postInit(); _starshipShadow.setup(1401, 1, 1); - _starshipShadow._effect = 5; + _starshipShadow._effect = EFFECT_SHADOW_MAP; _starshipShadow.fixPriority(10); - _starshipShadow._field9C = _field312; + _starshipShadow._shadowMap = _shadowPaletteMap; _starship.postInit(); _starship.setup(1400, 1, 1); @@ -6920,9 +6907,9 @@ void Scene1500::postInit(SceneObjectList *OwnerList) { if (R2_GLOBALS._sceneManager._previousScene != 1010) { _smallShipShadow.postInit(); _smallShipShadow.setup(1401, 2, 1); - _smallShipShadow._effect = 5; + _smallShipShadow._effect = EFFECT_SHADOW_MAP; _smallShipShadow.fixPriority(10); - _smallShipShadow._field9C = _field312; + _smallShipShadow._shadowMap = _shadowPaletteMap; _smallShip.postInit(); _smallShip._moveRate = 30; @@ -6956,8 +6943,6 @@ void Scene1500::postInit(SceneObjectList *OwnerList) { } void Scene1500::remove() { - R2_GLOBALS._v5589E.top = 3; - R2_GLOBALS._v5589E.bottom = 168; R2_GLOBALS._uiElements._active = true; SceneExt::remove(); @@ -7147,7 +7132,7 @@ void Scene1530::postInit(SceneObjectList *OwnerList) { _sceneMode = 1; } else { _seeker.postInit(); - _seeker._effect = 1; + _seeker._effect = EFFECT_SHADED; R2_GLOBALS._player.postInit(); R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); @@ -7198,13 +7183,12 @@ void Scene1530::dispatch() { *--------------------------------------------------------------------------*/ Scene1550::Junk::Junk() { - _fieldA4 = _junkNumber = 0; + _junkNumber = 0; } void Scene1550::Junk::synchronize(Serializer &s) { SceneActor::synchronize(s); - s.syncAsSint16LE(_fieldA4); s.syncAsSint16LE(_junkNumber); } @@ -7277,7 +7261,7 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { switch (action) { case CURSOR_USE: if (_componentId == 8) { - scene->_field412 = 1; + scene->_dontExit = true; R2_GLOBALS._player.disableControl(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1576; @@ -7299,93 +7283,93 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { return true; break; case R2_FUEL_CELL: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 6) { R2_GLOBALS._player.disableControl(); - scene->_landingStrut.postInit(); + scene->_wreckage2.postInit(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1574; else scene->_sceneMode = 1582; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[5], &scene->_landingStrut, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[5], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); break; case R2_GYROSCOPE: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 3) { R2_GLOBALS._player.disableControl(); - scene->_landingStrut.postInit(); + scene->_wreckage2.postInit(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1571; else scene->_sceneMode = 1581; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[2], &scene->_landingStrut, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[2], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); break; case R2_GUIDANCE_MODULE: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 1) { R2_GLOBALS._player.disableControl(); - scene->_landingStrut.postInit(); + scene->_wreckage2.postInit(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1569; else scene->_sceneMode = 1579; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[0], &scene->_landingStrut, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[0], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); break; case R2_THRUSTER_VALVE: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 4) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 1572; - scene->_landingStrut.postInit(); - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[3], &scene->_landingStrut, NULL); + scene->_wreckage2.postInit(); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[3], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); break; case R2_RADAR_MECHANISM: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 2) { R2_GLOBALS._player.disableControl(); - scene->_landingStrut.postInit(); + scene->_wreckage2.postInit(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1570; else scene->_sceneMode = 1580; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[1], &scene->_landingStrut, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[1], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); break; case R2_IGNITOR: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 5) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 1573; - scene->_landingStrut.postInit(); - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[4], &scene->_landingStrut, NULL); + scene->_wreckage2.postInit(); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[4], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); break; case R2_BATTERY: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 7) { R2_GLOBALS._player.disableControl(); - scene->_landingStrut.postInit(); + scene->_wreckage2.postInit(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1575; else scene->_sceneMode = 1583; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[6], &scene->_landingStrut, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[6], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); @@ -7455,45 +7439,47 @@ void Scene1550::ShipComponent::setupShipComponent(int componentId) { setDetails(1550, 70, -1, -1, 2, (SceneItem *)NULL); } -Scene1550::UnkObj15503::UnkObj15503() { - _fieldA4 = 0; +Scene1550::DishControlsWindow::DishControl::DishControl() { + _controlId = 0; } -void Scene1550::UnkObj15503::synchronize(Serializer &s) { +void Scene1550::DishControlsWindow::DishControl::synchronize(Serializer &s) { SceneActor::synchronize(s); - s.syncAsSint16LE(_fieldA4); + s.syncAsSint16LE(_controlId); } -bool Scene1550::UnkObj15503::startAction(CursorType action, Event &event) { +bool Scene1550::DishControlsWindow::DishControl::startAction(CursorType action, Event &event) { Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; if (action != CURSOR_USE) return SceneActor::startAction(action, event); - switch (_fieldA4) { + switch (_controlId) { case 1: - if (scene->_actor13._frame == 5) { + // Button control + if (scene->_dish._frame == 5) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 25; - if (scene->_actor4._frame == 1) { - scene->setAction(&scene->_sequenceManager1, scene, 1560, &scene->_actor4, NULL); + if (scene->_walkway._frame == 1) { + scene->setAction(&scene->_sequenceManager1, scene, 1560, &scene->_walkway, NULL); R2_GLOBALS.setFlag(20); setFrame(2); } else { - scene->setAction(&scene->_sequenceManager1, scene, 1561, &scene->_actor4, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 1561, &scene->_walkway, NULL); R2_GLOBALS.clearFlag(20); setFrame(1); } - scene->_unkArea1.remove(); + scene->_dishControlsWindow.remove(); } break; case 2: + // Lever control R2_GLOBALS._player.disableControl(); - if (scene->_actor13._frame == 1) { + if (scene->_dish._frame == 1) { scene->_sceneMode = 23; scene->setAction(&scene->_sequenceManager1, scene, 1560, this, NULL); } else { - if (scene->_actor4._frame == 1) + if (scene->_walkway._frame == 1) scene->_sceneMode = 24; else scene->_sceneMode = 22; @@ -7506,22 +7492,19 @@ bool Scene1550::UnkObj15503::startAction(CursorType action, Event &event) { return true; } -void Scene1550::UnkArea1550::remove() { +void Scene1550::DishControlsWindow::remove() { Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; - _unkObj155031.remove(); - _unkObj155032.remove(); - // sub201EA is a common part with UnkArea1200 - R2_GLOBALS._sceneItems.remove((SceneItem *)this); - _areaActor.remove(); - SceneArea::remove(); - R2_GLOBALS._insetUp--; - // + _button.remove(); + _lever.remove(); + + ModalWindow::remove(); + if ((scene->_sceneMode >= 20) && (scene->_sceneMode <= 29)) return; R2_GLOBALS._player.disableControl(); - if (scene->_actor4._frame == 1) { + if (scene->_walkway._frame == 1) { scene->_sceneMode = 1559; scene->setAction(&scene->_sequenceManager1, scene, 1559, &R2_GLOBALS._player, NULL); } else { @@ -7530,91 +7513,40 @@ void Scene1550::UnkArea1550::remove() { } } -void Scene1550::UnkArea1550::process(Event &event) { -// This is a copy of Scene1200::LaserPanel::process - if (_field20 != R2_GLOBALS._insetUp) - return; - - CursorType cursor = R2_GLOBALS._events.getCursor(); - - if (_areaActor._bounds.contains(event.mousePos.x + g_globals->gfxManager()._bounds.left , event.mousePos.y)) { - if (cursor == _cursorNum) { - R2_GLOBALS._events.setCursor(_savedCursorNum); - } - } else if (event.mousePos.y < 168) { - if (cursor != _cursorNum) { - _savedCursorNum = cursor; - R2_GLOBALS._events.setCursor(CURSOR_INVALID); - } - if (event.eventType == EVENT_BUTTON_DOWN) { - event.handled = true; - R2_GLOBALS._events.setCursor(_savedCursorNum); - remove(); - } - } -} +void Scene1550::DishControlsWindow::setup2(int visage, int stripFrameNum, int frameNum, + int posX, int posY) { + // Call inherited setup + ModalWindow::setup2(visage, stripFrameNum, frameNum, posX, posY); -void Scene1550::UnkArea1550::setup2(int visage, int stripFrameNum, int frameNum, int posX, int posY) { - // UnkArea1200::setup2(); + // Further setup Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; - - _areaActor.postInit(); - _areaActor.setup(visage, stripFrameNum, frameNum); - _areaActor.setPosition(Common::Point(posX, posY)); - _areaActor.fixPriority(250); - _cursorNum = CURSOR_INVALID; - scene->_sceneAreas.push_front(this); - ++R2_GLOBALS._insetUp; - _field20 = R2_GLOBALS._insetUp; - // - setup3(1550, 67, -1, -1); - _unkObj155031.postInit(); - _unkObj155031._fieldA4 = 1; - if (scene->_actor4._frame == 1) - _unkObj155031.setup(1559, 3, 1); - else - _unkObj155031.setup(1559, 3, 2); - _unkObj155031.setPosition(Common::Point(142, 79)); - _unkObj155031.fixPriority(251); - _unkObj155031.setDetails(1550, 68, -1, -1, 2, (SceneItem *) NULL); - - _unkObj155032.postInit(); - _unkObj155032._numFrames = 5; - _unkObj155032._fieldA4 = 2; - if (scene->_actor13._frame == 1) - _unkObj155032.setup(1559, 2, 1); + _button.postInit(); + _button._controlId = 1; + if (scene->_walkway._frame == 1) + _button.setup(1559, 3, 1); else - _unkObj155032.setup(1559, 2, 2); - _unkObj155032.setPosition(Common::Point(156, 103)); - _unkObj155032.fixPriority(251); - _unkObj155032.setDetails(1550, 69, -1, -1, 2, (SceneItem *) NULL); -} + _button.setup(1559, 3, 2); + _button.setPosition(Common::Point(142, 79)); + _button.fixPriority(251); + _button.setDetails(1550, 68, -1, -1, 2, (SceneItem *) NULL); -void Scene1550::UnkArea1550::setup3(int resNum, int lookLineNum, int talkLineNum, int useLineNum) { - // Copy of Scene1200::LaserPanel::proc13 - _areaActor.setDetails(resNum, lookLineNum, talkLineNum, useLineNum, 2, (SceneItem *) NULL); + _lever.postInit(); + _lever._numFrames = 5; + _lever._controlId = 2; + if (scene->_dish._frame == 1) + _lever.setup(1559, 2, 1); + else + _lever.setup(1559, 2, 2); + _lever.setPosition(Common::Point(156, 103)); + _lever.fixPriority(251); + _lever.setDetails(1550, 69, -1, -1, 2, (SceneItem *) NULL); } bool Scene1550::WorkingShip::startAction(CursorType action, Event &event) { return SceneHotspot::startAction(action, event); } -bool Scene1550::Hotspot3::startAction(CursorType action, Event &event) { - // Arrays related to this scene are all hacky in the origina: they are based on the impossibility to use Miranda - assert ((R2_GLOBALS._player._characterIndex == R2_QUINN) || (R2_GLOBALS._player._characterIndex == R2_SEEKER)); - // The original contains a debug message when CURSOR_TALK is used. - // This part is totally useless, we could remove it (and the entire function as well) - if (action == CURSOR_TALK) - warning("Location: %d/%d - %d", - R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x, - R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y, - scene1550AreaMap[(R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y * 30)] + - R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x); - - return SceneHotspot::startAction(action, event); -} - bool Scene1550::Wreckage::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); } @@ -7630,23 +7562,23 @@ bool Scene1550::Companion::startAction(CursorType action, Event &event) { return true; } -bool Scene1550::Actor8::startAction(CursorType action, Event &event) { +bool Scene1550::AirBag::startAction(CursorType action, Event &event) { if (action != CURSOR_USE) return SceneActor::startAction(action, event); R2_GLOBALS._player.disableControl(); Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; - scene->_field412 = 1; + scene->_dontExit = true; if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1552; else scene->_sceneMode = 1588; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_actor8, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_airbag, NULL); return true; } -bool Scene1550::Actor9::startAction(CursorType action, Event &event) { +bool Scene1550::Joystick::startAction(CursorType action, Event &event) { Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; switch (action) { @@ -7669,7 +7601,7 @@ bool Scene1550::Actor9::startAction(CursorType action, Event &event) { } } -bool Scene1550::Actor10::startAction(CursorType action, Event &event) { +bool Scene1550::Gyroscope::startAction(CursorType action, Event &event) { if (action != CURSOR_USE) return SceneActor::startAction(action, event); @@ -7680,27 +7612,29 @@ bool Scene1550::Actor10::startAction(CursorType action, Event &event) { else scene->_sceneMode = 1589; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_actor10, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, + &scene->_gyroscope, NULL); return true; } -bool Scene1550::Actor11::startAction(CursorType action, Event &event) { +bool Scene1550::DiagnosticsDisplay::startAction(CursorType action, Event &event) { if (action != CURSOR_USE) return SceneActor::startAction(action, event); Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; R2_GLOBALS._player.disableControl(); - scene->_field412 = 1; + scene->_dontExit = true; if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1586; else scene->_sceneMode = 1587; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_actor11, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, + &scene->_diagnosticsDisplay, NULL); return true; } -bool Scene1550::Actor12::startAction(CursorType action, Event &event) { +bool Scene1550::DishTower::startAction(CursorType action, Event &event) { if (action != CURSOR_USE) return SceneActor::startAction(action, event); @@ -7712,10 +7646,10 @@ bool Scene1550::Actor12::startAction(CursorType action, Event &event) { scene->setAction(&scene->_sequenceManager1, scene, 1585, &R2_GLOBALS._player, NULL); } else { R2_GLOBALS._player.disableControl(); - switch(scene->_field415) { + switch(scene->_dishMode) { case 0: - scene->_actor13.fixPriority(168); - scene->_actor4.fixPriority(125); + scene->_dish.fixPriority(168); + scene->_walkway.fixPriority(125); scene->_sceneMode = 1558; scene->setAction(&scene->_sequenceManager1, scene, 1558, &R2_GLOBALS._player, NULL); break; @@ -7723,9 +7657,9 @@ bool Scene1550::Actor12::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); break; case 2: - scene->_field415 = 1; + scene->_dishMode = 1; scene->_sceneMode = 1563; - scene->setAction(&scene->_sequenceManager1, scene, 1563, &R2_GLOBALS._player, &scene->_actor4, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 1563, &R2_GLOBALS._player, &scene->_walkway, NULL); break; default: break; @@ -7735,12 +7669,12 @@ bool Scene1550::Actor12::startAction(CursorType action, Event &event) { } -bool Scene1550::Actor13::startAction(CursorType action, Event &event) { +bool Scene1550::Dish::startAction(CursorType action, Event &event) { Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; switch (action) { case CURSOR_USE: - if (scene->_field415 != 2) + if (scene->_dishMode != 2) return SceneActor::startAction(action, event); if (R2_INVENTORY.getObjectScene(R2_BATTERY) == 1550) { @@ -7752,7 +7686,7 @@ bool Scene1550::Actor13::startAction(CursorType action, Event &event) { return true; break; case CURSOR_LOOK: - if (scene->_field415 != 2) + if (scene->_dishMode != 2) return SceneActor::startAction(action, event); if (R2_INVENTORY.getObjectScene(R2_BATTERY) == 1550) { @@ -7767,22 +7701,24 @@ bool Scene1550::Actor13::startAction(CursorType action, Event &event) { } } +/*--------------------------------------------------------------------------*/ + Scene1550::Scene1550() { - _field412 = 0; - _field414 = 0; - _field415 = 0; - _field417 = 0; - _field419 = 0; + _dontExit = false; + _wallType = 0; + _dishMode = 0; + _sceneResourceId = 0; + _walkRegionsId = 0; } void Scene1550::synchronize(Serializer &s) { SceneExt::synchronize(s); - s.syncAsSint16LE(_field412); - s.syncAsByte(_field414); - s.syncAsSint16LE(_field415); - s.syncAsSint16LE(_field417); - s.syncAsSint16LE(_field419); + s.syncAsSint16LE(_dontExit); + s.syncAsByte(_wallType); + s.syncAsSint16LE(_dishMode); + s.syncAsSint16LE(_sceneResourceId); + s.syncAsSint16LE(_walkRegionsId); } void Scene1550::postInit(SceneObjectList *OwnerList) { @@ -7797,8 +7733,8 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { scalePalette(65, 65, 65); setZoomPercents(30, 75, 170, 100); - _field417 = 1550; - _field419 = 0; + _sceneResourceId = 1550; + _walkRegionsId = 0; if (R2_GLOBALS._sceneManager._previousScene == -1) R2_GLOBALS.setFlag(16); @@ -7814,7 +7750,7 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { _stripManager.addSpeaker(&_seekerSpeaker); R2_GLOBALS._player.postInit(); - R2_GLOBALS._player._effect = 6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; if (R2_GLOBALS._player._characterIndex == R2_QUINN) R2_GLOBALS._player.setup(1500, 3, 1); @@ -7832,7 +7768,7 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); R2_GLOBALS._player.disableControl(); - _field414 = 0; + _wallType = 0; _companion.changeZoom(-1); R2_GLOBALS._player.changeZoom(-1); @@ -7853,9 +7789,9 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.disableControl(); R2_GLOBALS._player.animate(ANIM_MODE_NONE, NULL); - _field412 = 1; + _dontExit = true; - _landingStrut.postInit(); + _wreckage2.postInit(); _shipComponents[7].setupShipComponent(8); _shipComponents[7].hide(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) @@ -7863,7 +7799,7 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { else _sceneMode = 1578; - setAction(&_sequenceManager1, this, _sceneMode, &R2_GLOBALS._player, &_landingStrut, &_shipComponents[7], NULL); + setAction(&_sequenceManager1, this, _sceneMode, &R2_GLOBALS._player, &_wreckage2, &_shipComponents[7], NULL); R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] = 1550; } else { R2_GLOBALS._player.enableControl(); @@ -7875,9 +7811,9 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { enterArea(); - _shipHull.setDetails(16, 1550, 10, -1, -1); - _item2.setDetails(24, 1550, 10, -1, -1); - _item3.setDetails(Rect(0, 0, 320, 200), 1550, 0, 1, -1, 1, NULL); + _intactHull1.setDetails(16, 1550, 10, -1, -1); + _intactHull2.setDetails(24, 1550, 10, -1, -1); + _background.setDetails(Rect(0, 0, 320, 200), 1550, 0, 1, -1, 1, NULL); if ((R2_GLOBALS._sceneManager._previousScene == 1500) && (R2_GLOBALS.getFlag(16))) { _sceneMode = 70; @@ -7892,8 +7828,8 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { _companion.changeZoom(77); _companion.setDetails(1550, -1, -1, -1, 2, (SceneItem *) NULL); - assert(_field419 >= 1550); - R2_GLOBALS._walkRegions.disableRegion(k5A750[_field419 - 1550]); + assert(_walkRegionsId >= 1550); + R2_GLOBALS._walkRegions.disableRegion(k5A750[_walkRegionsId - 1550]); setAction(&_sequenceManager1, this, 1590, &_companion, NULL); } else if ((_sceneMode != 1577) && (_sceneMode != 1578)) @@ -7909,7 +7845,7 @@ void Scene1550::signal() { case 5: // No break on purpose case 7: - _field412 = 0; + _dontExit = false; R2_GLOBALS._player.enableControl(CURSOR_WALK); break; case 20: @@ -7919,27 +7855,28 @@ void Scene1550::signal() { case 25: // No break on purpose case 1563: + // Show the communication dish controls window R2_GLOBALS.clearFlag(20); - _unkArea1.setup2(1559, 1, 1, 160, 125); + _dishControlsWindow.setup2(1559, 1, 1, 160, 125); R2_GLOBALS._player.enableControl(); _sceneMode = 0; break; case 22: - _unkArea1.remove(); + _dishControlsWindow.remove(); _sceneMode = 24; - setAction(&_sequenceManager1, this, 1561, &_actor4, NULL); + setAction(&_sequenceManager1, this, 1561, &_walkway, NULL); R2_GLOBALS.clearFlag(20); break; case 23: - _unkArea1.remove(); + _dishControlsWindow.remove(); _sceneMode = 20; - setAction(&_sequenceManager1, this, 1566, &_actor13, &_actor5, NULL); + setAction(&_sequenceManager1, this, 1566, &_dish, &_dishTowerShadow, NULL); R2_GLOBALS.setFlag(21); break; case 24: - _unkArea1.remove(); + _dishControlsWindow.remove(); _sceneMode = 21; - setAction(&_sequenceManager1, this, 1567, &_actor13, &_actor5, NULL); + setAction(&_sequenceManager1, this, 1567, &_dish, &_dishTowerShadow, NULL); R2_GLOBALS.clearFlag(19); break; case 30: @@ -8035,18 +7972,20 @@ void Scene1550::signal() { _companion.changeZoom(-1); _sceneMode = 1592; if (R2_GLOBALS._player._characterIndex == R2_QUINN) - setAction(&_sequenceManager1, this, 1592, &R2_GLOBALS._player, &_companion, &_junk[0], &_actor9, NULL); + setAction(&_sequenceManager1, this, 1592, &R2_GLOBALS._player, &_companion, + &_junk[0], &_joystick, NULL); else - setAction(&_sequenceManager1, this, 1593, &R2_GLOBALS._player, &_companion, &_junk[0], &_actor9, NULL); + setAction(&_sequenceManager1, this, 1593, &R2_GLOBALS._player, &_companion, + &_junk[0], &_joystick, NULL); break; case 61: R2_GLOBALS._player.enableControl(CURSOR_USE); R2_GLOBALS._player._canWalk = false; - _field415 = 2; + _dishMode = 2; break; case 62: R2_GLOBALS._player.enableControl(CURSOR_TALK); - if (_field415 == 2) { + if (_dishMode == 2) { R2_GLOBALS._player.enableControl(CURSOR_USE); R2_GLOBALS._player._canWalk = false; } @@ -8100,8 +8039,8 @@ void Scene1550::signal() { // No break on purpose case 1588: R2_INVENTORY.setObjectScene(R2_AIRBAG, R2_GLOBALS._player._characterIndex); - _actor8.remove(); - _field412 = 0; + _airbag.remove(); + _dontExit = false; R2_GLOBALS._player.enableControl(); break; case 1553: @@ -8109,33 +8048,33 @@ void Scene1550::signal() { break; case 1554: R2_GLOBALS._player.enableControl(); - _field412 = 0; + _dontExit = false; break; case 1555: // No break on purpose case 1589: R2_INVENTORY.setObjectScene(R2_GYROSCOPE, R2_GLOBALS._player._characterIndex); - _actor10.remove(); + _gyroscope.remove(); R2_GLOBALS._player.enableControl(); break; case 1558: - _actor13.fixPriority(124); - _field415 = 1; - _unkArea1.setup2(1559, 1, 1, 160, 125); + _dish.fixPriority(124); + _dishMode = 1; + _dishControlsWindow.setup2(1559, 1, 1, 160, 125); R2_GLOBALS._player.enableControl(); break; case 1559: - _actor13.fixPriority(168); - _actor4.fixPriority(169); + _dish.fixPriority(168); + _walkway.fixPriority(169); R2_GLOBALS._player.fixPriority(-1); R2_GLOBALS._player.changeZoom(-1); - _field415 = 0; + _dishMode = 0; R2_GLOBALS._player.enableControl(); break; case 1562: R2_GLOBALS._player.enableControl(); R2_GLOBALS._player._canWalk = false; - _field415 = 2; + _dishMode = 2; break; case 1564: R2_INVENTORY.setObjectScene(R2_BATTERY, 1); @@ -8149,52 +8088,52 @@ void Scene1550::signal() { case 1569: // No break on purpose case 1579: - _field412 = 0; - _landingStrut.remove(); + _dontExit = false; + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_GUIDANCE_MODULE, 0); R2_GLOBALS._player.enableControl(); break; case 1570: // No break on purpose case 1580: - _field412 = 0; - _landingStrut.remove(); + _dontExit = false; + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_RADAR_MECHANISM, 0); R2_GLOBALS._player.enableControl(); break; case 1571: // No break on purpose case 1581: - _field412 = 0; - _landingStrut.remove(); + _dontExit = false; + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_GYROSCOPE, 0); R2_GLOBALS._player.enableControl(); break; case 1572: - _field412 = 0; - _landingStrut.remove(); + _dontExit = false; + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_THRUSTER_VALVE, 0); R2_GLOBALS._player.enableControl(); break; case 1573: - _field412 = 0; - _landingStrut.remove(); + _dontExit = false; + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_IGNITOR, 0); R2_GLOBALS._player.enableControl(); break; case 1574: // No break on purpose case 1582: - _field412 = 0; - _landingStrut.remove(); + _dontExit = false; + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_FUEL_CELL, 0); R2_GLOBALS._player.enableControl(); break; case 1575: // No break on purpose case 1583: - _field412 = 0; - _landingStrut.remove(); + _dontExit = false; + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_BATTERY, 0); R2_GLOBALS._player.enableControl(); break; @@ -8208,8 +8147,8 @@ void Scene1550::signal() { // No break on purpose case 1578: _sceneMode = 0; - _landingStrut.remove(); - _field412 = 0; + _wreckage2.remove(); + _dontExit = false; R2_GLOBALS._player.fixPriority(-1); R2_GLOBALS._player.enableControl(); break; @@ -8221,12 +8160,12 @@ void Scene1550::signal() { // No break on purpose case 1587: R2_INVENTORY.setObjectScene(R2_DIAGNOSTICS_DISPLAY, R2_GLOBALS._player._characterIndex); - _landingStrut.remove(); - _field412 = 0; + _wreckage2.remove(); + _dontExit = false; R2_GLOBALS._player.enableControl(); break; case 1592: - _actor9.remove(); + _joystick.remove(); R2_INVENTORY.setObjectScene(R2_JOYSTICK, 1); if (R2_GLOBALS._player._characterIndex == R2_QUINN) { R2_GLOBALS._s1550PlayerArea[R2_SEEKER] = R2_GLOBALS._s1550PlayerArea[R2_QUINN]; @@ -8246,14 +8185,14 @@ void Scene1550::process(Event &event) { if ((!R2_GLOBALS._player._canWalk) && (R2_GLOBALS._events.getCursor() == R2_NEGATOR_GUN) && (event.eventType == EVENT_BUTTON_DOWN) && (this->_screenNumber == 1234)) { int curReg = R2_GLOBALS._sceneRegions.indexOf(event.mousePos); if (curReg == 0) - _field412 = 1; + _dontExit = true; else if (((R2_GLOBALS._player._position.y < 90) && (event.mousePos.y > 90)) || ((R2_GLOBALS._player._position.y > 90) && (event.mousePos.y < 90))) - _field412 = 1; + _dontExit = true; else - _field412 = 0; + _dontExit = false; if ((curReg == 13) || (curReg == 14)) - _field412 = 0; + _dontExit = false; } Scene::process(event); @@ -8277,13 +8216,13 @@ void Scene1550::dispatch() { case 144: // No break on purpose case 146: - _actor13._frame = 5; + _dish._frame = 5; R2_GLOBALS._player._shade = 3; break; case 148: // No break on purpose case 149: - _actor13._frame = 1; + _dish._frame = 1; // No break on purpose case 147: // No break on purpose @@ -8296,7 +8235,7 @@ void Scene1550::dispatch() { #endif } - if (_field412 != 0) + if (_dontExit) return; switch (R2_GLOBALS._player.getRegionIndex() - 11) { @@ -8306,7 +8245,7 @@ void Scene1550::dispatch() { // Exiting the top of the screen R2_GLOBALS._player.disableControl(); _sceneMode = 1; - _field412 = 1; + _dontExit = true; --R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y; enterArea(); @@ -8330,7 +8269,7 @@ void Scene1550::dispatch() { // Exiting the bottom of the screen R2_GLOBALS._player.disableControl(); _sceneMode = 3; - _field412 = 1; + _dontExit = true; ++R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y; enterArea(); @@ -8354,7 +8293,7 @@ void Scene1550::dispatch() { // Exiting the right of the screen R2_GLOBALS._player.disableControl(); _sceneMode = 5; - _field412 = 1; + _dontExit = true; ++R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x; enterArea(); @@ -8382,7 +8321,7 @@ void Scene1550::dispatch() { // Exiting to the left of the screen R2_GLOBALS._player.disableControl(); _sceneMode = 7; - _field412 = 1; + _dontExit = true; --R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x; enterArea(); @@ -8423,11 +8362,11 @@ void Scene1550::saveCharacter(int characterIndex) { SceneExt::saveCharacter(characterIndex); } -void Scene1550::SceneActor1550::subA4D14(int frameNumber, int strip) { +void Scene1550::Wall::setupWall(int frameNumber, int strip) { Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; postInit(); - if (scene->_field414 == 2) + if (scene->_wallType == 2) setup(1551, strip, frameNumber); else setup(1554, strip, frameNumber); @@ -8538,7 +8477,7 @@ void Scene1550::SceneActor1550::subA4D14(int frameNumber, int strip) { switch (frameNumber) { case 2: fixPriority(2); - if (scene->_field414 == 2) + if (scene->_wallType == 2) setup(1553, 2, 1); else setup(1556, 2, 1); @@ -8563,7 +8502,7 @@ void Scene1550::SceneActor1550::subA4D14(int frameNumber, int strip) { case 4: if (frameNumber == 2) { fixPriority(250); - if (scene->_field414 == 2) + if (scene->_wallType == 2) setup(1553, 1, 1); else setup(1556, 1, 1); @@ -8608,17 +8547,14 @@ void Scene1550::SceneActor1550::subA4D14(int frameNumber, int strip) { } void Scene1550::enterArea() { - Rect tmpRect; - _field419 = 0; - _field415 = 0; - - tmpRect = R2_GLOBALS._v5589E; + _walkRegionsId = 0; + _dishMode = 0; - _actor14.remove(); + _wallCorner1.remove(); _westWall.remove(); _northWall.remove(); _southWall.remove(); - _actor16.remove(); + _wallCorner2.remove(); _eastWall.remove(); for (int i = 0; i < 8; ++i) @@ -8629,21 +8565,21 @@ void Scene1550::enterArea() { for (int i = 0; i < 8; ++i) _shipComponents[i].remove(); - _actor8.remove(); - _actor9.remove(); - _actor10.remove(); - _actor3.remove(); - _actor11.remove(); + _airbag.remove(); + _joystick.remove(); + _gyroscope.remove(); + _wreckage4.remove(); + _diagnosticsDisplay.remove(); if ((_sceneMode != 1577) && (_sceneMode != 1578)) - _landingStrut.remove(); + _wreckage2.remove(); - _actor2.remove(); + _wreckage3.remove(); _companion.remove(); - _actor13.remove(); - _actor5.remove(); - _actor12.remove(); - _actor4.remove(); + _dish.remove(); + _dishTowerShadow.remove(); + _dishTower.remove(); + _walkway.remove(); // Set up of special walk regions for certain areas switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y) { @@ -8651,11 +8587,11 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x) { case 3: R2_GLOBALS._walkRegions.load(1554); - _field419 = 1554; + _walkRegionsId = 1554; break; case 4: R2_GLOBALS._walkRegions.load(1553); - _field419 = 1553; + _walkRegionsId = 1553; break; default: break; @@ -8667,7 +8603,7 @@ void Scene1550::enterArea() { if ((R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x == 23) || (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x)) { if (!R2_GLOBALS.getFlag(16)) { R2_GLOBALS._walkRegions.load(1559); - _field419 = 1559; + _walkRegionsId = 1559; } } break; @@ -8675,11 +8611,11 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x) { case 10: R2_GLOBALS._walkRegions.load(1555); - _field419 = 1555; + _walkRegionsId = 1555; break; case 11: R2_GLOBALS._walkRegions.load(1556); - _field419 = 1556; + _walkRegionsId = 1556; break; default: break; @@ -8689,11 +8625,11 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x) { case 24: R2_GLOBALS._walkRegions.load(1558); - _field419 = 1558; + _walkRegionsId = 1558; break; case 25: R2_GLOBALS._walkRegions.load(1557); - _field419 = 1557; + _walkRegionsId = 1557; break; default: break; @@ -8703,15 +8639,15 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x) { case 2: R2_GLOBALS._walkRegions.load(1552); - _field419 = 1552; + _walkRegionsId = 1552; break; case 3: R2_GLOBALS._walkRegions.load(1551); - _field419 = 1551; + _walkRegionsId = 1551; break; case 15: R2_GLOBALS._walkRegions.load(1575); - _field419 = 1575; + _walkRegionsId = 1575; default: break; } @@ -8728,7 +8664,7 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x - 22) { case 0: varA = 1553; - _northWall.subA4D14(6, 0); + _northWall.setupWall(6, 0); break; case 1: // No break on purpose @@ -8741,7 +8677,7 @@ void Scene1550::enterArea() { break; case 5: varA = 1553; - _northWall.subA4D14(6, 0); + _northWall.setupWall(6, 0); break; default: break; @@ -8753,11 +8689,11 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x - 21) { case 0: varA = 1550; - _northWall.subA4D14(9, 0); + _northWall.setupWall(9, 0); break; case 1: varA = 1552; - _northWall.subA4D14(10, 0); + _northWall.setupWall(10, 0); break; case 2: // No break on purpose @@ -8770,11 +8706,11 @@ void Scene1550::enterArea() { break; case 6: varA = 1552; - _northWall.subA4D14(7, 0); + _northWall.setupWall(7, 0); break; case 7: varA = 1550; - _northWall.subA4D14(8, 0); + _northWall.setupWall(8, 0); break; default: break; @@ -8784,11 +8720,11 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x - 21) { case 0: varA = 1550; - _northWall.subA4D14(4, 0); + _northWall.setupWall(4, 0); break; case 1: varA = 1550; - _northWall.subA4D14(3, 0); + _northWall.setupWall(3, 0); break; case 2: // No break on purpose @@ -8801,11 +8737,11 @@ void Scene1550::enterArea() { break; case 6: varA = 1550; - _northWall.subA4D14(2, 0); + _northWall.setupWall(2, 0); break; case 7: varA = 1550; - _northWall.subA4D14(1, 0); + _northWall.setupWall(1, 0); break; default: break; @@ -8826,7 +8762,7 @@ void Scene1550::enterArea() { R2_GLOBALS._sceneManager._fadeMode = FADEMODE_IMMEDIATE; loadScene(1234); R2_GLOBALS._sceneManager._hasPalette = false; - _field414 = 0; + _wallType = 0; } } else { if (_screenNumber == 1234) { @@ -8837,15 +8773,15 @@ void Scene1550::enterArea() { } if (R2_GLOBALS._sceneManager._sceneNumber == 1234) - _field419 = 1576; + _walkRegionsId = 1576; - if (_field414 == 0) { - _field414 = 1; + if (_wallType == 0) { + _wallType = 1; } else { - if (_field414 == 2) { - _field414 = 3; + if (_wallType == 2) { + _wallType = 3; } else { - _field414 = 2; + _wallType = 2; } if (R2_GLOBALS._sceneManager._sceneNumber == 1550){ @@ -8861,7 +8797,7 @@ void Scene1550::enterArea() { R2_GLOBALS._sceneManager._fadeMode = FADEMODE_IMMEDIATE; if (varA == 0) { - if (_field417 != 1550) { + if (_sceneResourceId != 1550) { g_globals->_scenePalette.loadPalette(1550); R2_GLOBALS._sceneManager._hasPalette = true; } @@ -8871,7 +8807,7 @@ void Scene1550::enterArea() { } if (R2_GLOBALS._sceneManager._hasPalette) - _field417 = varA; + _sceneResourceId = varA; warning("sub_2C429()"); } @@ -8882,131 +8818,131 @@ void Scene1550::enterArea() { R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x]) { case 0: // Standard cell - if (_field419 == 0) { + if (_walkRegionsId == 0) { R2_GLOBALS._walkRegions.load(1550); - _field419 = 1550; + _walkRegionsId = 1550; } break; case 1: // North end of the spaceport - if (_field419 == 0) { + if (_walkRegionsId == 0) { R2_GLOBALS._walkRegions.load(1560); - _field419 = 1560; + _walkRegionsId = 1560; } - _actor14.subA4D14(2, 1); - _northWall.subA4D14(1, 3); - _actor16.subA4D14(2, 5); + _wallCorner1.setupWall(2, 1); + _northWall.setupWall(1, 3); + _wallCorner2.setupWall(2, 5); break; case 2: R2_GLOBALS._walkRegions.load(1561); - _field419 = 1561; - _actor14.subA4D14(2, 1); - _westWall.subA4D14(2, 2); - _northWall.subA4D14(1, 3); - _actor16.subA4D14(2, 5); + _walkRegionsId = 1561; + _wallCorner1.setupWall(2, 1); + _westWall.setupWall(2, 2); + _northWall.setupWall(1, 3); + _wallCorner2.setupWall(2, 5); break; case 3: R2_GLOBALS._walkRegions.load(1562); - _field419 = 1562; - _actor14.subA4D14(2, 1); - _northWall.subA4D14(1, 3); - _actor16.subA4D14(2, 5); - _eastWall.subA4D14(2, 6); + _walkRegionsId = 1562; + _wallCorner1.setupWall(2, 1); + _northWall.setupWall(1, 3); + _wallCorner2.setupWall(2, 5); + _eastWall.setupWall(2, 6); break; case 4: R2_GLOBALS._walkRegions.load(1563); - _field419 = 1563; - _northWall.subA4D14(2, 3); + _walkRegionsId = 1563; + _northWall.setupWall(2, 3); break; case 5: R2_GLOBALS._walkRegions.load(1564); - _field419 = 1564; - _southWall.subA4D14(2, 4); + _walkRegionsId = 1564; + _southWall.setupWall(2, 4); break; case 6: R2_GLOBALS._walkRegions.load(1565); - _field419 = 1565; - _actor14.subA4D14(1, 1); - _westWall.subA4D14(1, 2); - _northWall.subA4D14(3, 3); + _walkRegionsId = 1565; + _wallCorner1.setupWall(1, 1); + _westWall.setupWall(1, 2); + _northWall.setupWall(3, 3); break; case 7: R2_GLOBALS._walkRegions.load(1566); - _field419 = 1566; - _actor14.subA4D14(1, 1); - _westWall.subA4D14(1, 2); - _northWall.subA4D14(2, 4); + _walkRegionsId = 1566; + _wallCorner1.setupWall(1, 1); + _westWall.setupWall(1, 2); + _northWall.setupWall(2, 4); break; case 8: R2_GLOBALS._walkRegions.load(1567); - _field419 = 1567; - _westWall.subA4D14(5, 2); + _walkRegionsId = 1567; + _westWall.setupWall(5, 2); break; case 9: R2_GLOBALS._walkRegions.load(1568); - _field419 = 1568; - _westWall.subA4D14(4, 2); + _walkRegionsId = 1568; + _westWall.setupWall(4, 2); break; case 10: R2_GLOBALS._walkRegions.load(1569); - _field419 = 1569; - _actor14.subA4D14(3, 1); + _walkRegionsId = 1569; + _wallCorner1.setupWall(3, 1); break; case 11: R2_GLOBALS._walkRegions.load(1570); - _field419 = 1570; - _actor14.subA4D14(1, 1); - _westWall.subA4D14(1, 2); + _walkRegionsId = 1570; + _wallCorner1.setupWall(1, 1); + _westWall.setupWall(1, 2); break; case 12: R2_GLOBALS._walkRegions.load(1571); - _field419 = 1571; - _actor16.subA4D14(1, 5); - _eastWall.subA4D14(1, 6); + _walkRegionsId = 1571; + _wallCorner2.setupWall(1, 5); + _eastWall.setupWall(1, 6); break; case 13: R2_GLOBALS._walkRegions.load(1572); - _field419 = 1572; - _actor14.subA4D14(1, 1); - _westWall.subA4D14(1, 2); - _southWall.subA4D14(1, 4); + _walkRegionsId = 1572; + _wallCorner1.setupWall(1, 1); + _westWall.setupWall(1, 2); + _southWall.setupWall(1, 4); break; case 14: R2_GLOBALS._walkRegions.load(1573); - _field419 = 1573; - _southWall.subA4D14(1, 4); - _actor16.subA4D14(1, 5); - _eastWall.subA4D14(1, 6); + _walkRegionsId = 1573; + _southWall.setupWall(1, 4); + _wallCorner2.setupWall(1, 5); + _eastWall.setupWall(1, 6); break; case 15: // South wall R2_GLOBALS._walkRegions.load(1574); - _field419 = 1574; - _southWall.subA4D14(1, 4); + _walkRegionsId = 1574; + _southWall.setupWall(1, 4); break; case 16: R2_GLOBALS._walkRegions.load(1570); - _field419 = 1570; - _actor14.subA4D14(2, 1); - _westWall.subA4D14(2, 2); + _walkRegionsId = 1570; + _wallCorner1.setupWall(2, 1); + _westWall.setupWall(2, 2); break; case 17: R2_GLOBALS._walkRegions.load(1570); - _field419 = 1570; - _actor14.subA4D14(2, 1); - _westWall.subA4D14(3, 2); + _walkRegionsId = 1570; + _wallCorner1.setupWall(2, 1); + _westWall.setupWall(3, 2); break; case 18: R2_GLOBALS._walkRegions.load(1571); - _field419 = 1571; - _actor16.subA4D14(2, 5); - _eastWall.subA4D14(2, 6); + _walkRegionsId = 1571; + _wallCorner2.setupWall(2, 5); + _eastWall.setupWall(2, 6); break; case 19: R2_GLOBALS._walkRegions.load(1571); - _field419 = 1571; - _actor16.subA4D14(2, 5); - _eastWall.subA4D14(3, 6); + _walkRegionsId = 1571; + _wallCorner2.setupWall(2, 5); + _eastWall.setupWall(3, 6); break; default: break; @@ -9020,9 +8956,9 @@ void Scene1550::enterArea() { (R2_GLOBALS._scene1550JunkLocations[i + 2] != 0)) { tmpIdx = R2_GLOBALS._scene1550JunkLocations[i + 3]; _junk[di].postInit(); - _junk[di]._effect = 6; + _junk[di]._effect = EFFECT_SHADED2; _junk[di]._shade = 0; - _junk[di]._fieldA4 = tmpIdx; + //_junk[di]._junkState = tmpIdx; _junk[di]._junkNumber = i; _junk[di].setDetails(1550, 62, -1, 63, 2, (SceneItem *) NULL); if (R2_GLOBALS._scene1550JunkLocations[i + 2] == 41) { @@ -9036,11 +8972,11 @@ void Scene1550::enterArea() { R2_GLOBALS._walkRegions.disableRegion(scene1550JunkRegions[7]); if (R2_INVENTORY.getObjectScene(R2_JOYSTICK) == 1550) { - _actor9.postInit(); - _actor9.setup(1562, 3, 1); - _actor9.setPosition(Common::Point(150, 70)); - _actor9.fixPriority(10); - _actor9.setDetails(1550, 41, -1, 42, 2, (SceneItem *) NULL); + _joystick.postInit(); + _joystick.setup(1562, 3, 1); + _joystick.setPosition(Common::Point(150, 70)); + _joystick.fixPriority(10); + _joystick.setDetails(1550, 41, -1, 42, 2, (SceneItem *) NULL); } } else { if (R2_GLOBALS._scene1550JunkLocations[i + 2] > 40) { @@ -9050,7 +8986,7 @@ void Scene1550::enterArea() { _junk[di].changeZoom(-1); _junk[di].setup(1552, ((R2_GLOBALS._scene1550JunkLocations[i + 2] - 1) / 5) + 1, ((R2_GLOBALS._scene1550JunkLocations[i + 2] - 1) % 5) + 1); } - _junk[di].setPosition(Common::Point(k5A72E[tmpIdx], k5A73F[tmpIdx])); + _junk[di].setPosition(Common::Point(scene1550JunkX[tmpIdx], scene1550JunkY[tmpIdx])); if (scene1550JunkRegions[tmpIdx] != 0) R2_GLOBALS._walkRegions.disableRegion(scene1550JunkRegions[tmpIdx]); di++; @@ -9058,195 +8994,195 @@ void Scene1550::enterArea() { } } - for (int i = 0; i < 15 * 3; i++) { - if ((R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x == k5A79B[i]) - && (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y == k5A79B[i + 1])) { - tmpIdx = k5A79B[i + 2]; - switch (tmpIdx - 1) { - case 0: + // Loop for detecting and setting up certain special areas within the map + for (int i = 0; i < 15 * 3; i += 3) { + if ((R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x == scene1550SpecialAreas[i]) + && (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y == scene1550SpecialAreas[i + 1])) { + int areaType = scene1550SpecialAreas[i + 2]; + switch (areaType) { + case 1: if (!R2_GLOBALS.getFlag(16)) { - _landingStrut.postInit(); + _wreckage2.postInit(); if (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y == 3) - _landingStrut.setup(1555, 2, 1); + _wreckage2.setup(1555, 2, 1); else - _landingStrut.setup(1555, 1, 1); - _landingStrut.setPosition(Common::Point(150, 100)); - _landingStrut.fixPriority(92); - _landingStrut.setDetails(1550, 73, -1, -1, 2, (SceneItem *) NULL); + _wreckage2.setup(1555, 1, 1); + _wreckage2.setPosition(Common::Point(150, 100)); + _wreckage2.fixPriority(92); + _wreckage2.setDetails(1550, 73, -1, -1, 2, (SceneItem *) NULL); } break; - case 1: - _actor13.postInit(); - warning("_actor13._actorName = \"dish\";"); + case 2: + _dish.postInit(); if (R2_GLOBALS.getFlag(19)) - _actor13.setup(1556, 3, 5); + _dish.setup(1556, 3, 5); else - _actor13.setup(1556, 3, 1); - _actor13.changeZoom(95); - _actor13.setPosition(Common::Point(165, 83)); - _actor13.fixPriority(168); - _actor13.setDetails(1550, 17, -1, 19, 2, (SceneItem *) NULL); - - _actor12.postInit(); - _actor12.setup(1556, 4, 1); - _actor12.setPosition(Common::Point(191, 123)); - _actor12.changeZoom(95); - _actor12.setDetails(1550, 65, -1, 66, 2, (SceneItem *) NULL); - - _actor5.postInit(); - _actor5._numFrames = 5; + _dish.setup(1556, 3, 1); + _dish.changeZoom(95); + _dish.setPosition(Common::Point(165, 83)); + _dish.fixPriority(168); + _dish.setDetails(1550, 17, -1, 19, 2, (SceneItem *) NULL); + + _dishTower.postInit(); + _dishTower.setup(1556, 4, 1); + _dishTower.setPosition(Common::Point(191, 123)); + _dishTower.changeZoom(95); + _dishTower.setDetails(1550, 65, -1, 66, 2, (SceneItem *) NULL); + + _dishTowerShadow.postInit(); + _dishTowerShadow._numFrames = 5; if (R2_GLOBALS.getFlag(19)) - _actor5.setup(1556, 8, 5); + _dishTowerShadow.setup(1556, 8, 5); else - _actor5.setup(1556, 8, 1); + _dishTowerShadow.setup(1556, 8, 1); - _actor5.setPosition(Common::Point(156, 151)); - _actor5.fixPriority(10); + _dishTowerShadow.setPosition(Common::Point(156, 151)); + _dishTowerShadow.fixPriority(10); - _actor4.postInit(); + _walkway.postInit(); if (R2_GLOBALS.getFlag(20)) - _actor4.setup(1558, 3, 10); + _walkway.setup(1558, 3, 10); else - _actor4.setup(1558, 3, 1); + _walkway.setup(1558, 3, 1); - _actor4.setPosition(Common::Point(172, 48)); - _actor4.fixPriority(169); + _walkway.setPosition(Common::Point(172, 48)); + _walkway.fixPriority(169); R2_GLOBALS._walkRegions.disableRegion(scene1550JunkRegions[15]); break; - case 2: + case 3: _wreckage.postInit(); _wreckage.setup(1550, 1, 1); _wreckage.setPosition(Common::Point(259, 55)); _wreckage.fixPriority(133); _wreckage.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); - _landingStrut.postInit(); - _landingStrut.setup(1550, 1, 2); - _landingStrut.setPosition(Common::Point(259, 133)); - _landingStrut.fixPriority(105); - _landingStrut.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); + _wreckage2.postInit(); + _wreckage2.setup(1550, 1, 2); + _wreckage2.setPosition(Common::Point(259, 133)); + _wreckage2.fixPriority(105); + _wreckage2.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); if (R2_INVENTORY.getObjectScene(R2_GYROSCOPE) == 1550) { - _actor10.postInit(); - _actor10.setup(1550, 7, 2); - _actor10.setPosition(Common::Point(227, 30)); - _actor10.fixPriority(130); - _actor10.setDetails(1550, 29, -1, 63, 2, (SceneItem *) NULL); + _gyroscope.postInit(); + _gyroscope.setup(1550, 7, 2); + _gyroscope.setPosition(Common::Point(227, 30)); + _gyroscope.fixPriority(130); + _gyroscope.setDetails(1550, 29, -1, 63, 2, (SceneItem *) NULL); } break; - case 3: + case 4: _wreckage.postInit(); _wreckage.setup(1550, 1, 4); _wreckage.setPosition(Common::Point(76, 131)); _wreckage.fixPriority(10); _wreckage.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); - _landingStrut.postInit(); - _landingStrut.setup(1550, 1, 3); - _landingStrut.setPosition(Common::Point(76, 64)); - _landingStrut.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); + _wreckage2.postInit(); + _wreckage2.setup(1550, 1, 3); + _wreckage2.setPosition(Common::Point(76, 64)); + _wreckage2.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); if (R2_INVENTORY.getObjectScene(R2_DIAGNOSTICS_DISPLAY) == 1550) { - _actor11.postInit(); - _actor11.setup(1504, 4, 1); - _actor11.setPosition(Common::Point(49, 35)); - _actor11.animate(ANIM_MODE_2, NULL); - _actor11._numFrames = 4; - _actor11.fixPriority(65); - _actor11.setDetails(1550, 14, 15, 63, 2, (SceneItem *) NULL); + _diagnosticsDisplay.postInit(); + _diagnosticsDisplay.setup(1504, 4, 1); + _diagnosticsDisplay.setPosition(Common::Point(49, 35)); + _diagnosticsDisplay.animate(ANIM_MODE_2, NULL); + _diagnosticsDisplay._numFrames = 4; + _diagnosticsDisplay.fixPriority(65); + _diagnosticsDisplay.setDetails(1550, 14, 15, 63, 2, (SceneItem *) NULL); } if (R2_INVENTORY.getObjectScene(R2_AIRBAG) == 1550) { - _actor8.postInit(); - _actor8.setup(1550, 7, 1); - _actor8.setPosition(Common::Point(45, 44)); - _actor8.fixPriority(150); - _actor8.setDetails(1550, 44, -1, 63, 2, (SceneItem *) NULL); + _airbag.postInit(); + _airbag.setup(1550, 7, 1); + _airbag.setPosition(Common::Point(45, 44)); + _airbag.fixPriority(150); + _airbag.setDetails(1550, 44, -1, 63, 2, (SceneItem *) NULL); } break; - case 4: + case 5: _wreckage.postInit(); _wreckage.setup(1550, 2, 4); _wreckage.setPosition(Common::Point(243, 131)); _wreckage.fixPriority(10); _wreckage.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); - _landingStrut.postInit(); - _landingStrut.setup(1550, 2, 3); - _landingStrut.setPosition(Common::Point(243, 64)); - _landingStrut.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); + _wreckage2.postInit(); + _wreckage2.setup(1550, 2, 3); + _wreckage2.setPosition(Common::Point(243, 64)); + _wreckage2.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); break; - case 5: + case 6: _wreckage.postInit(); _wreckage.setup(1550, 2, 1); _wreckage.setPosition(Common::Point(60, 55)); _wreckage.fixPriority(133); _wreckage.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); - _landingStrut.postInit(); - _landingStrut.setup(1550, 2, 2); - _landingStrut.setPosition(Common::Point(60, 133)); - _landingStrut.fixPriority(106); - _landingStrut.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); + _wreckage2.postInit(); + _wreckage2.setup(1550, 2, 2); + _wreckage2.setPosition(Common::Point(60, 133)); + _wreckage2.fixPriority(106); + _wreckage2.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); break; - case 6: + case 7: _wreckage.postInit(); _wreckage.setup(1550, 3, 1); _wreckage.setPosition(Common::Point(281, 132)); _wreckage.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); break; - case 7: + case 8: _wreckage.postInit(); _wreckage.setup(1550, 3, 2); _wreckage.setPosition(Common::Point(57, 96)); _wreckage.fixPriority(70); _wreckage.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); - _landingStrut.postInit(); - _landingStrut.setup(1550, 3, 3); - _landingStrut.setPosition(Common::Point(145, 88)); - _landingStrut.fixPriority(55); - _landingStrut.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); - - _actor2.postInit(); - _actor2.setup(1550, 3, 4); - _actor2.setPosition(Common::Point(64, 137)); - _actor2.fixPriority(115); - _actor2.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); - - _actor3.postInit(); - _actor3.setup(1550, 5, 1); - _actor3.setPosition(Common::Point(60, 90)); - _actor3.fixPriority(45); + _wreckage2.postInit(); + _wreckage2.setup(1550, 3, 3); + _wreckage2.setPosition(Common::Point(145, 88)); + _wreckage2.fixPriority(55); + _wreckage2.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); + + _wreckage3.postInit(); + _wreckage3.setup(1550, 3, 4); + _wreckage3.setPosition(Common::Point(64, 137)); + _wreckage3.fixPriority(115); + _wreckage3.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); + + _wreckage4.postInit(); + _wreckage4.setup(1550, 5, 1); + _wreckage4.setPosition(Common::Point(60, 90)); + _wreckage4.fixPriority(45); break; - case 8: + case 9: _wreckage.postInit(); _wreckage.setup(1550, 4, 2); _wreckage.setPosition(Common::Point(262, 96)); _wreckage.fixPriority(70); _wreckage.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); - _landingStrut.postInit(); - _landingStrut.setup(1550, 4, 3); - _landingStrut.setPosition(Common::Point(174, 88)); - _landingStrut.fixPriority(55); - _landingStrut.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); - - _actor2.postInit(); - _actor2.setup(1550, 4, 4); - _actor2.setPosition(Common::Point(255, 137)); - _actor2.fixPriority(115); - _actor2.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); - - _actor3.postInit(); - _actor3.setup(1550, 6, 1); - _actor3.setPosition(Common::Point(259, 90)); - _actor3.fixPriority(45); + _wreckage2.postInit(); + _wreckage2.setup(1550, 4, 3); + _wreckage2.setPosition(Common::Point(174, 88)); + _wreckage2.fixPriority(55); + _wreckage2.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); + + _wreckage3.postInit(); + _wreckage3.setup(1550, 4, 4); + _wreckage3.setPosition(Common::Point(255, 137)); + _wreckage3.fixPriority(115); + _wreckage3.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); + + _wreckage4.postInit(); + _wreckage4.setup(1550, 6, 1); + _wreckage4.setPosition(Common::Point(259, 90)); + _wreckage4.fixPriority(45); break; - case 9: + case 10: _wreckage.postInit(); _wreckage.setup(1550, 4, 1); _wreckage.setPosition(Common::Point(38, 132)); _wreckage.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); break; - case 11: + case 12: // Intact ship _shipComponents[7].setupShipComponent(8); _shipComponents[0].setupShipComponent(1); @@ -9256,6 +9192,7 @@ void Scene1550::enterArea() { _shipComponents[4].setupShipComponent(5); _shipComponents[5].setupShipComponent(6); _shipComponents[6].setupShipComponent(7); + break; default: break; } @@ -9264,12 +9201,12 @@ void Scene1550::enterArea() { if (R2_GLOBALS._s1550PlayerArea[R2_QUINN] == R2_GLOBALS._s1550PlayerArea[R2_SEEKER]) { _companion.postInit(); - _companion._effect = 7; + _companion._effect = EFFECT_SHADED2; _companion.changeZoom(-1); - assert((_field419 >= 1550) && (_field419 <= 2008)); - R2_GLOBALS._walkRegions.disableRegion(k5A750[_field419 - 1550]); - _companion.setPosition(Common::Point(k5A72E[k5A76D[_field419 - 1550]], k5A73F[k5A76D[_field419 - 1550]] + 8)); + assert((_walkRegionsId >= 1550) && (_walkRegionsId <= 2008)); + R2_GLOBALS._walkRegions.disableRegion(k5A750[_walkRegionsId - 1550]); + _companion.setPosition(Common::Point(scene1550JunkX[k5A76D[_walkRegionsId - 1550]], scene1550JunkY[k5A76D[_walkRegionsId - 1550]] + 8)); if (R2_GLOBALS._player._characterIndex == R2_QUINN) { if (R2_GLOBALS._player._characterScene[R2_SEEKER] == 1580) { _companion.setup(1516, 3, 17); @@ -9619,8 +9556,6 @@ void Scene1575::postInit(SceneObjectList *OwnerList) { void Scene1575::remove() { SceneExt::remove(); - R2_GLOBALS._v5589E.top = 3; - R2_GLOBALS._v5589E.bottom = 168; R2_GLOBALS._uiElements._active = true; } @@ -9724,13 +9659,10 @@ void Scene1575::dispatch() { *--------------------------------------------------------------------------*/ Scene1580::Scene1580() { - _field412 = 0; } void Scene1580::synchronize(Serializer &s) { SceneExt::synchronize(s); - - s.syncAsSint16LE(_field412); } bool Scene1580::JoystickPlug::startAction(CursorType action, Event &event) { @@ -9774,7 +9706,7 @@ bool Scene1580::ScreenSlot::startAction(CursorType action, Event &event) { scene->_screenDisplay.setup(1580, 3, 1); scene->_screenDisplay.setPosition(Common::Point(124, 109)); scene->_screenDisplay.fixPriority(20); - scene->_field412 = 1; + //scene->_field412 = 1; scene->_sceneMode = 10; scene->setAction(&scene->_sequenceManager, scene, 1, &R2_GLOBALS._player, NULL); @@ -9914,7 +9846,6 @@ void Scene1580::postInit(SceneObjectList *OwnerList) { loadScene(1580); R2_GLOBALS._sceneManager._fadeMode = FADEMODE_GRADUAL; SceneExt::postInit(); - _field412 = 0; _stripManager.setColors(60, 255); _stripManager.setFontNumber(3); @@ -9955,7 +9886,6 @@ void Scene1580::postInit(SceneObjectList *OwnerList) { _screenDisplay.setup(1580, 3, 1); _screenDisplay.setPosition(Common::Point(124, 109)); _screenDisplay.fixPriority(20); - _screenDisplay.setZoom(200); _sceneMode = 10; } else { @@ -10093,13 +10023,10 @@ bool Scene1625::Wire::startAction(CursorType action, Event &event) { } Scene1625::Scene1625() { - _field412 = 0; } void Scene1625::synchronize(Serializer &s) { SceneExt::synchronize(s); - - s.syncAsSint16LE(_field412); } void Scene1625::postInit(SceneObjectList *OwnerList) { @@ -10225,7 +10152,7 @@ void Scene1625::signal() { setAction(&_sequenceManager, this, 1630, &_teal, &_tealRightArm, NULL); break; } - _field412 = _stripManager._field2E8; + //_field412 = _stripManager._field2E8; _stripManager._field2E8 = 0; break; case 1625: @@ -10349,21 +10276,13 @@ void Scene1625::process(Event &event) { *--------------------------------------------------------------------------*/ Scene1700::Scene1700() { - _field77A = 0; - _field77C = 0; + _walkFlag = 0; } void Scene1700::synchronize(Serializer &s) { SceneExt::synchronize(s); - s.syncAsSint16LE(_field77A); - s.syncAsSint16LE(_field77C); -} - -bool Scene1700::Item2::startAction(CursorType action, Event &event) { - // The original contains a debug trace. It's currently skipped. - // TODO: either add the debug trace, or remove this function and associated class - return SceneHotspot::startAction(action, event); + s.syncAsSint16LE(_walkFlag); } bool Scene1700::RimTransport::startAction(CursorType action, Event &event) { @@ -10373,7 +10292,6 @@ bool Scene1700::RimTransport::startAction(CursorType action, Event &event) { Scene1700 *scene = (Scene1700 *)R2_GLOBALS._sceneManager._scene; R2_GLOBALS._player.disableControl(); - R2_GLOBALS._v558B6.set(80, 0, 240, 200); scene->_sceneMode = 4; Common::Point pt(271, 90); @@ -10383,7 +10301,7 @@ bool Scene1700::RimTransport::startAction(CursorType action, Event &event) { return true; } -bool Scene1700::Actor12::startAction(CursorType action, Event &event) { +bool Scene1700::Companion::startAction(CursorType action, Event &event) { if (action != CURSOR_TALK) return SceneActor::startAction(action, event); @@ -10444,20 +10362,11 @@ void Scene1700::enterArea() { if (_sceneMode != 40) { _ledgeHopper.remove(); - _actor10.remove(); + _hatch.remove(); } - warning("tmpRect = _v5589E;"); - warning("Mouse_hideIfNeeded"); - warning("set_pane_p(_paneNumber);"); - warning("Big loop calling gfx_draw_slice_p"); - - if (_field77A == 0) - _field77A = 1; - else - _field77A = 0; - - warning("set_pane_p(_paneNumber);"); + // The original had manual code here to redraw the background manually when + // changing areas within the scene. Which seems to be totally redundant. if (_sceneMode != 40 && R2_GLOBALS._rimLocation == 0) { // Crashed ledge hopper @@ -10513,7 +10422,7 @@ void Scene1700::enterArea() { // Rim transport vechile located R2_GLOBALS._rimTransportLocation = R2_GLOBALS._rimLocation; if (!R2_GLOBALS.getFlag(15)) - _field77C = 1; + _walkFlag = true; _rimTransport.postInit(); _rimTransport.setup(1700, 3, 1); @@ -10553,44 +10462,44 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._moveDiff = Common::Point(3, 1); } - _actor12.postInit(); - _actor12.animate(ANIM_MODE_1, NULL); - _actor12.setObjectWrapper(new SceneObjectWrapper()); + _companion.postInit(); + _companion.animate(ANIM_MODE_1, NULL); + _companion.setObjectWrapper(new SceneObjectWrapper()); if (R2_GLOBALS._player._characterIndex == R2_QUINN) { - _actor12.setVisage(1506); - _actor12._moveDiff = Common::Point(3, 1); - _actor12.setDetails(9002, 1, -1, -1, 1, (SceneItem *) NULL); + _companion.setVisage(1506); + _companion._moveDiff = Common::Point(3, 1); + _companion.setDetails(9002, 1, -1, -1, 1, (SceneItem *) NULL); } else { - _actor12.setVisage(1501); - _actor12._moveDiff = Common::Point(2, 1); - _actor12.setDetails(9001, 1, -1, -1, 1, (SceneItem *) NULL); + _companion.setVisage(1501); + _companion._moveDiff = Common::Point(2, 1); + _companion.setDetails(9001, 1, -1, -1, 1, (SceneItem *) NULL); } R2_GLOBALS._sound1.play(134); - _actor1.postInit(); - _actor1.fixPriority(10); + _playerShadow.postInit(); + _playerShadow.fixPriority(10); if (R2_GLOBALS._player._characterIndex == R2_QUINN) - _actor1.setVisage(1112); + _playerShadow.setVisage(1112); else - _actor1.setVisage(1111); + _playerShadow.setVisage(1111); - _actor1._effect = 5; - _actor1._field9C = _field312; - R2_GLOBALS._player._linkedActor = &_actor1; + _playerShadow._effect = EFFECT_SHADOW_MAP; + _playerShadow._shadowMap = _shadowPaletteMap; + R2_GLOBALS._player._linkedActor = &_playerShadow; - _actor2.postInit(); - _actor2.fixPriority(10); + _companionShadow.postInit(); + _companionShadow.fixPriority(10); if (R2_GLOBALS._player._characterIndex == R2_QUINN) - _actor2.setVisage(1111); + _companionShadow.setVisage(1111); else - _actor2.setVisage(1112); + _companionShadow.setVisage(1112); - _actor2._effect = 5; - _actor2._field9C = _field312; - _actor12._linkedActor = &_actor2; + _companionShadow._effect = EFFECT_SHADOW_MAP; + _companionShadow._shadowMap = _shadowPaletteMap; + _companion._linkedActor = &_companionShadow; R2_GLOBALS._sound1.play(134); @@ -10599,60 +10508,59 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._characterIndex = R2_QUINN; R2_GLOBALS._player.disableControl(); R2_GLOBALS._player.hide(); - _actor12.hide(); + _companion.hide(); - _actor10.postInit(); - warning("_actor10._actorName = \"hatch\";"); - _actor10.hide(); + _hatch.postInit(); + _hatch.hide(); _ledgeHopper.postInit(); _ledgeHopper.setup(1701, 1, 1); _ledgeHopper.setPosition(Common::Point(220, 137)); _ledgeHopper.setDetails(1700, 6, -1, -1, 1, (SceneItem *) NULL); - _actor1.hide(); - _actor2.hide(); + _playerShadow.hide(); + _companionShadow.hide(); R2_GLOBALS._events.setCursor(CURSOR_WALK); _stripManager.start(539, this); _sceneMode = 40; break; case 1750: { R2_GLOBALS._player.setPosition(Common::Point(282, 121)); - _actor12.setPosition(Common::Point(282, 139)); + _companion.setPosition(Common::Point(282, 139)); _sceneMode = 8; Common::Point pt(262, 101); NpcMover *mover = new NpcMover(); R2_GLOBALS._player.addMover(mover, &pt, this); Common::Point pt2(262, 119); NpcMover *mover2 = new NpcMover(); - _actor12.addMover(mover2, &pt2, this); + _companion.addMover(mover2, &pt2, this); } break; case 1800: { R2_GLOBALS._player.disableControl(); R2_GLOBALS._player.setPosition(Common::Point(0, 86)); - _actor12.setPosition(Common::Point(0, 64)); + _companion.setPosition(Common::Point(0, 64)); _sceneMode = 7; R2_GLOBALS._player.setObjectWrapper(NULL); R2_GLOBALS._player._strip = 1; Common::Point pt(64, 86); NpcMover *mover = new NpcMover(); R2_GLOBALS._player.addMover(mover, &pt, this); - _actor12.setObjectWrapper(NULL); - _actor12._strip = 1; + _companion.setObjectWrapper(NULL); + _companion._strip = 1; Common::Point pt2(77, 64); NpcMover *mover2 = new NpcMover(); - _actor12.addMover(mover2, &pt2, NULL); + _companion.addMover(mover2, &pt2, NULL); } break; default: if (R2_GLOBALS._player._characterIndex == R2_QUINN) { R2_GLOBALS._player.setPosition(Common::Point(109, 160)); - _actor12.setPosition(Common::Point(156, 160)); + _companion.setPosition(Common::Point(156, 160)); R2_GLOBALS._walkRegions.disableRegion(15); } else { R2_GLOBALS._player.setPosition(Common::Point(156, 160)); - _actor12.setPosition(Common::Point(109, 160)); + _companion.setPosition(Common::Point(109, 160)); R2_GLOBALS._walkRegions.disableRegion(17); } _sceneMode = 50; @@ -10664,10 +10572,10 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._oldCharacterScene[R2_QUINN] = 1700; R2_GLOBALS._player._oldCharacterScene[R2_SEEKER] = 1700; - R2_GLOBALS._v558B6.set(20, 0, 320, 200); enterArea(); - _item1.setDetails(1, 1700, 3, -1, -1); - _item2.setDetails(Rect(0, 0, 480, 200), 1700, 0, -1, -1, 1, NULL); + + _surface.setDetails(1, 1700, 3, -1, -1); + _background.setDetails(Rect(0, 0, 480, 200), 1700, 0, -1, -1, 1, NULL); } void Scene1700::remove() { @@ -10688,16 +10596,16 @@ void Scene1700::signal() { R2_GLOBALS._player.addMover(mover, &pt, this); if (R2_GLOBALS._player._position.x < 132) { - _actor12.setPosition(Common::Point(156, 170)); + _companion.setPosition(Common::Point(156, 170)); Common::Point pt2(156, 160); NpcMover *mover2 = new NpcMover(); - _actor12.addMover(mover2, &pt2, NULL); + _companion.addMover(mover2, &pt2, NULL); R2_GLOBALS._walkRegions.disableRegion(15); } else { - _actor12.setPosition(Common::Point(109, 170)); + _companion.setPosition(Common::Point(109, 170)); Common::Point pt3(109, 160); NpcMover *mover3 = new NpcMover(); - _actor12.addMover(mover3, &pt3, NULL); + _companion.addMover(mover3, &pt3, NULL); R2_GLOBALS._walkRegions.disableRegion(17); } } @@ -10713,26 +10621,26 @@ void Scene1700::signal() { R2_GLOBALS._player.addMover(mover, &pt, this); if (R2_GLOBALS._player._position.x >= 171) { - _actor12.setPosition(Common::Point(155, 0)); + _companion.setPosition(Common::Point(155, 0)); Common::Point pt2(155, 10); NpcMover *mover2 = new NpcMover(); - _actor12.addMover(mover2, &pt2, NULL); + _companion.addMover(mover2, &pt2, NULL); R2_GLOBALS._walkRegions.disableRegion(15); } else { - _actor12.setPosition(Common::Point(188, 0)); + _companion.setPosition(Common::Point(188, 0)); Common::Point pt3(188, 10); NpcMover *mover3 = new NpcMover(); - _actor12.addMover(mover3, &pt3, NULL); + _companion.addMover(mover3, &pt3, NULL); R2_GLOBALS._walkRegions.disableRegion(17); } } break; case 3: - if (_field77C == 0) { + if (!_walkFlag) { R2_GLOBALS._player.enableControl(CURSOR_WALK); } else { R2_GLOBALS.setFlag(15); - _field77C = 0; + _walkFlag = false; _sceneMode = 31; R2_GLOBALS._events.setCursor(CURSOR_WALK); if (R2_GLOBALS._player._characterIndex == R2_QUINN) @@ -10745,7 +10653,7 @@ void Scene1700::signal() { _sceneMode = 5; Common::Point pt(271, 90); PlayerMover *mover = new PlayerMover(); - _actor12.addMover(mover, &pt, NULL); + _companion.addMover(mover, &pt, NULL); if (R2_GLOBALS._player._characterIndex == R2_QUINN) setAction(&_sequenceManager, this, 1700, &R2_GLOBALS._player, &_rimTransportDoor, NULL); else @@ -10761,14 +10669,14 @@ void Scene1700::signal() { case 7: R2_GLOBALS._player.setObjectWrapper(new SceneObjectWrapper()); R2_GLOBALS._player._strip = 1; - _actor12.setObjectWrapper(new SceneObjectWrapper()); - _actor12._strip = 1; + _companion.setObjectWrapper(new SceneObjectWrapper()); + _companion._strip = 1; R2_GLOBALS._player.enableControl(CURSOR_WALK); R2_GLOBALS._walkRegions.disableRegion(14); break; case 8: R2_GLOBALS._player._strip = 2; - _actor12._strip = 1; + _companion._strip = 1; R2_GLOBALS._player.enableControl(CURSOR_WALK); R2_GLOBALS._walkRegions.disableRegion(12); break; @@ -10787,7 +10695,8 @@ void Scene1700::signal() { case 40: R2_GLOBALS._player.disableControl(); _sceneMode = 1704; - setAction(&_sequenceManager, this, 1704, &R2_GLOBALS._player, &_actor12, &_actor10, &_ledgeHopper, &_actor1, &_actor2, NULL); + setAction(&_sequenceManager, this, 1704, &R2_GLOBALS._player, &_companion, + &_hatch, &_ledgeHopper, &_playerShadow, &_companionShadow, NULL); break; case 50: if (R2_GLOBALS._player._characterIndex == R2_QUINN) @@ -10958,12 +10867,12 @@ bool Scene1750::SpeedSlider::startAction(CursorType action, Event &event) { Scene1750::Scene1750() { _direction = 0; - _field413 = 0; + _speedCurrent = 0; _speed = 0; - _field417 = 0; - _field419 = 0; - _field41B = 0; - _field41D = 0; + _speedDelta = 0; + _rotationSegment = 0; + _rotationSegCurrent = 0; + _newRotation = 0; _rotation = nullptr; } @@ -10973,20 +10882,21 @@ void Scene1750::synchronize(Serializer &s) { SYNC_POINTER(_rotation); s.syncAsSint16LE(_direction); - s.syncAsSint16LE(_field413); + s.syncAsSint16LE(_speedCurrent); s.syncAsSint16LE(_speed); - s.syncAsSint16LE(_field417); - s.syncAsSint16LE(_field419); - s.syncAsSint16LE(_field41B); - s.syncAsSint16LE(_field41D); + s.syncAsSint16LE(_speedDelta); + s.syncAsSint16LE(_rotationSegment); + s.syncAsSint16LE(_rotationSegCurrent); + s.syncAsSint16LE(_newRotation); } void Scene1750::postInit(SceneObjectList *OwnerList) { loadScene(1750); R2_GLOBALS._sound1.play(115); R2_GLOBALS._uiElements._active = false; - R2_GLOBALS._v5589E.set(0, 0, 320, 200); + SceneExt::postInit(); + R2_GLOBALS._interfaceY = SCREEN_HEIGHT; R2_GLOBALS._player._characterScene[R2_QUINN] = 1750; R2_GLOBALS._player._characterScene[R2_SEEKER] = 1750; @@ -11036,28 +10946,28 @@ void Scene1750::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.hide(); R2_GLOBALS._player.enableControl(); - _actor3.postInit(); - _actor3.setup(1750, 3, 1); - _actor3.setPosition(Common::Point(49, 185)); - _actor3.fixPriority(7); - _actor3.setDetails(1750, 30, -1, -1, 1, (SceneItem *) NULL); + _radarSweep.postInit(); + _radarSweep.setup(1750, 3, 1); + _radarSweep.setPosition(Common::Point(49, 185)); + _radarSweep.fixPriority(7); + _radarSweep.setDetails(1750, 30, -1, -1, 1, (SceneItem *) NULL); - _actor1.postInit(); - _actor1.setup(1750, 2, 1); - _actor1.setPosition(Common::Point(35, ((_rotation->_currIndex - 218) % 4) + ((R2_GLOBALS._rimLocation % 800) * 4) - 1440)); - _actor1.fixPriority(8); + _scannerIcon1.postInit(); + _scannerIcon1.setup(1750, 2, 1); + _scannerIcon1.setPosition(Common::Point(35, ((_rotation->_currIndex - 218) % 4) + ((R2_GLOBALS._rimLocation % 800) * 4) - 1440)); + _scannerIcon1.fixPriority(8); - _actor2.postInit(); - _actor2.setup(1750, 1, 4); + _scannerIcon2.postInit(); + _scannerIcon2.setup(1750, 1, 4); - int tmpVar = abs(_actor1._position.y - 158) / 100; + int tmpVar = ABS(_scannerIcon1._position.y - 158) / 100; if (tmpVar >= 8) - _actor2.hide(); - else if (_actor1._position.y <= 158) - _actor2.setPosition(Common::Point(137, (tmpVar * 7) + 122)); + _scannerIcon2.hide(); + else if (_scannerIcon1._position.y <= 158) + _scannerIcon2.setPosition(Common::Point(137, (tmpVar * 7) + 122)); else - _actor2.setPosition(Common::Point(148, (tmpVar * 7) + 122)); + _scannerIcon2.setPosition(Common::Point(148, (tmpVar * 7) + 122)); _speedSlider.setupSlider(1, 286, 143, 41, 15); _speedSlider.setDetails(1750, 24, 1, -1, 1, (SceneItem *) NULL); @@ -11082,10 +10992,10 @@ void Scene1750::postInit(SceneObjectList *OwnerList) { _exitButton.setDetails(1750, 27, 1, -1, 1, (SceneItem *) NULL); _direction = 1; // Forward by default - _field417 = 0; - _field413 = 0; + _speedDelta = 0; + _speedCurrent = 0; _speed = 0; - _field419 = ((_rotation->_currIndex - 218) / 4) % 4; + _rotationSegment = ((_rotation->_currIndex - 218) / 4) % 4; _redLights.setDetails(Rect(129, 112, 155, 175), 1750, 21, -1, -1, 1, NULL); _greenLights.setDetails(Rect(93, 122, 126, 172), 1750, 15, -1, -1, 1, NULL); @@ -11105,8 +11015,6 @@ void Scene1750::remove() { SceneExt::remove(); R2_GLOBALS._sound1.fadeOut2(NULL); - R2_GLOBALS._v5589E.top = 3; - R2_GLOBALS._v5589E.bottom = 168; R2_GLOBALS._uiElements._active = true; } @@ -11122,71 +11030,71 @@ void Scene1750::process(Event &event) { void Scene1750::dispatch() { if (_rotation) { - if (!_field417 && (_speed != _field413)) { - if (_field413 >= _speed) - --_field413; + if (!_speedDelta && (_speed != _speedCurrent)) { + if (_speedCurrent >= _speed) + --_speedCurrent; else - ++_field413; + ++_speedCurrent; - _field417 = 21 - ABS(_field413); + _speedDelta = 21 - ABS(_speedCurrent); } - if (_field417 == 1) { - if (_field413 == 0) { - _actor3.show(); + if (_speedDelta == 1) { + if (_speedCurrent == 0) { + _radarSweep.show(); _rotation->_idxChange = 0; } else { if (_rotation->_idxChange == 0) - _actor3.hide(); + _radarSweep.hide(); - if (_field413 < -12) { - _rotation->setDelay(15 - ABS(_field413)); + if (_speedCurrent < -12) { + _rotation->setDelay(15 - ABS(_speedCurrent)); _rotation->_idxChange = -2; - } else if (_field413 < 0) { - _rotation->setDelay(10 - ABS(_field413)); + } else if (_speedCurrent < 0) { + _rotation->setDelay(10 - ABS(_speedCurrent)); _rotation->_idxChange = -1; - } else if (_field413 < 11) { - _rotation->setDelay(10 - _field413); + } else if (_speedCurrent < 11) { + _rotation->setDelay(10 - _speedCurrent); _rotation->_idxChange = 1; } else { - _rotation->setDelay(15 - _field413); + _rotation->setDelay(15 - _speedCurrent); _rotation->_idxChange = 2; } } } - if (_field417) - --_field417; + if (_speedDelta) + --_speedDelta; - _field41B = _field419; - _field419 = ((_rotation->_currIndex - 218) / 4) / 4; + _rotationSegCurrent = _rotationSegment; + _rotationSegment = ((_rotation->_currIndex - 218) / 4) / 4; - if ((_field41B + 1) == _field419 || (_field41B - 3) == _field419) { + if ((_rotationSegCurrent + 1) == _rotationSegment || (_rotationSegCurrent - 3) == _rotationSegment) { if (R2_GLOBALS._rimLocation < 2400) { ++R2_GLOBALS._rimLocation; } } - if ((_field41B - 1) == _field419 || (_field41B + 3) == _field419) { + if ((_rotationSegCurrent - 1) == _rotationSegment || (_rotationSegCurrent + 3) == _rotationSegment) { if (R2_GLOBALS._rimLocation > -2400) { --R2_GLOBALS._rimLocation; } } - if (_rotation->_currIndex != _field41D) { - _field41D = _rotation->_currIndex; - _actor1.setPosition(Common::Point(35, ((_rotation->_currIndex - 218) % 4) + + if (_rotation->_currIndex != _newRotation) { + _newRotation = _rotation->_currIndex; + _scannerIcon1.setPosition(Common::Point(35, ((_rotation->_currIndex - 218) % 4) + ((R2_GLOBALS._rimLocation % 800) * 4) - 1440)); } } - int v = ABS(_actor1._position.y - 158) / 100; + int v = ABS(_scannerIcon1._position.y - 158) / 100; if (v < 8) { - _actor2.show(); - _actor2.setPosition(Common::Point((_actor1._position.y <= 158) ? 137 : 148, + _scannerIcon2.show(); + _scannerIcon2.setPosition(Common::Point((_scannerIcon1._position.y <= 158) ? 137 : 148, v * 7 + 122)); } else { - _actor2.hide(); + _scannerIcon2.hide(); } } @@ -11360,7 +11268,7 @@ bool Scene1800::PassengerDoor::startAction(CursorType action, Event &event) { return true; } -void Scene1800::Exit1::changeScene() { +void Scene1800::SouthExit::changeScene() { Scene1800 *scene = (Scene1800 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -11526,8 +11434,8 @@ void Scene1800::postInit(SceneObjectList *OwnerList) { else _playerShadow.setVisage(1110); - _playerShadow._effect = 5; - _playerShadow._field9C = _field312; + _playerShadow._effect = EFFECT_SHADOW_MAP; + _playerShadow._shadowMap = _shadowPaletteMap; R2_GLOBALS._player._linkedActor = &_playerShadow; @@ -11538,20 +11446,20 @@ void Scene1800::postInit(SceneObjectList *OwnerList) { else _companionShadow.setVisage(1111); - _companionShadow._effect = 5; - _companionShadow._field9C = _field312; + _companionShadow._effect = EFFECT_SHADOW_MAP; + _companionShadow._shadowMap = _shadowPaletteMap; _companion._linkedActor = &_companionShadow; R2_GLOBALS._player._characterScene[R2_QUINN] = 1800; R2_GLOBALS._player._characterScene[R2_SEEKER] = 1800; - _item2.setDetails(Rect(128, 95, 190, 135), 1800, 10, -1, -1, 1, NULL); - _item1.setDetails(Rect(95, 3, 223, 135), 1800, 0, -1, -1, 1, NULL); + _elevatorContents.setDetails(Rect(128, 95, 190, 135), 1800, 10, -1, -1, 1, NULL); + _elevator.setDetails(Rect(95, 3, 223, 135), 1800, 0, -1, -1, 1, NULL); // Original was calling _item3.setDetails(Rect(1800, 11, 24, 23), 25, -1, -1, -1, 1, NULL); // This is *wrong*. The following statement is a wild guess based on good common sense - _item3.setDetails(11, 1800, 23, 24, 25); + _surface.setDetails(11, 1800, 23, 24, 25); _secBackground.setDetails(Rect(0, 0, 320, 200), 1800, 17, -1, 19, 1, NULL); R2_GLOBALS._player.disableControl(); @@ -11741,7 +11649,7 @@ bool Scene1850::Button::startAction(CursorType action, Event &event) { else scene->setAction(&scene->_sequenceManager1, scene, 1852, &R2_GLOBALS._player, NULL); } else if (R2_GLOBALS.getFlag(30)) { - scene->_field41E = 1; + scene->_seqNumber = 1; scene->_sceneMode = 1860; if (R2_GLOBALS.getFlag(32)) @@ -11805,12 +11713,14 @@ bool Scene1850::Robot::startAction(CursorType action, Event &event) { } else if (R2_GLOBALS.getFlag(30)) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 1875; - scene->_actor2.postInit(); + scene->_airbag.postInit(); if (R2_GLOBALS.getFlag(32)) - scene->setAction(&scene->_sequenceManager1, scene, 1876, &R2_GLOBALS._player, &scene->_actor2, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 1876, + &R2_GLOBALS._player, &scene->_airbag, NULL); else - scene->setAction(&scene->_sequenceManager1, scene, 1875, &R2_GLOBALS._player, &scene->_actor2, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 1875, + &R2_GLOBALS._player, &scene->_airbag, NULL); return true; } else if (R2_GLOBALS.getFlag(70)) { @@ -11832,7 +11742,8 @@ bool Scene1850::Robot::startAction(CursorType action, Event &event) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 1878; - scene->setAction(&scene->_sequenceManager1, scene, 1878, &R2_GLOBALS._player, &scene->_robot, &scene->_actor2, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 1878, &R2_GLOBALS._player, + &scene->_robot, &scene->_airbag, NULL); } return true; @@ -11843,7 +11754,7 @@ bool Scene1850::Robot::startAction(CursorType action, Event &event) { } } -bool Scene1850::Actor6::startAction(CursorType action, Event &event) { +bool Scene1850::Door::startAction(CursorType action, Event &event) { if (action != CURSOR_USE) return SceneHotspot::startAction(action, event); @@ -11855,8 +11766,8 @@ bool Scene1850::Actor6::startAction(CursorType action, Event &event) { } R2_GLOBALS._player.disableControl(); - if (scene->_field412 == 1851) - R2_GLOBALS._player._effect = 1; + if (scene->_sceneMode == 1851) + R2_GLOBALS._player._effect = EFFECT_SHADED; if (_position.x >= 160) R2_GLOBALS.setFlag(29); @@ -11865,9 +11776,9 @@ bool Scene1850::Actor6::startAction(CursorType action, Event &event) { if ((R2_GLOBALS._player._characterIndex == R2_SEEKER) && (R2_GLOBALS.getFlag(30))) { if (_position.x >= 160) - scene->_field41E = 3; + scene->_seqNumber = 3; else - scene->_field41E = 2; + scene->_seqNumber = 2; scene->_sceneMode = 1860; @@ -11909,23 +11820,23 @@ bool Scene1850::DisplayScreen::startAction(CursorType action, Event &event) { /*------------------------------------------------------------------------*/ Scene1850::Scene1850() { - _field412 = 0; - _field414 = 0; - _field416 = 0; - _field418 = 0; - _field41E = 0; + _sceneMode = 0; + _shadeCountdown = 0; + _shadeDirection = 0; + _shadeChanging = false; + _seqNumber = 0; } void Scene1850::synchronize(Serializer &s) { SceneExt::synchronize(s); - s.syncAsSint16LE(_field412); - s.syncAsSint16LE(_field414); - s.syncAsSint16LE(_field416); - s.syncAsSint16LE(_field418); - s.syncAsSint16LE(_field41E); - s.syncAsSint16LE(_field41A.x); - s.syncAsSint16LE(_field41A.y); + s.syncAsSint16LE(_sceneMode); + s.syncAsSint16LE(_shadeCountdown); + s.syncAsSint16LE(_shadeDirection); + s.syncAsSint16LE(_shadeChanging); + s.syncAsSint16LE(_seqNumber); + s.syncAsSint16LE(_playerDest.x); + s.syncAsSint16LE(_playerDest.y); } void Scene1850::postInit(SceneObjectList *OwnerList) { @@ -11937,10 +11848,10 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { _palette1.loadPalette(0); if (R2_GLOBALS.getFlag(31)) { - _field412 = 1850; + _sceneMode = 1850; g_globals->_scenePalette.loadPalette(1850); } else { - _field412 = 1851; + _sceneMode = 1851; g_globals->_scenePalette.loadPalette(1851); } @@ -11952,9 +11863,9 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { _stripManager.addSpeaker(&_quinnSpeaker); _stripManager.addSpeaker(&_seekerSpeaker); - _field418 = 0; - _field41E = 0; - _field41A = Common::Point(0, 0); + _shadeChanging = false; + _seqNumber = 0; + _playerDest = Common::Point(0, 0); R2_GLOBALS._player._characterScene[R2_QUINN] = 1850; R2_GLOBALS._player._characterScene[R2_SEEKER] = 1850; @@ -12004,8 +11915,8 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { } if (R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] == 1850) { - R2_GLOBALS._player._effect = 6; - _companion._effect = 6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; + _companion._effect = EFFECT_SHADED2; if (R2_GLOBALS.getFlag(31)) { R2_GLOBALS._player._shade = 0; _companion._shade = 0; @@ -12015,21 +11926,21 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { } if (R2_INVENTORY.getObjectScene(R2_AIRBAG) == 1850) { - _actor2.postInit(); + _airbag.postInit(); if (R2_GLOBALS.getFlag(34)) { - _actor2.setup(1851, 4, 2); - _actor2.fixPriority(114); + _airbag.setup(1851, 4, 2); + _airbag.fixPriority(114); } else { - _actor2.setup(1851, 4, 1); + _airbag.setup(1851, 4, 1); } - _actor2.setPosition(Common::Point(179, 113)); + _airbag.setPosition(Common::Point(179, 113)); if ((_robot._strip == 1) && (_robot._frame == 3)){ - _actor2.hide(); + _airbag.hide(); } - _actor2.setDetails(1850, 6, -1, -1, 1, (SceneItem *) NULL); + _airbag.setDetails(1850, 6, -1, -1, 1, (SceneItem *) NULL); } if (R2_GLOBALS._player._characterIndex == R2_QUINN) { @@ -12037,40 +11948,40 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.setVisage(1511); _companion.setVisage(1508); - _actor3.postInit(); - _actor3.setup(1853, 3, 1); - _actor3.setPosition(Common::Point(122, 113)); - _actor3.fixPriority(114); - _actor3._effect = 6; + _screen.postInit(); + _screen.setup(1853, 3, 1); + _screen.setPosition(Common::Point(122, 113)); + _screen.fixPriority(114); + _screen._effect = EFFECT_SHADED2; // Totally useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { - _actor3.setDetails(1850, 28, -1, -1, 2, (SceneItem *) NULL); + _screen.setDetails(1850, 28, -1, -1, 2, (SceneItem *) NULL); } else { // And the associated dead code - _actor3.setDetails(1850, 30, -1, -1, 2, (SceneItem *) NULL); + _screen.setDetails(1850, 30, -1, -1, 2, (SceneItem *) NULL); } - _actor4.postInit(); - _actor4.setup(1853, 3, 2); - _actor4.setPosition(Common::Point(139, 111)); - _actor4.fixPriority(114); - _actor4._effect = 6; + _helmet.postInit(); + _helmet.setup(1853, 3, 2); + _helmet.setPosition(Common::Point(139, 111)); + _helmet.fixPriority(114); + _helmet._effect = EFFECT_SHADED2; // Still totally useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { - _actor4.setDetails(1850, 29, -1, -1, 2, (SceneItem *) NULL); + _helmet.setDetails(1850, 29, -1, -1, 2, (SceneItem *) NULL); } else { // Another piece of dead code - _actor4.setDetails(1850, 28, -1, -1, 2, (SceneItem *) NULL); + _helmet.setDetails(1850, 28, -1, -1, 2, (SceneItem *) NULL); } if (R2_GLOBALS.getFlag(31)) { - _actor3._shade = 0; - _actor4._shade = 0; + _screen._shade = 0; + _helmet._shade = 0; } else { - _actor3._shade = 6; - _actor4._shade = 6; + _screen._shade = 6; + _helmet._shade = 6; } } else { R2_GLOBALS._player.setVisage(1500); @@ -12081,40 +11992,40 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.setVisage(1508); _companion.setVisage(1511); - _actor3.postInit(); - _actor3.setup(1853, 3, 1); - _actor3.setPosition(Common::Point(122, 113)); - _actor3.fixPriority(114); - _actor3._effect = 6; + _screen.postInit(); + _screen.setup(1853, 3, 1); + _screen.setPosition(Common::Point(122, 113)); + _screen.fixPriority(114); + _screen._effect = EFFECT_SHADED2; // Totally useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { // Dead code - _actor3.setDetails(1850, 28, -1, -1, 2, (SceneItem *) NULL); + _screen.setDetails(1850, 28, -1, -1, 2, (SceneItem *) NULL); } else { - _actor3.setDetails(1850, 30, -1, -1, 2, (SceneItem *) NULL); + _screen.setDetails(1850, 30, -1, -1, 2, (SceneItem *) NULL); } - _actor4.postInit(); - _actor4.setup(1853, 3, 2); - _actor4.setPosition(Common::Point(139, 111)); - _actor4.fixPriority(114); - _actor4._effect = 6; + _helmet.postInit(); + _helmet.setup(1853, 3, 2); + _helmet.setPosition(Common::Point(139, 111)); + _helmet.fixPriority(114); + _helmet._effect = EFFECT_SHADED2; // Again, useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { // and dead code - _actor4.setDetails(1850, 29, -1, -1, 1, (SceneItem *) NULL); + _helmet.setDetails(1850, 29, -1, -1, 1, (SceneItem *) NULL); } else { - _actor4.setDetails(1850, 28, -1, -1, 1, (SceneItem *) NULL); + _helmet.setDetails(1850, 28, -1, -1, 1, (SceneItem *) NULL); } if (R2_GLOBALS.getFlag(31)) { - _actor3._shade = 0; - _actor4._shade = 0; + _screen._shade = 0; + _helmet._shade = 0; } else { - _actor3._shade = 6; - _actor4._shade = 6; + _screen._shade = 6; + _helmet._shade = 6; } } else { R2_GLOBALS._player.setVisage(1505); @@ -12157,8 +12068,8 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.enableControl(); } else { // R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] != 1850 - R2_GLOBALS._player._effect = 1; - _companion._effect = 1; + R2_GLOBALS._player._effect = EFFECT_SHADED; + _companion._effect = EFFECT_SHADED; R2_GLOBALS._player.disableControl(); _sceneMode = 10; if (R2_GLOBALS._player._characterIndex == R2_QUINN) { @@ -12224,10 +12135,10 @@ void Scene1850::remove() { void Scene1850::signal() { switch (_sceneMode) { case 10: - R2_GLOBALS._player._effect = 6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; R2_GLOBALS._player._shade = 6; - _companion._effect = 6; + _companion._effect = EFFECT_SHADED2; _companion._shade = 6; R2_GLOBALS._walkRegions.disableRegion(5); @@ -12250,7 +12161,8 @@ void Scene1850::signal() { break; case 16: _sceneMode = 1870; - setAction(&_sequenceManager1, this, 1870, &R2_GLOBALS._player, &_companion, &_actor3, &_actor4, NULL); + setAction(&_sequenceManager1, this, 1870, &R2_GLOBALS._player, &_companion, + &_screen, &_helmet, NULL); break; case 20: R2_GLOBALS._player.enableControl(CURSOR_TALK); @@ -12258,7 +12170,8 @@ void Scene1850::signal() { case 21: R2_GLOBALS._player.disableControl(); _sceneMode = 1877; - setAction(&_sequenceManager1, this, 1877, &R2_GLOBALS._player, &_companion, &_robot, NULL); + setAction(&_sequenceManager1, this, 1877, &R2_GLOBALS._player, &_companion, + &_robot, NULL); break; case 30: R2_GLOBALS._player.disableControl(); @@ -12268,17 +12181,17 @@ void Scene1850::signal() { case 1852: // No break on purpose: case 1853: - if (_field412 == 1851) { + if (_sceneMode == 1851) { // At this point, SceneMode can't be equal to 1851 => dead code R2_GLOBALS.setFlag(31); _palette1.loadPalette(1850); - _field412 = 1850; + _sceneMode = 1850; } else { R2_GLOBALS.clearFlag(31); _palette1.loadPalette(1851); - _field412 = 1851; + _sceneMode = 1851; } - _field418 = 1; + _shadeChanging = true; if (R2_GLOBALS.getFlag(30)) { _displayScreen.setAction(&_sequenceManager2, NULL, 1867, &_displayScreen, NULL); } else if (R2_GLOBALS.getFlag(34)) { @@ -12294,12 +12207,13 @@ void Scene1850::signal() { R2_GLOBALS.setFlag(34); R2_GLOBALS._walkRegions.disableRegion(2); - _actor2.postInit(); - _actor2.setDetails(1850, 6, -1, -1, 5, &_robot); + _airbag.postInit(); + _airbag.setDetails(1850, 6, -1, -1, 5, &_robot); _sceneMode = 1879; - _displayScreen.setAction(&_sequenceManager2, this, 1879, &_robot, &_displayScreen, &_actor2, NULL); + _displayScreen.setAction(&_sequenceManager2, this, 1879, &_robot, + &_displayScreen, &_airbag, NULL); } else { _displayScreen.setAction(&_sequenceManager2, NULL, 1867, &_displayScreen, NULL); } @@ -12309,12 +12223,12 @@ void Scene1850::signal() { else R2_GLOBALS._scenePalette.addFader(_palette1._palette, 256, 5, this); - if (_field412 == 1851) - _field416 = -20; + if (_sceneMode == 1851) + _shadeDirection = -20; else - _field416 = 20; + _shadeDirection = 20; - _field414 = 20; + _shadeCountdown = 20; if (R2_GLOBALS._player._characterIndex == R2_QUINN) { if (_sceneMode == 1879) @@ -12360,16 +12274,16 @@ void Scene1850::signal() { _stripManager.start(575, this); break; case 1860: - if (_field41A.x != 0) { + if (_playerDest.x != 0) { R2_GLOBALS._player.enableControl(); PlayerMover *mover = new PlayerMover(); - R2_GLOBALS._player.addMover(mover, &_field41A, this); + R2_GLOBALS._player.addMover(mover, &_playerDest, this); - _field41A = Common::Point(0, 0); + _playerDest = Common::Point(0, 0); } - switch (_field41E) { + switch (_seqNumber) { case 1: _sceneMode = 1853; if (R2_GLOBALS.getFlag(32)) { @@ -12390,7 +12304,7 @@ void Scene1850::signal() { break; } - _field41E = 0; + _seqNumber = 0; break; case 1870: R2_GLOBALS._walkRegions.disableRegion(5); @@ -12405,36 +12319,36 @@ void Scene1850::signal() { _stripManager.start(561, this); break; case 1877: - _actor3.postInit(); - _actor3._effect = 6; + _screen.postInit(); + _screen._effect = EFFECT_SHADED2; if (R2_GLOBALS._player._characterIndex == R2_QUINN) { - _actor3.setDetails(1850, 28, -1, -1, 2, (SceneItem *)NULL); + _screen.setDetails(1850, 28, -1, -1, 2, (SceneItem *)NULL); } else { - _actor3.setDetails(1850, 30, -1, -1, 2, (SceneItem *)NULL); + _screen.setDetails(1850, 30, -1, -1, 2, (SceneItem *)NULL); } - _actor4.postInit(); - _actor4._effect = 6; + _helmet.postInit(); + _helmet._effect = EFFECT_SHADED2; if (R2_GLOBALS._player._characterIndex == R2_QUINN) { - _actor4.setDetails(1850, 29, -1, -1, 2, (SceneItem *)NULL); + _helmet.setDetails(1850, 29, -1, -1, 2, (SceneItem *)NULL); } else { - _actor4.setDetails(1850, 28, -1, -1, 2, (SceneItem *)NULL); + _helmet.setDetails(1850, 28, -1, -1, 2, (SceneItem *)NULL); } if (R2_GLOBALS.getFlag(31)) { - _actor3._shade = 0; - _actor4._shade = 0; + _screen._shade = 0; + _helmet._shade = 0; } else { - _actor3._shade = 6; - _actor4._shade = 6; + _screen._shade = 6; + _helmet._shade = 6; } R2_GLOBALS.clearFlag(30); _sceneMode = 15; - setAction(&_sequenceManager1, this, 1869, &R2_GLOBALS._player, &_actor3, NULL); - _companion.setAction(&_sequenceManager2, this, 1868, &_companion, &_actor4, NULL); + setAction(&_sequenceManager1, this, 1869, &R2_GLOBALS._player, &_screen, NULL); + _companion.setAction(&_sequenceManager2, this, 1868, &_companion, &_helmet, NULL); break; case 1878: R2_INVENTORY.setObjectScene(R2_REBREATHER_TANK, 1850); @@ -12460,8 +12374,8 @@ void Scene1850::signal() { void Scene1850::process(Event &event) { if ( (event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._events.getCursor() == CURSOR_WALK) - && (R2_GLOBALS._player._characterIndex == R2_SEEKER) && (R2_GLOBALS.getFlag(30))) { - _field41A = event.mousePos; + && (R2_GLOBALS._player._characterIndex == R2_SEEKER) && (R2_GLOBALS.getFlag(30))) { + _playerDest = event.mousePos; R2_GLOBALS._player.disableControl(); _sceneMode = 1860; if (R2_GLOBALS.getFlag(32)) { @@ -12469,7 +12383,7 @@ void Scene1850::process(Event &event) { } else { setAction(&_sequenceManager1, this, 1859, &R2_GLOBALS._player, &_robot, NULL); } - R2_GLOBALS.clearFlag(32); + R2_GLOBALS.clearFlag(30); event.handled = true; } @@ -12477,35 +12391,35 @@ void Scene1850::process(Event &event) { } void Scene1850::dispatch() { - if (_field418 != 0) { - _field414--; - if (_field414 == 0) - _field418 = 0; + if (_shadeChanging) { + _shadeCountdown--; + if (_shadeCountdown == 0) + _shadeChanging = false; - if (_field416 >= 0) { - R2_GLOBALS._player._shade = (_field414 * 6) / _field416; + if (_shadeDirection >= 0) { + R2_GLOBALS._player._shade = (_shadeCountdown * 6) / _shadeDirection; } else { - R2_GLOBALS._player._shade = ((_field414 * 6) / _field416) + 6; + R2_GLOBALS._player._shade = ((_shadeCountdown * 6) / _shadeDirection) + 6; } R2_GLOBALS._player._flags |= OBJFLAG_PANES; _companion._shade = R2_GLOBALS._player._shade; _companion._flags |= OBJFLAG_PANES; - _actor3._shade = R2_GLOBALS._player._shade; - _actor3._flags |= OBJFLAG_PANES; + _screen._shade = R2_GLOBALS._player._shade; + _screen._flags |= OBJFLAG_PANES; - _actor4._shade = R2_GLOBALS._player._shade; - _actor4._flags |= OBJFLAG_PANES; + _helmet._shade = R2_GLOBALS._player._shade; + _helmet._flags |= OBJFLAG_PANES; } if (R2_GLOBALS.getFlag(32)) { - _actor3.setPosition(Common::Point(_displayScreen._position.x - 37, _displayScreen._position.y - 71)); - _actor4.setPosition(Common::Point(_displayScreen._position.x - 20, _displayScreen._position.y - 73)); + _screen.setPosition(Common::Point(_displayScreen._position.x - 37, _displayScreen._position.y - 71)); + _helmet.setPosition(Common::Point(_displayScreen._position.x - 20, _displayScreen._position.y - 73)); } if (R2_INVENTORY.getObjectScene(R2_AIRBAG) == 1850) { - _actor2.setPosition(Common::Point(_displayScreen._position.x + 20, _displayScreen._position.y - 71)); + _airbag.setPosition(Common::Point(_displayScreen._position.x + 20, _displayScreen._position.y - 71)); } Scene::dispatch(); @@ -12536,7 +12450,7 @@ void Scene1875::Button::doButtonPress() { int newFrameNumber; switch (_buttonId) { case 3: - if ((scene->_actor1._frame == 1) && (scene->_button1._strip == 2)) { + if ((scene->_map._frame == 1) && (scene->_button1._strip == 2)) { R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); scene->_sceneMode = 10; @@ -12544,21 +12458,21 @@ void Scene1875::Button::doButtonPress() { } else { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 1890; - scene->_actor2.postInit(); - scene->setAction(&scene->_sequenceManager, scene, 1890, &scene->_actor2, NULL); + scene->_rimPosition.postInit(); + scene->setAction(&scene->_sequenceManager, scene, 1890, &scene->_rimPosition, NULL); } break; case 4: - newFrameNumber = scene->_actor1._frame + 1; + newFrameNumber = scene->_map._frame + 1; if (newFrameNumber > 6) newFrameNumber = 1; - scene->_actor1.setFrame(newFrameNumber); + scene->_map.setFrame(newFrameNumber); break; case 5: - newFrameNumber = scene->_actor1._frame - 1; + newFrameNumber = scene->_map._frame - 1; if (newFrameNumber < 1) newFrameNumber = 6; - scene->_actor1.setFrame(newFrameNumber); + scene->_map.setFrame(newFrameNumber); break; default: break; @@ -12651,9 +12565,9 @@ void Scene1875::postInit(SceneObjectList *OwnerList) { _button4.initButton(4); _button5.initButton(5); - _actor1.postInit(); - _actor1.setup(1855, 4, 1); - _actor1.setPosition(Common::Point(160, 116)); + _map.postInit(); + _map.setup(1855, 4, 1); + _map.setPosition(Common::Point(160, 116)); R2_GLOBALS._player.postInit(); R2_GLOBALS._player.hide(); @@ -12662,8 +12576,8 @@ void Scene1875::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._sound1.play(122); R2_GLOBALS._player.disableControl(); _sceneMode = 11; - _actor2.postInit(); - setAction(&_sequenceManager, this, 1892, &_actor2, NULL); + _rimPosition.postInit(); + setAction(&_sequenceManager, this, 1892, &_rimPosition, NULL); } else { if (R2_GLOBALS._sceneManager._previousScene == 3150) { R2_GLOBALS._sound1.play(116); @@ -12673,8 +12587,8 @@ void Scene1875::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._canWalk = false; } - _item2.setDetails(Rect(43, 14, 275, 122), 1875, 9, 1, -1, 1, NULL); - _item1.setDetails(Rect(0, 0, 320, 200), 1875, 3, -1, -1, 1, NULL); + _screen.setDetails(Rect(43, 14, 275, 122), 1875, 9, 1, -1, 1, NULL); + _background.setDetails(Rect(0, 0, 320, 200), 1875, 3, -1, -1, 1, NULL); R2_GLOBALS._player._characterScene[R2_QUINN] = 1875; R2_GLOBALS._player._characterScene[R2_SEEKER] = 1875; @@ -12687,8 +12601,8 @@ void Scene1875::signal() { case 10: R2_GLOBALS._player.disableControl(); _sceneMode = 1891; - _actor2.postInit(); - setAction(&_sequenceManager, this, 1891, &_actor2, NULL); + _rimPosition.postInit(); + setAction(&_sequenceManager, this, 1891, &_rimPosition, NULL); break; case 11: R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -12696,7 +12610,7 @@ void Scene1875::signal() { _stripManager.start(577, this); break; case 1890: - _actor2.remove(); + _rimPosition.remove(); R2_GLOBALS._player.enableControl(); R2_GLOBALS._player._canWalk = false; break; @@ -13624,14 +13538,12 @@ void Scene1945::signal() { *--------------------------------------------------------------------------*/ Scene1950::KeypadWindow::KeypadWindow() { - _field20 = 0; _buttonIndex = 0; } void Scene1950::KeypadWindow::synchronize(Serializer &s) { SceneArea::synchronize(s); - s.syncAsByte(_field20); s.syncAsSint16LE(_buttonIndex); } @@ -13801,11 +13713,9 @@ bool Scene1950::Gem::startAction(CursorType action, Event &event) { /*--------------------------------------------------------------------------*/ Scene1950::Vampire::Vampire() { - _fieldA8 = 0; - _fieldAA = 0; + _deltaX = 0; + _deltaY = 0; _vampireMode = 0; - _fieldAE = 0; - _fieldAF = 0; } void Scene1950::Vampire::synchronize(Serializer &s) { @@ -13813,11 +13723,9 @@ void Scene1950::Vampire::synchronize(Serializer &s) { s.syncAsSint16LE(_deadPosition.x); s.syncAsSint16LE(_deadPosition.y); - s.syncAsSint16LE(_fieldA8); - s.syncAsSint16LE(_fieldAA); + s.syncAsSint16LE(_deltaX); + s.syncAsSint16LE(_deltaY); s.syncAsSint16LE(_vampireMode); - s.syncAsByte(_fieldAE); - s.syncAsByte(_fieldAF); } void Scene1950::Vampire::signal() { @@ -13868,7 +13776,7 @@ void Scene1950::Vampire::signal() { R2_GLOBALS._player.enableControl(); } break; - case 21: + case 21: { // Fatal shot R2_GLOBALS._player.setVisage(22); if (R2_GLOBALS._flubMazeEntryDirection == 3) @@ -13892,23 +13800,24 @@ void Scene1950::Vampire::signal() { R2_GLOBALS._vampireData[scene->_vampireIndex - 1]._isAlive = false; R2_GLOBALS._vampireData[scene->_vampireIndex - 1]._shotsRequired--; R2_GLOBALS._vampireData[scene->_vampireIndex - 1]._position = _position; - _fieldA8 = (_position.x - R2_GLOBALS._player._position.x) / 2; - _fieldAA = (_position.y - R2_GLOBALS._player._position.y) / 2; + _deltaX = (_position.x - R2_GLOBALS._player._position.x) / 2; + _deltaY = (_position.y - R2_GLOBALS._player._position.y) / 2; - _fieldAE = 0; - for (_fieldAF = 0; _fieldAF < 18; ++_fieldAF) - if (!R2_GLOBALS._vampireData[_fieldAF]._isAlive) - ++_fieldAE; + byte vampireCount = 0; + for (byte i = 0; i < 18; ++i) { + if (!R2_GLOBALS._vampireData[i]._isAlive) + ++vampireCount; + } - if (_fieldAE == 18) { + if (vampireCount == 18) { R2_GLOBALS.setFlag(36); _vampireMode = 23; - Common::Point pt(R2_GLOBALS._player._position.x + _fieldA8, R2_GLOBALS._player._position.y + _fieldAA); + Common::Point pt(R2_GLOBALS._player._position.x + _deltaX, R2_GLOBALS._player._position.y + _deltaY); NpcMover *mover = new NpcMover(); R2_GLOBALS._player.addMover(mover, &pt, this); - } else if (_fieldAE == 1) { + } else if (vampireCount == 1) { _vampireMode = 22; - Common::Point pt(R2_GLOBALS._player._position.x + _fieldA8, R2_GLOBALS._player._position.y + _fieldAA); + Common::Point pt(R2_GLOBALS._player._position.x + _deltaX, R2_GLOBALS._player._position.y + _deltaY); NpcMover *mover = new NpcMover(); R2_GLOBALS._player.addMover(mover, &pt, this); } else { @@ -13921,6 +13830,7 @@ void Scene1950::Vampire::signal() { scene->_westExit._enabled = true; scene->_vampireActive = false; + } break; case 22: SceneItem::display(1950, 18, 0, 280, 1, 160, 9, 1, 2, 20, 7, 7, LIST_END); @@ -14893,7 +14803,7 @@ void Scene1950::enterArea() { _vampire._numFrames = 6; _vampire._moveRate = 6; _vampire._moveDiff = Common::Point(3, 2); - _vampire._effect = 1; + _vampire._effect = EFFECT_SHADED; if (!R2_GLOBALS._vampireData[_vampireIndex - 1]._isAlive) { // Show vampire ashes diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index a663fbe5bc..0a379002f9 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -422,14 +422,13 @@ public: }; class Scene1550 : public SceneExt { - class SceneActor1550 : public SceneActor { + class Wall : public SceneActor { public: - void subA4D14(int frameNumber, int strip); + void setupWall(int frameNumber, int strip); }; class Junk : public SceneActor { public: - int _fieldA4; int _junkNumber; Junk(); @@ -449,27 +448,24 @@ class Scene1550 : public SceneExt { void setupShipComponent(int componentId); }; - class UnkObj15503 : public SceneActor { - public: - int _fieldA4; - - UnkObj15503(); - void synchronize(Serializer &s); + class DishControlsWindow : public ModalWindow { + class DishControl : public SceneActor { + public: + int _controlId; - virtual bool startAction(CursorType action, Event &event); - }; + DishControl(); + void synchronize(Serializer &s); - class UnkArea1550 : public SceneArea { + virtual bool startAction(CursorType action, Event &event); + }; public: byte _field20; SceneActor _areaActor; - UnkObj15503 _unkObj155031; - UnkObj15503 _unkObj155032; + DishControl _button; + DishControl _lever; virtual void remove(); - virtual void process(Event &event); virtual void setup2(int visage, int stripFrameNum, int frameNum, int posX, int posY); - virtual void setup3(int resNum, int lookLineNum, int talkLineNum, int useLineNum); }; class WorkingShip : public NamedHotspot { @@ -477,11 +473,6 @@ class Scene1550 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Hotspot3 : public NamedHotspot { - public: - virtual bool startAction(CursorType action, Event &event); - }; - class Wreckage : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); @@ -492,77 +483,71 @@ class Scene1550 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Actor8 : public SceneActor { + class AirBag : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor9 : public SceneActor { + class Joystick : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor10 : public SceneActor { + class Gyroscope : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor11 : public SceneActor { + class DiagnosticsDisplay : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor12 : public SceneActor { + class DishTower : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor13 : public SceneActor { + class Dish : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; - class Wall : public SceneActor1550 { - // Nothing specific found in the original - // TODO: check if it's an useless class - }; - public: SpeakerQuinn _quinnSpeaker; SpeakerSeeker _seekerSpeaker; - WorkingShip _shipHull; - WorkingShip _item2; - Hotspot3 _item3; - SceneActor _landingStrut; - SceneActor _actor2; - SceneActor _actor3; - SceneActor _actor4; - SceneActor _actor5; + WorkingShip _intactHull1, _intactHull2; + SceneHotspot _background; + SceneActor _wreckage2; // also used for Lance of Truth landing strut + SceneActor _wreckage3; + SceneActor _wreckage4; + SceneActor _walkway; + SceneActor _dishTowerShadow; Wreckage _wreckage; Companion _companion; - Actor8 _actor8; - Actor9 _actor9; - Actor10 _actor10; - Actor11 _actor11; - Actor12 _actor12; - Actor13 _actor13; + AirBag _airbag; + Joystick _joystick; + Gyroscope _gyroscope; + DiagnosticsDisplay _diagnosticsDisplay; + DishTower _dishTower; + Dish _dish; Junk _junk[8]; - Wall _actor14; + Wall _wallCorner1; Wall _northWall; // Is also reused for landing strip - Wall _actor16; + Wall _wallCorner2; Wall _westWall; // Is also reused for left hand space Wall _eastWall; Wall _southWall; ShipComponent _shipComponents[8]; - UnkArea1550 _unkArea1; + DishControlsWindow _dishControlsWindow; SequenceManager _sequenceManager1; SequenceManager _sequenceManager2; - int _field412; - byte _field414; - int _field415; - int _field417; - int _field419; + bool _dontExit; + int _wallType; + int _dishMode; + int _sceneResourceId; + int _walkRegionsId; Scene1550(); void synchronize(Serializer &s); @@ -663,8 +648,6 @@ class Scene1580 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; public: - //CHECKME: Useless variable? - int _field412; SpeakerQuinn _quinnSpeaker; SpeakerSeeker _seekerSpeaker; JoystickPlug _joystickPlug; @@ -693,8 +676,6 @@ class Scene1625 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; public: - //CHECKME: Useless variable - int _field412; SpeakerMiranda1625 _mirandaSpeaker; SpeakerTeal1625 _tealSpeaker; SpeakerSoldier1625 _soldierSpeaker; @@ -718,16 +699,11 @@ public: }; class Scene1700 : public SceneExt { - class Item2 : public NamedHotspot { - public: - virtual bool startAction(CursorType action, Event &event); - }; - class RimTransport : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor12 : public SceneActor { + class Companion : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; @@ -747,10 +723,10 @@ class Scene1700 : public SceneExt { public: SpeakerQuinn _quinnSpeaker; SpeakerSeeker _seekerSpeaker; - NamedHotspot _item1; - Item2 _item2; - SceneActor _actor1; - SceneActor _actor2; + NamedHotspot _surface; + NamedHotspot _background; + SceneActor _playerShadow; + SceneActor _companionShadow; SceneActor _slabWest; SceneActor _slabEast; SceneActor _slabShadowWest; @@ -758,16 +734,15 @@ public: SceneActor _westPlatform; SceneActor _rimTransportDoor; SceneActor _ledgeHopper; - SceneActor _actor10; + SceneActor _hatch; RimTransport _rimTransport; - Actor12 _actor12; + Companion _companion; NorthExit _northExit; SouthExit _southExit; WestExit _westExit; SequenceManager _sequenceManager; - int _field77A; - int _field77C; + bool _walkFlag; Scene1700(); void synchronize(Serializer &s); @@ -814,9 +789,9 @@ public: NamedHotspot _greenLights; NamedHotspot _frontView; NamedHotspot _rearView; - SceneActor _actor1; - SceneActor _actor2; - SceneActor _actor3; + SceneActor _scannerIcon1; + SceneActor _scannerIcon2; + SceneActor _radarSweep; SpeedSlider _speedSlider; Button _forwardButton; Button _backwardButton; @@ -825,12 +800,12 @@ public: PaletteRotation *_rotation; int _direction; - int _field413; + int _speedCurrent; int _speed; - int _field417; - int _field419; - int _field41B; - int _field41D; + int _speedDelta; + int _rotationSegment; + int _rotationSegCurrent; + int _newRotation; Scene1750(); virtual void synchronize(Serializer &s); @@ -861,7 +836,7 @@ class Scene1800 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -869,9 +844,9 @@ public: int _locationMode; SpeakerQuinn _quinnSpeaker; SpeakerSeeker _seekerSpeaker; - NamedHotspot _item1; - NamedHotspot _item2; - NamedHotspot _item3; + NamedHotspot _elevator; + NamedHotspot _elevatorContents; + NamedHotspot _surface; NamedHotspot _secBackground; Background _background; SceneActor _playerShadow; @@ -883,7 +858,7 @@ public: Doors _doors; PassengerDoor _leftDoor; PassengerDoor _rightDoor; - Exit1 _southExit; + SouthExit _southExit; SequenceManager _sequenceManager; Scene1800(); @@ -904,7 +879,7 @@ class Scene1850 : public SceneExt { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor6 : public SceneActor { + class Door : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; @@ -914,24 +889,24 @@ class Scene1850 : public SceneExt { }; public: - int _field412; - int _field414; - int _field416; - int _field418; - Common::Point _field41A; - int _field41E; + int _sceneMode; + int _shadeCountdown; + int _shadeDirection; + bool _shadeChanging; + Common::Point _playerDest; + int _seqNumber; ScenePalette _palette1; SpeakerQuinn _quinnSpeaker; SpeakerSeeker _seekerSpeaker; NamedHotspot _background; Button _button; SceneActor _companion; - SceneActor _actor2; - SceneActor _actor3; - SceneActor _actor4; + SceneActor _airbag; + SceneActor _screen; + SceneActor _helmet; Robot _robot; - Actor6 _leftDoor; - Actor6 _rightDoor; + Door _leftDoor; + Door _rightDoor; DisplayScreen _displayScreen; SequenceManager _sequenceManager1; SequenceManager _sequenceManager2; @@ -963,11 +938,10 @@ class Scene1875 : public SceneExt { public: SpeakerQuinn _quinnSpeaker; SpeakerSeeker _seekerSpeaker; - NamedHotspot _item1; - NamedHotspot _item2; - SceneActor _actor1; - SceneActor _actor2; - SceneActor _actor3; + NamedHotspot _background; + NamedHotspot _screen; + SceneActor _map; + SceneActor _rimPosition; Button _button1; Button _button2; Button _button3; @@ -1130,7 +1104,6 @@ class Scene1950 : public SceneExt { SceneActor _areaActor; KeypadButton _buttons[16]; - byte _field20; int _buttonIndex; KeypadWindow(); @@ -1154,10 +1127,6 @@ class Scene1950 : public SceneExt { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor4 : public SceneActor { - public: - virtual bool startAction(CursorType action, Event &event); - }; class Gem : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); @@ -1165,11 +1134,9 @@ class Scene1950 : public SceneExt { class Vampire : public SceneActor { public: Common::Point _deadPosition; - int _fieldA8; - int _fieldAA; + int _deltaX; + int _deltaY; int _vampireMode; - byte _fieldAE; - byte _fieldAF; Vampire(); void synchronize(Serializer &s); @@ -1252,6 +1219,7 @@ public: virtual void signal(); virtual void process(Event &event); }; + } // End of namespace Ringworld2 } // End of namespace TsAGE diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index 42df9d6a6a..f9e5b096c6 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -1367,7 +1367,7 @@ bool Scene2425::Pictographs::startAction(CursorType action, Event &event) { } } -void Scene2425::Exit1::changeScene() { +void Scene2425::SouthEastExit::changeScene() { Scene2425 *scene = (Scene2425 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -1390,7 +1390,7 @@ void Scene2425::postInit(SceneObjectList *OwnerList) { } R2_GLOBALS._sound1.play(200); - _exit1.setDetails(Rect(270, 136, 319, 168), EXITCURSOR_SE, 2000); + _southEastExit.setDetails(Rect(270, 136, 319, 168), EXITCURSOR_SE, 2000); R2_GLOBALS._player.postInit(); R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); @@ -1523,7 +1523,7 @@ bool Scene2430::OilLamp::startAction(CursorType action, Event &event) { return true; } -void Scene2430::Exit1::changeScene() { +void Scene2430::SouthExit::changeScene() { Scene2430 *scene = (Scene2430 *)R2_GLOBALS._sceneManager._scene; scene->_sceneMode = 0; @@ -1538,8 +1538,8 @@ void Scene2430::Exit1::changeScene() { void Scene2430::postInit(SceneObjectList *OwnerList) { loadScene(2430); SceneExt::postInit(); - _exit1.setDetails(Rect(68, 155, 147, 168), EXITCURSOR_S, 2000); - _exit1.setDest(Common::Point(108, 160)); + _southExit.setDetails(Rect(68, 155, 147, 168), EXITCURSOR_S, 2000); + _southExit.setDest(Common::Point(108, 160)); if (R2_INVENTORY.getObjectScene(R2_GUNPOWDER) == 2430) { _gunPowder.postInit(); @@ -1673,7 +1673,7 @@ bool Scene2435::Astor::startAction(CursorType action, Event &event) { } } -void Scene2435::Exit1::changeScene() { +void Scene2435::SouthExit::changeScene() { Scene2435 *scene = (Scene2435 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -1693,8 +1693,8 @@ void Scene2435::postInit(SceneObjectList *OwnerList) { _stripManager.addSpeaker(&_quinnSpeaker); _stripManager.addSpeaker(&_seekerSpeaker); _stripManager.addSpeaker(&_pharishaSpeaker); - _exit1.setDetails(Rect(142, 155, 207, 167), EXITCURSOR_S, 2000); - _exit1.setDest(Common::Point(175, 160)); + _southExit.setDetails(Rect(142, 155, 207, 167), EXITCURSOR_S, 2000); + _southExit.setDest(Common::Point(175, 160)); _astor.postInit(); _astor.setup(2005, 3, 1); _astor.setPosition(Common::Point(219, 106)); @@ -1811,7 +1811,7 @@ bool Scene2440::OilLamp::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); } -void Scene2440::Exit1::changeScene() { +void Scene2440::SouthEastExit::changeScene() { Scene2440 *scene = (Scene2440 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -1827,8 +1827,8 @@ void Scene2440::postInit(SceneObjectList *OwnerList) { SceneExt::postInit(); R2_GLOBALS._sound1.play(200); // Fix exit cursor, the original was using NW - _exit1.setDetails(Rect(172, 155, 250, 167), EXITCURSOR_SE, 2000); - _exit1.setDest(Common::Point(210, 160)); + _southEastExit.setDetails(Rect(172, 155, 250, 167), EXITCURSOR_SE, 2000); + _southEastExit.setDest(Common::Point(210, 160)); if (R2_INVENTORY.getObjectScene(R2_ALCOHOL_LAMP_2) == 2440) { _oilLamp.postInit(); _oilLamp.setup(2435, 1, 1); @@ -1958,7 +1958,7 @@ bool Scene2450::CareTaker::startAction(CursorType action, Event &event) { } } -void Scene2450::Exit1::changeScene() { +void Scene2450::SouthWestExit::changeScene() { Scene2450 *scene = (Scene2450 *)R2_GLOBALS._sceneManager._scene; if ((R2_GLOBALS._player._characterIndex == R2_SEEKER) || (R2_GLOBALS.getFlag(61))) { @@ -1992,8 +1992,8 @@ void Scene2450::postInit(SceneObjectList *OwnerList) { _stripManager.addSpeaker(&_caretakerSpeaker); if (R2_GLOBALS.getFlag(72)) { - _exit1.setDetails(Rect(0, 143, 47, 168), EXITCURSOR_SW, 2000); - _exit1.setDest(Common::Point(10, 160)); + _southWestExit.setDetails(Rect(0, 143, 47, 168), EXITCURSOR_SW, 2000); + _southWestExit.setDest(Common::Point(10, 160)); } if (!R2_GLOBALS.getFlag(61)) { @@ -2070,7 +2070,7 @@ void Scene2450::postInit(SceneObjectList *OwnerList) { _careTaker.setPosition(Common::Point(34, 153)); _careTaker.setDetails(2001, 40, -1, -1, 1, (SceneItem *)NULL); - _exit1._enabled = false; + _southWestExit._enabled = false; } } else { R2_GLOBALS._player.postInit(); @@ -2103,7 +2103,7 @@ void Scene2450::postInit(SceneObjectList *OwnerList) { _careTaker.setPosition(Common::Point(34, 153)); _careTaker.setDetails(2001, 40, -1, -1, 1, (SceneItem *)NULL); - _exit1._enabled = false; + _southWestExit._enabled = false; } } R2_GLOBALS._player.enableControl(); @@ -2182,7 +2182,7 @@ void Scene2450::signal() { _stripManager.start(700, this); break; case 2454: - _exit1._enabled = true; + _southWestExit._enabled = true; R2_GLOBALS.setFlag(72); _careTaker.remove(); if (R2_GLOBALS.getFlag(61)) { @@ -2286,7 +2286,7 @@ bool Scene2455::ScrithKey::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); } -void Scene2455::Exit1::changeScene() { +void Scene2455::NorthExit::changeScene() { Scene2455 *scene = (Scene2455 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -2306,7 +2306,7 @@ void Scene2455::postInit(SceneObjectList *OwnerList) { } R2_GLOBALS._sound1.play(200); - _exit1.setDetails(Rect(0, 0, 320, 15), EXITCURSOR_N, 2425); + _northExit.setDetails(Rect(0, 0, 320, 15), EXITCURSOR_N, 2425); if (R2_INVENTORY.getObjectScene(R2_GLASS_DOME) == 2455) { _scrithKey.postInit(); @@ -2398,7 +2398,7 @@ void Scene2455::signal() { * *--------------------------------------------------------------------------*/ -void Scene2500::Exit1::changeScene() { +void Scene2500::WestExit::changeScene() { Scene2500 *scene = (Scene2500 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -2426,8 +2426,8 @@ void Scene2500::postInit(SceneObjectList *OwnerList) { if (R2_GLOBALS._sceneManager._previousScene == -1) R2_GLOBALS._sceneManager._previousScene = 2000; - _exit1.setDetails(Rect(30, 50, 85, 105), EXITCURSOR_W, 2000); - _exit1.setDest(Common::Point(84, 104)); + _westExit.setDetails(Rect(30, 50, 85, 105), EXITCURSOR_W, 2000); + _westExit.setDest(Common::Point(84, 104)); R2_GLOBALS._player.postInit(); R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); @@ -2532,7 +2532,7 @@ bool Scene2525::GlassDome::startAction(CursorType action, Event &event) { return true; } -void Scene2525::Exit1::changeScene() { +void Scene2525::SouthExit::changeScene() { Scene2525 *scene = (Scene2525 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -2551,7 +2551,7 @@ void Scene2525::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._sound1.play(200); R2_GLOBALS._sound2.play(207); - _exit1.setDetails(Rect(86, 155, 228, 168), EXITCURSOR_S, 2000); + _southExit.setDetails(Rect(86, 155, 228, 168), EXITCURSOR_S, 2000); if (R2_INVENTORY.getObjectScene(R2_GLASS_DOME) == 2525) { _glassDome.postInit(); @@ -2690,7 +2690,7 @@ bool Scene2530::Crank::startAction(CursorType action, Event &event) { return true; } -void Scene2530::Exit1::changeScene() { +void Scene2530::SouthExit::changeScene() { Scene2530 *scene = (Scene2530 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -2707,8 +2707,8 @@ void Scene2530::postInit(SceneObjectList *OwnerList) { loadScene(2530); SceneExt::postInit(); - _exit1.setDetails(Rect(68, 155, 147, 168), EXITCURSOR_S, 2000); - _exit1.setDest(Common::Point(108, 160)); + _southExit.setDetails(Rect(68, 155, 147, 168), EXITCURSOR_S, 2000); + _southExit.setDest(Common::Point(108, 160)); if (R2_INVENTORY.getObjectScene(R2_PURE_GRAIN_ALCOHOL) == 2530) { _flask.postInit(); @@ -2839,7 +2839,7 @@ bool Scene2535::TannerMask::startAction(CursorType action, Event &event) { return true; } -void Scene2535::Exit1::changeScene() { +void Scene2535::SouthExit::changeScene() { Scene2535 *scene = (Scene2535 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -2858,8 +2858,8 @@ void Scene2535::postInit(SceneObjectList *OwnerList) { R2_GLOBALS.setFlag(73); R2_INVENTORY.setObjectScene(R2_REBREATHER_TANK, 2535); } - _exit1.setDetails(Rect(172, 155, 250, 167), EXITCURSOR_S, 2000); - _exit1.setDest(Common::Point(210, 160)); + _southExit.setDetails(Rect(172, 155, 250, 167), EXITCURSOR_S, 2000); + _southExit.setDest(Common::Point(210, 160)); if (R2_INVENTORY.getObjectScene(R2_TANNER_MASK) == 2535) { _tannerMask.postInit(); @@ -3072,7 +3072,7 @@ void Scene2700::Action4::signal() { scene->_ghoulHome9.animate(ANIM_MODE_8, 1, NULL); } -void Scene2700::Area1::process(Event &event) { +void Scene2700::SouthExit::process(Event &event) { SceneArea::process(event); if ((event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._player._canWalk) && (_bounds.contains(event.mousePos))) { Scene2700 *scene = (Scene2700 *)R2_GLOBALS._sceneManager._scene; @@ -3122,7 +3122,7 @@ void Scene2700::Area1::process(Event &event) { } } -void Scene2700::Area2::process(Event &event) { +void Scene2700::EastExit::process(Event &event) { SceneArea::process(event); if ((event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._player._canWalk) && (_bounds.contains(event.mousePos))) { Scene2700 *scene = (Scene2700 *)R2_GLOBALS._sceneManager._scene; @@ -3182,8 +3182,8 @@ void Scene2700::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._sound1.stop(); R2_GLOBALS._sound2.stop(); - _area1.setDetails(Rect(135, 160, 185, 168), SHADECURSOR_DOWN); - _area2.setDetails(Rect(300, 90, 320, 135), EXITCURSOR_E); + _southExit.setDetails(Rect(135, 160, 185, 168), SHADECURSOR_DOWN); + _eastExit.setDetails(Rect(300, 90, 320, 135), EXITCURSOR_E); _ghoulHome6.postInit(); _ghoulHome6.setup(2700, 1, 1); @@ -3797,7 +3797,7 @@ void Scene2750::Action7::signal() { scene->_folliage7.animate(ANIM_MODE_8, 1, NULL); } -void Scene2750::Area1::process(Event &event) { +void Scene2750::WestExit::process(Event &event) { SceneArea::process(event); if ((event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._player._canWalk) && (_bounds.contains(event.mousePos))) { Scene2750 *scene = (Scene2750 *)R2_GLOBALS._sceneManager._scene; @@ -3828,7 +3828,7 @@ void Scene2750::Area1::process(Event &event) { } } -void Scene2750::Area2::process(Event &event) { +void Scene2750::EastExit::process(Event &event) { SceneArea::process(event); if ((event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._player._canWalk) && (_bounds.contains(event.mousePos))) { Scene2750 *scene = (Scene2750 *)R2_GLOBALS._sceneManager._scene; @@ -3863,8 +3863,8 @@ void Scene2750::postInit(SceneObjectList *OwnerList) { loadScene(2750); R2_GLOBALS._sound2.stop(); SceneExt::postInit(); - _area1.setDetails(Rect(0, 90, 20, 135), EXITCURSOR_W); - _area2.setDetails(Rect(300, 90, 320, 135), EXITCURSOR_E); + _westExit.setDetails(Rect(0, 90, 20, 135), EXITCURSOR_W); + _eastExit.setDetails(Rect(300, 90, 320, 135), EXITCURSOR_E); _walkRect1.set(30, 127, 155, 147); _walkRect2.set(130, 142, 210, 167); diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index 1d0cfc41f8..d474297d79 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -166,7 +166,7 @@ class Scene2425 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthEastExit : public SceneExit { public: virtual void changeScene(); }; @@ -178,7 +178,7 @@ public: Rope _rope; Pictographs _pictographs1; Pictographs _pictographs2; - Exit1 _exit1; + SouthEastExit _southEastExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); @@ -200,7 +200,7 @@ class Scene2430 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -221,7 +221,7 @@ public: Companion _companion; GunPowder _gunPowder; OilLamp _oilLamp; - Exit1 _exit1; + SouthExit _southExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); @@ -238,7 +238,7 @@ class Scene2435 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -251,7 +251,7 @@ public: NamedHotspot _rightWindow; Companion _companion; Astor _astor; - Exit1 _exit1; + SouthExit _southExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); @@ -269,7 +269,7 @@ class Scene2440 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthEastExit : public SceneExit { public: virtual void changeScene(); }; @@ -283,7 +283,7 @@ public: NamedHotspot _bottles; Companion _companion; OilLamp _oilLamp; - Exit1 _exit1; + SouthEastExit _southEastExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); @@ -309,7 +309,7 @@ class Scene2450 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthWestExit : public SceneExit { public: virtual void changeScene(); }; @@ -323,7 +323,7 @@ public: SceneActor _companion; Parker _parker; CareTaker _careTaker; - Exit1 _exit1; + SouthWestExit _southWestExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); @@ -345,7 +345,7 @@ class Scene2455 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class NorthExit : public SceneExit { public: virtual void changeScene(); }; @@ -354,7 +354,7 @@ public: Lamp _lamp; Pool _pool; ScrithKey _scrithKey; - Exit1 _exit1; + NorthExit _northExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); @@ -363,7 +363,7 @@ public: }; class Scene2500 : public SceneExt { - class Exit1 : public SceneExit { + class WestExit : public SceneExit { public: virtual void changeScene(); }; @@ -376,7 +376,7 @@ public: SceneActor _companion; SceneActor _quinn; SceneActor _ship; - Exit1 _exit1; + WestExit _westExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); @@ -394,7 +394,7 @@ class Scene2525 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -407,7 +407,7 @@ public: SceneActor _companion; SceneActor _compressor; GlassDome _glassDome; - Exit1 _exit1; + SouthExit _southExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); @@ -425,7 +425,7 @@ class Scene2530 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -438,7 +438,7 @@ public: SceneActor _companion; Flask _flask; Crank _crank; - Exit1 _exit1; + SouthExit _southExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); @@ -455,7 +455,7 @@ class Scene2535 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -471,7 +471,7 @@ public: SceneActor _rope; RebreatherTank _rebreatherTank; TannerMask _tannerMask; - Exit1 _exit1; + SouthExit _southExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); @@ -508,11 +508,11 @@ class Scene2700 : public SceneExt { void signal(); }; - class Area1: public SceneArea { + class SouthExit: public SceneArea { public: void process(Event &event); }; - class Area2: public SceneArea { + class EastExit: public SceneArea { public: void process(Event &event); }; @@ -534,8 +534,8 @@ public: Action2 _action2; Action3 _action3; Action4 _action4; - Area1 _area1; - Area2 _area2; + SouthExit _southExit; + EastExit _eastExit; Rect _walkRect1, _walkRect2, _walkRect3; Rect _walkRect4, _walkRect5, _walkRect6; SequenceManager _sequenceManager; @@ -578,11 +578,11 @@ class Scene2750 : public SceneExt { void signal(); }; - class Area1: public SceneArea { + class WestExit: public SceneArea { public: void process(Event &event); }; - class Area2: public SceneArea { + class EastExit: public SceneArea { public: void process(Event &event); }; @@ -612,8 +612,8 @@ public: Action5 _action5; Action6 _action6; Action7 _action7; - Area1 _area1; - Area2 _area2; + WestExit _westExit; + EastExit _eastExit; Rect _walkRect1, _walkRect2, _walkRect3; SequenceManager _sequenceManager; int _areaMode, _moveMode, _stripNumber; diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 788b8c77dd..1c70f5e6c3 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -396,7 +396,7 @@ bool Scene3150::LightFixture::startAction(CursorType action, Event &event) { if ((R2_INVENTORY.getObjectScene(R2_LIGHT_BULB) != 3150) && (R2_GLOBALS.getFlag(75))) { R2_GLOBALS._player.disableControl(); scene->_bulbOrWire.postInit(); - scene->_bulbOrWire._effect = 3; + scene->_bulbOrWire._effect = EFFECT_SHADED2; scene->_bulbOrWire._shade = 5; scene->_sceneMode = 3155; scene->setAction(&scene->_sequenceManager, scene, 3155, &R2_GLOBALS._player, &scene->_bulbOrWire, NULL); @@ -417,7 +417,7 @@ bool Scene3150::Toilet::startAction(CursorType action, Event &event) { case R2_PILLOW: R2_GLOBALS._player.disableControl(); scene->_water.postInit(); - scene->_water._effect = 6; + scene->_water._effect = EFFECT_SHADED2; scene->_water._shade = 3; R2_GLOBALS._player.disableControl(); scene->_sceneMode = 3158; @@ -428,7 +428,7 @@ bool Scene3150::Toilet::startAction(CursorType action, Event &event) { (R2_INVENTORY.getObjectScene(R2_SUPERCONDUCTOR_WIRE) == 3150) && (R2_GLOBALS.getFlag(75))) { scene->_foodTray.postInit(); - scene->_foodTray._effect = 6; + scene->_foodTray._effect = EFFECT_SHADED2; scene->_foodTray._shade = 3; scene->_foodTray.setDetails(3150, 30, -1, -1, 2, (SceneItem *)NULL); @@ -579,7 +579,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { _guard.postInit(); _guard.setup(3154, 1, 16); _guard.setPosition(Common::Point(104, 129)); - _guard._effect = 6; + _guard._effect = EFFECT_SHADED2; _guard._shade = 3; _guard.setDetails(3150, 24, -1, -1, -1, (SceneItem *)NULL); } @@ -609,7 +609,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { } _water.fixPriority(110); _water.setPosition(Common::Point(83, 88)); - _water._effect = 6; + _water._effect = EFFECT_SHADED2; _water._shade = 3; } else { _water.setup(3152, 7, 3); @@ -629,7 +629,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { _bulbOrWire.setup(3152, 7, 3); _bulbOrWire.setPosition(Common::Point(70, 55)); _bulbOrWire.fixPriority(111); - _bulbOrWire._effect = 6; + _bulbOrWire._effect = EFFECT_SHADED2; _bulbOrWire._shade = 5; } @@ -639,7 +639,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { _foodTray.setup(3152, 7, 8); _foodTray.setPosition(Common::Point(82, 92)); _foodTray.fixPriority(111); - _foodTray._effect = 6; + _foodTray._effect = EFFECT_SHADED2; _foodTray._shade = 3; } else { _foodTray.setup(3152, 7, 7); @@ -664,7 +664,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { case 0: _sceneMode = 3150; _guard.postInit(); - _guard._effect = 6; + _guard._effect = EFFECT_SHADED2; _guard._shade = 5; setAction(&_sequenceManager, this, 3150, &R2_GLOBALS._player, &_guard, &_doorBars, NULL); break; @@ -685,22 +685,24 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { break; } default: - if ((R2_GLOBALS._v56AA0 == 1) && (R2_INVENTORY.getObjectScene(R2_ANCIENT_SCROLLS) == 2000) && (R2_GLOBALS._player._oldCharacterScene[R2_QUINN] == 3100)) { - ++R2_GLOBALS._v56AA0; + if ((R2_GLOBALS._mirandaJailState == 1) && (R2_INVENTORY.getObjectScene(R2_ANCIENT_SCROLLS) == 2000) + && (R2_GLOBALS._player._oldCharacterScene[R2_QUINN] == 3100)) { + // Moving story on to Miranda getting food delivered + ++R2_GLOBALS._mirandaJailState; _sceneMode = 3156; _guard.postInit(); - _guard._effect = 6; + _guard._effect = EFFECT_SHADED2; _guard._shade = 3; _doorBars.postInit(); _foodTray.postInit(); - _foodTray._effect = 6; + _foodTray._effect = EFFECT_SHADED2; _foodTray._shade = 3; setAction(&_sequenceManager, this, 3156, &R2_GLOBALS._player, &_guard, &_doorBars, &_foodTray, NULL); } else { - if ((R2_GLOBALS._v56AA0 != 1) && (R2_GLOBALS._v56AA0 != 2)) - ++R2_GLOBALS._v56AA0; + if ((R2_GLOBALS._mirandaJailState != 1) && (R2_GLOBALS._mirandaJailState != 2)) + ++R2_GLOBALS._mirandaJailState; R2_GLOBALS._player.setup(30, 3, 1); R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); @@ -789,12 +791,12 @@ void Scene3150::signal() { void Scene3150::dispatch() { if (_foodTray._position.x == 155) { - _foodTray._effect = 0; + _foodTray._effect = EFFECT_NONE; _foodTray._shade = 0; } if (_guard._visage == 3154) { - _guard._effect = 0; + _guard._effect = EFFECT_NONE; _guard._shade = 0; } @@ -1211,18 +1213,18 @@ void Scene3250::postInit(SceneObjectList *OwnerList) { case 1200: _sceneMode = 3250; _grate.postInit(); - R2_GLOBALS._player._effect = 0; + R2_GLOBALS._player._effect = EFFECT_NONE; setAction(&_sequenceManager, this, 3250, &R2_GLOBALS._player, &_grate, NULL); break; case 3125: if (R2_GLOBALS.getFlag(79)) { _sceneMode = 3254; _ghoul1.postInit(); - _ghoul1._effect = 1; + _ghoul1._effect = EFFECT_SHADED; _ghoul2.postInit(); - _ghoul2._effect = 1; + _ghoul2._effect = EFFECT_SHADED; _ghoul3.postInit(); - _ghoul3._effect = 1; + _ghoul3._effect = EFFECT_SHADED; setAction(&_sequenceManager, this, 3254, &R2_GLOBALS._player, &_rightDoor, &_ghoul1, &_ghoul2, &_ghoul3, &_leftDoor, NULL); } else { @@ -1252,7 +1254,7 @@ void Scene3250::postInit(SceneObjectList *OwnerList) { void Scene3250::signal() { switch(_sceneMode) { case 3250: - R2_GLOBALS._player._effect = 1; + R2_GLOBALS._player._effect = EFFECT_SHADED; R2_GLOBALS._player.enableControl(); break; case 3254: @@ -1274,7 +1276,7 @@ void Scene3250::signal() { void Scene3250::dispatch() { if ((R2_GLOBALS._player._visage == 3250) && (R2_GLOBALS._player._strip == 3) && (R2_GLOBALS._player._effect == 0)) { - R2_GLOBALS._player._effect = 6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; R2_GLOBALS._player._shade = 6; } @@ -1305,7 +1307,7 @@ void Scene3255::postInit(SceneObjectList *OwnerList) { _sceneMode = 3257; _door.postInit(); _quinn.postInit(); - _quinn._effect = 1; + _quinn._effect = EFFECT_SHADED; setAction(&_sequenceManager, this, 3257, &R2_GLOBALS._player, &_quinn, &_door, NULL); } else { _teal.postInit(); @@ -1354,9 +1356,9 @@ void Scene3255::dispatch() { if (_ghoul1._position.y <= 110) _ghoul1._shade = 6 - (_ghoul1._position.y - 95) / 3; else - _ghoul1._effect = 1; + _ghoul1._effect = EFFECT_SHADED; } else { - _ghoul1._effect = 6; + _ghoul1._effect = EFFECT_SHADED2; _ghoul1._shade = 6; } @@ -1364,9 +1366,9 @@ void Scene3255::dispatch() { if (_ghoul2._position.y <= 110) _ghoul2._shade = 6 - (_ghoul2._position.y - 95) / 3; else - _ghoul2._effect = 1; + _ghoul2._effect = EFFECT_SHADED; } else { - _ghoul2._effect = 6; + _ghoul2._effect = EFFECT_SHADED2; _ghoul2._shade = 6; } @@ -1374,16 +1376,16 @@ void Scene3255::dispatch() { if (_ghoul3._position.y <= 110) _ghoul3._shade = 6 - (_ghoul3._position.y - 95) / 3; else - _ghoul3._effect = 1; + _ghoul3._effect = EFFECT_SHADED; } else { - _ghoul3._effect = 6; + _ghoul3._effect = EFFECT_SHADED2; _ghoul3._shade = 6; } } if ((R2_GLOBALS._player._position.x > 250) && (R2_GLOBALS._player._shade == 1)) { - R2_GLOBALS._player._effect = 6; - _quinn._effect = 6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; + _quinn._effect = EFFECT_SHADED2; } Scene::dispatch(); } @@ -1478,23 +1480,23 @@ void Scene3260::postInit(SceneObjectList *OwnerList) { _screen6.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); _screen6.setAction(&_action6, &_screen6); - _actor7.postInit(); - _actor7.setup(3260, 2, 1); - _actor7.setPosition(Common::Point(190, 22)); - _actor7.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); - _actor7.setAction(&_action7, &_actor7); + _screen7.postInit(); + _screen7.setup(3260, 2, 1); + _screen7.setPosition(Common::Point(190, 22)); + _screen7.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); + _screen7.setAction(&_action7, &_screen7); - _actor8.postInit(); - _actor8.setup(3260, 2, 1); - _actor8.setPosition(Common::Point(142, 14)); - _actor8.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); - _actor8.setAction(&_action8, &_actor8); + _screen8.postInit(); + _screen8.setup(3260, 2, 1); + _screen8.setPosition(Common::Point(142, 14)); + _screen8.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); + _screen8.setAction(&_action8, &_screen8); - _actor9.postInit(); - _actor9.setup(3260, 2, 1); - _actor9.setPosition(Common::Point(166, 6)); - _actor9.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); - _actor9.setAction(&_action9, &_actor9); + _screen9.postInit(); + _screen9.setup(3260, 2, 1); + _screen9.setPosition(Common::Point(166, 6)); + _screen9.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); + _screen9.setAction(&_action9, &_screen9); _securityConsole.postInit(); _securityConsole.setup(3260, 3, 1); @@ -1521,7 +1523,7 @@ void Scene3260::postInit(SceneObjectList *OwnerList) { _lightingConsole.setDetails(3260, 9, 1, 11, 1, (SceneItem *)NULL); _lightingConsole.animate(ANIM_MODE_2, NULL); - _item1.setDetails(Rect(0, 0, 320, 200), 3260, 0, 1, 2, 1, NULL); + _background.setDetails(Rect(0, 0, 320, 200), 3260, 0, 1, 2, 1, NULL); R2_GLOBALS._player.postInit(); if (R2_GLOBALS._player._oldCharacterScene[R2_MIRANDA] == 3275) { @@ -1762,11 +1764,11 @@ void Scene3375::enterArea(int sceneMode) { R2_GLOBALS._player.setPosition(Common::Point(148, 230)); _companion1.setPosition(Common::Point(191, 274)); - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; _companion2.setPosition(Common::Point(124, 255)); - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; _webbster.setPosition(Common::Point(155, 245)); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; break; case 3381: --R2_GLOBALS._walkwaySceneNumber; @@ -1780,11 +1782,11 @@ void Scene3375::enterArea(int sceneMode) { R2_GLOBALS._player.setPosition(Common::Point(201, 131)); _companion1.setPosition(Common::Point(231, 127)); - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; _companion2.setPosition(Common::Point(231, 127)); - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; _webbster.setPosition(Common::Point(231, 127)); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; break; default: R2_GLOBALS._player.setPosition(Common::Point(192, 155)); @@ -1925,7 +1927,7 @@ void Scene3375::DownExit::changeScene() { Scene3375 *scene = (Scene3375 *)R2_GLOBALS._sceneManager._scene; _moving = false; - R2_GLOBALS._player._effect = 6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; R2_GLOBALS._player._shade = 4; R2_GLOBALS._player.disableControl(CURSOR_ARROW); @@ -1947,7 +1949,7 @@ void Scene3375::RightExit::changeScene() { Scene3375 *scene = (Scene3375 *)R2_GLOBALS._sceneManager._scene; _moving = false; - R2_GLOBALS._player._effect = 6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; R2_GLOBALS._player._shade = 4; R2_GLOBALS._player.disableControl(CURSOR_ARROW); @@ -2034,7 +2036,7 @@ void Scene3375::postInit(SceneObjectList *OwnerList) { _companion1._moveDiff = Common::Point(5, 3); } _companion1.changeZoom(-1); - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; int tmpStrip, tmpVisage; if (R2_GLOBALS._sceneManager._previousScene == 3385) @@ -2053,7 +2055,7 @@ void Scene3375::postInit(SceneObjectList *OwnerList) { _companion2.postInit(); _companion2._moveDiff = Common::Point(3, 2); _companion2.changeZoom(-1); - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; if (R2_GLOBALS._sceneManager._previousScene == 3385) tmpStrip = 1; else @@ -2071,7 +2073,7 @@ void Scene3375::postInit(SceneObjectList *OwnerList) { _webbster._moveRate = 7; _webbster._moveDiff = Common::Point(5, 3); _webbster.changeZoom(-1); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; if (R2_GLOBALS._sceneManager._previousScene == 3385) tmpStrip = 1; else @@ -2126,10 +2128,10 @@ void Scene3375::signalCase3379() { _sceneMode = 1; ADD_MOVER(R2_GLOBALS._player, 70, R2_GLOBALS._player._position.y); R2_GLOBALS._sceneManager._previousScene = 3375; - R2_GLOBALS._player._effect = 1; - _companion1._effect = 1; - _companion2._effect = 1; - _webbster._effect = 1; + R2_GLOBALS._player._effect = EFFECT_SHADED; + _companion1._effect = EFFECT_SHADED; + _companion2._effect = EFFECT_SHADED; + _webbster._effect = EFFECT_SHADED; return; //R2_GLOBALS._walkRegions.disableRegion(1); @@ -2159,10 +2161,10 @@ void Scene3375::signalCase3379() { break; } R2_GLOBALS._sceneManager._previousScene = 3375; - R2_GLOBALS._player._effect = 1; - _companion1._effect = 1; - _companion2._effect = 1; - _webbster._effect = 1; + R2_GLOBALS._player._effect = EFFECT_SHADED; + _companion1._effect = EFFECT_SHADED; + _companion2._effect = EFFECT_SHADED; + _webbster._effect = EFFECT_SHADED; R2_GLOBALS._player.enableControl(CURSOR_WALK); } @@ -2183,11 +2185,11 @@ void Scene3375::signal() { _sceneMode = _newSceneMode; _newSceneMode = 0; - _companion1._effect = 6; + _companion1._effect = EFFECT_SHADED2; _companion1._shade = 4; - _companion2._effect = 6; + _companion2._effect = EFFECT_SHADED2; _companion2._shade = 4; - _webbster._effect = 6; + _webbster._effect = EFFECT_SHADED2; _webbster._shade = 4; enterArea(_sceneMode); break; @@ -2212,24 +2214,24 @@ void Scene3375::signal() { void Scene3375::dispatch() { if ((R2_GLOBALS._player._position.y >= 168) && (R2_GLOBALS._player._effect == 1)) - R2_GLOBALS._player._effect = 6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; else if ((R2_GLOBALS._player._position.y < 168) && (R2_GLOBALS._player._effect == 6)) - R2_GLOBALS._player._effect = 1; + R2_GLOBALS._player._effect = EFFECT_SHADED; if ((_companion1._position.y >= 168) && (_companion1._effect == 1)) - _companion1._effect = 6; + _companion1._effect = EFFECT_SHADED2; else if ((_companion1._position.y < 168) && (_companion1._effect == 6)) - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; if ((_companion2._position.y >= 168) && (_companion2._effect == 1)) - _companion2._effect = 6; + _companion2._effect = EFFECT_SHADED2; else if ((_companion2._position.y < 168) && (_companion2._effect == 6)) - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; if ((_webbster._position.y >= 168) && (_webbster._effect == 1)) - _webbster._effect = 6; + _webbster._effect = EFFECT_SHADED2; else if ((_webbster._position.y < 168) && (_webbster._effect == 6)) - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; Scene::dispatch(); } @@ -2309,7 +2311,7 @@ bool Scene3385::Door::startAction(CursorType action, Event &event) { return true; } -void Scene3385::Exit1::changeScene() { +void Scene3385::SouthExit::changeScene() { Scene3385 *scene = (Scene3385 *)R2_GLOBALS._sceneManager._scene; R2_GLOBALS._player.disableControl(CURSOR_ARROW); @@ -2384,7 +2386,7 @@ void Scene3385::postInit(SceneObjectList *OwnerList) { _companion1._moveDiff = Common::Point(5, 3); } _companion1.changeZoom(-1); - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex == R2_SEEKER) _companion1.setup(10, _playerStrip, 1); else @@ -2395,7 +2397,7 @@ void Scene3385::postInit(SceneObjectList *OwnerList) { _companion2.postInit(); _companion2._moveDiff = Common::Point(3, 2); _companion2.changeZoom(-1); - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex == R2_MIRANDA) _companion2.setup(10, _playerStrip, 1); else @@ -2406,13 +2408,13 @@ void Scene3385::postInit(SceneObjectList *OwnerList) { _webbster.postInit(); _webbster._moveDiff = Common::Point(3, 2); _webbster.changeZoom(-1); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; _webbster.setup(40, _playerStrip, 1); _webbster.animate(ANIM_MODE_1, NULL); _webbster.setDetails(3385, 15, -1, -1, 1, (SceneItem *) NULL); - _exit1.setDetails(Rect(103, 152, 217, 170), SHADECURSOR_DOWN, 3395); - _exit1.setDest(Common::Point(158, 151)); + _southExit.setDetails(Rect(103, 152, 217, 170), SHADECURSOR_DOWN, 3395); + _southExit.setDest(Common::Point(158, 151)); _door.postInit(); _door.setPosition(Common::Point(160, 100)); @@ -2607,7 +2609,7 @@ void Scene3395::postInit(SceneObjectList *OwnerList) { _companion1._moveDiff = Common::Point(5, 3); } _companion1.changeZoom(-1); - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex == R2_SEEKER) _companion1.setup(10, _playerStrip, 1); else @@ -2618,7 +2620,7 @@ void Scene3395::postInit(SceneObjectList *OwnerList) { _companion2.postInit(); _companion2._moveDiff = Common::Point(3, 2); _companion2.changeZoom(-1); - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex == R2_MIRANDA) _companion2.setup(10, _playerStrip, 1); else @@ -2629,7 +2631,7 @@ void Scene3395::postInit(SceneObjectList *OwnerList) { _webbster.postInit(); _webbster._moveDiff = Common::Point(3, 2); _webbster.changeZoom(-1); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; _webbster.setup(40, _playerStrip, 1); _webbster.animate(ANIM_MODE_1, NULL); _webbster.setDetails(3395, 18, -1, -1, 1, (SceneItem *) NULL); @@ -2715,7 +2717,6 @@ void Scene3400::postInit(SceneObjectList *OwnerList) { loadScene(3400); _soundFaded = false; - R2_GLOBALS._v558B6.set(60, 0, 260, 200); SceneExt::postInit(); R2_GLOBALS._sound1.play(317); @@ -2732,10 +2733,10 @@ void Scene3400::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._characterScene[R2_SEEKER] = 3400; R2_GLOBALS._player._characterScene[R2_MIRANDA] = 3400; - _actor7.postInit(); - _actor7.setup(3403, 1, 1); - _actor7.setPosition(Common::Point(190, 103)); - _actor7.fixPriority(89); + _manholeCover.postInit(); + _manholeCover.setup(3403, 1, 1); + _manholeCover.setPosition(Common::Point(190, 103)); + _manholeCover.fixPriority(89); R2_GLOBALS._player.postInit(); if (R2_GLOBALS._player._characterIndex == R2_SEEKER) @@ -2764,7 +2765,7 @@ void Scene3400::postInit(SceneObjectList *OwnerList) { _companion1._moveDiff = Common::Point(5, 3); } _companion1.changeZoom(-1); - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; _companion1.setPosition(Common::Point(247, 63)); if (R2_GLOBALS._player._characterIndex == R2_SEEKER) _companion1.setup(10, 5, 1); @@ -2775,7 +2776,7 @@ void Scene3400::postInit(SceneObjectList *OwnerList) { _companion2.postInit(); _companion2._moveDiff = Common::Point(3, 2); _companion2.changeZoom(-1); - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; _companion2.setPosition(Common::Point(225, 63)); if (R2_GLOBALS._player._characterIndex == R2_MIRANDA) _companion2.setup(10, 5, 1); @@ -2787,16 +2788,16 @@ void Scene3400::postInit(SceneObjectList *OwnerList) { _webbster._numFrames = 7; _webbster._moveDiff = Common::Point(5, 3); _webbster.changeZoom(-1); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; _webbster.setPosition(Common::Point(235, 61)); _webbster.setup(40, 3, 1); _webbster.animate(ANIM_MODE_1, NULL); - _actor6.postInit(); - _actor6.setup(3400, 1, 6); - _actor6.setPosition(Common::Point(236, 51)); - _actor6.fixPriority(51); - _actor6.animate(ANIM_MODE_6, NULL); + _door.postInit(); + _door.setup(3400, 1, 6); + _door.setPosition(Common::Point(236, 51)); + _door.fixPriority(51); + _door.animate(ANIM_MODE_6, NULL); R2_GLOBALS.clearFlag(71); _sceneMode = 3400; @@ -2860,29 +2861,29 @@ void Scene3400::signal() { _teal.setStrip(1); _sceneMode = 3403; if (R2_GLOBALS._player._characterIndex == R2_SEEKER) - setAction(&_sequenceManager, this, 3403, &R2_GLOBALS._player, &_webbster, &_actor7, NULL); + setAction(&_sequenceManager, this, 3403, &R2_GLOBALS._player, &_webbster, &_manholeCover, NULL); else - setAction(&_sequenceManager, this, 3403, &_companion1, &_webbster, &_actor7, NULL); + setAction(&_sequenceManager, this, 3403, &_companion1, &_webbster, &_manholeCover, NULL); break; case 3309: warning("STUB: sub_1D227()"); _teal.setStrip(1); _sceneMode = 3405; if (R2_GLOBALS._player._characterIndex == R2_MIRANDA) - setAction(&_sequenceManager, this, 3405, &R2_GLOBALS._player, &_actor7, NULL); + setAction(&_sequenceManager, this, 3405, &R2_GLOBALS._player, &_manholeCover, NULL); else - setAction(&_sequenceManager, this, 3405, &_companion2, &_actor7, NULL); + setAction(&_sequenceManager, this, 3405, &_companion2, &_manholeCover, NULL); break; case 3310: warning("STUB: sub_1D227()"); _teal.setStrip(1); _sceneMode = 3406; if (R2_GLOBALS._player._characterIndex == R2_QUINN) - setAction(&_sequenceManager, this, 3406, &R2_GLOBALS._player, &_actor7, NULL); + setAction(&_sequenceManager, this, 3406, &R2_GLOBALS._player, &_manholeCover, NULL); else if (R2_GLOBALS._player._characterIndex == R2_SEEKER) - setAction(&_sequenceManager, this, 3406, &_companion1, &_actor7, NULL); + setAction(&_sequenceManager, this, 3406, &_companion1, &_manholeCover, NULL); else if (R2_GLOBALS._player._characterIndex == R2_MIRANDA) - setAction(&_sequenceManager, this, 3406, &_companion2, &_actor7, NULL); + setAction(&_sequenceManager, this, 3406, &_companion2, &_manholeCover, NULL); break; case 3311: warning("STUB: sub_1D227()"); @@ -2890,7 +2891,7 @@ void Scene3400::signal() { _teal.show(); _teal.setStrip(1); _sceneMode = 3407; - setAction(&_sequenceManager, this, 3407, &_teal, &_actor7, NULL); + setAction(&_sequenceManager, this, 3407, &_teal, &_manholeCover, NULL); break; case 3400: { _actor8.postInit(); @@ -2899,7 +2900,7 @@ void Scene3400::signal() { _teal._numFrames = 7; _teal._moveDiff = Common::Point(3, 2); _teal.changeZoom(-1); - _teal._effect = 1; + _teal._effect = EFFECT_SHADED; _teal.setPosition(Common::Point(-15, 90)); _teal.setup(3402, 1, 1); _teal.animate(ANIM_MODE_1, NULL); @@ -2949,88 +2950,89 @@ void Scene3400::signal() { *--------------------------------------------------------------------------*/ Scene3500::Action1::Action1() { - _field1E = 0; - _field20 = 0; + _direction = 0; + _field20 = false; _field22 = 0; - _field24 = 0; + _field24 = false; } void Scene3500::Action1::synchronize(Serializer &s) { Action::synchronize(s); - s.syncAsSint16LE(_field1E); + s.syncAsSint16LE(_direction); s.syncAsSint16LE(_field20); s.syncAsSint16LE(_field22); s.syncAsSint16LE(_field24); } -void Scene3500::Action1::sub108670(int arg1) { +void Scene3500::Action1::handleHorzButton(int direction) { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; - _field1E = arg1; - _field20 = 1; - _field24 = 1; + // Direction: -1 == Left, 1 == Right + _direction = direction; + _field20 = true; + _field24 = true; - scene->_actor9.setStrip(2); - scene->_actor9.show(); + scene->_tunnelHorzCircle.setStrip(2); + scene->_tunnelHorzCircle.show(); - if (_field1E == 1) - scene->_actor6.show(); + if (_direction == 1) + scene->_symbolRight.show(); else - scene->_actor5.show(); + scene->_symbolLeft.show(); - if (scene->_actor1._frame % 2 == 0) { - scene->_actor1._frameChange = _field1E; - scene->_actor1.setFrame(scene->_actor1.changeFrame()); + if (scene->_shuttle._frame % 2 == 0) { + scene->_shuttle._frameChange = _direction; + scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); } setActionIndex(0); } -void Scene3500::Action1::sub108732(int arg1) { +void Scene3500::Action1::turnShuttle(bool arg1) { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; _field20 = arg1; - _field1E = -_field1E; + _direction = -_direction; - if (_field1E == 1) { - scene->_actor6.show(); - scene->_actor5.hide(); + if (_direction == 1) { + scene->_symbolRight.show(); + scene->_symbolLeft.hide(); } else { - scene->_actor5.show(); - scene->_actor6.hide(); + scene->_symbolLeft.show(); + scene->_symbolRight.hide(); } switch (_actionIndex) { case 4: - scene->_actor1._frameChange = _field1E; - scene->_actor1.setFrame(scene->_actor1.changeFrame()); + scene->_shuttle._frameChange = _direction; + scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); // No break on purpose case 3: _actionIndex = 10; setDelay(0); break; case 5: { - scene->_fieldAF8 = 160; + scene->_moverVertX = 160; Common::Point pt(160, 73); NpcMover *mover = new NpcMover(); - scene->_actor8.addMover(mover, &pt, NULL); + scene->_tunnelVertCircle.addMover(mover, &pt, NULL); - scene->_fieldB9E = 160 - (_field1E * 2 * 160); - Common::Point pt2(scene->_fieldB9E, 73); + scene->_moverHorzX = 160 - (_direction * 2 * 160); + Common::Point pt2(scene->_moverHorzX, 73); NpcMover *mover2 = new NpcMover(); - scene->_actor9.addMover(mover2, &pt2, this); + scene->_tunnelHorzCircle.addMover(mover2, &pt2, this); _actionIndex = 11; } break; case 6: - scene->_actor1._frameChange = _field1E; - scene->_actor1.setFrame(scene->_actor1.changeFrame()); + scene->_shuttle._frameChange = _direction; + scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); setDelay(1); // No break on purpose case 8: - scene->_actor9.setStrip(2); + scene->_tunnelHorzCircle.setStrip(2); _actionIndex = 1; break; default: @@ -3045,38 +3047,38 @@ void Scene3500::Action1::signal() { case 0: R2_GLOBALS._player.disableControl(); scene->_directionChangesEnabled = false; - if (scene->_field1270 != 0) { - scene->_field1270 = 0; + if (scene->_speed != 0) { + scene->_speed = 0; scene->_mazeChangeAmount = 0; - scene->_field1272 = 0; + scene->_field1272 = false; scene->_rotation->_idxChange = 0; } break; case 1: - if ((scene->_actor1._frame % 2) == 1) { + if ((scene->_shuttle._frame % 2) == 1) { setDelay(1); return; } // No break on purpose case 3: - scene->_actor1._frameChange = _field1E; - scene->_actor1.setFrame(scene->_actor1.changeFrame()); + scene->_shuttle._frameChange = _direction; + scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); setDelay(1); break; case 4: { - int si = scene->_mazeUI.getCellFromMapXY(Common::Point(scene->_mazePosition.x + 70, scene->_mazePosition.y + 46)); + int cellId = scene->_mazeUI.getCellFromMapXY(Common::Point(scene->_mazePosition.x + 70, scene->_mazePosition.y + 46)); int var2 = scene->_mazeUI.cellFromX(scene->_mazePosition.x + 70) - 70; int var4 = scene->_mazeUI.cellFromY(scene->_mazePosition.y + 46) - 46; int di = abs(var2 - scene->_mazePosition.x); int var6 = abs(var4 - scene->_mazePosition.y); - if ((scene->_actor1._frame % 2) != 0) { - scene->_actor1._frameChange = _field1E; - scene->_actor1.setFrame(scene->_actor1.changeFrame()); + if ((scene->_shuttle._frame % 2) != 0) { + scene->_shuttle._frameChange = _direction; + scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); } // Get the new direction starting on - int var8 = (scene->_action1._field1E * 2 + scene->_mazeDirection); + int var8 = (scene->_action1._direction * 2 + scene->_mazeDirection); if (var8 > MAZEDIR_NORTHWEST) var8 = MAZEDIR_NORTH; else if (var8 < MAZEDIR_NORTH) @@ -3086,98 +3088,98 @@ void Scene3500::Action1::signal() { // movement is started again switch (var8) { case MAZEDIR_NORTH: - if ( ((si != 2) && (si != 3) && (si != 6) && (si != 1) && (si != 23) && (si != 24) && (si != 4) && (si != 11)) + if ( ((cellId != 2) && (cellId != 3) && (cellId != 6) && (cellId != 1) && (cellId != 23) && (cellId != 24) && (cellId != 4) && (cellId != 11)) || (var6 != 0)) { - if ((si != 25) && (si != 26) && (si != 5) && (si != 14) && (si != 15)) - _field20 = 0; + if ((cellId != 25) && (cellId != 26) && (cellId != 5) && (cellId != 14) && (cellId != 15)) + _field20 = false; else if ((var6 != 0) || (di <= 3)) // useless, skipped: "|| (di == 0)" - _field20 = 0; + _field20 = false; else - _field20 = 1; + _field20 = true; } else - _field20 = 1; + _field20 = true; break; case MAZEDIR_EAST: - if ( ((si != 12) && (si != 13) && (si != 11) && (si != 16) && (si != 26) && (si != 24) && (si != 15) && (si != 6) && (si != 31)) + if ( ((cellId != 12) && (cellId != 13) && (cellId != 11) && (cellId != 16) && (cellId != 26) && (cellId != 24) && (cellId != 15) && (cellId != 6) && (cellId != 31)) || (di != 0)) { - if ((si != 25) && (si != 23) && (si != 14) && (si != 5) && (si != 4)) - _field20 = 0; + if ((cellId != 25) && (cellId != 23) && (cellId != 14) && (cellId != 5) && (cellId != 4)) + _field20 = false; else if ((di != 0) || (var6 <= 3)) // useless, skipped: "|| (var6 == 0)" - _field20 = 0; + _field20 = false; else - _field20 = 1; + _field20 = true; } else - _field20 = 1; + _field20 = true; break; case MAZEDIR_SOUTH: - if ( ((si != 2) && (si != 3) && (si != 6) && (si != 1) && (si != 25) && (si != 26) && (si != 5) && (si != 16) && (si != 31)) + if ( ((cellId != 2) && (cellId != 3) && (cellId != 6) && (cellId != 1) && (cellId != 25) && (cellId != 26) && (cellId != 5) && (cellId != 16) && (cellId != 31)) || (var6 != 0)) { - if ((si != 23) && (si != 24) && (si != 4) && (si != 14) && (si != 15)) - _field20 = 0; + if ((cellId != 23) && (cellId != 24) && (cellId != 4) && (cellId != 14) && (cellId != 15)) + _field20 = false; else if ((var6 != 0) || (di <= 3)) // useless, skipped: "|| (di == 0)" - _field20 = 0; + _field20 = false; else - _field20 = 1; + _field20 = true; } else - _field20 = 1; + _field20 = true; break; case MAZEDIR_WEST: - if ( ((si != 12) && (si != 13) && (si != 11) && (si != 16) && (si != 25) && (si != 23) && (si != 14) && (si != 1) && (si != 31)) + if ( ((cellId != 12) && (cellId != 13) && (cellId != 11) && (cellId != 16) && (cellId != 25) && (cellId != 23) && (cellId != 14) && (cellId != 1) && (cellId != 31)) || (var6 != 0)) { - if ((si != 26) && (si != 24) && (si != 15) && (si != 5) && (si != 4)) - _field20 = 0; + if ((cellId != 26) && (cellId != 24) && (cellId != 15) && (cellId != 5) && (cellId != 4)) + _field20 = false; else if ((var6 <= 0) || (di != 0)) // useless, skipped: "|| (var6 == 0)" - _field20 = 0; + _field20 = false; else - _field20 = 1; + _field20 = true; } else - _field20 = 1; + _field20 = true; default: break; } } // No break on purpose case 2: { - scene->_actor8.setPosition(Common::Point(160, 73)); - scene->_actor8._moveDiff.x = 160 - scene->_mazeChangeAmount; - scene->_fieldAF8 = 160 - ((_field1E * 2) * 160); - Common::Point pt(scene->_fieldAF8, 73); + scene->_tunnelVertCircle.setPosition(Common::Point(160, 73)); + scene->_tunnelVertCircle._moveDiff.x = 160 - scene->_mazeChangeAmount; + scene->_moverVertX = 160 - ((_direction * 2) * 160); + Common::Point pt(scene->_moverVertX, 73); NpcMover *mover = new NpcMover(); - scene->_actor8.addMover(mover, &pt, this); + scene->_tunnelVertCircle.addMover(mover, &pt, this); - scene->_actor9.setPosition(Common::Point(160 + ((_field1E * 2) * 160), 73)); - scene->_actor9._moveDiff.x = 160 - scene->_mazeChangeAmount; - scene->_fieldB9E = 160; - Common::Point pt2(scene->_fieldB9E, 73); + scene->_tunnelHorzCircle.setPosition(Common::Point(160 + ((_direction * 2) * 160), 73)); + scene->_tunnelHorzCircle._moveDiff.x = 160 - scene->_mazeChangeAmount; + scene->_moverHorzX = 160; + Common::Point pt2(scene->_moverHorzX, 73); NpcMover *mover2 = new NpcMover(); - scene->_actor9.addMover(mover2, &pt2, NULL); + scene->_tunnelHorzCircle.addMover(mover2, &pt2, NULL); } break; case 5: - scene->_actor1._frameChange = _field1E; - scene->_mazeDirection = scene->_actor1.changeFrame(); - scene->_actor1.setFrame(scene->_mazeDirection); + scene->_shuttle._frameChange = _direction; + scene->_mazeDirection = scene->_shuttle.changeFrame(); + scene->_shuttle.setFrame(scene->_mazeDirection); setDelay(1); break; case 6: - scene->_actor8.setPosition(Common::Point(160, 73)); - if (_field20 == 0) - scene->_actor8.setStrip(1); + scene->_tunnelVertCircle.setPosition(Common::Point(160, 73)); + if (!_field20) + scene->_tunnelVertCircle.setStrip(1); else - scene->_actor8.setStrip(2); - scene->_actor8.fixPriority(1); + scene->_tunnelVertCircle.setStrip(2); + scene->_tunnelVertCircle.fixPriority(1); - scene->_actor9.setPosition(Common::Point(-160, 73)); - scene->_actor9.setStrip(9); - scene->_actor9.fixPriority(11); - scene->_actor9.hide(); + scene->_tunnelHorzCircle.setPosition(Common::Point(-160, 73)); + scene->_tunnelHorzCircle.setStrip(9); + scene->_tunnelHorzCircle.fixPriority(11); + scene->_tunnelHorzCircle.hide(); setDelay(1); break; case 7: - if ((scene->_actor1._frame % 2) == 0) { - scene->_actor1._frameChange = _field1E; - scene->_mazeDirection = scene->_actor1.changeFrame(); - scene->_actor1.setFrame(scene->_mazeDirection); + if ((scene->_shuttle._frame % 2) == 0) { + scene->_shuttle._frameChange = _direction; + scene->_mazeDirection = scene->_shuttle.changeFrame(); + scene->_shuttle.setFrame(scene->_mazeDirection); } setDelay(1); break; @@ -3185,15 +3187,15 @@ void Scene3500::Action1::signal() { R2_GLOBALS._player.enableControl(); R2_GLOBALS._player._canWalk = false; scene->_directionChangesEnabled = true; - if ((scene->_actor1._frame % 2) == 0) { - scene->_actor1._frameChange = _field1E; - scene->_actor1.setFrame(scene->_actor1.changeFrame()); + if ((scene->_shuttle._frame % 2) == 0) { + scene->_shuttle._frameChange = _direction; + scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); } // All the var_8 initialization was missing in the original // but it's clearly a cut and paste error from case 4. // The following code allows the switch to work properly. warning("Checkme: fix for dead code"); - int var_8 = (_field1E * 2 + scene->_mazeDirection); + int var_8 = (_direction * 2 + scene->_mazeDirection); if (var_8 > 7) var_8 = 1; else if (var_8 < 1) @@ -3214,47 +3216,47 @@ void Scene3500::Action1::signal() { default: break; } - scene->_actor5.hide(); - scene->_actor6.hide(); - _field24 = 0; - if (_field20 == 0) { - scene->_actor7.sub1094ED(); - if (scene->_mazeChangeAmount == scene->_field1270) + scene->_symbolLeft.hide(); + scene->_symbolRight.hide(); + _field24 = false; + if (!_field20) { + scene->_throttle.updateSpeed(); + if (scene->_mazeChangeAmount == scene->_speed) scene->_aSound1.play(276); } break; } case 10: { - scene->_fieldAF8 = 160; + scene->_moverVertX = 160; Common::Point pt(160, 73); NpcMover *mover = new NpcMover(); - scene->_actor8.addMover(mover, &pt, NULL); + scene->_tunnelVertCircle.addMover(mover, &pt, NULL); - scene->_fieldB9E = 160 - (_field1E * 2 * 160); - Common::Point pt2(scene->_fieldB9E, 73); + scene->_moverHorzX = 160 - (_direction * 2 * 160); + Common::Point pt2(scene->_moverHorzX, 73); NpcMover *mover2 = new NpcMover(); - scene->_actor9.addMover(mover2, &pt2, this); + scene->_tunnelHorzCircle.addMover(mover2, &pt2, this); _actionIndex = 6; } break; case 11: { - scene->_actor8.setStrip(2); - scene->_actor8.setPosition(Common::Point(160, 73)); - scene->_fieldAF8 = 160 - (_field1E * 2 * 160); - Common::Point pt(scene->_fieldAF8, 73); + scene->_tunnelVertCircle.setStrip(2); + scene->_tunnelVertCircle.setPosition(Common::Point(160, 73)); + scene->_moverVertX = 160 - (_direction * 2 * 160); + Common::Point pt(scene->_moverVertX, 73); NpcMover *mover = new NpcMover(); - scene->_actor8.addMover(mover, &pt, NULL); - scene->_actor8.fixPriority(11); - if (_field20 == 0) - scene->_actor9.setStrip(1); + scene->_tunnelVertCircle.addMover(mover, &pt, NULL); + scene->_tunnelVertCircle.fixPriority(11); + if (!_field20) + scene->_tunnelHorzCircle.setStrip(1); else - scene->_actor9.setStrip(2); - scene->_actor9.setPosition(Common::Point(160 - (_field1E * 2 * 160), 73)); - scene->_fieldB9E = 160; - Common::Point pt2(scene->_fieldB9E, 73); + scene->_tunnelHorzCircle.setStrip(2); + scene->_tunnelHorzCircle.setPosition(Common::Point(160 - (_direction * 2 * 160), 73)); + scene->_moverHorzX = 160; + Common::Point pt2(scene->_moverHorzX, 73); NpcMover *mover2 = new NpcMover(); - scene->_actor9.addMover(mover2, &pt2, this); - scene->_actor9.fixPriority(1); + scene->_tunnelHorzCircle.addMover(mover2, &pt2, this); + scene->_tunnelHorzCircle.fixPriority(1); _actionIndex = 5; } break; @@ -3276,23 +3278,24 @@ void Scene3500::Action1::dispatch() { /*--------------------------------------------------------------------------*/ Scene3500::Action2::Action2() { - _field1E = 0; + _direction = 0; } void Scene3500::Action2::synchronize(Serializer &s) { Action::synchronize(s); - s.syncAsSint16LE(_field1E); + s.syncAsSint16LE(_direction); } -void Scene3500::Action2::sub10831F(int arg1) { +void Scene3500::Action2::handleVertButton(int direction) { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; - _field1E = arg1; - if (_field1E == -1) - scene->_actor3.setFrame2(3); + // Directions : 2 == up, -1 == down + _direction = direction; + if (_direction == -1) + scene->_horizontalSpeedDisplay.setFrame2(3); else - scene->_actor3.setFrame2(1); + scene->_horizontalSpeedDisplay.setFrame2(1); setActionIndex(0); } @@ -3300,57 +3303,57 @@ void Scene3500::Action2::sub10831F(int arg1) { void Scene3500::Action2::signal() { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; - int si; - int di; + int vertX; + int horzX; switch (_actionIndex++) { case 0: { - if (scene->_actor8._mover) { - si = scene->_fieldAF8; - di = scene->_fieldB9E; + if (scene->_tunnelVertCircle._mover) { + vertX = scene->_moverVertX; + horzX = scene->_moverHorzX; } else { - scene->_fieldAF8 = scene->_actor8._position.x; - si = scene->_fieldAF8; - scene->_fieldB9E = scene->_actor9._position.y; - di = scene->_fieldB9E; + scene->_moverVertX = scene->_tunnelVertCircle._position.x; + vertX = scene->_moverVertX; + scene->_moverHorzX = scene->_tunnelHorzCircle._position.y; + horzX = scene->_moverHorzX; } - scene->_actor8._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); - Common::Point pt(si, 73 - (_field1E * 12)); + scene->_tunnelVertCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); + Common::Point pt(vertX, 73 - (_direction * 12)); NpcMover *mover = new NpcMover(); - scene->_actor8.addMover(mover, &pt, NULL); + scene->_tunnelVertCircle.addMover(mover, &pt, NULL); - scene->_actor9._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); - Common::Point pt2(di, 73 - (_field1E * 12)); + scene->_tunnelHorzCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); + Common::Point pt2(horzX, 73 - (_direction * 12)); NpcMover *mover2 = new NpcMover(); - scene->_actor9.addMover(mover2, &pt2, NULL); + scene->_tunnelHorzCircle.addMover(mover2, &pt2, NULL); scene->_mazeChangeAmount = (scene->_mazeChangeAmount / 2) + (scene->_mazeChangeAmount % 2); setDelay(17 - scene->_mazeChangeAmount); } break; case 1: { R2_GLOBALS._sound2.play(339); - if (scene->_actor8._mover) { - si = scene->_fieldAF8; - di = scene->_fieldB9E; + if (scene->_tunnelVertCircle._mover) { + vertX = scene->_moverVertX; + horzX = scene->_moverHorzX; } else { - si = scene->_actor8._position.x; - di = scene->_actor9._position.x; + vertX = scene->_tunnelVertCircle._position.x; + horzX = scene->_tunnelHorzCircle._position.x; } - scene->_actor7.sub1094ED(); + scene->_throttle.updateSpeed(); - scene->_actor8._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); - Common::Point pt(si, 73); + scene->_tunnelVertCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); + Common::Point pt(vertX, 73); NpcMover *mover = new NpcMover(); - scene->_actor8.addMover(mover, &pt, NULL); + scene->_tunnelVertCircle.addMover(mover, &pt, NULL); - scene->_actor9._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); - Common::Point pt2(di, 73); + scene->_tunnelHorzCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); + Common::Point pt2(horzX, 73); NpcMover *mover2 = new NpcMover(); - scene->_actor9.addMover(mover2, &pt2, NULL); + scene->_tunnelHorzCircle.addMover(mover2, &pt2, NULL); - scene->_actor3.setFrame2(2); + scene->_horizontalSpeedDisplay.setFrame2(2); } break; default: @@ -3386,87 +3389,87 @@ bool Scene3500::DirectionButton::startAction(CursorType action, Event &event) { /*--------------------------------------------------------------------------*/ -Scene3500::Actor7::Actor7() { - _fieldA8 = 0; - _fieldAA = 0; - _fieldAC = 0; - _fieldAE = 0; +Scene3500::Throttle::Throttle() { + _deltaX = 1; + _deltaY = 0; + _slideDeltaY = 0; + _deltaMouseY = 0; } -void Scene3500::Actor7::synchronize(Serializer &s) { +void Scene3500::Throttle::synchronize(Serializer &s) { SceneActor::synchronize(s); s.syncAsSint16LE(_pos.x); s.syncAsSint16LE(_pos.y); - s.syncAsSint16LE(_fieldA8); - s.syncAsSint16LE(_fieldAA); - s.syncAsSint16LE(_fieldAC); - s.syncAsSint16LE(_fieldAE); + s.syncAsSint16LE(_deltaX); + s.syncAsSint16LE(_deltaY); + s.syncAsSint16LE(_slideDeltaY); + s.syncAsSint16LE(_deltaMouseY); } -void Scene3500::Actor7::sub109466(int xp, int yp, int arg3, int arg4, int arg5) { - _fieldAE = 0; +void Scene3500::Throttle::init(int xp, int yp, int dx, int dy, int speed) { + _deltaMouseY = 0; _pos = Common::Point(xp, yp); - _fieldA8 = arg3; - _fieldAA = arg4; - _fieldAC = _fieldAA / _fieldA8; + _deltaX = dx; + _deltaY = dy; + _slideDeltaY = _deltaY / _deltaX; postInit(); setup(1050, 3, 1); fixPriority(255); - sub109663(arg5); + setSpeed(speed); } -void Scene3500::Actor7::sub1094ED() { +void Scene3500::Throttle::updateSpeed() { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; - scene->_field1270 = _position.x - _pos.x; + scene->_speed = _position.x - _pos.x; } -void Scene3500::Actor7::sub109663(int arg1){ - changePosition(Common::Point(_pos.x + arg1, _pos.y - (_fieldAC * arg1))); +void Scene3500::Throttle::setSpeed(int arg1){ + changePosition(Common::Point(_pos.x + arg1, _pos.y - (_slideDeltaY * arg1))); } -void Scene3500::Actor7::changePosition(const Common::Point &pt) { +void Scene3500::Throttle::changePosition(const Common::Point &pt) { setPosition(pt); } -void Scene3500::Actor7::process(Event &event) { +void Scene3500::Throttle::process(Event &event) { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; if (!scene->_directionChangesEnabled) return; if ((event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._events.getCursor() == CURSOR_USE) && (_bounds.contains(event.mousePos))) { - _fieldAE = 1 + event.mousePos.y - _position.y; + _deltaMouseY = 1 + event.mousePos.y - _position.y; event.eventType = EVENT_NONE; } - if ((event.eventType == EVENT_BUTTON_UP) && (_fieldAE != 0)) { - _fieldAE = 0; + if ((event.eventType == EVENT_BUTTON_UP) && (_deltaMouseY != 0)) { + _deltaMouseY = 0; event.handled = true; - if (scene->_action1._field24 == 0) - sub1094ED(); + if (!scene->_action1._field24) + updateSpeed(); } - if (_fieldAE == 0) + if (_deltaMouseY == 0) return; R2_GLOBALS._sound2.play(338); event.handled = true; - int cx = event.mousePos.y - _fieldAE + 1; + int cx = event.mousePos.y - _deltaMouseY + 1; if (_pos.y >= cx) { - if (_pos.y - _fieldAA <= cx) + if (_pos.y - _deltaY <= cx) changePosition(Common::Point(((_pos.y - cx) / 2) + _pos.x + ((_pos.y - cx) % 2), cx)); else - changePosition(Common::Point(_pos.x + _fieldA8, _pos.y - _fieldAA)); + changePosition(Common::Point(_pos.x + _deltaX, _pos.y - _deltaY)); } else { changePosition(Common::Point(_pos.x, _pos.y)); } } -bool Scene3500::Actor7::startAction(CursorType action, Event &event) { +bool Scene3500::Throttle::startAction(CursorType action, Event &event) { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; if (!scene->_directionChangesEnabled) { @@ -3508,19 +3511,16 @@ bool Scene3500::MazeUI3500::setMazePosition2(Common::Point &p) { /*--------------------------------------------------------------------------*/ Scene3500::Scene3500() { - _fieldAF8 = 0; - _fieldB9E = 0; + _moverVertX = 0; + _moverHorzX = 0; _rotation = NULL; _mazeChangeAmount = 0; - _field1270 = 0; - _field1272 = 0; - _field1274 = 0; + _speed = 0; + _field1272 = false; _mazeDirection = MAZEDIR_NONE; - _field1278 = 0; + _nextMove = 0; _mazePosition.x = 0; _mazePosition.y = 0; - _field127E = 0; - _field1280 = 0; _field1282 = 0; _field1284 = 0; _directionChangesEnabled = false; @@ -3530,18 +3530,15 @@ void Scene3500::synchronize(Serializer &s) { SceneExt::synchronize(s); SYNC_POINTER(_rotation); - s.syncAsSint16LE(_fieldAF8); - s.syncAsSint16LE(_fieldB9E); + s.syncAsSint16LE(_moverVertX); + s.syncAsSint16LE(_moverHorzX); s.syncAsSint16LE(_mazeChangeAmount); - s.syncAsSint16LE(_field1270); + s.syncAsSint16LE(_speed); s.syncAsSint16LE(_field1272); - s.syncAsSint16LE(_field1274); s.syncAsSint16LE(_mazeDirection); - s.syncAsSint16LE(_field1278); + s.syncAsSint16LE(_nextMove); s.syncAsSint16LE(_mazePosition.x); s.syncAsSint16LE(_mazePosition.y); - s.syncAsSint16LE(_field127E); - s.syncAsSint16LE(_field1280); s.syncAsSint16LE(_field1282); s.syncAsSint16LE(_field1284); s.syncAsSint16LE(_directionChangesEnabled); @@ -3554,7 +3551,6 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._uiElements._active = false; R2_GLOBALS._interfaceY = SCREEN_HEIGHT; - R2_GLOBALS._v5589E.set(0, 0, 320, 200); R2_GLOBALS._sound1.play(305); R2_GLOBALS._player._characterIndex = R2_QUINN; R2_GLOBALS._player._characterScene[R2_QUINN] = 3500; @@ -3562,9 +3558,9 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._characterScene[R2_MIRANDA] = 3500; _field1284 = 0; _field1282 = 0; - _field1278 = 0; - _field1272 = 1; - _field1270 = 4; + _nextMove = 0; + _field1272 = true; + _speed = 4; _mazeChangeAmount = 4; _mazePosition = Common::Point(860, 891); _rotation = R2_GLOBALS._scenePalette.addRotation(240, 254, -1); @@ -3588,8 +3584,8 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._scenePalette._palette[(3 * i) + 2] = tmpPal[(3 * i) + 2]; } - _actor7.sub109466(38, 165, 16, 32, _field1270); - _actor7.setDetails(3500, 6, 7, -1, 1, (SceneItem *)NULL); + _throttle.init(38, 165, 16, 32, _speed); + _throttle.setDetails(3500, 6, 7, -1, 1, (SceneItem *)NULL); R2_GLOBALS._sound1.play(276); _pitchDown._movementId = 88; @@ -3604,60 +3600,60 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { _turnRight._movementId = 96; _turnRight.setDetails(96, 3500, 12, 10, -1); - _actor8.postInit(); - _actor8.setup(1050, 1, 1); - _actor8.setPosition(Common::Point(160, 73)); - _actor8.fixPriority(1); + _tunnelVertCircle.postInit(); + _tunnelVertCircle.setup(1050, 1, 1); + _tunnelVertCircle.setPosition(Common::Point(160, 73)); + _tunnelVertCircle.fixPriority(1); - _actor9.postInit(); - _actor9.setup(1050, 2, 1); - _actor9.setPosition(Common::Point(-160, 73)); - _actor9.fixPriority(11); - _actor9.hide(); + _tunnelHorzCircle.postInit(); + _tunnelHorzCircle.setup(1050, 2, 1); + _tunnelHorzCircle.setPosition(Common::Point(-160, 73)); + _tunnelHorzCircle.fixPriority(11); + _tunnelHorzCircle.hide(); - _item2.setDetails(27, 3500, 21, -1, -1); - _item3.setDetails(Rect(160, 89, 299, 182), 3500, 3, -1, -1, 1, NULL); - _item1.setDetails(Rect(0, 0, 320, 200), 3500, 0, -1, 2, 1, NULL); + _outsideView.setDetails(27, 3500, 21, -1, -1); + _mapScreen.setDetails(Rect(160, 89, 299, 182), 3500, 3, -1, -1, 1, NULL); + _background.setDetails(Rect(0, 0, 320, 200), 3500, 0, -1, 2, 1, NULL); - _actor1.postInit(); + _shuttle.postInit(); _mazeDirection = MAZEDIR_NORTH; - _actor1.setup(1004, 1, _mazeDirection); - _actor1.setPosition(Common::Point(230, 135)); - _actor1.fixPriority(200); - _actor1._frameChange = 1; - - _actor5.postInit(); - _actor5.setup(1004, 3, 1); - _actor5.setPosition(Common::Point(117, 163)); - _actor5.fixPriority(200); - _actor5.hide(); - - _actor4.postInit(); - _actor4.setup(1004, 3, 2); - _actor4.setPosition(Common::Point(126, 163)); - _actor4.fixPriority(200); - - _actor6.postInit(); - _actor6.setup(1004, 3, 3); - _actor6.setPosition(Common::Point(135, 163)); - _actor6.fixPriority(200); - _actor6.hide(); - - _actor2.postInit(); - _actor2.setup(1004, 4, _mazeChangeAmount + 1); - _actor2.setPosition(Common::Point(126, 137)); - _actor2.fixPriority(200); - - _actor3.postInit(); - _actor3.setup(1004, 5, 2); - _actor3.setPosition(Common::Point(126, 108)); - _actor3.fixPriority(200); + _shuttle.setup(1004, 1, _mazeDirection); + _shuttle.setPosition(Common::Point(230, 135)); + _shuttle.fixPriority(200); + _shuttle._frameChange = 1; + + _symbolLeft.postInit(); + _symbolLeft.setup(1004, 3, 1); + _symbolLeft.setPosition(Common::Point(117, 163)); + _symbolLeft.fixPriority(200); + _symbolLeft.hide(); + + _symbolVertical.postInit(); + _symbolVertical.setup(1004, 3, 2); + _symbolVertical.setPosition(Common::Point(126, 163)); + _symbolVertical.fixPriority(200); + + _symbolRight.postInit(); + _symbolRight.setup(1004, 3, 3); + _symbolRight.setPosition(Common::Point(135, 163)); + _symbolRight.fixPriority(200); + _symbolRight.hide(); + + _verticalSpeedDisplay.postInit(); + _verticalSpeedDisplay.setup(1004, 4, _mazeChangeAmount + 1); + _verticalSpeedDisplay.setPosition(Common::Point(126, 137)); + _verticalSpeedDisplay.fixPriority(200); + + _horizontalSpeedDisplay.postInit(); + _horizontalSpeedDisplay.setup(1004, 5, 2); + _horizontalSpeedDisplay.setPosition(Common::Point(126, 108)); + _horizontalSpeedDisplay.fixPriority(200); _mazeUI.setDisplayBounds(Rect(160, 89, 299, 182)); _mazeUI.load(2); _mazeUI.setMazePosition(_mazePosition); - _action1._field24 = 0; + _action1._field24 = false; _mazeUI.draw(); _directionChangesEnabled = true; @@ -3671,77 +3667,91 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { void Scene3500::doMovement(int id) { switch (id) { case -1: - _actor7.sub1094ED(); - if (_field1270 != 0) { - _field1270--; - _actor7.sub109663(_field1270); + _throttle.updateSpeed(); + if (_speed != 0) { + _speed--; + _throttle.setSpeed(_speed); } - if (_action1._field24 != 0) - _field1270 = 0; + if (_action1._field24) + _speed = 0; break; case 1: - _actor7.sub1094ED(); - if (_field1270 < 16) { - ++_field1270; - _actor7.sub109663(_field1270); + _throttle.updateSpeed(); + if (_speed < 16) { + ++_speed; + _throttle.setSpeed(_speed); } - if (_action1._field24 != 0) - _field1270 = 0; + if (_action1._field24) + _speed = 0; break; case 88: - if ((_action == 0) || (_action1._field24 == 0)) { - // The original makes a second useless check on action, skipped - _action2.sub10831F(2); - if ((_action) && ((_action2.getActionIndex() != 0) || (_action2._field1E != 2))) { + // Up button has been pressed + // The original was doing a double check on action, only one is here. + if (!_action || (!_action1._field24)) { + _action2.handleVertButton(2); + if (_action && ((_action2.getActionIndex() != 0) || (_action2._direction != 2))) { _action2.signal(); } else { - _actor9.setAction(&_action2, &_actor9, NULL); + _tunnelHorzCircle.setAction(&_action2, &_tunnelHorzCircle, NULL); } } break; case 96: - if ((_action) && (_action1._field24 != 0) && (_action2._field1E != 1)) { - _field1278 = 0; - _action1.sub108732(0); - } else if ((_action) && (_field1278 == 0) && (_action1._field24 != 0)) { - _field1278 = id; - } else if ((_action) && (_action1._field24 == 0)) { - _action1.sub108670(1); - _action1.signal(); - } else if (_action == 0) { - _action1.sub108670(1); - setAction(&_action1, &_actor1, NULL); + // Right button has been pressed + if (!_action || !_action1._field24 || (_action1._direction == 1)) { + if (_action && (_nextMove == 0) && (_action1._field24)) { + _nextMove = id; + } else if (_action && (!_action1._field24)) { + _action1.handleHorzButton(1); + _action1.signal(); + } else if (!_action) { + _action1.handleHorzButton(1); + setAction(&_action1, &_shuttle, NULL); + } + + } else { + if (_nextMove != 0) + _nextMove = 0; + + _action1.turnShuttle(false); } break; case 104: - if ((_action == 0) || (_action1._field24 == 0)) { - _action2.sub10831F(-1); - if ((_action) && ((_action2.getActionIndex() != 0) || (_action2._field1E != -1))) { + // Down button has been pressed + if (!_action || (!_action1._field24)) { + _action2.handleVertButton(-1); + if ((_action) && ((_action2.getActionIndex() != 0) || (_action2._direction != -1))) { _action2.signal(); } else { - _actor9.setAction(&_action2, &_actor9, NULL); + _tunnelHorzCircle.setAction(&_action2, &_tunnelHorzCircle, NULL); } } break; case 112: - if ((_action) && (_action1._field24 != 0) && (_action2._field1E != -1)) { - _field1278 = 0; - _action1.sub108732(0); - } else if ((_action) && (_field1278 == 0) && (_action1._field24 != 0)) { - _field1278 = id; - } else if ((_action) && (_action1._field24 == 0)) { - _action1.sub108670(-1); - _action1.signal(); - } else if (_action == 0) { - _action1.sub108670(-1); - setAction(&_action1, &_actor1, NULL); + // Left button has been pressed + if (!_action || !_action1._field24 || (_action1._direction == 1)) { + if (_action && (_nextMove == 0) && (_action1._field24)) { + _nextMove = id; + } else if (_action && (!_action1._field24)) { + _action1.handleHorzButton(-1); + _action1.signal(); + } else if (!_action) { + _action1.handleHorzButton(-1); + setAction(&_action1, &_shuttle, NULL); + } + + } else { + if (_nextMove != 0) + _nextMove = 0; + + _action1.turnShuttle(false); } break; default: - _field1270 = id; - _actor7.sub109663(id); - if (_action1._field24 != 0) { - _field1270 = 0; + _speed = id; + _throttle.setSpeed(id); + if (_action1._field24) { + _speed = 0; } break; } @@ -3776,7 +3786,7 @@ void Scene3500::process(Event &event) { event.handled = true; break; case Common::KEYCODE_KP9: - if (_field1270 < 16) + if (_speed < 16) R2_GLOBALS._sound2.play(338); doMovement(1); event.handled = true; @@ -3805,7 +3815,7 @@ void Scene3500::process(Event &event) { event.handled = true; break; case Common::KEYCODE_KP3: - if (_field1270 != 0) + if (_speed != 0) R2_GLOBALS._sound2.play(338); doMovement(-1); event.handled = true; @@ -3826,7 +3836,7 @@ void Scene3500::process(Event &event) { } if (!event.handled) - _actor7.process(event); + _throttle.process(event); if (!event.handled) _pitchDown.process(event); @@ -3847,15 +3857,15 @@ void Scene3500::dispatch() { Rect tmpRect; Scene::dispatch(); - if (((_actor1._frame % 2) == 0) && (_action1._field24 == 0)) { - _actor1.setFrame(_actor1.changeFrame()); - _mazeDirection = _actor1._frame; + if (((_shuttle._frame % 2) == 0) && (!_action1._field24)) { + _shuttle.setFrame(_shuttle.changeFrame()); + _mazeDirection = _shuttle._frame; } - int oldField1278; - if ((_field1278 != 0) && (_action1._field24 == 0)) { - oldField1278 = _field1278; - _field1278 = 0; - doMovement(oldField1278); + + if ((_nextMove != 0) && (!_action1._field24)) { + int move = _nextMove; + _nextMove = 0; + doMovement(move); } if (!_rotation) @@ -3863,11 +3873,11 @@ void Scene3500::dispatch() { int newMazeX = 0; int newMazeY = 0; - int var_4 = 0; - int var_6 = 0; - int var_8 = 0; - int var_a = 0; - int dx = 0; + int mazePosX = 0; + int mazePosY = 0; + int deltaX = 0; + int deltaY = 0; + int tmpCellId = 0; int cellId = 0; if ((_mazeChangeAmount == 0) && (_field1282 == 0)) { @@ -3879,72 +3889,72 @@ void Scene3500::dispatch() { newMazeX = _mazePosition.x; newMazeY = _mazePosition.y; - var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; - var_6 = _mazeUI.cellFromY(_mazePosition.y + 46) - 46; - var_8 = abs(var_4 - newMazeX); - var_a = abs(var_6 - newMazeY); - dx = 0; + mazePosX = _mazeUI.cellFromX(newMazeX + 70) - 70; + mazePosY = _mazeUI.cellFromY(_mazePosition.y + 46) - 46; + deltaX = abs(mazePosX - newMazeX); + deltaY = abs(mazePosY - newMazeY); + tmpCellId = 0; switch (_mazeDirection) { case MAZEDIR_NORTH: cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); if (((cellId == 2) || (cellId == 3) || (cellId == 6) || (cellId == 1)) || - ((cellId == 25 || cellId == 26 || cellId == 5 || cellId == 14 || cellId == 15) && var_8 > 3)) { + ((cellId == 25 || cellId == 26 || cellId == 5 || cellId == 14 || cellId == 15) && deltaX > 3)) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); } else { - var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; + mazePosY = _mazeUI.cellFromY(newMazeY + 46) - 46; newMazeY = _mazePosition.y - _mazeChangeAmount; - dx = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if (((cellId == 23) || (cellId == 24) || (cellId == 4)) && (cellId != dx)) { - newMazeY = var_6; + tmpCellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); + if (((cellId == 23) || (cellId == 24) || (cellId == 4)) && (cellId != tmpCellId)) { + newMazeY = mazePosY; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); - } else if ((cellId == 11) && (cellId != dx)) { - newMazeY = var_6 + 3; + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); + } else if ((cellId == 11) && (cellId != tmpCellId)) { + newMazeY = mazePosY + 3; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); } else { - var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; - var_a = abs(var_6 - newMazeY); + mazePosY = _mazeUI.cellFromY(newMazeY + 46) - 46; + deltaY = abs(mazePosY - newMazeY); cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if ( (((cellId == 23) || (cellId == 24) || (cellId == 4)) && (newMazeY <= var_6) && (_mazePosition.y>= var_6)) - || (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (_mazeChangeAmount >= var_a) && (_mazeChangeAmount > 3) && (_action1._field24 != 0)) ) { - newMazeY = var_6; + if ( (((cellId == 23) || (cellId == 24) || (cellId == 4)) && (newMazeY <= mazePosY) && (_mazePosition.y>= mazePosY)) + || (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (_mazeChangeAmount >= deltaY) && (_mazeChangeAmount > 3) && (_action1._field24 != 0)) ) { + newMazeY = mazePosY; if ((cellId != 25) && (cellId != 26) && (cellId != 5) && (cellId != 14) && (cellId == 15)) R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); - } else if ((cellId == 11) && (var_6 + 3 >= newMazeY) && (_mazePosition.y >= var_6 + 3)) { + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); + } else if ((cellId == 11) && (mazePosY + 3 >= newMazeY) && (_mazePosition.y >= mazePosY + 3)) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); - } else if (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (var_8 != 0) && (var_8 <= 3)) { - newMazeX = var_4; + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); + } else if (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (deltaX != 0) && (deltaX <= 3)) { + newMazeX = mazePosX; R2_GLOBALS._sound2.play(339); } else { // Nothing @@ -3955,62 +3965,62 @@ void Scene3500::dispatch() { case MAZEDIR_EAST: cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); if ( ((cellId == 12) || (cellId == 13) || (cellId == 11) || (cellId == 16) || (cellId == 31)) - || (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (var_a > 3)) ) { + || (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (deltaY > 3)) ) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); } else { - var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; + mazePosX = _mazeUI.cellFromX(newMazeX + 70) - 70; newMazeX = _mazePosition.x + _mazeChangeAmount; - dx = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if (((cellId == 26) || (cellId == 24) || (cellId == 15)) && (cellId != dx)) { - newMazeX = var_4; + tmpCellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); + if (((cellId == 26) || (cellId == 24) || (cellId == 15)) && (cellId != tmpCellId)) { + newMazeX = mazePosX; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); - } else if ((cellId == 6) && (cellId != dx)) { - newMazeX = var_4 - 5; + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); + } else if ((cellId == 6) && (cellId != tmpCellId)) { + newMazeX = mazePosX - 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); } else { - var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; - var_8 = abs(newMazeX - var_4); + mazePosX = _mazeUI.cellFromX(newMazeX + 70) - 70; + deltaX = abs(newMazeX - mazePosX); cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if ( (((cellId == 26) || (cellId == 24) || (cellId == 15)) && (newMazeX >= var_4) && (_mazePosition.x <= var_4)) - || (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (_mazeChangeAmount >= var_8) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ) { - newMazeX = var_4; + if ( (((cellId == 26) || (cellId == 24) || (cellId == 15)) && (newMazeX >= mazePosX) && (_mazePosition.x <= mazePosX)) + || (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (_mazeChangeAmount >= deltaX) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ) { + newMazeX = mazePosX; if ((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); - } else if ((cellId == 6) && (var_4 - 5 <= newMazeX) && (_mazePosition.x <= var_4 - 5)) { - newMazeX = var_4 - 5; + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); + } else if ((cellId == 6) && (mazePosX - 5 <= newMazeX) && (_mazePosition.x <= mazePosX - 5)) { + newMazeX = mazePosX - 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); - } else if (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) { - newMazeY = var_6; + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); + } else if (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (deltaY != 0) && (deltaY <= 3)) { + newMazeY = mazePosY; R2_GLOBALS._sound2.play(339); } else { // Nothing @@ -4021,84 +4031,84 @@ void Scene3500::dispatch() { case MAZEDIR_SOUTH: cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); if ( ((cellId == 2) || (cellId == 3) || (cellId == 6) || (cellId == 1)) - || (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (var_8 > 3)) ) { + || (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (deltaX > 3)) ) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); } else { - var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; + mazePosY = _mazeUI.cellFromY(newMazeY + 46) - 46; newMazeY = _mazePosition.y + _mazeChangeAmount; - dx = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); + tmpCellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (cellId != dx)) { + if (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (cellId != tmpCellId)) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); - } else if ((cellId == 16) && (cellId != dx)) { - newMazeY = var_6 - 3; + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); + } else if ((cellId == 16) && (cellId != tmpCellId)) { + newMazeY = mazePosY - 3; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); - } else if ((cellId == 31) && (cellId != dx)) { - newMazeY = var_6 + 4; + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); + } else if ((cellId == 31) && (cellId != tmpCellId)) { + newMazeY = mazePosY + 4; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); } else { - var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; - var_a = abs(newMazeY - var_6); + mazePosY = _mazeUI.cellFromY(newMazeY + 46) - 46; + deltaY = abs(newMazeY - mazePosY); cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if ( (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (newMazeY >= var_6) && (_mazePosition.y <= var_6)) - || (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (_mazeChangeAmount >= var_a) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ){ - newMazeY = var_6; + if ( (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (newMazeY >= mazePosY) && (_mazePosition.y <= mazePosY)) + || (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (_mazeChangeAmount >= deltaY) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ){ + newMazeY = mazePosY; if ((cellId != 23) && (cellId != 24) && (cellId != 4) && (cellId != 14) && (cellId != 15)) R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); - } else if ((cellId == 16) && (var_6 - 3 <= newMazeY) && (_mazePosition.y <= var_6 - 3)) { - newMazeY = var_6 - 3; + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); + } else if ((cellId == 16) && (mazePosY - 3 <= newMazeY) && (_mazePosition.y <= mazePosY - 3)) { + newMazeY = mazePosY - 3; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); - } else if ((cellId == 31) && (var_6 + 4 <= newMazeY) && (_mazePosition.y <= var_6 + 4)) { - newMazeY = var_6 + 4; + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); + } else if ((cellId == 31) && (mazePosY + 4 <= newMazeY) && (_mazePosition.y <= mazePosY + 4)) { + newMazeY = mazePosY + 4; _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); if ((newMazeX == 660) && (_mazeChangeAmount + 306 <= newMazeY) && (newMazeY <= 307)) ++_field1284; else R2_GLOBALS._sound2.play(339); - } else if (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (var_8 != 0) && (var_8 <= 3)) { - newMazeX = var_4; + } else if (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (deltaX != 0) && (deltaX <= 3)) { + newMazeX = mazePosX; R2_GLOBALS._sound2.play(339); } else { // Nothing @@ -4109,62 +4119,62 @@ void Scene3500::dispatch() { case MAZEDIR_WEST: cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); if ( ((cellId == 12) || (cellId == 13) || (cellId == 11) || (cellId == 16) || (cellId == 31)) - || (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (var_a > 3)) ) { + || (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (deltaY > 3)) ) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); } else { - var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; + mazePosX = _mazeUI.cellFromX(newMazeX + 70) - 70; newMazeX = _mazePosition.x - _mazeChangeAmount; - dx = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if (((cellId == 25) || (cellId == 23) || (cellId == 14)) && (cellId != dx)) { - newMazeX = var_4; + tmpCellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); + if (((cellId == 25) || (cellId == 23) || (cellId == 14)) && (cellId != tmpCellId)) { + newMazeX = mazePosX; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); - } else if ((cellId == 1) && (cellId != dx)) { - newMazeX = var_4 + 5; + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); + } else if ((cellId == 1) && (cellId != tmpCellId)) { + newMazeX = mazePosX + 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); } else { - var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; - var_8 = abs(var_4 - newMazeX); + mazePosX = _mazeUI.cellFromX(newMazeX + 70) - 70; + deltaX = abs(mazePosX - newMazeX); cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if ( (((cellId == 25) || (cellId == 23) || (cellId == 14)) && (newMazeX <= var_4) && (_mazePosition.x >= var_4)) - || (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (_mazeChangeAmount >= var_8) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ) { - newMazeX = var_4; + if ( (((cellId == 25) || (cellId == 23) || (cellId == 14)) && (newMazeX <= mazePosX) && (_mazePosition.x >= mazePosX)) + || (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (_mazeChangeAmount >= deltaX) && (_mazeChangeAmount <= 3) && (_action1._field24)) ) { + newMazeX = mazePosX; if ((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); - } else if ((cellId == 1) && (newMazeX >= var_4 + 5) && (_mazePosition.x >= var_4 + 5)) { - newMazeX = var_4 + 5; + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); + } else if ((cellId == 1) && (newMazeX >= mazePosX + 5) && (_mazePosition.x >= mazePosX + 5)) { + newMazeX = mazePosX + 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; - if (_action1._field24 == 0) - _actor8.hide(); - } else if (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) { - newMazeY = var_6; + _field1272 = false; + if (!_action1._field24) + _tunnelVertCircle.hide(); + } else if (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (deltaY != 0) && (deltaY <= 3)) { + newMazeY = mazePosY; R2_GLOBALS._sound2.play(339); } else { // Nothing @@ -4180,9 +4190,9 @@ void Scene3500::dispatch() { _mazePosition.x = newMazeX; _mazePosition.y = newMazeY; if (_mazeUI.setMazePosition2(_mazePosition) != 0) { - _field1272 = 0; + _field1272 = false; _mazeChangeAmount = 0; - _field1270 = 0; + _speed = 0; _rotation->setDelay(0); _rotation->_idxChange = 0; } @@ -4193,15 +4203,15 @@ void Scene3500::dispatch() { } } - if (_field1272 == 0) { - if (_mazeChangeAmount != _field1270) { - if (_mazeChangeAmount >= _field1270) { + if (!_field1272) { + if (_mazeChangeAmount != _speed) { + if (_mazeChangeAmount >= _speed) { if (_mazeChangeAmount == 1) { - if (_action1._field24 != 0) { - if ( ((_mazeDirection == 1) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15))) - || ((_mazeDirection == 3) && (var_a == 0) && (var_8 != 0) && (var_8 <= 3) && ((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4))) - || ((_mazeDirection == 5) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15))) - || ((_mazeDirection == 7) && (var_a == 0) && (var_8 != 0) && (var_8 <= 3) && ((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4))) ){ + if (_action1._field24) { + if ( ((_mazeDirection == 1) && (deltaX == 0) && (deltaY != 0) && (deltaY <= 3) && ((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15))) + || ((_mazeDirection == 3) && (deltaY == 0) && (deltaX != 0) && (deltaX <= 3) && ((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4))) + || ((_mazeDirection == 5) && (deltaX == 0) && (deltaY != 0) && (deltaY <= 3) && ((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15))) + || ((_mazeDirection == 7) && (deltaY == 0) && (deltaX != 0) && (deltaX <= 3) && ((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4))) ){ _mazeChangeAmount = 1; } else _mazeChangeAmount--; @@ -4211,34 +4221,30 @@ void Scene3500::dispatch() { _mazeChangeAmount--; } else ++_mazeChangeAmount; - _field1272 = 1; + _field1272 = true; } - _actor2.setFrame2(_mazeChangeAmount + 1); + _verticalSpeedDisplay.setFrame2(_mazeChangeAmount + 1); } - if (_field1272 == 1) { + if (_field1272) { if (_mazeChangeAmount == 0) _rotation->_idxChange = 0; else if (_mazeChangeAmount > 8) _rotation->_idxChange = 2; else _rotation->_idxChange = 1; - } - if (_field1272 != 0) - _field1272--; + _field1272 = false; + } if (_mazeChangeAmount != 0) { R2_GLOBALS._player._uiEnabled = false; - if (_mazeChangeAmount != _field1270) + if (_mazeChangeAmount != _speed) _aSound1.play(276); } else { R2_GLOBALS._player._uiEnabled = true; _aSound1.fadeOut2(NULL); } - - if (_rotation->_currIndex != _field1274) - _field1274 = _rotation->_currIndex; } /*-------------------------------------------------------------------------- @@ -4260,15 +4266,15 @@ void Scene3600::synchronize(Serializer &s) { } Scene3600::Action3600::Action3600() { - _field1E = 0; - _field20 = 0; + _field1E = false; + _fadePct = 0; } void Scene3600::Action3600::synchronize(Serializer &s) { Action::synchronize(s); s.syncAsSint16LE(_field1E); - s.syncAsSint16LE(_field20); + s.syncAsSint16LE(_fadePct); } void Scene3600::Action3600::signal() { @@ -4280,17 +4286,17 @@ void Scene3600::Action3600::signal() { setDelay(60); break; case 1: - if (_field1E == 0) { - _field1E = 1; + if (!_field1E) { + _field1E = true; scene->_steppingDisk.setAction(NULL); R2_GLOBALS._sound2.play(330, NULL, 0); R2_GLOBALS._sound2.fade(127, 5, 10, false, NULL); } setDelay(1); - R2_GLOBALS._scenePalette.fade((const byte *)&scene->_palette1._palette, true, _field20); - if (_field20 > 0) - _field20 -= 2; + R2_GLOBALS._scenePalette.fade((const byte *)&scene->_palette1._palette, true, _fadePct); + if (_fadePct > 0) + _fadePct -= 2; break; case 2: R2_GLOBALS._sound2.stop(); @@ -4335,7 +4341,7 @@ void Scene3600::Action2::signal() { bool Scene3600::LightShaft::startAction(CursorType action, Event &event) { Scene3600 *scene = (Scene3600 *)R2_GLOBALS._sceneManager._scene; - if ((action != CURSOR_USE) || (scene->_action1._field1E == 0)) + if ((action != CURSOR_USE) || !scene->_action1._field1E) return SceneItem::startAction(action, event); R2_GLOBALS._walkRegions.enableRegion(2); @@ -4414,11 +4420,9 @@ bool Scene3600::Protector::startAction(CursorType action, Event &event) { void Scene3600::postInit(SceneObjectList *OwnerList) { if (R2_GLOBALS._sceneManager._previousScene == 3600) { R2_GLOBALS._scrollFollower = &R2_GLOBALS._player; - R2_GLOBALS._v558B6.set(60, 0, 260, 200); } else { R2_GLOBALS._scrollFollower = &_steppingDisk; _sceneBounds = Rect(160, 0, 480, 200); - R2_GLOBALS._v558B6.set(25, 0, 260, 200); } loadScene(3600); @@ -4444,7 +4448,7 @@ void Scene3600::postInit(SceneObjectList *OwnerList) { _quinn.postInit(); _quinn._moveDiff = Common::Point(3, 2); _quinn.changeZoom(-1); - _quinn._effect = 1; + _quinn._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex != 1) _quinn.setDetails(9001, 0, -1, -1, 1, (SceneItem *) NULL); @@ -4453,7 +4457,7 @@ void Scene3600::postInit(SceneObjectList *OwnerList) { _seeker._numFrames = 7; _seeker._moveDiff = Common::Point(5, 3); _seeker.changeZoom(-1); - _seeker._effect = 1; + _seeker._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex != 2) _seeker.setDetails(9002, 1, -1, -1, 1, (SceneItem *) NULL); @@ -4461,7 +4465,7 @@ void Scene3600::postInit(SceneObjectList *OwnerList) { _miranda.postInit(); _miranda._moveDiff = Common::Point(3, 2); _miranda.changeZoom(-1); - _miranda._effect = 1; + _miranda._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex != 3) _miranda.setDetails(9003, 1, -1, -1, 1, (SceneItem *) NULL); @@ -4475,14 +4479,14 @@ void Scene3600::postInit(SceneObjectList *OwnerList) { _webbster._numFrames = 7; _webbster._moveDiff = Common::Point(5, 3); _webbster.changeZoom(-1); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; _webbster.setDetails(3600, 27, -1, -1, 1, (SceneItem *) NULL); _teal.postInit(); _teal._numFrames = 7; _teal._moveDiff = Common::Point(3, 2); _teal.changeZoom(-1); - _teal._effect = 1; + _teal._effect = EFFECT_SHADED; _teal.setDetails(3600, 12, -1, -1, 1, (SceneItem *) NULL); _palette1.loadPalette(0); @@ -4558,8 +4562,8 @@ void Scene3600::postInit(SceneObjectList *OwnerList) { _consoleLights.setup(3601, 5, 1); _consoleLights.animate(ANIM_MODE_2, NULL); - _action1._field1E = 1; - _action1._field20 = 0; + _action1._field1E = true; + _action1._fadePct = 0; _action1.setActionIndex(1); _consoleLights.setAction(&_action1); @@ -4593,8 +4597,8 @@ void Scene3600::postInit(SceneObjectList *OwnerList) { _steppingDisk.fixPriority(149); _steppingDisk.changeZoom(-1); - _action1._field1E = 0; - _action1._field20 = 90; + _action1._field1E = false; + _action1._fadePct = 90; _sceneMode = 3600; setAction(&_sequenceManager1, this, 3600, &_seeker, &_quinn, &_miranda, @@ -4772,7 +4776,6 @@ void Scene3600::signal() { case 3603: R2_GLOBALS._walkRegions.disableRegion(2); R2_GLOBALS._walkRegions.disableRegion(7); - R2_GLOBALS._v558B6.set(60, 0, 260, 200); _tealSpeaker._displayMode = 1; _sceneMode = 3321; _stripManager.start(3321, this); @@ -4826,7 +4829,7 @@ void Scene3600::signal() { // No break on purpose case 3623: if ((_protector._position.x == 226) && (_protector._position.y == 152) - && (_action1._field1E != 0) && (_protector._visage == 3127) && (!R2_GLOBALS.getFlag(71))) { + && _action1._field1E && (_protector._visage == 3127) && (!R2_GLOBALS.getFlag(71))) { R2_GLOBALS._sound2.stop(); R2_GLOBALS._sound2.play(331); R2_GLOBALS.setFlag(71); @@ -4874,8 +4877,7 @@ void Scene3600::process(Event &event) { } void Scene3600::dispatch() { - if ((R2_GLOBALS._player.getRegionIndex() == 200) && (_action1._field1E != 0) - && !_lightEntered) { + if ((R2_GLOBALS._player.getRegionIndex() == 200) && _action1._field1E && !_lightEntered) { R2_GLOBALS._sound2.fadeOut2(NULL); if (_protector._mover) _protector.addMover(NULL); @@ -4916,7 +4918,7 @@ void Scene3600::dispatch() { _webbster.setAction(&_sequenceManager1, this, 3613, &_webbster, NULL); } - if ((_protector.getRegionIndex() == 200) && (_action1._field1E != 0) && !_ghoulTeleported) { + if ((_protector.getRegionIndex() == 200) && _action1._field1E && !_ghoulTeleported) { R2_GLOBALS._sound2.fadeOut2(NULL); _sceneMode = 3620; _ghoulTeleported = true; @@ -5204,18 +5206,20 @@ void Scene3800::enterArea() { R2_GLOBALS._player.setStrip(3); R2_GLOBALS._player.changeZoom(-1); R2_GLOBALS._player._moveDiff = Common::Point(3, 2); - _balloonQuinn.postInit(); - _balloonQuinn.fixPriority(10); - _balloonQuinn.changeZoom(-1); - _balloonQuinn.setVisage(1110); - _balloonQuinn._effect = 5; - _balloonQuinn._field9C = this->_field312; - R2_GLOBALS._player._linkedActor = &_balloonQuinn; + + _quinnShadow.postInit(); + _quinnShadow.fixPriority(10); + _quinnShadow.changeZoom(-1); + _quinnShadow.setVisage(1110); + _quinnShadow._effect = EFFECT_SHADOW_MAP; + _quinnShadow._shadowMap = this->_shadowPaletteMap; + R2_GLOBALS._player._linkedActor = &_quinnShadow; + switch (R2_GLOBALS._sceneManager._previousScene) { case 2600: _balloon.postInit(); _harness.postInit(); - _balloonQuinn.hide(); + _quinnShadow.hide(); _sceneMode = 3800; setAction(&_sequenceManager1, this, 3800, &R2_GLOBALS._player, &_balloon, &_harness, NULL); @@ -5361,7 +5365,7 @@ void Scene3800::signal() { g_globals->_sceneManager.changeScene(3900); break; case 3800: - _balloonQuinn.show(); + _quinnShadow.show(); _balloon.remove(); _harness.remove(); R2_GLOBALS._player.enableControl(); @@ -5514,13 +5518,13 @@ void Scene3900::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.changeZoom(-1); R2_GLOBALS._player._moveDiff = Common::Point(3, 2); - _linkedQuinn.postInit(); - _linkedQuinn.fixPriority(10); - _linkedQuinn.changeZoom(-1); - _linkedQuinn.setVisage(1110); - _linkedQuinn._effect = 5; - _linkedQuinn._field9C = _field312; - R2_GLOBALS._player._linkedActor = &_linkedQuinn; + _quinnShadow.postInit(); + _quinnShadow.fixPriority(10); + _quinnShadow.changeZoom(-1); + _quinnShadow.setVisage(1110); + _quinnShadow._effect = EFFECT_SHADOW_MAP; + _quinnShadow._shadowMap = _shadowPaletteMap; + R2_GLOBALS._player._linkedActor = &_quinnShadow; if ((R2_GLOBALS._desertPreviousDirection == 2) && (R2_GLOBALS._sceneManager._previousScene != 2700)) { // loadScene(3825); diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index 48236ee300..834a601e62 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -315,16 +315,16 @@ class Scene3260 : public SceneExt { void signal(); }; public: - NamedHotspot _item1; + NamedHotspot _background; SceneActor _sceeen1; SceneActor _screen2; SceneActor _screen3; SceneActor _screen4; SceneActor _screen5; SceneActor _screen6; - SceneActor _actor7; - SceneActor _actor8; - SceneActor _actor9; + SceneActor _screen7; + SceneActor _screen8; + SceneActor _screen9; SceneActor _securityConsole; SceneActor _computerConsole; SceneActor _lightingConsole; @@ -462,7 +462,7 @@ class Scene3385 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -482,7 +482,7 @@ public: Companion2 _companion2; Webbster _webbster; Door _door; - Exit1 _exit1; + SouthExit _southExit; Action1 _action1; SequenceManager _sequenceManager; @@ -548,9 +548,8 @@ public: SceneActor _companion2; SceneActor _webbster; SceneActor _teal; - SceneActor _actor5; - SceneActor _actor6; - SceneActor _actor7; + SceneActor _door; + SceneActor _manholeCover; SceneActor _actor8; SequenceManager _sequenceManager; bool _soundFaded; @@ -565,25 +564,25 @@ public: class Scene3500 : public SceneExt { class Action1: public Action { public: - int _field1E; - int _field20; + int _direction; + bool _field20; int _field22; - int _field24; + bool _field24; Action1(); virtual void synchronize(Serializer &s); - void sub108670(int arg1); - void sub108732(int arg1); + void handleHorzButton(int direction); + void turnShuttle(bool arg1); virtual void signal(); virtual void dispatch(); }; class Action2: public Action { public: - int _field1E; + int _direction; Action2(); virtual void synchronize(Serializer &s); - void sub10831F(int arg1); + void handleVertButton(int direction); virtual void signal(); }; @@ -598,31 +597,26 @@ class Scene3500 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Actor7 : public SceneActor { + class Throttle : public SceneActor { public: Common::Point _pos; - int _fieldA8; - int _fieldAA; - int _fieldAC; - int _fieldAE; + int _deltaX; + int _deltaY; + int _slideDeltaY; + int _deltaMouseY; - Actor7(); + Throttle(); virtual void synchronize(Serializer &s); - void sub109466(int xp, int yp, int arg3, int arg4, int arg5); - void sub1094ED(); - void sub109663(int arg1); + void init(int xp, int yp, int dx, int dy, int speed); + void updateSpeed(); + void setSpeed(int arg1); void changePosition(const Common::Point &pt); virtual void process(Event &event); virtual bool startAction(CursorType action, Event &event); }; - class Actor8 : public SceneActor { - public: - // TODO: double check if nothing specific is present, then remove this class - }; - class MazeUI3500 : public MazeUI { public: int cellFromX(int arg1); @@ -633,40 +627,37 @@ class Scene3500 : public SceneExt { public: Action1 _action1; Action2 _action2; - NamedHotspot _item1; - NamedHotspot _item2; - NamedHotspot _item3; + NamedHotspot _background; + NamedHotspot _outsideView; + NamedHotspot _mapScreen; DirectionButton _pitchDown; DirectionButton _turnLeft; DirectionButton _pitchUp; DirectionButton _turnRight; // Glyph of vessel on top of the maze ui - SceneActor _actor1; - SceneActor _actor2; - SceneActor _actor3; - SceneActor _actor4; - SceneActor _actor5; - SceneActor _actor6; - Actor7 _actor7; - Actor8 _actor8; - Actor8 _actor9; + SceneActor _shuttle; + SceneActor _verticalSpeedDisplay; + SceneActor _horizontalSpeedDisplay; + SceneActor _symbolVertical; + SceneActor _symbolLeft; + SceneActor _symbolRight; + Throttle _throttle; + SceneActor _tunnelVertCircle; + SceneActor _tunnelHorzCircle; ASoundExt _aSound1; MazeUI3500 _mazeUI; SequenceManager _sequenceManager; - int _fieldAF8; - int _fieldB9E; + int _moverVertX; + int _moverHorzX; PaletteRotation *_rotation; int _mazeChangeAmount; - int _field1270; - int _field1272; - int _field1274; + int _speed; + bool _field1272; int _mazeDirection; - int _field1278; + int _nextMove; Common::Point _mazePosition; - int _field127E; - int _field1280; - int _field1282; + int _field1282; // TODO: Set to true in Fixup() int _field1284; bool _directionChangesEnabled; @@ -684,7 +675,8 @@ public: class Scene3600 : public SceneExt { class Action3600: public ActionExt { public: - int _field1E, _field20; + bool _field1E; + int _fadePct; Action3600(); virtual void synchronize(Serializer &s); @@ -786,7 +778,7 @@ class Scene3800 : public SceneExt { public: SceneObject _balloon; SceneObject _harness; - SceneActor _balloonQuinn; + SceneActor _quinnShadow; NamedHotspot _background; NorthExit _northExit; EastExit _eastExit; @@ -833,7 +825,7 @@ class Scene3900 : public SceneExt { virtual void changeScene(); }; public: - SceneActor _linkedQuinn; + SceneActor _quinnShadow; NamedHotspot _background; NorthExit _northExit; EastExit _eastExit; diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp index a6bfc39e2a..61236ee504 100644 --- a/engines/tsage/ringworld2/ringworld2_speakers.cpp +++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp @@ -654,7 +654,7 @@ void SpeakerMiranda3375::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (scene->_companion1._position.y != 163) @@ -704,7 +704,7 @@ void SpeakerMiranda3385::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3375) @@ -753,7 +753,7 @@ void SpeakerMiranda3395::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3385) @@ -803,7 +803,7 @@ void SpeakerMiranda3400::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -847,7 +847,7 @@ void SpeakerMiranda3600::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -1139,7 +1139,7 @@ void SpeakerProtector3600::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); @@ -1528,7 +1528,7 @@ void SpeakerQuinn3375::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (scene->_companion1._position.y != 163) @@ -1579,7 +1579,7 @@ void SpeakerQuinn3385::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3375) @@ -1634,7 +1634,7 @@ void SpeakerQuinn3395::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3385) @@ -1689,7 +1689,7 @@ void SpeakerQuinn3400::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); if (_object2->_mover) @@ -1735,7 +1735,7 @@ void SpeakerQuinn3600::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -2241,7 +2241,7 @@ void SpeakerSeeker3375::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (scene->_companion1._position.y != 163) @@ -2290,7 +2290,7 @@ void SpeakerSeeker3385::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3375) @@ -2339,7 +2339,7 @@ void SpeakerSeeker3395::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3385) @@ -2388,7 +2388,7 @@ void SpeakerSeeker3400::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -2447,7 +2447,7 @@ void SpeakerSeeker3600::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -2771,7 +2771,7 @@ void SpeakerTeal3400::proc15() { _object2->hide(); _object1.postInit(); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -2829,7 +2829,7 @@ void SpeakerTeal3600::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -3017,7 +3017,7 @@ void SpeakerWebbster3375::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (scene->_companion1._position.y != 163) @@ -3061,7 +3061,7 @@ void SpeakerWebbster3385::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3375) @@ -3105,7 +3105,7 @@ void SpeakerWebbster3395::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3385) @@ -3149,7 +3149,7 @@ void SpeakerWebbster3400::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); diff --git a/engines/tsage/sound.cpp b/engines/tsage/sound.cpp index 0946b6c419..f8797fd569 100644 --- a/engines/tsage/sound.cpp +++ b/engines/tsage/sound.cpp @@ -1008,7 +1008,7 @@ void SoundManager::sfRethinkVoiceTypes() { if (vtStruct->_entries[idx]._type0._priority2 > maxPriority) { maxPriority = vtStruct->_entries[idx]._type0._priority2; - entryIndex = -1; + entryIndex = idx; } } diff --git a/engines/tsage/staticres.cpp b/engines/tsage/staticres.cpp index 662efa19b4..2749f2ac90 100644 --- a/engines/tsage/staticres.cpp +++ b/engines/tsage/staticres.cpp @@ -398,8 +398,8 @@ const byte scene1550AreaMap[] = { 13, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14 }; -const byte k5A72E[] = {0, 98, 135, 183, 229, 81, 133, 185, 235, 75, 131, 187, 241, 70, 129, 190, 247}; -const byte k5A73F[] = {0, 42, 42, 42, 42, 67, 67, 67, 67, 92, 92, 92, 92, 116, 116, 116, 116}; +const byte scene1550JunkX[] = {0, 98, 135, 183, 229, 81, 133, 185, 235, 75, 131, 187, 241, 70, 129, 190, 247}; +const byte scene1550JunkY[] = {0, 42, 42, 42, 42, 67, 67, 67, 67, 92, 92, 92, 92, 116, 116, 116, 116}; const byte k5A750[] = { 9, 10, 7, 13, 7, 8, 9, 7, 9, 10, 2, 3, 3, 2, 2, 2, 4, 3, 3, 4, @@ -411,7 +411,7 @@ const byte k5A76D[] = { 3, 3, 3, 3, 3, 3, 3, 3, 3 }; const byte scene1550JunkRegions[] = {0, 8, 15, 16, 12, 7, 18, 17, 13, 6, 19, 20, 14, 5, 11, 10, 9}; -const byte k5A79B[] = { +const byte scene1550SpecialAreas[] = { 23, 3, 1, 23, 4, 1, 26, 3, 1, diff --git a/engines/tsage/staticres.h b/engines/tsage/staticres.h index 7d97f2824d..587463a918 100644 --- a/engines/tsage/staticres.h +++ b/engines/tsage/staticres.h @@ -202,12 +202,12 @@ extern char const *const WRONG_ANSWER_MSG; // Scene 1550 arrays of constants extern const byte scene1550JunkLocationsDefault[]; extern const byte scene1550AreaMap[]; -extern const byte k5A72E[]; -extern const byte k5A73F[]; +extern const byte scene1550JunkX[]; +extern const byte scene1550JunkY[]; extern const byte k5A750[]; extern const byte k5A76D[]; extern const byte scene1550JunkRegions[]; -extern const byte k5A79B[]; +extern const byte scene1550SpecialAreas[]; extern const byte k5A7F6[]; // Scene 2900 balloon data |