diff options
author | Eugene Sandulenko | 2005-04-21 01:30:07 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2005-04-21 01:30:07 +0000 |
commit | 283a9f35ac294fa10105c7d8c18b57d7a2689e19 (patch) | |
tree | d1d35de8ff26764c87f36d3b7fa6adf3e34cb048 /saga/scene.cpp | |
parent | 7b93b0e079456018fdbc59e780925103ee345ca9 (diff) | |
download | scummvm-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.cpp | 19 |
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 { |