Files
WoWee/include/game/opcode_table.hpp
Kelsi 32ca09ab30 Opcode tables: sync Classic/WotLK to canonical headers and expand logical mapping coverage
Classic: synchronized Data/expansions/classic/opcodes.json to /home/k/Desktop/classicopcodes.h with exact symbol/value parity (0 missing, 0 mismatches).

WotLK: synchronized Data/expansions/wotlk/opcodes.json to /home/k/Desktop/azerothcoreOpcodes.h and aligned symbol names to AzerothCore naming.

Logical opcode layer: expanded include/game/opcode_table.hpp and src/game/opcode_table.cpp to include missing canonical opcode symbols required by synced tables, and removed legacy alias fallback block so canonical names are used directly.

Gameplay/handler updates included from ongoing fixes: duel/taxi stale opcode cleanup, level-up/sound handling adjustments, and related parser/packet references updated to match canonical opcode identifiers.

Validated by successful full build: cmake --build build -j32.
2026-02-20 02:50:59 -08:00

1527 lines
42 KiB
C++

#pragma once
#include <cstdint>
#include <string>
#include <unordered_map>
#include <optional>
namespace wowee {
namespace game {
/**
* Logical opcode identifiers (expansion-agnostic).
*
* These are compile-time enum values used in switch statements.
* The actual wire values depend on the active expansion and are
* loaded from JSON at runtime via OpcodeTable.
*/
enum class LogicalOpcode : uint16_t {
// ---- Client to Server (Core) ----
CMSG_PING,
CMSG_AUTH_SESSION,
CMSG_CHAR_CREATE,
CMSG_CHAR_ENUM,
CMSG_CHAR_DELETE,
CMSG_PLAYER_LOGIN,
// ---- Movement ----
MSG_MOVE_START_FORWARD,
MSG_MOVE_START_BACKWARD,
MSG_MOVE_STOP,
MSG_MOVE_START_STRAFE_LEFT,
MSG_MOVE_START_STRAFE_RIGHT,
MSG_MOVE_STOP_STRAFE,
MSG_MOVE_JUMP,
MSG_MOVE_START_TURN_LEFT,
MSG_MOVE_START_TURN_RIGHT,
MSG_MOVE_STOP_TURN,
MSG_MOVE_SET_FACING,
MSG_MOVE_FALL_LAND,
MSG_MOVE_START_SWIM,
MSG_MOVE_STOP_SWIM,
MSG_MOVE_HEARTBEAT,
// ---- Server to Client (Core) ----
SMSG_AUTH_CHALLENGE,
SMSG_AUTH_RESPONSE,
SMSG_CHAR_CREATE,
SMSG_CHAR_ENUM,
SMSG_CHAR_DELETE,
SMSG_CHARACTER_LOGIN_FAILED,
SMSG_PONG,
SMSG_LOGIN_VERIFY_WORLD,
SMSG_INIT_WORLD_STATES,
SMSG_LOGIN_SETTIMESPEED,
SMSG_TUTORIAL_FLAGS,
SMSG_INITIALIZE_FACTIONS,
SMSG_WARDEN_DATA,
CMSG_WARDEN_DATA,
SMSG_ACCOUNT_DATA_TIMES,
SMSG_CLIENTCACHE_VERSION,
SMSG_FEATURE_SYSTEM_STATUS,
SMSG_MOTD,
SMSG_NOTIFICATION,
// ---- Entity/Object updates ----
SMSG_UPDATE_OBJECT,
SMSG_COMPRESSED_UPDATE_OBJECT,
SMSG_MONSTER_MOVE_TRANSPORT,
SMSG_SPLINE_MOVE_SET_WALK_MODE,
SMSG_SPLINE_MOVE_SET_RUN_MODE,
SMSG_SPLINE_SET_RUN_SPEED,
SMSG_SPLINE_SET_RUN_BACK_SPEED,
SMSG_SPLINE_SET_SWIM_SPEED,
SMSG_DESTROY_OBJECT,
// ---- Chat ----
CMSG_MESSAGECHAT,
SMSG_MESSAGECHAT,
// ---- Server Info Commands ----
CMSG_WHO,
SMSG_WHO,
CMSG_PLAYED_TIME,
SMSG_PLAYED_TIME,
CMSG_QUERY_TIME,
SMSG_QUERY_TIME_RESPONSE,
// ---- Social Commands ----
SMSG_FRIEND_STATUS,
SMSG_CONTACT_LIST,
CMSG_ADD_FRIEND,
CMSG_DEL_FRIEND,
CMSG_SET_CONTACT_NOTES,
CMSG_ADD_IGNORE,
CMSG_DEL_IGNORE,
// ---- Logout Commands ----
CMSG_PLAYER_LOGOUT,
CMSG_LOGOUT_REQUEST,
CMSG_LOGOUT_CANCEL,
SMSG_LOGOUT_RESPONSE,
SMSG_LOGOUT_COMPLETE,
// ---- Stand State ----
CMSG_STANDSTATECHANGE,
// ---- Display Toggles ----
CMSG_SHOWING_HELM,
CMSG_SHOWING_CLOAK,
// ---- PvP ----
CMSG_TOGGLE_PVP,
// ---- Guild ----
CMSG_GUILD_INVITE,
CMSG_GUILD_ACCEPT,
CMSG_GUILD_DECLINE,
CMSG_GUILD_INFO,
CMSG_GUILD_ROSTER,
CMSG_GUILD_PROMOTE,
CMSG_GUILD_DEMOTE,
CMSG_GUILD_LEAVE,
CMSG_GUILD_MOTD,
SMSG_GUILD_INFO,
SMSG_GUILD_ROSTER,
CMSG_GUILD_QUERY,
SMSG_GUILD_QUERY_RESPONSE,
SMSG_GUILD_INVITE,
CMSG_GUILD_REMOVE,
CMSG_GUILD_DISBAND,
CMSG_GUILD_LEADER,
CMSG_GUILD_SET_PUBLIC_NOTE,
CMSG_GUILD_SET_OFFICER_NOTE,
SMSG_GUILD_EVENT,
SMSG_GUILD_COMMAND_RESULT,
// ---- Ready Check ----
MSG_RAID_READY_CHECK,
MSG_RAID_READY_CHECK_CONFIRM,
// ---- Items ----
SMSG_ITEM_PUSH_RESULT,
// ---- Duel ----
CMSG_DUEL_ACCEPTED,
CMSG_DUEL_CANCELLED,
SMSG_DUEL_REQUESTED,
// ---- Trade ----
CMSG_INITIATE_TRADE,
// ---- Random Roll ----
MSG_RANDOM_ROLL,
// ---- Phase 1: Foundation (Targeting, Queries) ----
CMSG_SET_SELECTION,
CMSG_NAME_QUERY,
SMSG_NAME_QUERY_RESPONSE,
CMSG_CREATURE_QUERY,
SMSG_CREATURE_QUERY_RESPONSE,
CMSG_GAMEOBJECT_QUERY,
SMSG_GAMEOBJECT_QUERY_RESPONSE,
CMSG_SET_ACTIVE_MOVER,
CMSG_BINDER_ACTIVATE,
// ---- XP ----
SMSG_LOG_XPGAIN,
// ---- Creature Movement ----
SMSG_MONSTER_MOVE,
SMSG_COMPRESSED_MOVES, // Vanilla/Classic batch movement packet (0x6B)
// ---- Phase 2: Combat Core ----
CMSG_ATTACKSWING,
CMSG_ATTACKSTOP,
SMSG_ATTACKSTART,
SMSG_ATTACKSTOP,
SMSG_ATTACKERSTATEUPDATE,
SMSG_AI_REACTION,
SMSG_SPELLNONMELEEDAMAGELOG,
SMSG_PLAY_SPELL_VISUAL,
SMSG_SPELLHEALLOG,
SMSG_SPELLENERGIZELOG,
SMSG_PERIODICAURALOG,
SMSG_ENVIRONMENTAL_DAMAGE_LOG,
// ---- Phase 3: Spells, Action Bar, Auras ----
CMSG_CAST_SPELL,
CMSG_CANCEL_CAST,
CMSG_CANCEL_AURA,
SMSG_CAST_FAILED,
SMSG_SPELL_START,
SMSG_SPELL_GO,
SMSG_SPELL_FAILURE,
SMSG_SPELL_COOLDOWN,
SMSG_COOLDOWN_EVENT,
SMSG_EQUIPMENT_SET_SAVED,
SMSG_INITIAL_SPELLS,
SMSG_LEARNED_SPELL,
SMSG_SUPERCEDED_SPELL,
SMSG_REMOVED_SPELL,
SMSG_SEND_UNLEARN_SPELLS,
SMSG_SPELL_DELAYED,
SMSG_CANCEL_AUTO_REPEAT,
SMSG_AURA_UPDATE,
SMSG_AURA_UPDATE_ALL,
SMSG_INIT_EXTRA_AURA_INFO_OBSOLETE,
SMSG_SET_EXTRA_AURA_INFO_OBSOLETE,
SMSG_SET_FLAT_SPELL_MODIFIER,
SMSG_SET_PCT_SPELL_MODIFIER,
// ---- Talents ----
SMSG_TALENTS_INFO,
CMSG_LEARN_TALENT,
MSG_TALENT_WIPE_CONFIRM,
// ---- Phase 4: Group/Party ----
CMSG_GROUP_INVITE,
SMSG_GROUP_INVITE,
CMSG_GROUP_ACCEPT,
CMSG_GROUP_DECLINE,
SMSG_GROUP_DECLINE,
CMSG_GROUP_UNINVITE_GUID,
SMSG_GROUP_UNINVITE,
CMSG_GROUP_SET_LEADER,
SMSG_GROUP_SET_LEADER,
CMSG_GROUP_DISBAND,
SMSG_GROUP_LIST,
SMSG_PARTY_COMMAND_RESULT,
SMSG_PARTYKILLLOG,
MSG_RAID_TARGET_UPDATE,
CMSG_REQUEST_RAID_INFO,
SMSG_RAID_INSTANCE_INFO,
// ---- Phase 5: Loot ----
CMSG_AUTOSTORE_LOOT_ITEM,
CMSG_LOOT,
CMSG_LOOT_MONEY,
CMSG_LOOT_RELEASE,
SMSG_LOOT_RESPONSE,
SMSG_LOOT_RELEASE_RESPONSE,
SMSG_LOOT_REMOVED,
SMSG_LOOT_MONEY_NOTIFY,
SMSG_LOOT_CLEAR_MONEY,
// ---- Phase 5: Taxi / Flight Paths ----
CMSG_ACTIVATETAXI,
// ---- Phase 5: NPC Gossip ----
CMSG_GOSSIP_HELLO,
CMSG_GOSSIP_SELECT_OPTION,
SMSG_GOSSIP_MESSAGE,
SMSG_GOSSIP_COMPLETE,
SMSG_NPC_TEXT_UPDATE,
// ---- Phase 5: GameObject ----
CMSG_GAMEOBJ_USE,
// ---- Phase 5: Quests ----
CMSG_QUESTGIVER_STATUS_QUERY,
SMSG_QUESTGIVER_STATUS,
SMSG_QUESTGIVER_STATUS_MULTIPLE,
CMSG_QUESTGIVER_HELLO,
SMSG_QUESTGIVER_QUEST_LIST,
CMSG_QUESTGIVER_QUERY_QUEST,
SMSG_QUESTGIVER_QUEST_DETAILS,
CMSG_QUESTGIVER_ACCEPT_QUEST,
CMSG_QUESTGIVER_COMPLETE_QUEST,
SMSG_QUESTGIVER_REQUEST_ITEMS,
CMSG_QUESTGIVER_REQUEST_REWARD,
SMSG_QUESTGIVER_OFFER_REWARD,
CMSG_QUESTGIVER_CHOOSE_REWARD,
SMSG_QUESTGIVER_QUEST_INVALID,
SMSG_QUESTGIVER_QUEST_COMPLETE,
CMSG_QUESTLOG_REMOVE_QUEST,
SMSG_QUESTUPDATE_ADD_KILL,
SMSG_QUESTUPDATE_ADD_ITEM,
SMSG_QUESTUPDATE_COMPLETE,
SMSG_QUEST_FORCE_REMOVE,
CMSG_QUEST_QUERY,
SMSG_QUEST_QUERY_RESPONSE,
SMSG_QUESTLOG_FULL,
// ---- Phase 5: Vendor ----
CMSG_LIST_INVENTORY,
SMSG_LIST_INVENTORY,
CMSG_SELL_ITEM,
SMSG_SELL_ITEM,
CMSG_BUY_ITEM,
CMSG_BUYBACK_ITEM,
SMSG_BUY_FAILED,
// ---- Trainer ----
CMSG_TRAINER_LIST,
SMSG_TRAINER_LIST,
CMSG_TRAINER_BUY_SPELL,
SMSG_TRAINER_BUY_FAILED,
// ---- Phase 5: Item/Equip ----
CMSG_ITEM_QUERY_SINGLE,
SMSG_ITEM_QUERY_SINGLE_RESPONSE,
CMSG_USE_ITEM,
CMSG_AUTOEQUIP_ITEM,
CMSG_SWAP_ITEM,
CMSG_SWAP_INV_ITEM,
SMSG_INVENTORY_CHANGE_FAILURE,
CMSG_INSPECT,
SMSG_INSPECT_RESULTS_UPDATE,
SMSG_INSPECT_TALENT,
// ---- Death/Respawn ----
CMSG_REPOP_REQUEST,
SMSG_RESURRECT_REQUEST,
CMSG_RESURRECT_RESPONSE,
CMSG_SPIRIT_HEALER_ACTIVATE,
SMSG_SPIRIT_HEALER_CONFIRM,
SMSG_TIME_SYNC_REQ,
// ---- Teleport / Transfer ----
MSG_MOVE_TELEPORT_ACK,
SMSG_TRANSFER_PENDING,
SMSG_NEW_WORLD,
MSG_MOVE_WORLDPORT_ACK,
SMSG_TRANSFER_ABORTED,
// ---- Speed Changes ----
SMSG_FORCE_RUN_SPEED_CHANGE,
SMSG_CLIENT_CONTROL_UPDATE,
CMSG_FORCE_RUN_SPEED_CHANGE_ACK,
// ---- Mount ----
CMSG_CANCEL_MOUNT_AURA,
// ---- Taxi / Flight Paths ----
SMSG_SHOWTAXINODES,
SMSG_ACTIVATETAXIREPLY,
SMSG_STANDSTATE_UPDATE,
SMSG_NEW_TAXI_PATH,
CMSG_ACTIVATETAXIEXPRESS,
// ---- Battleground ----
SMSG_BATTLEFIELD_PORT_DENIED,
SMSG_REMOVED_FROM_PVP_QUEUE,
SMSG_TRAINER_BUY_SUCCEEDED,
SMSG_BINDPOINTUPDATE,
SMSG_SET_PROFICIENCY,
SMSG_ACTION_BUTTONS,
SMSG_LEVELUP_INFO,
SMSG_LEVELUP_INFO_ALT,
SMSG_PLAY_SOUND,
CMSG_TAXINODE_STATUS_QUERY,
SMSG_TAXINODE_STATUS,
CMSG_UPDATE_ACCOUNT_DATA,
CMSG_BATTLEFIELD_LIST,
SMSG_BATTLEFIELD_LIST,
CMSG_BATTLEFIELD_JOIN,
CMSG_BATTLEFIELD_STATUS,
SMSG_BATTLEFIELD_STATUS,
CMSG_BATTLEFIELD_PORT,
CMSG_BATTLEMASTER_HELLO,
MSG_PVP_LOG_DATA,
CMSG_LEAVE_BATTLEFIELD,
SMSG_GROUP_JOINED_BATTLEGROUND,
MSG_BATTLEGROUND_PLAYER_POSITIONS,
SMSG_BATTLEGROUND_PLAYER_JOINED,
SMSG_BATTLEGROUND_PLAYER_LEFT,
CMSG_BATTLEMASTER_JOIN,
SMSG_JOINED_BATTLEGROUND_QUEUE,
// ---- Arena Team ----
CMSG_ARENA_TEAM_CREATE,
SMSG_ARENA_TEAM_COMMAND_RESULT,
CMSG_ARENA_TEAM_QUERY,
SMSG_ARENA_TEAM_QUERY_RESPONSE,
CMSG_ARENA_TEAM_ROSTER,
SMSG_ARENA_TEAM_ROSTER,
CMSG_ARENA_TEAM_INVITE,
SMSG_ARENA_TEAM_INVITE,
CMSG_ARENA_TEAM_ACCEPT,
CMSG_ARENA_TEAM_DECLINE,
CMSG_ARENA_TEAM_LEAVE,
CMSG_ARENA_TEAM_REMOVE,
CMSG_ARENA_TEAM_DISBAND,
CMSG_ARENA_TEAM_LEADER,
SMSG_ARENA_TEAM_EVENT,
CMSG_BATTLEMASTER_JOIN_ARENA,
SMSG_ARENA_TEAM_STATS,
SMSG_ARENA_ERROR,
MSG_INSPECT_ARENA_TEAMS,
// ---- Weather ----
SMSG_WEATHER,
// ---- Emotes ----
CMSG_EMOTE,
SMSG_EMOTE,
CMSG_TEXT_EMOTE,
SMSG_TEXT_EMOTE,
// ---- Channels ----
CMSG_JOIN_CHANNEL,
CMSG_LEAVE_CHANNEL,
SMSG_CHANNEL_NOTIFY,
CMSG_CHANNEL_LIST,
SMSG_CHANNEL_LIST,
// ---- Mail ----
SMSG_SHOW_MAILBOX,
CMSG_GET_MAIL_LIST,
SMSG_MAIL_LIST_RESULT,
CMSG_SEND_MAIL,
SMSG_SEND_MAIL_RESULT,
CMSG_MAIL_TAKE_MONEY,
CMSG_MAIL_TAKE_ITEM,
CMSG_MAIL_DELETE,
CMSG_MAIL_MARK_AS_READ,
SMSG_RECEIVED_MAIL,
MSG_QUERY_NEXT_MAIL_TIME,
// ---- Bank ----
CMSG_BANKER_ACTIVATE,
SMSG_SHOW_BANK,
CMSG_BUY_BANK_SLOT,
SMSG_BUY_BANK_SLOT_RESULT,
CMSG_AUTOBANK_ITEM,
CMSG_AUTOSTORE_BANK_ITEM,
// ---- Guild Bank ----
CMSG_GUILD_BANKER_ACTIVATE,
CMSG_GUILD_BANK_QUERY_TAB,
SMSG_GUILD_BANK_LIST,
CMSG_GUILD_BANK_SWAP_ITEMS,
CMSG_GUILD_BANK_BUY_TAB,
CMSG_GUILD_BANK_UPDATE_TAB,
CMSG_GUILD_BANK_DEPOSIT_MONEY,
CMSG_GUILD_BANK_WITHDRAW_MONEY,
// ---- Auction House ----
MSG_AUCTION_HELLO,
CMSG_AUCTION_SELL_ITEM,
CMSG_AUCTION_REMOVE_ITEM,
CMSG_AUCTION_LIST_ITEMS,
CMSG_AUCTION_LIST_OWNER_ITEMS,
CMSG_AUCTION_PLACE_BID,
SMSG_AUCTION_COMMAND_RESULT,
SMSG_AUCTION_LIST_RESULT,
SMSG_AUCTION_OWNER_LIST_RESULT,
SMSG_AUCTION_BIDDER_LIST_RESULT,
SMSG_AUCTION_OWNER_NOTIFICATION,
SMSG_AUCTION_BIDDER_NOTIFICATION,
CMSG_AUCTION_LIST_BIDDER_ITEMS,
// ---- Expansion-Specific / Unknown (safe consume) ----
MSG_MOVE_TIME_SKIPPED,
CMSG_BOOTME,
CMSG_DBLOOKUP,
SMSG_DBLOOKUP,
CMSG_QUERY_OBJECT_POSITION,
SMSG_QUERY_OBJECT_POSITION,
CMSG_QUERY_OBJECT_ROTATION,
SMSG_QUERY_OBJECT_ROTATION,
CMSG_WORLD_TELEPORT,
CMSG_TELEPORT_TO_UNIT,
CMSG_ZONE_MAP,
SMSG_ZONE_MAP,
CMSG_DEBUG_CHANGECELLZONE,
CMSG_MOVE_CHARACTER_CHEAT,
SMSG_MOVE_CHARACTER_CHEAT,
CMSG_RECHARGE,
CMSG_LEARN_SPELL,
CMSG_CREATEMONSTER,
CMSG_DESTROYMONSTER,
CMSG_CREATEITEM,
CMSG_CREATEGAMEOBJECT,
SMSG_CHECK_FOR_BOTS,
CMSG_MAKEMONSTERATTACKGUID,
CMSG_BOT_DETECTED2,
CMSG_FORCEACTION,
CMSG_FORCEACTIONONOTHER,
CMSG_FORCEACTIONSHOW,
SMSG_FORCEACTIONSHOW,
CMSG_PETGODMODE,
SMSG_PETGODMODE,
SMSG_REFER_A_FRIEND_EXPIRED,
CMSG_WEATHER_SPEED_CHEAT,
CMSG_UNDRESSPLAYER,
CMSG_BEASTMASTER,
CMSG_GODMODE,
SMSG_GODMODE,
CMSG_CHEAT_SETMONEY,
CMSG_LEVEL_CHEAT,
CMSG_PET_LEVEL_CHEAT,
CMSG_SET_WORLDSTATE,
CMSG_COOLDOWN_CHEAT,
CMSG_USE_SKILL_CHEAT,
CMSG_FLAG_QUEST,
CMSG_FLAG_QUEST_FINISH,
CMSG_CLEAR_QUEST,
CMSG_SEND_EVENT,
CMSG_DEBUG_AISTATE,
SMSG_DEBUG_AISTATE,
CMSG_DISABLE_PVP_CHEAT,
CMSG_ADVANCE_SPAWN_TIME,
SMSG_DESTRUCTIBLE_BUILDING_DAMAGE,
CMSG_AUTH_SRP6_BEGIN,
CMSG_AUTH_SRP6_PROOF,
CMSG_AUTH_SRP6_RECODE,
SMSG_AUTH_SRP6_RESPONSE,
SMSG_GAMETIME_UPDATE,
CMSG_GAMETIME_SET,
SMSG_GAMETIME_SET,
CMSG_GAMESPEED_SET,
SMSG_GAMESPEED_SET,
CMSG_SERVERTIME,
SMSG_SERVERTIME,
SMSG_LOGOUT_CANCEL_ACK,
CMSG_PET_NAME_QUERY,
SMSG_PET_NAME_QUERY_RESPONSE,
CMSG_ITEM_QUERY_MULTIPLE,
SMSG_ITEM_QUERY_MULTIPLE_RESPONSE,
CMSG_PAGE_TEXT_QUERY,
SMSG_PAGE_TEXT_QUERY_RESPONSE,
CMSG_WHOIS,
SMSG_WHOIS,
CMSG_CONTACT_LIST,
CMSG_GROUP_CANCEL,
SMSG_GROUP_CANCEL,
CMSG_GROUP_UNINVITE,
CMSG_LOOT_METHOD,
SMSG_GROUP_DESTROYED,
SMSG_PARTY_MEMBER_STATS,
CMSG_GUILD_CREATE,
SMSG_GUILD_DECLINE,
CMSG_CHANNEL_PASSWORD,
CMSG_CHANNEL_SET_OWNER,
CMSG_CHANNEL_OWNER,
CMSG_CHANNEL_MODERATOR,
CMSG_CHANNEL_UNMODERATOR,
CMSG_CHANNEL_MUTE,
CMSG_CHANNEL_UNMUTE,
CMSG_CHANNEL_INVITE,
CMSG_CHANNEL_KICK,
CMSG_CHANNEL_BAN,
CMSG_CHANNEL_UNBAN,
CMSG_CHANNEL_ANNOUNCEMENTS,
CMSG_CHANNEL_MODERATE,
CMSG_OPEN_ITEM,
CMSG_READ_ITEM,
SMSG_READ_ITEM_OK,
SMSG_READ_ITEM_FAILED,
SMSG_ITEM_COOLDOWN,
CMSG_DESTROY_ITEMS,
SMSG_GAMEOBJECT_CUSTOM_ANIM,
CMSG_AREATRIGGER,
MSG_MOVE_START_PITCH_UP,
MSG_MOVE_START_PITCH_DOWN,
MSG_MOVE_STOP_PITCH,
MSG_MOVE_SET_RUN_MODE,
MSG_MOVE_SET_WALK_MODE,
MSG_MOVE_TOGGLE_LOGGING,
MSG_MOVE_TELEPORT,
MSG_MOVE_TELEPORT_CHEAT,
MSG_MOVE_TOGGLE_FALL_LOGGING,
MSG_MOVE_SET_RUN_SPEED_CHEAT,
MSG_MOVE_SET_RUN_SPEED,
MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT,
MSG_MOVE_SET_RUN_BACK_SPEED,
MSG_MOVE_SET_WALK_SPEED_CHEAT,
MSG_MOVE_SET_WALK_SPEED,
MSG_MOVE_SET_SWIM_SPEED_CHEAT,
MSG_MOVE_SET_SWIM_SPEED,
MSG_MOVE_SET_SWIM_BACK_SPEED_CHEAT,
MSG_MOVE_SET_SWIM_BACK_SPEED,
MSG_MOVE_SET_ALL_SPEED_CHEAT,
MSG_MOVE_SET_TURN_RATE_CHEAT,
MSG_MOVE_SET_TURN_RATE,
MSG_MOVE_TOGGLE_COLLISION_CHEAT,
MSG_MOVE_SET_PITCH,
SMSG_MOVE_WATER_WALK,
SMSG_MOVE_LAND_WALK,
CMSG_MOVE_CHARM_PORT_CHEAT,
CMSG_MOVE_SET_RAW_POSITION,
SMSG_FORCE_RUN_BACK_SPEED_CHANGE,
CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK,
SMSG_FORCE_SWIM_SPEED_CHANGE,
CMSG_FORCE_SWIM_SPEED_CHANGE_ACK,
SMSG_FORCE_MOVE_ROOT,
CMSG_FORCE_MOVE_ROOT_ACK,
SMSG_FORCE_MOVE_UNROOT,
CMSG_FORCE_MOVE_UNROOT_ACK,
MSG_MOVE_ROOT,
MSG_MOVE_UNROOT,
SMSG_MOVE_KNOCK_BACK,
CMSG_MOVE_KNOCK_BACK_ACK,
MSG_MOVE_KNOCK_BACK,
SMSG_MOVE_FEATHER_FALL,
SMSG_MOVE_NORMAL_FALL,
SMSG_MOVE_SET_HOVER,
SMSG_MOVE_UNSET_HOVER,
CMSG_MOVE_HOVER_ACK,
MSG_MOVE_HOVER,
CMSG_TRIGGER_CINEMATIC_CHEAT,
CMSG_OPENING_CINEMATIC,
SMSG_TRIGGER_CINEMATIC,
CMSG_NEXT_CINEMATIC_CAMERA,
CMSG_COMPLETE_CINEMATIC,
CMSG_TUTORIAL_FLAG,
CMSG_TUTORIAL_CLEAR,
CMSG_TUTORIAL_RESET,
CMSG_AUTOEQUIP_GROUND_ITEM,
CMSG_AUTOSTORE_GROUND_ITEM,
CMSG_STORE_LOOT_IN_SLOT,
CMSG_AUTOSTORE_BAG_ITEM,
CMSG_SPLIT_ITEM,
CMSG_AUTOEQUIP_ITEM_SLOT,
CMSG_UNCLAIM_LICENSE,
CMSG_DESTROYITEM,
SMSG_OPEN_CONTAINER,
CMSG_BEGIN_TRADE,
CMSG_BUSY_TRADE,
CMSG_IGNORE_TRADE,
CMSG_ACCEPT_TRADE,
CMSG_UNACCEPT_TRADE,
CMSG_CANCEL_TRADE,
CMSG_SET_TRADE_ITEM,
CMSG_CLEAR_TRADE_ITEM,
CMSG_SET_TRADE_GOLD,
SMSG_TRADE_STATUS,
SMSG_TRADE_STATUS_EXTENDED,
SMSG_SET_FACTION_VISIBLE,
SMSG_SET_FACTION_STANDING,
CMSG_SET_FACTION_ATWAR,
CMSG_SET_FACTION_CHEAT,
CMSG_SET_ACTION_BUTTON,
CMSG_NEW_SPELL_SLOT,
SMSG_PET_CAST_FAILED,
MSG_CHANNEL_START,
MSG_CHANNEL_UPDATE,
CMSG_CANCEL_CHANNELLING,
CMSG_DELETEEQUIPMENT_SET,
CMSG_INSTANCE_LOCK_RESPONSE,
CMSG_DEBUG_PASSIVE_AURA,
SMSG_ATTACKSWING_NOTINRANGE,
SMSG_ATTACKSWING_BADFACING,
SMSG_INSTANCE_LOCK_WARNING_QUERY,
SMSG_ATTACKSWING_DEADTARGET,
SMSG_ATTACKSWING_CANT_ATTACK,
CMSG_PERFORM_ACTION_SET,
SMSG_RESUME_CAST_BAR,
SMSG_CANCEL_COMBAT,
SMSG_SPELLBREAKLOG,
SMSG_BREAK_TARGET,
CMSG_SAVE_PLAYER,
CMSG_SETDEATHBINDPOINT,
CMSG_GETDEATHBINDZONE,
SMSG_BINDZONEREPLY,
SMSG_PLAYERBOUND,
SMSG_LOOT_ITEM_NOTIFY,
SMSG_DUEL_OUTOFBOUNDS,
SMSG_DUEL_INBOUNDS,
SMSG_DUEL_COMPLETE,
SMSG_DUEL_WINNER,
SMSG_MOUNTRESULT,
SMSG_DISMOUNTRESULT,
CMSG_MOUNTSPECIAL_ANIM,
SMSG_MOUNTSPECIAL_ANIM,
SMSG_PET_TAME_FAILURE,
CMSG_PET_SET_ACTION,
CMSG_PET_ACTION,
CMSG_PET_ABANDON,
CMSG_PET_RENAME,
SMSG_PET_NAME_INVALID,
SMSG_PET_SPELLS,
SMSG_PET_MODE,
CMSG_NPC_TEXT_QUERY,
SMSG_NPC_WONT_TALK,
CMSG_QUESTGIVER_QUEST_AUTOLAUNCH,
CMSG_QUESTGIVER_CANCEL,
SMSG_QUESTGIVER_QUEST_FAILED,
CMSG_QUESTLOG_SWAP_QUEST,
SMSG_QUESTUPDATE_FAILED,
SMSG_QUESTUPDATE_FAILEDTIMER,
CMSG_QUEST_CONFIRM_ACCEPT,
SMSG_QUEST_CONFIRM_ACCEPT,
CMSG_PUSHQUESTTOPARTY,
CMSG_BUY_ITEM_IN_SLOT,
SMSG_BUY_ITEM,
CMSG_TAXICLEARALLNODES,
CMSG_TAXIENABLEALLNODES,
CMSG_TAXISHOWNODES,
CMSG_TAXIQUERYAVAILABLENODES,
SMSG_PLAYERBINDERROR,
CMSG_PETITION_SHOWLIST,
SMSG_PETITION_SHOWLIST,
CMSG_PETITION_BUY,
CMSG_PETITION_SHOW_SIGNATURES,
SMSG_PETITION_SHOW_SIGNATURES,
CMSG_PETITION_SIGN,
SMSG_PETITION_SIGN_RESULTS,
MSG_PETITION_DECLINE,
CMSG_OFFER_PETITION,
CMSG_TURN_IN_PETITION,
SMSG_TURN_IN_PETITION_RESULTS,
CMSG_PETITION_QUERY,
SMSG_PETITION_QUERY_RESPONSE,
SMSG_FISH_NOT_HOOKED,
SMSG_FISH_ESCAPED,
CMSG_BUG,
SMSG_AURACASTLOG,
CMSG_RECLAIM_CORPSE,
CMSG_WRAP_ITEM,
MSG_MINIMAP_PING,
SMSG_RESISTLOG,
SMSG_ENCHANTMENTLOG,
CMSG_SET_SKILL_CHEAT,
SMSG_START_MIRROR_TIMER,
SMSG_PAUSE_MIRROR_TIMER,
SMSG_STOP_MIRROR_TIMER,
SMSG_CLEAR_COOLDOWN,
SMSG_GAMEOBJECT_PAGETEXT,
CMSG_SET_SHEATHED,
SMSG_COOLDOWN_CHEAT,
CMSG_QUEST_POI_QUERY,
SMSG_QUEST_POI_QUERY_RESPONSE,
CMSG_GHOST,
CMSG_GM_INVIS,
SMSG_INVALID_PROMOTION_CODE,
MSG_GM_BIND_OTHER,
MSG_GM_SUMMON,
SMSG_ITEM_TIME_UPDATE,
SMSG_ITEM_ENCHANT_TIME_UPDATE,
MSG_GM_SHOWLABEL,
CMSG_PET_CAST_SPELL,
MSG_SAVE_GUILD_EMBLEM,
MSG_TABARDVENDOR_ACTIVATE,
CMSG_ZONEUPDATE,
SMSG_PLAY_SPELL_IMPACT,
SMSG_EXPLORATION_EXPERIENCE,
CMSG_GM_SET_SECURITY_GROUP,
CMSG_GM_NUKE,
CMSG_CHANGEPLAYER_DIFFICULTY,
SMSG_RWHOIS,
SMSG_LFG_PLAYER_REWARD,
SMSG_LFG_TELEPORT_DENIED,
CMSG_UNLEARN_SPELL,
CMSG_UNLEARN_SKILL,
CMSG_DECHARGE,
CMSG_GMTICKET_CREATE,
SMSG_GMTICKET_CREATE,
CMSG_GMTICKET_UPDATETEXT,
SMSG_GMTICKET_UPDATETEXT,
CMSG_REQUEST_ACCOUNT_DATA,
SMSG_UPDATE_ACCOUNT_DATA,
SMSG_CLEAR_FAR_SIGHT_IMMEDIATE,
SMSG_CHANGEPLAYER_DIFFICULTY_RESULT,
CMSG_GM_TEACH,
CMSG_GM_CREATE_ITEM_TARGET,
CMSG_GMTICKET_GETTICKET,
SMSG_GMTICKET_GETTICKET,
CMSG_UNLEARN_TALENTS,
SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT,
SMSG_GAMEOBJECT_DESPAWN_ANIM,
MSG_CORPSE_QUERY,
CMSG_GMTICKET_DELETETICKET,
SMSG_GMTICKET_DELETETICKET,
SMSG_CHAT_WRONG_FACTION,
CMSG_GMTICKET_SYSTEMSTATUS,
SMSG_GMTICKET_SYSTEMSTATUS,
CMSG_SET_STAT_CHEAT,
CMSG_SKILL_BUY_STEP,
CMSG_SKILL_BUY_RANK,
CMSG_XP_CHEAT,
CMSG_CHARACTER_POINT_CHEAT,
SMSG_GOSSIP_POI,
CMSG_CHAT_IGNORED,
CMSG_GM_VISION,
CMSG_SERVER_COMMAND,
CMSG_GM_SILENCE,
CMSG_GM_REVEALTO,
CMSG_GM_RESURRECT,
CMSG_GM_SUMMONMOB,
CMSG_GM_MOVECORPSE,
CMSG_GM_FREEZE,
CMSG_GM_UBERINVIS,
CMSG_GM_REQUEST_PLAYER_INFO,
SMSG_GM_PLAYER_INFO,
CMSG_GUILD_RANK,
CMSG_GUILD_ADD_RANK,
CMSG_GUILD_DEL_RANK,
CMSG_CLEAR_EXPLORATION,
SMSG_FORCE_SET_VEHICLE_REC_ID,
CMSG_SET_VEHICLE_REC_ID_ACK,
CMSG_TAXICLEARNODE,
CMSG_TAXIENABLENODE,
CMSG_ITEM_TEXT_QUERY,
SMSG_ITEM_TEXT_QUERY_RESPONSE,
CMSG_MAIL_RETURN_TO_SENDER,
CMSG_MAIL_CREATE_TEXT_ITEM,
SMSG_SPELLLOGMISS,
SMSG_SPELLLOGEXECUTE,
SMSG_DEBUGAURAPROC,
SMSG_SPELLDAMAGESHIELD,
SMSG_RESURRECT_FAILED,
SMSG_ZONE_UNDER_ATTACK,
SMSG_PROCRESIST,
SMSG_COMBAT_EVENT_FAILED,
SMSG_DISPEL_FAILED,
SMSG_SPELLORDAMAGE_IMMUNE,
CMSG_SET_AMMO,
SMSG_CORPSE_RECLAIM_DELAY,
CMSG_PET_CANCEL_AURA,
CMSG_PLAYER_AI_CHEAT,
CMSG_CANCEL_AUTO_REPEAT_SPELL,
MSG_GM_ACCOUNT_ONLINE,
MSG_LIST_STABLED_PETS,
CMSG_STABLE_PET,
CMSG_UNSTABLE_PET,
CMSG_BUY_STABLE_SLOT,
SMSG_STABLE_RESULT,
CMSG_STABLE_REVIVE_PET,
CMSG_STABLE_SWAP_PET,
MSG_QUEST_PUSH_RESULT,
SMSG_PLAY_MUSIC,
SMSG_PLAY_OBJECT_SOUND,
CMSG_REQUEST_PET_INFO,
CMSG_FAR_SIGHT,
SMSG_SPELLDISPELLOG,
SMSG_DAMAGE_CALC_LOG,
CMSG_ENABLE_DAMAGE_LOG,
CMSG_GROUP_CHANGE_SUB_GROUP,
CMSG_REQUEST_PARTY_MEMBER_STATS,
CMSG_GROUP_SWAP_SUB_GROUP,
CMSG_RESET_FACTION_CHEAT,
SMSG_RAID_GROUP_ONLY,
CMSG_SET_DURABILITY_CHEAT,
CMSG_SET_PVP_RANK_CHEAT,
CMSG_ADD_PVP_MEDAL_CHEAT,
CMSG_DEL_PVP_MEDAL_CHEAT,
CMSG_SET_PVP_TITLE,
SMSG_PVP_CREDIT,
SMSG_AUCTION_REMOVED_NOTIFICATION,
CMSG_GROUP_RAID_CONVERT,
CMSG_GROUP_ASSISTANT_LEADER,
SMSG_CHAT_SERVER_MESSAGE,
CMSG_SET_SAVED_INSTANCE_EXTEND,
SMSG_LFG_OFFER_CONTINUE,
CMSG_TEST_DROP_RATE,
SMSG_TEST_DROP_RATE_RESULT,
CMSG_LFG_GET_STATUS,
SMSG_RESET_RANGED_COMBAT_TIMER,
SMSG_CHAT_NOT_IN_PARTY,
CMSG_GMTICKETSYSTEM_TOGGLE,
CMSG_CANCEL_GROWTH_AURA,
SMSG_LOOT_ALL_PASSED,
SMSG_LOOT_ROLL_WON,
CMSG_LOOT_ROLL,
SMSG_LOOT_START_ROLL,
SMSG_LOOT_ROLL,
CMSG_LOOT_MASTER_GIVE,
SMSG_LOOT_MASTER_LIST,
SMSG_SET_FORCED_REACTIONS,
SMSG_SPELL_FAILED_OTHER,
SMSG_GAMEOBJECT_RESET_STATE,
CMSG_REPAIR_ITEM,
SMSG_CHAT_PLAYER_NOT_FOUND,
SMSG_SUMMON_REQUEST,
CMSG_SUMMON_RESPONSE,
MSG_DEV_SHOWLABEL,
SMSG_PET_BROKEN,
MSG_MOVE_FEATHER_FALL,
MSG_MOVE_WATER_WALK,
CMSG_SERVER_BROADCAST,
CMSG_SELF_RES,
SMSG_FEIGN_DEATH_RESISTED,
CMSG_RUN_SCRIPT,
SMSG_SCRIPT_MESSAGE,
SMSG_DUEL_COUNTDOWN,
SMSG_AREA_TRIGGER_MESSAGE,
SMSG_LFG_ROLE_CHOSEN,
SMSG_PLAYER_SKINNED,
SMSG_DURABILITY_DAMAGE_DEATH,
CMSG_SET_EXPLORATION,
CMSG_SET_ACTIONBAR_TOGGLES,
MSG_PETITION_RENAME,
SMSG_UPDATE_WORLD_STATE,
CMSG_ITEM_NAME_QUERY,
SMSG_ITEM_NAME_QUERY_RESPONSE,
SMSG_PET_ACTION_FEEDBACK,
CMSG_CHAR_RENAME,
SMSG_CHAR_RENAME,
CMSG_MOVE_SPLINE_DONE,
CMSG_MOVE_FALL_RESET,
SMSG_INSTANCE_SAVE_CREATED,
CMSG_MOVE_TIME_SKIPPED,
CMSG_MOVE_FEATHER_FALL_ACK,
CMSG_MOVE_WATER_WALK_ACK,
CMSG_MOVE_NOT_ACTIVE_MOVER,
MSG_INSPECT_HONOR_STATS,
CMSG_MOVE_START_SWIM_CHEAT,
CMSG_MOVE_STOP_SWIM_CHEAT,
SMSG_FORCE_WALK_SPEED_CHANGE,
CMSG_FORCE_WALK_SPEED_CHANGE_ACK,
SMSG_FORCE_SWIM_BACK_SPEED_CHANGE,
CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK,
SMSG_FORCE_TURN_RATE_CHANGE,
CMSG_FORCE_TURN_RATE_CHANGE_ACK,
CMSG_AREA_SPIRIT_HEALER_QUERY,
CMSG_AREA_SPIRIT_HEALER_QUEUE,
SMSG_AREA_SPIRIT_HEALER_TIME,
CMSG_GM_UNTEACH,
CMSG_PET_STOP_ATTACK,
SMSG_BINDER_CONFIRM,
SMSG_ADDON_INFO,
CMSG_PET_UNLEARN,
SMSG_PET_UNLEARN_CONFIRM,
SMSG_PARTY_MEMBER_STATS_FULL,
CMSG_PET_SPELL_AUTOCAST,
SMSG_PLAY_TIME_WARNING,
SMSG_MINIGAME_SETUP,
SMSG_MINIGAME_STATE,
CMSG_MINIGAME_MOVE,
SMSG_MINIGAME_MOVE_FAILED,
SMSG_RAID_INSTANCE_MESSAGE,
CMSG_GUILD_INFO_TEXT,
SMSG_CHAT_RESTRICTED,
SMSG_SPLINE_SET_WALK_SPEED,
SMSG_SPLINE_SET_SWIM_BACK_SPEED,
SMSG_SPLINE_SET_TURN_RATE,
SMSG_SPLINE_MOVE_UNROOT,
SMSG_SPLINE_MOVE_FEATHER_FALL,
SMSG_SPLINE_MOVE_NORMAL_FALL,
SMSG_SPLINE_MOVE_SET_HOVER,
SMSG_SPLINE_MOVE_UNSET_HOVER,
SMSG_SPLINE_MOVE_WATER_WALK,
SMSG_SPLINE_MOVE_LAND_WALK,
SMSG_SPLINE_MOVE_START_SWIM,
SMSG_SPLINE_MOVE_STOP_SWIM,
CMSG_GM_NUKE_ACCOUNT,
MSG_GM_DESTROY_CORPSE,
CMSG_GM_DESTROY_ONLINE_CORPSE,
SMSG_SET_FACTION_ATWAR,
SMSG_GAMETIMEBIAS_SET,
CMSG_DEBUG_ACTIONS_START,
CMSG_DEBUG_ACTIONS_STOP,
CMSG_SET_FACTION_INACTIVE,
CMSG_SET_WATCHED_FACTION,
SMSG_SPLINE_MOVE_ROOT,
CMSG_SET_EXPLORATION_ALL,
SMSG_INVALIDATE_PLAYER,
CMSG_RESET_INSTANCES,
SMSG_INSTANCE_RESET,
SMSG_INSTANCE_RESET_FAILED,
SMSG_UPDATE_LAST_INSTANCE,
CMSG_LUA_USAGE,
SMSG_PET_ACTION_SOUND,
SMSG_PET_DISMISS_SOUND,
SMSG_GHOSTEE_GONE,
CMSG_GM_UPDATE_TICKET_STATUS,
SMSG_GM_TICKET_STATUS_UPDATE,
MSG_SET_DUNGEON_DIFFICULTY,
CMSG_GMSURVEY_SUBMIT,
SMSG_UPDATE_INSTANCE_OWNERSHIP,
CMSG_IGNORE_KNOCKBACK_CHEAT,
SMSG_CHAT_PLAYER_AMBIGUOUS,
MSG_DELAY_GHOST_TELEPORT,
SMSG_SPELLINSTAKILLLOG,
SMSG_SPELL_UPDATE_CHAIN_TARGETS,
CMSG_CHAT_FILTERED,
SMSG_EXPECTED_SPAM_RECORDS,
SMSG_SPELLSTEALLOG,
CMSG_LOTTERY_QUERY_OBSOLETE,
SMSG_LOTTERY_QUERY_RESULT_OBSOLETE,
CMSG_BUY_LOTTERY_TICKET_OBSOLETE,
SMSG_LOTTERY_RESULT_OBSOLETE,
SMSG_CHARACTER_PROFILE,
SMSG_CHARACTER_PROFILE_REALM_CONNECTED,
SMSG_DEFENSE_MESSAGE,
SMSG_INSTANCE_DIFFICULTY,
MSG_GM_RESETINSTANCELIMIT,
SMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY,
SMSG_MOVE_UNSET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY,
CMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY_ACK,
MSG_MOVE_START_SWIM_CHEAT,
MSG_MOVE_STOP_SWIM_CHEAT,
SMSG_MOVE_SET_CAN_FLY,
SMSG_MOVE_UNSET_CAN_FLY,
CMSG_MOVE_SET_CAN_FLY_ACK,
CMSG_MOVE_SET_FLY,
CMSG_SOCKET_GEMS,
MSG_MOVE_UPDATE_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY,
MSG_MOVE_START_ASCEND,
MSG_MOVE_STOP_ASCEND,
CMSG_LFG_JOIN,
CMSG_LFG_LEAVE,
CMSG_SEARCH_LFG_JOIN,
CMSG_SEARCH_LFG_LEAVE,
SMSG_UPDATE_LFG_LIST,
SMSG_LFG_PROPOSAL_UPDATE,
CMSG_LFG_PROPOSAL_RESULT,
SMSG_LFG_ROLE_CHECK_UPDATE,
SMSG_LFG_JOIN_RESULT,
SMSG_LFG_QUEUE_STATUS,
CMSG_SET_LFG_COMMENT,
SMSG_LFG_UPDATE_PLAYER,
SMSG_LFG_UPDATE_PARTY,
SMSG_LFG_UPDATE_SEARCH,
CMSG_LFG_SET_ROLES,
CMSG_LFG_SET_NEEDS,
CMSG_LFG_SET_BOOT_VOTE,
SMSG_LFG_BOOT_PROPOSAL_UPDATE,
CMSG_LFD_PLAYER_LOCK_INFO_REQUEST,
SMSG_LFG_PLAYER_INFO,
CMSG_LFG_TELEPORT,
CMSG_LFD_PARTY_LOCK_INFO_REQUEST,
SMSG_LFG_PARTY_INFO,
SMSG_TITLE_EARNED,
CMSG_SET_TITLE,
SMSG_DEATH_RELEASE_LOC,
CMSG_CANCEL_TEMP_ENCHANTMENT,
SMSG_FORCED_DEATH_UPDATE,
CMSG_CHEAT_SET_HONOR_CURRENCY,
CMSG_CHEAT_SET_ARENA_CURRENCY,
MSG_MOVE_SET_FLIGHT_SPEED_CHEAT,
MSG_MOVE_SET_FLIGHT_SPEED,
MSG_MOVE_SET_FLIGHT_BACK_SPEED_CHEAT,
MSG_MOVE_SET_FLIGHT_BACK_SPEED,
SMSG_FORCE_FLIGHT_SPEED_CHANGE,
CMSG_FORCE_FLIGHT_SPEED_CHANGE_ACK,
SMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE,
CMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK,
SMSG_SPLINE_SET_FLIGHT_SPEED,
SMSG_SPLINE_SET_FLIGHT_BACK_SPEED,
CMSG_MAELSTROM_INVALIDATE_CACHE,
SMSG_FLIGHT_SPLINE_SYNC,
CMSG_SET_TAXI_BENCHMARK_MODE,
SMSG_REALM_SPLIT,
CMSG_REALM_SPLIT,
CMSG_MOVE_CHNG_TRANSPORT,
MSG_PARTY_ASSIGNMENT,
SMSG_OFFER_PETITION_ERROR,
CMSG_TIME_SYNC_RESP,
CMSG_SEND_LOCAL_EVENT,
CMSG_SEND_GENERAL_TRIGGER,
CMSG_SEND_COMBAT_TRIGGER,
CMSG_MAELSTROM_GM_SENT_MAIL,
SMSG_RESET_FAILED_NOTIFY,
SMSG_REAL_GROUP_UPDATE,
SMSG_LFG_DISABLED,
CMSG_ACTIVE_PVP_CHEAT,
CMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY,
SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE,
SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE_WRITE_FILE,
SMSG_UPDATE_COMBO_POINTS,
SMSG_VOICE_SESSION_ROSTER_UPDATE,
SMSG_VOICE_SESSION_LEAVE,
SMSG_VOICE_SESSION_ADJUST_PRIORITY,
CMSG_VOICE_SET_TALKER_MUTED_REQUEST,
SMSG_VOICE_SET_TALKER_MUTED,
SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE_OBSOLETE,
SMSG_CLEAR_EXTRA_AURA_INFO_OBSOLETE,
MSG_MOVE_START_DESCEND,
CMSG_IGNORE_REQUIREMENTS_CHEAT,
SMSG_IGNORE_REQUIREMENTS_CHEAT,
SMSG_SPELL_CHANCE_PROC_LOG,
CMSG_MOVE_SET_RUN_SPEED,
SMSG_DISMOUNT,
MSG_MOVE_UPDATE_CAN_FLY,
CMSG_VOICE_SESSION_ENABLE,
SMSG_VOICE_SESSION_ENABLE,
SMSG_VOICE_PARENTAL_CONTROLS,
CMSG_GM_WHISPER,
SMSG_GM_MESSAGECHAT,
MSG_GM_GEARRATING,
CMSG_COMMENTATOR_ENABLE,
SMSG_COMMENTATOR_STATE_CHANGED,
CMSG_COMMENTATOR_GET_MAP_INFO,
SMSG_COMMENTATOR_MAP_INFO,
CMSG_COMMENTATOR_GET_PLAYER_INFO,
SMSG_COMMENTATOR_GET_PLAYER_INFO,
SMSG_COMMENTATOR_PLAYER_INFO,
CMSG_COMMENTATOR_ENTER_INSTANCE,
CMSG_COMMENTATOR_EXIT_INSTANCE,
CMSG_COMMENTATOR_INSTANCE_COMMAND,
SMSG_CLEAR_TARGET,
CMSG_BOT_DETECTED,
SMSG_CROSSED_INEBRIATION_THRESHOLD,
CMSG_CHEAT_PLAYER_LOGIN,
CMSG_CHEAT_PLAYER_LOOKUP,
SMSG_CHEAT_PLAYER_LOOKUP,
SMSG_KICK_REASON,
MSG_RAID_READY_CHECK_FINISHED,
CMSG_COMPLAIN,
SMSG_COMPLAIN_RESULT,
CMSG_GM_SHOW_COMPLAINTS,
CMSG_GM_UNSQUELCH,
CMSG_CHANNEL_SILENCE_VOICE,
CMSG_CHANNEL_SILENCE_ALL,
CMSG_CHANNEL_UNSILENCE_VOICE,
CMSG_CHANNEL_UNSILENCE_ALL,
CMSG_TARGET_CAST,
CMSG_TARGET_SCRIPT_CAST,
CMSG_CHANNEL_DISPLAY_LIST,
CMSG_SET_ACTIVE_VOICE_CHANNEL,
CMSG_GET_CHANNEL_MEMBER_COUNT,
SMSG_CHANNEL_MEMBER_COUNT,
CMSG_CHANNEL_VOICE_ON,
CMSG_CHANNEL_VOICE_OFF,
CMSG_DEBUG_LIST_TARGETS,
SMSG_DEBUG_LIST_TARGETS,
SMSG_AVAILABLE_VOICE_CHANNEL,
CMSG_ADD_VOICE_IGNORE,
CMSG_DEL_VOICE_IGNORE,
CMSG_PARTY_SILENCE,
CMSG_PARTY_UNSILENCE,
MSG_NOTIFY_PARTY_SQUELCH,
SMSG_COMSAT_RECONNECT_TRY,
SMSG_COMSAT_DISCONNECT,
SMSG_COMSAT_CONNECT_FAIL,
SMSG_VOICE_CHAT_STATUS,
CMSG_REPORT_PVP_AFK,
SMSG_REPORT_PVP_AFK_RESULT,
MSG_GUILD_BANK_LOG_QUERY,
CMSG_SET_CHANNEL_WATCH,
SMSG_USERLIST_ADD,
SMSG_USERLIST_REMOVE,
SMSG_USERLIST_UPDATE,
CMSG_CLEAR_CHANNEL_WATCH,
SMSG_GOGOGO_OBSOLETE,
SMSG_ECHO_PARTY_SQUELCH,
CMSG_SET_TITLE_SUFFIX,
CMSG_SPELLCLICK,
SMSG_LOOT_LIST,
CMSG_GM_CHARACTER_RESTORE,
CMSG_GM_CHARACTER_SAVE,
SMSG_VOICESESSION_FULL,
MSG_GUILD_PERMISSIONS,
MSG_GUILD_BANK_MONEY_WITHDRAWN,
MSG_GUILD_EVENT_LOG_QUERY,
CMSG_MAELSTROM_RENAME_GUILD,
CMSG_GET_MIRRORIMAGE_DATA,
SMSG_MIRRORIMAGE_DATA,
SMSG_FORCE_DISPLAY_UPDATE,
SMSG_SPELL_CHANCE_RESIST_PUSHBACK,
CMSG_IGNORE_DIMINISHING_RETURNS_CHEAT,
SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT,
CMSG_KEEP_ALIVE,
SMSG_RAID_READY_CHECK_ERROR,
CMSG_OPT_OUT_OF_LOOT,
MSG_QUERY_GUILD_BANK_TEXT,
CMSG_SET_GUILD_BANK_TEXT,
CMSG_SET_GRANTABLE_LEVELS,
CMSG_GRANT_LEVEL,
CMSG_REFER_A_FRIEND,
MSG_GM_CHANGE_ARENA_RATING,
CMSG_DECLINE_CHANNEL_INVITE,
SMSG_GROUPACTION_THROTTLED,
SMSG_OVERRIDE_LIGHT,
SMSG_TOTEM_CREATED,
CMSG_TOTEM_DESTROYED,
CMSG_EXPIRE_RAID_INSTANCE,
CMSG_NO_SPELL_VARIANCE,
CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY,
CMSG_SET_PLAYER_DECLINED_NAMES,
SMSG_SET_PLAYER_DECLINED_NAMES_RESULT,
CMSG_QUERY_SERVER_BUCK_DATA,
CMSG_CLEAR_SERVER_BUCK_DATA,
SMSG_SERVER_BUCK_DATA,
SMSG_PROPOSE_LEVEL_GRANT,
CMSG_ACCEPT_LEVEL_GRANT,
SMSG_REFER_A_FRIEND_FAILURE,
SMSG_SPLINE_MOVE_SET_FLYING,
SMSG_SPLINE_MOVE_UNSET_FLYING,
SMSG_SUMMON_CANCEL,
CMSG_CHANGE_PERSONAL_ARENA_RATING,
CMSG_ALTER_APPEARANCE,
SMSG_ENABLE_BARBER_SHOP,
SMSG_BARBER_SHOP_RESULT,
CMSG_CALENDAR_GET_CALENDAR,
CMSG_CALENDAR_GET_EVENT,
CMSG_CALENDAR_GUILD_FILTER,
CMSG_CALENDAR_ARENA_TEAM,
CMSG_CALENDAR_ADD_EVENT,
CMSG_CALENDAR_UPDATE_EVENT,
CMSG_CALENDAR_REMOVE_EVENT,
CMSG_CALENDAR_COPY_EVENT,
CMSG_CALENDAR_EVENT_INVITE,
CMSG_CALENDAR_EVENT_RSVP,
CMSG_CALENDAR_EVENT_REMOVE_INVITE,
CMSG_CALENDAR_EVENT_STATUS,
CMSG_CALENDAR_EVENT_MODERATOR_STATUS,
SMSG_CALENDAR_SEND_CALENDAR,
SMSG_CALENDAR_SEND_EVENT,
SMSG_CALENDAR_FILTER_GUILD,
SMSG_CALENDAR_ARENA_TEAM,
SMSG_CALENDAR_EVENT_INVITE,
SMSG_CALENDAR_EVENT_INVITE_REMOVED,
SMSG_CALENDAR_EVENT_STATUS,
SMSG_CALENDAR_COMMAND_RESULT,
SMSG_CALENDAR_RAID_LOCKOUT_ADDED,
SMSG_CALENDAR_RAID_LOCKOUT_REMOVED,
SMSG_CALENDAR_EVENT_INVITE_ALERT,
SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT,
SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT,
SMSG_CALENDAR_EVENT_REMOVED_ALERT,
SMSG_CALENDAR_EVENT_UPDATED_ALERT,
SMSG_CALENDAR_EVENT_MODERATOR_STATUS_ALERT,
CMSG_CALENDAR_COMPLAIN,
CMSG_CALENDAR_GET_NUM_PENDING,
SMSG_CALENDAR_SEND_NUM_PENDING,
CMSG_SAVE_DANCE,
SMSG_NOTIFY_DANCE,
CMSG_PLAY_DANCE,
SMSG_PLAY_DANCE,
CMSG_LOAD_DANCES,
CMSG_STOP_DANCE,
SMSG_STOP_DANCE,
CMSG_SYNC_DANCE,
CMSG_DANCE_QUERY,
SMSG_DANCE_QUERY_RESPONSE,
SMSG_INVALIDATE_DANCE,
CMSG_DELETE_DANCE,
SMSG_LEARNED_DANCE_MOVES,
CMSG_LEARN_DANCE_MOVE,
CMSG_UNLEARN_DANCE_MOVE,
CMSG_SET_RUNE_COUNT,
CMSG_SET_RUNE_COOLDOWN,
MSG_MOVE_SET_PITCH_RATE_CHEAT,
MSG_MOVE_SET_PITCH_RATE,
SMSG_FORCE_PITCH_RATE_CHANGE,
CMSG_FORCE_PITCH_RATE_CHANGE_ACK,
SMSG_SPLINE_SET_PITCH_RATE,
CMSG_CALENDAR_EVENT_INVITE_NOTES,
SMSG_CALENDAR_EVENT_INVITE_NOTES,
SMSG_CALENDAR_EVENT_INVITE_NOTES_ALERT,
CMSG_UPDATE_MISSILE_TRAJECTORY,
SMSG_UPDATE_ACCOUNT_DATA_COMPLETE,
SMSG_TRIGGER_MOVIE,
CMSG_COMPLETE_MOVIE,
CMSG_SET_GLYPH_SLOT,
CMSG_SET_GLYPH,
SMSG_ACHIEVEMENT_EARNED,
SMSG_DYNAMIC_DROP_ROLL_RESULT,
SMSG_CRITERIA_UPDATE,
CMSG_QUERY_INSPECT_ACHIEVEMENTS,
SMSG_RESPOND_INSPECT_ACHIEVEMENTS,
CMSG_DISMISS_CONTROLLED_VEHICLE,
CMSG_COMPLETE_ACHIEVEMENT_CHEAT,
SMSG_QUESTUPDATE_ADD_PVP_KILL,
CMSG_SET_CRITERIA_CHEAT,
SMSG_CALENDAR_RAID_LOCKOUT_UPDATED,
CMSG_UNITANIMTIER_CHEAT,
CMSG_CHAR_CUSTOMIZE,
SMSG_CHAR_CUSTOMIZE,
SMSG_PET_RENAMEABLE,
CMSG_REQUEST_VEHICLE_EXIT,
CMSG_REQUEST_VEHICLE_PREV_SEAT,
CMSG_REQUEST_VEHICLE_NEXT_SEAT,
CMSG_REQUEST_VEHICLE_SWITCH_SEAT,
CMSG_PET_LEARN_TALENT,
CMSG_PET_UNLEARN_TALENTS,
SMSG_SET_PHASE_SHIFT,
SMSG_ALL_ACHIEVEMENT_DATA,
CMSG_FORCE_SAY_CHEAT,
SMSG_HEALTH_UPDATE,
SMSG_POWER_UPDATE,
CMSG_GAMEOBJ_REPORT_USE,
SMSG_HIGHEST_THREAT_UPDATE,
SMSG_THREAT_UPDATE,
SMSG_THREAT_REMOVE,
SMSG_THREAT_CLEAR,
SMSG_CONVERT_RUNE,
SMSG_RESYNC_RUNES,
SMSG_ADD_RUNE_POWER,
CMSG_START_QUEST,
CMSG_REMOVE_GLYPH,
CMSG_DUMP_OBJECTS,
SMSG_DUMP_OBJECTS_DATA,
CMSG_DISMISS_CRITTER,
SMSG_NOTIFY_DEST_LOC_SPELL_CAST,
CMSG_AUCTION_LIST_PENDING_SALES,
SMSG_AUCTION_LIST_PENDING_SALES,
SMSG_MODIFY_COOLDOWN,
SMSG_PET_UPDATE_COMBO_POINTS,
CMSG_ENABLETAXI,
SMSG_PRE_RESURRECT,
CMSG_FLOOD_GRACE_CHEAT,
SMSG_SERVER_FIRST_ACHIEVEMENT,
SMSG_PET_LEARNED_SPELL,
SMSG_PET_UNLEARNED_SPELL,
CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE,
CMSG_HEARTH_AND_RESURRECT,
SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA,
SMSG_CRITERIA_DELETED,
SMSG_ACHIEVEMENT_DELETED,
CMSG_SERVER_INFO_QUERY,
SMSG_SERVER_INFO_RESPONSE,
CMSG_CHECK_LOGIN_CRITERIA,
SMSG_SERVER_BUCK_DATA_START,
CMSG_SET_BREATH,
CMSG_QUERY_VEHICLE_STATUS,
SMSG_BATTLEGROUND_INFO_THROTTLED,
SMSG_PLAYER_VEHICLE_DATA,
CMSG_PLAYER_VEHICLE_ENTER,
CMSG_CONTROLLER_EJECT_PASSENGER,
SMSG_PET_GUIDS,
CMSG_CHANGE_GDF_ARENA_RATING,
CMSG_SET_ARENA_TEAM_RATING_BY_INDEX,
CMSG_SET_ARENA_TEAM_WEEKLY_GAMES,
CMSG_SET_ARENA_TEAM_SEASON_GAMES,
CMSG_SET_ARENA_MEMBER_WEEKLY_GAMES,
CMSG_SET_ARENA_MEMBER_SEASON_GAMES,
SMSG_ITEM_REFUND_INFO_RESPONSE,
CMSG_ITEM_REFUND_INFO,
CMSG_ITEM_REFUND,
SMSG_ITEM_REFUND_RESULT,
CMSG_CORPSE_MAP_POSITION_QUERY,
SMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE,
CMSG_UNUSED5,
CMSG_UNUSED6,
CMSG_CALENDAR_EVENT_SIGNUP,
SMSG_CALENDAR_CLEAR_PENDING_ACTION,
SMSG_EQUIPMENT_SET_LIST,
CMSG_EQUIPMENT_SET_SAVE,
CMSG_UPDATE_PROJECTILE_POSITION,
SMSG_SET_PROJECTILE_POSITION,
CMSG_LEARN_PREVIEW_TALENTS,
CMSG_LEARN_PREVIEW_TALENTS_PET,
CMSG_SET_ACTIVE_TALENT_GROUP_OBSOLETE,
CMSG_GM_GRANT_ACHIEVEMENT,
CMSG_GM_REMOVE_ACHIEVEMENT,
CMSG_GM_SET_CRITERIA_FOR_PLAYER,
SMSG_ARENA_UNIT_DESTROYED,
SMSG_ARENA_TEAM_CHANGE_FAILED_QUEUED,
CMSG_PROFILEDATA_REQUEST,
SMSG_PROFILEDATA_RESPONSE,
CMSG_START_BATTLEFIELD_CHEAT,
CMSG_END_BATTLEFIELD_CHEAT,
SMSG_MULTIPLE_PACKETS,
SMSG_MOVE_GRAVITY_DISABLE,
CMSG_MOVE_GRAVITY_DISABLE_ACK,
SMSG_MOVE_GRAVITY_ENABLE,
CMSG_MOVE_GRAVITY_ENABLE_ACK,
MSG_MOVE_GRAVITY_CHNG,
SMSG_SPLINE_MOVE_GRAVITY_DISABLE,
SMSG_SPLINE_MOVE_GRAVITY_ENABLE,
CMSG_EQUIPMENT_SET_USE,
SMSG_EQUIPMENT_SET_USE_RESULT,
CMSG_FORCE_ANIM,
SMSG_FORCE_ANIM,
CMSG_CHAR_FACTION_CHANGE,
SMSG_CHAR_FACTION_CHANGE,
CMSG_PVP_QUEUE_STATS_REQUEST,
SMSG_PVP_QUEUE_STATS,
CMSG_SET_PAID_SERVICE_CHEAT,
SMSG_BATTLEFIELD_MGR_ENTRY_INVITE,
CMSG_BATTLEFIELD_MGR_ENTRY_INVITE_RESPONSE,
SMSG_BATTLEFIELD_MGR_ENTERED,
SMSG_BATTLEFIELD_MGR_QUEUE_INVITE,
CMSG_BATTLEFIELD_MGR_QUEUE_INVITE_RESPONSE,
CMSG_BATTLEFIELD_MGR_QUEUE_REQUEST,
SMSG_BATTLEFIELD_MGR_QUEUE_REQUEST_RESPONSE,
SMSG_BATTLEFIELD_MGR_EJECT_PENDING,
SMSG_BATTLEFIELD_MGR_EJECTED,
CMSG_BATTLEFIELD_MGR_EXIT_REQUEST,
SMSG_BATTLEFIELD_MGR_STATE_CHANGE,
CMSG_BATTLEFIELD_MANAGER_ADVANCE_STATE,
CMSG_BATTLEFIELD_MANAGER_SET_NEXT_TRANSITION_TIME,
MSG_SET_RAID_DIFFICULTY,
CMSG_TOGGLE_XP_GAIN,
SMSG_TOGGLE_XP_GAIN,
SMSG_GMRESPONSE_DB_ERROR,
SMSG_GMRESPONSE_RECEIVED,
CMSG_GMRESPONSE_RESOLVE,
SMSG_GMRESPONSE_STATUS_UPDATE,
SMSG_GMRESPONSE_CREATE_TICKET,
CMSG_GMRESPONSE_CREATE_TICKET,
CMSG_SERVERINFO,
SMSG_SERVERINFO,
CMSG_WORLD_STATE_UI_TIMER_UPDATE,
SMSG_WORLD_STATE_UI_TIMER_UPDATE,
CMSG_CHAR_RACE_CHANGE,
MSG_VIEW_PHASE_SHIFT,
SMSG_TALENTS_INVOLUNTARILY_RESET,
CMSG_DEBUG_SERVER_GEO,
SMSG_DEBUG_SERVER_GEO,
SMSG_LOOT_SLOT_CHANGED,
CMSG_READY_FOR_ACCOUNT_DATA_TIMES,
CMSG_QUERY_QUESTS_COMPLETED,
SMSG_QUERY_QUESTS_COMPLETED_RESPONSE,
CMSG_GM_REPORT_LAG,
CMSG_AFK_MONITOR_INFO_REQUEST,
SMSG_AFK_MONITOR_INFO_RESPONSE,
CMSG_AFK_MONITOR_INFO_CLEAR,
SMSG_CORPSE_NOT_IN_INSTANCE,
CMSG_GM_NUKE_CHARACTER,
CMSG_SET_ALLOW_LOW_LEVEL_RAID1,
CMSG_SET_ALLOW_LOW_LEVEL_RAID2,
SMSG_CAMERA_SHAKE,
SMSG_SOCKET_GEMS_RESULT,
CMSG_SET_CHARACTER_MODEL,
SMSG_REDIRECT_CLIENT,
CMSG_REDIRECTION_FAILED,
SMSG_SUSPEND_COMMS,
CMSG_SUSPEND_COMMS_ACK,
SMSG_FORCE_SEND_QUEUED_PACKETS,
CMSG_REDIRECTION_AUTH_PROOF,
CMSG_DROP_NEW_CONNECTION,
SMSG_SEND_ALL_COMBAT_LOG,
SMSG_OPEN_LFG_DUNGEON_FINDER,
SMSG_MOVE_SET_COLLISION_HGT,
CMSG_MOVE_SET_COLLISION_HGT_ACK,
MSG_MOVE_SET_COLLISION_HGT,
CMSG_CLEAR_RANDOM_BG_WIN_TIME,
CMSG_CLEAR_HOLIDAY_BG_WIN_TIME,
CMSG_COMMENTATOR_SKIRMISH_QUEUE_COMMAND,
SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT1,
SMSG_COMMENTATOR_SKIRMISH_QUEUE_RESULT2,
SMSG_MULTIPLE_MOVES,
MSG_NULL_ACTION,
CMSG_EMBLAZON_TABARD_OBSOLETE,
CMSG_UNEMBLAZON_TABARD_OBSOLETE,
SMSG_DEBUGINFOSPELLMISS_OBSOLETE,
CMSG_PVP_PORT_OBSOLETE,
CMSG_FRIEND_LIST,
SMSG_FRIEND_LIST,
SMSG_IGNORE_LIST,
CMSG_GAMEOBJ_CHAIR_USE_OBSOLETE,
MSG_MOVE_SET_RAW_POSITION_ACK,
SMSG_INSPECT,
SMSG_CAST_RESULT,
SMSG_UPDATE_AURA_DURATION,
CMSG_SET_TARGET_OBSOLETE,
CMSG_UNUSED,
CMSG_UNUSED2,
SMSG_ATTACKSWING_NOTSTANDING,
SMSG_VICTIMSTATEUPDATE_OBSOLETE,
SMSG_DAMAGE_DONE_OBSOLETE,
SMSG_DAMAGE_TAKEN_OBSOLETE,
SMSG_PLAYER_COMBAT_XP_GAIN_OBSOLETE,
CMSG_SHEATHE_OBSOLETE,
SMSG_PUREMOUNT_CANCELLED_OBSOLETE,
CMSG_SETSHEATHED,
CMSG_PLAYER_MACRO_OBSOLETE,
SMSG_PLAYER_MACRO_OBSOLETE,
SMSG_ENVIRONMENTALDAMAGELOG,
CMSG_RWHOIS_OBSOLETE,
MSG_LOOKING_FOR_GROUP,
CMSG_SET_LOOKING_FOR_GROUP,
SMSG_POWERGAINLOG_OBSOLETE,
SMSG_GAMEOBJECT_SPAWN_ANIM_OBSOLETE,
SMSG_SET_REST_START,
SMSG_BATTLEFIELD_WIN_OBSOLETE,
SMSG_BATTLEFIELD_LOSE_OBSOLETE,
SMSG_STANDSTATE_CHANGE_FAILURE_OBSOLETE,
SMSG_SERVER_MESSAGE,
CMSG_MEETINGSTONE_JOIN,
CMSG_MEETINGSTONE_LEAVE,
CMSG_MEETINGSTONE_CHEAT,
SMSG_MEETINGSTONE_SETQUEUE,
CMSG_MEETINGSTONE_INFO,
SMSG_MEETINGSTONE_COMPLETE,
SMSG_MEETINGSTONE_IN_PROGRESS,
SMSG_MEETINGSTONE_MEMBER_ADDED,
MSG_MOVE_TOGGLE_GRAVITY_CHEAT,
CMSG_TOGGLE_HELM,
CMSG_TOGGLE_CLOAK,
SMSG_MEETINGSTONE_JOINFAILED,
SMSG_UNK,
// Sentinel
COUNT
};
/**
* Maps LogicalOpcode ↔ expansion-specific wire values.
*
* Loaded from JSON (e.g. Data/expansions/wotlk/opcodes.json).
* Used for sending packets (toWire) and receiving them (fromWire).
*/
class OpcodeTable {
public:
/**
* Load opcode mappings from a JSON file.
* Format: { "CMSG_PING": "0x1DC", "SMSG_AUTH_CHALLENGE": "0x1EC", ... }
*/
bool loadFromJson(const std::string& path);
/** LogicalOpcode → wire value for sending packets. Returns 0xFFFF if unknown. */
uint16_t toWire(LogicalOpcode op) const;
/** Wire value → LogicalOpcode for receiving packets. Returns nullopt if unknown. */
std::optional<LogicalOpcode> fromWire(uint16_t wireValue) const;
/** Check if a logical opcode has a wire mapping. */
bool hasOpcode(LogicalOpcode op) const;
/** Number of mapped opcodes. */
size_t size() const { return logicalToWire_.size(); }
private:
std::unordered_map<uint16_t, uint16_t> logicalToWire_; // LogicalOpcode → wire
std::unordered_map<uint16_t, uint16_t> wireToLogical_; // wire → LogicalOpcode
static std::optional<LogicalOpcode> nameToLogical(const std::string& name);
static const char* logicalToName(LogicalOpcode op);
};
/**
* Global active opcode table pointer (set by GameHandler at startup).
* Used by world_packets.cpp and other code that needs to send packets
* without direct access to a GameHandler instance.
*/
void setActiveOpcodeTable(const OpcodeTable* table);
const OpcodeTable* getActiveOpcodeTable();
/**
* Get the wire value for a logical opcode using the active table.
* Convenience helper for packet construction code.
*/
inline uint16_t wireOpcode(LogicalOpcode op) {
const auto* table = getActiveOpcodeTable();
return table ? table->toWire(op) : 0xFFFF;
}
} // namespace game
} // namespace wowee