diff options
| author | Strangerke | 2012-01-03 16:04:10 +0100 | 
|---|---|---|
| committer | Strangerke | 2012-01-03 16:04:10 +0100 | 
| commit | bda4e9ba9eed4d440661a321f527389d4d78bda7 (patch) | |
| tree | 58807caa10398248b3dda67e563ffb27d6f105df | |
| parent | 44b3120b81526f214818c4cdbed83a7260a1d60b (diff) | |
| download | scummvm-rg350-bda4e9ba9eed4d440661a321f527389d4d78bda7.tar.gz scummvm-rg350-bda4e9ba9eed4d440661a321f527389d4d78bda7.tar.bz2 scummvm-rg350-bda4e9ba9eed4d440661a321f527389d4d78bda7.zip  | |
TSAGE: Add _field8A to SceneObject, use it in R2R scene 3600
| -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));  | 
