diff options
Diffstat (limited to 'engines/tsage')
-rw-r--r-- | engines/tsage/core.cpp | 6 | ||||
-rw-r--r-- | engines/tsage/core.h | 1 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes3.cpp | 12 |
3 files changed, 11 insertions, 8 deletions
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp index 7cbcb863c7..331cac6c4b 100644 --- a/engines/tsage/core.cpp +++ b/engines/tsage/core.cpp @@ -2022,6 +2022,8 @@ SceneObject::SceneObject() : SceneHotspot() { _frame = 0; _effect = 0; _shade = 0; + + _field8A = Common::Point(0, 0); } SceneObject::SceneObject(const SceneObject &so) : SceneHotspot() { @@ -2396,6 +2398,10 @@ void SceneObject::synchronize(Serializer &s) { SYNC_POINTER(_mover); s.syncAsSint16LE(_moveDiff.x); s.syncAsSint16LE(_moveDiff.y); s.syncAsSint32LE(_moveRate); + if (g_vm->getGameID() == GType_Ringworld2) { + s.syncAsSint16LE(_field8A.x); + s.syncAsSint16LE(_field8A.y); + } SYNC_POINTER(_endAction); s.syncAsUint32LE(_regionBitList); diff --git a/engines/tsage/core.h b/engines/tsage/core.h index 98606dc64d..755964c84a 100644 --- a/engines/tsage/core.h +++ b/engines/tsage/core.h @@ -540,6 +540,7 @@ public: EventHandler *_mover; Common::Point _moveDiff; int _moveRate; + Common::Point _field8A; Action *_endAction; uint32 _regionBitList; diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index a819f2708a..31723c658b 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -2961,17 +2961,14 @@ void Scene3600::Action2::signal() { R2_GLOBALS._events.proc1(); R2_GLOBALS._player.enableControl(); _actionIndex = 3619; - scene->_sequenceManager1._action = NULL; - warning("CHECKME: use of scene->_sequenceManager1._action"); + scene->_actor13._state = 0; // No break on purpose case 3619: { ++_actionIndex; scene->_actor13.setup(3127, 2, 1); scene->_actor13.animate(ANIM_MODE_1, NULL); - Common::Point pt(226, 152); - warning("TODO: Fix use of SceneActor::_field8A and SceneActor::_field8C"); NpcMover *mover = new NpcMover(); - scene->_actor13.addMover(mover, &scene->_actor13._position, scene); + scene->_actor13.addMover(mover, &scene->_actor13._field8A, scene); } break; default: @@ -3193,7 +3190,7 @@ void Scene3600::postInit(SceneObjectList *OwnerList) { if (!R2_GLOBALS.getFlag(71)) { _actor13.postInit(); _actor13._state = 0; - warning("TODO: Fix use of SceneActor::_field8A and SceneActor::_field8C in postInit()"); + _actor13._field8A = Common::Point(226, 152); _actor13._moveDiff = Common::Point(3, 2); _actor13.setPosition(Common::Point(284, 152)); _actor13.setup(3127, 2, 1); @@ -3367,8 +3364,7 @@ void Scene3600::signal() { _actor13.postInit(); _actor13._state = 0; - warning("_actor13._field8A = 226"); - warning("_actor13._field8C = 152"); + _actor13._field8A = Common::Point(226, 152); _actor13._moveDiff = Common::Point(5, 3); _actor13.setup(3403, 7, 1); _actor13.setPosition(Common::Point(405, 155)); |