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

peres001 at users.sourceforge.net peres001 at users.sourceforge.net
Sun Mar 11 17:53:21 CET 2007


Revision: 26094
          http://scummvm.svn.sourceforge.net/scummvm/?rev=26094&view=rev
Author:   peres001
Date:     2007-03-11 09:53:20 -0700 (Sun, 11 Mar 2007)

Log Message:
-----------
Disk is now completely responsible for retrieving localized location scripts

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

Modified: scummvm/trunk/engines/parallaction/disk.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/disk.cpp	2007-03-11 16:00:38 UTC (rev 26093)
+++ scummvm/trunk/engines/parallaction/disk.cpp	2007-03-11 16:53:20 UTC (rev 26094)
@@ -34,7 +34,33 @@
 Disk::~Disk() {
 }
 
+void Disk::setLanguage(uint16 language) {
 
+	switch (language) {
+	case 0:
+		strcpy(_languageDir, "it/");
+		break;
+
+	case 1:
+		strcpy(_languageDir, "fr/");
+		break;
+
+	case 2:
+		strcpy(_languageDir, "en/");
+		break;
+
+	case 3:
+		strcpy(_languageDir, "ge/");
+		break;
+
+	default:
+		error("unknown language");
+
+	}
+
+	return;
+}
+
 //
 // decompress a graphics block
 //
@@ -208,22 +234,22 @@
 	char archivefile[PATH_LEN];
 
 	if (IS_MINI_CHARACTER(_vm->_characterName)) {
-		sprintf(archivefile, "%s%s", _vm->_characterName+4, _vm->_languageDir);
+		sprintf(archivefile, "%s%s", _vm->_characterName+4, _languageDir);
 	} else {
-		if (IS_DUMMY_CHARACTER(_vm->_characterName)) strcpy(archivefile, _vm->_languageDir);
+		if (IS_DUMMY_CHARACTER(_vm->_characterName)) strcpy(archivefile, _languageDir);
 		else {
-			sprintf(archivefile, "%s%s", _vm->_characterName, _vm->_languageDir);
+			sprintf(archivefile, "%s%s", _vm->_characterName, _languageDir);
 		}
 	}
 	strcat(archivefile, name);
 	strcat(archivefile, ".loc");
 
-	_vm->_languageDir[2] = '\0';
-	_archive.open(_vm->_languageDir);
-	_vm->_languageDir[2] = '/';
+	_languageDir[2] = '\0';
+	_archive.open(_languageDir);
+	_languageDir[2] = '/';
 
 	if (!_archive.openArchivedFile(archivefile)) {
-		sprintf(archivefile, "%s%s.loc", _vm->_languageDir, name);
+		sprintf(archivefile, "%s%s.loc", _languageDir, name);
 		if (!_archive.openArchivedFile(archivefile))
 			error("can't find location file '%s'", name);
 	}

Modified: scummvm/trunk/engines/parallaction/disk.h
===================================================================
--- scummvm/trunk/engines/parallaction/disk.h	2007-03-11 16:00:38 UTC (rev 26093)
+++ scummvm/trunk/engines/parallaction/disk.h	2007-03-11 16:53:20 UTC (rev 26094)
@@ -88,16 +88,18 @@
 	void loadMaskAndPath(const char *name);
 
 protected:
-	Archive			_archive;
+	Archive		  _archive;
+	char		  _languageDir[3];
 
-	Parallaction 	*_vm;
-	Graphics		*_gfx;
+	Parallaction *_vm;
+	Graphics	 *_gfx;
 
 public:
 	Disk(Parallaction *vm);
 	virtual ~Disk();
 
 	void selectArchive(const char *name);
+	void setLanguage(uint16 language);
 
 	Script* loadLocation(const char *name);
 	Script* loadScript(const char* name);

Modified: scummvm/trunk/engines/parallaction/menu.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/menu.cpp	2007-03-11 16:00:38 UTC (rev 26093)
+++ scummvm/trunk/engines/parallaction/menu.cpp	2007-03-11 16:53:20 UTC (rev 26094)
@@ -128,24 +128,8 @@
 	_vm->_graphics->copyScreen(Graphics::kBitBack, Graphics::kBit2);
 	_language = chooseLanguage();
 
-	switch (_language) {
-	case 0:
-		strcpy(_engine->_languageDir, "it/");
-		break;
+	_vm->_disk->setLanguage(_language);
 
-	case 1:
-		strcpy(_engine->_languageDir, "fr/");
-		break;
-
-	case 2:
-		strcpy(_engine->_languageDir, "en/");
-		break;
-
-	case 3:
-		strcpy(_engine->_languageDir, "ge/");
-		break;
-	}
-
 	_vm->_disk->loadSlide("restore");
 	_vm->_graphics->palUnk0(_palette);
 	_vm->_graphics->copyScreen(Graphics::kBitBack, Graphics::kBitFront);

Modified: scummvm/trunk/engines/parallaction/parallaction.h
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction.h	2007-03-11 16:00:38 UTC (rev 26093)
+++ scummvm/trunk/engines/parallaction/parallaction.h	2007-03-11 16:53:20 UTC (rev 26094)
@@ -299,7 +299,6 @@
 	Graphics*	_graphics;
 	Menu*	_menu;
 	char	_characterName[30];
-	char	_languageDir[6];
 	Disk*	_disk;
 
 	char	_locationNames[120][32];


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