[Maps] Fix broken Map MMFS implementation (#4576)

This commit is contained in:
Chris Miles 2025-01-05 23:48:09 -06:00 committed by GitHub
parent c44596b38a
commit a3a498634f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 5 deletions

View File

@ -37,6 +37,9 @@ IF(EQEMU_ADD_PROFILER)
SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-as-needed,-lprofiler,--as-needed")
ENDIF(EQEMU_ADD_PROFILER)
IF(USE_MAP_MMFS)
ADD_DEFINITIONS(-DUSE_MAP_MMFS)
ENDIF (USE_MAP_MMFS)
IF(MSVC)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)

View File

@ -320,7 +320,7 @@ bool Map::Load(const std::string &filename)
}
#ifdef USE_MAP_MMFS
if (v)
if (loaded_map_file)
return SaveMMF(filename, force_mmf_overwrite);
#endif /*USE_MAP_MMFS*/
@ -338,7 +338,7 @@ bool Map::Load(const std::string &filename)
}
#ifdef USE_MAP_MMFS
if (v)
if (loaded_map_file)
return SaveMMF(filename, force_mmf_overwrite);
#endif /*USE_MAP_MMFS*/
@ -1064,7 +1064,7 @@ bool Map::LoadMMF(const std::string& map_file_name, bool force_mmf_overwrite)
fclose(f);
std::vector<char> rm_buffer(rm_buffer_size);
uint32 v = InflateData(mmf_buffer.data(), mmf_buffer_size, rm_buffer.data(), rm_buffer_size);
uint32 v = EQ::InflateData(mmf_buffer.data(), mmf_buffer_size, rm_buffer.data(), rm_buffer_size);
if (imp) {
imp->rm->release();
@ -1120,11 +1120,11 @@ bool Map::SaveMMF(const std::string& map_file_name, bool force_mmf_overwrite)
}
uint32 rm_buffer_size = rm_buffer.size();
uint32 mmf_buffer_size = EstimateDeflateBuffer(rm_buffer.size());
uint32 mmf_buffer_size = EQ::EstimateDeflateBuffer(rm_buffer.size());
std::vector<char> mmf_buffer(mmf_buffer_size);
mmf_buffer_size = DeflateData(rm_buffer.data(), rm_buffer.size(), mmf_buffer.data(), mmf_buffer.size());
mmf_buffer_size = EQ::DeflateData(rm_buffer.data(), rm_buffer.size(), mmf_buffer.data(), mmf_buffer.size());
if (!mmf_buffer_size) {
LogInfo("Failed to save Map MMF file: [{}] - null MMF buffer size", mmf_file_name.c_str());
return false;