[Scummvm-cvs-logs] scummvm master -> 0d3287671e3132d3d24ff2f87295a100b731c849

dreammaster dreammaster at scummvm.org
Wed Jan 4 11:52:55 CET 2012


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
0d3287671e TSAGE: Implemented the changes needed for R2R SceneActor::dispatch


Commit: 0d3287671e3132d3d24ff2f87295a100b731c849
    https://github.com/scummvm/scummvm/commit/0d3287671e3132d3d24ff2f87295a100b731c849
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2012-01-04T02:52:21-08:00

Commit Message:
TSAGE: Implemented the changes needed for R2R SceneActor::dispatch

Changed paths:
    engines/tsage/core.cpp
    engines/tsage/core.h
    engines/tsage/ringworld2/ringworld2_logic.cpp
    engines/tsage/ringworld2/ringworld2_logic.h



diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index 331cac6..8f4efaf 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) {
diff --git a/engines/tsage/core.h b/engines/tsage/core.h
index 755964c..3607173 100644
--- a/engines/tsage/core.h
+++ b/engines/tsage/core.h
@@ -545,8 +545,9 @@ public:
 	uint32 _regionBitList;
 
 	// Ringworld 2 specific fields
-	int _shade;
+	int _shade, _shade2;
 	int _effect;
+	SceneObject *_linkedActor;
 public:
 	SceneObject();
 	SceneObject(const SceneObject &so);
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 0d8e5fd..6c15e98 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -897,19 +897,13 @@ bool NamedHotspot::startAction(CursorType action, Event &event) {
 	}
 }
 
+/*--------------------------------------------------------------------------*/
+
 void SceneActor::postInit(SceneObjectList *OwnerList) {
 	_lookLineNum = _talkLineNum = _useLineNum = -1;
 	SceneObject::postInit();
 }
 
-void SceneActor::synchronize(Serializer &s) {
-	SceneObject::synchronize(s);
-	s.syncAsSint16LE(_resNum);
-	s.syncAsSint16LE(_lookLineNum);
-	s.syncAsSint16LE(_talkLineNum);
-	s.syncAsSint16LE(_useLineNum);
-}
-
 bool SceneActor::startAction(CursorType action, Event &event) {
 	bool handled = true;
 
diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h
index 2d7a81c..535072f 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.h
+++ b/engines/tsage/ringworld2/ringworld2_logic.h
@@ -253,11 +253,7 @@ public:
 
 class SceneActor: public SceneObject {
 public:
-	int _resNum;
-	int _lookLineNum, _talkLineNum, _useLineNum;
-
 	virtual Common::String getClassName() { return "SceneActor"; }
-	virtual void synchronize(Serializer &s);
 	virtual void postInit(SceneObjectList *OwnerList = NULL);
 	virtual bool startAction(CursorType action, Event &event);
 };






More information about the Scummvm-git-logs mailing list