TrinityCore
Loading...
Searching...
No Matches
MapDefines.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef MapDefines_h__
19#define MapDefines_h__
20
21#include "Define.h"
22#include "EnumFlag.h"
23#include "Optional.h"
24#include <array>
25
27using u_map_magic = std::array<char, 4>;
28
34
35// ******************************************
36// Map file format defines
37// ******************************************
52
54{
55 None = 0x0000,
56 NoArea = 0x0001
57};
58
60
67
69{
70 None = 0x0000,
71 NoHeight = 0x0001,
72 HeightAsInt16 = 0x0002,
73 HeightAsInt8 = 0x0004,
74 HasFlightBounds = 0x0008
75};
76
78
86
88{
89 None = 0x0000,
90 NoType = 0x0001,
91 NoHeight = 0x0002
92};
93
95
97{
98 NoWater = 0x00,
99 Water = 0x01,
100 Ocean = 0x02,
101 Magma = 0x04,
102 Slime = 0x08,
103
104 DarkWater = 0x10,
105
107};
108
110
112{
113 Transparent = 0x1,
114 VisualOnly = 0x2,
115};
116
118
131
141
142#define MAP_LIQUID_STATUS_SWIMMING (LIQUID_MAP_IN_WATER | LIQUID_MAP_UNDER_WATER)
143#define MAP_LIQUID_STATUS_IN_CONTACT (MAP_LIQUID_STATUS_SWIMMING | LIQUID_MAP_WATER_WALK)
144
152
154{
155 WmoLocation() = default;
156 WmoLocation(int32 groupId, int32 nameSetId, int32 rootId, uint32 uniqueId)
157 : GroupId(groupId), NameSetId(nameSetId), RootId(rootId), UniqueId(uniqueId) { }
158
163};
164
175
176#endif // MapDefines_h__
uint8_t uint8
Definition Define.h:156
#define TC_COMMON_API
Definition Define.h:99
int32_t int32
Definition Define.h:150
uint16_t uint16
Definition Define.h:155
uint32_t uint32
Definition Define.h:154
#define DEFINE_ENUM_FLAG(enumType)
Definition EnumFlag.h:26
map_areaHeaderFlags
Definition MapDefines.h:54
TC_COMMON_API u_map_magic const MapMagic
map_heightHeaderFlags
Definition MapDefines.h:69
TC_COMMON_API u_map_magic const MapAreaMagic
map_liquidHeaderFlags
Definition MapDefines.h:88
std::array< char, 4 > u_map_magic
Represents a map magic value of 4 bytes (used in versions)
Definition MapDefines.h:27
ZLiquidStatus
Definition MapDefines.h:133
@ LIQUID_MAP_UNDER_WATER
Definition MapDefines.h:138
@ LIQUID_MAP_OCEAN_FLOOR
Definition MapDefines.h:139
@ LIQUID_MAP_NO_WATER
Definition MapDefines.h:134
@ LIQUID_MAP_IN_WATER
Definition MapDefines.h:137
@ LIQUID_MAP_ABOVE_WATER
Definition MapDefines.h:135
@ LIQUID_MAP_WATER_WALK
Definition MapDefines.h:136
LiquidMaterialFlags
Definition MapDefines.h:112
TC_COMMON_API uint32 const MapVersionMagic
TC_COMMON_API u_map_magic const MapLiquidMagic
map_liquidHeaderTypeFlags
Definition MapDefines.h:97
TC_COMMON_API u_map_magic const MapHeightMagic
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition Optional.h:25
uint32 entry
Definition MapDefines.h:148
EnumFlag< map_liquidHeaderTypeFlags > type_flags
Definition MapDefines.h:147
float depth_level
Definition MapDefines.h:150
float level
Definition MapDefines.h:149
Optional< LiquidData > liquidInfo
Definition MapDefines.h:173
Optional< WmoLocation > wmoLocation
Definition MapDefines.h:172
ZLiquidStatus liquidStatus
Definition MapDefines.h:171
uint32 UniqueId
Definition MapDefines.h:162
int32 GroupId
Definition MapDefines.h:159
WmoLocation()=default
int32 NameSetId
Definition MapDefines.h:160
WmoLocation(int32 groupId, int32 nameSetId, int32 rootId, uint32 uniqueId)
Definition MapDefines.h:156
EnumFlag< map_areaHeaderFlags > flags
Definition MapDefines.h:64
uint16 gridArea
Definition MapDefines.h:65
u_map_magic areaMagic
Definition MapDefines.h:63
u_map_magic mapMagic
Definition MapDefines.h:40
uint32 holesSize
Definition MapDefines.h:50
uint32 liquidMapSize
Definition MapDefines.h:48
uint32 areaMapOffset
Definition MapDefines.h:43
uint32 heightMapSize
Definition MapDefines.h:46
uint32 heightMapOffset
Definition MapDefines.h:45
uint32 buildMagic
Definition MapDefines.h:42
uint32 holesOffset
Definition MapDefines.h:49
uint32 versionMagic
Definition MapDefines.h:41
uint32 liquidMapOffset
Definition MapDefines.h:47
uint32 areaMapSize
Definition MapDefines.h:44
EnumFlag< map_heightHeaderFlags > flags
Definition MapDefines.h:82
u_map_magic heightMagic
Definition MapDefines.h:81
u_map_magic liquidMagic
Definition MapDefines.h:121
EnumFlag< map_liquidHeaderFlags > flags
Definition MapDefines.h:122
EnumFlag< map_liquidHeaderTypeFlags > liquidFlags
Definition MapDefines.h:123