Merge pull request #44 from yuwui/patch/zone_path_casing

Try to load from original zone path before a lowercased one
This commit is contained in:
Wincent Holm 2021-12-06 14:58:34 +01:00 committed by GitHub
commit af05371c09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -42,7 +42,15 @@ void Zone::LoadZoneIntoMemory() {
m_ZonePath = m_ZoneFilePath.substr(0, m_ZoneFilePath.rfind('/') + 1);
if (m_ZoneFilePath == "ERR") return;
// try to open with regular cased path first
std::ifstream file(m_ZoneFilePath, std::ios::binary);
if (!file) {
// if that fails try the path in lowercase
std::transform(m_ZoneFilePath.begin(), m_ZoneFilePath.end(), m_ZoneFilePath.begin(), ::tolower);
file.open(m_ZoneFilePath, std::ios::binary);
}
if (file) {
BinaryIO::BinaryRead(file, m_ZoneFileFormatVersion);
@ -171,8 +179,7 @@ std::string Zone::GetFilePathForZoneID() {
CDZoneTableTable * zoneTable = CDClientManager::Instance()->GetTable<CDZoneTableTable>("ZoneTable");
const CDZoneTable* zone = zoneTable->Query(this->GetZoneID().GetMapID());
if (zone != nullptr) {
std::string toReturn = "./res/maps/" + zone->zoneName;
std::transform(toReturn.begin(), toReturn.end(), toReturn.begin(), ::tolower);
std::string toReturn = "./res/maps/" + zone->zoneName;
return toReturn;
}