[Scummvm-cvs-logs] SF.net SVN: scummvm: [26074] scummvm/trunk/engines/parallaction

peres001 at users.sourceforge.net peres001 at users.sourceforge.net
Sat Mar 10 23:55:10 CET 2007


Revision: 26074
          http://scummvm.svn.sourceforge.net/scummvm/?rev=26074&view=rev
Author:   peres001
Date:     2007-03-10 14:55:09 -0800 (Sat, 10 Mar 2007)

Log Message:
-----------
simplified character mode handling

Modified Paths:
--------------
    scummvm/trunk/engines/parallaction/disk.cpp
    scummvm/trunk/engines/parallaction/parallaction.cpp
    scummvm/trunk/engines/parallaction/parallaction.h
    scummvm/trunk/engines/parallaction/saveload.cpp

Modified: scummvm/trunk/engines/parallaction/disk.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/disk.cpp	2007-03-10 22:49:19 UTC (rev 26073)
+++ scummvm/trunk/engines/parallaction/disk.cpp	2007-03-10 22:55:09 UTC (rev 26074)
@@ -179,15 +179,15 @@
 
 	} else {
 		// character talk
-
+/*
 		if (scumm_stricmp(name, _doughName) &&
 			scumm_stricmp(name, _dinoName) &&
 			scumm_stricmp(name, _donnaName) &&
 			scumm_stricmp(name, _drkiName)) return;
-
+*/
 		char v20[PATH_LEN];
 		char *v24 = const_cast<char*>(name);
-		if (!scumm_strnicmp(v24, "mini", 4)) {
+		if (IS_MINI_CHARACTER(v24)) {
 			v24+=4;
 		}
 
@@ -207,10 +207,10 @@
 
 	char archivefile[PATH_LEN];
 
-	if (_vm->_characterName[0] == 'm') {
+	if (IS_MINI_CHARACTER(_vm->_characterName)) {
 		sprintf(archivefile, "%s%s", _vm->_characterName+4, _vm->_languageDir);
 	} else {
-		if (_vm->_characterName[0] == 'D') strcpy(archivefile, _vm->_languageDir);
+		if (IS_DUMMY_CHARACTER(_vm->_characterName)) strcpy(archivefile, _vm->_languageDir);
 		else {
 			sprintf(archivefile, "%s%s", _vm->_characterName, _vm->_languageDir);
 		}
@@ -257,13 +257,13 @@
 void Disk::loadHead(const char* name, StaticCnv* cnv) {
 
 	char path[PATH_LEN];
-
+/*
 	if (scumm_stricmp(name, _doughName) &&
 		scumm_stricmp(name, _dinoName) &&
 		scumm_stricmp(name, _donnaName) &&
 		scumm_stricmp(name, _drkiName)) return;
-
-	if (!scumm_strnicmp(name, "mini", 4)) {
+*/
+	if (IS_MINI_CHARACTER(name)) {
 		name += 4;
 	}
 
@@ -290,7 +290,7 @@
 
 void Disk::loadObjects(const char *name, Cnv* cnv) {
 
-	if (!scumm_strnicmp("mini", name, 4)) {
+	if (IS_MINI_CHARACTER(name)) {
 		name += 4;
 	}
 

Modified: scummvm/trunk/engines/parallaction/parallaction.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction.cpp	2007-03-10 22:49:19 UTC (rev 26073)
+++ scummvm/trunk/engines/parallaction/parallaction.cpp	2007-03-10 22:55:09 UTC (rev 26074)
@@ -829,7 +829,7 @@
 
 	_vm->_graphics->freeCnv(&_tempFrames);
 
-	if (_vm->_characterName[0] != 'D') {
+	if (!IS_DUMMY_CHARACTER(_vm->_characterName)) {
 		_vm->_graphics->freeCnv(&_miniCharacterFrames);
 		_vm->freeTable(_objectsNames);
 		_vm->_graphics->freeCnv(&_yourTalk);
@@ -840,7 +840,7 @@
 }
 
 void Parallaction::selectCharacterMusic(const char *name) {
-	if (!scumm_strnicmp(name, "mini", 4))
+	if (IS_MINI_CHARACTER(name))
 		name+=4;
 
 	if (!scumm_stricmp(name, _dinoName)) {
@@ -859,7 +859,7 @@
 
 	bool miniCharacter = false;
 
-	if (!scumm_strnicmp(name, "mini", 4)) {
+	if (IS_MINI_CHARACTER(name)) {
 		name+=4;
 		miniCharacter = true;
 	}
@@ -885,10 +885,10 @@
 		strcpy(path, v32);
 		_disk->loadFrames(path, &_tempFrames);
 
-		_disk->loadHead(path, &_yourHead);
-		_disk->loadTalk(path, &_yourTalk);
+		if (!IS_DUMMY_CHARACTER(name)) {
+			_disk->loadHead(path, &_yourHead);
+			_disk->loadTalk(path, &_yourTalk);
 
-		if (name[0] != 'D') {
 			sprintf(path, "mini%s", v32);
 			_disk->loadFrames(path, &_miniCharacterFrames);
 

Modified: scummvm/trunk/engines/parallaction/parallaction.h
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction.h	2007-03-10 22:49:19 UTC (rev 26073)
+++ scummvm/trunk/engines/parallaction/parallaction.h	2007-03-10 22:55:09 UTC (rev 26074)
@@ -149,6 +149,17 @@
 extern const char *_minidoughName;
 extern const char *_minidrkiName;
 
+// Various ways of detecting character modes used to exist
+// inside the engine, so they have been unified in the two
+// following macros.
+// Mini characters are those used in far away shots, like
+// the highway scenery, while Dummy characters are a mere
+// workaround to keep the engine happy when showing slides.
+// As a sidenote, standard sized characters' names start
+// with a lowercase 'd'.
+#define IS_MINI_CHARACTER(s) (((s)[0] == 'm'))
+#define IS_DUMMY_CHARACTER(s) (((s)[0] == 'D'))
+
 void waitUntilLeftClick();
 
 void addNode(Node *list, Node *n);

Modified: scummvm/trunk/engines/parallaction/saveload.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/saveload.cpp	2007-03-10 22:49:19 UTC (rev 26073)
+++ scummvm/trunk/engines/parallaction/saveload.cpp	2007-03-10 22:55:09 UTC (rev 26074)
@@ -122,7 +122,7 @@
 		strcpy(_vm->_characterName, _minidonnaName);
 	}
 
-	if (_vm->_characterName[0] == 'm') {
+	if (IS_MINI_CHARACTER(_vm->_characterName)) {
 		strcpy(filename, _vm->_characterName+4);
 	} else {
 		strcpy(filename, _vm->_characterName);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list