1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-27 08:45:00 +01:00

Move RCT1 file version detection to its own function

This commit is contained in:
Gymnasiast
2015-08-19 20:34:26 +02:00
committed by Ted John
parent a28ba1d4d8
commit 2d3dfd8834
3 changed files with 19 additions and 10 deletions

View File

@@ -483,14 +483,20 @@ int sawyercoding_detect_file_type(const uint8 *src, size_t length)
actualChecksum = rol32(actualChecksum, 3);
}
switch (checksum - actualChecksum) {
case +108156: return FILE_VERSION_RCT1 | FILE_TYPE_SV4;
case -108156: return FILE_VERSION_RCT1 | FILE_TYPE_SC4;
case +110001: return FILE_VERSION_RCT1_AA | FILE_TYPE_SV4;
case -110001: return FILE_VERSION_RCT1_AA | FILE_TYPE_SC4;
case +120001: return FILE_VERSION_RCT1_LL | FILE_TYPE_SV4;
case -120001: return FILE_VERSION_RCT1_LL | FILE_TYPE_SC4;
}
return sawyercoding_detect_rct1_version(checksum - actualChecksum);
}
int sawyercoding_detect_rct1_version(int gameVersion)
{
int fileType = (gameVersion) > 0 ? FILE_TYPE_SV4 : FILE_TYPE_SC4;
gameVersion=abs(gameVersion);
if (gameVersion >= 108000 && gameVersion < 110000)
return (FILE_VERSION_RCT1 | fileType);
else if (gameVersion >= 110000 && gameVersion < 120000)
return (FILE_VERSION_RCT1_AA | fileType);
else if (gameVersion >= 120000 && gameVersion < 130000)
return (FILE_VERSION_RCT1_LL | fileType);
return -1;
}