[Scummvm-cvs-logs] CVS: scummvm/saga ihnm_introproc.cpp,1.45,1.46 scene.cpp,1.124,1.125 scene.h,1.65,1.66
Andrew Kurushin
h00ligan at users.sourceforge.net
Mon Jul 25 10:36:02 CEST 2005
Update of /cvsroot/scummvm/scummvm/saga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16670
Modified Files:
ihnm_introproc.cpp scene.cpp scene.h
Log Message:
resolve scene resources without shift hack
Index: ihnm_introproc.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/ihnm_introproc.cpp,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- ihnm_introproc.cpp 19 Jul 2005 19:05:44 -0000 1.45
+++ ihnm_introproc.cpp 25 Jul 2005 17:35:29 -0000 1.46
@@ -36,8 +36,8 @@
namespace Saga {
SceneResourceData IHNM_IntroMovie1RL[] = {
- {30, SAGA_BG_IMAGE, 0, 0, false} ,
- {31, SAGA_ANIM_1, 0, 0, false}
+ {30, 2, 0, 0, false} ,
+ {31, 14, 0, 0, false}
};
SceneDescription IHNM_IntroMovie1Desc = {
@@ -47,8 +47,8 @@
};
SceneResourceData IHNM_IntroMovie2RL[] = {
- {32, SAGA_BG_IMAGE, 0, 0, false} ,
- {33, SAGA_ANIM_1, 0, 0, false}
+ {32, 2, 0, 0, false} ,
+ {33, 14, 0, 0, false}
};
SceneDescription IHNM_IntroMovie2Desc = {
@@ -58,8 +58,8 @@
};
SceneResourceData IHNM_IntroMovie3RL[] = {
- {34, SAGA_BG_IMAGE, 0, 0, false},
- {35, SAGA_ANIM_1, 0, 0, false}
+ {34, 2, 0, 0, false},
+ {35, 14, 0, 0, false}
};
SceneDescription IHNM_IntroMovie3Desc = {
@@ -69,8 +69,8 @@
};
SceneResourceData IHNM_IntroMovie4RL[] = {
- {1227, SAGA_BG_IMAGE, 0, 0, false},
- {1226, SAGA_ANIM_1, 0, 0, false}
+ {1227, 2, 0, 0, false},
+ {1226, 14, 0, 0, false}
};
SceneDescription IHNM_IntroMovie4Desc = {
Index: scene.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.cpp,v
retrieving revision 1.124
retrieving revision 1.125
diff -u -d -r1.124 -r1.125
--- scene.cpp 25 Jul 2005 02:38:43 -0000 1.124
+++ scene.cpp 25 Jul 2005 17:35:35 -0000 1.125
@@ -47,7 +47,67 @@
namespace Saga {
static int initSceneDoors[SCENE_DOORS_MAX] = {
-0, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+ 0, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};
+
+static SAGAResourceTypes ITESceneResourceTypes[26] = {
+ SAGA_ACTOR,
+ SAGA_OBJECT,
+ SAGA_BG_IMAGE,
+ SAGA_BG_MASK,
+SAGA_UNKNOWN,
+ SAGA_STRINGS,
+ SAGA_OBJECT_MAP,
+ SAGA_ACTION_MAP,
+ SAGA_ISO_IMAGES,
+ SAGA_ISO_MAP,
+ SAGA_ISO_PLATFORMS,
+ SAGA_ISO_METATILES,
+ SAGA_ENTRY,
+SAGA_UNKNOWN,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ISO_MULTI,
+ SAGA_PAL_ANIM,
+ SAGA_FACES,
+ SAGA_PALETTE
+};
+
+static SAGAResourceTypes IHNMSceneResourceTypes[28] = {
+ SAGA_ACTOR,
+SAGA_UNKNOWN,
+ SAGA_BG_IMAGE,
+ SAGA_BG_MASK,
+SAGA_UNKNOWN,
+ SAGA_STRINGS,
+ SAGA_OBJECT_MAP,
+ SAGA_ACTION_MAP,
+ SAGA_ISO_IMAGES,
+ SAGA_ISO_MAP,
+ SAGA_ISO_PLATFORMS,
+ SAGA_ISO_METATILES,
+ SAGA_ENTRY,
+SAGA_UNKNOWN,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ANIM,
+ SAGA_ISO_MULTI,
+ SAGA_PAL_ANIM,
+ SAGA_FACES,
+ SAGA_PALETTE
};
Scene::Scene(SagaEngine *vm) : _vm(vm) {
@@ -688,7 +748,17 @@
size_t resourceDataLength;
const byte *palPointer;
size_t i;
- int resType;
+ SAGAResourceTypes *types;
+ int typesCount;
+ SAGAResourceTypes resType;
+
+ if (_vm->getGameType() == GType_IHNM) {
+ typesCount = ARRAYSIZE(IHNMSceneResourceTypes);
+ types = IHNMSceneResourceTypes;
+ } else {
+ typesCount = ARRAYSIZE(ITESceneResourceTypes);
+ types = ITESceneResourceTypes;
+ }
// Process the scene resource list
for (i = 0; i < _resourceListCount; i++) {
@@ -698,17 +768,16 @@
resourceData = _resourceList[i].buffer;
resourceDataLength = _resourceList[i].size;
- resType = _resourceList[i].resourceType;
-
- if (_vm->getGameType() == GType_IHNM) {
- // IHNM has more animation slots and so resource numbers are shifted
- // We use this trick to avoid code duplication.
- // SAGA_ANIM_X code is correctly dependent on _resourceList[i].resourceType
- if (resType > SAGA_ANIM_7)
- resType -= 3;
+ if (_resourceList[i].resourceType >= typesCount) {
+ error("Scene::processSceneResources() wrong resource type %i", _resourceList[i].resourceType);
}
+ resType = types[_resourceList[i].resourceType];
+
switch (resType) {
+ case SAGA_UNKNOWN:
+ warning("UNKNOWN resourceType %i", _resourceList[i].resourceType);
+ break;
case SAGA_ACTOR:
//for (a = actorsInScene; a; a = a->nextInScene)
// if (a->obj.figID == glist->file_id)
@@ -807,15 +876,9 @@
_vm->_isoMap->loadMetaTiles(resourceData, resourceDataLength);
break;
- case SAGA_ANIM_1:
- case SAGA_ANIM_2:
- case SAGA_ANIM_3:
- case SAGA_ANIM_4:
- case SAGA_ANIM_5:
- case SAGA_ANIM_6:
- case SAGA_ANIM_7:
+ case SAGA_ANIM:
{
- uint16 animId = _resourceList[i].resourceType - SAGA_ANIM_1;
+ uint16 animId = _resourceList[i].resourceType - 14;
debug(3, "Loading animation resource animId=%i", animId);
Index: scene.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.h,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -d -r1.65 -r1.66
--- scene.h 25 Jul 2005 02:38:43 -0000 1.65
+++ scene.h 25 Jul 2005 17:35:35 -0000 1.66
@@ -59,32 +59,24 @@
// Resource type numbers
enum SAGAResourceTypes {
- SAGA_ACTOR = 0,
- SAGA_OBJECT = 1,
- SAGA_BG_IMAGE = 2,
- SAGA_BG_MASK = 3,
- SAGA_STRINGS = 5,
- SAGA_OBJECT_MAP = 6,
- SAGA_ACTION_MAP = 7,
- SAGA_ISO_IMAGES = 8,
- SAGA_ISO_MAP = 9,
- SAGA_ISO_PLATFORMS = 10,
- SAGA_ISO_METATILES = 11,
- SAGA_ENTRY = 12,
- SAGA_ANIM_1 = 14,
- SAGA_ANIM_2,
- SAGA_ANIM_3,
- SAGA_ANIM_4,
- SAGA_ANIM_5,
- SAGA_ANIM_6,
- SAGA_ANIM_7,
- //SAGA_ANIM_8, // IHNM. We use trick to avoid code duplication
- //SAGA_ANIM_9,
- //SAGA_ANIM_10,
- SAGA_ISO_MULTI = 22,
- SAGA_PAL_ANIM = 23,
- SAGA_FACES = 24,
- SAGA_PALETTE = 25
+ SAGA_UNKNOWN,
+ SAGA_ACTOR,
+ SAGA_OBJECT,
+ SAGA_BG_IMAGE,
+ SAGA_BG_MASK,
+ SAGA_STRINGS,
+ SAGA_OBJECT_MAP,
+ SAGA_ACTION_MAP,
+ SAGA_ISO_IMAGES,
+ SAGA_ISO_MAP,
+ SAGA_ISO_PLATFORMS,
+ SAGA_ISO_METATILES,
+ SAGA_ENTRY,
+ SAGA_ANIM,
+ SAGA_ISO_MULTI,
+ SAGA_PAL_ANIM,
+ SAGA_FACES,
+ SAGA_PALETTE
};
#define SAGA_RESLIST_ENTRY_LEN 4
More information about the Scummvm-git-logs
mailing list