aboutsummaryrefslogtreecommitdiff
path: root/sky
diff options
context:
space:
mode:
authorRobert Göffringmann2003-07-04 23:26:46 +0000
committerRobert Göffringmann2003-07-04 23:26:46 +0000
commit5854c6a7de6742fcbaeeb90ccd26906e755c47ee (patch)
treebf2627e03d88f7c545cdbd54bed312765cecccfb /sky
parenta4bd31578b41bfd9fc33cf33d77cafed4de40013 (diff)
downloadscummvm-rg350-5854c6a7de6742fcbaeeb90ccd26906e755c47ee.tar.gz
scummvm-rg350-5854c6a7de6742fcbaeeb90ccd26906e755c47ee.tar.bz2
scummvm-rg350-5854c6a7de6742fcbaeeb90ccd26906e755c47ee.zip
make sky detect v.0.0348 (even though not existing ;)
svn-id: r8751
Diffstat (limited to 'sky')
-rw-r--r--sky/disk.cpp7
-rw-r--r--sky/sky.cpp16
-rw-r--r--sky/text.cpp1
3 files changed, 9 insertions, 15 deletions
diff --git a/sky/disk.cpp b/sky/disk.cpp
index c02f061445..723195da52 100644
--- a/sky/disk.cpp
+++ b/sky/disk.cpp
@@ -45,8 +45,6 @@ SkyDisk::SkyDisk(char *gameDataPath) {
if (!(_dinnerTableEntries = _dnrHandle->readUint32LE()))
error("Error reading from sky.dnr!\n"); //even though it was opened correctly?!
-
- debug(1, "Found BASS version v0.0%d (%d dnr entries)", determineGameVersion(), _dinnerTableEntries);
_dinnerTableArea = (uint8 *)malloc(_dinnerTableEntries * 8);
entriesRead = _dnrHandle->read(_dinnerTableArea, 8 * _dinnerTableEntries) / 8;
@@ -58,6 +56,8 @@ SkyDisk::SkyDisk(char *gameDataPath) {
if (_dataDiskHandle->isOpen() == false)
error("Error opening %s%s!\n", _gameDataPath, dataFilename);
+ debug(1, "Found BASS version v0.0%d (%d dnr entries)", determineGameVersion(), _dinnerTableEntries);
+
memset(_buildList, 0, 60 * 2);
memset(_loadedFilesList, 0, 60 * 4);
}
@@ -415,7 +415,8 @@ uint32 SkyDisk::determineGameVersion() {
return 303;
case 1445:
//floppy (v0.0331 or v0.0348)
- return 331;
+ if (_dataDiskHandle->size() == 8830435) return 348;
+ else return 331;
case 1711:
//cd demo (v0.0365)
return 365;
diff --git a/sky/sky.cpp b/sky/sky.cpp
index ed94bd7471..8e03dc1b77 100644
--- a/sky/sky.cpp
+++ b/sky/sky.cpp
@@ -346,18 +346,14 @@ void SkyState::delay(uint amount) { //copied and mutilated from Simon.cpp
bool SkyState::isDemo(void) {
switch (_systemVars.gameVersion) {
- case 267:
+ case 267: // floppy demo
+ case 365: // cd demo
return true;
case 288:
- return false;
case 303:
- return false;
case 331:
- return false;
- case 365:
- return true;
+ case 348:
case 368:
- return false;
case 372:
return false;
default:
@@ -369,17 +365,13 @@ bool SkyState::isCDVersion(void) {
switch (_systemVars.gameVersion) {
case 267:
- return false;
case 288:
- return false;
case 303:
- return false;
case 331:
+ case 348:
return false;
case 365:
- return true;
case 368:
- return true;
case 372:
return true;
default:
diff --git a/sky/text.cpp b/sky/text.cpp
index 6d834a756f..ad3a16ac61 100644
--- a/sky/text.cpp
+++ b/sky/text.cpp
@@ -1741,6 +1741,7 @@ void SkyText::initHuffTree() {
_huffTree = huffTree_00303;
break;
case 331:
+ case 348:
_huffTree = huffTree_00331;
break;
case 365: