diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 22c19d7b90e..0042cd0fc3a 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -2430,8 +2430,12 @@ GridMap* Map::GetGrid(uint32 mapId, float x, float y) GridMap* grid = GridMaps[gx][gy]; auto childMapItr = std::find_if(m_childTerrainMaps->begin(), m_childTerrainMaps->end(), [mapId](Map* childTerrainMap) { return childTerrainMap->GetId() == mapId; }); - if (childMapItr != m_childTerrainMaps->end() && (*childMapItr)->GridMaps[gx][gy] && (*childMapItr)->GridMaps[gx][gy]->fileExists()) - grid = (*childMapItr)->GridMaps[gx][gy]; + if (childMapItr != m_childTerrainMaps->end()) + { + (*childMapItr)->EnsureGridCreated(GridCoord((MAX_NUMBER_OF_GRIDS - 1) - gx, (MAX_NUMBER_OF_GRIDS - 1) - gy)); + if ((*childMapItr)->GridMaps[gx][gy]->fileExists()) + grid = (*childMapItr)->GridMaps[gx][gy]; + } return grid; }