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