aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/disk_br.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2007-08-12 13:21:45 +0000
committerNicola Mettifogo2007-08-12 13:21:45 +0000
commitde3065147698c58a99c40c86b0868acdd5fafeba (patch)
treeac0c4896ede39f3d1111ea6d46c4969e36e2eb5c /engines/parallaction/disk_br.cpp
parent6bbeb8c6d1dfa29f7d4bf27d5b11b64e21e55459 (diff)
downloadscummvm-rg350-de3065147698c58a99c40c86b0868acdd5fafeba.tar.gz
scummvm-rg350-de3065147698c58a99c40c86b0868acdd5fafeba.tar.bz2
scummvm-rg350-de3065147698c58a99c40c86b0868acdd5fafeba.zip
Disk can now load tables for BRA.
svn-id: r28561
Diffstat (limited to 'engines/parallaction/disk_br.cpp')
-rw-r--r--engines/parallaction/disk_br.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/engines/parallaction/disk_br.cpp b/engines/parallaction/disk_br.cpp
index a889e9c298..f9ba2c2295 100644
--- a/engines/parallaction/disk_br.cpp
+++ b/engines/parallaction/disk_br.cpp
@@ -36,7 +36,11 @@ void DosDisk_br::errorFileNotFound(const char *s) {
Common::String DosDisk_br::selectArchive(const Common::String& name) {
debugC(5, kDebugDisk, "DosDisk_br::selectArchive");
- return "";
+
+ Common::String oldPath(_partPath);
+ strcpy(_partPath, name.c_str());
+
+ return oldPath;
}
void DosDisk_br::setLanguage(uint16 language) {
@@ -175,6 +179,24 @@ BackgroundInfo* DosDisk_br::loadScenery(const char *name, const char *mask, cons
Table* DosDisk_br::loadTable(const char* name) {
debugC(5, kDebugDisk, "DosDisk_br::loadTable");
+
+ char path[PATH_LEN];
+ sprintf(path, "%s/%s.tab", _partPath, name);
+
+ Common::File stream;
+ if (!stream.open(path))
+ errorFileNotFound(path);
+
+ Table *t = new Table(100);
+
+ fillBuffers(stream);
+ while (scumm_stricmp(_tokens[0], "ENDTABLE")) {
+ t->addData(_tokens[0]);
+ fillBuffers(stream);
+ }
+
+ stream.close();
+
return 0;
}