aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tsage')
-rw-r--r--engines/tsage/core.cpp6
-rw-r--r--engines/tsage/core.h1
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes3.cpp12
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));