try original zone path before lowercasing

This commit is contained in:
yuwui 2021-12-06 10:31:09 +01:00
parent 34f1d4002b
commit 2dd96198af

View File

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