TrinityCore
Opcodes.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
21
22#ifndef _OPCODES_H
23#define _OPCODES_H
24
25#include "Define.h"
26#include <array>
27#include <memory>
28#include <string>
29
31{
35
37};
38
39constexpr uint16 UNKNOWN_OPCODE = 0xBADD; // special marker value for uninitialized WorldPackets
40
42{
55 CMSG_ADDON_LIST = 0x350004,
58 CMSG_ADD_FRIEND = 0x3500FA,
59 CMSG_ADD_IGNORE = 0x3500FE,
60 CMSG_ADD_TOY = 0x30016C,
71 CMSG_ATTACK_STOP = 0x30011B,
147 CMSG_BONUS_ROLL = 0x300255,
148 CMSG_BUG_REPORT = 0x3500AF,
149 CMSG_BUSY_TRADE = 0x300002,
153 CMSG_BUY_ITEM = 0x310035,
182 CMSG_CAN_DUEL = 0x35008C,
184 CMSG_CAST_SPELL = 0x300170,
280 CMSG_COMPLAINT = 0x350096,
318 CMSG_DEL_FRIEND = 0x3500FB,
319 CMSG_DEL_IGNORE = 0x3500FF,
326 CMSG_DF_JOIN = 0x350037,
327 CMSG_DF_LEAVE = 0x350040,
339 CMSG_EMOTE = 0x3100E0,
346 CMSG_FAR_SIGHT = 0x310081,
446 CMSG_INSPECT = 0x3100C8,
453 CMSG_KEEP_ALIVE = 0x3500A9,
494 CMSG_LOOT_ITEM = 0x3000C6,
495 CMSG_LOOT_MONEY = 0x3000C5,
497 CMSG_LOOT_ROLL = 0x3000CB,
498 CMSG_LOOT_UNIT = 0x3000C4,
552 CMSG_MOVE_JUMP = 0x330006,
597 CMSG_MOVE_STOP = 0x330002,
614 CMSG_OPEN_ITEM = 0x30020A,
636 CMSG_PET_ACTION = 0x31001B,
649 CMSG_PET_RENAME = 0x3500AE,
653 CMSG_PING = 0x360004,
680 CMSG_QUERY_TIME = 0x31006F,
712 CMSG_READ_ITEM = 0x30020B,
776 CMSG_SELF_RES = 0x3100D0,
778 CMSG_SELL_ITEM = 0x310033,
781 CMSG_SEND_MAIL = 0x350026,
816 CMSG_SET_PVP = 0x300184,
819 CMSG_SET_ROLE = 0x350005,
825 CMSG_SET_TITLE = 0x30014E,
838 CMSG_SORT_BAGS = 0x300213,
849 CMSG_SPLIT_ITEM = 0x32000A,
865 CMSG_SWAP_ITEM = 0x320008,
879 CMSG_TOGGLE_PVP = 0x300183,
890 CMSG_TUTORIAL = 0x350106,
912 CMSG_USE_ITEM = 0x30016B,
913 CMSG_USE_TOY = 0x30016E,
923 CMSG_WHO = 0x3500AB,
924 CMSG_WHO_IS = 0x3500AA,
927 CMSG_WRAP_ITEM = 0x320000,
928};
929
930inline constexpr std::size_t NUM_CMSG_OPCODES = 1713;
931
932inline constexpr std::ptrdiff_t GetOpcodeArrayIndex(OpcodeClient opcode)
933{
934 uint32 idInGroup = opcode & 0xFFFF;
935 switch (opcode >> 16)
936 {
937 case 0x2A: return idInGroup < 30 ? idInGroup + 0 : -1;
938 case 0x2C: return idInGroup < 47 ? idInGroup + 30 : -1;
939 case 0x2D: return idInGroup < 3 ? idInGroup + 77 : -1;
940 case 0x2E: return idInGroup < 33 ? idInGroup + 80 : -1;
941 case 0x30: return idInGroup < 744 ? idInGroup + 113 : -1;
942 case 0x31: return idInGroup < 298 ? idInGroup + 857 : -1;
943 case 0x32: return idInGroup < 12 ? idInGroup + 1155 : -1;
944 case 0x33: return idInGroup < 130 ? idInGroup + 1167 : -1;
945 case 0x35: return idInGroup < 401 ? idInGroup + 1297 : -1;
946 case 0x36: return idInGroup < 15 ? idInGroup + 1698 : -1;
947 default: return -1;
948 }
949}
950
952{
1098 SMSG_BOSS_KILL = 0x3D002B,
1165 SMSG_CHAT = 0x3C0001,
1168 SMSG_CHAT_DOWN = 0x3C0012,
1255 SMSG_DB_REPLY = 0x3B0000,
1286 SMSG_EMOTE = 0x370259,
1419 SMSG_GOD_MODE = 0x370193,
1587 SMSG_LOOT_LIST = 0x3701D6,
1593 SMSG_LOOT_ROLL = 0x3700B4,
1630 SMSG_MOVE_ROOT = 0x480027,
1732 SMSG_NEW_WORLD = 0x37002B,
1746 SMSG_PAGE_TEXT = 0x3701B0,
1789 SMSG_PET_GUIDS = 0x37019B,
1791 SMSG_PET_MODE = 0x37001F,
1831 SMSG_PONG = 0x3E0006,
2036 SMSG_SPELL_GO = 0x4D002A,
2097 SMSG_UI_ACTION = 0x3701FF,
2150 SMSG_WEATHER = 0x37013F,
2154 SMSG_WHO = 0x3C0002,
2155 SMSG_WHO_IS = 0x37013E,
2171
2172 // Opcodes that are not generated automatically
2176
2177 // Deleted opcodes, here only to allow compile
2179};
2180
2181inline constexpr std::size_t NUM_SMSG_OPCODES = 1460;
2182
2183inline constexpr std::ptrdiff_t GetOpcodeArrayIndex(OpcodeServer opcode)
2184{
2185 uint32 idInGroup = opcode & 0xFFFF;
2186 switch (opcode >> 16)
2187 {
2188 case 0x37: return idInGroup < 843 ? idInGroup + 0 : -1;
2189 case 0x38: return idInGroup < 10 ? idInGroup + 843 : -1;
2190 case 0x3B: return idInGroup < 18 ? idInGroup + 853 : -1;
2191 case 0x3C: return idInGroup < 34 ? idInGroup + 871 : -1;
2192 case 0x3D: return idInGroup < 49 ? idInGroup + 905 : -1;
2193 case 0x3E: return idInGroup < 11 ? idInGroup + 954 : -1;
2194 case 0x3F: return idInGroup < 12 ? idInGroup + 965 : -1;
2195 case 0x41: return idInGroup < 82 ? idInGroup + 977 : -1;
2196 case 0x43: return idInGroup < 67 ? idInGroup + 1059 : -1;
2197 case 0x45: return idInGroup < 33 ? idInGroup + 1126 : -1;
2198 case 0x47: return idInGroup < 1 ? idInGroup + 1159 : -1;
2199 case 0x48: return idInGroup < 118 ? idInGroup + 1160 : -1;
2200 case 0x4A: return idInGroup < 47 ? idInGroup + 1278 : -1;
2201 case 0x4B: return idInGroup < 41 ? idInGroup + 1325 : -1;
2202 case 0x4D: return idInGroup < 85 ? idInGroup + 1366 : -1;
2203 case 0x4E: return idInGroup < 8 ? idInGroup + 1451 : -1;
2204 case 0x50: return idInGroup < 1 ? idInGroup + 1459 : -1;
2205 default: return -1;
2206 }
2207}
2208
2209constexpr bool IsInstanceOnlyOpcode(uint32 opcode)
2210{
2211 switch (opcode)
2212 {
2213 case SMSG_QUEST_GIVER_STATUS: // ClientQuest
2214 case SMSG_DUEL_REQUESTED: // Client
2215 case SMSG_DUEL_IN_BOUNDS: // Client
2216 case SMSG_QUERY_TIME_RESPONSE: // Client
2217 case SMSG_DUEL_WINNER: // Client
2218 case SMSG_DUEL_COMPLETE: // Client
2219 case SMSG_DUEL_OUT_OF_BOUNDS: // Client
2220 case SMSG_ATTACK_STOP: // Client
2221 case SMSG_ATTACK_START: // Client
2222 case SMSG_MOUNT_RESULT: // Client
2223 return true;
2224 default:
2225 return false;
2226 }
2227}
2228
2231{
2232 STATUS_AUTHED = 0, // Player authenticated (_player == NULL, m_playerRecentlyLogout = false or will be reset before handler call, m_GUID have garbage)
2233 STATUS_LOGGEDIN, // Player in game (_player != NULL, m_GUID == _player->GetGUID(), inWorld())
2234 STATUS_TRANSFER, // Player transferring to another map (_player != NULL, m_GUID == _player->GetGUID(), !inWorld())
2235 STATUS_LOGGEDIN_OR_RECENTLY_LOGGOUT, // _player != NULL or _player == NULL && m_playerRecentlyLogout && m_playerLogout, m_GUID store last _player guid)
2236 STATUS_NEVER, // Opcode not accepted from client (deprecated or server side only)
2237 STATUS_UNHANDLED // Opcode not handled yet
2239
2241{
2242 PROCESS_INPLACE = 0, //process packet whenever we receive it - mostly for non-handled or non-implemented packets
2243 PROCESS_THREADUNSAFE, //packet is not thread-safe - process it in World::UpdateSessions()
2244 PROCESS_THREADSAFE //packet is thread-safe - process it in Map::Update()
2246
2247class WorldPacket;
2248class WorldSession;
2249
2251{
2252 using HandlerFunction = void (*)(WorldSession* session, WorldPacket& packet);
2253
2254 char const* Name;
2258};
2259
2261{
2262 char const* Name;
2265};
2266
2268std::string GetOpcodeNameForLogging(OpcodeClient opcode);
2269std::string GetOpcodeNameForLogging(OpcodeServer opcode);
2270
2272{
2273public:
2276
2277 void Initialize();
2278
2279 bool IsValid(OpcodeClient index) const
2280 {
2281 std::ptrdiff_t opcodeArrayIndex = GetOpcodeArrayIndex(index);
2282 return opcodeArrayIndex >= 0 && opcodeArrayIndex < std::ssize(_internalTableClient);
2283 }
2284
2285 bool IsValid(OpcodeServer index) const
2286 {
2287 std::ptrdiff_t opcodeArrayIndex = GetOpcodeArrayIndex(index);
2288 return opcodeArrayIndex >= 0 && opcodeArrayIndex < std::ssize(_internalTableServer);
2289 }
2290
2292 {
2293 return _internalTableClient[GetOpcodeArrayIndex(index)].get();
2294 }
2295
2297 {
2298 return _internalTableServer[GetOpcodeArrayIndex(index)].get();
2299 }
2300
2301private:
2302 bool ValidateClientOpcode(OpcodeClient opcode, char const* name) const;
2304
2305 bool ValidateServerOpcode(OpcodeServer opcode, char const* name, ConnectionType conIdx) const;
2306 void ValidateAndSetServerOpcode(OpcodeServer opcode, char const* name, SessionStatus status, ConnectionType conIdx);
2307
2310
2311 std::array<std::unique_ptr<ClientOpcodeHandler>, NUM_CMSG_OPCODES> _internalTableClient;
2312 std::array<std::unique_ptr<ServerOpcodeHandler>, NUM_SMSG_OPCODES> _internalTableServer;
2313
2314 friend std::string GetOpcodeNameForLogging(OpcodeClient opcode);
2315 friend std::string GetOpcodeNameForLogging(OpcodeServer opcode);
2316};
2317
2319
2320#endif
int8_t int8
Definition: Define.h:140
uint16_t uint16
Definition: Define.h:143
uint32_t uint32
Definition: Define.h:142
void ValidateAndSetClientOpcode(OpcodeClient opcode, char const *name, SessionStatus status, ClientOpcodeHandler::HandlerFunction call, PacketProcessing processing)
Definition: Opcodes.cpp:76
std::array< std::unique_ptr< ClientOpcodeHandler >, NUM_CMSG_OPCODES > _internalTableClient
Definition: Opcodes.h:2311
bool IsValid(OpcodeClient index) const
Definition: Opcodes.h:2279
ClientOpcodeHandler const * operator[](OpcodeClient index) const
Definition: Opcodes.h:2291
ServerOpcodeHandler const * operator[](OpcodeServer index) const
Definition: Opcodes.h:2296
void InitializeServerOpcodes()
Definition: Opcodes.cpp:1034
bool IsValid(OpcodeServer index) const
Definition: Opcodes.h:2285
friend std::string GetOpcodeNameForLogging(OpcodeClient opcode)
Lookup opcode name for human understandable logging.
Definition: Opcodes.cpp:2285
bool ValidateServerOpcode(OpcodeServer opcode, char const *name, ConnectionType conIdx) const
Definition: Opcodes.cpp:89
void Initialize()
Correspondence between opcodes and their names.
Definition: Opcodes.cpp:134
void InitializeClientOpcodes()
Definition: Opcodes.cpp:140
bool ValidateClientOpcode(OpcodeClient opcode, char const *name) const
Definition: Opcodes.cpp:52
std::array< std::unique_ptr< ServerOpcodeHandler >, NUM_SMSG_OPCODES > _internalTableServer
Definition: Opcodes.h:2312
void ValidateAndSetServerOpcode(OpcodeServer opcode, char const *name, SessionStatus status, ConnectionType conIdx)
Definition: Opcodes.cpp:125
Player session in the World.
Definition: WorldSession.h:976
constexpr std::size_t NUM_CMSG_OPCODES
Definition: Opcodes.h:930
ConnectionType
Definition: Opcodes.h:31
constexpr std::size_t NUM_SMSG_OPCODES
Definition: Opcodes.h:2181
constexpr bool IsInstanceOnlyOpcode(uint32 opcode)
Definition: Opcodes.h:2209
OpcodeServer
Definition: Opcodes.h:952
std::string GetOpcodeNameForLogging(OpcodeClient opcode)
Lookup opcode name for human understandable logging.
Definition: Opcodes.cpp:2285
SessionStatus
Player state.
Definition: Opcodes.h:2231
OpcodeTable opcodeTable
Definition: Opcodes.cpp:35
constexpr std::ptrdiff_t GetOpcodeArrayIndex(OpcodeClient opcode)
Definition: Opcodes.h:932
constexpr uint16 UNKNOWN_OPCODE
Definition: Opcodes.h:39
PacketProcessing
Definition: Opcodes.h:2241
OpcodeClient
Definition: Opcodes.h:42
@ MAX_CONNECTION_TYPES
Definition: Opcodes.h:34
@ CONNECTION_TYPE_INSTANCE
Definition: Opcodes.h:33
@ CONNECTION_TYPE_DEFAULT
Definition: Opcodes.h:36
@ CONNECTION_TYPE_REALM
Definition: Opcodes.h:32
@ SMSG_ACCOUNT_STORE_RESULT
Definition: Opcodes.h:966
@ SMSG_CHARACTER_UPGRADE_COMPLETE
Definition: Opcodes.h:1159
@ SMSG_VOID_TRANSFER_RESULT
Definition: Opcodes.h:2141
@ SMSG_SEND_SPELL_HISTORY
Definition: Opcodes.h:1972
@ SMSG_SET_FACTION_VISIBLE
Definition: Opcodes.h:1988
@ SMSG_MOVE_SPLINE_SET_PITCH_RATE
Definition: Opcodes.h:1681
@ SMSG_GARRISON_AUTO_TROOP_MIN_LEVEL_UPDATE_RESULT
Definition: Opcodes.h:1339
@ SMSG_MOVE_SET_ADV_FLYING_LAUNCH_SPEED_COEFFICIENT
Definition: Opcodes.h:1637
@ SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT
Definition: Opcodes.h:1498
@ SMSG_GOSSIP_QUEST_UPDATE
Definition: Opcodes.h:1424
@ SMSG_PLAYER_END_OF_MATCH_DETAILS
Definition: Opcodes.h:1808
@ SMSG_MOVE_UNSET_CANT_SWIM
Definition: Opcodes.h:1698
@ SMSG_PET_BATTLE_FIRST_ROUND
Definition: Opcodes.h:1775
@ SMSG_RECEIVE_PING_UNIT
Definition: Opcodes.h:1910
@ SMSG_BATTLE_PAY_DISTRIBUTION_UNREVOKED
Definition: Opcodes.h:1070
@ SMSG_PLAYER_SHOW_PARTY_POSE_UI
Definition: Opcodes.h:1816
@ SMSG_MYTHIC_PLUS_SEASON_DATA
Definition: Opcodes.h:1728
@ SMSG_GUILD_EVENT_NEW_LEADER
Definition: Opcodes.h:1451
@ SMSG_PLAYER_CONDITION_RESULT
Definition: Opcodes.h:1807
@ SMSG_GARRISON_SWAP_BUILDINGS_RESPONSE
Definition: Opcodes.h:1389
@ SMSG_ZONE_UNDER_ATTACK
Definition: Opcodes.h:2170
@ SMSG_GAME_OBJECT_CUSTOM_ANIM
Definition: Opcodes.h:1322
@ SMSG_READ_ITEM_RESULT_FAILED
Definition: Opcodes.h:1906
@ SMSG_BATTLEFIELD_STATUS_NEED_CONFIRMATION
Definition: Opcodes.h:1048
@ SMSG_REATTACH_RESURRECT
Definition: Opcodes.h:1909
@ SMSG_GUILD_ROSTER
Definition: Opcodes.h:1484
@ SMSG_GOD_MODE
Definition: Opcodes.h:1419
@ SMSG_MOVE_SPLINE_SET_SWIM_SPEED
Definition: Opcodes.h:1686
@ SMSG_MOVE_SET_FLIGHT_SPEED
Definition: Opcodes.h:1653
@ SMSG_GUILD_EVENT_MOTD
Definition: Opcodes.h:1450
@ SMSG_MOVE_SPLINE_SET_FLYING
Definition: Opcodes.h:1677
@ SMSG_USE_EQUIPMENT_SET_RESULT
Definition: Opcodes.h:2126
@ SMSG_LFG_TELEPORT_DENIED
Definition: Opcodes.h:1566
@ SMSG_READY_CHECK_COMPLETED
Definition: Opcodes.h:1903
@ SMSG_GARRISON_TALENT_UPDATE_SOCKET_DATA
Definition: Opcodes.h:1394
@ SMSG_PET_BATTLE_CHAT_RESTRICTED
Definition: Opcodes.h:1770
@ SMSG_MOVE_SET_FLIGHT_BACK_SPEED
Definition: Opcodes.h:1652
@ SMSG_WEEKLY_REWARDS_PROGRESS_RESULT
Definition: Opcodes.h:2151
@ SMSG_VOID_STORAGE_TRANSFER_CHANGES
Definition: Opcodes.h:2140
@ SMSG_MOVE_SET_ADV_FLYING_SURFACE_FRICTION
Definition: Opcodes.h:1643
@ SMSG_CHECK_ABANDON_NPE
Definition: Opcodes.h:1180
@ SMSG_PLAYER_SAVE_PERSONAL_EMBLEM
Definition: Opcodes.h:1813
@ SMSG_CLOSE_ARTIFACT_FORGE
Definition: Opcodes.h:1193
@ SMSG_SPELL_EMPOWER_UPDATE
Definition: Opcodes.h:2030
@ SMSG_PAUSE_MIRROR_TIMER
Definition: Opcodes.h:1756
@ SMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID_RESPONSE
Definition: Opcodes.h:1861
@ SMSG_LFG_PARTY_INFO
Definition: Opcodes.h:1557
@ SMSG_PAGE_TEXT
Definition: Opcodes.h:1746
@ SMSG_LOAD_EQUIPMENT_SET
Definition: Opcodes.h:1573
@ SMSG_UPDATE_CHARACTER_FLAGS
Definition: Opcodes.h:2109
@ SMSG_PET_BATTLE_ROUND_RESULT
Definition: Opcodes.h:1783
@ SMSG_QUEST_SESSION_READY_CHECK_RESPONSE
Definition: Opcodes.h:1885
@ SMSG_WARDEN3_ENABLED
Definition: Opcodes.h:2146
@ SMSG_ITEM_EXPIRE_PURCHASE_REFUND
Definition: Opcodes.h:1527
@ SMSG_DEBUG_MENU_MANAGER_FULL_UPDATE
Definition: Opcodes.h:1257
@ SMSG_LOSS_OF_CONTROL_AURA_UPDATE
Definition: Opcodes.h:1596
@ SMSG_GARRISON_UNLEARN_BLUEPRINT_RESULT
Definition: Opcodes.h:1396
@ SMSG_WARDEN3_DATA
Definition: Opcodes.h:2144
@ SMSG_AUCTION_LIST_BIDDED_ITEMS_RESULT
Definition: Opcodes.h:1025
@ SMSG_PERKS_PROGRAM_VENDOR_UPDATE
Definition: Opcodes.h:1762
@ SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE
Definition: Opcodes.h:1923
@ SMSG_GARRISON_GET_CLASS_SPEC_CATEGORY_INFO_RESULT
Definition: Opcodes.h:1361
@ SMSG_GUILD_BANK_QUERY_RESULTS
Definition: Opcodes.h:1437
@ SMSG_DUEL_ARRANGED
Definition: Opcodes.h:1278
@ SMSG_ACCOUNT_COSMETIC_ADDED
Definition: Opcodes.h:956
@ SMSG_MOVE_DISABLE_COLLISION
Definition: Opcodes.h:1615
@ SMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA_RESULT
Definition: Opcodes.h:1384
@ SMSG_GUILD_BANK_REMAINING_WITHDRAW_MONEY
Definition: Opcodes.h:1438
@ SMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING_RESULT
Definition: Opcodes.h:1338
@ SMSG_PARTY_COMMAND_RESULT
Definition: Opcodes.h:1747
@ SMSG_MULTI_FLOOR_NEW_FLOOR
Definition: Opcodes.h:1724
@ SMSG_PLAYER_SHOW_ARROW_CALLOUT
Definition: Opcodes.h:1814
@ SMSG_LFG_ROLE_CHECK_UPDATE
Definition: Opcodes.h:1564
@ SMSG_CONSOLE_WRITE
Definition: Opcodes.h:1214
@ SMSG_PROC_RESIST
Definition: Opcodes.h:1838
@ SMSG_NEW_WORLD
Definition: Opcodes.h:1732
@ SMSG_SHOW_DELVES_COMPANION_CONFIGURATION_UI
Definition: Opcodes.h:2007
@ SMSG_MOVE_UPDATE_PITCH_RATE
Definition: Opcodes.h:1713
@ SMSG_INVALIDATE_PLAYER
Definition: Opcodes.h:1516
@ SMSG_PET_STABLE_RESULT
Definition: Opcodes.h:1795
@ SMSG_VIGNETTE_UPDATE
Definition: Opcodes.h:2133
@ SMSG_CANCEL_ORPHAN_SPELL_VISUAL
Definition: Opcodes.h:1130
@ SMSG_GARRISON_GENERATE_FOLLOWERS_RESULT
Definition: Opcodes.h:1360
@ SMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_VAS_RESPONSE
Definition: Opcodes.h:1069
@ SMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING_RESULT
Definition: Opcodes.h:1381
@ SMSG_NOTIFY_MONEY
Definition: Opcodes.h:1735
@ SMSG_CRAFTING_ORDER_CREATE_RESULT
Definition: Opcodes.h:1236
@ SMSG_PET_BATTLE_PVP_CHALLENGE
Definition: Opcodes.h:1778
@ SMSG_MOVE_SPLINE_SET_WALK_SPEED
Definition: Opcodes.h:1689
@ SMSG_VOICE_CHANNEL_STT_TOKEN_RESPONSE
Definition: Opcodes.h:2135
@ SMSG_XP_GAIN_ABORTED
Definition: Opcodes.h:2168
@ SMSG_SPELL_CHANNEL_UPDATE
Definition: Opcodes.h:2023
@ SMSG_BATTLE_PET_RESTORED
Definition: Opcodes.h:1088
@ SMSG_CALENDAR_SEND_EVENT
Definition: Opcodes.h:1125
@ SMSG_DISPLAY_PLAYER_CHOICE
Definition: Opcodes.h:1269
@ SMSG_BROADCAST_SUMMON_CAST
Definition: Opcodes.h:1101
@ SMSG_PLAY_SCENE
Definition: Opcodes.h:1825
@ SMSG_MOVE_ENABLE_DOUBLE_JUMP
Definition: Opcodes.h:1622
@ SMSG_QUEST_UPDATE_FAILED
Definition: Opcodes.h:1891
@ SMSG_SPELL_EXECUTE_LOG
Definition: Opcodes.h:2032
@ SMSG_GUILD_CHANGE_NAME_RESULT
Definition: Opcodes.h:1442
@ SMSG_TIMERUNNING_SEASON_ENDED
Definition: Opcodes.h:2076
@ SMSG_BATTLEFIELD_LIST
Definition: Opcodes.h:1043
@ SMSG_DISPLAY_QUEST_POPUP
Definition: Opcodes.h:1271
@ SMSG_BATTLE_PET_JOURNAL_LOCK_ACQUIRED
Definition: Opcodes.h:1086
@ SMSG_LOOT_REMOVED
Definition: Opcodes.h:1591
@ SMSG_TOTEM_CREATED
Definition: Opcodes.h:2081
@ SMSG_INSTANCE_RESET
Definition: Opcodes.h:1511
@ SMSG_AUCTION_LIST_OWNED_ITEMS_RESULT
Definition: Opcodes.h:1028
@ SMSG_ARTIFACT_ENDGAME_POWERS_REFUNDED
Definition: Opcodes.h:1007
@ SMSG_CLUB_FINDER_LOOKUP_CLUB_POSTINGS_LIST
Definition: Opcodes.h:1196
@ SMSG_LFG_EXPAND_SEARCH_PROMPT
Definition: Opcodes.h:1542
@ SMSG_SEND_RAID_TARGET_UPDATE_ALL
Definition: Opcodes.h:1969
@ SMSG_AE_LOOT_TARGETS
Definition: Opcodes.h:985
@ SMSG_BROADCAST_SUMMON_RESPONSE
Definition: Opcodes.h:1102
@ SMSG_GM_TICKET_CASE_STATUS
Definition: Opcodes.h:1417
@ SMSG_WOW_LABS_NOTIFY_PLAYERS_MATCH_STATE_CHANGED
Definition: Opcodes.h:2162
@ SMSG_CALENDAR_SEND_NUM_PENDING
Definition: Opcodes.h:1126
@ SMSG_CONSUMABLE_TOKEN_CAN_VETERAN_BUY_RESPONSE
Definition: Opcodes.h:1217
@ SMSG_ACHIEVEMENT_EARNED
Definition: Opcodes.h:971
@ SMSG_GUILD_CHALLENGE_COMPLETED
Definition: Opcodes.h:1440
@ SMSG_MOVE_ROOT
Definition: Opcodes.h:1630
@ SMSG_CONFIRM_PARTY_INVITE
Definition: Opcodes.h:1212
@ SMSG_GUILD_MOVE_STARTING
Definition: Opcodes.h:1474
@ SMSG_RETURNING_PLAYER_PROMPT
Definition: Opcodes.h:1942
@ SMSG_SET_VEHICLE_REC_ID
Definition: Opcodes.h:2004
@ SMSG_ACCOUNT_DATA_TIMES
Definition: Opcodes.h:958
@ SMSG_GAIN_MAW_POWER
Definition: Opcodes.h:1318
@ SMSG_TREASURE_PICKER_RESPONSE
Definition: Opcodes.h:2092
@ SMSG_AUCTIONABLE_TOKEN_SELL_CONFIRM_REQUIRED
Definition: Opcodes.h:1018
@ SMSG_OPEN_CONTAINER
Definition: Opcodes.h:1742
@ SMSG_CLUB_FINDER_RESPONSE_CHARACTER_APPLICATION_LIST
Definition: Opcodes.h:1197
@ SMSG_QUERY_REALM_GUILD_MASTER_INFO_RESPONSE
Definition: Opcodes.h:1863
@ SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT
Definition: Opcodes.h:1093
@ SMSG_BATTLE_PET_TRAP_LEVEL
Definition: Opcodes.h:1090
@ SMSG_MOVE_SPLINE_SET_RUN_MODE
Definition: Opcodes.h:1683
@ SMSG_MOVE_DISABLE_GRAVITY
Definition: Opcodes.h:1618
@ SMSG_AURA_POINTS_DEPLETED
Definition: Opcodes.h:1033
@ SMSG_UPDATE_CAPTURE_POINT
Definition: Opcodes.h:2107
@ SMSG_VOID_STORAGE_CONTENTS
Definition: Opcodes.h:2138
@ SMSG_RESET_QUEST_POI
Definition: Opcodes.h:1927
@ SMSG_BATTLEFIELD_STATUS_ACTIVE
Definition: Opcodes.h:1045
@ SMSG_WOW_LABS_AREA_INFO
Definition: Opcodes.h:2160
@ SMSG_AUCTION_LIST_ITEMS_RESULT
Definition: Opcodes.h:1027
@ SMSG_BATTLENET_RESPONSE
Definition: Opcodes.h:1061
@ SMSG_SPELL_CHANNEL_START
Definition: Opcodes.h:2022
@ SMSG_ATTACK_SWING_LANDED_LOG
Definition: Opcodes.h:1015
@ SMSG_GUILD_EVENT_TAB_TEXT_CHANGED
Definition: Opcodes.h:1461
@ SMSG_GUILD_EVENT_TAB_DELETED
Definition: Opcodes.h:1459
@ SMSG_MOVE_SPLINE_SET_SWIM_BACK_SPEED
Definition: Opcodes.h:1685
@ SMSG_AREA_SPIRIT_HEALER_TIME
Definition: Opcodes.h:995
@ SMSG_INSTANCE_ENCOUNTER_TIMER_START
Definition: Opcodes.h:1506
@ SMSG_MOVE_SPLINE_DISABLE_COLLISION
Definition: Opcodes.h:1669
@ SMSG_GUILD_KNOWN_RECIPES
Definition: Opcodes.h:1468
@ SMSG_SHIPMENT_FACTION_UPDATE_RESULT
Definition: Opcodes.h:2006
@ SMSG_GARRISON_BUILDING_ACTIVATED
Definition: Opcodes.h:1340
@ SMSG_PLAY_SPELL_VISUAL
Definition: Opcodes.h:1828
@ SMSG_GARRISON_RESEARCH_TALENT_RESULT
Definition: Opcodes.h:1385
@ SMSG_PLAYER_BONUS_ROLL_FAILED
Definition: Opcodes.h:1803
@ SMSG_LFG_JOIN_LOBBY_MATCHMAKER_QUEUE
Definition: Opcodes.h:1544
@ SMSG_MULTI_FLOOR_LEAVE_FLOOR
Definition: Opcodes.h:1723
@ SMSG_MOVE_SET_VEHICLE_REC_ID
Definition: Opcodes.h:1665
@ SMSG_QUEST_UPDATE_ADD_CREDIT
Definition: Opcodes.h:1887
@ SMSG_QUERY_GUILD_INFO_RESPONSE
Definition: Opcodes.h:1854
@ SMSG_CRAFTING_ORDER_REJECT_RESULT
Definition: Opcodes.h:1240
@ SMSG_CHANNEL_LIST
Definition: Opcodes.h:1149
@ SMSG_MOVE_ENABLE_TRANSITION_BETWEEN_SWIM_AND_FLY
Definition: Opcodes.h:1626
@ SMSG_ADD_LOSS_OF_CONTROL
Definition: Opcodes.h:980
@ SMSG_CHAT_NOT_IN_PARTY
Definition: Opcodes.h:1172
@ SMSG_CRAFTING_ORDER_UPDATE_STATE
Definition: Opcodes.h:1242
@ SMSG_MOVE_UNROOT
Definition: Opcodes.h:1697
@ SMSG_REMOVE_ITEM_PASSIVE
Definition: Opcodes.h:1917
@ SMSG_ENCHANTMENT_LOG
Definition: Opcodes.h:1288
@ SMSG_RESTRICTED_ACCOUNT_WARNING
Definition: Opcodes.h:1935
@ SMSG_CHALLENGE_MODE_COMPLETE
Definition: Opcodes.h:1142
@ SMSG_TOTEM_DURATION_CHANGED
Definition: Opcodes.h:2082
@ SMSG_MOVE_SPLINE_UNROOT
Definition: Opcodes.h:1693
@ SMSG_AREA_TRIGGER_RE_PATH
Definition: Opcodes.h:1000
@ SMSG_GUILD_EVENT_PRESENCE_CHANGE
Definition: Opcodes.h:1454
@ SMSG_LFG_LIST_APPLICATION_STATUS_UPDATE
Definition: Opcodes.h:1547
@ SMSG_MOVE_SET_RUN_BACK_SPEED
Definition: Opcodes.h:1660
@ SMSG_DEFENSE_MESSAGE
Definition: Opcodes.h:1258
@ SMSG_GARRISON_MAP_DATA_RESPONSE
Definition: Opcodes.h:1368
@ SMSG_VAS_GET_SERVICE_STATUS_RESPONSE
Definition: Opcodes.h:2129
@ SMSG_RESPEC_WIPE_CONFIRM
Definition: Opcodes.h:1930
@ SMSG_GM_TICKET_SYSTEM_STATUS
Definition: Opcodes.h:1418
@ SMSG_INSTANCE_ENCOUNTER_UPDATE_ALLOW_RELEASE_IN_PROGRESS
Definition: Opcodes.h:1507
@ SMSG_BATTLENET_CHALLENGE_ABORT
Definition: Opcodes.h:1058
@ SMSG_RAID_DIFFICULTY_SET
Definition: Opcodes.h:1897
@ SMSG_CALENDAR_CLEAR_PENDING_ACTION
Definition: Opcodes.h:1107
@ SMSG_WOW_LABS_PARTY_ERROR
Definition: Opcodes.h:2163
@ SMSG_CALENDAR_COMMAND_RESULT
Definition: Opcodes.h:1108
@ SMSG_CURRENCY_TRANSFER_LOG
Definition: Opcodes.h:1250
@ SMSG_RESPONSE_PERK_PENDING_REWARDS
Definition: Opcodes.h:1932
@ SMSG_MOVE_REMOVE_INERTIA
Definition: Opcodes.h:1628
@ SMSG_MOVE_SPLINE_SET_HOVER
Definition: Opcodes.h:1678
@ SMSG_PET_TAME_FAILURE
Definition: Opcodes.h:1796
@ SMSG_PET_ACTION_FEEDBACK
Definition: Opcodes.h:1768
@ SMSG_SPELL_FAILURE
Definition: Opcodes.h:2034
@ SMSG_SET_FACTION_STANDING
Definition: Opcodes.h:1987
@ SMSG_PET_SPELLS_MESSAGE
Definition: Opcodes.h:1794
@ SMSG_PET_BATTLE_INITIAL_UPDATE
Definition: Opcodes.h:1776
@ SMSG_RAID_INSTANCE_MESSAGE
Definition: Opcodes.h:1899
@ SMSG_GARRISON_PLOT_REMOVED
Definition: Opcodes.h:1376
@ SMSG_COOLDOWN_EVENT
Definition: Opcodes.h:1225
@ SMSG_QUERY_GAME_OBJECT_RESPONSE
Definition: Opcodes.h:1851
@ SMSG_DUEL_OUT_OF_BOUNDS
Definition: Opcodes.h:1282
@ SMSG_CRAFTING_ORDER_FULFILL_RESULT
Definition: Opcodes.h:1237
@ SMSG_GARRISON_FOLLOWER_CHANGED_ITEM_LEVEL
Definition: Opcodes.h:1356
@ SMSG_QUEST_GIVER_INVALID_QUEST
Definition: Opcodes.h:1868
@ SMSG_GARRISON_USE_RECALL_PORTAL_RESULT
Definition: Opcodes.h:1401
@ SMSG_SCENARIO_SHOW_CRITERIA
Definition: Opcodes.h:1953
@ SMSG_UPDATE_GAME_TIME_STATE
Definition: Opcodes.h:2115
@ SMSG_CLEAR_BOSS_EMOTES
Definition: Opcodes.h:1186
@ SMSG_PLAYER_CHOICE_DISPLAY_ERROR
Definition: Opcodes.h:1806
@ SMSG_ACCOUNT_HEIRLOOM_UPDATE
Definition: Opcodes.h:2173
@ SMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH
Definition: Opcodes.h:1779
@ SMSG_ACCOUNT_MOUNT_REMOVED
Definition: Opcodes.h:960
@ SMSG_CACHE_INFO
Definition: Opcodes.h:1105
@ SMSG_BATTLE_PET_REVOKED
Definition: Opcodes.h:1089
@ SMSG_REGIONWIDE_CHARACTER_RESTRICTIONS_DATA
Definition: Opcodes.h:1916
@ SMSG_SPELL_INTERRUPT_LOG
Definition: Opcodes.h:2040
@ SMSG_RETURN_APPLICANT_LIST
Definition: Opcodes.h:1943
@ SMSG_TRAIT_CONFIG_COMMIT_FAILED
Definition: Opcodes.h:2089
@ SMSG_USERLIST_REMOVE
Definition: Opcodes.h:2124
@ SMSG_BATTLENET_CHALLENGE_START
Definition: Opcodes.h:1059
@ SMSG_GUILD_PARTY_STATE
Definition: Opcodes.h:1478
@ SMSG_GET_TROPHY_LIST_RESPONSE
Definition: Opcodes.h:1412
@ SMSG_GARRISON_CHANGE_MISSION_START_TIME_RESULT
Definition: Opcodes.h:1343
@ SMSG_ITEM_CHANGED
Definition: Opcodes.h:1524
@ SMSG_SPELL_EMPOWER_START
Definition: Opcodes.h:2029
@ SMSG_LFG_LIST_UPDATE_EXPIRATION
Definition: Opcodes.h:1554
@ SMSG_SCENE_OBJECT_PET_BATTLE_ROUND_RESULT
Definition: Opcodes.h:1963
@ SMSG_COMPLETE_SHIPMENT_RESPONSE
Definition: Opcodes.h:1211
@ SMSG_MOVE_SPLINE_SET_WATER_WALK
Definition: Opcodes.h:1690
@ SMSG_TITLE_LOST
Definition: Opcodes.h:2080
@ SMSG_SPELL_FAILURE_MESSAGE
Definition: Opcodes.h:2035
@ SMSG_CHARACTER_CHECK_UPGRADE_RESULT
Definition: Opcodes.h:1154
@ SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION
Definition: Opcodes.h:1500
@ SMSG_GOSSIP_MESSAGE
Definition: Opcodes.h:1421
@ SMSG_LFG_UPDATE_STATUS
Definition: Opcodes.h:1567
@ SMSG_LEVEL_LINKING_RESULT
Definition: Opcodes.h:1538
@ SMSG_ROLE_CHOSEN
Definition: Opcodes.h:1946
@ SMSG_TIME_SYNC_REQUEST
Definition: Opcodes.h:2078
@ SMSG_SET_PROFICIENCY
Definition: Opcodes.h:1999
@ SMSG_CLUB_FINDER_WHISPER_APPLICANT_RESPONSE
Definition: Opcodes.h:1200
@ SMSG_DELETE_EXPIRED_MISSIONS_RESULT
Definition: Opcodes.h:1260
@ SMSG_LFG_LIST_JOIN_RESULT
Definition: Opcodes.h:1549
@ SMSG_BATTLE_PAY_START_CHECKOUT
Definition: Opcodes.h:1077
@ SMSG_MOVE_UPDATE_REMOVE_MOVEMENT_FORCE
Definition: Opcodes.h:1715
@ SMSG_BATTLENET_NOTIFICATION
Definition: Opcodes.h:1060
@ SMSG_GARRISON_RENAME_FOLLOWER_RESULT
Definition: Opcodes.h:1383
@ SMSG_CHAIN_MISSILE_BOUNCE
Definition: Opcodes.h:1141
@ SMSG_QUEST_GIVER_QUEST_COMPLETE
Definition: Opcodes.h:1870
@ SMSG_DELVES_ACCOUNT_DATA_ELEMENT_CHANGED
Definition: Opcodes.h:1261
@ SMSG_MOVE_UPDATE_TELEPORT
Definition: Opcodes.h:1720
@ SMSG_CHAT_DOWN
Definition: Opcodes.h:1168
@ SMSG_DISPLAY_PROMOTION
Definition: Opcodes.h:1270
@ SMSG_INSTANCE_ENCOUNTER_START
Definition: Opcodes.h:1505
@ SMSG_LOBBY_MATCHMAKER_PARTY_INFO
Definition: Opcodes.h:1575
@ SMSG_BATTLE_PET_CAGE_DATE_ERROR
Definition: Opcodes.h:1082
@ SMSG_COVENANT_PREVIEW_OPEN_NPC
Definition: Opcodes.h:1230
@ SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT
Definition: Opcodes.h:1326
@ SMSG_REPORT_PVP_PLAYER_AFK_RESULT
Definition: Opcodes.h:1920
@ SMSG_GUILD_EVENT_BANK_MONEY_CHANGED
Definition: Opcodes.h:1447
@ SMSG_CALENDAR_INVITE_REMOVED
Definition: Opcodes.h:1116
@ SMSG_SUSPEND_COMMS
Definition: Opcodes.h:2067
@ SMSG_MISSILE_CANCEL
Definition: Opcodes.h:1608
@ SMSG_QUEST_COMPLETION_NPC_RESPONSE
Definition: Opcodes.h:1865
@ SMSG_MOVE_UPDATE_ADD_IMPULSE
Definition: Opcodes.h:1705
@ SMSG_SUSPEND_TOKEN
Definition: Opcodes.h:2068
@ SMSG_INITIALIZE_FACTIONS
Definition: Opcodes.h:1491
@ SMSG_ITEM_PUSH_RESULT
Definition: Opcodes.h:1530
@ SMSG_MOVE_KNOCK_BACK
Definition: Opcodes.h:1627
@ SMSG_MOVE_UPDATE_APPLY_MOVEMENT_FORCE
Definition: Opcodes.h:1707
@ SMSG_GUILD_ACHIEVEMENT_EARNED
Definition: Opcodes.h:1434
@ SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE
Definition: Opcodes.h:984
@ SMSG_RAF_DEBUG_FRIEND_MONTHS
Definition: Opcodes.h:1896
@ SMSG_RECEIVE_PING_WORLD_POINT
Definition: Opcodes.h:1911
@ SMSG_INVENTORY_FULL_OVERFLOW
Definition: Opcodes.h:1520
@ SMSG_UI_MAP_QUEST_LINES_RESPONSE
Definition: Opcodes.h:2098
@ SMSG_GUILD_INVITE_EXPIRED
Definition: Opcodes.h:1466
@ SMSG_GUILD_EVENT_TAB_MODIFIED
Definition: Opcodes.h:1460
@ SMSG_PLAY_SPELL_VISUAL_KIT
Definition: Opcodes.h:1829
@ SMSG_INVALID_PROMOTION_CODE
Definition: Opcodes.h:1517
@ SMSG_PET_BATTLE_REPLACEMENTS_MADE
Definition: Opcodes.h:1781
@ SMSG_ACCOUNT_CRITERIA_UPDATE
Definition: Opcodes.h:957
@ SMSG_MOVE_SPLINE_SET_NORMAL_FALL
Definition: Opcodes.h:1680
@ SMSG_TRIGGER_CINEMATIC
Definition: Opcodes.h:2093
@ SMSG_PET_CLEAR_SPELLS
Definition: Opcodes.h:1786
@ SMSG_GARRISON_DELETE_RESULT
Definition: Opcodes.h:1353
@ SMSG_GAME_OBJECT_INTERACTION
Definition: Opcodes.h:1324
@ SMSG_ENCOUNTER_START
Definition: Opcodes.h:1290
@ SMSG_MOVE_ENABLE_INERTIA
Definition: Opcodes.h:1625
@ SMSG_PLAYER_ACKOWLEDGE_ARROW_CALLOUT
Definition: Opcodes.h:1800
@ SMSG_BATTLE_NET_CONNECTION_STATUS
Definition: Opcodes.h:1062
@ SMSG_INSPECT_RESULT
Definition: Opcodes.h:1494
@ SMSG_LFG_LIST_APPLY_TO_GROUP_RESULT
Definition: Opcodes.h:1548
@ SMSG_BUY_FAILED
Definition: Opcodes.h:1103
@ SMSG_BATTLEFIELD_PORT_DENIED
Definition: Opcodes.h:1044
@ SMSG_SET_CHR_UPGRADE_TIER
Definition: Opcodes.h:1981
@ SMSG_MOVE_SET_ADV_FLYING_PITCHING_RATE_DOWN
Definition: Opcodes.h:1641
@ SMSG_AURA_UPDATE
Definition: Opcodes.h:1034
@ SMSG_AUCTION_REPLICATE_RESPONSE
Definition: Opcodes.h:1031
@ SMSG_QUERY_QUEST_INFO_RESPONSE
Definition: Opcodes.h:1862
@ SMSG_ARENA_TEAM_STATS
Definition: Opcodes.h:2178
@ SMSG_GUILD_HARDCORE_MEMBER_DEATH
Definition: Opcodes.h:1463
@ SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE
Definition: Opcodes.h:1406
@ SMSG_SET_DUNGEON_DIFFICULTY
Definition: Opcodes.h:1984
@ SMSG_OPEN_SHIPMENT_NPC_RESULT
Definition: Opcodes.h:1744
@ SMSG_GARRISON_REMOVE_EVENT
Definition: Opcodes.h:1379
@ SMSG_PET_BATTLE_FINALIZE_LOCATION
Definition: Opcodes.h:1772
@ SMSG_BACKPACK_DEFAULT_SIZE_CHANGED
Definition: Opcodes.h:1039
@ SMSG_BATTLE_PAY_VALIDATE_PURCHASE_RESPONSE
Definition: Opcodes.h:1080
@ SMSG_GARRISON_UPDATE_MISSION_CHEAT_RESULT
Definition: Opcodes.h:1399
@ SMSG_TIME_ADJUSTMENT
Definition: Opcodes.h:2077
@ SMSG_UNLEARNED_SPELLS
Definition: Opcodes.h:2101
@ SMSG_QUERY_BATTLE_PET_NAME_RESPONSE
Definition: Opcodes.h:1849
@ SMSG_BAG_CLEANUP_FINISHED
Definition: Opcodes.h:1040
@ SMSG_CLUB_FINDER_ERROR_MESSAGE
Definition: Opcodes.h:1194
@ SMSG_SOCKET_GEMS_SUCCESS
Definition: Opcodes.h:2015
@ SMSG_GARRISON_BUILDING_SET_ACTIVE_SPECIALIZATION_RESULT
Definition: Opcodes.h:1342
@ SMSG_TRAINER_BUY_FAILED
Definition: Opcodes.h:2087
@ SMSG_WHO
Definition: Opcodes.h:2154
@ SMSG_MOVE_UPDATE_APPLY_INERTIA
Definition: Opcodes.h:1706
@ SMSG_QUERY_PAGE_TEXT_RESPONSE
Definition: Opcodes.h:1857