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