diff options
author | Matthew Hoops | 2009-02-22 01:11:06 +0000 |
---|---|---|
committer | Matthew Hoops | 2009-02-22 01:11:06 +0000 |
commit | 85fe96b72d3fb11b3d07548486822940d5d301b2 (patch) | |
tree | a48daeb7f56450552e6de14d9178a880ab94e427 /engines/sci/exereader.cpp | |
parent | e35e7c04157740652ed7dc0809993f19f597d99c (diff) | |
download | scummvm-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.cpp | 20 |
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; |