diff options
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes0.cpp | 12 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes0.h | 2 |
2 files changed, 10 insertions, 4 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.cpp b/engines/tsage/ringworld2/ringworld2_scenes0.cpp index 643f60dafc..c6d590e716 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes0.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes0.cpp @@ -5586,13 +5586,19 @@ bool Scene600::EngineCompartment::startAction(CursorType action, Event &event) { R2_GLOBALS._player.disableControl(); Scene600 *scene = (Scene600 *)R2_GLOBALS._sceneManager._scene; - - scene->_stasisArea.setup2(603, 3, 1, 239, 54, 10, 0); + + scene->_stasisArea.setup(603, 3, 1, 239, 54, 10); scene->_stasisField.postInit(); scene->_computer.postInit(); scene->_sceneMode = 612; scene->setAction(&scene->_sequenceManager1, scene, 612, &scene->_stasisField, &scene->_computer, &R2_GLOBALS._player, NULL); + + // WORKAROUND: For ScummVM, we use a SceneActor rather than BackgroundSceneObject + // for the stasis field since it doesn't work properly. We override the priority for + // the stasis field here so that the stasis field dissolve will show up + scene->_stasisField.fixPriority(12); + return true; } @@ -5857,7 +5863,7 @@ void Scene600::postInit(SceneObjectList *OwnerList) { } if (! R2_GLOBALS.getFlag(9)) - _stasisArea.setup2(603, 1, 1, 244, 50, 10, 0); + _stasisArea.setup(603, 1, 1, 244, 50, 10); if (R2_GLOBALS.getFlag(5)) { if (R2_INVENTORY.getObjectScene(R2_AEROSOL) == 600) { diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.h b/engines/tsage/ringworld2/ringworld2_scenes0.h index 305060e45d..d4a1189a54 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes0.h +++ b/engines/tsage/ringworld2/ringworld2_scenes0.h @@ -670,7 +670,7 @@ public: CompartmentHotspot _powerNode; EngineCompartment _engineCompartment; CompartmentHotspot _background; - BackgroundSceneObject _stasisArea; + SceneActor _stasisArea; SceneActor _laserBeam; SceneActor _computer; SceneActor _stasisField; |