aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/scene.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/saga/scene.cpp')
-rw-r--r--engines/saga/scene.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/engines/saga/scene.cpp b/engines/saga/scene.cpp
index 9b7e7fb331..84d1b45114 100644
--- a/engines/saga/scene.cpp
+++ b/engines/saga/scene.cpp
@@ -477,6 +477,7 @@ void Scene::changeScene(int16 sceneNumber, int actorsEntrance, SceneTransitionTy
if (sceneNumber != -2) {
endScene();
}
+
loadScene(&sceneParams);
}
@@ -567,6 +568,8 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
event.time = 0;
_vm->_events->queue(&event);
+ _chapterPointsChanged = false;
+
if ((_vm->getGameType() == GType_IHNM) && (loadSceneParams->chapter != NO_CHAPTER_CHANGE)) {
if (loadSceneParams->loadFlag != kLoadBySceneNumber) {
error("loadScene wrong usage");
@@ -1209,6 +1212,26 @@ void Scene::endScene() {
}
+void Scene::restoreScene() {
+ // There is no implementation for tiled scenes, since this function is only used
+ // in IHNM, which has no tiled scenes
+
+ Event event;
+
+ _vm->_gfx->showCursor(false);
+ _vm->_gfx->restorePalette();
+
+ event.type = kEvTImmediate;
+ event.code = kBgEvent;
+ event.op = kEventDisplay;
+ event.param = kEvPNoSetPalette;
+ event.time = 0;
+ event.duration = 0;
+ _vm->_events->queue(&event);
+
+ _vm->_gfx->showCursor(true);
+}
+
void Scene::cmdSceneChange(int argc, const char **argv) {
int scene_num = 0;