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

Kirben at users.sourceforge.net Kirben at users.sourceforge.net
Sat Jun 16 13:13:36 CEST 2007


Revision: 27459
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27459&view=rev
Author:   Kirben
Date:     2007-06-16 04:13:36 -0700 (Sat, 16 Jun 2007)

Log Message:
-----------
Reduce code duplication.

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

Modified: scummvm/trunk/engines/parallaction/disk.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/disk.cpp	2007-06-16 10:47:27 UTC (rev 27458)
+++ scummvm/trunk/engines/parallaction/disk.cpp	2007-06-16 11:13:36 UTC (rev 27459)
@@ -1019,12 +1019,7 @@
 	return;
 }
 
-
-AmigaFullDisk::AmigaFullDisk(Parallaction *vm) : AmigaDisk(vm) {
-}
-
-
-void AmigaFullDisk::loadSlide(const char *name) {
+void AmigaDisk::loadSlide(const char *name) {
 	debugC(1, kDebugDisk, "AmigaDisk::loadSlide '%s'", name);
 
 	char path[PATH_LEN];
@@ -1038,7 +1033,7 @@
 	return;
 }
 
-Cnv* AmigaFullDisk::loadFrames(const char* name) {
+Cnv* AmigaDisk::loadFrames(const char* name) {
 	debugC(1, kDebugDisk, "AmigaDisk::loadFrames '%s'", name);
 
 	Common::SeekableReadStream *s;
@@ -1056,9 +1051,7 @@
 	return cnv;
 }
 
-
-
-StaticCnv* AmigaFullDisk::loadHead(const char* name) {
+StaticCnv* AmigaDisk::loadHead(const char* name) {
 	debugC(1, kDebugDisk, "AmigaDisk::loadHead '%s'", name);
 
 	char path[PATH_LEN];
@@ -1073,11 +1066,15 @@
 }
 
 
-Cnv* AmigaFullDisk::loadObjects(const char *name) {
+Cnv* AmigaDisk::loadObjects(const char *name) {
 	debugC(1, kDebugDisk, "AmigaDisk::loadObjects");
 
 	char path[PATH_LEN];
-	sprintf(path, "objs/%s.objs", name);
+	if (_vm->getFeatures() & GF_DEMO)
+		sprintf(path, "objs/%s.objs", name);
+	else
+		sprintf(path, "%s.objs", name);
+
 	Common::SeekableReadStream *s = openArchivedFile(path, true);
 
 	Cnv *cnv = makeCnv(*s);
@@ -1087,13 +1084,17 @@
 }
 
 
-Cnv* AmigaFullDisk::loadTalk(const char *name) {
+Cnv* AmigaDisk::loadTalk(const char *name) {
 	debugC(1, kDebugDisk, "AmigaDisk::loadTalk '%s'", name);
 
 	Common::SeekableReadStream *s;
 
 	char path[PATH_LEN];
-	sprintf(path, "talk/%s.talk", name);
+	if (_vm->getFeatures() & GF_DEMO)
+		sprintf(path, "%s.talk", name);
+	else
+		sprintf(path, "talk/%s.talk", name);
+
 	s = openArchivedFile(path, false);
 	if (s == NULL) {
 		s = openArchivedFile(name, true);
@@ -1105,7 +1106,7 @@
 	return cnv;
 }
 
-Table* AmigaFullDisk::loadTable(const char* name) {
+Table* AmigaDisk::loadTable(const char* name) {
 	debugC(1, kDebugDisk, "AmigaDisk::loadTable '%s'", name);
 
 	char path[PATH_LEN];
@@ -1123,7 +1124,8 @@
 		dispose = true;
 		stream = s;
 	} else {
-		sprintf(path, "objs/%s.table", name);
+		if (!(_vm->getFeatures() & GF_DEMO))
+			sprintf(path, "objs/%s.table", name);
 		if (!_resArchive.openArchivedFile(path))
 			errorFileNotFound(path);
 
@@ -1144,24 +1146,24 @@
 	return t;
 }
 
-Font* AmigaFullDisk::loadFont(const char* name) {
+Font* AmigaDisk::loadFont(const char* name) {
 	debugC(1, kDebugDisk, "AmigaFullDisk::loadFont '%s'", name);
 
 	char path[PATH_LEN];
 	sprintf(path, "%sfont", name);
 
-	if (_vm->getFeatures() & GF_LANG_MULT) {
-		if (!_resArchive.openArchivedFile(path))
-			errorFileNotFound(path);
-
-		return createFont(name, _resArchive);
-	} else {
-		// Italian version has separate font files?
+	if (_vm->getFeatures() & GF_LANG_IT) {
+		// Italian version has separate font files
 		Common::File stream;
 		if (!stream.open(path))
 			errorFileNotFound(path);
 
 		return createFont(name, stream);
+	} else {
+		if (!_resArchive.openArchivedFile(path))
+			errorFileNotFound(path);
+
+		return createFont(name, _resArchive);
 	}
 }
 
@@ -1179,119 +1181,4 @@
 	return new DummyArchiveStream(_resArchive);
 }
 
-AmigaDemoDisk::AmigaDemoDisk(Parallaction *vm) : AmigaDisk(vm) {
-}
-
-Cnv* AmigaDemoDisk::loadTalk(const char *name) {
-	debugC(1, kDebugDisk, "AmigaDisk::loadTalk '%s'", name);
-
-	Common::SeekableReadStream *s;
-
-	char path[PATH_LEN];
-	sprintf(path, "%s.talk", name);
-	s = openArchivedFile(path, false);
-	if (s == NULL) {
-		s = openArchivedFile(name, true);
-	}
-
-	Cnv *cnv = makeCnv(*s);
-	delete s;
-
-	return cnv;
-}
-
-Cnv* AmigaDemoDisk::loadObjects(const char *name) {
-	debugC(1, kDebugDisk, "AmigaDisk::loadObjects");
-
-	char path[PATH_LEN];
-	sprintf(path, "%s.objs", name);
-	Common::SeekableReadStream *s = openArchivedFile(path, true);
-
-	Cnv *cnv = makeCnv(*s);
-	delete s;
-
-	return cnv;
-}
-
-
-Cnv* AmigaDemoDisk::loadFrames(const char* name) {
-	debugC(1, kDebugDisk, "AmigaDisk::loadFrames '%s'", name);
-
-	Common::SeekableReadStream *s = openArchivedFile(name, true);
-	Cnv *cnv = makeCnv(*s);
-	delete s;
-
-	return cnv;
-}
-
-void AmigaDemoDisk::loadSlide(const char *name) {
-	debugC(1, kDebugDisk, "AmigaDisk::loadSlide '%s'", name);
-	loadBackground(name);
-	return;
-}
-
-StaticCnv* AmigaDemoDisk::loadHead(const char* name) {
-	debugC(1, kDebugDisk, "AmigaDisk::loadHead '%s'", name);
-
-	char path[PATH_LEN];
-	sprintf(path, "%s.head", name);
-
-	Common::SeekableReadStream *s = openArchivedFile(path, true);
-	StaticCnv *cnv = makeStaticCnv(*s);
-
-	delete s;
-
-	return cnv;
-}
-
-Table* AmigaDemoDisk::loadTable(const char* name) {
-	debugC(1, kDebugDisk, "AmigaDisk::loadTable '%s'", name);
-
-	char path[PATH_LEN];
-	sprintf(path, "%s.table", name);
-
-	bool dispose = false;
-
-	Common::SeekableReadStream *stream;
-
-	if (!scumm_stricmp(name, "global")) {
-		Common::File *s = new Common::File;
-		if (!s->open(path))
-			errorFileNotFound(path);
-
-		dispose = true;
-		stream = s;
-	} else {
-		if (!_resArchive.openArchivedFile(path))
-			errorFileNotFound(path);
-
-		stream = &_resArchive;
-	}
-
-	Table *t = new Table(100);
-
-	fillBuffers(*stream);
-	while (scumm_stricmp(_tokens[0], "ENDTABLE")) {
-		t->addData(_tokens[0]);
-		fillBuffers(*stream);
-	}
-
-	if (dispose)
-		delete stream;
-
-	return t;
-}
-
-Font* AmigaDemoDisk::loadFont(const char* name) {
-	debugC(1, kDebugDisk, "AmigaDisk::loadFont '%s'", name);
-
-	char path[PATH_LEN];
-	sprintf(path, "%sfont", name);
-
-	if (!_resArchive.openArchivedFile(path))
-		errorFileNotFound(path);
-
-	return createFont(name, _resArchive);
-}
-
 } // namespace Parallaction

Modified: scummvm/trunk/engines/parallaction/disk.h
===================================================================
--- scummvm/trunk/engines/parallaction/disk.h	2007-06-16 10:47:27 UTC (rev 27458)
+++ scummvm/trunk/engines/parallaction/disk.h	2007-06-16 11:13:36 UTC (rev 27459)
@@ -176,42 +176,20 @@
 
 	Script* loadLocation(const char *name);
 	Script* loadScript(const char* name);
-	StaticCnv* loadPointer();
-	StaticCnv* loadStatic(const char* name);
-	void loadScenery(const char* background, const char* mask);
-	Common::ReadStream* loadMusic(const char* name);
-	Common::ReadStream* loadSound(const char* name);
-};
-
-class AmigaDemoDisk : public AmigaDisk {
-
-public:
-	AmigaDemoDisk(Parallaction *vm);
-
 	Cnv* loadTalk(const char *name);
 	Cnv* loadObjects(const char *name);
+	StaticCnv* loadPointer();
 	StaticCnv* loadHead(const char* name);
-	Cnv* loadFrames(const char* name);
-	void loadSlide(const char *filename);
-	Table* loadTable(const char* name);
 	Font* loadFont(const char* name);
-};
-
-class AmigaFullDisk : public AmigaDisk {
-
-public:
-	AmigaFullDisk(Parallaction *vm);
-
-	Cnv* loadTalk(const char *name);
-	Cnv* loadObjects(const char *name);
-	StaticCnv* loadHead(const char* name);
+	StaticCnv* loadStatic(const char* name);
 	Cnv* loadFrames(const char* name);
 	void loadSlide(const char *filename);
+	void loadScenery(const char* background, const char* mask);
 	Table* loadTable(const char* name);
-	Font* loadFont(const char* name);
+	Common::ReadStream* loadMusic(const char* name);
+	Common::ReadStream* loadSound(const char* name);
 };
 
-
 } // namespace Parallaction
 
 

Modified: scummvm/trunk/engines/parallaction/parallaction.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction.cpp	2007-06-16 10:47:27 UTC (rev 27458)
+++ scummvm/trunk/engines/parallaction/parallaction.cpp	2007-06-16 11:13:36 UTC (rev 27459)
@@ -180,10 +180,8 @@
 	} else {
 		if (getFeatures() & GF_DEMO) {
 			strcpy(_location._name, "fognedemo");
-			_disk = new AmigaDemoDisk(this);
-		} else {
-			_disk = new AmigaFullDisk(this);
 		}
+		_disk = new AmigaDisk(this);
 		_disk->selectArchive((_vm->getFeatures() & GF_DEMO) ? "disk0" : "disk1");
 	}
 


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