diff options
-rw-r--r-- | engines/tsage/core.cpp | 10 | ||||
-rw-r--r-- | engines/tsage/core.h | 2 | ||||
-rw-r--r-- | engines/tsage/globals.cpp | 1 | ||||
-rw-r--r-- | engines/tsage/ringworld_scenes1.cpp | 88 | ||||
-rw-r--r-- | engines/tsage/ringworld_scenes1.h | 10 |
5 files changed, 59 insertions, 52 deletions
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp index 9f31425620..9f20ea398f 100644 --- a/engines/tsage/core.cpp +++ b/engines/tsage/core.cpp @@ -1420,17 +1420,21 @@ void SceneItem::display(int resNum, int lineNum, ...) { break; case SET_FONT: // Set the font number - _globals->gfxManager()._font.setFontNumber(va_arg(va, int)); + _globals->_sceneText._fontNumber = va_arg(va, int); + _globals->gfxManager()._font.setFontNumber(_globals->_sceneText._fontNumber); break; case SET_BG_COLOUR: { // Set the background colour int bgColour = va_arg(va, int); _globals->gfxManager()._font._colours.background = bgColour; + if (!bgColour) + _globals->gfxManager().setFillFlag(false); break; } case SET_FG_COLOUR: // Set the foreground colour - _globals->gfxManager()._font._colours.foreground = va_arg(va, int); + _globals->_sceneText._colour1 = va_arg(va, int); + _globals->gfxManager()._font._colours.foreground = _globals->_sceneText._colour1; break; case SET_KEEP_ONSCREEN: // Suppresses immediate display @@ -2054,6 +2058,8 @@ void SceneObject::dispatch() { } else { animEnded(); } + } else { + setFrame(changeFrame()); } break; diff --git a/engines/tsage/core.h b/engines/tsage/core.h index ad8339cdab..09f648a811 100644 --- a/engines/tsage/core.h +++ b/engines/tsage/core.h @@ -395,7 +395,7 @@ public: int _yDiff; int _sceneRegionId; public: - SceneItem(): EventHandler() { _msg = "Feature"; _action = NULL; } + SceneItem(): EventHandler() { _msg = "Feature"; _action = NULL; _sceneRegionId = 0; } virtual void synchronise(Serialiser &s); virtual Common::String getClassName() { return "SceneItem"; } diff --git a/engines/tsage/globals.cpp b/engines/tsage/globals.cpp index 838b363cb2..11e8af1ffc 100644 --- a/engines/tsage/globals.cpp +++ b/engines/tsage/globals.cpp @@ -50,6 +50,7 @@ Globals::Globals(): _dialogCentre(160, 140), _gfxManagerInstance(_screenSurface) { reset(); + _stripNum = 0; _gfxFontNumber = 50; _gfxColours.background = 53; _gfxColours.foreground = 18; diff --git a/engines/tsage/ringworld_scenes1.cpp b/engines/tsage/ringworld_scenes1.cpp index b205ab20e4..9c81c1a1a4 100644 --- a/engines/tsage/ringworld_scenes1.cpp +++ b/engines/tsage/ringworld_scenes1.cpp @@ -1821,7 +1821,7 @@ void Scene50::dispatch() { } /*-------------------------------------------------------------------------- - * Scene 60 - + * Scene 60 - Flycycle controls * *--------------------------------------------------------------------------*/ @@ -1836,7 +1836,7 @@ void Scene60::Action1::signal() { scene->_object9.postInit(); scene->_object9.setVisage(60); scene->_object9.setStrip(7); - scene->_object1.setPosition(Common::Point(136, 65)); + scene->_object9.setPosition(Common::Point(136, 65)); scene->_object9.animate(ANIM_MODE_5, this); scene->_soundHandler1.startSound(35); @@ -1845,7 +1845,7 @@ void Scene60::Action1::signal() { scene->_object10.postInit(); scene->_object10.setVisage(60); scene->_object10.setPosition(Common::Point(199, 186)); - scene->_object10.animate(ANIM_MODE_8, NULL); + scene->_object10.animate(ANIM_MODE_8, 0, NULL); scene->_object10._numFrames = 5; scene->_object6.animate(ANIM_MODE_2, NULL); @@ -1874,7 +1874,7 @@ void Scene60::Action1::signal() { scene->_object10.remove(); scene->_object6.remove(); - scene->_object7.remove(); + scene->_slaveButton.remove(); scene->_object8.remove(); scene->_item1.remove(); scene->_item2.remove(); @@ -2031,10 +2031,10 @@ void Scene60::Object4::doAction(int action) { scene->_object6.setPosition(Common::Point(233, 143)); scene->_object6.animate(ANIM_MODE_2, NULL); - scene->_object7.postInit(); - scene->_object7.setVisage(60); - scene->_object7.setStrip(8); - scene->_object7.setPosition(Common::Point(143, 125)); + scene->_slaveButton.postInit(); + scene->_slaveButton.setVisage(60); + scene->_slaveButton.setStrip(8); + scene->_slaveButton.setPosition(Common::Point(143, 125)); scene->_object8.postInit(); scene->_object8.setVisage(60); @@ -2042,23 +2042,23 @@ void Scene60::Object4::doAction(int action) { scene->_object8.setPosition(Common::Point(143, 105)); _globals->_sceneItems.push_front(&scene->_object8); - _globals->_sceneItems.push_front(&scene->_object7); + _globals->_sceneItems.push_front(&scene->_slaveButton); scene->_object10.postInit(); scene->_object10.setVisage(60); scene->_object10.setPosition(Common::Point(199, 186)); - scene->_object10.animate(ANIM_MODE_8, NULL); + scene->_object10.animate(ANIM_MODE_8, 0, NULL); scene->_object10._numFrames = 5; scene->_object10.setAction(&scene->_sequenceManager, scene, 61, NULL); - if (scene->_object7._state) - scene->_object7.setFrame(2); + if (scene->_slaveButton._state) + scene->_slaveButton.setFrame(2); if (scene->_object8._state) scene->_object8.setFrame(2); _globals->_sceneItems.push_front(&scene->_item1); _globals->_sceneItems.push_front(&scene->_object6); - _globals->_sceneItems.push_front(&scene->_object7); + _globals->_sceneItems.push_front(&scene->_slaveButton); _globals->_sceneItems.push_front(&scene->_object8); _globals->_sceneItems.push_back(&scene->_item2); @@ -2094,8 +2094,8 @@ void Scene60::Object6::doAction(int action) { SceneItem::display2(60, 11); } else if (action == CURSOR_USE) { if (_animateMode == ANIM_MODE_NONE) - SceneItem::display2(50, 14); - else if (!scene->_object7._state) { + SceneItem::display2(60, 14); + else if (!scene->_slaveButton._state) { _globals->_soundHandler.startSound(40); _globals->_soundHandler.proc5(1); _globals->_sceneManager.changeScene(20); @@ -2113,13 +2113,13 @@ void Scene60::SceneObject2::synchronise(Serialiser &s) { } -void Scene60::Object7::doAction(int action) { +void Scene60::SlaveObject::doAction(int action) { Scene60 *scene = (Scene60 *)_globals->_sceneManager._scene; if (action == CURSOR_LOOK) { SceneItem::display2(60, 8); } else if (action == CURSOR_USE) { - if (!scene->_object8._state) + if (scene->_object8._state) scene->_sceneMode = 19; else if (_state) { scene->_soundHandler3.proc3(); @@ -2222,7 +2222,7 @@ void Scene60::Item1::doAction(int action) { scene->setAction(&scene->_action2); } default: - SceneItem::doAction(action); + SceneHotspot::doAction(action); break; } } @@ -2232,10 +2232,10 @@ void Scene60::Item::doAction(int action) { switch (action) { case CURSOR_LOOK: - SceneItem::display2(60, 12); + SceneItem::display2(60, _messageNum); break; case CURSOR_USE: - scene->_sceneMode = 12; + scene->_sceneMode = _sceneMode; setAction(&scene->_sequenceManager, this, 62, NULL); break; default: @@ -2263,11 +2263,11 @@ void Scene60::postInit(SceneObjectList *OwnerList) { _globals->_player._uiEnabled = true; _globals->_events.setCursor(CURSOR_USE); - _object7.postInit(); - _object7.setVisage(60); - _object7.setStrip(8); - _object7.setPosition(Common::Point(143, 125)); - _object7._state = 0; + _slaveButton.postInit(); + _slaveButton.setVisage(60); + _slaveButton.setStrip(8); + _slaveButton.setPosition(Common::Point(143, 125)); + _slaveButton._state = 0; _object8.postInit(); _object8.setVisage(60); @@ -2276,7 +2276,7 @@ void Scene60::postInit(SceneObjectList *OwnerList) { _object8._state = 0; _globals->_sceneItems.push_back(&_object8); - _globals->_sceneItems.push_back(&_object7); + _globals->_sceneItems.push_back(&_slaveButton); _object6.postInit(); _object6.setVisage(60); @@ -2297,8 +2297,8 @@ void Scene60::postInit(SceneObjectList *OwnerList) { if (_globals->_stripNum == 0) { if (_globals->getFlag(117)) { - _object7._state = 1; - _object7.setFrame(2); + _slaveButton._state = 1; + _slaveButton.setFrame(2); } if (_globals->getFlag(116)) { @@ -2312,7 +2312,7 @@ void Scene60::postInit(SceneObjectList *OwnerList) { _object10.postInit(); _object10.setVisage(60); _object10.setPosition(Common::Point(199, 186)); - _object10.animate(ANIM_MODE_8, NULL); + _object10.animate(ANIM_MODE_8, 0, NULL); _soundHandler1.startSound(35); @@ -2331,8 +2331,8 @@ void Scene60::postInit(SceneObjectList *OwnerList) { } } else { if (_globals->getFlag(120)) { - _object7._state = 1; - _object7.setFrame(2); + _slaveButton._state = 1; + _slaveButton.setFrame(2); } if (_globals->getFlag(119)) { @@ -2346,23 +2346,23 @@ void Scene60::postInit(SceneObjectList *OwnerList) { _object10.postInit(); _object10.setVisage(60); _object10.setPosition(Common::Point(199, 186)); - _object10.animate(ANIM_MODE_8, NULL); + _object10.animate(ANIM_MODE_8, 0, NULL); _object10._numFrames = 5; _soundHandler1.startSound(35); - } - if (!_globals->getFlag(83)) { - _object5.postInit(); - _object5.setVisage(60); - _object5.setStrip2(3); - _object5.setFrame(2); - _object5.setPosition(Common::Point(148, 85)); - _object5.animate(ANIM_MODE_2, NULL); - _object5._numFrames = 5; - _globals->_sceneItems.push_front(&_object5); - - _soundHandler2.startSound(38); + if (!_globals->getFlag(83)) { + _object5.postInit(); + _object5.setVisage(60); + _object5.setStrip2(3); + _object5.setFrame(2); + _object5.setPosition(Common::Point(148, 85)); + _object5.animate(ANIM_MODE_2, NULL); + _object5._numFrames = 5; + _globals->_sceneItems.push_front(&_object5); + + _soundHandler2.startSound(38); + } } } diff --git a/engines/tsage/ringworld_scenes1.h b/engines/tsage/ringworld_scenes1.h index 973cf272b6..46694efd97 100644 --- a/engines/tsage/ringworld_scenes1.h +++ b/engines/tsage/ringworld_scenes1.h @@ -363,7 +363,7 @@ class Scene60: public Scene { public: virtual void doAction(int action); }; - class Object7: public SceneObject2 { + class SlaveObject: public SceneObject2 { public: virtual void doAction(int action); }; @@ -380,11 +380,11 @@ class Scene60: public Scene { public: virtual void doAction(int action); }; - class Item1: public SceneItem { + class Item1: public SceneHotspot { public: virtual void doAction(int action); }; - class Item: public SceneItem { + class Item: public SceneHotspot { public: int _messageNum, _sceneMode; @@ -409,11 +409,11 @@ public: Object4 _object4; Object5 _object5; Object6 _object6; - Object7 _object7; + SlaveObject _slaveButton; Object8 _object8; Object9 _object9; SceneObject _object10; - SceneItem _item1; + Item1 _item1; Item _item2, _item3, _item4, _item5, _item6; SoundHandler _soundHandler1; SoundHandler _soundHandler2; |