[Scummvm-cvs-logs] CVS: scummvm/saga actor.h,1.95,1.96 rscfile.cpp,1.46,1.47 rscfile.h,1.19,1.20 saga.cpp,1.141,1.142

Torbjörn Andersson eriktorbjorn at users.sourceforge.net
Sat Oct 8 15:10:20 CEST 2005


Update of /cvsroot/scummvm/scummvm/saga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv770

Modified Files:
	actor.h rscfile.cpp rscfile.h saga.cpp 
Log Message:
Read IHNM actor and object strings from the resource file. (This does not
keep whichObject() from crashing, but I don't know why.)


Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.h,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -d -r1.95 -r1.96
--- actor.h	4 Sep 2005 17:40:16 -0000	1.95
+++ actor.h	8 Oct 2005 22:09:20 -0000	1.96
@@ -641,7 +641,6 @@
 	SagaEngine *_vm;
 	ResourceContext *_actorContext;
 
-	StringsTable _actorsStrings;
 	int _lastTickMsec;
 	CommonObjectOrderList _drawOrderList;
 
@@ -653,6 +652,9 @@
 
 	Rect _speechBoxScript;
 
+	StringsTable _objectsStrings;
+	StringsTable _actorsStrings;
+
 protected:
 	SpeechData _activeSpeech;
 	int _protagState;

Index: rscfile.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/rscfile.cpp,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -d -r1.46 -r1.47
--- rscfile.cpp	4 Oct 2005 23:38:19 -0000	1.46
+++ rscfile.cpp	8 Oct 2005 22:09:21 -0000	1.47
@@ -468,12 +468,12 @@
 
 	_metaResource.sceneIndex = metaS.readSint16LE();
 	_metaResource.objectCount = metaS.readSint16LE();
-	_metaResource.field_4 = metaS.readSint32LE();
+	_metaResource.objectsStringsResourceID = metaS.readSint32LE();
 	_metaResource.field_8 = metaS.readSint32LE();
 	_metaResource.mainSpritesID = metaS.readSint32LE();
 	_metaResource.objectsResourceID = metaS.readSint32LE();
 	_metaResource.actorCount = metaS.readSint16LE();
-	_metaResource.field_16 = metaS.readSint32LE();
+	_metaResource.actorsStringsResourceID = metaS.readSint32LE();
 	_metaResource.actorsResourceID = metaS.readSint32LE();
 	_metaResource.protagFaceSpritesID = metaS.readSint32LE();
 	_metaResource.field_22 = metaS.readSint32LE();
@@ -491,7 +491,11 @@
 
 	_vm->_actor->_protagonist->_sceneNumber = _metaResource.sceneIndex;
 
-	// TODO: field_16
+	_vm->_actor->_objectsStrings.freeMem();
+
+	_vm->_resource->loadResource(resourceContext, _metaResource.objectsStringsResourceID, resourcePointer, resourceLength);
+	_vm->loadStrings(_vm->_actor->_objectsStrings, resourcePointer, resourceLength);
+	free(resourcePointer);
 
 	if (chapter >= _vm->_sndRes->_fxTableIDsLen) {
 		error("Chapter ID exceeds fxTableIDs length");
@@ -521,7 +525,11 @@
 	_vm->_interface->_defPortraits.freeMem();
 	_vm->_sprite->loadList(_metaResource.protagFaceSpritesID, _vm->_interface->_defPortraits);
 
-	// TODO: field_4
+	_vm->_actor->_actorsStrings.freeMem();
+
+	_vm->_resource->loadResource(resourceContext, _metaResource.actorsStringsResourceID, resourcePointer, resourceLength);
+	_vm->loadStrings(_vm->_actor->_actorsStrings, resourcePointer, resourceLength);
+	free(resourcePointer);
 
 	// TODO: field_8
 

Index: rscfile.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/rscfile.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- rscfile.h	7 Aug 2005 00:00:41 -0000	1.19
+++ rscfile.h	8 Oct 2005 22:09:21 -0000	1.20
@@ -92,12 +92,12 @@
 struct MetaResource {
 	int16 sceneIndex;
 	int16 objectCount;
-	int32 field_4;
+	int32 objectsStringsResourceID;
 	int32 field_8;
 	int32 mainSpritesID;
 	int32 objectsResourceID;
 	int16 actorCount;
-	int32 field_16;
+	int32 actorsStringsResourceID;
 	int32 actorsResourceID;
 	int32 protagFaceSpritesID;
 	int32 field_22;

Index: saga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saga.cpp,v
retrieving revision 1.141
retrieving revision 1.142
diff -u -d -r1.141 -r1.142
--- saga.cpp	8 Oct 2005 21:28:14 -0000	1.141
+++ saga.cpp	8 Oct 2005 22:09:21 -0000	1.142
@@ -388,7 +388,9 @@
 	switch (objectTypeId(objectId)) {
 	case kGameObjectObject:
 		obj = _actor->getObj(objectId);
-		return _script->_mainStrings.getString(obj->_nameIndex);
+		if (getGameType() == GType_ITE)
+			return _script->_mainStrings.getString(obj->_nameIndex);
+		return _actor->_objectsStrings.getString(obj->_nameIndex);
 	case kGameObjectActor:
 		actor = _actor->getActor(objectId);
 		return _actor->_actorsStrings.getString(actor->_nameIndex);





More information about the Scummvm-git-logs mailing list