aboutsummaryrefslogtreecommitdiff
path: root/saga/scene.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2005-04-21 01:30:07 +0000
committerEugene Sandulenko2005-04-21 01:30:07 +0000
commit283a9f35ac294fa10105c7d8c18b57d7a2689e19 (patch)
treed1d35de8ff26764c87f36d3b7fa6adf3e34cb048 /saga/scene.cpp
parent7b93b0e079456018fdbc59e780925103ee345ca9 (diff)
downloadscummvm-rg350-283a9f35ac294fa10105c7d8c18b57d7a2689e19.tar.gz
scummvm-rg350-283a9f35ac294fa10105c7d8c18b57d7a2689e19.tar.bz2
scummvm-rg350-283a9f35ac294fa10105c7d8c18b57d7a2689e19.zip
Add not yet correctly working save/load. Use key F7 for saving
and F8 for loading. Now works only within current scene and restores to entrance #0 which is wrong. svn-id: r17726
Diffstat (limited to 'saga/scene.cpp')
-rw-r--r--saga/scene.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/saga/scene.cpp b/saga/scene.cpp
index c03263fb37..2c0b0b5b0a 100644
--- a/saga/scene.cpp
+++ b/saga/scene.cpp
@@ -581,6 +581,13 @@ int Scene::loadScene(int scene_num, int load_flag, SCENE_PROC scene_proc, SceneD
return FAILURE;
}
+ if (_desc.flags & kSceneFlagISO) {
+ _outsetSceneNumber = _sceneNumber;
+ } else {
+ if (!(_bg.w < _vm->getDisplayWidth() || _bg.h < _vm->getSceneHeight()))
+ _outsetSceneNumber = _sceneNumber;
+ }
+
_sceneLoaded = true;
q_event = NULL;
@@ -875,7 +882,7 @@ int Scene::processSceneResources() {
_actionMap->load(res_data, res_data_len);
break;
case SAGA_ISO_IMAGES:
- if (!(_vm->_scene->getFlags() & kSceneFlagISO)) {
+ if (!(_desc.flags & kSceneFlagISO)) {
error("Scene::ProcessSceneResources(): not Iso mode");
}
@@ -884,7 +891,7 @@ int Scene::processSceneResources() {
_vm->_isoMap->loadImages(res_data, res_data_len);
break;
case SAGA_ISO_MAP:
- if (!(_vm->_scene->getFlags() & kSceneFlagISO)) {
+ if (!(_desc.flags & kSceneFlagISO)) {
error("Scene::ProcessSceneResources(): not Iso mode");
}
@@ -893,7 +900,7 @@ int Scene::processSceneResources() {
_vm->_isoMap->loadMap(res_data, res_data_len);
break;
case SAGA_ISO_PLATFORMS:
- if (!(_vm->_scene->getFlags() & kSceneFlagISO)) {
+ if (!(_desc.flags & kSceneFlagISO)) {
error("Scene::ProcessSceneResources(): not Iso mode");
}
@@ -902,7 +909,7 @@ int Scene::processSceneResources() {
_vm->_isoMap->loadPlatforms(res_data, res_data_len);
break;
case SAGA_ISO_METATILES:
- if (!(_vm->_scene->getFlags() & kSceneFlagISO)) {
+ if (!(_desc.flags & kSceneFlagISO)) {
error("Scene::ProcessSceneResources(): not Iso mode");
}
@@ -938,7 +945,7 @@ int Scene::processSceneResources() {
}
break;
case SAGA_ISO_MULTI:
- if (!(_vm->_scene->getFlags() & kSceneFlagISO)) {
+ if (!(_desc.flags & kSceneFlagISO)) {
error("Scene::ProcessSceneResources(): not Iso mode");
}
@@ -973,7 +980,7 @@ int Scene::draw(SURFACE *dst_s) {
_vm->_render->getBufferInfo(&buf_info);
- if (_vm->_scene->getFlags() & kSceneFlagISO) {
+ if (_desc.flags & kSceneFlagISO) {
_vm->_isoMap->adjustScroll(false);
_vm->_isoMap->draw(dst_s);
} else {