mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-02-06 08:59:11 +01:00
Core/Maps: Reduce the output map file size in the maps extractor for maps that do not have any hole information
Core/Mmaps: Fixed swimming creatures stuck in water. (Thanks Vlad and @Chevron ) Note: Re-extract maps
This commit is contained in:
@@ -42,7 +42,7 @@ union u_map_magic
|
||||
};
|
||||
|
||||
u_map_magic MapMagic = { {'M','A','P','S'} };
|
||||
u_map_magic MapVersionMagic = { {'v','1','.','2'} };
|
||||
u_map_magic MapVersionMagic = { {'v','1','.','3'} };
|
||||
u_map_magic MapAreaMagic = { {'A','R','E','A'} };
|
||||
u_map_magic MapHeightMagic = { {'M','H','G','T'} };
|
||||
u_map_magic MapLiquidMagic = { {'M','L','I','Q'} };
|
||||
@@ -124,19 +124,12 @@ bool Map::ExistVMap(uint32 mapid, int gx, int gy)
|
||||
void Map::LoadMMap(int gx, int gy)
|
||||
{
|
||||
// DONT CHANGE "gy" and "gx" - Its necessary !
|
||||
int mmapLoadResult = MMAP::MMapFactory::createOrGetMMapManager()->loadMap((sWorld->GetDataPath() + "mmaps").c_str(), GetId(), gy, gx);
|
||||
switch (mmapLoadResult)
|
||||
{
|
||||
case MMAP::MMAP_LOAD_RESULT_OK:
|
||||
sLog->outDetail("MMAP loaded name:%s, id:%d, x:%d, y:%d (mmap rep.: x:%d, y:%d)", GetMapName(), GetId(), gx, gy, gx, gy);
|
||||
break;
|
||||
case MMAP::MMAP_LOAD_RESULT_ERROR:
|
||||
sLog->outDetail("Could not load MMAP name:%s, id:%d, x:%d, y:%d (mmap rep.: x:%d, y:%d)", GetMapName(), GetId(), gx, gy, gx, gy);
|
||||
break;
|
||||
case MMAP::MMAP_LOAD_RESULT_IGNORED:
|
||||
sLog->outStaticDebug("Ignored MMAP name:%s, id:%d, x:%d, y:%d (mmap rep.: x:%d, y:%d)", GetMapName(), GetId(), gx, gy, gx, gy);
|
||||
break;
|
||||
}
|
||||
bool mmapLoadResult = MMAP::MMapFactory::createOrGetMMapManager()->loadMap((sWorld->GetDataPath() + "mmaps").c_str(), GetId(), gy, gx);
|
||||
|
||||
if (result)
|
||||
sLog->outDetail("MMAP loaded name:%s, id:%d, x:%d, y:%d (mmap rep.: x:%d, y:%d)", GetMapName(), GetId(), gx, gy, gx, gy);
|
||||
else
|
||||
sLog->outDetail("Could not load MMAP name:%s, id:%d, x:%d, y:%d (mmap rep.: x:%d, y:%d)", GetMapName(), GetId(), gx, gy, gx, gy);
|
||||
}
|
||||
|
||||
void Map::LoadVMap(int gx, int gy)
|
||||
@@ -187,18 +180,16 @@ void Map::LoadMap(int gx, int gy, bool reload)
|
||||
}
|
||||
|
||||
// map file name
|
||||
char *tmp=NULL;
|
||||
int len = sWorld->GetDataPath().length()+strlen("maps/%03u%02u%02u.map")+1;
|
||||
char* tmp = NULL;
|
||||
int len = sWorld->GetDataPath().length() + strlen("maps/%03u%02u%02u.map") + 1;
|
||||
tmp = new char[len];
|
||||
snprintf(tmp, len, (char *)(sWorld->GetDataPath()+"maps/%03u%02u%02u.map").c_str(), GetId(), gx, gy);
|
||||
snprintf(tmp, len, (char *)(sWorld->GetDataPath() + "maps/%03u%02u%02u.map").c_str(), GetId(), gx, gy);
|
||||
sLog->outInfo(LOG_FILTER_MAPS, "Loading map %s", tmp);
|
||||
// loading data
|
||||
GridMaps[gx][gy] = new GridMap();
|
||||
if (!GridMaps[gx][gy]->loadData(tmp))
|
||||
{
|
||||
sLog->outError(LOG_FILTER_MAPS, "Error loading map file: \n %s\n", tmp);
|
||||
}
|
||||
delete [] tmp;
|
||||
delete[] tmp;
|
||||
|
||||
sScriptMgr->OnLoadGridMap(this, GridMaps[gx][gy], gx, gy);
|
||||
}
|
||||
@@ -1094,7 +1085,7 @@ GridMap::~GridMap()
|
||||
unloadData();
|
||||
}
|
||||
|
||||
bool GridMap::loadData(char *filename)
|
||||
bool GridMap::loadData(char* filename)
|
||||
{
|
||||
// Unload old data if exist
|
||||
unloadData();
|
||||
|
||||
Reference in New Issue
Block a user