aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/ringworld_scenes3.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2011-05-15 22:30:13 +1000
committerPaul Gilbert2011-05-15 22:30:13 +1000
commitb63e60666fe06001eabdc41cbb2439a119fa37b9 (patch)
treef77b65c939fc74e0d762441075a27b60d08ed2e2 /engines/tsage/ringworld_scenes3.cpp
parent38d787676fbf904069c88cd015ee6c47d451b14b (diff)
downloadscummvm-rg350-b63e60666fe06001eabdc41cbb2439a119fa37b9.tar.gz
scummvm-rg350-b63e60666fe06001eabdc41cbb2439a119fa37b9.tar.bz2
scummvm-rg350-b63e60666fe06001eabdc41cbb2439a119fa37b9.zip
TSAGE: Ensured all scenes with custom data properly save it in the savegames
Diffstat (limited to 'engines/tsage/ringworld_scenes3.cpp')
-rw-r--r--engines/tsage/ringworld_scenes3.cpp40
1 files changed, 24 insertions, 16 deletions
diff --git a/engines/tsage/ringworld_scenes3.cpp b/engines/tsage/ringworld_scenes3.cpp
index faa04319d6..5ec21c57ce 100644
--- a/engines/tsage/ringworld_scenes3.cpp
+++ b/engines/tsage/ringworld_scenes3.cpp
@@ -1955,6 +1955,12 @@ void Scene2100::signal() {
}
}
+void Scene2100::synchronize(Serializer &s) {
+ Scene::synchronize(s);
+ if (s.getVersion() >= 3)
+ s.syncAsSint16LE(_field1800);
+}
+
/*--------------------------------------------------------------------------
* Scene 2120 - Encyclopedia
*
@@ -2161,12 +2167,19 @@ void Scene2120::Action1::dispatch() {
/*--------------------------------------------------------------------------*/
+Scene2120::Scene2120(): Scene() {
+ _listRect = Rect(18, 48, 260, 177);
+ _dbMode = 0;
+ _prevDbMode = 0;
+ _visageVisable = false;
+ _subjectIndex = 0;
+}
+
void Scene2120::postInit(SceneObjectList *OwnerList) {
loadScene(2120);
setZoomPercents(0, 100, 200, 100);
_globals->_player.disableControl();
- _listRect = Rect(18, 48, 260, 177);
_subjectButton.setBounds(Rect(266, 13, 320, 56));
_nextPageButton.setBounds(Rect(266, 56, 320, 98));
_previousPageButton.setBounds(Rect(266, 98, 320, 140));
@@ -2183,11 +2196,6 @@ void Scene2120::postInit(SceneObjectList *OwnerList) {
_arrowHotspot._frame = 1;
_arrowHotspot.setPosition(Common::Point(400, 200));
- _dbMode = 0;
- _prevDbMode = 0;
- _visageVisable = false;
- _subjectIndex = 0;
-
setAction(&_action1);
_globals->_sceneManager._scene->_sceneBounds.contain(_globals->_sceneManager._scene->_backgroundBounds);
_globals->_sceneOffset.x = (_globals->_sceneManager._scene->_sceneBounds.left / 160) * 160;
@@ -2469,6 +2477,8 @@ Scene2150::Scene2150() :
_hotspot8(16, CURSOR_LOOK, 2150, 8, LIST_END),
_hotspot9(0, CURSOR_LOOK, 2150, 9, CURSOR_USE, 2150, 13, LIST_END),
_hotspot11(0, CURSOR_LOOK, 2150, 12, LIST_END) {
+ _rect1 = Rect(260, 70, 270, 77);
+ _rect2 = Rect(222, 142, 252, 150);
}
void Scene2150::postInit(SceneObjectList *OwnerList) {
@@ -2519,9 +2529,6 @@ void Scene2150::postInit(SceneObjectList *OwnerList) {
_hotspot10.setStrip(5);
_hotspot10.setPosition(Common::Point(59, 56));
- _rect1 = Rect(260, 70, 270, 77);
- _rect2 = Rect(222, 142, 252, 150);
-
_globals->_player.postInit();
_globals->_player.setVisage(_globals->getFlag(13) ? 2170 : 0);
_globals->_player.animate(ANIM_MODE_1, NULL);
@@ -4849,6 +4856,14 @@ Scene2310::Scene2310() {
_pageList[18].set(18, 2, 3, 0, 1, 4);
_pageList[19].set(19, 3, 0, 1, 4, 2);
_pageList[20].set(20, 4, 0, 3, 1, 2);
+
+ _rectList[0].set(135, 70, 151, 140);
+ _rectList[1].set(151, 70, 167, 140);
+ _rectList[2].set(167, 70, 183, 140);
+ _rectList[3].set(183, 70, 199, 140);
+ _rectList[4].set(199, 70, 215, 140);
+
+ _wireIndex = 5;
}
void Scene2310::postInit(SceneObjectList *OwnerList) {
@@ -4865,16 +4880,9 @@ void Scene2310::postInit(SceneObjectList *OwnerList) {
_wireList[idx].setPosition(pointList[idx]);
}
- _rectList[0].set(135, 70, 151, 140);
- _rectList[1].set(151, 70, 167, 140);
- _rectList[2].set(167, 70, 183, 140);
- _rectList[3].set(183, 70, 199, 140);
- _rectList[4].set(199, 70, 215, 140);
-
_globals->_player.disableControl();
_globals->_events.setCursor(CURSOR_WALK);
- _wireIndex = 5;
if (_vm->getFeatures() & GF_CD)
_pageIndex = _globals->_randomSource.getRandomNumber(14) + 2;
else