[Scummvm-cvs-logs] CVS: scummvm/saga actor.cpp,1.161,1.162 game.cpp,1.90,1.91 interface.h,1.67,1.68 resnames.h,1.34,1.35 rscfile.cpp,1.30,1.31 rscfile.h,1.16,1.17 saga.cpp,1.124,1.125 scene.cpp,1.135,1.136 scene.h,1.68,1.69 script.h,1.100,1.101
Eugene Sandulenko
sev at users.sourceforge.net
Fri Aug 5 16:15:20 CEST 2005
- Previous message: [Scummvm-cvs-logs] CVS: scummvm README,1.330,1.331
- Next message: [Scummvm-cvs-logs] CVS: scummvm/saga game.cpp,1.91,1.92 ihnm_introproc.cpp,1.48,1.49 ite_introproc.cpp,1.63,1.64 scene.cpp,1.136,1.137 scene.h,1.69,1.70
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/saga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10239
Modified Files:
actor.cpp game.cpp interface.h resnames.h rscfile.cpp
rscfile.h saga.cpp scene.cpp scene.h script.h
Log Message:
o Some cleanup
o Fix warnings
o Implemented IHNM changeChapter()
o WIP for metaResources
Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.cpp,v
retrieving revision 1.161
retrieving revision 1.162
diff -u -d -r1.161 -r1.162
--- actor.cpp 29 Jul 2005 17:57:40 -0000 1.161
+++ actor.cpp 5 Aug 2005 23:14:09 -0000 1.162
@@ -577,7 +577,8 @@
if (actor->flags & kProtagonist) {
actor->finalTarget = actor->location;
_centerActor = _protagonist = actor;
- } else if (_vm->_scene->currentSceneResourceId() == RID_ITE_OVERMAP_SCENE) {
+ } else if (_vm->getGameType() == GType_ITE &&
+ _vm->_scene->currentSceneResourceId() == RID_ITE_OVERMAP_SCENE) {
continue;
}
Index: game.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/game.cpp,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -d -r1.90 -r1.91
--- game.cpp 4 Aug 2005 12:11:56 -0000 1.90
+++ game.cpp 5 Aug 2005 23:14:09 -0000 1.91
@@ -325,16 +325,7 @@
{"music.rsc", GAME_MUSICFILE}
};
-// Inherit the Earth - Mac Dreamers version
static GameFileDescription ITEMACCD_G_GameFiles[] = {
- {"ITE Resources", GAME_RESOURCEFILE},
- {"ITE Scripts", GAME_SCRIPTFILE},
- {"ITE Sounds", GAME_SOUNDFILE},
- {"ITE Music", GAME_MUSICFILE_GM},
- {"ITE Voices", GAME_VOICEFILE}
-};
-
-static GameFileDescription ITEMACCD2_G_GameFiles[] = {
{"ITE Resources.bin", GAME_RESOURCEFILE | GAME_MACBINARY},
{"ITE Scripts.bin", GAME_SCRIPTFILE | GAME_MACBINARY},
{"ITE Sounds.bin", GAME_SOUNDFILE | GAME_MACBINARY},
@@ -869,8 +860,8 @@
&ITE_DisplayInfo,
ITE_DEFAULT_SCENE,
&ITE_Resources,
- ARRAYSIZE(ITEMACCD2_G_GameFiles),
- ITEMACCD2_G_GameFiles,
+ ARRAYSIZE(ITEMACCD_G_GameFiles),
+ ITEMACCD_G_GameFiles,
ARRAYSIZE(ITEWINDEMO_GameFonts),
ITEWINDEMO_GameFonts,
&ITEMACCD_G_GameSound,
Index: interface.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/interface.h,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -d -r1.67 -r1.68
--- interface.h 30 Jul 2005 21:11:21 -0000 1.67
+++ interface.h 5 Aug 2005 23:14:10 -0000 1.68
@@ -69,7 +69,8 @@
kPanelProtect,
kPanelPlacard,
kPanelMap,
- kPanelSceneSubstitute
+ kPanelSceneSubstitute,
+ kPanelUnknown
// kPanelInventory
};
Index: resnames.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/resnames.h,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- resnames.h 4 Aug 2005 10:48:54 -0000 1.34
+++ resnames.h 5 Aug 2005 23:14:10 -0000 1.35
@@ -42,7 +42,9 @@
//obj names
#define ITE_OBJ_MAP 14
-#define ITE_MAGIC_HAT 0
+#define ITE_OBJ_MAGIC_HAT 0
+
+#define IHNM_OBJ_PROFILE 0x4000
//actor names
#define ITE_ACTOR_PUZZLE 176
Index: rscfile.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/rscfile.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- rscfile.cpp 4 Aug 2005 10:23:49 -0000 1.30
+++ rscfile.cpp 5 Aug 2005 23:14:10 -0000 1.31
@@ -421,4 +421,48 @@
}
}
+static int metaResourceTable[] = { 0, 326, 517, 677, 805, 968, 1165, 0, 1271 };
+
+void Resource::loadGlobalResources(int chapter, int actorsEntrance) {
+ // TODO
+ //if (module.voiceLUT)
+ // free module.voiceLUT;
+
+ // TODO: close chapeter context, or rather reassign it in our case
+
+ ResourceContext *resourceContext;
+
+ resourceContext = _vm->_resource->getContext(GAME_RESOURCEFILE);
+ if (resourceContext == NULL) {
+ error("Resource::loadGlobalResources() resource context not found");
+ }
+
+ byte *resourcePointer;
+ size_t resourceLength;
+
+ _vm->_resource->loadResource(resourceContext, metaResourceTable[chapter],
+ resourcePointer, resourceLength);
+
+ MemoryReadStream metaS(resourcePointer, resourceLength);
+
+ _metaResource.sceneIndex = metaS.readSint16LE();
+ _metaResource.obectCount = metaS.readSint16LE();
+ _metaResource.field_4 = metaS.readSint32LE();
+ _metaResource.field_8 = metaS.readSint32LE();
+ _metaResource.mainSpritesID = metaS.readSint32LE();
+ _metaResource.objectResourceID = metaS.readSint32LE();
+ _metaResource.actorCount = metaS.readSint16LE();
+ _metaResource.field_16 = metaS.readSint32LE();
+ _metaResource.actorsResourceID = metaS.readSint32LE();
+ _metaResource.protagFaceSpritesID = metaS.readSint32LE();
+ _metaResource.field_22 = metaS.readSint32LE();
+ _metaResource.field_26 = metaS.readSint16LE();
+ _metaResource.field_28 = metaS.readSint16LE();
+ _metaResource.field_2a = metaS.readSint32LE();
+ _metaResource.cutawayListResourceID = metaS.readSint32LE();
+ _metaResource.songTableID = metaS.readSint32LE();
+
+ free(resourcePointer);
+}
+
} // End of namespace Saga
Index: rscfile.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/rscfile.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- rscfile.h 4 Aug 2005 10:23:49 -0000 1.16
+++ rscfile.h 5 Aug 2005 23:14:11 -0000 1.17
@@ -89,6 +89,29 @@
}
};
+struct MetaResource {
+ int16 sceneIndex;
+ int16 obectCount;
+ int32 field_4;
+ int32 field_8;
+ int32 mainSpritesID;
+ int32 objectResourceID;
+ int16 actorCount;
+ int32 field_16;
+ int32 actorsResourceID;
+ int32 protagFaceSpritesID;
+ int32 field_22;
+ int16 field_26;
+ int16 field_28;
+ int32 field_2a;
+ int32 cutawayListResourceID;
+ int32 songTableID;
+
+ MetaResource() {
+ memset(this, 0, sizeof(*this));
+ }
+};
+
class Resource {
public:
Resource(SagaEngine *vm);
@@ -99,6 +122,8 @@
size_t getResourceSize(ResourceContext *context, uint32 resourceId);
uint32 convertResourceId(uint32 resourceId);
+ void loadGlobalResources(int chapter, int actorsEntrance);
+
ResourceContext *getContext(uint16 fileType, int serial = 0) {
int i;
for (i = 0; i < _contextsCount; i++) {
@@ -137,6 +162,7 @@
bool loadMacContext(ResourceContext *context);
bool loadSagaContext(ResourceContext *context, uint32 contextOffset, uint32 contextSize);
+ MetaResource _metaResource;
};
} // End of namespace Saga
Index: saga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saga.cpp,v
retrieving revision 1.124
retrieving revision 1.125
diff -u -d -r1.124 -r1.125
--- saga.cpp 4 Aug 2005 10:48:54 -0000 1.124
+++ saga.cpp 5 Aug 2005 23:14:11 -0000 1.125
@@ -300,7 +300,7 @@
_scene->changeScene(ConfMan.getInt("start_scene"), 0, kTransitionNoFade);
} else if (ConfMan.hasKey("boot_param")) {
if (getGameType() == GType_ITE)
- _interface->addToInventory(_actor->objIndexToId(ITE_MAGIC_HAT));
+ _interface->addToInventory(_actor->objIndexToId(ITE_OBJ_MAGIC_HAT));
_scene->changeScene(ConfMan.getInt("boot_param"), 0, kTransitionNoFade);
} else if (ConfMan.hasKey("save_slot")) {
// First scene sets up palette
Index: scene.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.cpp,v
retrieving revision 1.135
retrieving revision 1.136
diff -u -d -r1.135 -r1.136
--- scene.cpp 4 Aug 2005 14:49:03 -0000 1.135
+++ scene.cpp 5 Aug 2005 23:14:11 -0000 1.136
@@ -472,6 +472,38 @@
loadScene(&sceneParams);
}
+void Scene::changeChapter(int chapter, int16 sceneNumber, int actorsEntrance) {
+ if (chapter == 6)
+ _vm->_interface->setLeftPortrait(0);
+
+ freeCutawayList();
+ _vm->_script->freeModules();
+ // deleteAllScenes();
+
+ // installSomeAlarm()
+
+ _vm->_interface->clearInventory();
+ _vm->_resource->loadGlobalResources(chapter, actorsEntrance);
+ _vm->_interface->addToInventory(IHNM_OBJ_PROFILE);
+ _vm->_interface->activate();
+
+ if (chapter == 8 || chapter == -1)
+ _vm->_interface->setMode(kPanelUnknown);
+ else
+ _vm->_interface->setMode(kPanelMain);
+
+ _vm->_script->setVerb(kVerbIHNMWalkTo);
+
+ if (sceneNumber != -2)
+ changeScene(sceneNumber, actorsEntrance, kTransitionFade);
+}
+
+void Scene::freeCutawayList() {
+ // TODO
+ // It has to be in different class
+ warning("STUB: freeCutawayList()");
+}
+
void Scene::getSlopes(int &beginSlope, int &endSlope) {
beginSlope = _vm->getSceneHeight() - _sceneDescription.beginSlope;
endSlope = _vm->getSceneHeight() - _sceneDescription.endSlope;
@@ -675,7 +707,7 @@
q_event = _vm->_events->chain(q_event, &event);
- if (loadSceneParams->transitionType == kTransitionFade ) {
+ if (loadSceneParams->transitionType == kTransitionFade) {
_vm->_interface->setFadeMode(kFadeOut);
Index: scene.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.h,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -d -r1.68 -r1.69
--- scene.h 31 Jul 2005 12:03:03 -0000 1.68
+++ scene.h 5 Aug 2005 23:14:11 -0000 1.69
@@ -249,6 +249,8 @@
_sceneQueue.clear();
}
void changeScene(uint16 sceneNumber, int actorsEntrance, SceneTransitionType transitionType);
+ void changeChapter(int chapter, int16 sceneNumber, int actorsEntrance);
+ void freeCutawayList();
bool isSceneLoaded() const { return _sceneLoaded; }
Index: script.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/script.h,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -d -r1.100 -r1.101
--- script.h 30 Jul 2005 21:11:21 -0000 1.100
+++ script.h 5 Aug 2005 23:14:11 -0000 1.101
@@ -72,6 +72,16 @@
kVerbWalkOnly = 13,
kVerbLookOnly = 14,
+ kVerbIHNMNone = 0,
+ kVerbIHNMWalkTo = 1,
+ kVerbIHNMLookAt = 2,
+ kVerbIHNMTake = 3,
+ kVerbIHNMUse = 4,
+ kVerbIHNMTalkTo = 5,
+ kVerbIHNMSwallow = 6,
+ kVerbIHNMGive = 7,
+ kVerbIHNMPush = 8,
+
kVerbTypesMax = kVerbLookOnly + 1
};
- Previous message: [Scummvm-cvs-logs] CVS: scummvm README,1.330,1.331
- Next message: [Scummvm-cvs-logs] CVS: scummvm/saga game.cpp,1.91,1.92 ihnm_introproc.cpp,1.48,1.49 ite_introproc.cpp,1.63,1.64 scene.cpp,1.136,1.137 scene.h,1.69,1.70
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list