diff options
author | strangerke | 2011-04-02 09:36:13 +0200 |
---|---|---|
committer | strangerke | 2011-04-02 09:36:13 +0200 |
commit | 65e5a51eaf8eb2d35a4d46db7a10c1d8d8a04f6d (patch) | |
tree | b19ae4a4e8ccf1cb7e534d86c21197d9492fdd4f /engines/tsage | |
parent | 068fb01747ba0eb36b07d178764c7e4b206b2c96 (diff) | |
download | scummvm-rg350-65e5a51eaf8eb2d35a4d46db7a10c1d8d8a04f6d.tar.gz scummvm-rg350-65e5a51eaf8eb2d35a4d46db7a10c1d8d8a04f6d.tar.bz2 scummvm-rg350-65e5a51eaf8eb2d35a4d46db7a10c1d8d8a04f6d.zip |
TSAGE: Add Scene2 class for scene group 10, getting rid of _field30A
Diffstat (limited to 'engines/tsage')
-rw-r--r-- | engines/tsage/ringworld_scenes10.cpp | 62 | ||||
-rw-r--r-- | engines/tsage/ringworld_scenes10.h | 23 |
2 files changed, 49 insertions, 36 deletions
diff --git a/engines/tsage/ringworld_scenes10.cpp b/engines/tsage/ringworld_scenes10.cpp index f6238502b5..cc04edb8d8 100644 --- a/engines/tsage/ringworld_scenes10.cpp +++ b/engines/tsage/ringworld_scenes10.cpp @@ -30,6 +30,12 @@ #include "tsage/staticres.h" namespace tSage { + +Scene2::Scene2() { + Scene::Scene(); + _sceneState = 0; +} + /*-------------------------------------------------------------------------- * Scene 9100 * @@ -202,9 +208,9 @@ void Scene9150::signal() { void Scene9150::dispatch() { - if ((_field30A != 0) && (_sceneBounds.left == 0)) { + if ((_sceneState != 0) && (_sceneBounds.left == 0)) { _object3._field88 = 0; - _field30A = 0; + _sceneState = 0; _sceneHotspot3.setAction(&_sequenceManager2, 0, 9154, &_object3, 0); _sceneHotspot10.remove(); } @@ -237,7 +243,7 @@ void Scene9150::postInit(SceneObjectList *OwnerList) { _globals->_player.postInit(); _object3.postInit(); - _field30A = 1; + _sceneState = 1; _object3.setVisage(9151); _object3._strip = 1; _object3._frame = 1; @@ -288,16 +294,16 @@ void Scene9200::SceneHotspot1::doAction(int action) { if (action == OBJECT_TUNIC) { _globals->_player.disableControl(); if (_globals->getFlag(93)) { - scene->_field30A = 9214; + scene->_sceneState = 9214; setAction(&scene->_sequenceManager, scene, 9214, &_globals->_player, &scene->_object2, 0); } else { _globals->setFlag(93); - scene->_field30A = 9213; + scene->_sceneState = 9213; setAction(&scene->_sequenceManager, scene, 9213, &_globals->_player, &scene->_object2, 0); } } else if (action <= 100) { _globals->_player.disableControl(); - scene->_field30A = 9214; + scene->_sceneState = 9214; setAction(&scene->_sequenceManager, scene, 9214, &_globals->_player, &scene->_object2, 0); } else { SceneHotspot_3::doAction(action); @@ -305,7 +311,7 @@ void Scene9200::SceneHotspot1::doAction(int action) { } void Scene9200::signal() { - switch (_field30A++) { + switch (_sceneState++) { case 9207: _globals->_sceneManager.changeScene(9700); break; @@ -345,27 +351,27 @@ void Scene9200::dispatch() { } else { if ( (_globals->_player._position.x <= 0) || ((_globals->_player._position.x < 100) && (_globals->_player._position.y > 199))) { _globals->_player.disableControl(); - _field30A = 9209; + _sceneState = 9209; setAction(&_sequenceManager, this, 9209, &_globals->_player, &_object2, &_object3, 0); } else { if (rect9200.contains(_globals->_player._position)) { if (_globals->getFlag(93)) { if (_globals->getFlag(86)) { - _field30A = 9215; + _sceneState = 9215; setAction(&_sequenceManager, this, 9215, &_globals->_player, &_object2, &_object3, 0); } else { - _field30A = 9208; + _sceneState = 9208; setAction(&_sequenceManager, this, 9208, &_globals->_player, &_object2, &_object3, 0); } } else { _globals->_player.disableControl(); - _field30A = 9204; + _sceneState = 9204; setAction(&_sequenceManager, this, 9204, &_globals->_player, &_object2, &_object3, 0); } } else { if (_globals->_player._position.y < 140) { _globals->_player.disableControl(); - _field30A = 9207; + _sceneState = 9207; setAction(&_sequenceManager, this, 9207, &_globals->_player, &_object2, &_object3, 0); } } @@ -412,38 +418,38 @@ void Scene9200::postInit(SceneObjectList *OwnerList) { if (_globals->getFlag(85)) { if (_globals->_inventory._helmet._sceneNumber == 1) { _globals->setFlag(86); - _field30A = 9210; + _sceneState = 9210; setAction(&_sequenceManager, this, 9210, &_globals->_player, &_object2, &_object3, 0); } else { - _field30A = 9212; + _sceneState = 9212; setAction(&_sequenceManager, this, 9212, &_globals->_player, &_object2, &_object3, 0); } } else { if (_globals->_inventory._helmet._sceneNumber == 1) { - _field30A = 9211; + _sceneState = 9211; setAction(&_sequenceManager, this, 9211, &_globals->_player, &_object2, &_object3, 0); } else { - _field30A = 9202; + _sceneState = 9202; setAction(&_sequenceManager, this, 9202, &_globals->_player, &_object2, &_object3, 0); } } break; case 9700: if (_globals->getFlag(86)) { - _field30A = 9206; + _sceneState = 9206; setAction(&_sequenceManager, this, 9206, &_globals->_player, &_object2, &_object3, 0); } else { - _field30A = 9203; + _sceneState = 9203; setAction(&_sequenceManager, this, 9203, &_globals->_player, &_object2, &_object3, 0); } break; case 9360: default: if (_globals->getFlag(86)) { - _field30A = 9205; + _sceneState = 9205; setAction(&_sequenceManager, this, 9205, &_globals->_player, &_object2, &_object3, 0); } else { - _field30A = 9201; + _sceneState = 9201; setAction(&_sequenceManager, this, 9201, &_globals->_player, &_object2, &_object3, 0); } break; @@ -531,7 +537,7 @@ void Scene9350::Object1::draw() { } void Scene9350::signal() { - switch (_field30A ++) { + switch (_sceneState ++) { case 0: case 9352: case 9353: @@ -558,16 +564,16 @@ void Scene9350::dispatch() { if ((_globals->_player._position.x <= 300) || (_globals->_player._position.y >= 160)) { if ((_globals->_player._position.x <= 110) || (_globals->_player._position.y < 195)) { _globals->_player.disableControl(); - _field30A = 9355; + _sceneState = 9355; Scene::setAction(&_sequenceManager, this, 9355, &_globals->_player, &_object2, 0); } else { _globals->_player.disableControl(); - _field30A = 9357; + _sceneState = 9357; Scene::setAction(&_sequenceManager, this, 9357, &_globals->_player, &_object2, 0); } } else { _globals->_player.disableControl(); - _field30A = 9356; + _sceneState = 9356; Scene::setAction(&_sequenceManager, this, 9356, &_globals->_player, &_object2, 0); } } else { @@ -592,22 +598,22 @@ void Scene9350::postInit(SceneObjectList *OwnerList) { if (_globals->_sceneManager._previousScene == 9360) { _globals->_player.disableControl(); - _field30A = 9352; + _sceneState = 9352; setAction(&_sequenceManager, this, 9352, &_globals->_player, &_object2, 0); } else if (_globals->_sceneManager._previousScene == 9400) { _globals->_player.disableControl(); - _field30A = 9353; + _sceneState = 9353; setAction(&_sequenceManager, this, 9353, &_globals->_player, &_object2, 0); } else { if (!_globals->getFlag(84)) { _globals->clearFlag(84); _object2.postInit(); _globals->_player.disableControl(); - _field30A = 9359; + _sceneState = 9359; setAction(&_sequenceManager, this, 9359, &_globals->_player, &_object2, 0); } else { _globals->_player.disableControl(); - _field30A = 9354; + _sceneState = 9354; setAction(&_sequenceManager, this, 9354, &_globals->_player, &_object2, 0); } } diff --git a/engines/tsage/ringworld_scenes10.h b/engines/tsage/ringworld_scenes10.h index f5d1d00090..dd305f4f6f 100644 --- a/engines/tsage/ringworld_scenes10.h +++ b/engines/tsage/ringworld_scenes10.h @@ -35,6 +35,17 @@ namespace tSage { +class Scene2: public Scene { +public : + int _sceneState; + + Scene2(); + virtual void synchronise(Serialiser &s) { + Scene::synchronise(s); + s.syncAsSint16LE(_sceneState); + } +}; + class Scene9100: public Scene { /* Items */ class SceneHotspot1: public SceneHotspot_3 { @@ -61,7 +72,7 @@ class Scene9100: public Scene { virtual void dispatch(); }; -class Scene9150: public Scene { +class Scene9150: public Scene2 { class Object3: public SceneObject4 { public: virtual void signal(); @@ -73,7 +84,6 @@ class Scene9150: public Scene { SceneObject _object1; SceneObject _object2; Object3 _object3; - int _field30A; SceneHotspot_3 _sceneHotspot1; SceneHotspot_3 _sceneHotspot2; SceneHotspot_3 _sceneHotspot3; @@ -90,7 +100,7 @@ class Scene9150: public Scene { virtual void dispatch(); }; -class Scene9200: public Scene { +class Scene9200: public Scene2 { class SceneHotspot1: public SceneHotspot_3{ public: virtual void doAction(int action); @@ -100,7 +110,6 @@ class Scene9200: public Scene { SceneObject _object1; SceneObject _object2; SceneObject _object3; - int _field30A; Action _action1; SpeakerGText _speakerGText; SpeakerGR _speakerGR; @@ -144,7 +153,7 @@ class Scene9300: public Scene { virtual void dispatch(); }; -class Scene9350: public Scene { +class Scene9350: public Scene2 { /* Objects */ class Object1: public SceneObject { public: @@ -153,7 +162,6 @@ class Scene9350: public Scene { }; public: - int _field30A; SequenceManager _sequenceManager; Object1 _object1; SceneObject _object2; @@ -168,8 +176,7 @@ public: virtual void dispatch(); }; -class Scene9700: public Scene { - int _field30A; +class Scene9700: public Scene2 { SequenceManager _sequenceManager; SceneObject _object1; SceneHotspot_3 _sceneHotspot1; |