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