diff options
-rw-r--r-- | engines/tsage/core.cpp | 33 | ||||
-rw-r--r-- | engines/tsage/core.h | 10 | ||||
-rw-r--r-- | engines/tsage/ringworld_scenes10.cpp | 33 | ||||
-rw-r--r-- | engines/tsage/ringworld_scenes10.h | 12 | ||||
-rw-r--r-- | engines/tsage/ringworld_scenes5.cpp | 41 | ||||
-rw-r--r-- | engines/tsage/ringworld_scenes5.h | 18 |
6 files changed, 53 insertions, 94 deletions
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp index e58a6ef7b0..fad8ae8be6 100644 --- a/engines/tsage/core.cpp +++ b/engines/tsage/core.cpp @@ -1568,6 +1568,39 @@ void SceneHotspot::doAction(int action) { /*--------------------------------------------------------------------------*/ +void NamedHotspot::doAction(int action) { + switch (action) { + case CURSOR_WALK: + // Nothing + break; + case CURSOR_LOOK: + if (_lookLineNum == -1) + SceneHotspot::doAction(action); + else + SceneItem::display(_resnum, _lookLineNum, SET_Y, 20, SET_WIDTH, 200, SET_EXT_BGCOLOUR, 7, LIST_END); + break; + case CURSOR_USE: + if (_useLineNum == -1) + SceneHotspot::doAction(action); + else + SceneItem::display(_resnum, _useLineNum, SET_Y, 20, SET_WIDTH, 200, SET_EXT_BGCOLOUR, 7, LIST_END); + break; + default: + SceneHotspot::doAction(action); + break; + } +} + +void NamedHotspot::quickInit(const int ys, const int xe, const int ye, const int xs, const int resnum, const int lookLineNum, const int useLineNum) { + setBounds(ys, xe, ye, xs); + _resnum = resnum; + _lookLineNum = lookLineNum; + _useLineNum = useLineNum; + _globals->_sceneItems.addItems(this, NULL); +} + +/*--------------------------------------------------------------------------*/ + void SceneObjectWrapper::setSceneObject(SceneObject *so) { _sceneObject = so; so->_strip = 1; diff --git a/engines/tsage/core.h b/engines/tsage/core.h index b37d576b4e..27079dd963 100644 --- a/engines/tsage/core.h +++ b/engines/tsage/core.h @@ -439,6 +439,16 @@ public: virtual void doAction(int action); }; +class NamedHotspot: public SceneHotspot { +public: + int _resnum, _lookLineNum, _useLineNum; + NamedHotspot(): SceneHotspot() {} + + void quickInit(const int ys, const int xe, const int ye, const int xs, const int resnum, const int lookLineNum, const int useLineNum); + virtual void doAction(int action); + virtual Common::String getClassName() { return "NamedHotspot"; } +}; + class SceneHotspot_2: public SceneHotspot { public: int _field26, _field28; diff --git a/engines/tsage/ringworld_scenes10.cpp b/engines/tsage/ringworld_scenes10.cpp index 493b8dc85a..12e69a7011 100644 --- a/engines/tsage/ringworld_scenes10.cpp +++ b/engines/tsage/ringworld_scenes10.cpp @@ -38,39 +38,6 @@ Scene2::Scene2() { /*--------------------------------------------------------------------------*/ -void NamedHotspot::doAction(int action) { - switch (action) { - case CURSOR_WALK: - // Nothing - break; - case CURSOR_LOOK: - if (_lookLineNum == -1) - SceneHotspot::doAction(action); - else - SceneItem::display(_resnum, _lookLineNum, SET_Y, 20, SET_WIDTH, 200, SET_EXT_BGCOLOUR, 7, LIST_END); - break; - case CURSOR_USE: - if (_useLineNum == -1) - SceneHotspot::doAction(action); - else - SceneItem::display(_resnum, _useLineNum, SET_Y, 20, SET_WIDTH, 200, SET_EXT_BGCOLOUR, 7, LIST_END); - break; - default: - SceneHotspot::doAction(action); - break; - } -} - -void NamedHotspot::quickInit(const int ys, const int xe, const int ye, const int xs, const int resnum, const int lookLineNum, const int useLineNum) { - setBounds(ys, xe, ye, xs); - _resnum = resnum; - _lookLineNum = lookLineNum; - _useLineNum = useLineNum; - _globals->_sceneItems.addItems(this, NULL); -} - -/*--------------------------------------------------------------------------*/ - void Object9350::postInit(SceneObjectList *OwnerList) { _globals->_sceneManager.postInit(&_globals->_sceneManager._altSceneObjects); } diff --git a/engines/tsage/ringworld_scenes10.h b/engines/tsage/ringworld_scenes10.h index 857ee94c80..00b524f7c8 100644 --- a/engines/tsage/ringworld_scenes10.h +++ b/engines/tsage/ringworld_scenes10.h @@ -46,16 +46,6 @@ public : } }; -class NamedHotspot: public SceneHotspot { -public: - int _resnum, _lookLineNum, _useLineNum; - NamedHotspot(): SceneHotspot() {} - - void quickInit(const int ys, const int xe, const int ye, const int xs, const int resnum, const int lookLineNum, const int useLineNum); - virtual void doAction(int action); - virtual Common::String getClassName() { return "NamedHotspot"; } -}; - class Object9350: public SceneObject { public: virtual void postInit(SceneObjectList *OwnerList = NULL); @@ -132,7 +122,7 @@ public: SpeakerQText _speakerQText; SoundHandler _soundHandler; SceneHotspot1 _hotspot1; - NamedHotspot _hotspot2; + NamedHotspot _hotspot2; NamedHotspot _hotspot3; NamedHotspot _hotspot4; NamedHotspot _hotspot5; diff --git a/engines/tsage/ringworld_scenes5.cpp b/engines/tsage/ringworld_scenes5.cpp index fad83cdcf8..d39029f6f8 100644 --- a/engines/tsage/ringworld_scenes5.cpp +++ b/engines/tsage/ringworld_scenes5.cpp @@ -3743,37 +3743,6 @@ void Scene4300::Action2::signal() { /*--------------------------------------------------------------------------*/ -void HotspotBase4300::doAction(int action) { - switch (action) { - case CURSOR_WALK: - break; - case CURSOR_LOOK: - if (_lookLine != -1) - SceneItem::display2(_resNum, _lookLine); - else - SceneHotspot::doAction(action); - break; - case CURSOR_USE: - if (_useLine != -1) - SceneItem::display2(_resNum, _useLine); - else - SceneHotspot::doAction(action); - break; - default: - SceneHotspot::doAction(action); - break; - } -} - -void HotspotBase4300::setup(const Rect &bounds, int resNum, int lookLine, int useLine) { - SceneHotspot::setBounds(bounds); - _resNum = resNum; - _lookLine = lookLine; - _useLine = useLine; - - _globals->_sceneItems.push_back(this); -} - void Scene4300::Hotspot8::doAction(int action) { switch (action) { case CURSOR_LOOK: @@ -3829,7 +3798,7 @@ void Scene4300::Hotspot9::doAction(int action) { SceneItem::display2(4300, 23); break; default: - HotspotBase4300::doAction(action); + NamedHotspot::doAction(action); break; } } @@ -3981,7 +3950,7 @@ void Scene4300::postInit(SceneObjectList *OwnerList) { _stripManager.addSpeaker(&_speakerMText); _stripManager.addSpeaker(&_speakerFLText); - _hotspot11.setup(Rect(76, 97, 102, 127), 4300, 5, 6); + _hotspot11.quickInit(76, 97, 102, 127, 4300, 5, 6); _hotspot7.postInit(); _hotspot7.setPosition(Common::Point(90, 128)); @@ -3989,7 +3958,7 @@ void Scene4300::postInit(SceneObjectList *OwnerList) { _hotspot7.setPriority2(250); _globals->_sceneItems.push_back(&_hotspot7); - _hotspot9.setup(Rect(120, 49, 174, 91), 4300, -1, -1); + _hotspot9.quickInit(120, 49, 174, 91, 4300, -1, -1); _hotspot15.postInit(); _hotspot15.setVisage(4300); @@ -4324,7 +4293,7 @@ void Scene4301::Hotspot4::doAction(int action) { _globals->_player.disableControl(); scene->setAction(&scene->_action1); } else { - HotspotBase4300::doAction(action); + NamedHotspot::doAction(action); } } @@ -4358,7 +4327,7 @@ void Scene4301::postInit(SceneObjectList *OwnerList) { _field68E = false; _globals->_inventory._stasisBox2._sceneNumber = 1; - _hotspot4.setup(Rect(76, 97, 102, 127), 4300, 5, 6); + _hotspot4.quickInit(76, 97, 102, 127, 4300, 5, 6); _hotspot1.postInit(); _hotspot1.setPosition(Common::Point(90, 128)); diff --git a/engines/tsage/ringworld_scenes5.h b/engines/tsage/ringworld_scenes5.h index fd7751af27..e9ad5b62cb 100644 --- a/engines/tsage/ringworld_scenes5.h +++ b/engines/tsage/ringworld_scenes5.h @@ -574,16 +574,6 @@ public: virtual void dispatch(); }; -class HotspotBase4300: public SceneObject { -public: - int _resNum; - int _lookLine, _useLine; - - virtual void doAction(int action); - - void setup(const Rect &bounds, int resNum, int lookLine, int useLine); -}; - class Scene4300: public Scene { /* Actions */ class Action1: public Action { @@ -600,7 +590,7 @@ class Scene4300: public Scene { public: virtual void doAction(int action); }; - class Hotspot9: public HotspotBase4300 { + class Hotspot9: public NamedHotspot { public: virtual void doAction(int action); }; @@ -638,7 +628,7 @@ public: Hotspot8 _hotspot8; Hotspot9 _hotspot9; Hotspot10 _hotspot10; - HotspotBase4300 _hotspot11; + NamedHotspot _hotspot11; SceneObject _hotspot12, _hotspot13, _hotspot14; Hotspot15 _hotspot15; Hotspot16 _hotspot16; @@ -672,11 +662,11 @@ class Scene4301: public Scene { }; /* Hotspots */ - class Hotspot4: public HotspotBase4300 { + class Hotspot4: public NamedHotspot { public: virtual void doAction(int action); }; - class Hotspot5: public HotspotBase4300 { + class Hotspot5: public NamedHotspot { public: virtual void doAction(int action); }; |