aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tsage')
-rw-r--r--engines/tsage/core.cpp33
-rw-r--r--engines/tsage/core.h10
-rw-r--r--engines/tsage/ringworld_scenes10.cpp33
-rw-r--r--engines/tsage/ringworld_scenes10.h12
-rw-r--r--engines/tsage/ringworld_scenes5.cpp41
-rw-r--r--engines/tsage/ringworld_scenes5.h18
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);
};