aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/compiler/clang/settings.cmake2
-rw-r--r--cmake/macros/ConfigureBoost.cmake19
-rw-r--r--sql/updates/world/2014_10_26_00_world.sql1
-rw-r--r--sql/updates/world/2014_10_29_00_world.sql1
-rw-r--r--sql/updates/world/2014_10_29_01_world.sql7
-rw-r--r--sql/updates/world/2014_10_30_00_world.sql1
-rw-r--r--sql/updates/world/2014_10_30_01_world.sql1
-rw-r--r--sql/updates/world/2014_10_30_02_world.sql1
-rw-r--r--sql/updates/world/2014_10_31_00_world.sql33
-rw-r--r--sql/updates/world/2014_10_31_01_world.sql1096
-rw-r--r--sql/updates/world/2014_10_31_02_world.sql268
-rw-r--r--src/server/game/Accounts/AccountMgr.cpp2
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp4
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.cpp16
-rw-r--r--src/server/game/Battlefield/Battlefield.cpp24
-rw-r--r--src/server/game/Battlefield/Zones/BattlefieldWG.cpp4
-rw-r--r--src/server/game/Battlegrounds/ArenaTeam.cpp4
-rw-r--r--src/server/game/Battlegrounds/Battleground.h6
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.cpp8
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp4
-rw-r--r--src/server/game/CMakeLists.txt1
-rw-r--r--src/server/game/Calendar/CalendarMgr.cpp6
-rw-r--r--src/server/game/Chat/Chat.cpp6
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.cpp2
-rw-r--r--src/server/game/Entities/AreaTrigger/AreaTrigger.cpp3
-rw-r--r--src/server/game/Entities/Corpse/Corpse.cpp9
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp9
-rw-r--r--src/server/game/Entities/DynamicObject/DynamicObject.cpp5
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp161
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h904
-rw-r--r--src/server/game/Entities/Item/Container/Bag.cpp2
-rw-r--r--src/server/game/Entities/Item/Item.cpp8
-rw-r--r--src/server/game/Entities/Object/Object.cpp11
-rw-r--r--src/server/game/Entities/Object/Object.h3
-rw-r--r--src/server/game/Entities/Object/ObjectGuid.cpp146
-rw-r--r--src/server/game/Entities/Object/ObjectGuid.h90
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp9
-rw-r--r--src/server/game/Entities/Pet/Pet.h2
-rw-r--r--src/server/game/Entities/Player/Player.cpp224
-rw-r--r--src/server/game/Entities/Player/Player.h2
-rw-r--r--src/server/game/Entities/Player/SocialMgr.cpp2
-rw-r--r--src/server/game/Entities/Transport/Transport.cpp8
-rw-r--r--src/server/game/Events/GameEventMgr.cpp8
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp130
-rw-r--r--src/server/game/Grids/Notifiers/GridNotifiers.h6
-rw-r--r--src/server/game/Groups/Group.cpp20
-rw-r--r--src/server/game/Guilds/Guild.cpp14
-rw-r--r--src/server/game/Guilds/Guild.h2
-rw-r--r--src/server/game/Guilds/GuildFinderMgr.cpp6
-rw-r--r--src/server/game/Handlers/AuctionHouseHandler.cpp35
-rw-r--r--src/server/game/Handlers/AuthHandler.cpp92
-rw-r--r--src/server/game/Handlers/CalendarHandler.cpp2
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp83
-rw-r--r--src/server/game/Handlers/MailHandler.cpp8
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp4
-rw-r--r--src/server/game/Handlers/PetitionsHandler.cpp16
-rw-r--r--src/server/game/Handlers/VoidStorageHandler.cpp12
-rw-r--r--src/server/game/Mails/Mail.cpp2
-rw-r--r--src/server/game/Maps/TransportMgr.cpp8
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h148
-rw-r--r--src/server/game/OutdoorPvP/OutdoorPvP.cpp36
-rw-r--r--src/server/game/OutdoorPvP/OutdoorPvP.h4
-rw-r--r--src/server/game/Pools/PoolMgr.cpp10
-rw-r--r--src/server/game/Scripting/MapScripts.cpp2
-rw-r--r--src/server/game/Server/Packet.cpp22
-rw-r--r--src/server/game/Server/Packet.h61
-rw-r--r--src/server/game/Server/Packets/AuctionHousePackets.cpp57
-rw-r--r--src/server/game/Server/Packets/AuctionHousePackets.h56
-rw-r--r--src/server/game/Server/Packets/AuthenticationPackets.cpp138
-rw-r--r--src/server/game/Server/Packets/AuthenticationPackets.h138
-rw-r--r--src/server/game/Server/Packets/CharacterPackets.cpp196
-rw-r--r--src/server/game/Server/Packets/CharacterPackets.h116
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp1894
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h340
-rw-r--r--src/server/game/Server/Protocol/PacketLog.cpp2
-rw-r--r--src/server/game/Server/WorldPacket.cpp25
-rw-r--r--src/server/game/Server/WorldPacket.h2
-rw-r--r--src/server/game/Server/WorldSession.cpp27
-rw-r--r--src/server/game/Server/WorldSession.h19
-rw-r--r--src/server/game/Server/WorldSocket.cpp90
-rw-r--r--src/server/game/Server/WorldSocket.h5
-rw-r--r--src/server/game/Spells/SpellEffects.cpp12
-rw-r--r--src/server/game/Tickets/TicketMgr.cpp6
-rw-r--r--src/server/game/Tools/PlayerDump.cpp2
-rw-r--r--src/server/game/World/World.cpp2
-rw-r--r--src/server/scripts/Commands/cs_character.cpp6
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp6
-rw-r--r--src/server/scripts/Commands/cs_go.cpp2
-rw-r--r--src/server/scripts/Commands/cs_gobject.cpp7
-rw-r--r--src/server/scripts/Commands/cs_group.cpp2
-rw-r--r--src/server/scripts/Commands/cs_list.cpp14
-rw-r--r--src/server/scripts/Commands/cs_lookup.cpp2
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp2
-rw-r--r--src/server/scripts/Commands/cs_npc.cpp4
-rw-r--r--src/server/scripts/Commands/cs_wp.cpp6
-rw-r--r--src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp6
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp12
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp15
-rw-r--r--src/server/scripts/Outland/zone_blades_edge_mountains.cpp2
-rw-r--r--src/server/shared/Utilities/Util.h7
-rw-r--r--src/tools/connection_patcher/Patterns/Mac.hpp2
-rw-r--r--src/tools/connection_patcher/Patterns/Windows.hpp4
104 files changed, 4689 insertions, 2387 deletions
diff --git a/cmake/compiler/clang/settings.cmake b/cmake/compiler/clang/settings.cmake
index 87f8a2f82c8..98f893987ec 100644
--- a/cmake/compiler/clang/settings.cmake
+++ b/cmake/compiler/clang/settings.cmake
@@ -1,5 +1,5 @@
# Set build-directive (used in core to tell which buildtype we used)
-add_definitions(-D_BUILD_DIRECTIVE='"$(CONFIGURATION)"')
+add_definitions(-D_BUILD_DIRECTIVE='"${CMAKE_BUILD_TYPE}"')
if(WITH_WARNINGS)
set(WARNING_FLAGS "-W -Wall -Wextra -Winit-self -Wfatal-errors")
diff --git a/cmake/macros/ConfigureBoost.cmake b/cmake/macros/ConfigureBoost.cmake
index 81b4dd9abb2..a1f00126f1d 100644
--- a/cmake/macros/ConfigureBoost.cmake
+++ b/cmake/macros/ConfigureBoost.cmake
@@ -30,7 +30,24 @@ add_definitions(-DBOOST_DATE_TIME_NO_LIB)
add_definitions(-DBOOST_REGEX_NO_LIB)
add_definitions(-DBOOST_CHRONO_NO_LIB)
-if(!WIN32) # https://svn.boost.org/trac/boost/ticket/6779
+# Find if Boost was compiled in C++03 mode because it requires -DBOOST_NO_CXX11_SCOPED_ENUMS
+
+include (CheckCXXSourceCompiles)
+
+set(CMAKE_REQUIRED_INCLUDES ${Boost_INCLUDE_DIR})
+set(CMAKE_REQUIRED_LIBRARIES ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY})
+set(CMAKE_REQUIRED_FLAGS "-std=c++11")
+unset(boost_filesystem_copy_links_without_NO_SCOPED_ENUM CACHE)
+check_cxx_source_compiles("
+ #include <boost/filesystem/path.hpp>
+ #include <boost/filesystem/operations.hpp>
+ int main() { boost::filesystem::copy_file(boost::filesystem::path(), boost::filesystem::path()); }"
+boost_filesystem_copy_links_without_NO_SCOPED_ENUM)
+unset(CMAKE_REQUIRED_INCLUDES CACHE)
+unset(CMAKE_REQUIRED_LIBRARIES CACHE)
+unset(CMAKE_REQUIRED_FLAGS CACHE)
+
+if (NOT boost_filesystem_copy_links_without_NO_SCOPED_ENUM)
add_definitions(-DBOOST_NO_CXX11_SCOPED_ENUMS)
endif()
diff --git a/sql/updates/world/2014_10_26_00_world.sql b/sql/updates/world/2014_10_26_00_world.sql
index 79d5842c14c..9d9d9312677 100644
--- a/sql/updates/world/2014_10_26_00_world.sql
+++ b/sql/updates/world/2014_10_26_00_world.sql
@@ -23,7 +23,6 @@ ALTER TABLE `game_event_npc_vendor` CHANGE `guid` `guid` BIGINT(20) UNSIGNED NOT
ALTER TABLE `game_event_npcflag` CHANGE `guid` `guid` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0';
ALTER TABLE `gameobject` CHANGE `guid` `guid` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0';
ALTER TABLE `linked_respawn` CHANGE `guid` `guid` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0';
-ALTER TABLE `linked_respawn` CHANGE `guid` `guid` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0';
ALTER TABLE `pool_creature` CHANGE `guid` `guid` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0';
ALTER TABLE `pool_gameobject` CHANGE `guid` `guid` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0';
ALTER TABLE `smart_scripts` CHANGE `entryorguid` `entryorguid` BIGINT(20) NOT NULL DEFAULT '0';
diff --git a/sql/updates/world/2014_10_29_00_world.sql b/sql/updates/world/2014_10_29_00_world.sql
new file mode 100644
index 00000000000..17a5769f634
--- /dev/null
+++ b/sql/updates/world/2014_10_29_00_world.sql
@@ -0,0 +1 @@
+ALTER TABLE `linked_respawn` CHANGE `linkedGuid` `linkedGuid` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0';
diff --git a/sql/updates/world/2014_10_29_01_world.sql b/sql/updates/world/2014_10_29_01_world.sql
new file mode 100644
index 00000000000..f29b6745133
--- /dev/null
+++ b/sql/updates/world/2014_10_29_01_world.sql
@@ -0,0 +1,7 @@
+-- Spell difficulty entry for Slag Pot Damage spell
+DELETE FROM `spelldifficulty_dbc` WHERE `id` = 65722;
+INSERT INTO `spelldifficulty_dbc` (`id`, `spellid0`, `spellid1`, `spellid2`, `spellid3`) VALUES
+(65722, 65722, 65723, 0, 0);
+
+-- Clean up unneeded criteria data, enables achievement Hot Pocket
+DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (10430, 10431) AND `type` = 18;
diff --git a/sql/updates/world/2014_10_30_00_world.sql b/sql/updates/world/2014_10_30_00_world.sql
new file mode 100644
index 00000000000..30c528cf3f0
--- /dev/null
+++ b/sql/updates/world/2014_10_30_00_world.sql
@@ -0,0 +1 @@
+DELETE FROM `disables` WHERE `entry` IN (10068, 10069) AND `sourceType` = 4;
diff --git a/sql/updates/world/2014_10_30_01_world.sql b/sql/updates/world/2014_10_30_01_world.sql
new file mode 100644
index 00000000000..bb39a4aad58
--- /dev/null
+++ b/sql/updates/world/2014_10_30_01_world.sql
@@ -0,0 +1 @@
+ALTER TABLE `gameobject_template` ADD `data32` int(10) not null default '0' AFTER `data31`;
diff --git a/sql/updates/world/2014_10_30_02_world.sql b/sql/updates/world/2014_10_30_02_world.sql
new file mode 100644
index 00000000000..a3de351d578
--- /dev/null
+++ b/sql/updates/world/2014_10_30_02_world.sql
@@ -0,0 +1 @@
+DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (12358, 12359) AND `type` = 14;
diff --git a/sql/updates/world/2014_10_31_00_world.sql b/sql/updates/world/2014_10_31_00_world.sql
new file mode 100644
index 00000000000..93ace3548ca
--- /dev/null
+++ b/sql/updates/world/2014_10_31_00_world.sql
@@ -0,0 +1,33 @@
+ALTER TABLE `gameobject_template` CHANGE `data0` `Data0` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data1` `Data1` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data2` `Data2` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data3` `Data3` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data4` `Data4` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data5` `Data5` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data6` `Data6` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data7` `Data7` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data8` `Data8` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data9` `Data9` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data10` `Data10` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data11` `Data11` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data12` `Data12` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data13` `Data13` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data14` `Data14` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data15` `Data15` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data16` `Data16` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data17` `Data17` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data18` `Data18` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data19` `Data19` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data20` `Data20` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data21` `Data21` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data22` `Data22` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data23` `Data23` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data24` `Data24` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data25` `Data25` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data26` `Data26` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data27` `Data27` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data28` `Data28` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data29` `Data29` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data30` `Data30` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data31` `Data31` INT(10) NOT NULL DEFAULT '0';
+ALTER TABLE `gameobject_template` CHANGE `data32` `Data32` INT(10) NOT NULL DEFAULT '0';
diff --git a/sql/updates/world/2014_10_31_01_world.sql b/sql/updates/world/2014_10_31_01_world.sql
new file mode 100644
index 00000000000..acc75f11bff
--- /dev/null
+++ b/sql/updates/world/2014_10_31_01_world.sql
@@ -0,0 +1,1096 @@
+UPDATE `creature_template` SET `VerifiedBuild`=17658 WHERE `entry` IN (31, 32, 47, 52, 55, 57, 60, 68, 119, 256, 259, 261, 269, 271, 276, 290, 321, 324, 331, 333, 334, 372, 386, 759, 1560, 1561, 1562, 1623, 1624, 1628, 1673, 1684, 1685, 1726, 1731, 1733, 1734, 1735, 1743, 1744, 1745, 1748, 1749, 1760, 1796, 1797, 1799, 1807, 1813, 1815, 1817, 1822, 1827, 1829, 1831, 1837, 1839, 1842, 1843, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1864, 1868, 1870, 1873, 1877, 1878, 1879, 1891, 1895, 1897, 1902, 1903, 1904, 1909, 1911, 1914, 1915, 1928, 1939, 1940, 1947, 1948, 1958, 1964, 1969, 1970, 1971, 1973, 1975, 1976, 1977, 1979, 1981, 1984, 1986, 2005, 2010, 2014, 2015, 2040, 2041, 2042, 2043, 2045, 2046, 2047, 2059, 2062, 2083, 2334, 2371, 2489, 2553, 2555, 2558, 2561, 2574, 2575, 2652, 2657, 2667, 2691, 2702, 2704, 2708, 2710, 2711, 2713, 2715, 2716, 2717, 2718, 2724, 2728, 2729, 2734, 2739, 2741, 2742, 2744, 2845, 2866, 2868, 2892, 2893, 2910, 2912, 2914, 3076, 3084, 3187, 3201, 3220, 3249, 3258, 3262, 3264, 3286, 3290, 3298, 3301, 3303, 3307, 3315, 3636, 3637, 3643, 3656, 3658, 3659, 3695, 3705, 3719, 3722, 3723, 3737, 3769, 3772, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3815, 3816, 3817, 3818, 3819, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3855, 3856, 3857, 3888, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3913, 3919, 3925, 3926, 3927, 3934, 3945, 3947, 3950, 3962, 3963, 3964, 3967, 3968, 3972, 4087, 4088, 4089, 4090, 4166, 4170, 4171, 4608, 6288, 11898, 11899, 12665, 13359, 15068, 15069, 16393, 17182, 17183, 17190, 17191, 17284, 18035, 18045, 18055, 18075, 18076, 18079, 18083, 18089, 18090, 18340, 18341, 18344, 18645, 18895, 18899, 18900, 18901, 18930, 18934, 18935, 18936, 18971, 18972, 18973, 19015, 19016, 19020, 19548, 19602, 19874, 19877, 19904, 19905, 20359, 20649, 20650, 20651, 20652, 20653, 20654, 20655, 20656, 20657, 20689, 20691, 20808, 20829, 20869, 20870, 20871, 20872, 20877, 20923, 20925, 20960, 20962, 20963, 20965, 20966, 20969, 20970, 20975, 20976, 20985, 20986, 20992, 21007, 21008, 21009, 21052, 21127, 21277, 21459, 21530, 21581, 21582, 21583, 21678, 21679, 21680, 21701, 22223, 22229, 22230, 22231, 22234, 22245, 22530, 22531, 22533, 22534, 22535, 22536, 22537, 22538, 22540, 22541, 22543, 22544, 22550, 22563, 22564, 22565, 22566, 22567, 22578, 22579, 22580, 22581, 22582, 22587, 22588, 22589, 22590, 22591, 22592, 22593, 22594, 22595, 22598, 22599, 22600, 22602, 22603, 22604, 22605, 22606, 22622, 22623, 22638, 22659, 22660, 22661, 22662, 22665, 22666, 22667, 22668, 22670, 22671, 22672, 22673, 22674, 22706, 22707, 22708, 22709, 22710, 22711, 22712, 22732, 22733, 22735, 22737, 22738, 22739, 22740, 22742, 22743, 22745, 22746, 22747, 22748, 22749, 22750, 22752, 22753, 22772, 22773, 22774, 22775, 22776, 22777, 22783, 22803, 22804, 22806, 22811, 22812, 22813, 22831, 22832, 22833, 22834, 22835, 22836, 22882, 22883, 22884, 22885, 22886, 22887, 22894, 22902, 22911, 22912, 22913, 22914, 22928, 22929, 23013, 23014, 23015, 23016, 23017, 23018, 23574, 23879, 24729, 24776, 24777, 24798, 26449, 26494, 26495, 26496, 26499, 28024, 28069, 28070, 28071, 28072, 28073, 28074, 28075, 28603, 29150, 29151, 29152, 29154, 29155, 29741, 29742, 29743, 29744, 29745, 29746, 29747, 29753, 29754, 29755, 29757, 29759, 29760, 29761, 29762, 29763, 29764, 29765, 29766, 29767, 29768, 29769, 29770, 29771, 29772, 29773, 29774, 29775, 29776, 29777, 29780, 29781, 29782, 29783, 29784, 30854, 30855, 30856, 31407, 31410, 31504, 31507, 31508, 31509, 31572, 31573, 31574, 31575, 31577, 31578, 31579, 32107, 32349, 32355, 32358, 32383, 32385, 32389, 32391, 32404, 32416, 32424, 32425, 32427, 32429, 32431, 32569, 32570, 32571, 32572, 32573, 32574, 32578, 32580, 32581, 32582, 32583, 32584, 32585, 32590, 32591, 32592, 32593, 32594, 32596, 32880, 32881, 33998, 33999, 34012, 34013, 34025, 34026, 34027, 34028, 34029, 34030, 34031, 34034, 34035, 34037, 34038, 34360, 34571, 34572, 35252, 35591, 35593, 35594, 35595, 35596, 35597, 35598, 36070, 36071, 36072, 36073, 36077, 36078, 36079, 36080, 36082, 36083, 36086, 36090, 36091, 36093, 36094, 36095, 36096, 36098, 36102, 36105, 36113, 36118, 36126, 36127, 36396, 36397, 36398, 36738, 36996, 36997, 36998, 37025, 37026, 37027, 37028, 37029, 37030, 37031, 37032, 37033, 37034, 37035, 37036, 37037, 37038, 37089, 37091, 37093, 37095, 37096, 37097, 37098, 37099, 37118, 37478, 38029, 38148, 38491, 38492, 38493, 38494, 38495, 40298, 40301, 41186, 41187, 41188, 41190, 41193, 47296, 47297, 48516, 49485, 49486, 49487, 50445, 50446, 50449, 50450, 50468, 50469, 50547, 50548, 50549, 50803, 50804, 50805, 50983, 50984, 50985, 50986, 50987, 50988, 51702, 51703, 51704, 51705, 51706, 51707, 52176, 55250, 56810, 56897, 56898, 56901, 56903, 56905, 56910, 56911, 58369, 58595, 58596, 58597, 58598, 58599, 58600, 58601, 58602, 58603, 58604, 58605, 58606, 58607, 58608, 58610, 58611, 58612, 58613, 58614, 58615, 58616, 58617, 58618, 58619, 58620, 58621, 58622, 58623, 58624, 58625, 58626, 58627, 58629, 59517, 59518, 59845, 59846, 59847, 59848, 59850, 59851, 59852, 59853, 59854, 59855, 59856, 59857, 59858, 59859, 59860, 59861, 59862, 59863, 59864, 59865, 60395, 60438, 60439, 60440, 61035, 61036, 61037, 61038, 61039, 61040, 61041, 61042, 61043, 61044, 61045, 61046, 61047, 61048, 61049, 61050, 61051, 61052, 61053, 61054, 61055, 61056, 61057, 61058, 61059, 61060, 61061, 61062, 61063, 61064, 61065, 61066, 61067, 61068, 61069, 61070, 61071, 61072, 61073, 61074, 61075, 61076, 61077, 61078, 61079, 61080, 61081, 61082, 61083, 61084, 61085, 61086, 61087, 61088, 61089, 61090, 61091, 61092, 61093, 61094, 61095, 61096, 61097, 61098, 61099, 61100, 61101, 61102, 61918, 61919, 61920, 61921, 61922, 61923, 65407, 68865, 70517, 74091, 74439, 74440, 74441, 74442, 74443, 74444, 74445, 74448, 74727, 74728, 74729, 74730, 75293, 75295, 75298, 77813, 82136, 82137, 85556, 88496, 88497, 89634, 89931, 90858, 91138, 91672, 91673, 91692, 92011, 92015, 92066, 92067, 92099, 92141, 92426, 92489, 92490, 92524, 92525, 92526, 92527, 92528, 92529, 92530, 92531, 92532, 92533, 92534, 92535, 92536, 92537, 92538, 92539, 92540, 92541, 92542, 92543, 92544, 92545, 92546, 92547, 92548, 92549, 92550, 92551, 92552, 92693, 92694, 92695, 92696, 92699, 92700, 92703, 94184, 94185, 94186, 94187, 94190, 94191, 95449, 98343, 98347, 98348, 98349, 98350, 98351, 98354, 101811, 101812, 101835, 101836, 101837, 101838, 101839, 101840, 101841, 101842, 101843, 101844, 101845, 101846, 101847, 101848, 101849, 101850, 101851, 102984, 102988, 102989, 102990, 102991, 102992, 102993, 102994, 102995, 102996, 102997, 102998, 102999, 103000, 103001, 103002, 103003, 103004, 103600, 103628, 103663, 103687, 103748, 103770, 103772, 105174, 105175, 105576, 106325, 106326, 106327, 106335, 106336, 106638, 106641, 107037, 107039, 107040, 107041, 107042, 110231, 110233, 110234, 110235, 110236, 111202, 111203, 111204, 111205, 111206, 111207, 111212, 111215, 111216, 111217, 111220, 111221, 111222, 111223, 111224, 111225, 111226, 111227, 111254, 111255, 111256, 111257, 111258, 111259, 111260, 111261, 111262, 111265, 111266, 111268, 111269, 111271, 112042, 112043, 112044, 112045, 112048, 112049, 112050, 112061, 112073, 112074, 112079, 112092, 112095, 112096, 112097, 112098, 112100, 112112, 112115, 112123, 112128, 112129, 112200, 112201, 112204, 112205, 112215, 112231, 112232, 112234, 112235, 112236, 112237, 112238, 112239, 112241, 112948, 113568, 113570, 113571, 113572, 113574, 113575, 113576, 113577, 113752, 113753, 113754, 113755, 113756, 123244, 123328, 123848, 124374, 125475, 126050, 126051, 126052, 126053, 126312, 126313, 126314, 126335, 126337, 126338, 126339, 126340, 126341, 126342, 126345, 128308, 128403, 129206, 130666, 130667, 130668, 133466, 133467, 133468, 133469, 136101, 136922, 136923, 136925, 136926, 136927, 136928, 136929, 136930, 136931, 136932, 136933, 136934, 136935, 136936, 136937, 136938, 136939, 136940, 136941, 136942, 136943, 136944, 136945, 136946, 136947, 136948, 136949, 136950, 136951, 136952, 136954, 136955, 136957, 136959, 136961, 136962, 136963, 136964, 136965, 136966, 137644, 137646, 137647, 138496, 138497, 138498, 138614, 139852, 140105, 140372, 140373, 140374, 140375, 140376, 140378, 140379, 140380, 140381, 140382, 140383, 140384, 140385, 140386, 140387, 140388, 140389, 140390, 140391, 140392, 140393, 140394, 140395, 140396, 140397, 140398, 140399, 140400, 140401, 140402, 140403, 140439, 140911, 141070, 141071, 141072, 141073, 141074, 141596, 141832, 141838, 141844, 141851, 141852, 141862, 141863, 142075, 142077, 142078, 142079, 142089, 142093, 142094, 142102, 142103, 142109, 142110, 142117, 142118, 142121, 142131, 142140, 142142, 142143, 142144, 142145, 142151, 142195, 142197, 142198, 142207, 142212, 142339, 142340, 142341, 142343, 142344, 142475, 142476, 142487, 142689, 142691, 142694, 142696, 142702, 142703, 142704, 142705, 142706, 142707, 142712, 142713, 142714, 142715, 142838, 142851, 142871, 142872, 142873, 142874, 142911, 142912, 142914, 142915, 142916, 143242, 143243, 143244, 143245, 143246, 143247, 143249, 143250, 143251, 143253, 143254, 143255, 143256, 143273, 143295, 143296, 143297, 143298, 143299, 143301, 143314, 143317, 143318, 143319, 143320, 143321, 143322, 143323, 143324, 143325, 143326, 143328, 143333, 143334, 143336, 143337, 143338, 143342, 143343, 143344, 143345, 143346, 143347, 143348, 143349, 143362, 143363, 143398, 143399, 143979, 143981, 143982, 143983, 143984, 143985, 143986, 144011, 144050, 144055, 144066, 144067, 144068, 144111, 144112, 144125, 144126, 144127, 144132, 144133, 144159, 144162, 144179, 144180, 144181, 146084, 146085, 146086, 146096, 146441, 147036, 147037, 147038, 147039, 147040, 147041, 147042, 147043, 147044, 147045, 147279, 147282, 147283, 147284, 147285, 147742, 147743, 147744, 147745, 147746, 147747, 147748, 147749, 147750, 147751, 147752, 147753, 147754, 147755, 147756, 147757, 147758, 147759, 147760, 147761, 147762, 147763, 147764, 147765, 147766, 147767, 147768, 147769, 147770, 147771, 147786, 147787, 147792, 147793, 148418, 148419, 148420, 148421, 148423, 148436, 148437, 148498, 148503, 148504, 148506, 148511, 148540, 148544, 148547, 148549, 148550, 148551, 148554, 148556, 148557, 148567, 148658, 148659, 148660, 148661, 148662, 148663, 148664, 148665, 148668, 148669, 148670, 148671, 148674, 148675, 148677, 148680, 148682, 148683, 148684, 148686, 148691, 148692, 148693, 148694, 148695, 148696, 148697, 148707, 148714, 148725, 148728, 148729, 148730, 148731, 148732, 148733, 148734, 148735, 148737, 148738, 148740, 148741, 148742, 148743, 148744, 148745, 148746, 148747, 148748, 148749, 148750, 148752, 148753, 148754, 148755, 148756, 148757, 148758, 148759, 148760, 148762, 148763, 148764, 148765, 148766, 148767, 148768, 148769, 148773, 148774, 148840, 148841, 148866, 148884, 148885, 148886, 148887, 148888, 148889, 148891, 148892, 148893, 148894, 148895, 148898, 148899, 148900, 148901, 148902, 148903, 148904, 148905, 148906, 148909, 148910, 148911, 148912, 148913, 148914, 148915, 148956, 148957, 148958, 148959, 148960, 149017, 149019, 149020, 149030, 149032, 149036, 149038, 149045, 149046, 149051, 149412, 149413, 149417, 149418, 149424, 149431, 149432, 149433, 150082, 150087, 151953, 151954, 151955, 151956, 151957, 151958, 151959, 151960, 151961, 151962, 151963, 151964, 151965, 151966, 151967, 151968, 151969, 151970, 151971, 151972, 152032, 152033, 152034, 152035, 152036, 152037, 152039, 152040, 152043, 152044, 152045, 152046, 152325, 152326, 152327, 152328, 152329, 152330, 152331, 152332, 152583, 152614, 152620, 152621, 152622, 152631, 153124, 153125, 153203, 153220, 153221, 153239, 153240, 153241, 153242, 153359, 153399, 153459, 153460, 153464, 153469, 153516, 153580, 153581, 153582, 153584, 153695, 153716, 154357, 156561, 157637, 157923, 158545, 158546, 158547, 158548, 158549, 158550, 158551, 158552, 158553, 158554, 158555, 158556, 158557, 158558, 158559, 158560, 158561, 158562, 158563, 158564, 158565, 158566, 158567, 158568, 158569, 158570, 158571, 158572, 158576, 158579, 158580, 158581, 158582, 158583, 158584, 158585, 158599, 158608, 158674, 158678, 158679, 158680, 160409, 160410, 160411, 160413, 160414, 160415, 160416, 160418, 160419, 160420, 160426, 160836, 160839, 160845, 160866, 160867, 160868, 160869, 160870, 160871, 161456, 161457, 161460, 161461, 161462, 161487, 161488, 161489, 161495, 161516, 161521, 161522, 161523, 161524, 161525, 161527, 161536, 164618, 164639, 164658, 164659, 164660, 164661, 164688, 164689, 164725, 164726, 164778, 164779, 164780, 164781, 164818, 164820, 164821, 164824, 164839, 164867, 164868, 164871, 164890, 164910, 164911, 164953, 164958, 165554, 165578, 165658, 165738, 165739, 165740, 165741, 165742, 165743, 165744, 165745, 165746, 165747, 165748, 165749, 165750, 165751, 166872, 167286, 167287, 167289, 167290, 167291, 169243, 169264, 169265, 169266, 169267, 169268, 169269, 169270, 169271, 169272, 169273, 169274, 169275, 169276, 169277, 169278, 169279, 169280, 169281, 169282, 169283, 169284, 169285, 169287, 169288, 169289, 169290, 169291, 169292, 169293, 169294, 169966, 169967, 169968, 169969, 170001, 170002, 170055, 170056, 170057, 170058, 170059, 170060, 170061, 170062, 170063, 170064, 170065, 170066, 170073, 170347, 170348, 170349, 170350, 170351, 170354, 170355, 170439, 170440, 170441, 170442, 170443, 170444, 170445, 170446, 170447, 170448, 170449, 170450, 170451, 170452, 170453, 170454, 170455, 170456, 170457, 170458, 170459, 170460, 170461, 170462, 170463, 170464, 170465, 170466, 170467, 170468, 170469, 170470, 170471, 170472, 170473, 170474, 170475, 170476, 170477, 170478, 170479, 170480, 170481, 170482, 170483, 170484, 170485, 170486, 170487, 170488, 170489, 170490, 170491, 170492, 170493, 170494, 170495, 170496, 170497, 170498, 170499, 170500, 170501, 170502, 170503, 170504, 170505, 170506, 170507, 170508, 170509, 170510, 170511, 170512, 170513, 170514, 170515, 170516, 170517, 170518, 170519, 170520, 170521, 170522, 170523, 170524, 170525, 170526, 170527, 170528, 170529, 170530, 170531, 170532, 170533, 170534, 170535, 170536, 170537, 170538, 170539, 170540, 170541, 170542, 170543, 170544, 170545, 170546, 170547, 170548, 170549, 170550, 170551, 170552, 170553, 170554, 170555, 170556, 170557, 170558, 170559, 170560, 170561, 170562, 170563, 170564, 170565, 170566, 170567, 170568, 170569, 170570, 170571, 170572, 170573, 170574, 170575, 170576, 170577, 170578, 170579, 170580, 170581, 170582, 170583, 170584, 170592, 170607, 171524, 171525, 171526, 171527, 171528, 171529, 171530, 171531, 171532, 171533, 171534, 171535, 171536, 171537, 171538, 171539, 171540, 171541, 171542, 171543, 171544, 171545, 171546, 171547, 171548, 171549, 171550, 171551, 171552, 171553, 171554, 171555, 171556, 171557, 171558, 171559, 171560, 171561, 171562, 171563, 171564, 171565, 171566, 171569, 171570, 171571, 171572, 171573, 171574, 171575, 171576, 171577, 171578, 171579, 171580, 171581, 171582, 171583, 171584, 171585, 171586, 171587, 171588, 171589, 171590, 171591, 171592, 171593, 171594, 171595, 171596, 171597, 171598, 171599, 171600, 171601, 171602, 171603, 171604, 171605, 171606, 171607, 171608, 171609, 171610, 171611, 171612, 171613, 171614, 171615, 171616, 171617, 171618, 171623, 171624, 171625, 171626, 171627, 171628, 171629, 171630, 171631, 171632, 171633, 171634, 171635, 171636, 171638, 171639, 171640, 171641, 171642, 171643, 171644, 171645, 171646, 171647, 171650, 171651, 171652, 171653, 171654, 171655, 171656, 171657, 171658, 171659, 171660, 171661, 171664, 171665, 171666, 171667, 171668, 171669, 171670, 171671, 171672, 171673, 171678, 171679, 171680, 171681, 171682, 171683, 171684, 171685, 171686, 171687, 171688, 171689, 171690, 171691, 171692, 171693, 171694, 171695, 171696, 171697, 171698, 171699, 171700, 171701, 171702, 171703, 171704, 171705, 171706, 171707, 171708, 171709, 171710, 171711, 171712, 171713, 171714, 171715, 171716, 171717, 171722, 171723, 171724, 171725, 171726, 171727, 171728, 171729, 171730, 171731, 171732, 171733, 171734, 171735, 171736, 171737, 171738, 171739, 171740, 171741, 171742, 171743, 171744, 171745, 171746, 171747, 171748, 171749, 171750, 171751, 171752, 171753, 171754, 171755, 171756, 171764, 171765, 171766, 171767, 171768, 171769, 171770, 171771, 171772, 171773, 171774, 171775, 171776, 171938, 171941, 172911, 173232, 173234, 174045, 174407, 174408, 174409, 174410, 174411, 174412, 174413, 174414, 174415, 174416, 174417, 174418, 174419, 174420, 174421, 174422, 174423, 174424, 174425, 174426, 174427, 174428, 174429, 174430, 174431, 174432, 174433, 174434, 174435, 174436, 174437, 174438, 174439, 174440, 174441, 174442, 174443, 174444, 174445, 174446, 174447, 174448, 174449, 174450, 174451, 174452, 174453, 174454, 174455, 174456, 174457, 174458, 174459, 174460, 174461, 174462, 174463, 174464, 174465, 174466, 174467, 174468, 174469, 174470, 174471, 174472, 174473, 174474, 174475, 174476, 174477, 174478, 174479, 174480, 174481, 174482, 174483, 174484, 174485, 174486, 174487, 174488, 174489, 174490, 174491, 174492, 174493, 174494, 174495, 174496, 174497, 174498, 174499, 174500, 174501, 174502, 174503, 174504, 174505, 174506, 174507, 174508, 174509, 174510, 174511, 174512, 174513, 174514, 174515, 174516, 174517, 174518, 174519, 174520, 174521, 174522, 174523, 174524, 174525, 174526, 174527, 174528, 174529, 174530, 174531, 174532, 174533, 174534, 174535, 174536, 174537, 174538, 174539, 174540, 174541, 174542, 174543, 174544, 174545, 174546, 174547, 174548, 174549, 174550, 174551, 174552, 174553, 174554, 174555, 174556, 174557, 174558, 174559, 174560, 174561, 174562, 174563, 174564, 174565, 174566, 174626, 174682, 174698, 174699, 174700, 174701, 174702, 174744, 174745, 174746, 174846, 174847, 174848, 174849, 174857, 174858, 174859, 174863, 174872, 174953, 174974, 174975, 174976, 174977, 174978, 174979, 174980, 174981, 174982, 174983, 174984, 174985, 174986, 174987, 175001, 175002, 175003, 175004, 175005, 175006, 175007, 175008, 175009, 175010, 175011, 175012, 175013, 175014, 175015, 175016, 175017, 175018, 175019, 175020, 175021, 175022, 175023, 175024, 175025, 175026, 175027, 175028, 175029, 175030, 175075, 175076, 175080, 175084, 175085, 175104, 175124, 175144, 175145, 175146, 175148, 175149, 175150, 175151, 175153, 175179, 175180, 175181, 175185, 175186, 175187, 175194, 175195, 175196, 175197, 175198, 175199, 175200, 175244, 175245, 175246, 175247, 175248, 175249, 175265, 175266, 175267, 175268, 175269, 175270, 175271, 175272, 175284, 175285, 175286, 175334, 175335, 175350, 175351, 175352, 175353, 175354, 175355, 175356, 175357, 175358, 175359, 175368, 175369, 175370, 175372, 175373, 175374, 175375, 175376, 175377, 175379, 175380, 175381, 175382, 175383, 175385, 175404, 175405, 175432, 175433, 175434, 175435, 175436, 175437, 175438, 175439, 175440, 175441, 175442, 175443, 175444, 175445, 175447, 175449, 175450, 175454, 175455, 175457, 175458, 175459, 175460, 175461, 175462, 175463, 175466, 175467, 175469, 175470, 175471, 175472, 175477, 175478, 175479, 175481, 175483, 175484, 175491, 175528, 175529, 175530, 175531, 175532, 175533, 175534, 175535, 175536, 175537, 175544, 175545, 175566, 175588, 175606, 175607, 175608, 175609, 175621, 175659, 175673, 175675, 175679, 175680, 175681, 175682, 175683, 175684, 175685, 175686, 175687, 175688, 175689, 175705, 175706, 175707, 175724, 175725, 175726, 175727, 175729, 175730, 175731, 175732, 175733, 175734, 175735, 175736, 175737, 175738, 175739, 175740, 175741, 175742, 175745, 175746, 175748, 175749, 175750, 175751, 175752, 175753, 175754, 175756, 175757, 175758, 175759, 175760, 175761, 175762, 175763, 175764, 175765, 175784, 175785, 175787, 175788, 175796, 175801, 175811, 175824, 175825, 175844, 175847, 175848, 175849, 175850, 175854, 175855, 175856, 175857, 175858, 175886, 175925, 175927, 175931, 175946, 175947, 175949, 175950, 175966, 175967, 175968, 175969, 175970, 176089, 176090, 176112, 176157, 176158, 176159, 176160, 176161, 176194, 176196, 176208, 176224, 176231, 176245, 176248, 176264, 176266, 176267, 176268, 176269, 176270, 176276, 176277, 176279, 176280, 176287, 176288, 176289, 176291, 176296, 176304, 176306, 176307, 176308, 176309, 176310, 176319, 176324, 176326, 176327, 176346, 176349, 176350, 176351, 176352, 176353, 176360, 176404, 176424, 176425, 176426, 176427, 176428, 176429, 176430, 176431, 176432, 176433, 176434, 176435, 176436, 176437, 176438, 176439, 176440, 176441, 176442, 176443, 176444, 176445, 176446, 176447, 176448, 176449, 176450, 176451, 176452, 176454, 176455, 176456, 176457, 176458, 176459, 176460, 176461, 176462, 176463, 176488, 176490, 176491, 176492, 176493, 176495, 176496, 176497, 176498, 176499, 176506, 176549, 176550, 176551, 176552, 176553, 176554, 176555, 176556, 176560, 176574, 176577, 176578, 176579, 176580, 176583, 176584, 176586, 176587, 176588, 176591, 176624, 176625, 176626, 176627, 176628, 176629, 176630, 176633, 176694, 176748, 176749, 176751, 176752, 176768, 176790, 176792, 176793, 176863, 176894, 176895, 176897, 176898, 176899, 176901, 176924, 176951, 176952, 176953, 176954, 176955, 176956, 176957, 176998, 176999, 177000, 177044, 177047, 177048, 177049, 177064, 177188, 177189, 177192, 177198, 177203, 177204, 177205, 177207, 177208, 177209, 177222, 177226, 177227, 177245, 177246, 177247, 177248, 177249, 177250, 177251, 177252, 177253, 177254, 177255, 177256, 177261, 177262, 177263, 177265, 177266, 177267, 177268, 177270, 177272, 177273, 177278, 177279, 177280, 177281, 177286, 177287, 177292, 177293, 177324, 177325, 177326, 177327, 177366, 177396, 177397, 177398, 177399, 177400, 177405, 177406, 177408, 177409, 177410, 177411, 177412, 177413, 177425, 177444, 177464, 177494, 177495, 177496, 177497, 177498, 177499, 177500, 177501, 177502, 177503, 177504, 177505, 177506, 177507, 177508, 177509, 177510, 177511, 177512, 177513, 177514, 177524, 177544, 177606, 177664, 177704, 177706, 177764, 177784, 177785, 177786, 177789, 177884, 177928, 178088, 178090, 178107, 178108, 178125, 178144, 178147, 178187, 178188, 178189, 178190, 178191, 178192, 178193, 178195, 178204, 178224, 178226, 178365, 178386, 178389, 178393, 178394, 178404, 178425, 178428, 178429, 178430, 178431, 178432, 178433, 178434, 178435, 178436, 178437, 178438, 178442, 178504, 178524, 178525, 178526, 178551, 178553, 178554, 178556, 178557, 178558, 178559, 178560, 178561, 178562, 178563, 178564, 178565, 178566, 178567, 178568, 178569, 178570, 178571, 178609, 178645, 178646, 178647, 178649, 178666, 178667, 178668, 178669, 178671, 178684, 178685, 178745, 178746, 178764, 178765, 178784, 178785, 178805, 178827, 178829, 178831, 178834, 178884, 178905, 178908, 178924, 178925, 178927, 178929, 178932, 178935, 178936, 178943, 178944, 178945, 178946, 178947, 178948, 178955, 178956, 178957, 178958, 178984, 179004, 179005, 179006, 179007, 179008, 179025, 179044, 179065, 179066, 179125, 179284, 179287, 179304, 179305, 179310, 179384, 179385, 179386, 179387, 179388, 179389, 179390, 179391, 179392, 179393, 179394, 179395, 179396, 179397, 179419, 179435, 179436, 179437, 179438, 179439, 179440, 179441, 179442, 179445, 179446, 179449, 179450, 179454, 179458, 179465, 179467, 179468, 179469, 179470, 179471, 179472, 179481, 179483, 179486, 179487, 179488, 179491, 179493, 179513, 179552, 179553, 179554, 179555, 179565, 179584, 179706, 179707, 179778, 179779, 179780, 179781, 179782, 179828, 179844, 179862, 179863, 179864, 179871, 179879, 179880, 179882, 179899, 179904, 179906, 179909, 179916, 179917, 179918, 179919, 179920, 179921, 179944, 179945, 179964, 179965, 179967, 179968, 179969, 179970, 179972, 179975, 179976, 179977, 179984, 180007, 180025, 180026, 180034, 180037, 180038, 180043, 180045, 180046, 180047, 180048, 180050, 180057, 180100, 180101, 180102, 180144, 180145, 180146, 180147, 180220, 180222, 180223, 180224, 180225, 180226, 180227, 180255, 180256, 180322, 180325, 180338, 180339, 180377, 180379, 180381, 180383, 180384, 180391, 180394, 180396, 180397, 180398, 180399, 180400, 180421, 180422, 180423, 180424, 180436, 180438, 180440, 180441, 180442, 180448, 180451, 180455, 180456, 180497, 180501, 180502, 180503, 180524, 180529, 180534, 180539, 180544, 180554, 180564, 180575, 180583, 180651, 180654, 180658, 180662, 180663, 180665, 180666, 180682, 180683, 180684, 180700, 180712, 180715, 180724, 180725, 180726, 180727, 180728, 180729, 180730, 180731, 180733, 180734, 180735, 180736, 180737, 180738, 180739, 180740, 180741, 180743, 180746, 180747, 180748, 180751, 180755, 180756, 180757, 180758, 180759, 180760, 180761, 180762, 180763, 180764, 180765, 180766, 180767, 180768, 180769, 180770, 180771, 180772, 180773, 180774, 180775, 180776, 180777, 180778, 180779, 180793, 180796, 180797, 180798, 180799, 180844, 180851, 180854, 180855, 180857, 180858, 180860, 180861, 180862, 180864, 180865, 180868, 180869, 180870, 180871, 180872, 180873, 180874, 180875, 180876, 180878, 180879, 180880, 180881, 180882, 180883, 180884, 180885, 180888, 180898, 180899, 180904, 180909, 180910, 180913, 180914, 180915, 180921, 180991, 180993, 180994, 180996, 180997, 180998, 180999, 181000, 181001, 181002, 181003, 181004, 181005, 181006, 181007, 181008, 181009, 181014, 181015, 181016, 181017, 181018, 181019, 181020, 181021, 181022, 181025, 181027, 181030, 181032, 181042, 181055, 181060, 181062, 181063, 181064, 181065, 181066, 181067, 181085, 181095, 181104, 181130, 181131, 181134, 181135, 181147, 181175, 181176, 181177, 181178, 181179, 181180, 181181, 181182, 181183, 181184, 181185, 181186, 181187, 181188, 181189, 181217, 181218, 181219, 181220, 181221, 181236, 181270, 181271, 181273, 181277, 181279, 181280, 181281, 181310, 181319, 181331, 181360, 181369, 181372, 181380, 181475, 181555, 181556, 181557, 181569, 181579, 181582, 181583, 181594, 181598, 181603, 181618, 181619, 181621, 181635, 181644, 181645, 181646, 181649, 181664, 181680, 181686, 181688, 181689, 181698, 181714, 181720, 181721, 181722, 181723, 181724, 181725, 181726, 181727, 181728, 181729, 181730, 181731, 181732, 181733, 181734, 181735, 181736, 181737, 181738, 181768, 181790, 181805, 181833, 181837, 181839, 181841, 181845, 181846, 181847, 181848, 181849, 181871, 181872, 181873, 181874, 181875, 181876, 181883, 181884, 181885, 181886, 181915, 181916, 181963, 182005, 182011, 182031, 182053, 182058, 182062, 182064, 182065, 182066, 182071, 182072, 182090, 182095, 182107, 182115, 182119, 182146, 182155, 182156, 182157, 182158, 182159, 182160, 182161, 182162, 182173, 182174, 182175, 182199, 182200, 182209, 182251, 182252, 182253, 182256, 182269, 182270, 182271, 182278, 182279, 182315, 182316, 182317, 182318, 182319, 182320, 182321, 182322, 182323, 182324, 182325, 182326, 182327, 182328, 182329, 182330, 182331, 182332, 182333, 182334, 182338, 182339, 182340, 182341, 182343, 182345, 182349, 182350, 182351, 182353, 182355, 182356, 182357, 182360, 182362, 182363, 182364, 182393, 182400, 182401, 182524, 182525, 182527, 182529, 182534, 182536, 182541, 182559, 182560, 182561, 182571, 182584, 182585, 182587, 182588, 182595, 182596, 182597, 182598, 182599, 182601, 182606, 182608, 182609, 182614, 182615, 182616, 182617, 182618, 182619, 182620, 182623, 182624, 182625, 182626, 182627, 182628, 182629, 182630, 182631, 182632, 182633, 182634, 182643, 182644, 182645, 182646, 182647, 182648, 182649, 182704, 182711, 182725, 182726, 182729, 182730, 182731, 182732, 182733, 182738, 182739, 182740, 182744, 182746, 182748, 182749, 182752, 182753, 182755, 182756, 182757, 182758, 182760, 182762, 182769, 182770, 182771, 182775, 182776, 182777, 182778, 182779, 182784, 182785, 182789, 182796, 182797, 182798, 182799, 182800, 182804, 182807, 182808, 182830, 182833, 182834, 182835, 182836, 182839, 182840, 182841, 182842, 182843, 182844, 182849, 182850, 182851, 182852, 182853, 182854, 182860, 182861, 182862, 182863, 182864, 182865, 182866, 182867, 182868, 182869, 182870, 182871, 182872, 182873, 182874, 182875, 182876, 182877, 182878, 182879, 182880, 182881, 182882, 182883, 182884, 182885, 182886, 182887, 182888, 182889, 182890, 182891, 182892, 182893, 182894, 182895, 182896, 182897, 182898, 182899, 182900, 182901, 182902, 182903, 182904, 182905, 182906, 182907, 182908, 182909, 182910, 182911, 182912, 182913, 182914, 182915, 182916, 182917, 182918, 182919, 182920, 182921, 182922, 182923, 182924, 182925, 182926, 182927, 182928, 182929, 182939, 182944, 182948, 182949, 182951, 182952, 182953, 182954, 182955, 182956, 182957, 182958, 182959, 182960, 182961, 182962, 182963, 182964, 182965, 182966, 182967, 182968, 182969, 182970, 182971, 182972, 182973, 182994, 183005, 183006, 183007, 183008, 183009, 183010, 183022, 183023, 183024, 183025, 183026, 183027, 183028, 183029, 183030, 183031, 183032, 183033, 183034, 183035, 183038, 183039, 183040, 183042, 183043, 183044, 183045, 183046, 183047, 183048, 183104, 183105, 183111, 183117, 183118, 183119, 183120, 183121, 183162, 183166, 183167, 183168, 183169, 183170, 183171, 183177, 183202, 183203, 183218, 183271, 183272, 183273, 183284, 183286, 183287, 183288, 183289, 183290, 183291, 183292, 183293, 183294, 183297, 183298, 183299, 183300, 183306, 183318, 183323, 183325, 183333, 183342, 183344, 183384, 183394, 183395, 183396, 183397, 183401, 183402, 183410, 183411, 183412, 183418, 183421, 183431, 183432, 183433, 183435, 183436, 183443, 183446, 183447, 183450, 183494, 183495, 183500, 183501, 183502, 183503, 183504, 183514, 183515, 183517, 183519, 183520, 183521, 183522, 183523, 183524, 183525, 183526, 183527, 183528, 183529, 183530, 183531, 183532, 183533, 183534, 183535, 183536, 183537, 183538, 183539, 183540, 183541, 183542, 183543, 183544, 183545, 183546, 183547, 183548, 183549, 183550, 183551, 183552, 183553, 183554, 183555, 183556, 183557, 183558, 183559, 183560, 183561, 183562, 183563, 183564, 183565, 183566, 183567, 183568, 183569, 183570, 183571, 183572, 183573, 183574, 183575, 183576, 183577, 183578, 183579, 183580, 183581, 183582, 183583, 183584, 183585, 183586, 183587, 183588, 183589, 183590, 183591, 183592, 183593, 183594, 183595, 183596, 183597, 183598, 183599, 183600, 183601, 183602, 183603, 183604, 183605, 183606, 183607, 183608, 183609, 183610, 183611, 183612, 183613, 183614, 183615, 183616, 183617, 183618, 183619, 183620, 183621, 183622, 183623, 183624, 183625, 183626, 183627, 183628, 183629, 183630, 183631, 183632, 183633, 183634, 183635, 183636, 183637, 183638, 183639, 183640, 183641, 183642, 183643, 183644, 183645, 183646, 183647, 183648, 183649, 183650, 183651, 183652, 183653, 183654, 183655, 183656, 183657, 183658, 183659, 183660, 183661, 183662, 183663, 183664, 183665, 183666, 183667, 183668, 183669, 183670, 183671, 183672, 183673, 183674, 183675, 183676, 183677, 183678, 183679, 183680, 183681, 183682, 183683, 183684, 183685, 183686, 183687, 183688, 183689, 183690, 183691, 183692, 183693, 183694, 183703, 183712, 183713, 183714, 183740, 183741, 183742, 183743, 183744, 183745, 183746, 183747, 183748, 183749, 183750, 183751, 183752, 183753, 183754, 183755, 183757, 183758, 183759, 183760, 183767, 183768, 183773, 183774, 183775, 183776, 183777, 183778, 183779, 183780, 183781, 183787, 183793, 183795, 183797, 183799, 183800, 183811, 183813, 183814, 183816, 183818, 183831, 183832, 183833, 183834, 183835, 183836, 183837, 183838, 183839, 183842, 183843, 183844, 183845, 183846, 183848, 183849, 183855, 183856, 183857, 183858, 183859, 183860, 183861, 183862, 183863, 183864, 183865, 183866, 183867, 183868, 183869, 183870, 183871, 183872, 183873, 183874, 183875, 183878, 183889, 183890, 183891, 183893, 183895, 183930, 183932, 183945, 183947, 183957, 183987, 183991, 183992, 183993, 183994, 183995, 183996, 184006, 184011, 184013, 184014, 184015, 184019, 184020, 184021, 184022, 184038, 184039, 184040, 184041, 184042, 184043, 184044, 184045, 184046, 184047, 184048, 184049, 184050, 184052, 184055, 184056, 184070, 184071, 184085, 184090, 184091, 184134, 184135, 184136, 184137, 184138, 184139, 184140, 184146, 184147, 184164, 184212, 184229, 184230, 184231, 184232, 184233, 184234, 184235, 184236, 184237, 184238, 184239, 184245, 184246, 184253, 184254, 184255, 184274, 184275, 184276, 184277, 184278, 184279, 184280, 184281, 184285, 184286, 184300, 184303, 184320, 184330, 184341, 184380, 184381, 184382, 184395, 184396, 184398, 184399, 184400, 184418, 184419, 184420, 184421, 184422, 184423, 184424, 184425, 184426, 184427, 184428, 184429, 184430, 184431, 184436, 184437, 184438, 184439, 184443, 184453, 184454, 184455, 184456, 184463, 184488, 184490, 184493, 184496, 184497, 184498, 184499, 184517, 184530, 184531, 184532, 184554, 184555, 184556, 184557, 184558, 184559, 184578, 184588, 184595, 184631, 184633, 184640, 184652, 184655, 184661, 184705, 184706, 184707, 184708, 184709, 184710, 184711, 184712, 184715, 184716, 184717, 184719, 184720, 184721, 184724, 184730, 184732, 184734, 184735, 184741, 184743, 184795, 184796, 184797, 184799, 184800, 184801, 184807, 184808, 184809, 184836, 184837, 184838, 184840, 184852, 184853, 184868, 184869, 184870, 184873, 184874, 184875, 184876, 184877, 184878, 184879, 184880, 184881, 184882, 184883, 184884, 184885, 184886, 184887, 184888, 184889, 184890, 184891, 184892, 184893, 184894, 184895, 184896, 184897, 184898, 184899, 184900, 184901, 184902, 184903, 184904, 184912, 184922, 184923, 184944, 184946, 184948, 184955, 184964, 184965, 184970, 184971, 184973, 184977, 184979, 185000, 185019, 185035, 185106, 185107, 185108, 185109, 185110, 185111, 185113, 185120, 185123, 185130, 185134, 185136, 185153, 185154, 185157, 185159, 185165, 185168, 185170, 185185, 185192, 185193, 185194, 185195, 185197, 185198, 185202, 185203, 185204, 185205, 185224, 185225, 185302, 185318, 185319, 185325, 185434, 185435, 185436, 185437, 185448, 185449, 185450, 185451, 185452, 185453, 185454, 185459, 185461, 185462, 185463, 185464, 185465, 185466, 185467, 185472, 185473, 185477, 185497, 185498, 185500, 185505, 185506, 185507, 185508, 185509, 185510, 185511, 185512, 185521, 185528, 185543, 185544, 185545, 185553, 185563, 185582, 185602, 185708, 185709, 185710, 185711, 185736, 185737, 185738, 185739, 185740, 185741, 185742, 185743, 185744, 185745, 185746, 185747, 185748, 185749, 185750, 185751, 185752, 185753, 185754, 185755, 185756, 185757, 185758, 185759, 185760, 185761, 185762, 185763, 185764, 185765, 185766, 185767, 185776, 185778, 185780, 185781, 185782, 185783, 185812, 185813, 185814, 185815, 185816, 185817, 185818, 185819, 185820, 185821, 185822, 185823, 185824, 185825, 185826, 185827, 185828, 185829, 185830, 185831, 185832, 185833, 185834, 185835, 185836, 185837, 185838, 185839, 185840, 185841, 185842, 185843, 185844, 185845, 185846, 185847, 185848, 185849, 185850, 185851, 185861, 185890, 185894, 185899, 185906, 185911, 185919, 185920, 185923, 185924, 185927, 185929, 185930, 185931, 185935, 185936, 185944, 185945, 185965, 185967, 185968, 185969, 185970, 185971, 185972, 185973, 185974, 185975, 185976, 185977, 185978, 185979, 185980, 185981, 185982, 185983, 185984, 185985, 185986, 185987, 185988, 185989, 185990, 185991, 185992, 185993, 185994, 185995, 185996, 185997, 185998, 185999, 186000, 186001, 186002, 186003, 186004, 186005, 186006, 186007, 186008, 186009, 186010, 186011, 186012, 186013, 186014, 186015, 186016, 186017, 186018, 186019, 186020, 186021, 186022, 186023, 186024, 186025, 186026, 186027, 186028, 186029, 186030, 186033, 186034, 186035, 186036, 186037, 186038, 186039, 186040, 186041, 186042, 186084, 186085, 186086, 186087, 186088, 186089, 186090, 186091, 186092, 186093, 186094, 186095, 186096, 186097, 186098, 186099, 186100, 186101, 186102, 186103, 186104, 186105, 186106, 186107, 186108, 186109, 186110, 186111, 186112, 186113, 186114, 186115, 186116, 186117, 186120, 186121, 186122, 186123, 186124, 186125, 186126, 186127, 186128, 186129, 186130, 186131, 186133, 186134, 186137, 186138, 186139, 186140, 186141, 186142, 186143, 186144, 186145, 186146, 186147, 186148, 186230, 186231, 186232, 186233, 186236, 186238, 186264, 186266, 186284, 186301, 186312, 186329, 186330, 186332, 186371, 186403, 186420, 186422, 186426, 186427, 186431, 186433, 186434, 186435, 186442, 186443, 186444, 186445, 186446, 186447, 186448, 186452, 186459, 186463, 186465, 186475, 186485, 186486, 186490, 186495, 186496, 186497, 186498, 186499, 186500, 186501, 186502, 186503, 186504, 186506, 186508, 186509, 186510, 186511, 186512, 186513, 186514, 186515, 186555, 186556, 186557, 186558, 186559, 186565, 186566, 186567, 186568, 186569, 186570, 186571, 186572, 186573, 186574, 186575, 186586, 186587, 186591, 186595, 186608, 186609, 186610, 186611, 186612, 186616, 186619, 186632, 186659, 186660, 186661, 186666, 186688, 186689, 186690, 186691, 186692, 186693, 186694, 186695, 186696, 186697, 186698, 186699, 186700, 186701, 186702, 186703, 186704, 186705, 186706, 186707, 186708, 186711, 186712, 186729, 186730, 186731, 186756, 186758, 186759, 186760, 186761, 186762, 186798, 186805, 186812, 186827, 186828, 186835, 186836, 186837, 186838, 186839, 186840, 186841, 186842, 186843, 186844, 186864, 186883, 186895, 186896, 186897, 186899, 186900, 186901, 186902, 186903, 186904, 186907, 186908, 186910, 186911, 186912, 186913, 186914, 186915, 186916, 186917, 186918, 186919, 186920, 186921, 186922, 186923, 186924, 186943, 186944, 186949, 187032, 187033, 187038, 187056, 187057, 187058, 187073, 187085, 187185, 187188, 187189, 187191, 187193, 187194, 187235, 187236, 187237, 187240, 187241, 187242, 187243, 187251, 187254, 187256, 187258, 187259, 187265, 187267, 187268, 187290, 187291, 187294, 187295, 187296, 187299, 187316, 187337, 187345, 187356, 187357, 187364, 187367, 187370, 187373, 187376, 187390, 187432, 187433, 187453, 187454, 187455, 187558, 187560, 187561, 187565, 187567, 187568, 187575, 187577, 187655, 187659, 187660, 187661, 187662, 187664, 187668, 187670, 187671, 187675, 187676, 187677, 187689, 187693, 187694, 187695, 187772, 187773, 187850, 187851, 187855, 187871, 187875, 187879, 187880, 187881, 187884, 187889, 187897, 187898, 187899, 187900, 187901, 187902, 187909, 187912, 187915, 187980, 187982, 187984, 187985, 187995, 187996, 187998, 187999, 188002, 188003, 188004, 188007, 188008, 188010, 188012, 188014, 188015, 188016, 188017, 188018, 188022, 188028, 188039, 188040, 188041, 188042, 188043, 188044, 188100, 188101, 188104, 188106, 188107, 188112, 188113, 188120, 188123, 188126, 188127, 188131, 188132, 188133, 188136, 188140, 188160, 188163, 188164, 188187, 188215, 188227, 188230, 188231, 188237, 188241, 188242, 188243, 188244, 188245, 188246, 188247, 188248, 188249, 188250, 188251, 188256, 188257, 188258, 188260, 188261, 188264, 188287, 188288, 188289, 188342, 188344, 188346, 188347, 188348, 188353, 188354, 188355, 188356, 188357, 188359, 188360, 188362, 188363, 188364, 188365, 188370, 188416, 188418, 188419, 188423, 188424, 188425, 188428, 188432, 188441, 188445, 188446, 188448, 188454, 188458, 188460, 188461, 188463, 188464, 188465, 188469, 188472, 188473, 188474, 188478, 188479, 188483, 188486, 188487, 188488, 188491, 188492, 188493, 188494, 188495, 188499, 188501, 188502, 188503, 188505, 188506, 188511, 188514, 188515, 188516, 188517, 188518, 188521, 188526, 188527, 188528, 188530, 188534, 188539, 188541, 188554, 188593, 188596, 188604, 188605, 188606, 188607, 188608, 188609, 188610, 188611, 188612, 188622, 188623, 188624, 188625, 188626, 188627, 188628, 188629, 188630, 188631, 188632, 188633, 188634, 188635, 188636, 188637, 188651, 188652, 188658, 188659, 188665, 188666, 188667, 188668, 188670, 188671, 188673, 188677, 188682, 188683, 188684, 188691, 188692, 188695, 188697, 188699, 188702, 188703, 188705, 188706, 188712, 188715, 189288, 189289, 189290, 189291, 189292, 189295, 189299, 189300, 189301, 189302, 189304, 189306, 189307, 189310, 189311, 189312, 189313, 189315, 189317, 189327, 189328, 189330, 189958, 189959, 189960, 189961, 189962, 189963, 189975, 189976, 189977, 189983, 189986, 189991, 189993, 189996, 189997, 190002, 190003, 190014, 190019, 190020, 190021, 190022, 190023, 190032, 190092, 190118, 190119, 190121, 190122, 190123, 190124, 190125, 190126, 190129, 190132, 190134, 190156, 190160, 190192, 190193, 190194, 190198, 190199, 190236, 190278, 190279, 190280, 190281, 190282, 190285, 190287, 190288, 190289, 190290, 190291, 190292, 190293, 190294, 190343, 190350, 190351, 190352, 190353, 190361, 190362, 190395, 190399, 190444, 190445, 190446, 190447, 190456, 190457, 190458, 190459, 190461, 190462, 190463, 190464, 190465, 190466, 190467, 190468, 190469, 190470, 190471, 190472, 190473, 190474, 190476, 190477, 190478, 190479, 190480, 190481, 190482, 190498, 190500, 190504, 190505, 190506, 190513, 190514, 190515, 190522, 190524, 190525, 190526, 190527, 190533, 190534, 190535, 190536, 190538, 190541, 190542, 190543, 190546, 190547, 190548, 190549, 190550, 190555, 190556, 190572, 190574, 190579, 190580, 190581, 190582, 190587, 190594, 190602, 190618, 190619, 190620, 190621, 190622, 190624, 190629, 190630, 190633, 190635, 190636, 190637, 190638, 190639, 190644, 190645, 190646, 190657, 190660, 190661, 190678, 190680, 190681, 190683, 190684, 190695, 190702, 190704, 190716, 190731, 190752, 190762, 190763, 190778, 190779, 190784, 190836, 190858, 190939, 190940, 190941, 190942, 190944, 190946, 190959, 190960, 191009, 191016, 191018, 191083, 191088, 191090, 191123, 191142, 191164, 191180, 191181, 191182, 191185, 191188, 191189, 191217, 191219, 191227, 191228, 191229, 191230, 191235, 191236, 191253, 191254, 191255, 191256, 191257, 191258, 191259, 191260, 191276, 191277, 191278, 191287, 191288, 191292, 191293, 191294, 191295, 191296, 191300, 191304, 191305, 191306, 191307, 191308, 191309, 191311, 191313, 191314, 191315, 191316, 191317, 191318, 191324, 191325, 191326, 191327, 191328, 191329, 191341, 191346, 191347, 191364, 191365, 191369, 191370, 191371, 191387, 191388, 191389, 191390, 191392, 191393, 191394, 191395, 191396, 191410, 191411, 191412, 191413, 191414, 191415, 191416, 191444, 191445, 191459, 191473, 191486, 191487, 191488, 191489, 191490, 191491, 191492, 191493, 191494, 191495, 191496, 191497, 191502, 191509, 191519, 191521, 191527, 191529, 191530, 191531, 191532, 191533, 191534, 191535, 191536, 191537, 191542, 191548, 191549, 191552, 191553, 191574, 191575, 191576, 191605, 191608, 191614, 191615, 191623, 191624, 191635, 191636, 191637, 191638, 191639, 191640, 191647, 191667, 191669, 191670, 191671, 191674, 191675, 191676, 191677, 191678, 191681, 191686, 191687, 191688, 191697, 191698, 191699, 191701, 191702, 191718, 191728, 191732, 191734, 191735, 191745, 191754, 191755, 191756, 191757, 191758, 191760, 191761, 191766, 191770, 191773, 191790, 191817, 191820, 191824, 191825, 191826, 191827, 191828, 191829, 191832, 191833, 191834, 191835, 191836, 191837, 191838, 191839, 191843, 191844, 191845, 191850, 191854, 191856, 191860, 191861, 191863, 191864, 191869, 191871, 191872, 191873, 191875, 191876, 191909, 191910, 191911, 191912, 191913, 191914, 191915, 191916, 191917, 191918, 191919, 191924, 191925, 191926, 191927, 191928, 191929, 191930, 191931, 191932, 191933, 191934, 191935, 191939, 191940, 191942, 191950, 191951, 191952, 191953, 191954, 191958, 191959, 191960, 191964, 191965, 191966, 191974, 191975, 191980, 191981, 191983, 191984, 191986, 191987, 192002, 192003, 192004, 192010, 192017, 192034, 192035, 192036, 192037, 192038, 192046, 192048, 192049, 192050, 192051, 192052, 192057, 192058, 192061, 192062, 192063, 192067, 192071, 192077, 192078, 192079, 192080, 192081, 192082, 192088, 192089, 192090, 192091, 192092, 192115, 192118, 192119, 192123, 192124, 192125, 192126, 192128, 192134, 192135, 192140, 192153, 192154, 192155, 192156, 192161, 192162, 192163, 192164, 192171, 192172, 192173, 192174, 192175, 192176, 192177, 192178, 192183, 192184, 192185, 192186, 192187, 192188, 192189, 192190, 192196, 192197, 192198, 192199, 192200, 192201, 192202, 192203, 192204, 192205, 192206, 192207, 192208, 192209, 192210, 192211, 192212, 192213, 192214, 192215, 192216, 192217, 192218, 192221, 192222, 192223, 192224, 192225, 192238, 192240, 192241, 192252, 192253, 192256, 192281, 192282, 192286, 192287, 192291, 192292, 192299, 192304, 192305, 192306, 192307, 192308, 192309, 192310, 192312, 192313, 192314, 192316, 192317, 192318, 192319, 192320, 192321, 192322, 192323, 192324, 192325, 192326, 192327, 192328, 192329, 192330, 192331, 192332, 192333, 192334, 192335, 192380, 192395, 192396, 192397, 192398, 192399, 192400, 192401, 192424, 192425, 192426, 192427, 192428, 192452, 192487, 192491, 192493, 192502, 192518, 192519, 192520, 192522, 192524, 192536, 192539, 192553, 192554, 192555, 192556, 192557, 192562, 192563, 192564, 192565, 192566, 192567, 192568, 192569, 192572, 192573, 192574, 192575, 192576, 192577, 192578, 192588, 192602, 192603, 192610, 192611, 192613, 192615, 192616, 192619, 192621, 192622, 192632, 192633, 192651, 192653, 192654, 192685, 192687, 192689, 192690, 192691, 192707, 192708, 192709, 192711, 192713, 192717, 192721, 192722, 192723, 192724, 192725, 192726, 192727, 192728, 192729, 192730, 192731, 192734, 192735, 192736, 192737, 192738, 192739, 192740, 192741, 192742, 192743, 192773, 192774, 192784, 192785, 192787, 192788, 192797, 192798, 192799, 192800, 192801, 192802, 192803, 192804, 192805, 192818, 192819, 192821, 192822, 192824, 192826, 192827, 192828, 192829, 192830, 192831, 192832, 192835, 192838, 192839, 192840, 192841, 192866, 192867, 192868, 192869, 192871, 192872, 192874, 192880, 192881, 192883, 192884, 192885, 192888, 192889, 192890, 192892, 192893, 192905, 192908, 192909, 192910, 192911, 192912, 192913, 192918, 192919, 192920, 192921, 192922, 192923, 192924, 192925, 192926, 192927, 192928, 192929, 192930, 192931, 192941, 192942, 192943, 192944, 192945, 192951, 192952, 193007, 193019, 193024, 193027, 193028, 193029, 193030, 193043, 193044, 193045, 193049, 193050, 193051, 193058, 193059, 193086, 193087, 193089, 193096, 193097, 193098, 193099, 193100, 193101, 193102, 193103, 193104, 193105, 193106, 193107, 193108, 193109, 193124, 193125, 193126, 193128, 193129, 193130, 193131, 193132, 193133, 193134, 193135, 193136, 193137, 193138, 193162, 193163, 193164, 193165, 193166, 193167, 193173, 193174, 193175, 193176, 193177, 193179, 193180, 193185, 193188, 193189, 193190, 193191, 193192, 193193, 193196, 193197, 193198, 193199, 193200, 193201, 193202, 193208, 193209, 193214, 193220, 193221, 193222, 193223, 193224, 193225, 193226, 193227, 193228, 193229, 193230, 193231, 193232, 193233, 193234, 193235, 193236, 193237, 193238, 193239, 193240, 193241, 193242, 193243, 193244, 193245, 193246, 193247, 193248, 193249, 193250, 193251, 193252, 193253, 193254, 193255, 193256, 193257, 193258, 193259, 193260, 193261, 193262, 193263, 193264, 193265, 193266, 193267, 193268, 193269, 193270, 193271, 193272, 193273, 193274, 193275, 193276, 193277, 193278, 193279, 193280, 193281, 193282, 193283, 193284, 193285, 193286, 193287, 193288, 193289, 193290, 193291, 193292, 193293, 193294, 193295, 193296, 193297, 193298, 193299, 193300, 193301, 193302, 193303, 193304, 193305, 193306, 193307, 193308, 193309, 193310, 193311, 193312, 193313, 193314, 193315, 193316, 193317, 193318, 193319, 193320, 193321, 193322, 193323, 193324, 193325, 193326, 193327, 193328, 193329, 193330, 193331, 193332, 193333, 193334, 193335, 193336, 193337, 193338, 193339, 193340, 193341, 193342, 193343, 193344, 193345, 193346, 193347, 193348, 193349, 193350, 193351, 193352, 193353, 193354, 193355, 193356, 193357, 193358, 193359, 193360, 193361, 193362, 193363, 193364, 193365, 193366, 193367, 193368, 193369, 193370, 193371, 193372, 193373, 193374, 193375, 193376, 193377, 193379, 193380, 193381, 193382, 193383, 193384, 193385, 193386, 193388, 193389, 193390, 193391, 193392, 193393, 193394, 193395, 193396, 193397, 193398, 193399, 193402, 193403, 193404, 193428, 193429, 193430, 193431, 193432, 193433, 193434, 193435, 193436, 193437, 193438, 193439, 193555, 193556, 193557, 193560, 193561, 193562, 193563, 193578, 193583, 193584, 193585, 193598, 193599, 193602, 193610, 193624, 193625, 193626, 193627, 193630, 193631, 193632, 193633, 193634, 193635, 193636, 193637, 193638, 193639, 193640, 193641, 193642, 193643, 193644, 193645, 193646, 193647, 193648, 193649, 193650, 193651, 193652, 193653, 193654, 193655, 193656, 193657, 193658, 193659, 193660, 193661, 193662, 193663, 193664, 193665, 193666, 193667, 193668, 193669, 193670, 193671, 193672, 193673, 193674, 193675, 193676, 193677, 193678, 193679, 193680, 193681, 193682, 193683, 193684, 193685, 193686, 193687, 193688, 193689, 193690, 193691, 193692, 193693, 193694, 193695, 193696, 193697, 193698, 193699, 193700, 193701, 193702, 193703, 193704, 193705, 193706, 193707, 193708, 193709, 193710, 193711, 193712, 193713, 193714, 193715, 193716, 193717, 193718, 193719, 193720, 193721, 193722, 193723, 193724, 193725, 193726, 193727, 193728, 193729, 193730, 193731, 193732, 193733, 193734, 193735, 193736, 193737, 193738, 193739, 193740, 193741, 193742, 193743, 193744, 193745, 193746, 193747, 193748, 193749, 193750, 193751, 193752, 193753, 193754, 193755, 193756, 193757, 193758, 193759, 193760, 193761, 193762, 193763, 193764, 193765, 193766, 193768, 193769, 193770, 193772, 193781, 193846, 193847, 193848, 193849, 193850, 193851, 193852, 193853, 193854, 193855, 193856, 193857, 193858, 193859, 193860, 193861, 193862, 193863, 193864, 193865, 193866, 193867, 193868, 193869, 193870, 193871, 193872, 193873, 193874, 193875, 193876, 193877, 193878, 193880, 193881, 193882, 193883, 193884, 193885, 193886, 193887, 193888, 193889, 193890, 193891, 193892, 193893, 193894, 193895, 193896, 193897, 193898, 193899, 193900, 193901, 193902, 193903, 193906, 193915, 193916, 193917, 193918, 193919, 193920, 193921, 193922, 193923, 193924, 193925, 193927, 193929, 193932, 193933, 193934, 193935, 193936, 193939, 193940, 193949, 193950, 193951, 193963, 193972, 193981, 193983, 193984, 193987, 193991, 193995, 193997, 194005, 194012, 194016, 194018, 194021, 194027, 194083, 194088, 194089, 194090, 194092, 194097, 194099, 194101, 194102, 194103, 194104, 194105, 194106, 194107, 194108, 194112, 194114, 194120, 194121, 194124, 194126, 194127, 194128, 194129, 194130, 194131, 194132, 194133, 194145, 194147, 194151, 194162, 194203, 194204, 194208, 194209, 194211, 194213, 194263, 194278, 194281, 194283, 194296, 194297, 194309, 194310, 194311, 194323, 194340, 194356, 194378, 194387, 194389, 194393, 194394, 194438, 194464, 194465, 194466, 194467, 194468, 194471, 194472, 194473, 194476, 194482, 194487, 194488, 194489, 194490, 194492, 194497, 194523, 194524, 194525, 194526, 194527, 194528, 194529, 194530, 194531, 194532, 194533, 194534, 194537, 194538, 194539, 194540, 194545, 194546, 194547, 194548, 194566, 194567, 194568, 194588, 194609, 194610, 194611, 194613, 194618, 194622, 194632, 194648, 194651, 194658, 194659, 194676, 194677, 194678, 194679, 194680, 194681, 194682, 194683, 194684, 194685, 194686, 194687, 194688, 194690, 194691, 194692, 194693, 194694, 194695, 194696, 194714, 194788, 194802, 194803, 194820, 194826, 194916, 194917, 194918, 194919, 194920, 194921, 194922, 194923, 194924, 194925, 194934, 194937, 194938, 194939, 194940, 194941, 194942, 194943, 194944, 194945, 194946, 194953, 194954, 194964, 194965, 194966, 194967, 194968, 194969, 194970, 194971, 194972, 194973, 194974, 194975, 194976, 194977, 194978, 194979, 194980, 194981, 194982, 194997, 194998, 195002, 195005, 195006, 195007, 195013, 195014, 195022, 195029, 195030, 195031, 195032, 195037, 195077, 195081, 195082, 195083, 195084, 195091, 195092, 195094, 195097, 195107, 195108, 195110, 195111, 195112, 195118, 195129, 195134, 195135, 195136, 195138, 195139, 195140, 195141, 195142, 195147, 195174, 195175, 195176, 195177, 195186, 195202, 195206, 195207, 195208, 195209, 195210, 195211, 195213, 195214, 195217, 195218, 195219, 195223, 195240, 195302, 195308, 195310, 195344, 195346, 195360, 195361, 195419, 195420, 195421, 195422, 195424, 195425, 195427, 195428, 195431, 195432, 195433, 195435, 195436, 195438, 195440, 195447, 195448, 195450, 195451, 195452, 195455, 195460, 195461, 195464, 195467, 195468, 195497, 195498, 195513, 195517, 195519, 195528, 195529, 195530, 195531, 195532, 195533, 195535, 195569, 195586, 195588, 195589, 195590, 195591, 195597, 195600, 195601, 195623, 195638, 195639, 195640, 195642, 195652, 195661, 195674, 195676, 195681, 195683, 195687, 195692, 195693, 195695, 196387, 196393, 196395, 196474, 196475, 196485, 196486, 196487, 196834, 196835, 196837, 196871, 196872, 197007, 197008, 197009, 197010, 197011, 197012, 197013, 197014, 197015, 197017, 197018, 197020, 197021, 197022, 197023, 197024, 197025, 197026, 197027, 197028, 197029, 197030, 197031, 197032, 197033, 197034, 197035, 197036, 197037, 197038, 197039, 197040, 197041, 197042, 197043, 197044, 197045, 197046, 197047, 197048, 197049, 197050, 197051, 197052, 197053, 197054, 197055, 197056, 197057, 197058, 197059, 197060, 197061, 197062, 197063, 197064, 197065, 197066, 197067, 197068, 197069, 197070, 197071, 197072, 197073, 197074, 197075, 197076, 197077, 197078, 197079, 197080, 197081, 197082, 197083, 197084, 197085, 197086, 197087, 197088, 197089, 197090, 197091, 197092, 197093, 197094, 197095, 197096, 197097, 197098, 197099, 197116, 197117, 197118, 197119, 197120, 197121, 197122, 197123, 197124, 197125, 197126, 197131, 197132, 197133, 197134, 197135, 197136, 197137, 197138, 197139, 197140, 197141, 197142, 197143, 197144, 197145, 197146, 197147, 197148, 197149, 197150, 197172, 197173, 197174, 197175, 197176, 197177, 197178, 197179, 197180, 197181, 197182, 197183, 197184, 197185, 197186, 197187, 197188, 197189, 197190, 197191, 197192, 197193, 197196, 197207, 197257, 197259, 197260, 197261, 197276, 197278, 197279, 197280, 197284, 197285, 197286, 197287, 197307, 197309, 197310, 197311, 197312, 197313, 197314, 197315, 197322, 197323, 199330, 199331, 199333, 200300, 200302, 200303, 200306, 200307, 200308, 200309, 200310, 200311, 200312, 200313, 200314, 200315, 200316, 200317, 200318, 200319, 200320, 200321, 200322, 200323, 200326, 200327, 200328, 200329, 200330, 200331, 200332, 200333, 200334, 200335, 200336, 200337, 200338, 201289, 201302, 201384, 201386, 201391, 201392, 201393, 201394, 201397, 201399, 201400, 201415, 201416, 201417, 201418, 201419, 201420, 201421, 201422, 201445, 201446, 201447, 201448, 201449, 201450, 201451, 201452, 201453, 201454, 201455, 201456, 201457, 201458, 201459, 201460, 201461, 201462, 201463, 201474, 201475, 201476, 201477, 201478, 201479, 201480, 201481, 201482, 201483, 201484, 201485, 201488, 201489, 201490, 201491, 201492, 201493, 201494, 201495, 201496, 201497, 201498, 201499, 201500, 201501, 201502, 201503, 201504, 201505, 201506, 201507, 201508, 201509, 201510, 201511, 201512, 201513, 201514, 201515, 201516, 201517, 201518, 201519, 201520, 201521, 201522, 201523, 201524, 201525, 201526, 201527, 201528, 201529, 201530, 201531, 201532, 201533, 201534, 201535, 201536, 201537, 201538, 201539, 201540, 201541, 201542, 201543, 201544, 201545, 201546, 201547, 201548, 201549, 201550, 201551, 201552, 201553, 201554, 201555, 201556, 201557, 201558, 201559, 201560, 201563, 201579, 201580, 201583, 201587, 201592, 201593, 201595, 201597, 201602, 201619, 201641, 201642, 201643, 201644, 201645, 201646, 201647, 201648, 201649, 201650, 201651, 201652, 201653, 201654, 201655, 201656, 201657, 201658, 201659, 201660, 201661, 201662, 201663, 201664, 201665, 201666, 201667, 201668, 201669, 201670, 201671, 201672, 201673, 201674, 201675, 201676, 201677, 201678, 201679, 201680, 201681, 201682, 201683, 201684, 201685, 201686, 201687, 201688, 201689, 201690, 201691, 201692, 201693, 201694, 201696, 201701, 201703, 201707, 201708, 201724, 201737, 201738, 201742, 201759, 201760, 201761, 201771, 201772, 201773, 201774, 201776, 201777, 201792, 201822, 201825, 201834, 201843, 201848, 201857, 201866, 201867, 201885, 201892, 201893, 201894, 201895, 201896, 201897, 201898, 201906, 201910, 201911, 201913, 201940, 201942, 201963, 201971, 201975, 201980, 201981, 201982, 201983, 201985, 201986, 201987, 201989, 201991, 201992, 201993, 201994, 201995, 201996, 201997, 201998, 201999, 202000, 202001, 202002, 202003, 202004, 202005, 202006, 202007, 202008, 202009, 202010, 202011, 202012, 202013, 202014, 202015, 202016, 202017, 202018, 202019, 202020, 202021, 202022, 202023, 202024, 202025, 202026, 202027, 202028, 202029, 202030, 202031, 202032, 202033, 202034, 202035, 202036, 202043, 202044, 202045, 202046, 202047, 202048, 202049, 202050, 202051, 202052, 202053, 202054, 202055, 202056, 202057, 202058, 202059, 202060, 202061, 202062, 202063, 202064, 202079, 202105, 202107, 202110, 202112, 202114, 202115, 202122, 202123, 202124, 202125, 202135, 202138, 202158, 202159, 202160, 202168, 202172, 202175, 202176, 202184, 202187, 202195, 202196, 202197, 202198, 202206, 202207, 202218, 202220, 202221, 202242, 202243, 202244, 202245, 202247, 202253, 202256, 202257, 202258, 202259, 202260, 202267, 202270, 202271, 202272, 202273, 202274, 202303, 202304, 202320, 202321, 202322, 202323, 202324, 202325, 202335, 202363, 202364, 202365, 202367, 202387, 202389, 202391, 202392, 202393, 202394, 202395, 202405, 202420, 202440, 202443, 202465, 202471, 202476, 202477, 202478, 202563, 202572, 202577, 202578, 202580, 202587, 202588, 202590, 202595, 202596, 202603, 202604, 202605, 202615, 202620, 202621, 202623, 202652, 202660, 202697, 202701, 202702, 202703, 202717, 202723, 202732, 202754, 202756, 202758, 202776, 202777, 202779, 202780, 202793, 202798, 202799, 202800, 202801, 202808, 202809, 202810, 202815, 202831, 202832, 202846, 202858, 202860, 202861, 202862, 202899, 202900, 202901, 202934, 202943, 202944, 202945, 202946, 202947, 202948, 202951, 202956, 202957, 202958, 202959, 202960, 202961, 202975, 202976, 202977, 202978, 203042, 203055, 203056, 203066, 203067, 203088, 203089, 203090, 203129, 203130, 203141, 203145, 203146, 203147, 203148, 203152, 203153, 203154, 203157, 203158, 203160, 203162, 203167, 203169, 203173, 203174, 203179, 203182, 203183, 203186, 203192, 203193, 203195, 203204, 203206, 203214, 203215, 203216, 203221, 203224, 203225, 203226, 203228, 203229, 203234, 203235, 203237, 203239, 203242, 203243, 203247, 203248, 203249, 203252, 203253, 203256, 203257, 203258, 203259, 203260, 203262, 203263, 203264, 203265, 203279, 203280, 203282, 203283, 203285, 203286, 203287, 203288, 203289, 203290, 203291, 203311, 203312, 203372, 203376, 203377, 203383, 203385, 203397, 203398, 203399, 203400, 203401, 203402, 203413, 203415, 203418, 203429, 203431, 203443, 203446, 203450, 203452, 203460, 203464, 203471, 203474, 203476, 203604, 203605, 203607, 203608, 203609, 203610, 203611, 203612, 203613, 203614, 203615, 203707, 203710, 203731, 203732, 203733, 203735, 203751, 203756, 203762, 203800, 203801, 203802, 203803, 203804, 203805, 203806, 203807, 203808, 203809, 203810, 203811, 203815, 203816, 203817, 203819, 203821, 203825, 203826, 203834, 203835, 203836, 203837, 203838, 203842, 203850, 203853, 203854, 203855, 203862, 203924, 203925, 203926, 203927, 203928, 203929, 203930, 203931, 203932, 203933, 203934, 203935, 203936, 203937, 203938, 203939, 203940, 203941, 203942, 203943, 203944, 203945, 203946, 203947, 203948, 203949, 203950, 203951, 203952, 203953, 203954, 203955, 203956, 203958, 203964, 203965, 203966, 203967, 203968, 203969, 203972, 203973, 203975, 203976, 203977, 203978, 203979, 203982, 203987, 203988, 203989, 204000, 204001, 204005, 204014, 204015, 204016, 204017, 204019, 204021, 204044, 204047, 204088, 204089, 204090, 204094, 204095, 204097, 204098, 204099, 204100, 204102, 204116, 204117, 204118, 204119, 204120, 204121, 204122, 204127, 204128, 204130, 204131, 204132, 204133, 204138, 204142, 204143, 204144, 204154, 204155, 204156, 204161, 204162, 204163, 204164, 204165, 204166, 204172, 204173, 204174, 204175, 204176, 204177, 204178, 204179, 204180, 204182, 204183, 204184, 204185, 204186, 204187, 204188, 204189, 204190, 204191, 204192, 204193, 204194, 204195, 204196, 204197, 204198, 204199, 204200, 204201, 204202, 204203, 204204, 204205, 204206, 204207, 204208, 204209, 204210, 204211, 204212, 204213, 204214, 204215, 204219, 204222, 204223, 204224, 204226, 204227, 204233, 204234, 204235, 204236, 204237, 204243, 204244, 204245, 204246, 204247, 204254, 204266, 204267, 204272, 204281, 204284, 204290, 204291, 204292, 204329, 204330, 204331, 204332, 204333, 204334, 204336, 204344, 204352, 204355, 204359, 204361, 204362, 204363, 204364, 204365, 204366, 204367, 204368, 204369, 204370, 204371, 204379, 204396, 204397, 204399, 204412, 204413, 204415, 204416, 204417, 204431, 204435, 204438, 204440, 204441, 204442, 204443, 204453, 204457, 204459, 204460, 204461, 204462, 204530, 204578, 204580, 204582, 204583, 204595, 204596, 204597, 204599, 204600, 204601, 204602, 204603, 204604, 204605, 204606, 204607, 204608, 204609, 204610, 204611, 204620, 204621, 204622, 204623, 204624, 204625, 204626, 204627, 204628, 204629, 204630, 204631, 204632, 204633, 204634, 204636, 204639, 204640, 204641, 204642, 204645, 204646, 204647, 204650, 204651, 204655, 204656, 204657, 204658, 204662, 204663, 204664, 204665, 204666, 204667, 204668, 204669, 204676, 204677, 204682, 204683, 204686, 204688, 204690, 204691, 204692, 204693, 204699, 204700, 204701, 204702, 204703, 204704, 204705, 204709, 204710, 204711, 204712, 204713, 204714, 204715, 204716, 204717, 204718, 204720, 204721, 204722, 204723, 204724, 204725, 204726, 204727, 204729, 204730, 204733, 204741, 204742, 204753, 204755, 204756, 204757, 204758, 204759, 204760, 204761, 204762, 204763, 204764, 204765, 204766, 204767, 204768, 204769, 204770, 204771, 204772, 204773, 204774, 204782, 204784, 204785, 204796, 204800, 204804, 204805, 204812, 204814, 204828, 204848, 204850, 204851, 204853, 204855, 204856, 204866, 204867, 204868, 204869, 204870, 204871, 204873, 204874, 204878, 204879, 204909, 204922, 204924, 204926, 204930, 204931, 204932, 204933, 204936, 204937, 204938, 204939, 204949, 204950, 204951, 204952, 204969, 204970, 204982, 204983, 204984, 204985, 204987, 204988, 204989, 204990, 204995, 204996, 204997, 205001, 205003, 205004, 205017, 205019, 205020, 205021, 205022, 205023, 205034, 205035, 205036, 205037, 205038, 205039, 205044, 205045, 205050, 205052, 205053, 205054, 205057, 205060, 205077, 205078, 205079, 205080, 205082, 205091, 205092, 205099, 205104, 205105, 205106, 205107, 205108, 205109, 205116, 205137, 205142, 205143, 205144, 205155, 205157, 205158, 205159, 205164, 205165, 205190, 205217, 205220, 205221, 205246, 205248, 205251, 205266, 205267, 205269, 205350, 205355, 205357, 205368, 205371, 205384, 205385, 205389, 205416, 205421, 205422, 205423, 205432, 205476, 205477, 205479, 205494, 205495, 205496, 205538, 205539, 205540, 205541, 205544, 205545, 205548, 205549, 205550, 205551, 205553, 205559, 205560, 205562, 205566, 205585, 205586, 205587, 205591, 205592, 205593, 205594, 205595, 205596, 205597, 205598, 205599, 205600, 205601, 205602, 205603, 205604, 205605, 205606, 205607, 205608, 205609, 205610, 205611, 205612, 205613, 205652, 205653, 205654, 205655, 205656, 205657, 205658, 205659, 205660, 205661, 205662, 205663, 205664, 205665, 205666, 205667, 205668, 205669, 205670, 205671, 205672, 205673, 205674, 205675, 205676, 205677, 205678, 205679, 205680, 205681, 205682, 205683, 205684, 205685, 205686, 205687, 205688, 205689, 205690, 205691, 205692, 205693, 205694, 205695, 205696, 205727, 205728, 205729, 205730, 205731, 205732, 205733, 205734, 205735, 205736, 205737, 205738, 205739, 205740, 205741, 205742, 205743, 205744, 205745, 205746, 205747, 205748, 205749, 205750, 205751, 205752, 205753, 205754, 205755, 205756, 205781, 205782, 205783, 205784, 205785, 205786, 205787, 205788, 205789, 205790, 205791, 205792, 205793, 205819, 205832, 205833, 205834, 205835, 205836, 205837, 205838, 205839, 205844, 205845, 205846, 205847, 205848, 205849, 205850, 205851, 205852, 205853, 205854, 205855, 205856, 205857, 205858, 205859, 205860, 205861, 205862, 205863, 205866, 205867, 205868, 205869, 205870, 205871, 205872, 205873, 205903, 205904, 205905, 205906, 205907, 205908, 205909, 205910, 205911, 205912, 205913, 205914, 205915, 205916, 205917, 205918, 205919, 205920, 205921, 205936, 205937, 205938, 205942, 205943, 205944, 205945, 205946, 205947, 205948, 205949, 205966, 205967, 206018, 206019, 206037, 206040, 206067, 206073, 206074, 206076, 206077, 206078, 206079, 206080, 206082, 206083, 206084, 206085, 206086, 206103, 206104, 206105, 206106, 206109, 206110, 206111, 206115, 206116, 206195, 206199, 206201, 206202, 206203, 206204, 206205, 206289, 206290, 206291, 206292, 206293, 206294, 206304, 206305, 206307, 206312, 206313, 206314, 206320, 206328, 206329, 206334, 206349, 206350, 206351, 206352, 206353, 206354, 206355, 206356, 206357, 206358, 206359, 206360, 206361, 206366, 206367, 206368, 206369, 206370, 206371, 206372, 206373, 206375, 206381, 206382, 206387, 206390, 206398, 206408, 206410, 206411, 206412, 206413, 206414, 206415, 206416, 206417, 206420, 206498, 206500, 206501, 206503, 206508, 206509, 206529, 206530, 206531, 206532, 206538, 206539, 206545, 206546, 206547, 206548, 206549, 206552, 206557, 206558, 206560, 206563, 206574, 206575, 206581, 206585, 206594, 206595, 206597, 206602, 206603, 206607, 206608, 206609, 206610, 206614, 206615, 206620, 206623, 206624, 206625, 206638, 206640, 206653, 206654, 206655, 206659, 206662, 206683, 206690, 206691, 206706, 206707, 206708, 206709, 206710, 206711, 206712, 206713, 206714, 206715, 206716, 206717, 206718, 206719, 206720, 206721, 206722, 206725, 206726, 206727, 206729, 206730, 206732, 206733, 206734, 206735, 206736, 206737, 206739, 206740, 206741, 206742, 206743, 206749, 206752, 206753, 206755, 206757, 206764, 206769, 206785, 206787, 206828, 206831, 206832, 206834, 206837, 206838, 206842, 206846, 206848, 206852, 206853, 206859, 206861, 206862, 206863, 206864, 206881, 206882, 206889, 206894, 206907, 206909, 206912, 206921, 206922, 206923, 206924, 206925, 206926, 206927, 206941, 206942, 206943, 206944, 206947, 206950, 206952, 206958, 206959, 206960, 206961, 206962, 206963, 206964, 206971, 206972, 206973, 206975, 206976, 206977, 206978, 206979, 206987, 206995, 206998, 206999, 207000, 207001, 207002, 207003, 207004, 207005, 207065, 207066, 207069, 207075, 207076, 207077, 207078, 207080, 207081, 207082, 207083, 207084, 207085, 207088, 207089, 207090, 207091, 207094, 207096, 207097, 207098, 207099, 207100, 207101, 207103, 207105, 207107, 207108, 207109, 207110, 207125, 207126, 207129, 207130, 207145, 207146, 207147, 207148, 207149, 207150, 207151, 207158, 207165, 207166, 207177, 207178, 207179, 207182, 207183, 207184, 207199, 207200, 207207, 207208, 207211, 207212, 207213, 207216, 207220, 207232, 207250, 207254, 207255, 207256, 207257, 207264, 207265, 207266, 207267, 207268, 207269, 207270, 207271, 207272, 207273, 207274, 207275, 207276, 207279, 207281, 207303, 207304, 207320, 207321, 207322, 207323, 207324, 207325, 207327, 207328, 207334, 207335, 207348, 207354, 207389, 207401, 207402, 207403, 207404, 207414, 207416, 207425, 207427, 207428, 207429, 207430, 207432, 207433, 207434, 207435, 207436, 207437, 207438, 207439, 207440, 207441, 207442, 207443, 207444, 207446, 207447, 207448, 207450, 207451, 207453, 207455, 207457, 207458, 207459, 207461, 207478, 207486, 207492, 207493, 207498, 207500, 207513, 207519, 207521, 207522, 207528, 207533, 207565, 207566, 207572, 207573, 207574, 207576, 207577, 207578, 207579, 207580, 207581, 207582, 207583, 207584, 207585, 207586, 207587, 207588, 207589, 207630, 207632, 207634, 207635, 207637, 207638, 207639, 207640, 207641, 207642, 207643, 207644, 207645, 207661, 207691, 207692, 207693, 207694, 207695, 207698, 207718, 207719, 207720, 207721, 207722, 207723, 207734, 207853, 207858, 207859, 207889, 207963, 207964, 207971, 207972, 207995, 207996, 208000, 208046, 208095, 208189, 208192, 208201, 208202, 208203, 208205, 208206, 208207, 208209, 208216, 208238, 208239, 208240, 208241, 208244, 208245, 208246, 208247, 208248, 208249, 208250, 208251, 208252, 208253, 208254, 208255, 208266, 208267, 208268, 208269, 208270, 208296, 208299, 208311, 208316, 208317, 208321, 208322, 208323, 208324, 208325, 208333, 208337, 208358, 208375, 208381, 208427, 208437, 208438, 208442, 208529, 208534, 208536, 208552, 208569, 208584, 208586, 208591, 208595, 208596, 208598, 208599, 208600, 208601, 208607, 208632, 208673, 208679, 208682, 208688, 208694, 208697, 208703, 208706, 208709, 208715, 208718, 208721, 208724, 208727, 208730, 208733, 208736, 208739, 208742, 208745, 208748, 208751, 208754, 208757, 208760, 208763, 208766, 208769, 208775, 208779, 208782, 208785, 208792, 208793, 208794, 208795, 208796, 208797, 208798, 208799, 208807, 208814, 208815, 208816, 208817, 208818, 208819, 208824, 208825, 208828, 208829, 208830, 208831, 208835, 208839, 208840, 208841, 208842, 208860, 208867, 208870, 208872, 208873, 208874, 208875, 208876, 208877, 208880, 208887, 208888, 208889, 208890, 208899, 208900, 208901, 208902, 208903, 208935, 208955, 208956, 208991, 208993, 208997, 208999, 209000, 209001, 209002, 209022, 209023, 209024, 209025, 209026, 209027, 209028, 209029, 209030, 209031, 209039, 209040, 209041, 209042, 209043, 209044, 209045, 209046, 209047, 209048, 209049, 209050, 209051, 209052, 209053, 209054, 209066, 209073, 209080, 209081, 209082, 209083, 209084, 209085, 209086, 209087, 209088, 209089, 209090, 209091, 209092, 209096, 209101, 209102, 209103, 209104, 209105, 209114, 209115, 209116, 209124, 209128, 209129, 209137, 209251, 209252, 209253, 209255, 209269, 209273, 209274, 209275, 209277, 209282, 209283, 209284, 209286, 209287, 209288, 209293, 209294, 209295, 209297, 209320, 209332, 209342, 209348, 209538, 209544, 209548, 209571, 209634, 209635, 209692, 209753, 209818, 209819, 209820, 209858, 209859, 209860, 209862, 209867, 209868, 209869, 210038, 210054, 210058, 210059, 210099, 210100, 210101, 210102, 210107, 210108, 210109, 210110, 210111, 210112, 210124, 210125, 210126, 210127, 210177, 210181, 210216, 210225, 210226, 210296, 210297, 210298, 210299, 210300, 210301, 210362, 210407, 210479, 210480, 210481, 210482, 210483, 210484, 210485, 210486, 210487, 210488, 210489, 210490, 210491, 210492, 210493, 210494, 210495, 210496, 210497, 210498, 210499, 210500, 210501, 210502, 210503, 210511, 210512, 210515, 210519, 210541, 210543, 210544, 210546, 210604, 210605, 210606, 210610, 210611, 210612, 210613, 210614, 210615, 210616, 210622, 210623, 210653, 210674, 210675, 210680, 210690, 210691, 210724, 210757, 210758, 210804, 210805, 210856, 210859, 210863, 210864, 210866, 210867, 210868, 210869, 210870, 210892, 210893, 210894, 210925, 210927, 210928, 210939, 210940, 210941, 210944, 210950, 210953, 210987, 210993, 211005, 211006, 211026, 211027, 211028, 211029, 211030, 211031, 211032, 211033, 211034, 211035, 211036, 211037, 211038, 211039, 211040, 211041, 211042, 211043, 211044, 211045, 211046, 211047, 211048, 211049, 211050, 211051, 211052, 211053, 211054, 211055, 211056, 211057, 211058, 211059, 211060, 211061, 211062, 211063, 211064, 211065, 211066, 211067, 211068, 211069, 211070, 211071, 211072, 211073, 211074, 211075, 211076, 211077, 211078, 211079, 211080, 211081, 211082, 211083, 211084, 211085, 211086, 211087, 211088, 211089, 211090, 211091, 211092, 211093, 211094, 211095, 211096, 211097, 211098, 211124, 211170, 211171, 211172, 211175, 211177, 211178, 211179, 211182, 211184, 211185, 211186, 211194, 211195, 211196, 211203, 211204, 211205, 211209, 211210, 211212, 211213, 211214, 211215, 211216, 211217, 211218, 211220, 211221, 211222, 211223, 211224, 211226, 211227, 211228, 211229, 211230, 211231, 211232, 211233, 211234, 211235, 211236, 211237, 211239, 211240, 211241, 211250, 211251, 211264, 211271, 211272, 211273, 211274, 211323, 211324, 211325, 211336, 211337, 211340, 211343, 211363, 211403, 211416, 211488, 211494, 211495, 211496, 211504, 211505, 211508, 211511, 211512, 211515, 211523, 211525, 211540, 211567, 211573, 211574, 211575, 211576, 211577, 211607, 211608, 211609, 211614, 211615, 211617, 211619, 211620, 211621, 211622, 211623, 211624, 211643, 211651, 211656, 211657, 211668, 211675, 211676, 211677, 211680, 211683, 211688, 211693, 211695, 211699, 211700, 211701, 211716, 211717, 211718, 211720, 211755, 211756, 211757, 211758, 211759, 211760, 211761, 211762, 211763, 211769, 211771, 211772, 211773, 211778, 211783, 211788, 211795, 211797, 211809, 211810, 211811, 211812, 211813, 211835, 211838, 211839, 211861, 211862, 211910, 211913, 211918, 211955, 211956, 211976, 211977, 211981, 211982, 211994, 212012, 212013, 212016, 212018, 212020, 212021, 212022, 212023, 212024, 212025, 212026, 212027, 212028, 212029, 212030, 212031, 212032, 212033, 212034, 212035, 212036, 212047, 212048, 212062, 212063, 212064, 212071, 212106, 212110, 212113, 212115, 212116, 212117, 212118, 212119, 212120, 212149, 212154, 212160, 212161, 212178, 212205, 212208, 212210, 212213, 212214, 212215, 212216, 212219, 212221, 212223, 212268, 212269, 212274, 212275, 212276, 212277, 212296, 212297, 212298, 212299, 212300, 212301, 212302, 212303, 212304, 212305, 212306, 212307, 212308, 212309, 212310, 212311, 212312, 212313, 212314, 212315, 212323, 212388, 212404, 212441, 212442, 212444, 212445, 212447, 212448, 212479, 212480, 212481, 212482, 212483, 212484, 212485, 212486, 212487, 212488, 212492, 212504, 212505, 212507, 212508, 212539, 212557, 212559, 212560, 212561, 212562, 212563, 212564, 212565, 212566, 212567, 212568, 212569, 212570, 212571, 212572, 212573, 212574, 212575, 212576, 212577, 212578, 212579, 212580, 212581, 212583, 212584, 212585, 212586, 212588, 212589, 212590, 212591, 212592, 212593, 212611, 212612, 212613, 212615, 212616, 212617, 212618, 212619, 212621, 212622, 212623, 212624, 212625, 212626, 212627, 212628, 212629, 212630, 212631, 212632, 212633, 212641, 212642, 212643, 212644, 212649, 212650, 212651, 212652, 212655, 212656, 212657, 212658, 212659, 212660, 212661, 212664, 212690, 212691, 212694, 212696, 212750, 212753, 212754, 212755, 212756, 212757, 212758, 212771, 212772, 212773, 212774, 212775, 212776, 212777, 212860, 212870, 212874, 212876, 212878, 212879, 212880, 212881, 212882, 212883, 212908, 212921, 212927, 212931, 212932, 212935, 212939, 212940, 212941, 212942, 212954, 212955, 212973, 213011, 213012, 213013, 213014, 213015, 213016, 213017, 213018, 213019, 213020, 213021, 213022, 213023, 213024, 213033, 213034, 213035, 213036, 213037, 213038, 213039, 213040, 213041, 213042, 213043, 213044, 213045, 213046, 213047, 213048, 213049, 213050, 213051, 213052, 213053, 213054, 213055, 213056, 213057, 213058, 213059, 213060, 213061, 213062, 213063, 213064, 213065, 213066, 213067, 213068, 213071, 213082, 213083, 213084, 213090, 213091, 213114, 213115, 213116, 213121, 213122, 213132, 213133, 213141, 213142, 213155, 213156, 213157, 213159, 213160, 213161, 213162, 213164, 213165, 213166, 213167, 213172, 213185, 213194, 213195, 213223, 213240, 213241, 213242, 213243, 213251, 213254, 213255, 213259, 213260, 213261, 213262, 213263, 213264, 213265, 213268, 213269, 213270, 213271, 213281, 213282, 213291, 213292, 213293, 213295, 213296, 213297, 213298, 213299, 213302, 213313, 213327, 213330, 213334, 213347, 213349, 213370, 213377, 213378, 213379, 213381, 213382, 213395, 213396, 213397, 213398, 213409, 213411, 213413, 213414, 213416, 213417, 213418, 213420, 213424, 213425, 213426, 213427, 213428, 213429, 213430, 213431, 213432, 213433, 213434, 213435, 213440, 213441, 213442, 213443, 213445, 213446, 213455, 213457, 213459, 213460, 213462, 213464, 213465, 213466, 213498, 213499, 213500, 213501, 213503, 213508, 213511, 213598, 213599, 213600, 213601, 213602, 213603, 213604, 213605, 213606, 213607, 213608, 213609, 213610, 213611, 213612, 213613, 213614, 213615, 213616, 213617, 213618, 213619, 213620, 213623, 213626, 213627, 213628, 213629, 213630, 213631, 213632, 213636, 213637, 213652, 213654, 213655, 213667, 213668, 213669, 213670, 213671, 213672, 213673, 213674, 213677, 213680, 213681, 213682, 213683, 213684, 213686, 213687, 213688, 213689, 213692, 213693, 213696, 213708, 213709, 213710, 213711, 213712, 213713, 213714, 213718, 213719, 213720, 213721, 213722, 213723, 213724, 213725, 213726, 213727, 213728, 213729, 213730, 213745, 213755, 213757, 213758, 213759, 213760, 213762, 213767, 213799, 213800, 213801, 213802, 213804, 213806, 213812, 213814, 213815, 213816, 213817, 213823, 213824, 213825, 213826, 213827, 213828, 213829, 213830, 213831, 213847, 213848, 213849, 213850, 213851, 213863, 213864, 213865, 213881, 213882, 213884, 213886, 213965, 213975, 213977, 213978, 213979, 213980, 213981, 213982, 214016, 214057, 214058, 214059, 214060, 214061, 214063, 214064, 214065, 214108, 214109, 214110, 214111, 214113, 214114, 214115, 214116, 214117, 214118, 214119, 214120, 214121, 214122, 214123, 214124, 214125, 214126, 214127, 214128, 214129, 214130, 214131, 214132, 214133, 214134, 214135, 214136, 214137, 214138, 214143, 214147, 214148, 214149, 214150, 214151, 214152, 214153, 214154, 214155, 214156, 214157, 214158, 214159, 214160, 214161, 214163, 214176, 214179, 214189, 214196, 214198, 214205, 214206, 214207, 214208, 214209, 214210, 214211, 214212, 214214, 214217, 214218, 214219, 214221, 214223, 214224, 214225, 214226, 214229, 214231, 214232, 214233, 214258, 214260, 214262, 214263, 214264, 214265, 214267, 214268, 214269, 214270, 214271, 214272, 214273, 214274, 214283, 214353, 214355, 214358, 214359, 214360, 214362, 214363, 214364, 214369, 214370, 214371, 214372, 214375, 214376, 214377, 214380, 214381, 214382, 214393, 214395, 214396, 214397, 214398, 214399, 214404, 214405, 214408, 214409, 214410, 214411, 214413, 214414, 214415, 214416, 214417, 214418, 214419, 214420, 214421, 214422, 214423, 214424, 214425, 214426, 214427, 214428, 214446, 214461, 214463, 214465, 214466, 214478, 214482, 214505, 214506, 214540, 214544, 214549, 214562, 214563, 214564, 214565, 214566, 214567, 214568, 214569, 214570, 214615, 214616, 214617, 214618, 214619, 214620, 214621, 214622, 214623, 214624, 214625, 214633, 214637, 214641, 214644, 214645, 214646, 214647, 214678, 214681, 214682, 214683, 214684, 214685, 214686, 214687, 214688, 214689, 214739, 214741, 214742, 214743, 214744, 214745, 214746, 214750, 214751, 214752, 214753, 214759, 214760, 214761, 214762, 214763, 214764, 214765, 214766, 214767, 214768, 214769, 214770, 214771, 214772, 214773, 214797, 214798, 214799, 214800, 214801, 214802, 214803, 214804, 214805, 214806, 214807, 214808, 214809, 214818, 214831, 214832, 214834, 214835, 214838, 214855, 214869, 214870, 214877, 214878, 214884, 214896, 214906, 214907, 214944, 214961, 214965, 214967, 214968, 214975, 214976, 214977, 214982, 214985, 214989, 214991, 214992, 214993, 215039, 215040, 215041, 215042, 215043, 215044, 215045, 215046, 215047, 215070, 215071, 215072, 215073, 215076, 215078, 215079, 215082, 215083, 215084, 215122, 215123, 215128, 215130, 215136, 215170, 215171, 215189, 215194, 215318, 215348, 215349, 215350, 215351, 215352, 215353, 215354, 215363, 215364, 215365, 215366, 215381, 215382, 215389, 215391, 215397, 215400, 215457, 215460, 215461, 215594, 215635, 215706, 215710, 215720, 215760, 215765, 215779, 215780, 215781, 215782, 215783, 215785, 215787, 215798, 215799, 215851, 215855, 215858, 215862, 215863, 215864, 215865, 215866, 215867, 215868, 215869, 215878, 215883, 215901, 215910, 215917, 215943, 215956, 215958, 215962, 215963, 215964, 215965, 215966, 215973, 216056, 216057, 216058, 216060, 216098, 216100, 216101, 216102, 216103, 216105, 216106, 216107, 216108, 216110, 216112, 216113, 216114, 216115, 216116, 216119, 216120, 216121, 216122, 216123, 216124, 216125, 216126, 216127, 216128, 216129, 216130, 216131, 216132, 216133, 216134, 216135, 216136, 216137, 216138, 216141, 216142, 216146, 216147, 216148, 216149, 216161, 216232, 216233, 216239, 216247, 216248, 216249, 216250, 216254, 216255, 216264, 216265, 216281, 216284, 216287, 216291, 216300, 216304, 216305, 216306, 216313, 216323, 216354, 216355, 216356, 216357, 216358, 216359, 216459, 216460, 216461, 216462, 216465, 216466, 216467, 216468, 216469, 216470, 216471, 216472, 216473, 216474, 216475, 216476, 216483, 216489, 216491, 216611, 216612, 216613, 216614, 216624, 216627, 216635, 216636, 216637, 216638, 216639, 216640, 216641, 216642, 216643, 216644, 216645, 216647, 216648, 216649, 216650, 216651, 216652, 216653, 216654, 216655, 216657, 216658, 216661, 216662, 216663, 216667, 216672, 216673, 216674, 216675, 216708, 216709, 216723, 216755, 216757, 216838, 216844, 216845, 216846, 216862, 216864, 216873, 216885, 216886, 216942, 216943, 216944, 217165, 217186, 217752, 217754, 217759, 217760, 217761, 217762, 217763, 217764, 217765, 217767, 218054, 218060, 218107, 218108, 218109, 218110, 218111, 218114, 218187, 218378, 218379, 218380, 218381, 218388, 218389, 218390, 218391, 218392, 218393, 218394, 218395, 218396, 218430, 218432, 218434, 218436, 218438, 218462, 218463, 218469, 218521, 218540, 218543, 218545, 218546, 218547, 218548, 218549, 218550, 218551, 218552, 218553, 218554, 218555, 218582, 218583, 218584, 218585, 218586, 218588, 218589, 218600, 218625, 218627, 218628, 218637, 218639, 218641, 218642, 218647, 218655, 218656, 218657, 218658, 218659, 218660, 218661, 218662, 218663, 218664, 218665, 218666, 218667, 218668, 218669, 218670, 218671, 218672, 218673, 218674, 218707, 218708, 218709, 218710, 218717, 218722, 218724, 218726, 218727, 218740, 218746, 218751, 218752, 218753, 218754, 218762, 218766, 218767, 218768, 218769, 218771, 218781, 218826, 218827, 218833, 218834, 218850, 218851, 218852, 218853, 218856, 218857, 218858, 218859, 218860, 218861, 218862, 218863, 218864, 218865, 218866, 218867, 218868, 218887, 218888, 218908, 218909, 218910, 218911, 218912, 218913, 218914, 218915, 218916, 218917, 218952, 218953, 218954, 218955, 218957, 218958, 218961, 218966, 218969, 218974, 218980, 218985, 219107, 219108, 219109, 219110, 219111, 219112, 219113, 219114, 219115, 219118, 219119, 219127, 219128, 219129, 219130, 219131, 219132, 219133, 219134, 219135, 219136, 219138, 219139, 219140, 219141, 219142, 219143, 219144, 219145, 219146, 219147, 219148, 219149, 219150, 219153, 219154, 219157, 219158, 219161, 219162, 219163, 219164, 219165, 219166, 219167, 219168, 219169, 219170, 219171, 219172, 219173, 219178, 219179, 219180, 219181, 219182, 219183, 219184, 219185, 219186, 219187, 219188, 219189, 219190, 219204, 219205, 219206, 219207, 219208, 219209, 219210, 219211, 219212, 219216, 219218, 219229, 219230, 219231, 219250, 219251, 219252, 219253, 219254, 219255, 219277, 219352, 219353, 219354, 219355, 219397, 219398, 219399, 219400, 219401, 220065, 220066, 220068, 220159, 220160, 220161, 220175, 220176, 220178, 220179, 220183, 220193, 220202, 220203, 220205, 220206, 220207, 220208, 220209, 220210, 220211, 220348, 220366, 220369, 220370, 220371, 220372, 220373, 220374, 220856, 220857, 221032, 221231, 221232, 221233, 221234, 221235, 221244, 221264, 221268, 221376, 221442, 221444, 221516, 221517, 221518, 221519, 221521, 221526, 221527, 221528, 221553, 221563, 221564, 221611, 221620, 221622, 221663, 221666, 221676, 221677, 221678, 221679, 221685, 221771, 221772, 221773, 221774, 221775, 221782, 221784, 221785, 221786, 221787, 221788, 221789, 221790, 221791, 221792, 221793, 221794, 221795, 221796, 221797, 221798, 221799, 221800, 221801, 221802, 221803, 221804, 221805, 221806, 221807, 221808, 221809, 221810, 221811, 221812, 221813, 221814, 221815, 221816, 221817, 221818, 221819, 221820, 221821, 221822, 221823, 221824, 221825, 221826, 221827, 221828, 221829, 221830, 221831, 221832, 221833, 221834, 221835, 221836, 221837, 221838, 221839, 221840, 221841, 221842, 221843, 221844, 221845, 221846, 221847, 221848, 221849, 221850, 221851, 221852, 221853, 221854, 221855, 221856, 221857, 221858, 221859, 221860, 221861, 221862, 221863, 221864, 221865, 221866, 221867, 221868, 221869, 221870, 221871, 221872, 221873, 221874, 221875, 221876, 221877, 221878, 221879, 221880, 221881, 221882, 221883, 221884, 221885, 221886, 221887, 221888, 221889, 221890, 221891, 221892, 221893, 221894, 221896, 221898, 221900, 221901, 221902, 221903, 221904, 221905, 221906, 221907, 221908, 221909, 221910, 221911, 221912, 221942, 221993, 221996, 221997, 221998, 221999, 222000, 222001, 222002, 222003, 222004, 222005, 222006, 222007, 222008, 222009, 222012, 222013, 222014, 222015, 222016, 222017, 222018, 222019, 222020, 222021, 222022, 222023, 222024, 222025, 222026, 222027, 222028, 222029, 222030, 222031, 222032, 222033, 222034, 222035, 222036, 222037, 222038, 222039, 222040, 222041, 222042, 222043, 222044, 222045, 222046, 222047, 222048, 222049, 222050, 222051, 222052, 222053, 222054, 222055, 222056, 222057, 222096, 222679, 222680, 222681, 222682, 222683, 222691, 222692, 222693, 222694, 222738, 222739, 222753, 222754, 222777, 222778, 222779, 222780, 222792, 222793, 222795, 222809, 222810, 222811, 222842, 223005, 223006, 223007, 223008, 223009, 223010, 223011, 223012, 223013, 223014, 223015, 223016, 223017, 223018, 223019, 223020, 223021, 223028, 223029, 223032, 223033, 223044, 223056, 223057, 223058, 223139, 223184, 223190, 223191, 223192, 223193, 223202, 223203, 223206, 223207, 223208, 223212, 223213, 223214, 223222, 223224, 223229, 223230, 223231, 223234, 223235, 223245, 223263, 223276, 223388, 223389, 223498, 223534, 223805, 223814);
+UPDATE `gameobject_template` SET `IconName`='GatherHerbs', `castBarCaption`='Grabbing', `data6`=0, `data14`=37379, `questItem1`=75219, `VerifiedBuild`=17658 WHERE `entry`=209836; -- Freshly Fallen Petals
+UPDATE `gameobject_template` SET `IconName`='Inspect', `data7`=4459, `data18`=1, `VerifiedBuild`=17658 WHERE `entry`=212212; -- Legacy of the Masters (Part 1)
+UPDATE `gameobject_template` SET `IconName`='Interact', `VerifiedBuild`=17658 WHERE `entry`=217331; -- Anduin's Footrest
+UPDATE `gameobject_template` SET `IconName`='Interact', `VerifiedBuild`=17658 WHERE `entry`=218725; -- Anduin's Crutch
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=1, `data10`=128636, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=214638; -- Chattering Dirt Pile
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=10174, `VerifiedBuild`=17658 WHERE `entry`=214253; -- Perpetual Leftovers
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=16675, `VerifiedBuild`=17658 WHERE `entry`=214240; -- Banquet of the Grill
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=16675, `VerifiedBuild`=17658 WHERE `entry`=214241; -- Great Banquet of the Grill
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=16675, `VerifiedBuild`=17658 WHERE `entry`=214242; -- Banquet of the Wok
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=16675, `VerifiedBuild`=17658 WHERE `entry`=214243; -- Great Banquet of the Wok
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=16675, `VerifiedBuild`=17658 WHERE `entry`=214244; -- Banquet of the Pot
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=16675, `VerifiedBuild`=17658 WHERE `entry`=214246; -- Banquet of the Steamer
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=16675, `VerifiedBuild`=17658 WHERE `entry`=214247; -- Great Banquet of the Steamer
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=16675, `VerifiedBuild`=17658 WHERE `entry`=214248; -- Banquet of the Oven
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=16675, `VerifiedBuild`=17658 WHERE `entry`=214250; -- Banquet of the Brew
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=16675, `VerifiedBuild`=17658 WHERE `entry`=214251; -- Great Banquet of the Brew
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=16675, `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209775; -- Pandaren Banquet
+UPDATE `gameobject_template` SET `IconName`='Interact', `data5`=16675, `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209805; -- Great Pandaren Banquet
+UPDATE `gameobject_template` SET `IconName`='OPENHAND', `castBarCaption`='Grabbing', `data10`=108097, `data14`=37379, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=210040; -- Climbing Rope
+UPDATE `gameobject_template` SET `IconName`='OPENHAND', `castBarCaption`='Grabbing', `data10`=108098, `data14`=37379, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=210039; -- Rappelling Rope
+UPDATE `gameobject_template` SET `IconName`='attack', `VerifiedBuild`=17658 WHERE `entry`=213174; -- Hardened Resin
+UPDATE `gameobject_template` SET `IconName`='inspect', `VerifiedBuild`=17658 WHERE `entry`=218081; -- Gura the Reclaimed
+UPDATE `gameobject_template` SET `IconName`='inspect', `castBarCaption`='Examining', `data6`=24124, `VerifiedBuild`=17658 WHERE `entry`=218072; -- Head of the Chamberlain
+UPDATE `gameobject_template` SET `IconName`='inspect', `data10`=123337, `data13`=1, `data22`=16096, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212903; -- Abandoned Wreckage
+UPDATE `gameobject_template` SET `IconName`='inspect', `data10`=125388, `data22`=19421, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=213740; -- Ju Lien's Fishing Rack
+UPDATE `gameobject_template` SET `IconName`='inspect', `data10`=125828, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=213880; -- Eroded Bust
+UPDATE `gameobject_template` SET `IconName`='inspect', `data7`=4546, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=213456; -- The Emperor's Burden - Part 8
+UPDATE `gameobject_template` SET `IconName`='interact', `VerifiedBuild`=17658 WHERE `entry`=223050; -- Release Lever
+UPDATE `gameobject_template` SET `IconName`='interact', `castBarCaption`='Gathering', `data8`=30943, `data14`=24982, `questItem1`=82298, `VerifiedBuild`=17658 WHERE `entry`=211684; -- Volatile Blooms
+UPDATE `gameobject_template` SET `IconName`='lootall', `data12`=1, `VerifiedBuild`=17658 WHERE `entry`=211480; -- Kafa'kota Berries
+UPDATE `gameobject_template` SET `IconName`='mine', `data5`=1, `data10`=135120, `data16`=1, `data22`=20013, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=216178; -- Energized Iron
+UPDATE `gameobject_template` SET `IconName`='openhand', `castBarCaption`='Rifling the bait', `data5`=1, `data14`=67281, `VerifiedBuild`=17658 WHERE `entry`=210117; -- Mothallus Bait
+UPDATE `gameobject_template` SET `IconName`='openhandglow', `castBarCaption`='Grabbing', `data10`=108159, `data14`=37379, `data22`=13412, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=210052; -- Cliffwatcher Light Grain
+UPDATE `gameobject_template` SET `IconName`='openhandglow', `castBarCaption`='Grabbing', `data5`=1, `data10`=107863, `data14`=37379, `data22`=13391, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=210021; -- Aged Grain
+UPDATE `gameobject_template` SET `IconName`='openhandglow', `castBarCaption`='Grabbing', `data5`=1, `data10`=107881, `data14`=37379, `data22`=13391, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=210024; -- Light Grain
+UPDATE `gameobject_template` SET `IconName`='openhandglow', `castBarCaption`='Grabbing', `data5`=1, `data10`=107882, `data14`=37379, `data22`=13391, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=210022; -- Fresh Grain
+UPDATE `gameobject_template` SET `IconName`='openhandglow', `castBarCaption`='Grabbing', `data5`=1, `data10`=107883, `data14`=37379, `data22`=13391, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=210023; -- Malted Grain
+UPDATE `gameobject_template` SET `IconName`='openhandglow', `castBarCaption`='Harvesting Amber', `data14`=62733, `data26`=132038, `questItem1`=85159, `VerifiedBuild`=17658 WHERE `entry`=212923; -- Amber Collector
+UPDATE `gameobject_template` SET `IconName`='openhandglow', `data10`=139287, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=216315; -- Rune Prison
+UPDATE `gameobject_template` SET `IconName`='openhandglow', `data5`=1, `data10`=144052, `data22`=22055, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=220807; -- Neverending Spritewood
+UPDATE `gameobject_template` SET `castBarCaption`='Activating', `data5`=1, `data10`=127235, `data14`=27700, `data22`=18683, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212293; -- Inactive Beach Bomb
+UPDATE `gameobject_template` SET `castBarCaption`='Activating', `data5`=1, `data10`=147983, `data14`=27700, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=213180; -- Guo-Lai Runestone
+UPDATE `gameobject_template` SET `castBarCaption`='Activating', `data6`=27700, `VerifiedBuild`=17658 WHERE `entry`=202562; -- Emergency Fire Valve
+UPDATE `gameobject_template` SET `castBarCaption`='Breaking the valve.', `data14`=70808, `data16`=1, `data17`=20108, `data26`=135480, `questItem1`=93191, `VerifiedBuild`=17658 WHERE `entry`=216751; -- Rusty Valve
+UPDATE `gameobject_template` SET `castBarCaption`='Burning', `data5`=1, `data10`=117821, `data14`=30602, `data17`=1, `data22`=15730, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211539; -- Lucky Burlap Incense
+UPDATE `gameobject_template` SET `castBarCaption`='Burning', `data5`=1, `data10`=118131, `data14`=30602, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211568; -- Snow Lily Incense
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting "distilled" fuel.', `data14`=68958, `questItem1`=91846, `VerifiedBuild`=17658 WHERE `entry`=216176; -- "Distilled" Fuel
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting "distilled" fuel.', `data14`=68958, `questItem1`=91846, `VerifiedBuild`=17658 WHERE `entry`=216314; -- "Distilled" Fuel
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting Supplies', `data14`=62553, `questItem1`=80315, `VerifiedBuild`=17658 WHERE `entry`=211270; -- Stolen Supplies
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting Supplies', `data8`=30618, `data14`=62553, `data17`=15757, `questItem1`=80315, `VerifiedBuild`=17658 WHERE `entry`=211266; -- Stolen Supplies
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting Supplies', `data8`=30618, `data14`=62553, `data17`=15757, `questItem1`=80315, `VerifiedBuild`=17658 WHERE `entry`=211268; -- Stolen Supplies
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting Supplies', `data8`=30618, `data14`=62553, `data17`=15757, `questItem1`=80315, `VerifiedBuild`=17658 WHERE `entry`=211269; -- Stolen Supplies
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data10`=1, `data14`=19676, `questItem1`=81174, `VerifiedBuild`=17658 WHERE `entry`=211506; -- Pitch Pot
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data10`=1, `data14`=19676, `questItem1`=81174, `VerifiedBuild`=17658 WHERE `entry`=211507; -- Pitch Pot
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `data17`=15521, `questItem1`=80143, `VerifiedBuild`=17658 WHERE `entry`=210971; -- Violet Lichen
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `data17`=15522, `questItem1`=80141, `VerifiedBuild`=17658 WHERE `entry`=210969; -- Cave Lily
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `data17`=15523, `questItem1`=80142, `VerifiedBuild`=17658 WHERE `entry`=210970; -- Ghostcap
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `data17`=15524, `questItem1`=80140, `VerifiedBuild`=17658 WHERE `entry`=210968; -- Bloodbloom
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `data17`=15822, `questItem1`=80528, `VerifiedBuild`=17658 WHERE `entry`=211312; -- Explosives Barrel
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `data17`=17054, `questItem1`=82864, `VerifiedBuild`=17658 WHERE `entry`=212009; -- Amber Fragment
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `data17`=18956, `VerifiedBuild`=17658 WHERE `entry`=210565; -- Dark Soil
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `data26`=129252, `questItem1`=89054, `VerifiedBuild`=17658 WHERE `entry`=214865; -- Stolen Boots
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `data26`=129252, `questItem1`=89054, `VerifiedBuild`=17658 WHERE `entry`=214866; -- Stolen Boots
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `data26`=129252, `questItem1`=89054, `VerifiedBuild`=17658 WHERE `entry`=214867; -- Stolen Boots
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `data26`=129252, `questItem1`=89054, `VerifiedBuild`=17658 WHERE `entry`=214868; -- Stolen Boots
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=78959, `questItem2`=79067, `VerifiedBuild`=17658 WHERE `entry`=210238; -- Serpent Egg
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=78959, `questItem2`=79067, `VerifiedBuild`=17658 WHERE `entry`=210239; -- Serpent Egg
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=78959, `questItem2`=79067, `VerifiedBuild`=17658 WHERE `entry`=210240; -- Serpent Egg
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=79713, `VerifiedBuild`=17658 WHERE `entry`=210618; -- Ancient Dynastic Tablet
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=79713, `VerifiedBuild`=17658 WHERE `entry`=210619; -- Ancient Dynastic Tablet
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=79713, `VerifiedBuild`=17658 WHERE `entry`=210620; -- Ancient Dynastic Tablet
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=79806, `VerifiedBuild`=17658 WHERE `entry`=210759; -- Arrow for Commander Hsieh
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=79833, `VerifiedBuild`=17658 WHERE `entry`=210810; -- Shadelight Truffle
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=79833, `VerifiedBuild`=17658 WHERE `entry`=210811; -- Shadelight Truffle
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=79833, `VerifiedBuild`=17658 WHERE `entry`=210812; -- Shadelight Truffle
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=79880, `VerifiedBuild`=17658 WHERE `entry`=210887; -- Untainted Supplies
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=80134, `VerifiedBuild`=17658 WHERE `entry`=210958; -- Chrysoberyl Outcropping
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=80134, `VerifiedBuild`=17658 WHERE `entry`=210959; -- Chrysoberyl Outcropping
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=80134, `VerifiedBuild`=17658 WHERE `entry`=210960; -- Chrysoberyl Outcropping
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=80227, `VerifiedBuild`=17658 WHERE `entry`=211018; -- Root Vegetable
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=80227, `VerifiedBuild`=17658 WHERE `entry`=211019; -- Root Vegetable
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=80230, `VerifiedBuild`=17658 WHERE `entry`=211023; -- Cast Iron Pot
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=80294, `VerifiedBuild`=17658 WHERE `entry`=211143; -- Mogu Relic
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=80294, `VerifiedBuild`=17658 WHERE `entry`=211147; -- Mogu Relic
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=80294, `VerifiedBuild`=17658 WHERE `entry`=211148; -- Mogu Relic
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=81116, `VerifiedBuild`=17658 WHERE `entry`=211474; -- Suncrawler
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=81355, `VerifiedBuild`=17658 WHERE `entry`=211566; -- Palewind Totem
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=82723, `VerifiedBuild`=17658 WHERE `entry`=211871; -- Dread Orb
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=82723, `VerifiedBuild`=17658 WHERE `entry`=211872; -- Dread Orb
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=82723, `VerifiedBuild`=17658 WHERE `entry`=211873; -- Dread Orb
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=82867, `VerifiedBuild`=17658 WHERE `entry`=212078; -- Mantid Relic
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=82867, `VerifiedBuild`=17658 WHERE `entry`=212079; -- Mantid Relic
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=82868, `VerifiedBuild`=17658 WHERE `entry`=212084; -- Starshade
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=82868, `VerifiedBuild`=17658 WHERE `entry`=212085; -- Starshade
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=85634, `VerifiedBuild`=17658 WHERE `entry`=213314; -- Gurthani Tablet
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=85981, `VerifiedBuild`=17658 WHERE `entry`=213516; -- Smuggled Brewfather Statue
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=85981, `VerifiedBuild`=17658 WHERE `entry`=213517; -- Evil Monkey Idol
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=85981, `VerifiedBuild`=17658 WHERE `entry`=213518; -- Smuggled Cannon
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=85981, `VerifiedBuild`=17658 WHERE `entry`=213519; -- Cursed Hozen Totem
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data14`=19676, `questItem1`=85981, `VerifiedBuild`=17658 WHERE `entry`=213520; -- Priceless Mogu Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data5`=1, `data10`=121906, `data14`=19676, `data22`=18821, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212253; -- Unga Mug
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data5`=1, `data10`=121906, `data14`=19676, `data22`=18821, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212254; -- Unga Mug
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data5`=1, `data10`=121906, `data14`=19676, `data22`=18821, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212255; -- Unga Mug
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data5`=1, `data10`=121906, `data14`=19676, `data22`=18821, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212256; -- Unga Mug
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data5`=1, `data10`=131760, `data14`=19676, `data22`=18821, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212251; -- Unga Keg
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data5`=1, `data10`=131760, `data14`=19676, `data22`=18821, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212252; -- Unga Keg
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data5`=1, `data14`=19676, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215165; -- Bigga Unga Keg
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data6`=0, `data10`=106063, `data14`=19676, `data22`=15375, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=209885; -- Restorative Body
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data6`=0, `data10`=106064, `data14`=19676, `data22`=15376, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=209888; -- Restorative Mind
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data6`=0, `data10`=106065, `data14`=19676, `data22`=15377, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=209889; -- Restorative Spirit
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data6`=0, `data10`=106066, `data14`=19676, `data22`=15378, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=209890; -- Restorative Heart
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data6`=19676, `VerifiedBuild`=17658 WHERE `entry`=211316; -- The Commander's Cache
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data6`=30217, `data11`=1, `data14`=19676, `questItem1`=77455, `VerifiedBuild`=17658 WHERE `entry`=210080; -- Mulberry Barrel
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data7`=204385, `data14`=19676, `questItem1`=80277, `VerifiedBuild`=17658 WHERE `entry`=211118; -- Jagged Abalone
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data7`=210946, `data8`=30516, `data14`=19676, `questItem1`=80122, `VerifiedBuild`=17658 WHERE `entry`=210945; -- Spideroot
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data8`=30259, `data14`=19676, `questItem1`=80116, `VerifiedBuild`=17658 WHERE `entry`=210938; -- Partially Chewed Carrot
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data8`=30259, `data14`=19676, `questItem1`=80116, `VerifiedBuild`=17658 WHERE `entry`=210942; -- Partially Chewed Carrot
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data8`=30516, `data14`=19676, `questItem1`=80122, `VerifiedBuild`=17658 WHERE `entry`=211117; -- Spideroot
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data8`=30524, `data14`=19676, `questItem1`=80136, `VerifiedBuild`=17658 WHERE `entry`=211120; -- Boat Planks
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `data8`=30524, `data14`=19676, `questItem1`=80136, `VerifiedBuild`=17658 WHERE `entry`=211122; -- Boat Planks
+UPDATE `gameobject_template` SET `castBarCaption`='Create Rubbing', `data14`=62560, `questItem1`=82393, `VerifiedBuild`=17658 WHERE `entry`=211770; -- Shen Dynasty Tablet
+UPDATE `gameobject_template` SET `castBarCaption`='Create Rubbing', `data14`=62560, `questItem1`=82394, `VerifiedBuild`=17658 WHERE `entry`=211794; -- Qiang Dynasty Tablet
+UPDATE `gameobject_template` SET `castBarCaption`='Create Rubbing', `data14`=62560, `questItem1`=82395, `VerifiedBuild`=17658 WHERE `entry`=211793; -- Wai Dynasty Tablet
+UPDATE `gameobject_template` SET `castBarCaption`='Destroying', `data10`=129403, `data13`=1, `data14`=24585, `data22`=18373, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=214895; -- Shao-Tien Stormcaller
+UPDATE `gameobject_template` SET `castBarCaption`='Destroying', `data10`=129404, `data13`=1, `data14`=24585, `data22`=18374, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=214899; -- Shao-Tien Stormcaller
+UPDATE `gameobject_template` SET `castBarCaption`='Destroying', `data10`=129405, `data13`=1, `data14`=24585, `data22`=18375, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=214900; -- Shao-Tien Stormcaller
+UPDATE `gameobject_template` SET `castBarCaption`='Destroying', `data10`=129406, `data13`=1, `data14`=24585, `data22`=18376, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=214901; -- Shao-Tien Stormcaller
+UPDATE `gameobject_template` SET `castBarCaption`='Destroying', `data10`=136440, `data14`=24585, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=217169; -- Kirin Tor Perimeter Ward
+UPDATE `gameobject_template` SET `castBarCaption`='Destroying', `data10`=136610, `data14`=24585, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=217758; -- Sunreaver Perimeter Ward
+UPDATE `gameobject_template` SET `castBarCaption`='Destroying', `data5`=1, `data10`=133462, `data14`=24585, `data22`=19566, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=216150; -- Horde Supply Crate
+UPDATE `gameobject_template` SET `castBarCaption`='Destroying', `data5`=1, `data10`=136405, `data14`=24585, `data22`=20298, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=216991; -- Zandalari Offering
+UPDATE `gameobject_template` SET `castBarCaption`='Disarming', `VerifiedBuild`=17658 WHERE `entry`=206395; -- First Bomb Cluster
+UPDATE `gameobject_template` SET `castBarCaption`='Disarming', `VerifiedBuild`=17658 WHERE `entry`=206396; -- Second Bomb Cluster
+UPDATE `gameobject_template` SET `castBarCaption`='Disarming', `VerifiedBuild`=17658 WHERE `entry`=206397; -- Third Bomb Cluster
+UPDATE `gameobject_template` SET `castBarCaption`='Disturbing', `data10`=126344, `data14`=22339, `data22`=10174, `VerifiedBuild`=17658 WHERE `entry`=214171; -- Zandalari Voodoo Cauldron
+UPDATE `gameobject_template` SET `castBarCaption`='Examining', `data10`=115810, `data14`=24124, `data22`=15840, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211686; -- Grummle Gear
+UPDATE `gameobject_template` SET `castBarCaption`='Examining', `data4`=4, `data10`=122566, `data14`=24124, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212538; -- Wu Kao Spyglass
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data10`=108448, `data14`=24982, `data22`=20232, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=210088; -- Silk Cocoon Bucket
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data14`=24982, `VerifiedBuild`=17658 WHERE `entry`=211454; -- Kafa'kota Bush
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data14`=24982, `VerifiedBuild`=17658 WHERE `entry`=216227; -- Brittle Root
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data14`=24982, `VerifiedBuild`=17658 WHERE `entry`=216263; -- Tool Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data14`=24982, `VerifiedBuild`=17658 WHERE `entry`=216610; -- Krasari Iron
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data14`=24982, `questItem1`=78881, `VerifiedBuild`=17658 WHERE `entry`=210188; -- Rain-Slick Honeycomb
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data14`=24982, `questItem1`=80231, `VerifiedBuild`=17658 WHERE `entry`=211025; -- Goldenfire Orchid
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data14`=24982, `questItem1`=80303, `VerifiedBuild`=17658 WHERE `entry`=211160; -- Pristine Crane Egg
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data14`=24982, `questItem1`=82342, `VerifiedBuild`=17658 WHERE `entry`=211719; -- Violet Citron
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data14`=24982, `questItem1`=82342, `VerifiedBuild`=17658 WHERE `entry`=211721; -- Violet Citron
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data14`=24982, `questItem1`=82389, `VerifiedBuild`=17658 WHERE `entry`=211779; -- Mao-Willow
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data14`=24982, `questItem1`=88895, `VerifiedBuild`=17658 WHERE `entry`=214843; -- Serpent's Scale
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data14`=24982, `questItem1`=88895, `VerifiedBuild`=17658 WHERE `entry`=214844; -- Serpent's Scale
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data5`=1, `data10`=137257, `data12`=219215, `data14`=24982, `data22`=20410, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=218192; -- Charged Moganite
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data6`=0, `data14`=24982, `questItem1`=72926, `VerifiedBuild`=17658 WHERE `entry`=209460; -- Rattan Switch
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data6`=0, `data14`=24982, `questItem1`=72926, `VerifiedBuild`=17658 WHERE `entry`=209461; -- Rattan Switch
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data6`=0, `data14`=24982, `questItem1`=72926, `VerifiedBuild`=17658 WHERE `entry`=209462; -- Rattan Switch
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data6`=0, `data14`=24982, `questItem1`=72926, `VerifiedBuild`=17658 WHERE `entry`=209463; -- Rattan Switch
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data6`=0, `data14`=24982, `questItem1`=75217, `VerifiedBuild`=17658 WHERE `entry`=209827; -- Zen Lotus
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data6`=0, `data14`=24982, `questItem1`=75217, `VerifiedBuild`=17658 WHERE `entry`=209828; -- Zen Lotus
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data6`=0, `data14`=24982, `questItem1`=75217, `VerifiedBuild`=17658 WHERE `entry`=209829; -- Zen Lotus
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data6`=0, `data14`=24982, `questItem1`=75217, `VerifiedBuild`=17658 WHERE `entry`=209830; -- Zen Lotus
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data6`=0, `data14`=24982, `questItem1`=76333, `VerifiedBuild`=17658 WHERE `entry`=209903; -- Green Branch
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `data6`=0, `data14`=24982, `questItem1`=76499, `VerifiedBuild`=17658 WHERE `entry`=209952; -- Jademoon
+UPDATE `gameobject_template` SET `castBarCaption`='Grabbing', `data14`=37379, `questItem1`=79039, `VerifiedBuild`=17658 WHERE `entry`=210348; -- Dry Fire Wood
+UPDATE `gameobject_template` SET `castBarCaption`='Grabbing', `data14`=37379, `questItem1`=79120, `VerifiedBuild`=17658 WHERE `entry`=210416; -- Mogu Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Grabbing', `data14`=37379, `questItem1`=79120, `VerifiedBuild`=17658 WHERE `entry`=210417; -- Mogu Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Grabbing', `data14`=37379, `questItem1`=79120, `VerifiedBuild`=17658 WHERE `entry`=210418; -- Mogu Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Grabbing', `data14`=37379, `questItem1`=79827, `VerifiedBuild`=17658 WHERE `entry`=210803; -- Authentic Valley Stir Fry
+UPDATE `gameobject_template` SET `castBarCaption`='Grabbing', `data6`=0, `data7`=209833, `data8`=29866, `data14`=37379, `questItem1`=75023, `VerifiedBuild`=17658 WHERE `entry`=209826; -- Silk Patch
+UPDATE `gameobject_template` SET `castBarCaption`='Grabbing', `data6`=0, `data8`=29866, `data14`=37379, `questItem1`=75023, `VerifiedBuild`=17658 WHERE `entry`=209951; -- Silk Patch
+UPDATE `gameobject_template` SET `castBarCaption`='Grabbing', `data8`=29918, `data14`=37379, `data17`=18750, `questItem1`=75208, `VerifiedBuild`=17658 WHERE `entry`=215319; -- Rancher's Lariat
+UPDATE `gameobject_template` SET `castBarCaption`='Harvesting', `data14`=42231, `questItem1`=78918, `VerifiedBuild`=17658 WHERE `entry`=210209; -- Imperial Lotus
+UPDATE `gameobject_template` SET `castBarCaption`='Harvesting', `data14`=42231, `questItem1`=80229, `VerifiedBuild`=17658 WHERE `entry`=211021; -- Freshwater Oyster
+UPDATE `gameobject_template` SET `castBarCaption`='Honoring', `data10`=111893, `data14`=57770, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=210419; -- Pandaren Gravestone
+UPDATE `gameobject_template` SET `castBarCaption`='Inspecting', `data14`=45353, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211836; -- Father's Shield
+UPDATE `gameobject_template` SET `castBarCaption`='Inspecting', `data14`=45353, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211837; -- Father's Bedroll
+UPDATE `gameobject_template` SET `castBarCaption`='Lifting', `data5`=1, `data10`=119746, `data14`=61031, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211752; -- Loose Brick
+UPDATE `gameobject_template` SET `castBarCaption`='Lighting', `data10`=131051, `data14`=28503, `data22`=18070, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=214628; -- The Strong Brazier
+UPDATE `gameobject_template` SET `castBarCaption`='Lighting', `data6`=0, `data10`=106824, `data14`=28503, `data22`=18568, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=209945; -- Northern Fog Ward
+UPDATE `gameobject_template` SET `castBarCaption`='Lighting', `data6`=0, `data10`=106837, `data14`=28503, `data22`=18570, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=209947; -- Southern Fog Ward
+UPDATE `gameobject_template` SET `castBarCaption`='Lighting', `data6`=0, `data10`=106838, `data14`=28503, `data22`=18569, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=209946; -- Western Fog Ward
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data10`=124185, `data14`=21400, `data22`=18434, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=214948; -- Shao-Tien Cage
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data10`=124185, `data14`=21400, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=213289; -- Shao-Tien Cage
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data11`=1, `data12`=1, `data13`=1, `data14`=21400, `data26`=138666, `data28`=1, `VerifiedBuild`=17658 WHERE `entry`=218593; -- Trove of the Thunder King
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147874, `data30`=49406, `VerifiedBuild`=17658 WHERE `entry`=221670; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147875, `data30`=49406, `VerifiedBuild`=17658 WHERE `entry`=223084; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147895, `data30`=49406, `VerifiedBuild`=17658 WHERE `entry`=223085; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147903, `data30`=49406, `VerifiedBuild`=17658 WHERE `entry`=223086; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147904, `data30`=49406, `VerifiedBuild`=17658 WHERE `entry`=223087; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147905, `data30`=49406, `VerifiedBuild`=17658 WHERE `entry`=223088; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147907, `data30`=49406, `VerifiedBuild`=17658 WHERE `entry`=223089; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147909, `data30`=49406, `VerifiedBuild`=17658 WHERE `entry`=223090; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147910, `data30`=49475, `VerifiedBuild`=17658 WHERE `entry`=223091; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147911, `data30`=49475, `VerifiedBuild`=17658 WHERE `entry`=223092; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147913, `data30`=49475, `VerifiedBuild`=17658 WHERE `entry`=223093; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147914, `data30`=49475, `VerifiedBuild`=17658 WHERE `entry`=223094; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147915, `data30`=49475, `VerifiedBuild`=17658 WHERE `entry`=223095; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147917, `data30`=49475, `VerifiedBuild`=17658 WHERE `entry`=223096; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147918, `data30`=49475, `VerifiedBuild`=17658 WHERE `entry`=223097; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147921, `data30`=49476, `VerifiedBuild`=17658 WHERE `entry`=223099; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147924, `data30`=49476, `VerifiedBuild`=17658 WHERE `entry`=223100; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147926, `data30`=49476, `VerifiedBuild`=17658 WHERE `entry`=223101; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147927, `data30`=49476, `VerifiedBuild`=17658 WHERE `entry`=223102; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147928, `data30`=49476, `VerifiedBuild`=17658 WHERE `entry`=223103; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147929, `data30`=49476, `VerifiedBuild`=17658 WHERE `entry`=223104; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147930, `data30`=49476, `VerifiedBuild`=17658 WHERE `entry`=223105; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147931, `data30`=49477, `VerifiedBuild`=17658 WHERE `entry`=223106; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147932, `data30`=49477, `VerifiedBuild`=17658 WHERE `entry`=223107; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147933, `data30`=49477, `VerifiedBuild`=17658 WHERE `entry`=223108; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147934, `data30`=49477, `VerifiedBuild`=17658 WHERE `entry`=223109; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147935, `data30`=49477, `VerifiedBuild`=17658 WHERE `entry`=223110; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147947, `data30`=49476, `VerifiedBuild`=17658 WHERE `entry`=223111; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147949, `data30`=49406, `VerifiedBuild`=17658 WHERE `entry`=223112; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147950, `data30`=49406, `VerifiedBuild`=17658 WHERE `entry`=223113; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=147954, `data30`=49406, `VerifiedBuild`=17658 WHERE `entry`=223115; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=151937, `data28`=1, `data29`=56, `data30`=49411, `VerifiedBuild`=17658 WHERE `entry`=220902; -- Rope-Bound Treasure Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=151937, `data28`=1, `data29`=57, `data30`=49410, `VerifiedBuild`=17658 WHERE `entry`=220901; -- Gleaming Treasure Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=15343, `data26`=151937, `data28`=1, `data29`=58, `data30`=49414, `VerifiedBuild`=17658 WHERE `entry`=221036; -- Gleaming Treasure Satchel
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data17`=22052, `data26`=144549, `data28`=1, `data29`=54, `data30`=49246, `VerifiedBuild`=17658 WHERE `entry`=220986; -- Blackguard's Jetsam
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data13`=1, `data14`=21400, `data30`=49494, `VerifiedBuild`=17658 WHERE `entry`=222687; -- Ordon Supplies
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data14`=21400, `VerifiedBuild`=17658 WHERE `entry`=214470; -- Shao-Tien Cage
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data14`=21400, `data26`=127172, `VerifiedBuild`=17658 WHERE `entry`=214388; -- Ancient Guo-Lai Cache
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data14`=21400, `questItem1`=81293, `VerifiedBuild`=17658 WHERE `entry`=211536; -- Stolen Bag of Luckydos
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data14`=21400, `questItem1`=81293, `VerifiedBuild`=17658 WHERE `entry`=211537; -- Stolen Bag of Luckydos
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data14`=21400, `questItem1`=81293, `VerifiedBuild`=17658 WHERE `entry`=211538; -- Stolen Bag of Luckydos
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data4`=21400, `data7`=18563, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=214471; -- Shao-Tien Cage
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data4`=21400, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=211664; -- Ancient Guo-Lai Door
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data6`=0, `data14`=21400, `questItem1`=74033, `VerifiedBuild`=17658 WHERE `entry`=209595; -- Hozen Skull
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `data9`=90, `data14`=21400, `data16`=1, `data18`=90, `data20`=90, `data23`=9999, `data24`=9999, `VerifiedBuild`=17658 WHERE `entry`=215398; -- Wrathion's Hoard
+UPDATE `gameobject_template` SET `castBarCaption`='Picking', `data6`=0, `data14`=55240, `questItem1`=76334, `VerifiedBuild`=17658 WHERE `entry`=209907; -- Meadow Marigold
+UPDATE `gameobject_template` SET `castBarCaption`='Pouring', `data6`=0, `data14`=39286, `questItem1`=52491, `VerifiedBuild`=17658 WHERE `entry`=202567; -- Keg of Ol' Barkerstout
+UPDATE `gameobject_template` SET `castBarCaption`='Reading', `data10`=121626, `data14`=24589, `data22`=16604, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212207; -- Between a Saurok and a Hard Place
+UPDATE `gameobject_template` SET `castBarCaption`='Reading', `data10`=126382, `data14`=24589, `data22`=16604, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212527; -- Hozen in the Mist
+UPDATE `gameobject_template` SET `castBarCaption`='Reading', `data10`=126383, `data14`=24589, `data22`=16604, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212528; -- Fish Tales
+UPDATE `gameobject_template` SET `castBarCaption`='Reading', `data10`=126385, `data14`=24589, `data22`=16604, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212529; -- The Dark Heart of the Mogu
+UPDATE `gameobject_template` SET `castBarCaption`='Reading', `data10`=126386, `data14`=24589, `data22`=16604, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212531; -- What Is Worth Fighting For
+UPDATE `gameobject_template` SET `castBarCaption`='Reading', `data10`=126387, `data14`=24589, `data22`=16604, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212534; -- The Song of the Yaungol
+UPDATE `gameobject_template` SET `castBarCaption`='Reading', `data10`=126388, `data14`=24589, `data22`=16604, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212530; -- Heart of the Mantid Swarm
+UPDATE `gameobject_template` SET `castBarCaption`='Reading', `data10`=126395, `data14`=24589, `data22`=16604, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212536; -- The Seven Burdens of Shaohao
+UPDATE `gameobject_template` SET `castBarCaption`='Reading', `data10`=126396, `data14`=24589, `data22`=16604, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212537; -- The Ballad of Liu Lang
+UPDATE `gameobject_template` SET `castBarCaption`='Readying Zip Line', `data10`=121956, `data14`=61860, `data22`=18683, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212271; -- Zip Line
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data14`=55091, `data17`=5793, `VerifiedBuild`=17658 WHERE `entry`=220353; -- Kor'kron Meat Rack
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data14`=55091, `data17`=5793, `VerifiedBuild`=17658 WHERE `entry`=220357; -- Kor'kron Stone Crate
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data14`=55091, `data17`=5793, `VerifiedBuild`=17658 WHERE `entry`=220359; -- Kor'kron Oil Drum
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data14`=55091, `questItem1`=76337, `VerifiedBuild`=17658 WHERE `entry`=211696; -- Stolen Sack of Hops
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data14`=55091, `questItem1`=79824, `VerifiedBuild`=17658 WHERE `entry`=210763; -- Stolen Vegetable
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data14`=55091, `questItem1`=79824, `VerifiedBuild`=17658 WHERE `entry`=210764; -- Stolen Vegetable
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data14`=55091, `questItem1`=79824, `VerifiedBuild`=17658 WHERE `entry`=210765; -- Stolen Vegetable
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data14`=55091, `questItem1`=79824, `VerifiedBuild`=17658 WHERE `entry`=210766; -- Stolen Vegetable
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data14`=55091, `questItem1`=79824, `VerifiedBuild`=17658 WHERE `entry`=210767; -- Stolen Vegetable
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data14`=55091, `questItem1`=79824, `VerifiedBuild`=17658 WHERE `entry`=210768; -- Stolen Vegetable
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data14`=55091, `questItem1`=79824, `VerifiedBuild`=17658 WHERE `entry`=210769; -- Stolen Vegetable
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data14`=55091, `questItem1`=80133, `VerifiedBuild`=17658 WHERE `entry`=210956; -- Preserved Vegetables
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data14`=55091, `questItem1`=80133, `VerifiedBuild`=17658 WHERE `entry`=210957; -- Preserved Vegetables
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data6`=0, `data14`=55091, `questItem1`=76297, `VerifiedBuild`=17658 WHERE `entry`=209891; -- Stolen Turnip
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data6`=0, `data14`=55091, `questItem1`=76298, `VerifiedBuild`=17658 WHERE `entry`=209899; -- Stolen Watermelon
+UPDATE `gameobject_template` SET `castBarCaption`='Recovering', `data6`=0, `data7`=209898, `data14`=55091, `questItem1`=76298, `VerifiedBuild`=17658 WHERE `entry`=209892; -- Stolen Watermelon
+UPDATE `gameobject_template` SET `castBarCaption`='Removing', `data14`=71379, `questItem1`=93736, `VerifiedBuild`=17658 WHERE `entry`=218055; -- Loa-Infused Blade
+UPDATE `gameobject_template` SET `castBarCaption`='Removing', `data14`=71379, `questItem1`=93736, `VerifiedBuild`=17658 WHERE `entry`=218056; -- Loa-Infused Blade
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `VerifiedBuild`=17658 WHERE `entry`=210537; -- Eternal Blossom
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `VerifiedBuild`=17658 WHERE `entry`=210538; -- Eternal Blossom
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `VerifiedBuild`=17658 WHERE `entry`=210539; -- Eternal Blossom
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `VerifiedBuild`=17658 WHERE `entry`=221991; -- Shao-Tien Rice
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `VerifiedBuild`=17658 WHERE `entry`=221992; -- Silkfeather Hawk Egg
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=74298, `VerifiedBuild`=17658 WHERE `entry`=214406; -- Dai-Lo Recess Mallet
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=78942, `VerifiedBuild`=17658 WHERE `entry`=210228; -- Jar of Pigment
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=80938, `VerifiedBuild`=17658 WHERE `entry`=211451; -- Cerulean Gift of the Crane
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=80938, `VerifiedBuild`=17658 WHERE `entry`=211452; -- Bronze Gift of the Crane
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=80938, `VerifiedBuild`=17658 WHERE `entry`=211453; -- Crimson Gift of the Crane
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=82353, `VerifiedBuild`=17658 WHERE `entry`=211765; -- Sra'thik Weapon
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=82353, `VerifiedBuild`=17658 WHERE `entry`=211766; -- Sra'thik Weapon
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=82722, `VerifiedBuild`=17658 WHERE `entry`=211863; -- Krik'thik Limb
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=82722, `VerifiedBuild`=17658 WHERE `entry`=214820; -- Krik'thik Limb
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=83023, `VerifiedBuild`=17658 WHERE `entry`=212134; -- Shado-Pan Crossbow Bolt Bundle
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=83024, `VerifiedBuild`=17658 WHERE `entry`=212135; -- Shado-Pan Fire Arrows
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=83024, `VerifiedBuild`=17658 WHERE `entry`=212136; -- Shado-Pan Fire Arrows
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=84646, `VerifiedBuild`=17658 WHERE `entry`=212759; -- Ruby Eye
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=84646, `VerifiedBuild`=17658 WHERE `entry`=212760; -- Ruby Eye
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=84646, `VerifiedBuild`=17658 WHERE `entry`=212761; -- Ruby Eye
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=84655, `VerifiedBuild`=17658 WHERE `entry`=212762; -- Mogu Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=84655, `VerifiedBuild`=17658 WHERE `entry`=212763; -- Mogu Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=84655, `VerifiedBuild`=17658 WHERE `entry`=212764; -- Mogu Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=84655, `VerifiedBuild`=17658 WHERE `entry`=212765; -- Mogu Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=84655, `VerifiedBuild`=17658 WHERE `entry`=212766; -- Mogu Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=85782, `VerifiedBuild`=17658 WHERE `entry`=213369; -- Mistfall Water Bucket
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data14`=23645, `questItem1`=86099, `VerifiedBuild`=17658 WHERE `entry`=213640; -- Wukao Scouting Report
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data6`=0, `data14`=23645, `questItem1`=72111, `VerifiedBuild`=17658 WHERE `entry`=209326; -- Loose Dogwood Root
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data6`=0, `data14`=23645, `questItem1`=72111, `VerifiedBuild`=17658 WHERE `entry`=209327; -- Loose Dogwood Root
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data6`=0, `data14`=23645, `questItem1`=73178, `VerifiedBuild`=17658 WHERE `entry`=209507; -- Hard Tearwood Reed
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data6`=0, `data14`=23645, `questItem1`=74301, `VerifiedBuild`=17658 WHERE `entry`=209646; -- Discarded Wood Planks
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data6`=0, `data14`=23645, `questItem1`=74624, `VerifiedBuild`=17658 WHERE `entry`=209665; -- Abandoned Stone Blocks
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data6`=31232, `data12`=1, `data14`=23645, `questItem1`=80808, `VerifiedBuild`=17658 WHERE `entry`=211395; -- Battle Spear of the Thunder King
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data7`=213351, `data14`=23645, `VerifiedBuild`=17658 WHERE `entry`=213350; -- Lushroom
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data7`=213351, `data14`=23645, `VerifiedBuild`=17658 WHERE `entry`=213352; -- Lushroom
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `data7`=213351, `data14`=23645, `VerifiedBuild`=17658 WHERE `entry`=213353; -- Lushroom
+UPDATE `gameobject_template` SET `castBarCaption`='Searching', `data13`=1, `data14`=19680, `data26`=149329, `data30`=49405, `VerifiedBuild`=17658 WHERE `entry`=222685; -- Crane Nest
+UPDATE `gameobject_template` SET `castBarCaption`='Searching', `data13`=1, `data14`=19680, `data28`=1, `data30`=49495, `VerifiedBuild`=17658 WHERE `entry`=222689; -- Fiery Altar of Ordos
+UPDATE `gameobject_template` SET `castBarCaption`='Searching', `data13`=1, `data14`=19680, `data28`=1, `data30`=49496, `VerifiedBuild`=17658 WHERE `entry`=222688; -- Firestorm Egg
+UPDATE `gameobject_template` SET `castBarCaption`='Searching', `data13`=1, `data14`=19680, `data30`=49255, `VerifiedBuild`=17658 WHERE `entry`=222684; -- Glinting Sand
+UPDATE `gameobject_template` SET `castBarCaption`='Searching', `data13`=1, `data14`=19680, `data30`=49493, `VerifiedBuild`=17658 WHERE `entry`=222686; -- Eerie Crystal
+UPDATE `gameobject_template` SET `castBarCaption`='Stealing artifact', `data14`=71378, `questItem1`=93735, `VerifiedBuild`=17658 WHERE `entry`=218049; -- Ritual Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Stealing artifact', `data14`=71378, `questItem1`=93735, `VerifiedBuild`=17658 WHERE `entry`=218050; -- Ritual Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Stealing artifact', `data14`=71378, `questItem1`=93735, `VerifiedBuild`=17658 WHERE `entry`=218052; -- Ritual Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Stealing artifact', `data14`=71378, `questItem1`=93735, `VerifiedBuild`=17658 WHERE `entry`=218053; -- Ritual Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Stealing', `data14`=26365, `questItem1`=79025, `VerifiedBuild`=17658 WHERE `entry`=210277; -- Slitherscale Weapons
+UPDATE `gameobject_template` SET `castBarCaption`='Stealing', `data14`=71291, `data17`=19929, `questItem1`=92804, `VerifiedBuild`=17658 WHERE `entry`=216664; -- Weathered Journal
+UPDATE `gameobject_template` SET `castBarCaption`='Stealing', `data6`=0, `data14`=26365, `questItem1`=72926, `VerifiedBuild`=17658 WHERE `entry`=209464; -- Rattan Switch
+UPDATE `gameobject_template` SET `castBarCaption`='Tapping', `data10`=131819, `data14`=37086, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215853; -- Unga Jungle Brew
+UPDATE `gameobject_template` SET `data10`=0, `VerifiedBuild`=17658 WHERE `entry`=184502; -- Orb of Translocation
+UPDATE `gameobject_template` SET `data10`=0, `VerifiedBuild`=17658 WHERE `entry`=184503; -- Orb of Translocation
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=179905; -- Berserk Buff
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=179907; -- Berserk Buff
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=180148; -- Berserk Buff
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=180378; -- Berserk Buff
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=180380; -- Berserk Buff
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=180382; -- Berserk Buff
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=184975; -- Berserk Buff
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=184978; -- Berserk Buff
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=213078; -- Great Wall Cap
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=213439; -- Turtle Flipper, Left
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=213532; -- Turtle Flipper, Right
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=214534; -- Opened Door 01
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=214535; -- Opened Door 02
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=215131; -- Opened Door 03
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218397; -- Charging Station
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218398; -- North Pillar
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218399; -- East Pillar
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218400; -- South Pillar
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218401; -- West Pillar
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218408; -- SW Window
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218409; -- NW Window
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218410; -- SE Window
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218411; -- NE Window
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218415; -- Wind FX NW
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218721; -- Geyser
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218723; -- Ancient Mogu Bell
+UPDATE `gameobject_template` SET `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218832; -- Thunder Forge Door
+UPDATE `gameobject_template` SET `data10`=1, `data11`=1, `data12`=1, `data13`=1, `data15`=1, `data20`=90, `data25`=1306, `VerifiedBuild`=17658 WHERE `entry`=213889; -- Taran Zhu's Personal Stash
+UPDATE `gameobject_template` SET `data10`=103745, `data22`=18352, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=214873; -- Vacant Destroyer
+UPDATE `gameobject_template` SET `data10`=107990, `data22`=16512, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=210037; -- Malted Cave Barley
+UPDATE `gameobject_template` SET `data10`=115716, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211392; -- Your Raft
+UPDATE `gameobject_template` SET `data10`=115785, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211330; -- Rusty Watering Can
+UPDATE `gameobject_template` SET `data10`=115794, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211331; -- Vintage Bug Sprayer
+UPDATE `gameobject_template` SET `data10`=116032, `data22`=16297, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211596; -- Goblin Fishing Raft
+UPDATE `gameobject_template` SET `data10`=117814, `data13`=1, `data22`=15731, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211530; -- Yaungol Oil Derrick
+UPDATE `gameobject_template` SET `data10`=117814, `data13`=1, `data22`=15731, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211531; -- Yaungol Oil Derrick
+UPDATE `gameobject_template` SET `data10`=125461, `data22`=19176, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=213746; -- Bamboo Rod
+UPDATE `gameobject_template` SET `data10`=126803, `data22`=18397, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=214292; -- Kunchong Cage
+UPDATE `gameobject_template` SET `data10`=130204, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215135; -- Sprinkler
+UPDATE `gameobject_template` SET `data10`=130206, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215137; -- Sprinkler
+UPDATE `gameobject_template` SET `data10`=130235, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215162; -- Pest Repeller
+UPDATE `gameobject_template` SET `data10`=130240, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215163; -- Pest Repeller
+UPDATE `gameobject_template` SET `data10`=130936, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215652; -- Demonic Gateway
+UPDATE `gameobject_template` SET `data10`=130943, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215655; -- Demonic Gateway
+UPDATE `gameobject_template` SET `data10`=130944, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215653; -- Demonic Gateway
+UPDATE `gameobject_template` SET `data10`=130945, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215656; -- Demonic Gateway
+UPDATE `gameobject_template` SET `data10`=130946, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215654; -- Demonic Gateway
+UPDATE `gameobject_template` SET `data10`=130947, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215657; -- Demonic Gateway
+UPDATE `gameobject_template` SET `data10`=131060, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215698; -- Master Plow
+UPDATE `gameobject_template` SET `data10`=131195, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215719; -- Dented Shovel
+UPDATE `gameobject_template` SET `data10`=131713, `data22`=19177, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=213744; -- Serpent Rod
+UPDATE `gameobject_template` SET `data10`=131716, `data22`=19178, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=213752; -- Classic Rod
+UPDATE `gameobject_template` SET `data10`=131719, `data22`=19179, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=213753; -- Improvised Rod
+UPDATE `gameobject_template` SET `data10`=136637, `data11`=1, `data22`=21149, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=217768; -- Tormentor's Cage
+UPDATE `gameobject_template` SET `data10`=138805, `VerifiedBuild`=17658 WHERE `entry`=218701; -- Thundering Anvil
+UPDATE `gameobject_template` SET `data10`=138805, `VerifiedBuild`=17658 WHERE `entry`=218702; -- Thundering Anvil
+UPDATE `gameobject_template` SET `data10`=138805, `VerifiedBuild`=17658 WHERE `entry`=218703; -- Thundering Anvil
+UPDATE `gameobject_template` SET `data10`=138805, `VerifiedBuild`=17658 WHERE `entry`=218704; -- Thundering Anvil
+UPDATE `gameobject_template` SET `data10`=138805, `VerifiedBuild`=17658 WHERE `entry`=218705; -- Thundering Anvil
+UPDATE `gameobject_template` SET `data10`=138805, `VerifiedBuild`=17658 WHERE `entry`=218706; -- Thundering Anvil
+UPDATE `gameobject_template` SET `data10`=138805, `VerifiedBuild`=17658 WHERE `entry`=218741; -- Thundering Anvil
+UPDATE `gameobject_template` SET `data10`=144388, `data13`=1, `data18`=1, `data22`=22040, `data23`=1, `data24`=64, `VerifiedBuild`=17658 WHERE `entry`=220815; -- Cave-in
+UPDATE `gameobject_template` SET `data10`=147165, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=222861; -- Wisdom of the Emperor
+UPDATE `gameobject_template` SET `data10`=147279, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=221616; -- Spirit Light
+UPDATE `gameobject_template` SET `data10`=147280, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=222776; -- Time-Lost Shrine
+UPDATE `gameobject_template` SET `data10`=147314, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=222843; -- Memory of the Horde
+UPDATE `gameobject_template` SET `data10`=147332, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=222844; -- Memory of the Alliance
+UPDATE `gameobject_template` SET `data10`=148887, `data13`=1, `VerifiedBuild`=17658 WHERE `entry`=223282; -- Rope
+UPDATE `gameobject_template` SET `data10`=19078, `VerifiedBuild`=17658 WHERE `entry`=215705; -- Tillers Shrine
+UPDATE `gameobject_template` SET `data11`=1, `data12`=3000, `VerifiedBuild`=17658 WHERE `entry`=184141; -- Netherstorm Flag
+UPDATE `gameobject_template` SET `data11`=1, `data13`=1, `data15`=1, `data20`=90, `data25`=1304, `VerifiedBuild`=17658 WHERE `entry`=214518; -- Snowdrift's Possessions
+UPDATE `gameobject_template` SET `data11`=1, `data17`=20358, `questItem1`=93795, `VerifiedBuild`=17658 WHERE `entry`=218075; -- Hair of the Chamberlain
+UPDATE `gameobject_template` SET `data12`=1, `VerifiedBuild`=17658 WHERE `entry`=207472; -- Silverbound Treasure Chest
+UPDATE `gameobject_template` SET `data12`=1, `VerifiedBuild`=17658 WHERE `entry`=207512; -- Silken Treasure Chest
+UPDATE `gameobject_template` SET `data12`=3000, `VerifiedBuild`=17658 WHERE `entry`=179830; -- Alliance Flag
+UPDATE `gameobject_template` SET `data12`=3000, `VerifiedBuild`=17658 WHERE `entry`=179831; -- Horde Flag
+UPDATE `gameobject_template` SET `data13`=1, `data19`=15515, `data22`=20688, `VerifiedBuild`=17658 WHERE `entry`=218417; -- Displacement Pad
+UPDATE `gameobject_template` SET `data13`=1, `data19`=15547, `VerifiedBuild`=17658 WHERE `entry`=218418; -- Displacement Pad
+UPDATE `gameobject_template` SET `data13`=1, `data19`=15814, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=220823; -- Secured Stockpile of Pandaren Spoils
+UPDATE `gameobject_template` SET `data13`=1, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=223281; -- Rope Pile
+UPDATE `gameobject_template` SET `data13`=1, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=223287; -- Rope Pile
+UPDATE `gameobject_template` SET `data14`=35752, `data18`=161, `VerifiedBuild`=17658 WHERE `entry`=218869; -- Lightning Span
+UPDATE `gameobject_template` SET `data16`=0, `VerifiedBuild`=17658 WHERE `entry`=180418; -- Snowfall Banner
+UPDATE `gameobject_template` SET `data17`=13360, `data26`=128680, `questItem1`=73209, `VerifiedBuild`=17658 WHERE `entry`=210005; -- Weapon Rack
+UPDATE `gameobject_template` SET `data17`=17087, `VerifiedBuild`=17658 WHERE `entry`=212968; -- Ancient Tome
+UPDATE `gameobject_template` SET `data17`=20429, `questItem1`=93668, `VerifiedBuild`=17658 WHERE `entry`=218372; -- Saur Fetish
+UPDATE `gameobject_template` SET `data17`=20429, `questItem1`=93668, `VerifiedBuild`=17658 WHERE `entry`=218373; -- Saur Fetish
+UPDATE `gameobject_template` SET `data18`=155, `VerifiedBuild`=17658 WHERE `entry`=215422; -- Jade Forest Alliance Ship Cosmetic
+UPDATE `gameobject_template` SET `data18`=155, `VerifiedBuild`=17658 WHERE `entry`=215423; -- Jade Forest Alliance Ship Cosmetic
+UPDATE `gameobject_template` SET `data18`=156, `VerifiedBuild`=17658 WHERE `entry`=215562; -- Jade Forest Horde Ship Cosmetic
+UPDATE `gameobject_template` SET `data18`=156, `VerifiedBuild`=17658 WHERE `entry`=215563; -- Jade Forest Horde Ship Cosmetic
+UPDATE `gameobject_template` SET `data18`=156, `VerifiedBuild`=17658 WHERE `entry`=215564; -- Jade Forest Horde Ship Cosmetic
+UPDATE `gameobject_template` SET `data18`=157, `VerifiedBuild`=17658 WHERE `entry`=218057; -- TrollCityWall_Left
+UPDATE `gameobject_template` SET `data18`=158, `VerifiedBuild`=17658 WHERE `entry`=218058; -- TrollCityWall_Right
+UPDATE `gameobject_template` SET `data18`=158, `VerifiedBuild`=17658 WHERE `entry`=218538; -- Scenario 5.2 - Tear Down This Wall - Destructible Wall - JSB
+UPDATE `gameobject_template` SET `data18`=159, `VerifiedBuild`=17658 WHERE `entry`=218847; -- Mogu Island Dalaran Tower
+UPDATE `gameobject_template` SET `data18`=159, `VerifiedBuild`=17658 WHERE `entry`=218976; -- IoTTK - Progression Scenarios - Dalaran Tower
+UPDATE `gameobject_template` SET `data18`=160, `VerifiedBuild`=17658 WHERE `entry`=218849; -- IoTTK - Mini Sunwell
+UPDATE `gameobject_template` SET `data18`=160, `VerifiedBuild`=17658 WHERE `entry`=218975; -- IoTTK - Progression Scenario Sunwell
+UPDATE `gameobject_template` SET `data19`=15750, `data24`=92, `VerifiedBuild`=17658 WHERE `entry`=220903; -- Gleaming Crane Statue
+UPDATE `gameobject_template` SET `data21`=1, `VerifiedBuild`=17658 WHERE `entry`=218719; -- Raft
+UPDATE `gameobject_template` SET `data22`=5793, `VerifiedBuild`=17658 WHERE `entry`=215870; -- Frog Island
+UPDATE `gameobject_template` SET `data23`=0, `VerifiedBuild`=17658 WHERE `entry`=192227; -- Argent Vanguard Tower
+UPDATE `gameobject_template` SET `data23`=0, `VerifiedBuild`=17658 WHERE `entry`=192228; -- Argent Vanguard Support
+UPDATE `gameobject_template` SET `data23`=0, `VerifiedBuild`=17658 WHERE `entry`=192229; -- Argent Vanguard Support
+UPDATE `gameobject_template` SET `data23`=0, `VerifiedBuild`=17658 WHERE `entry`=192230; -- Argent Vanguard Tower
+UPDATE `gameobject_template` SET `data23`=0, `VerifiedBuild`=17658 WHERE `entry`=192231; -- Argent Vanguard Support
+UPDATE `gameobject_template` SET `data23`=0, `VerifiedBuild`=17658 WHERE `entry`=192232; -- Argent Vanguard Tower
+UPDATE `gameobject_template` SET `data23`=0, `VerifiedBuild`=17658 WHERE `entry`=192233; -- Argent Vanguard Support
+UPDATE `gameobject_template` SET `data23`=0, `VerifiedBuild`=17658 WHERE `entry`=192234; -- Argent Vanguard Tower
+UPDATE `gameobject_template` SET `data23`=0, `VerifiedBuild`=17658 WHERE `entry`=192820; -- 192820
+UPDATE `gameobject_template` SET `data23`=0, `VerifiedBuild`=17658 WHERE `entry`=193994; -- 193994
+UPDATE `gameobject_template` SET `data23`=1, `data24`=1, `VerifiedBuild`=17658 WHERE `entry`=182116; -- Fulgor Spore
+UPDATE `gameobject_template` SET `data23`=100, `data24`=150, `VerifiedBuild`=17658 WHERE `entry`=1620; -- Mageroyal
+UPDATE `gameobject_template` SET `data23`=100, `data24`=150, `VerifiedBuild`=17658 WHERE `entry`=1732; -- Tin Vein
+UPDATE `gameobject_template` SET `data23`=100, `data24`=150, `VerifiedBuild`=17658 WHERE `entry`=3727; -- Mageroyal
+UPDATE `gameobject_template` SET `data23`=125, `data24`=175, `VerifiedBuild`=17658 WHERE `entry`=1621; -- Briarthorn
+UPDATE `gameobject_template` SET `data23`=125, `data24`=175, `VerifiedBuild`=17658 WHERE `entry`=1622; -- Bruiseweed
+UPDATE `gameobject_template` SET `data23`=125, `data24`=175, `VerifiedBuild`=17658 WHERE `entry`=3729; -- Briarthorn
+UPDATE `gameobject_template` SET `data23`=125, `data24`=175, `VerifiedBuild`=17658 WHERE `entry`=3730; -- Bruiseweed
+UPDATE `gameobject_template` SET `data23`=450, `data24`=475, `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=202747; -- Cinderbloom
+UPDATE `gameobject_template` SET `data23`=450, `data24`=500, `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=202736; -- Obsidium Deposit
+UPDATE `gameobject_template` SET `data23`=475, `data24`=490, `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=202748; -- Stormvine
+UPDATE `gameobject_template` SET `data23`=475, `data24`=490, `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=202749; -- Azshara's Veil
+UPDATE `gameobject_template` SET `data23`=50, `data24`=100, `VerifiedBuild`=17658 WHERE `entry`=1617; -- Silverleaf
+UPDATE `gameobject_template` SET `data23`=50, `data24`=100, `VerifiedBuild`=17658 WHERE `entry`=1618; -- Peacebloom
+UPDATE `gameobject_template` SET `data23`=50, `data24`=100, `VerifiedBuild`=17658 WHERE `entry`=3724; -- Peacebloom
+UPDATE `gameobject_template` SET `data23`=50, `data24`=100, `VerifiedBuild`=17658 WHERE `entry`=3725; -- Silverleaf
+UPDATE `gameobject_template` SET `data23`=500, `data24`=525, `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=202738; -- Elementium Vein
+UPDATE `gameobject_template` SET `data23`=525, `data24`=535, `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=202737; -- Pyrite Deposit
+UPDATE `gameobject_template` SET `data23`=525, `data24`=535, `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=202741; -- Rich Elementium Vein
+UPDATE `gameobject_template` SET `data23`=525, `data24`=535, `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=202751; -- Twilight Jasmine
+UPDATE `gameobject_template` SET `data23`=525, `data24`=535, `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=202752; -- Whiptail
+UPDATE `gameobject_template` SET `data23`=65, `data24`=115, `VerifiedBuild`=17658 WHERE `entry`=1619; -- Earthroot
+UPDATE `gameobject_template` SET `data28`=1, `VerifiedBuild`=17658 WHERE `entry`=218488; -- Thunder King Disc Collision
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=220994; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=220995; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=220996; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=220997; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=220998; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=220999; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221000; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221001; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221002; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221003; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221004; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221005; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221006; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221007; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221008; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221009; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221010; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221013; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221014; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221015; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221016; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221017; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221018; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221019; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221020; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221021; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221023; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221024; -- Timeless Chest
+UPDATE `gameobject_template` SET `data30`=49416, `VerifiedBuild`=17658 WHERE `entry`=221026; -- Timeless Chest
+UPDATE `gameobject_template` SET `data4`=0, `data5`=0, `data17`=22540, `data30`=28489, `questItem1`=0, `VerifiedBuild`=17658 WHERE `entry`=202731; -- Lightning Channel
+UPDATE `gameobject_template` SET `data4`=1, `VerifiedBuild`=17658 WHERE `entry`=210946; -- Mite Trap
+UPDATE `gameobject_template` SET `data4`=1, `VerifiedBuild`=17658 WHERE `entry`=212099; -- Crocolisk Eggs
+UPDATE `gameobject_template` SET `data4`=1, `VerifiedBuild`=17658 WHERE `entry`=212100; -- Crocolisk Eggs
+UPDATE `gameobject_template` SET `data4`=1, `VerifiedBuild`=17658 WHERE `entry`=212104; -- Crocolisk Eggs
+UPDATE `gameobject_template` SET `data4`=1, `VerifiedBuild`=17658 WHERE `entry`=212105; -- Crocolisk Eggs
+UPDATE `gameobject_template` SET `data4`=1, `VerifiedBuild`=17658 WHERE `entry`=214543; -- Dreadspore Bulb
+UPDATE `gameobject_template` SET `data4`=1, `VerifiedBuild`=17658 WHERE `entry`=215404; -- Shroud of Mist
+UPDATE `gameobject_template` SET `data4`=1, `VerifiedBuild`=17658 WHERE `entry`=215640; -- Slippery Banana
+UPDATE `gameobject_template` SET `data4`=1, `VerifiedBuild`=17658 WHERE `entry`=218720; -- Travel Back to the Normal Plane
+UPDATE `gameobject_template` SET `data4`=1, `VerifiedBuild`=17658 WHERE `entry`=219215; -- Charged Moganite
+UPDATE `gameobject_template` SET `data4`=1, `data10`=1, `data11`=1, `data14`=1, `data16`=1, `VerifiedBuild`=17658 WHERE `entry`=212261; -- Scurvy-Curing Orange
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data17`=17792, `data18`=86, `data19`=8, `data26`=127183, `VerifiedBuild`=17658 WHERE `entry`=213650; -- Virmen Treasure Cache
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data17`=18774, `data18`=85, `data19`=1, `data26`=130449, `VerifiedBuild`=17658 WHERE `entry`=214339; -- Chest of Supplies
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data17`=18775, `data18`=89, `data19`=6, `data26`=130450, `VerifiedBuild`=17658 WHERE `entry`=214338; -- Offering of Remembrance
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data17`=18779, `data18`=86, `data19`=1, `data26`=130454, `VerifiedBuild`=17658 WHERE `entry`=214340; -- Boat-Building Instructions
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=85, `data19`=1, `data23`=525, `data24`=550, `VerifiedBuild`=17658 WHERE `entry`=221542; -- Green Tea Leaf
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=85, `data19`=1, `data23`=550, `data24`=575, `VerifiedBuild`=17658 WHERE `entry`=221543; -- Rain Poppy
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=85, `data19`=1, `data23`=550, `data24`=600, `VerifiedBuild`=17658 WHERE `entry`=221538; -- Ghost Iron Deposit
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=85, `data19`=1, `data23`=570, `data24`=595, `VerifiedBuild`=17658 WHERE `entry`=221544; -- Silkweed
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=85, `data19`=1, `data23`=575, `data24`=600, `VerifiedBuild`=17658 WHERE `entry`=214510; -- Sha-Touched Herb
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=85, `data19`=1, `data23`=575, `data24`=600, `VerifiedBuild`=17658 WHERE `entry`=215412; -- Sha-Touched Herb
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=85, `data19`=1, `data23`=575, `data24`=600, `VerifiedBuild`=17658 WHERE `entry`=221539; -- Rich Ghost Iron Deposit
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=85, `data19`=1, `data23`=600, `data24`=615, `VerifiedBuild`=17658 WHERE `entry`=221541; -- Trillium Vein
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=85, `data19`=1, `data23`=600, `data24`=615, `VerifiedBuild`=17658 WHERE `entry`=221547; -- Fool's Cap
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=85, `data19`=1, `data23`=605, `data24`=620, `VerifiedBuild`=17658 WHERE `entry`=221540; -- Rich Trillium Vein
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=86, `data19`=8, `data26`=127184, `VerifiedBuild`=17658 WHERE `entry`=213649; -- Cache of Pilfered Goods
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=86, `data19`=8, `data26`=127185, `VerifiedBuild`=17658 WHERE `entry`=213749; -- Staff of the Hidden Master
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=87, `data19`=8, `data26`=127192, `VerifiedBuild`=17658 WHERE `entry`=213768; -- Hozen Warrior Spear
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=87, `data19`=8, `data26`=127201, `VerifiedBuild`=17658 WHERE `entry`=213842; -- Stash of Yaungol Weapons
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=87, `data19`=8, `data26`=127202, `VerifiedBuild`=17658 WHERE `entry`=213782; -- Terracotta Head
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data18`=89, `data19`=8, `data26`=127208, `VerifiedBuild`=17658 WHERE `entry`=213960; -- Yaungol Fire Carrier
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data6`=0, `data18`=85, `data19`=1, `data23`=525, `data24`=550, `VerifiedBuild`=17658 WHERE `entry`=209349; -- Green Tea Leaf
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data6`=0, `data18`=85, `data19`=1, `data23`=550, `data24`=575, `VerifiedBuild`=17658 WHERE `entry`=209353; -- Rain Poppy
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data6`=0, `data18`=85, `data19`=1, `data23`=550, `data24`=600, `VerifiedBuild`=17658 WHERE `entry`=209311; -- Ghost Iron Deposit
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data6`=0, `data18`=85, `data19`=1, `data23`=570, `data24`=595, `VerifiedBuild`=17658 WHERE `entry`=209350; -- Silkweed
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data6`=0, `data18`=85, `data19`=1, `data23`=575, `data24`=600, `VerifiedBuild`=17658 WHERE `entry`=209328; -- Rich Ghost Iron Deposit
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data6`=0, `data18`=85, `data19`=1, `data23`=600, `data24`=615, `VerifiedBuild`=17658 WHERE `entry`=209312; -- Kyparite Deposit
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data6`=0, `data18`=85, `data19`=1, `data23`=600, `data24`=615, `VerifiedBuild`=17658 WHERE `entry`=209313; -- Trillium Vein
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data6`=0, `data18`=85, `data19`=1, `data23`=600, `data24`=615, `VerifiedBuild`=17658 WHERE `entry`=209351; -- Snow Lily
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data6`=0, `data18`=85, `data19`=1, `data23`=600, `data24`=615, `VerifiedBuild`=17658 WHERE `entry`=209355; -- Fool's Cap
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data6`=0, `data7`=215419, `data18`=90, `data19`=1, `data23`=600, `data24`=615, `VerifiedBuild`=17658 WHERE `entry`=209354; -- Golden Lotus
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data7`=215404, `data18`=85, `data19`=1, `data23`=525, `data24`=550, `VerifiedBuild`=17658 WHERE `entry`=215405; -- Green Tea Leaf
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data7`=215404, `data18`=85, `data19`=1, `data23`=550, `data24`=575, `VerifiedBuild`=17658 WHERE `entry`=215408; -- Rain Poppy
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data7`=215404, `data18`=85, `data19`=1, `data23`=550, `data24`=600, `VerifiedBuild`=17658 WHERE `entry`=215413; -- Ghost Iron Deposit
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data7`=215404, `data18`=85, `data19`=1, `data23`=570, `data24`=595, `VerifiedBuild`=17658 WHERE `entry`=215406; -- Silkweed
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data7`=215404, `data18`=85, `data19`=1, `data23`=600, `data24`=615, `VerifiedBuild`=17658 WHERE `entry`=215407; -- Snow Lily
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data7`=215404, `data18`=85, `data19`=1, `data23`=600, `data24`=615, `VerifiedBuild`=17658 WHERE `entry`=215410; -- Fool's Cap
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data7`=215404, `data18`=85, `data19`=1, `data23`=600, `data24`=615, `VerifiedBuild`=17658 WHERE `entry`=215418; -- Trillium Vein
+UPDATE `gameobject_template` SET `data4`=1, `data5`=1, `data7`=215419, `data18`=90, `data19`=1, `data23`=600, `data24`=615, `VerifiedBuild`=17658 WHERE `entry`=221545; -- Golden Lotus
+UPDATE `gameobject_template` SET `data4`=1, `data5`=12768, `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=209608; -- Training Bell
+UPDATE `gameobject_template` SET `data4`=1, `data5`=17092, `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=212969; -- Incense Bundle
+UPDATE `gameobject_template` SET `data4`=1, `data5`=21140, `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=218084; -- Workshop Orders
+UPDATE `gameobject_template` SET `data4`=1, `data5`=3, `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=216081; -- Berserk
+UPDATE `gameobject_template` SET `data4`=1, `data5`=3, `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=216082; -- Restoration
+UPDATE `gameobject_template` SET `data4`=1, `data5`=3, `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218644; -- Armor
+UPDATE `gameobject_template` SET `data4`=1, `data5`=3, `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218713; -- Berserk
+UPDATE `gameobject_template` SET `data4`=1, `data5`=3, `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=218715; -- Restoration
+UPDATE `gameobject_template` SET `data4`=1, `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209898; -- Watermelon Boat Flag
+UPDATE `gameobject_template` SET `data4`=1, `data6`=0, `data16`=1, `VerifiedBuild`=17658 WHERE `entry`=209833; -- Silk Patch
+UPDATE `gameobject_template` SET `data4`=1, `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=212974; -- Tiger Temple Gong
+UPDATE `gameobject_template` SET `data4`=1, `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=212290; -- Beach Bomb
+UPDATE `gameobject_template` SET `data4`=1, `data7`=5, `VerifiedBuild`=17658 WHERE `entry`=214828; -- Snake Trap
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=212163; -- Emperor Salmon School
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=212169; -- Giant Mantis Shrimp Swarm
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=212171; -- Jade Lungfish School
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=212172; -- Krasarang Paddlefish School
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=212173; -- Redbelly Mandarin School
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=212174; -- Reef Octopus Swarm
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=212175; -- Tiger Gourami School
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=212177; -- Spinefish School
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=216761; -- Mixed Ocean School
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=216764; -- Sagefish School
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=218577; -- Tangled Mantis Shrimp Cluster
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=218631; -- Swarm of Panicked Paddlefish
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=218650; -- Sha-Touched Spinefish
+UPDATE `gameobject_template` SET `data4`=1628, `VerifiedBuild`=17658 WHERE `entry`=221548; -- Jewel Danio School
+UPDATE `gameobject_template` SET `data4`=217, `data5`=11471, `data7`=6, `VerifiedBuild`=17658 WHERE `entry`=214441; -- Instance Portal (Raid 4 Difficulties)
+UPDATE `gameobject_template` SET `data4`=217, `data5`=11471, `data7`=6, `VerifiedBuild`=17658 WHERE `entry`=214522; -- Instance Portal (Raid 4 Difficulties)
+UPDATE `gameobject_template` SET `data4`=217, `data5`=11471, `data7`=6, `VerifiedBuild`=17658 WHERE `entry`=214525; -- Instance Portal (Raid 4 Difficulties)
+UPDATE `gameobject_template` SET `data4`=217, `data5`=11471, `data7`=6, `VerifiedBuild`=17658 WHERE `entry`=214539; -- Instance Portal (Raid 4 Difficulties)
+UPDATE `gameobject_template` SET `data4`=217, `data5`=11471, `data7`=6, `VerifiedBuild`=17658 WHERE `entry`=214611; -- Instance Portal (Raid 4 Difficulties)
+UPDATE `gameobject_template` SET `data4`=217, `data5`=11471, `data7`=6, `data8`=1, `VerifiedBuild`=17658 WHERE `entry`=214613; -- Instance Portal (Raid 4 Difficulties)
+UPDATE `gameobject_template` SET `data4`=217, `data7`=5, `VerifiedBuild`=17658 WHERE `entry`=214523; -- Instance Portal (Raid 10/25 No Heroic)
+UPDATE `gameobject_template` SET `data4`=217, `data7`=5, `VerifiedBuild`=17658 WHERE `entry`=214528; -- Instance Portal (Raid 10/25 No Heroic)
+UPDATE `gameobject_template` SET `data4`=217, `data7`=5, `VerifiedBuild`=17658 WHERE `entry`=214536; -- Instance Portal (Raid 10/25 No Heroic)
+UPDATE `gameobject_template` SET `data4`=30084, `VerifiedBuild`=17658 WHERE `entry`=210191; -- Memorial Flame of Zhu
+UPDATE `gameobject_template` SET `data4`=30084, `VerifiedBuild`=17658 WHERE `entry`=210213; -- Memorial Flame of Rin
+UPDATE `gameobject_template` SET `data4`=30084, `VerifiedBuild`=17658 WHERE `entry`=210214; -- Memorial Flame of Po
+UPDATE `gameobject_template` SET `data4`=5675028, `data6`=23333, `data7`=5675028, `data9`=5675028, `VerifiedBuild`=17658 WHERE `entry`=212976; -- Doodad_VEB_greatwall_elevator_002
+UPDATE `gameobject_template` SET `data4`=5675028, `data7`=5675028, `data9`=5675028, `VerifiedBuild`=17658 WHERE `entry`=212975; -- Doodad_VEB_greatwall_elevator_003
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213633; -- Forge
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213634; -- Anvil
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213676; -- Anvil
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213707; -- Bar
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213838; -- Brazier
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213839; -- Brazier
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213840; -- Brazier
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213841; -- Brazier
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213866; -- Doodad_mantid_brazier001
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213867; -- Doodad_mantid_brazier002
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213868; -- Doodad_mantid_brazier003
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213869; -- Doodad_mantid_brazier004
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213870; -- Doodad_mantid_brazier005
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213871; -- Doodad_mantid_brazier006
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213872; -- Doodad_mantid_brazier007
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213873; -- Doodad_mantid_brazier008
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213874; -- Doodad_mantid_brazier009
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213875; -- Doodad_mantid_brazier010
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213876; -- Doodad_mantid_brazier011
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213877; -- Doodad_mantid_brazier012
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213878; -- Doodad_mantid_brazier013
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213879; -- Doodad_mantid_brazier014
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214164; -- Cookpot
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214165; -- Oven
+UPDATE `gameobject_template` SET `data4`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214166; -- Stove
+UPDATE `gameobject_template` SET `data4`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214537; -- Stove
+UPDATE `gameobject_template` SET `data4`=5687288, `VerifiedBuild`=17658 WHERE `entry`=215181; -- Anvil
+UPDATE `gameobject_template` SET `data4`=5687288, `VerifiedBuild`=17658 WHERE `entry`=215182; -- Forge
+UPDATE `gameobject_template` SET `data4`=5687288, `VerifiedBuild`=17658 WHERE `entry`=215183; -- Anvil
+UPDATE `gameobject_template` SET `data4`=5687288, `VerifiedBuild`=17658 WHERE `entry`=215184; -- Anvil
+UPDATE `gameobject_template` SET `data4`=5696760, `VerifiedBuild`=17658 WHERE `entry`=216309; -- Grill Table
+UPDATE `gameobject_template` SET `data4`=5696760, `VerifiedBuild`=17658 WHERE `entry`=216310; -- Grill Table
+UPDATE `gameobject_template` SET `data4`=5696760, `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=216301; -- Stove
+UPDATE `gameobject_template` SET `data4`=5696760, `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=216302; -- Stove
+UPDATE `gameobject_template` SET `data4`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212107; -- Oven
+UPDATE `gameobject_template` SET `data4`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212108; -- Forge
+UPDATE `gameobject_template` SET `data4`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212109; -- Anvil
+UPDATE `gameobject_template` SET `data4`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212111; -- Anvil
+UPDATE `gameobject_template` SET `data4`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212582; -- Fireplace
+UPDATE `gameobject_template` SET `data4`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212587; -- Table
+UPDATE `gameobject_template` SET `data4`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212594; -- Stove
+UPDATE `gameobject_template` SET `data4`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212595; -- Stove
+UPDATE `gameobject_template` SET `data4`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212614; -- Table
+UPDATE `gameobject_template` SET `data4`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212620; -- Fireplace
+UPDATE `gameobject_template` SET `data4`=5778672, `data5`=1113, `data7`=5778672, `data9`=5778672, `VerifiedBuild`=17658 WHERE `entry`=216666; -- Doodad_MerrygoRound_transport001
+UPDATE `gameobject_template` SET `data4`=5778684, `VerifiedBuild`=17658 WHERE `entry`=216630; -- Anvil
+UPDATE `gameobject_template` SET `data5`=-1 WHERE `entry`=219176; -- Doodad_Orgrimmar_Elevator_02
+UPDATE `gameobject_template` SET `data5`=-1, `VerifiedBuild`=17658 WHERE `entry`=219175; -- Doodad_Orgrimmar_Elevator_01
+UPDATE `gameobject_template` SET `data5`=-1, `VerifiedBuild`=17658 WHERE `entry`=219177; -- Doodad_Orgrimmar_Elevator_03
+UPDATE `gameobject_template` SET `data5`=-1, `VerifiedBuild`=17658 WHERE `entry`=220364; -- Doodad_Orgrimmar_Elevator_004
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190219; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190220; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190221; -- Wintergrasp Fortress Tower
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190356; -- Shadowsight Tower
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190357; -- Winter's Edge Tower
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190358; -- Flamewatch Tower
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190369; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190370; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190371; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190372; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190373; -- Wintergrasp Fortress Tower
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190374; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190375; -- Wintergrasp Fortress Gate
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190376; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190377; -- Wintergrasp Fortress Tower
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190378; -- Wintergrasp Fortress Tower
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190722; -- Gate of the Green Emerald
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190723; -- Gate of the Purple Amethyst
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190724; -- Gate of the Blue Sapphire
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190726; -- Gate of the Red Sun
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=190727; -- Gate of the Yellow Moon
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191795; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191796; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191797; -- Wintergrasp Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191798; -- Wintergrasp Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191799; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191800; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191801; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191802; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191803; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191804; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191805; -- Wintergrasp Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191806; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191807; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191808; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191809; -- Wintergrasp Fortress Wall
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=191810; -- Wintergrasp Fortress Door
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=192028; -- Goblin Workshop
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=192029; -- Goblin Workshop
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=192030; -- Goblin Workshop
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=192031; -- Goblin Workshop
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=192032; -- Goblin Workshop
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=192033; -- Goblin Workshop
+UPDATE `gameobject_template` SET `data5`=0, `VerifiedBuild`=17658 WHERE `entry`=192549; -- Chamber of Ancient Relics
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=210806; -- Grill Counter
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=211446; -- Cage
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=211516; -- Alliance Tent
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=212080; -- Waterfall Depot
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=212081; -- Lava Depot
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=212082; -- Diamond Depot
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=212083; -- Troll Depot
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=213935; -- Mantid Cage
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=215077; -- Forge
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=216275; -- Signal Fire
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=218419; -- Floor FX South
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=218420; -- Floor FX North
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=218421; -- Floor FX West
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=218422; -- Floor FX East
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=221750; -- Shadow Prison - North - B
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=221751; -- Shadow Prison - East - B
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=221752; -- Shadow Prison - East - C
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=221753; -- Shadow Prison - East - A
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=221754; -- Shadow Prison - North - C
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=221755; -- Shadow Prison - North - A
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=221756; -- Shadow Prison - South - C
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=221757; -- Shadow Prison - West - C
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=221758; -- Shadow Prison - West - A
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=221759; -- Shadow Prison - West - B
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=221760; -- Shadow Prison - South - B
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=221761; -- Shadow Prison - South - A
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=221995; -- Heart of Y'Shaarj
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=223142; -- Light Containment - Pieces - 1
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=223143; -- Light Containment - Pieces - 2
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=223144; -- Light Containment - Pieces - 3
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=223145; -- Light Containment - Pieces - 4
+UPDATE `gameobject_template` SET `data5`=1, `VerifiedBuild`=17658 WHERE `entry`=223147; -- Light Containment - Pieces - Bottom
+UPDATE `gameobject_template` SET `data5`=1, `data10`=113891, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=210890; -- Blazing Ember
+UPDATE `gameobject_template` SET `data5`=1, `data10`=114439, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=210955; -- Kunzen Ritual Candle
+UPDATE `gameobject_template` SET `data5`=1, `data10`=114580, `data13`=1, `data22`=15642, `VerifiedBuild`=17658 WHERE `entry`=210986; -- Edict of Temperance
+UPDATE `gameobject_template` SET `data5`=1, `data10`=121947, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212279; -- Restorative Apple
+UPDATE `gameobject_template` SET `data5`=1, `data10`=122498, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212509; -- Fortifying Brew
+UPDATE `gameobject_template` SET `data5`=1, `data10`=122500, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212510; -- Large Turnip
+UPDATE `gameobject_template` SET `data5`=1, `data10`=122501, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212511; -- Energizing Carrot
+UPDATE `gameobject_template` SET `data5`=1, `data10`=122502, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=212512; -- Rocket Rice
+UPDATE `gameobject_template` SET `data5`=1, `data10`=125881, `data22`=17669, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=213890; -- Fresh Bread
+UPDATE `gameobject_template` SET `data5`=1, `data10`=130231, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=215133; -- Applebloom Cider
+UPDATE `gameobject_template` SET `data5`=1, `data10`=133818, `data22`=19691, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=216177; -- Domination Point Lumber
+UPDATE `gameobject_template` SET `data5`=1, `data10`=135571, `data22`=20097, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=216419; -- Undisturbed Soil
+UPDATE `gameobject_template` SET `data5`=1, `data10`=136772, `data18`=1, `data22`=20345, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=218064; -- Zandalari Potion
+UPDATE `gameobject_template` SET `data5`=1, `data10`=136772, `data18`=1, `data22`=20345, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=218065; -- Zandalari Potion
+UPDATE `gameobject_template` SET `data5`=1, `data10`=137433, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=218193; -- Orb of Control
+UPDATE `gameobject_template` SET `data5`=1, `data10`=137442, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=218374; -- Orb of Control
+UPDATE `gameobject_template` SET `data5`=1, `data10`=137443, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=218375; -- Orb of Control
+UPDATE `gameobject_template` SET `data5`=1, `data10`=137444, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=218376; -- Orb of Control
+UPDATE `gameobject_template` SET `data5`=1, `data10`=144299, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=220833; -- Damaged Diving Helmet
+UPDATE `gameobject_template` SET `data5`=1, `data10`=144393, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=220904; -- Rock-breaking Hammer
+UPDATE `gameobject_template` SET `data5`=1, `data10`=146385, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=221689; -- Ripe Crispfruit
+UPDATE `gameobject_template` SET `data5`=1, `data10`=146385, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=221690; -- Sand-Covered Egg
+UPDATE `gameobject_template` SET `data5`=1, `data10`=146385, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=221764; -- Roasted Seed
+UPDATE `gameobject_template` SET `data5`=1, `data10`=146385, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=223228; -- Southsea Firebrew
+UPDATE `gameobject_template` SET `data5`=1, `data10`=146426, `data13`=1, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=221725; -- Charged Crystal
+UPDATE `gameobject_template` SET `data5`=1, `data10`=146492, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=221747; -- Huge Yak Roast
+UPDATE `gameobject_template` SET `data5`=1, `data10`=146493, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=221763; -- Fire Poppy
+UPDATE `gameobject_template` SET `data5`=1, `data10`=147278, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=222796; -- Cloudstrike Family Helm
+UPDATE `gameobject_template` SET `data5`=1, `data10`=149333, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=223537; -- Flameheart Shawl
+UPDATE `gameobject_template` SET `data5`=1, `data10`=149350, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=223539; -- Snowdrift Tiger Talons
+UPDATE `gameobject_template` SET `data5`=1, `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209924; -- Brazier
+UPDATE `gameobject_template` SET `data5`=1, `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209950; -- Gurgling Toadspawn
+UPDATE `gameobject_template` SET `data5`=1, `data6`=0, `data10`=104127, `data13`=1, `VerifiedBuild`=17658 WHERE `entry`=209656; -- Defaced Scroll of Wisdom
+UPDATE `gameobject_template` SET `data5`=1, `data6`=0, `data10`=104127, `data13`=1, `VerifiedBuild`=17658 WHERE `entry`=209660; -- Defaced Scroll of Wisdom
+UPDATE `gameobject_template` SET `data5`=1, `data6`=0, `data10`=104127, `data13`=1, `VerifiedBuild`=17658 WHERE `entry`=209661; -- Defaced Scroll of Wisdom
+UPDATE `gameobject_template` SET `data5`=1, `data6`=0, `data10`=104127, `data13`=1, `VerifiedBuild`=17658 WHERE `entry`=209663; -- Defaced Scroll of Wisdom
+UPDATE `gameobject_template` SET `data5`=1, `data6`=0, `data10`=106309, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=209921; -- Muddy Water
+UPDATE `gameobject_template` SET `data5`=1, `data6`=0, `data7`=1, `data14`=1, `VerifiedBuild`=17658 WHERE `entry`=209575; -- Rock Jump A
+UPDATE `gameobject_template` SET `data5`=1, `data6`=0, `data7`=1, `data14`=1, `VerifiedBuild`=17658 WHERE `entry`=209576; -- Rock Jump B
+UPDATE `gameobject_template` SET `data5`=1, `data6`=0, `data7`=1, `data14`=1, `VerifiedBuild`=17658 WHERE `entry`=209577; -- Rock Jump C
+UPDATE `gameobject_template` SET `data5`=1, `data6`=1172, `data8`=1, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=223459; -- Alliance Battleship (Garrosh Raid)
+UPDATE `gameobject_template` SET `data5`=1, `data7`=10000, `data8`=5000, `data9`=220165, `VerifiedBuild`=17658 WHERE `entry`=220164; -- Alliance Mine Cart
+UPDATE `gameobject_template` SET `data5`=1, `data7`=10000, `data8`=5000, `data9`=220174, `VerifiedBuild`=17658 WHERE `entry`=220166; -- Horde Mine Cart
+UPDATE `gameobject_template` SET `data5`=10, `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=211687; -- Shado-pan Spike Trap
+UPDATE `gameobject_template` SET `data5`=10, `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=213303; -- He's Poison Trap
+UPDATE `gameobject_template` SET `data5`=13004, `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=209369; -- Brazier of the Flickering Flame
+UPDATE `gameobject_template` SET `data5`=13007, `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=209801; -- Brazier of the Red Flame
+UPDATE `gameobject_template` SET `data5`=13007, `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=209802; -- Brazier of the Blue Flame
+UPDATE `gameobject_template` SET `data5`=13007, `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=209803; -- Brazier of the Violet Flame
+UPDATE `gameobject_template` SET `data5`=15370, `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=210760; -- Kunzen Rope
+UPDATE `gameobject_template` SET `data5`=22184, `VerifiedBuild`=17658 WHERE `entry`=190753; -- Seaforium Bomb
+UPDATE `gameobject_template` SET `data5`=22184, `VerifiedBuild`=17658 WHERE `entry`=209331; -- Seaforium Bomb
+UPDATE `gameobject_template` SET `data5`=29523, `VerifiedBuild`=17658 WHERE `entry`=210122; -- Wind Stone
+UPDATE `gameobject_template` SET `data5`=31091, `VerifiedBuild`=17658 WHERE `entry`=213444; -- Undisturbed Soil
+UPDATE `gameobject_template` SET `data5`=5, `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=203414; -- Krom'gar "Elf Killer"
+UPDATE `gameobject_template` SET `data5`=5676324, `VerifiedBuild`=17658 WHERE `entry`=213224; -- Doodad_pa_standard_tushui_alliance007
+UPDATE `gameobject_template` SET `data5`=5676324, `VerifiedBuild`=17658 WHERE `entry`=213225; -- Doodad_pa_standard_tushui_alliance006
+UPDATE `gameobject_template` SET `data5`=5676324, `VerifiedBuild`=17658 WHERE `entry`=213226; -- Doodad_pa_standard_tushui_alliance005
+UPDATE `gameobject_template` SET `data5`=5676324, `VerifiedBuild`=17658 WHERE `entry`=213227; -- Doodad_pa_standard_tushui_alliance004
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213625; -- Useless Controller
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213635; -- Useless Controller
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213641; -- Shaman Challenge Set Armor
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213642; -- Rogue Challenge Set Armor
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213643; -- Priest Challenge Set Armor
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213644; -- Paladin Challenge Set Armor
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213645; -- Monk Challenge Set Armor
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213647; -- Druid Challenge Set Armor
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213648; -- Death Knight Challenge Set Armor
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213675; -- Tongs
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213678; -- Banner
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213700; -- Banner
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213702; -- Banner
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213704; -- Banner
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213705; -- Banner
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213706; -- Banner
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213715; -- Banner
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213716; -- Banner
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213984; -- Rogue
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213985; -- Shaman
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213986; -- Deathknight
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213987; -- Druid
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213989; -- Monk
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213990; -- Paladin
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213991; -- Priest
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213992; -- Doodad_v4w_farmcrops_30_chewed001
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213993; -- Doodad_worgen_bottle_010
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213994; -- Doodad_worgen_bottle_011
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213995; -- Doodad_worgen_bottle_012
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213996; -- Doodad_worgen_bottle_013
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213998; -- Doodad_pa_book_wooden_001
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=213999; -- Doodad_pa_basket_rural_003
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214000; -- Doodad_pa_barrel_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214001; -- Doodad_pa_apple_005
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214002; -- Doodad_pa_flowerpot_001
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214003; -- Doodad_pa_hopsack001
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214004; -- Doodad_kitchenknife001
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214005; -- Doodad_v4w_farmcrops_003
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214006; -- Doodad_pa_wallhanging_003
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214007; -- Doodad_pa_hoe_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214008; -- Doodad_pa_ladder_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214009; -- Doodad_v4w_farmcrops_004
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214010; -- Doodad_v4w_farmcrops_005
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214011; -- Doodad_pa_tablelamp_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214012; -- Doodad_pa_basket_rural_open_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214013; -- Doodad_pa_house_bed_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214014; -- Doodad_pa_rugs_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214015; -- Doodad_pa_table_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214017; -- Doodad_pa_hook_005
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214018; -- Doodad_pa_hook_006
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214019; -- Doodad_pa_ladle_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214020; -- Doodad_pa_pan_003
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214021; -- Doodad_pa_pan_004
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214022; -- Doodad_pa_ricesieve_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214023; -- Doodad_pa_garlic_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214024; -- Doodad_pa_peppers_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214025; -- Doodad_pa_hook_007
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214026; -- Doodad_pa_lamps_outdoors_wood_lamponly_001
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214027; -- Doodad_pa_hook_008
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214028; -- Doodad_pa_fruitbowl_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214029; -- Doodad_pa_sack_005
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214030; -- Doodad_pa_broom_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214031; -- Doodad_pa_firefly_jar002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214032; -- Doodad_pa_sack_004
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214033; -- Apple
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214034; -- Doodad_pa_grainsack_open_002
+UPDATE `gameobject_template` SET `data5`=5681380, `VerifiedBuild`=17658 WHERE `entry`=214035; -- Doodad_pa_keg_deluxe_02u002
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214697; -- Doodad_rshoulder_challengepaladin_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214698; -- Doodad_rshoulder_challengemonk_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214699; -- Doodad_rshoulder_challengehunter_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214700; -- Doodad_rshoulder_challengedruid_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214701; -- Doodad_rshoulder_challengedeathknight_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214702; -- Doodad_lshoulder_challengeshaman_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214703; -- Doodad_lshoulder_challengerogue_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214704; -- Doodad_lshoulder_challengepriest_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214705; -- Doodad_lshoulder_challengepaladin_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214706; -- Doodad_lshoulder_challengemonk_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214707; -- Doodad_lshoulder_challengehunter_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214708; -- Doodad_lshoulder_challengedruid_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214709; -- Doodad_lshoulder_challengedeathknight_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214710; -- Doodad_rshoulder_challengepriest_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214711; -- Doodad_rshoulder_challengerogue_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214712; -- Doodad_rshoulder_challengeshaman_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214713; -- Doodad_rshoulder_challengewarlock_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214714; -- Warlock Challenge Set Armor
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214715; -- Doodad_lshoulder_challengewarlock_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214716; -- Doodad_rshoulder_challengewarrior_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214717; -- Warrior Challenge Set Armor
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214718; -- Doodad_lshoulder_challengewarrior_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214719; -- Doodad_rshoulder_challengemage_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214720; -- Mage Challenge Set Armor
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214721; -- Doodad_lshoulder_challengemage_doodad001
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214727; -- Warrior
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214728; -- Mage
+UPDATE `gameobject_template` SET `data5`=5686456, `VerifiedBuild`=17658 WHERE `entry`=214729; -- Warlock
+UPDATE `gameobject_template` SET `data5`=5687288, `VerifiedBuild`=17658 WHERE `entry`=214949; -- Doodad_hz_cage_001
+UPDATE `gameobject_template` SET `data5`=5687288, `VerifiedBuild`=17658 WHERE `entry`=214950; -- Doodad_hz_cage_002
+UPDATE `gameobject_template` SET `data5`=5687288, `VerifiedBuild`=17658 WHERE `entry`=214951; -- Doodad_hz_cage_003
+UPDATE `gameobject_template` SET `data5`=5687288, `VerifiedBuild`=17658 WHERE `entry`=214952; -- Doodad_hz_cage_004
+UPDATE `gameobject_template` SET `data5`=5687288, `VerifiedBuild`=17658 WHERE `entry`=214953; -- Doodad_hz_cage_005
+UPDATE `gameobject_template` SET `data5`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212513; -- Doodad_Sherpa_bedroll_004
+UPDATE `gameobject_template` SET `data5`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212514; -- Doodad_Sherpa_bedroll_003
+UPDATE `gameobject_template` SET `data5`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212515; -- Doodad_Sherpa_bedroll_002
+UPDATE `gameobject_template` SET `data5`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212516; -- Doodad_Sherpa_bedroll_005
+UPDATE `gameobject_template` SET `data5`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212517; -- Doodad_Sherpa_bedroll_006
+UPDATE `gameobject_template` SET `data5`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212518; -- Doodad_Sherpa_bedroll_007
+UPDATE `gameobject_template` SET `data5`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212519; -- Doodad_Sherpa_bedroll_008
+UPDATE `gameobject_template` SET `data5`=5705884, `VerifiedBuild`=17658 WHERE `entry`=212520; -- Doodad_Sherpa_bedroll_009
+UPDATE `gameobject_template` SET `data5`=923, `VerifiedBuild`=17658 WHERE `entry`=215124; -- Undercity
+UPDATE `gameobject_template` SET `data5`=923, `VerifiedBuild`=17658 WHERE `entry`=215125; -- Thunder Bluff
+UPDATE `gameobject_template` SET `data5`=923, `VerifiedBuild`=17658 WHERE `entry`=215126; -- Silvermoon
+UPDATE `gameobject_template` SET `data5`=923, `VerifiedBuild`=17658 WHERE `entry`=215127; -- Orgrimmar
+UPDATE `gameobject_template` SET `data5`=924, `VerifiedBuild`=17658 WHERE `entry`=215116; -- Darnassus
+UPDATE `gameobject_template` SET `data5`=924, `VerifiedBuild`=17658 WHERE `entry`=215117; -- Exodar
+UPDATE `gameobject_template` SET `data5`=924, `VerifiedBuild`=17658 WHERE `entry`=215118; -- Ironforge
+UPDATE `gameobject_template` SET `data5`=924, `VerifiedBuild`=17658 WHERE `entry`=215119; -- Stormwind
+UPDATE `gameobject_template` SET `data5`=924, `VerifiedBuild`=17658 WHERE `entry`=215120; -- Shattrath
+UPDATE `gameobject_template` SET `data5`=924, `VerifiedBuild`=17658 WHERE `entry`=215121; -- Dalaran
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=136924; -- Bench
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=176453; -- Meat Rack
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=182255; -- Wyvern Roost
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=186458; -- Stratholme Fire Small
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=186722; -- Yellow Ragdoll
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=187234; -- Tall/Thin Medium - Xmas
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=191785; -- Horde Table
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=202570; -- Mysterious Cheese
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=202571; -- Bael'dun Fortress Schematics
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=207201; -- Hobo Christmas Tree
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=207202; -- XMasGift01 scale 0.5
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=207203; -- XMasGift02 scale 0.5
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=207204; -- XMasStocking01 scale 0.5
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=207205; -- Flames scale 0.05
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=207229; -- Hanging, Streamer x3 - Xmas (scale 1.5)
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209078; -- Lilly Pad
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209325; -- Wind Stone
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209363; -- Scroll Post
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209367; -- Fire Wall
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209372; -- Brazier of the Violet Flame
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209373; -- Brazier of the Blue Flame
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209374; -- Brazier of the Red Flame
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209375; -- Fire Wall
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209465; -- Greench Stash
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209466; -- Balance Pole
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209473; -- Metzen Cage Segment
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209474; -- Metzen Cage Post
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209586; -- Hozen Cage
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209622; -- Broken Mogu Statue Upper Arm
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209657; -- Scroll of Wisdom
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209658; -- Scroll of Wisdom
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209800; -- Huo's Flame
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209832; -- Stool
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209857; -- Jinyu Cage
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209887; -- Altar
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209900; -- Central Turtle Statue Collision
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209932; -- Waterforge
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209938; -- Panda Brewery Door
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209970; -- Temple Door
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209971; -- Temple Door
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209972; -- Temple Door
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209973; -- Temple Door
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209981; -- Sacred Dirt
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209984; -- Nazgrim Attack Plans
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209988; -- Wu-Song Ale
+UPDATE `gameobject_template` SET `data6`=0, `VerifiedBuild`=17658 WHERE `entry`=209989; -- Wu-Song Ale
+UPDATE `gameobject_template` SET `data6`=0, `data10`=102781, `data22`=12758, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=209497; -- Stolen Treats
+UPDATE `gameobject_template` SET `data6`=0, `data10`=102781, `data22`=12758, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=209506; -- Stolen Treats
+UPDATE `gameobject_template` SET `data6`=0, `data10`=104012, `data13`=1, `data22`=13461, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=209626; -- Break Gong
+UPDATE `gameobject_template` SET `data6`=0, `data10`=105583, `data13`=1, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=209847; -- Mouthwatering Brew
+UPDATE `gameobject_template` SET `data6`=0, `data10`=119098, `data13`=1, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=209780; -- Meditation Candle
+UPDATE `gameobject_template` SET `data6`=0, `data8`=29580, `questItem1`=72133, `VerifiedBuild`=17658 WHERE `entry`=209344; -- Orchard Tool
+UPDATE `gameobject_template` SET `data6`=0, `data8`=29580, `questItem1`=72133, `VerifiedBuild`=17658 WHERE `entry`=209345; -- Orchard Tool
+UPDATE `gameobject_template` SET `data6`=0, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=209993; -- Broken Stack of Reeds
+UPDATE `gameobject_template` SET `data6`=0, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=209994; -- Broken Stack of Wooden Planks
+UPDATE `gameobject_template` SET `data6`=0, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=209995; -- Broken Stack of Stone Blocks
+UPDATE `gameobject_template` SET `data6`=0, `questItem1`=72589, `VerifiedBuild`=17658 WHERE `entry`=209436; -- Ripe Orange
+UPDATE `gameobject_template` SET `data6`=0, `questItem1`=73184, `VerifiedBuild`=17658 WHERE `entry`=209584; -- Ancient Clam
+UPDATE `gameobject_template` SET `data6`=0, `questItem1`=74295, `VerifiedBuild`=17658 WHERE `entry`=209639; -- Uprooted Turnip
+UPDATE `gameobject_template` SET `data6`=0, `questItem1`=74295, `VerifiedBuild`=17658 WHERE `entry`=209640; -- Uprooted Turnip
+UPDATE `gameobject_template` SET `data6`=0, `questItem1`=74296, `VerifiedBuild`=17658 WHERE `entry`=209641; -- Stolen Carrot
+UPDATE `gameobject_template` SET `data6`=0, `questItem1`=74297, `VerifiedBuild`=17658 WHERE `entry`=209642; -- Pilfered Pumpkin
+UPDATE `gameobject_template` SET `data6`=0, `questItem1`=74297, `VerifiedBuild`=17658 WHERE `entry`=209643; -- Pilfered Pumpkin
+UPDATE `gameobject_template` SET `data6`=0, `questItem1`=74297, `VerifiedBuild`=17658 WHERE `entry`=209644; -- Pilfered Pumpkin
+UPDATE `gameobject_template` SET `data6`=0, `questItem1`=74297, `VerifiedBuild`=17658 WHERE `entry`=209645; -- Pilfered Pumpkin
+UPDATE `gameobject_template` SET `data6`=0, `questItem1`=76501, `VerifiedBuild`=17658 WHERE `entry`=209953; -- Emperor Tern Egg
+UPDATE `gameobject_template` SET `data6`=0, `questItem1`=76503, `VerifiedBuild`=17658 WHERE `entry`=209954; -- Whitefisher Crane Egg
+UPDATE `gameobject_template` SET `data6`=0, `questItem1`=76516, `VerifiedBuild`=17658 WHERE `entry`=209955; -- Hornbill Strider Egg
+UPDATE `gameobject_template` SET `data6`=0, `questItem1`=76973, `VerifiedBuild`=17658 WHERE `entry`=209987; -- Dreamleaf Bush
+UPDATE `gameobject_template` SET `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=210097; -- Invisible Fire Wall - CoT Well of Eternity
+UPDATE `gameobject_template` SET `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=214548; -- Wind Wall
+UPDATE `gameobject_template` SET `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=216316; -- Kirin Tor Mana Focus
+UPDATE `gameobject_template` SET `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=218382; -- Egg
+UPDATE `gameobject_template` SET `data6`=1, `VerifiedBuild`=17658 WHERE `entry`=218987; -- Tortos Death Collision
+UPDATE `gameobject_template` SET `data6`=1, `data7`=5703, `VerifiedBuild`=17658 WHERE `entry`=213029; -- Autumn Blossom Tree
+UPDATE `gameobject_template` SET `data6`=1, `data7`=5703, `VerifiedBuild`=17658 WHERE `entry`=213168; -- Spring Blossom Tree
+UPDATE `gameobject_template` SET `data6`=1, `data7`=5703, `VerifiedBuild`=17658 WHERE `entry`=213169; -- Winter Blossom Tree
+UPDATE `gameobject_template` SET `data6`=1, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=215699; -- Yaungol Windmill Fire Spout
+UPDATE `gameobject_template` SET `data6`=1, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=218699; -- Qon Back Door
+UPDATE `gameobject_template` SET `data6`=1, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=218711; -- Mogu Concubines Back Door
+UPDATE `gameobject_template` SET `data6`=1, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=218712; -- Mogu Concubines Front Door
+UPDATE `gameobject_template` SET `data6`=1, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=221132; -- Garrosh Encounter Sha Vortex Collision
+UPDATE `gameobject_template` SET `data6`=1, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=223146; -- Light Containment - Pieces - Top
+UPDATE `gameobject_template` SET `data6`=1, `data9`=1, `data10`=1, `VerifiedBuild`=17658 WHERE `entry`=221602; -- Sha Energy Wall
+UPDATE `gameobject_template` SET `data6`=10, `data10`=117788, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211524; -- Ceremonial Pile
+UPDATE `gameobject_template` SET `data6`=10000, `data8`=1, `data9`=3000, `VerifiedBuild`=17658 WHERE `entry`=179785; -- Alliance Flag
+UPDATE `gameobject_template` SET `data6`=10000, `data8`=1, `data9`=3000, `VerifiedBuild`=17658 WHERE `entry`=179786; -- Horde Flag
+UPDATE `gameobject_template` SET `data6`=1133, `data8`=1, `VerifiedBuild`=17658 WHERE `entry`=218815; -- Zandalari Ship
+UPDATE `gameobject_template` SET `data6`=11696, `data7`=3, `VerifiedBuild`=17658 WHERE `entry`=211640; -- Instance Portal (Party + Heroic + Challenge)
+UPDATE `gameobject_template` SET `data6`=11696, `data7`=3, `VerifiedBuild`=17658 WHERE `entry`=212899; -- Instance Portal (Party + Heroic + Challenge)
+UPDATE `gameobject_template` SET `data6`=11696, `data7`=3, `VerifiedBuild`=17658 WHERE `entry`=214508; -- Instance Portal (Party + Heroic + Challenge)
+UPDATE `gameobject_template` SET `data6`=11696, `data7`=3, `VerifiedBuild`=17658 WHERE `entry`=214513; -- Instance Portal (Party + Heroic + Challenge)
+UPDATE `gameobject_template` SET `data6`=11696, `data7`=3, `VerifiedBuild`=17658 WHERE `entry`=214885; -- Instance Portal (Party + Heroic + Challenge)
+UPDATE `gameobject_template` SET `data6`=2, `data10`=116799, `data22`=16038, `data23`=1, `VerifiedBuild`=17658 WHERE `entry`=211456; -- Kafa'goot "Deposit"
+UPDATE `gameobject_template` SET `data6`=20829, `VerifiedBuild`=17658 WHERE `entry`=218749; -- Work Order Post
+UPDATE `gameobject_template` SET `data6`=30, `VerifiedBuild`=17658 WHERE `entry`=214734; -- Sik'thik Cage
+UPDATE `gameobject_template` SET `data6`=5703, `VerifiedBuild`=17658 WHERE `entry`=212349; -- Mantid Weapon Rack
+UPDATE `gameobject_template` SET `data6`=6, `data10`=102446, `VerifiedBuild`=17658 WHERE `entry`=209364; -- The Dimming Flame
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=213756; -- Wagon
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=216670; -- Root Barricade
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=216671; -- Root Barricade 2
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=216781; -- Alliance Wagon 01
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=216874; -- Alliance Flag
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=218384; -- Zandalari Crate 03
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=218890; -- Zandalari Crate 03 Open
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=218891; -- Zandalari Crate 03 Top
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=218948; -- Zandalari Banner 01
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=219351; -- Boulders
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=220201; -- The Big One 4000
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=221684; -- Burning Brazier
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=223428; -- Kor'kron Meat Rack
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=223429; -- Kor'kron Meat w Bones
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=223430; -- Kor'kron Meat
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=223431; -- Water Trough
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=223434; -- Kor'kron Tools
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=223437; -- Kor'kron Buckets
+UPDATE `gameobject_template` SET `data7`=1, `VerifiedBuild`=17658 WHERE `entry`=223438; -- Kor'kron Bucket
+UPDATE `gameobject_template` SET `data7`=2, `VerifiedBuild`=17658 WHERE `entry`=211498; -- Instance Portal (Party + Heroic)
+UPDATE `gameobject_template` SET `data7`=2, `VerifiedBuild`=17658 WHERE `entry`=214500; -- Instance Portal (Party + Heroic)
+UPDATE `gameobject_template` SET `data7`=2, `VerifiedBuild`=17658 WHERE `entry`=214501; -- Instance Portal (Party + Heroic)
+UPDATE `gameobject_template` SET `data7`=2, `VerifiedBuild`=17658 WHERE `entry`=214502; -- Instance Portal (Party + Heroic)
+UPDATE `gameobject_template` SET `data7`=2, `VerifiedBuild`=17658 WHERE `entry`=214503; -- Instance Portal (Party + Heroic)
+UPDATE `gameobject_template` SET `data7`=2, `VerifiedBuild`=17658 WHERE `entry`=214507; -- Instance Portal (Party + Heroic)
+UPDATE `gameobject_template` SET `data7`=2, `VerifiedBuild`=17658 WHERE `entry`=214516; -- Instance Portal (Party + Heroic)
+UPDATE `gameobject_template` SET `data7`=2, `VerifiedBuild`=17658 WHERE `entry`=214517; -- Instance Portal (Party + Heroic)
+UPDATE `gameobject_template` SET `data7`=2, `VerifiedBuild`=17658 WHERE `entry`=214612; -- Instance Portal (Party + Heroic)
+UPDATE `gameobject_template` SET `data7`=21146, `VerifiedBuild`=17658 WHERE `entry`=214361; -- Rocks
+UPDATE `gameobject_template` SET `data7`=21237, `VerifiedBuild`=17658 WHERE `entry`=218744; -- The Swollen Vault
+UPDATE `gameobject_template` SET `data7`=5703, `VerifiedBuild`=17658 WHERE `entry`=210800; -- Doodad_PA_Shadowpan_BigDojoDoor002
+UPDATE `gameobject_template` SET `data7`=5703, `VerifiedBuild`=17658 WHERE `entry`=210862; -- Doodad_PA_ShadowpanDoor002
+UPDATE `gameobject_template` SET `data7`=5703, `VerifiedBuild`=17658 WHERE `entry`=211963; -- Golden Gate
+UPDATE `gameobject_template` SET `data7`=5703, `VerifiedBuild`=17658 WHERE `entry`=218696; -- Mogu Door
+UPDATE `gameobject_template` SET `data7`=5703, `VerifiedBuild`=17658 WHERE `entry`=218697; -- Mogu Door
+UPDATE `gameobject_template` SET `data7`=5703, `VerifiedBuild`=17658 WHERE `entry`=218698; -- Mogu Door
+UPDATE `gameobject_template` SET `data7`=5703, `VerifiedBuild`=17658 WHERE `entry`=218728; -- Mogu Door
+UPDATE `gameobject_template` SET `data7`=5703, `VerifiedBuild`=17658 WHERE `entry`=218729; -- Mogu Door
+UPDATE `gameobject_template` SET `data7`=5703, `VerifiedBuild`=17658 WHERE `entry`=218730; -- Mogu Door
+UPDATE `gameobject_template` SET `data7`=5703, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=213374; -- Mantid Cage
+UPDATE `gameobject_template` SET `data7`=5703, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=213376; -- Mantid Cage
+UPDATE `gameobject_template` SET `data7`=5703, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=220195; -- Heart of Y'Shaarj
+UPDATE `gameobject_template` SET `data7`=5793, `VerifiedBuild`=17658 WHERE `entry`=211702; -- Golden Doors
+UPDATE `gameobject_template` SET `data7`=5793, `VerifiedBuild`=17658 WHERE `entry`=211703; -- Golden Doors
+UPDATE `gameobject_template` SET `data7`=5793, `VerifiedBuild`=17658 WHERE `entry`=211704; -- Golden Doors
+UPDATE `gameobject_template` SET `data7`=5793, `VerifiedBuild`=17658 WHERE `entry`=214511; -- Broken Amber
+UPDATE `gameobject_template` SET `data7`=5793, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=220194; -- Strange Wall
+UPDATE `gameobject_template` SET `data8`=1, `VerifiedBuild`=17658 WHERE `entry`=210051; -- To Be A Pandaren
+UPDATE `gameobject_template` SET `data8`=1, `VerifiedBuild`=17658 WHERE `entry`=211970; -- Doodad_PA_GhostBrewery_Door_003
+UPDATE `gameobject_template` SET `data8`=1, `VerifiedBuild`=17658 WHERE `entry`=212246; -- Doodad_PA_GhostBrewery_Door_001
+UPDATE `gameobject_template` SET `data8`=1, `VerifiedBuild`=17658 WHERE `entry`=214871; -- Shattered Destroyer
+UPDATE `gameobject_template` SET `data8`=1, `VerifiedBuild`=17658 WHERE `entry`=221446; -- Pride Entrance
+UPDATE `gameobject_template` SET `data8`=1, `VerifiedBuild`=17658 WHERE `entry`=221447; -- Norushen Exit
+UPDATE `gameobject_template` SET `data8`=1, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=216322; -- Bounty Board
+UPDATE `gameobject_template` SET `data8`=1, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=218750; -- Work Orders
+UPDATE `gameobject_template` SET `data8`=1, `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=218765; -- Empty Crate
+UPDATE `gameobject_template` SET `data8`=32149, `questItem1`=91907, `VerifiedBuild`=17658 WHERE `entry`=216229; -- Hastily Abandoned Lumber
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=210964; -- Pei-Wu Forest Gate
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=210965; -- Mandori Village Gate
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=211662; -- Ancient Guo Lai Door
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=211663; -- Ancient Guo-Lai Door
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=211665; -- Ancient Guo-Lai Door
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=212738; -- Enormous Landslide
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=213973; -- Klaxxi Sonic Relay
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=214459; -- Mogu Crypt Doors (phased/open)
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=215459; -- Doodad_Mantid_Amber_Door001
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=215893; -- Klaxxi'vess
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=216274; -- Signal Fire
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=216609; -- Flare Launcher
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=218412; -- Wind FX NE
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=218413; -- Wind FX SE
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=218414; -- Wind FX SW
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=218675; -- Mogu Fountain
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=218676; -- Mogu Fountain
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=218677; -- Mogu Fountain
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=218678; -- Mogu Fountain
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=218760; -- Mogu Door
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=220168; -- Iron Gate
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=220169; -- Iron Gate
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=221245; -- Immerseus Door
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=221438; -- Entrance
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=221439; -- South East Door
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=221440; -- South West Door
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=221441; -- Entrance
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=221916; -- VR Portcullis
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=223120; -- Orgrimmar Front Gate
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=223219; -- Wind Door
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=223232; -- Stolen Horde Cache
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=223233; -- Shredder Crate
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=223425; -- Catapult
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=223501; -- Celestial Door
+UPDATE `gameobject_template` SET `data9`=1, `VerifiedBuild`=17658 WHERE `entry`=223739; -- The Gates of Orgrimmar
+UPDATE `gameobject_template` SET `data9`=22594, `VerifiedBuild`=17658 WHERE `entry`=223132; -- Cursed Gravestone
+UPDATE `gameobject_template` SET `data9`=5703, `VerifiedBuild`=17658 WHERE `entry`=211553; -- Drywood Cage
+UPDATE `gameobject_template` SET `questItem1`=0, `VerifiedBuild`=17658 WHERE `entry`=179703; -- Cache of the Firelord
+UPDATE `gameobject_template` SET `questItem1`=17849, `VerifiedBuild`=17658 WHERE `entry`=179024; -- Stormpike Banner
+UPDATE `gameobject_template` SET `questItem1`=30527, `questItem2`=0, `questItem3`=0, `VerifiedBuild`=17658 WHERE `entry`=184811; -- Sealed Coffin
+UPDATE `gameobject_template` SET `questItem1`=30527, `questItem2`=30524, `questItem3`=30525, `questItem4`=30526, `VerifiedBuild`=17658 WHERE `entry`=184812; -- Sealed Coffin
+UPDATE `gameobject_template` SET `questItem1`=30527, `questItem2`=30524, `questItem3`=30525, `questItem4`=30526, `VerifiedBuild`=17658 WHERE `entry`=184813; -- Sealed Coffin
+UPDATE `gameobject_template` SET `questItem1`=30527, `questItem2`=30524, `questItem3`=30525, `questItem4`=30526, `VerifiedBuild`=17658 WHERE `entry`=184814; -- Sealed Coffin
+UPDATE `gameobject_template` SET `questItem1`=30527, `questItem2`=30524, `questItem3`=30525, `questItem4`=30526, `VerifiedBuild`=17658 WHERE `entry`=184815; -- Sealed Coffin
+UPDATE `gameobject_template` SET `questItem1`=76503, `VerifiedBuild`=17658 WHERE `entry`=210520; -- Crane Egg
+UPDATE `gameobject_template` SET `questItem1`=77033, `VerifiedBuild`=17658 WHERE `entry`=210001; -- Stolen Malt Sack
+UPDATE `gameobject_template` SET `questItem1`=77033, `VerifiedBuild`=17658 WHERE `entry`=210002; -- Stolen Barley Sack
+UPDATE `gameobject_template` SET `questItem1`=78877, `VerifiedBuild`=17658 WHERE `entry`=210184; -- Slick Mudfish
+UPDATE `gameobject_template` SET `questItem1`=78877, `VerifiedBuild`=17658 WHERE `entry`=210185; -- Slick Mudfish
+UPDATE `gameobject_template` SET `questItem1`=78877, `VerifiedBuild`=17658 WHERE `entry`=210186; -- Slick Mudfish
+UPDATE `gameobject_template` SET `questItem1`=79870, `VerifiedBuild`=17658 WHERE `entry`=210873; -- Yu-Ping Soup Cauldron
+UPDATE `gameobject_template` SET `questItem1`=80074, `VerifiedBuild`=17658 WHERE `entry`=210921; -- Celestial Jade
+UPDATE `gameobject_template` SET `questItem1`=81250, `VerifiedBuild`=17658 WHERE `entry`=211517; -- Snarlvine
+UPDATE `gameobject_template` SET `questItem1`=81250, `VerifiedBuild`=17658 WHERE `entry`=211518; -- Snarlvine
+UPDATE `gameobject_template` SET `questItem1`=86598, `VerifiedBuild`=17658 WHERE `entry`=214170; -- Vor'thik Egg
+UPDATE `gameobject_template` SET `questItem1`=88855, `VerifiedBuild`=17658 WHERE `entry`=214845; -- Oona Brew Mug
+UPDATE `gameobject_template` SET `questItem1`=88855, `VerifiedBuild`=17658 WHERE `entry`=214986; -- Stolen Sri-La Keg
+UPDATE `gameobject_template` SET `unk1`='Requires Skeleton Key', `data5`=76533, `VerifiedBuild`=17658 WHERE `entry`=222010; -- Jinyu Prison
+UPDATE `gameobject_template` SET `unk1`='Requires Skeleton Key', `data5`=76533, `VerifiedBuild`=17658 WHERE `entry`=222011; -- Jinyu Prison
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=189973; -- Goldclover
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=189978; -- Cobalt Deposit
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=189980; -- Saronite Deposit
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=189981; -- Rich Saronite Deposit
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=190169; -- Tiger Lily
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=190170; -- Talandra's Rose
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=190171; -- Lichbloom
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=190172; -- Icethorn
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=190173; -- Frozen Herb
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=190174; -- Frozen Herb
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=190175; -- Frozen Herb
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=190176; -- Frost Lotus
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=191019; -- Adder's Tongue
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=191133; -- Titanium Vein
+UPDATE `gameobject_template` SET `unkInt32`=0, `VerifiedBuild`=17658 WHERE `entry`=191303; -- Firethorn
diff --git a/sql/updates/world/2014_10_31_02_world.sql b/sql/updates/world/2014_10_31_02_world.sql
new file mode 100644
index 00000000000..a3cfa1f57ce
--- /dev/null
+++ b/sql/updates/world/2014_10_31_02_world.sql
@@ -0,0 +1,268 @@
+UPDATE `gameobject_template` SET `VerifiedBuild`=17538 WHERE `entry` IN (1766, 1767, 1804, 1806, 1819, 1820, 1848, 1859, 1916, 1941, 1944, 1952, 1953, 1954, 1957, 1967, 2076, 2551, 2849, 3189, 3190, 3200, 3236, 3296, 3640, 3642, 3662, 3937, 3938, 3942, 18077, 20921, 20922, 20979, 21145, 21146, 21147, 21148, 22640, 22641, 22642, 22644, 22646, 22657, 22684, 22685, 22904, 22908, 22909, 22910, 22915, 22916, 22917, 22918, 22919, 22920, 22921, 22922, 22923, 22924, 22925, 22926, 22927, 23575, 31409, 31411, 31580, 36085, 36092, 36977, 36979, 36980, 36981, 36982, 36983, 36984, 36985, 36986, 36987, 36988, 36989, 38147, 40303, 52175, 55615, 58609, 61924, 61925, 85562, 92142, 92143, 102985, 104555, 104593, 112301, 112302, 112303, 112305, 112308, 112309, 112310, 112311, 112312, 112316, 112317, 112319, 112321, 112322, 113569, 120584, 141972, 144070, 147075, 147076, 147077, 149031, 149423, 160846, 160847, 160848, 160849, 160850, 160851, 163645, 164759, 164760, 164761, 164762, 164763, 164764, 164765, 164766, 164767, 164870, 166863, 167288, 174873, 174874, 174881, 174994, 174995, 174996, 174997, 174998, 175669, 175933, 176464, 176489, 176501, 176504, 176557, 176594, 176746, 176747, 176785, 176896, 177164, 177165, 177264, 177269, 178084, 178085, 178304, 178364, 178940, 179064, 179086, 179264, 179424, 179425, 179443, 179444, 179453, 179473, 179482, 179585, 179881, 180124, 180218, 180219, 180340, 180353, 180362, 180395, 180405, 180406, 180407, 180408, 180409, 180410, 180411, 180412, 180414, 180415, 180419, 180420, 180425, 180426, 180427, 180428, 180429, 180431, 180432, 180433, 180434, 180437, 180454, 180471, 180472, 180523, 180570, 180609, 180610, 180611, 180633, 180634, 180635, 180636, 180655, 180690, 180745, 180788, 180901, 181103, 181110, 181166, 181250, 181251, 181252, 181275, 181276, 181278, 181324, 181325, 181326, 181327, 181357, 181378, 181427, 181435, 181436, 181437, 181438, 181439, 181440, 181441, 181442, 181446, 181449, 181450, 181451, 181452, 181453, 181455, 181456, 181570, 181572, 181581, 181585, 181587, 181589, 181590, 181591, 181592, 181593, 181597, 181637, 181638, 181655, 181656, 181657, 181658, 181659, 181660, 181663, 181671, 181697, 181713, 181766, 181767, 181811, 181812, 181813, 181814, 181815, 181816, 181817, 181818, 181819, 181820, 181821, 181822, 181823, 181921, 181922, 181923, 181924, 181925, 181926, 181927, 181980, 181982, 181989, 181990, 182059, 182069, 182082, 182094, 182117, 182118, 182128, 182139, 182165, 182198, 182203, 182205, 182206, 182210, 182222, 182258, 182265, 182267, 182272, 182273, 182274, 182280, 182281, 182282, 182297, 182298, 182299, 182300, 182302, 182304, 182306, 182308, 182354, 182359, 182369, 182376, 182377, 182378, 182488, 182501, 182502, 182521, 182528, 182533, 182535, 182538, 182539, 182540, 182558, 182568, 182579, 182589, 182592, 182607, 182809, 182829, 182936, 182937, 183037, 183049, 183051, 183099, 183112, 183113, 183114, 183116, 183146, 183147, 183159, 183160, 183161, 183163, 183164, 183165, 183180, 183265, 183338, 183339, 183340, 183341, 183343, 183345, 183346, 183355, 183362, 183363, 183368, 183369, 183370, 183371, 183372, 183373, 183374, 183375, 183376, 183377, 183378, 183379, 183380, 183381, 183382, 183383, 183398, 183413, 183414, 183437, 183438, 183442, 183454, 183455, 183456, 183457, 183458, 183459, 183460, 183461, 183491, 183492, 183493, 183496, 183788, 183805, 183806, 183807, 183808, 183821, 183840, 183841, 183852, 183882, 183883, 183894, 183896, 183922, 183934, 183936, 183940, 183941, 183961, 183962, 183963, 183964, 183965, 183985, 183986, 184009, 184010, 184016, 184017, 184018, 184026, 184027, 184028, 184029, 184030, 184031, 184032, 184033, 184034, 184035, 184036, 184037, 184051, 184053, 184054, 184069, 184072, 184092, 184114, 184115, 184125, 184126, 184144, 184294, 184304, 184305, 184317, 184318, 184319, 184322, 184324, 184325, 184326, 184327, 184328, 184329, 184331, 184332, 184384, 184385, 184386, 184387, 184388, 184389, 184390, 184391, 184392, 184393, 184397, 184401, 184416, 184449, 184458, 184466, 184478, 184500, 184501, 184566, 184567, 184591, 184594, 184596, 184597, 184612, 184632, 184666, 184667, 184668, 184669, 184670, 184671, 184672, 184673, 184674, 184685, 184740, 184793, 184802, 184816, 184867, 184926, 184974, 184976, 185015, 185018, 185102, 185103, 185104, 185105, 185119, 185125, 185127, 185131, 185132, 185137, 185138, 185146, 185169, 185292, 185298, 185322, 185394, 185395, 185396, 185397, 185398, 185399, 185400, 185401, 185402, 185403, 185404, 185405, 185406, 185407, 185408, 185409, 185410, 185411, 185412, 185413, 185414, 185415, 185416, 185417, 185418, 185419, 185420, 185421, 185422, 185423, 185424, 185425, 185426, 185427, 185428, 185429, 185430, 185431, 185432, 185439, 185440, 185441, 185442, 185443, 185444, 185445, 185446, 185447, 185478, 185479, 185480, 185481, 185482, 185483, 185485, 185486, 185487, 185488, 185489, 185490, 185501, 185550, 185882, 185883, 185884, 185885, 185886, 185887, 185888, 185892, 185905, 186031, 186032, 186043, 186044, 186053, 186054, 186083, 186135, 186136, 186152, 186153, 186179, 186180, 186181, 186182, 186218, 186234, 186243, 186251, 186261, 186262, 186272, 186273, 186278, 186283, 186287, 186406, 186407, 186472, 186607, 186614, 186615, 186618, 186679, 186720, 186728, 186858, 186972, 187115, 187457, 187697, 187986, 188013, 188108, 188216, 190040, 190047, 190069, 190071, 190084, 190103, 190217, 190334, 190335, 190475, 190487, 190488, 190589, 190598, 190599, 191028, 191029, 191030, 191310, 191440, 191460, 191461, 191462, 191463, 191464, 191465, 191466, 191467, 191468, 191469, 191470, 191471, 191472, 191474, 191475, 191476, 191477, 191478, 191479, 191480, 191481, 191482, 191510, 191665, 191679, 191680, 191682, 191683, 191684, 191731, 191733, 191741, 191768, 191769, 191886, 191887, 191888, 191889, 191890, 191891, 191892, 191893, 191894, 191895, 191896, 191897, 191898, 191899, 191900, 191901, 191902, 191903, 191904, 191941, 191943, 191945, 191946, 191947, 191948, 191949, 191955, 191956, 191957, 191988, 191989, 191990, 191991, 191992, 191993, 191994, 191995, 191997, 191998, 191999, 192059, 192068, 192069, 192070, 192083, 192084, 192085, 192086, 192087, 192093, 192094, 192095, 192096, 192097, 192098, 192099, 192102, 192103, 192109, 192110, 192111, 192112, 192113, 192114, 192116, 192117, 192121, 192122, 192219, 192220, 192235, 192242, 192267, 192268, 192274, 192406, 192440, 192443, 192444, 192449, 192450, 192498, 192582, 192583, 192584, 192600, 192601, 192625, 192627, 192628, 192629, 192686, 192697, 192823, 192825, 192836, 192842, 192843, 192844, 192845, 192846, 192847, 192848, 192849, 192850, 192851, 192852, 192853, 192854, 192855, 192856, 192882, 193071, 193080, 193081, 193082, 193083, 193084, 193085, 193088, 193172, 193178, 193184, 193205, 193422, 193423, 193604, 193782, 193783, 193784, 193785, 193786, 193787, 193904, 193909, 193910, 193911, 193912, 193913, 193914, 193926, 193928, 193930, 193931, 193942, 193985, 194011, 194019, 194020, 194025, 194026, 194054, 194082, 194115, 194148, 194232, 194253, 194255, 194261, 194262, 194264, 194274, 194276, 194300, 194316, 194360, 194361, 194362, 194363, 194364, 194365, 194416, 194437, 194441, 194442, 194462, 194481, 194484, 194519, 194541, 194542, 194543, 194553, 194554, 194555, 194556, 194557, 194558, 194559, 194560, 194565, 194569, 194625, 194630, 194631, 194634, 194635, 194636, 194637, 194663, 194664, 194665, 194666, 194675, 194704, 194705, 194706, 194707, 194715, 194716, 194739, 194740, 194741, 194742, 194743, 194744, 194745, 194746, 194747, 194748, 194749, 194750, 194752, 194767, 194773, 194774, 194775, 194776, 194904, 194905, 194907, 194910, 194911, 194912, 194913, 194914, 194915, 194959, 194960, 194962, 194963, 195063, 195066, 195067, 195068, 195069, 195087, 195090, 195119, 195121, 195130, 195131, 195132, 195133, 195144, 195145, 195149, 195150, 195151, 195152, 195153, 195154, 195155, 195156, 195157, 195158, 195164, 195191, 195192, 195194, 195195, 195196, 195197, 195198, 195199, 195200, 195212, 195215, 195222, 195232, 195235, 195237, 195276, 195303, 195307, 195313, 195314, 195315, 195316, 195320, 195326, 195327, 195331, 195332, 195333, 195334, 195335, 195336, 195337, 195338, 195339, 195340, 195341, 195342, 195343, 195371, 195376, 195377, 195391, 195392, 195393, 195396, 195398, 195402, 195403, 195410, 195411, 195412, 195413, 195414, 195415, 195416, 195417, 195418, 195430, 195437, 195439, 195491, 195664, 195701, 195702, 195703, 195705, 195706, 196399, 196400, 196401, 196404, 196412, 196413, 196472, 196841, 196846, 196849, 196850, 196851, 196854, 196866, 196867, 196868, 196869, 196879, 196880, 197333, 197338, 200296, 200297, 200305, 201295, 201296, 201297, 201298, 201608, 201609, 201697, 201905, 201925, 201931, 201932, 201933, 201968, 202113, 202216, 202217, 202434, 202591, 202600, 202601, 202602, 202616, 202618, 202624, 202625, 202626, 202627, 202628, 202629, 202630, 202631, 202632, 202633, 202634, 202635, 202636, 202637, 202638, 202639, 202640, 202641, 202642, 202643, 202644, 202645, 202646, 202648, 202665, 202666, 202667, 202668, 202669, 202670, 202671, 202672, 202673, 202674, 202675, 202676, 202677, 202678, 202679, 202680, 202681, 202682, 202683, 202684, 202685, 202686, 202687, 202688, 202689, 202690, 202691, 202692, 202693, 202694, 202695, 202696, 202711, 202712, 202724, 202802, 202803, 202804, 202805, 202811, 202812, 202813, 202814, 202816, 202817, 202833, 202834, 202835, 202839, 203030, 203049, 203050, 203051, 203052, 203053, 203054, 203057, 203058, 203059, 203060, 203112, 203451, 203839, 203840, 203841, 203843, 203844, 203845, 203846, 203847, 203848, 203849, 203851, 203852, 203856, 203857, 204135, 204181, 204328, 204346, 204347, 204350, 204358, 204395, 204398, 204423, 204588, 204589, 204590, 204598, 204612, 204614, 204615, 204616, 204617, 204618, 204619, 204635, 204637, 204638, 204643, 204678, 204679, 204680, 204681, 204684, 204685, 204689, 204694, 204695, 204696, 204698, 204706, 204707, 204708, 204719, 204940, 204941, 204986, 205005, 205006, 205007, 205009, 205010, 205011, 205012, 205013, 205014, 205015, 205018, 205024, 205025, 205028, 205029, 205030, 205031, 205032, 205033, 205040, 205041, 205046, 205068, 205076, 205090, 205435, 205436, 205437, 205438, 205439, 205440, 205441, 205442, 205443, 205444, 205445, 205446, 205447, 205448, 205449, 205450, 205451, 205452, 205453, 205454, 205455, 205456, 205457, 205458, 205459, 205460, 205461, 205462, 205463, 205464, 205465, 205466, 205467, 205468, 205469, 205528, 205529, 205530, 205531, 205532, 205533, 206576, 206586, 206589, 206590, 206598, 206693, 206738, 206843, 206844, 206845, 206885, 206896, 206897, 206910, 206986, 207092, 207093, 207206, 207210, 207215, 207280, 207329, 207330, 207391, 207417, 207474, 207479, 207487, 207529, 207631, 207633, 207636, 207646, 207687, 207688, 207689, 207703, 207704, 207736, 207941, 207965, 208001, 208054, 208069, 208072, 208078, 208125, 208147, 208186, 208198, 208200, 208210, 208211, 208212, 208213, 208214, 208215, 208218, 208219, 208220, 208221, 208222, 208223, 208227, 208394, 208395, 208420, 208444, 208449, 208454, 208676, 208685, 208700, 208712, 208772, 208833, 208864, 208963, 208965, 209064, 209065, 209076, 209094, 210282, 210542, 210545, 210807, 210915, 210930, 210943, 210948, 211126, 211138, 211180, 211181, 211287, 211288, 211321, 211338, 211342, 211344, 211345, 211346, 211349, 211361, 211476, 211513, 211541, 211559, 211598, 211707, 211712, 211796, 211860, 211898, 211900, 211901, 211911, 211912, 211914, 211915, 211916, 211917, 211919, 211920, 211921, 211922, 211923, 211924, 211925, 211926, 211927, 211928, 211929, 211930, 211931, 211932, 211933, 211934, 211935, 211936, 211937, 211938, 211939, 211940, 211941, 211942, 211943, 211944, 211945, 211946, 211947, 211948, 211949, 211950, 211951, 211952, 211954, 211957, 211965, 211990, 211993, 211996, 211997, 211998, 211999, 212000, 212001, 212002, 212043, 212044, 212045, 212046, 212157, 212159, 212185, 212190, 212191, 212192, 212193, 212209, 212224, 212228, 212283, 212284, 212285, 212286, 212287, 212288, 212489, 212496, 212499, 212500, 212503, 212506, 212693, 212735, 212767, 212768, 212859, 212887, 212892, 212897, 212964, 212965, 212966, 212967, 212970, 212971, 213004, 213143, 213249, 213286, 213287, 213301, 213317, 213318, 213320, 213321, 213322, 213323, 213324, 213328, 213329, 213331, 213332, 213333, 213410, 213412, 213422, 213436, 213438, 213461, 213502, 213685, 213690, 213691, 213694, 213695, 213698, 213699, 213701, 213717, 213803, 213811, 213846, 213852, 213885, 213887, 213976, 214062, 214102, 214103, 214104, 214139, 214140, 214141, 214142, 214144, 214145, 214146, 214169, 214220, 214234, 214254, 214255, 214256, 214257, 214266, 214275, 214276, 214346, 214347, 214348, 214349, 214378, 214440, 214499, 214515, 214545, 214546, 214614, 214630, 214631, 214635, 214636, 214639, 214640, 214723, 214740, 214748, 214749, 214756, 214758, 214791, 214833, 214840, 214864, 214890, 214891, 214892, 214897, 214898, 214902, 214903, 214904, 214905, 214966, 214978, 214979, 214987, 215068, 215069, 215074, 215075, 215081, 215185, 215187, 215317, 215683, 215684, 215686, 215687, 215692, 215693, 215768, 215797, 215831, 215843, 215844, 215849, 215850, 215859, 215860, 215882, 215915, 215967, 216162, 216163, 216307, 216477, 216679, 216706, 216883, 218070, 218209, 218210, 218211, 218212, 218213, 218214, 218215, 218216, 218217, 218218, 218219, 218220, 218221, 218222, 218223, 218226, 218227, 218228, 218229, 218230, 218231, 218232, 218233, 218234, 218235, 218236, 218237, 218238, 218239, 218240, 218241, 218242, 218243, 218244, 218245, 218246, 218247, 218248, 218249, 218250, 218251, 218252, 218253, 218254, 218255, 218256, 218257, 218258, 218259, 218260, 218261, 218262, 218263, 218264, 218265, 218266, 218267, 218268, 218269, 218270, 218271, 218272, 218273, 218274, 218275, 218276, 218277, 218278, 218279, 218280, 218281, 218282, 218283, 218284, 218285, 218286, 218287, 218288, 218289, 218290, 218291, 218292, 218293, 218294, 218295, 218296, 218297, 218298, 218299, 218300, 218301, 218302, 218303, 218304, 218305, 218306, 218307, 218308, 218309, 218310, 218311, 218312, 218313, 218314, 218315, 218316, 218317, 218318, 218319, 218320, 218321, 218322, 218323, 218324, 218325, 218326, 218327, 218328, 218329, 218330, 218331, 218332, 218333, 218334, 218335, 218336, 218337, 218338, 218339, 218340, 218341, 218342, 218343, 218344, 218345, 218346, 218347, 218348, 218349, 218350, 218351, 218352, 218353, 218354, 218355, 218356, 218357, 218358, 218359, 218360, 218361, 218362, 218363, 218364, 218365, 218366, 218367, 218368, 218369, 218370, 218951, 219095, 219099, 219227, 219228, 220069, 220087, 220165, 220174, 220906, 220907, 221037, 222794);
+UPDATE `gameobject_template` SET `IconName`='GatherHerbs', `Data6`=0, `questItem1`=71035, `VerifiedBuild`=17538 WHERE `entry`=209059; -- Blood Nettle
+UPDATE `gameobject_template` SET `IconName`='Inspect', `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209870; -- STAY OUT - NO VISITORS
+UPDATE `gameobject_template` SET `IconName`='Interact', `Data5`=16675, `VerifiedBuild`=17538 WHERE `entry`=214249; -- Great Banquet of the Oven
+UPDATE `gameobject_template` SET `IconName`='inspect', `VerifiedBuild`=17538 WHERE `entry`=214572; -- Tablet of Thunder
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `Data14`=19676, `questItem1`=77432, `VerifiedBuild`=17538 WHERE `entry`=210085; -- Ancient Sutra
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `Data14`=19676, `questItem1`=77432, `VerifiedBuild`=17538 WHERE `entry`=210086; -- Ancient Sutra
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `Data14`=19676, `questItem1`=77452, `VerifiedBuild`=17538 WHERE `entry`=210087; -- Defender's Arrow
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `Data14`=19676, `questItem1`=80227, `VerifiedBuild`=17538 WHERE `entry`=211017; -- Root Vegetable
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `Data14`=19676, `questItem1`=83129, `VerifiedBuild`=17538 WHERE `entry`=214479; -- Shiny Egg
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `Data14`=19676, `questItem1`=83129, `VerifiedBuild`=17538 WHERE `entry`=214480; -- Shiny Egg
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `Data14`=19676, `questItem1`=83129, `VerifiedBuild`=17538 WHERE `entry`=214481; -- Shiny Egg
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `Data14`=19676, `questItem1`=83130, `VerifiedBuild`=17538 WHERE `entry`=212318; -- Shan'ze Tablet
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `Data14`=19676, `questItem1`=83130, `VerifiedBuild`=17538 WHERE `entry`=212319; -- Shan'ze Tablet
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `Data14`=19676, `questItem1`=85211, `VerifiedBuild`=17538 WHERE `entry`=212987; -- Spiny Starfish
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `Data14`=19676, `questItem1`=85211, `VerifiedBuild`=17538 WHERE `entry`=212988; -- Spiny Starfish
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `Data14`=19676, `questItem1`=85573, `VerifiedBuild`=17538 WHERE `entry`=213267; -- Dreadshade
+UPDATE `gameobject_template` SET `castBarCaption`='Collecting', `Data14`=19676, `questItem1`=86431, `VerifiedBuild`=17538 WHERE `entry`=213795; -- Stormstout Secrets
+UPDATE `gameobject_template` SET `castBarCaption`='Deactivating', `Data6`=1, `Data10`=127683, `Data13`=1, `Data14`=33516, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=214477; -- Deactivate Final Spirit Wall
+UPDATE `gameobject_template` SET `castBarCaption`='Digging', `Data14`=35059, `Data17`=15980, `questItem1`=80817, `VerifiedBuild`=17538 WHERE `entry`=211420; -- Lump of Sand
+UPDATE `gameobject_template` SET `castBarCaption`='Fixing', `Data6`=65969, `VerifiedBuild`=17538 WHERE `entry`=214379; -- Broken Incense Burner
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `Data14`=24982, `questItem1`=81261, `VerifiedBuild`=17538 WHERE `entry`=211521; -- Blackmane Booty Barrel
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `Data14`=24982, `questItem1`=84779, `VerifiedBuild`=17538 WHERE `entry`=212902; -- Solidified Amber
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `Data5`=1, `Data10`=121264, `Data14`=24982, `Data17`=1, `Data22`=16699, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=212131; -- Niuzao Food Supply
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `Data5`=1, `Data10`=121266, `Data14`=24982, `Data22`=16699, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=212132; -- Niuzao Food Supply
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `Data5`=1, `Data10`=121269, `Data14`=24982, `Data22`=16699, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=212133; -- Niuzao Food Supply
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `Data6`=0, `Data8`=29756, `Data14`=24982, `questItem1`=75214, `VerifiedBuild`=17538 WHERE `entry`=209825; -- Tidemist Cap
+UPDATE `gameobject_template` SET `castBarCaption`='Gathering', `Data8`=30807, `Data14`=24982, `questItem1`=81269, `VerifiedBuild`=17538 WHERE `entry`=211526; -- Waterfall-Polished Stone
+UPDATE `gameobject_template` SET `castBarCaption`='Grabbing', `Data5`=1, `Data6`=0, `Data10`=102879, `Data14`=37379, `Data22`=12776, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=209551; -- Boiling Cauldron
+UPDATE `gameobject_template` SET `castBarCaption`='Grabbing', `Data7`=210857, `Data14`=37379, `questItem1`=79039, `VerifiedBuild`=17538 WHERE `entry`=210858; -- Dry Fire Wood
+UPDATE `gameobject_template` SET `castBarCaption`='Honoring', `Data10`=141464, `Data14`=57770, `Data22`=21636, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=220365; -- Seer Hao Pham Roo's Leftover Rope
+UPDATE `gameobject_template` SET `castBarCaption`='Looting', `Data14`=37733, `VerifiedBuild`=17538 WHERE `entry`=211326; -- Tap Tool
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `Data13`=1, `Data14`=21400, `Data17`=15343, `Data26`=147919, `Data30`=49475, `VerifiedBuild`=17538 WHERE `entry`=223098; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `Data13`=1, `Data14`=21400, `Data17`=15343, `Data26`=147953, `Data30`=49476, `VerifiedBuild`=17538 WHERE `entry`=223114; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `Data13`=1, `Data14`=21400, `Data17`=15343, `Data26`=147956, `Data28`=1, `Data30`=49407, `VerifiedBuild`=17538 WHERE `entry`=221617; -- Skull-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `Data13`=1, `Data14`=21400, `Data17`=15343, `Data26`=147957, `Data30`=49407, `VerifiedBuild`=17538 WHERE `entry`=221671; -- Sturdy Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `Data13`=1, `Data14`=21400, `Data17`=15343, `Data26`=147958, `Data30`=49407, `VerifiedBuild`=17538 WHERE `entry`=223116; -- Sturdy Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `Data13`=1, `Data14`=21400, `Data17`=15343, `Data26`=147959, `Data30`=49407, `VerifiedBuild`=17538 WHERE `entry`=223117; -- Sturdy Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `Data13`=1, `Data14`=21400, `Data17`=15343, `Data26`=147962, `Data30`=49408, `VerifiedBuild`=17538 WHERE `entry`=221672; -- Smoldering Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `Data13`=1, `Data14`=21400, `Data17`=15343, `Data26`=147964, `Data30`=49408, `VerifiedBuild`=17538 WHERE `entry`=223119; -- Smoldering Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `Data13`=1, `Data14`=21400, `Data17`=15343, `Data26`=148393, `Data30`=49406, `VerifiedBuild`=17538 WHERE `entry`=223204; -- Moss-Covered Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `Data13`=1, `Data14`=21400, `Data17`=15343, `Data26`=151937, `Data28`=1, `Data30`=49413, `VerifiedBuild`=17538 WHERE `entry`=220908; -- Mist-Covered Treasure Chest
+UPDATE `gameobject_template` SET `castBarCaption`='Opening', `Data13`=1, `Data14`=21400, `Data17`=22051, `Data26`=81040, `Data28`=1, `Data29`=51, `Data30`=48337, `VerifiedBuild`=17538 WHERE `entry`=220832; -- Sunken Treasure
+UPDATE `gameobject_template` SET `castBarCaption`='Placing', `Data10`=124340, `Data14`=35196, `Data22`=17314, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213304; -- Sra'thik Idol
+UPDATE `gameobject_template` SET `castBarCaption`='Placing', `Data10`=124370, `Data14`=35196, `Data22`=17314, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213309; -- Sra'thik Idol
+UPDATE `gameobject_template` SET `castBarCaption`='Placing', `Data10`=124371, `Data14`=35196, `Data22`=17314, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213306; -- Sra'thik Idol
+UPDATE `gameobject_template` SET `castBarCaption`='Placing', `Data10`=124391, `Data14`=35196, `Data22`=17315, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213307; -- Sra'thik Siege Weapon
+UPDATE `gameobject_template` SET `castBarCaption`='Placing', `Data10`=124392, `Data14`=35196, `Data22`=17315, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213308; -- Sra'thik Siege Weapon
+UPDATE `gameobject_template` SET `castBarCaption`='Placing', `Data10`=124393, `Data14`=35196, `Data22`=17315, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213310; -- Sra'thik Siege Weapon
+UPDATE `gameobject_template` SET `castBarCaption`='Placing', `Data10`=124394, `Data14`=35196, `Data22`=17315, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213311; -- Sra'thik Siege Weapon
+UPDATE `gameobject_template` SET `castBarCaption`='Retrieving', `Data14`=23645, `questItem1`=87790, `VerifiedBuild`=17538 WHERE `entry`=214394; -- Ancient Guo-Lai Artifact
+UPDATE `gameobject_template` SET `castBarCaption`='Unlocking', `Data10`=115452, `Data14`=24815, `Data22`=15966, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=211365; -- Ball and Chain
+UPDATE `gameobject_template` SET `Data10`=1, `VerifiedBuild`=17538 WHERE `entry`=180376; -- Berserk Buff
+UPDATE `gameobject_template` SET `Data10`=1, `VerifiedBuild`=17538 WHERE `entry`=184966; -- Berserk Buff
+UPDATE `gameobject_template` SET `Data10`=1, `VerifiedBuild`=17538 WHERE `entry`=184972; -- Berserk Buff
+UPDATE `gameobject_template` SET `Data10`=115716, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=211445; -- Spare Raft
+UPDATE `gameobject_template` SET `Data10`=118687, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=211654; -- The Refreshing Bucket
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213571; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213572; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213573; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213574; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213575; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213576; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213577; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213578; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213579; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213580; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213581; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213582; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213583; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213584; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213585; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213586; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213587; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213588; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213589; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213590; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=213591; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215570; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215571; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215572; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215573; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215574; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215575; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215576; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215577; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215578; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215579; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215580; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215581; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215582; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215583; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=122122, `Data11`=1, `Data13`=1, `Data22`=16749, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215584; -- Shan'ze Cage
+UPDATE `gameobject_template` SET `Data10`=123164, `Data17`=1, `Data18`=1, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=212779; -- Defiled Yaungol Remains
+UPDATE `gameobject_template` SET `Data10`=123531, `Data22`=17063, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=212933; -- Sonar Tower
+UPDATE `gameobject_template` SET `Data10`=126662, `Data13`=1, `Data22`=17750, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=214281; -- Kypari Ik Beacon
+UPDATE `gameobject_template` SET `Data10`=129446, `Data22`=17574, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=211597; -- Shrine of the Seeker's Body
+UPDATE `gameobject_template` SET `Data10`=129448, `Data22`=17574, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=211601; -- Shrine of the Seeker's Breath
+UPDATE `gameobject_template` SET `Data10`=129452, `Data22`=17574, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=211602; -- Shrine of the Seeker's Heart
+UPDATE `gameobject_template` SET `Data10`=131450, `Data22`=19109, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215700; -- Northeast Feeder
+UPDATE `gameobject_template` SET `Data10`=131450, `Data22`=19109, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215703; -- North Feeder
+UPDATE `gameobject_template` SET `Data10`=131450, `Data22`=19109, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215761; -- East Feeder
+UPDATE `gameobject_template` SET `Data10`=131450, `Data22`=19109, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215762; -- Central Feeder
+UPDATE `gameobject_template` SET `Data10`=134254, `Data22`=19761, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=216427; -- Hammer of Fellowship
+UPDATE `gameobject_template` SET `Data10`=147279, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=221615; -- Spirit Light
+UPDATE `gameobject_template` SET `Data13`=1, `VerifiedBuild`=17538 WHERE `entry`=211313; -- Brew Tap
+UPDATE `gameobject_template` SET `Data13`=1, `VerifiedBuild`=17538 WHERE `entry`=211314; -- Brew Tap
+UPDATE `gameobject_template` SET `Data13`=1, `VerifiedBuild`=17538 WHERE `entry`=211315; -- Brew Tap
+UPDATE `gameobject_template` SET `Data20`=70, `questItem1`=72663, `VerifiedBuild`=17538 WHERE `entry`=184849; -- Cache of the Legion
+UPDATE `gameobject_template` SET `Data20`=80, `VerifiedBuild`=17538 WHERE `entry`=194201; -- Rare Cache of Winter
+UPDATE `gameobject_template` SET `Data20`=80, `VerifiedBuild`=17538 WHERE `entry`=194308; -- Cache of Winter
+UPDATE `gameobject_template` SET `Data20`=80, `VerifiedBuild`=17538 WHERE `entry`=194314; -- Cache of Storms
+UPDATE `gameobject_template` SET `Data20`=80, `VerifiedBuild`=17538 WHERE `entry`=194331; -- Freya's Gift
+UPDATE `gameobject_template` SET `Data20`=80, `VerifiedBuild`=17538 WHERE `entry`=194822; -- Gift of the Observer
+UPDATE `gameobject_template` SET `Data20`=80, `VerifiedBuild`=17538 WHERE `entry`=194956; -- Cache of Innovation
+UPDATE `gameobject_template` SET `Data20`=80, `VerifiedBuild`=17538 WHERE `entry`=195047; -- Cache of Living Stone
+UPDATE `gameobject_template` SET `Data23`=600, `Data24`=600, `VerifiedBuild`=17538 WHERE `entry`=203078; -- Nerubian Archaeology Find
+UPDATE `gameobject_template` SET `Data23`=600, `Data24`=600, `VerifiedBuild`=17538 WHERE `entry`=207187; -- Orc Archaeology Find
+UPDATE `gameobject_template` SET `Data23`=600, `Data24`=600, `VerifiedBuild`=17538 WHERE `entry`=207188; -- Draenei Archaeology Find
+UPDATE `gameobject_template` SET `Data23`=65, `Data24`=115, `VerifiedBuild`=17538 WHERE `entry`=3726; -- Earthroot
+UPDATE `gameobject_template` SET `Data4`=1, `VerifiedBuild`=17538 WHERE `entry`=213747; -- NPC Fishing Bobber Ducky
+UPDATE `gameobject_template` SET `Data4`=1, `Data16`=1, `VerifiedBuild`=17538 WHERE `entry`=210857; -- Dry Fire Wood
+UPDATE `gameobject_template` SET `Data4`=1, `Data16`=1, `VerifiedBuild`=17538 WHERE `entry`=210981; -- Melon Trap
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data17`=17797, `Data18`=86, `Data19`=8, `Data26`=127188, `VerifiedBuild`=17538 WHERE `entry`=213651; -- Equipment Locker
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data17`=17814, `Data18`=89, `Data19`=8, `Data26`=127211, `VerifiedBuild`=17538 WHERE `entry`=213961; -- Abandoned Crate of Goods
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data18`=85, `Data19`=8, `Data26`=127181, `VerifiedBuild`=17538 WHERE `entry`=213742; -- Hammer of Ten Thunders
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data18`=86, `Data19`=6, `Data26`=127179, `VerifiedBuild`=17538 WHERE `entry`=213741; -- Ancient Jinyu Staff
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data18`=86, `Data19`=8, `Data26`=127187, `VerifiedBuild`=17538 WHERE `entry`=213653; -- Pandaren Fishing Spear
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data18`=87, `Data19`=6, `Data26`=127190, `VerifiedBuild`=17538 WHERE `entry`=214439; -- Barrel of Banana Infused Rum
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data18`=87, `Data19`=8, `Data26`=127197, `VerifiedBuild`=17538 WHERE `entry`=213765; -- Tablet of Ren Yun
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data18`=89, `Data19`=8, `Data26`=127214, `VerifiedBuild`=17538 WHERE `entry`=213962; -- Wind-Reaver's Dagger of Quick Strikes
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data18`=89, `Data19`=8, `Data26`=127217, `VerifiedBuild`=17538 WHERE `entry`=213966; -- Amber Encased Necklace
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data18`=89, `Data19`=8, `Data26`=132607, `VerifiedBuild`=17538 WHERE `entry`=213971; -- Swarmkeeper's Medallion
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data6`=0, `Data18`=85, `Data19`=1, `Data23`=600, `Data24`=615, `VerifiedBuild`=17538 WHERE `entry`=209329; -- Rich Kyparite Deposit
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data6`=0, `Data18`=85, `Data19`=1, `Data23`=605, `Data24`=620, `VerifiedBuild`=17538 WHERE `entry`=209330; -- Rich Trillium Vein
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data7`=212348, `Data18`=85, `Data19`=1, `Data23`=600, `Data24`=600, `questItem1`=79049, `VerifiedBuild`=17538 WHERE `entry`=211163; -- Pandaren Archaeology Find
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data7`=212348, `Data18`=85, `Data19`=1, `Data23`=600, `Data24`=600, `questItem1`=79049, `VerifiedBuild`=17538 WHERE `entry`=211174; -- Mogu Archaeology Find
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data7`=212348, `Data18`=85, `Data19`=1, `Data23`=600, `Data24`=600, `questItem1`=79049, `VerifiedBuild`=17538 WHERE `entry`=218950; -- Mantid Archaeology Find
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data7`=215404, `Data18`=85, `Data19`=1, `Data23`=575, `Data24`=600, `VerifiedBuild`=17538 WHERE `entry`=215403; -- Sha-Touched Herb
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=1, `Data7`=215404, `Data18`=85, `Data19`=1, `Data23`=575, `Data24`=600, `VerifiedBuild`=17538 WHERE `entry`=215411; -- Sha-Touched Herb
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=16313, `Data6`=1, `VerifiedBuild`=17538 WHERE `entry`=211642; -- Lucky Golden Coin
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=17058, `Data6`=1, `VerifiedBuild`=17538 WHERE `entry`=212926; -- Stone Monolith
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=17059, `Data6`=1, `VerifiedBuild`=17538 WHERE `entry`=212925; -- Stone Monolith
+UPDATE `gameobject_template` SET `Data4`=1, `Data5`=17060, `Data6`=1, `VerifiedBuild`=17538 WHERE `entry`=212924; -- Stone Monolith
+UPDATE `gameobject_template` SET `Data4`=1, `Data7`=2, `Data9`=1, `Data14`=1, `Data16`=1, `VerifiedBuild`=17538 WHERE `entry`=214842; -- Ancient Rune of Striking
+UPDATE `gameobject_template` SET `Data4`=1, `Data7`=4, `VerifiedBuild`=17538 WHERE `entry`=214541; -- Kunchong Trap
+UPDATE `gameobject_template` SET `Data4`=1628, `VerifiedBuild`=17538 WHERE `entry`=211423; -- Shipwreck Debris
+UPDATE `gameobject_template` SET `Data4`=1628, `VerifiedBuild`=17538 WHERE `entry`=218632; -- Large Swarm of Panicked Paddlefish
+UPDATE `gameobject_template` SET `Data4`=1628, `VerifiedBuild`=17538 WHERE `entry`=218633; -- Brew Frenzied Emperor Salmon
+UPDATE `gameobject_template` SET `Data4`=1628, `VerifiedBuild`=17538 WHERE `entry`=218634; -- Large Pool of Brew Frenzied Emperor Salmon
+UPDATE `gameobject_template` SET `Data4`=1628, `VerifiedBuild`=17538 WHERE `entry`=218652; -- Glimmering Jewel Danio Pool
+UPDATE `gameobject_template` SET `Data4`=2, `Data16`=1, `VerifiedBuild`=17538 WHERE `entry`=211428; -- Riverblade Spike Trap
+UPDATE `gameobject_template` SET `Data4`=217, `Data5`=11471, `Data7`=6, `VerifiedBuild`=17538 WHERE `entry`=214442; -- Instance Portal (Raid 4 Difficulties)
+UPDATE `gameobject_template` SET `Data4`=217, `Data7`=5, `VerifiedBuild`=17538 WHERE `entry`=214524; -- Instance Portal (Raid 10/25 No Heroic)
+UPDATE `gameobject_template` SET `Data4`=5676324, `VerifiedBuild`=17538 WHERE `entry`=212906; -- Doodad_bonfirenorthrend_001
+UPDATE `gameobject_template` SET `Data4`=5687288, `VerifiedBuild`=17538 WHERE `entry`=214970; -- Brazier
+UPDATE `gameobject_template` SET `Data4`=5687288, `VerifiedBuild`=17538 WHERE `entry`=214971; -- Brazier
+UPDATE `gameobject_template` SET `Data4`=5687288, `VerifiedBuild`=17538 WHERE `entry`=214972; -- Brazier
+UPDATE `gameobject_template` SET `Data4`=5687288, `VerifiedBuild`=17538 WHERE `entry`=214973; -- Brazier
+UPDATE `gameobject_template` SET `Data4`=5705884, `VerifiedBuild`=17538 WHERE `entry`=212325; -- Doodad_hz_camp_fire_001
+UPDATE `gameobject_template` SET `Data5`=-1, `VerifiedBuild`=17538 WHERE `entry`=218203; -- Doodad_SubwayCar02
+UPDATE `gameobject_template` SET `Data5`=-1, `VerifiedBuild`=17538 WHERE `entry`=218204; -- Doodad_SubwayCar09
+UPDATE `gameobject_template` SET `Data5`=-1, `VerifiedBuild`=17538 WHERE `entry`=218205; -- Doodad_SubwayCar11
+UPDATE `gameobject_template` SET `Data5`=-1, `VerifiedBuild`=17538 WHERE `entry`=218206; -- Doodad_SubwayCar12
+UPDATE `gameobject_template` SET `Data5`=-1, `VerifiedBuild`=17538 WHERE `entry`=218208; -- Doodad_SubwayCar01
+UPDATE `gameobject_template` SET `Data5`=-1, `Data6`=58633, `Data8`=71667, `Data10`=130300, `VerifiedBuild`=17538 WHERE `entry`=218207; -- Doodad_SubwayCar13
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194370; -- Tower of Frost
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194371; -- Tower of Flames
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194375; -- Tower of Life
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194377; -- Tower of Storms
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194398; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194399; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194400; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194401; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194402; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194403; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194404; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194405; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194406; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194407; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194408; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194409; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194410; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194411; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194412; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194413; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194414; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194415; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=194506; -- Storm Beacon
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=195494; -- Horde Gate
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=195495; -- Horde Gate
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=195496; -- Horde Gate
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=195698; -- Alliance Gate
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=195699; -- Alliance Gate
+UPDATE `gameobject_template` SET `Data5`=0, `VerifiedBuild`=17538 WHERE `entry`=195700; -- Alliance Gate
+UPDATE `gameobject_template` SET `Data5`=1, `Data10`=112954, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=211319; -- Relief Bucket
+UPDATE `gameobject_template` SET `Data5`=1, `Data10`=118681, `Data22`=19282, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=211653; -- Chair
+UPDATE `gameobject_template` SET `Data5`=1, `Data10`=130231, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215134; -- Applebloom Cider
+UPDATE `gameobject_template` SET `Data5`=1, `Data10`=130806, `Data22`=16752, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=212324; -- Mogu Burial Urn
+UPDATE `gameobject_template` SET `Data5`=1, `Data10`=131413, `Data22`=19101, `VerifiedBuild`=17538 WHERE `entry`=215695; -- Barrel of Honeybrew
+UPDATE `gameobject_template` SET `Data5`=1, `Data10`=149345, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=223538; -- Riverspeaker's Trident
+UPDATE `gameobject_template` SET `Data5`=1, `Data22`=19763, `VerifiedBuild`=17538 WHERE `entry`=216360; -- Untamed Amber
+UPDATE `gameobject_template` SET `Data5`=1, `Data8`=19442, `Data11`=1, `Data12`=1000, `VerifiedBuild`=17538 WHERE `entry`=212091; -- Orb of Power
+UPDATE `gameobject_template` SET `Data5`=1, `Data8`=19442, `Data11`=1, `Data12`=1000, `VerifiedBuild`=17538 WHERE `entry`=212092; -- Orb of Power
+UPDATE `gameobject_template` SET `Data5`=1, `Data8`=19442, `Data11`=1, `Data12`=1000, `VerifiedBuild`=17538 WHERE `entry`=212093; -- Orb of Power
+UPDATE `gameobject_template` SET `Data5`=1, `Data8`=19442, `Data11`=1, `Data12`=1000, `VerifiedBuild`=17538 WHERE `entry`=212094; -- Orb of Power
+UPDATE `gameobject_template` SET `Data5`=12774, `Data6`=1, `VerifiedBuild`=17538 WHERE `entry`=209550; -- Blushleaf Cluster
+UPDATE `gameobject_template` SET `Data5`=17004, `Data6`=1, `VerifiedBuild`=17538 WHERE `entry`=212900; -- Cho's Teapot
+UPDATE `gameobject_template` SET `Data5`=17580, `Data6`=1, `VerifiedBuild`=17538 WHERE `entry`=213191; -- Bird Feed
+UPDATE `gameobject_template` SET `Data5`=22184, `VerifiedBuild`=17538 WHERE `entry`=194086; -- Seaforium Bomb
+UPDATE `gameobject_template` SET `Data5`=5681380, `VerifiedBuild`=17538 WHERE `entry`=213697; -- Bench
+UPDATE `gameobject_template` SET `Data5`=5681380, `VerifiedBuild`=17538 WHERE `entry`=213703; -- Banner
+UPDATE `gameobject_template` SET `Data5`=5687288, `VerifiedBuild`=17538 WHERE `entry`=214954; -- Doodad_hz_cage_006
+UPDATE `gameobject_template` SET `Data5`=5687288, `VerifiedBuild`=17538 WHERE `entry`=214955; -- Doodad_hz_cage_007
+UPDATE `gameobject_template` SET `Data5`=5687288, `VerifiedBuild`=17538 WHERE `entry`=214956; -- Doodad_hz_cage_008
+UPDATE `gameobject_template` SET `Data5`=5687288, `VerifiedBuild`=17538 WHERE `entry`=214957; -- Doodad_hz_cage_009
+UPDATE `gameobject_template` SET `Data5`=5687288, `VerifiedBuild`=17538 WHERE `entry`=214958; -- Doodad_hz_cage_010
+UPDATE `gameobject_template` SET `Data5`=5687288, `VerifiedBuild`=17538 WHERE `entry`=214959; -- Doodad_hz_cage_011
+UPDATE `gameobject_template` SET `Data5`=5687288, `VerifiedBuild`=17538 WHERE `entry`=214960; -- Doodad_hz_cage_012
+UPDATE `gameobject_template` SET `Data5`=5705884, `VerifiedBuild`=17538 WHERE `entry`=211527; -- Doodad_Mogu_Tile_Lightning001
+UPDATE `gameobject_template` SET `Data5`=5705884, `VerifiedBuild`=17538 WHERE `entry`=211528; -- Doodad_Mogu_Tile_Lightning001
+UPDATE `gameobject_template` SET `Data5`=5705884, `VerifiedBuild`=17538 WHERE `entry`=212376; -- Doodad_PA_brazier_30
+UPDATE `gameobject_template` SET `Data5`=923, `VerifiedBuild`=17538 WHERE `entry`=215112; -- Dalaran
+UPDATE `gameobject_template` SET `Data5`=923, `VerifiedBuild`=17538 WHERE `entry`=215113; -- Shattrath
+UPDATE `gameobject_template` SET `Data6`=0 WHERE `entry` > 210000 AND `VerifiedBuild`=-18019;
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=180701; -- Hay Bale 2
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209628; -- Mogu Altar
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209779; -- Meditation Candle
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209786; -- Pungent Ritual Candle Prop
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209787; -- Chipped Ritual Bowl Prop
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209788; -- Jade Cong Prop
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209814; -- Broken Pottery
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209815; -- Broken Pottery
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209845; -- Mouthwatering Brew
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209850; -- Meditation Candle
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209851; -- Meditation Candle
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209852; -- Meditation Candle
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209853; -- Soothing Incense
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209855; -- Slicky String
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209918; -- Anvil
+UPDATE `gameobject_template` SET `Data6`=0, `VerifiedBuild`=17538 WHERE `entry`=209919; -- Forge
+UPDATE `gameobject_template` SET `Data6`=0, `Data9`=1, `VerifiedBuild`=17538 WHERE `entry`=209578; -- Unstable Solenoid
+UPDATE `gameobject_template` SET `Data6`=0, `questItem1`=74760, `VerifiedBuild`=17538 WHERE `entry`=209700; -- Chipped Ritual Bowl
+UPDATE `gameobject_template` SET `Data6`=0, `questItem1`=74761, `VerifiedBuild`=17538 WHERE `entry`=209701; -- Pungent Ritual Candle
+UPDATE `gameobject_template` SET `Data6`=0, `questItem1`=74762, `VerifiedBuild`=17538 WHERE `entry`=209699; -- Jade Cong
+UPDATE `gameobject_template` SET `Data6`=0, `questItem1`=76209, `VerifiedBuild`=17538 WHERE `entry`=209863; -- Chunk of Jade
+UPDATE `gameobject_template` SET `Data6`=1, `VerifiedBuild`=17538 WHERE `entry`=220360; -- Remote Viewing Console
+UPDATE `gameobject_template` SET `Data6`=1, `Data10`=121798, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=212229; -- Shado-Pan Rope
+UPDATE `gameobject_template` SET `Data6`=1, `Data10`=130559, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=215393; -- Shado-Pan Rope
+UPDATE `gameobject_template` SET `Data6`=10000, `Data8`=1, `Data9`=3000, `VerifiedBuild`=17538 WHERE `entry`=184142; -- Netherstorm Flag
+UPDATE `gameobject_template` SET `Data6`=16159, `VerifiedBuild`=17538 WHERE `entry`=211514; -- Mist-Shaman's Torch
+UPDATE `gameobject_template` SET `Data6`=30, `Data10`=108905, `Data22`=13510, `Data23`=1, `VerifiedBuild`=17538 WHERE `entry`=210116; -- Bell of a Thousand Whispers
+UPDATE `gameobject_template` SET `Data6`=32010, `Data17`=16591, `questItem1`=82764, `VerifiedBuild`=17538 WHERE `entry`=211967; -- King's Coffer
+UPDATE `gameobject_template` SET `Data7`=1, `VerifiedBuild`=17538 WHERE `entry`=220867; -- Really Skunky Beer
+UPDATE `gameobject_template` SET `Data7`=5793, `VerifiedBuild`=17538 WHERE `entry`=216719; -- Mogu Crypt Door
+UPDATE `gameobject_template` SET `Data8`=1, `VerifiedBuild`=17538 WHERE `entry`=211132; -- Sliding Door
+UPDATE `gameobject_template` SET `Data8`=1, `VerifiedBuild`=17538 WHERE `entry`=211133; -- Sliding Door
+UPDATE `gameobject_template` SET `Data8`=1, `VerifiedBuild`=17538 WHERE `entry`=211134; -- Sliding Door
+UPDATE `gameobject_template` SET `Data8`=1, `VerifiedBuild`=17538 WHERE `entry`=211135; -- Sliding Door
+UPDATE `gameobject_template` SET `Data8`=1, `VerifiedBuild`=17538 WHERE `entry`=211136; -- Sliding Door
+UPDATE `gameobject_template` SET `Data8`=1, `VerifiedBuild`=17538 WHERE `entry`=211137; -- Sliding Door
+UPDATE `gameobject_template` SET `Data8`=1, `Data9`=1, `VerifiedBuild`=17538 WHERE `entry`=212181; -- Ancient Statue
+UPDATE `gameobject_template` SET `Data8`=31119, `Data16`=1, `Data17`=18153, `questItem1`=84762, `VerifiedBuild`=17538 WHERE `entry`=212877; -- Highly Explosive Yaungol Oil Barrel
+UPDATE `gameobject_template` SET `Data9`=1, `VerifiedBuild`=17538 WHERE `entry`=214473; -- Spirit Wall
+UPDATE `gameobject_template` SET `Data9`=2, `Data13`=1, `Data17`=1, `Data19`=13123, `Data22`=12861, `VerifiedBuild`=17538 WHERE `entry`=212182; -- Ancient Statue Torso
+UPDATE `gameobject_template` SET `Data9`=2, `Data13`=1, `Data17`=1, `Data19`=13125, `VerifiedBuild`=17538 WHERE `entry`=212183; -- Ancient Statue Arm
+UPDATE `gameobject_template` SET `Data9`=2, `Data13`=1, `Data17`=1, `Data19`=13126, `VerifiedBuild`=17538 WHERE `entry`=212184; -- Ancient Statue Shoulder
+UPDATE `gameobject_template` SET `Data9`=2, `Data13`=1, `Data17`=1, `Data19`=13127, `VerifiedBuild`=17538 WHERE `entry`=212186; -- Ancient Statue Head
diff --git a/src/server/game/Accounts/AccountMgr.cpp b/src/server/game/Accounts/AccountMgr.cpp
index a8387804957..d6985e2a1ad 100644
--- a/src/server/game/Accounts/AccountMgr.cpp
+++ b/src/server/game/Accounts/AccountMgr.cpp
@@ -81,7 +81,7 @@ AccountOpResult AccountMgr::DeleteAccount(uint32 accountId)
{
do
{
- ObjectGuid guid(HighGuid::Player, (*result)[0].GetUInt64());
+ ObjectGuid guid = ObjectGuid::Create<HighGuid::Player>((*result)[0].GetUInt64());
// Kick if player is online
if (Player* p = ObjectAccessor::FindConnectedPlayer(guid))
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 9add2954ca5..0ee49095d72 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -735,7 +735,7 @@ void AchievementMgr<Guild>::LoadFromDB(PreparedQueryResult achievementResult, Pr
ca.date = time_t(fields[1].GetUInt32());
Tokenizer guids(fields[2].GetString(), ' ');
for (uint32 i = 0; i < guids.size(); ++i)
- ca.guids.insert(ObjectGuid(HighGuid::Player, uint64(strtoull(guids[i], nullptr, 10))));
+ ca.guids.insert(ObjectGuid::Create<HighGuid::Player>(uint64(strtoull(guids[i], nullptr, 10))));
ca.changed = false;
@@ -773,7 +773,7 @@ void AchievementMgr<Guild>::LoadFromDB(PreparedQueryResult achievementResult, Pr
CriteriaProgress& progress = m_criteriaProgress[id];
progress.counter = counter;
progress.date = date;
- progress.CompletedGUID = ObjectGuid(HighGuid::Player, guid);
+ progress.CompletedGUID = ObjectGuid::Create<HighGuid::Player>(guid);
progress.changed = false;
} while (criteriaResult->NextRow());
}
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
index 6c73a4ad680..6639799a912 100644
--- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
+++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
@@ -92,7 +92,7 @@ void AuctionHouseMgr::SendAuctionWonMail(AuctionEntry* auction, SQLTransaction&
return;
uint32 bidderAccId = 0;
- ObjectGuid bidderGuid(HighGuid::Player, auction->bidder);
+ ObjectGuid bidderGuid = ObjectGuid::Create<HighGuid::Player>(auction->bidder);
Player* bidder = ObjectAccessor::FindConnectedPlayer(bidderGuid);
// data for gm.log
std::string bidderName;
@@ -115,7 +115,7 @@ void AuctionHouseMgr::SendAuctionWonMail(AuctionEntry* auction, SQLTransaction&
if (logGmTrade)
{
- ObjectGuid ownerGuid = ObjectGuid(HighGuid::Player, auction->owner);
+ ObjectGuid ownerGuid = ObjectGuid::Create<HighGuid::Player>(auction->owner);
std::string ownerName;
if (!sObjectMgr->GetPlayerNameByGUID(ownerGuid, ownerName))
ownerName = sObjectMgr->GetTrinityStringForDBCLocale(LANG_UNKNOWN);
@@ -156,7 +156,7 @@ void AuctionHouseMgr::SendAuctionWonMail(AuctionEntry* auction, SQLTransaction&
void AuctionHouseMgr::SendAuctionSalePendingMail(AuctionEntry* auction, SQLTransaction& trans)
{
- ObjectGuid owner_guid(HighGuid::Player, auction->owner);
+ ObjectGuid owner_guid = ObjectGuid::Create<HighGuid::Player>(auction->owner);
Player* owner = ObjectAccessor::FindConnectedPlayer(owner_guid);
uint32 owner_accId = sObjectMgr->GetPlayerAccountIdByGUID(owner_guid);
// owner exist (online or offline)
@@ -168,7 +168,7 @@ void AuctionHouseMgr::SendAuctionSalePendingMail(AuctionEntry* auction, SQLTrans
//call this method to send mail to auction owner, when auction is successful, it does not clear ram
void AuctionHouseMgr::SendAuctionSuccessfulMail(AuctionEntry* auction, SQLTransaction& trans)
{
- ObjectGuid owner_guid(HighGuid::Player, auction->owner);
+ ObjectGuid owner_guid = ObjectGuid::Create<HighGuid::Player>(auction->owner);
Player* owner = ObjectAccessor::FindConnectedPlayer(owner_guid);
uint32 owner_accId = sObjectMgr->GetPlayerAccountIdByGUID(owner_guid);
// owner exist
@@ -199,7 +199,7 @@ void AuctionHouseMgr::SendAuctionExpiredMail(AuctionEntry* auction, SQLTransacti
if (!pItem)
return;
- ObjectGuid owner_guid(HighGuid::Player, auction->owner);
+ ObjectGuid owner_guid = ObjectGuid::Create<HighGuid::Player>(auction->owner);
Player* owner = ObjectAccessor::FindConnectedPlayer(owner_guid);
uint32 owner_accId = sObjectMgr->GetPlayerAccountIdByGUID(owner_guid);
// owner exist
@@ -222,7 +222,7 @@ void AuctionHouseMgr::SendAuctionExpiredMail(AuctionEntry* auction, SQLTransacti
//this function sends mail to old bidder
void AuctionHouseMgr::SendAuctionOutbiddedMail(AuctionEntry* auction, uint32 newPrice, Player* newBidder, SQLTransaction& trans)
{
- ObjectGuid oldBidder_guid(HighGuid::Player, auction->bidder);
+ ObjectGuid oldBidder_guid = ObjectGuid::Create<HighGuid::Player>(auction->bidder);
Player* oldBidder = ObjectAccessor::FindConnectedPlayer(oldBidder_guid);
uint32 oldBidder_accId = 0;
@@ -244,7 +244,7 @@ void AuctionHouseMgr::SendAuctionOutbiddedMail(AuctionEntry* auction, uint32 new
//this function sends mail, when auction is cancelled to old bidder
void AuctionHouseMgr::SendAuctionCancelledToBidderMail(AuctionEntry* auction, SQLTransaction& trans, Item* item)
{
- ObjectGuid bidder_guid = ObjectGuid(HighGuid::Player, auction->bidder);
+ ObjectGuid bidder_guid = ObjectGuid::Create<HighGuid::Player>(auction->bidder);
Player* bidder = ObjectAccessor::FindConnectedPlayer(bidder_guid);
uint32 bidder_accId = 0;
@@ -761,7 +761,7 @@ std::string AuctionEntry::BuildAuctionMailBody(uint64 lowGuid, uint32 bid, uint3
{
std::ostringstream strm;
strm.width(16);
- strm << std::right << std::hex << ObjectGuid(HighGuid::Player, lowGuid); // HIGHGUID_PLAYER always present, even for empty guids
+ strm << std::right << std::hex << ObjectGuid::Create<HighGuid::Player>(lowGuid); // HIGHGUID_PLAYER always present, even for empty guids
strm << std::dec << ':' << bid << ':' << buyout;
strm << ':' << deposit << ':' << cut;
return strm.str();
diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp
index 6f8d8621458..c06ade69f01 100644
--- a/src/server/game/Battlefield/Battlefield.cpp
+++ b/src/server/game/Battlefield/Battlefield.cpp
@@ -854,9 +854,9 @@ bool BfCapturePoint::HandlePlayerEnter(Player* player)
{
if (GameObject* capturePoint = m_Bf->GetGameObject(m_capturePointGUID))
{
- player->SendUpdateWorldState(capturePoint->GetGOInfo()->capturePoint.worldState1, 1);
- player->SendUpdateWorldState(capturePoint->GetGOInfo()->capturePoint.worldstate2, uint32(ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f)));
- player->SendUpdateWorldState(capturePoint->GetGOInfo()->capturePoint.worldstate3, m_neutralValuePct);
+ player->SendUpdateWorldState(capturePoint->GetGOInfo()->controlZone.worldState1, 1);
+ player->SendUpdateWorldState(capturePoint->GetGOInfo()->controlZone.worldstate2, uint32(ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f)));
+ player->SendUpdateWorldState(capturePoint->GetGOInfo()->controlZone.worldstate3, m_neutralValuePct);
}
}
@@ -867,7 +867,7 @@ GuidSet::iterator BfCapturePoint::HandlePlayerLeave(Player* player)
{
if (!m_capturePointGUID.IsEmpty())
if (GameObject* capturePoint = m_Bf->GetGameObject(m_capturePointGUID))
- player->SendUpdateWorldState(capturePoint->GetGOInfo()->capturePoint.worldState1, 0);
+ player->SendUpdateWorldState(capturePoint->GetGOInfo()->controlZone.worldState1, 0);
GuidSet::iterator current = m_activePlayers[player->GetTeamId()].find(player->GetGUID());
@@ -886,11 +886,11 @@ void BfCapturePoint::SendChangePhase()
if (GameObject* capturePoint = m_Bf->GetGameObject(m_capturePointGUID))
{
// send this too, sometimes the slider disappears, dunno why :(
- SendUpdateWorldState(capturePoint->GetGOInfo()->capturePoint.worldState1, 1);
+ SendUpdateWorldState(capturePoint->GetGOInfo()->controlZone.worldState1, 1);
// send these updates to only the ones in this objective
- SendUpdateWorldState(capturePoint->GetGOInfo()->capturePoint.worldstate2, (uint32) std::ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f));
+ SendUpdateWorldState(capturePoint->GetGOInfo()->controlZone.worldstate2, (uint32)std::ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f));
// send this too, sometimes it resets :S
- SendUpdateWorldState(capturePoint->GetGOInfo()->capturePoint.worldstate3, m_neutralValuePct);
+ SendUpdateWorldState(capturePoint->GetGOInfo()->controlZone.worldstate3, m_neutralValuePct);
}
}
@@ -911,10 +911,10 @@ bool BfCapturePoint::SetCapturePointData(GameObject* capturePoint)
}
// get the needed values from goinfo
- m_maxValue = goinfo->capturePoint.maxTime;
- m_maxSpeed = m_maxValue / (goinfo->capturePoint.minTime ? goinfo->capturePoint.minTime : 60);
- m_neutralValuePct = goinfo->capturePoint.neutralPercent;
- m_minValue = m_maxValue * goinfo->capturePoint.neutralPercent / 100;
+ m_maxValue = goinfo->controlZone.maxTime;
+ m_maxSpeed = m_maxValue / (goinfo->controlZone.minTime ? goinfo->controlZone.minTime : 60);
+ m_neutralValuePct = goinfo->controlZone.neutralPercent;
+ m_minValue = m_maxValue * goinfo->controlZone.neutralPercent / 100;
m_capturePointEntry = capturePoint->GetEntry();
if (m_team == TEAM_ALLIANCE)
{
@@ -958,7 +958,7 @@ bool BfCapturePoint::Update(uint32 diff)
if (GameObject* capturePoint = m_Bf->GetGameObject(m_capturePointGUID))
{
- float radius = capturePoint->GetGOInfo()->capturePoint.radius;
+ float radius = capturePoint->GetGOInfo()->controlZone.radius;
for (uint8 team = 0; team < 2; ++team)
{
diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp
index 1f806737425..79a68b4dab0 100644
--- a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp
+++ b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp
@@ -930,9 +930,9 @@ void BattlefieldWG::ProcessEvent(WorldObject* obj, uint32 eventId)
{
if (GameObject* buildingGo = GetGameObject(building->GetGUID()))
{
- if (buildingGo->GetGOInfo()->building.damagedEvent == eventId)
+ if (buildingGo->GetGOInfo()->destructibleBuilding.DamagedEvent == eventId)
building->Damaged();
- else if (buildingGo->GetGOInfo()->building.destroyedEvent == eventId)
+ else if (buildingGo->GetGOInfo()->destructibleBuilding.DestroyedEvent == eventId)
building->Destroyed();
break;
}
diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp
index cd450dcb2a1..2eebf5ca534 100644
--- a/src/server/game/Battlegrounds/ArenaTeam.cpp
+++ b/src/server/game/Battlegrounds/ArenaTeam.cpp
@@ -193,7 +193,7 @@ bool ArenaTeam::LoadArenaTeamFromDB(QueryResult result)
TeamId = fields[0].GetUInt32();
TeamName = fields[1].GetString();
- CaptainGuid = ObjectGuid(HighGuid::Player, fields[2].GetUInt64());
+ CaptainGuid = ObjectGuid::Create<HighGuid::Player>(fields[2].GetUInt64());
Type = fields[3].GetUInt8();
BackgroundColor = fields[4].GetUInt32();
EmblemStyle = fields[5].GetUInt8();
@@ -232,7 +232,7 @@ bool ArenaTeam::LoadMembersFromDB(QueryResult result)
break;
ArenaTeamMember newMember;
- newMember.Guid = ObjectGuid(HighGuid::Player, fields[1].GetUInt64());
+ newMember.Guid = ObjectGuid::Create<HighGuid::Player>(fields[1].GetUInt64());
newMember.WeekGames = fields[2].GetUInt16();
newMember.WeekWins = fields[3].GetUInt16();
newMember.SeasonGames = fields[4].GetUInt16();
diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h
index 8fb45f3a4d2..fc52178c52d 100644
--- a/src/server/game/Battlegrounds/Battleground.h
+++ b/src/server/game/Battlegrounds/Battleground.h
@@ -241,7 +241,7 @@ class Battleground
/* Battleground */
// Get methods:
std::string const& GetName() const { return m_Name; }
- ObjectGuid GetGUID() { return m_Guid; }
+ uint64 GetGUID() { return m_Guid; }
BattlegroundTypeId GetTypeID(bool GetRandom = false) const { return GetRandom ? m_RandomTypeID : m_TypeID; }
BattlegroundBracketId GetBracketId() const { return m_BracketId; }
uint32 GetInstanceID() const { return m_InstanceID; }
@@ -267,7 +267,7 @@ class Battleground
bool IsRandom() const { return m_IsRandom; }
// Set methods:
- void SetGuid(ObjectGuid newGuid) { m_Guid = newGuid; }
+ void SetGuid(uint64 newGuid) { m_Guid = newGuid; }
void SetName(std::string const& name) { m_Name = name; }
void SetTypeID(BattlegroundTypeId TypeID) { m_TypeID = TypeID; }
void SetRandomTypeID(BattlegroundTypeId TypeID) { m_RandomTypeID = TypeID; }
@@ -539,7 +539,7 @@ class Battleground
bool m_PrematureCountDown;
uint32 m_PrematureCountDownTimer;
std::string m_Name;
- ObjectGuid m_Guid;
+ uint64 m_Guid;
/* Pre- and post-update hooks */
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
index 62bb68dda01..eae6a831290 100644
--- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
@@ -154,7 +154,7 @@ void BattlegroundMgr::BuildBattlegroundStatusPacket(WorldPacket* data, Battlegro
ObjectGuid bgGuid;
if (bg)
- bgGuid = bg->GetGUID();
+ ;//bgGuid = bg->GetGUID();
else
StatusID = STATUS_NONE;
@@ -358,7 +358,7 @@ void BattlegroundMgr::BuildBattlegroundStatusPacket(WorldPacket* data, Battlegro
void BattlegroundMgr::BuildStatusFailedPacket(WorldPacket* data, Battleground* bg, Player* player, uint8 QueueSlot, GroupJoinBattlegroundResult result)
{
ObjectGuid guidBytes1 = player->GetGUID(); // player who caused the error
- ObjectGuid guidBytes2 = bg->GetGUID();
+ ObjectGuid guidBytes2;// = bg->GetGUID();
ObjectGuid unkGuid3;
data->Initialize(SMSG_BATTLEFIELD_STATUS_FAILED);
@@ -652,7 +652,7 @@ Battleground* BattlegroundMgr::CreateNewBattleground(BattlegroundTypeId original
bg->SetRandomTypeID(bgTypeId);
bg->SetRated(isRated);
bg->SetRandom(isRandom);
- bg->SetGuid(ObjectGuid(HighGuid::Null, uint64(bgTypeId) | UI64LIT(0x1F10000000000000)));
+ bg->SetGuid(uint64(bgTypeId) | UI64LIT(0x1F10000000000000));
// Set up correct min/max player counts for scoreboards
if (bg->isArena())
@@ -755,7 +755,7 @@ bool BattlegroundMgr::CreateBattleground(BattlegroundTemplate const* bgTemplate)
bg->SetStartMaxDist(bgTemplate->MaxStartDistSq);
bg->SetLevelRange(bgTemplate->MinLevel, bgTemplate->MaxLevel);
bg->SetScriptId(bgTemplate->ScriptId);
- bg->SetGuid(ObjectGuid(HighGuid::Null, uint64(bgTemplate->Id) | UI64LIT(0x1F10000000000000)));
+ bg->SetGuid(uint64(bgTemplate->Id) | UI64LIT(0x1F10000000000000));
AddBattleground(bg);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
index 0243b3f390e..f77a7383529 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
@@ -571,7 +571,7 @@ void BattlegroundSA::ProcessEvent(WorldObject* obj, uint32 eventId, WorldObject*
uint8 gateId = gate->GateId;
// damaged
- if (eventId == go->GetGOInfo()->building.damagedEvent)
+ if (eventId == go->GetGOInfo()->destructibleBuilding.DamagedEvent)
{
GateStatus[gateId] = BG_SA_GATE_DAMAGED;
@@ -581,7 +581,7 @@ void BattlegroundSA::ProcessEvent(WorldObject* obj, uint32 eventId, WorldObject*
PlaySoundToAll(Attackers == TEAM_ALLIANCE ? SOUND_WALL_ATTACKED_ALLIANCE : SOUND_WALL_ATTACKED_HORDE);
}
// destroyed
- else if (eventId == go->GetGOInfo()->building.destroyedEvent)
+ else if (eventId == go->GetGOInfo()->destructibleBuilding.DestroyedEvent)
{
GateStatus[gate->GateId] = BG_SA_GATE_DESTROYED;
_gateDestroyed = true;
diff --git a/src/server/game/CMakeLists.txt b/src/server/game/CMakeLists.txt
index 27b3ea2c381..bcf1a33a626 100644
--- a/src/server/game/CMakeLists.txt
+++ b/src/server/game/CMakeLists.txt
@@ -191,6 +191,7 @@ include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/Quests
${CMAKE_CURRENT_SOURCE_DIR}/Reputation
${CMAKE_CURRENT_SOURCE_DIR}/Scripting
+ ${CMAKE_CURRENT_SOURCE_DIR}/Server/Packets
${CMAKE_CURRENT_SOURCE_DIR}/Server/Protocol
${CMAKE_CURRENT_SOURCE_DIR}/Server
${CMAKE_CURRENT_SOURCE_DIR}/Skills
diff --git a/src/server/game/Calendar/CalendarMgr.cpp b/src/server/game/Calendar/CalendarMgr.cpp
index a0a2a2c6d73..fff949e6bbd 100644
--- a/src/server/game/Calendar/CalendarMgr.cpp
+++ b/src/server/game/Calendar/CalendarMgr.cpp
@@ -58,7 +58,7 @@ void CalendarMgr::LoadFromDB()
Field* fields = result->Fetch();
uint64 eventId = fields[0].GetUInt64();
- ObjectGuid creatorGUID = ObjectGuid(HighGuid::Player, fields[1].GetUInt64());
+ ObjectGuid creatorGUID = ObjectGuid::Create<HighGuid::Player>(fields[1].GetUInt64());
std::string title = fields[2].GetString();
std::string description = fields[3].GetString();
CalendarEventType type = CalendarEventType(fields[4].GetUInt8());
@@ -91,8 +91,8 @@ void CalendarMgr::LoadFromDB()
uint64 inviteId = fields[0].GetUInt64();
uint64 eventId = fields[1].GetUInt64();
- ObjectGuid invitee = ObjectGuid(HighGuid::Player, fields[2].GetUInt64());
- ObjectGuid senderGUID = ObjectGuid(HighGuid::Player, fields[3].GetUInt64());
+ ObjectGuid invitee = ObjectGuid::Create<HighGuid::Player>(fields[2].GetUInt64());
+ ObjectGuid senderGUID = ObjectGuid::Create<HighGuid::Player>(fields[3].GetUInt64());
CalendarInviteStatus status = CalendarInviteStatus(fields[4].GetUInt8());
uint32 statusTime = fields[5].GetUInt32();
CalendarModerationRank rank = CalendarModerationRank(fields[6].GetUInt8());
diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp
index 6c939cd926a..afe55563290 100644
--- a/src/server/game/Chat/Chat.cpp
+++ b/src/server/game/Chat/Chat.cpp
@@ -950,7 +950,7 @@ GameObject* ChatHandler::GetObjectGlobalyWithGuidOrNearWithDbGuid(ObjectGuid::Lo
Player* pl = m_session->GetPlayer();
- GameObject* obj = pl->GetMap()->GetGameObject(ObjectGuid(HighGuid::GameObject, entry, lowguid));
+ GameObject* obj = pl->GetMap()->GetGameObject(ObjectGuid::Create<HighGuid::GameObject>(pl->GetMapId(), entry, lowguid));
if (!obj && sObjectMgr->GetGOData(lowguid)) // guid is DB guid of object
{
@@ -1100,7 +1100,7 @@ ObjectGuid ChatHandler::extractGuidFromLink(char* text)
ObjectGuid::LowType lowguid = strtoull(idS, nullptr, 10);
if (CreatureData const* data = sObjectMgr->GetCreatureData(lowguid))
- return ObjectGuid(HighGuid::Creature, data->id, lowguid);
+ return ObjectGuid::Create<HighGuid::Creature>(data->mapid, data->id, lowguid);
else
return ObjectGuid::Empty;
}
@@ -1109,7 +1109,7 @@ ObjectGuid ChatHandler::extractGuidFromLink(char* text)
ObjectGuid::LowType lowguid = strtoull(idS, nullptr, 10);
if (GameObjectData const* data = sObjectMgr->GetGOData(lowguid))
- return ObjectGuid(HighGuid::GameObject, data->id, lowguid);
+ return ObjectGuid::Create<HighGuid::GameObject>(data->mapid, data->id, lowguid);
else
return ObjectGuid::Empty;
}
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index 9171a3e54cc..3272c29a447 100644
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -58,7 +58,7 @@ void LFGMgr::_LoadFromDB(Field* fields, ObjectGuid guid)
if (!guid.IsParty())
return;
- SetLeader(guid, ObjectGuid(HighGuid::Player, fields[0].GetUInt64()));
+ SetLeader(guid, ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64()));
uint32 dungeon = fields[17].GetUInt32();
uint8 state = fields[18].GetUInt8();
diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
index d7f7d2ca467..b68b725ecd9 100644
--- a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
+++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
@@ -66,7 +66,8 @@ bool AreaTrigger::CreateAreaTrigger(ObjectGuid::LowType guidlow, uint32 triggerE
return false;
}
- WorldObject::_Create(guidlow, HighGuid::AreaTrigger, caster->GetPhaseMask());
+ Object::_Create(ObjectGuid::Create<HighGuid::AreaTrigger>(GetMapId(), triggerEntry, guidlow));
+ SetPhaseMask(caster->GetPhaseMask(), false);
SetEntry(triggerEntry);
SetDuration(spell->GetDuration());
diff --git a/src/server/game/Entities/Corpse/Corpse.cpp b/src/server/game/Entities/Corpse/Corpse.cpp
index feb3e740e8f..15465ed11e4 100644
--- a/src/server/game/Entities/Corpse/Corpse.cpp
+++ b/src/server/game/Entities/Corpse/Corpse.cpp
@@ -65,7 +65,7 @@ void Corpse::RemoveFromWorld()
bool Corpse::Create(ObjectGuid::LowType guidlow, Map* map)
{
SetMap(map);
- Object::_Create(guidlow, 0, HighGuid::Corpse);
+ Object::_Create(ObjectGuid::Create<HighGuid::Corpse>(map->GetId(), 0, guidlow));
return true;
}
@@ -86,7 +86,8 @@ bool Corpse::Create(ObjectGuid::LowType guidlow, Player* owner)
//in other way we will get a crash in Corpse::SaveToDB()
SetMap(owner->GetMap());
- WorldObject::_Create(guidlow, HighGuid::Corpse, owner->GetPhaseMask());
+ Object::_Create(ObjectGuid::Create<HighGuid::Corpse>(GetMapId(), 0, guidlow));
+ SetPhaseMask(owner->GetPhaseMask(), false);
SetObjectScale(1);
SetGuidValue(CORPSE_FIELD_OWNER, owner->GetGUID());
@@ -169,7 +170,7 @@ bool Corpse::LoadCorpseFromDB(ObjectGuid::LowType guid, Field* fields)
float o = fields[3].GetFloat();
uint32 mapId = fields[4].GetUInt16();
- Object::_Create(guid, 0, HighGuid::Corpse);
+ Object::_Create(ObjectGuid::Create<HighGuid::Corpse>(mapId, 0, guid));
SetUInt32Value(CORPSE_FIELD_DISPLAY_ID, fields[5].GetUInt32());
_LoadIntoDataField(fields[6].GetCString(), CORPSE_FIELD_ITEM, EQUIPMENT_SLOT_END);
@@ -177,7 +178,7 @@ bool Corpse::LoadCorpseFromDB(ObjectGuid::LowType guid, Field* fields)
SetUInt32Value(CORPSE_FIELD_BYTES_2, fields[8].GetUInt32());
SetUInt32Value(CORPSE_FIELD_FLAGS, fields[9].GetUInt8());
SetUInt32Value(CORPSE_FIELD_DYNAMIC_FLAGS, fields[10].GetUInt8());
- SetGuidValue(CORPSE_FIELD_OWNER, ObjectGuid(HighGuid::Player, fields[16].GetUInt64()));
+ SetGuidValue(CORPSE_FIELD_OWNER, ObjectGuid::Create<HighGuid::Player>(fields[16].GetUInt64()));
m_time = time_t(fields[11].GetUInt32());
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 57181986863..3a27207b833 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -472,7 +472,7 @@ void Creature::Update(uint32 diff)
if (!allowed) // Will be rechecked on next Update call
break;
- ObjectGuid dbtableHighGuid(HighGuid::Creature, GetEntry(), m_DBTableGuid);
+ ObjectGuid dbtableHighGuid = ObjectGuid::Create<HighGuid::Creature>(GetMapId(), GetEntry(), m_DBTableGuid);
time_t linkedRespawntime = GetMap()->GetLinkedRespawnTime(dbtableHighGuid);
if (!linkedRespawntime) // Can respawn
Respawn();
@@ -1194,7 +1194,10 @@ bool Creature::CreateFromProto(ObjectGuid::LowType guidlow, uint32 entry, Creatu
SetOriginalEntry(entry);
- Object::_Create(guidlow, entry, (vehId || cinfo->VehicleId) ? HighGuid::Vehicle : HighGuid::Creature);
+ if (vehId || cinfo->VehicleId)
+ Object::_Create(ObjectGuid::Create<HighGuid::Vehicle>(GetMapId(), entry, guidlow));
+ else
+ Object::_Create(ObjectGuid::Create<HighGuid::Creature>(GetMapId(), entry, guidlow));
if (!UpdateEntry(entry, data))
return false;
@@ -1229,7 +1232,7 @@ bool Creature::LoadCreatureFromDB(ObjectGuid::LowType guid, Map* map, bool addTo
m_DBTableGuid = guid;
if (map->GetInstanceId() == 0)
{
- if (map->GetCreature(ObjectGuid(HighGuid::Creature, data->id, guid)))
+ if (map->GetCreature(ObjectGuid::Create<HighGuid::Creature>(data->mapid, data->id, guid)))
return false;
}
else
diff --git a/src/server/game/Entities/DynamicObject/DynamicObject.cpp b/src/server/game/Entities/DynamicObject/DynamicObject.cpp
index 1131cc2c758..4cd75299c0e 100644
--- a/src/server/game/Entities/DynamicObject/DynamicObject.cpp
+++ b/src/server/game/Entities/DynamicObject/DynamicObject.cpp
@@ -91,10 +91,11 @@ bool DynamicObject::CreateDynamicObject(ObjectGuid::LowType guidlow, Unit* caste
return false;
}
- WorldObject::_Create(guidlow, HighGuid::DynamicObject, caster->GetPhaseMask());
+ WorldObject::_Create(ObjectGuid::Create<HighGuid::DynamicObject>(GetMapId(), spell->Id, guidlow));
+ SetPhaseMask(caster->GetPhaseMask(), false);
SetEntry(spell->Id);
- SetObjectScale(1);
+ SetObjectScale(1.0f);
SetGuidValue(DYNAMICOBJECT_CASTER, caster->GetGUID());
SetUInt32Value(DYNAMICOBJECT_BYTES, spell->SpellVisual[0] | (type << 28));
SetUInt32Value(DYNAMICOBJECT_SPELLID, spell->Id);
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 4821014ced0..716ee946778 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -194,7 +194,7 @@ bool GameObject::Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, u
if (goinfo->type == GAMEOBJECT_TYPE_TRANSPORT)
m_updateFlag |= UPDATEFLAG_TRANSPORT;
- Object::_Create(guidlow, goinfo->entry, HighGuid::GameObject);
+ Object::_Create(ObjectGuid::Create<HighGuid::GameObject>(map->GetId(), goinfo->entry, guidlow));
m_goInfo = goinfo;
@@ -231,13 +231,14 @@ bool GameObject::Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, u
{
case GAMEOBJECT_TYPE_FISHINGHOLE:
SetGoAnimProgress(animprogress);
- m_goValue.FishingHole.MaxOpens = urand(GetGOInfo()->fishinghole.minSuccessOpens, GetGOInfo()->fishinghole.maxSuccessOpens);
+ m_goValue.FishingHole.MaxOpens = urand(GetGOInfo()->fishingHole.minRestock, GetGOInfo()->fishingHole.maxRestock);
break;
case GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING:
- m_goValue.Building.Health = goinfo->building.intactNumHits + goinfo->building.damagedNumHits;
+ // TODO: Get the values somehow, no longer in gameobject_template
+ m_goValue.Building.Health = 20000/*goinfo->destructibleBuilding.intactNumHits + goinfo->destructibleBuilding.damagedNumHits*/;
m_goValue.Building.MaxHealth = m_goValue.Building.Health;
SetGoAnimProgress(255);
- SetUInt32Value(GAMEOBJECT_PARENTROTATION, m_goInfo->building.destructibleData);
+ SetUInt32Value(GAMEOBJECT_PARENTROTATION, m_goInfo->destructibleBuilding.DestructibleModelRec);
break;
case GAMEOBJECT_TYPE_TRANSPORT:
{
@@ -248,14 +249,24 @@ bool GameObject::Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, u
m_goValue.Transport.CurrentSeg = 0;
m_goValue.Transport.StateUpdateTimer = 0;
m_goValue.Transport.StopFrames = new std::vector<uint32>();
- if (goinfo->transport.stopFrame1 > 0)
- m_goValue.Transport.StopFrames->push_back(goinfo->transport.stopFrame1);
- if (goinfo->transport.stopFrame2 > 0)
- m_goValue.Transport.StopFrames->push_back(goinfo->transport.stopFrame2);
- if (goinfo->transport.stopFrame3 > 0)
- m_goValue.Transport.StopFrames->push_back(goinfo->transport.stopFrame3);
- if (goinfo->transport.stopFrame4 > 0)
- m_goValue.Transport.StopFrames->push_back(goinfo->transport.stopFrame4);
+ if (goinfo->transport.Timeto2ndfloor > 0)
+ m_goValue.Transport.StopFrames->push_back(goinfo->transport.Timeto2ndfloor);
+ if (goinfo->transport.Timeto3rdfloor > 0)
+ m_goValue.Transport.StopFrames->push_back(goinfo->transport.Timeto3rdfloor);
+ if (goinfo->transport.Timeto4thfloor > 0)
+ m_goValue.Transport.StopFrames->push_back(goinfo->transport.Timeto4thfloor);
+ if (goinfo->transport.Timeto5thfloor > 0)
+ m_goValue.Transport.StopFrames->push_back(goinfo->transport.Timeto5thfloor);
+ if (goinfo->transport.Timeto6thfloor > 0)
+ m_goValue.Transport.StopFrames->push_back(goinfo->transport.Timeto6thfloor);
+ if (goinfo->transport.Timeto7thfloor > 0)
+ m_goValue.Transport.StopFrames->push_back(goinfo->transport.Timeto7thfloor);
+ if (goinfo->transport.Timeto8thfloor > 0)
+ m_goValue.Transport.StopFrames->push_back(goinfo->transport.Timeto8thfloor);
+ if (goinfo->transport.Timeto9thfloor > 0)
+ m_goValue.Transport.StopFrames->push_back(goinfo->transport.Timeto9thfloor);
+ if (goinfo->transport.Timeto10thfloor > 0)
+ m_goValue.Transport.StopFrames->push_back(goinfo->transport.Timeto10thfloor);
if (goinfo->transport.startOpen)
SetTransportState(GO_STATE_TRANSPORT_STOPPED, goinfo->transport.startOpen - 1);
else
@@ -274,7 +285,7 @@ bool GameObject::Create(ObjectGuid::LowType guidlow, uint32 name_id, Map* map, u
m_stealth.AddValue(STEALTH_TRAP, 70);
}
- if (GetGOInfo()->trap.invisible)
+ if (GetGOInfo()->trap.stealthAffected)
{
m_invisibility.AddFlag(INVISIBILITY_TRAP);
m_invisibility.AddValue(INVISIBILITY_TRAP, 300);
@@ -312,7 +323,7 @@ void GameObject::Update(uint32 diff)
// Arming Time for GAMEOBJECT_TYPE_TRAP (6)
GameObjectTemplate const* goInfo = GetGOInfo();
// Bombs
- if (goInfo->trap.type == 2)
+ if (goInfo->trap.charges == 2)
// Hardcoded tooltip value
m_cooldownTime = time(NULL) + 10;
else if (Unit* owner = GetOwner())
@@ -404,7 +415,7 @@ void GameObject::Update(uint32 diff)
time_t now = time(NULL);
if (m_respawnTime <= now) // timer expired
{
- ObjectGuid dbtableHighGuid(HighGuid::GameObject, GetEntry(), m_DBTableGuid);
+ ObjectGuid dbtableHighGuid = ObjectGuid::Create<HighGuid::GameObject>(GetMapId(), GetEntry(), m_DBTableGuid);
time_t linkedRespawntime = GetMap()->GetLinkedRespawnTime(dbtableHighGuid);
if (linkedRespawntime) // Can't respawn, the master is dead
{
@@ -445,7 +456,7 @@ void GameObject::Update(uint32 diff)
break;
case GAMEOBJECT_TYPE_FISHINGHOLE:
// Initialize a new max fish count on respawn
- m_goValue.FishingHole.MaxOpens = urand(GetGOInfo()->fishinghole.minSuccessOpens, GetGOInfo()->fishinghole.maxSuccessOpens);
+ m_goValue.FishingHole.MaxOpens = urand(GetGOInfo()->fishingHole.minRestock, GetGOInfo()->fishingHole.maxRestock);
break;
default:
break;
@@ -477,7 +488,7 @@ void GameObject::Update(uint32 diff)
break;
// Type 2 (bomb) does not need to be triggered by a unit and despawns after casting its spell.
- if (goInfo->trap.type == 2)
+ if (goInfo->trap.charges == 2)
{
SetLootState(GO_ACTIVATED);
break;
@@ -486,7 +497,7 @@ void GameObject::Update(uint32 diff)
// Type 0 despawns after being triggered, type 1 does not.
/// @todo This is activation radius. Casting radius must be selected from spell data.
float radius;
- if (!goInfo->trap.diameter)
+ if (!goInfo->trap.radius)
{
// Battleground traps: data2 == 0 && data5 == 3
if (goInfo->trap.cooldown != 3)
@@ -495,7 +506,7 @@ void GameObject::Update(uint32 diff)
radius = 3.f;
}
else
- radius = goInfo->trap.diameter / 2.f;
+ radius = goInfo->trap.radius / 2.f;
// Pointer to appropriate target if found any
Unit* target = NULL;
@@ -572,28 +583,28 @@ void GameObject::Update(uint32 diff)
case GAMEOBJECT_TYPE_TRAP:
{
GameObjectTemplate const* goInfo = GetGOInfo();
- if (goInfo->trap.type == 2 && goInfo->trap.spellId)
+ if (goInfo->trap.charges == 2 && goInfo->trap.spell)
{
/// @todo NULL target won't work for target type 1
- CastSpell(NULL, goInfo->trap.spellId);
+ CastSpell(NULL, goInfo->trap.spell);
SetLootState(GO_JUST_DEACTIVATED);
}
else if (Unit* target = ObjectAccessor::GetUnit(*this, m_lootStateUnitGUID))
{
// Some traps do not have a spell but should be triggered
- if (goInfo->trap.spellId)
- CastSpell(target, goInfo->trap.spellId);
+ if (goInfo->trap.spell)
+ CastSpell(target, goInfo->trap.spell);
// Template value or 4 seconds
m_cooldownTime = time(NULL) + (goInfo->trap.cooldown ? goInfo->trap.cooldown : uint32(4));
- if (goInfo->trap.type == 1)
+ if (goInfo->trap.charges == 1)
SetLootState(GO_JUST_DEACTIVATED);
- else if (!goInfo->trap.type)
+ else if (!goInfo->trap.charges)
SetLootState(GO_READY);
// Battleground gameobjects have data2 == 0 && data5 == 3
- if (!goInfo->trap.diameter && goInfo->trap.cooldown == 3)
+ if (!goInfo->trap.radius && goInfo->trap.cooldown == 3)
if (Player* player = target->ToPlayer())
if (Battleground* bg = player->GetBattleground())
bg->HandleTriggerBuff(GetGUID());
@@ -610,7 +621,7 @@ void GameObject::Update(uint32 diff)
//if Gameobject should cast spell, then this, but some GOs (type = 10) should be destroyed
if (GetGoType() == GAMEOBJECT_TYPE_GOOBER)
{
- uint32 spellId = GetGOInfo()->goober.spellId;
+ uint32 spellId = GetGOInfo()->goober.spell;
if (spellId)
{
@@ -1079,13 +1090,13 @@ bool GameObject::ActivateToQuest(Player* target) const
}
case GAMEOBJECT_TYPE_GENERIC:
{
- if (GetGOInfo()->_generic.questID == -1 || target->GetQuestStatus(GetGOInfo()->_generic.questID) == QUEST_STATUS_INCOMPLETE)
+ if (GetGOInfo()->generic.questID == -1 || target->GetQuestStatus(GetGOInfo()->generic.questID) == QUEST_STATUS_INCOMPLETE)
return true;
break;
}
case GAMEOBJECT_TYPE_GOOBER:
{
- if (GetGOInfo()->goober.questId == -1 || target->GetQuestStatus(GetGOInfo()->goober.questId) == QUEST_STATUS_INCOMPLETE)
+ if (GetGOInfo()->goober.questID == -1 || target->GetQuestStatus(GetGOInfo()->goober.questID) == QUEST_STATUS_INCOMPLETE)
return true;
break;
}
@@ -1102,7 +1113,7 @@ void GameObject::TriggeringLinkedGameObject(uint32 trapEntry, Unit* target)
if (!trapInfo || trapInfo->type != GAMEOBJECT_TYPE_TRAP)
return;
- SpellInfo const* trapSpell = sSpellMgr->GetSpellInfo(trapInfo->trap.spellId);
+ SpellInfo const* trapSpell = sSpellMgr->GetSpellInfo(trapInfo->trap.spell);
if (!trapSpell) // checked at load already
return;
@@ -1124,7 +1135,7 @@ void GameObject::TriggeringLinkedGameObject(uint32 trapEntry, Unit* target)
// found correct GO
if (trapGO)
- trapGO->CastSpell(target, trapInfo->trap.spellId);
+ trapGO->CastSpell(target, trapInfo->trap.spell);
}
GameObject* GameObject::LookupFishingHoleAround(float range)
@@ -1248,12 +1259,12 @@ void GameObject::Use(Unit* user)
case GAMEOBJECT_TYPE_TRAP: //6
{
GameObjectTemplate const* goInfo = GetGOInfo();
- if (goInfo->trap.spellId)
- CastSpell(user, goInfo->trap.spellId);
+ if (goInfo->trap.spell)
+ CastSpell(user, goInfo->trap.spell);
m_cooldownTime = time(NULL) + (goInfo->trap.cooldown ? goInfo->trap.cooldown : uint32(4)); // template or 4 seconds
- if (goInfo->trap.type == 1) // Deactivate after trigger
+ if (goInfo->trap.charges == 1) // Deactivate after trigger
SetLootState(GO_JUST_DEACTIVATED);
return;
@@ -1270,8 +1281,8 @@ void GameObject::Use(Unit* user)
if (ChairListSlots.empty()) // this is called once at first chair use to make list of available slots
{
- if (info->chair.slots > 0) // sometimes chairs in DB have error in fields and we dont know number of slots
- for (uint32 i = 0; i < info->chair.slots; ++i)
+ if (info->chair.chairslots > 0) // sometimes chairs in DB have error in fields and we dont know number of slots
+ for (uint32 i = 0; i < info->chair.chairslots; ++i)
ChairListSlots[i].Clear(); // Last user of current slot set to 0 (none sit here yet)
else
ChairListSlots[0].Clear(); // error in DB, make one default slot
@@ -1295,7 +1306,7 @@ void GameObject::Use(Unit* user)
for (ChairSlotAndUser::iterator itr = ChairListSlots.begin(); itr != ChairListSlots.end(); ++itr)
{
// the distance between this slot and the center of the go - imagine a 1D space
- float relativeDistance = (info->size*itr->first)-(info->size*(info->chair.slots-1)/2.0f);
+ float relativeDistance = (info->size*itr->first) - (info->size*(info->chair.chairslots - 1) / 2.0f);
float x_i = GetPositionX() + relativeDistance * std::cos(orthogonalOrientation);
float y_i = GetPositionY() + relativeDistance * std::sin(orthogonalOrientation);
@@ -1334,7 +1345,7 @@ void GameObject::Use(Unit* user)
{
itr->second = player->GetGUID(); //this slot in now used by player
player->TeleportTo(GetMapId(), x_lowest, y_lowest, GetPositionZ(), GetOrientation(), TELE_TO_NOT_LEAVE_TRANSPORT | TELE_TO_NOT_LEAVE_COMBAT | TELE_TO_NOT_UNSUMMON_PET);
- player->SetStandState(UNIT_STAND_STATE_SIT_LOW_CHAIR+info->chair.height);
+ player->SetStandState(UNIT_STAND_STATE_SIT_LOW_CHAIR + info->chair.chairheight);
return;
}
}
@@ -1348,7 +1359,7 @@ void GameObject::Use(Unit* user)
if (Player* player = user->ToPlayer())
{
- if (info->goober.pageId) // show page...
+ if (info->goober.pageID) // show page...
{
WorldPacket data(SMSG_GAMEOBJECT_PAGETEXT, 8);
data << GetGUID();
@@ -1360,25 +1371,25 @@ void GameObject::Use(Unit* user)
player->SendPreparedGossip(this);
}
- if (info->goober.eventId)
+ if (info->goober.eventID)
{
- TC_LOG_DEBUG("maps.script", "Goober ScriptStart id %u for GO entry %u (GUID " UI64FMTD ").", info->goober.eventId, GetEntry(), GetDBTableGUIDLow());
- GetMap()->ScriptsStart(sEventScripts, info->goober.eventId, player, this);
- EventInform(info->goober.eventId, user);
+ TC_LOG_DEBUG("maps.script", "Goober ScriptStart id %u for GO entry %u (GUID " UI64FMTD ").", info->goober.eventID, GetEntry(), GetDBTableGUIDLow());
+ GetMap()->ScriptsStart(sEventScripts, info->goober.eventID, player, this);
+ EventInform(info->goober.eventID, user);
}
// possible quest objective for active quests
- if (info->goober.questId && sObjectMgr->GetQuestTemplate(info->goober.questId))
+ if (info->goober.questID && sObjectMgr->GetQuestTemplate(info->goober.questID))
{
//Quest require to be active for GO using
- if (player->GetQuestStatus(info->goober.questId) != QUEST_STATUS_INCOMPLETE)
+ if (player->GetQuestStatus(info->goober.questID) != QUEST_STATUS_INCOMPLETE)
break;
}
player->KillCreditGO(info->entry, GetGUID());
}
- if (uint32 trapEntry = info->goober.linkedTrapId)
+ if (uint32 trapEntry = info->goober.linkedTrap)
TriggeringLinkedGameObject(trapEntry, user);
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
@@ -1393,7 +1404,7 @@ void GameObject::Use(Unit* user)
m_cooldownTime = time(NULL) + info->GetAutoCloseTime();
// cast this spell later if provided
- spellId = info->goober.spellId;
+ spellId = info->goober.spell;
spellCaster = NULL;
break;
@@ -1409,8 +1420,8 @@ void GameObject::Use(Unit* user)
Player* player = user->ToPlayer();
- if (info->camera.cinematicId)
- player->SendCinematicStart(info->camera.cinematicId);
+ if (info->camera.camera)
+ player->SendCinematicStart(info->camera.camera);
if (info->camera.eventID)
GetMap()->ScriptsStart(sEventScripts, info->camera.eventID, player, this);
@@ -1527,7 +1538,7 @@ void GameObject::Use(Unit* user)
return;
// accept only use by player from same group as owner, excluding owner itself (unique use already added in spell effect)
- if (player == owner->ToPlayer() || (info->summoningRitual.castersGrouped && !player->IsInSameRaidWith(owner->ToPlayer())))
+ if (player == owner->ToPlayer() || (info->ritual.castersGrouped && !player->IsInSameRaidWith(owner->ToPlayer())))
return;
// expect owner to already be channeling, so if not...
@@ -1539,7 +1550,7 @@ void GameObject::Use(Unit* user)
}
else
{
- if (player != m_ritualOwner && (info->summoningRitual.castersGrouped && !player->IsInSameRaidWith(m_ritualOwner)))
+ if (player != m_ritualOwner && (info->ritual.castersGrouped && !player->IsInSameRaidWith(m_ritualOwner)))
return;
spellCaster = player;
@@ -1547,21 +1558,21 @@ void GameObject::Use(Unit* user)
AddUniqueUse(player);
- if (info->summoningRitual.animSpell)
+ if (info->ritual.animSpell)
{
- player->CastSpell(player, info->summoningRitual.animSpell, true);
+ player->CastSpell(player, info->ritual.animSpell, true);
// for this case, summoningRitual.spellId is always triggered
triggered = true;
}
// full amount unique participants including original summoner
- if (GetUniqueUseCount() == info->summoningRitual.reqParticipants)
+ if (GetUniqueUseCount() == info->ritual.casters)
{
if (m_ritualOwner)
spellCaster = m_ritualOwner;
- spellId = info->summoningRitual.spellId;
+ spellId = info->ritual.spell;
if (spellId == 62330) // GO store nonexistent spell, replace by expected
{
@@ -1574,18 +1585,18 @@ void GameObject::Use(Unit* user)
// Cast casterTargetSpell at a random GO user
// on the current DB there is only one gameobject that uses this (Ritual of Doom)
// and its required target number is 1 (outter for loop will run once)
- if (info->summoningRitual.casterTargetSpell && info->summoningRitual.casterTargetSpell != 1) // No idea why this field is a bool in some cases
- for (uint32 i = 0; i < info->summoningRitual.casterTargetSpellTargets; i++)
+ if (info->ritual.casterTargetSpell && info->ritual.casterTargetSpell != 1) // No idea why this field is a bool in some cases
+ for (uint32 i = 0; i < info->ritual.casterTargetSpellTargets; i++)
// m_unique_users can contain only player GUIDs
if (Player* target = ObjectAccessor::GetPlayer(*this, Trinity::Containers::SelectRandomContainerElement(m_unique_users)))
- spellCaster->CastSpell(target, info->summoningRitual.casterTargetSpell, true);
+ spellCaster->CastSpell(target, info->ritual.casterTargetSpell, true);
// finish owners spell
if (owner)
owner->FinishSpell(CURRENT_CHANNELED_SPELL);
// can be deleted now, if
- if (!info->summoningRitual.ritualPersistent)
+ if (!info->ritual.ritualPersistent)
SetLootState(GO_JUST_DEACTIVATED);
else
{
@@ -1607,7 +1618,7 @@ void GameObject::Use(Unit* user)
if (!info)
return;
- if (info->spellcaster.partyOnly)
+ if (info->spellCaster.partyOnly)
{
Unit* caster = GetOwner();
if (!caster || caster->GetTypeId() != TYPEID_PLAYER)
@@ -1618,7 +1629,7 @@ void GameObject::Use(Unit* user)
}
user->RemoveAurasByType(SPELL_AURA_MOUNTED);
- spellId = info->spellcaster.spellId;
+ spellId = info->spellCaster.spell;
AddUse();
break;
@@ -1640,10 +1651,10 @@ void GameObject::Use(Unit* user)
//required lvl checks!
uint8 level = player->getLevel();
- if (level < info->meetingstone.minLevel)
+ if (level < info->meetingStone.minLevel)
return;
level = targetPlayer->getLevel();
- if (level < info->meetingstone.minLevel)
+ if (level < info->meetingStone.minLevel)
return;
if (info->entry == 194097)
@@ -1967,7 +1978,7 @@ void GameObject::ModifyHealth(int32 change, Unit* attackerOrHealer /*= NULL*/, u
if (!m_goValue.Building.Health)
newState = GO_DESTRUCTIBLE_DESTROYED;
- else if (m_goValue.Building.Health <= GetGOInfo()->building.damagedNumHits)
+ else if (m_goValue.Building.Health <= 10000/*GetGOInfo()->destructibleBuilding.damagedNumHits*/) // TODO: Get health somewhere
newState = GO_DESTRUCTIBLE_DAMAGED;
else if (m_goValue.Building.Health == m_goValue.Building.MaxHealth)
newState = GO_DESTRUCTIBLE_INTACT;
@@ -1998,21 +2009,21 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player*
break;
case GO_DESTRUCTIBLE_DAMAGED:
{
- EventInform(m_goInfo->building.damagedEvent, eventInvoker);
+ EventInform(m_goInfo->destructibleBuilding.DamagedEvent, eventInvoker);
sScriptMgr->OnGameObjectDamaged(this, eventInvoker);
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED);
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED);
- uint32 modelId = m_goInfo->building.damagedDisplayId;
- if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData))
+ uint32 modelId = m_goInfo->displayId;
+ if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->destructibleBuilding.DestructibleModelRec))
if (modelData->DamagedDisplayId)
modelId = modelData->DamagedDisplayId;
SetDisplayId(modelId);
if (setHealth)
{
- m_goValue.Building.Health = m_goInfo->building.damagedNumHits;
+ m_goValue.Building.Health = 10000/*m_goInfo->destructibleBuilding.damagedNumHits*/;
uint32 maxHealth = m_goValue.Building.MaxHealth;
// in this case current health is 0 anyway so just prevent crashing here
if (!maxHealth)
@@ -2024,7 +2035,7 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player*
case GO_DESTRUCTIBLE_DESTROYED:
{
sScriptMgr->OnGameObjectDestroyed(this, eventInvoker);
- EventInform(m_goInfo->building.destroyedEvent, eventInvoker);
+ EventInform(m_goInfo->destructibleBuilding.DestroyedEvent, eventInvoker);
if (eventInvoker)
if (Battleground* bg = eventInvoker->GetBattleground())
bg->DestroyGate(eventInvoker, this);
@@ -2032,8 +2043,8 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player*
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED);
SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED);
- uint32 modelId = m_goInfo->building.destroyedDisplayId;
- if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData))
+ uint32 modelId = m_goInfo->displayId;
+ if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->destructibleBuilding.DestructibleModelRec))
if (modelData->DestroyedDisplayId)
modelId = modelData->DestroyedDisplayId;
SetDisplayId(modelId);
@@ -2048,11 +2059,11 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player*
}
case GO_DESTRUCTIBLE_REBUILDING:
{
- EventInform(m_goInfo->building.rebuildingEvent, eventInvoker);
+ EventInform(m_goInfo->destructibleBuilding.RebuildingEvent, eventInvoker);
RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED | GO_FLAG_DESTROYED);
uint32 modelId = m_goInfo->displayId;
- if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->building.destructibleData))
+ if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->destructibleBuilding.DestructibleModelRec))
if (modelData->RebuildingDisplayId)
modelId = modelData->RebuildingDisplayId;
SetDisplayId(modelId);
@@ -2243,7 +2254,7 @@ void GameObject::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* t
return;
bool isStoppableTransport = GetGoType() == GAMEOBJECT_TYPE_TRANSPORT && !m_goValue.Transport.StopFrames->empty();
- bool forcedFlags = GetGoType() == GAMEOBJECT_TYPE_CHEST && GetGOInfo()->chest.groupLootRules && HasLootRecipient();
+ bool forcedFlags = GetGoType() == GAMEOBJECT_TYPE_CHEST && GetGOInfo()->chest.usegrouplootrules && HasLootRecipient();
bool targetIsGM = target->IsGameMaster();
ByteBuffer fieldBuffer;
@@ -2308,7 +2319,7 @@ void GameObject::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* t
{
uint32 flags = m_uint32Values[GAMEOBJECT_FLAGS];
if (GetGoType() == GAMEOBJECT_TYPE_CHEST)
- if (GetGOInfo()->chest.groupLootRules && !IsLootAllowedFor(target))
+ if (GetGOInfo()->chest.usegrouplootrules && !IsLootAllowedFor(target))
flags |= GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE;
fieldBuffer << flags;
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index 9fba8da35c7..a168c3bb2ae 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -47,358 +47,563 @@ struct GameObjectTemplate
float size;
uint32 questItems[MAX_GAMEOBJECT_QUEST_ITEMS];
int32 unkInt32;
- union // different GO types have different data field
+ union
{
- //0 GAMEOBJECT_TYPE_DOOR
+ // 0 GAMEOBJECT_TYPE_DOOR
struct
{
- uint32 startOpen; //0 used client side to determine GO_ACTIVATED means open/closed
- uint32 lockId; //1 -> Lock.dbc
- uint32 autoCloseTime; //2 secs till autoclose = autoCloseTime / 0x10000
- uint32 noDamageImmune; //3 break opening whenever you recieve damage?
- uint32 openTextID; //4 can be used to replace castBarCaption?
- uint32 closeTextID; //5
- uint32 ignoredByPathing; //6
+ uint32 startOpen; // 0 startOpen, enum { false, true, }; Default: false
+ uint32 open; // 1 open, References: Lock_, NoValue = 0
+ uint32 autoClose; // 2 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 3000
+ uint32 noDamageImmune; // 3 noDamageImmune, enum { false, true, }; Default: false
+ uint32 openTextID; // 4 openTextID, References: BroadcastText, NoValue = 0
+ uint32 closeTextID; // 5 closeTextID, References: BroadcastText, NoValue = 0
+ uint32 IgnoredByPathing; // 6 Ignored By Pathing, enum { false, true, }; Default: false
+ uint32 conditionID1; // 7 conditionID1, References: PlayerCondition, NoValue = 0
+ uint32 EnablePortalsonopen; // 8 Enable Portals on open, enum { false, true, }; Default: false
+ uint32 GiganticAOI; // 9 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 InfiniteAOI; // 10 Infinite AOI, enum { false, true, }; Default: false
} door;
- //1 GAMEOBJECT_TYPE_BUTTON
- struct
- {
- uint32 startOpen; //0
- uint32 lockId; //1 -> Lock.dbc
- uint32 autoCloseTime; //2 secs till autoclose = autoCloseTime / 0x10000
- uint32 linkedTrap; //3
- uint32 noDamageImmune; //4 isBattlegroundObject
- uint32 large; //5
- uint32 openTextID; //6 can be used to replace castBarCaption?
- uint32 closeTextID; //7
- uint32 losOK; //8
+ // 1 GAMEOBJECT_TYPE_BUTTON
+ struct
+ {
+ uint32 startOpen; // 0 startOpen, enum { false, true, }; Default: false
+ uint32 open; // 1 open, References: Lock_, NoValue = 0
+ uint32 autoClose; // 2 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 3000
+ uint32 linkedTrap; // 3 linkedTrap, References: GameObjects, NoValue = 0
+ uint32 noDamageImmune; // 4 noDamageImmune, enum { false, true, }; Default: false
+ uint32 GiganticAOI; // 5 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 openTextID; // 6 openTextID, References: BroadcastText, NoValue = 0
+ uint32 closeTextID; // 7 closeTextID, References: BroadcastText, NoValue = 0
+ uint32 requireLOS; // 8 require LOS, enum { false, true, }; Default: false
+ uint32 conditionID1; // 9 conditionID1, References: PlayerCondition, NoValue = 0
} button;
- //2 GAMEOBJECT_TYPE_QUESTGIVER
- struct
- {
- uint32 lockId; //0 -> Lock.dbc
- uint32 questList; //1
- uint32 pageMaterial; //2
- uint32 gossipID; //3
- uint32 customAnim; //4
- uint32 noDamageImmune; //5
- uint32 openTextID; //6 can be used to replace castBarCaption?
- uint32 losOK; //7
- uint32 allowMounted; //8 Is usable while on mount/vehicle. (0/1)
- uint32 large; //9
+ // 2 GAMEOBJECT_TYPE_QUESTGIVER
+ struct
+ {
+ uint32 open; // 0 open, References: Lock_, NoValue = 0
+ uint32 questGiver; // 1 questGiver, References: QuestGiver, NoValue = 0
+ uint32 pageMaterial; // 2 pageMaterial, References: PageTextMaterial, NoValue = 0
+ uint32 gossipID; // 3 gossipID, References: Gossip, NoValue = 0
+ uint32 customAnim; // 4 customAnim, int, Min value: 0, Max value: 4, Default value: 0
+ uint32 noDamageImmune; // 5 noDamageImmune, enum { false, true, }; Default: false
+ uint32 openTextID; // 6 openTextID, References: BroadcastText, NoValue = 0
+ uint32 requireLOS; // 7 require LOS, enum { false, true, }; Default: false
+ uint32 allowMounted; // 8 allowMounted, enum { false, true, }; Default: false
+ uint32 GiganticAOI; // 9 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 conditionID1; // 10 conditionID1, References: PlayerCondition, NoValue = 0
+ uint32 NeverUsableWhileMounted; // 11 Never Usable While Mounted, enum { false, true, }; Default: false
} questgiver;
- //3 GAMEOBJECT_TYPE_CHEST
- struct
- {
- uint32 lockId; //0 -> Lock.dbc
- uint32 lootId; //1
- uint32 chestRestockTime; //2
- uint32 consumable; //3
- uint32 minSuccessOpens; //4 Deprecated, pre 3.0 was used for mining nodes but since WotLK all mining nodes are usable once and grant all loot with a single use
- uint32 maxSuccessOpens; //5 Deprecated, pre 3.0 was used for mining nodes but since WotLK all mining nodes are usable once and grant all loot with a single use
- uint32 eventId; //6 lootedEvent
- uint32 linkedTrapId; //7
- uint32 questId; //8 not used currently but store quest required for GO activation for player
- uint32 level; //9
- uint32 losOK; //10
- uint32 leaveLoot; //11
- uint32 notInCombat; //12
- uint32 logLoot; //13
- uint32 openTextID; //14 can be used to replace castBarCaption?
- uint32 groupLootRules; //15
- uint32 floatingTooltip; //16
+ // 3 GAMEOBJECT_TYPE_CHEST
+ struct
+ {
+ uint32 open; // 0 open, References: Lock_, NoValue = 0
+ uint32 chestLoot; // 1 chestLoot, References: Treasure, NoValue = 0
+ uint32 chestRestockTime; // 2 chestRestockTime, int, Min value: 0, Max value: 1800000, Default value: 0
+ uint32 consumable; // 3 consumable, enum { false, true, }; Default: false
+ uint32 minRestock; // 4 minRestock, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 maxRestock; // 5 maxRestock, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 triggeredEvent; // 6 triggeredEvent, References: GameEvents, NoValue = 0
+ uint32 linkedTrap; // 7 linkedTrap, References: GameObjects, NoValue = 0
+ uint32 questID; // 8 questID, References: QuestV2, NoValue = 0
+ uint32 level; // 9 level, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 requireLOS; // 10 require LOS, enum { false, true, }; Default: false
+ uint32 leaveLoot; // 11 leaveLoot, enum { false, true, }; Default: false
+ uint32 notInCombat; // 12 notInCombat, enum { false, true, }; Default: false
+ uint32 logloot; // 13 log loot, enum { false, true, }; Default: false
+ uint32 openTextID; // 14 openTextID, References: BroadcastText, NoValue = 0
+ uint32 usegrouplootrules; // 15 use group loot rules, enum { false, true, }; Default: false
+ uint32 floatingTooltip; // 16 floatingTooltip, enum { false, true, }; Default: false
+ uint32 conditionID1; // 17 conditionID1, References: PlayerCondition, NoValue = 0
+ int32 xpLevel; // 18 xpLevel, int, Min value: -1, Max value: 100, Default value: 0
+ uint32 xpDifficulty; // 19 xpDifficulty, enum { No Exp, Trivial, Very Small, Small, Substandard, Standard, High, Epic, Dungeon, Placeholder2, }; Default: No Exp
+ uint32 lootLevel; // 20 lootLevel, int, Min value: 0, Max value: 100, Default value: 0
+ uint32 GroupXP; // 21 Group XP, enum { false, true, }; Default: false
+ uint32 DamageImmuneOK; // 22 Damage Immune OK, enum { false, true, }; Default: false
+ uint32 trivialSkillLow; // 23 trivialSkillLow, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 trivialSkillHigh; // 24 trivialSkillHigh, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 DungeonEncounter; // 25 Dungeon Encounter, References: DungeonEncounter, NoValue = 0
+ uint32 spell; // 26 spell, References: Spell, NoValue = 0
+ uint32 GiganticAOI; // 27 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 LargeAOI; // 28 Large AOI, enum { false, true, }; Default: false
+ uint32 SpawnVignette; // 29 Spawn Vignette, References: vignette, NoValue = 0
+ uint32 chestPersonalLoot; // 30 chest Personal Loot, References: Treasure, NoValue = 0
+ uint32 turnpersonallootsecurityoff; // 31 turn personal loot security off, enum { false, true, }; Default: false
+ uint32 ChestProperties; // 32 Chest Properties, References: ChestProperties, NoValue = 0
} chest;
- //4 GAMEOBJECT_TYPE_BINDER - empty
- //5 GAMEOBJECT_TYPE_GENERIC
- struct
- {
- uint32 floatingTooltip; //0
- uint32 highlight; //1
- uint32 serverOnly; //2
- uint32 large; //3
- uint32 floatOnWater; //4
- int32 questID; //5
- } _generic;
- //6 GAMEOBJECT_TYPE_TRAP
- struct
- {
- uint32 lockId; //0 -> Lock.dbc
- uint32 level; //1
- uint32 diameter; //2 diameter for trap activation
- uint32 spellId; //3
- uint32 type; //4 0 trap with no despawn after cast. 1 trap despawns after cast. 2 bomb casts on spawn.
- uint32 cooldown; //5 time in secs
- int32 autoCloseTime; //6
- uint32 startDelay; //7
- uint32 serverOnly; //8
- uint32 stealthed; //9
- uint32 large; //10
- uint32 invisible; //11
- uint32 openTextID; //12 can be used to replace castBarCaption?
- uint32 closeTextID; //13
- uint32 ignoreTotems; //14
+ // 4 GAMEOBJECT_TYPE_BINDER
+ struct
+ {
+ } binder;
+ // 5 GAMEOBJECT_TYPE_GENERIC
+ struct
+ {
+ uint32 floatingTooltip; // 0 floatingTooltip, enum { false, true, }; Default: false
+ uint32 highlight; // 1 highlight, enum { false, true, }; Default: true
+ uint32 serverOnly; // 2 serverOnly, enum { false, true, }; Default: false
+ uint32 GiganticAOI; // 3 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 floatOnWater; // 4 floatOnWater, enum { false, true, }; Default: false
+ uint32 questID; // 5 questID, References: QuestV2, NoValue = 0
+ uint32 conditionID1; // 6 conditionID1, References: PlayerCondition, NoValue = 0
+ uint32 LargeAOI; // 7 Large AOI, enum { false, true, }; Default: false
+ uint32 UseGarrisonOwnerGuildColors; // 8 Use Garrison Owner Guild Colors, enum { false, true, }; Default: false
+ } generic;
+ // 6 GAMEOBJECT_TYPE_TRAP
+ struct
+ {
+ uint32 open; // 0 open, References: Lock_, NoValue = 0
+ uint32 level; // 1 level, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 radius; // 2 radius, int, Min value: 0, Max value: 100, Default value: 0
+ uint32 spell; // 3 spell, References: Spell, NoValue = 0
+ uint32 charges; // 4 charges, int, Min value: 0, Max value: 65535, Default value: 1
+ uint32 cooldown; // 5 cooldown, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 autoClose; // 6 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 startDelay; // 7 startDelay, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 serverOnly; // 8 serverOnly, enum { false, true, }; Default: false
+ uint32 stealthed; // 9 stealthed, enum { false, true, }; Default: false
+ uint32 GiganticAOI; // 10 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 stealthAffected; // 11 stealthAffected, enum { false, true, }; Default: false
+ uint32 openTextID; // 12 openTextID, References: BroadcastText, NoValue = 0
+ uint32 closeTextID; // 13 closeTextID, References: BroadcastText, NoValue = 0
+ uint32 IgnoreTotems; // 14 Ignore Totems, enum { false, true, }; Default: false
+ uint32 conditionID1; // 15 conditionID1, References: PlayerCondition, NoValue = 0
+ uint32 playerCast; // 16 playerCast, enum { false, true, }; Default: false
+ uint32 SummonerTriggered; // 17 Summoner Triggered, enum { false, true, }; Default: false
} trap;
- //7 GAMEOBJECT_TYPE_CHAIR
+ // 7 GAMEOBJECT_TYPE_CHAIR
struct
{
- uint32 slots; //0
- uint32 height; //1
- uint32 onlyCreatorUse; //2
- uint32 triggeredEvent; //3
+ uint32 chairslots; // 0 chairslots, int, Min value: 1, Max value: 5, Default value: 1
+ uint32 chairheight; // 1 chairheight, int, Min value: 0, Max value: 2, Default value: 1
+ uint32 onlyCreatorUse; // 2 onlyCreatorUse, enum { false, true, }; Default: false
+ uint32 triggeredEvent; // 3 triggeredEvent, References: GameEvents, NoValue = 0
+ uint32 conditionID1; // 4 conditionID1, References: PlayerCondition, NoValue = 0
} chair;
- //8 GAMEOBJECT_TYPE_SPELL_FOCUS
+ // 8 GAMEOBJECT_TYPE_SPELL_FOCUS
struct
{
- uint32 focusId; //0
- uint32 dist; //1
- uint32 linkedTrapId; //2
- uint32 serverOnly; //3
- uint32 questID; //4
- uint32 large; //5
- uint32 floatingTooltip; //6
+ uint32 spellFocusType; // 0 spellFocusType, References: SpellFocusObject, NoValue = 0
+ uint32 radius; // 1 radius, int, Min value: 0, Max value: 50, Default value: 10
+ uint32 linkedTrap; // 2 linkedTrap, References: GameObjects, NoValue = 0
+ uint32 serverOnly; // 3 serverOnly, enum { false, true, }; Default: false
+ uint32 questID; // 4 questID, References: QuestV2, NoValue = 0
+ uint32 GiganticAOI; // 5 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 floatingTooltip; // 6 floatingTooltip, enum { false, true, }; Default: false
+ uint32 floatOnWater; // 7 floatOnWater, enum { false, true, }; Default: false
+ uint32 conditionID1; // 8 conditionID1, References: PlayerCondition, NoValue = 0
} spellFocus;
- //9 GAMEOBJECT_TYPE_TEXT
+ // 9 GAMEOBJECT_TYPE_TEXT
struct
{
- uint32 pageID; //0
- uint32 language; //1
- uint32 pageMaterial; //2
- uint32 allowMounted; //3 Is usable while on mount/vehicle. (0/1)
+ uint32 pageID; // 0 pageID, References: PageText, NoValue = 0
+ uint32 language; // 1 language, References: Languages, NoValue = 0
+ uint32 pageMaterial; // 2 pageMaterial, References: PageTextMaterial, NoValue = 0
+ uint32 allowMounted; // 3 allowMounted, enum { false, true, }; Default: false
+ uint32 conditionID1; // 4 conditionID1, References: PlayerCondition, NoValue = 0
+ uint32 NeverUsableWhileMounted; // 5 Never Usable While Mounted, enum { false, true, }; Default: false
} text;
- //10 GAMEOBJECT_TYPE_GOOBER
- struct
- {
- uint32 lockId; //0 -> Lock.dbc
- int32 questId; //1
- uint32 eventId; //2
- uint32 autoCloseTime; //3
- uint32 customAnim; //4
- uint32 consumable; //5
- uint32 cooldown; //6
- uint32 pageId; //7
- uint32 language; //8
- uint32 pageMaterial; //9
- uint32 spellId; //10
- uint32 noDamageImmune; //11
- uint32 linkedTrapId; //12
- uint32 large; //13
- uint32 openTextID; //14 can be used to replace castBarCaption?
- uint32 closeTextID; //15
- uint32 losOK; //16 isBattlegroundObject
- uint32 allowMounted; //17 Is usable while on mount/vehicle. (0/1)
- uint32 floatingTooltip; //18
- uint32 gossipID; //19
- uint32 WorldStateSetsState; //20
+ // 10 GAMEOBJECT_TYPE_GOOBER
+ struct
+ {
+ uint32 open; // 0 open, References: Lock_, NoValue = 0
+ uint32 questID; // 1 questID, References: QuestV2, NoValue = 0
+ uint32 eventID; // 2 eventID, References: GameEvents, NoValue = 0
+ uint32 autoClose; // 3 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 3000
+ uint32 customAnim; // 4 customAnim, int, Min value: 0, Max value: 4, Default value: 0
+ uint32 consumable; // 5 consumable, enum { false, true, }; Default: false
+ uint32 cooldown; // 6 cooldown, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 pageID; // 7 pageID, References: PageText, NoValue = 0
+ uint32 language; // 8 language, References: Languages, NoValue = 0
+ uint32 pageMaterial; // 9 pageMaterial, References: PageTextMaterial, NoValue = 0
+ uint32 spell; // 10 spell, References: Spell, NoValue = 0
+ uint32 noDamageImmune; // 11 noDamageImmune, enum { false, true, }; Default: false
+ uint32 linkedTrap; // 12 linkedTrap, References: GameObjects, NoValue = 0
+ uint32 GiganticAOI; // 13 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 openTextID; // 14 openTextID, References: BroadcastText, NoValue = 0
+ uint32 closeTextID; // 15 closeTextID, References: BroadcastText, NoValue = 0
+ uint32 requireLOS; // 16 require LOS, enum { false, true, }; Default: false
+ uint32 allowMounted; // 17 allowMounted, enum { false, true, }; Default: false
+ uint32 floatingTooltip; // 18 floatingTooltip, enum { false, true, }; Default: false
+ uint32 gossipID; // 19 gossipID, References: Gossip, NoValue = 0
+ uint32 WorldStateSetsState; // 20 WorldStateSetsState, enum { false, true, }; Default: false
+ uint32 floatOnWater; // 21 floatOnWater, enum { false, true, }; Default: false
+ uint32 conditionID1; // 22 conditionID1, References: PlayerCondition, NoValue = 0
+ uint32 playerCast; // 23 playerCast, enum { false, true, }; Default: false
+ uint32 SpawnVignette; // 24 Spawn Vignette, References: vignette, NoValue = 0
+ uint32 startOpen; // 25 startOpen, enum { false, true, }; Default: false
+ uint32 DontPlayOpenAnim; // 26 Dont Play Open Anim, enum { false, true, }; Default: false
+ uint32 IgnoreBoundingBox; // 27 Ignore Bounding Box, enum { false, true, }; Default: false
+ uint32 NeverUsableWhileMounted; // 28 Never Usable While Mounted, enum { false, true, }; Default: false
+ uint32 SortFarZ; // 29 Sort Far Z, enum { false, true, }; Default: false
+ uint32 SyncAnimationtoObjectLifetime; // 30 Sync Animation to Object Lifetime (global track only), enum { false, true, }; Default: false
} goober;
- //11 GAMEOBJECT_TYPE_TRANSPORT
- struct
- {
- int32 stopFrame1; //0
- uint32 startOpen; //1
- uint32 autoCloseTime; //2 secs till autoclose = autoCloseTime / 0x10000
- uint32 pause1EventID; //3
- uint32 pause2EventID; //4
- uint32 mapId; //5
- int32 stopFrame2; //6
- uint32 unknown;
- int32 stopFrame3; //8
- uint32 unknown2;
- int32 stopFrame4; //10
+ // 11 GAMEOBJECT_TYPE_TRANSPORT
+ struct
+ {
+ uint32 Timeto2ndfloor; // 0 Time to 2nd floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 startOpen; // 1 startOpen, enum { false, true, }; Default: false
+ uint32 autoClose; // 2 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 Reached1stfloor; // 3 Reached 1st floor, References: GameEvents, NoValue = 0
+ uint32 Reached2ndfloor; // 4 Reached 2nd floor, References: GameEvents, NoValue = 0
+ int32 mapID; // 5 mapID, References: Map, NoValue = -1
+ uint32 Timeto3rdfloor; // 6 Time to 3rd floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 Reached3rdfloor; // 7 Reached 3rd floor, References: GameEvents, NoValue = 0
+ uint32 Timeto4thfloor; // 8 Time to 4th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 Reached4thfloor; // 9 Reached 4th floor, References: GameEvents, NoValue = 0
+ uint32 Timeto5thfloor; // 10 Time to 5th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 Reached5thfloor; // 11 Reached 5th floor, References: GameEvents, NoValue = 0
+ uint32 Timeto6thfloor; // 12 Time to 6th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 Reached6thfloor; // 13 Reached 6th floor, References: GameEvents, NoValue = 0
+ uint32 Timeto7thfloor; // 14 Time to 7th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 Reached7thfloor; // 15 Reached 7th floor, References: GameEvents, NoValue = 0
+ uint32 Timeto8thfloor; // 16 Time to 8th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 Reached8thfloor; // 17 Reached 8th floor, References: GameEvents, NoValue = 0
+ uint32 Timeto9thfloor; // 18 Time to 9th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 Reached9thfloor; // 19 Reached 9th floor, References: GameEvents, NoValue = 0
+ uint32 Timeto10thfloor; // 20 Time to 10th floor (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 Reached10thfloor; // 21 Reached 10th floor, References: GameEvents, NoValue = 0
+ uint32 onlychargeheightcheck; // 22 only charge height check. (yards), int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 onlychargetimecheck; // 23 only charge time check, int, Min value: 0, Max value: 65535, Default value: 0
} transport;
- //12 GAMEOBJECT_TYPE_AREADAMAGE
+ // 12 GAMEOBJECT_TYPE_AREADAMAGE
struct
{
- uint32 lockId; //0
- uint32 radius; //1
- uint32 damageMin; //2
- uint32 damageMax; //3
- uint32 damageSchool; //4
- uint32 autoCloseTime; //5 secs till autoclose = autoCloseTime / 0x10000
- uint32 openTextID; //6
- uint32 closeTextID; //7
- } areadamage;
- //13 GAMEOBJECT_TYPE_CAMERA
+ uint32 open; // 0 open, References: Lock_, NoValue = 0
+ uint32 radius; // 1 radius, int, Min value: 0, Max value: 50, Default value: 3
+ uint32 damageMin; // 2 damageMin, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 damageMax; // 3 damageMax, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 damageSchool; // 4 damageSchool, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 autoClose; // 5 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 openTextID; // 6 openTextID, References: BroadcastText, NoValue = 0
+ uint32 closeTextID; // 7 closeTextID, References: BroadcastText, NoValue = 0
+ } areaDamage;
+ // 13 GAMEOBJECT_TYPE_CAMERA
struct
{
- uint32 lockId; //0 -> Lock.dbc
- uint32 cinematicId; //1
- uint32 eventID; //2
- uint32 openTextID; //3 can be used to replace castBarCaption?
+ uint32 open; // 0 open, References: Lock_, NoValue = 0
+ uint32 camera; // 1 camera, References: CinematicSequences, NoValue = 0
+ uint32 eventID; // 2 eventID, References: GameEvents, NoValue = 0
+ uint32 openTextID; // 3 openTextID, References: BroadcastText, NoValue = 0
+ uint32 conditionID1; // 4 conditionID1, References: PlayerCondition, NoValue = 0
} camera;
- //14 GAMEOBJECT_TYPE_MAPOBJECT - empty
- //15 GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT
- struct
- {
- uint32 taxiPathId; //0
- uint32 moveSpeed; //1
- uint32 accelRate; //2
- uint32 startEventID; //3
- uint32 stopEventID; //4
- uint32 transportPhysics; //5
- uint32 mapID; //6
- uint32 worldState1; //7
- uint32 canBeStopped; //8
+ // 14 GAMEOBJECT_TYPE_MAP_OBJECT
+ struct
+ {
+ } mapobject;
+ // 15 GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT
+ struct
+ {
+ uint32 taxiPathID; // 0 taxiPathID, References: TaxiPath, NoValue = 0
+ uint32 moveSpeed; // 1 moveSpeed, int, Min value: 1, Max value: 60, Default value: 1
+ uint32 accelRate; // 2 accelRate, int, Min value: 1, Max value: 20, Default value: 1
+ uint32 startEventID; // 3 startEventID, References: GameEvents, NoValue = 0
+ uint32 stopEventID; // 4 stopEventID, References: GameEvents, NoValue = 0
+ uint32 transportPhysics; // 5 transportPhysics, References: TransportPhysics, NoValue = 0
+ int32 mapID; // 6 mapID, References: Map, NoValue = -1
+ uint32 worldState1; // 7 worldState1, References: WorldState, NoValue = 0
+ uint32 allowstopping; // 8 allow stopping, enum { false, true, }; Default: false
+ uint32 InitStopped; // 9 Init Stopped, enum { false, true, }; Default: false
+ uint32 TrueInfiniteAOI; // 10 True Infinite AOI (programmer only!), enum { false, true, }; Default: false
} moTransport;
- //16 GAMEOBJECT_TYPE_DUELFLAG - empty
- //17 GAMEOBJECT_TYPE_FISHINGNODE - empty
- //18 GAMEOBJECT_TYPE_RITUAL
- struct
- {
- uint32 reqParticipants; //0
- uint32 spellId; //1
- uint32 animSpell; //2
- uint32 ritualPersistent; //3
- uint32 casterTargetSpell; //4
- uint32 casterTargetSpellTargets; //5
- uint32 castersGrouped; //6
- uint32 ritualNoTargetCheck; //7
- } summoningRitual;
- //19 GAMEOBJECT_TYPE_MAILBOX - empty
- //20 GAMEOBJECT_TYPE_DONOTUSE - empty
- //21 GAMEOBJECT_TYPE_GUARDPOST
- struct
- {
- uint32 creatureID; //0
- uint32 charges; //1
- } guardpost;
- //22 GAMEOBJECT_TYPE_SPELLCASTER
- struct
- {
- uint32 spellId; //0
- uint32 charges; //1
- uint32 partyOnly; //2
- uint32 allowMounted; //3 Is usable while on mount/vehicle. (0/1)
- uint32 large; //4
- } spellcaster;
- //23 GAMEOBJECT_TYPE_MEETINGSTONE
- struct
- {
- uint32 minLevel; //0
- uint32 maxLevel; //1
- uint32 areaID; //2
- } meetingstone;
- //24 GAMEOBJECT_TYPE_FLAGSTAND
- struct
- {
- uint32 lockId; //0
- uint32 pickupSpell; //1
- uint32 radius; //2
- uint32 returnAura; //3
- uint32 returnSpell; //4
- uint32 noDamageImmune; //5
- uint32 openTextID; //6
- uint32 losOK; //7
- } flagstand;
- //25 GAMEOBJECT_TYPE_FISHINGHOLE
- struct
- {
- uint32 radius; //0 how close bobber must land for sending loot
- uint32 lootId; //1
- uint32 minSuccessOpens; //2
- uint32 maxSuccessOpens; //3
- uint32 lockId; //4 -> Lock.dbc; possibly 1628 for all?
- } fishinghole;
- //26 GAMEOBJECT_TYPE_FLAGDROP
- struct
- {
- uint32 lockId; //0
- uint32 eventID; //1
- uint32 pickupSpell; //2
- uint32 noDamageImmune; //3
- uint32 openTextID; //4
- } flagdrop;
- //27 GAMEOBJECT_TYPE_MINI_GAME
- struct
- {
- uint32 gameType; //0
- } miniGame;
- //29 GAMEOBJECT_TYPE_CAPTURE_POINT
- struct
- {
- uint32 radius; //0
- uint32 spell; //1
- uint32 worldState1; //2
- uint32 worldstate2; //3
- uint32 winEventID1; //4
- uint32 winEventID2; //5
- uint32 contestedEventID1; //6
- uint32 contestedEventID2; //7
- uint32 progressEventID1; //8
- uint32 progressEventID2; //9
- uint32 neutralEventID1; //10
- uint32 neutralEventID2; //11
- uint32 neutralPercent; //12
- uint32 worldstate3; //13
- uint32 minSuperiority; //14
- uint32 maxSuperiority; //15
- uint32 minTime; //16
- uint32 maxTime; //17
- uint32 large; //18
- uint32 highlight; //19
- uint32 startingValue; //20
- uint32 unidirectional; //21
- } capturePoint;
- //30 GAMEOBJECT_TYPE_AURA_GENERATOR
+ // 16 GAMEOBJECT_TYPE_DUEL_ARBITER
+ struct
+ {
+ } duelFlag;
+ // 17 GAMEOBJECT_TYPE_FISHINGNODE
+ struct
+ {
+ } fishingNode;
+ // 18 GAMEOBJECT_TYPE_RITUAL
+ struct
+ {
+ uint32 casters; // 0 casters, int, Min value: 1, Max value: 10, Default value: 1
+ uint32 spell; // 1 spell, References: Spell, NoValue = 0
+ uint32 animSpell; // 2 animSpell, References: Spell, NoValue = 0
+ uint32 ritualPersistent; // 3 ritualPersistent, enum { false, true, }; Default: false
+ uint32 casterTargetSpell; // 4 casterTargetSpell, References: Spell, NoValue = 0
+ uint32 casterTargetSpellTargets; // 5 casterTargetSpellTargets, int, Min value: 1, Max value: 10, Default value: 1
+ uint32 castersGrouped; // 6 castersGrouped, enum { false, true, }; Default: true
+ uint32 ritualNoTargetCheck; // 7 ritualNoTargetCheck, enum { false, true, }; Default: true
+ uint32 conditionID1; // 8 conditionID1, References: PlayerCondition, NoValue = 0
+ } ritual;
+ // 19 GAMEOBJECT_TYPE_MAILBOX
+ struct
+ {
+ uint32 conditionID1; // 0 conditionID1, References: PlayerCondition, NoValue = 0
+ } mailbox;
+ // 20 GAMEOBJECT_TYPE_DO_NOT_USE
+ struct
+ {
+ } DONOTUSE;
+ // 21 GAMEOBJECT_TYPE_GUARDPOST
+ struct
+ {
+ uint32 creatureID; // 0 creatureID, References: Creature, NoValue = 0
+ uint32 charges; // 1 charges, int, Min value: 0, Max value: 65535, Default value: 1
+ } guardPost;
+ // 22 GAMEOBJECT_TYPE_SPELLCASTER
+ struct
+ {
+ uint32 spell; // 0 spell, References: Spell, NoValue = 0
+ int32 charges; // 1 charges, int, Min value: -1, Max value: 65535, Default value: 1
+ uint32 partyOnly; // 2 partyOnly, enum { false, true, }; Default: false
+ uint32 allowMounted; // 3 allowMounted, enum { false, true, }; Default: false
+ uint32 GiganticAOI; // 4 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 conditionID1; // 5 conditionID1, References: PlayerCondition, NoValue = 0
+ uint32 playerCast; // 6 playerCast, enum { false, true, }; Default: false
+ uint32 NeverUsableWhileMounted; // 7 Never Usable While Mounted, enum { false, true, }; Default: false
+ } spellCaster;
+ // 23 GAMEOBJECT_TYPE_MEETINGSTONE
+ struct
+ {
+ uint32 minLevel; // 0 minLevel, int, Min value: 0, Max value: 65535, Default value: 1
+ uint32 maxLevel; // 1 maxLevel, int, Min value: 1, Max value: 65535, Default value: 60
+ uint32 areaID; // 2 areaID, References: AreaTable, NoValue = 0
+ } meetingStone;
+ // 24 GAMEOBJECT_TYPE_FLAGSTAND
+ struct
+ {
+ uint32 open; // 0 open, References: Lock_, NoValue = 0
+ uint32 pickupSpell; // 1 pickupSpell, References: Spell, NoValue = 0
+ uint32 radius; // 2 radius, int, Min value: 0, Max value: 50, Default value: 0
+ uint32 returnAura; // 3 returnAura, References: Spell, NoValue = 0
+ uint32 returnSpell; // 4 returnSpell, References: Spell, NoValue = 0
+ uint32 noDamageImmune; // 5 noDamageImmune, enum { false, true, }; Default: false
+ uint32 openTextID; // 6 openTextID, References: BroadcastText, NoValue = 0
+ uint32 requireLOS; // 7 require LOS, enum { false, true, }; Default: true
+ uint32 conditionID1; // 8 conditionID1, References: PlayerCondition, NoValue = 0
+ uint32 playerCast; // 9 playerCast, enum { false, true, }; Default: false
+ uint32 GiganticAOI; // 10 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 InfiniteAOI; // 11 Infinite AOI, enum { false, true, }; Default: false
+ uint32 cooldown; // 12 cooldown, int, Min value: 0, Max value: 2147483647, Default value: 3000
+ } flagStand;
+ // 25 GAMEOBJECT_TYPE_FISHINGHOLE
struct
{
- uint32 startOpen; //0
- uint32 radius; //1
- uint32 auraID1; //2
- uint32 conditionID1; //3
- uint32 auraID2; //4
- uint32 conditionID2; //5
- uint32 serverOnly; //6
+ uint32 radius; // 0 radius, int, Min value: 0, Max value: 50, Default value: 0
+ uint32 chestLoot; // 1 chestLoot, References: Treasure, NoValue = 0
+ uint32 minRestock; // 2 minRestock, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 maxRestock; // 3 maxRestock, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 open; // 4 open, References: Lock_, NoValue = 0
+ } fishingHole;
+ // 26 GAMEOBJECT_TYPE_FLAGDROP
+ struct
+ {
+ uint32 open; // 0 open, References: Lock_, NoValue = 0
+ uint32 eventID; // 1 eventID, References: GameEvents, NoValue = 0
+ uint32 pickupSpell; // 2 pickupSpell, References: Spell, NoValue = 0
+ uint32 noDamageImmune; // 3 noDamageImmune, enum { false, true, }; Default: false
+ uint32 openTextID; // 4 openTextID, References: BroadcastText, NoValue = 0
+ uint32 playerCast; // 5 playerCast, enum { false, true, }; Default: false
+ uint32 ExpireDuration; // 6 Expire Duration, int, Min value: 0, Max value: 60000, Default value: 10000
+ uint32 GiganticAOI; // 7 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 InfiniteAOI; // 8 Infinite AOI, enum { false, true, }; Default: false
+ uint32 cooldown; // 9 cooldown, int, Min value: 0, Max value: 2147483647, Default value: 3000
+ } flagDrop;
+ // 27 GAMEOBJECT_TYPE_MINI_GAME
+ struct
+ {
+ } DONOTUSE3;
+ // 28 GAMEOBJECT_TYPE_DO_NOT_USE_2
+ struct
+ {
+ } DONOTUSE2;
+ // 29 GAMEOBJECT_TYPE_CONTROL_ZONE
+ struct
+ {
+ uint32 radius; // 0 radius, int, Min value: 0, Max value: 100, Default value: 10
+ uint32 spell; // 1 spell, References: Spell, NoValue = 0
+ uint32 worldState1; // 2 worldState1, References: WorldState, NoValue = 0
+ uint32 worldstate2; // 3 worldstate2, References: WorldState, NoValue = 0
+ uint32 CaptureEventHorde; // 4 Capture Event (Horde), References: GameEvents, NoValue = 0
+ uint32 CaptureEventAlliance; // 5 Capture Event (Alliance), References: GameEvents, NoValue = 0
+ uint32 ContestedEventHorde; // 6 Contested Event (Horde), References: GameEvents, NoValue = 0
+ uint32 ContestedEventAlliance; // 7 Contested Event (Alliance), References: GameEvents, NoValue = 0
+ uint32 ProgressEventHorde; // 8 Progress Event (Horde), References: GameEvents, NoValue = 0
+ uint32 ProgressEventAlliance; // 9 Progress Event (Alliance), References: GameEvents, NoValue = 0
+ uint32 NeutralEventHorde; // 10 Neutral Event (Horde), References: GameEvents, NoValue = 0
+ uint32 NeutralEventAlliance; // 11 Neutral Event (Alliance), References: GameEvents, NoValue = 0
+ uint32 neutralPercent; // 12 neutralPercent, int, Min value: 0, Max value: 100, Default value: 0
+ uint32 worldstate3; // 13 worldstate3, References: WorldState, NoValue = 0
+ uint32 minSuperiority; // 14 minSuperiority, int, Min value: 1, Max value: 65535, Default value: 1
+ uint32 maxSuperiority; // 15 maxSuperiority, int, Min value: 1, Max value: 65535, Default value: 1
+ uint32 minTime; // 16 minTime, int, Min value: 1, Max value: 65535, Default value: 1
+ uint32 maxTime; // 17 maxTime, int, Min value: 1, Max value: 65535, Default value: 1
+ uint32 GiganticAOI; // 18 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 highlight; // 19 highlight, enum { false, true, }; Default: true
+ uint32 startingValue; // 20 startingValue, int, Min value: 0, Max value: 100, Default value: 50
+ uint32 unidirectional; // 21 unidirectional, enum { false, true, }; Default: false
+ uint32 killbonustime; // 22 kill bonus time %, int, Min value: 0, Max value: 100, Default value: 0
+ uint32 speedWorldState1; // 23 speedWorldState1, References: WorldState, NoValue = 0
+ uint32 speedWorldState2; // 24 speedWorldState2, References: WorldState, NoValue = 0
+ uint32 UncontestedTime; // 25 Uncontested Time, int, Min value: 0, Max value: 65535, Default value: 0
+ uint32 FrequentHeartbeat; // 26 Frequent Heartbeat, enum { false, true, }; Default: false
+ } controlZone;
+ // 30 GAMEOBJECT_TYPE_AURA_GENERATOR
+ struct
+ {
+ uint32 startOpen; // 0 startOpen, enum { false, true, }; Default: true
+ uint32 radius; // 1 radius, int, Min value: 0, Max value: 100, Default value: 10
+ uint32 auraID1; // 2 auraID1, References: Spell, NoValue = 0
+ uint32 conditionID1; // 3 conditionID1, References: PlayerCondition, NoValue = 0
+ uint32 auraID2; // 4 auraID2, References: Spell, NoValue = 0
+ uint32 conditionID2; // 5 conditionID2, References: PlayerCondition, NoValue = 0
+ uint32 serverOnly; // 6 serverOnly, enum { false, true, }; Default: false
} auraGenerator;
- //31 GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY
+ // 31 GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY
struct
{
- uint32 mapID; //0
- uint32 difficulty; //1
+ uint32 InstanceType; // 0 Instance Type, enum { Not Instanced, Party Dungeon, Raid Dungeon, PVP Battlefield, Arena Battlefield, Scenario, }; Default: Party Dungeon
+ uint32 DifficultyNormal; // 1 Difficulty Normal, References: animationdata, NoValue = 0
+ uint32 DifficultyHeroic; // 2 Difficulty Heroic, References: animationdata, NoValue = 0
+ uint32 DifficultyEpic; // 3 Difficulty Epic, References: animationdata, NoValue = 0
+ uint32 DifficultyLegendary; // 4 Difficulty Legendary, References: animationdata, NoValue = 0
+ uint32 HeroicAttachment; // 5 Heroic Attachment, References: gameobjectdisplayinfo, NoValue = 0
+ uint32 ChallengeAttachment; // 6 Challenge Attachment, References: gameobjectdisplayinfo, NoValue = 0
+ uint32 DifficultyAnimations; // 7 Difficulty Animations, References: GameObjectDiffAnim, NoValue = 0
+ uint32 LargeAOI; // 8 Large AOI, enum { false, true, }; Default: false
+ uint32 GiganticAOI; // 9 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 Legacy; // 10 Legacy, enum { false, true, }; Default: false
} dungeonDifficulty;
- //32 GAMEOBJECT_TYPE_BARBER_CHAIR
+ // 32 GAMEOBJECT_TYPE_BARBER_CHAIR
struct
{
- uint32 chairheight; //0
- uint32 heightOffset; //1
+ uint32 chairheight; // 0 chairheight, int, Min value: 0, Max value: 2, Default value: 1
+ int32 HeightOffset; // 1 Height Offset (inches), int, Min value: -100, Max value: 100, Default value: 0
} barberChair;
- //33 GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING
- struct
- {
- uint32 intactNumHits; //0
- uint32 creditProxyCreature; //1
- uint32 state1Name; //2
- uint32 intactEvent; //3
- uint32 damagedDisplayId; //4
- uint32 damagedNumHits; //5
- uint32 empty3; //6
- uint32 empty4; //7
- uint32 empty5; //8
- uint32 damagedEvent; //9
- uint32 destroyedDisplayId; //10
- uint32 empty7; //11
- uint32 empty8; //12
- uint32 empty9; //13
- uint32 destroyedEvent; //14
- uint32 empty10; //15
- uint32 debuildingTimeSecs; //16
- uint32 empty11; //17
- uint32 destructibleData; //18
- uint32 rebuildingEvent; //19
- uint32 empty12; //20
- uint32 empty13; //21
- uint32 damageEvent; //22
- uint32 empty14; //23
- } building;
- //34 GAMEOBJECT_TYPE_GUILDBANK - empty
- //35 GAMEOBJECT_TYPE_TRAPDOOR
- struct
- {
- uint32 whenToPause; // 0
- uint32 startOpen; // 1
- uint32 autoClose; // 2
- } trapDoor;
-
- // not use for specific field access (only for output with loop by all filed), also this determinate max union size
+ // 33 GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING
+ struct
+ {
+ int32 Unused; // 0 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ uint32 CreditProxyCreature; // 1 Credit Proxy Creature, References: Creature, NoValue = 0
+ uint32 HealthRec; // 2 Health Rec, References: DestructibleHitpoint, NoValue = 0
+ uint32 IntactEvent; // 3 Intact Event, References: GameEvents, NoValue = 0
+ uint32 PVPEnabling; // 4 PVP Enabling, enum { false, true, }; Default: false
+ uint32 InteriorVisible; // 5 Interior Visible, enum { false, true, }; Default: false
+ uint32 InteriorLight; // 6 Interior Light, enum { false, true, }; Default: false
+ int32 Unused1; // 7 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ int32 Unused2; // 8 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ uint32 DamagedEvent; // 9 Damaged Event, References: GameEvents, NoValue = 0
+ int32 Unused3; // 10 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ int32 Unused4; // 11 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ int32 Unused5; // 12 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ int32 Unused6; // 13 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ uint32 DestroyedEvent; // 14 Destroyed Event, References: GameEvents, NoValue = 0
+ int32 Unused7; // 15 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ uint32 RebuildingTime; // 16 Rebuilding: Time (secs), int, Min value: 0, Max value: 65535, Default value: 0
+ int32 Unused8; // 17 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ uint32 DestructibleModelRec; // 18 Destructible Model Rec, References: DestructibleModelData, NoValue = 0
+ uint32 RebuildingEvent; // 19 Rebuilding: Event, References: GameEvents, NoValue = 0
+ int32 Unused9; // 20 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ int32 Unused10; // 21 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ uint32 DamageEvent; // 22 Damage Event, References: GameEvents, NoValue = 0
+ } destructibleBuilding;
+ // 34 GAMEOBJECT_TYPE_GUILD_BANK
+ struct
+ {
+ uint32 conditionID1; // 0 conditionID1, References: PlayerCondition, NoValue = 0
+ } guildbank;
+ // 35 GAMEOBJECT_TYPE_TRAPDOOR
+ struct
+ {
+ int32 Unused; // 0 Unused, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ uint32 startOpen; // 1 startOpen, enum { false, true, }; Default: false
+ uint32 autoClose; // 2 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 0
+ uint32 BlocksPathsDown; // 3 Blocks Paths Down, enum { false, true, }; Default: false
+ } trapdoor;
+ // 36 GAMEOBJECT_TYPE_NEW_FLAG
+ struct
+ {
+ uint32 open; // 0 open, References: Lock_, NoValue = 0
+ uint32 pickupSpell; // 1 pickupSpell, References: Spell, NoValue = 0
+ uint32 openTextID; // 2 openTextID, References: BroadcastText, NoValue = 0
+ uint32 requireLOS; // 3 require LOS, enum { false, true, }; Default: true
+ uint32 conditionID1; // 4 conditionID1, References: PlayerCondition, NoValue = 0
+ uint32 GiganticAOI; // 5 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 InfiniteAOI; // 6 Infinite AOI, enum { false, true, }; Default: false
+ uint32 ExpireDuration; // 7 Expire Duration, int, Min value: 0, Max value: 3600000, Default value: 10000
+ uint32 RespawnTime; // 8 Respawn Time, int, Min value: 0, Max value: 3600000, Default value: 20000
+ uint32 FlagDrop; // 9 Flag Drop, References: GameObjects, NoValue = 0
+ int32 ExclusiveCategory; // 10 Exclusive Category (BGs Only), int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ uint32 worldState1; // 11 worldState1, References: WorldState, NoValue = 0
+ uint32 ReturnonDefenderInteract; // 12 Return on Defender Interact, enum { false, true, }; Default: false
+ } newflag;
+ // 37 GAMEOBJECT_TYPE_NEW_FLAG_DROP
+ struct
+ {
+ uint32 open; // 0 open, References: Lock_, NoValue = 0
+ } newflagdrop;
+ // 38 GAMEOBJECT_TYPE_GARRISON_BUILDING
+ struct
+ {
+ int32 mapID; // 0 mapID, References: Map, NoValue = -1
+ } garrisonBuilding;
+ // 39 GAMEOBJECT_TYPE_GARRISON_PLOT
+ struct
+ {
+ uint32 PlotInstance; // 0 Plot Instance, References: GarrPlotInstance, NoValue = 0
+ int32 mapID; // 1 mapID, References: Map, NoValue = -1
+ } garrisonPlot;
+ // 40 GAMEOBJECT_TYPE_CLIENT_CREATURE
+ struct
+ {
+ uint32 CreatureDisplayInfo; // 0 Creature Display Info, References: CreatureDisplayInfo, NoValue = 0
+ uint32 AnimKit; // 1 Anim Kit, References: AnimKit, NoValue = 0
+ uint32 creatureID; // 2 creatureID, References: Creature, NoValue = 0
+ } clientCreature;
+ // 41 GAMEOBJECT_TYPE_CLIENT_ITEM
+ struct
+ {
+ uint32 Item; // 0 Item, References: Item, NoValue = 0
+ } clientItem;
+ // 42 GAMEOBJECT_TYPE_CAPTURE_POINT
+ struct
+ {
+ uint32 CaptureTime; // 0 Capture Time (ms), int, Min value: 0, Max value: 2147483647, Default value: 60000
+ uint32 GiganticAOI; // 1 Gigantic AOI, enum { false, true, }; Default: false
+ uint32 highlight; // 2 highlight, enum { false, true, }; Default: true
+ uint32 open; // 3 open, References: Lock_, NoValue = 0
+ uint32 AssaultBroadcastHorde; // 4 Assault Broadcast (Horde), References: BroadcastText, NoValue = 0
+ uint32 CaptureBroadcastHorde; // 5 Capture Broadcast (Horde), References: BroadcastText, NoValue = 0
+ uint32 DefendedBroadcastHorde; // 6 Defended Broadcast (Horde), References: BroadcastText, NoValue = 0
+ uint32 AssaultBroadcastAlliance; // 7 Assault Broadcast (Alliance), References: BroadcastText, NoValue = 0
+ uint32 CaptureBroadcastAlliance; // 8 Capture Broadcast (Alliance), References: BroadcastText, NoValue = 0
+ uint32 DefendedBroadcastAlliance; // 9 Defended Broadcast (Alliance), References: BroadcastText, NoValue = 0
+ uint32 worldState1; // 10 worldState1, References: WorldState, NoValue = 0
+ uint32 ContestedEventHorde; // 11 Contested Event (Horde), References: GameEvents, NoValue = 0
+ uint32 CaptureEventHorde; // 12 Capture Event (Horde), References: GameEvents, NoValue = 0
+ uint32 DefendedEventHorde; // 13 Defended Event (Horde), References: GameEvents, NoValue = 0
+ uint32 ContestedEventAlliance; // 14 Contested Event (Alliance), References: GameEvents, NoValue = 0
+ uint32 CaptureEventAlliance; // 15 Capture Event (Alliance), References: GameEvents, NoValue = 0
+ uint32 DefendedEventAlliance; // 16 Defended Event (Alliance), References: GameEvents, NoValue = 0
+ uint32 SpellVisual1; // 17 Spell Visual 1, References: SpellVisual, NoValue = 0
+ uint32 SpellVisual2; // 18 Spell Visual 2, References: SpellVisual, NoValue = 0
+ uint32 SpellVisual3; // 19 Spell Visual 3, References: SpellVisual, NoValue = 0
+ uint32 SpellVisual4; // 20 Spell Visual 4, References: SpellVisual, NoValue = 0
+ uint32 SpellVisual5; // 21 Spell Visual 5, References: SpellVisual, NoValue = 0
+ } capturePoint;
+ // 43 GAMEOBJECT_TYPE_PHASEABLE_MO
+ struct
+ {
+ int32 mapID; // 0 mapID, References: Map, NoValue = -1
+ int32 namedset; // 1 named set, int, Min value: -2147483648, Max value: 2147483647, Default value: 0
+ } phaseableMO;
+ // 44 GAMEOBJECT_TYPE_GARRISON_MONUMENT
+ struct
+ {
+ uint32 TrophyTypeID; // 0 Trophy Type ID, References: TrophyType, NoValue = 0
+ uint32 TrophyInstanceID; // 1 Trophy Instance ID, References: TrophyInstance, NoValue = 0
+ } garrisonMonument;
+ // 45 GAMEOBJECT_TYPE_GARRISON_SHIPMENT
+ struct
+ {
+ uint32 ShipmentContainer; // 0 Shipment Container, References: CharShipmentContainer, NoValue = 0
+ } garrisonShipment;
+ // 46 GAMEOBJECT_TYPE_GARRISON_MONUMENT_PLAQUE
+ struct
+ {
+ uint32 TrophyInstanceID; // 0 Trophy Instance ID, References: TrophyInstance, NoValue = 0
+ } garrisonMonumentPlaque;
struct
{
uint32 data[MAX_GAMEOBJECT_DATA];
@@ -426,7 +631,7 @@ struct GameObjectTemplate
case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.allowMounted != 0;
case GAMEOBJECT_TYPE_TEXT: return text.allowMounted != 0;
case GAMEOBJECT_TYPE_GOOBER: return goober.allowMounted != 0;
- case GAMEOBJECT_TYPE_SPELLCASTER: return spellcaster.allowMounted != 0;
+ case GAMEOBJECT_TYPE_SPELLCASTER: return spellCaster.allowMounted != 0;
default: return false;
}
}
@@ -435,17 +640,20 @@ struct GameObjectTemplate
{
switch (type)
{
- case GAMEOBJECT_TYPE_DOOR: return door.lockId;
- case GAMEOBJECT_TYPE_BUTTON: return button.lockId;
- case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.lockId;
- case GAMEOBJECT_TYPE_CHEST: return chest.lockId;
- case GAMEOBJECT_TYPE_TRAP: return trap.lockId;
- case GAMEOBJECT_TYPE_GOOBER: return goober.lockId;
- case GAMEOBJECT_TYPE_AREADAMAGE: return areadamage.lockId;
- case GAMEOBJECT_TYPE_CAMERA: return camera.lockId;
- case GAMEOBJECT_TYPE_FLAGSTAND: return flagstand.lockId;
- case GAMEOBJECT_TYPE_FISHINGHOLE:return fishinghole.lockId;
- case GAMEOBJECT_TYPE_FLAGDROP: return flagdrop.lockId;
+ case GAMEOBJECT_TYPE_DOOR: return door.open;
+ case GAMEOBJECT_TYPE_BUTTON: return button.open;
+ case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.open;
+ case GAMEOBJECT_TYPE_CHEST: return chest.open;
+ case GAMEOBJECT_TYPE_TRAP: return trap.open;
+ case GAMEOBJECT_TYPE_GOOBER: return goober.open;
+ case GAMEOBJECT_TYPE_AREADAMAGE: return areaDamage.open;
+ case GAMEOBJECT_TYPE_CAMERA: return camera.open;
+ case GAMEOBJECT_TYPE_FLAGSTAND: return flagStand.open;
+ case GAMEOBJECT_TYPE_FISHINGHOLE: return fishingHole.open;
+ case GAMEOBJECT_TYPE_FLAGDROP: return flagDrop.open;
+ case GAMEOBJECT_TYPE_NEW_FLAG: return newflag.open;
+ case GAMEOBJECT_TYPE_NEW_FLAG_DROP: return newflagdrop.open;
+ case GAMEOBJECT_TYPE_CAPTURE_POINT: return capturePoint.open;
default: return 0;
}
}
@@ -458,8 +666,8 @@ struct GameObjectTemplate
case GAMEOBJECT_TYPE_BUTTON: return button.noDamageImmune != 0;
case GAMEOBJECT_TYPE_QUESTGIVER: return questgiver.noDamageImmune != 0;
case GAMEOBJECT_TYPE_GOOBER: return goober.noDamageImmune != 0;
- case GAMEOBJECT_TYPE_FLAGSTAND: return flagstand.noDamageImmune != 0;
- case GAMEOBJECT_TYPE_FLAGDROP: return flagdrop.noDamageImmune != 0;
+ case GAMEOBJECT_TYPE_FLAGSTAND: return flagStand.noDamageImmune != 0;
+ case GAMEOBJECT_TYPE_FLAGDROP: return flagDrop.noDamageImmune != 0;
default: return true;
}
}
@@ -469,8 +677,8 @@ struct GameObjectTemplate
switch (type)
{
//case GAMEOBJECT_TYPE_TRAP: return trap.charges;
- case GAMEOBJECT_TYPE_GUARDPOST: return guardpost.charges;
- case GAMEOBJECT_TYPE_SPELLCASTER: return spellcaster.charges;
+ case GAMEOBJECT_TYPE_GUARDPOST: return guardPost.charges;
+ case GAMEOBJECT_TYPE_SPELLCASTER: return spellCaster.charges;
default: return 0;
}
}
@@ -479,9 +687,10 @@ struct GameObjectTemplate
{
switch (type)
{
- case GAMEOBJECT_TYPE_CHEST: return chest.linkedTrapId;
- case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.linkedTrapId;
- case GAMEOBJECT_TYPE_GOOBER: return goober.linkedTrapId;
+ case GAMEOBJECT_TYPE_BUTTON: return button.linkedTrap;
+ case GAMEOBJECT_TYPE_CHEST: return chest.linkedTrap;
+ case GAMEOBJECT_TYPE_SPELL_FOCUS: return spellFocus.linkedTrap;
+ case GAMEOBJECT_TYPE_GOOBER: return goober.linkedTrap;
default: return 0;
}
}
@@ -491,12 +700,13 @@ struct GameObjectTemplate
uint32 autoCloseTime = 0;
switch (type)
{
- case GAMEOBJECT_TYPE_DOOR: autoCloseTime = door.autoCloseTime; break;
- case GAMEOBJECT_TYPE_BUTTON: autoCloseTime = button.autoCloseTime; break;
- case GAMEOBJECT_TYPE_TRAP: autoCloseTime = trap.autoCloseTime; break;
- case GAMEOBJECT_TYPE_GOOBER: autoCloseTime = goober.autoCloseTime; break;
- case GAMEOBJECT_TYPE_TRANSPORT: autoCloseTime = transport.autoCloseTime; break;
- case GAMEOBJECT_TYPE_AREADAMAGE: autoCloseTime = areadamage.autoCloseTime; break;
+ case GAMEOBJECT_TYPE_DOOR: autoCloseTime = door.autoClose; break;
+ case GAMEOBJECT_TYPE_BUTTON: autoCloseTime = button.autoClose; break;
+ case GAMEOBJECT_TYPE_TRAP: autoCloseTime = trap.autoClose; break;
+ case GAMEOBJECT_TYPE_GOOBER: autoCloseTime = goober.autoClose; break;
+ case GAMEOBJECT_TYPE_TRANSPORT: autoCloseTime = transport.autoClose; break;
+ case GAMEOBJECT_TYPE_AREADAMAGE: autoCloseTime = areaDamage.autoClose; break;
+ case GAMEOBJECT_TYPE_TRAPDOOR: autoCloseTime = trapdoor.autoClose; break;
default: break;
}
return autoCloseTime / IN_MILLISECONDS; // prior to 3.0.3, conversion was / 0x10000;
@@ -506,8 +716,8 @@ struct GameObjectTemplate
{
switch (type)
{
- case GAMEOBJECT_TYPE_CHEST: return chest.lootId;
- case GAMEOBJECT_TYPE_FISHINGHOLE: return fishinghole.lootId;
+ case GAMEOBJECT_TYPE_CHEST: return chest.chestLoot;
+ case GAMEOBJECT_TYPE_FISHINGHOLE: return fishingHole.chestLoot;
default: return 0;
}
}
@@ -526,8 +736,8 @@ struct GameObjectTemplate
{
switch (type)
{
- case GAMEOBJECT_TYPE_GOOBER: return goober.eventId;
- case GAMEOBJECT_TYPE_CHEST: return chest.eventId;
+ case GAMEOBJECT_TYPE_GOOBER: return goober.eventID;
+ case GAMEOBJECT_TYPE_CHEST: return chest.triggeredEvent;
case GAMEOBJECT_TYPE_CAMERA: return camera.eventID;
default: return 0;
}
diff --git a/src/server/game/Entities/Item/Container/Bag.cpp b/src/server/game/Entities/Item/Container/Bag.cpp
index 4e33c4fe295..0e4b2990bd3 100644
--- a/src/server/game/Entities/Item/Container/Bag.cpp
+++ b/src/server/game/Entities/Item/Container/Bag.cpp
@@ -77,7 +77,7 @@ bool Bag::Create(ObjectGuid::LowType guidlow, uint32 itemid, Player const* owner
if (!itemProto || itemProto->ContainerSlots > MAX_BAG_SIZE)
return false;
- Object::_Create(guidlow, 0, HighGuid::Item);
+ Object::_Create(ObjectGuid::Create<HighGuid::Item>(guidlow));
SetEntry(itemid);
SetObjectScale(1.0f);
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index af2f75622ad..2eb4026bf07 100644
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -266,7 +266,7 @@ Item::Item()
bool Item::Create(ObjectGuid::LowType guidlow, uint32 itemid, Player const* owner)
{
- Object::_Create(guidlow, 0, HighGuid::Item);
+ Object::_Create(ObjectGuid::Create<HighGuid::Item>(guidlow));
SetEntry(itemid);
SetObjectScale(1.0f);
@@ -413,7 +413,7 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid owner_guid, Field* fi
// create item before any checks for store correct guid
// and allow use "FSetState(ITEM_REMOVED); SaveToDB();" for deleting item from DB
- Object::_Create(guid, 0, HighGuid::Item);
+ Object::_Create(ObjectGuid::Create<HighGuid::Item>(guid));
// Set entry, MUST be before proto check
SetEntry(entry);
@@ -428,8 +428,8 @@ bool Item::LoadFromDB(ObjectGuid::LowType guid, ObjectGuid owner_guid, Field* fi
SetOwnerGUID(owner_guid);
bool need_save = false; // need explicit save data at load fixes
- SetGuidValue(ITEM_FIELD_CREATOR, ObjectGuid(HighGuid::Player, fields[0].GetUInt64()));
- SetGuidValue(ITEM_FIELD_GIFTCREATOR, ObjectGuid(HighGuid::Player, fields[1].GetUInt64()));
+ SetGuidValue(ITEM_FIELD_CREATOR, ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64()));
+ SetGuidValue(ITEM_FIELD_GIFTCREATOR, ObjectGuid::Create<HighGuid::Player>(fields[1].GetUInt64()));
SetCount(fields[2].GetUInt32());
uint32 duration = fields[3].GetUInt32();
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index c99a5a3cde0..fa9634add80 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -130,11 +130,10 @@ void Object::_InitValues()
m_objectUpdated = false;
}
-void Object::_Create(ObjectGuid::LowType guidlow, uint32 entry, HighGuid guidhigh)
+void Object::_Create(ObjectGuid const& guid)
{
if (!m_uint32Values) _InitValues();
- ObjectGuid guid(guidhigh, entry, guidlow);
SetGuidValue(OBJECT_FIELD_GUID, guid);
SetUInt16Value(OBJECT_FIELD_TYPE, 0, m_objectType);
m_PackGUID.Set(guid);
@@ -1318,7 +1317,7 @@ void Object::AddDynamicValue(uint16 index, uint32 value)
}
}
-void Object::RemoveDynamicValue(uint16 index, uint32 value)
+void Object::RemoveDynamicValue(uint16 index, uint32 /*value*/)
{
ASSERT(index < _dynamicValuesCount || PrintIndexError(index, false));
/// TODO: Research if this is actually needed
@@ -1532,12 +1531,6 @@ void WorldObject::CleanupsBeforeDelete(bool /*finalCleanup*/)
transport->RemovePassenger(this);
}
-void WorldObject::_Create(ObjectGuid::LowType guidlow, HighGuid guidhigh, uint32 phaseMask)
-{
- Object::_Create(guidlow, 0, guidhigh);
- m_phaseMask = phaseMask;
-}
-
void WorldObject::RemoveFromWorld()
{
if (!IsInWorld())
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index 353dfc1b917..b989aca0b17 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -211,7 +211,7 @@ class Object
Object();
void _InitValues();
- void _Create(ObjectGuid::LowType guidlow, uint32 entry, HighGuid guidhigh);
+ void _Create(ObjectGuid const& guid);
std::string _ConcatFields(uint16 startIndex, uint16 size) const;
void _LoadIntoDataField(std::string const& data, uint32 startOffset, uint32 count);
@@ -591,7 +591,6 @@ class WorldObject : public Object, public WorldLocation
virtual void Update (uint32 /*time_diff*/) { }
- void _Create(ObjectGuid::LowType guidlow, HighGuid guidhigh, uint32 phaseMask);
virtual void RemoveFromWorld() override;
void GetNearPoint2D(float &x, float &y, float distance, float absAngle) const;
diff --git a/src/server/game/Entities/Object/ObjectGuid.cpp b/src/server/game/Entities/Object/ObjectGuid.cpp
index 41ea166a6d5..126916c4364 100644
--- a/src/server/game/Entities/Object/ObjectGuid.cpp
+++ b/src/server/game/Entities/Object/ObjectGuid.cpp
@@ -22,27 +22,60 @@
#include <sstream>
#include <iomanip>
-ObjectGuid const ObjectGuid::Empty = ObjectGuid();
+char const* TypeNames[] =
+{
+ "Null",
+ "Uniq",
+ "Player",
+ "Item",
+ "StaticDoor",
+ "Transport",
+ "Conversation",
+ "Creature",
+ "Vehicle",
+ "Pet",
+ "GameObject",
+ "DynamicObject",
+ "AreaTrigger",
+ "Corpse",
+ "LootObject",
+ "SceneObject",
+ "Scenario",
+ "AIGroup",
+ "DynamicDoor",
+ "ClientActor",
+ "Vignette",
+ "CallForHelp",
+ "AIResource",
+ "AILock",
+ "AILockTicket",
+ "ChatChannel",
+ "Party",
+ "Guild",
+ "WowAccount",
+ "BNetAccount",
+ "GMTask",
+ "MobileSession",
+ "RaidGroup",
+ "Spell",
+ "Mail",
+ "WebObj",
+ "LFGObject",
+ "LFGList",
+ "UserRouter",
+ "PVPQueueGroup",
+ "UserClient",
+ "PetBattle",
+ "UniqueUserClient",
+ "BattlePet",
+};
char const* ObjectGuid::GetTypeName(HighGuid high)
{
- switch (high)
- {
- case HighGuid::Item: return "Item";
- case HighGuid::Player: return "Player";
- case HighGuid::GameObject: return "Gameobject";
- case HighGuid::Creature: return "Creature";
- case HighGuid::Pet: return "Pet";
- case HighGuid::Vehicle: return "Vehicle";
- case HighGuid::DynamicObject: return "DynObject";
- case HighGuid::Corpse: return "Corpse";
- case HighGuid::AreaTrigger: return "AreaTrigger";
- case HighGuid::Transport: return "Transport";
- case HighGuid::Party: return "Party";
- case HighGuid::Guild: return "Guild";
- default:
- return "<unknown>";
- }
+ if (high > HighGuid::Count)
+ return "<unknown>";
+
+ return TypeNames[uint32(high)];
}
std::string ObjectGuid::ToString() const
@@ -70,7 +103,7 @@ void ObjectGuid::SetRawValue(std::vector<uint8> const& guid)
memcpy(this, guid.data(), sizeof(*this));
}
-void PackedGuid::Set(ObjectGuid guid)
+void PackedGuid::Set(ObjectGuid const& guid)
{
uint8 lowMask = 0;
uint8 highMask = 0;
@@ -133,6 +166,81 @@ std::ostream& operator<<(std::ostream& stream, ObjectGuid const& guid)
return stream;
}
+class GuidFormat
+{
+public:
+ inline static ObjectGuid Global(HighGuid type, ObjectGuid::LowType counter)
+ {
+ return ObjectGuid(uint64(uint64(type) << 58), counter);
+ }
+
+ inline static ObjectGuid RealmSpecific(HighGuid type, ObjectGuid::LowType counter)
+ {
+ return ObjectGuid(uint64(uint64(type) << 58 | uint64(realmHandle.Index) << 42), counter);
+ }
+
+ inline static ObjectGuid MapSpecific(HighGuid type, uint8 subType, uint16 mapId, uint32 serverId, uint32 entry, ObjectGuid::LowType counter)
+ {
+ return ObjectGuid(uint64((uint64(type) << 58) | (uint64(realmHandle.Index & 0x1FFF) << 42) | (uint64(mapId & 0x1FFF) << 29) | (uint64(entry & 0x7FFFFF) << 6) | (uint64(subType) & 0x3F)),
+ uint64((uint64(serverId & 0xFFFFFF) << 40) | (counter & UI64LIT(0xFFFFFFFFFF))));
+ }
+};
+
+#define GLOBAL_GUID_CREATE(highguid) template<> ObjectGuid ObjectGuid::Create<highguid>(LowType counter) { return GuidFormat::Global(highguid, counter); }
+#define REALM_GUID_CREATE(highguid) template<> ObjectGuid ObjectGuid::Create<highguid>(LowType counter) { return GuidFormat::RealmSpecific(highguid, counter); }
+#define MAP_GUID_CREATE(highguid) template<> ObjectGuid ObjectGuid::Create<highguid>(uint16 mapId, uint32 entry, LowType counter) { return GuidFormat::MapSpecific(highguid, 0, mapId, 0, entry, counter); }
+
+GLOBAL_GUID_CREATE(HighGuid::Uniq)
+GLOBAL_GUID_CREATE(HighGuid::Party)
+GLOBAL_GUID_CREATE(HighGuid::WowAccount)
+GLOBAL_GUID_CREATE(HighGuid::BNetAccount)
+GLOBAL_GUID_CREATE(HighGuid::GMTask)
+GLOBAL_GUID_CREATE(HighGuid::RaidGroup)
+GLOBAL_GUID_CREATE(HighGuid::Spell)
+GLOBAL_GUID_CREATE(HighGuid::Mail)
+GLOBAL_GUID_CREATE(HighGuid::UserRouter)
+GLOBAL_GUID_CREATE(HighGuid::PVPQueueGroup)
+GLOBAL_GUID_CREATE(HighGuid::UserClient)
+GLOBAL_GUID_CREATE(HighGuid::UniqueUserClient)
+GLOBAL_GUID_CREATE(HighGuid::BattlePet)
+REALM_GUID_CREATE(HighGuid::Player)
+REALM_GUID_CREATE(HighGuid::Item) // This is not exactly correct, there are 2 more unknown parts in highguid: (high >> 10 & 0xFF), (high >> 18 & 0xFFFFFF)
+REALM_GUID_CREATE(HighGuid::Transport)
+REALM_GUID_CREATE(HighGuid::Guild)
+MAP_GUID_CREATE(HighGuid::Conversation)
+MAP_GUID_CREATE(HighGuid::Creature)
+MAP_GUID_CREATE(HighGuid::Vehicle)
+MAP_GUID_CREATE(HighGuid::Pet)
+MAP_GUID_CREATE(HighGuid::GameObject)
+MAP_GUID_CREATE(HighGuid::DynamicObject)
+MAP_GUID_CREATE(HighGuid::AreaTrigger)
+MAP_GUID_CREATE(HighGuid::Corpse)
+MAP_GUID_CREATE(HighGuid::LootObject)
+MAP_GUID_CREATE(HighGuid::SceneObject)
+MAP_GUID_CREATE(HighGuid::Scenario)
+MAP_GUID_CREATE(HighGuid::AIGroup)
+MAP_GUID_CREATE(HighGuid::DynamicDoor)
+MAP_GUID_CREATE(HighGuid::Vignette)
+MAP_GUID_CREATE(HighGuid::CallForHelp)
+MAP_GUID_CREATE(HighGuid::AIResource)
+MAP_GUID_CREATE(HighGuid::AILock)
+MAP_GUID_CREATE(HighGuid::AILockTicket)
+
+ObjectGuid const ObjectGuid::Empty = ObjectGuid();
+ObjectGuid const ObjectGuid::TradeItem = ObjectGuid::Create<HighGuid::Uniq>(uint64(10));
+
+template<HighGuid type>
+ObjectGuid ObjectGuid::Create(LowType counter)
+{
+ static_assert(type == HighGuid::Count, "This guid type cannot be constructed using Create(LowType counter).");
+}
+
+template<HighGuid type>
+ObjectGuid ObjectGuid::Create(uint16 mapId, uint32 entry, LowType counter)
+{
+ static_assert(type == HighGuid::Count, "This guid type cannot be constructed using Create(uint16 mapId, uint32 entry, LowType counter).");
+}
+
template ObjectGuid::LowType ObjectGuidGenerator<HighGuid::Player>::Generate();
template ObjectGuid::LowType ObjectGuidGenerator<HighGuid::Creature>::Generate();
template ObjectGuid::LowType ObjectGuidGenerator<HighGuid::Pet>::Generate();
diff --git a/src/server/game/Entities/Object/ObjectGuid.h b/src/server/game/Entities/Object/ObjectGuid.h
index 7a3c05c3b37..247982a2837 100644
--- a/src/server/game/Entities/Object/ObjectGuid.h
+++ b/src/server/game/Entities/Object/ObjectGuid.h
@@ -62,7 +62,7 @@ enum class HighGuid
Uniq = 1,
Player = 2,
Item = 3,
- StaticDoor = 4,
+ StaticDoor = 4, //NYI
Transport = 5,
Conversation = 6,
Creature = 7,
@@ -77,7 +77,7 @@ enum class HighGuid
Scenario = 16,
AIGroup = 17,
DynamicDoor = 18,
- ClientActor = 19,
+ ClientActor = 19, //NYI
Vignette = 20,
CallForHelp = 21,
AIResource = 22,
@@ -89,23 +89,26 @@ enum class HighGuid
WowAccount = 28,
BNetAccount = 29,
GMTask = 30,
- MobileSession = 31,
+ MobileSession = 31, //NYI
RaidGroup = 32,
Spell = 33,
Mail = 34,
- WebObj = 35,
- LFGObject = 36,
- LFGList = 37,
+ WebObj = 35, //NYI
+ LFGObject = 36, //NYI
+ LFGList = 37, //NYI
UserRouter = 38,
PVPQueueGroup = 39,
UserClient = 40,
- PetBattle = 41,
+ PetBattle = 41, //NYI
UniqueUserClient = 42,
- BattlePet = 43
+ BattlePet = 43,
+
+ Count,
};
class ObjectGuid;
class PackedGuid;
+class GuidFormat;
struct PackedGuidReader
{
@@ -120,15 +123,21 @@ class ObjectGuid
friend std::ostream& operator<<(std::ostream& stream, ObjectGuid const& guid);
friend ByteBuffer& operator>>(ByteBuffer& buf, PackedGuidReader const& guid);
friend class PackedGuid;
+ friend class GuidFormat;
public:
static ObjectGuid const Empty;
+ static ObjectGuid const TradeItem;
typedef uint64 LowType;
+ template<HighGuid type>
+ static ObjectGuid Create(LowType counter);
+
+ template<HighGuid type>
+ static ObjectGuid Create(uint16 mapId, uint32 entry, LowType counter);
+
ObjectGuid() : _low(0), _high(0) { }
- ObjectGuid(HighGuid hi, uint32 entry, LowType counter) : _low(counter ? uint64(counter) | (uint64(entry) << 32) | (uint64(hi) << ((hi == HighGuid::Corpse || hi == HighGuid::AreaTrigger) ? 48 : 52)) : 0), _high(0) { }
- ObjectGuid(HighGuid hi, LowType counter) : _low(counter ? uint64(counter) | (uint64(hi) << ((hi == HighGuid::Corpse || hi == HighGuid::AreaTrigger) ? 48 : 52)) : 0), _high(0) { }
ObjectGuid(ObjectGuid const&) = default;
PackedGuidReader ReadAsPacked() { return PackedGuidReader(*this); }
@@ -136,24 +145,19 @@ class ObjectGuid
std::vector<uint8> GetRawValue() const;
void SetRawValue(std::vector<uint8> const& guid);
void SetRawValue(uint64 high, uint64 low) { _high = high; _low = low; }
- void Clear() { _low = 0; }
+ void Clear() { _high = 0; _low = 0; }
PackedGuid WriteAsPacked() const;
- HighGuid GetHigh() const
- {
- uint32 temp = ((uint64(_low) >> 48) & 0x0000FFFF);
- return HighGuid((temp == uint32(HighGuid::Corpse) || temp == uint32(HighGuid::AreaTrigger)) ? temp : ((temp >> 4) & 0x00000FFF));
- }
- uint32 GetEntry() const { return HasEntry() ? uint32((_low >> 32) & UI64LIT(0x00000000000FFFFF)) : 0; }
- LowType GetCounter() const
- {
- return _low & UI64LIT(0x00000000FFFFFFFF);
- }
+ HighGuid GetHigh() const { return HighGuid((_high >> 58) & 0x3F); }
+ uint32 GetRealmId() const { return uint32((_high >> 42) & 0x1FFF); }
+ uint32 GetMapId() const { return uint32((_high >> 29) & 0x1FFF); }
+ uint32 GetEntry() const { return uint32((_high >> 6) & 0x7FFFFF); }
+ LowType GetCounter() const { return _low & UI64LIT(0x000000FFFFFFFFFF); }
static LowType GetMaxCounter(HighGuid /*high*/)
{
- return UI64LIT(0xFFFFFFFF);
+ return UI64LIT(0xFFFFFFFFFF);
}
uint32 GetMaxCounter() const { return GetMaxCounter(GetHigh()); }
@@ -188,26 +192,26 @@ class ObjectGuid
bool IsAnyTypeGameObject() const { return IsGameObject() || IsMOTransport(); }
bool IsParty() const { return GetHigh() == HighGuid::Party; }
bool IsGuild() const { return GetHigh() == HighGuid::Guild; }
+ bool IsSceneObject() const { return GetHigh() == HighGuid::SceneObject; }
+ bool IsConversation() const { return GetHigh() == HighGuid::Conversation; }
static TypeID GetTypeId(HighGuid high)
{
switch (high)
{
- case HighGuid::Item: return TYPEID_ITEM;
- //case HIGHGUID_CONTAINER: return TYPEID_CONTAINER; HIGHGUID_CONTAINER==HIGHGUID_ITEM currently
- case HighGuid::Creature: return TYPEID_UNIT;
- case HighGuid::Pet: return TYPEID_UNIT;
- case HighGuid::Player: return TYPEID_PLAYER;
- case HighGuid::GameObject: return TYPEID_GAMEOBJECT;
- case HighGuid::DynamicObject: return TYPEID_DYNAMICOBJECT;
- case HighGuid::Corpse: return TYPEID_CORPSE;
- case HighGuid::AreaTrigger: return TYPEID_AREATRIGGER;
- case HighGuid::Transport: return TYPEID_GAMEOBJECT;
- case HighGuid::Vehicle: return TYPEID_UNIT;
- // unknown
- case HighGuid::Party:
- case HighGuid::Guild:
- default: return TYPEID_OBJECT;
+ case HighGuid::Item: return TYPEID_ITEM;
+ case HighGuid::Creature:
+ case HighGuid::Pet:
+ case HighGuid::Vehicle: return TYPEID_UNIT;
+ case HighGuid::Player: return TYPEID_PLAYER;
+ case HighGuid::GameObject:
+ case HighGuid::Transport: return TYPEID_GAMEOBJECT;
+ case HighGuid::DynamicObject: return TYPEID_DYNAMICOBJECT;
+ case HighGuid::Corpse: return TYPEID_CORPSE;
+ case HighGuid::AreaTrigger: return TYPEID_AREATRIGGER;
+ case HighGuid::SceneObject: return TYPEID_SCENEOBJECT;
+ case HighGuid::Conversation: return TYPEID_CONVERSATION;
+ default: return TYPEID_OBJECT;
}
}
@@ -235,13 +239,6 @@ class ObjectGuid
{
switch (high)
{
- case HighGuid::Item:
- case HighGuid::Player:
- case HighGuid::DynamicObject:
- case HighGuid::Corpse:
- case HighGuid::Transport:
- case HighGuid::Party:
- return false;
case HighGuid::GameObject:
case HighGuid::Creature:
case HighGuid::Pet:
@@ -253,6 +250,7 @@ class ObjectGuid
bool HasEntry() const { return HasEntry(GetHigh()); }
+ ObjectGuid(uint64 high, uint64 low) : _low(low), _high(high) { }
explicit ObjectGuid(uint32 const&) = delete; // no implementation, used to catch wrong type assignment
uint64 _low;
@@ -276,9 +274,9 @@ class PackedGuid
public:
explicit PackedGuid() : _packedGuid(PACKED_GUID_MIN_BUFFER_SIZE) { _packedGuid << uint16(0); }
- explicit PackedGuid(ObjectGuid guid) : _packedGuid(PACKED_GUID_MIN_BUFFER_SIZE) { Set(guid); }
+ explicit PackedGuid(ObjectGuid const& guid) : _packedGuid(PACKED_GUID_MIN_BUFFER_SIZE) { Set(guid); }
- void Set(ObjectGuid guid);
+ void Set(ObjectGuid const& guid);
size_t size() const { return _packedGuid.size(); }
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index 1e1ed30cf33..e9799a3c648 100644
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -175,7 +175,7 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c
}
Map* map = owner->GetMap();
- if (!Create(sObjectMgr->GetGenerator<HighGuid::Pet>()->Generate(), map, owner->GetPhaseMask(), petEntry, petId))
+ if (!Create(sObjectMgr->GetGenerator<HighGuid::Pet>()->Generate(), map, owner->GetPhaseMask(), petEntry))
return false;
for (auto itr : owner->GetPhases())
@@ -770,8 +770,7 @@ bool Pet::CreateBaseAtCreatureInfo(CreatureTemplate const* cinfo, Unit* owner)
bool Pet::CreateBaseAtTamed(CreatureTemplate const* cinfo, Map* map, uint32 phaseMask)
{
TC_LOG_DEBUG("entities.pet", "Pet::CreateBaseForTamed");
- uint32 petId = sObjectMgr->GeneratePetNumber();
- if (!Create(sObjectMgr->GetGenerator<HighGuid::Pet>()->Generate(), map, phaseMask, cinfo->Entry, petId))
+ if (!Create(sObjectMgr->GetGenerator<HighGuid::Pet>()->Generate(), map, phaseMask, cinfo->Entry))
return false;
setPowerType(POWER_FOCUS);
@@ -1865,13 +1864,13 @@ bool Pet::IsPermanentPetFor(Player* owner) const
}
}
-bool Pet::Create(ObjectGuid::LowType guidlow, Map* map, uint32 phaseMask, uint32 Entry, uint32 petId)
+bool Pet::Create(ObjectGuid::LowType guidlow, Map* map, uint32 phaseMask, uint32 Entry)
{
ASSERT(map);
SetMap(map);
SetPhaseMask(phaseMask, false);
- Object::_Create(guidlow, petId, HighGuid::Pet);
+ Object::_Create(ObjectGuid::Create<HighGuid::Pet>(map->GetId(), Entry, guidlow));
m_DBTableGuid = guidlow;
m_originalEntry = Entry;
diff --git a/src/server/game/Entities/Pet/Pet.h b/src/server/game/Entities/Pet/Pet.h
index 0d24c1cbd81..9d5340f5a73 100644
--- a/src/server/game/Entities/Pet/Pet.h
+++ b/src/server/game/Entities/Pet/Pet.h
@@ -55,7 +55,7 @@ class Pet : public Guardian
bool IsPermanentPetFor(Player* owner) const; // pet have tab in character windows and set UNIT_FIELD_PETNUMBER
- bool Create(ObjectGuid::LowType guidlow, Map* map, uint32 phaseMask, uint32 Entry, uint32 pet_number);
+ bool Create(ObjectGuid::LowType guidlow, Map* map, uint32 phaseMask, uint32 Entry);
bool CreateBaseAtCreature(Creature* creature);
bool CreateBaseAtCreatureInfo(CreatureTemplate const* cinfo, Unit* owner);
bool CreateBaseAtTamed(CreatureTemplate const* cinfo, Map* map, uint32 phaseMask);
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 9fd817198c5..a27a9008d63 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -85,51 +85,6 @@
#define ZONE_UPDATE_INTERVAL (1*IN_MILLISECONDS)
-enum CharacterFlags
-{
- CHARACTER_FLAG_NONE = 0x00000000,
- CHARACTER_FLAG_UNK1 = 0x00000001,
- CHARACTER_FLAG_UNK2 = 0x00000002,
- CHARACTER_LOCKED_FOR_TRANSFER = 0x00000004,
- CHARACTER_FLAG_UNK4 = 0x00000008,
- CHARACTER_FLAG_UNK5 = 0x00000010,
- CHARACTER_FLAG_UNK6 = 0x00000020,
- CHARACTER_FLAG_UNK7 = 0x00000040,
- CHARACTER_FLAG_UNK8 = 0x00000080,
- CHARACTER_FLAG_UNK9 = 0x00000100,
- CHARACTER_FLAG_UNK10 = 0x00000200,
- CHARACTER_FLAG_HIDE_HELM = 0x00000400,
- CHARACTER_FLAG_HIDE_CLOAK = 0x00000800,
- CHARACTER_FLAG_UNK13 = 0x00001000,
- CHARACTER_FLAG_GHOST = 0x00002000,
- CHARACTER_FLAG_RENAME = 0x00004000,
- CHARACTER_FLAG_UNK16 = 0x00008000,
- CHARACTER_FLAG_UNK17 = 0x00010000,
- CHARACTER_FLAG_UNK18 = 0x00020000,
- CHARACTER_FLAG_UNK19 = 0x00040000,
- CHARACTER_FLAG_UNK20 = 0x00080000,
- CHARACTER_FLAG_UNK21 = 0x00100000,
- CHARACTER_FLAG_UNK22 = 0x00200000,
- CHARACTER_FLAG_UNK23 = 0x00400000,
- CHARACTER_FLAG_UNK24 = 0x00800000,
- CHARACTER_FLAG_LOCKED_BY_BILLING = 0x01000000,
- CHARACTER_FLAG_DECLINED = 0x02000000,
- CHARACTER_FLAG_UNK27 = 0x04000000,
- CHARACTER_FLAG_UNK28 = 0x08000000,
- CHARACTER_FLAG_UNK29 = 0x10000000,
- CHARACTER_FLAG_UNK30 = 0x20000000,
- CHARACTER_FLAG_UNK31 = 0x40000000,
- CHARACTER_FLAG_UNK32 = 0x80000000
-};
-
-enum CharacterCustomizeFlags
-{
- CHAR_CUSTOMIZE_FLAG_NONE = 0x00000000,
- CHAR_CUSTOMIZE_FLAG_CUSTOMIZE = 0x00000001, // name, gender, etc...
- CHAR_CUSTOMIZE_FLAG_FACTION = 0x00010000, // name, gender, faction, etc...
- CHAR_CUSTOMIZE_FLAG_RACE = 0x00100000 // name, gender, race, etc...
-};
-
// corpse reclaim times
#define DEATH_EXPIRE_STEP (5*MINUTE)
#define MAX_DEATH_COUNT 3
@@ -982,7 +937,7 @@ bool Player::Create(ObjectGuid::LowType guidlow, CharacterCreateInfo* createInfo
// should check that skin, face, hair* are valid via DBC per race/class
// also do it in Player::BuildEnumData, Player::LoadFromDB
- Object::_Create(guidlow, 0, HighGuid::Player);
+ Object::_Create(ObjectGuid::Create<HighGuid::Player>(guidlow));
m_name = createInfo->Name;
@@ -1953,153 +1908,6 @@ void Player::InnEnter(time_t time, uint32 mapid, float x, float y, float z)
time_inn_enter = time;
}
-bool Player::BuildEnumData(PreparedQueryResult result, ByteBuffer* dataBuffer)
-{
- // 0 1 2 3 4 5 6 7
- // "SELECT characters.guid, characters.name, characters.race, characters.class, characters.gender, characters.playerBytes, characters.playerBytes2, characters.level, "
- // 8 9 10 11 12 13 14
- // "characters.zone, characters.map, characters.position_x, characters.position_y, characters.position_z, guild_member.guildid, characters.playerFlags, "
- // 15 16 17 18 19 20 21 22
- // "characters.at_login, character_pet.entry, character_pet.modelid, character_pet.level, characters.data, character_banned.guid, characters.slot, character_declinedname.genitive"
-
- Field* fields = result->Fetch();
-
- ObjectGuid guid(HighGuid::Player, fields[0].GetUInt64());
- std::string name = fields[1].GetString();
- uint8 playerRace = fields[2].GetUInt8();
- uint8 playerClass = fields[3].GetUInt8();
- uint8 gender = fields[4].GetUInt8();
- uint8 skin = uint8(fields[5].GetUInt32() & 0xFF);
- uint8 face = uint8((fields[5].GetUInt32() >> 8) & 0xFF);
- uint8 hairStyle = uint8((fields[5].GetUInt32() >> 16) & 0xFF);
- uint8 hairColor = uint8((fields[5].GetUInt32() >> 24) & 0xFF);
- uint8 facialHair = uint8(fields[6].GetUInt32() & 0xFF);
- uint8 level = fields[7].GetUInt8();
- uint32 zone = fields[8].GetUInt16();
- uint32 mapId = uint32(fields[9].GetUInt16());
- float x = fields[10].GetFloat();
- float y = fields[11].GetFloat();
- float z = fields[12].GetFloat();
- uint64 guildId = fields[13].GetUInt64();
- ObjectGuid guildGuid;
- if (guildId)
- guildGuid = ObjectGuid(HighGuid::Guild, guildId);
- uint32 playerFlags = fields[14].GetUInt32();
- uint32 atLoginFlags = fields[15].GetUInt16();
- Tokenizer equipment(fields[19].GetString(), ' ');
- uint8 slot = fields[21].GetUInt8();
-
- uint32 charFlags = 0;
- if (playerFlags & PLAYER_FLAGS_HIDE_HELM)
- charFlags |= CHARACTER_FLAG_HIDE_HELM;
-
- if (playerFlags & PLAYER_FLAGS_HIDE_CLOAK)
- charFlags |= CHARACTER_FLAG_HIDE_CLOAK;
-
- if (playerFlags & PLAYER_FLAGS_GHOST)
- charFlags |= CHARACTER_FLAG_GHOST;
-
- if (atLoginFlags & AT_LOGIN_RENAME)
- charFlags |= CHARACTER_FLAG_RENAME;
-
- if (fields[20].GetUInt32())
- charFlags |= CHARACTER_FLAG_LOCKED_BY_BILLING;
-
- if (sWorld->getBoolConfig(CONFIG_DECLINED_NAMES_USED) && !fields[22].GetString().empty())
- charFlags |= CHARACTER_FLAG_DECLINED;
-
- uint32 customizationFlag = 0;
- if (atLoginFlags & AT_LOGIN_CUSTOMIZE)
- customizationFlag = CHAR_CUSTOMIZE_FLAG_CUSTOMIZE;
- else if (atLoginFlags & AT_LOGIN_CHANGE_FACTION)
- customizationFlag = CHAR_CUSTOMIZE_FLAG_FACTION;
- else if (atLoginFlags & AT_LOGIN_CHANGE_RACE)
- customizationFlag = CHAR_CUSTOMIZE_FLAG_RACE;
-
- uint32 petDisplayId = 0;
- uint32 petLevel = 0;
- uint32 petFamily = 0;
- // show pet at selection character in character list only for non-ghost character
- if (result && !(playerFlags & PLAYER_FLAGS_GHOST) && (playerClass == CLASS_WARLOCK || playerClass == CLASS_HUNTER || playerClass == CLASS_DEATH_KNIGHT))
- {
- uint32 entry = fields[16].GetUInt32();
- CreatureTemplate const* creatureInfo = sObjectMgr->GetCreatureTemplate(entry);
- if (creatureInfo)
- {
- petDisplayId = fields[17].GetUInt32();
- petLevel = fields[18].GetUInt16();
- petFamily = creatureInfo->family;
- }
- }
-
- // Packet content flags
- *dataBuffer << guid;
- *dataBuffer << uint8(slot); // List order
- *dataBuffer << uint8(playerRace); // Race
- *dataBuffer << uint8(playerClass); // Class
- *dataBuffer << uint8(gender); // Gender
- *dataBuffer << uint8(skin); // Skin
- *dataBuffer << uint8(face); // Face
- *dataBuffer << uint8(hairStyle); // Hair style
- *dataBuffer << uint8(hairColor); // Hair color
- *dataBuffer << uint8(facialHair); // Facial hair
- *dataBuffer << uint8(level); // Level
- *dataBuffer << uint32(zone); // Zone ids
- *dataBuffer << uint32(mapId); // Map Id
- *dataBuffer << float(y); // Y
- *dataBuffer << float(x); // X
- *dataBuffer << float(z); // Z
- *dataBuffer << guildGuid;
- *dataBuffer << uint32(charFlags); // Character flag
- *dataBuffer << uint32(customizationFlag); // Character customization flags
- *dataBuffer << uint32(0); // Character flags 3
- *dataBuffer << uint32(petDisplayId); // Pet DisplayID
- *dataBuffer << uint32(petLevel); // Pet level
- *dataBuffer << uint32(petFamily); // Pet family
-
- for (int i = 0; i < 2; i++) // ProfessionIDs
- *dataBuffer << uint32(0);
-
- // Character data
- for (uint8 slot = 0; slot < INVENTORY_SLOT_BAG_END; ++slot)
- {
- uint32 visualbase = slot * 2;
- uint32 itemId = GetUInt32ValueFromArray(equipment, visualbase);
- ItemTemplate const* proto = sObjectMgr->GetItemTemplate(itemId);
- if (!proto)
- {
- *dataBuffer << uint32(0);
- *dataBuffer << uint32(0);
- *dataBuffer << uint8(0);
- continue;
- }
-
- SpellItemEnchantmentEntry const* enchant = NULL;
- uint32 enchants = GetUInt32ValueFromArray(equipment, visualbase + 1);
- for (uint8 enchantSlot = PERM_ENCHANTMENT_SLOT; enchantSlot <= TEMP_ENCHANTMENT_SLOT; ++enchantSlot)
- {
- // values stored in 2 uint16
- uint32 enchantId = 0x0000FFFF & (enchants >> enchantSlot*16);
- if (!enchantId)
- continue;
-
- enchant = sSpellItemEnchantmentStore.LookupEntry(enchantId);
- if (enchant)
- break;
- }
-
- *dataBuffer << uint32(proto->DisplayInfoID);
- *dataBuffer << uint32(enchant ? enchant->aura_id : 0);
- *dataBuffer << uint8(proto->InventoryType);
- }
-
- dataBuffer->WriteBits(uint32(name.length()), 6);
- dataBuffer->WriteBit(atLoginFlags & AT_LOGIN_FIRST);
- dataBuffer->WriteBit(0); // BoostInProgress
- dataBuffer->WriteString(name); // Name
- return true;
-}
-
void Player::ToggleAFK()
{
ToggleFlag(PLAYER_FLAGS, PLAYER_FLAGS_AFK);
@@ -4809,7 +4617,7 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
{
do
{
- if (Player* pFriend = ObjectAccessor::FindPlayer(ObjectGuid(HighGuid::Player, (*resultFriends)[0].GetUInt64())))
+ if (Player* pFriend = ObjectAccessor::FindPlayer(ObjectGuid::Create<HighGuid::Player>((*resultFriends)[0].GetUInt64())))
{
pFriend->GetSocial()->RemoveFromSocialList(playerguid, false);
sSocialMgr->SendFriendStatus(pFriend, FRIEND_REMOVED, playerguid, false);
@@ -5017,7 +4825,7 @@ void Player::DeleteOldCharacters(uint32 keepDays)
do
{
Field* fields = result->Fetch();
- Player::DeleteFromDB(ObjectGuid(HighGuid::Player, fields[0].GetUInt64()), fields[1].GetUInt32(), true, true);
+ Player::DeleteFromDB(ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64()), fields[1].GetUInt32(), true, true);
}
while (result->NextRow());
}
@@ -7592,7 +7400,7 @@ void Player::UpdateConquestCurrencyCap(uint32 currency)
void Player::SetInGuild(ObjectGuid::LowType guildId)
{
if (guildId)
- SetGuidValue(OBJECT_FIELD_DATA, ObjectGuid(HighGuid::Guild, guildId));
+ SetGuidValue(OBJECT_FIELD_DATA, ObjectGuid::Create<HighGuid::Guild>(guildId));
else
SetGuidValue(OBJECT_FIELD_DATA, ObjectGuid::Empty);
@@ -8958,7 +8766,7 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type)
loot->clear();
Group* group = GetGroup();
- bool groupRules = (group && go->GetGOInfo()->type == GAMEOBJECT_TYPE_CHEST && go->GetGOInfo()->chest.groupLootRules);
+ bool groupRules = (group && go->GetGOInfo()->type == GAMEOBJECT_TYPE_CHEST && go->GetGOInfo()->chest.usegrouplootrules);
// check current RR player and get next if necessary
if (groupRules)
@@ -8976,7 +8784,7 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type)
else if (loot_type == LOOT_FISHING_JUNK)
go->getFishLootJunk(loot, this);
- if (go->GetGOInfo()->type == GAMEOBJECT_TYPE_CHEST && go->GetGOInfo()->chest.groupLootRules)
+ if (go->GetGOInfo()->type == GAMEOBJECT_TYPE_CHEST && go->GetGOInfo()->chest.usegrouplootrules)
{
if (Group* group = GetGroup())
{
@@ -17229,7 +17037,7 @@ bool Player::LoadFromDB(ObjectGuid guid, SQLQueryHolder *holder)
return false;
}
- Object::_Create(guid.GetCounter(), 0, HighGuid::Player);
+ Object::_Create(guid);
m_name = fields[2].GetString();
@@ -17431,7 +17239,7 @@ bool Player::LoadFromDB(ObjectGuid guid, SQLQueryHolder *holder)
// currently we do not support transport in bg
else if (transLowGUID)
{
- ObjectGuid transGUID(HighGuid::Transport, transLowGUID);
+ ObjectGuid transGUID = ObjectGuid::Create<HighGuid::Transport>(transLowGUID);
Transport* transport = NULL;
if (GameObject* go = HashMapHolder<GameObject>::Find(transGUID))
@@ -18155,7 +17963,7 @@ void Player::_LoadInventory(PreparedQueryResult result, uint32 timeDiff)
Field* fields = result->Fetch();
if (Item* item = _LoadItem(trans, zoneId, timeDiff, fields))
{
- ObjectGuid bagGuid(HighGuid::Item, fields[11].GetUInt64());
+ ObjectGuid bagGuid = ObjectGuid::Create<HighGuid::Item>(fields[11].GetUInt64());
uint8 slot = fields[12].GetUInt8();
uint8 err = EQUIP_ERR_OK;
@@ -18275,7 +18083,7 @@ void Player::_LoadVoidStorage(PreparedQueryResult result)
uint64 itemId = fields[0].GetUInt64();
uint32 itemEntry = fields[1].GetUInt32();
uint8 slot = fields[2].GetUInt8();
- ObjectGuid creatorGuid(HighGuid::Player, fields[3].GetUInt64());
+ ObjectGuid creatorGuid = ObjectGuid::Create<HighGuid::Player>(fields[3].GetUInt64());
uint32 randomProperty = fields[4].GetUInt32();
uint32 suffixFactor = fields[5].GetUInt32();
@@ -18379,7 +18187,7 @@ Item* Player::_LoadItem(SQLTransaction& trans, uint32 zoneId, uint32 timeDiff, F
Tokenizer GUIDlist(strGUID, ' ');
GuidSet looters;
for (Tokenizer::const_iterator itr = GUIDlist.begin(); itr != GUIDlist.end(); ++itr)
- looters.insert(ObjectGuid(HighGuid::Player, uint64(strtoull(*itr, nullptr, 10))));
+ looters.insert(ObjectGuid::Create<HighGuid::Player>(uint64(strtoull(*itr, nullptr, 10))));
if (looters.size() > 1 && item->GetTemplate()->GetMaxStackSize() == 1 && item->IsSoulBound())
{
@@ -18473,7 +18281,7 @@ void Player::_LoadMailedItems(Mail* mail)
Item* item = NewItemOrBag(proto);
- if (!item->LoadFromDB(itemGuid, ObjectGuid(HighGuid::Player, fields[13].GetUInt64()), fields, itemTemplate))
+ if (!item->LoadFromDB(itemGuid, ObjectGuid::Create<HighGuid::Player>(fields[13].GetUInt64()), fields, itemTemplate))
{
TC_LOG_ERROR("entities.player", "Player::_LoadMailedItems - Item in mail (%u) doesn't exist !!!! - item guid: " UI64FMTD ", deleted from mail", mail->messageID, itemGuid);
@@ -21363,8 +21171,8 @@ void Player::RemovePetitionsAndSigns(ObjectGuid guid, uint32 type)
do // this part effectively does nothing, since the deletion / modification only takes place _after_ the PetitionQuery. Though I don't know if the result remains intact if I execute the delete query beforehand.
{ // and SendPetitionQueryOpcode reads data from the DB
Field* fields = result->Fetch();
- ObjectGuid ownerguid = ObjectGuid(HighGuid::Player, fields[0].GetUInt64());
- ObjectGuid petitionguid = ObjectGuid(HighGuid::Item, fields[1].GetUInt64());
+ ObjectGuid ownerguid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
+ ObjectGuid petitionguid = ObjectGuid::Create<HighGuid::Item>(fields[1].GetUInt64());
// send update if charter owner in game
Player* owner = ObjectAccessor::FindConnectedPlayer(ownerguid);
@@ -26393,7 +26201,7 @@ void Player::SendEquipmentSetList()
if (itr->second.IgnoreMask & (1 << i))
data << ignoredItemGuid;
else
- data << ObjectGuid(HighGuid::Item, itr->second.Items[i]);
+ data << ObjectGuid::Create<HighGuid::Item>(itr->second.Items[i]);
}
++count; // client have limit but it checked at loading and set
@@ -27543,7 +27351,7 @@ Pet* Player::SummonPet(uint32 entry, float x, float y, float z, float ang, PetTy
Map* map = GetMap();
uint32 pet_number = sObjectMgr->GeneratePetNumber();
- if (!pet->Create(sObjectMgr->GetGenerator<HighGuid::Pet>()->Generate(), map, GetPhaseMask(), entry, pet_number))
+ if (!pet->Create(sObjectMgr->GetGenerator<HighGuid::Pet>()->Generate(), map, GetPhaseMask(), entry))
{
TC_LOG_ERROR("misc", "no such creature entry %u", entry);
delete pet;
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 41291dabb68..74222bd162f 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1293,8 +1293,6 @@ class Player : public Unit, public GridObject<Player>
void Update(uint32 time) override;
- static bool BuildEnumData(PreparedQueryResult result, ByteBuffer* dataBuffer);
-
void SetInWater(bool apply);
bool IsInWater() const override { return m_isInWater; }
diff --git a/src/server/game/Entities/Player/SocialMgr.cpp b/src/server/game/Entities/Player/SocialMgr.cpp
index def232fd576..8f2a1ac6060 100644
--- a/src/server/game/Entities/Player/SocialMgr.cpp
+++ b/src/server/game/Entities/Player/SocialMgr.cpp
@@ -324,7 +324,7 @@ PlayerSocial* SocialMgr::LoadFromDB(PreparedQueryResult result, ObjectGuid const
{
Field* fields = result->Fetch();
- friendGuid = ObjectGuid(HighGuid::Player, fields[0].GetUInt64());
+ friendGuid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
flags = fields[1].GetUInt8();
note = fields[2].GetString();
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index 189c715861f..4a13ac78cdf 100644
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -58,7 +58,7 @@ bool Transport::Create(ObjectGuid::LowType guidlow, uint32 entry, uint32 mapid,
return false;
}
- Object::_Create(guidlow, 0, HighGuid::Transport);
+ Object::_Create(ObjectGuid::Create<HighGuid::Transport>(guidlow));
GameObjectTemplate const* goinfo = sObjectMgr->GetGameObjectTemplate(entry);
@@ -92,7 +92,7 @@ bool Transport::Create(ObjectGuid::LowType guidlow, uint32 entry, uint32 mapid,
SetPeriod(tInfo->pathTime);
SetEntry(goinfo->entry);
SetDisplayId(goinfo->displayId);
- SetGoState(!goinfo->moTransport.canBeStopped ? GO_STATE_READY : GO_STATE_ACTIVE);
+ SetGoState(!goinfo->moTransport.allowstopping ? GO_STATE_READY : GO_STATE_ACTIVE);
SetGoType(GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT);
SetGoAnimProgress(animprogress);
SetName(goinfo->name);
@@ -169,7 +169,7 @@ void Transport::Update(uint32 diff)
SetMoving(true);
// Enable movement
- if (GetGOInfo()->moTransport.canBeStopped)
+ if (GetGOInfo()->moTransport.allowstopping)
SetGoState(GO_STATE_ACTIVE);
if (timer >= _currentFrame->DepartureTime && timer < _currentFrame->NextArriveTime)
@@ -548,7 +548,7 @@ void Transport::UnloadStaticPassengers()
void Transport::EnableMovement(bool enabled)
{
- if (!GetGOInfo()->moTransport.canBeStopped)
+ if (!GetGOInfo()->moTransport.allowstopping)
return;
_pendingStop = !enabled;
diff --git a/src/server/game/Events/GameEventMgr.cpp b/src/server/game/Events/GameEventMgr.cpp
index 4237a5bc135..780360dc945 100644
--- a/src/server/game/Events/GameEventMgr.cpp
+++ b/src/server/game/Events/GameEventMgr.cpp
@@ -1123,7 +1123,7 @@ void GameEventMgr::UpdateEventNPCFlags(uint16 event_id)
// get the creature data from the low guid to get the entry, to be able to find out the whole guid
if (CreatureData const* data = sObjectMgr->GetCreatureData(itr->first))
{
- Creature* cr = HashMapHolder<Creature>::Find(ObjectGuid(HighGuid::Creature, data->id, itr->first));
+ Creature* cr = HashMapHolder<Creature>::Find(ObjectGuid::Create<HighGuid::Creature>(data->mapid, data->id, itr->first));
// if we found the creature, modify its npcflag
if (cr)
{
@@ -1254,7 +1254,7 @@ void GameEventMgr::GameEventUnspawn(int16 event_id)
{
sObjectMgr->RemoveCreatureFromGrid(*itr, data);
- if (Creature* creature = ObjectAccessor::GetObjectInWorld(ObjectGuid(HighGuid::Creature, data->id, *itr), (Creature*)NULL))
+ if (Creature* creature = ObjectAccessor::GetObjectInWorld(ObjectGuid::Create<HighGuid::Creature>(data->mapid, data->id, *itr), (Creature*)NULL))
creature->AddObjectToRemoveList();
}
}
@@ -1276,7 +1276,7 @@ void GameEventMgr::GameEventUnspawn(int16 event_id)
{
sObjectMgr->RemoveGameobjectFromGrid(*itr, data);
- if (GameObject* pGameobject = ObjectAccessor::GetObjectInWorld(ObjectGuid(HighGuid::GameObject, data->id, *itr), (GameObject*)NULL))
+ if (GameObject* pGameobject = ObjectAccessor::GetObjectInWorld(ObjectGuid::Create<HighGuid::GameObject>(data->mapid, data->id, *itr), (GameObject*)NULL))
pGameobject->AddObjectToRemoveList();
}
}
@@ -1302,7 +1302,7 @@ void GameEventMgr::ChangeEquipOrModel(int16 event_id, bool activate)
continue;
// Update if spawned
- Creature* creature = ObjectAccessor::GetObjectInWorld(ObjectGuid(HighGuid::Creature, data->id, itr->first), (Creature*)NULL);
+ Creature* creature = ObjectAccessor::GetObjectInWorld(ObjectGuid::Create<HighGuid::Creature>(data->mapid, data->id, itr->first), (Creature*)NULL);
if (creature)
{
if (activate)
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index dd8f61fa912..7f34b710be1 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -1381,8 +1381,8 @@ void ObjectMgr::LoadLinkedRespawn()
break;
}
- guid = ObjectGuid(HighGuid::Creature, slave->id, guidLow);
- linkedGuid = ObjectGuid(HighGuid::Creature, master->id, linkedGuidLow);
+ guid = ObjectGuid::Create<HighGuid::Creature>(slave->mapid, slave->id, guidLow);
+ linkedGuid = ObjectGuid::Create<HighGuid::Creature>(master->mapid, master->id, linkedGuidLow);
break;
}
case CREATURE_TO_GO:
@@ -1418,8 +1418,8 @@ void ObjectMgr::LoadLinkedRespawn()
break;
}
- guid = ObjectGuid(HighGuid::Creature, slave->id, guidLow);
- linkedGuid = ObjectGuid(HighGuid::GameObject, master->id, linkedGuidLow);
+ guid = ObjectGuid::Create<HighGuid::Creature>(slave->mapid, slave->id, guidLow);
+ linkedGuid = ObjectGuid::Create<HighGuid::GameObject>(master->mapid, master->id, linkedGuidLow);
break;
}
case GO_TO_GO:
@@ -1455,8 +1455,8 @@ void ObjectMgr::LoadLinkedRespawn()
break;
}
- guid = ObjectGuid(HighGuid::GameObject, slave->id, guidLow);
- linkedGuid = ObjectGuid(HighGuid::GameObject, master->id, linkedGuidLow);
+ guid = ObjectGuid::Create<HighGuid::GameObject>(slave->mapid, slave->id, guidLow);
+ linkedGuid = ObjectGuid::Create<HighGuid::GameObject>(master->mapid, master->id, linkedGuidLow);
break;
}
case GO_TO_CREATURE:
@@ -1492,8 +1492,8 @@ void ObjectMgr::LoadLinkedRespawn()
break;
}
- guid = ObjectGuid(HighGuid::GameObject, slave->id, guidLow);
- linkedGuid = ObjectGuid(HighGuid::Creature, master->id, linkedGuidLow);
+ guid = ObjectGuid::Create<HighGuid::GameObject>(slave->mapid, slave->id, guidLow);
+ linkedGuid = ObjectGuid::Create<HighGuid::Creature>(master->mapid, master->id, linkedGuidLow);
break;
}
}
@@ -1513,7 +1513,7 @@ bool ObjectMgr::SetCreatureLinkedRespawn(ObjectGuid::LowType guidLow, ObjectGuid
CreatureData const* master = GetCreatureData(guidLow);
ASSERT(master);
- ObjectGuid guid(HighGuid::Creature, master->id, guidLow);
+ ObjectGuid guid = ObjectGuid::Create<HighGuid::Creature>(master->mapid, master->id, guidLow);
if (!linkedGuidLow) // we're removing the linking
{
@@ -1544,7 +1544,7 @@ bool ObjectMgr::SetCreatureLinkedRespawn(ObjectGuid::LowType guidLow, ObjectGuid
return false;
}
- ObjectGuid linkedGuid(HighGuid::Creature, slave->id, linkedGuidLow);
+ ObjectGuid linkedGuid = ObjectGuid::Create<HighGuid::Creature>(slave->mapid, slave->id, linkedGuidLow);
_linkedRespawnStore[guid] = linkedGuid;
PreparedStatement *stmt = WorldDatabase.GetPreparedStatement(WORLD_REP_CREATURE_LINKED_RESPAWN);
@@ -2177,7 +2177,7 @@ void ObjectMgr::RemoveGameobjectFromGrid(ObjectGuid::LowType guid, GameObjectDat
Player* ObjectMgr::GetPlayerByLowGUID(ObjectGuid::LowType lowguid) const
{
- return ObjectAccessor::FindPlayer(ObjectGuid(HighGuid::Player, lowguid));
+ return ObjectAccessor::FindPlayer(ObjectGuid::Create<HighGuid::Player>(lowguid));
}
// name must be checked to correctness (if received) before call this function
@@ -2190,7 +2190,7 @@ ObjectGuid ObjectMgr::GetPlayerGUIDByName(std::string const& name) const
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (result)
- return ObjectGuid(HighGuid::Player, (*result)[0].GetUInt64());
+ return ObjectGuid::Create<HighGuid::Player>((*result)[0].GetUInt64());
return ObjectGuid::Empty;
}
@@ -5584,7 +5584,7 @@ void ObjectMgr::ReturnOrDeleteOldMails(bool serverUp)
Player* player = NULL;
if (serverUp)
- player = ObjectAccessor::FindConnectedPlayer(ObjectGuid(HighGuid::Player, m->receiver));
+ player = ObjectAccessor::FindConnectedPlayer(ObjectGuid::Create<HighGuid::Player>(m->receiver));
if (player && player->m_mailsLoaded)
{ // this code will run very improbably (the time is between 4 and 5 am, in game is online a player, who has old mail
@@ -6506,7 +6506,7 @@ inline void CheckGOLockId(GameObjectTemplate const* goInfo, uint32 dataN, uint32
return;
TC_LOG_ERROR("sql.sql", "Gameobject (Entry: %u GoType: %u) have data%d=%u but lock (Id: %u) not found.",
- goInfo->entry, goInfo->type, N, goInfo->door.lockId, goInfo->door.lockId);
+ goInfo->entry, goInfo->type, N, goInfo->door.open, goInfo->door.open);
}
inline void CheckGOLinkedTrapId(GameObjectTemplate const* goInfo, uint32 dataN, uint32 N)
@@ -6566,11 +6566,11 @@ void ObjectMgr::LoadGameObjectTemplate()
// 0 1 2 3 4 5 6 7 8 9 10 11 12
QueryResult result = WorldDatabase.Query("SELECT entry, type, displayId, name, IconName, castBarCaption, unk1, faction, flags, size, questItem1, questItem2, questItem3, "
// 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
- "questItem4, questItem5, questItem6, data0, data1, data2, data3, data4, data5, data6, data7, data8, data9, data10, data11, data12, "
+ "questItem4, questItem5, questItem6, Data0, Data1, Data2, Data3, Data4, Data5, Data6, Data7, Data8, Data9, Data10, Data11, Data12, "
// 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
- "data13, data14, data15, data16, data17, data18, data19, data20, data21, data22, data23, data24, data25, data26, data27, data28, "
- // 45 46 47 48 49 50
- "data29, data30, data31, unkInt32, AIName, ScriptName "
+ "Data13, Data14, Data15, Data16, Data17, Data18, Data19, Data20, Data21, Data22, Data23, Data24, Data25, Data26, Data27, Data28, "
+ // 45 46 47 48 49 50 51
+ "Data29, Data30, Data31, Data32, unkInt32, AIName, ScriptName "
"FROM gameobject_template");
if (!result)
@@ -6606,9 +6606,9 @@ void ObjectMgr::LoadGameObjectTemplate()
for (uint8 i = 0; i < MAX_GAMEOBJECT_DATA; ++i)
got.raw.data[i] = fields[16 + i].GetUInt32();
- got.unkInt32 = fields[48].GetInt32();
- got.AIName = fields[49].GetString();
- got.ScriptId = GetScriptId(fields[50].GetCString());
+ got.unkInt32 = fields[49].GetInt32();
+ got.AIName = fields[50].GetString();
+ got.ScriptId = GetScriptId(fields[51].GetCString());
// Checks
@@ -6616,95 +6616,95 @@ void ObjectMgr::LoadGameObjectTemplate()
{
case GAMEOBJECT_TYPE_DOOR: //0
{
- if (got.door.lockId)
- CheckGOLockId(&got, got.door.lockId, 1);
+ if (got.door.open)
+ CheckGOLockId(&got, got.door.open, 1);
CheckGONoDamageImmuneId(&got, got.door.noDamageImmune, 3);
break;
}
case GAMEOBJECT_TYPE_BUTTON: //1
{
- if (got.button.lockId)
- CheckGOLockId(&got, got.button.lockId, 1);
+ if (got.button.open)
+ CheckGOLockId(&got, got.button.open, 1);
CheckGONoDamageImmuneId(&got, got.button.noDamageImmune, 4);
break;
}
case GAMEOBJECT_TYPE_QUESTGIVER: //2
{
- if (got.questgiver.lockId)
- CheckGOLockId(&got, got.questgiver.lockId, 0);
+ if (got.questgiver.open)
+ CheckGOLockId(&got, got.questgiver.open, 0);
CheckGONoDamageImmuneId(&got, got.questgiver.noDamageImmune, 5);
break;
}
case GAMEOBJECT_TYPE_CHEST: //3
{
- if (got.chest.lockId)
- CheckGOLockId(&got, got.chest.lockId, 0);
+ if (got.chest.open)
+ CheckGOLockId(&got, got.chest.open, 0);
CheckGOConsumable(&got, got.chest.consumable, 3);
- if (got.chest.linkedTrapId) // linked trap
- CheckGOLinkedTrapId(&got, got.chest.linkedTrapId, 7);
+ if (got.chest.linkedTrap) // linked trap
+ CheckGOLinkedTrapId(&got, got.chest.linkedTrap, 7);
break;
}
case GAMEOBJECT_TYPE_TRAP: //6
{
- if (got.trap.lockId)
- CheckGOLockId(&got, got.trap.lockId, 0);
+ if (got.trap.open)
+ CheckGOLockId(&got, got.trap.open, 0);
break;
}
case GAMEOBJECT_TYPE_CHAIR: //7
- CheckAndFixGOChairHeightId(&got, got.chair.height, 1);
+ CheckAndFixGOChairHeightId(&got, got.chair.chairheight, 1);
break;
case GAMEOBJECT_TYPE_SPELL_FOCUS: //8
{
- if (got.spellFocus.focusId)
+ if (got.spellFocus.spellFocusType)
{
- if (!sSpellFocusObjectStore.LookupEntry(got.spellFocus.focusId))
+ if (!sSpellFocusObjectStore.LookupEntry(got.spellFocus.spellFocusType))
TC_LOG_ERROR("sql.sql", "GameObject (Entry: %u GoType: %u) have data0=%u but SpellFocus (Id: %u) not exist.",
- entry, got.type, got.spellFocus.focusId, got.spellFocus.focusId);
+ entry, got.type, got.spellFocus.spellFocusType, got.spellFocus.spellFocusType);
}
- if (got.spellFocus.linkedTrapId) // linked trap
- CheckGOLinkedTrapId(&got, got.spellFocus.linkedTrapId, 2);
+ if (got.spellFocus.linkedTrap) // linked trap
+ CheckGOLinkedTrapId(&got, got.spellFocus.linkedTrap, 2);
break;
}
case GAMEOBJECT_TYPE_GOOBER: //10
{
- if (got.goober.lockId)
- CheckGOLockId(&got, got.goober.lockId, 0);
+ if (got.goober.open)
+ CheckGOLockId(&got, got.goober.open, 0);
CheckGOConsumable(&got, got.goober.consumable, 3);
- if (got.goober.pageId) // pageId
+ if (got.goober.pageID) // pageId
{
- if (!GetPageText(got.goober.pageId))
+ if (!GetPageText(got.goober.pageID))
TC_LOG_ERROR("sql.sql", "GameObject (Entry: %u GoType: %u) have data7=%u but PageText (Entry %u) not exist.",
- entry, got.type, got.goober.pageId, got.goober.pageId);
+ entry, got.type, got.goober.pageID, got.goober.pageID);
}
CheckGONoDamageImmuneId(&got, got.goober.noDamageImmune, 11);
- if (got.goober.linkedTrapId) // linked trap
- CheckGOLinkedTrapId(&got, got.goober.linkedTrapId, 12);
+ if (got.goober.linkedTrap) // linked trap
+ CheckGOLinkedTrapId(&got, got.goober.linkedTrap, 12);
break;
}
case GAMEOBJECT_TYPE_AREADAMAGE: //12
{
- if (got.areadamage.lockId)
- CheckGOLockId(&got, got.areadamage.lockId, 0);
+ if (got.areaDamage.open)
+ CheckGOLockId(&got, got.areaDamage.open, 0);
break;
}
case GAMEOBJECT_TYPE_CAMERA: //13
{
- if (got.camera.lockId)
- CheckGOLockId(&got, got.camera.lockId, 0);
+ if (got.camera.open)
+ CheckGOLockId(&got, got.camera.open, 0);
break;
}
case GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT: //15
{
- if (got.moTransport.taxiPathId)
+ if (got.moTransport.taxiPathID)
{
- if (got.moTransport.taxiPathId >= sTaxiPathNodesByPath.size() || sTaxiPathNodesByPath[got.moTransport.taxiPathId].empty())
+ if (got.moTransport.taxiPathID >= sTaxiPathNodesByPath.size() || sTaxiPathNodesByPath[got.moTransport.taxiPathID].empty())
TC_LOG_ERROR("sql.sql", "GameObject (Entry: %u GoType: %u) have data0=%u but TaxiPath (Id: %u) not exist.",
- entry, got.type, got.moTransport.taxiPathId, got.moTransport.taxiPathId);
+ entry, got.type, got.moTransport.taxiPathID, got.moTransport.taxiPathID);
}
if (uint32 transportMap = got.moTransport.mapID)
_transportMaps.insert(transportMap);
@@ -6715,27 +6715,27 @@ void ObjectMgr::LoadGameObjectTemplate()
case GAMEOBJECT_TYPE_SPELLCASTER: //22
{
// always must have spell
- CheckGOSpellId(&got, got.spellcaster.spellId, 0);
+ CheckGOSpellId(&got, got.spellCaster.spell, 0);
break;
}
case GAMEOBJECT_TYPE_FLAGSTAND: //24
{
- if (got.flagstand.lockId)
- CheckGOLockId(&got, got.flagstand.lockId, 0);
- CheckGONoDamageImmuneId(&got, got.flagstand.noDamageImmune, 5);
+ if (got.flagStand.open)
+ CheckGOLockId(&got, got.flagStand.open, 0);
+ CheckGONoDamageImmuneId(&got, got.flagStand.noDamageImmune, 5);
break;
}
case GAMEOBJECT_TYPE_FISHINGHOLE: //25
{
- if (got.fishinghole.lockId)
- CheckGOLockId(&got, got.fishinghole.lockId, 4);
+ if (got.fishingHole.open)
+ CheckGOLockId(&got, got.fishingHole.open, 4);
break;
}
case GAMEOBJECT_TYPE_FLAGDROP: //26
{
- if (got.flagdrop.lockId)
- CheckGOLockId(&got, got.flagdrop.lockId, 0);
- CheckGONoDamageImmuneId(&got, got.flagdrop.noDamageImmune, 3);
+ if (got.flagDrop.open)
+ CheckGOLockId(&got, got.flagDrop.open, 0);
+ CheckGONoDamageImmuneId(&got, got.flagDrop.noDamageImmune, 3);
break;
}
case GAMEOBJECT_TYPE_BARBER_CHAIR: //32
@@ -7724,7 +7724,7 @@ void ObjectMgr::LoadGameObjectForQuests()
uint32 loot_id = (itr->second.GetLootId());
// find quest loot for GO
- if (itr->second.chest.questId || LootTemplates_Gameobject.HaveQuestLootFor(loot_id))
+ if (itr->second.chest.questID || LootTemplates_Gameobject.HaveQuestLootFor(loot_id))
{
_gameObjectForQuestStore.insert(itr->second.entry);
++count;
@@ -7733,7 +7733,7 @@ void ObjectMgr::LoadGameObjectForQuests()
}
case GAMEOBJECT_TYPE_GENERIC:
{
- if (itr->second._generic.questID > 0) //quests objects
+ if (itr->second.generic.questID > 0) //quests objects
{
_gameObjectForQuestStore.insert(itr->second.entry);
++count;
@@ -7742,7 +7742,7 @@ void ObjectMgr::LoadGameObjectForQuests()
}
case GAMEOBJECT_TYPE_GOOBER:
{
- if (itr->second.goober.questId > 0) //quests objects
+ if (itr->second.goober.questID > 0) //quests objects
{
_gameObjectForQuestStore.insert(itr->second.entry);
++count;
diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h
index 480bbc84342..ae3bef5a8df 100644
--- a/src/server/game/Grids/Notifiers/GridNotifiers.h
+++ b/src/server/game/Grids/Notifiers/GridNotifiers.h
@@ -630,10 +630,10 @@ namespace Trinity
if (go->GetGOInfo()->type != GAMEOBJECT_TYPE_SPELL_FOCUS)
return false;
- if (go->GetGOInfo()->spellFocus.focusId != i_focusId)
+ if (go->GetGOInfo()->spellFocus.spellFocusType != i_focusId)
return false;
- float dist = go->GetGOInfo()->spellFocus.dist / 2.f;
+ float dist = go->GetGOInfo()->spellFocus.radius / 2.f;
return go->IsWithinDistInMap(i_unit, dist);
}
@@ -649,7 +649,7 @@ namespace Trinity
NearestGameObjectFishingHole(WorldObject const& obj, float range) : i_obj(obj), i_range(range) { }
bool operator()(GameObject* go)
{
- if (go->GetGOInfo()->type == GAMEOBJECT_TYPE_FISHINGHOLE && go->isSpawned() && i_obj.IsWithinDistInMap(go, i_range) && i_obj.IsWithinDistInMap(go, (float)go->GetGOInfo()->fishinghole.radius))
+ if (go->GetGOInfo()->type == GAMEOBJECT_TYPE_FISHINGHOLE && go->isSpawned() && i_obj.IsWithinDistInMap(go, i_range) && i_obj.IsWithinDistInMap(go, (float)go->GetGOInfo()->fishingHole.radius))
{
i_range = i_obj.GetDistance(go);
return true;
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 8ca8c6d82f5..640410483e9 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -93,7 +93,7 @@ bool Group::Create(Player* leader)
{
ObjectGuid leaderGuid = leader->GetGUID();
- m_guid = ObjectGuid(HighGuid::Party, sGroupMgr->GenerateGroupId());
+ m_guid = ObjectGuid::Create<HighGuid::Party>(sGroupMgr->GenerateGroupId());
m_leaderGuid = leaderGuid;
m_leaderName = leader->GetName();
leader->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_GROUP_LEADER);
@@ -162,15 +162,15 @@ bool Group::Create(Player* leader)
void Group::LoadGroupFromDB(Field* fields)
{
m_dbStoreId = fields[16].GetUInt32();
- m_guid = ObjectGuid(HighGuid::Party, sGroupMgr->GenerateGroupId());
- m_leaderGuid = ObjectGuid(HighGuid::Player, fields[0].GetUInt64());
+ m_guid = ObjectGuid::Create<HighGuid::Party>(sGroupMgr->GenerateGroupId());
+ m_leaderGuid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
// group leader not exist
if (!sObjectMgr->GetPlayerNameByGUID(m_leaderGuid, m_leaderName))
return;
m_lootMethod = LootMethod(fields[1].GetUInt8());
- m_looterGuid = ObjectGuid(HighGuid::Player, fields[2].GetUInt64());
+ m_looterGuid = ObjectGuid::Create<HighGuid::Player>(fields[2].GetUInt64());
m_lootThreshold = ItemQualities(fields[3].GetUInt8());
for (uint8 i = 0; i < TARGETICONCOUNT; ++i)
@@ -192,7 +192,7 @@ void Group::LoadGroupFromDB(Field* fields)
else
m_raidDifficulty = Difficulty(r_diff);
- m_masterLooterGuid = ObjectGuid(HighGuid::Player, fields[15].GetUInt64());
+ m_masterLooterGuid = ObjectGuid::Create<HighGuid::Player>(fields[15].GetUInt64());
if (m_groupType & GROUPTYPE_LFG)
sLFGMgr->_LoadFromDB(fields, GetGUID());
@@ -201,7 +201,7 @@ void Group::LoadGroupFromDB(Field* fields)
void Group::LoadMemberFromDB(ObjectGuid::LowType guidLow, uint8 memberFlags, uint8 subgroup, uint8 roles)
{
MemberSlot member;
- member.guid = ObjectGuid(HighGuid::Player, guidLow);
+ member.guid = ObjectGuid::Create<HighGuid::Player>(guidLow);
// skip non-existed member
if (!sObjectMgr->GetPlayerNameByGUID(member.guid, member.name))
@@ -958,7 +958,7 @@ void Group::GroupLoot(Loot* loot, WorldObject* pLootedObject)
//roll for over-threshold item if it's one-player loot
if (item->Quality >= uint32(m_lootThreshold))
{
- ObjectGuid newitemGUID = ObjectGuid(HighGuid::Item, sObjectMgr->GetGenerator<HighGuid::Item>()->Generate());
+ ObjectGuid newitemGUID = ObjectGuid::Create<HighGuid::Item>(sObjectMgr->GetGenerator<HighGuid::Item>()->Generate());
Roll* r = new Roll(newitemGUID, *i);
//a vector is filled with only near party members
@@ -1042,7 +1042,7 @@ void Group::GroupLoot(Loot* loot, WorldObject* pLootedObject)
continue;
}
- ObjectGuid newitemGUID = ObjectGuid(HighGuid::Item, sObjectMgr->GetGenerator<HighGuid::Item>()->Generate());
+ ObjectGuid newitemGUID = ObjectGuid::Create<HighGuid::Item>(sObjectMgr->GetGenerator<HighGuid::Item>()->Generate());
Roll* r = new Roll(newitemGUID, *i);
//a vector is filled with only near party members
@@ -1103,7 +1103,7 @@ void Group::NeedBeforeGreed(Loot* loot, WorldObject* lootedObject)
//roll for over-threshold item if it's one-player loot
if (item->Quality >= uint32(m_lootThreshold))
{
- ObjectGuid newitemGUID = ObjectGuid(HighGuid::Item, sObjectMgr->GetGenerator<HighGuid::Item>()->Generate());
+ ObjectGuid newitemGUID = ObjectGuid::Create<HighGuid::Item>(sObjectMgr->GetGenerator<HighGuid::Item>()->Generate());
Roll* r = new Roll(newitemGUID, *i);
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
@@ -1178,7 +1178,7 @@ void Group::NeedBeforeGreed(Loot* loot, WorldObject* lootedObject)
continue;
item = sObjectMgr->GetItemTemplate(i->itemid);
- ObjectGuid newitemGUID = ObjectGuid(HighGuid::Item, sObjectMgr->GetGenerator<HighGuid::Item>()->Generate());
+ ObjectGuid newitemGUID = ObjectGuid::Create<HighGuid::Item>(sObjectMgr->GetGenerator<HighGuid::Item>()->Generate());
Roll* r = new Roll(newitemGUID, *i);
for (GroupReference* itr = GetFirstMember(); itr != NULL; itr = itr->next())
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index 5d48fdf1328..125239dd539 100644
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -199,8 +199,8 @@ void Guild::EventLogEntry::SaveToDB(SQLTransaction& trans) const
void Guild::EventLogEntry::WritePacket(WorldPacket& data, ByteBuffer& content) const
{
- ObjectGuid guid1 = ObjectGuid(HighGuid::Player, m_playerGuid1);
- ObjectGuid guid2 = ObjectGuid(HighGuid::Player, m_playerGuid2);
+ ObjectGuid guid1 = ObjectGuid::Create<HighGuid::Player>(m_playerGuid1);
+ ObjectGuid guid2 = ObjectGuid::Create<HighGuid::Player>(m_playerGuid2);
data.WriteBit(guid1[2]);
data.WriteBit(guid1[4]);
@@ -276,7 +276,7 @@ void Guild::BankEventLogEntry::SaveToDB(SQLTransaction& trans) const
void Guild::BankEventLogEntry::WritePacket(WorldPacket& data, ByteBuffer& content) const
{
- ObjectGuid logGuid = ObjectGuid(HighGuid::Player, m_playerGuid);
+ ObjectGuid logGuid = ObjectGuid::Create<HighGuid::Player>(m_playerGuid);
bool hasItem = m_eventType == GUILD_BANK_LOG_DEPOSIT_ITEM || m_eventType == GUILD_BANK_LOG_WITHDRAW_ITEM ||
m_eventType == GUILD_BANK_LOG_MOVE_ITEM || m_eventType == GUILD_BANK_LOG_MOVE_ITEM2;
@@ -1815,7 +1815,7 @@ void Guild::HandleInviteMember(WorldSession* session, std::string const& name)
ObjectGuid oldGuildGuid;
if (ObjectGuid::LowType oldId = pInvitee->GetGuildId())
- oldGuildGuid = ObjectGuid(HighGuid::Guild, oldId);
+ oldGuildGuid = ObjectGuid::Create<HighGuid::Guild>(oldId);
ObjectGuid newGuildGuid = GetGUID();
@@ -2390,7 +2390,7 @@ bool Guild::LoadFromDB(Field* fields)
{
m_id = fields[0].GetUInt64();
m_name = fields[1].GetString();
- m_leaderGuid = ObjectGuid(HighGuid::Player, fields[2].GetUInt64());
+ m_leaderGuid = ObjectGuid::Create<HighGuid::Player>(fields[2].GetUInt64());
m_emblemInfo.LoadFromDB(fields);
m_info = fields[8].GetString();
m_motd = fields[9].GetString();
@@ -2424,7 +2424,7 @@ void Guild::LoadRankFromDB(Field* fields)
bool Guild::LoadMemberFromDB(Field* fields)
{
ObjectGuid::LowType lowguid = fields[1].GetUInt64();
- Member *member = new Member(m_id, ObjectGuid(HighGuid::Player, lowguid), fields[2].GetUInt8());
+ Member *member = new Member(m_id, ObjectGuid::Create<HighGuid::Player>(lowguid), fields[2].GetUInt8());
if (!member->LoadFromDB(fields))
{
_DeleteMemberFromDB(lowguid);
@@ -2511,7 +2511,7 @@ void Guild::LoadGuildNewsLogFromDB(Field* fields)
fields[1].GetUInt32(), // guid
fields[6].GetUInt32(), // timestamp //64 bits?
GuildNews(fields[2].GetUInt8()), // type
- ObjectGuid(HighGuid::Player, fields[3].GetUInt64()), // player guid
+ ObjectGuid::Create<HighGuid::Player>(fields[3].GetUInt64()), // player guid
fields[4].GetUInt32(), // Flags
fields[5].GetUInt32())); // value
}
diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h
index c2cd60ac0a6..1481ec3b042 100644
--- a/src/server/game/Guilds/Guild.h
+++ b/src/server/game/Guilds/Guild.h
@@ -777,7 +777,7 @@ public:
// Getters
ObjectGuid::LowType GetId() const { return m_id; }
- ObjectGuid GetGUID() const { return ObjectGuid(HighGuid::Guild, m_id); }
+ ObjectGuid GetGUID() const { return ObjectGuid::Create<HighGuid::Guild>(m_id); }
ObjectGuid GetLeaderGUID() const { return m_leaderGuid; }
std::string const& GetName() const { return m_name; }
std::string const& GetMOTD() const { return m_motd; }
diff --git a/src/server/game/Guilds/GuildFinderMgr.cpp b/src/server/game/Guilds/GuildFinderMgr.cpp
index 976560a51bc..81a16a5d2f1 100644
--- a/src/server/game/Guilds/GuildFinderMgr.cpp
+++ b/src/server/game/Guilds/GuildFinderMgr.cpp
@@ -54,7 +54,7 @@ void GuildFinderMgr::LoadGuildSettings()
do
{
Field* fields = result->Fetch();
- ObjectGuid guildId(HighGuid::Guild, fields[0].GetUInt64());
+ ObjectGuid guildId = ObjectGuid::Create<HighGuid::Guild>(fields[0].GetUInt64());
uint8 availability = fields[1].GetUInt8();
uint8 classRoles = fields[2].GetUInt8();
uint8 interests = fields[3].GetUInt8();
@@ -94,8 +94,8 @@ void GuildFinderMgr::LoadMembershipRequests()
do
{
Field* fields = result->Fetch();
- ObjectGuid guildId(HighGuid::Guild, fields[0].GetUInt64());
- ObjectGuid playerId(HighGuid::Player, fields[1].GetUInt64());
+ ObjectGuid guildId = ObjectGuid::Create<HighGuid::Guild>(fields[0].GetUInt64());
+ ObjectGuid playerId = ObjectGuid::Create<HighGuid::Player>(fields[1].GetUInt64());
uint8 availability = fields[2].GetUInt8();
uint8 classRoles = fields[3].GetUInt8();
uint8 interests = fields[4].GetUInt8();
diff --git a/src/server/game/Handlers/AuctionHouseHandler.cpp b/src/server/game/Handlers/AuctionHouseHandler.cpp
index d9b78f0b9ad..ca52eeb348f 100644
--- a/src/server/game/Handlers/AuctionHouseHandler.cpp
+++ b/src/server/game/Handlers/AuctionHouseHandler.cpp
@@ -30,6 +30,8 @@
#include "Util.h"
#include "AccountMgr.h"
+#include "AuctionHousePackets.h"
+
//void called when player click on auctioneer npc
void WorldSession::HandleAuctionHelloOpcode(WorldPacket& recvData)
{
@@ -70,31 +72,14 @@ void WorldSession::SendAuctionHello(ObjectGuid guid, Creature* unit)
SendPacket(&data);
}
-//call this method when player bids, creates, or deletes auction
-void WorldSession::SendAuctionCommandResult(AuctionEntry* auction, uint32 action, uint32 errorCode, uint32 bidError)
+void WorldSession::SendAuctionCommandResult(AuctionEntry* auction, uint32 action, uint32 errorCode, uint32 /*bidError = 0*/)
{
- WorldPacket data(SMSG_AUCTION_COMMAND_RESULT);
- data << uint32(auction ? auction->Id : 0);
- data << uint32(action);
- data << uint32(errorCode);
-
- switch (errorCode)
- {
- case ERR_AUCTION_OK:
- if (action == AUCTION_PLACE_BID)
- data << uint64(auction->bid ? auction->GetAuctionOutBid() : 0);
- break;
- case ERR_AUCTION_INVENTORY:
- data << uint32(bidError);
- break;
- case ERR_AUCTION_HIGHER_BID:
- data << uint64(auction->bidder);
- data << uint64(auction->bid);
- data << uint64(auction->bid ? auction->GetAuctionOutBid() : 0);
- break;
- }
-
- SendPacket(&data);
+ WorldPackets::AuctionHousePackets::AuctionCommandResult auctionCommandResult;
+ auctionCommandResult.InitializeAuction(auction);
+ auctionCommandResult.Action = action;
+ auctionCommandResult.ErrorCode = errorCode;
+ auctionCommandResult.Write();
+ SendPacket(&auctionCommandResult.GetWorldPacket());
}
//this function sends notification, if bidder is online
@@ -445,7 +430,7 @@ void WorldSession::HandleAuctionPlaceBid(WorldPacket& recvData)
}
// impossible have online own another character (use this for speedup check in case online owner)
- ObjectGuid ownerGuid(HighGuid::Player, auction->owner);
+ ObjectGuid ownerGuid = ObjectGuid::Create<HighGuid::Player>(auction->owner);
Player* auction_owner = ObjectAccessor::FindPlayer(ownerGuid);
if (!auction_owner && sObjectMgr->GetPlayerAccountIdByGUID(ownerGuid) == player->GetSession()->GetAccountId())
{
diff --git a/src/server/game/Handlers/AuthHandler.cpp b/src/server/game/Handlers/AuthHandler.cpp
index 6ffe0b7f024..9b14a8eef81 100644
--- a/src/server/game/Handlers/AuthHandler.cpp
+++ b/src/server/game/Handlers/AuthHandler.cpp
@@ -19,76 +19,54 @@
#include "Opcodes.h"
#include "WorldSession.h"
#include "WorldPacket.h"
+#include "AuthenticationPackets.h"
void WorldSession::SendAuthResponse(uint8 code, bool queued, uint32 queuePos)
{
- ExpansionRequirementContainer const& raceExpansions = sObjectMgr->GetRaceExpansionRequirements();
- ExpansionRequirementContainer const& classExpansions = sObjectMgr->GetClassExpansionRequirements();
-
- std::list<uint32> realmsToSend;
- // Send current home realm. Also there is no need to send it later in realm queries.
- realmsToSend.push_back(realmHandle.Index);
-
- WorldPacket packet(SMSG_AUTH_RESPONSE, 1 /*bits*/ + 4 + 1 + 4 + 1 + 4 + 1 + 1 + (queued ? 4 : 0));
- packet << uint8(code);
- packet.WriteBit(code == AUTH_OK);
- packet.WriteBit(queued);
-
+ WorldPackets::Auth::AuthResponse response;
+ response.SuccessInfo.HasValue = code == AUTH_OK;
+ response.Result = code;
+ response.WaitInfo.HasValue = queued;
+ response.WaitInfo.value.WaitCount = queuePos;
if (code == AUTH_OK)
{
- packet << uint32(realmHandle.Index);
- packet << uint32(realmsToSend.size()); // RealmNamesCount
- packet << uint32(0); // BillingTimeRemaining
- packet << uint32(0); // BillingPlanFlags
- packet << uint32(0); // BillingTimeRested
- packet << uint8(Expansion()); // ActiveExpansion
- packet << uint8(Expansion()); // AccountExpansion
- packet << uint32(0); // TimeSecondsUntilPCKick
- packet << uint32(raceExpansions.size()); // Races
- packet << uint32(classExpansions.size()); // Classes
- packet << uint32(0); // Templates
- packet << uint32(0); // AccountCurrency (probably for ingame shop)
+ response.SuccessInfo.value.AccountExpansionLevel = Expansion();
+ response.SuccessInfo.value.ActiveExpansionLevel = Expansion();
+ response.SuccessInfo.value.VirtualRealmAddress = realmHandle.Index;
- for (auto realm : realmsToSend)
- {
- std::string realmName = sObjectMgr->GetRealmName(realm);
+ std::string realmName = sObjectMgr->GetRealmName(realmHandle.Index);
- packet << uint32(realm); // realmID
- packet.WriteBit(realm == realmHandle.Index);// IsHomeRealm
- packet.WriteBit(0); // IsInternalRealm = guessed
- packet.WriteBits(realmName.length(), 8);
- packet.WriteBits(realmName.length(), 8);
- packet.WriteString(realmName); // RealmNameActual
- packet.WriteString(realmName); // RealmNameNormalized
- }
+ // Send current home realm. Also there is no need to send it later in realm queries.
+ response.SuccessInfo.value.VirtualRealms.emplace_back(realmHandle.Index, true, false, realmName, realmName);
+
+ response.SuccessInfo.value.AvailableClasses = &sObjectMgr->GetClassExpansionRequirements();
+ response.SuccessInfo.value.AvailableRaces = &sObjectMgr->GetRaceExpansionRequirements();
+ }
- for (auto raceExpansion : raceExpansions)
- {
- packet << uint8(raceExpansion.first); // Race
- packet << uint8(raceExpansion.second); // RequiredExpansion
- }
+ response.Write();
+ SendPacket(&response.GetWorldPacket());
+}
- for (auto classExpansion : classExpansions)
- {
- packet << uint8(classExpansion.first); // Class
- packet << uint8(classExpansion.second); // RequiredExpansion
- }
+void WorldSession::SendAuthWaitQue(uint32 position)
+{
+ WorldPackets::Auth::AuthResponse response;
- packet.WriteBit(0); // Trial
- packet.WriteBit(0); // ForceCharacterTemplate
- packet.WriteBit(0); // NumPlayersHorde (uint16)
- packet.WriteBit(0); // NumPlayersAlliance (uint16)
- packet.WriteBit(0); // IsVeteranTrial
+ if (position == 0)
+ {
+ response.Result = AUTH_OK;
+ response.SuccessInfo.HasValue = false;
+ response.WaitInfo.HasValue = false;
}
-
- if (queued)
+ else
{
- packet << uint32(queuePos); // Queue position
- packet.WriteBit(0); // HasFCM
+ response.WaitInfo.HasValue = true;
+ response.SuccessInfo.HasValue = false;
+ response.WaitInfo.value.WaitCount = position;
+ response.Result = AUTH_WAIT_QUEUE;
}
-
- packet.FlushBits();
- SendPacket(&packet);
+
+ response.Write();
+ SendPacket(&response.GetWorldPacket());
}
void WorldSession::SendClientCacheVersion(uint32 version)
diff --git a/src/server/game/Handlers/CalendarHandler.cpp b/src/server/game/Handlers/CalendarHandler.cpp
index c4302a21b02..83302e3201f 100644
--- a/src/server/game/Handlers/CalendarHandler.cpp
+++ b/src/server/game/Handlers/CalendarHandler.cpp
@@ -451,7 +451,7 @@ void WorldSession::HandleCalendarEventInvite(WorldPacket& recvData)
if (PreparedQueryResult result = CharacterDatabase.Query(stmt))
{
Field* fields = result->Fetch();
- inviteeGuid = ObjectGuid(HighGuid::Player, fields[0].GetUInt64());
+ inviteeGuid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
inviteeTeam = Player::TeamForRace(fields[1].GetUInt8());
inviteeGuildId = Player::GetGuildIdFromDB(inviteeGuid);
}
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index e6ad38649b0..a3ed092e56a 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -21,6 +21,7 @@
#include "ArenaTeamMgr.h"
#include "Battleground.h"
#include "CalendarMgr.h"
+#include "CharacterPackets.h"
#include "Chat.h"
#include "Common.h"
#include "DatabaseEnv.h"
@@ -222,45 +223,35 @@ bool LoginQueryHolder::Initialize()
void WorldSession::HandleCharEnum(PreparedQueryResult result)
{
- uint32 charCount = 0;
- WorldPacket data(SMSG_CHAR_ENUM);
- data.WriteBit(1); // Success
- data.WriteBit(0); // IsDeleted (used for character undelete list)
-
+ WorldPackets::Character::CharEnumResult charEnum;
+ charEnum.Success = true;
+ charEnum.IsDeletedCharacters = false;
if (result)
{
_legitCharacters.clear();
- charCount = uint32(result->GetRowCount());
- data << uint32(charCount);
- data << uint32(0); // FactionChangeRestrictions
-
- data.reserve(charCount * 450); // Guessed
-
do
{
- ObjectGuid guid(HighGuid::Player, (*result)[0].GetUInt64());
+ Field* fields = result->Fetch();
+ WorldPackets::Character::CharEnumResult::CharacterInfo charInfo(fields);
- TC_LOG_INFO("network", "Loading char guid %s from account %u.", guid.ToString().c_str(), GetAccountId());
+ TC_LOG_INFO("network", "Loading char guid %s from account %u.", charInfo.Guid.ToString().c_str(), GetAccountId());
- Player::BuildEnumData(result, &data);
+ // Do not allow locked characters to login
+ if (!(charInfo.Flags & (CHARACTER_FLAG_LOCKED_FOR_TRANSFER | CHARACTER_FLAG_LOCKED_BY_BILLING)))
+ _legitCharacters.insert(charInfo.Guid);
- // Do not allow banned characters to log in
- if (!(*result)[20].GetUInt64())
- _legitCharacters.insert(guid);
+ if (!sWorld->HasCharacterNameData(charInfo.Guid)) // This can happen if characters are inserted into the database manually. Core hasn't loaded name data yet.
+ sWorld->AddCharacterNameData(charInfo.Guid, charInfo.Name, charInfo.Sex, charInfo.Race, charInfo.Class, charInfo.Level);
- if (!sWorld->HasCharacterNameData(guid)) // This can happen if characters are inserted into the database manually. Core hasn't loaded name data yet.
- sWorld->AddCharacterNameData(guid, (*result)[1].GetString(), (*result)[4].GetUInt8(), (*result)[2].GetUInt8(), (*result)[3].GetUInt8(), (*result)[7].GetUInt8());
- } while (result->NextRow());
- }
- else
- {
- data << uint32(0); // CharCount
- data << uint32(0); // FactionChangeRestrictions
+ charEnum.Characters.emplace_back(charInfo);
+ }
+ while (result->NextRow());
}
- SendPacket(&data);
+ charEnum.Write();
+ SendPacket(&charEnum.GetWorldPacket());
}
void WorldSession::HandleCharEnumOpcode(WorldPacket& /*recvData*/)
@@ -763,38 +754,23 @@ void WorldSession::HandlePlayerLoginOpcode(WorldPacket& recvData)
return;
}
+ TC_LOG_DEBUG("network", "WORLD: Recvd Player Logon Message");
+
m_playerLoading = true;
- ObjectGuid playerGuid;
- TC_LOG_DEBUG("network", "WORLD: Recvd Player Logon Message");
- playerGuid[2] = recvData.ReadBit();
- playerGuid[3] = recvData.ReadBit();
- playerGuid[0] = recvData.ReadBit();
- playerGuid[6] = recvData.ReadBit();
- playerGuid[4] = recvData.ReadBit();
- playerGuid[5] = recvData.ReadBit();
- playerGuid[1] = recvData.ReadBit();
- playerGuid[7] = recvData.ReadBit();
-
- recvData.ReadByteSeq(playerGuid[2]);
- recvData.ReadByteSeq(playerGuid[7]);
- recvData.ReadByteSeq(playerGuid[0]);
- recvData.ReadByteSeq(playerGuid[3]);
- recvData.ReadByteSeq(playerGuid[5]);
- recvData.ReadByteSeq(playerGuid[6]);
- recvData.ReadByteSeq(playerGuid[1]);
- recvData.ReadByteSeq(playerGuid[4]);
-
- TC_LOG_DEBUG("network", "Character %s logging in", playerGuid.ToString().c_str());
-
- if (!IsLegitCharacterForAccount(playerGuid))
- {
- TC_LOG_ERROR("network", "Account (%u) can't login with that character (%s).", GetAccountId(), playerGuid.ToString().c_str());
+ WorldPackets::Character::PlayerLogin playerLogin(std::move(recvData));
+ playerLogin.Read();
+
+ TC_LOG_DEBUG("network", "Character %s logging in", playerLogin.Guid.ToString().c_str());
+
+ if (!IsLegitCharacterForAccount(playerLogin.Guid))
+ {
+ TC_LOG_ERROR("network", "Account (%u) can't login with that character (%s).", GetAccountId(), playerLogin.Guid.ToString().c_str());
KickPlayer();
return;
}
- LoginQueryHolder *holder = new LoginQueryHolder(GetAccountId(), playerGuid);
+ LoginQueryHolder* holder = new LoginQueryHolder(GetAccountId(), playerLogin.Guid);
if (!holder->Initialize())
{
delete holder; // delete all unprocessed queries
@@ -1083,9 +1059,8 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
if (pCurrChar->IsGameMaster())
SendNotification(LANG_GM_ON);
- std::string IP_str = GetRemoteAddress();
TC_LOG_INFO("entities.player.character", "Account: %u (IP: %s) Login Character: [%s] (%s) Level: %d",
- GetAccountId(), IP_str.c_str(), pCurrChar->GetName().c_str(), pCurrChar->GetGUID().ToString().c_str(), pCurrChar->getLevel());
+ GetAccountId(), GetRemoteAddress().c_str(), pCurrChar->GetName().c_str(), pCurrChar->GetGUID().ToString().c_str(), pCurrChar->getLevel());
if (!pCurrChar->IsStandState() && !pCurrChar->HasUnitState(UNIT_STATE_STUNNED))
pCurrChar->SetStandState(UNIT_STAND_STATE_STAND);
diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp
index 2864bf62405..ce7cdad7247 100644
--- a/src/server/game/Handlers/MailHandler.cpp
+++ b/src/server/game/Handlers/MailHandler.cpp
@@ -553,7 +553,7 @@ void WorldSession::HandleMailTakeItem(WorldPacket& recvData)
if (m->COD > 0) //if there is COD, take COD money from player and send them to sender by mail
{
- ObjectGuid sender_guid(HighGuid::Player, m->sender);
+ ObjectGuid sender_guid = ObjectGuid::Create<HighGuid::Player>(m->sender);
Player* receiver = ObjectAccessor::FindConnectedPlayer(sender_guid);
uint32 sender_accId = 0;
@@ -707,7 +707,7 @@ void WorldSession::HandleGetMailList(WorldPacket& recvData)
switch ((*itr)->messageType)
{
case MAIL_NORMAL: // sender guid
- data << ObjectGuid(HighGuid::Player, (*itr)->sender);
+ data << ObjectGuid::Create<HighGuid::Player>((*itr)->sender);
break;
case MAIL_CREATURE:
case MAIL_GAMEOBJECT:
@@ -816,7 +816,7 @@ void WorldSession::HandleMailCreateTextItem(WorldPacket& recvData)
bodyItem->SetText(m->body);
if (m->messageType == MAIL_NORMAL)
- bodyItem->SetGuidValue(ITEM_FIELD_CREATOR, ObjectGuid(HighGuid::Player, m->sender));
+ bodyItem->SetGuidValue(ITEM_FIELD_CREATOR, ObjectGuid::Create<HighGuid::Player>(m->sender));
bodyItem->SetFlag(ITEM_FIELD_FLAGS, ITEM_FLAG_MAIL_TEXT_MASK);
@@ -871,7 +871,7 @@ void WorldSession::HandleQueryNextMailTime(WorldPacket& /*recvData*/)
if (sentSenders.count(m->sender))
continue;
- data << (m->messageType == MAIL_NORMAL ? ObjectGuid(HighGuid::Player, m->sender) : ObjectGuid::Empty); // player guid
+ data << (m->messageType == MAIL_NORMAL ? ObjectGuid::Create<HighGuid::Player>(m->sender) : ObjectGuid::Empty); // player guid
data << uint32(m->messageType != MAIL_NORMAL ? m->sender : 0); // non-player entries
data << uint32(m->messageType);
data << uint32(m->stationery);
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index bd327f32feb..df1fa4fed24 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -606,7 +606,7 @@ void WorldSession::HandleAddFriendOpcodeCallBack(PreparedQueryResult result, std
{
Field* fields = result->Fetch();
- friendGuid = ObjectGuid(HighGuid::Player, 0, fields[0].GetUInt64());
+ friendGuid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
team = Player::TeamForRace(fields[1].GetUInt8());
friendAccountId = fields[2].GetUInt32();
@@ -691,7 +691,7 @@ void WorldSession::HandleAddIgnoreOpcodeCallBack(PreparedQueryResult result)
if (result)
{
- IgnoreGuid = ObjectGuid(HighGuid::Player, (*result)[0].GetUInt64());
+ IgnoreGuid = ObjectGuid::Create<HighGuid::Player>((*result)[0].GetUInt64());
if (!IgnoreGuid.IsEmpty())
{
diff --git a/src/server/game/Handlers/PetitionsHandler.cpp b/src/server/game/Handlers/PetitionsHandler.cpp
index 53f6acfd012..93187b6bb2f 100644
--- a/src/server/game/Handlers/PetitionsHandler.cpp
+++ b/src/server/game/Handlers/PetitionsHandler.cpp
@@ -292,7 +292,7 @@ void WorldSession::HandlePetitionShowSignOpcode(WorldPacket& recvData)
for (uint8 i = 1; i <= signs; ++i)
{
Field* fields2 = result->Fetch();
- data << ObjectGuid(HighGuid::Player, fields2[0].GetUInt64()); // Player GUID
+ data << ObjectGuid::Create<HighGuid::Player>(fields2[0].GetUInt64()); // Player GUID
data << uint32(0); // there 0 ...
result->NextRow();
@@ -328,7 +328,7 @@ void WorldSession::SendPetitionQueryOpcode(ObjectGuid petitionguid)
if (result)
{
Field* fields = result->Fetch();
- ownerguid = ObjectGuid(HighGuid::Player, fields[0].GetUInt64());
+ ownerguid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
name = fields[1].GetString();
type = fields[2].GetUInt8();
}
@@ -472,7 +472,7 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket& recvData)
}
fields = result->Fetch();
- ObjectGuid ownerGuid(HighGuid::Player, fields[0].GetUInt64());
+ ObjectGuid ownerGuid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
uint64 signs = fields[1].GetUInt64();
uint8 type = fields[2].GetUInt8();
@@ -598,7 +598,7 @@ void WorldSession::HandlePetitionDeclineOpcode(WorldPacket& recvData)
return;
Field* fields = result->Fetch();
- ObjectGuid ownerguid(HighGuid::Player, 0, fields[0].GetUInt64());
+ ObjectGuid ownerguid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
Player* owner = ObjectAccessor::FindConnectedPlayer(ownerguid);
if (owner) // petition owner online
@@ -709,7 +709,7 @@ void WorldSession::HandleOfferPetitionOpcode(WorldPacket& recvData)
for (uint8 i = 1; i <= signs; ++i)
{
Field* fields2 = result->Fetch();
- data << ObjectGuid(HighGuid::Player, fields2[0].GetUInt64()); // Player GUID
+ data << ObjectGuid::Create<HighGuid::Player>(fields2[0].GetUInt64()); // Player GUID
data << uint32(0); // there 0 ...
result->NextRow();
@@ -747,7 +747,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket& recvData)
if (result)
{
Field* fields = result->Fetch();
- ownerguid = ObjectGuid(HighGuid::Player, fields[0].GetUInt64());
+ ownerguid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
name = fields[1].GetString();
type = fields[2].GetUInt8();
}
@@ -854,7 +854,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket& recvData)
for (uint8 i = 0; i < signatures; ++i)
{
Field* fields = result->Fetch();
- guild->AddMember(ObjectGuid(HighGuid::Player, fields[0].GetUInt64()));
+ guild->AddMember(ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64()));
result->NextRow();
}
}
@@ -881,7 +881,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket& recvData)
for (uint8 i = 0; i < signatures; ++i)
{
Field* fields = result->Fetch();
- ObjectGuid memberGUID(HighGuid::Player, fields[0].GetUInt64());
+ ObjectGuid memberGUID = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
TC_LOG_DEBUG("network", "PetitionsHandler: Adding arena team (guid: %u) member %s", arenaTeam->GetId(), memberGUID.ToString().c_str());
arenaTeam->AddMember(memberGUID);
result->NextRow();
diff --git a/src/server/game/Handlers/VoidStorageHandler.cpp b/src/server/game/Handlers/VoidStorageHandler.cpp
index 8b6659ba98c..d6b0f264cea 100644
--- a/src/server/game/Handlers/VoidStorageHandler.cpp
+++ b/src/server/game/Handlers/VoidStorageHandler.cpp
@@ -130,7 +130,7 @@ void WorldSession::HandleVoidStorageQuery(WorldPacket& recvData)
if (!item)
continue;
- ObjectGuid itemId(HighGuid::Item, item->ItemId);
+ ObjectGuid itemId = ObjectGuid::Create<HighGuid::Item>(item->ItemId);
ObjectGuid creatorGuid = item->CreatorGuid;
data.WriteBit(creatorGuid[3]);
@@ -387,7 +387,7 @@ void WorldSession::HandleVoidStorageTransfer(WorldPacket& recvData)
for (uint8 i = 0; i < depositCount; ++i)
{
- ObjectGuid itemId(HighGuid::Item, depositItems[i].first.ItemId);
+ ObjectGuid itemId = ObjectGuid::Create<HighGuid::Item>(depositItems[i].first.ItemId);
ObjectGuid creatorGuid = depositItems[i].first.CreatorGuid;
data.WriteBit(creatorGuid[7]);
data.WriteBit(itemId[7]);
@@ -409,7 +409,7 @@ void WorldSession::HandleVoidStorageTransfer(WorldPacket& recvData)
for (uint8 i = 0; i < withdrawCount; ++i)
{
- ObjectGuid itemId(HighGuid::Item, withdrawItems[i].ItemId);
+ ObjectGuid itemId = ObjectGuid::Create<HighGuid::Item>(withdrawItems[i].ItemId);
data.WriteBit(itemId[1]);
data.WriteBit(itemId[7]);
data.WriteBit(itemId[3]);
@@ -424,7 +424,7 @@ void WorldSession::HandleVoidStorageTransfer(WorldPacket& recvData)
for (uint8 i = 0; i < withdrawCount; ++i)
{
- ObjectGuid itemId(HighGuid::Item, withdrawItems[i].ItemId);
+ ObjectGuid itemId = ObjectGuid::Create<HighGuid::Item>(withdrawItems[i].ItemId);
data.WriteByteSeq(itemId[3]);
data.WriteByteSeq(itemId[1]);
data.WriteByteSeq(itemId[0]);
@@ -437,7 +437,7 @@ void WorldSession::HandleVoidStorageTransfer(WorldPacket& recvData)
for (uint8 i = 0; i < depositCount; ++i)
{
- ObjectGuid itemId(HighGuid::Item, depositItems[i].first.ItemId);
+ ObjectGuid itemId = ObjectGuid::Create<HighGuid::Item>(depositItems[i].first.ItemId);
ObjectGuid creatorGuid = depositItems[i].first.CreatorGuid;
data << uint32(depositItems[i].first.ItemSuffixFactor);
@@ -542,7 +542,7 @@ void WorldSession::HandleVoidSwapItem(WorldPacket& recvData)
bool usedDestSlot = player->GetVoidStorageItem(newSlot) != NULL;
ObjectGuid itemIdDest;
if (usedDestSlot)
- itemIdDest = ObjectGuid(HighGuid::Item, player->GetVoidStorageItem(newSlot)->ItemId);
+ itemIdDest = ObjectGuid::Create<HighGuid::Item>(player->GetVoidStorageItem(newSlot)->ItemId);
if (!player->SwapVoidStorageItem(oldSlot, newSlot))
{
diff --git a/src/server/game/Mails/Mail.cpp b/src/server/game/Mails/Mail.cpp
index 1eb88b622a7..3051729d49a 100644
--- a/src/server/game/Mails/Mail.cpp
+++ b/src/server/game/Mails/Mail.cpp
@@ -131,7 +131,7 @@ void MailDraft::deleteIncludedItems(SQLTransaction& trans, bool inDB /*= false*/
void MailDraft::SendReturnToSender(uint32 sender_acc, ObjectGuid::LowType sender_guid, ObjectGuid::LowType receiver_guid, SQLTransaction& trans)
{
- ObjectGuid receiverGuid(HighGuid::Player, receiver_guid);
+ ObjectGuid receiverGuid = ObjectGuid::Create<HighGuid::Player>(receiver_guid);
Player* receiver = ObjectAccessor::FindConnectedPlayer(receiverGuid);
uint32 rc_account = 0;
diff --git a/src/server/game/Maps/TransportMgr.cpp b/src/server/game/Maps/TransportMgr.cpp
index eb1ca57b1dc..98d10ff40ce 100644
--- a/src/server/game/Maps/TransportMgr.cpp
+++ b/src/server/game/Maps/TransportMgr.cpp
@@ -66,13 +66,13 @@ void TransportMgr::LoadTransportTemplates()
continue;
}
- if (goInfo->moTransport.taxiPathId >= sTaxiPathNodesByPath.size())
+ if (goInfo->moTransport.taxiPathID >= sTaxiPathNodesByPath.size())
{
- TC_LOG_ERROR("sql.sql", "Transport %u (name: %s) has an invalid path specified in `gameobject_template`.`data0` (%u) field, skipped.", entry, goInfo->name.c_str(), goInfo->moTransport.taxiPathId);
+ TC_LOG_ERROR("sql.sql", "Transport %u (name: %s) has an invalid path specified in `gameobject_template`.`Data0` (%u) field, skipped.", entry, goInfo->name.c_str(), goInfo->moTransport.taxiPathID);
continue;
}
- if (!goInfo->moTransport.taxiPathId)
+ if (!goInfo->moTransport.taxiPathID)
continue;
// paths are generated per template, saves us from generating it again in case of instanced transports
@@ -109,7 +109,7 @@ public:
void TransportMgr::GeneratePath(GameObjectTemplate const* goInfo, TransportTemplate* transport)
{
- uint32 pathId = goInfo->moTransport.taxiPathId;
+ uint32 pathId = goInfo->moTransport.taxiPathID;
TaxiPathNodeList const& path = sTaxiPathNodesByPath[pathId];
std::vector<KeyFrame>& keyFrames = transport->keyFrames;
Movement::PointsArray splinePath, allPoints;
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index a28e22b2faf..097ac61ec8a 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -292,7 +292,7 @@ enum ItemQualities
ITEM_QUALITY_EPIC = 4, // PURPLE
ITEM_QUALITY_LEGENDARY = 5, // ORANGE
ITEM_QUALITY_ARTIFACT = 6, // LIGHT YELLOW
- ITEM_QUALITY_HEIRLOOM = 7
+ ITEM_QUALITY_HEIRLOOM = 7
};
#define MAX_ITEM_QUALITY 8
@@ -853,6 +853,51 @@ enum SheathTypes
#define MAX_SHEATHETYPE 8
+enum CharacterFlags
+{
+ CHARACTER_FLAG_NONE = 0x00000000,
+ CHARACTER_FLAG_UNK1 = 0x00000001,
+ CHARACTER_FLAG_UNK2 = 0x00000002,
+ CHARACTER_FLAG_LOCKED_FOR_TRANSFER = 0x00000004,
+ CHARACTER_FLAG_UNK4 = 0x00000008,
+ CHARACTER_FLAG_UNK5 = 0x00000010,
+ CHARACTER_FLAG_UNK6 = 0x00000020,
+ CHARACTER_FLAG_UNK7 = 0x00000040,
+ CHARACTER_FLAG_UNK8 = 0x00000080,
+ CHARACTER_FLAG_UNK9 = 0x00000100,
+ CHARACTER_FLAG_UNK10 = 0x00000200,
+ CHARACTER_FLAG_HIDE_HELM = 0x00000400,
+ CHARACTER_FLAG_HIDE_CLOAK = 0x00000800,
+ CHARACTER_FLAG_UNK13 = 0x00001000,
+ CHARACTER_FLAG_GHOST = 0x00002000,
+ CHARACTER_FLAG_RENAME = 0x00004000,
+ CHARACTER_FLAG_UNK16 = 0x00008000,
+ CHARACTER_FLAG_UNK17 = 0x00010000,
+ CHARACTER_FLAG_UNK18 = 0x00020000,
+ CHARACTER_FLAG_UNK19 = 0x00040000,
+ CHARACTER_FLAG_UNK20 = 0x00080000,
+ CHARACTER_FLAG_UNK21 = 0x00100000,
+ CHARACTER_FLAG_UNK22 = 0x00200000,
+ CHARACTER_FLAG_UNK23 = 0x00400000,
+ CHARACTER_FLAG_UNK24 = 0x00800000,
+ CHARACTER_FLAG_LOCKED_BY_BILLING = 0x01000000,
+ CHARACTER_FLAG_DECLINED = 0x02000000,
+ CHARACTER_FLAG_UNK27 = 0x04000000,
+ CHARACTER_FLAG_UNK28 = 0x08000000,
+ CHARACTER_FLAG_UNK29 = 0x10000000,
+ CHARACTER_FLAG_UNK30 = 0x20000000,
+ CHARACTER_FLAG_UNK31 = 0x40000000,
+ CHARACTER_FLAG_UNK32 = 0x80000000
+};
+
+enum CharacterCustomizeFlags
+{
+ CHAR_CUSTOMIZE_FLAG_NONE = 0x00000000,
+ CHAR_CUSTOMIZE_FLAG_CUSTOMIZE = 0x00000001, // name, gender, etc...
+ CHAR_CUSTOMIZE_FLAG_FACTION = 0x00010000, // name, gender, faction, etc...
+ CHAR_CUSTOMIZE_FLAG_RACE = 0x00100000 // name, gender, race, etc...
+};
+
enum CharacterSlot
{
SLOT_HEAD = 0,
@@ -1860,58 +1905,59 @@ enum SpellPreventionType
SPELL_PREVENTION_TYPE_UNK = 3 // Only a few spells have this, but most of the should be interruptable.
};
-enum GameobjectTypes // (6.0.2.18988)
+enum GameobjectTypes // (6.0.3.19103)
{
- GAMEOBJECT_TYPE_DOOR = 0,
- GAMEOBJECT_TYPE_BUTTON = 1,
- GAMEOBJECT_TYPE_QUESTGIVER = 2,
- GAMEOBJECT_TYPE_CHEST = 3,
- GAMEOBJECT_TYPE_BINDER = 4,
- GAMEOBJECT_TYPE_GENERIC = 5,
- GAMEOBJECT_TYPE_TRAP = 6,
- GAMEOBJECT_TYPE_CHAIR = 7,
- GAMEOBJECT_TYPE_SPELL_FOCUS = 8,
- GAMEOBJECT_TYPE_TEXT = 9,
- GAMEOBJECT_TYPE_GOOBER = 10,
- GAMEOBJECT_TYPE_TRANSPORT = 11,
- GAMEOBJECT_TYPE_AREADAMAGE = 12,
- GAMEOBJECT_TYPE_CAMERA = 13,
- GAMEOBJECT_TYPE_MAP_OBJECT = 14,
- GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT = 15,
- GAMEOBJECT_TYPE_DUEL_ARBITER = 16,
- GAMEOBJECT_TYPE_FISHINGNODE = 17,
- GAMEOBJECT_TYPE_RITUAL = 18,
- GAMEOBJECT_TYPE_MAILBOX = 19,
- GAMEOBJECT_TYPE_DO_NOT_USE = 20,
- GAMEOBJECT_TYPE_GUARDPOST = 21,
- GAMEOBJECT_TYPE_SPELLCASTER = 22,
- GAMEOBJECT_TYPE_MEETINGSTONE = 23,
- GAMEOBJECT_TYPE_FLAGSTAND = 24,
- GAMEOBJECT_TYPE_FISHINGHOLE = 25,
- GAMEOBJECT_TYPE_FLAGDROP = 26,
- GAMEOBJECT_TYPE_MINI_GAME = 27,
- GAMEOBJECT_TYPE_DO_NOT_USE_2 = 28,
- GAMEOBJECT_TYPE_CONTROL_ZONE = 29,
- GAMEOBJECT_TYPE_AURA_GENERATOR = 30,
- GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY = 31,
- GAMEOBJECT_TYPE_BARBER_CHAIR = 32,
- GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING = 33,
- GAMEOBJECT_TYPE_GUILD_BANK = 34,
- GAMEOBJECT_TYPE_TRAPDOOR = 35,
- GAMEOBJECT_TYPE_NEW_FLAG = 36,
- GAMEOBJECT_TYPE_NEW_FLAG_DROP = 37,
- GAMEOBJECT_TYPE_GARRISON_BUILDING = 38,
- GAMEOBJECT_TYPE_GARRISON_PLOT = 39,
- GAMEOBJECT_TYPE_CLIENT_CREATURE = 40,
- GAMEOBJECT_TYPE_CLIENT_ITEM = 41,
- GAMEOBJECT_TYPE_CAPTURE_POINT = 42,
- GAMEOBJECT_TYPE_TROPHY = 43,
- GAMEOBJECT_TYPE_PHASEABLE_MO = 44,
- GAMEOBJECT_TYPE_SHIPMENT = 45
+ GAMEOBJECT_TYPE_DOOR = 0,
+ GAMEOBJECT_TYPE_BUTTON = 1,
+ GAMEOBJECT_TYPE_QUESTGIVER = 2,
+ GAMEOBJECT_TYPE_CHEST = 3,
+ GAMEOBJECT_TYPE_BINDER = 4,
+ GAMEOBJECT_TYPE_GENERIC = 5,
+ GAMEOBJECT_TYPE_TRAP = 6,
+ GAMEOBJECT_TYPE_CHAIR = 7,
+ GAMEOBJECT_TYPE_SPELL_FOCUS = 8,
+ GAMEOBJECT_TYPE_TEXT = 9,
+ GAMEOBJECT_TYPE_GOOBER = 10,
+ GAMEOBJECT_TYPE_TRANSPORT = 11,
+ GAMEOBJECT_TYPE_AREADAMAGE = 12,
+ GAMEOBJECT_TYPE_CAMERA = 13,
+ GAMEOBJECT_TYPE_MAP_OBJECT = 14,
+ GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT = 15,
+ GAMEOBJECT_TYPE_DUEL_ARBITER = 16,
+ GAMEOBJECT_TYPE_FISHINGNODE = 17,
+ GAMEOBJECT_TYPE_RITUAL = 18,
+ GAMEOBJECT_TYPE_MAILBOX = 19,
+ GAMEOBJECT_TYPE_DO_NOT_USE = 20,
+ GAMEOBJECT_TYPE_GUARDPOST = 21,
+ GAMEOBJECT_TYPE_SPELLCASTER = 22,
+ GAMEOBJECT_TYPE_MEETINGSTONE = 23,
+ GAMEOBJECT_TYPE_FLAGSTAND = 24,
+ GAMEOBJECT_TYPE_FISHINGHOLE = 25,
+ GAMEOBJECT_TYPE_FLAGDROP = 26,
+ GAMEOBJECT_TYPE_MINI_GAME = 27,
+ GAMEOBJECT_TYPE_DO_NOT_USE_2 = 28,
+ GAMEOBJECT_TYPE_CONTROL_ZONE = 29,
+ GAMEOBJECT_TYPE_AURA_GENERATOR = 30,
+ GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY = 31,
+ GAMEOBJECT_TYPE_BARBER_CHAIR = 32,
+ GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING = 33,
+ GAMEOBJECT_TYPE_GUILD_BANK = 34,
+ GAMEOBJECT_TYPE_TRAPDOOR = 35,
+ GAMEOBJECT_TYPE_NEW_FLAG = 36,
+ GAMEOBJECT_TYPE_NEW_FLAG_DROP = 37,
+ GAMEOBJECT_TYPE_GARRISON_BUILDING = 38,
+ GAMEOBJECT_TYPE_GARRISON_PLOT = 39,
+ GAMEOBJECT_TYPE_CLIENT_CREATURE = 40,
+ GAMEOBJECT_TYPE_CLIENT_ITEM = 41,
+ GAMEOBJECT_TYPE_CAPTURE_POINT = 42,
+ GAMEOBJECT_TYPE_PHASEABLE_MO = 43,
+ GAMEOBJECT_TYPE_GARRISON_MONUMENT = 44,
+ GAMEOBJECT_TYPE_GARRISON_SHIPMENT = 45,
+ GAMEOBJECT_TYPE_GARRISON_MONUMENT_PLAQUE = 46
};
-#define MAX_GAMEOBJECT_TYPE 46 // sending to client this or greater value can crash client.
-#define MAX_GAMEOBJECT_DATA 32 // Max number of uint32 vars in gameobject_template data field
+#define MAX_GAMEOBJECT_TYPE 47 // sending to client this or greater value can crash client.
+#define MAX_GAMEOBJECT_DATA 33 // Max number of uint32 vars in gameobject_template data field
enum GameObjectFlags
{
@@ -3668,7 +3714,7 @@ inline uint8 ClassByQuestSort(int32 QuestSort)
enum SkillType
{
SKILL_NONE = 0,
-
+
SKILL_FROST = 6,
SKILL_FIRE = 8,
SKILL_ARMS = 26,
diff --git a/src/server/game/OutdoorPvP/OutdoorPvP.cpp b/src/server/game/OutdoorPvP/OutdoorPvP.cpp
index 4f101b312dc..c9119886dba 100644
--- a/src/server/game/OutdoorPvP/OutdoorPvP.cpp
+++ b/src/server/game/OutdoorPvP/OutdoorPvP.cpp
@@ -58,9 +58,9 @@ bool OPvPCapturePoint::HandlePlayerEnter(Player* player)
{
if (m_capturePoint)
{
- player->SendUpdateWorldState(m_capturePoint->GetGOInfo()->capturePoint.worldState1, 1);
- player->SendUpdateWorldState(m_capturePoint->GetGOInfo()->capturePoint.worldstate2, (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f));
- player->SendUpdateWorldState(m_capturePoint->GetGOInfo()->capturePoint.worldstate3, m_neutralValuePct);
+ player->SendUpdateWorldState(m_capturePoint->GetGOInfo()->controlZone.worldState1, 1);
+ player->SendUpdateWorldState(m_capturePoint->GetGOInfo()->controlZone.worldstate2, (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f));
+ player->SendUpdateWorldState(m_capturePoint->GetGOInfo()->controlZone.worldstate3, m_neutralValuePct);
}
return m_activePlayers[player->GetTeamId()].insert(player->GetGUID()).second;
}
@@ -68,7 +68,7 @@ bool OPvPCapturePoint::HandlePlayerEnter(Player* player)
void OPvPCapturePoint::HandlePlayerLeave(Player* player)
{
if (m_capturePoint)
- player->SendUpdateWorldState(m_capturePoint->GetGOInfo()->capturePoint.worldState1, 0);
+ player->SendUpdateWorldState(m_capturePoint->GetGOInfo()->controlZone.worldState1, 0);
m_activePlayers[player->GetTeamId()].erase(player->GetGUID());
}
@@ -78,14 +78,14 @@ void OPvPCapturePoint::SendChangePhase()
return;
// send this too, sometimes the slider disappears, dunno why :(
- SendUpdateWorldState(m_capturePoint->GetGOInfo()->capturePoint.worldState1, 1);
+ SendUpdateWorldState(m_capturePoint->GetGOInfo()->controlZone.worldState1, 1);
// send these updates to only the ones in this objective
- SendUpdateWorldState(m_capturePoint->GetGOInfo()->capturePoint.worldstate2, (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f));
+ SendUpdateWorldState(m_capturePoint->GetGOInfo()->controlZone.worldstate2, (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f));
// send this too, sometimes it resets :S
- SendUpdateWorldState(m_capturePoint->GetGOInfo()->capturePoint.worldstate3, m_neutralValuePct);
+ SendUpdateWorldState(m_capturePoint->GetGOInfo()->controlZone.worldstate3, m_neutralValuePct);
}
-void OPvPCapturePoint::AddGO(uint32 type, ObjectGuid::LowType guid, uint32 entry)
+void OPvPCapturePoint::AddGO(uint32 type, uint32 mapId, ObjectGuid::LowType guid, uint32 entry /*= 0*/)
{
if (!entry)
{
@@ -95,11 +95,11 @@ void OPvPCapturePoint::AddGO(uint32 type, ObjectGuid::LowType guid, uint32 entry
entry = data->id;
}
- m_Objects[type] = ObjectGuid(HighGuid::GameObject, entry, guid);
+ m_Objects[type] = ObjectGuid::Create<HighGuid::GameObject>(mapId, entry, guid);
m_ObjectTypes[m_Objects[type]] = type;
}
-void OPvPCapturePoint::AddCre(uint32 type, ObjectGuid::LowType guid, uint32 entry)
+void OPvPCapturePoint::AddCre(uint32 type, uint32 mapId, ObjectGuid::LowType guid, uint32 entry /*= 0*/)
{
if (!entry)
{
@@ -109,7 +109,7 @@ void OPvPCapturePoint::AddCre(uint32 type, ObjectGuid::LowType guid, uint32 entr
entry = data->id;
}
- m_Creatures[type] = ObjectGuid(HighGuid::Creature, entry, guid);
+ m_Creatures[type] = ObjectGuid::Create<HighGuid::Creature>(mapId, entry, guid);
m_CreatureTypes[m_Creatures[type]] = type;
}
@@ -117,7 +117,7 @@ bool OPvPCapturePoint::AddObject(uint32 type, uint32 entry, uint32 map, float x,
{
if (ObjectGuid::LowType guid = sObjectMgr->AddGOData(entry, map, x, y, z, o, 0, rotation0, rotation1, rotation2, rotation3))
{
- AddGO(type, guid, entry);
+ AddGO(type, map, guid, entry);
return true;
}
@@ -128,7 +128,7 @@ bool OPvPCapturePoint::AddCreature(uint32 type, uint32 entry, uint32 map, float
{
if (ObjectGuid::LowType guid = sObjectMgr->AddCreData(entry, map, x, y, z, o, spawntimedelay))
{
- AddCre(type, guid, entry);
+ AddCre(type, map, guid, entry);
return true;
}
@@ -147,14 +147,14 @@ bool OPvPCapturePoint::SetCapturePointData(uint32 entry, uint32 map, float x, fl
return false;
}
- m_capturePointGUID = ObjectGuid(HighGuid::GameObject, entry, sObjectMgr->AddGOData(entry, map, x, y, z, o, 0, rotation0, rotation1, rotation2, rotation3));
+ m_capturePointGUID = ObjectGuid::Create<HighGuid::GameObject>(map, entry, sObjectMgr->AddGOData(entry, map, x, y, z, o, 0, rotation0, rotation1, rotation2, rotation3));
if (!m_capturePointGUID)
return false;
// get the needed values from goinfo
- m_maxValue = (float)goinfo->capturePoint.maxTime;
- m_maxSpeed = m_maxValue / (goinfo->capturePoint.minTime ? goinfo->capturePoint.minTime : 60);
- m_neutralValuePct = goinfo->capturePoint.neutralPercent;
+ m_maxValue = (float)goinfo->controlZone.maxTime;
+ m_maxSpeed = m_maxValue / (goinfo->controlZone.minTime ? goinfo->controlZone.minTime : 60);
+ m_neutralValuePct = goinfo->controlZone.neutralPercent;
m_minValue = CalculatePct(m_maxValue, m_neutralValuePct);
return true;
@@ -294,7 +294,7 @@ bool OPvPCapturePoint::Update(uint32 diff)
if (!m_capturePoint)
return false;
- float radius = (float)m_capturePoint->GetGOInfo()->capturePoint.radius;
+ float radius = (float)m_capturePoint->GetGOInfo()->controlZone.radius;
for (uint32 team = 0; team < 2; ++team)
{
diff --git a/src/server/game/OutdoorPvP/OutdoorPvP.h b/src/server/game/OutdoorPvP/OutdoorPvP.h
index fd363d6c724..1381d03c9b9 100644
--- a/src/server/game/OutdoorPvP/OutdoorPvP.h
+++ b/src/server/game/OutdoorPvP/OutdoorPvP.h
@@ -131,8 +131,8 @@ class OPvPCapturePoint
GameObject* m_capturePoint;
- void AddGO(uint32 type, ObjectGuid::LowType guid, uint32 entry = 0);
- void AddCre(uint32 type, ObjectGuid::LowType guid, uint32 entry = 0);
+ void AddGO(uint32 type, uint32 mapId, ObjectGuid::LowType guid, uint32 entry = 0);
+ void AddCre(uint32 type, uint32 mapId, ObjectGuid::LowType guid, uint32 entry = 0);
bool SetCapturePointData(uint32 entry, uint32 map, float x, float y, float z, float o = 0,
float rotation0 = 0, float rotation1 = 0, float rotation2 = 0, float rotation3 = 0);
diff --git a/src/server/game/Pools/PoolMgr.cpp b/src/server/game/Pools/PoolMgr.cpp
index c60c0db17cb..4eec8ab780b 100644
--- a/src/server/game/Pools/PoolMgr.cpp
+++ b/src/server/game/Pools/PoolMgr.cpp
@@ -221,7 +221,7 @@ void PoolGroup<Creature>::Despawn1Object(uint64 guid)
{
sObjectMgr->RemoveCreatureFromGrid(guid, data);
- if (Creature* creature = ObjectAccessor::GetObjectInWorld(ObjectGuid(HighGuid::Creature, data->id, guid), (Creature*)NULL))
+ if (Creature* creature = ObjectAccessor::GetObjectInWorld(ObjectGuid::Create<HighGuid::Creature>(data->mapid, data->id, guid), (Creature*)NULL))
creature->AddObjectToRemoveList();
}
}
@@ -234,7 +234,7 @@ void PoolGroup<GameObject>::Despawn1Object(uint64 guid)
{
sObjectMgr->RemoveGameobjectFromGrid(guid, data);
- if (GameObject* pGameobject = ObjectAccessor::GetObjectInWorld(ObjectGuid(HighGuid::GameObject, data->id, guid), (GameObject*)NULL))
+ if (GameObject* pGameobject = ObjectAccessor::GetObjectInWorld(ObjectGuid::Create<HighGuid::GameObject>(data->mapid, data->id, guid), (GameObject*)NULL))
pGameobject->AddObjectToRemoveList();
}
}
@@ -510,7 +510,7 @@ template <>
void PoolGroup<Creature>::ReSpawn1Object(PoolObject* obj)
{
if (CreatureData const* data = sObjectMgr->GetCreatureData(obj->guid))
- if (Creature* creature = ObjectAccessor::GetObjectInWorld(ObjectGuid(HighGuid::Creature, data->id, obj->guid), (Creature*)NULL))
+ if (Creature* creature = ObjectAccessor::GetObjectInWorld(ObjectGuid::Create<HighGuid::Creature>(data->mapid, data->id, obj->guid), (Creature*)NULL))
creature->GetMap()->AddToMap(creature);
}
@@ -519,7 +519,7 @@ template <>
void PoolGroup<GameObject>::ReSpawn1Object(PoolObject* obj)
{
if (GameObjectData const* data = sObjectMgr->GetGOData(obj->guid))
- if (GameObject* pGameobject = ObjectAccessor::GetObjectInWorld(ObjectGuid(HighGuid::GameObject, data->id, obj->guid), (GameObject*)NULL))
+ if (GameObject* pGameobject = ObjectAccessor::GetObjectInWorld(ObjectGuid::Create<HighGuid::GameObject>(data->mapid, data->id, obj->guid), (GameObject*)NULL))
pGameobject->GetMap()->AddToMap(pGameobject);
}
@@ -607,7 +607,7 @@ void PoolMgr::LoadFromDB()
{
Field* fields = result->Fetch();
- uint64 guid = fields[0].GetUInt32();
+ uint64 guid = fields[0].GetUInt64();
uint32 pool_id = fields[1].GetUInt32();
float chance = fields[2].GetFloat();
diff --git a/src/server/game/Scripting/MapScripts.cpp b/src/server/game/Scripting/MapScripts.cpp
index f7371a6c395..349e0195242 100644
--- a/src/server/game/Scripting/MapScripts.cpp
+++ b/src/server/game/Scripting/MapScripts.cpp
@@ -827,7 +827,7 @@ void Map::ScriptsProcess()
else //check hashmap holders
{
if (CreatureData const* data = sObjectMgr->GetCreatureData(step.script->CallScript.CreatureEntry))
- cTarget = ObjectAccessor::GetObjectInWorld<Creature>(data->mapid, data->posX, data->posY, ObjectGuid(HighGuid::Creature, data->id, uint64(step.script->CallScript.CreatureEntry)), cTarget);
+ cTarget = ObjectAccessor::GetObjectInWorld<Creature>(data->mapid, data->posX, data->posY, ObjectGuid::Create<HighGuid::Creature>(data->mapid, data->id, uint64(step.script->CallScript.CreatureEntry)), cTarget);
}
if (!cTarget)
diff --git a/src/server/game/Server/Packet.cpp b/src/server/game/Server/Packet.cpp
new file mode 100644
index 00000000000..10b472bee67
--- /dev/null
+++ b/src/server/game/Server/Packet.cpp
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "Packet.h"
+
+WorldPackets::ServerPacket::ServerPacket(OpcodeServer opcode, size_t initialSize /*= 200*/) : Packet(WorldPacket(opcode, initialSize))
+{
+}
diff --git a/src/server/game/Server/Packet.h b/src/server/game/Server/Packet.h
new file mode 100644
index 00000000000..e7baf830944
--- /dev/null
+++ b/src/server/game/Server/Packet.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef PacketBaseWorld_h__
+#define PacketBaseWorld_h__
+
+namespace WorldPackets
+{
+ class Packet
+ {
+ public:
+ Packet(WorldPacket&& worldPacket) : _worldPacket(std::move(worldPacket)) { }
+ virtual ~Packet() = default;
+
+ Packet(Packet const& right) = delete;
+ Packet& operator=(Packet const& right) = delete;
+
+ virtual void Write() = 0;
+ virtual void Read() = 0;
+
+ WorldPacket& GetWorldPacket() { return _worldPacket; }
+ size_t GetSize() const { return _worldPacket.size(); }
+
+ protected:
+ WorldPacket _worldPacket;
+ };
+
+ class ServerPacket : public Packet
+ {
+ public:
+ ServerPacket(OpcodeServer opcode, size_t initialSize = 200);
+
+ void Read() override final { ASSERT(!"Read not implemented for server packets."); }
+
+ void Reset() { _worldPacket.clear(); }
+ };
+
+ class ClientPacket : public Packet
+ {
+ public:
+ ClientPacket(WorldPacket&& packet) : Packet(std::move(packet)) { }
+
+ void Write() override final { ASSERT(!"Write not allowed for client packets."); }
+ };
+}
+
+#endif // PacketBaseWorld_h__
diff --git a/src/server/game/Server/Packets/AuctionHousePackets.cpp b/src/server/game/Server/Packets/AuctionHousePackets.cpp
new file mode 100644
index 00000000000..e8fd4dfce14
--- /dev/null
+++ b/src/server/game/Server/Packets/AuctionHousePackets.cpp
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "AuctionHousePackets.h"
+#include "AuctionHouseMgr.h"
+#include "ObjectGuid.h"
+
+WorldPackets::AuctionHousePackets::AuctionCommandResult::AuctionCommandResult()
+ : ServerPacket(SMSG_AUCTION_COMMAND_RESULT, 4 + 4 + 4 + 8 + 4 + 8 + 8 + 8) { }
+
+void WorldPackets::AuctionHousePackets::AuctionCommandResult::InitializeAuction(AuctionEntry* auction)
+{
+ if (auction)
+ {
+ AuctionId = auction->Id;
+ Bid = auction->bid;
+ AuctionOutBid = auction->GetAuctionOutBid();
+ Bidder = ObjectGuid::Create<HighGuid::Player>(auction->bidder);
+ }
+}
+
+void WorldPackets::AuctionHousePackets::AuctionCommandResult::Write()
+{
+ _worldPacket << uint32(AuctionId);
+ _worldPacket << uint32(Action);
+ _worldPacket << uint32(ErrorCode);
+
+ switch (ErrorCode)
+ {
+ case ERR_AUCTION_OK:
+ if (Action == AUCTION_PLACE_BID)
+ _worldPacket << uint64(Bid ? AuctionOutBid : 0);
+ break;
+ case ERR_AUCTION_INVENTORY:
+ _worldPacket << uint32(BidError);
+ break;
+ case ERR_AUCTION_HIGHER_BID:
+ _worldPacket << Bidder;
+ _worldPacket << uint64(Bid);
+ _worldPacket << uint64(Bid ? AuctionOutBid : 0);
+ break;
+ }
+} \ No newline at end of file
diff --git a/src/server/game/Server/Packets/AuctionHousePackets.h b/src/server/game/Server/Packets/AuctionHousePackets.h
new file mode 100644
index 00000000000..044810ced6c
--- /dev/null
+++ b/src/server/game/Server/Packets/AuctionHousePackets.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef AuctionHousePackets_h__
+
+#include "Packet.h"
+
+class ObjectGuid;
+
+struct AuctionEntry;
+
+namespace WorldPackets
+{
+ namespace AuctionHousePackets
+ {
+ class AuctionCommandResult final : public ServerPacket
+ {
+ public:
+ AuctionCommandResult();
+
+ /**
+ * @fn void WorldPackets::AuctionHousePackets::AuctionCommandResult::InitializeAuction(AuctionEntry* auction);
+ *
+ * @brief Initialize the following fields: AuctionId, Bid, AuctionOutBid, Bidder
+ *
+ * @param auction The relevant auction object
+ */
+ void InitializeAuction(AuctionEntry* auction);
+
+ void Write() override;
+
+ uint32 AuctionId = 0; ///< the id of the auction that triggered this notification
+ uint32 Action = 0; ///< the type of action that triggered this notification. Possible values are @ref AuctionAction
+ uint32 ErrorCode = 0; ///< the error code that was generated when trying to perform the action. Possible values are @ref AuctionError
+ uint64 Bid = 0; ///< the amount of money that the player bid in copper
+ uint32 BidError = 0; ///< the bid error. Possible values are @ref AuctionError
+ ObjectGuid Bidder; ///< the GUID of the bidder for this auction.
+ uint64 AuctionOutBid = 0; ///< the sum of outbid is (1% of current bid) * 5, if the bid is too small, then this value is 1 copper.
+ };
+ }
+}
+#endif
diff --git a/src/server/game/Server/Packets/AuthenticationPackets.cpp b/src/server/game/Server/Packets/AuthenticationPackets.cpp
new file mode 100644
index 00000000000..ae3c13b64f5
--- /dev/null
+++ b/src/server/game/Server/Packets/AuthenticationPackets.cpp
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "AuthenticationPackets.h"
+
+void WorldPackets::Auth::AuthChallenge::Write()
+{
+ _worldPacket << uint32(Challenge);
+ _worldPacket.append(DosChallenge, sizeof(DosChallenge));
+ _worldPacket << uint8(DosZeroBits);
+}
+
+void WorldPackets::Auth::AuthSession::Read()
+{
+ uint32 addonDataSize;
+
+ _worldPacket >> LoginServerID;
+ _worldPacket >> Build;
+ _worldPacket >> RegionID;
+ _worldPacket >> BattlegroupID;
+ _worldPacket >> RealmID;
+ _worldPacket >> LoginServerType;
+ _worldPacket >> BuildType;
+ _worldPacket >> LocalChallenge;
+ _worldPacket >> DosResponse;
+ _worldPacket.read(Digest, SHA_DIGEST_LENGTH);
+ Account = _worldPacket.ReadString(_worldPacket.ReadBits(11));
+ UseIPv6 = _worldPacket.ReadBit(); // UseIPv6
+ _worldPacket >> addonDataSize;
+ if (addonDataSize)
+ {
+ AddonInfo.resize(addonDataSize);
+ _worldPacket.read(AddonInfo.contents(), addonDataSize);
+ }
+}
+
+WorldPackets::Auth::AuthResponse::AuthResponse()
+ : ServerPacket(SMSG_AUTH_RESPONSE, 132)
+{
+ WaitInfo.HasValue = false;
+ SuccessInfo.HasValue = false;
+}
+
+void WorldPackets::Auth::AuthResponse::Write()
+{
+ _worldPacket << uint8(Result);
+ _worldPacket.WriteBit(SuccessInfo.HasValue);
+ _worldPacket.WriteBit(WaitInfo.HasValue);
+
+ if (SuccessInfo.HasValue)
+ {
+ _worldPacket << uint32(SuccessInfo.value.VirtualRealmAddress);
+ _worldPacket << uint32(SuccessInfo.value.VirtualRealms.size());
+ _worldPacket << uint32(SuccessInfo.value.TimeRemain);
+ _worldPacket << uint32(SuccessInfo.value.TimeOptions);
+ _worldPacket << uint32(SuccessInfo.value.TimeRested);
+ _worldPacket << uint8(SuccessInfo.value.ActiveExpansionLevel);
+ _worldPacket << uint8(SuccessInfo.value.AccountExpansionLevel);
+ _worldPacket << uint32(SuccessInfo.value.TimeSecondsUntilPCKick);
+ _worldPacket << uint32(SuccessInfo.value.AvailableRaces->size());
+ _worldPacket << uint32(SuccessInfo.value.AvailableClasses->size());
+ _worldPacket << uint32(SuccessInfo.value.Templates.size());
+ _worldPacket << uint32(SuccessInfo.value.CurrencyID);
+
+ for (auto& realm : SuccessInfo.value.VirtualRealms)
+ {
+ _worldPacket << uint32(realm.RealmAddress);
+ _worldPacket.WriteBit(realm.IsLocal);
+ _worldPacket.WriteBit(realm.IsInternalRealm);
+ _worldPacket.WriteBits(realm.RealmNameActual.length(), 8);
+ _worldPacket.WriteBits(realm.RealmNameNormalized.length(), 8);
+ _worldPacket.WriteString(realm.RealmNameActual);
+ _worldPacket.WriteString(realm.RealmNameNormalized);
+ }
+
+ for (auto& race : *SuccessInfo.value.AvailableRaces)
+ {
+ _worldPacket << uint8(race.first); /// the current race
+ _worldPacket << uint8(race.second); /// the required Expansion
+ }
+
+ for (auto& klass : *SuccessInfo.value.AvailableClasses)
+ {
+ _worldPacket << uint8(klass.first); /// the current class
+ _worldPacket << uint8(klass.second); /// the required Expansion
+ }
+
+ for (auto& templat : SuccessInfo.value.Templates)
+ {
+ _worldPacket << uint32(templat.TemplateSetId);
+ _worldPacket << uint32(templat.TemplateClasses.size());
+ for (auto& templatClass : templat.TemplateClasses)
+ {
+ _worldPacket << uint8(templatClass.Class);
+ _worldPacket << uint8(templatClass.FactionGroup);
+ }
+
+ _worldPacket.WriteBits(templat.Name.length(), 7);
+ _worldPacket.WriteBits(templat.Description.length(), 10);
+ _worldPacket.WriteString(templat.Name);
+ _worldPacket.WriteString(templat.Description);
+ }
+
+ _worldPacket.WriteBit(SuccessInfo.value.IsExpansionTrial);
+ _worldPacket.WriteBit(SuccessInfo.value.ForceCharacterTemplate);
+ _worldPacket.WriteBit(SuccessInfo.value.NumPlayersHorde != 0);
+ _worldPacket.WriteBit(SuccessInfo.value.NumPlayersAlliance != 0);
+ _worldPacket.WriteBit(SuccessInfo.value.IsVeteranTrial);
+
+ if (SuccessInfo.value.NumPlayersHorde)
+ _worldPacket << uint16(SuccessInfo.value.NumPlayersHorde);
+
+ if (SuccessInfo.value.NumPlayersAlliance)
+ _worldPacket << uint16(SuccessInfo.value.NumPlayersAlliance);
+ }
+
+ if (WaitInfo.HasValue)
+ {
+ _worldPacket << uint32(WaitInfo.value.WaitCount);
+ _worldPacket.WriteBit(WaitInfo.value.HasFCM);
+ }
+
+ _worldPacket.FlushBits();
+}
diff --git a/src/server/game/Server/Packets/AuthenticationPackets.h b/src/server/game/Server/Packets/AuthenticationPackets.h
new file mode 100644
index 00000000000..305a841d4e7
--- /dev/null
+++ b/src/server/game/Server/Packets/AuthenticationPackets.h
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef AuthenticationPacketsWorld_h__
+#define AuthenticationPacketsWorld_h__
+
+#include "Packet.h"
+#include "Util.h"
+#include <SHA1.h>
+
+namespace WorldPackets
+{
+ namespace Auth
+ {
+ class AuthChallenge final : public ServerPacket
+ {
+ public:
+ AuthChallenge() : ServerPacket(SMSG_AUTH_CHALLENGE, 8 + 32 + 1), Challenge(0) { }
+
+ void Write() override;
+
+ uint32 Challenge;
+ uint32 DosChallenge[8]; ///< Encryption seeds
+ uint8 DosZeroBits;
+ };
+
+ class AuthSession final : public ClientPacket
+ {
+ public:
+ AuthSession(WorldPacket&& packet) : ClientPacket(std::move(packet))
+ {
+ memset(Digest, 0, SHA_DIGEST_LENGTH);
+ }
+
+ void Read() override;
+
+ uint32 BattlegroupID = 0;
+ int8 LoginServerType = 0; ///< Auth type used - 0 GRUNT, 1 battle.net
+ int8 BuildType = 0;
+ uint32 RealmID = 0;
+ uint16 Build = 0;
+ uint32 LocalChallenge = 0;
+ int32 LoginServerID = 0;
+ uint32 RegionID = 0;
+ uint64 DosResponse = 0;
+ uint8 Digest[SHA_DIGEST_LENGTH];
+ std::string Account;
+ bool UseIPv6 = false;
+ ByteBuffer AddonInfo;
+ };
+
+ class AuthResponse final : public ServerPacket
+ {
+ public:
+ struct RealmInfo
+ {
+ RealmInfo(uint32 realmAddress, bool isHomeRealm, bool isInternalRealm, std::string const& realmNameActual, std::string const& realmNameNormalized) :
+ RealmAddress(realmAddress), IsLocal(isHomeRealm), IsInternalRealm(isInternalRealm), RealmNameActual(realmNameActual), RealmNameNormalized(realmNameNormalized) { }
+
+ uint32 RealmAddress; ///< the virtual address of this realm, constructed as RealmHandle::Region << 24 | RealmHandle::Battlegroup << 16 | RealmHandle::Index
+ bool IsLocal; ///< true if the realm is the same as the account's home realm
+ bool IsInternalRealm; ///< @todo research
+ std::string RealmNameActual; ///< the name of the realm
+ std::string RealmNameNormalized; ///< the name of the realm without spaces
+ };
+
+ struct CharacterTemplate
+ {
+ struct TemplateClass
+ {
+ uint8 Class;
+ uint8 FactionGroup; ///< @todo research
+ };
+
+ uint32 TemplateSetId; ///< @todo research
+ std::list<TemplateClass> TemplateClasses;
+ std::string Name;
+ std::string Description;
+ };
+
+ struct AuthSuccessInfo
+ {
+ uint32 TimeRemain = 0; ///< the remaining game time that the account has in seconds. It is not currently implemented and probably won't ever be.
+ uint8 AccountExpansionLevel = 0; ///< the current expansion of this account, the possible values are in @ref Expansions
+ uint8 ActiveExpansionLevel = 0; ///< the current server expansion, the possible values are in @ref Expansions
+ uint32 TimeRested = 0; ///< affects the return value of the GetBillingTimeRested() client API call, it is the number of seconds you have left until the experience points and loot you receive from creatures and quests is reduced. It is only used in the Asia region in retail, it's not implemented in TC and will probably never be.
+ uint8 TimeOptions = 0; ///< controls the behavior of the client regarding billing, used in Asia realms, as they don't have monthly subscriptions, possible values are in @ref BillingPlanFlags. It is not currently implemented and will probably never be.
+
+ uint32 VirtualRealmAddress = 0; ///< a special identifier made from the Index, BattleGroup and Region. @todo implement
+ uint32 RealmNamesCount = 0; ///< the number of realms connected to this one (inclusive). @todo implement
+ uint32 TimeSecondsUntilPCKick = 0; ///< @todo research
+ uint32 CurrencyID = 0; ///< this is probably used for the ingame shop. @todo implement
+
+ std::list<RealmInfo> VirtualRealms; ///< list of realms connected to this one (inclusive) @todo implement
+ std::list<CharacterTemplate> Templates; ///< list of pre-made character templates. @todo implement
+
+ ExpansionRequirementContainer const* AvailableClasses = nullptr; ///< the minimum AccountExpansion required to select the classes
+ ExpansionRequirementContainer const* AvailableRaces = nullptr; ///< the minimum AccountExpansion required to select the races
+
+ bool IsExpansionTrial = false;
+ bool ForceCharacterTemplate = false; ///< forces the client to always use a character template when creating a new character. @see Templates. @todo implement
+ uint16 NumPlayersHorde = 0; ///< number of horde players in this realm. @todo implement
+ uint16 NumPlayersAlliance = 0; ///< number of alliance players in this realm. @todo implement
+ bool IsVeteranTrial = false; ///< @todo research
+ };
+
+ struct AuthWaitInfo
+ {
+ uint32 WaitCount = 0; ///< position of the account in the login queue
+ bool HasFCM = false; ///< true if the account has a forced character migration pending. @todo implement
+ };
+
+ AuthResponse();
+
+ void Write() override;
+
+ Optional<AuthSuccessInfo> SuccessInfo; ///< contains the packet data in case that it has account information (It is never set when WaitInfo is set), otherwise its contents are undefined.
+ Optional<AuthWaitInfo> WaitInfo; ///< contains the queue wait information in case the account is in the login queue.
+ uint8 Result = 0; ///< the result of the authentication process, it is AUTH_OK if it succeeded and the account is ready to log in. It can also be AUTH_WAIT_QUEUE if the account entered the login queue (Queued, QueuePos), possible values are @ref ResponseCodes
+ };
+ }
+}
+
+#endif // AuthenticationPacketsWorld_h__
diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp
new file mode 100644
index 00000000000..ff44777ac79
--- /dev/null
+++ b/src/server/game/Server/Packets/CharacterPackets.cpp
@@ -0,0 +1,196 @@
+/*
+ * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "CharacterPackets.h"
+
+WorldPackets::Character::CharEnumResult::CharacterInfo::CharacterInfo(Field* fields)
+{
+ // 0 1 2 3 4 5 6 7
+ // "SELECT characters.guid, characters.name, characters.race, characters.class, characters.gender, characters.playerBytes, characters.playerBytes2, characters.level, "
+ // 8 9 10 11 12 13 14
+ // "characters.zone, characters.map, characters.position_x, characters.position_y, characters.position_z, guild_member.guildid, characters.playerFlags, "
+ // 15 16 17 18 19 20 21 22
+ // "characters.at_login, character_pet.entry, character_pet.modelid, character_pet.level, characters.data, character_banned.guid, characters.slot, character_declinedname.genitive"
+
+ Guid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
+ Name = fields[1].GetString();
+ Race = fields[2].GetUInt8();
+ Class = fields[3].GetUInt8();
+ Sex = fields[4].GetUInt8();
+ Skin = uint8(fields[5].GetUInt32() & 0xFF);
+ Face = uint8((fields[5].GetUInt32() >> 8) & 0xFF);
+ HairStyle = uint8((fields[5].GetUInt32() >> 16) & 0xFF);
+ HairColor = uint8((fields[5].GetUInt32() >> 24) & 0xFF);
+ FacialHair = uint8(fields[6].GetUInt32() & 0xFF);
+ Level = fields[7].GetUInt8();
+ ZoneId = fields[8].GetUInt16();
+ MapId = fields[9].GetUInt16();
+ PreLoadPosition.x = fields[10].GetFloat();
+ PreLoadPosition.y = fields[11].GetFloat();
+ PreLoadPosition.z = fields[12].GetFloat();
+
+ if (uint32 guildId = fields[13].GetUInt32())
+ GuildGuid = ObjectGuid::Create<HighGuid::Guild>(guildId);
+
+ uint32 playerFlags = fields[14].GetUInt32();
+ uint32 atLoginFlags = fields[15].GetUInt16();
+
+ if (playerFlags & PLAYER_FLAGS_HIDE_HELM)
+ Flags |= CHARACTER_FLAG_HIDE_HELM;
+
+ if (playerFlags & PLAYER_FLAGS_HIDE_CLOAK)
+ Flags |= CHARACTER_FLAG_HIDE_CLOAK;
+
+ if (playerFlags & PLAYER_FLAGS_GHOST)
+ Flags |= CHARACTER_FLAG_GHOST;
+
+ if (atLoginFlags & AT_LOGIN_RENAME)
+ Flags |= CHARACTER_FLAG_RENAME;
+
+ if (fields[20].GetUInt32())
+ Flags |= CHARACTER_FLAG_LOCKED_BY_BILLING;
+
+ if (sWorld->getBoolConfig(CONFIG_DECLINED_NAMES_USED) && !fields[22].GetString().empty())
+ Flags |= CHARACTER_FLAG_DECLINED;
+
+ if (atLoginFlags & AT_LOGIN_CUSTOMIZE)
+ CustomizationFlag = CHAR_CUSTOMIZE_FLAG_CUSTOMIZE;
+ else if (atLoginFlags & AT_LOGIN_CHANGE_FACTION)
+ CustomizationFlag = CHAR_CUSTOMIZE_FLAG_FACTION;
+ else if (atLoginFlags & AT_LOGIN_CHANGE_RACE)
+ CustomizationFlag = CHAR_CUSTOMIZE_FLAG_RACE;
+
+ Flags3 = 0;
+ FirstLogin = (atLoginFlags & AT_LOGIN_FIRST) != 0;
+
+ // show pet at selection character in character list only for non-ghost character
+ if (!(playerFlags & PLAYER_FLAGS_GHOST) && (Class == CLASS_WARLOCK || Class == CLASS_HUNTER || Class == CLASS_DEATH_KNIGHT))
+ {
+ if (CreatureTemplate const* creatureInfo = sObjectMgr->GetCreatureTemplate(fields[16].GetUInt32()))
+ {
+ Pet.CreatureDisplayId = fields[17].GetUInt32();
+ Pet.Level = fields[18].GetUInt16();
+ Pet.CreatureFamily = creatureInfo->family;
+ }
+ }
+
+ BoostInProgress = false;
+ ProfessionIds[0] = 0;
+ ProfessionIds[1] = 0;
+
+ Tokenizer equipment(fields[19].GetString(), ' ');
+ ListPosition = fields[21].GetUInt8();
+
+ for (uint8 slot = 0; slot < INVENTORY_SLOT_BAG_END; ++slot)
+ {
+ uint32 visualBase = slot * 2;
+ uint32 itemId = Player::GetUInt32ValueFromArray(equipment, visualBase);
+ if (ItemTemplate const* proto = sObjectMgr->GetItemTemplate(itemId))
+ {
+ uint32 enchants = Player::GetUInt32ValueFromArray(equipment, visualBase + 1);
+ for (uint8 enchantSlot = PERM_ENCHANTMENT_SLOT; enchantSlot <= TEMP_ENCHANTMENT_SLOT; ++enchantSlot)
+ {
+ // values stored in 2 uint16
+ uint32 enchantId = 0x0000FFFF & (enchants >> enchantSlot * 16);
+ if (!enchantId)
+ continue;
+
+ if (SpellItemEnchantmentEntry const* enchant = sSpellItemEnchantmentStore.LookupEntry(enchantId))
+ {
+ VisualItems[slot].DisplayEnchantId = enchant->aura_id;
+ break;
+ }
+ }
+
+ VisualItems[slot].DisplayId = proto->DisplayInfoID;
+ VisualItems[slot].InventoryType = uint8(proto->InventoryType);
+ }
+ }
+}
+
+WorldPackets::Character::CharEnumResult::CharEnumResult()
+ : ServerPacket(SMSG_CHAR_ENUM) { }
+
+void WorldPackets::Character::CharEnumResult::Write()
+{
+ _worldPacket.reserve(9 + Characters.size() * sizeof(CharacterInfo) + FactionChangeRestrictions.size() * sizeof(RestrictedFactionChangeRuleInfo));
+
+ _worldPacket.WriteBit(Success);
+ _worldPacket.WriteBit(IsDeletedCharacters);
+ _worldPacket << uint32(Characters.size());
+ _worldPacket << uint32(FactionChangeRestrictions.size());
+
+ for (CharacterInfo const& charInfo : Characters)
+ {
+ _worldPacket << charInfo.Guid;
+ _worldPacket << uint8(charInfo.ListPosition);
+ _worldPacket << uint8(charInfo.Race);
+ _worldPacket << uint8(charInfo.Class);
+ _worldPacket << uint8(charInfo.Sex);
+ _worldPacket << uint8(charInfo.Skin);
+ _worldPacket << uint8(charInfo.Face);
+ _worldPacket << uint8(charInfo.HairStyle);
+ _worldPacket << uint8(charInfo.HairColor);
+ _worldPacket << uint8(charInfo.FacialHair);
+ _worldPacket << uint8(charInfo.Level);
+ _worldPacket << uint32(charInfo.ZoneId);
+ _worldPacket << uint32(charInfo.MapId);
+ _worldPacket << float(charInfo.PreLoadPosition.x);
+ _worldPacket << float(charInfo.PreLoadPosition.y);
+ _worldPacket << float(charInfo.PreLoadPosition.z);
+ _worldPacket << charInfo.GuildGuid;
+ _worldPacket << uint32(charInfo.Flags);
+ _worldPacket << uint32(charInfo.CustomizationFlag);
+ _worldPacket << uint32(charInfo.Flags3);
+ _worldPacket << uint32(charInfo.Pet.CreatureDisplayId);
+ _worldPacket << uint32(charInfo.Pet.Level);
+ _worldPacket << uint32(charInfo.Pet.CreatureFamily);
+
+ _worldPacket << uint32(charInfo.ProfessionIds[0]);
+ _worldPacket << uint32(charInfo.ProfessionIds[1]);
+
+ for (uint8 slot = 0; slot < INVENTORY_SLOT_BAG_END; ++slot)
+ {
+ _worldPacket << uint32(charInfo.VisualItems[slot].DisplayId);
+ _worldPacket << uint32(charInfo.VisualItems[slot].DisplayEnchantId);
+ _worldPacket << uint8(charInfo.VisualItems[slot].InventoryType);
+ }
+
+ _worldPacket.WriteBits(charInfo.Name.length(), 6);
+ _worldPacket.WriteBit(charInfo.FirstLogin);
+ _worldPacket.WriteBit(charInfo.BoostInProgress);
+ _worldPacket.WriteString(charInfo.Name);
+ }
+
+ for (RestrictedFactionChangeRuleInfo const& rule : FactionChangeRestrictions)
+ {
+ _worldPacket << uint32(rule.Mask);
+ _worldPacket << uint8(rule.Race);
+ }
+}
+
+WorldPackets::Character::PlayerLogin::PlayerLogin(WorldPacket&& packet)
+ : ClientPacket(std::move(packet))
+{
+ ASSERT(_worldPacket.GetOpcode() == CMSG_PLAYER_LOGIN);
+}
+
+void WorldPackets::Character::PlayerLogin::Read()
+{
+ _worldPacket >> Guid;
+ _worldPacket >> FarClip;
+}
diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h
new file mode 100644
index 00000000000..2f8b069164a
--- /dev/null
+++ b/src/server/game/Server/Packets/CharacterPackets.h
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef CharacterPackets_h__
+#define CharacterPackets_h__
+
+#include "Packet.h"
+#include "Player.h"
+
+namespace WorldPackets
+{
+ namespace Character
+ {
+ class CharEnumResult final : public ServerPacket
+ {
+ public:
+ struct CharacterInfo
+ {
+ /**
+ * @fn void WorldPackets::Character::CharEnumResult::CharacterInfo::CharacterInfo(Field* fields);
+ *
+ * @brief Initialize the struct with values from QueryResult
+ *
+ * @param fields Field set of CharacterDatabaseStatements::CHAR_SEL_ENUM
+ */
+ CharacterInfo(Field* fields);
+
+ ObjectGuid Guid;
+ std::string Name;
+ uint8 ListPosition = 0; ///< Order of the characters in list
+ uint8 Race = 0;
+ uint8 Class = 0;
+ uint8 Sex = 0;
+ uint8 Skin = 0;
+ uint8 Face = 0;
+ uint8 HairStyle = 0;
+ uint8 HairColor = 0;
+ uint8 FacialHair = 0;
+ uint8 Level = 0;
+ uint32 ZoneId = 0;
+ uint32 MapId = 0;
+ G3D::Vector3 PreLoadPosition;
+ ObjectGuid GuildGuid;
+ uint32 Flags = 0; ///< Character flag @see enum CharacterFlags
+ uint32 CustomizationFlag = 0; ///< Character customization flags @see enum CharacterCustomizeFlags
+ uint32 Flags3 = 0; ///< Character flags 3 @todo research
+ bool FirstLogin = false;
+
+ struct PetInfo
+ {
+ uint32 CreatureDisplayId = 0; ///< PetCreatureDisplayID
+ uint32 Level = 0; ///< PetExperienceLevel
+ uint32 CreatureFamily = 0; ///< PetCreatureFamilyID
+ } Pet;
+
+ bool BoostInProgress = false; ///< @todo
+ uint32 ProfessionIds[2]; ///< @todo
+
+ struct VisualItemInfo
+ {
+ uint32 DisplayId = 0;
+ uint32 DisplayEnchantId = 0;
+ uint8 InventoryType = 0;
+ };
+
+ VisualItemInfo VisualItems[INVENTORY_SLOT_BAG_END];
+ };
+
+ struct RestrictedFactionChangeRuleInfo
+ {
+ RestrictedFactionChangeRuleInfo(uint32 mask, uint8 race)
+ : Mask(mask), Race(race) { }
+
+ uint32 Mask = 0;
+ uint8 Race = 0;
+ };
+
+ CharEnumResult();
+
+ void Write() override;
+
+ bool Success = false; ///<
+ bool IsDeletedCharacters = false; ///< used for character undelete list
+
+ std::list<CharacterInfo> Characters; ///< all characters on the list
+ std::list<RestrictedFactionChangeRuleInfo> FactionChangeRestrictions; ///< @todo: research
+ };
+
+ class PlayerLogin final : public ClientPacket
+ {
+ public:
+ PlayerLogin(WorldPacket&& packet);
+
+ void Read() override;
+
+ ObjectGuid Guid; ///< Guid of the player that is logging in
+ float FarClip = 0.0f; ///< Visibility distance (for terrain)
+ };
+ }
+}
+
+#endif // CharacterPackets_h__
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 7760c3c5b2f..da173fdeb3d 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -87,128 +87,128 @@ void OpcodeTable::Initialize()
#define DEFINE_OPCODE_HANDLER(opcode, status, processing, handler) \
ValidateAndSetOpcode<(static_cast<uint32>(opcode) < NUM_OPCODE_HANDLERS), (opcode != 0)>(opcode, #opcode, status, processing, handler);
- DEFINE_OPCODE_HANDLER(CMSG_ACCEPT_LEVEL_GRANT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAcceptGrantLevel );
- DEFINE_OPCODE_HANDLER(CMSG_ACCEPT_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAcceptTradeOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ACTIVATETAXI, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleActivateTaxiOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ACTIVATETAXIEXPRESS, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleActivateTaxiExpressOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ADDON_REGISTERED_PREFIXES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonRegisteredPrefixesOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_ADD_FRIEND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAddFriendOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ADD_IGNORE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAddIgnoreOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ACCEPT_LEVEL_GRANT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAcceptGrantLevel );
+ DEFINE_OPCODE_HANDLER(CMSG_ACCEPT_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAcceptTradeOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ACTIVATETAXI, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleActivateTaxiOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ACTIVATETAXIEXPRESS, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleActivateTaxiExpressOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ADDON_REGISTERED_PREFIXES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonRegisteredPrefixesOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_ADD_FRIEND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAddFriendOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ADD_IGNORE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAddIgnoreOpcode );
DEFINE_OPCODE_HANDLER(CMSG_ADD_VOICE_IGNORE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_ALTER_APPEARANCE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAlterAppearance );
- DEFINE_OPCODE_HANDLER(CMSG_AREATRIGGER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAreaTriggerOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_AREA_SPIRIT_HEALER_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAreaSpiritHealerQueryOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_AREA_SPIRIT_HEALER_QUEUE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAreaSpiritHealerQueueOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_ACCEPT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamAcceptOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_CREATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamCreateOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_DECLINE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamDeclineOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_DISBAND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamDisbandOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_INVITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamInviteOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_LEADER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamLeaderOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_LEAVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamLeaveOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamQueryOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_REMOVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamRemoveOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_ROSTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamRosterOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ATTACKSTOP, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAttackStopOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ATTACKSWING, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAttackSwingOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_AUCTION_LIST_BIDDER_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListBidderItems );
- DEFINE_OPCODE_HANDLER(CMSG_AUCTION_LIST_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListItems );
- DEFINE_OPCODE_HANDLER(CMSG_AUCTION_LIST_OWNER_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListOwnerItems );
- DEFINE_OPCODE_HANDLER(CMSG_AUCTION_LIST_PENDING_SALES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListPendingSales );
- DEFINE_OPCODE_HANDLER(CMSG_AUCTION_PLACE_BID, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionPlaceBid );
- DEFINE_OPCODE_HANDLER(CMSG_AUCTION_REMOVE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionRemoveItem );
- DEFINE_OPCODE_HANDLER(CMSG_AUCTION_SELL_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionSellItem );
+ DEFINE_OPCODE_HANDLER(CMSG_ALTER_APPEARANCE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAlterAppearance );
+ DEFINE_OPCODE_HANDLER(CMSG_AREATRIGGER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAreaTriggerOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_AREA_SPIRIT_HEALER_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAreaSpiritHealerQueryOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_AREA_SPIRIT_HEALER_QUEUE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAreaSpiritHealerQueueOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_ACCEPT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamAcceptOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_CREATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamCreateOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_DECLINE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamDeclineOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_DISBAND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamDisbandOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_INVITE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamInviteOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_LEADER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamLeaderOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_LEAVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamLeaveOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamQueryOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_REMOVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamRemoveOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ARENA_TEAM_ROSTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamRosterOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ATTACKSTOP, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleAttackStopOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ATTACKSWING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleAttackSwingOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_AUCTION_LIST_BIDDER_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListBidderItems );
+ DEFINE_OPCODE_HANDLER(CMSG_AUCTION_LIST_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListItems );
+ DEFINE_OPCODE_HANDLER(CMSG_AUCTION_LIST_OWNER_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListOwnerItems );
+ DEFINE_OPCODE_HANDLER(CMSG_AUCTION_LIST_PENDING_SALES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListPendingSales );
+ DEFINE_OPCODE_HANDLER(CMSG_AUCTION_PLACE_BID, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionPlaceBid );
+ DEFINE_OPCODE_HANDLER(CMSG_AUCTION_REMOVE_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionRemoveItem );
+ DEFINE_OPCODE_HANDLER(CMSG_AUCTION_SELL_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionSellItem );
DEFINE_OPCODE_HANDLER(CMSG_AUTH_SESSION, STATUS_NEVER, PROCESS_THREADUNSAFE, &WorldSession::Handle_EarlyProccess );
- DEFINE_OPCODE_HANDLER(CMSG_AUTOBANK_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoBankItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_AUTOEQUIP_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoEquipItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_AUTOEQUIP_ITEM_SLOT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoEquipItemSlotOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_AUTOSTORE_BAG_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoStoreBagItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_AUTOSTORE_BANK_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoStoreBankItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_AUTOSTORE_LOOT_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutostoreLootItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_AUTO_DECLINE_GUILD_INVITES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoDeclineGuildInvites );
- DEFINE_OPCODE_HANDLER(CMSG_BANKER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBankerActivateOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_LEAVE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleBattlefieldLeaveOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlefieldListOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_MGR_ENTRY_INVITE_RESPONSE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleBfEntryInviteResponse );
- DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_MGR_EXIT_REQUEST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleBfExitRequest );
- DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_MGR_QUEUE_INVITE_RESPONSE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleBfQueueInviteResponse );
+ DEFINE_OPCODE_HANDLER(CMSG_AUTOBANK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoBankItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_AUTOEQUIP_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoEquipItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_AUTOEQUIP_ITEM_SLOT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoEquipItemSlotOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_AUTOSTORE_BAG_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoStoreBagItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_AUTOSTORE_BANK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoStoreBankItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_AUTOSTORE_LOOT_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAutostoreLootItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_AUTO_DECLINE_GUILD_INVITES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoDeclineGuildInvites );
+ DEFINE_OPCODE_HANDLER(CMSG_BANKER_ACTIVATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBankerActivateOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_LEAVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleBattlefieldLeaveOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlefieldListOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_MGR_ENTRY_INVITE_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleBfEntryInviteResponse );
+ DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_MGR_EXIT_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleBfExitRequest );
+ DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_MGR_QUEUE_INVITE_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleBfQueueInviteResponse );
DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_MGR_QUEUE_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_PORT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattleFieldPortOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_STATUS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlefieldStatusOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_BATTLEGROUND_PLAYER_POSITIONS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleBattlegroundPlayerPositionsOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_BATTLEMASTER_JOIN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlemasterJoinOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_BATTLEMASTER_HELLO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlemasterHelloOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_BATTLEMASTER_JOIN_ARENA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlemasterJoinArena );
+ DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_PORT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattleFieldPortOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_BATTLEFIELD_STATUS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlefieldStatusOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_BATTLEGROUND_PLAYER_POSITIONS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleBattlegroundPlayerPositionsOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_BATTLEMASTER_JOIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlemasterJoinOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_BATTLEMASTER_HELLO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlemasterHelloOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_BATTLEMASTER_JOIN_ARENA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlemasterJoinArena );
DEFINE_OPCODE_HANDLER(CMSG_BATTLEMASTER_JOIN_RATED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_BEGIN_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBeginTradeOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_BINDER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBinderActivateOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_BUG, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBugOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_BUSY_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBusyTradeOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_BUYBACK_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBuybackItem );
- DEFINE_OPCODE_HANDLER(CMSG_BUY_BANK_SLOT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBuyBankSlotOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_BUY_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBuyItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_ADD_EVENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarAddEvent );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_ARENA_TEAM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarArenaTeam );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_COMPLAIN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarComplain );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_COPY_EVENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarCopyEvent );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_EVENT_INVITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarEventInvite );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_EVENT_MODERATOR_STATUS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarEventModeratorStatus);
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_EVENT_REMOVE_INVITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarEventRemoveInvite );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_EVENT_RSVP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarEventRsvp );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_EVENT_SIGNUP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarEventSignup );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_EVENT_STATUS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarEventStatus );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_GET_CALENDAR, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarGetCalendar );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_GET_EVENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarGetEvent );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_GET_NUM_PENDING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarGetNumPending );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_GUILD_FILTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarGuildFilter );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_REMOVE_EVENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarRemoveEvent );
- DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_UPDATE_EVENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarUpdateEvent );
- DEFINE_OPCODE_HANDLER(CMSG_CANCEL_AURA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelAuraOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_CANCEL_AUTO_REPEAT_SPELL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelAutoRepeatSpellOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_CANCEL_CAST, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleCancelCastOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_CANCEL_CHANNELLING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelChanneling );
- DEFINE_OPCODE_HANDLER(CMSG_CANCEL_GROWTH_AURA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelGrowthAuraOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_CANCEL_MOUNT_AURA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelMountAuraOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_BEGIN_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBeginTradeOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_BINDER_ACTIVATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBinderActivateOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_BUG, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBugOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_BUSY_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBusyTradeOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_BUYBACK_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBuybackItem );
+ DEFINE_OPCODE_HANDLER(CMSG_BUY_BANK_SLOT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBuyBankSlotOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_BUY_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBuyItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_ADD_EVENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarAddEvent );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_ARENA_TEAM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarArenaTeam );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_COMPLAIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarComplain );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_COPY_EVENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarCopyEvent );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_EVENT_INVITE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarEventInvite );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_EVENT_MODERATOR_STATUS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarEventModeratorStatus);
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_EVENT_REMOVE_INVITE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarEventRemoveInvite );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_EVENT_RSVP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarEventRsvp );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_EVENT_SIGNUP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarEventSignup );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_EVENT_STATUS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarEventStatus );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_GET_CALENDAR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarGetCalendar );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_GET_EVENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarGetEvent );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_GET_NUM_PENDING, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarGetNumPending );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_GUILD_FILTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarGuildFilter );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_REMOVE_EVENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarRemoveEvent );
+ DEFINE_OPCODE_HANDLER(CMSG_CALENDAR_UPDATE_EVENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCalendarUpdateEvent );
+ DEFINE_OPCODE_HANDLER(CMSG_CANCEL_AURA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelAuraOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CANCEL_AUTO_REPEAT_SPELL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelAutoRepeatSpellOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_CANCEL_CAST, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleCancelCastOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CANCEL_CHANNELLING, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelChanneling );
+ DEFINE_OPCODE_HANDLER(CMSG_CANCEL_GROWTH_AURA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelGrowthAuraOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CANCEL_MOUNT_AURA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelMountAuraOpcode );
DEFINE_OPCODE_HANDLER(CMSG_CANCEL_QUEUED_SPELL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_CANCEL_TEMP_ENCHANTMENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelTempEnchantmentOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_CANCEL_TRADE, STATUS_LOGGEDIN_OR_RECENTLY_LOGGOUT, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelTradeOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_CAST_SPELL, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleCastSpellOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CANCEL_TEMP_ENCHANTMENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelTempEnchantmentOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_CANCEL_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelTradeOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_CAST_SPELL, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleCastSpellOpcode );
DEFINE_OPCODE_HANDLER(CMSG_CHANGEPLAYER_DIFFICULTY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle);
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_ANNOUNCEMENTS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelAnnouncements );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_BAN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelBan );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_DISPLAY_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelDisplayListQuery );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_INVITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelInvite );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_KICK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelKick );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelList );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle);
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_ANNOUNCEMENTS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelAnnouncements );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_BAN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelBan );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_DISPLAY_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelDisplayListQuery );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_INVITE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelInvite );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_KICK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelKick );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelList );
DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_MODERATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_MODERATOR, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelModerator );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_MUTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelMute );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_OWNER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelOwner );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_PASSWORD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelPassword );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_MODERATOR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelModerator );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_MUTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelMute );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_OWNER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelOwner );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_PASSWORD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelPassword );
DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_ROSTER_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_SET_OWNER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelSetOwner );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_SET_OWNER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelSetOwner );
DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_SILENCE_ALL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_SILENCE_VOICE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_UNBAN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelUnban );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_UNMODERATOR, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelUnmoderator );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_UNMUTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelUnmute );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_UNBAN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelUnban );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_UNMODERATOR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelUnmoderator );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_UNMUTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelUnmute );
DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_UNSILENCE_ALL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_UNSILENCE_VOICE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_VOICE_OFF, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelVoiceOnOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_VOICE_ON, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelVoiceOnOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_CHAR_CREATE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharCreateOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_CHAR_CUSTOMIZE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharCustomize );
- DEFINE_OPCODE_HANDLER(CMSG_CHAR_DELETE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharDeleteOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_VOICE_OFF, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelVoiceOnOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_VOICE_ON, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelVoiceOnOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CHAR_CREATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharCreateOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CHAR_CUSTOMIZE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharCustomize );
+ DEFINE_OPCODE_HANDLER(CMSG_CHAR_DELETE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharDeleteOpcode );
DEFINE_OPCODE_HANDLER(CMSG_CHAR_ENUM, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharEnumOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_CHAR_FACTION_CHANGE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharFactionOrRaceChange );
- DEFINE_OPCODE_HANDLER(CMSG_CHAR_RACE_CHANGE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharFactionOrRaceChange );
- DEFINE_OPCODE_HANDLER(CMSG_CHAR_RENAME, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharRenameOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CHAR_FACTION_CHANGE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharFactionOrRaceChange );
+ DEFINE_OPCODE_HANDLER(CMSG_CHAR_RACE_CHANGE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharFactionOrRaceChange );
+ DEFINE_OPCODE_HANDLER(CMSG_CHAR_RENAME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharRenameOpcode );
DEFINE_OPCODE_HANDLER(CMSG_CHAT_FILTERED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_CHAT_IGNORED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChatIgnoredOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CHAT_IGNORED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChatIgnoredOpcode );
DEFINE_OPCODE_HANDLER(CMSG_CLEAR_CHANNEL_WATCH, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_CLEAR_RAID_MARKER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_CLEAR_TRADE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleClearTradeItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CLEAR_TRADE_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleClearTradeItemOpcode );
DEFINE_OPCODE_HANDLER(CMSG_COMMENTATOR_ENABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_COMMENTATOR_ENTER_INSTANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_COMMENTATOR_EXIT_INSTANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
@@ -218,1128 +218,1132 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER(CMSG_COMMENTATOR_INSTANCE_COMMAND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_COMMENTATOR_SKIRMISH_QUEUE_COMMAND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_COMMENTATOR_START_WARGAME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_COMPLAIN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleComplainOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_COMPLETE_CINEMATIC, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCompleteCinematic );
+ DEFINE_OPCODE_HANDLER(CMSG_COMPLAIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleComplainOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_COMPLETE_CINEMATIC, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCompleteCinematic );
DEFINE_OPCODE_HANDLER(CMSG_COMPLETE_MOVIE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_CONNECT_TO_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_CONTACT_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleContactListOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_CORPSE_MAP_POSITION_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCorpseMapPositionQuery );
- DEFINE_OPCODE_HANDLER(CMSG_CREATURE_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleCreatureQueryOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CONTACT_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleContactListOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_CORPSE_MAP_POSITION_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCorpseMapPositionQuery );
+ DEFINE_OPCODE_HANDLER(CMSG_CREATURE_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleCreatureQueryOpcode );
DEFINE_OPCODE_HANDLER(CMSG_DANCE_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_DEL_FRIEND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDelFriendOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_DEL_IGNORE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDelIgnoreOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_DB_QUERY_BULK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
+ DEFINE_OPCODE_HANDLER(CMSG_DEL_FRIEND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleDelFriendOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_DEL_IGNORE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleDelIgnoreOpcode );
DEFINE_OPCODE_HANDLER(CMSG_DEL_VOICE_IGNORE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_DESTROY_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDestroyItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_DISMISS_CONTROLLED_VEHICLE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDismissControlledVehicle );
- DEFINE_OPCODE_HANDLER(CMSG_DISMISS_CRITTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDismissCritter );
- DEFINE_OPCODE_HANDLER(CMSG_DUEL_ACCEPTED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDuelAcceptedOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_DUEL_CANCELLED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDuelCancelledOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_DESTROY_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleDestroyItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_DISMISS_CONTROLLED_VEHICLE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleDismissControlledVehicle );
+ DEFINE_OPCODE_HANDLER(CMSG_DISMISS_CRITTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleDismissCritter );
+ DEFINE_OPCODE_HANDLER(CMSG_DUEL_ACCEPTED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleDuelAcceptedOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_DUEL_CANCELLED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleDuelCancelledOpcode );
DEFINE_OPCODE_HANDLER(CMSG_EJECT_PASSENGER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_EMOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleEmoteOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ENABLETAXI, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleTaxiQueryAvailableNodes );
+ DEFINE_OPCODE_HANDLER(CMSG_EMOTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleEmoteOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ENABLETAXI, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleTaxiQueryAvailableNodes );
DEFINE_OPCODE_HANDLER(CMSG_ENABLE_NAGLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_EarlyProccess );
- DEFINE_OPCODE_HANDLER(CMSG_EQUIPMENT_SET_DELETE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetDelete );
- DEFINE_OPCODE_HANDLER(CMSG_EQUIPMENT_SET_SAVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetSave );
- DEFINE_OPCODE_HANDLER(CMSG_EQUIPMENT_SET_USE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetUse );
- DEFINE_OPCODE_HANDLER(CMSG_FAR_SIGHT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleFarSightOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_FORCE_MOVE_ROOT_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMoveRootAck );
- DEFINE_OPCODE_HANDLER(CMSG_FORCE_MOVE_UNROOT_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMoveUnRootAck );
- DEFINE_OPCODE_HANDLER(CMSG_GAMEOBJECT_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGameObjectQueryOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GAMEOBJ_REPORT_USE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGameobjectReportUse );
- DEFINE_OPCODE_HANDLER(CMSG_GAMEOBJ_USE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGameObjectUseOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GET_MAIL_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetMailList );
- DEFINE_OPCODE_HANDLER(CMSG_GET_MIRRORIMAGE_DATA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMirrorImageDataRequest );
- DEFINE_OPCODE_HANDLER(CMSG_GMRESPONSE_RESOLVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGMResponseResolve );
- DEFINE_OPCODE_HANDLER(CMSG_GMSURVEY_SUBMIT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGMSurveySubmit );
- DEFINE_OPCODE_HANDLER(CMSG_GMTICKET_CREATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGMTicketCreateOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GMTICKET_DELETETICKET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGMTicketDeleteOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GMTICKET_GETTICKET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGMTicketGetTicketOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GMTICKET_SYSTEMSTATUS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGMTicketSystemStatusOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_GMTICKET_UPDATETEXT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGMTicketUpdateOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GM_REPORT_LAG, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleReportLag );
- DEFINE_OPCODE_HANDLER(CMSG_GOSSIP_HELLO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGossipHelloOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GOSSIP_SELECT_OPTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGossipSelectOptionOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GRANT_LEVEL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGrantLevel );
- DEFINE_OPCODE_HANDLER(CMSG_GROUP_ASSISTANT_LEADER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupAssistantLeaderOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_GROUP_CHANGE_SUB_GROUP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupChangeSubGroupOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GROUP_DISBAND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupDisbandOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GROUP_INVITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupInviteOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GROUP_INVITE_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupInviteResponseOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GROUP_RAID_CONVERT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupRaidConvertOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GROUP_REQUEST_JOIN_UPDATES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupRequestJoinUpdates );
- DEFINE_OPCODE_HANDLER(CMSG_GROUP_SET_LEADER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupSetLeaderOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GROUP_SET_ROLES, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGroupSetRolesOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_EQUIPMENT_SET_DELETE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetDelete );
+ DEFINE_OPCODE_HANDLER(CMSG_EQUIPMENT_SET_SAVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetSave );
+ DEFINE_OPCODE_HANDLER(CMSG_EQUIPMENT_SET_USE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetUse );
+ DEFINE_OPCODE_HANDLER(CMSG_FAR_SIGHT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleFarSightOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_FORCE_MOVE_ROOT_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveRootAck );
+ DEFINE_OPCODE_HANDLER(CMSG_FORCE_MOVE_UNROOT_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveUnRootAck );
+ DEFINE_OPCODE_HANDLER(CMSG_GAMEOBJECT_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleGameObjectQueryOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GAMEOBJ_REPORT_USE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGameobjectReportUse );
+ DEFINE_OPCODE_HANDLER(CMSG_GAMEOBJ_USE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGameObjectUseOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GET_MAIL_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGetMailList );
+ DEFINE_OPCODE_HANDLER(CMSG_GET_MIRRORIMAGE_DATA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMirrorImageDataRequest );
+ DEFINE_OPCODE_HANDLER(CMSG_GMRESPONSE_RESOLVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGMResponseResolve );
+ DEFINE_OPCODE_HANDLER(CMSG_GMSURVEY_SUBMIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGMSurveySubmit );
+ DEFINE_OPCODE_HANDLER(CMSG_GMTICKET_CREATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGMTicketCreateOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GMTICKET_DELETETICKET, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGMTicketDeleteOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GMTICKET_GETTICKET, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGMTicketGetTicketOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GMTICKET_SYSTEMSTATUS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGMTicketSystemStatusOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_GMTICKET_UPDATETEXT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGMTicketUpdateOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GM_REPORT_LAG, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReportLag );
+ DEFINE_OPCODE_HANDLER(CMSG_GOSSIP_HELLO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGossipHelloOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GOSSIP_SELECT_OPTION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGossipSelectOptionOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GRANT_LEVEL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGrantLevel );
+ DEFINE_OPCODE_HANDLER(CMSG_GROUP_ASSISTANT_LEADER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupAssistantLeaderOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_GROUP_CHANGE_SUB_GROUP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupChangeSubGroupOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GROUP_DISBAND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupDisbandOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GROUP_INVITE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupInviteOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GROUP_INVITE_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupInviteResponseOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GROUP_RAID_CONVERT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupRaidConvertOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GROUP_REQUEST_JOIN_UPDATES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupRequestJoinUpdates );
+ DEFINE_OPCODE_HANDLER(CMSG_GROUP_SET_LEADER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupSetLeaderOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GROUP_SET_ROLES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleGroupSetRolesOpcode );
DEFINE_OPCODE_HANDLER(CMSG_GROUP_SWAP_SUB_GROUP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupSwapSubGroupOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GROUP_UNINVITE_GUID, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupUninviteGuidOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_ACCEPT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAcceptOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GROUP_UNINVITE_GUID, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupUninviteGuidOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_ACCEPT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAcceptOpcode );
DEFINE_OPCODE_HANDLER(CMSG_GUILD_ACHIEVEMENT_MEMBERS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_ACHIEVEMENT_PROGRESS_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAchievementProgressQuery);
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_ADD_RANK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAddRankOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_ASSIGN_MEMBER_RANK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAssignRankOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANKER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankerActivate );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_BUY_TAB, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankBuyTab );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_DEPOSIT_MONEY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankDepositMoney );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_LOG_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankLogQuery );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_MONEY_WITHDRAWN_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankMoneyWithdrawn );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_QUERY_TAB, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankQueryTab );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_QUERY_TEXT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryGuildBankTabText );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_SWAP_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankSwapItems );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_UPDATE_TAB, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankUpdateTab );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_WITHDRAW_MONEY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankWithdrawMoney );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_ACHIEVEMENT_PROGRESS_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAchievementProgressQuery);
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_ADD_RANK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAddRankOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_ASSIGN_MEMBER_RANK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAssignRankOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANKER_ACTIVATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankerActivate );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_BUY_TAB, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankBuyTab );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_DEPOSIT_MONEY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankDepositMoney );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_LOG_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankLogQuery );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_MONEY_WITHDRAWN_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankMoneyWithdrawn );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_QUERY_TAB, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankQueryTab );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_QUERY_TEXT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryGuildBankTabText );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_SWAP_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankSwapItems );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_UPDATE_TAB, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankUpdateTab );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_BANK_WITHDRAW_MONEY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankWithdrawMoney );
DEFINE_OPCODE_HANDLER(CMSG_GUILD_CHANGE_NAME_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_DECLINE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildDeclineOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_DEL_RANK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildDelRankOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_DEMOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildDemoteOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_DISBAND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildDisbandOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_EVENT_LOG_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildEventLogQueryOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_INFO_TEXT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildChangeInfoTextOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_INVITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildInviteOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_LEAVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildLeaveOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_DECLINE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildDeclineOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_DEL_RANK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildDelRankOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_DEMOTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildDemoteOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_DISBAND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildDisbandOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_EVENT_LOG_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildEventLogQueryOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_INFO_TEXT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildChangeInfoTextOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_INVITE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildInviteOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_LEAVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildLeaveOpcode );
DEFINE_OPCODE_HANDLER(CMSG_GUILD_MEMBER_SEND_SOR_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_MOTD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildMOTDOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_NEWS_UPDATE_STICKY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGuildNewsUpdateStickyOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_PERMISSIONS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildPermissions );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_PROMOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildPromoteOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_QUERY, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildQueryOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_QUERY_NEWS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGuildQueryNewsOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_QUERY_RANKS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildQueryRanksOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_REMOVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRemoveOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_MOTD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildMOTDOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_NEWS_UPDATE_STICKY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleGuildNewsUpdateStickyOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_PERMISSIONS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildPermissions );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_PROMOTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildPromoteOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildQueryOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_QUERY_NEWS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleGuildQueryNewsOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_QUERY_RANKS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildQueryRanksOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_REMOVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRemoveOpcode );
DEFINE_OPCODE_HANDLER(CMSG_GUILD_REPLACE_GUILD_MASTER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_REQUEST_CHALLENGE_UPDATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestChallengeUpdate);
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_REQUEST_MAX_DAILY_XP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestMaxDailyXP );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_REQUEST_PARTY_STATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestPartyState );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_ROSTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRosterOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_ACHIEVEMENT_TRACKING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetAchievementTracking);
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_GUILD_MASTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetGuildMaster );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_NOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetNoteOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_RANK_PERMISSIONS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetRankPermissionsOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_REQUEST_CHALLENGE_UPDATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestChallengeUpdate);
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_REQUEST_MAX_DAILY_XP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestMaxDailyXP );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_REQUEST_PARTY_STATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestPartyState );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_ROSTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRosterOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_ACHIEVEMENT_TRACKING, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetAchievementTracking);
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_GUILD_MASTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetGuildMaster );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_NOTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetNoteOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_GUILD_SET_RANK_PERMISSIONS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetRankPermissionsOpcode);
DEFINE_OPCODE_HANDLER(CMSG_GUILD_SWITCH_RANK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_HEARTH_AND_RESURRECT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleHearthAndResurrect );
- DEFINE_OPCODE_HANDLER(CMSG_IGNORE_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleIgnoreTradeOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_INITIATE_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleInitiateTradeOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_INSPECT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleInspectOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_INSPECT_HONOR_STATS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleInspectHonorStatsOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_IGNORE_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleIgnoreTradeOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_INITIATE_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleInitiateTradeOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_INSPECT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleInspectOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_INSPECT_HONOR_STATS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleInspectHonorStatsOpcode );
DEFINE_OPCODE_HANDLER(CMSG_INSTANCE_LOCK_WARNING_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_ITEM_REFUND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleItemRefund );
- DEFINE_OPCODE_HANDLER(CMSG_ITEM_REFUND_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleItemRefundInfoRequest );
- DEFINE_OPCODE_HANDLER(CMSG_ITEM_TEXT_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleItemTextQuery );
- DEFINE_OPCODE_HANDLER(CMSG_JOIN_CHANNEL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleJoinChannel );
+ DEFINE_OPCODE_HANDLER(CMSG_ITEM_REFUND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleItemRefund );
+ DEFINE_OPCODE_HANDLER(CMSG_ITEM_REFUND_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleItemRefundInfoRequest );
+ DEFINE_OPCODE_HANDLER(CMSG_ITEM_TEXT_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleItemTextQuery );
+ DEFINE_OPCODE_HANDLER(CMSG_JOIN_CHANNEL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleJoinChannel );
DEFINE_OPCODE_HANDLER(CMSG_KEEP_ALIVE, STATUS_NEVER, PROCESS_THREADUNSAFE, &WorldSession::Handle_EarlyProccess );
- DEFINE_OPCODE_HANDLER(CMSG_LEARN_PREVIEW_TALENTS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLearnPreviewTalents );
- DEFINE_OPCODE_HANDLER(CMSG_LEARN_PREVIEW_TALENTS_PET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLearnPreviewTalentsPet );
- DEFINE_OPCODE_HANDLER(CMSG_LEARN_TALENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLearnTalentOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_LEAVE_CHANNEL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLeaveChannel );
- DEFINE_OPCODE_HANDLER(CMSG_LFG_GET_STATUS, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleLfgGetStatus );
- DEFINE_OPCODE_HANDLER(CMSG_LFG_JOIN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLfgJoinOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_LFG_LEAVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLfgLeaveOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LEARN_PREVIEW_TALENTS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLearnPreviewTalents );
+ DEFINE_OPCODE_HANDLER(CMSG_LEARN_PREVIEW_TALENTS_PET, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLearnPreviewTalentsPet );
+ DEFINE_OPCODE_HANDLER(CMSG_LEARN_TALENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLearnTalentOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LEAVE_CHANNEL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLeaveChannel );
+ DEFINE_OPCODE_HANDLER(CMSG_LFG_GET_STATUS, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleLfgGetStatus );
+ DEFINE_OPCODE_HANDLER(CMSG_LFG_JOIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLfgJoinOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LFG_LEAVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLfgLeaveOpcode );
DEFINE_OPCODE_HANDLER(CMSG_LFG_LFR_JOIN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_LFG_LFR_LEAVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_LFG_LOCK_INFO_REQUEST, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleLfgGetLockInfoOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_LFG_PROPOSAL_RESULT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLfgProposalResultOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LFG_LOCK_INFO_REQUEST, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleLfgGetLockInfoOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LFG_PROPOSAL_RESULT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLfgProposalResultOpcode );
DEFINE_OPCODE_HANDLER(CMSG_LFG_SET_BOOT_VOTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLfgSetBootVoteOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_LFG_SET_COMMENT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleLfgSetCommentOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LFG_SET_COMMENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleLfgSetCommentOpcode );
DEFINE_OPCODE_HANDLER(CMSG_LFG_SET_ROLES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLfgSetRolesOpcode );
DEFINE_OPCODE_HANDLER(CMSG_LFG_TELEPORT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLfgTeleportOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_ADD_RECRUIT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderAddRecruit );
- DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_BROWSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderBrowse );
- DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_DECLINE_RECRUIT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderDeclineRecruit );
- DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_GET_APPLICATIONS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderGetApplications);
- DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_GET_RECRUITS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderGetRecruits );
- DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_POST_REQUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderPostRequest );
- DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_REMOVE_RECRUIT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderRemoveRecruit );
- DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_SET_GUILD_POST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderSetGuildPost );
- DEFINE_OPCODE_HANDLER(CMSG_LIST_INVENTORY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleListInventoryOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_LOAD_SCREEN, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleLoadScreenOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_LOGOUT_CANCEL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLogoutCancelOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_LOGOUT_REQUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLogoutRequestOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_ADD_RECRUIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderAddRecruit );
+ DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_BROWSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderBrowse );
+ DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_DECLINE_RECRUIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderDeclineRecruit );
+ DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_GET_APPLICATIONS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderGetApplications);
+ DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_GET_RECRUITS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderGetRecruits );
+ DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_POST_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderPostRequest );
+ DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_REMOVE_RECRUIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderRemoveRecruit );
+ DEFINE_OPCODE_HANDLER(CMSG_LF_GUILD_SET_GUILD_POST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildFinderSetGuildPost );
+ DEFINE_OPCODE_HANDLER(CMSG_LIST_INVENTORY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleListInventoryOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LOAD_SCREEN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLoadScreenOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LOGOUT_CANCEL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLogoutCancelOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LOGOUT_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLogoutRequestOpcode );
DEFINE_OPCODE_HANDLER(CMSG_LOG_DISCONNECT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_EarlyProccess );
- DEFINE_OPCODE_HANDLER(CMSG_LOOT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLootOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LOOT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLootOpcode );
DEFINE_OPCODE_HANDLER(CMSG_LOOT_CURRENCY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_LOOT_MASTER_GIVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLootMasterGiveOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_LOOT_METHOD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLootMethodOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_LOOT_MONEY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLootMoneyOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_LOOT_RELEASE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLootReleaseOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_LOOT_ROLL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLootRoll );
- DEFINE_OPCODE_HANDLER(CMSG_MAIL_CREATE_TEXT_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMailCreateTextItem );
- DEFINE_OPCODE_HANDLER(CMSG_MAIL_DELETE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMailDelete );
- DEFINE_OPCODE_HANDLER(CMSG_MAIL_MARK_AS_READ, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMailMarkAsRead );
- DEFINE_OPCODE_HANDLER(CMSG_MAIL_RETURN_TO_SENDER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMailReturnToSender );
- DEFINE_OPCODE_HANDLER(CMSG_MAIL_TAKE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMailTakeItem );
- DEFINE_OPCODE_HANDLER(CMSG_MAIL_TAKE_MONEY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMailTakeMoney );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_ADDON_BATTLEGROUND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_ADDON_GUILD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_ADDON_OFFICER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_ADDON_PARTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_ADDON_RAID, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_ADDON_WHISPER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_AFK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_BATTLEGROUND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_CHANNEL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_DND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_EMOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_GUILD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_OFFICER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_PARTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_RAID, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_RAID_WARNING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_SAY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_WHISPER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_YELL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LOOT_MASTER_GIVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLootMasterGiveOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LOOT_METHOD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLootMethodOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LOOT_MONEY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLootMoneyOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LOOT_RELEASE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLootReleaseOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_LOOT_ROLL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleLootRoll );
+ DEFINE_OPCODE_HANDLER(CMSG_MAIL_CREATE_TEXT_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMailCreateTextItem );
+ DEFINE_OPCODE_HANDLER(CMSG_MAIL_DELETE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMailDelete );
+ DEFINE_OPCODE_HANDLER(CMSG_MAIL_MARK_AS_READ, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMailMarkAsRead );
+ DEFINE_OPCODE_HANDLER(CMSG_MAIL_RETURN_TO_SENDER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMailReturnToSender );
+ DEFINE_OPCODE_HANDLER(CMSG_MAIL_TAKE_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMailTakeItem );
+ DEFINE_OPCODE_HANDLER(CMSG_MAIL_TAKE_MONEY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMailTakeMoney );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_ADDON_BATTLEGROUND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_ADDON_GUILD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_ADDON_OFFICER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_ADDON_PARTY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_ADDON_RAID, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_ADDON_WHISPER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAddonMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_AFK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_BATTLEGROUND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_CHANNEL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_DND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_EMOTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_GUILD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_OFFICER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_PARTY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_RAID, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_RAID_WARNING, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_SAY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_WHISPER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_YELL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode );
DEFINE_OPCODE_HANDLER(CMSG_MINIGAME_MOVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_MOUNTSPECIAL_ANIM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMountSpecialAnimOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_CHNG_TRANSPORT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(CMSG_MOUNTSPECIAL_ANIM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMountSpecialAnimOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_CHNG_TRANSPORT, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_FALL_RESET, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_FEATHER_FALL_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleFeatherFallAck );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_FLIGHT_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_PITCH_RATE_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_RUN_BACK_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_RUN_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_SWIM_BACK_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_SWIM_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_TURN_RATE_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_FEATHER_FALL_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleFeatherFallAck );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_FLIGHT_SPEED_CHANGE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_PITCH_RATE_CHANGE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_RUN_BACK_SPEED_CHANGE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_RUN_SPEED_CHANGE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_SWIM_BACK_SPEED_CHANGE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_SWIM_SPEED_CHANGE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_TURN_RATE_CHANGE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_FORCE_WALK_SPEED_CHANGE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_GRAVITY_DISABLE_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_GRAVITY_ENABLE_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_HOVER_ACK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMoveHoverAck );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_KNOCK_BACK_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMoveKnockBackAck );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_NOT_ACTIVE_MOVER, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMoveNotActiveMover );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_SET_CAN_FLY, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_SET_CAN_FLY_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMoveSetCanFlyAckOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_KNOCK_BACK_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveKnockBackAck );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_NOT_ACTIVE_MOVER, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveNotActiveMover );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_SET_CAN_FLY, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_SET_CAN_FLY_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveSetCanFlyAckOpcode );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_SET_COLLISION_HEIGHT_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleSetCollisionHeightAck );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_SPLINE_DONE, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMoveSplineDoneOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_MOVE_TIME_SKIPPED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleMoveTimeSkippedOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_SET_COLLISION_HEIGHT_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleSetCollisionHeightAck );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_SPLINE_DONE, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveSplineDoneOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_MOVE_TIME_SKIPPED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleMoveTimeSkippedOpcode );
DEFINE_OPCODE_HANDLER(CMSG_MOVE_WATER_WALK_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveWaterWalkAck );
- DEFINE_OPCODE_HANDLER(CMSG_NAME_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleNameQueryOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_NEXT_CINEMATIC_CAMERA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleNextCinematicCamera );
- DEFINE_OPCODE_HANDLER(CMSG_NPC_TEXT_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleNpcTextQueryOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_OBJECT_UPDATE_FAILED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleObjectUpdateFailedOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_NAME_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleNameQueryOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_NEXT_CINEMATIC_CAMERA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleNextCinematicCamera );
+ DEFINE_OPCODE_HANDLER(CMSG_NPC_TEXT_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleNpcTextQueryOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_OBJECT_UPDATE_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleObjectUpdateFailedOpcode );
DEFINE_OPCODE_HANDLER(CMSG_OBJECT_UPDATE_RESCUED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_OFFER_PETITION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleOfferPetitionOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_OPENING_CINEMATIC, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleOpeningCinematic );
- DEFINE_OPCODE_HANDLER(CMSG_OPEN_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleOpenItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_OPT_OUT_OF_LOOT, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleOptOutOfLootOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_PAGE_TEXT_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePageTextQueryOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_OFFER_PETITION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleOfferPetitionOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_OPENING_CINEMATIC, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleOpeningCinematic );
+ DEFINE_OPCODE_HANDLER(CMSG_OPEN_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleOpenItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_OPT_OUT_OF_LOOT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleOptOutOfLootOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_PAGE_TEXT_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePageTextQueryOpcode );
DEFINE_OPCODE_HANDLER(CMSG_PARTY_SILENCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_PARTY_UNSILENCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_PETITION_BUY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionBuyOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_PETITION_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionQueryOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_PETITION_SHOWLIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionShowListOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_PETITION_SHOW_SIGNATURES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionShowSignOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_PETITION_SIGN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionSignOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_PET_ABANDON, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetAbandon );
- DEFINE_OPCODE_HANDLER(CMSG_PET_ACTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetAction );
- DEFINE_OPCODE_HANDLER(CMSG_PET_CANCEL_AURA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetCancelAuraOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_PET_CAST_SPELL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetCastSpellOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_PET_LEARN_TALENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetLearnTalent );
- DEFINE_OPCODE_HANDLER(CMSG_PET_NAME_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetNameQuery );
- DEFINE_OPCODE_HANDLER(CMSG_PET_RENAME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetRename );
- DEFINE_OPCODE_HANDLER(CMSG_PET_SET_ACTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetSetAction );
- DEFINE_OPCODE_HANDLER(CMSG_PET_SPELL_AUTOCAST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetSpellAutocastOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_PET_STOP_ATTACK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetStopAttack );
+ DEFINE_OPCODE_HANDLER(CMSG_PETITION_BUY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionBuyOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_PETITION_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionQueryOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_PETITION_SHOWLIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionShowListOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_PETITION_SHOW_SIGNATURES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionShowSignOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_PETITION_SIGN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionSignOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_PET_ABANDON, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetAbandon );
+ DEFINE_OPCODE_HANDLER(CMSG_PET_ACTION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetAction );
+ DEFINE_OPCODE_HANDLER(CMSG_PET_CANCEL_AURA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetCancelAuraOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_PET_CAST_SPELL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetCastSpellOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_PET_LEARN_TALENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetLearnTalent );
+ DEFINE_OPCODE_HANDLER(CMSG_PET_NAME_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetNameQuery );
+ DEFINE_OPCODE_HANDLER(CMSG_PET_RENAME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetRename );
+ DEFINE_OPCODE_HANDLER(CMSG_PET_SET_ACTION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetSetAction );
+ DEFINE_OPCODE_HANDLER(CMSG_PET_SPELL_AUTOCAST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetSpellAutocastOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_PET_STOP_ATTACK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetStopAttack );
DEFINE_OPCODE_HANDLER(CMSG_PING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_EarlyProccess );
- DEFINE_OPCODE_HANDLER(CMSG_PLAYED_TIME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePlayedTime );
- DEFINE_OPCODE_HANDLER(CMSG_PLAYER_LOGIN, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandlePlayerLoginOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_PLAYER_VEHICLE_ENTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleEnterPlayerVehicle );
+ DEFINE_OPCODE_HANDLER(CMSG_PLAYED_TIME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePlayedTime );
+ DEFINE_OPCODE_HANDLER(CMSG_PLAYER_LOGIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePlayerLoginOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_PLAYER_VEHICLE_ENTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleEnterPlayerVehicle );
DEFINE_OPCODE_HANDLER(CMSG_PLAY_DANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_PUSHQUESTTOPARTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePushQuestToParty );
- DEFINE_OPCODE_HANDLER(CMSG_PVP_LOG_DATA, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandlePVPLogDataOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_PUSHQUESTTOPARTY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePushQuestToParty );
+ DEFINE_OPCODE_HANDLER(CMSG_PVP_LOG_DATA, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandlePVPLogDataOpcode );
DEFINE_OPCODE_HANDLER(CMSG_QUERY_BATTLEFIELD_STATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_QUERY_GUILD_MEMBERS_FOR_RECIPE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_QUERY_GUILD_MEMBER_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_QUERY_GUILD_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_QUERY_GUILD_REWARDS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGuildRewardsQueryOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_QUERY_GUILD_XP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildQueryXPOpcode ); // STATUS_AUTHED
- DEFINE_OPCODE_HANDLER(CMSG_QUERY_INSPECT_ACHIEVEMENTS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryInspectAchievements );
- DEFINE_OPCODE_HANDLER(CMSG_QUERY_QUESTS_COMPLETED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryQuestsCompleted );
- DEFINE_OPCODE_HANDLER(CMSG_QUERY_TIME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryTimeOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_ACCEPT_QUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverAcceptQuestOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_CHOOSE_REWARD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverChooseRewardOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_COMPLETE_QUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverCompleteQuest );
- DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_HELLO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverHelloOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_QUERY_QUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverQueryQuestOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_REQUEST_REWARD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverRequestRewardOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverStatusMultipleQuery);
- DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_STATUS_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQuestgiverStatusQueryOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_QUESTLOG_REMOVE_QUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestLogRemoveQuest );
- DEFINE_OPCODE_HANDLER(CMSG_QUEST_CONFIRM_ACCEPT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestConfirmAccept );
- DEFINE_OPCODE_HANDLER(CMSG_QUEST_NPC_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestNPCQuery );
- DEFINE_OPCODE_HANDLER(CMSG_QUEST_POI_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestPOIQuery );
- DEFINE_OPCODE_HANDLER(CMSG_QUEST_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestQueryOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_RANDOMIZE_CHAR_NAME, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleRandomizeCharNameOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_READY_FOR_ACCOUNT_DATA_TIMES, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleReadyForAccountDataTimes );
- DEFINE_OPCODE_HANDLER(CMSG_READ_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleReadItem );
- DEFINE_OPCODE_HANDLER(CMSG_REALM_SPLIT, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleRealmSplitOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_RECLAIM_CORPSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleReclaimCorpseOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_QUERY_GUILD_REWARDS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleGuildRewardsQueryOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_QUERY_GUILD_XP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildQueryXPOpcode ); // STATUS_AUTHED
+ DEFINE_OPCODE_HANDLER(CMSG_QUERY_INSPECT_ACHIEVEMENTS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryInspectAchievements );
+ DEFINE_OPCODE_HANDLER(CMSG_QUERY_QUESTS_COMPLETED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryQuestsCompleted );
+ DEFINE_OPCODE_HANDLER(CMSG_QUERY_TIME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryTimeOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_ACCEPT_QUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverAcceptQuestOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_CHOOSE_REWARD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverChooseRewardOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_COMPLETE_QUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverCompleteQuest );
+ DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_HELLO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverHelloOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_QUERY_QUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverQueryQuestOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_REQUEST_REWARD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverRequestRewardOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverStatusMultipleQuery);
+ DEFINE_OPCODE_HANDLER(CMSG_QUESTGIVER_STATUS_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleQuestgiverStatusQueryOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_QUESTLOG_REMOVE_QUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestLogRemoveQuest );
+ DEFINE_OPCODE_HANDLER(CMSG_QUEST_CONFIRM_ACCEPT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestConfirmAccept );
+ DEFINE_OPCODE_HANDLER(CMSG_QUEST_NPC_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestNPCQuery );
+ DEFINE_OPCODE_HANDLER(CMSG_QUEST_POI_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestPOIQuery );
+ DEFINE_OPCODE_HANDLER(CMSG_QUEST_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestQueryOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_RANDOMIZE_CHAR_NAME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRandomizeCharNameOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_READY_FOR_ACCOUNT_DATA_TIMES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReadyForAccountDataTimes );
+ DEFINE_OPCODE_HANDLER(CMSG_READ_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReadItem );
+ DEFINE_OPCODE_HANDLER(CMSG_REALM_SPLIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRealmSplitOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_RECLAIM_CORPSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReclaimCorpseOpcode );
DEFINE_OPCODE_HANDLER(CMSG_REDIRECTION_AUTH_PROOF, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_REFORGE_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleReforgeItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_REORDER_CHARACTERS, STATUS_AUTHED, PROCESS_INPLACE, &WorldSession::HandleReorderCharacters );
- DEFINE_OPCODE_HANDLER(CMSG_REPAIR_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRepairItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_REPOP_REQUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRepopRequestOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_REPORT_PVP_AFK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleReportPvPAFK );
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_ACCOUNT_DATA, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestAccountData );
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_CATEGORY_COOLDOWNS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestCategoryCooldowns );
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_CEMETERY_LIST, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestCemeteryList );
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_HOTFIX, STATUS_AUTHED, PROCESS_INPLACE, &WorldSession::HandleRequestHotfix );
+ DEFINE_OPCODE_HANDLER(CMSG_REFORGE_ITEM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleReforgeItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_REORDER_CHARACTERS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleReorderCharacters );
+ DEFINE_OPCODE_HANDLER(CMSG_REPAIR_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRepairItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_REPOP_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRepopRequestOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_REPORT_PVP_AFK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReportPvPAFK );
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_ACCOUNT_DATA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestAccountData );
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_CATEGORY_COOLDOWNS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleRequestCategoryCooldowns );
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_CEMETERY_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleRequestCemeteryList );
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_HOTFIX, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleRequestHotfix );
DEFINE_OPCODE_HANDLER(CMSG_REQUEST_INSPECT_RATED_BG_STATS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_PARTY_MEMBER_STATS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestPartyMemberStatsOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_PARTY_MEMBER_STATS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestPartyMemberStatsOpcode);
DEFINE_OPCODE_HANDLER(CMSG_REQUEST_PET_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestPetInfoOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_PVP_OPTIONS_ENABLED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestPvpOptions );
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_PVP_REWARDS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestPvpReward );
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_RAID_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestRaidInfoOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_RATED_BG_INFO, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestRatedBgInfo );
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_RATED_BG_STATS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestRatedBgStats );
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_PVP_OPTIONS_ENABLED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleRequestPvpOptions );
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_PVP_REWARDS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleRequestPvpReward );
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_RAID_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestRaidInfoOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_RATED_BG_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleRequestRatedBgInfo );
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_RATED_BG_STATS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleRequestRatedBgStats );
DEFINE_OPCODE_HANDLER(CMSG_REQUEST_RESEARCH_HISTORY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_VEHICLE_EXIT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestVehicleExit );
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_VEHICLE_NEXT_SEAT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle);
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_VEHICLE_PREV_SEAT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle);
- DEFINE_OPCODE_HANDLER(CMSG_REQUEST_VEHICLE_SWITCH_SEAT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle);
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_VEHICLE_EXIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestVehicleExit );
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_VEHICLE_NEXT_SEAT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle);
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_VEHICLE_PREV_SEAT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle);
+ DEFINE_OPCODE_HANDLER(CMSG_REQUEST_VEHICLE_SWITCH_SEAT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle);
DEFINE_OPCODE_HANDLER(CMSG_RESET_FACTION_CHEAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_RESET_INSTANCES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleResetInstancesOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_RESURRECT_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleResurrectResponseOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_RETURN_TO_GRAVEYARD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleReturnToGraveyard );
- DEFINE_OPCODE_HANDLER(CMSG_ROLE_POLL_BEGIN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRolePollBeginOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SAVE_CUF_PROFILES, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSaveCUFProfiles );
- DEFINE_OPCODE_HANDLER(CMSG_SELF_RES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSelfResOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SELL_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSellItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SEND_MAIL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSendMail );
+ DEFINE_OPCODE_HANDLER(CMSG_RESET_INSTANCES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleResetInstancesOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_RESURRECT_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleResurrectResponseOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_RETURN_TO_GRAVEYARD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReturnToGraveyard );
+ DEFINE_OPCODE_HANDLER(CMSG_ROLE_POLL_BEGIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRolePollBeginOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SAVE_CUF_PROFILES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleSaveCUFProfiles );
+ DEFINE_OPCODE_HANDLER(CMSG_SELF_RES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSelfResOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SELL_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSellItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SEND_MAIL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSendMail );
DEFINE_OPCODE_HANDLER(CMSG_SEND_SOR_REQUEST_VIA_ADDRESS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_SEND_SOR_REQUEST_VIA_BNET_ACCOUNT_ID, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_SETSHEATHED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetSheathedOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SET_ACTIONBAR_TOGGLES, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActionBarToggles );
- DEFINE_OPCODE_HANDLER(CMSG_SET_ACTION_BUTTON, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActionButtonOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SET_ACTIVE_MOVER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActiveMoverOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SETSHEATHED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleSetSheathedOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_ACTIONBAR_TOGGLES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActionBarToggles );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_ACTION_BUTTON, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActionButtonOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_ACTIVE_MOVER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActiveMoverOpcode );
DEFINE_OPCODE_HANDLER(CMSG_SET_ACTIVE_VOICE_CHANNEL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActiveVoiceChannel ); // STATUS_AUTHED
DEFINE_OPCODE_HANDLER(CMSG_SET_ALLOW_LOW_LEVEL_RAID1, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_SET_ALLOW_LOW_LEVEL_RAID2, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_SET_CHANNEL_WATCH, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetChannelWatch );
- DEFINE_OPCODE_HANDLER(CMSG_SET_CONTACT_NOTES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetContactNotesOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_CHANNEL_WATCH, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetChannelWatch );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_CONTACT_NOTES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetContactNotesOpcode );
DEFINE_OPCODE_HANDLER(CMSG_SET_CURRENCY_FLAGS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_SET_EVERYONE_IS_ASSISTANT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_SET_FACTION_ATWAR, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionAtWar );
- DEFINE_OPCODE_HANDLER(CMSG_SET_FACTION_INACTIVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionInactiveOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SET_GUILD_BANK_TEXT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetGuildBankTabText );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_FACTION_ATWAR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionAtWar );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_FACTION_INACTIVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionInactiveOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_GUILD_BANK_TEXT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetGuildBankTabText );
DEFINE_OPCODE_HANDLER(CMSG_SET_PET_SLOT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_SET_PLAYER_DECLINED_NAMES, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPlayerDeclinedNames );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_PLAYER_DECLINED_NAMES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPlayerDeclinedNames );
DEFINE_OPCODE_HANDLER(CMSG_SET_PREFERED_CEMETERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_SET_PRIMARY_TALENT_TREE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_SET_RELATIVE_POSITION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_SET_SAVED_INSTANCE_EXTEND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetSavedInstanceExtend );
- DEFINE_OPCODE_HANDLER(CMSG_SET_SELECTION, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetSelectionOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SET_TAXI_BENCHMARK_MODE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTaxiBenchmarkOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SET_TITLE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTitleOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_SAVED_INSTANCE_EXTEND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetSavedInstanceExtend );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_SELECTION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleSetSelectionOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_TAXI_BENCHMARK_MODE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTaxiBenchmarkOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_TITLE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTitleOpcode );
DEFINE_OPCODE_HANDLER(CMSG_SET_TRADE_CURRENCY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_SET_TRADE_GOLD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTradeGoldOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SET_TRADE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTradeItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_TRADE_GOLD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTradeGoldOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_TRADE_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTradeItemOpcode );
DEFINE_OPCODE_HANDLER(CMSG_SET_VEHICLE_REC_ID_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_SET_WATCHED_FACTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetWatchedFactionOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SHOWING_CLOAK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleShowingCloakOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SHOWING_HELM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleShowingHelmOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SOCKET_GEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSocketOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SPELLCLICK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSpellClick );
- DEFINE_OPCODE_HANDLER(CMSG_SPIRIT_HEALER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSpiritHealerActivateOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_SPLIT_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSplitItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_STANDSTATECHANGE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleStandStateChangeOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SET_WATCHED_FACTION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetWatchedFactionOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SHOWING_CLOAK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleShowingCloakOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SHOWING_HELM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleShowingHelmOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SOCKET_GEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSocketOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SPELLCLICK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSpellClick );
+ DEFINE_OPCODE_HANDLER(CMSG_SPIRIT_HEALER_ACTIVATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSpiritHealerActivateOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_SPLIT_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSplitItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_STANDSTATECHANGE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleStandStateChangeOpcode );
DEFINE_OPCODE_HANDLER(CMSG_STOP_DANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_SUBMIT_BUG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_SUBMIT_COMPLAIN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_SUGGESTION_SUBMIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_SUMMON_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSummonResponseOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SUMMON_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSummonResponseOpcode );
DEFINE_OPCODE_HANDLER(CMSG_SUSPEND_TOKEN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_SWAP_INV_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSwapInvItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_SWAP_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSwapItem );
+ DEFINE_OPCODE_HANDLER(CMSG_SWAP_INV_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSwapInvItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_SWAP_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSwapItem );
DEFINE_OPCODE_HANDLER(CMSG_SYNC_DANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_TAXINODE_STATUS_QUERY, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleTaxiNodeStatusQueryOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_TAXIQUERYAVAILABLENODES, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleTaxiQueryAvailableNodes );
+ DEFINE_OPCODE_HANDLER(CMSG_TAXINODE_STATUS_QUERY, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleTaxiNodeStatusQueryOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_TAXIQUERYAVAILABLENODES, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleTaxiQueryAvailableNodes );
DEFINE_OPCODE_HANDLER(CMSG_TELEPORT_TO_UNIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_TEXT_EMOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTextEmoteOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_TEXT_EMOTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTextEmoteOpcode );
DEFINE_OPCODE_HANDLER(CMSG_TIME_ADJUSTMENT_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_TIME_SYNC_RESP, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleTimeSyncResp );
+ DEFINE_OPCODE_HANDLER(CMSG_TIME_SYNC_RESP, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleTimeSyncResp );
DEFINE_OPCODE_HANDLER(CMSG_TIME_SYNC_RESP_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_TOGGLE_PVP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTogglePvP );
- DEFINE_OPCODE_HANDLER(CMSG_TOTEM_DESTROYED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTotemDestroyed );
- DEFINE_OPCODE_HANDLER(CMSG_TRAINER_BUY_SPELL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTrainerBuySpellOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_TRAINER_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTrainerListOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_TRANSMOGRIFY_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTransmogrifyItems );
- DEFINE_OPCODE_HANDLER(CMSG_TURN_IN_PETITION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTurnInPetitionOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_TUTORIAL_CLEAR, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTutorialClear );
- DEFINE_OPCODE_HANDLER(CMSG_TUTORIAL_FLAG, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTutorialFlag );
- DEFINE_OPCODE_HANDLER(CMSG_TUTORIAL_RESET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTutorialReset );
- DEFINE_OPCODE_HANDLER(CMSG_UNACCEPT_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUnacceptTradeOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_UNLEARN_SKILL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUnlearnSkillOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_TOGGLE_PVP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTogglePvP );
+ DEFINE_OPCODE_HANDLER(CMSG_TOTEM_DESTROYED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTotemDestroyed );
+ DEFINE_OPCODE_HANDLER(CMSG_TRAINER_BUY_SPELL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTrainerBuySpellOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_TRAINER_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTrainerListOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_TRANSMOGRIFY_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTransmogrifyItems );
+ DEFINE_OPCODE_HANDLER(CMSG_TURN_IN_PETITION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTurnInPetitionOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_TUTORIAL_CLEAR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTutorialClear );
+ DEFINE_OPCODE_HANDLER(CMSG_TUTORIAL_FLAG, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTutorialFlag );
+ DEFINE_OPCODE_HANDLER(CMSG_TUTORIAL_RESET, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTutorialReset );
+ DEFINE_OPCODE_HANDLER(CMSG_UNACCEPT_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleUnacceptTradeOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_UNLEARN_SKILL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleUnlearnSkillOpcode );
DEFINE_OPCODE_HANDLER(CMSG_UNLEARN_SPECIALIZATION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_UNREGISTER_ALL_ADDON_PREFIXES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUnregisterAddonPrefixesOpcode);
- DEFINE_OPCODE_HANDLER(CMSG_UPDATE_ACCOUNT_DATA, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleUpdateAccountData );
+ DEFINE_OPCODE_HANDLER(CMSG_UNREGISTER_ALL_ADDON_PREFIXES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleUnregisterAddonPrefixesOpcode);
+ DEFINE_OPCODE_HANDLER(CMSG_UPDATE_ACCOUNT_DATA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleUpdateAccountData );
DEFINE_OPCODE_HANDLER(CMSG_UPDATE_MISSILE_TRAJECTORY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleUpdateMissileTrajectory );
DEFINE_OPCODE_HANDLER(CMSG_UPDATE_PROJECTILE_POSITION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleUpdateProjectilePosition );
DEFINE_OPCODE_HANDLER(CMSG_USED_FOLLOW, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_USE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUseItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_VIOLENCE_LEVEL, STATUS_AUTHED, PROCESS_INPLACE, &WorldSession::HandleViolenceLevel );
- DEFINE_OPCODE_HANDLER(CMSG_VOICE_SESSION_ENABLE, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleVoiceSessionEnableOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_VOID_STORAGE_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleVoidStorageQuery );
- DEFINE_OPCODE_HANDLER(CMSG_VOID_STORAGE_TRANSFER, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleVoidStorageTransfer );
- DEFINE_OPCODE_HANDLER(CMSG_VOID_STORAGE_UNLOCK, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleVoidStorageUnlock );
- DEFINE_OPCODE_HANDLER(CMSG_VOID_SWAP_ITEM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleVoidSwapItem );
+ DEFINE_OPCODE_HANDLER(CMSG_USE_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleUseItemOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_VIOLENCE_LEVEL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleViolenceLevel );
+ DEFINE_OPCODE_HANDLER(CMSG_VOICE_SESSION_ENABLE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleVoiceSessionEnableOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_VOID_STORAGE_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleVoidStorageQuery );
+ DEFINE_OPCODE_HANDLER(CMSG_VOID_STORAGE_TRANSFER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleVoidStorageTransfer );
+ DEFINE_OPCODE_HANDLER(CMSG_VOID_STORAGE_UNLOCK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleVoidStorageUnlock );
+ DEFINE_OPCODE_HANDLER(CMSG_VOID_SWAP_ITEM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleVoidSwapItem );
DEFINE_OPCODE_HANDLER(CMSG_WARDEN_DATA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleWardenDataOpcode ); // STATUS_AUTHED
DEFINE_OPCODE_HANDLER(CMSG_WARGAME_ACCEPT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(CMSG_WARGAME_START, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(CMSG_WHO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleWhoOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_WHOIS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleWhoisOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_WORLD_STATE_UI_TIMER_UPDATE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleWorldStateUITimerUpdate );
+ DEFINE_OPCODE_HANDLER(CMSG_WHO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleWhoOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_WHOIS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleWhoisOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_WORLD_STATE_UI_TIMER_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleWorldStateUITimerUpdate );
DEFINE_OPCODE_HANDLER(CMSG_WORLD_TELEPORT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleWorldTeleportOpcode );
DEFINE_OPCODE_HANDLER(CMSG_WRAP_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleWrapItemOpcode );
- DEFINE_OPCODE_HANDLER(CMSG_ZONEUPDATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleZoneUpdateOpcode );
- DEFINE_OPCODE_HANDLER(MSG_AUCTION_HELLO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionHelloOpcode );
- DEFINE_OPCODE_HANDLER(MSG_CHANNEL_START, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(MSG_CHANNEL_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(MSG_CORPSE_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCorpseQueryOpcode );
- DEFINE_OPCODE_HANDLER(MSG_INSPECT_ARENA_TEAMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleInspectArenaTeamsOpcode );
- DEFINE_OPCODE_HANDLER(MSG_LIST_STABLED_PETS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleListStabledPetsOpcode );
- DEFINE_OPCODE_HANDLER(MSG_MINIMAP_PING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMinimapPingOpcode );
+ DEFINE_OPCODE_HANDLER(CMSG_ZONEUPDATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleZoneUpdateOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_AUCTION_HELLO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionHelloOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_CHANNEL_START, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(MSG_CHANNEL_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(MSG_CORPSE_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleCorpseQueryOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_INSPECT_ARENA_TEAMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleInspectArenaTeamsOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_LIST_STABLED_PETS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleListStabledPetsOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_MINIMAP_PING, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMinimapPingOpcode );
DEFINE_OPCODE_HANDLER(MSG_MOVE_CHARM_TELEPORT_CHEAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_FALL_LAND, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_HEARTBEAT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_JUMP, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_SET_FACING, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_SET_PITCH, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_FALL_LAND, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_HEARTBEAT, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_JUMP, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_SET_FACING, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_SET_PITCH, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
DEFINE_OPCODE_HANDLER(MSG_MOVE_SET_RUN_MODE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(MSG_MOVE_SET_WALK_MODE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_START_ASCEND, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_START_BACKWARD, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_START_DESCEND, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_START_FORWARD, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_START_PITCH_DOWN, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_START_PITCH_UP, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_START_STRAFE_LEFT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_START_STRAFE_RIGHT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_START_SWIM, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_START_TURN_LEFT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_START_TURN_RIGHT, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_STOP, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_STOP_ASCEND, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_STOP_PITCH, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_STOP_STRAFE, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_STOP_SWIM, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_STOP_TURN, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_TELEPORT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_TELEPORT_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMoveTeleportAck );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_START_ASCEND, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_START_BACKWARD, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_START_DESCEND, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_START_FORWARD, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_START_PITCH_DOWN, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_START_PITCH_UP, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_START_STRAFE_LEFT, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_START_STRAFE_RIGHT, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_START_SWIM, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_START_TURN_LEFT, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_START_TURN_RIGHT, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_STOP, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_STOP_ASCEND, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_STOP_PITCH, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_STOP_STRAFE, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_STOP_SWIM, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_STOP_TURN, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_TELEPORT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_TELEPORT_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveTeleportAck );
DEFINE_OPCODE_HANDLER(MSG_MOVE_TELEPORT_CHEAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(MSG_MOVE_TIME_SKIPPED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(MSG_MOVE_TOGGLE_COLLISION_CHEAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(MSG_MOVE_WORLDPORT_ACK, STATUS_TRANSFER, PROCESS_THREADUNSAFE, &WorldSession::HandleMoveWorldportAckOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_MOVE_WORLDPORT_ACK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMoveWorldportAckOpcode );
DEFINE_OPCODE_HANDLER(MSG_NOTIFY_PARTY_SQUELCH, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(MSG_PARTY_ASSIGNMENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePartyAssignmentOpcode );
- DEFINE_OPCODE_HANDLER(MSG_PETITION_DECLINE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionDeclineOpcode );
- DEFINE_OPCODE_HANDLER(MSG_PETITION_RENAME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionRenameOpcode );
- DEFINE_OPCODE_HANDLER(MSG_QUERY_NEXT_MAIL_TIME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryNextMailTime );
- DEFINE_OPCODE_HANDLER(MSG_QUEST_PUSH_RESULT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestPushResult );
- DEFINE_OPCODE_HANDLER(MSG_RAID_READY_CHECK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidReadyCheckOpcode );
- DEFINE_OPCODE_HANDLER(MSG_RAID_READY_CHECK_CONFIRM, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::Handle_NULL );
- DEFINE_OPCODE_HANDLER(MSG_RAID_READY_CHECK_FINISHED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidReadyCheckFinishedOpcode);
- DEFINE_OPCODE_HANDLER(MSG_RAID_TARGET_UPDATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidTargetUpdateOpcode );
- DEFINE_OPCODE_HANDLER(MSG_RANDOM_ROLL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRandomRollOpcode );
- DEFINE_OPCODE_HANDLER(MSG_SAVE_GUILD_EMBLEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSaveGuildEmblemOpcode );
- DEFINE_OPCODE_HANDLER(MSG_SET_DUNGEON_DIFFICULTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetDungeonDifficultyOpcode);
- DEFINE_OPCODE_HANDLER(MSG_SET_RAID_DIFFICULTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetRaidDifficultyOpcode );
- DEFINE_OPCODE_HANDLER(MSG_TABARDVENDOR_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTabardVendorActivateOpcode);
- DEFINE_OPCODE_HANDLER(MSG_TALENT_WIPE_CONFIRM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTalentWipeConfirmOpcode );
- DEFINE_OPCODE_HANDLER(SMSG_ACCOUNT_DATA_TIMES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(MSG_PARTY_ASSIGNMENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePartyAssignmentOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_PETITION_DECLINE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionDeclineOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_PETITION_RENAME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionRenameOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_QUERY_NEXT_MAIL_TIME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryNextMailTime );
+ DEFINE_OPCODE_HANDLER(MSG_QUEST_PUSH_RESULT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestPushResult );
+ DEFINE_OPCODE_HANDLER(MSG_RAID_READY_CHECK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidReadyCheckOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_RAID_READY_CHECK_CONFIRM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
+ DEFINE_OPCODE_HANDLER(MSG_RAID_READY_CHECK_FINISHED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidReadyCheckFinishedOpcode);
+ DEFINE_OPCODE_HANDLER(MSG_RAID_TARGET_UPDATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidTargetUpdateOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_RANDOM_ROLL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRandomRollOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_SAVE_GUILD_EMBLEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSaveGuildEmblemOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_SET_DUNGEON_DIFFICULTY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetDungeonDifficultyOpcode);
+ DEFINE_OPCODE_HANDLER(MSG_SET_RAID_DIFFICULTY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetRaidDifficultyOpcode );
+ DEFINE_OPCODE_HANDLER(MSG_TABARDVENDOR_ACTIVATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTabardVendorActivateOpcode);
+ DEFINE_OPCODE_HANDLER(MSG_TALENT_WIPE_CONFIRM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleTalentWipeConfirmOpcode );
+ DEFINE_OPCODE_HANDLER(SMSG_ACCOUNT_DATA_TIMES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_ACCOUNT_INFO_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_ACCOUNT_RESTRICTED_WARNING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ACHIEVEMENT_DELETED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ACHIEVEMENT_EARNED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ACTION_BUTTONS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ACTIVATETAXIREPLY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ADDON_INFO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ADD_RUNE_POWER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_AI_REACTION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ALL_ACHIEVEMENT_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_AREA_SPIRIT_HEALER_TIME, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_AREA_TRIGGER_MESSAGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ACHIEVEMENT_DELETED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ACHIEVEMENT_EARNED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ACTION_BUTTONS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ACTIVATETAXIREPLY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ADDON_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ADD_RUNE_POWER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_AI_REACTION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ALL_ACHIEVEMENT_DATA, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_AREA_SPIRIT_HEALER_TIME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_AREA_TRIGGER_MESSAGE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_AREA_TRIGGER_MOVEMENT_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ARENA_ERROR, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ARENA_UNIT_DESTROYED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ARENA_ERROR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ARENA_UNIT_DESTROYED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_ARENA_TEAM_CHANGE_FAILED_QUEUED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ARENA_TEAM_COMMAND_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ARENA_TEAM_EVENT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ARENA_TEAM_INVITE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ARENA_TEAM_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ARENA_TEAM_ROSTER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ARENA_TEAM_STATS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ATTACKERSTATEUPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ATTACKSTART, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ATTACKSTOP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ATTACKSWING_BADFACING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ATTACKSWING_CANT_ATTACK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ATTACKSWING_DEADTARGET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ATTACKSWING_NOTINRANGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_AUCTION_BIDDER_LIST_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_AUCTION_BIDDER_NOTIFICATION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_AUCTION_COMMAND_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_AUCTION_LIST_PENDING_SALES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_AUCTION_LIST_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_AUCTION_OWNER_LIST_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_AUCTION_OWNER_NOTIFICATION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_AUCTION_REMOVED_NOTIFICATION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ARENA_TEAM_COMMAND_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ARENA_TEAM_EVENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ARENA_TEAM_INVITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ARENA_TEAM_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ARENA_TEAM_ROSTER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ARENA_TEAM_STATS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ATTACKERSTATEUPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ATTACKSTART, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ATTACKSTOP, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ATTACKSWING_BADFACING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ATTACKSWING_CANT_ATTACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ATTACKSWING_DEADTARGET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ATTACKSWING_NOTINRANGE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_AUCTION_BIDDER_LIST_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_AUCTION_BIDDER_NOTIFICATION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_AUCTION_COMMAND_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_AUCTION_LIST_PENDING_SALES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_AUCTION_LIST_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_AUCTION_OWNER_LIST_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_AUCTION_OWNER_NOTIFICATION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_AUCTION_REMOVED_NOTIFICATION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_AURA_POINTS_DEPLETED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_AURA_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_AURA_UPDATE_ALL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_AURA_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_AURA_UPDATE_ALL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_AUTH_CHALLENGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_AUTH_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_AVAILABLE_VOICE_CHANNEL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_AVERAGE_ITEM_LEVEL_INFORM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BARBER_SHOP_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_MGR_EJECTED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BARBER_SHOP_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_MGR_EJECTED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_MGR_EJECT_PENDING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_MGR_ENTERED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_MGR_ENTRY_INVITE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_MGR_ENTERED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_MGR_ENTRY_INVITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_MGR_EXIT_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_MGR_QUEUE_INVITE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_MGR_QUEUE_REQUEST_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_MGR_QUEUE_INVITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_MGR_QUEUE_REQUEST_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_MGR_STATE_CHANGE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_PLAYER_POSITIONS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_PLAYER_POSITIONS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_PORT_DENIED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_RATED_INFO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_QUEUED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_ACTIVE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_NEEDCONFIRMATION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_WAITFORGROUPS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_RATED_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_QUEUED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_ACTIVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_NEEDCONFIRMATION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_WAITFORGROUPS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_BATTLEGROUND_INFO_THROTTLED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_JOINED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_LEFT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BINDER_CONFIRM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BINDPOINTUPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_JOINED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_LEFT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BINDER_CONFIRM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BINDPOINTUPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_BINDZONEREPLY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BREAK_TARGET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BUY_BANK_SLOT_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BUY_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_BUY_ITEM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_ARENA_TEAM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_CLEAR_PENDING_ACTION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_COMMAND_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_INVITE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_INVITE_ALERT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BREAK_TARGET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BUY_BANK_SLOT_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BUY_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_BUY_ITEM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_ARENA_TEAM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_CLEAR_PENDING_ACTION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_COMMAND_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_INVITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_INVITE_ALERT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_INVITE_NOTES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_INVITE_NOTES_ALERT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_INVITE_REMOVED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_INVITE_REMOVED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_MODERATOR_STATUS_ALERT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_REMOVED_ALERT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_UPDATED_ALERT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_FILTER_GUILD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_RAID_LOCKOUT_ADDED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_RAID_LOCKOUT_REMOVED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_RAID_LOCKOUT_UPDATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_SEND_CALENDAR, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_SEND_EVENT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_SEND_NUM_PENDING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_MODERATOR_STATUS_ALERT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_REMOVED_ALERT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_STATUS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_EVENT_UPDATED_ALERT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_FILTER_GUILD, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_RAID_LOCKOUT_ADDED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_RAID_LOCKOUT_REMOVED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_RAID_LOCKOUT_UPDATED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_SEND_CALENDAR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_SEND_EVENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CALENDAR_SEND_NUM_PENDING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CAMERA_SHAKE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CANCEL_AUTO_REPEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CANCEL_COMBAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CAST_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CHANNEL_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CHANNEL_MEMBER_COUNT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CANCEL_AUTO_REPEAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CANCEL_COMBAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CAST_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CHANNEL_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CHANNEL_MEMBER_COUNT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CHARACTER_LOGIN_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CHAR_CREATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CHAR_DELETE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CHAR_CREATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CHAR_DELETE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CHAR_ENUM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CHAR_FACTION_CHANGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CHAR_RENAME, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CHAR_FACTION_CHANGE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CHAR_RENAME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CHAT_IGNORED_ACCOUNT_MUTED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CHAT_NOT_IN_PARTY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CHAT_PLAYER_AMBIGUOUS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CHAT_PLAYER_NOT_FOUND, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CHAT_RESTRICTED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CHAT_PLAYER_NOT_FOUND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CHAT_RESTRICTED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CHAT_SERVER_DISCONNECTED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CHAT_SERVER_RECONNECTED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CHAT_WRONG_FACTION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CHAT_WRONG_FACTION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CLEAR_BOSS_EMOTES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CLEAR_COOLDOWN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CLEAR_COOLDOWNS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CLEAR_COOLDOWN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CLEAR_COOLDOWNS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CLEAR_FAR_SIGHT_IMMEDIATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CLEAR_TARGET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CLIENTCACHE_VERSION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CLIENT_CONTROL_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_COMBAT_EVENT_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CLEAR_TARGET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CLIENTCACHE_VERSION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CLIENT_CONTROL_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_COMBAT_EVENT_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_COMMENTATOR_MAP_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_COMMENTATOR_PARTY_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_COMMENTATOR_PLAYER_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT1, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT2, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_COMMENTATOR_STATE_CHANGED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_COMPLAIN_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_COMPLAIN_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_COMPRESSED_MOVES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_COMPRESSED_PACKET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_COMSAT_CONNECT_FAIL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_COMSAT_DISCONNECT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_COMSAT_RECONNECT_TRY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CONTACT_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CONVERT_RUNE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CONTACT_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CONVERT_RUNE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_COOLDOWN_CHEAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_COOLDOWN_EVENT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_COOLDOWN_EVENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CORPSE_NOT_IN_INSTANCE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CORPSE_RECLAIM_DELAY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CREATURE_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CRITERIA_DELETED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CRITERIA_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CROSSED_INEBRIATION_THRESHOLD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CORPSE_NOT_IN_INSTANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CORPSE_RECLAIM_DELAY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CREATURE_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CRITERIA_DELETED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CRITERIA_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CROSSED_INEBRIATION_THRESHOLD, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CURRENCY_LOOT_REMOVED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_CURRENCY_LOOT_RESTORED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_CUSTOM_LOAD_SCREEN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_CUSTOM_LOAD_SCREEN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_DAMAGE_CALC_LOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_DANCE_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DB_REPLY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DEATH_RELEASE_LOC, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DB_REPLY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DEATH_RELEASE_LOC, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_DEBUG_RUNE_REGEN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_DEFENSE_MESSAGE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DESTROY_OBJECT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DESTRUCTIBLE_BUILDING_DAMAGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DESTROY_OBJECT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DESTRUCTIBLE_BUILDING_DAMAGE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_DIFFERENT_INSTANCE_FROM_PARTY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_DISENCHANT_CREDIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DISMOUNT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DISMOUNTRESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DISPEL_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DISMOUNT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DISMOUNTRESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DISPEL_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_DISPLAY_GAME_ERROR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_DROP_NEW_CONNECTION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DUEL_COMPLETE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DUEL_COUNTDOWN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DUEL_INBOUNDS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DUEL_OUTOFBOUNDS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DUEL_REQUESTED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DUEL_WINNER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DUEL_COMPLETE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DUEL_COUNTDOWN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DUEL_INBOUNDS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DUEL_OUTOFBOUNDS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DUEL_REQUESTED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DUEL_WINNER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_DUMP_RIDE_TICKETS_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_DURABILITY_DAMAGE_DEATH, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_DURABILITY_DAMAGE_DEATH, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_ECHO_PARTY_SQUELCH, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_EMOTE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ENABLE_BARBER_SHOP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ENCHANTMENTLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ENVIRONMENTALDAMAGELOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_EQUIPMENT_SET_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_EQUIPMENT_SET_SAVED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_EQUIPMENT_SET_USE_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_EMOTE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ENABLE_BARBER_SHOP, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ENCHANTMENTLOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ENVIRONMENTALDAMAGELOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_EQUIPMENT_SET_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_EQUIPMENT_SET_SAVED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_EQUIPMENT_SET_USE_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_EXPECTED_SPAM_RECORDS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_EXPLORATION_EXPERIENCE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_EXPLORATION_EXPERIENCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_FAILED_PLAYER_CONDITION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_FEIGN_DEATH_RESISTED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_FISH_ESCAPED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_FISH_NOT_HOOKED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_FISH_ESCAPED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_FISH_NOT_HOOKED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_FLIGHT_SPLINE_SYNC, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_FLOOD_DETECTED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_FORCEACTIONSHOW, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_FORCED_DEATH_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_FORCE_ANIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_FORCE_ANIM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_FORCE_SEND_QUEUED_PACKETS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_FORCE_SET_VEHICLE_REC_ID, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_FORGE_MASTER_SET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_FRIEND_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GAMEOBJECT_CUSTOM_ANIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GAMEOBJECT_DESPAWN_ANIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GAMEOBJECT_PAGETEXT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GAMEOBJECT_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GAMEOBJECT_RESET_STATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_FRIEND_STATUS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GAMEOBJECT_CUSTOM_ANIM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GAMEOBJECT_DESPAWN_ANIM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GAMEOBJECT_PAGETEXT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GAMEOBJECT_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GAMEOBJECT_RESET_STATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GAMESPEED_SET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GAMETIME_SET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GAMETIME_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GAME_EVENT_DEBUG_LOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GMRESPONSE_DB_ERROR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GMRESPONSE_RECEIVED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GMRESPONSE_STATUS_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GMTICKET_CREATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GMTICKET_DELETETICKET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GMTICKET_GETTICKET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GMTICKET_SYSTEMSTATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GMTICKET_UPDATETEXT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GM_MESSAGECHAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GMRESPONSE_RECEIVED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GMRESPONSE_STATUS_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GMTICKET_CREATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GMTICKET_DELETETICKET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GMTICKET_GETTICKET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GMTICKET_SYSTEMSTATUS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GMTICKET_UPDATETEXT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GM_MESSAGECHAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GM_PLAYER_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GM_TICKET_STATUS_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GODMODE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GOSSIP_COMPLETE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GOSSIP_MESSAGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GOSSIP_POI, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GOSSIP_COMPLETE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GOSSIP_MESSAGE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GOSSIP_POI, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GROUPACTION_THROTTLED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GROUP_CANCEL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GROUP_DECLINE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GROUP_DESTROYED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GROUP_INVITE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GROUP_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GROUP_SET_LEADER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GROUP_SET_ROLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GROUP_UNINVITE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_DELETED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_EARNED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GROUP_DECLINE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GROUP_DESTROYED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GROUP_INVITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GROUP_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GROUP_SET_LEADER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GROUP_SET_ROLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GROUP_UNINVITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_DATA, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_DELETED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_EARNED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_ACHIEVEMENT_MEMBERS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_BANK_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_BANK_LOG_QUERY_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_BANK_MONEY_WITHDRAWN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_BANK_QUERY_TEXT_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_BANK_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_BANK_LOG_QUERY_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_BANK_MONEY_WITHDRAWN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_BANK_QUERY_TEXT_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_CHALLENGE_COMPLETED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_CHALLENGE_UPDATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_CHALLENGE_UPDATED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_CHANGE_NAME_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT_2, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_DELETED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_DECLINE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_EVENT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_EVENT_LOG_QUERY_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT_2, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_DATA, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_DELETED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_DECLINE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_EVENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_EVENT_LOG_QUERY_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_EVENT_PRESENCE_CHANGE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_FLAGGED_FOR_RENAME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_INVITE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_INVITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_INVITE_CANCEL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_MAX_DAILY_XP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_MAX_DAILY_XP, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_MEMBERS_FOR_RECIPE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_MEMBER_DAILY_RESET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_MEMBER_DAILY_RESET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_MEMBER_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_MEMBER_UPDATE_NOTE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_MOVE_COMPLETE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_MOVE_STARTING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_NEWS_DELETED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_NEWS_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_PARTY_STATE_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_PERMISSIONS_QUERY_RESULTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_RANK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_RANKS_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_NEWS_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_PARTY_STATE_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_PERMISSIONS_QUERY_RESULTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_RANK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_RANKS_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_RECIPES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_RENAMED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_RENAMED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_REPUTATION_REACTION_CHANGED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_REPUTATION_WEEKLY_CAP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_REPUTATION_WEEKLY_CAP, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_RESET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_REWARDS_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_ROSTER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_REWARDS_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_ROSTER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_GUILD_UPDATE_ROSTER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_XP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_GUILD_XP_GAIN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_XP, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_GUILD_XP_GAIN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_HEALTH_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_HIGHEST_THREAT_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_HOTFIX_INFO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_HIGHEST_THREAT_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_HOTFIX_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_HOTFIX_NOTIFY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_INITIALIZE_FACTIONS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_INITIAL_SPELLS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_INIT_CURRENCY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_INIT_WORLD_STATES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_INSPECT_HONOR_STATS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_INITIALIZE_FACTIONS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_INITIAL_SPELLS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_INIT_CURRENCY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_INIT_WORLD_STATES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_INSPECT_HONOR_STATS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_INSPECT_RATED_BG_STATS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_INSPECT_RESULTS_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_INSPECT_TALENT, STATUS_NEVER, PROCESS_THREADUNSAFE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_INSTANCE_LOCK_WARNING_QUERY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_INSTANCE_RESET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_INSTANCE_RESET_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_INSTANCE_SAVE_CREATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_INSPECT_TALENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_INSTANCE_LOCK_WARNING_QUERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_INSTANCE_RESET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_INSTANCE_RESET_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_INSTANCE_SAVE_CREATED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_INVALIDATE_DANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_INVALIDATE_PLAYER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_INVALID_PROMOTION_CODE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_INVENTORY_CHANGE_FAILURE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_INVENTORY_CHANGE_FAILURE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_ITEM_ADD_PASSIVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ITEM_COOLDOWN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ITEM_ENCHANT_TIME_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ITEM_COOLDOWN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ITEM_ENCHANT_TIME_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_ITEM_EXPIRE_PURCHASE_REFUND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ITEM_PUSH_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ITEM_REFUND_INFO_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ITEM_REFUND_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ITEM_PUSH_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ITEM_REFUND_INFO_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ITEM_REFUND_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_ITEM_REMOVE_PASSIVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_ITEM_SEND_PASSIVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ITEM_TEXT_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ITEM_TIME_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ITEM_TEXT_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ITEM_TIME_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_KICK_REASON, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LEARNED_DANCE_MOVES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LEARNED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LEVELUP_INFO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_BOOT_PROPOSAL_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_DISABLED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_JOIN_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_OFFER_CONTINUE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_PARTY_INFO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_PLAYER_INFO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_PLAYER_REWARD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_PROPOSAL_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_QUEUE_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_ROLE_CHECK_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_ROLE_CHOSEN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LEARNED_DANCE_MOVES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LEARNED_SPELL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LEVELUP_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_BOOT_PROPOSAL_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_DISABLED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_JOIN_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_OFFER_CONTINUE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_PARTY_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_PLAYER_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_PLAYER_REWARD, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_PROPOSAL_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_QUEUE_STATUS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_ROLE_CHECK_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_ROLE_CHOSEN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_LFG_SLOT_INVALID, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_TELEPORT_DENIED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_UPDATE_SEARCH, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LFG_UPDATE_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_TELEPORT_DENIED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_UPDATE_SEARCH, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LFG_UPDATE_STATUS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_LFG_UPDATE_STATUS_NONE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_APPLICANT_LIST_UPDATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_APPLICATIONS_LIST_CHANGED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_BROWSE_UPDATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_COMMAND_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_MEMBERSHIP_LIST_UPDATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_POST_UPDATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_RECRUIT_LIST_UPDATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LIST_INVENTORY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOAD_CUF_PROFILES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOGIN_SETTIMESPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOGIN_VERIFY_WORLD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOGOUT_CANCEL_ACK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOGOUT_COMPLETE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOGOUT_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOG_XPGAIN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOOT_ALL_PASSED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOOT_CLEAR_MONEY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_APPLICANT_LIST_UPDATED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_APPLICATIONS_LIST_CHANGED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_BROWSE_UPDATED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_COMMAND_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_MEMBERSHIP_LIST_UPDATED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_POST_UPDATED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LF_GUILD_RECRUIT_LIST_UPDATED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LIST_INVENTORY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOAD_CUF_PROFILES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOGIN_SETTIMESPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOGIN_VERIFY_WORLD, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOGOUT_CANCEL_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOGOUT_COMPLETE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOGOUT_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOG_XPGAIN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOOT_ALL_PASSED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOOT_CLEAR_MONEY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_LOOT_CONTENTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_LOOT_ITEM_NOTIFY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOOT_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOOT_MASTER_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOOT_MONEY_NOTIFY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOOT_RELEASE_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOOT_REMOVED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOOT_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOOT_ROLL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOOT_ROLL_WON, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOOT_SLOT_CHANGED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_LOOT_START_ROLL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MAIL_LIST_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOOT_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOOT_MASTER_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOOT_MONEY_NOTIFY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOOT_RELEASE_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOOT_REMOVED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOOT_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOOT_ROLL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOOT_ROLL_WON, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOOT_SLOT_CHANGED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_LOOT_START_ROLL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MAIL_LIST_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MAP_OBJ_EVENTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MEETINGSTONE_IN_PROGRESS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MESSAGECHAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MESSAGECHAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MESSAGE_BOX, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MINIGAME_SETUP, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MINIGAME_STATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MIRRORIMAGE_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MIRRORIMAGE_DATA, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MISSILE_CANCEL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MODIFY_COOLDOWN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MODIFY_COOLDOWN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MONEY_NOTIFY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MONSTER_MOVE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MONSTER_MOVE_TRANSPORT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOTD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MONSTER_MOVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MONSTER_MOVE_TRANSPORT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOTD, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOUNTRESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOUNTSPECIAL_ANIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOUNTSPECIAL_ANIM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_COLLISION_DISABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_COLLISION_ENABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_FEATHER_FALL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_FEATHER_FALL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_GRAVITY_DISABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_GRAVITY_ENABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_KNOCK_BACK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_LAND_WALK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_NORMAL_FALL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_ROOT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_ACTIVE_MOVER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_CAN_FLY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_KNOCK_BACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_LAND_WALK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_NORMAL_FALL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_ROOT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_ACTIVE_MOVER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_CAN_FLY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_COLLISION_HEIGHT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_COLLISION_HEIGHT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_COMPOUND_STATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_FLIGHT_BACK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_FLIGHT_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_HOVER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_PITCH_RATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_RUN_BACK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_RUN_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_BACK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_TURN_RATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_WALK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_UNROOT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_FLY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_FLIGHT_BACK_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_FLIGHT_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_HOVER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_PITCH_RATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_RUN_BACK_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_RUN_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_BACK_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_SWIM_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_TURN_RATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_SET_WALK_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_UNROOT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_FLY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_UNSET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_UNSET_HOVER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_UNSET_HOVER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_COLLISION_HEIGHT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_FLIGHT_BACK_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_FLIGHT_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_KNOCK_BACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_PITCH_RATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_RUN_BACK_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_RUN_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_RUN_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_SWIM_BACK_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_SWIM_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_TELEPORT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_TELEPORT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_TURN_RATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MOVE_UPDATE_WALK_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_MOVE_WATER_WALK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_MOVE_WATER_WALK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_MULTIPLE_PACKETS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_NAME_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_NEW_TAXI_PATH, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_NEW_WORLD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_NAME_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_NEW_TAXI_PATH, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_NEW_WORLD, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_NEW_WORLD_ABORT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_NOTIFICATION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_NOTIFICATION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_NOTIFY_DANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_NOTIFY_DEST_LOC_SPELL_CAST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_NPC_TEXT_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_NPC_TEXT_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_OFFER_PETITION_ERROR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_OPEN_CONTAINER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_OPEN_LFG_DUNGEON_FINDER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_OVERRIDE_LIGHT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PAGE_TEXT_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PARTYKILLLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PARTY_COMMAND_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PARTY_MEMBER_STATS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PARTY_MEMBER_STATS_FULL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_OVERRIDE_LIGHT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PAGE_TEXT_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PARTYKILLLOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PARTY_COMMAND_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PARTY_MEMBER_STATS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PARTY_MEMBER_STATS_FULL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PAUSE_MIRROR_TIMER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PERIODICAURALOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PETGODMODE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PERIODICAURALOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PETGODMODE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PETITION_ALREADY_SIGNED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PETITION_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PETITION_SHOWLIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PETITION_SHOW_SIGNATURES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PETITION_SIGN_RESULTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PET_ACTION_FEEDBACK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PET_ACTION_SOUND, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PETITION_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PETITION_SHOWLIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PETITION_SHOW_SIGNATURES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PETITION_SIGN_RESULTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PET_ACTION_FEEDBACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PET_ACTION_SOUND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PET_ADDED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PET_BROKEN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PET_CAST_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PET_CAST_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PET_DISMISS_SOUND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PET_GUIDS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PET_LEARNED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PET_LEARNED_SPELL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PET_MODE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PET_NAME_INVALID, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PET_NAME_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PET_REMOVED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PET_NAME_INVALID, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PET_NAME_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PET_REMOVED_SPELL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PET_RENAMEABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PET_SLOT_UPDATED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PET_SPELLS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PET_SPELLS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PET_TAME_FAILURE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PET_UPDATE_COMBO_POINTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PLAYED_TIME, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PET_UPDATE_COMBO_POINTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PLAYED_TIME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PLAYERBINDERROR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PLAYERBOUND, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PLAYERBOUND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PLAYER_DIFFICULTY_CHANGE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PLAYER_MOVE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PLAYER_SKINNED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PLAYER_VEHICLE_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PLAY_DANCE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PLAY_MUSIC, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PLAY_OBJECT_SOUND, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PLAY_ONE_SHOT_ANIM_KIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PLAY_SOUND, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PLAYER_MOVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PLAYER_SKINNED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PLAYER_VEHICLE_DATA, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PLAY_DANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PLAY_MUSIC, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PLAY_OBJECT_SOUND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PLAY_ONE_SHOT_ANIM_KIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PLAY_SOUND, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL_KIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL_KIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_PLAY_TIME_WARNING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PONG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_POWER_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PRE_RESURRECT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PROCRESIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PROPOSE_LEVEL_GRANT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PVP_CREDIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PVP_LOG_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_PVP_OPTIONS_ENABLED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUERY_QUESTS_COMPLETED_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUERY_TIME_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_OFFER_REWARD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_QUEST_COMPLETE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_QUEST_DETAILS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_QUEST_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_QUEST_INVALID, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_QUEST_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_REQUEST_ITEMS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_STATUS_MULTIPLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTLOG_FULL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTUPDATE_ADD_KILL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTUPDATE_ADD_PVP_KILL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTUPDATE_COMPLETE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTUPDATE_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUESTUPDATE_FAILEDTIMER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUEST_CONFIRM_ACCEPT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUEST_FORCE_REMOVE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUEST_NPC_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUEST_POI_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_QUEST_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_RAID_GROUP_ONLY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_RAID_INSTANCE_INFO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_RAID_INSTANCE_MESSAGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PONG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_POWER_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PRE_RESURRECT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PROCRESIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PROPOSE_LEVEL_GRANT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PVP_CREDIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PVP_LOG_DATA, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_PVP_OPTIONS_ENABLED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUERY_QUESTS_COMPLETED_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUERY_TIME_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_OFFER_REWARD, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_QUEST_COMPLETE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_QUEST_DETAILS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_QUEST_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_QUEST_INVALID, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_QUEST_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_REQUEST_ITEMS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_STATUS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTGIVER_STATUS_MULTIPLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTLOG_FULL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTUPDATE_ADD_KILL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTUPDATE_ADD_PVP_KILL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTUPDATE_COMPLETE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTUPDATE_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUESTUPDATE_FAILEDTIMER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUEST_CONFIRM_ACCEPT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUEST_FORCE_REMOVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUEST_NPC_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUEST_POI_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_QUEST_QUERY_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_RAID_GROUP_ONLY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_RAID_INSTANCE_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_RAID_INSTANCE_MESSAGE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_RAID_MARKERS_CHANGED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_RAID_READY_CHECK_THROTTLED_ERROR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_RAID_SUMMON_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_RANDOMIZE_CHAR_NAME, STATUS_NEVER, PROCESS_THREADUNSAFE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_RANDOMIZE_CHAR_NAME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_RATED_BG_RATING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_RATED_BG_STATS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_READ_ITEM_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_READ_ITEM_OK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_REALM_SPLIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_REAL_GROUP_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_RECEIVED_MAIL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_RATED_BG_STATS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_READ_ITEM_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_READ_ITEM_OK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_REALM_SPLIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_REAL_GROUP_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_RECEIVED_MAIL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_REDIRECT_CLIENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_REFER_A_FRIEND_EXPIRED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_REFER_A_FRIEND_FAILURE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_REFORGE_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_REMOVED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_REFER_A_FRIEND_FAILURE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_REFORGE_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_REMOVED_SPELL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_REPORT_PVP_AFK_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_REQUEST_CEMETERY_LIST_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_REQUEST_PVP_REWARDS_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_REQUEST_CEMETERY_LIST_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_REQUEST_PVP_REWARDS_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_RESEARCH_COMPLETE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_RESEARCH_SETUP_HISTORY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_RESET_COMPRESSION_CONTEXT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_RESET_FAILED_NOTIFY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_RESPOND_INSPECT_ACHIEVEMENTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_RESET_FAILED_NOTIFY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_RESPOND_INSPECT_ACHIEVEMENTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_RESURRECT_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_RESURRECT_REQUEST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_RESYNC_RUNES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ROLE_POLL_BEGIN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_RESURRECT_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_RESYNC_RUNES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ROLE_POLL_BEGIN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_RWHOIS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SELL_ITEM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SEND_MAIL_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SEND_UNLEARN_SPELLS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SELL_ITEM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SEND_MAIL_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SEND_UNLEARN_SPELLS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_SERVERTIME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SERVER_FIRST_ACHIEVEMENT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SERVER_FIRST_ACHIEVEMENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_SERVER_INFO_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SERVER_MESSAGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SERVER_MESSAGE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_SERVER_PERF, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_AI_ANIM_KIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_AI_ANIM_KIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_SET_DF_FAST_LAUNCH_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_SET_FACTION_ATWAR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_FACTION_NOT_VISIBLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_FACTION_STANDING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_FACTION_VISIBLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_FLAT_SPELL_MODIFIER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_FORCED_REACTIONS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_MELEE_ANIM_KIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_MOVEMENT_ANIM_KIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_PCT_SPELL_MODIFIER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_PHASE_SHIFT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_PLAY_HOVER_ANIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_PROFICIENCY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SET_PROJECTILE_POSITION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SHOWTAXINODES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SHOW_BANK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SHOW_MAILBOX, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_FACTION_NOT_VISIBLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_FACTION_STANDING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_FACTION_VISIBLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_FLAT_SPELL_MODIFIER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_FORCED_REACTIONS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_MELEE_ANIM_KIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_MOVEMENT_ANIM_KIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_PCT_SPELL_MODIFIER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_PHASE_SHIFT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_PLAY_HOVER_ANIM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_PROFICIENCY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SET_PROJECTILE_POSITION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SHOWTAXINODES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SHOW_BANK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SHOW_MAILBOX, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_SHOW_RATINGS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SOCKET_GEMS_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SOCKET_GEMS_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_SOR_START_EXPERIENCE_INCOMPLETE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELLBREAKLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELLDAMAGESHIELD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELLDISPELLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELLENERGIZELOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELLHEALLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELLINSTAKILLLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELLINTERRUPTLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELLLOGEXECUTE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELLLOGMISS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELLNONMELEEDAMAGELOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELLORDAMAGE_IMMUNE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELLSTEALLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELL_CATEGORY_COOLDOWN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELL_COOLDOWN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELL_DELAYED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELL_FAILED_OTHER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELL_FAILURE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELL_GO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPELL_START, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELLBREAKLOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELLDAMAGESHIELD, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELLDISPELLOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELLENERGIZELOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELLHEALLOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELLINSTAKILLLOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELLINTERRUPTLOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELLLOGEXECUTE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELLLOGMISS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELLNONMELEEDAMAGELOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELLORDAMAGE_IMMUNE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELLSTEALLOG, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELL_CATEGORY_COOLDOWN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELL_COOLDOWN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELL_DELAYED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELL_FAILED_OTHER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELL_FAILURE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELL_GO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPELL_START, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_SPELL_UPDATE_CHAIN_TARGETS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPIRIT_HEALER_CONFIRM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPIRIT_HEALER_CONFIRM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_COLLISION_DISABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_COLLISION_ENABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_GRAVITY_DISABLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_GRAVITY_ENABLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_ROOT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_ANIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_FEATHER_FALL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_FLIGHT_BACK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_FLIGHT_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_FLYING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_HOVER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_LAND_WALK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_NORMAL_FALL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_PITCH_RATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_RUN_BACK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_RUN_MODE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_RUN_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_SWIM_BACK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_SWIM_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_TURN_RATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_WALK_MODE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_WALK_SPEED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_WATER_WALK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_START_SWIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_STOP_SWIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_UNROOT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_UNSET_FLYING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_UNSET_HOVER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_STABLE_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_STANDSTATE_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_START_MIRROR_TIMER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_START_TIMER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_STOP_DANCE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_STOP_MIRROR_TIMER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_GRAVITY_DISABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_GRAVITY_ENABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_ROOT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_ANIM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_FEATHER_FALL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_FLIGHT_BACK_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_FLIGHT_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_FLYING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_HOVER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_LAND_WALK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_NORMAL_FALL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_PITCH_RATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_RUN_BACK_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_RUN_MODE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_RUN_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_SWIM_BACK_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_SWIM_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_TURN_RATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_WALK_MODE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_WALK_SPEED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_SET_WATER_WALK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_START_SWIM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_STOP_SWIM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_UNROOT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_UNSET_FLYING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SPLINE_MOVE_UNSET_HOVER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_STABLE_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_STANDSTATE_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_START_MIRROR_TIMER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_START_TIMER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_STOP_DANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_STOP_MIRROR_TIMER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_STREAMING_MOVIE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SUMMON_CANCEL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SUMMON_REQUEST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_SUPERCEDED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SUMMON_CANCEL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SUMMON_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_SUPERCEDED_SPELL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_SUPPRESS_NPC_GREETINGS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_SUSPEND_COMMS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_SUSPEND_TOKEN_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_TALENTS_ERROR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TALENTS_INFO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TALENTS_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_TALENTS_INVOLUNTARILY_RESET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TAXINODE_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TAXINODE_STATUS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_TEST_DROP_RATE_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TEXT_EMOTE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_THREAT_CLEAR, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_THREAT_REMOVE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_THREAT_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TEXT_EMOTE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_THREAT_CLEAR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_THREAT_REMOVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_THREAT_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_TIME_ADJUSTMENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TIME_SYNC_REQ, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TITLE_EARNED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TIME_SYNC_REQ, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TITLE_EARNED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_TOGGLE_XP_GAIN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TOTEM_CREATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TRADE_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TRADE_STATUS_EXTENDED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TRAINER_BUY_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TRAINER_BUY_SUCCEEDED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TRAINER_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TRANSFER_ABORTED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TRANSFER_PENDING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TRIGGER_CINEMATIC, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TRIGGER_MOVIE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TURN_IN_PETITION_RESULTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_TUTORIAL_FLAGS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TOTEM_CREATED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TRADE_STATUS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TRADE_STATUS_EXTENDED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TRAINER_BUY_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TRAINER_BUY_SUCCEEDED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TRAINER_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TRANSFER_ABORTED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TRANSFER_PENDING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TRIGGER_CINEMATIC, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TRIGGER_MOVIE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TURN_IN_PETITION_RESULTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_TUTORIAL_FLAGS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_UNIT_HEALTH_FREQUENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_UNIT_SPELLCAST_START, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_UPDATE_ACCOUNT_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_UPDATE_ACCOUNT_DATA_COMPLETE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_UPDATE_COMBO_POINTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_UPDATE_CURRENCY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_UPDATE_CURRENCY_WEEK_LIMIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_UPDATE_ACCOUNT_DATA, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_UPDATE_ACCOUNT_DATA_COMPLETE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_UPDATE_COMBO_POINTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_UPDATE_CURRENCY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_UPDATE_CURRENCY_WEEK_LIMIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_UPDATE_DUNGEON_ENCOUNTER_FOR_LOOT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_UPDATE_INSTANCE_OWNERSHIP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_UPDATE_LAST_INSTANCE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_UPDATE_OBJECT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_UPDATE_INSTANCE_OWNERSHIP, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_UPDATE_LAST_INSTANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_UPDATE_OBJECT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_UPDATE_SERVER_PLAYER_POSITION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_UPDATE_WORLD_STATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_USERLIST_ADD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_USERLIST_REMOVE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_USERLIST_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_UPDATE_WORLD_STATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_USERLIST_ADD, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_USERLIST_REMOVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_USERLIST_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_VOICESESSION_FULL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_VOICE_CHAT_STATUS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_VOICE_PARENTAL_CONTROLS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_VOICE_SESSION_LEAVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_VOICE_SESSION_ROSTER_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_VOICE_SET_TALKER_MUTED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_VOID_ITEM_SWAP_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_VOID_STORAGE_CONTENTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_VOID_STORAGE_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_VOID_STORAGE_TRANSFER_CHANGES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_VOID_TRANSFER_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_VOID_ITEM_SWAP_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_VOID_STORAGE_CONTENTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_VOID_STORAGE_FAILED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_VOID_STORAGE_TRANSFER_CHANGES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_VOID_TRANSFER_RESULT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_WAIT_QUEUE_FINISH, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_WAIT_QUEUE_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_WARDEN_DATA, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_WARGAME_CHECK_ENTRY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_WARGAME_REQUEST_SENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_WEATHER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_WEATHER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_WEEKLY_LAST_RESET, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_WEEKLY_RESET_CURRENCY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_WEEKLY_SPELL_USAGE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_WEEKLY_SPELL_USAGE_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_WHO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_WHOIS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_WORLD_SERVER_INFO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_WORLD_STATE_UI_TIMER_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_WHO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_WHOIS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_WORLD_SERVER_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_WORLD_STATE_UI_TIMER_UPDATE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
DEFINE_OPCODE_HANDLER(SMSG_XP_GAIN_ABORTED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
- DEFINE_OPCODE_HANDLER(SMSG_ZONE_UNDER_ATTACK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
+ DEFINE_OPCODE_HANDLER(SMSG_ZONE_UNDER_ATTACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
// Not implemented and/or missing
diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h
index bd56173ba38..bc542f2bdc3 100644
--- a/src/server/game/Server/Protocol/Opcodes.h
+++ b/src/server/game/Server/Protocol/Opcodes.h
@@ -24,24 +24,24 @@
#define _OPCODES_H
#include "Common.h"
+#include <iomanip>
enum OpcodeMisc : uint32
{
- MAX_OPCODE = 0x1FFF,
- NUM_OPCODE_HANDLERS = (MAX_OPCODE + 1),
- UNKNOWN_OPCODE = (0xFFFF + 1),
- NULL_OPCODE = 0,
- COMPRESSED_OPCODE_MASK = 0x8000
+ MAX_OPCODE = 0x1FFF,
+ NUM_OPCODE_HANDLERS = (MAX_OPCODE + 1),
+ UNKNOWN_OPCODE = (0xFFFF + 1),
+ NULL_OPCODE = 0
};
-// CMSGs
+// CMSGs 6.0.3.19103
enum OpcodeClient : uint32
{
CMSG_ACCEPT_LEVEL_GRANT = 0x0000,
CMSG_ACCEPT_TRADE = 0x0000,
CMSG_ACTIVATETAXI = 0x0000,
CMSG_ACTIVATETAXIEXPRESS = 0x0000,
- CMSG_ADDON_REGISTERED_PREFIXES = 0x0000,
+ CMSG_ADDON_REGISTERED_PREFIXES = 0x03F4,
CMSG_ADD_FRIEND = 0x0000,
CMSG_ADD_IGNORE = 0x0000,
CMSG_ADD_VOICE_IGNORE = 0x0000,
@@ -61,7 +61,7 @@ enum OpcodeClient : uint32
CMSG_ARENA_TEAM_ROSTER = 0x0000,
CMSG_ATTACKSTOP = 0x0000,
CMSG_ATTACKSWING = 0x0000,
- CMSG_AUCTION_HELLO = 0x1074,
+ CMSG_AUCTION_HELLO = 0x13EA,
CMSG_AUCTION_LIST_BIDDER_ITEMS = 0x0000,
CMSG_AUCTION_LIST_ITEMS = 0x0000,
CMSG_AUCTION_LIST_OWNER_ITEMS = 0x0000,
@@ -69,7 +69,7 @@ enum OpcodeClient : uint32
CMSG_AUCTION_PLACE_BID = 0x0000,
CMSG_AUCTION_REMOVE_ITEM = 0x0000,
CMSG_AUCTION_SELL_ITEM = 0x0000,
- CMSG_AUTH_SESSION = 0x1B05,
+ CMSG_AUTH_SESSION = 0x0487,
CMSG_AUTOBANK_ITEM = 0x0000,
CMSG_AUTOEQUIP_GROUND_ITEM = 0x0000,
CMSG_AUTOEQUIP_ITEM = 0x0000,
@@ -80,7 +80,7 @@ enum OpcodeClient : uint32
CMSG_AUTOSTORE_LOOT_ITEM = 0x0000,
CMSG_AUTO_DECLINE_GUILD_INVITE = 0x0000,
CMSG_AUTO_DECLINE_GUILD_INVITES = 0x0000,
- CMSG_BANKER_ACTIVATE = 0x0000,
+ CMSG_BANKER_ACTIVATE = 0x1B24,
CMSG_BATTLEFIELD_JOIN = 0x0000,
CMSG_BATTLEFIELD_LEAVE = 0x0000,
CMSG_BATTLEFIELD_LIST = 0x0000,
@@ -92,7 +92,7 @@ enum OpcodeClient : uint32
CMSG_BATTLEFIELD_REQUEST_SCORE_DATA = 0x0000,
CMSG_BATTLEFIELD_STATUS = 0x0000,
CMSG_BATTLEGROUND_PLAYER_POSITIONS = 0x0000,
- CMSG_BATTLEMASTER_JOIN = 0x0327,
+ CMSG_BATTLEMASTER_JOIN = 0x0000,
CMSG_BATTLEMASTER_JOIN_ARENA = 0x0000,
CMSG_BATTLEMASTER_JOIN_RATED = 0x0000,
CMSG_BATTLEMASTER_HELLO = 0x0000,
@@ -129,8 +129,8 @@ enum OpcodeClient : uint32
CMSG_CANCEL_MOUNT_AURA = 0x0000,
CMSG_CANCEL_QUEUED_SPELL = 0x0000,
CMSG_CANCEL_TEMP_ENCHANTMENT = 0x0000,
- CMSG_CANCEL_TRADE = 0x0591,
- CMSG_CAST_SPELL = 0x0D55,
+ CMSG_CANCEL_TRADE = 0x1159,
+ CMSG_CAST_SPELL = 0x0000,
CMSG_CHANGEPLAYER_DIFFICULTY = 0x0000,
CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE = 0x0000,
CMSG_CHANNEL_ANNOUNCEMENTS = 0x0000,
@@ -155,10 +155,10 @@ enum OpcodeClient : uint32
CMSG_CHANNEL_UNSILENCE_VOICE = 0x0000,
CMSG_CHANNEL_VOICE_OFF = 0x0000,
CMSG_CHANNEL_VOICE_ON = 0x0000,
- CMSG_CHAR_CREATE = 0x10F3,
+ CMSG_CHAR_CREATE = 0x070D,
CMSG_CHAR_CUSTOMIZE = 0x0000,
- CMSG_CHAR_DELETE = 0x08FC,
- CMSG_CHAR_ENUM = 0x01EC,
+ CMSG_CHAR_DELETE = 0x030E,
+ CMSG_CHAR_ENUM = 0x0918,
CMSG_CHAR_FACTION_CHANGE = 0x0000,
CMSG_CHAR_RACE_CHANGE = 0x0000,
CMSG_CHAR_RENAME = 0x0000,
@@ -182,9 +182,9 @@ enum OpcodeClient : uint32
CMSG_CONNECT_TO_FAILED = 0x0000,
CMSG_CONTACT_LIST = 0x0000,
CMSG_CORPSE_MAP_POSITION_QUERY = 0x0000,
- CMSG_CREATURE_QUERY = 0x14D6,
+ CMSG_CREATURE_QUERY = 0x0505,
CMSG_DANCE_QUERY = 0x0000,
- CMSG_DB_QUERY_BULK = 0x09AC,
+ CMSG_DB_QUERY_BULK = 0x138B,
CMSG_DECLINE_CHANNEL_INVITE = 0x0000,
CMSG_DEL_FRIEND = 0x0000,
CMSG_DEL_IGNORE = 0x0000,
@@ -199,13 +199,13 @@ enum OpcodeClient : uint32
CMSG_ENABLETAXI = 0x0000,
CMSG_ENABLE_NAGLE = 0x0000,
CMSG_EQUIPMENT_SET_DELETE = 0x0000,
- CMSG_EQUIPMENT_SET_SAVE = 0x0000,
+ CMSG_EQUIPMENT_SET_SAVE = 0x1B54,
CMSG_EQUIPMENT_SET_USE = 0x0000,
CMSG_FAR_SIGHT = 0x0000,
CMSG_FORCE_MOVE_ROOT_ACK = 0x0000,
CMSG_FORCE_MOVE_UNROOT_ACK = 0x0000,
CMSG_GAMEOBJECT_QUERY = 0x0D97,
- CMSG_GAMEOBJ_REPORT_USE = 0x0000,
+ CMSG_GAMEOBJ_REPORT_USE = 0x082E,
CMSG_GAMEOBJ_USE = 0x0000,
CMSG_GAMESPEED_SET = 0x0000,
CMSG_GAMETIME_SET = 0x0000,
@@ -224,8 +224,8 @@ enum OpcodeClient : uint32
CMSG_GM_NUKE = 0x0000,
CMSG_GM_REPORT_LAG = 0x0000,
CMSG_GM_SET_SECURITY_GROUP = 0x0000,
- CMSG_GOSSIP_HELLO = 0x0647,
- CMSG_GOSSIP_SELECT_OPTION = 0x0000,
+ CMSG_GOSSIP_HELLO = 0x00F3,
+ CMSG_GOSSIP_SELECT_OPTION = 0x0332,
CMSG_GRANT_LEVEL = 0x0000,
CMSG_GROUP_ASSISTANT_LEADER = 0x0000,
CMSG_GROUP_CANCEL = 0x0000,
@@ -271,9 +271,9 @@ enum OpcodeClient : uint32
CMSG_GUILD_NEWS_UPDATE_STICKY = 0x0000,
CMSG_GUILD_PERMISSIONS = 0x0000,
CMSG_GUILD_PROMOTE = 0x0000,
- CMSG_GUILD_QUERY = 0x00E4,
+ CMSG_GUILD_QUERY = 0x0930,
CMSG_GUILD_QUERY_NEWS = 0x0000,
- CMSG_GUILD_QUERY_RANKS = 0x018E,
+ CMSG_GUILD_QUERY_RANKS = 0x0000,
CMSG_GUILD_REMOVE = 0x0000,
CMSG_GUILD_REPLACE_GUILD_MASTER = 0x0000,
CMSG_GUILD_REQUEST_CHALLENGE_UPDATE = 0x0000,
@@ -292,9 +292,9 @@ enum OpcodeClient : uint32
CMSG_INSPECT_HONOR_STATS = 0x0000,
CMSG_INSTANCE_LOCK_WARNING_RESPONSE = 0x0000,
CMSG_ITEM_REFUND = 0x0000,
- CMSG_ITEM_REFUND_INFO = 0x0154,
+ CMSG_ITEM_REFUND_INFO = 0x0924,
CMSG_ITEM_TEXT_QUERY = 0x0000,
- CMSG_JOIN_CHANNEL = 0x0EC3,
+ CMSG_JOIN_CHANNEL = 0x0B4B,
CMSG_KEEP_ALIVE = 0x0000,
CMSG_LEARN_PREVIEW_TALENTS = 0x0000,
CMSG_LEARN_PREVIEW_TALENTS_PET = 0x0000,
@@ -319,11 +319,11 @@ enum OpcodeClient : uint32
CMSG_LF_GUILD_POST_REQUEST = 0x0000,
CMSG_LF_GUILD_REMOVE_RECRUIT = 0x0000,
CMSG_LF_GUILD_SET_GUILD_POST = 0x0000,
- CMSG_LIST_INVENTORY = 0x1037,
- CMSG_LOAD_SCREEN = 0x09B8,
+ CMSG_LIST_INVENTORY = 0x0000,
+ CMSG_LOAD_SCREEN = 0x0B08,
CMSG_LOGOUT_CANCEL = 0x0000,
- CMSG_LOGOUT_REQUEST = 0x0000,
- CMSG_LOG_DISCONNECT = 0x1856,
+ CMSG_LOGOUT_REQUEST = 0x1911,
+ CMSG_LOG_DISCONNECT = 0x04D5,
CMSG_LOOT = 0x0000,
CMSG_LOOT_CURRENCY = 0x0000,
CMSG_LOOT_MASTER_GIVE = 0x0000,
@@ -344,19 +344,19 @@ enum OpcodeClient : uint32
CMSG_MESSAGECHAT_ADDON_PARTY = 0x0000,
CMSG_MESSAGECHAT_ADDON_RAID = 0x0000,
CMSG_MESSAGECHAT_ADDON_WHISPER = 0x0000,
- CMSG_MESSAGECHAT_AFK = 0x0EEF,
+ CMSG_MESSAGECHAT_AFK = 0x1BDC,
CMSG_MESSAGECHAT_BATTLEGROUND = 0x0000,
- CMSG_MESSAGECHAT_CHANNEL = 0x0288,
- CMSG_MESSAGECHAT_DND = 0x12C7,
- CMSG_MESSAGECHAT_EMOTE = 0x12D4,
- CMSG_MESSAGECHAT_GUILD = 0x039B,
+ CMSG_MESSAGECHAT_CHANNEL = 0x0913,
+ CMSG_MESSAGECHAT_DND = 0x0AAB,
+ CMSG_MESSAGECHAT_EMOTE = 0x113C,
+ CMSG_MESSAGECHAT_GUILD = 0x0B1B,
CMSG_MESSAGECHAT_OFFICER = 0x0000,
- CMSG_MESSAGECHAT_PARTY = 0x06EF,
+ CMSG_MESSAGECHAT_PARTY = 0x0134,
CMSG_MESSAGECHAT_RAID = 0x0000,
CMSG_MESSAGECHAT_RAID_WARNING = 0x0000,
- CMSG_MESSAGECHAT_SAY = 0x07B3,
+ CMSG_MESSAGECHAT_SAY = 0x1884,
CMSG_MESSAGECHAT_WHISPER = 0x0000,
- CMSG_MESSAGECHAT_YELL = 0x1288,
+ CMSG_MESSAGECHAT_YELL = 0x1161,
CMSG_MINIGAME_MOVE = 0x0000,
CMSG_MOUNTSPECIAL_ANIM = 0x0000,
CMSG_MOVE_CHARM_TELEPORT_CHEAT = 0x0000,
@@ -385,20 +385,20 @@ enum OpcodeClient : uint32
CMSG_MOVE_SET_RELATIVE_POSITION = 0x0000,
CMSG_MOVE_SET_VEHICLE_REC_ID_ACK = 0x0000,
CMSG_MOVE_SPLINE_DONE = 0x0000,
- CMSG_MOVE_TIME_SKIPPED = 0x0F46,
+ CMSG_MOVE_TIME_SKIPPED = 0x19C2,
CMSG_MOVE_TOGGLE_COLLISION_ACK = 0x0000,
CMSG_MOVE_WATER_WALK_ACK = 0x0000,
- CMSG_NAME_QUERY = 0x0BA4,
+ CMSG_NAME_QUERY = 0x0B15,
CMSG_NEW_SPELL_SLOT = 0x0000,
CMSG_NEXT_CINEMATIC_CAMERA = 0x0000,
- CMSG_NPC_TEXT_QUERY = 0x0CC3,
+ CMSG_NPC_TEXT_QUERY = 0x0ECB,
CMSG_OBJECT_UPDATE_FAILED = 0x0000,
CMSG_OBJECT_UPDATE_RESCUED = 0x0000,
CMSG_OFFER_PETITION = 0x0000,
CMSG_OPENING_CINEMATIC = 0x0000,
CMSG_OPEN_ITEM = 0x0000,
CMSG_OPT_OUT_OF_LOOT = 0x0000,
- CMSG_PAGE_TEXT_QUERY = 0x0B98,
+ CMSG_PAGE_TEXT_QUERY = 0x0BBB,
CMSG_PARTY_SILENCE = 0x0000,
CMSG_PARTY_UNSILENCE = 0x0000,
CMSG_PETITION_BUY = 0x0000,
@@ -412,15 +412,15 @@ enum OpcodeClient : uint32
CMSG_PET_CAST_SPELL = 0x0000,
CMSG_PET_LEARN_TALENT = 0x0000,
CMSG_PET_NAME_CACHE = 0x0000,
- CMSG_PET_NAME_QUERY = 0x05A7,
+ CMSG_PET_NAME_QUERY = 0x1433,
CMSG_PET_RENAME = 0x0000,
CMSG_PET_SET_ACTION = 0x0000,
CMSG_PET_SPELL_AUTOCAST = 0x0000,
CMSG_PET_STOP_ATTACK = 0x0000,
- CMSG_PING = 0x1B75,
+ CMSG_PING = 0x0416,
CMSG_PLAYED_TIME = 0x0000,
CMSG_PLAYER_DIFFICULTY_CHANGE = 0x0000,
- CMSG_PLAYER_LOGIN = 0x03A8,
+ CMSG_PLAYER_LOGIN = 0x0B1D,
CMSG_PLAYER_LOGOUT = 0x0000,
CMSG_PLAYER_VEHICLE_ENTER = 0x0000,
CMSG_PLAY_DANCE = 0x0000,
@@ -440,7 +440,7 @@ enum OpcodeClient : uint32
CMSG_QUESTGIVER_CHOOSE_REWARD = 0x0000,
CMSG_QUESTGIVER_COMPLETE_QUEST = 0x0000,
CMSG_QUESTGIVER_HELLO = 0x0000,
- CMSG_QUESTGIVER_QUERY_QUEST = 0x0000,
+ CMSG_QUESTGIVER_QUERY_QUEST = 0x1924,
CMSG_QUESTGIVER_QUEST_AUTOLAUNCH = 0x0000,
CMSG_QUESTGIVER_REQUEST_REWARD = 0x0000,
CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY = 0x0000,
@@ -448,15 +448,15 @@ enum OpcodeClient : uint32
CMSG_QUESTLOG_REMOVE_QUEST = 0x0000,
CMSG_QUESTLOG_SWAP_QUEST = 0x0000,
CMSG_QUEST_CONFIRM_ACCEPT = 0x0000,
- CMSG_QUEST_NPC_QUERY = 0x0000,
- CMSG_QUEST_POI_QUERY = 0x0000,
- CMSG_QUEST_QUERY = 0x0A94,
+ CMSG_QUEST_NPC_QUERY = 0x0B81,
+ CMSG_QUEST_POI_QUERY = 0x0BD9,
+ CMSG_QUEST_QUERY = 0x09A6,
CMSG_RANDOMIZE_CHAR_NAME = 0x0000,
CMSG_READY_FOR_ACCOUNT_DATA_TIMES = 0x0000,
CMSG_READ_ITEM = 0x0000,
CMSG_REALM_SPLIT = 0x0000,
CMSG_RECLAIM_CORPSE = 0x0000,
- CMSG_REDIRECTION_AUTH_PROOF = 0x1806,
+ CMSG_REDIRECTION_AUTH_PROOF = 0x0485,
CMSG_REFORGE_ITEM = 0x0000,
CMSG_REORDER_CHARACTERS = 0x0000,
CMSG_REPAIR_ITEM = 0x0000,
@@ -480,18 +480,18 @@ enum OpcodeClient : uint32
CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0x0000,
CMSG_REQUEST_VEHICLE_PREV_SEAT = 0x0000,
CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0x0000,
- CMSG_RESET_FACTION_CHEAT = 0x1876,
+ CMSG_RESET_FACTION_CHEAT = 0x0C56,
CMSG_RESET_INSTANCES = 0x0000,
CMSG_RESURRECT_RESPONSE = 0x0000,
CMSG_RETURN_TO_GRAVEYARD = 0x0000,
CMSG_ROLE_POLL_BEGIN = 0x0000,
- CMSG_SAVE_CUF_PROFILES = 0x0000,
+ CMSG_SAVE_CUF_PROFILES = 0x0053,
CMSG_SAVE_PLAYER = 0x0000,
CMSG_SEARCH_LFG_JOIN = 0x0000,
CMSG_SEARCH_LFG_LEAVE = 0x0000,
CMSG_SELF_RES = 0x0000,
CMSG_SELL_ITEM = 0x0000,
- CMSG_SEND_MAIL = 0x0000,
+ CMSG_SEND_MAIL = 0x0910,
CMSG_SEND_SOR_REQUEST_VIA_ADDRESS = 0x0000,
CMSG_SEND_SOR_REQUEST_VIA_BNET_ACCOUNT_ID = 0x0000,
CMSG_SERVERTIME = 0x0000,
@@ -516,10 +516,10 @@ enum OpcodeClient : uint32
CMSG_SET_PLAYER_DECLINED_NAMES = 0x0000,
CMSG_SET_PREFERED_CEMETERY = 0x0000,
CMSG_SET_PRIMARY_TALENT_TREE = 0x0000,
- CMSG_SET_RAID_DIFFICULTY = 0x1A76,
+ CMSG_SET_RAID_DIFFICULTY = 0x04DF,
CMSG_SET_RELATIVE_POSITION = 0x0000,
CMSG_SET_SAVED_INSTANCE_EXTEND = 0x0000,
- CMSG_SET_SELECTION = 0x1038,
+ CMSG_SET_SELECTION = 0x05BD,
CMSG_SET_SKILL_CHEAT = 0x0000,
CMSG_SET_TAXI_BENCHMARK_MODE = 0x0000,
CMSG_SET_TITLE = 0x0000,
@@ -542,7 +542,7 @@ enum OpcodeClient : uint32
CMSG_SUBMIT_COMPLAIN = 0x0000,
CMSG_SUGGESTION_SUBMIT = 0x0000,
CMSG_SUMMON_RESPONSE = 0x0000,
- CMSG_SUSPEND_TOKEN = 0x0000,
+ CMSG_SUSPEND_TOKEN = 0x0142,
CMSG_SWAP_INV_ITEM = 0x0000,
CMSG_SWAP_ITEM = 0x0000,
CMSG_SYNC_DANCE = 0x0000,
@@ -552,9 +552,9 @@ enum OpcodeClient : uint32
CMSG_TAXIQUERYAVAILABLENODES = 0x0000,
CMSG_TAXISHOWNODES = 0x0000,
CMSG_TELEPORT_TO_UNIT = 0x0000,
- CMSG_TEXT_EMOTE = 0x0000,
+ CMSG_TEXT_EMOTE = 0x1901,
CMSG_TIME_ADJUSTMENT_RESPONSE = 0x0000,
- CMSG_TIME_SYNC_RESP = 0x0A02,
+ CMSG_TIME_SYNC_RESP = 0x0003,
CMSG_TIME_SYNC_RESP_FAILED = 0x0000,
CMSG_TOGGLE_PVP = 0x0000,
CMSG_TOTEM_DESTROYED = 0x0000,
@@ -570,21 +570,21 @@ enum OpcodeClient : uint32
CMSG_UNLEARN_SKILL = 0x0000,
CMSG_UNLEARN_SPECIALIZATION = 0x0000,
CMSG_UNREGISTER_ALL_ADDON_PREFIXES = 0x0000,
- CMSG_UPDATE_ACCOUNT_DATA = 0x0000,
+ CMSG_UPDATE_ACCOUNT_DATA = 0x12A1,
CMSG_UPDATE_MISSILE_TRAJECTORY = 0x0000,
CMSG_UPDATE_PROJECTILE_POSITION = 0x0000,
CMSG_USED_FOLLOW = 0x0000,
CMSG_USE_ITEM = 0x0000,
- CMSG_VIOLENCE_LEVEL = 0x00D4,
+ CMSG_VIOLENCE_LEVEL = 0x098D,
CMSG_VOICE_SESSION_ENABLE = 0x0000,
CMSG_VOID_STORAGE_QUERY = 0x0000,
CMSG_VOID_STORAGE_TRANSFER = 0x0000,
CMSG_VOID_STORAGE_UNLOCK = 0x0000,
CMSG_VOID_SWAP_ITEM = 0x0000,
- CMSG_WARDEN_DATA = 0x00F3,
+ CMSG_WARDEN_DATA = 0x0BA1,
CMSG_WARGAME_ACCEPT = 0x0000,
CMSG_WARGAME_START = 0x0000,
- CMSG_WHO = 0x0000,
+ CMSG_WHO = 0x1322,
CMSG_WHOIS = 0x0000,
CMSG_WORLD_STATE_UI_TIMER_UPDATE = 0x0000,
CMSG_WORLD_TELEPORT = 0x0000,
@@ -663,27 +663,27 @@ enum OpcodeClient : uint32
MSG_TALENT_WIPE_CONFIRM = 0x0000
};
-// SMSGs
+// SMSGs 6.0.3.19103
enum OpcodeServer : uint32
{
- SMSG_ACCOUNT_DATA_TIMES = 0x11AC,
+ SMSG_ACCOUNT_DATA_TIMES = 0x0120,
SMSG_ACCOUNT_INFO_RESPONSE = 0x0000,
SMSG_ACCOUNT_RESTRICTED_WARNING = 0x0000,
SMSG_ACHIEVEMENT_DELETED = 0x0000,
SMSG_ACHIEVEMENT_EARNED = 0x0000,
- SMSG_ACTION_BUTTONS = 0x03F4,
+ SMSG_ACTION_BUTTONS = 0x1D1F,
SMSG_ACTIVATETAXIREPLY = 0x0000,
- SMSG_ADDON_INFO = 0x1400,
+ SMSG_ADDON_INFO = 0x1D9F,
SMSG_ADD_RUNE_POWER = 0x0000,
SMSG_AI_REACTION = 0x0000,
SMSG_ALL_ACHIEVEMENT_DATA = 0x0000,
- SMSG_ALL_ACHIEVEMENT_DATA_ACCOUNT = 0x1603,
- SMSG_ALL_ACHIEVEMENT_DATA_PLAYER = 0x01A4,
+ SMSG_ALL_ACHIEVEMENT_DATA_ACCOUNT = 0x0123,
+ SMSG_ALL_ACHIEVEMENT_DATA_PLAYER = 0x0030,
SMSG_AREA_SPIRIT_HEALER_TIME = 0x0000,
SMSG_AREA_TRIGGER_MESSAGE = 0x0000,
SMSG_AREA_TRIGGER_MOVEMENT_UPDATE = 0x0000,
SMSG_ARENA_ERROR = 0x0000,
- SMSG_ARENA_SEASON_WORLD_STATE = 0x0618,
+ SMSG_ARENA_SEASON_WORLD_STATE = 0x09E3,
SMSG_ARENA_UNIT_DESTROYED = 0x0000,
SMSG_ARENA_TEAM_CHANGE_FAILED_QUEUED = 0x0000,
SMSG_ARENA_TEAM_COMMAND_RESULT = 0x0000,
@@ -692,28 +692,28 @@ enum OpcodeServer : uint32
SMSG_ARENA_TEAM_QUERY_RESPONSE = 0x0000,
SMSG_ARENA_TEAM_ROSTER = 0x0000,
SMSG_ARENA_TEAM_STATS = 0x0000,
- SMSG_ATTACKERSTATEUPDATE = 0x0000,
- SMSG_ATTACKSTART = 0x0000,
- SMSG_ATTACKSTOP = 0x0000,
+ SMSG_ATTACKERSTATEUPDATE = 0x1204,
+ SMSG_ATTACKSTART = 0x1D3E,
+ SMSG_ATTACKSTOP = 0x1382,
SMSG_ATTACKSWING_BADFACING = 0x0000,
SMSG_ATTACKSWING_CANT_ATTACK = 0x0000,
SMSG_ATTACKSWING_DEADTARGET = 0x0000,
SMSG_ATTACKSWING_NOTINRANGE = 0x0000,
SMSG_AUCTION_BIDDER_LIST_RESULT = 0x0000,
SMSG_AUCTION_BIDDER_NOTIFICATION = 0x0000,
- SMSG_AUCTION_COMMAND_RESULT = 0x1554,
- SMSG_AUCTION_HELLO = 0x0417,
+ SMSG_AUCTION_COMMAND_RESULT = 0x0B2D,
+ SMSG_AUCTION_HELLO = 0x011F,
SMSG_AUCTION_LIST_PENDING_SALES = 0x0000,
- SMSG_AUCTION_LIST_RESULT = 0x13B4,
+ SMSG_AUCTION_LIST_RESULT = 0x19D2,
SMSG_AUCTION_OWNER_LIST_RESULT = 0x0000,
SMSG_AUCTION_OWNER_NOTIFICATION = 0x0000,
SMSG_AUCTION_REMOVED_NOTIFICATION = 0x0000,
SMSG_AURACASTLOG = 0x0000,
SMSG_AURA_POINTS_DEPLETED = 0x0000,
- SMSG_AURA_UPDATE = 0x128B,
+ SMSG_AURA_UPDATE = 0x091C,
SMSG_AURA_UPDATE_ALL = 0x0000,
- SMSG_AUTH_CHALLENGE = 0x10AA,
- SMSG_AUTH_RESPONSE = 0x0564,
+ SMSG_AUTH_CHALLENGE = 0x1759,
+ SMSG_AUTH_RESPONSE = 0x0DA9,
SMSG_AVAILABLE_VOICE_CHANNEL = 0x0000,
SMSG_AVERAGE_ITEM_LEVEL_INFORM = 0x0000,
SMSG_BARBER_SHOP_RESULT = 0x0000,
@@ -739,7 +739,7 @@ enum OpcodeServer : uint32
SMSG_BATTLEGROUND_PLAYER_JOINED = 0x0000,
SMSG_BATTLEGROUND_PLAYER_LEFT = 0x0000,
SMSG_BINDER_CONFIRM = 0x0000,
- SMSG_BINDPOINTUPDATE = 0x1428,
+ SMSG_BINDPOINTUPDATE = 0x0A30,
SMSG_BINDZONEREPLY = 0x0000,
SMSG_BREAK_TARGET = 0x0000,
SMSG_BUY_BANK_SLOT_RESULT = 0x0000,
@@ -774,12 +774,13 @@ enum OpcodeServer : uint32
SMSG_CAST_FAILED = 0x0000,
SMSG_CHANNEL_LIST = 0x0000,
SMSG_CHANNEL_MEMBER_COUNT = 0x0000,
- SMSG_CHANNEL_NOTIFY = 0x0000,
+ SMSG_CHANNEL_NOTIFY = 0x0643,
+ SMSG_CHANNEL_NOTIFY_JOINED = 0x1602,
SMSG_CHARACTER_LOGIN_FAILED = 0x0000,
- SMSG_CHAR_CREATE = 0x0637,
+ SMSG_CHAR_CREATE = 0x0107,
SMSG_CHAR_CUSTOMIZE = 0x0000,
- SMSG_CHAR_DELETE = 0x12A4,
- SMSG_CHAR_ENUM = 0x1154,
+ SMSG_CHAR_DELETE = 0x0BC4,
+ SMSG_CHAR_ENUM = 0x05AF,
SMSG_CHAR_FACTION_CHANGE = 0x0000,
SMSG_CHAR_RENAME = 0x0000,
SMSG_CHAT_IGNORED_ACCOUNT_MUTED = 0x0000,
@@ -797,7 +798,7 @@ enum OpcodeServer : uint32
SMSG_CLEAR_COOLDOWNS = 0x0000,
SMSG_CLEAR_FAR_SIGHT_IMMEDIATE = 0x0000,
SMSG_CLEAR_TARGET = 0x0000,
- SMSG_CLIENTCACHE_VERSION = 0x10EF,
+ SMSG_CLIENTCACHE_VERSION = 0x080D,
SMSG_CLIENT_CONTROL_UPDATE = 0x0000,
SMSG_COMBAT_EVENT_FAILED = 0x0000,
SMSG_COMBAT_LOG_MULTIPLE = 0x0000,
@@ -809,6 +810,7 @@ enum OpcodeServer : uint32
SMSG_COMMENTATOR_STATE_CHANGED = 0x0000,
SMSG_COMPLAIN_RESULT = 0x0000,
SMSG_COMPRESSED_MOVES = 0x0000,
+ SMSG_COMPRESSED_PACKET = 0x07CA,
SMSG_COMSAT_CONNECT_FAIL = 0x0000,
SMSG_COMSAT_DISCONNECT = 0x0000,
SMSG_COMSAT_RECONNECT_TRY = 0x0000,
@@ -818,12 +820,12 @@ enum OpcodeServer : uint32
SMSG_COOLDOWN_EVENT = 0x0000,
SMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE = 0x0000,
SMSG_CORPSE_NOT_IN_INSTANCE = 0x0000,
- SMSG_CORPSE_RECLAIM_DELAY = 0x11C0,
- SMSG_CREATURE_QUERY_RESPONSE = 0x0203,
+ SMSG_CORPSE_RECLAIM_DELAY = 0x0BE2,
+ SMSG_CREATURE_QUERY_RESPONSE = 0x0A26,
SMSG_CRITERIA_DELETED = 0x0000,
SMSG_CRITERIA_UPDATE = 0x0000,
- SMSG_CRITERIA_UPDATE_ACCOUNT = 0x0727,
- SMSG_CRITERIA_UPDATE_PLAYER = 0x0AEC,
+ SMSG_CRITERIA_UPDATE_ACCOUNT = 0x0912,
+ SMSG_CRITERIA_UPDATE_PLAYER = 0x1904,
SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x0000,
SMSG_CURRENCY_LOOT_REMOVED = 0x0000,
SMSG_CURRENCY_LOOT_RESTORED = 0x0000,
@@ -831,7 +833,7 @@ enum OpcodeServer : uint32
SMSG_DAMAGE_CALC_LOG = 0x0000,
SMSG_DAMAGE_DONE_OBSOLETE = 0x0000,
SMSG_DANCE_QUERY_RESPONSE = 0x0000,
- SMSG_DB_REPLY = 0x1574,
+ SMSG_DB_REPLY = 0x1939,
SMSG_DEATH_RELEASE_LOC = 0x0000,
SMSG_DEBUG_RUNE_REGEN = 0x0000,
SMSG_DEBUG_SERVER_GEO = 0x0000,
@@ -855,34 +857,35 @@ enum OpcodeServer : uint32
SMSG_DUMP_RIDE_TICKETS_RESPONSE = 0x0000,
SMSG_DURABILITY_DAMAGE_DEATH = 0x0000,
SMSG_ECHO_PARTY_SQUELCH = 0x0000,
- SMSG_EMOTE = 0x03F8,
+ SMSG_EMOTE = 0x071D,
SMSG_ENABLE_BARBER_SHOP = 0x0000,
SMSG_ENCHANTMENTLOG = 0x0000,
SMSG_ENVIRONMENTALDAMAGELOG = 0x0000,
- SMSG_EQUIPMENT_SET_LIST = 0x01E7,
- SMSG_EQUIPMENT_SET_SAVED = 0x0000,
+ SMSG_EQUIPMENT_SET_LIST = 0x0F1E,
+ SMSG_EQUIPMENT_SET_SAVED = 0x0027,
SMSG_EQUIPMENT_SET_USE_RESULT = 0x0000,
SMSG_EXPECTED_SPAM_RECORDS = 0x0000,
SMSG_EXPLORATION_EXPERIENCE = 0x0000,
SMSG_FAILED_PLAYER_CONDITION = 0x0000,
- SMSG_FEATURE_SYSTEM_STATUS = 0x0177,
+ SMSG_FEATURE_SYSTEM_STATUS = 0x0B1E,
+ SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN = 0x1540,
SMSG_FEIGN_DEATH_RESISTED = 0x0000,
SMSG_FISH_ESCAPED = 0x0000,
SMSG_FISH_NOT_HOOKED = 0x0000,
- SMSG_FLIGHT_SPLINE_SYNC = 0x0000,
+ SMSG_FLIGHT_SPLINE_SYNC = 0x08A5,
SMSG_FLOOD_DETECTED = 0x0000,
SMSG_FORCEACTIONSHOW = 0x0000,
SMSG_FORCED_DEATH_UPDATE = 0x0000,
SMSG_FORCE_ANIM = 0x0000,
SMSG_FORCE_DISPLAY_UPDATE = 0x0000,
- SMSG_FORCE_SEND_QUEUED_PACKETS = 0x128A,
+ SMSG_FORCE_SEND_QUEUED_PACKETS = 0x0000,
SMSG_FORCE_SET_VEHICLE_REC_ID = 0x0000,
SMSG_FORGE_MASTER_SET = 0x0000,
SMSG_FRIEND_STATUS = 0x0000,
SMSG_GAMEOBJECT_CUSTOM_ANIM = 0x0000,
SMSG_GAMEOBJECT_DESPAWN_ANIM = 0x0000,
SMSG_GAMEOBJECT_PAGETEXT = 0x0000,
- SMSG_GAMEOBJECT_QUERY_RESPONSE = 0x08E3,
+ SMSG_GAMEOBJECT_QUERY_RESPONSE = 0x0000,
SMSG_GAMEOBJECT_RESET_STATE = 0x0000,
SMSG_GAMESPEED_SET = 0x0000,
SMSG_GAMETIME_SET = 0x0000,
@@ -901,9 +904,9 @@ enum OpcodeServer : uint32
SMSG_GM_PLAYER_INFO = 0x0000,
SMSG_GM_TICKET_STATUS_UPDATE = 0x0000,
SMSG_GODMODE = 0x0000,
- SMSG_GOSSIP_COMPLETE = 0x0292,
- SMSG_GOSSIP_MESSAGE = 0x01EE,
- SMSG_GOSSIP_POI = 0x0000,
+ SMSG_GOSSIP_COMPLETE = 0x15D1,
+ SMSG_GOSSIP_MESSAGE = 0x1746,
+ SMSG_GOSSIP_POI = 0x011E,
SMSG_GROUPACTION_THROTTLED = 0x0000,
SMSG_GROUP_CANCEL = 0x0000,
SMSG_GROUP_DECLINE = 0x0000,
@@ -932,6 +935,7 @@ enum OpcodeServer : uint32
SMSG_GUILD_DECLINE = 0x0000,
SMSG_GUILD_EVENT = 0x0000,
SMSG_GUILD_EVENT_LOG_QUERY_RESULT = 0x0000,
+ SMSG_GUILD_EVENT_PRESENCE_CHANGE = 0x1228,
SMSG_GUILD_FLAGGED_FOR_RENAME = 0x0000,
SMSG_GUILD_INVITE = 0x0000,
SMSG_GUILD_INVITE_CANCEL = 0x0000,
@@ -941,15 +945,15 @@ enum OpcodeServer : uint32
SMSG_GUILD_MEMBER_DAILY_RESET = 0x0000,
SMSG_GUILD_MEMBER_RECIPES = 0x0000,
SMSG_GUILD_MEMBER_UPDATE_NOTE = 0x0000,
- SMSG_GUILD_MOTD = 0x125A,
+ SMSG_GUILD_MOTD = 0x1825,
SMSG_GUILD_MOVE_COMPLETE = 0x0000,
SMSG_GUILD_MOVE_STARTING = 0x0000,
SMSG_GUILD_NEWS_DELETED = 0x0000,
SMSG_GUILD_NEWS_UPDATE = 0x0000,
SMSG_GUILD_PARTY_STATE_RESPONSE = 0x0000,
SMSG_GUILD_PERMISSIONS_QUERY_RESULTS = 0x0000,
- SMSG_GUILD_QUERY_RESPONSE = 0x034A,
- SMSG_GUILD_RANK = 0x035A,
+ SMSG_GUILD_QUERY_RESPONSE = 0x1046,
+ SMSG_GUILD_RANK = 0x1218,
SMSG_GUILD_RANKS_UPDATE = 0x0000,
SMSG_GUILD_RECIPES = 0x0000,
SMSG_GUILD_RENAMED = 0x0000,
@@ -957,7 +961,7 @@ enum OpcodeServer : uint32
SMSG_GUILD_REPUTATION_WEEKLY_CAP = 0x0000,
SMSG_GUILD_RESET = 0x0000,
SMSG_GUILD_REWARDS_LIST = 0x0000,
- SMSG_GUILD_ROSTER = 0x0779,
+ SMSG_GUILD_ROSTER = 0x1026,
SMSG_GUILD_SET_NOTE = 0x0000,
SMSG_GUILD_TRADESKILL_UPDATE = 0x0000,
SMSG_GUILD_UPDATE_ROSTER = 0x0000,
@@ -965,15 +969,15 @@ enum OpcodeServer : uint32
SMSG_GUILD_XP_GAIN = 0x0000,
SMSG_GUILD_XP_UPDATE = 0x0000,
SMSG_HEALTH_UPDATE = 0x0000,
- SMSG_HIGHEST_THREAT_UPDATE = 0x0000,
- SMSG_HOTFIX_INFO = 0x0AA8,
+ SMSG_HIGHEST_THREAT_UPDATE = 0x059A,
+ SMSG_HOTFIX_INFO = 0x1D1D,
SMSG_HOTFIX_NOTIFY = 0x0000,
SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT = 0x0000,
SMSG_IGNORE_REQUIREMENTS_CHEAT = 0x0000,
SMSG_INITIALIZE_FACTIONS = 0x0000,
- SMSG_INITIAL_SPELLS = 0x0297,
- SMSG_INIT_CURRENCY = 0x00A4,
- SMSG_INIT_WORLD_STATES = 0x0BB7,
+ SMSG_INITIAL_SPELLS = 0x0A81,
+ SMSG_INIT_CURRENCY = 0x0B06,
+ SMSG_INIT_WORLD_STATES = 0x0B04,
SMSG_INSPECT = 0x0000,
SMSG_INSPECT_HONOR_STATS = 0x0000,
SMSG_INSPECT_RATED_BG_STATS = 0x0000,
@@ -989,7 +993,7 @@ enum OpcodeServer : uint32
SMSG_INVENTORY_CHANGE_FAILURE = 0x0000,
SMSG_ITEM_ADD_PASSIVE = 0x0000,
SMSG_ITEM_COOLDOWN = 0x0000,
- SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x01BB,
+ SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x010D,
SMSG_ITEM_EXPIRE_PURCHASE_REFUND = 0x0000,
SMSG_ITEM_PUSH_RESULT = 0x0000,
SMSG_ITEM_REFUND_INFO_RESPONSE = 0x0000,
@@ -1001,7 +1005,7 @@ enum OpcodeServer : uint32
SMSG_JOINED_BATTLEGROUND_QUEUE = 0x0000,
SMSG_KICK_REASON = 0x0000,
SMSG_LEARNED_DANCE_MOVES = 0x0000,
- SMSG_LEARNED_SPELL = 0x02D8,
+ SMSG_LEARNED_SPELL = 0x0000,
SMSG_LEVELUP_INFO = 0x0000,
SMSG_LFG_BOOT_PROPOSAL_UPDATE = 0x0000,
SMSG_LFG_DISABLED = 0x0000,
@@ -1009,7 +1013,7 @@ enum OpcodeServer : uint32
SMSG_LFG_OFFER_CONTINUE = 0x0000,
SMSG_LFG_OPEN_FROM_GOSSIP = 0x0000,
SMSG_LFG_PARTY_INFO = 0x0000,
- SMSG_LFG_PLAYER_INFO = 0x00EF,
+ SMSG_LFG_PLAYER_INFO = 0x0000,
SMSG_LFG_PLAYER_REWARD = 0x0000,
SMSG_LFG_PROPOSAL_UPDATE = 0x0000,
SMSG_LFG_QUEUE_STATUS = 0x0000,
@@ -1028,13 +1032,13 @@ enum OpcodeServer : uint32
SMSG_LF_GUILD_MEMBERSHIP_LIST_UPDATED = 0x0000,
SMSG_LF_GUILD_POST_UPDATED = 0x0000,
SMSG_LF_GUILD_RECRUIT_LIST_UPDATED = 0x0000,
- SMSG_LIST_INVENTORY = 0x0103,
- SMSG_LOAD_CUF_PROFILES = 0x09B3,
- SMSG_LOGIN_SETTIMESPEED = 0x0528,
- SMSG_LOGIN_VERIFY_WORLD = 0x1044,
+ SMSG_LIST_INVENTORY = 0x0940,
+ SMSG_LOAD_CUF_PROFILES = 0x1530,
+ SMSG_LOGIN_SETTIMESPEED = 0x09AA,
+ SMSG_LOGIN_VERIFY_WORLD = 0x0B19,
SMSG_LOGOUT_CANCEL_ACK = 0x0000,
- SMSG_LOGOUT_COMPLETE = 0x0000,
- SMSG_LOGOUT_RESPONSE = 0x0000,
+ SMSG_LOGOUT_COMPLETE = 0x0B21,
+ SMSG_LOGOUT_RESPONSE = 0x052D,
SMSG_LOG_XPGAIN = 0x0000,
SMSG_LOOT_ALL_PASSED = 0x0000,
SMSG_LOOT_CLEAR_MONEY = 0x0000,
@@ -1050,23 +1054,23 @@ enum OpcodeServer : uint32
SMSG_LOOT_ROLL_WON = 0x0000,
SMSG_LOOT_SLOT_CHANGED = 0x0000,
SMSG_LOOT_START_ROLL = 0x0000,
- SMSG_MAIL_LIST_RESULT = 0x0000,
+ SMSG_MAIL_LIST_RESULT = 0x0B3F,
SMSG_MAP_OBJ_EVENTS = 0x0000,
SMSG_MEETINGSTONE_COMPLETE = 0x0000,
SMSG_MEETINGSTONE_IN_PROGRESS = 0x0000,
SMSG_MEETINGSTONE_MEMBER_ADDED = 0x0000,
SMSG_MEETINGSTONE_SETQUEUE = 0x0000,
- SMSG_MESSAGECHAT = 0x0E09,
- SMSG_MESSAGE_BOX = 0x0E5D,
+ SMSG_MESSAGECHAT = 0x0603,
+ SMSG_MESSAGE_BOX = 0x0000,
SMSG_MINIGAME_SETUP = 0x0000,
SMSG_MINIGAME_STATE = 0x0000,
SMSG_MIRRORIMAGE_DATA = 0x0000,
SMSG_MISSILE_CANCEL = 0x0000,
SMSG_MODIFY_COOLDOWN = 0x0000,
SMSG_MONEY_NOTIFY = 0x0000,
- SMSG_MONSTER_MOVE = 0x019C,
+ SMSG_MONSTER_MOVE = 0x0000,
SMSG_MONSTER_MOVE_TRANSPORT = 0x0000,
- SMSG_MOTD = 0x0000,
+ SMSG_MOTD = 0x0442,
SMSG_MOUNTRESULT = 0x0000,
SMSG_MOUNTSPECIAL_ANIM = 0x0000,
SMSG_MOVE_COLLISION_DISABLE = 0x0000,
@@ -1114,22 +1118,22 @@ enum OpcodeServer : uint32
SMSG_MOVE_UPDATE_WALK_SPEED = 0x0000,
SMSG_MOVE_WATER_WALK = 0x0000,
SMSG_MULTIPLE_PACKETS = 0x0000,
- SMSG_NAME_QUERY_RESPONSE = 0x1667,
+ SMSG_NAME_QUERY_RESPONSE = 0x0828,
SMSG_NEW_TAXI_PATH = 0x0000,
- SMSG_NEW_WORLD = 0x0000,
+ SMSG_NEW_WORLD = 0x0206,
SMSG_NEW_WORLD_ABORT = 0x0000,
SMSG_NOTIFICATION = 0x0000,
SMSG_NOTIFICATION_2 = 0x0000,
SMSG_NOTIFY_DANCE = 0x0000,
SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x0000,
- SMSG_NPC_TEXT_UPDATE = 0x0BE8,
+ SMSG_NPC_TEXT_UPDATE = 0x1122,
SMSG_NPC_WONT_TALK = 0x0000,
SMSG_OFFER_PETITION_ERROR = 0x0000,
SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x0000,
SMSG_OPEN_CONTAINER = 0x0000,
SMSG_OPEN_LFG_DUNGEON_FINDER = 0x0000,
SMSG_OVERRIDE_LIGHT = 0x0000,
- SMSG_PAGE_TEXT_QUERY_RESPONSE = 0x1163,
+ SMSG_PAGE_TEXT_QUERY_RESPONSE = 0x05A0,
SMSG_PARTYKILLLOG = 0x0000,
SMSG_PARTY_COMMAND_RESULT = 0x0000,
SMSG_PARTY_MEMBER_STATS = 0x0000,
@@ -1152,7 +1156,7 @@ enum OpcodeServer : uint32
SMSG_PET_LEARNED_SPELL = 0x0000,
SMSG_PET_MODE = 0x0000,
SMSG_PET_NAME_INVALID = 0x0000,
- SMSG_PET_NAME_QUERY_RESPONSE = 0x03B4,
+ SMSG_PET_NAME_QUERY_RESPONSE = 0x0D0E,
SMSG_PET_REMOVED_SPELL = 0x0000,
SMSG_PET_RENAMEABLE = 0x0000,
SMSG_PET_SLOT_UPDATED = 0x0000,
@@ -1163,7 +1167,7 @@ enum OpcodeServer : uint32
SMSG_PLAYERBINDERROR = 0x0000,
SMSG_PLAYERBOUND = 0x0000,
SMSG_PLAYER_DIFFICULTY_CHANGE = 0x0000,
- SMSG_PLAYER_MOVE = 0x04A4,
+ SMSG_PLAYER_MOVE = 0x0ACE,
SMSG_PLAYER_SKINNED = 0x0000,
SMSG_PLAYER_VEHICLE_DATA = 0x0000,
SMSG_PLAY_DANCE = 0x0000,
@@ -1174,7 +1178,7 @@ enum OpcodeServer : uint32
SMSG_PLAY_SPELL_VISUAL = 0x0000,
SMSG_PLAY_SPELL_VISUAL_KIT = 0x0000,
SMSG_PLAY_TIME_WARNING = 0x0000,
- SMSG_PONG = 0x1881,
+ SMSG_PONG = 0x17CA,
SMSG_POWER_UPDATE = 0x0000,
SMSG_PRE_RESURRECT = 0x0000,
SMSG_PROCRESIST = 0x0000,
@@ -1187,7 +1191,7 @@ enum OpcodeServer : uint32
SMSG_QUERY_TIME_RESPONSE = 0x0000,
SMSG_QUESTGIVER_OFFER_REWARD = 0x0000,
SMSG_QUESTGIVER_QUEST_COMPLETE = 0x0000,
- SMSG_QUESTGIVER_QUEST_DETAILS = 0x0000,
+ SMSG_QUESTGIVER_QUEST_DETAILS = 0x15B3,
SMSG_QUESTGIVER_QUEST_FAILED = 0x0000,
SMSG_QUESTGIVER_QUEST_INVALID = 0x0000,
SMSG_QUESTGIVER_QUEST_LIST = 0x0000,
@@ -1204,8 +1208,8 @@ enum OpcodeServer : uint32
SMSG_QUEST_NPC_QUERY_RESPONSE = 0x0000,
SMSG_QUEST_CONFIRM_ACCEPT = 0x0000,
SMSG_QUEST_FORCE_REMOVE = 0x0000,
- SMSG_QUEST_POI_QUERY_RESPONSE = 0x0000,
- SMSG_QUEST_QUERY_RESPONSE = 0x0000,
+ SMSG_QUEST_POI_QUERY_RESPONSE = 0x1715,
+ SMSG_QUEST_QUERY_RESPONSE = 0x1547,
SMSG_RAID_GROUP_ONLY = 0x0000,
SMSG_RAID_INSTANCE_INFO = 0x0000,
SMSG_RAID_INSTANCE_MESSAGE = 0x0000,
@@ -1220,7 +1224,7 @@ enum OpcodeServer : uint32
SMSG_REALM_SPLIT = 0x0000,
SMSG_REAL_GROUP_UPDATE = 0x0000,
SMSG_RECEIVED_MAIL = 0x0000,
- SMSG_REDIRECT_CLIENT = 0x1082,
+ SMSG_REDIRECT_CLIENT = 0x175A,
SMSG_REFER_A_FRIEND_EXPIRED = 0x0000,
SMSG_REFER_A_FRIEND_FAILURE = 0x0000,
SMSG_REFORGE_RESULT = 0x0000,
@@ -1240,9 +1244,9 @@ enum OpcodeServer : uint32
SMSG_ROLE_POLL_BEGIN = 0x0000,
SMSG_RWHOIS = 0x0000,
SMSG_SELL_ITEM = 0x0000,
- SMSG_SEND_MAIL_RESULT = 0x0035,
- SMSG_SEND_SERVER_LOCATION = 0x1257,
- SMSG_SEND_UNLEARN_SPELLS = 0x07DB,
+ SMSG_SEND_MAIL_RESULT = 0x0302,
+ SMSG_SEND_SERVER_LOCATION = 0x153E,
+ SMSG_SEND_UNLEARN_SPELLS = 0x1A82,
SMSG_SERVERTIME = 0x0000,
SMSG_SERVER_FIRST_ACHIEVEMENT = 0x0000,
SMSG_SERVER_INFO_RESPONSE = 0x0000,
@@ -1254,17 +1258,17 @@ enum OpcodeServer : uint32
SMSG_SET_FACTION_NOT_VISIBLE = 0x0000,
SMSG_SET_FACTION_STANDING = 0x0000,
SMSG_SET_FACTION_VISIBLE = 0x0000,
- SMSG_SET_FLAT_SPELL_MODIFIER = 0x07B3,
+ SMSG_SET_FLAT_SPELL_MODIFIER = 0x1884,
SMSG_SET_FORCED_REACTIONS = 0x0000,
SMSG_SET_MELEE_ANIM_KIT = 0x0000,
SMSG_SET_MOVEMENT_ANIM_KIT = 0x0000,
- SMSG_SET_PCT_SPELL_MODIFIER = 0x12D4,
- SMSG_SET_PHASE_SHIFT = 0x0567,
+ SMSG_SET_PCT_SPELL_MODIFIER = 0x113C,
+ SMSG_SET_PHASE_SHIFT = 0x00D1,
SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x0000,
SMSG_SET_PLAY_HOVER_ANIM = 0x0000,
- SMSG_SET_PROFICIENCY = 0x12AF,
+ SMSG_SET_PROFICIENCY = 0x00D3,
SMSG_SET_PROJECTILE_POSITION = 0x0000,
- SMSG_SET_VIGNETTE = 0x1613,
+ SMSG_SET_VIGNETTE = 0x09AC,
SMSG_SHOWTAXINODES = 0x0000,
SMSG_SHOW_BANK = 0x0204,
SMSG_SHOW_MAILBOX = 0x0000,
@@ -1280,16 +1284,16 @@ enum OpcodeServer : uint32
SMSG_SPELLINTERRUPTLOG = 0x0000,
SMSG_SPELLLOGEXECUTE = 0x0000,
SMSG_SPELLLOGMISS = 0x0000,
- SMSG_SPELLNONMELEEDAMAGELOG = 0x0000,
+ SMSG_SPELLNONMELEEDAMAGELOG = 0x11FB,
SMSG_SPELLORDAMAGE_IMMUNE = 0x0000,
SMSG_SPELLSTEALLOG = 0x0000,
- SMSG_SPELL_CATEGORY_COOLDOWN = 0x07A7,
+ SMSG_SPELL_CATEGORY_COOLDOWN = 0x082A,
SMSG_SPELL_COOLDOWN = 0x0000,
SMSG_SPELL_DELAYED = 0x0000,
SMSG_SPELL_FAILED_OTHER = 0x0000,
SMSG_SPELL_FAILURE = 0x0000,
- SMSG_SPELL_GO = 0x1288,
- SMSG_SPELL_START = 0x0FCB,
+ SMSG_SPELL_GO = 0x1161,
+ SMSG_SPELL_START = 0x0803,
SMSG_SPELL_UPDATE_CHAIN_TARGETS = 0x0000,
SMSG_SPIRIT_HEALER_CONFIRM = 0x0000,
SMSG_SPLINE_MOVE_COLLISION_DISABLE = 0x0000,
@@ -1300,20 +1304,20 @@ enum OpcodeServer : uint32
SMSG_SPLINE_MOVE_SET_ANIM = 0x0000,
SMSG_SPLINE_MOVE_SET_FEATHER_FALL = 0x0000,
SMSG_SPLINE_MOVE_SET_FLIGHT_BACK_SPEED = 0x0000,
- SMSG_SPLINE_MOVE_SET_FLIGHT_SPEED = 0x0000,
+ SMSG_SPLINE_MOVE_SET_FLIGHT_SPEED = 0x060C,
SMSG_SPLINE_MOVE_SET_FLYING = 0x0000,
SMSG_SPLINE_MOVE_SET_HOVER = 0x0000,
SMSG_SPLINE_MOVE_SET_LAND_WALK = 0x0000,
SMSG_SPLINE_MOVE_SET_NORMAL_FALL = 0x0000,
SMSG_SPLINE_MOVE_SET_PITCH_RATE = 0x0000,
- SMSG_SPLINE_MOVE_SET_RUN_BACK_SPEED = 0x0000,
+ SMSG_SPLINE_MOVE_SET_RUN_BACK_SPEED = 0x0086,
SMSG_SPLINE_MOVE_SET_RUN_MODE = 0x0000,
- SMSG_SPLINE_MOVE_SET_RUN_SPEED = 0x0000,
+ SMSG_SPLINE_MOVE_SET_RUN_SPEED = 0x1B9A,
SMSG_SPLINE_MOVE_SET_SWIM_BACK_SPEED = 0x0000,
- SMSG_SPLINE_MOVE_SET_SWIM_SPEED = 0x0000,
+ SMSG_SPLINE_MOVE_SET_SWIM_SPEED = 0x098D,
SMSG_SPLINE_MOVE_SET_TURN_RATE = 0x0000,
SMSG_SPLINE_MOVE_SET_WALK_MODE = 0x0000,
- SMSG_SPLINE_MOVE_SET_WALK_SPEED = 0x0000,
+ SMSG_SPLINE_MOVE_SET_WALK_SPEED = 0x01D5,
SMSG_SPLINE_MOVE_SET_WATER_WALK = 0x0000,
SMSG_SPLINE_MOVE_START_SWIM = 0x0000,
SMSG_SPLINE_MOVE_STOP_SWIM = 0x0000,
@@ -1332,19 +1336,19 @@ enum OpcodeServer : uint32
SMSG_SUMMON_REQUEST = 0x0000,
SMSG_SUPERCEDED_SPELL = 0x0000,
SMSG_SUPPRESS_NPC_GREETINGS = 0x0000,
- SMSG_SUSPEND_COMMS = 0x1882,
- SMSG_SUSPEND_TOKEN_RESPONSE = 0x0000,
+ SMSG_SUSPEND_COMMS = 0x076A,
+ SMSG_SUSPEND_TOKEN_RESPONSE = 0x12A2,
SMSG_TALENTS_ERROR = 0x0000,
- SMSG_TALENTS_INFO = 0x10FF,
+ SMSG_TALENTS_INFO = 0x012D,
SMSG_TALENTS_INVOLUNTARILY_RESET = 0x0000,
SMSG_TAXINODE_STATUS = 0x0000,
SMSG_TEST_DROP_RATE_RESULT = 0x0000,
- SMSG_TEXT_EMOTE = 0x0000,
+ SMSG_TEXT_EMOTE = 0x0383,
SMSG_THREAT_CLEAR = 0x0000,
SMSG_THREAT_REMOVE = 0x0000,
SMSG_THREAT_UPDATE = 0x0000,
SMSG_TIME_ADJUSTMENT = 0x0000,
- SMSG_TIME_SYNC_REQ = 0x0CA8,
+ SMSG_TIME_SYNC_REQ = 0x03B1,
SMSG_TITLE_EARNED = 0x0000,
SMSG_TOGGLE_XP_GAIN = 0x0000,
SMSG_TOTEM_CREATED = 0x0000,
@@ -1352,13 +1356,13 @@ enum OpcodeServer : uint32
SMSG_TRADE_STATUS_EXTENDED = 0x0000,
SMSG_TRAINER_BUY_FAILED = 0x0000,
SMSG_TRAINER_BUY_SUCCEEDED = 0x0000,
- SMSG_TRAINER_LIST = 0x0000,
+ SMSG_TRAINER_LIST = 0x0BA9,
SMSG_TRANSFER_ABORTED = 0x0000,
SMSG_TRANSFER_PENDING = 0x0000,
SMSG_TRIGGER_CINEMATIC = 0x0000,
SMSG_TRIGGER_MOVIE = 0x0000,
SMSG_TURN_IN_PETITION_RESULTS = 0x0000,
- SMSG_TUTORIAL_FLAGS = 0x0617,
+ SMSG_TUTORIAL_FLAGS = 0x020F,
SMSG_UNIT_HEALTH_FREQUENT = 0x0000,
SMSG_UNIT_SPELLCAST_START = 0x0000,
SMSG_UPDATE_ACCOUNT_DATA = 0x0000,
@@ -1370,9 +1374,9 @@ enum OpcodeServer : uint32
SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT = 0x0000,
SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x0000,
SMSG_UPDATE_LAST_INSTANCE = 0x0000,
- SMSG_UPDATE_OBJECT = 0x03EF,
+ SMSG_UPDATE_OBJECT = 0x122C,
SMSG_UPDATE_SERVER_PLAYER_POSITION = 0x0000,
- SMSG_UPDATE_WORLD_STATE = 0x1368,
+ SMSG_UPDATE_WORLD_STATE = 0x03EC,
SMSG_USERLIST_ADD = 0x0000,
SMSG_USERLIST_REMOVE = 0x0000,
SMSG_USERLIST_UPDATE = 0x0000,
@@ -1383,23 +1387,23 @@ enum OpcodeServer : uint32
SMSG_VOICE_SESSION_ROSTER_UPDATE = 0x0000,
SMSG_VOICE_SET_TALKER_MUTED = 0x0000,
SMSG_VOID_ITEM_SWAP_RESPONSE = 0x0000,
- SMSG_VOID_STORAGE_CONTENTS = 0x0137,
+ SMSG_VOID_STORAGE_CONTENTS = 0x0000,
SMSG_VOID_STORAGE_FAILED = 0x0000,
SMSG_VOID_STORAGE_TRANSFER_CHANGES = 0x0000,
SMSG_VOID_TRANSFER_RESULT = 0x0000,
SMSG_WAIT_QUEUE_FINISH = 0x0000,
SMSG_WAIT_QUEUE_UPDATE = 0x0000,
- SMSG_WARDEN_DATA = 0x12EF,
+ SMSG_WARDEN_DATA = 0x0BEC,
SMSG_WARGAME_CHECK_ENTRY = 0x0000,
SMSG_WARGAME_REQUEST_SENT = 0x0000,
- SMSG_WEATHER = 0x01BF,
+ SMSG_WEATHER = 0x073E,
SMSG_WEEKLY_LAST_RESET = 0x0000,
SMSG_WEEKLY_RESET_CURRENCY = 0x0000,
- SMSG_WEEKLY_SPELL_USAGE = 0x0000,
+ SMSG_WEEKLY_SPELL_USAGE = 0x13DC,
SMSG_WEEKLY_SPELL_USAGE_UPDATE = 0x0000,
- SMSG_WHO = 0x0000,
+ SMSG_WHO = 0x0601,
SMSG_WHOIS = 0x0000,
- SMSG_WORLD_SERVER_INFO = 0x1164,
+ SMSG_WORLD_SERVER_INFO = 0x11AC,
SMSG_WORLD_STATE_UI_TIMER_UPDATE = 0x0000,
SMSG_XP_GAIN_ABORTED = 0x0000,
SMSG_ZONE_UNDER_ATTACK = 0x0000,
@@ -1512,18 +1516,14 @@ inline std::string GetOpcodeNameForLogging(T id)
if (static_cast<uint32>(id) < UNKNOWN_OPCODE)
{
if (OpcodeHandler const* handler = opcodeTable[T(opcode & 0x7FFF)])
- {
ss << handler->Name;
- if (opcode & COMPRESSED_OPCODE_MASK)
- ss << "_COMPRESSED";
- }
else
ss << "UNKNOWN OPCODE";
}
else
ss << "INVALID OPCODE";
- ss << " 0x" << std::hex << std::uppercase << opcode << std::nouppercase << " (" << std::dec << opcode << ")]";
+ ss << " 0x" << std::hex << std::setw(4) << std::setfill('0') << std::uppercase << opcode << std::nouppercase << std::dec << " (" << opcode << ")]";
return ss.str();
}
diff --git a/src/server/game/Server/Protocol/PacketLog.cpp b/src/server/game/Server/Protocol/PacketLog.cpp
index 8ee3fade39f..486353cf788 100644
--- a/src/server/game/Server/Protocol/PacketLog.cpp
+++ b/src/server/game/Server/Protocol/PacketLog.cpp
@@ -86,7 +86,7 @@ void PacketLog::Initialize()
header.Signature[0] = 'P'; header.Signature[1] = 'K'; header.Signature[2] = 'T';
header.FormatVersion = 0x0301;
header.SnifferId = 'T';
- header.Build = 15595;
+ header.Build = 19034;
header.Locale[0] = 'e'; header.Locale[1] = 'n'; header.Locale[2] = 'U'; header.Locale[3] = 'S';
std::memset(header.SessionKey, 0, sizeof(header.SessionKey));
header.SniffStartUnixtime = time(NULL);
diff --git a/src/server/game/Server/WorldPacket.cpp b/src/server/game/Server/WorldPacket.cpp
index a1a9b15f20b..ab2c0b089e2 100644
--- a/src/server/game/Server/WorldPacket.cpp
+++ b/src/server/game/Server/WorldPacket.cpp
@@ -23,13 +23,12 @@
void WorldPacket::Compress(z_stream* compressionStream)
{
OpcodeServer uncompressedOpcode = static_cast<OpcodeServer>(GetOpcode());
- if (uncompressedOpcode & COMPRESSED_OPCODE_MASK)
+ if (uncompressedOpcode == SMSG_COMPRESSED_PACKET)
{
TC_LOG_ERROR("network", "Packet with opcode 0x%04X is already compressed!", uncompressedOpcode);
return;
}
- OpcodeServer opcode = OpcodeServer(uncompressedOpcode | COMPRESSED_OPCODE_MASK);
uint32 size = wpos();
uint32 destsize = compressBound(size);
@@ -41,11 +40,12 @@ void WorldPacket::Compress(z_stream* compressionStream)
return;
clear();
- reserve(destsize + sizeof(uint32));
+ reserve(destsize + sizeof(uint32) * 2);
+ *this << uint32(uncompressedOpcode);
*this << uint32(size);
append(&storage[0], destsize);
- SetOpcode(opcode);
- TC_LOG_INFO("network", "%s (len %u) successfully compressed to %04X (len %u)", GetOpcodeNameForLogging(uncompressedOpcode).c_str(), size, opcode, destsize);
+ SetOpcode(SMSG_COMPRESSED_PACKET);
+ TC_LOG_INFO("network", "%s (len %u) successfully compressed to len %u", GetOpcodeNameForLogging(uncompressedOpcode).c_str(), size, destsize);
}
//! Compresses another packet and stores it in self (source left intact)
@@ -54,30 +54,29 @@ void WorldPacket::Compress(z_stream* compressionStream, WorldPacket const* sourc
ASSERT(source != this);
OpcodeServer uncompressedOpcode = static_cast<OpcodeServer>(source->GetOpcode());
- if (uncompressedOpcode & COMPRESSED_OPCODE_MASK)
+ if (uncompressedOpcode == SMSG_COMPRESSED_PACKET)
{
TC_LOG_ERROR("network", "Packet with opcode 0x%04X is already compressed!", uncompressedOpcode);
return;
}
- OpcodeServer opcode = OpcodeServer(uncompressedOpcode | COMPRESSED_OPCODE_MASK);
uint32 size = source->size();
uint32 destsize = compressBound(size);
- size_t sizePos = 0;
- resize(destsize + sizeof(uint32));
+ resize(destsize + sizeof(uint32) * 2);
_compressionStream = compressionStream;
- Compress(static_cast<void*>(&_storage[0] + sizeof(uint32)), &destsize, static_cast<const void*>(source->contents()), size);
+ Compress(static_cast<void*>(&_storage[0] + sizeof(uint32) * 2), &destsize, static_cast<const void*>(source->contents()), size);
if (destsize == 0)
return;
- put<uint32>(sizePos, size);
+ put<uint32>(0, uncompressedOpcode);
+ put<uint32>(4, size);
resize(destsize + sizeof(uint32));
- SetOpcode(opcode);
+ SetOpcode(SMSG_COMPRESSED_PACKET);
- TC_LOG_INFO("network", "%s (len %u) successfully compressed to %04X (len %u)", GetOpcodeNameForLogging(uncompressedOpcode).c_str(), size, opcode, destsize);
+ TC_LOG_INFO("network", "%s (len %u) successfully compressed to len %u", GetOpcodeNameForLogging(uncompressedOpcode).c_str(), size, destsize);
}
void WorldPacket::Compress(void* dst, uint32 *dst_size, const void* src, int src_size)
diff --git a/src/server/game/Server/WorldPacket.h b/src/server/game/Server/WorldPacket.h
index 7c36f8f2321..9e29026ba05 100644
--- a/src/server/game/Server/WorldPacket.h
+++ b/src/server/game/Server/WorldPacket.h
@@ -65,7 +65,7 @@ class WorldPacket : public ByteBuffer
uint32 GetOpcode() const { return m_opcode; }
void SetOpcode(uint32 opcode) { m_opcode = opcode; }
- bool IsCompressed() const { return (m_opcode & COMPRESSED_OPCODE_MASK) != 0; }
+ bool IsCompressed() const { return m_opcode == SMSG_COMPRESSED_PACKET; }
void Compress(z_stream_s* compressionStream);
void Compress(z_stream_s* compressionStream, WorldPacket const* source);
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index 050a30a4b5d..9e22e294a0a 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -21,6 +21,7 @@
*/
#include "WorldSocket.h"
+#include "Packet.h"
#include <zlib.h>
#include "Config.h"
#include "Common.h"
@@ -684,30 +685,6 @@ void WorldSession::Handle_Deprecated(WorldPacket& recvPacket)
, GetOpcodeNameForLogging(static_cast<OpcodeClient>(recvPacket.GetOpcode())).c_str(), GetPlayerInfo().c_str());
}
-void WorldSession::SendAuthWaitQue(uint32 position)
-{
- if (position == 0)
- {
- WorldPacket packet(SMSG_AUTH_RESPONSE, 2);
- packet << uint8(AUTH_OK);
- packet.WriteBit(0); // has account info
- packet.WriteBit(0); // has queue info
- packet.FlushBits();
- SendPacket(&packet);
- }
- else
- {
- WorldPacket packet(SMSG_AUTH_RESPONSE, 6);
- packet << uint8(AUTH_WAIT_QUEUE);
- packet.WriteBit(0); // has account info
- packet.WriteBit(1); // has queue info
- packet << uint32(position);
- packet.WriteBit(0); // unk queue bool
- packet.FlushBits();
- SendPacket(&packet);
- }
-}
-
void WorldSession::LoadGlobalAccountData()
{
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_ACCOUNT_DATA);
@@ -829,7 +806,7 @@ void WorldSession::SaveTutorialsData(SQLTransaction &trans)
m_TutorialsChanged = false;
}
-void WorldSession::ReadAddonsInfo(WorldPacket &data)
+void WorldSession::ReadAddonsInfo(ByteBuffer& data)
{
if (data.rpos() + 4 > data.size())
return;
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 8599fa1b314..ef29f0da7e6 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -71,6 +71,11 @@ namespace rbac
class RBACData;
}
+namespace WorldPackets
+{
+ class ServerPacket;
+}
+
enum AccountDataType
{
GLOBAL_CONFIG_CACHE = 0, // 0x01 g
@@ -263,7 +268,7 @@ class WorldSession
bool PlayerLogoutWithSave() const { return m_playerLogout && m_playerSave; }
bool PlayerRecentlyLoggedOut() const { return m_playerRecentlyLogout; }
- void ReadAddonsInfo(WorldPacket& data);
+ void ReadAddonsInfo(ByteBuffer& data);
void SendAddonsInfo();
bool IsAddonRegistered(const std::string& prefix) const;
@@ -380,7 +385,19 @@ class WorldSession
bool SendItemInfo(uint32 itemid, WorldPacket data);
//auction
void SendAuctionHello(ObjectGuid guid, Creature* unit);
+
+ /**
+ * @fn void WorldSession::SendAuctionCommandResult(AuctionEntry* auction, uint32 Action, uint32 ErrorCode, uint32 bidError = 0);
+ *
+ * @brief Notifies the client of the result of his last auction operation. It is called when the player bids, creates, or deletes an auction
+ *
+ * @param auction The relevant auction object
+ * @param Action The action that was performed.
+ * @param ErrorCode The resulting error code.
+ * @param bidError (Optional) the bid error.
+ */
void SendAuctionCommandResult(AuctionEntry* auction, uint32 Action, uint32 ErrorCode, uint32 bidError = 0);
+
void SendAuctionBidderNotification(uint32 location, uint32 auctionId, ObjectGuid bidder, uint32 bidSum, uint32 diff, uint32 item_template);
void SendAuctionOwnerNotification(AuctionEntry* auction);
void SendAuctionRemovedNotification(uint32 auctionId, uint32 itemEntry, int32 randomPropertyId);
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp
index 3d8e804aac6..25ed950a37c 100644
--- a/src/server/game/Server/WorldSocket.cpp
+++ b/src/server/game/Server/WorldSocket.cpp
@@ -17,6 +17,7 @@
*/
#include "WorldSocket.h"
+#include "AuthenticationPackets.h"
#include "BigNumber.h"
#include "Opcodes.h"
#include "Player.h"
@@ -62,19 +63,20 @@ void WorldSocket::Start()
void WorldSocket::HandleSendAuthSession()
{
- WorldPacket packet(SMSG_AUTH_CHALLENGE, 37);
- packet << uint32(_authSeed);
-
BigNumber seed1;
- seed1.SetRand(16 * 8);
- packet.append(seed1.AsByteArray(16).get(), 16); // new encryption seeds
-
BigNumber seed2;
+ seed1.SetRand(16 * 8);
seed2.SetRand(16 * 8);
- packet.append(seed2.AsByteArray(16).get(), 16); // new encryption seeds
- packet << uint8(1);
- SendPacket(packet);
+ WorldPackets::Auth::AuthChallenge challenge;
+ challenge.Challenge = _authSeed;
+ memcpy(&challenge.DosChallenge[0], seed1.AsByteArray(16).get(), 16);
+ memcpy(&challenge.DosChallenge[4], seed2.AsByteArray(16).get(), 16);
+ challenge.DosZeroBits = 1;
+
+ challenge.Write();
+
+ SendPacket(challenge.GetWorldPacket());
}
void WorldSocket::ReadHandler()
@@ -333,50 +335,21 @@ void WorldSocket::SendPacket(WorldPacket& packet)
void WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
{
- uint8 digest[SHA_DIGEST_LENGTH];
- uint32 clientSeed;
+ WorldPackets::Auth::AuthSession authSession(std::move(recvPacket));
+ authSession.Read();
+
uint8 security;
- uint16 clientBuild;
uint32 id;
- uint32 addonSize;
LocaleConstant locale;
- std::string account;
SHA1Hash sha;
BigNumber k;
bool wardenActive = sWorld->getBoolConfig(CONFIG_WARDEN_ENABLED);
- WorldPacket addonsData;
- uint8 loginServerType;
- uint32 realmIndex;
-
- recvPacket.read_skip<uint32>(); // Grunt - ServerId
- recvPacket >> clientBuild;
- recvPacket.read_skip<uint32>(); // Region
- recvPacket.read_skip<uint32>(); // Battlegroup
- recvPacket >> realmIndex;
- recvPacket >> loginServerType; // could be swapped with other uint8 (both always 1)
- recvPacket.read_skip<uint8>();
- recvPacket >> clientSeed;
- recvPacket.read_skip<uint64>(); // DosResponse
-
- for (int i = 0; i < SHA_DIGEST_LENGTH; i++)
- recvPacket >> digest[i];
-
- uint32 accountNameLength = recvPacket.ReadBits(11);
- account = recvPacket.ReadString(accountNameLength);
- recvPacket.ReadBit(); // UseIPv6
- recvPacket >> addonSize;
-
- if (addonSize)
- {
- addonsData.resize(addonSize);
- recvPacket.read((uint8*)addonsData.contents(), addonSize);
- }
// Get the account information from the auth database
// 0 1 2 3 4 5 6 7 8
// SELECT id, sessionkey, last_ip, locked, expansion, mutetime, locale, recruiter, os FROM account WHERE username = ?
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_INFO_BY_NAME);
- stmt->setString(0, account);
+ stmt->setString(0, authSession.Account);
PreparedQueryResult result = LoginDatabase.Query(stmt);
@@ -404,7 +377,7 @@ void WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_LAST_ATTEMPT_IP);
stmt->setString(0, address);
- stmt->setString(1, account);
+ stmt->setString(1, authSession.Account);
LoginDatabase.Execute(stmt);
// This also allows to check for possible "hack" attempts on account
@@ -427,7 +400,7 @@ void WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
return;
}
- if (realmIndex != realmHandle.Index)
+ if (authSession.RealmID != realmHandle.Index)
{
SendAuthResponseError(REALM_LIST_REALM_NOT_FOUND);
TC_LOG_ERROR("network", "WorldSocket::HandleAuthSession: Sent Auth Response (bad realm).");
@@ -449,17 +422,17 @@ void WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
// Check that Key and account name are the same on client and server
uint32 t = 0;
- sha.UpdateData(account);
+ sha.UpdateData(authSession.Account);
sha.UpdateData((uint8*)&t, 4);
- sha.UpdateData((uint8*)&clientSeed, 4);
+ sha.UpdateData((uint8*)&authSession.LocalChallenge, 4);
sha.UpdateData((uint8*)&_authSeed, 4);
sha.UpdateBigNumbers(&k, NULL);
sha.Finalize();
- if (memcmp(sha.GetDigest(), digest, SHA_DIGEST_LENGTH) != 0)
+ if (memcmp(sha.GetDigest(), authSession.Digest, SHA_DIGEST_LENGTH) != 0)
{
SendAuthResponseError(AUTH_FAILED);
- TC_LOG_ERROR("network", "WorldSocket::HandleAuthSession: Authentication failed for account: %u ('%s') address: %s", id, account.c_str(), address.c_str());
+ TC_LOG_ERROR("network", "WorldSocket::HandleAuthSession: Authentication failed for account: %u ('%s') address: %s", id, authSession.Account.c_str(), address.c_str());
DelayedCloseSocket();
return;
}
@@ -499,7 +472,7 @@ void WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
uint32 recruiter = fields[7].GetUInt32();
uint32 battlenetAccountId = 0;
- if (loginServerType == 1)
+ if (authSession.LoginServerType == 1)
battlenetAccountId = Battlenet::AccountMgr::GetIdByGameAccount(id);
// Checks gmlevel per Realm
@@ -548,8 +521,7 @@ void WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
}
TC_LOG_DEBUG("network", "WorldSocket::HandleAuthSession: Client '%s' authenticated successfully from %s.",
- account.c_str(),
- address.c_str());
+ authSession.Account.c_str(), address.c_str());
// Check if this user is by any chance a recruiter
stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_RECRUITER);
@@ -566,7 +538,7 @@ void WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_LAST_IP);
stmt->setString(0, address);
- stmt->setString(1, account);
+ stmt->setString(1, authSession.Account);
LoginDatabase.Execute(stmt);
@@ -576,7 +548,7 @@ void WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
_worldSession = new WorldSession(id, battlenetAccountId, shared_from_this(), AccountTypes(security), expansion, mutetime, locale, recruiter, isRecruiter);
_worldSession->LoadGlobalAccountData();
_worldSession->LoadTutorialsData();
- _worldSession->ReadAddonsInfo(addonsData);
+ _worldSession->ReadAddonsInfo(authSession.AddonInfo);
_worldSession->LoadPermissions();
// Initialize Warden system only if it is enabled by config
@@ -588,13 +560,13 @@ void WorldSocket::HandleAuthSession(WorldPacket& recvPacket)
void WorldSocket::SendAuthResponseError(uint8 code)
{
- WorldPacket packet(SMSG_AUTH_RESPONSE, 2);
- packet << uint8(code);
- packet.WriteBit(0); // has account info
- packet.WriteBit(0); // has queue info
+ WorldPackets::Auth::AuthResponse response;
+ response.SuccessInfo.HasValue = false;
+ response.WaitInfo.HasValue = false;
+ response.Result = code;
+ response.Write();
- packet.FlushBits();
- SendPacket(packet);
+ SendPacket(response.GetWorldPacket());
}
void WorldSocket::HandlePing(WorldPacket& recvPacket)
diff --git a/src/server/game/Server/WorldSocket.h b/src/server/game/Server/WorldSocket.h
index 79ca6fe1621..0517ebcce91 100644
--- a/src/server/game/Server/WorldSocket.h
+++ b/src/server/game/Server/WorldSocket.h
@@ -32,6 +32,11 @@
using boost::asio::ip::tcp;
+namespace WorldPackets
+{
+ class ServerPacket;
+}
+
#pragma pack(push, 1)
union ClientPktHeader
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index b059bfeadd1..5dcdcc9fcea 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -1755,20 +1755,20 @@ void Spell::SendLoot(ObjectGuid guid, LootType loottype)
case GAMEOBJECT_TYPE_SPELL_FOCUS:
// triggering linked GO
- if (uint32 trapEntry = gameObjTarget->GetGOInfo()->spellFocus.linkedTrapId)
+ if (uint32 trapEntry = gameObjTarget->GetGOInfo()->spellFocus.linkedTrap)
gameObjTarget->TriggeringLinkedGameObject(trapEntry, m_caster);
return;
case GAMEOBJECT_TYPE_CHEST:
/// @todo possible must be moved to loot release (in different from linked triggering)
- if (gameObjTarget->GetGOInfo()->chest.eventId)
+ if (gameObjTarget->GetGOInfo()->chest.triggeredEvent)
{
- TC_LOG_DEBUG("spells", "Chest ScriptStart id %u for GO " UI64FMTD, gameObjTarget->GetGOInfo()->chest.eventId, gameObjTarget->GetDBTableGUIDLow());
- player->GetMap()->ScriptsStart(sEventScripts, gameObjTarget->GetGOInfo()->chest.eventId, player, gameObjTarget);
+ TC_LOG_DEBUG("spells", "Chest ScriptStart id %u for GO " UI64FMTD, gameObjTarget->GetGOInfo()->chest.triggeredEvent, gameObjTarget->GetDBTableGUIDLow());
+ player->GetMap()->ScriptsStart(sEventScripts, gameObjTarget->GetGOInfo()->chest.triggeredEvent, player, gameObjTarget);
}
// triggering linked GO
- if (uint32 trapEntry = gameObjTarget->GetGOInfo()->chest.linkedTrapId)
+ if (uint32 trapEntry = gameObjTarget->GetGOInfo()->chest.linkedTrap)
gameObjTarget->TriggeringLinkedGameObject(trapEntry, m_caster);
// Don't return, let loots been taken
@@ -1803,7 +1803,7 @@ void Spell::EffectOpenLock(SpellEffIndex effIndex)
GameObjectTemplate const* goInfo = gameObjTarget->GetGOInfo();
// Arathi Basin banner opening. /// @todo Verify correctness of this check
if ((goInfo->type == GAMEOBJECT_TYPE_BUTTON && goInfo->button.noDamageImmune) ||
- (goInfo->type == GAMEOBJECT_TYPE_GOOBER && goInfo->goober.losOK))
+ (goInfo->type == GAMEOBJECT_TYPE_GOOBER && goInfo->goober.requireLOS))
{
//CanUseBattlegroundObject() already called in CheckCast()
// in battleground check
diff --git a/src/server/game/Tickets/TicketMgr.cpp b/src/server/game/Tickets/TicketMgr.cpp
index 967d087c9d9..7c74c4cc7b0 100644
--- a/src/server/game/Tickets/TicketMgr.cpp
+++ b/src/server/game/Tickets/TicketMgr.cpp
@@ -53,7 +53,7 @@ bool GmTicket::LoadFromDB(Field* fields)
// ticketId, guid, name, message, createTime, mapId, posX, posY, posZ, lastModifiedTime, closedBy, assignedTo, comment, response, completed, escalated, viewed, haveTicket
uint8 index = 0;
_id = fields[ index].GetUInt32();
- _playerGuid = ObjectGuid(HighGuid::Player, fields[++index].GetUInt64());
+ _playerGuid = ObjectGuid::Create<HighGuid::Player>(fields[++index].GetUInt64());
_playerName = fields[++index].GetString();
_message = fields[++index].GetString();
_createTime = fields[++index].GetUInt32();
@@ -66,9 +66,9 @@ bool GmTicket::LoadFromDB(Field* fields)
if (closedBy < 0)
_closedBy.SetRawValue(0, uint64(closedBy));
else
- _closedBy = ObjectGuid(HighGuid::Player, uint64(closedBy));
+ _closedBy = ObjectGuid::Create<HighGuid::Player>(uint64(closedBy));
- _assignedTo = ObjectGuid(HighGuid::Player, fields[++index].GetUInt64());
+ _assignedTo = ObjectGuid::Create<HighGuid::Player>(fields[++index].GetUInt64());
_comment = fields[++index].GetString();
_response = fields[++index].GetString();
_completed = fields[++index].GetBool();
diff --git a/src/server/game/Tools/PlayerDump.cpp b/src/server/game/Tools/PlayerDump.cpp
index 14447c0d871..556913c60a6 100644
--- a/src/server/game/Tools/PlayerDump.cpp
+++ b/src/server/game/Tools/PlayerDump.cpp
@@ -666,7 +666,7 @@ DumpReturn PlayerDumpReader::LoadDump(std::string const& file, uint32 account, s
CharacterDatabase.CommitTransaction(trans);
// in case of name conflict player has to rename at login anyway
- sWorld->AddCharacterNameData(ObjectGuid(HighGuid::Player, guid), name, gender, race, playerClass, level);
+ sWorld->AddCharacterNameData(ObjectGuid::Create<HighGuid::Player>(guid), name, gender, race, playerClass, level);
sObjectMgr->GetGenerator<HighGuid::Item>()->Set(sObjectMgr->GetGenerator<HighGuid::Item>()->GetNextAfterMaxUsed() + items.size());
sObjectMgr->_mailId += mails.size();
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index 4a1caf21bd8..0ecb781d378 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -3244,7 +3244,7 @@ void World::LoadCharacterNameData()
do
{
Field* fields = result->Fetch();
- AddCharacterNameData(ObjectGuid(HighGuid::Player, fields[0].GetUInt64()), fields[1].GetString(),
+ AddCharacterNameData(ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64()), fields[1].GetString(),
fields[3].GetUInt8() /*gender*/, fields[2].GetUInt8() /*race*/, fields[4].GetUInt8() /*class*/, fields[5].GetUInt8() /*level*/);
++count;
} while (result->NextRow());
diff --git a/src/server/scripts/Commands/cs_character.cpp b/src/server/scripts/Commands/cs_character.cpp
index 4e47d403347..cfde57f3184 100644
--- a/src/server/scripts/Commands/cs_character.cpp
+++ b/src/server/scripts/Commands/cs_character.cpp
@@ -133,7 +133,7 @@ public:
DeletedInfo info;
- info.guid = ObjectGuid(HighGuid::Player, fields[0].GetUInt64());
+ info.guid = ObjectGuid::Create<HighGuid::Player>(fields[0].GetUInt64());
info.name = fields[1].GetString();
info.accountId = fields[2].GetUInt32();
@@ -921,7 +921,7 @@ public:
return false;
}
- if (sObjectMgr->GetPlayerAccountIdByGUID(ObjectGuid(HighGuid::Player, guid)))
+ if (sObjectMgr->GetPlayerAccountIdByGUID(ObjectGuid::Create<HighGuid::Player>(guid)))
{
handler->PSendSysMessage(LANG_CHARACTER_GUID_IN_USE, guid);
handler->SetSentErrorMessage(true);
@@ -969,7 +969,7 @@ public:
ObjectGuid guid;
// character name can't start from number
if (isNumeric(playerStr))
- guid = ObjectGuid(HighGuid::Player, strtoull(playerStr, nullptr, 10));
+ guid = ObjectGuid::Create<HighGuid::Player>(strtoull(playerStr, nullptr, 10));
else
{
std::string name = handler->extractPlayerNameFromLink(playerStr);
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index c258adbf730..0c37b1491c3 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -990,7 +990,7 @@ public:
ObjectGuid::LowType guid = strtoull(e, nullptr, 10);
uint32 index = (uint32)atoi(f);
- Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid(HighGuid::Item, guid));
+ Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid::Create<HighGuid::Item>(guid));
if (!i)
return false;
@@ -1021,7 +1021,7 @@ public:
uint32 index = (uint32)atoi(f);
uint32 value = (uint32)atoi(g);
- Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid(HighGuid::Item, guid));
+ Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid::Create<HighGuid::Item>(guid));
if (!i)
return false;
@@ -1045,7 +1045,7 @@ public:
ObjectGuid::LowType guid = strtoull(e, nullptr, 10);
- Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid(HighGuid::Item, guid));
+ Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid::Create<HighGuid::Item>(guid));
if (!i)
return false;
diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp
index 478d4dafb1f..2ae2f2c3fd8 100644
--- a/src/server/scripts/Commands/cs_go.cpp
+++ b/src/server/scripts/Commands/cs_go.cpp
@@ -140,7 +140,7 @@ public:
Transport* transport = NULL;
- if (Creature* creature = ObjectAccessor::GetObjectInWorld(ObjectGuid(HighGuid::Creature, id, guid), (Creature*)NULL))
+ if (Creature* creature = ObjectAccessor::GetObjectInWorld(ObjectGuid::Create<HighGuid::Creature>(mapId, id, guid), (Creature*)NULL))
{
x = creature->GetPositionX();
y = creature->GetPositionY();
diff --git a/src/server/scripts/Commands/cs_gobject.cpp b/src/server/scripts/Commands/cs_gobject.cpp
index 3915a3bf88d..5a00267d6aa 100644
--- a/src/server/scripts/Commands/cs_gobject.cpp
+++ b/src/server/scripts/Commands/cs_gobject.cpp
@@ -328,7 +328,7 @@ public:
return false;
}
- GameObject* target = handler->GetSession()->GetPlayer()->GetMap()->GetGameObject(ObjectGuid(HighGuid::GameObject, id, guidLow));
+ GameObject* target = handler->GetSession()->GetPlayer()->GetMap()->GetGameObject(ObjectGuid::Create<HighGuid::GameObject>(mapId, id, guidLow));
handler->PSendSysMessage(LANG_GAMEOBJECT_DETAIL, guidLow, objectInfo->name.c_str(), guidLow, id, x, y, z, mapId, o, phase);
@@ -618,10 +618,7 @@ public:
type = gameObjectInfo->type;
displayId = gameObjectInfo->displayId;
name = gameObjectInfo->name;
- if (type == GAMEOBJECT_TYPE_CHEST)
- lootId = gameObjectInfo->chest.lootId;
- else if (type == GAMEOBJECT_TYPE_FISHINGHOLE)
- lootId = gameObjectInfo->fishinghole.lootId;
+ lootId = gameObjectInfo->GetLootId();
handler->PSendSysMessage(LANG_GOINFO_ENTRY, entry);
handler->PSendSysMessage(LANG_GOINFO_TYPE, type);
diff --git a/src/server/scripts/Commands/cs_group.cpp b/src/server/scripts/Commands/cs_group.cpp
index 667f702e52a..99a0766f728 100644
--- a/src/server/scripts/Commands/cs_group.cpp
+++ b/src/server/scripts/Commands/cs_group.cpp
@@ -269,7 +269,7 @@ public:
const char* onlineState = "";
// Parse the guid to uint32...
- ObjectGuid parseGUID(HighGuid::Player, strtoull(args, nullptr, 10));
+ ObjectGuid parseGUID = ObjectGuid::Create<HighGuid::Player>(strtoull(args, nullptr, 10));
// ... and try to extract a player out of it.
if (sObjectMgr->GetPlayerNameByGUID(parseGUID, nameTarget))
diff --git a/src/server/scripts/Commands/cs_list.cpp b/src/server/scripts/Commands/cs_list.cpp
index b17a197915a..2a090aa70a8 100644
--- a/src/server/scripts/Commands/cs_list.cpp
+++ b/src/server/scripts/Commands/cs_list.cpp
@@ -181,10 +181,10 @@ public:
do
{
Field* fields = result->Fetch();
- ObjectGuid itemGuid(HighGuid::Item, fields[0].GetUInt64());
+ ObjectGuid itemGuid = ObjectGuid::Create<HighGuid::Item>(fields[0].GetUInt64());
uint32 itemBag = fields[1].GetUInt32();
uint8 itemSlot = fields[2].GetUInt8();
- ObjectGuid ownerGuid(HighGuid::Player, fields[3].GetUInt64());
+ ObjectGuid ownerGuid = ObjectGuid::Create<HighGuid::Player>(fields[3].GetUInt64());
uint32 ownerAccountId = fields[4].GetUInt32();
std::string ownerName = fields[5].GetString();
@@ -282,8 +282,8 @@ public:
do
{
Field* fields = result->Fetch();
- ObjectGuid itemGuid(HighGuid::Item, fields[0].GetUInt64());
- ObjectGuid owner(HighGuid::Player, fields[1].GetUInt64());
+ ObjectGuid itemGuid = ObjectGuid::Create<HighGuid::Item>(fields[0].GetUInt64());
+ ObjectGuid owner = ObjectGuid::Create<HighGuid::Player>(fields[1].GetUInt64());
uint32 ownerAccountId = fields[2].GetUInt32();
std::string ownerName = fields[3].GetString();
@@ -314,8 +314,8 @@ public:
do
{
Field* fields = result->Fetch();
- ObjectGuid itemGuid(HighGuid::Item, fields[0].GetUInt64());
- ObjectGuid guildGuid(HighGuid::Guild, fields[1].GetUInt64());
+ ObjectGuid itemGuid = ObjectGuid::Create<HighGuid::Item>(fields[0].GetUInt64());
+ ObjectGuid guildGuid = ObjectGuid::Create<HighGuid::Guild>(fields[1].GetUInt64());
std::string guildName = fields[2].GetString();
char const* itemPos = "[in guild bank]";
@@ -476,7 +476,7 @@ public:
if (!*args)
return false;
- ObjectGuid parseGUID(HighGuid::Player, strtoull(args, nullptr, 10));
+ ObjectGuid parseGUID = ObjectGuid::Create<HighGuid::Player>(strtoull(args, nullptr, 10));
if (sObjectMgr->GetPlayerNameByGUID(parseGUID, targetName))
{
diff --git a/src/server/scripts/Commands/cs_lookup.cpp b/src/server/scripts/Commands/cs_lookup.cpp
index 3b7743c959f..714d1851a3e 100644
--- a/src/server/scripts/Commands/cs_lookup.cpp
+++ b/src/server/scripts/Commands/cs_lookup.cpp
@@ -1280,7 +1280,7 @@ public:
do
{
Field* characterFields = result2->Fetch();
- ObjectGuid guid(HighGuid::Player, characterFields[0].GetUInt64());
+ ObjectGuid guid = ObjectGuid::Create<HighGuid::Player>(characterFields[0].GetUInt64());
std::string name = characterFields[1].GetString();
handler->PSendSysMessage(LANG_LOOKUP_PLAYER_CHARACTER, name.c_str(), guid.ToString().c_str());
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index 0c55a93f2ad..bd7cb9175fa 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -1390,7 +1390,7 @@ public:
PreparedStatement* stmt = NULL;
// To make sure we get a target, we convert our guid to an omniversal...
- ObjectGuid parseGUID(HighGuid::Player, strtoull(args, nullptr, 10));
+ ObjectGuid parseGUID = ObjectGuid::Create<HighGuid::Player>(strtoull(args, nullptr, 10));
// ... and make sure we get a target, somehow.
if (sObjectMgr->GetPlayerNameByGUID(parseGUID, targetName))
diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp
index 6f566871f5e..9d64ba60bc4 100644
--- a/src/server/scripts/Commands/cs_npc.cpp
+++ b/src/server/scripts/Commands/cs_npc.cpp
@@ -527,7 +527,7 @@ public:
return false;
if (CreatureData const* cr_data = sObjectMgr->GetCreatureData(lowguid))
- unit = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(ObjectGuid(HighGuid::Creature, cr_data->id, lowguid));
+ unit = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(ObjectGuid::Create<HighGuid::Creature>(cr_data->mapid, cr_data->id, lowguid));
}
else
unit = handler->getSelectedCreature();
@@ -1323,7 +1323,7 @@ public:
return false;
}
- ObjectGuid receiver_guid(HighGuid::Player, strtoull(receiver_str, nullptr, 10));
+ ObjectGuid receiver_guid = ObjectGuid::Create<HighGuid::Player>(strtoull(receiver_str, nullptr, 10));
// check online security
Player* receiver = ObjectAccessor::FindPlayer(receiver_guid);
diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp
index 878d5b1c758..58b86e9da74 100644
--- a/src/server/scripts/Commands/cs_wp.cpp
+++ b/src/server/scripts/Commands/cs_wp.cpp
@@ -846,11 +846,12 @@ public:
if (result2)
{
bool hasError = false;
+ Map* map = handler->GetSession()->GetPlayer()->GetMap();
do
{
Field* fields = result2->Fetch();
ObjectGuid::LowType wpguid = fields[0].GetUInt64();
- Creature* creature = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(ObjectGuid(HighGuid::Creature, VISUAL_WAYPOINT, wpguid));
+ Creature* creature = map->GetCreature(ObjectGuid::Create<HighGuid::Creature>(map->GetId(), VISUAL_WAYPOINT, wpguid));
if (!creature)
{
@@ -1051,11 +1052,12 @@ public:
return false;
}
bool hasError = false;
+ Map* map = handler->GetSession()->GetPlayer()->GetMap();
do
{
Field* fields = result->Fetch();
ObjectGuid::LowType guid = fields[0].GetUInt64();
- Creature* creature = handler->GetSession()->GetPlayer()->GetMap()->GetCreature(ObjectGuid(HighGuid::Creature, VISUAL_WAYPOINT, guid));
+ Creature* creature = map->GetCreature(ObjectGuid::Create<HighGuid::Creature>(map->GetId(), VISUAL_WAYPOINT, guid));
if (!creature)
{
handler->PSendSysMessage(LANG_WAYPOINT_NOTREMOVED, guid);
diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
index 4af520907e7..189cc842d9b 100644
--- a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
+++ b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp
@@ -71,7 +71,7 @@ public:
void OnGameObjectCreate(GameObject* go) override
{
- if ((go->GetGOInfo()->displayId == 4392 || go->GetGOInfo()->displayId == 4472) && go->GetGOInfo()->trap.spellId == 17731)
+ if ((go->GetGOInfo()->displayId == 4392 || go->GetGOInfo()->displayId == 4472) && go->GetGOInfo()->trap.spell == 17731)
{
FloorEruptionGUID[0].insert(std::make_pair(go->GetGUID(), 0));
return;
@@ -92,7 +92,7 @@ public:
void OnGameObjectRemove(GameObject* go) override
{
- if ((go->GetGOInfo()->displayId == 4392 || go->GetGOInfo()->displayId == 4472) && go->GetGOInfo()->trap.spellId == 17731)
+ if ((go->GetGOInfo()->displayId == 4392 || go->GetGOInfo()->displayId == 4472) && go->GetGOInfo()->trap.spell == 17731)
{
FloorEruptionGUID[0].erase(go->GetGUID());
return;
@@ -116,7 +116,7 @@ public:
//remove all that are not present on FloorEruptionGUID[1] and update treeLen on each GUID
for (std::list<GameObject*>::const_iterator itr = nearFloorList.begin(); itr != nearFloorList.end(); ++itr)
{
- if (((*itr)->GetGOInfo()->displayId == 4392 || (*itr)->GetGOInfo()->displayId == 4472) && (*itr)->GetGOInfo()->trap.spellId == 17731)
+ if (((*itr)->GetGOInfo()->displayId == 4392 || (*itr)->GetGOInfo()->displayId == 4472) && (*itr)->GetGOInfo()->trap.spell == 17731)
{
ObjectGuid nearFloorGUID = (*itr)->GetGUID();
if (FloorEruptionGUID[1].find(nearFloorGUID) != FloorEruptionGUID[1].end() && (*FloorEruptionGUID[1].find(nearFloorGUID)).second == 0)
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index 58f62c8bf4e..ee77671d83e 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -1292,7 +1292,7 @@ class go_twilight_portal : public GameObjectScript
{
case GO_HALION_PORTAL_EXIT:
gameobject->SetPhaseMask(0x20, true);
- _spellId = gameobject->GetGOInfo()->goober.spellId;
+ _spellId = gameobject->GetGOInfo()->goober.spell;
break;
case GO_HALION_PORTAL_1:
case GO_HALION_PORTAL_2: // Not used, not seen in sniffs. Just in case.
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index 95f0b36bed1..8e659a746ed 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -648,7 +648,7 @@ class npc_spinestalker : public CreatureScript
// Increase add count
if (!me->isDead())
{
- _instance->SetGuidData(DATA_SINDRAGOSA_FROSTWYRMS, ObjectGuid(HighGuid::Creature, me->GetEntry(), me->GetDBTableGUIDLow())); // this cannot be in Reset because reset also happens on evade
+ _instance->SetGuidData(DATA_SINDRAGOSA_FROSTWYRMS, ObjectGuid::Create<HighGuid::Creature>(631, me->GetEntry(), me->GetDBTableGUIDLow())); // this cannot be in Reset because reset also happens on evade
Reset();
}
}
@@ -671,7 +671,7 @@ class npc_spinestalker : public CreatureScript
void JustRespawned() override
{
ScriptedAI::JustRespawned();
- _instance->SetGuidData(DATA_SINDRAGOSA_FROSTWYRMS, ObjectGuid(HighGuid::Creature, me->GetEntry(), me->GetDBTableGUIDLow())); // this cannot be in Reset because reset also happens on evade
+ _instance->SetGuidData(DATA_SINDRAGOSA_FROSTWYRMS, ObjectGuid::Create<HighGuid::Creature>(631, me->GetEntry(), me->GetDBTableGUIDLow())); // this cannot be in Reset because reset also happens on evade
}
void JustDied(Unit* /*killer*/) override
@@ -784,7 +784,7 @@ class npc_rimefang : public CreatureScript
// Increase add count
if (!me->isDead())
{
- _instance->SetGuidData(DATA_SINDRAGOSA_FROSTWYRMS, ObjectGuid(HighGuid::Creature, me->GetEntry(), me->GetDBTableGUIDLow())); // this cannot be in Reset because reset also happens on evade
+ _instance->SetGuidData(DATA_SINDRAGOSA_FROSTWYRMS, ObjectGuid::Create<HighGuid::Creature>(631, me->GetEntry(), me->GetDBTableGUIDLow())); // this cannot be in Reset because reset also happens on evade
Reset();
}
}
@@ -807,7 +807,7 @@ class npc_rimefang : public CreatureScript
void JustRespawned() override
{
ScriptedAI::JustRespawned();
- _instance->SetGuidData(DATA_SINDRAGOSA_FROSTWYRMS, ObjectGuid(HighGuid::Creature, me->GetEntry(), me->GetDBTableGUIDLow())); // this cannot be in Reset because reset also happens on evade
+ _instance->SetGuidData(DATA_SINDRAGOSA_FROSTWYRMS, ObjectGuid::Create<HighGuid::Creature>(631, me->GetEntry(), me->GetDBTableGUIDLow())); // this cannot be in Reset because reset also happens on evade
}
void JustDied(Unit* /*killer*/) override
@@ -951,7 +951,7 @@ class npc_sindragosa_trash : public CreatureScript
if (!me->isDead())
{
if (me->GetEntry() == NPC_FROSTWING_WHELP)
- _instance->SetGuidData(_frostwyrmId, ObjectGuid(HighGuid::Creature, me->GetEntry(), me->GetDBTableGUIDLow())); // this cannot be in Reset because reset also happens on evade
+ _instance->SetGuidData(_frostwyrmId, ObjectGuid::Create<HighGuid::Creature>(631, me->GetEntry(), me->GetDBTableGUIDLow())); // this cannot be in Reset because reset also happens on evade
Reset();
}
}
@@ -974,7 +974,7 @@ class npc_sindragosa_trash : public CreatureScript
// Increase add count
if (me->GetEntry() == NPC_FROSTWING_WHELP)
- _instance->SetGuidData(_frostwyrmId, ObjectGuid(HighGuid::Creature, me->GetEntry(), me->GetDBTableGUIDLow())); // this cannot be in Reset because reset also happens on evade
+ _instance->SetGuidData(_frostwyrmId, ObjectGuid::Create<HighGuid::Creature>(631, me->GetEntry(), me->GetDBTableGUIDLow())); // this cannot be in Reset because reset also happens on evade
}
void SetData(uint32 type, uint32 data) override
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
index 261a6c96f77..0b3be93b17d 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
@@ -980,7 +980,7 @@ class go_celestial_planetarium_access : public GameObjectScript
bool GossipHello(Player* player) override
{
bool hasKey = true;
- if (LockEntry const* lock = sLockStore.LookupEntry(go->GetGOInfo()->goober.lockId))
+ if (LockEntry const* lock = sLockStore.LookupEntry(go->GetGOInfo()->GetLockId()))
{
hasKey = false;
for (uint32 i = 0; i < MAX_LOCK_CASE; ++i)
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
index 14087ace975..276e3a10513 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
@@ -241,7 +241,7 @@ class boss_ignis : public CreatureScript
case EVENT_CHANGE_POT:
if (Unit* slagPotTarget = ObjectAccessor::GetUnit(*me, _slagPotGUID))
{
- slagPotTarget->AddAura(SPELL_SLAG_POT, slagPotTarget);
+ DoCast(slagPotTarget, SPELL_SLAG_POT, true);
slagPotTarget->EnterVehicle(me, 1);
events.CancelEvent(EVENT_CHANGE_POT);
events.ScheduleEvent(EVENT_END_POT, 10000);
@@ -458,14 +458,13 @@ class spell_ignis_slag_pot : public SpellScriptLoader
return true;
}
- void HandleEffectPeriodic(AuraEffect const* aurEff)
+ void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
{
- Unit* aurEffCaster = aurEff->GetCaster();
- if (!aurEffCaster)
- return;
-
- Unit* target = GetTarget();
- aurEffCaster->CastSpell(target, SPELL_SLAG_POT_DAMAGE, true);
+ if (Unit* caster = GetCaster())
+ {
+ Unit* target = GetTarget();
+ caster->CastSpell(target, SPELL_SLAG_POT_DAMAGE, true);
+ }
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
index 5941bd3decf..27bd6904abd 100644
--- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
+++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
@@ -1075,7 +1075,7 @@ class go_simon_cluster : public GameObjectScript
if (Creature* bunny = go->FindNearestCreature(NPC_SIMON_BUNNY, 12.0f, true))
bunny->AI()->SetData(go->GetEntry(), 0);
- player->CastSpell(player, go->GetGOInfo()->goober.spellId, true);
+ player->CastSpell(player, go->GetGOInfo()->goober.spell, true);
go->AddUse();
return true;
}
diff --git a/src/server/shared/Utilities/Util.h b/src/server/shared/Utilities/Util.h
index 73ee37eb079..e2d8cd3a195 100644
--- a/src/server/shared/Utilities/Util.h
+++ b/src/server/shared/Utilities/Util.h
@@ -28,6 +28,13 @@
#include <list>
#include <map>
+template<typename T>
+struct Optional
+{
+ T value;
+ bool HasValue;
+};
+
// Searcher for map of structs
template<typename T, class S> struct Finder
{
diff --git a/src/tools/connection_patcher/Patterns/Mac.hpp b/src/tools/connection_patcher/Patterns/Mac.hpp
index fe32d55718c..b4cbacd8a7c 100644
--- a/src/tools/connection_patcher/Patterns/Mac.hpp
+++ b/src/tools/connection_patcher/Patterns/Mac.hpp
@@ -30,7 +30,7 @@ namespace Connection_Patcher
struct x64
{
static const std::vector<unsigned char> BNet () { return { 0x8B, 0x06, 0x89, 0x47, 0x0C, 0x5D, 0xC3 }; }
- static const std::vector<unsigned char> Portal () { return { 0x2E, 0x6C, 0x6F, 0x67, 0x6F, 0x6E, 0x2E, 0x62, 0x61, 0x74, 0x74, 0x6C, 0x65, 0x2E, 0x6E, 0x65, 0x74, 0x00 }; }
+ static const std::vector<unsigned char> Portal () { return { '.', 'l', 'o', 'g', 'o', 'n', '.', 'b', 'a', 't', 't', 'l', 'e', '.', 'n', 'e', 't', 0x00 }; }
static const std::vector<unsigned char> Connect () { return { }; }
static const std::vector<unsigned char> Password () { return { 0x0F, 0x84, 0x00, 0xFF, 0xFF, 0xFF, 0x49, 0x8B, 0x45, 0x00, 0xB9, 0x40 }; }
static const std::vector<unsigned char> Signature() { return { 0xE8, 0x00, 0x00, 0x00, 0x00, 0x45, 0x31, 0xED, 0x4D, 0x89, 0xFC, 0x84, 0xC0, 0x75 }; }
diff --git a/src/tools/connection_patcher/Patterns/Windows.hpp b/src/tools/connection_patcher/Patterns/Windows.hpp
index 642ae286db3..9a8b14e137b 100644
--- a/src/tools/connection_patcher/Patterns/Windows.hpp
+++ b/src/tools/connection_patcher/Patterns/Windows.hpp
@@ -30,7 +30,7 @@ namespace Connection_Patcher
struct x86
{
static const std::vector<unsigned char> BNet () { return { 0x8B, 0x75, 0x08, 0x8D, 0x78, 0x0C }; }
- static const std::vector<unsigned char> Portal () { return { 0x2E, 0x6C, 0x6F, 0x67, 0x6F, 0x6E, 0x2E, 0x62, 0x61, 0x74, 0x74, 0x6C, 0x65, 0x2E, 0x6E, 0x65, 0x74, 0x00 }; }
+ static const std::vector<unsigned char> Portal () { return { '.', 'l', 'o', 'g', 'o', 'n', '.', 'b', 'a', 't', 't', 'l', 'e', '.', 'n', 'e', 't', 0x00 }; }
static const std::vector<unsigned char> Connect () { return { 0x74, 0x33, 0x6A, 0x04, 0xFF, 0x75, 0xF8 }; }
static const std::vector<unsigned char> Password () { return { 0x74, 0x89, 0x8B, 0x16, 0x8B, 0x42, 0x04 }; }
static const std::vector<unsigned char> Signature() { return { 0xE8, 0x00, 0x00, 0x00, 0x00, 0x84, 0xC0, 0x75, 0x5F, 0x33, 0xC0 }; }
@@ -39,7 +39,7 @@ namespace Connection_Patcher
struct x64
{
static const std::vector<unsigned char> BNet () { return { 0x8B, 0x02, 0x89, 0x41, 0x0C, 0x48, 0x8B, 0xC1, 0xC3 }; }
- static const std::vector<unsigned char> Portal () { return { 0x2E, 0x6C, 0x6F, 0x67, 0x6F, 0x6E, 0x2E, 0x62, 0x61, 0x74, 0x74, 0x6C, 0x65, 0x2E, 0x6E, 0x65, 0x74, 0x00 }; }
+ static const std::vector<unsigned char> Portal () { return { '.', 'l', 'o', 'g', 'o', 'n', '.', 'b', 'a', 't', 't', 'l', 'e', '.', 'n', 'e', 't', 0x00 }; }
static const std::vector<unsigned char> Connect () { return { 0x74, 0x2C, 0x48, 0x8D, 0x4C, 0x24, 0x78 }; }
static const std::vector<unsigned char> Password () { return { 0x74, 0x84, 0x48, 0x8B, 0x03 }; }
static const std::vector<unsigned char> Signature() { return { 0xE8, 0x00, 0x00, 0x00, 0x00, 0x84, 0xC0, 0x0F, 0x85, 0x88, 0x00, 0x00, 0x00, 0x45, 0x33, 0xC0 }; }