From 3caefe5faeacf599582a73aad12a2d07d22c363c Mon Sep 17 00:00:00 2001 From: VladislavKolosovsky Date: Wed, 15 Jul 2015 21:40:03 +0700 Subject: [PATCH] #4: allow several values in ExtraCRC parameter (separated by space) --- artifacts/ddraw.ini | 3 ++- sfall/CRC.cpp | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/artifacts/ddraw.ini b/artifacts/ddraw.ini index d0ce6f4e..62caf82e 100644 --- a/artifacts/ddraw.ini +++ b/artifacts/ddraw.ini @@ -547,7 +547,8 @@ SkipCompatModeCheck=1 ;Set to 1 to skip the executable file size check SkipSizeCheck=0 -;If you're testing changes to the fallout exe, you can override the crc that sfall looks for here +;If you're testing changes to the fallout exe, you can override the crc that sfall looks for here +;you can use several hex values, separated by space ExtraCRC=0x00000000 ;Set to 1 to stop fallout from deleting non readonly protos at startup diff --git a/sfall/CRC.cpp b/sfall/CRC.cpp index 5f442ec5..5731fc92 100644 --- a/sfall/CRC.cpp +++ b/sfall/CRC.cpp @@ -67,8 +67,15 @@ void CRC(const char* filepath) { bool matchedCRC = false; #ifdef TRACE - DWORD extraCRC = GetPrivateProfileIntA("Debugging", "ExtraCRC", 0, ".\\ddraw.ini"); - if (crc == extraCRC) matchedCRC = true; + if (GetPrivateProfileStringA("Debugging", "ExtraCRC", "", buf, 512, ".\\ddraw.ini") > 0) { + char *TestCRC; + TestCRC = strtok(buf, ","); + while (TestCRC) { + DWORD extraCRC = strtoul(TestCRC, 0, 16); + if (crc == extraCRC) matchedCRC = true; + TestCRC = strtok(0, ","); + } + } #endif for (int i=0; i < sizeof(ExpectedCRC)/4; i++) { if (crc == ExpectedCRC[i]) matchedCRC = true;