Added case insensitive support to datafile loading. Release Build 13348.
All checks were successful
Emscripten Build / Build_and_Deploy_Web_Build (push) Successful in 8m3s

This commit is contained in:
AMay 2026-04-22 12:33:20 -05:00
parent 0300a1133e
commit bccba6758b
4 changed files with 10 additions and 2 deletions

View File

@ -115,6 +115,14 @@ namespace FileTests
Assert::AreEqual(int(olc::rcode::OK),int(testSpr.LoadFromFile("assets/title_transparent.png")),L"Normal image loading works");
Assert::AreEqual(int(olc::rcode::OK),int(testSpr.LoadFromFile("ASSets/TITle_transparent.PNg")),L"Alternate casing also works and results in proper loading.");
}
TEST_METHOD(DataFileLoadsProperRegardlessOfCaseSensitivity){
datafile data;
Assert::AreEqual(true,datafile::Read(data,"assets/config/credits.txt"),L"Normal config file reading works");
data.Reset();
Assert::ExpectException<std::runtime_error>([&data](){datafile::Read(data,"assets/config/creditsfdsfdsafd.txt");},L"Expected loading an invalid config to fail.");
data.Reset();
Assert::AreEqual(true,datafile::Read(data,"ASSets/Config/credITS.tXt"),L"Alternate casing for config file reading also works");
}
TEST_METHOD_CLEANUP(CleanupFileTests){
testGame->EndGame();
testGame->OnUserUpdate(0.f);

View File

@ -39,7 +39,7 @@ All rights reserved.
#define VERSION_MAJOR 1
#define VERSION_MINOR 3
#define VERSION_PATCH 0
#define VERSION_BUILD 13345
#define VERSION_BUILD 13348
#define stringify(a) stringify_(a)
#define stringify_(a) #a

View File

@ -346,7 +346,7 @@ namespace olc::utils
inline static bool Read(datafile& n, const std::string& sFileName, const char sListSep = ',', const OverwriteMode mode=OverwriteMode::NO_OVERWRITE)
{
std::ifstream fileStream{sFileName};
std::ifstream fileStream{util::GetCaseInsensitiveFilename(sFileName)};
if(fileStream.fail()){
// File not found, so fail
ERR("WARNING! Could not open file "<<sFileName<<"!");