diff options
author | Travis Howell | 2007-06-16 11:13:36 +0000 |
---|---|---|
committer | Travis Howell | 2007-06-16 11:13:36 +0000 |
commit | 987aaa6d81bf4aff816d5fc0ea69cf02262547bb (patch) | |
tree | e2f13686cb1a028cc50f4100f0c026528b321540 /engines/parallaction/disk.cpp | |
parent | ae3a2b70fb3ca2298688a48af513db5e771660e2 (diff) | |
download | scummvm-rg350-987aaa6d81bf4aff816d5fc0ea69cf02262547bb.tar.gz scummvm-rg350-987aaa6d81bf4aff816d5fc0ea69cf02262547bb.tar.bz2 scummvm-rg350-987aaa6d81bf4aff816d5fc0ea69cf02262547bb.zip |
Reduce code duplication.
svn-id: r27459
Diffstat (limited to 'engines/parallaction/disk.cpp')
-rw-r--r-- | engines/parallaction/disk.cpp | 165 |
1 files changed, 26 insertions, 139 deletions
diff --git a/engines/parallaction/disk.cpp b/engines/parallaction/disk.cpp index 83792de1d7..1761224a0c 100644 --- a/engines/parallaction/disk.cpp +++ b/engines/parallaction/disk.cpp @@ -1019,12 +1019,7 @@ void AmigaDisk::loadScenery(const char* background, const char* mask) { 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 @@ void AmigaFullDisk::loadSlide(const char *name) { 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 @@ Cnv* AmigaFullDisk::loadFrames(const char* name) { 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 @@ StaticCnv* AmigaFullDisk::loadHead(const char* name) { } -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::loadObjects(const char *name) { } -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 @@ Cnv* AmigaFullDisk::loadTalk(const char *name) { 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 @@ Table* AmigaFullDisk::loadTable(const char* name) { 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 @@ Table* AmigaFullDisk::loadTable(const char* name) { 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 @@ Common::ReadStream* AmigaDisk::loadSound(const char* name) { 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 |