[Scummvm-cvs-logs] CVS: scummvm/saga actor.cpp,1.194,1.195 interface.cpp,1.146,1.147 rscfile.cpp,1.47,1.48 saga.h,1.129,1.130

Eugene Sandulenko sev at users.sourceforge.net
Sat Oct 8 18:21:06 CEST 2005


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

Modified Files:
	actor.cpp interface.cpp rscfile.cpp saga.h 
Log Message:
(more) Proper implementation of ChapterSelection panel. Though not all
functionality is implemented but it is enough for now. Lets select any
character.


Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.cpp,v
retrieving revision 1.194
retrieving revision 1.195
diff -u -d -r1.194 -r1.195
--- actor.cpp	8 Oct 2005 15:20:11 -0000	1.194
+++ actor.cpp	9 Oct 2005 01:18:26 -0000	1.195
@@ -426,7 +426,7 @@
 		actor->_screenDepth = actorS.readUint16LE();
 		actor->_spriteListResourceId = actorS.readUint32LE();
 		actor->_frameListResourceId = actorS.readUint32LE();
-		debug(0, "%d: %d, %d", i, actor->_spriteListResourceId, actor->_frameListResourceId);
+		debug(0, "%d: %d, %d [%d]", i, actor->_spriteListResourceId, actor->_frameListResourceId, actor->_nameIndex);
 		actor->_scriptEntrypointNumber = actorS.readUint32LE();
 		actorS.readUint32LE(); // xSprite *dSpr;
 		actorS.readUint16LE(); //LEFT

Index: interface.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/interface.cpp,v
retrieving revision 1.146
retrieving revision 1.147
diff -u -d -r1.146 -r1.147
--- interface.cpp	8 Oct 2005 19:53:38 -0000	1.146
+++ interface.cpp	9 Oct 2005 01:18:26 -0000	1.147
@@ -1215,7 +1215,27 @@
 }
 
 void Interface::handleChapterSelectionUpdate(const Point& mousePoint) {
-	_vm->_script->whichObject(mousePoint);
+	uint16 objectId =ID_NOTHING;
+	int16 objectFlags;
+	uint16 newObjectId;
+
+	// FIXME: Original handled more object types here.
+
+	newObjectId = _vm->_actor->hitTest(mousePoint, true);
+
+	if (newObjectId != ID_NOTHING) {
+		if (objectTypeId(newObjectId) == kGameObjectObject) {
+			objectId = newObjectId;
+			objectFlags = 0;
+		} else {
+			objectId = newObjectId;
+			objectFlags = kObjUseWith;
+		}
+	}
+
+	if (objectId != _vm->_script->_pointerObject) {
+		_vm->_script->_pointerObject = objectId;
+	}
 }
 
 void Interface::handleChapterSelectionClick(const Point& mousePoint) {

Index: rscfile.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/rscfile.cpp,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -d -r1.47 -r1.48
--- rscfile.cpp	8 Oct 2005 22:09:21 -0000	1.47
+++ rscfile.cpp	9 Oct 2005 01:18:26 -0000	1.48
@@ -531,7 +531,7 @@
 	_vm->loadStrings(_vm->_actor->_actorsStrings, resourcePointer, resourceLength);
 	free(resourcePointer);
 
-	// TODO: field_8
+	// TODO: field_8. Inventory-related
 
 	_vm->_sprite->_mainSprites.freeMem();
 	_vm->_sprite->loadList(_metaResource.mainSpritesID, _vm->_sprite->_mainSprites);

Index: saga.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saga.h,v
retrieving revision 1.129
retrieving revision 1.130
diff -u -d -r1.129 -r1.130
--- saga.h	8 Oct 2005 15:20:11 -0000	1.129
+++ saga.h	9 Oct 2005 01:18:26 -0000	1.130
@@ -232,8 +232,9 @@
 	const char **strings;
 
 	const char *getString(int index) const {
-		if ((stringsCount <= index) || (index < 0))
-			error("StringList::getString wrong index 0x%X", index);
+		if ((stringsCount <= index) || (index < 0)) {
+			error("StringList::getString wrong index 0x%X (%d)", index, stringsCount);
+		}
 		return strings[index];
 	}
 





More information about the Scummvm-git-logs mailing list