aboutsummaryrefslogtreecommitdiff
path: root/saga/scene.cpp
diff options
context:
space:
mode:
authorAndrew Kurushin2005-01-28 19:25:41 +0000
committerAndrew Kurushin2005-01-28 19:25:41 +0000
commitaeaf728dc662b80b6f6e377db67ddb3ac4f9cacb (patch)
tree361c787df776d5a7a8e6af3ea409c7db78d4c01b /saga/scene.cpp
parentada210b673af7bc579c1d53864cfb9b288447e44 (diff)
downloadscummvm-rg350-aeaf728dc662b80b6f6e377db67ddb3ac4f9cacb.tar.gz
scummvm-rg350-aeaf728dc662b80b6f6e377db67ddb3ac4f9cacb.tar.bz2
scummvm-rg350-aeaf728dc662b80b6f6e377db67ddb3ac4f9cacb.zip
partialy implemented all Iso mode resource loading
todo: loadMulti - may be wrong svn-id: r16670
Diffstat (limited to 'saga/scene.cpp')
-rw-r--r--saga/scene.cpp59
1 files changed, 33 insertions, 26 deletions
diff --git a/saga/scene.cpp b/saga/scene.cpp
index a9a1500e45..131460697e 100644
--- a/saga/scene.cpp
+++ b/saga/scene.cpp
@@ -729,8 +729,7 @@ int Scene::loadSceneResourceList(uint32 reslist_rn) {
_resList = (SCENE_RESLIST *)calloc(_resListEntries, sizeof(*_resList));
if (_resList == NULL) {
- warning("Scene::loadSceneResourceList(): Error: Memory allocation failed");
- return MEM;
+ memoryError("Scene::loadSceneResourceList()");
}
// Load scene resource list from raw scene
@@ -794,8 +793,8 @@ int Scene::processSceneResources() {
&_bgMask.buf_len, &_bgMask.w, &_bgMask.h);
debug(0, "BACKGROUND MASK width=%d height=%d length=%d", _bgMask.w, _bgMask.h, _bgMask.buf_len);
break;
- case SAGA_SCENE_NAME_LIST:
- debug(0, "Loading scene name list resource...");
+ case SAGA_STRINGS:
+ debug(0, "Loading scene strings resource...");
_vm->loadStrings(_sceneStrings, _resList[i].res_data, _resList[i].res_data_len);
break;
case SAGA_OBJECT_MAP:
@@ -806,43 +805,42 @@ int Scene::processSceneResources() {
debug(0, "Loading action map resource...");
_actionMap->load(res_data, res_data_len);
break;
- case SAGA_ISO_TILESET:
+ case SAGA_ISO_IMAGES:
if (!(_vm->_scene->getFlags() & kSceneFlagISO)) {
- warning("Scene::ProcessSceneResources(): Isometric tileset incompatible with normal scene mode");
- return FAILURE;
+ error("Scene::ProcessSceneResources(): not Iso mode");
}
- debug(0, "Loading isometric tileset resource.");
+ debug(0, "Loading isometric images resource.");
- if (_vm->_isoMap->loadTileset(res_data, res_data_len) != SUCCESS) {
- warning("Scene::ProcessSceneResources(): Error loading isometric tileset resource");
- return FAILURE;
- }
+ _vm->_isoMap->loadImages(res_data, res_data_len);
break;
- case SAGA_ISO_METAMAP:
+ case SAGA_ISO_MAP:
if (!(_vm->_scene->getFlags() & kSceneFlagISO)) {
- error("Scene::ProcessSceneResources(): Isometric metamap incompatible with normal scene mode");
+ error("Scene::ProcessSceneResources(): not Iso mode");
}
- debug(0, "Loading isometric metamap resource.");
+ debug(0, "Loading isometric map resource.");
- if (_vm->_isoMap->loadMetamap(res_data, res_data_len) != SUCCESS) {
- warning("Scene::ProcessSceneResources(): Error loading isometric metamap resource");
- return FAILURE;
- }
+ _vm->_isoMap->loadMap(res_data, res_data_len);
break;
- case SAGA_ISO_METATILESET:
+ case SAGA_ISO_PLATFORMS:
if (!(_vm->_scene->getFlags() & kSceneFlagISO)) {
- error("Scene::ProcessSceneResources(): Isometric metatileset incompatible with normal scene mode");
+ error("Scene::ProcessSceneResources(): not Iso mode");
}
- debug(0, "Loading isometric metatileset resource.");
+ debug(0, "Loading isometric platforms resource.");
- if (_vm->_isoMap->loadMetaTileset(res_data, res_data_len) != SUCCESS) {
- warning("Scene::ProcessSceneResources(): Error loading isometric tileset resource");
- return FAILURE;
- }
+ _vm->_isoMap->loadPlatforms(res_data, res_data_len);
break;
+ case SAGA_ISO_METATILES:
+ if (!(_vm->_scene->getFlags() & kSceneFlagISO)) {
+ error("Scene::ProcessSceneResources(): not Iso mode");
+ }
+
+ debug(0, "Loading isometric metatiles resource.");
+
+ _vm->_isoMap->loadMetaTiles(res_data, res_data_len);
+ break;
case SAGA_ANIM_1:
case SAGA_ANIM_2:
case SAGA_ANIM_3:
@@ -870,6 +868,15 @@ int Scene::processSceneResources() {
_animEntries++;
}
break;
+ case SAGA_ISO_MULTI:
+ if (!(_vm->_scene->getFlags() & kSceneFlagISO)) {
+ error("Scene::ProcessSceneResources(): not Iso mode");
+ }
+
+ debug(0, "Loading isometric multi resource.");
+
+ _vm->_isoMap->loadMulti(res_data, res_data_len);
+ break;
case SAGA_PAL_ANIM:
debug(0, "Loading palette animation resource.");
_vm->_palanim->loadPalAnim(_resList[i].res_data, _resList[i].res_data_len);