feat(Core/Vmaps): Changed error message when loading outdated vmaps (#10490)

This commit is contained in:
IntelligentQuantum
2022-04-01 14:26:04 +04:30
committed by GitHub
parent e8e8c34590
commit cc5f26db7f
6 changed files with 35 additions and 17 deletions

View File

@@ -249,7 +249,7 @@ namespace VMAP
//=========================================================
bool StaticMapTree::CanLoadMap(const std::string& vmapPath, uint32 mapID, uint32 tileX, uint32 tileY)
LoadResult StaticMapTree::CanLoadMap(const std::string& vmapPath, uint32 mapID, uint32 tileX, uint32 tileY)
{
std::string basePath = vmapPath;
if (basePath.length() > 0 && basePath[basePath.length() - 1] != '/' && basePath[basePath.length() - 1] != '\\')
@@ -257,19 +257,21 @@ namespace VMAP
basePath.push_back('/');
}
std::string fullname = basePath + VMapMgr2::getMapFileName(mapID);
bool success = true;
LoadResult result = LoadResult::Success;
FILE* rf = fopen(fullname.c_str(), "rb");
if (!rf)
{
return false;
return LoadResult::FileNotFound;
}
// TODO: check magic number when implemented...
char tiled;
char chunk[8];
if (!readChunk(rf, chunk, VMAP_MAGIC, 8) || fread(&tiled, sizeof(char), 1, rf) != 1)
{
fclose(rf);
return false;
return LoadResult::VersionMismatch;
}
if (tiled)
{
@@ -277,19 +279,19 @@ namespace VMAP
FILE* tf = fopen(tilefile.c_str(), "rb");
if (!tf)
{
success = false;
result = LoadResult::FileNotFound;
}
else
{
if (!readChunk(tf, chunk, VMAP_MAGIC, 8))
{
success = false;
result = LoadResult::VersionMismatch;
}
fclose(tf);
}
}
fclose(rf);
return success;
return result;
}
//=========================================================