AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
GridTerrainData.h File Reference
#include "Common.h"
#include <fstream>
#include <G3D/Plane.h>
#include <memory>

Go to the source code of this file.

Classes

union  u_map_magic
 
struct  map_fileheader
 
struct  map_areaHeader
 
struct  map_heightHeader
 
struct  map_liquidHeader
 
struct  LoadedAreaData
 
struct  LoadedHeightData
 
struct  LoadedHeightData::Uint16HeightData
 
struct  LoadedHeightData::Uint8HeightData
 
struct  LoadedHeightData::FloatHeightData
 
struct  LoadedLiquidData
 
struct  LoadedHoleData
 
struct  LiquidData
 
class  GridTerrainData
 

Macros

#define MAX_HEIGHT   100000.0f
 
#define INVALID_HEIGHT   -100000.0f
 
#define MAX_FALL_DISTANCE   250000.0f
 
#define MIN_HEIGHT   -500.0f
 
#define MAP_LIQUID_STATUS_SWIMMING   (LIQUID_MAP_IN_WATER | LIQUID_MAP_UNDER_WATER)
 
#define MAP_LIQUID_STATUS_IN_CONTACT   (MAP_LIQUID_STATUS_SWIMMING | LIQUID_MAP_WATER_WALK)
 
#define MAP_LIQUID_TYPE_NO_WATER   0x00
 
#define MAP_LIQUID_TYPE_WATER   0x01
 
#define MAP_LIQUID_TYPE_OCEAN   0x02
 
#define MAP_LIQUID_TYPE_MAGMA   0x04
 
#define MAP_LIQUID_TYPE_SLIME   0x08
 
#define MAP_ALL_LIQUIDS   (MAP_LIQUID_TYPE_WATER | MAP_LIQUID_TYPE_OCEAN | MAP_LIQUID_TYPE_MAGMA | MAP_LIQUID_TYPE_SLIME)
 
#define MAP_LIQUID_TYPE_DARK_WATER   0x10
 
#define MAP_AREA_NO_AREA   0x0001
 
#define MAP_HEIGHT_NO_HEIGHT   0x0001
 
#define MAP_HEIGHT_AS_INT16   0x0002
 
#define MAP_HEIGHT_AS_INT8   0x0004
 
#define MAP_HEIGHT_HAS_FLIGHT_BOUNDS   0x0008
 
#define MAP_LIQUID_NO_TYPE   0x0001
 
#define MAP_LIQUID_NO_HEIGHT   0x0002
 

Enumerations

enum  LiquidStatus {
  LIQUID_MAP_NO_WATER = 0x00000000 ,
  LIQUID_MAP_ABOVE_WATER = 0x00000001 ,
  LIQUID_MAP_WATER_WALK = 0x00000002 ,
  LIQUID_MAP_IN_WATER = 0x00000004 ,
  LIQUID_MAP_UNDER_WATER = 0x00000008
}
 
enum class  TerrainMapDataReadResult {
  Success ,
  NotFound ,
  ReadError ,
  InvalidMagic ,
  InvalidAreaData ,
  InvalidHeightData ,
  InvalidLiquidData ,
  InvalidHoleData
}
 

Variables

const u_map_magic MapMagic = { {'M', 'A', 'P', 'S'} }
 
const uint32 MapVersionMagic = 9
 
const u_map_magic MapAreaMagic = { {'A', 'R', 'E', 'A'} }
 
const u_map_magic MapHeightMagic = { {'M', 'H', 'G', 'T'} }
 
const u_map_magic MapLiquidMagic = { {'M', 'L', 'I', 'Q'} }
 

Macro Definition Documentation

◆ INVALID_HEIGHT

#define INVALID_HEIGHT   -100000.0f

◆ MAP_ALL_LIQUIDS

◆ MAP_AREA_NO_AREA

#define MAP_AREA_NO_AREA   0x0001

◆ MAP_HEIGHT_AS_INT16

#define MAP_HEIGHT_AS_INT16   0x0002

◆ MAP_HEIGHT_AS_INT8

#define MAP_HEIGHT_AS_INT8   0x0004

◆ MAP_HEIGHT_HAS_FLIGHT_BOUNDS

#define MAP_HEIGHT_HAS_FLIGHT_BOUNDS   0x0008

◆ MAP_HEIGHT_NO_HEIGHT

#define MAP_HEIGHT_NO_HEIGHT   0x0001

◆ MAP_LIQUID_NO_HEIGHT

#define MAP_LIQUID_NO_HEIGHT   0x0002

◆ MAP_LIQUID_NO_TYPE

#define MAP_LIQUID_NO_TYPE   0x0001

◆ MAP_LIQUID_STATUS_IN_CONTACT

#define MAP_LIQUID_STATUS_IN_CONTACT   (MAP_LIQUID_STATUS_SWIMMING | LIQUID_MAP_WATER_WALK)

◆ MAP_LIQUID_STATUS_SWIMMING

#define MAP_LIQUID_STATUS_SWIMMING   (LIQUID_MAP_IN_WATER | LIQUID_MAP_UNDER_WATER)

◆ MAP_LIQUID_TYPE_DARK_WATER

#define MAP_LIQUID_TYPE_DARK_WATER   0x10

◆ MAP_LIQUID_TYPE_MAGMA

#define MAP_LIQUID_TYPE_MAGMA   0x04

◆ MAP_LIQUID_TYPE_NO_WATER

#define MAP_LIQUID_TYPE_NO_WATER   0x00

◆ MAP_LIQUID_TYPE_OCEAN

#define MAP_LIQUID_TYPE_OCEAN   0x02

◆ MAP_LIQUID_TYPE_SLIME

#define MAP_LIQUID_TYPE_SLIME   0x08

◆ MAP_LIQUID_TYPE_WATER

#define MAP_LIQUID_TYPE_WATER   0x01

◆ MAX_FALL_DISTANCE

#define MAX_FALL_DISTANCE   250000.0f

◆ MAX_HEIGHT

#define MAX_HEIGHT   100000.0f

◆ MIN_HEIGHT

#define MIN_HEIGHT   -500.0f

Enumeration Type Documentation

◆ LiquidStatus

Enumerator
LIQUID_MAP_NO_WATER 
LIQUID_MAP_ABOVE_WATER 
LIQUID_MAP_WATER_WALK 
LIQUID_MAP_IN_WATER 
LIQUID_MAP_UNDER_WATER 
190{
191 LIQUID_MAP_NO_WATER = 0x00000000,
192 LIQUID_MAP_ABOVE_WATER = 0x00000001,
193 LIQUID_MAP_WATER_WALK = 0x00000002,
194 LIQUID_MAP_IN_WATER = 0x00000004,
195 LIQUID_MAP_UNDER_WATER = 0x00000008
196};
@ LIQUID_MAP_UNDER_WATER
Definition GridTerrainData.h:195
@ LIQUID_MAP_NO_WATER
Definition GridTerrainData.h:191
@ LIQUID_MAP_IN_WATER
Definition GridTerrainData.h:194
@ LIQUID_MAP_ABOVE_WATER
Definition GridTerrainData.h:192
@ LIQUID_MAP_WATER_WALK
Definition GridTerrainData.h:193

◆ TerrainMapDataReadResult

enum class TerrainMapDataReadResult
strong
Enumerator
Success 
NotFound 
ReadError 
InvalidMagic 
InvalidAreaData 
InvalidHeightData 
InvalidLiquidData 
InvalidHoleData 

Variable Documentation

◆ MapAreaMagic

const u_map_magic MapAreaMagic = { {'A', 'R', 'E', 'A'} }
55{ {'A', 'R', 'E', 'A'} };

Referenced by GridTerrainData::LoadAreaData().

◆ MapHeightMagic

const u_map_magic MapHeightMagic = { {'M', 'H', 'G', 'T'} }
56{ {'M', 'H', 'G', 'T'} };

Referenced by GridTerrainData::LoadHeightData().

◆ MapLiquidMagic

const u_map_magic MapLiquidMagic = { {'M', 'L', 'I', 'Q'} }
57{ {'M', 'L', 'I', 'Q'} };

Referenced by GridTerrainData::LoadLiquidData().

◆ MapMagic

const u_map_magic MapMagic = { {'M', 'A', 'P', 'S'} }
53{ {'M', 'A', 'P', 'S'} };

Referenced by GridTerrainLoader::ExistMap(), and GridTerrainData::Load().

◆ MapVersionMagic

const uint32 MapVersionMagic = 9