aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/exereader.cpp
diff options
context:
space:
mode:
authorMatthew Hoops2009-02-22 01:11:06 +0000
committerMatthew Hoops2009-02-22 01:11:06 +0000
commit85fe96b72d3fb11b3d07548486822940d5d301b2 (patch)
treea48daeb7f56450552e6de14d9178a880ab94e427 /engines/sci/exereader.cpp
parente35e7c04157740652ed7dc0809993f19f597d99c (diff)
downloadscummvm-rg350-85fe96b72d3fb11b3d07548486822940d5d301b2.tar.gz
scummvm-rg350-85fe96b72d3fb11b3d07548486822940d5d301b2.tar.bz2
scummvm-rg350-85fe96b72d3fb11b3d07548486822940d5d301b2.zip
Add remapping of Amiga version strings and re-enable detection of kq5 amiga.
svn-id: r38774
Diffstat (limited to 'engines/sci/exereader.cpp')
-rw-r--r--engines/sci/exereader.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/engines/sci/exereader.cpp b/engines/sci/exereader.cpp
index 260d5704b1..61f0e556dc 100644
--- a/engines/sci/exereader.cpp
+++ b/engines/sci/exereader.cpp
@@ -172,7 +172,7 @@ uint getBit(Common::SeekableReadStream *input) {
return bit;
}
-Common::String readSciVersionFromExe(Common::SeekableReadStream *exeStream) {
+Common::String readSciVersionFromExe(Common::SeekableReadStream *exeStream, Common::Platform platform) {
int len = exeStream->size();
unsigned char *buffer = NULL;
@@ -277,7 +277,7 @@ Common::String readSciVersionFromExe(Common::SeekableReadStream *exeStream) {
// Return the current string if it's parseable
int version;
- if (getSciVersionFromString(currentString, &version)) {
+ if (getSciVersionFromString(currentString, &version, platform)) {
delete[] buffer;
return currentString;
}
@@ -296,10 +296,22 @@ Common::String readSciVersionFromExe(Common::SeekableReadStream *exeStream) {
return resultString;
}
-bool getSciVersionFromString(Common::String versionString, int *version) {
+bool getSciVersionFromString(Common::String versionString, int *version, Common::Platform platform) {
// Map non-numeric versions to their numeric counterparts
Common::String mappedVersion = versionString;
- if (versionString.hasPrefix("S.old.")) {
+ if (platform == Common::kPlatformAmiga) {
+ if (versionString.hasPrefix("1.002.")) {
+ mappedVersion = "0.000.685";
+ } else if (versionString.hasPrefix("1.003.")) {
+ mappedVersion = "0.001.010";
+ } else if (versionString.hasPrefix("1.004.")) {
+ mappedVersion = "1.000.784";
+ } else if (versionString.hasPrefix("1.005.")) {
+ mappedVersion = "1.000.510";
+ } else if (versionString == "x.yyy.zzz") {
+ // How to map it?
+ }
+ } else if (versionString.hasPrefix("S.old.")) {
// SCI 01
mappedVersion = "0.001.";
mappedVersion += versionString.c_str() + 6;