TrinityCore
Loading...
Searching...
No Matches
GameObjectData.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 GameObjectData_h__
19#define GameObjectData_h__
20
21#include "Common.h"
22#include "QuaternionData.h"
23#include "SharedDefines.h"
24#include "SpawnData.h"
25#include <array>
26#include <memory>
27#include <set>
28#include <string>
29
30class WorldPacket;
31
33{
34 Consumable = 0x0001,
35 RequireLOS = 0x0002,
36 LeaveLoot = 0x0004,
37 NotInCombat = 0x0008,
38 LogLoot = 0x0010,
39 UseGroupLootRules = 0x0020,
40 FloatingTooltip = 0x0040,
41 GroupXP = 0x0080,
42 DamageImmuneOK = 0x0100,
43 GiganticAOI = 0x0200,
44 LargeAOI = 0x0400,
46 ForceSingleLooter = 0x1000
47};
48
50
59
60// from `gameobject_template`
62{
66 std::string name;
67 std::string IconName;
68 std::string castBarCaption;
69 std::string unk1;
70 float size;
73 union
74 {
75 // 0 GAMEOBJECT_TYPE_DOOR
76 struct
77 {
78 uint32 startOpen; // 0 startOpen, enum { false, true, }; Default: false
79 uint32 open; // 1 open, References: Lock_, NoValue = 0
80 uint32 autoClose; // 2 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 3000
81 uint32 noDamageImmune; // 3 noDamageImmune, enum { false, true, }; Default: false
82 uint32 openTextID; // 4 openTextID, References: BroadcastText, NoValue = 0
83 uint32 closeTextID; // 5 closeTextID, References: BroadcastText, NoValue = 0
84 uint32 IgnoredByPathing; // 6 Ignored By Pathing, enum { false, true, }; Default: false
85 uint32 conditionID1; // 7 conditionID1, References: PlayerCondition, NoValue = 0
86 uint32 DoorisOpaque; // 8 Door is Opaque (Disable portal on close), enum { false, true, }; Default: true
87 uint32 GiganticAOI; // 9 Gigantic AOI, enum { false, true, }; Default: false
88 uint32 InfiniteAOI; // 10 Infinite AOI, enum { false, true, }; Default: false
89 uint32 NotLOSBlocking; // 11 Not LOS Blocking, enum { false, true, }; Default: false
90 uint32 InteractRadiusOverride; // 12 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
91 uint32 Collisionupdatedelayafteropen; // 13 Collision update delay(ms) after open, int, Min value: 0, Max value: 2147483647, Default value: 0
92 uint32 BlockGhosts; // 14 Block Ghosts, enum { false, true, }; Default: false
94 // 1 GAMEOBJECT_TYPE_BUTTON
95 struct
96 {
97 uint32 startOpen; // 0 startOpen, enum { false, true, }; Default: false
98 uint32 open; // 1 open, References: Lock_, NoValue = 0
99 uint32 autoClose; // 2 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 3000
100 uint32 linkedTrap; // 3 linkedTrap, References: GameObjects, NoValue = 0
101 uint32 noDamageImmune; // 4 noDamageImmune, enum { false, true, }; Default: false
102 uint32 GiganticAOI; // 5 Gigantic AOI, enum { false, true, }; Default: false
103 uint32 openTextID; // 6 openTextID, References: BroadcastText, NoValue = 0
104 uint32 closeTextID; // 7 closeTextID, References: BroadcastText, NoValue = 0
105 uint32 requireLOS; // 8 require LOS, enum { false, true, }; Default: false
106 uint32 conditionID1; // 9 conditionID1, References: PlayerCondition, NoValue = 0
107 uint32 InteractRadiusOverride; // 10 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
109 // 2 GAMEOBJECT_TYPE_QUESTGIVER
110 struct
111 {
112 uint32 open; // 0 open, References: Lock_, NoValue = 0
113 uint32 questGiver; // 1 questGiver, References: QuestGiver, NoValue = 0
114 uint32 pageMaterial; // 2 pageMaterial, References: PageTextMaterial, NoValue = 0
115 uint32 gossipID; // 3 gossipID, References: Gossip, NoValue = 0
116 uint32 customAnim; // 4 customAnim, int, Min value: 0, Max value: 4, Default value: 0
117 uint32 noDamageImmune; // 5 noDamageImmune, enum { false, true, }; Default: false
118 uint32 openTextID; // 6 openTextID, References: BroadcastText, NoValue = 0
119 uint32 requireLOS; // 7 require LOS, enum { false, true, }; Default: false
120 uint32 allowMounted; // 8 allowMounted, enum { false, true, }; Default: false
121 uint32 GiganticAOI; // 9 Gigantic AOI, enum { false, true, }; Default: false
122 uint32 conditionID1; // 10 conditionID1, References: PlayerCondition, NoValue = 0
123 uint32 NeverUsableWhileMounted; // 11 Never Usable While Mounted, enum { false, true, }; Default: false
124 uint32 InteractRadiusOverride; // 12 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
126 // 3 GAMEOBJECT_TYPE_CHEST
127 struct
128 {
129 uint32 open; // 0 open, References: Lock_, NoValue = 0
130 uint32 chestLoot; // 1 chestLoot (legacy/classic), References: Treasure, NoValue = 0
131 uint32 chestRestockTime; // 2 chestRestockTime, int, Min value: 0, Max value: 1800000, Default value: 0
132 uint32 Unused; // 3 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0
133 uint32 minRestock; // 4 minRestock, int, Min value: 0, Max value: 65535, Default value: 0
134 uint32 maxRestock; // 5 maxRestock, int, Min value: 0, Max value: 65535, Default value: 0
135 uint32 triggeredEvent; // 6 triggeredEvent, References: GameEvents, NoValue = 0
136 uint32 linkedTrap; // 7 linkedTrap, References: GameObjects, NoValue = 0
137 uint32 questID; // 8 questID, References: QuestV2, NoValue = 0
138 uint32 InteractRadiusOverride; // 9 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
139 uint32 Unused2; // 10 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0
140 uint32 Unused3; // 11 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0
141 uint32 Unused4; // 12 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0
142 uint32 Unused5; // 13 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0
143 uint32 openTextID; // 14 openTextID, References: BroadcastText, NoValue = 0
144 uint32 Unused6; // 15 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0
145 uint32 Unused7; // 16 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0
146 uint32 conditionID1; // 17 conditionID1, References: PlayerCondition, NoValue = 0
147 int32 xpLevel; // 18 xpLevel, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
148 uint32 xpDifficulty; // 19 xpDifficulty, enum { No Exp, Trivial, Very Small, Small, Substandard, Standard, High, Epic, Dungeon, 5, }; Default: No Exp
149 uint32 ChestFlags; // 20 Chest Flags, int, Min value: 0, Max value: 2147483647, Default value: 0
150 uint32 OneTimeChestCharacterFlag; // 21 One Time Chest Character Flag, References: PlayerDataFlagCharacter, NoValue = 0
151 uint32 OneTimeChestAccountFlag; // 22 One Time Chest Account Flag, References: PlayerDataFlagAccount, NoValue = 0
152 uint32 trivialSkillLow; // 23 trivialSkillLow, int, Min value: 0, Max value: 65535, Default value: 0
153 uint32 trivialSkillHigh; // 24 trivialSkillHigh, int, Min value: 0, Max value: 65535, Default value: 0
154 uint32 DungeonEncounter; // 25 Dungeon Encounter, References: DungeonEncounter, NoValue = 0
155 uint32 spell; // 26 spell, References: Spell, NoValue = 0
156 uint32 Unused8; // 27 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0
157 uint32 Unused9; // 28 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0
158 uint32 SpawnVignette; // 29 Spawn Vignette, References: vignette, NoValue = 0
159 uint32 chestPersonalLoot; // 30 chest Personal Loot, References: Treasure, NoValue = 0
160 uint32 Unused10; // 31 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0
161 uint32 Unused11; // 32 Unused, References: ChestProperties, NoValue = 0
162 uint32 chestPushLoot; // 33 chest Push Loot, References: Treasure, NoValue = 0
163 uint32 Unused12; // 34 Unused, int, Min value: 0, Max value: 2147483647, Default value: 0
165 // 4 GAMEOBJECT_TYPE_BINDER
166 struct
167 {
168 uint32 InteractRadiusOverride; // 0 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
170 // 5 GAMEOBJECT_TYPE_GENERIC
171 struct
172 {
173 uint32 floatingTooltip; // 0 floatingTooltip, enum { false, true, }; Default: false
174 uint32 highlight; // 1 highlight, enum { false, true, }; Default: true
175 uint32 serverOnly; // 2 serverOnly, enum { false, true, }; Default: false
176 uint32 GiganticAOI; // 3 Gigantic AOI, enum { false, true, }; Default: false
177 uint32 floatOnWater; // 4 floatOnWater, enum { false, true, }; Default: false
178 uint32 questID; // 5 questID, References: QuestV2, NoValue = 0
179 uint32 conditionID1; // 6 conditionID1, References: PlayerCondition, NoValue = 0
180 uint32 LargeAOI; // 7 Large AOI, enum { false, true, }; Default: false
181 uint32 UseGarrisonOwnerGuildColors; // 8 Use Garrison Owner Guild Colors, enum { false, true, }; Default: false
182 uint32 InteractRadiusOverride; // 9 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
183 } generic;
184 // 6 GAMEOBJECT_TYPE_TRAP
185 struct
186 {
187 uint32 open; // 0 open, References: Lock_, NoValue = 0
188 uint32 Unused; // 1 Unused, int, Min value: 0, Max value: 65535, Default value: 0
189 uint32 radius; // 2 radius, int, Min value: 0, Max value: 100, Default value: 0
190 uint32 spell; // 3 spell, References: Spell, NoValue = 0
191 uint32 charges; // 4 charges, int, Min value: 0, Max value: 65535, Default value: 1
192 uint32 cooldown; // 5 cooldown, int, Min value: 0, Max value: 65535, Default value: 0
193 uint32 autoClose; // 6 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
194 uint32 startDelay; // 7 startDelay, int, Min value: 0, Max value: 65535, Default value: 0
195 uint32 serverOnly; // 8 serverOnly, enum { false, true, }; Default: false
196 uint32 stealthed; // 9 stealthed, enum { false, true, }; Default: false
197 uint32 GiganticAOI; // 10 Gigantic AOI, enum { false, true, }; Default: false
198 uint32 stealthAffected; // 11 stealthAffected, enum { false, true, }; Default: false
199 uint32 openTextID; // 12 openTextID, References: BroadcastText, NoValue = 0
200 uint32 closeTextID; // 13 closeTextID, References: BroadcastText, NoValue = 0
201 uint32 IgnoreTotems; // 14 Ignore Totems, enum { false, true, }; Default: false
202 uint32 conditionID1; // 15 conditionID1, References: PlayerCondition, NoValue = 0
203 uint32 playerCast; // 16 playerCast, enum { false, true, }; Default: false
204 uint32 SummonerTriggered; // 17 Summoner Triggered, enum { false, true, }; Default: false
205 uint32 requireLOS; // 18 require LOS, enum { false, true, }; Default: false
206 uint32 TriggerCondition; // 19 Trigger Condition, References: PlayerCondition, NoValue = 0
207 uint32 Checkallunits; // 20 Check all units (spawned traps only check players), enum { false, true, }; Default: false
208 uint32 InteractRadiusOverride; // 21 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
210 // 7 GAMEOBJECT_TYPE_CHAIR
211 struct
212 {
213 uint32 chairslots; // 0 chairslots, int, Min value: 1, Max value: 5, Default value: 1
214 uint32 chairheight; // 1 chairheight, int, Min value: 0, Max value: 2, Default value: 1
215 uint32 onlyCreatorUse; // 2 onlyCreatorUse, enum { false, true, }; Default: false
216 uint32 triggeredEvent; // 3 triggeredEvent, References: GameEvents, NoValue = 0
217 uint32 conditionID1; // 4 conditionID1, References: PlayerCondition, NoValue = 0
218 uint32 InteractRadiusOverride; // 5 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
219 uint32 CustomSitAnimKit; // 6 Custom Sit Anim Kit, References: AnimKit, NoValue = 0
220 int32 CustomSitHeightOffset; // 7 Custom Sit Height Offset (inches), int, Min value: -100, Max value: 100, Default value: 0
222 // 8 GAMEOBJECT_TYPE_SPELL_FOCUS
223 struct
224 {
225 uint32 spellFocusType; // 0 spellFocusType, References: SpellFocusObject, NoValue = 0
226 uint32 radius; // 1 radius, int, Min value: 0, Max value: 50, Default value: 10
227 uint32 linkedTrap; // 2 linkedTrap, References: GameObjects, NoValue = 0
228 uint32 serverOnly; // 3 serverOnly, enum { false, true, }; Default: false
229 uint32 questID; // 4 questID, References: QuestV2, NoValue = 0
230 uint32 GiganticAOI; // 5 Gigantic AOI, enum { false, true, }; Default: false
231 uint32 floatingTooltip; // 6 floatingTooltip, enum { false, true, }; Default: false
232 uint32 floatOnWater; // 7 floatOnWater, enum { false, true, }; Default: false
233 uint32 conditionID1; // 8 conditionID1, References: PlayerCondition, NoValue = 0
234 uint32 InteractRadiusOverride; // 9 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
235 uint32 gossipID; // 10 gossipID, References: Gossip, NoValue = 0
236 uint32 spellFocusType2; // 11 spellFocusType 2, References: SpellFocusObject, NoValue = 0
237 uint32 spellFocusType3; // 12 spellFocusType 3, References: SpellFocusObject, NoValue = 0
238 uint32 spellFocusType4; // 13 spellFocusType 4, References: SpellFocusObject, NoValue = 0
239 uint32 Profession; // 14 Profession, enum { First Aid, Blacksmithing, Leatherworking, Alchemy, Herbalism, Cooking, Mining, Tailoring, Engineering, Enchanting, Fishing, Skinning, Jewelcrafting, Inscription, Archaeology, }; Default: Blacksmithing
240 uint32 Profession2; // 15 Profession 2, enum { First Aid, Blacksmithing, Leatherworking, Alchemy, Herbalism, Cooking, Mining, Tailoring, Engineering, Enchanting, Fishing, Skinning, Jewelcrafting, Inscription, Archaeology, }; Default: Blacksmithing
241 uint32 Profession3; // 16 Profession 3, enum { First Aid, Blacksmithing, Leatherworking, Alchemy, Herbalism, Cooking, Mining, Tailoring, Engineering, Enchanting, Fishing, Skinning, Jewelcrafting, Inscription, Archaeology, }; Default: Blacksmithing
243 // 9 GAMEOBJECT_TYPE_TEXT
244 struct
245 {
246 uint32 pageID; // 0 pageID, References: PageText, NoValue = 0
247 uint32 language; // 1 language, References: Languages, NoValue = 0
248 uint32 pageMaterial; // 2 pageMaterial, References: PageTextMaterial, NoValue = 0
249 uint32 allowMounted; // 3 allowMounted, enum { false, true, }; Default: false
250 uint32 conditionID1; // 4 conditionID1, References: PlayerCondition, NoValue = 0
251 uint32 NeverUsableWhileMounted; // 5 Never Usable While Mounted, enum { false, true, }; Default: false
252 uint32 InteractRadiusOverride; // 6 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
254 // 10 GAMEOBJECT_TYPE_GOOBER
255 struct
256 {
257 uint32 open; // 0 open, References: Lock_, NoValue = 0
258 uint32 questID; // 1 questID, References: QuestV2, NoValue = 0
259 uint32 eventID; // 2 eventID, References: GameEvents, NoValue = 0
260 uint32 autoClose; // 3 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 3000
261 uint32 customAnim; // 4 customAnim, int, Min value: 0, Max value: 4, Default value: 0
262 uint32 consumable; // 5 consumable, enum { false, true, }; Default: false
263 uint32 cooldown; // 6 cooldown, int, Min value: 0, Max value: 65535, Default value: 0
264 uint32 pageID; // 7 pageID, References: PageText, NoValue = 0
265 uint32 language; // 8 language, References: Languages, NoValue = 0
266 uint32 pageMaterial; // 9 pageMaterial, References: PageTextMaterial, NoValue = 0
267 uint32 spell; // 10 spell, References: Spell, NoValue = 0
268 uint32 noDamageImmune; // 11 noDamageImmune, enum { false, true, }; Default: false
269 uint32 linkedTrap; // 12 linkedTrap, References: GameObjects, NoValue = 0
270 uint32 GiganticAOI; // 13 Gigantic AOI, enum { false, true, }; Default: false
271 uint32 openTextID; // 14 openTextID, References: BroadcastText, NoValue = 0
272 uint32 closeTextID; // 15 closeTextID, References: BroadcastText, NoValue = 0
273 uint32 requireLOS; // 16 require LOS, enum { false, true, }; Default: false
274 uint32 allowMounted; // 17 allowMounted, enum { false, true, }; Default: false
275 uint32 floatingTooltip; // 18 floatingTooltip, enum { false, true, }; Default: false
276 uint32 gossipID; // 19 gossipID, References: Gossip, NoValue = 0
277 uint32 AllowMultiInteract; // 20 Allow Multi-Interact, enum { false, true, }; Default: false
278 uint32 floatOnWater; // 21 floatOnWater, enum { false, true, }; Default: false
279 uint32 conditionID1; // 22 conditionID1, References: PlayerCondition, NoValue = 0
280 uint32 playerCast; // 23 playerCast, enum { false, true, }; Default: false
281 uint32 SpawnVignette; // 24 Spawn Vignette, References: vignette, NoValue = 0
282 uint32 startOpen; // 25 startOpen, enum { false, true, }; Default: false
283 uint32 DontPlayOpenAnim; // 26 Dont Play Open Anim, enum { false, true, }; Default: false
284 uint32 IgnoreBoundingBox; // 27 Ignore Bounding Box, enum { false, true, }; Default: false
285 uint32 NeverUsableWhileMounted; // 28 Never Usable While Mounted, enum { false, true, }; Default: false
286 uint32 SortFarZ; // 29 Sort Far Z, enum { false, true, }; Default: false
287 uint32 SyncAnimationtoObjectLifetime; // 30 Sync Animation to Object Lifetime (global track only), enum { false, true, }; Default: false
288 uint32 NoFuzzyHit; // 31 No Fuzzy Hit, enum { false, true, }; Default: false
289 uint32 LargeAOI; // 32 Large AOI, enum { false, true, }; Default: false
290 uint32 InteractRadiusOverride; // 33 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
292 // 11 GAMEOBJECT_TYPE_TRANSPORT
293 struct
294 {
295 uint32 Timeto2ndfloor; // 0 Time to 2nd floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
296 uint32 startOpen; // 1 startOpen, enum { false, true, }; Default: false
297 uint32 autoClose; // 2 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
298 uint32 Reached1stfloor; // 3 Reached 1st floor, References: GameEvents, NoValue = 0
299 uint32 Reached2ndfloor; // 4 Reached 2nd floor, References: GameEvents, NoValue = 0
300 int32 SpawnMap; // 5 Spawn Map, References: Map, NoValue = -1
301 uint32 Timeto3rdfloor; // 6 Time to 3rd floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
302 uint32 Reached3rdfloor; // 7 Reached 3rd floor, References: GameEvents, NoValue = 0
303 uint32 Timeto4thfloor; // 8 Time to 4th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
304 uint32 Reached4thfloor; // 9 Reached 4th floor, References: GameEvents, NoValue = 0
305 uint32 Timeto5thfloor; // 10 Time to 5th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
306 uint32 Reached5thfloor; // 11 Reached 5th floor, References: GameEvents, NoValue = 0
307 uint32 Timeto6thfloor; // 12 Time to 6th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
308 uint32 Reached6thfloor; // 13 Reached 6th floor, References: GameEvents, NoValue = 0
309 uint32 Timeto7thfloor; // 14 Time to 7th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
310 uint32 Reached7thfloor; // 15 Reached 7th floor, References: GameEvents, NoValue = 0
311 uint32 Timeto8thfloor; // 16 Time to 8th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
312 uint32 Reached8thfloor; // 17 Reached 8th floor, References: GameEvents, NoValue = 0
313 uint32 Timeto9thfloor; // 18 Time to 9th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
314 uint32 Reached9thfloor; // 19 Reached 9th floor, References: GameEvents, NoValue = 0
315 uint32 Timeto10thfloor; // 20 Time to 10th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
316 uint32 Reached10thfloor; // 21 Reached 10th floor, References: GameEvents, NoValue = 0
317 uint32 onlychargeheightcheck; // 22 only charge height check. (yards), int, Min value: 0, Max value: 65535, Default value: 0
318 uint32 onlychargetimecheck; // 23 only charge time check, int, Min value: 0, Max value: 65535, Default value: 0
319 uint32 InteractRadiusOverride; // 24 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
321 // 12 GAMEOBJECT_TYPE_AREADAMAGE
322 struct
323 {
324 uint32 open; // 0 open, References: Lock_, NoValue = 0
325 uint32 radius; // 1 radius, int, Min value: 0, Max value: 50, Default value: 3
326 uint32 damageMin; // 2 damageMin, int, Min value: 0, Max value: 65535, Default value: 0
327 uint32 damageMax; // 3 damageMax, int, Min value: 0, Max value: 65535, Default value: 0
328 uint32 damageSchool; // 4 damageSchool, int, Min value: 0, Max value: 65535, Default value: 0
329 uint32 autoClose; // 5 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
330 uint32 openTextID; // 6 openTextID, References: BroadcastText, NoValue = 0
331 uint32 closeTextID; // 7 closeTextID, References: BroadcastText, NoValue = 0
332 uint32 InteractRadiusOverride; // 8 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
334 // 13 GAMEOBJECT_TYPE_CAMERA
335 struct
336 {
337 uint32 open; // 0 open, References: Lock_, NoValue = 0
338 uint32 camera; // 1 camera, References: CinematicSequences, NoValue = 0
339 uint32 eventID; // 2 eventID, References: GameEvents, NoValue = 0
340 uint32 openTextID; // 3 openTextID, References: BroadcastText, NoValue = 0
341 uint32 conditionID1; // 4 conditionID1, References: PlayerCondition, NoValue = 0
342 uint32 InteractRadiusOverride; // 5 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
344 // 14 GAMEOBJECT_TYPE_MAP_OBJECT
345 struct
346 {
348 // 15 GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT
349 struct
350 {
351 uint32 taxiPathID; // 0 taxiPathID, References: TaxiPath, NoValue = 0
352 uint32 moveSpeed; // 1 moveSpeed, int, Min value: 1, Max value: 60, Default value: 1
353 uint32 accelRate; // 2 accelRate, int, Min value: 1, Max value: 20, Default value: 1
354 uint32 startEventID; // 3 startEventID, References: GameEvents, NoValue = 0
355 uint32 stopEventID; // 4 stopEventID, References: GameEvents, NoValue = 0
356 uint32 transportPhysics; // 5 transportPhysics, References: TransportPhysics, NoValue = 0
357 int32 SpawnMap; // 6 Spawn Map, References: Map, NoValue = -1
358 uint32 worldState1; // 7 worldState1, References: WorldState, NoValue = 0
359 uint32 allowstopping; // 8 allow stopping, enum { false, true, }; Default: false
360 uint32 InitStopped; // 9 Init Stopped, enum { false, true, }; Default: false
361 uint32 TrueInfiniteAOI; // 10 True Infinite AOI (programmer only!), enum { false, true, }; Default: false
362 uint32 InteractRadiusOverride; // 11 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
363 uint32 Allowareaexplorationwhileonthistransport;// 12 Allow area exploration while on this transport, enum { false, true, }; Default: false
365 // 16 GAMEOBJECT_TYPE_DUEL_ARBITER
366 struct
367 {
368 uint32 InteractRadiusOverride; // 0 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
369 uint32 Willthisduelgountilaplayerdies; // 1 Will this duel go until a player dies?, enum { false, true, }; Default: false
371 // 17 GAMEOBJECT_TYPE_FISHINGNODE
372 struct
373 {
374 uint32 InteractRadiusOverride; // 0 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
376 // 18 GAMEOBJECT_TYPE_RITUAL
377 struct
378 {
379 uint32 casters; // 0 casters, int, Min value: 1, Max value: 10, Default value: 1
380 uint32 spell; // 1 spell, References: Spell, NoValue = 0
381 uint32 animSpell; // 2 animSpell, References: Spell, NoValue = 0
382 uint32 ritualPersistent; // 3 ritualPersistent, enum { false, true, }; Default: false
383 uint32 casterTargetSpell; // 4 casterTargetSpell, References: Spell, NoValue = 0
384 uint32 casterTargetSpellTargets; // 5 casterTargetSpellTargets, int, Min value: 1, Max value: 10, Default value: 1
385 uint32 castersGrouped; // 6 castersGrouped, enum { false, true, }; Default: true
386 uint32 ritualNoTargetCheck; // 7 ritualNoTargetCheck, enum { false, true, }; Default: true
387 uint32 conditionID1; // 8 conditionID1, References: PlayerCondition, NoValue = 0
388 uint32 InteractRadiusOverride; // 9 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
389 uint32 Allowunfriendlycrossfactionpartymemberstocollaborateonaritual;// 10 Allow unfriendly cross faction party members to collaborate on a ritual, enum { false, true, }; Default: false
391 // 19 GAMEOBJECT_TYPE_MAILBOX
392 struct
393 {
394 uint32 conditionID1; // 0 conditionID1, References: PlayerCondition, NoValue = 0
395 uint32 InteractRadiusOverride; // 1 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
397 // 20 GAMEOBJECT_TYPE_DO_NOT_USE
398 struct
399 {
401 // 21 GAMEOBJECT_TYPE_GUARDPOST
402 struct
403 {
404 uint32 creatureID; // 0 creatureID, References: Creature, NoValue = 0
405 uint32 charges; // 1 charges, int, Min value: 0, Max value: 65535, Default value: 1
406 uint32 Preferonlyifinlineofsight; // 2 Prefer only if in line of sight (expensive), enum { false, true, }; Default: false
407 uint32 InteractRadiusOverride; // 3 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
409 // 22 GAMEOBJECT_TYPE_SPELLCASTER
410 struct
411 {
412 uint32 spell; // 0 spell, References: Spell, NoValue = 0
413 int32 charges; // 1 charges, int, Min value: -1, Max value: 65535, Default value: 1
414 uint32 partyOnly; // 2 partyOnly, enum { false, true, }; Default: false
415 uint32 allowMounted; // 3 allowMounted, enum { false, true, }; Default: false
416 uint32 GiganticAOI; // 4 Gigantic AOI, enum { false, true, }; Default: false
417 uint32 conditionID1; // 5 conditionID1, References: PlayerCondition, NoValue = 0
418 uint32 playerCast; // 6 playerCast, enum { false, true, }; Default: false
419 uint32 NeverUsableWhileMounted; // 7 Never Usable While Mounted, enum { false, true, }; Default: false
420 uint32 InteractRadiusOverride; // 8 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
422 // 23 GAMEOBJECT_TYPE_MEETINGSTONE
423 struct
424 {
425 uint32 Unused; // 0 Unused, int, Min value: 0, Max value: 65535, Default value: 1
426 uint32 Unused2; // 1 Unused, int, Min value: 1, Max value: 65535, Default value: 60
427 uint32 areaID; // 2 areaID, References: AreaTable, NoValue = 0
428 uint32 InteractRadiusOverride; // 3 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
429 uint32 Preventmeetingstonefromtargetinganunfriendlypartymemberoutsideofinstances;// 4 Prevent meeting stone from targeting an unfriendly party member outside of instances, enum { false, true, }; Default: false
431 // 24 GAMEOBJECT_TYPE_FLAGSTAND
432 struct
433 {
434 uint32 open; // 0 open, References: Lock_, NoValue = 0
435 uint32 pickupSpell; // 1 pickupSpell, References: Spell, NoValue = 0
436 uint32 radius; // 2 radius, int, Min value: 0, Max value: 50, Default value: 0
437 uint32 returnAura; // 3 returnAura, References: Spell, NoValue = 0
438 uint32 returnSpell; // 4 returnSpell, References: Spell, NoValue = 0
439 uint32 noDamageImmune; // 5 noDamageImmune, enum { false, true, }; Default: false
440 uint32 openTextID; // 6 openTextID, References: BroadcastText, NoValue = 0
441 uint32 requireLOS; // 7 require LOS, enum { false, true, }; Default: true
442 uint32 conditionID1; // 8 conditionID1, References: PlayerCondition, NoValue = 0
443 uint32 playerCast; // 9 playerCast, enum { false, true, }; Default: false
444 uint32 GiganticAOI; // 10 Gigantic AOI, enum { false, true, }; Default: false
445 uint32 InfiniteAOI; // 11 Infinite AOI, enum { false, true, }; Default: false
446 uint32 cooldown; // 12 cooldown, int, Min value: 0, Max value: 2147483647, Default value: 3000
447 uint32 InteractRadiusOverride; // 13 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
449 // 25 GAMEOBJECT_TYPE_FISHINGHOLE
450 struct
451 {
452 uint32 radius; // 0 radius, int, Min value: 0, Max value: 50, Default value: 0
453 uint32 chestLoot; // 1 chestLoot (legacy/classic), References: Treasure, NoValue = 0
454 uint32 minRestock; // 2 minRestock, int, Min value: 0, Max value: 65535, Default value: 0
455 uint32 maxRestock; // 3 maxRestock, int, Min value: 0, Max value: 65535, Default value: 0
456 uint32 open; // 4 open, References: Lock_, NoValue = 0
457 uint32 InteractRadiusOverride; // 5 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
459 // 26 GAMEOBJECT_TYPE_FLAGDROP
460 struct
461 {
462 uint32 open; // 0 open, References: Lock_, NoValue = 0
463 uint32 eventID; // 1 eventID, References: GameEvents, NoValue = 0
464 uint32 pickupSpell; // 2 pickupSpell, References: Spell, NoValue = 0
465 uint32 noDamageImmune; // 3 noDamageImmune, enum { false, true, }; Default: false
466 uint32 openTextID; // 4 openTextID, References: BroadcastText, NoValue = 0
467 uint32 playerCast; // 5 playerCast, enum { false, true, }; Default: false
468 uint32 ExpireDuration; // 6 Expire Duration, int, Min value: 0, Max value: 60000, Default value: 10000
469 uint32 GiganticAOI; // 7 Gigantic AOI, enum { false, true, }; Default: false
470 uint32 InfiniteAOI; // 8 Infinite AOI, enum { false, true, }; Default: false
471 uint32 cooldown; // 9 cooldown, int, Min value: 0, Max value: 2147483647, Default value: 3000
472 uint32 InteractRadiusOverride; // 10 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
474 // 27 GAMEOBJECT_TYPE_MINI_GAME
475 struct
476 {
478 // 28 GAMEOBJECT_TYPE_DO_NOT_USE_2
479 struct
480 {
482 // 29 GAMEOBJECT_TYPE_CONTROL_ZONE
483 struct
484 {
485 uint32 radius; // 0 radius, int, Min value: 0, Max value: 100, Default value: 10
486 uint32 spell; // 1 spell, References: Spell, NoValue = 0
487 uint32 worldState1; // 2 worldState1, References: WorldState, NoValue = 0
488 uint32 worldstate2; // 3 worldstate2, References: WorldState, NoValue = 0
489 uint32 CaptureEventHorde; // 4 Capture Event (Horde), References: GameEvents, NoValue = 0
490 uint32 CaptureEventAlliance; // 5 Capture Event (Alliance), References: GameEvents, NoValue = 0
491 uint32 ContestedEventHorde; // 6 Contested Event (Horde), References: GameEvents, NoValue = 0
492 uint32 ContestedEventAlliance; // 7 Contested Event (Alliance), References: GameEvents, NoValue = 0
493 uint32 ProgressEventHorde; // 8 Progress Event (Horde), References: GameEvents, NoValue = 0
494 uint32 ProgressEventAlliance; // 9 Progress Event (Alliance), References: GameEvents, NoValue = 0
495 uint32 NeutralEventHorde; // 10 Neutral Event (Horde), References: GameEvents, NoValue = 0
496 uint32 NeutralEventAlliance; // 11 Neutral Event (Alliance), References: GameEvents, NoValue = 0
497 uint32 neutralPercent; // 12 neutralPercent, int, Min value: 0, Max value: 100, Default value: 0
498 uint32 worldstate3; // 13 worldstate3, References: WorldState, NoValue = 0
499 uint32 minSuperiority; // 14 minSuperiority, int, Min value: 1, Max value: 65535, Default value: 1
500 uint32 maxSuperiority; // 15 maxSuperiority, int, Min value: 1, Max value: 65535, Default value: 1
501 uint32 minTime; // 16 minTime, int, Min value: 1, Max value: 65535, Default value: 1
502 uint32 maxTime; // 17 maxTime, int, Min value: 1, Max value: 65535, Default value: 1
503 uint32 GiganticAOI; // 18 Gigantic AOI, enum { false, true, }; Default: false
504 uint32 highlight; // 19 highlight, enum { false, true, }; Default: true
505 uint32 startingValue; // 20 startingValue, int, Min value: 0, Max value: 100, Default value: 50
506 uint32 unidirectional; // 21 unidirectional, enum { false, true, }; Default: false
507 uint32 killbonustime; // 22 kill bonus time %, int, Min value: 0, Max value: 100, Default value: 0
508 uint32 speedWorldState1; // 23 speedWorldState1, References: WorldState, NoValue = 0
509 uint32 speedWorldState2; // 24 speedWorldState2, References: WorldState, NoValue = 0
510 uint32 UncontestedTime; // 25 Uncontested Time, int, Min value: 0, Max value: 65535, Default value: 0
511 uint32 FrequentHeartbeat; // 26 Frequent Heartbeat, enum { false, true, }; Default: false
512 uint32 EnablingWorldStateExpression; // 27 Enabling World State Expression, References: WorldStateExpression, NoValue = 0
513 uint32 InteractRadiusOverride; // 28 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
515 // 30 GAMEOBJECT_TYPE_AURA_GENERATOR
516 struct
517 {
518 uint32 startOpen; // 0 startOpen, enum { false, true, }; Default: true
519 uint32 radius; // 1 radius, int, Min value: 0, Max value: 100, Default value: 10
520 uint32 auraID1; // 2 auraID1, References: Spell, NoValue = 0
521 uint32 conditionID1; // 3 conditionID1, References: PlayerCondition, NoValue = 0
522 uint32 auraID2; // 4 auraID2, References: Spell, NoValue = 0
523 uint32 conditionID2; // 5 conditionID2, References: PlayerCondition, NoValue = 0
524 uint32 serverOnly; // 6 serverOnly, enum { false, true, }; Default: false
525 uint32 InteractRadiusOverride; // 7 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
527 // 31 GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY
528 struct
529 {
530 uint32 InstanceType; // 0 Instance Type, enum { Not Instanced, Party Dungeon, Raid Dungeon, PVP Battlefield, Arena Battlefield, Scenario, WoWLabs, House Interior, House Neighborhood, }; Default: Party Dungeon
531 uint32 DifficultyNormal; // 1 Difficulty Normal, References: animationdata, NoValue = 0
532 uint32 DifficultyHeroic; // 2 Difficulty Heroic, References: animationdata, NoValue = 0
533 uint32 DifficultyEpic; // 3 Difficulty Epic, References: animationdata, NoValue = 0
534 uint32 DifficultyLegendary; // 4 Difficulty Legendary, References: animationdata, NoValue = 0
535 uint32 HeroicAttachment; // 5 Heroic Attachment, References: gameobjectdisplayinfo, NoValue = 0
536 uint32 ChallengeAttachment; // 6 Challenge Attachment, References: gameobjectdisplayinfo, NoValue = 0
537 uint32 DifficultyAnimations; // 7 Difficulty Animations, References: GameObjectDiffAnim, NoValue = 0
538 uint32 LargeAOI; // 8 Large AOI, enum { false, true, }; Default: false
539 uint32 GiganticAOI; // 9 Gigantic AOI, enum { false, true, }; Default: false
540 uint32 Legacy; // 10 Legacy, enum { false, true, }; Default: false
541 uint32 InteractRadiusOverride; // 11 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
543 // 32 GAMEOBJECT_TYPE_BARBER_CHAIR
544 struct
545 {
546 uint32 chairheight; // 0 chairheight, int, Min value: 0, Max value: 2, Default value: 1
547 int32 CustomSitHeightOffset; // 1 Custom Sit Height Offset (inches), int, Min value: -100, Max value: 100, Default value: 0
548 uint32 CustomSitAnimKit; // 2 Custom Sit Anim Kit, References: AnimKit, NoValue = 0
549 uint32 InteractRadiusOverride; // 3 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
550 uint32 CustomizationFeatureMask; // 4 Customization Feature Mask, int, Min value: 0, Max value: 2147483647, Default value: 0
551 uint32 Preventteleportingtheplayeroutofthebarbershopchair;// 5 Prevent teleporting the player out of the barbershop chair, enum { false, true, }; Default: false
553 // 33 GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING
554 struct
555 {
556 int32 Unused; // 0 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
557 uint32 CreditProxyCreature; // 1 Credit Proxy Creature, References: Creature, NoValue = 0
558 uint32 HealthRec; // 2 Health Rec, References: DestructibleHitpoint, NoValue = 0
559 uint32 IntactEvent; // 3 Intact Event, References: GameEvents, NoValue = 0
560 uint32 PVPEnabling; // 4 PVP Enabling, enum { false, true, }; Default: false
561 uint32 InteriorVisible; // 5 Interior Visible, enum { false, true, }; Default: false
562 uint32 InteriorLight; // 6 Interior Light, enum { false, true, }; Default: false
563 int32 Unused1; // 7 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
564 int32 Unused2; // 8 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
565 uint32 DamagedEvent; // 9 Damaged Event, References: GameEvents, NoValue = 0
566 int32 Unused3; // 10 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
567 int32 Unused4; // 11 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
568 int32 Unused5; // 12 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
569 int32 Unused6; // 13 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
570 uint32 DestroyedEvent; // 14 Destroyed Event, References: GameEvents, NoValue = 0
571 int32 Unused7; // 15 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
572 uint32 RebuildingTime; // 16 Rebuilding: Time (secs), int, Min value: 0, Max value: 65535, Default value: 0
573 int32 Unused8; // 17 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
574 uint32 DestructibleModelRec; // 18 Destructible Model Rec, References: DestructibleModelData, NoValue = 0
575 uint32 RebuildingEvent; // 19 Rebuilding: Event, References: GameEvents, NoValue = 0
576 int32 Unused9; // 20 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
577 int32 Unused10; // 21 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
578 uint32 DamageEvent; // 22 Damage Event, References: GameEvents, NoValue = 0
579 uint32 Displaymouseoverasanameplate; // 23 Display mouseover as a nameplate, enum { false, true, }; Default: false
580 int32 Thexoffsetofthedestructiblenameplateifitisenabled;// 24 The x offset (in hundredths) of the destructible nameplate, if it is enabled, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
581 int32 Theyoffsetofthedestructiblenameplateifitisenabled;// 25 The y offset (in hundredths) of the destructible nameplate, if it is enabled, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
582 int32 Thezoffsetofthedestructiblenameplateifitisenabled;// 26 The z offset (in hundredths) of the destructible nameplate, if it is enabled, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
583 uint32 InteractRadiusOverride; // 27 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
585 // 34 GAMEOBJECT_TYPE_GUILD_BANK
586 struct
587 {
588 uint32 conditionID1; // 0 conditionID1, References: PlayerCondition, NoValue = 0
589 uint32 InteractRadiusOverride; // 1 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
591 // 35 GAMEOBJECT_TYPE_TRAPDOOR
592 struct
593 {
594 uint32 AutoLink; // 0 Auto Link, enum { false, true, }; Default: false
595 uint32 startOpen; // 1 startOpen, enum { false, true, }; Default: false
596 uint32 autoClose; // 2 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
597 uint32 BlocksPathsDown; // 3 Blocks Paths Down, enum { false, true, }; Default: false
598 int32 PathBlockerBump; // 4 Path Blocker Bump (ft), int, Min value: -2147483648, Max value: 2147483647, Default value: 0
599 uint32 GiganticAOI; // 5 Gigantic AOI, enum { false, true, }; Default: false
600 uint32 InfiniteAOI; // 6 Infinite AOI, enum { false, true, }; Default: false
601 uint32 DoorisOpaque; // 7 Door is Opaque (Disable portal on close), enum { false, true, }; Default: false
602 uint32 InteractRadiusOverride; // 8 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
604 // 36 GAMEOBJECT_TYPE_NEW_FLAG
605 struct
606 {
607 uint32 open; // 0 open, References: Lock_, NoValue = 0
608 uint32 pickupSpell; // 1 pickupSpell, References: Spell, NoValue = 0
609 uint32 openTextID; // 2 openTextID, References: BroadcastText, NoValue = 0
610 uint32 requireLOS; // 3 require LOS, enum { false, true, }; Default: true
611 uint32 conditionID1; // 4 conditionID1, References: PlayerCondition, NoValue = 0
612 uint32 GiganticAOI; // 5 Gigantic AOI, enum { false, true, }; Default: false
613 uint32 InfiniteAOI; // 6 Infinite AOI, enum { false, true, }; Default: false
614 uint32 ExpireDuration; // 7 Expire Duration, int, Min value: 0, Max value: 3600000, Default value: 10000
615 uint32 RespawnTime; // 8 Respawn Time, int, Min value: 0, Max value: 3600000, Default value: 20000
616 uint32 FlagDrop; // 9 Flag Drop, References: GameObjects, NoValue = 0
617 int32 ExclusiveCategory; // 10 Exclusive Category (BGs Only), int, Min value: -2147483648, Max value: 2147483647, Default value: 0
618 uint32 worldState1; // 11 worldState1, References: WorldState, NoValue = 0
619 uint32 ReturnonDefenderInteract; // 12 Return on Defender Interact, enum { false, true, }; Default: false
620 uint32 SpawnVignette; // 13 Spawn Vignette, References: vignette, NoValue = 0
621 uint32 InteractRadiusOverride; // 14 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
623 // 37 GAMEOBJECT_TYPE_NEW_FLAG_DROP
624 struct
625 {
626 uint32 open; // 0 open, References: Lock_, NoValue = 0
627 uint32 SpawnVignette; // 1 Spawn Vignette, References: vignette, NoValue = 0
628 uint32 InteractRadiusOverride; // 2 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
630 // 38 GAMEOBJECT_TYPE_GARRISON_BUILDING
631 struct
632 {
633 int32 SpawnMap; // 0 Spawn Map, References: Map, NoValue = -1
634 uint32 InteractRadiusOverride; // 1 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
636 // 39 GAMEOBJECT_TYPE_GARRISON_PLOT
637 struct
638 {
639 uint32 PlotInstance; // 0 Plot Instance, References: GarrPlotInstance, NoValue = 0
640 int32 SpawnMap; // 1 Spawn Map, References: Map, NoValue = -1
641 uint32 InteractRadiusOverride; // 2 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
643 // 40 GAMEOBJECT_TYPE_CLIENT_CREATURE
644 struct
645 {
646 uint32 CreatureDisplayInfo; // 0 Creature Display Info, References: CreatureDisplayInfo, NoValue = 0
647 uint32 AnimKit; // 1 Anim Kit, References: AnimKit, NoValue = 0
648 uint32 creatureID; // 2 creatureID, References: Creature, NoValue = 0
650 // 41 GAMEOBJECT_TYPE_CLIENT_ITEM
651 struct
652 {
653 uint32 Item; // 0 Item, References: Item, NoValue = 0
655 // 42 GAMEOBJECT_TYPE_CAPTURE_POINT
656 struct
657 {
658 uint32 CaptureTime; // 0 Capture Time (ms), int, Min value: 0, Max value: 2147483647, Default value: 60000
659 uint32 GiganticAOI; // 1 Gigantic AOI, enum { false, true, }; Default: false
660 uint32 highlight; // 2 highlight, enum { false, true, }; Default: true
661 uint32 open; // 3 open, References: Lock_, NoValue = 0
662 uint32 AssaultBroadcastHorde; // 4 Assault Broadcast (Horde), References: BroadcastText, NoValue = 0
663 uint32 CaptureBroadcastHorde; // 5 Capture Broadcast (Horde), References: BroadcastText, NoValue = 0
664 uint32 DefendedBroadcastHorde; // 6 Defended Broadcast (Horde), References: BroadcastText, NoValue = 0
665 uint32 AssaultBroadcastAlliance; // 7 Assault Broadcast (Alliance), References: BroadcastText, NoValue = 0
666 uint32 CaptureBroadcastAlliance; // 8 Capture Broadcast (Alliance), References: BroadcastText, NoValue = 0
667 uint32 DefendedBroadcastAlliance; // 9 Defended Broadcast (Alliance), References: BroadcastText, NoValue = 0
668 uint32 worldState1; // 10 worldState1, References: WorldState, NoValue = 0
669 uint32 ContestedEventHorde; // 11 Contested Event (Horde), References: GameEvents, NoValue = 0
670 uint32 CaptureEventHorde; // 12 Capture Event (Horde), References: GameEvents, NoValue = 0
671 uint32 DefendedEventHorde; // 13 Defended Event (Horde), References: GameEvents, NoValue = 0
672 uint32 ContestedEventAlliance; // 14 Contested Event (Alliance), References: GameEvents, NoValue = 0
673 uint32 CaptureEventAlliance; // 15 Capture Event (Alliance), References: GameEvents, NoValue = 0
674 uint32 DefendedEventAlliance; // 16 Defended Event (Alliance), References: GameEvents, NoValue = 0
675 uint32 SpellVisual1; // 17 Spell Visual 1, References: SpellVisual, NoValue = 0
676 uint32 SpellVisual2; // 18 Spell Visual 2, References: SpellVisual, NoValue = 0
677 uint32 SpellVisual3; // 19 Spell Visual 3, References: SpellVisual, NoValue = 0
678 uint32 SpellVisual4; // 20 Spell Visual 4, References: SpellVisual, NoValue = 0
679 uint32 SpellVisual5; // 21 Spell Visual 5, References: SpellVisual, NoValue = 0
680 uint32 SpawnVignette; // 22 Spawn Vignette, References: vignette, NoValue = 0
681 uint32 InteractRadiusOverride; // 23 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
683 // 43 GAMEOBJECT_TYPE_PHASEABLE_MO
684 struct
685 {
686 int32 SpawnMap; // 0 Spawn Map, References: Map, NoValue = -1
687 int32 AreaNameSet; // 1 Area Name Set (Index), int, Min value: -2147483648, Max value: 2147483647, Default value: 0
688 uint32 DoodadSetA; // 2 Doodad Set A, int, Min value: 0, Max value: 2147483647, Default value: 0
689 uint32 DoodadSetB; // 3 Doodad Set B, int, Min value: 0, Max value: 2147483647, Default value: 0
690 uint32 InteractRadiusOverride; // 4 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
692 // 44 GAMEOBJECT_TYPE_GARRISON_MONUMENT
693 struct
694 {
695 uint32 TrophyTypeID; // 0 Trophy Type ID, References: TrophyType, NoValue = 0
696 uint32 TrophyInstanceID; // 1 Trophy Instance ID, References: TrophyInstance, NoValue = 0
697 uint32 InteractRadiusOverride; // 2 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
699 // 45 GAMEOBJECT_TYPE_GARRISON_SHIPMENT
700 struct
701 {
702 uint32 ShipmentContainer; // 0 Shipment Container, References: CharShipmentContainer, NoValue = 0
703 uint32 GiganticAOI; // 1 Gigantic AOI, enum { false, true, }; Default: false
704 uint32 LargeAOI; // 2 Large AOI, enum { false, true, }; Default: false
705 uint32 InteractRadiusOverride; // 3 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
707 // 46 GAMEOBJECT_TYPE_GARRISON_MONUMENT_PLAQUE
708 struct
709 {
710 uint32 TrophyInstanceID; // 0 Trophy Instance ID, References: TrophyInstance, NoValue = 0
711 uint32 InteractRadiusOverride; // 1 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
713 // 47 GAMEOBJECT_TYPE_ITEM_FORGE
714 struct
715 {
716 uint32 conditionID1; // 0 conditionID1, References: PlayerCondition, NoValue = 0
717 uint32 LargeAOI; // 1 Large AOI, enum { false, true, }; Default: false
718 uint32 IgnoreBoundingBox; // 2 Ignore Bounding Box, enum { false, true, }; Default: false
719 uint32 CameraMode; // 3 Camera Mode, References: CameraMode, NoValue = 0
720 uint32 FadeRegionRadius; // 4 Fade Region Radius, int, Min value: 0, Max value: 2147483647, Default value: 0
721 uint32 ForgeType; // 5 Forge Type, enum { Artifact Forge, Relic Forge, Heart Forge, Soulbind Forge, Anima Reservoir, }; Default: Relic Forge
722 uint32 InteractRadiusOverride; // 6 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
723 uint32 GarrTalentTreeID; // 7 GarrTalentTree ID, References: GarrTalentTree, NoValue = 0
725 // 48 GAMEOBJECT_TYPE_UI_LINK
726 struct
727 {
728 uint32 UILinkType; // 0 UI Link Type(Deprecated), enum { Adventure Journal, Obliterum Forge, Scrapping Machine, Item Interaction, Cornerstone Interaction, }; Default: Adventure Journal
729 uint32 allowMounted; // 1 allowMounted, enum { false, true, }; Default: false
730 uint32 GiganticAOI; // 2 Gigantic AOI, enum { false, true, }; Default: false
731 uint32 spellFocusType; // 3 spellFocusType, References: SpellFocusObject, NoValue = 0
732 uint32 radius; // 4 radius, int, Min value: 0, Max value: 50, Default value: 10
733 uint32 InteractRadiusOverride; // 5 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
734 uint32 ItemInteractionID; // 6 Item Interaction ID, References: UiItemInteraction, NoValue = 0
735 uint32 PlayerInteractionType; // 7 Player Interaction Type, enum { None, TradePartner, Item, Gossip, QuestGiver, Merchant, TaxiNode, Trainer, Banker, AlliedRaceDetailsGiver, GuildBanker, Registrar, Vendor, PetitionVendor, GuildTabardVendor, TalentMaster, SpecializationMaster, MailInfo, SpiritHealer, AreaSpiritHealer, Binder, Auctioneer, StableMaster, BattleMaster, Transmogrifier, LFGDungeon, VoidStorageBanker, BlackMarketAuctioneer, AdventureMap, WorldMap, GarrArchitect, GarrTradeskill, GarrMission, ShipmentCrafter, GarrRecruitment, GarrTalent, Trophy, PlayerChoice, ArtifactForge, ObliterumForge, ScrappingMachine, ContributionCollector, AzeriteRespec, IslandQueue, ItemInteraction, ChromieTime, CovenantPreview, AnimaDiversion, LegendaryCrafting, WeeklyRewards, Soulbind, CovenantSanctum, NewPlayerGuide, ItemUpgrade, AdventureJournal, Renown, AzeriteForge, PerksProgramVendor, ProfessionsCraftingOrder, Professions, ProfessionsCustomerOrder, TraitSystem, BarbersChoice, JailersTowerBuffs, MajorFactionRenown, PersonalTabardVendor, ForgeMaster, CharacterBanker, AccountBanker, ProfessionRespec, CornerstoneInteraction, RenameNeighborhood, HousingBulletinBoard, HousingPedestal, CreateGuildNeighborhood, NeighborhoodCharter, GuildRename, OpenNeighborhoodCharterConfirmation, OpenHouseFinder, TieredEntrance, }; Default: None
736 uint32 spell; // 8 spell, References: Spell, NoValue = 0
738 // 49 GAMEOBJECT_TYPE_KEYSTONE_RECEPTACLE
739 struct
740 {
741 uint32 InteractRadiusOverride; // 0 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
743 // 50 GAMEOBJECT_TYPE_GATHERING_NODE
744 struct
745 {
746 uint32 open; // 0 open, References: Lock_, NoValue = 0
747 uint32 chestLoot; // 1 chestLoot (legacy/classic), References: Treasure, NoValue = 0
748 uint32 Unused; // 2 Unused, int, Min value: 0, Max value: 65535, Default value: 0
749 uint32 notInCombat; // 3 notInCombat, enum { false, true, }; Default: false
750 uint32 trivialSkillLow; // 4 trivialSkillLow, int, Min value: 0, Max value: 65535, Default value: 0
751 uint32 trivialSkillHigh; // 5 trivialSkillHigh, int, Min value: 0, Max value: 65535, Default value: 0
752 uint32 ObjectDespawnDelay; // 6 Object Despawn Delay, int, Min value: 0, Max value: 600, Default value: 15
753 uint32 triggeredEvent; // 7 triggeredEvent, References: GameEvents, NoValue = 0
754 uint32 requireLOS; // 8 require LOS, enum { false, true, }; Default: false
755 uint32 openTextID; // 9 openTextID, References: BroadcastText, NoValue = 0
756 uint32 floatingTooltip; // 10 floatingTooltip, enum { false, true, }; Default: false
757 uint32 conditionID1; // 11 conditionID1, References: PlayerCondition, NoValue = 0
758 int32 Unused2; // 12 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
759 uint32 xpDifficulty; // 13 xpDifficulty, enum { No Exp, Trivial, Very Small, Small, Substandard, Standard, High, Epic, Dungeon, 5, }; Default: No Exp
760 uint32 spell; // 14 spell, References: Spell, NoValue = 0
761 uint32 GiganticAOI; // 15 Gigantic AOI, enum { false, true, }; Default: false
762 uint32 LargeAOI; // 16 Large AOI, enum { false, true, }; Default: false
763 uint32 SpawnVignette; // 17 Spawn Vignette, References: vignette, NoValue = 0
764 uint32 MaxNumberofLoots; // 18 Max Number of Loots, int, Min value: 1, Max value: 40, Default value: 10
765 uint32 logloot; // 19 log loot, enum { false, true, }; Default: false
766 uint32 linkedTrap; // 20 linkedTrap, References: GameObjects, NoValue = 0
767 uint32 PlayOpenAnimationonOpening; // 21 Play Open Animation on Opening, enum { false, true, }; Default: false
768 uint32 turnpersonallootsecurityoff; // 22 turn personal loot security off, enum { false, true, }; Default: false
769 uint32 ClearObjectVignetteonOpening; // 23 Clear Object Vignette on Opening, enum { false, true, }; Default: false
770 uint32 InteractRadiusOverride; // 24 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
771 uint32 Overrideminimaptrackingicon; // 25 Override minimap tracking icon, References: UiTextureAtlasMember, NoValue = 0
773 // 51 GAMEOBJECT_TYPE_CHALLENGE_MODE_REWARD
774 struct
775 {
776 int32 Unused; // 0 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
777 uint32 WhenAvailable; // 1 When Available, References: GameObjectDisplayInfo, NoValue = 0
778 uint32 open; // 2 open, References: Lock_, NoValue = 0
779 uint32 openTextID; // 3 openTextID, References: BroadcastText, NoValue = 0
780 uint32 InteractRadiusOverride; // 4 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
782 // 52 GAMEOBJECT_TYPE_MULTI
783 struct
784 {
785 uint32 MultiProperties; // 0 Multi Properties, References: MultiProperties, NoValue = 0
787 // 53 GAMEOBJECT_TYPE_SIEGEABLE_MULTI
788 struct
789 {
790 uint32 MultiProperties; // 0 Multi Properties, References: MultiProperties, NoValue = 0
791 uint32 InitialDamage; // 1 Initial Damage, enum { None, Raw, Ratio, }; Default: None
793 // 54 GAMEOBJECT_TYPE_SIEGEABLE_MO
794 struct
795 {
796 uint32 SiegeableProperties; // 0 Siegeable Properties, References: SiegeableProperties, NoValue = 0
797 uint32 DoodadSetA; // 1 Doodad Set A, int, Min value: 0, Max value: 2147483647, Default value: 0
798 uint32 DoodadSetB; // 2 Doodad Set B, int, Min value: 0, Max value: 2147483647, Default value: 0
799 uint32 DoodadSetC; // 3 Doodad Set C, int, Min value: 0, Max value: 2147483647, Default value: 0
800 int32 SpawnMap; // 4 Spawn Map, References: Map, NoValue = -1
801 int32 AreaNameSet; // 5 Area Name Set (Index), int, Min value: -2147483648, Max value: 2147483647, Default value: 0
802 uint32 InteractRadiusOverride; // 6 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
804 // 55 GAMEOBJECT_TYPE_PVP_REWARD
805 struct
806 {
807 int32 Unused; // 0 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
808 uint32 WhenAvailable; // 1 When Available, References: GameObjectDisplayInfo, NoValue = 0
809 uint32 open; // 2 open, References: Lock_, NoValue = 0
810 uint32 openTextID; // 3 openTextID, References: BroadcastText, NoValue = 0
811 uint32 InteractRadiusOverride; // 4 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
813 // 56 GAMEOBJECT_TYPE_PLAYER_CHOICE_CHEST
814 struct
815 {
816 uint32 spell; // 0 spell, References: Spell, NoValue = 0
817 uint32 WhenAvailable; // 1 When Available, References: GameObjectDisplayInfo, NoValue = 0
818 uint32 GiganticAOI; // 2 Gigantic AOI, enum { false, true, }; Default: false
819 uint32 PlayerChoice; // 3 Player Choice, References: PlayerChoice, NoValue = 0
820 uint32 MawPowerFilter; // 4 Maw Power Filter, References: MawPowerFilter, NoValue = 0
821 uint32 Script; // 5 Script, References: SpellScript, NoValue = 0
822 uint32 SpellVisual1; // 6 Spell Visual 1, References: SpellVisual, NoValue = 0
823 uint32 InteractRadiusOverride; // 7 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
824 uint32 Dontupdateplayerinteractability; // 8 Don't update player interactability, enum { false, true, }; Default: false
826 // 57 GAMEOBJECT_TYPE_LEGENDARY_FORGE
827 struct
828 {
829 uint32 PlayerChoice; // 0 Player Choice, References: PlayerChoice, NoValue = 0
830 uint32 CustomItemBonusFilter; // 1 Custom Item Bonus Filter, References: CustomItemBonusFilter, NoValue = 0
831 uint32 InteractRadiusOverride; // 2 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
833 // 58 GAMEOBJECT_TYPE_GARR_TALENT_TREE
834 struct
835 {
836 uint32 UiMapID; // 0 Ui Map ID, References: UiMap, NoValue = 0
837 uint32 GarrTalentTreeID; // 1 GarrTalentTree ID, References: GarrTalentTree, NoValue = 0
838 uint32 InteractRadiusOverride; // 2 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
840 // 59 GAMEOBJECT_TYPE_WEEKLY_REWARD_CHEST
841 struct
842 {
843 uint32 WhenAvailable; // 0 When Available, References: GameObjectDisplayInfo, NoValue = 0
844 uint32 open; // 1 open, References: Lock_, NoValue = 0
845 uint32 InteractRadiusOverride; // 2 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
846 uint32 ExpansionLevel; // 3 Expansion Level, int, Min value: 0, Max value: 2147483647, Default value: 0
848 // 60 GAMEOBJECT_TYPE_CLIENT_MODEL
849 struct
850 {
851 uint32 LargeAOI; // 0 Large AOI, enum { false, true, }; Default: false
852 uint32 GiganticAOI; // 1 Gigantic AOI, enum { false, true, }; Default: false
853 uint32 InfiniteAOI; // 2 Infinite AOI, enum { false, true, }; Default: false
854 uint32 TrueInfiniteAOI; // 3 True Infinite AOI (programmer only!), enum { false, true, }; Default: false
856 // 61 GAMEOBJECT_TYPE_CRAFTING_TABLE
857 struct
858 {
859 uint32 Profession; // 0 Profession, enum { First Aid, Blacksmithing, Leatherworking, Alchemy, Herbalism, Cooking, Mining, Tailoring, Engineering, Enchanting, Fishing, Skinning, Jewelcrafting, Inscription, Archaeology, }; Default: Blacksmithing
861 // 62 GAMEOBJECT_TYPE_PERKS_PROGRAM_CHEST
862 struct
863 {
864 uint32 Script; // 0 Script, References: SpellScript, NoValue = 0
865 uint32 autoClose; // 1 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 3000
867 // 63 GAMEOBJECT_TYPE_FUTURE_PATCH
868 struct
869 {
871 // 64 GAMEOBJECT_TYPE_ASSIST_ACTION
872 struct
873 {
874 uint32 AssistActionType; // 0 Assist Action Type, enum { None, Lounging Player, Grave Marker, Placed VO, Player Guardian, Player Slayer, Captured Buff, }; Default: None
875 uint32 cooldown; // 1 cooldown, int, Min value: 0, Max value: 2147483647, Default value: 3000
876 uint32 gossipID; // 2 gossipID, References: Gossip, NoValue = 0
877 uint32 spell; // 3 spell, References: Spell, NoValue = 0
878 uint32 playerCast; // 4 playerCast, enum { false, true, }; Default: false
880 struct
881 {
884 };
885
886 std::string AIName;
888 std::string StringId;
889 std::unique_ptr<WorldPacket[]> QueryData;
890
891 // helpers
892 bool IsDespawnAtAction() const
893 {
894 switch (type)
895 {
897 case GAMEOBJECT_TYPE_GOOBER: return goober.consumable != 0;
898 default: return false;
899 }
900 }
901
902 bool IsUsableMounted() const
903 {
904 switch (type)
905 {
906 case GAMEOBJECT_TYPE_MAILBOX: return true;
907 case GAMEOBJECT_TYPE_BARBER_CHAIR: return false;
908 case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.allowMounted != 0;
909 case GAMEOBJECT_TYPE_TEXT: return text.allowMounted != 0;
910 case GAMEOBJECT_TYPE_GOOBER: return goober.allowMounted != 0;
911 case GAMEOBJECT_TYPE_SPELLCASTER: return spellCaster.allowMounted != 0;
912 case GAMEOBJECT_TYPE_UI_LINK: return UILink.allowMounted != 0;
913 default: return false;
914 }
915 }
916
918 {
919 switch (type)
920 {
921 case GAMEOBJECT_TYPE_CHEST: return chest.questID;
922 case GAMEOBJECT_TYPE_GENERIC: return generic.questID;
923 case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.questID;
924 case GAMEOBJECT_TYPE_GOOBER: return goober.questID;
925 default: return 0;
926 }
927 }
928
930 {
931 switch (type)
932 {
933 case GAMEOBJECT_TYPE_DOOR: return door.conditionID1;
934 case GAMEOBJECT_TYPE_BUTTON: return button.conditionID1;
935 case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.conditionID1;
936 case GAMEOBJECT_TYPE_CHEST: return chest.conditionID1;
937 case GAMEOBJECT_TYPE_GENERIC: return generic.conditionID1;
938 case GAMEOBJECT_TYPE_TRAP: return trap.conditionID1;
939 case GAMEOBJECT_TYPE_CHAIR: return chair.conditionID1;
940 case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.conditionID1;
941 case GAMEOBJECT_TYPE_TEXT: return text.conditionID1;
942 case GAMEOBJECT_TYPE_GOOBER: return goober.conditionID1;
943 case GAMEOBJECT_TYPE_CAMERA: return camera.conditionID1;
944 case GAMEOBJECT_TYPE_RITUAL: return ritual.conditionID1;
945 case GAMEOBJECT_TYPE_MAILBOX: return mailbox.conditionID1;
946 case GAMEOBJECT_TYPE_SPELLCASTER: return spellCaster.conditionID1;
947 case GAMEOBJECT_TYPE_FLAGSTAND: return flagStand.conditionID1;
948 case GAMEOBJECT_TYPE_AURA_GENERATOR: return auraGenerator.conditionID1;
949 case GAMEOBJECT_TYPE_GUILD_BANK: return guildbank.conditionID1;
950 case GAMEOBJECT_TYPE_NEW_FLAG: return newflag.conditionID1;
951 case GAMEOBJECT_TYPE_ITEM_FORGE: return itemForge.conditionID1;
952 case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.conditionID1;
953 default: return 0;
954 }
955 }
956
958 {
959 switch (type)
960 {
961 case GAMEOBJECT_TYPE_DOOR: return door.InteractRadiusOverride;
962 case GAMEOBJECT_TYPE_BUTTON: return button.InteractRadiusOverride;
963 case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.InteractRadiusOverride;
964 case GAMEOBJECT_TYPE_CHEST: return chest.InteractRadiusOverride;
965 case GAMEOBJECT_TYPE_BINDER: return binder.InteractRadiusOverride;
966 case GAMEOBJECT_TYPE_GENERIC: return generic.InteractRadiusOverride;
967 case GAMEOBJECT_TYPE_TRAP: return trap.InteractRadiusOverride;
968 case GAMEOBJECT_TYPE_CHAIR: return chair.InteractRadiusOverride;
969 case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.InteractRadiusOverride;
970 case GAMEOBJECT_TYPE_TEXT: return text.InteractRadiusOverride;
971 case GAMEOBJECT_TYPE_GOOBER: return goober.InteractRadiusOverride;
972 case GAMEOBJECT_TYPE_TRANSPORT: return transport.InteractRadiusOverride;
973 case GAMEOBJECT_TYPE_AREADAMAGE: return areaDamage.InteractRadiusOverride;
974 case GAMEOBJECT_TYPE_CAMERA: return camera.InteractRadiusOverride;
975 case GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT: return moTransport.InteractRadiusOverride;
976 case GAMEOBJECT_TYPE_DUEL_ARBITER: return duelFlag.InteractRadiusOverride;
977 case GAMEOBJECT_TYPE_FISHINGNODE: return fishingNode.InteractRadiusOverride;
978 case GAMEOBJECT_TYPE_RITUAL: return ritual.InteractRadiusOverride;
979 case GAMEOBJECT_TYPE_MAILBOX: return mailbox.InteractRadiusOverride;
980 case GAMEOBJECT_TYPE_GUARDPOST: return guardPost.InteractRadiusOverride;
981 case GAMEOBJECT_TYPE_SPELLCASTER: return spellCaster.InteractRadiusOverride;
982 case GAMEOBJECT_TYPE_MEETINGSTONE: return meetingStone.InteractRadiusOverride;
983 case GAMEOBJECT_TYPE_FLAGSTAND: return flagStand.InteractRadiusOverride;
984 case GAMEOBJECT_TYPE_FISHINGHOLE: return fishingHole.InteractRadiusOverride;
985 case GAMEOBJECT_TYPE_FLAGDROP: return flagDrop.InteractRadiusOverride;
986 case GAMEOBJECT_TYPE_CONTROL_ZONE: return controlZone.InteractRadiusOverride;
987 case GAMEOBJECT_TYPE_AURA_GENERATOR: return auraGenerator.InteractRadiusOverride;
988 case GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY: return dungeonDifficulty.InteractRadiusOverride;
989 case GAMEOBJECT_TYPE_BARBER_CHAIR: return barberChair.InteractRadiusOverride;
990 case GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING: return destructibleBuilding.InteractRadiusOverride;
991 case GAMEOBJECT_TYPE_GUILD_BANK: return guildbank.InteractRadiusOverride;
992 case GAMEOBJECT_TYPE_TRAPDOOR: return trapdoor.InteractRadiusOverride;
993 case GAMEOBJECT_TYPE_NEW_FLAG: return newflag.InteractRadiusOverride;
994 case GAMEOBJECT_TYPE_NEW_FLAG_DROP: return newflagdrop.InteractRadiusOverride;
995 case GAMEOBJECT_TYPE_GARRISON_BUILDING: return garrisonBuilding.InteractRadiusOverride;
996 case GAMEOBJECT_TYPE_GARRISON_PLOT: return garrisonPlot.InteractRadiusOverride;
997 case GAMEOBJECT_TYPE_CAPTURE_POINT: return capturePoint.InteractRadiusOverride;
998 case GAMEOBJECT_TYPE_PHASEABLE_MO: return phaseableMO.InteractRadiusOverride;
999 case GAMEOBJECT_TYPE_GARRISON_MONUMENT: return garrisonMonument.InteractRadiusOverride;
1000 case GAMEOBJECT_TYPE_GARRISON_SHIPMENT: return garrisonShipment.InteractRadiusOverride;
1001 case GAMEOBJECT_TYPE_GARRISON_MONUMENT_PLAQUE: return garrisonMonumentPlaque.InteractRadiusOverride;
1002 case GAMEOBJECT_TYPE_ITEM_FORGE: return itemForge.InteractRadiusOverride;
1003 case GAMEOBJECT_TYPE_UI_LINK: return UILink.InteractRadiusOverride;
1004 case GAMEOBJECT_TYPE_KEYSTONE_RECEPTACLE: return KeystoneReceptacle.InteractRadiusOverride;
1005 case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.InteractRadiusOverride;
1006 case GAMEOBJECT_TYPE_CHALLENGE_MODE_REWARD: return challengeModeReward.InteractRadiusOverride;
1007 case GAMEOBJECT_TYPE_SIEGEABLE_MO: return siegeableMO.InteractRadiusOverride;
1008 case GAMEOBJECT_TYPE_PVP_REWARD: return pvpReward.InteractRadiusOverride;
1009 case GAMEOBJECT_TYPE_PLAYER_CHOICE_CHEST: return playerChoiceChest.InteractRadiusOverride;
1010 case GAMEOBJECT_TYPE_LEGENDARY_FORGE: return legendaryForge.InteractRadiusOverride;
1011 case GAMEOBJECT_TYPE_GARR_TALENT_TREE: return garrTalentTree.InteractRadiusOverride;
1012 case GAMEOBJECT_TYPE_WEEKLY_REWARD_CHEST: return weeklyRewardChest.InteractRadiusOverride;
1013 default: return 0;
1014 }
1015 }
1016
1018 {
1019 switch (type)
1020 {
1021 case GAMEOBJECT_TYPE_BUTTON: return button.requireLOS;
1022 case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.requireLOS;
1024 case GAMEOBJECT_TYPE_TRAP: return trap.requireLOS;
1025 case GAMEOBJECT_TYPE_GOOBER: return goober.requireLOS;
1026 case GAMEOBJECT_TYPE_FLAGSTAND: return flagStand.requireLOS;
1027 case GAMEOBJECT_TYPE_NEW_FLAG: return newflag.requireLOS;
1028 case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.requireLOS;
1029 default: return 0;
1030 }
1031 }
1032
1034 {
1035 switch (type)
1036 {
1037 case GAMEOBJECT_TYPE_DOOR: return door.open;
1038 case GAMEOBJECT_TYPE_BUTTON: return button.open;
1039 case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.open;
1040 case GAMEOBJECT_TYPE_CHEST: return chest.open;
1041 case GAMEOBJECT_TYPE_TRAP: return trap.open;
1042 case GAMEOBJECT_TYPE_GOOBER: return goober.open;
1043 case GAMEOBJECT_TYPE_AREADAMAGE: return areaDamage.open;
1044 case GAMEOBJECT_TYPE_CAMERA: return camera.open;
1045 case GAMEOBJECT_TYPE_FLAGSTAND: return flagStand.open;
1046 case GAMEOBJECT_TYPE_FISHINGHOLE: return fishingHole.open;
1047 case GAMEOBJECT_TYPE_FLAGDROP: return flagDrop.open;
1048 case GAMEOBJECT_TYPE_NEW_FLAG: return newflag.open;
1053 case GAMEOBJECT_TYPE_PVP_REWARD: return pvpReward.open;
1055 default: return 0;
1056 }
1057 }
1058
1059 bool GetDespawnPossibility() const // despawn at targeting of cast?
1060 {
1061 switch (type)
1062 {
1063 case GAMEOBJECT_TYPE_DOOR: return door.noDamageImmune != 0;
1064 case GAMEOBJECT_TYPE_BUTTON: return button.noDamageImmune != 0;
1065 case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.noDamageImmune != 0;
1066 case GAMEOBJECT_TYPE_GOOBER: return goober.noDamageImmune != 0;
1067 case GAMEOBJECT_TYPE_FLAGSTAND: return flagStand.noDamageImmune != 0;
1068 case GAMEOBJECT_TYPE_FLAGDROP: return flagDrop.noDamageImmune != 0;
1069 default: return true;
1070 }
1071 }
1072
1073 // Cannot be used/activated/looted by players under immunity effects (example: Divine Shield)
1075 {
1076 switch (type)
1077 {
1078 case GAMEOBJECT_TYPE_DOOR: return door.noDamageImmune;
1079 case GAMEOBJECT_TYPE_BUTTON: return button.noDamageImmune;
1080 case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.noDamageImmune;
1082 case GAMEOBJECT_TYPE_GOOBER: return goober.noDamageImmune;
1083 case GAMEOBJECT_TYPE_FLAGSTAND: return flagStand.noDamageImmune;
1084 case GAMEOBJECT_TYPE_FLAGDROP: return flagDrop.noDamageImmune;
1085 default: return 0;
1086 }
1087 }
1088
1090 {
1091 switch (type)
1092 {
1094 case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.notInCombat;
1095 default: return 0;
1096 }
1097 }
1098
1099 uint32 GetCharges() const // despawn at uses amount
1100 {
1101 switch (type)
1102 {
1103 //case GAMEOBJECT_TYPE_TRAP: return trap.charges;
1104 case GAMEOBJECT_TYPE_GUARDPOST: return guardPost.charges;
1105 case GAMEOBJECT_TYPE_SPELLCASTER: return spellCaster.charges;
1106 default: return 0;
1107 }
1108 }
1109
1111 {
1112 switch (type)
1113 {
1114 case GAMEOBJECT_TYPE_BUTTON: return button.linkedTrap;
1115 case GAMEOBJECT_TYPE_CHEST: return chest.linkedTrap;
1116 case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.linkedTrap;
1117 case GAMEOBJECT_TYPE_GOOBER: return goober.linkedTrap;
1118 case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.linkedTrap;
1119 default: return 0;
1120 }
1121 }
1122
1124 {
1125 switch (type)
1126 {
1127 case GAMEOBJECT_TYPE_DOOR: return door.autoClose;
1128 case GAMEOBJECT_TYPE_BUTTON: return button.autoClose;
1129 case GAMEOBJECT_TYPE_TRAP: return trap.autoClose;
1130 case GAMEOBJECT_TYPE_GOOBER: return goober.autoClose;
1131 case GAMEOBJECT_TYPE_TRANSPORT: return transport.autoClose;
1132 case GAMEOBJECT_TYPE_AREADAMAGE: return areaDamage.autoClose;
1133 case GAMEOBJECT_TYPE_TRAPDOOR: return trapdoor.autoClose;
1135 default: return 0;
1136 }
1137 }
1138
1140 {
1141 switch (type)
1142 {
1143 case GAMEOBJECT_TYPE_CHEST: return chest.chestLoot;
1144 case GAMEOBJECT_TYPE_FISHINGHOLE: return fishingHole.chestLoot;
1145 case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.chestLoot;
1146 default: return 0;
1147 }
1148 }
1149
1151 {
1152 switch (type)
1153 {
1155 default: return false;
1156 }
1157 }
1158
1160 {
1161 switch (type)
1162 {
1163 case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.gossipID;
1164 case GAMEOBJECT_TYPE_GOOBER: return goober.gossipID;
1165 case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.gossipID;
1166 case GAMEOBJECT_TYPE_ASSIST_ACTION: return assistAction.gossipID;
1167 default: return 0;
1168 }
1169 }
1170
1171 std::set<uint32> GetEventScriptSet() const
1172 {
1173 std::set<uint32> eventSet;
1174 switch (type)
1175 {
1177 eventSet.insert(chest.triggeredEvent);
1178 break;
1180 eventSet.insert(chair.triggeredEvent);
1181 break;
1183 eventSet.insert(goober.eventID);
1184 break;
1186 eventSet.insert(transport.Reached1stfloor);
1187 eventSet.insert(transport.Reached2ndfloor);
1188 eventSet.insert(transport.Reached3rdfloor);
1189 eventSet.insert(transport.Reached4thfloor);
1190 eventSet.insert(transport.Reached5thfloor);
1191 eventSet.insert(transport.Reached6thfloor);
1192 eventSet.insert(transport.Reached7thfloor);
1193 eventSet.insert(transport.Reached8thfloor);
1194 eventSet.insert(transport.Reached9thfloor);
1195 eventSet.insert(transport.Reached10thfloor);
1196 break;
1198 eventSet.insert(camera.eventID);
1199 break;
1201 eventSet.insert(moTransport.startEventID);
1202 eventSet.insert(moTransport.stopEventID);
1203 break;
1205 eventSet.insert(flagDrop.eventID);
1206 break;
1208 eventSet.insert(controlZone.CaptureEventHorde);
1209 eventSet.insert(controlZone.CaptureEventAlliance);
1210 eventSet.insert(controlZone.ContestedEventHorde);
1211 eventSet.insert(controlZone.ContestedEventAlliance);
1212 eventSet.insert(controlZone.ProgressEventHorde);
1213 eventSet.insert(controlZone.ProgressEventAlliance);
1214 eventSet.insert(controlZone.NeutralEventHorde);
1215 eventSet.insert(controlZone.NeutralEventAlliance);
1216 break;
1218 eventSet.insert(destructibleBuilding.IntactEvent);
1219 eventSet.insert(destructibleBuilding.DamagedEvent);
1220 eventSet.insert(destructibleBuilding.DestroyedEvent);
1221 eventSet.insert(destructibleBuilding.RebuildingEvent);
1222 eventSet.insert(destructibleBuilding.DamageEvent);
1223 break;
1225 eventSet.insert(capturePoint.ContestedEventHorde);
1226 eventSet.insert(capturePoint.CaptureEventHorde);
1227 eventSet.insert(capturePoint.DefendedEventHorde);
1228 eventSet.insert(capturePoint.ContestedEventAlliance);
1229 eventSet.insert(capturePoint.CaptureEventAlliance);
1230 eventSet.insert(capturePoint.DefendedEventAlliance);
1231 break;
1233 eventSet.insert(gatheringNode.triggeredEvent);
1234 break;
1235 default:
1236 break;
1237 }
1238
1239 // Erase invalid value added from unused GameEvents data fields
1240 eventSet.erase(0);
1241
1242 return eventSet;
1243 }
1244
1246 {
1247 switch (type)
1248 {
1249 case GAMEOBJECT_TYPE_CHEST: return chest.trivialSkillHigh;
1250 case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.trivialSkillHigh;
1251 default: return 0;
1252 }
1253 }
1254
1256 {
1257 switch (type)
1258 {
1259 case GAMEOBJECT_TYPE_CHEST: return chest.trivialSkillLow;
1260 case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.trivialSkillLow;
1261 default: return 0;
1262 }
1263 }
1264
1265 uint32 GetCooldown() const // Cooldown preventing goober and traps to cast spell
1266 {
1267 switch (type)
1268 {
1269 case GAMEOBJECT_TYPE_TRAP: return trap.cooldown;
1270 case GAMEOBJECT_TYPE_GOOBER: return goober.cooldown;
1271 case GAMEOBJECT_TYPE_ASSIST_ACTION: return assistAction.cooldown;
1272 default: return 0;
1273 }
1274 }
1275
1277 {
1278 switch (type)
1279 {
1280 case GAMEOBJECT_TYPE_DOOR: return door.InfiniteAOI != 0;
1281 case GAMEOBJECT_TYPE_FLAGSTAND: return flagStand.InfiniteAOI != 0;
1282 case GAMEOBJECT_TYPE_FLAGDROP: return flagDrop.InfiniteAOI != 0;
1283 case GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING: return true;
1284 case GAMEOBJECT_TYPE_TRAPDOOR: return trapdoor.InfiniteAOI != 0;
1285 case GAMEOBJECT_TYPE_NEW_FLAG: return newflag.InfiniteAOI != 0;
1286 case GAMEOBJECT_TYPE_GARRISON_BUILDING: return true;
1287 case GAMEOBJECT_TYPE_PHASEABLE_MO: return true;
1288 case GAMEOBJECT_TYPE_SIEGEABLE_MO: return true;
1289 case GAMEOBJECT_TYPE_CLIENT_MODEL: return newflag.InfiniteAOI != 0;
1290 default: return false;
1291 }
1292 }
1293
1295 {
1296 switch (type)
1297 {
1298 case GAMEOBJECT_TYPE_DOOR: return door.GiganticAOI != 0;
1299 case GAMEOBJECT_TYPE_BUTTON: return button.GiganticAOI != 0;
1300 case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.GiganticAOI != 0;
1302 case GAMEOBJECT_TYPE_GENERIC: return generic.GiganticAOI != 0;
1303 case GAMEOBJECT_TYPE_TRAP: return trap.GiganticAOI != 0;
1304 case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.GiganticAOI != 0;
1305 case GAMEOBJECT_TYPE_GOOBER: return goober.GiganticAOI != 0;
1306 case GAMEOBJECT_TYPE_TRANSPORT: return true;
1307 case GAMEOBJECT_TYPE_SPELLCASTER: return spellCaster.GiganticAOI != 0;
1308 case GAMEOBJECT_TYPE_FLAGSTAND: return flagStand.GiganticAOI != 0;
1309 case GAMEOBJECT_TYPE_FLAGDROP: return flagDrop.GiganticAOI != 0;
1310 case GAMEOBJECT_TYPE_CONTROL_ZONE: return controlZone.GiganticAOI != 0;
1311 case GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY: return dungeonDifficulty.GiganticAOI != 0;
1312 case GAMEOBJECT_TYPE_TRAPDOOR: return trapdoor.GiganticAOI != 0;
1313 case GAMEOBJECT_TYPE_NEW_FLAG: return newflag.GiganticAOI != 0;
1314 case GAMEOBJECT_TYPE_GARRISON_PLOT: return true;
1315 case GAMEOBJECT_TYPE_CAPTURE_POINT: return capturePoint.GiganticAOI != 0;
1316 case GAMEOBJECT_TYPE_GARRISON_SHIPMENT: return garrisonShipment.GiganticAOI != 0;
1317 case GAMEOBJECT_TYPE_UI_LINK: return UILink.GiganticAOI != 0;
1318 case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.GiganticAOI != 0;
1319 case GAMEOBJECT_TYPE_PLAYER_CHOICE_CHEST: return gatheringNode.GiganticAOI != 0;
1320 case GAMEOBJECT_TYPE_CLIENT_MODEL: return gatheringNode.GiganticAOI != 0;
1321 default: return false;
1322 }
1323 }
1324
1326 {
1327 switch (type)
1328 {
1330 case GAMEOBJECT_TYPE_GENERIC: return generic.LargeAOI != 0;
1331 case GAMEOBJECT_TYPE_GOOBER: return goober.LargeAOI != 0;
1332 case GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY: return dungeonDifficulty.LargeAOI != 0;
1333 case GAMEOBJECT_TYPE_GARRISON_SHIPMENT: return garrisonShipment.LargeAOI != 0;
1334 case GAMEOBJECT_TYPE_ITEM_FORGE: return itemForge.LargeAOI != 0;
1335 case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.LargeAOI != 0;
1336 case GAMEOBJECT_TYPE_CLIENT_MODEL: return clientModel.LargeAOI != 0;
1337 default: return false;
1338 }
1339 }
1340
1342 {
1343 switch (type)
1344 {
1345 case GAMEOBJECT_TYPE_GENERIC: return generic.serverOnly;
1346 case GAMEOBJECT_TYPE_TRAP: return trap.serverOnly;
1347 case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.serverOnly;
1348 case GAMEOBJECT_TYPE_AURA_GENERATOR: return auraGenerator.serverOnly;
1349 default: return 0;
1350 }
1351 }
1352
1354 {
1355 switch (type)
1356 {
1357 case GAMEOBJECT_TYPE_CHEST: return chest.SpawnVignette;
1358 case GAMEOBJECT_TYPE_GOOBER: return goober.SpawnVignette;
1359 case GAMEOBJECT_TYPE_NEW_FLAG: return newflag.SpawnVignette;
1360 case GAMEOBJECT_TYPE_NEW_FLAG_DROP: return newflagdrop.SpawnVignette;
1361 case GAMEOBJECT_TYPE_CAPTURE_POINT: return capturePoint.SpawnVignette;
1362 case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.SpawnVignette;
1363 default: return 0;
1364 }
1365 }
1366
1368 {
1369 switch (type)
1370 {
1371 case GAMEOBJECT_TYPE_GATHERING_NODE: return gatheringNode.ClearObjectVignetteonOpening != 0;
1372 default: return false;
1373 }
1374 }
1375
1377 {
1378 switch (type)
1379 {
1380 case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.spellFocusType;
1381 case GAMEOBJECT_TYPE_UI_LINK: return UILink.spellFocusType;
1382 default: return 0;
1383 }
1384 }
1385
1387 {
1388 switch (type)
1389 {
1390 case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.radius;
1391 case GAMEOBJECT_TYPE_UI_LINK: return UILink.radius;
1392 default: return 0;
1393 }
1394 }
1395
1397 {
1398 switch (type)
1399 {
1403 return false;
1404 default:
1405 return true;
1406 }
1407 }
1408
1409 void InitializeQueryData();
1411};
1412
1413// From `gameobject_template_addon`, `gameobject_overrides`
1415{
1416 uint32 Faction = 0;
1417 uint32 Flags = 0;
1418};
1419
1420// From `gameobject_template_addon`
1422{
1423 uint32 Mingold = 0;
1424 uint32 Maxgold = 0;
1425 std::array<uint32, 5> ArtKits = { };
1426 uint32 WorldEffectID = 0;
1427 uint32 AIAnimKitID = 0;
1428};
1429
1431{
1432 std::vector<std::string> Name;
1433 std::vector<std::string> CastBarCaption;
1434 std::vector<std::string> Unk1;
1435};
1436
1437// `gameobject_addon` table
1446
1447// `gameobject` table
1456
1458{
1459 // Name from client executable // Comments
1460 None = 0, // -NONE-
1461 AnimateCustom0 = 1, // Animate Custom0
1462 AnimateCustom1 = 2, // Animate Custom1
1463 AnimateCustom2 = 3, // Animate Custom2
1464 AnimateCustom3 = 4, // Animate Custom3
1465 Disturb = 5, // Disturb // Triggers trap
1466 Unlock = 6, // Unlock // Resets GO_FLAG_LOCKED
1467 Lock = 7, // Lock // Sets GO_FLAG_LOCKED
1468 Open = 8, // Open // Sets GO_STATE_ACTIVE
1469 OpenAndUnlock = 9, // Open + Unlock // Sets GO_STATE_ACTIVE and resets GO_FLAG_LOCKED
1470 Close = 10, // Close // Sets GO_STATE_READY
1471 ToggleOpen = 11, // Toggle Open
1472 Destroy = 12, // Destroy // Sets GO_STATE_DESTROYED
1473 Rebuild = 13, // Rebuild // Resets from GO_STATE_DESTROYED
1474 Creation = 14, // Creation
1475 Despawn = 15, // Despawn
1476 MakeInert = 16, // Make Inert // Disables interactions
1477 MakeActive = 17, // Make Active // Enables interactions
1478 CloseAndLock = 18, // Close + Lock // Sets GO_STATE_READY and sets GO_FLAG_LOCKED
1479 UseArtKit0 = 19, // Use ArtKit0 // 46904: 121
1480 UseArtKit1 = 20, // Use ArtKit1 // 36639: 81, 46903: 122
1481 UseArtKit2 = 21, // Use ArtKit2
1482 UseArtKit3 = 22, // Use ArtKit3
1483 SetTapList = 23, // Set Tap List
1484 GoTo1stFloor = 24, // Go to 1st floor
1485 GoTo2ndFloor = 25, // Go to 2nd floor
1486 GoTo3rdFloor = 26, // Go to 3rd floor
1487 GoTo4thFloor = 27, // Go to 4th floor
1488 GoTo5thFloor = 28, // Go to 5th floor
1489 GoTo6thFloor = 29, // Go to 6th floor
1490 GoTo7thFloor = 30, // Go to 7th floor
1491 GoTo8thFloor = 31, // Go to 8th floor
1492 GoTo9thFloor = 32, // Go to 9th floor
1493 GoTo10thFloor = 33, // Go to 10th floor
1494 UseArtKit4 = 34, // Use ArtKit4
1495 PlayAnimKit = 35, // Play Anim Kit "{AnimKit}"
1496 OpenAndPlayAnimKit = 36, // Open + Play Anim Kit "{AnimKit}"
1497 CloseAndPlayAnimKit = 37, // Close + Play Anim Kit "{AnimKit}"
1498 PlayOneShotAnimKit = 38, // Play One-shot Anim Kit "{AnimKit}"
1499 StopAnimKit = 39, // Stop Anim Kit
1500 OpenAndStopAnimKit = 40, // Open + Stop Anim Kit
1501 CloseAndStopAnimKit = 41, // Close + Stop Anim Kit
1502 PlaySpellVisual = 42, // Play Spell Visual "{SpellVisual}"
1503 StopSpellVisual = 43, // Stop Spell Visual
1504 SetTappedToChallengePlayers = 44, // Set Tapped to Challenge Players
1505 Max
1506};
1507
1508#endif // GameObjectData_h__
LocaleConstant
Definition Common.h:51
int32_t int32
Definition Define.h:150
uint32_t uint32
Definition Define.h:154
#define DEFINE_ENUM_FLAG(enumType)
Definition EnumFlag.h:26
GameObjectActions
GameObjectChestFlags
@ GAMEOBJECT_TYPE_GUILD_BANK
@ GAMEOBJECT_TYPE_GARRISON_SHIPMENT
@ GAMEOBJECT_TYPE_CAMERA
@ GAMEOBJECT_TYPE_CAPTURE_POINT
@ GAMEOBJECT_TYPE_BUTTON
@ GAMEOBJECT_TYPE_SPELL_FOCUS
@ GAMEOBJECT_TYPE_DUEL_ARBITER
@ GAMEOBJECT_TYPE_TRANSPORT
@ GAMEOBJECT_TYPE_PERKS_PROGRAM_CHEST
@ GAMEOBJECT_TYPE_SIEGEABLE_MULTI
@ GAMEOBJECT_TYPE_KEYSTONE_RECEPTACLE
@ GAMEOBJECT_TYPE_AURA_GENERATOR
@ GAMEOBJECT_TYPE_WEEKLY_REWARD_CHEST
@ GAMEOBJECT_TYPE_MULTI
@ GAMEOBJECT_TYPE_GARRISON_MONUMENT
@ GAMEOBJECT_TYPE_MEETINGSTONE
@ GAMEOBJECT_TYPE_TRAP
@ GAMEOBJECT_TYPE_GENERIC
@ GAMEOBJECT_TYPE_GARRISON_MONUMENT_PLAQUE
@ GAMEOBJECT_TYPE_CHEST
@ GAMEOBJECT_TYPE_FISHINGHOLE
@ GAMEOBJECT_TYPE_GARRISON_PLOT
@ GAMEOBJECT_TYPE_TRAPDOOR
@ GAMEOBJECT_TYPE_CONTROL_ZONE
@ GAMEOBJECT_TYPE_NEW_FLAG_DROP
@ GAMEOBJECT_TYPE_FLAGDROP
@ GAMEOBJECT_TYPE_QUESTGIVER
@ GAMEOBJECT_TYPE_MAILBOX
@ GAMEOBJECT_TYPE_SPELLCASTER
@ GAMEOBJECT_TYPE_ASSIST_ACTION
@ GAMEOBJECT_TYPE_FLAGSTAND
@ GAMEOBJECT_TYPE_CLIENT_MODEL
@ GAMEOBJECT_TYPE_CHAIR
@ GAMEOBJECT_TYPE_TEXT
@ GAMEOBJECT_TYPE_PLAYER_CHOICE_CHEST
@ GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY
@ GAMEOBJECT_TYPE_PVP_REWARD
@ GAMEOBJECT_TYPE_AREADAMAGE
@ GAMEOBJECT_TYPE_LEGENDARY_FORGE
@ GAMEOBJECT_TYPE_SIEGEABLE_MO
@ GAMEOBJECT_TYPE_CHALLENGE_MODE_REWARD
@ GAMEOBJECT_TYPE_ITEM_FORGE
@ GAMEOBJECT_TYPE_PHASEABLE_MO
@ GAMEOBJECT_TYPE_NEW_FLAG
@ GAMEOBJECT_TYPE_GOOBER
@ GAMEOBJECT_TYPE_FISHINGNODE
@ GAMEOBJECT_TYPE_GARR_TALENT_TREE
@ GAMEOBJECT_TYPE_BARBER_CHAIR
@ GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT
@ GAMEOBJECT_TYPE_DOOR
@ GAMEOBJECT_TYPE_GARRISON_BUILDING
@ GAMEOBJECT_TYPE_GUARDPOST
@ GAMEOBJECT_TYPE_RITUAL
@ GAMEOBJECT_TYPE_UI_LINK
@ GAMEOBJECT_TYPE_GATHERING_NODE
@ GAMEOBJECT_TYPE_BINDER
@ GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING
InvisibilityType
#define MAX_GAMEOBJECT_DATA
GOState
@ GO_STATE_ACTIVE
@ SPAWN_TYPE_GAMEOBJECT
Definition SpawnData.h:37
constexpr bool HasFlag(T flag) const
Definition EnumFlag.h:106
uint32 GetMaxHealth() const
QuaternionData ParentRotation
InvisibilityType invisibilityType
QuaternionData rotation
std::vector< std::string > Name
std::vector< std::string > Unk1
std::vector< std::string > CastBarCaption
struct GameObjectTemplate::@199::@221 DONOTUSE
struct GameObjectTemplate::@199::@240 garrisonPlot
struct GameObjectTemplate::@199::@242 clientItem
struct GameObjectTemplate::@199::@222 guardPost
struct GameObjectTemplate::@199::@216 moTransport
struct GameObjectTemplate::@199::@218 fishingNode
uint32 GetAutoCloseTime() const
uint32 data[MAX_GAMEOBJECT_DATA]
struct GameObjectTemplate::@199::@241 clientCreature
struct GameObjectTemplate::@199::@229 DONOTUSE2
struct GameObjectTemplate::@199::@258 legendaryForge
struct GameObjectTemplate::@199::@209 spellFocus
struct GameObjectTemplate::@199::@259 garrTalentTree
uint32 Allowareaexplorationwhileonthistransport
uint32 GetSpawnVignette() const
struct GameObjectTemplate::@199::@217 duelFlag
struct GameObjectTemplate::@199::@266 raw
uint32 GetTrivialSkillHigh() const
uint32 Willthisduelgountilaplayerdies
struct GameObjectTemplate::@199::@246 garrisonShipment
uint32 GetGossipMenuId() const
struct GameObjectTemplate::@199::@239 garrisonBuilding
int32 Thexoffsetofthedestructiblenameplateifitisenabled
struct GameObjectTemplate::@199::@249 UILink
bool IsLargeGameObject() const
struct GameObjectTemplate::@199::@248 itemForge
uint32 Allowunfriendlycrossfactionpartymemberstocollaborateonaritual
bool IsUsableMounted() const
struct GameObjectTemplate::@199::@255 siegeableMO
uint32 SyncAnimationtoObjectLifetime
struct GameObjectTemplate::@199::@262 craftingTable
uint32 GetNoDamageImmune() const
bool IsGiganticGameObject() const
WorldPacket BuildQueryData(LocaleConstant loc) const
struct GameObjectTemplate::@199::@265 assistAction
struct GameObjectTemplate::@199::@226 fishingHole
uint32 Dontupdateplayerinteractability
std::set< uint32 > GetEventScriptSet() const
struct GameObjectTemplate::@199::@215 mapobject
uint32 turnpersonallootsecurityoff
struct GameObjectTemplate::@199::@252 challengeModeReward
struct GameObjectTemplate::@199::@211 goober
struct GameObjectTemplate::@199::@261 clientModel
struct GameObjectTemplate::@199::@236 trapdoor
uint32 PlayOpenAnimationonOpening
struct GameObjectTemplate::@199::@253 multi
struct GameObjectTemplate::@199::@250 KeystoneReceptacle
struct GameObjectTemplate::@199::@207 trap
struct GameObjectTemplate::@199::@208 chair
struct GameObjectTemplate::@199::@264 futurePatchGameObject
bool IsInfiniteGameObject() const
struct GameObjectTemplate::@199::@238 newflagdrop
bool IsDespawnAtAction() const
struct GameObjectTemplate::@199::@234 destructibleBuilding
struct GameObjectTemplate::@199::@203 questgiver
uint32 Preventmeetingstonefromtargetinganunfriendlypartymemberoutsideofinstances
struct GameObjectTemplate::@199::@213 areaDamage
bool ClearObjectVignetteonOpening() const
struct GameObjectTemplate::@199::@212 transport
struct GameObjectTemplate::@199::@233 barberChair
uint32 GetCharges() const
uint32 Overrideminimaptrackingicon
uint32 Displaymouseoverasanameplate
uint32 GetSpellFocusRadius() const
struct GameObjectTemplate::@199::@223 spellCaster
struct GameObjectTemplate::@199::@230 controlZone
uint32 GetCooldown() const
struct GameObjectTemplate::@199::@243 capturePoint
int32 Thezoffsetofthedestructiblenameplateifitisenabled
uint32 EnablingWorldStateExpression
uint32 ClearObjectVignetteonOpening
struct GameObjectTemplate::@199::@260 weeklyRewardChest
uint32 Collisionupdatedelayafteropen
bool GetDespawnPossibility() const
struct GameObjectTemplate::@199::@263 PerksProgramChest
uint32 GetServerOnly() const
uint32 GetLinkedGameObjectEntry() const
struct GameObjectTemplate::@199::@232 dungeonDifficulty
struct GameObjectTemplate::@199::@228 miniGame
struct GameObjectTemplate::@199::@245 garrisonMonument
uint32 GetTrivialSkillLow() const
struct GameObjectTemplate::@199::@235 guildbank
struct GameObjectTemplate::@199::@256 pvpReward
struct GameObjectTemplate::@199::@205 binder
uint32 UseGarrisonOwnerGuildColors
struct GameObjectTemplate::@199::@244 phaseableMO
struct GameObjectTemplate::@199::@227 flagDrop
struct GameObjectTemplate::@199::@247 garrisonMonumentPlaque
struct GameObjectTemplate::@199::@210 text
int32 Theyoffsetofthedestructiblenameplateifitisenabled
struct GameObjectTemplate::@199::@254 siegeableMulti
std::string castBarCaption
std::unique_ptr< WorldPacket[]> QueryData
uint32 GetQuestID() const
bool IsUsingGroupLootRules() const
struct GameObjectTemplate::@199::@231 auraGenerator
struct GameObjectTemplate::@199::@202 button
struct GameObjectTemplate::@199::@224 meetingStone
uint32 GetNotInCombat() const
uint32 GetInteractRadiusOverride() const
struct GameObjectTemplate::@199::@237 newflag
uint32 GetLockId() const
struct GameObjectTemplate::@199::@220 mailbox
struct GameObjectTemplate::@199::@251 gatheringNode
bool IsDisplayMandatory() const
struct GameObjectTemplate::@199::@204 chest
struct GameObjectTemplate::@199::@225 flagStand
uint32 GetSpellFocusType() const
struct GameObjectTemplate::@199::@219 ritual
uint32 GetConditionID1() const
uint32 Preventteleportingtheplayeroutofthebarbershopchair
uint32 GetRequireLOS() const
uint32 GetLootId() const
struct GameObjectTemplate::@199::@257 playerChoiceChest
struct GameObjectTemplate::@199::@201 door