aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/core.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2012-01-04 21:52:21 +1100
committerPaul Gilbert2012-01-04 21:52:21 +1100
commit0d3287671e3132d3d24ff2f87295a100b731c849 (patch)
tree0504bd80ba66a72af8d27ab0102b0229f47d9410 /engines/tsage/core.cpp
parent3344cf424a90d22ab44c8b64b7ad598a53147e26 (diff)
downloadscummvm-rg350-0d3287671e3132d3d24ff2f87295a100b731c849.tar.gz
scummvm-rg350-0d3287671e3132d3d24ff2f87295a100b731c849.tar.bz2
scummvm-rg350-0d3287671e3132d3d24ff2f87295a100b731c849.zip
TSAGE: Implemented the changes needed for R2R SceneActor::dispatch
Diffstat (limited to 'engines/tsage/core.cpp')
-rw-r--r--engines/tsage/core.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index 331cac6c4b..8f4efafa01 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -2021,7 +2021,8 @@ SceneObject::SceneObject() : SceneHotspot() {
_strip = 0;
_frame = 0;
_effect = 0;
- _shade = 0;
+ _shade = _shade2 = 0;
+ _linkedActor = NULL;
_field8A = Common::Point(0, 0);
}
@@ -2408,6 +2409,8 @@ void SceneObject::synchronize(Serializer &s) {
if (g_vm->getGameID() == GType_Ringworld2) {
s.syncAsSint16LE(_effect);
s.syncAsSint16LE(_shade);
+ s.syncAsSint16LE(_shade2);
+ SYNC_POINTER(_linkedActor);
}
}
@@ -2451,6 +2454,12 @@ void SceneObject::remove() {
}
void SceneObject::dispatch() {
+ if (g_vm->getGameID() == GType_Ringworld2) {
+ if (_shade != _shade2)
+ _flags |= OBJFLAG_PANES;
+ _shade2 = _shade;
+ }
+
uint32 currTime = g_globals->_events.getFrameNumber();
if (_action)
_action->dispatch();
@@ -2558,6 +2567,17 @@ void SceneObject::dispatch() {
if (!(_flags & OBJFLAG_FIXED_PRIORITY)) {
setPriority(_position.y);
}
+
+ if (g_vm->getGameID() == GType_Ringworld2) {
+ if (_linkedActor) {
+ _linkedActor->setPosition(_position);
+ _linkedActor->setStrip(_strip);
+ _linkedActor->setFrame(_frame);
+ }
+
+ if ((_effect == 1) && (getRegionIndex() < 11))
+ _shade = 0;
+ }
}
void SceneObject::calcAngle(const Common::Point &pt) {