mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-19 21:57:37 -04:00
Fix movement packets to include packed player GUID prefix so the server tracks position. Fix inventory money display being clipped by child panels. Add Back and Delete Character buttons to character selection screen with two-step delete confirmation.
152 lines
5.7 KiB
C++
152 lines
5.7 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
|
|
namespace wowee {
|
|
namespace game {
|
|
|
|
// World of Warcraft 3.3.5a opcodes
|
|
// Values derived from community reverse-engineering efforts
|
|
// Reference: https://wowdev.wiki/World_Packet
|
|
enum class Opcode : uint16_t {
|
|
// ---- Client to Server (Core) ----
|
|
CMSG_PING = 0x1DC,
|
|
CMSG_AUTH_SESSION = 0x1ED,
|
|
CMSG_CHAR_CREATE = 0x036,
|
|
CMSG_CHAR_ENUM = 0x037,
|
|
CMSG_CHAR_DELETE = 0x038,
|
|
CMSG_PLAYER_LOGIN = 0x03D,
|
|
|
|
// ---- Movement ----
|
|
CMSG_MOVE_START_FORWARD = 0x0B5,
|
|
CMSG_MOVE_START_BACKWARD = 0x0B6,
|
|
CMSG_MOVE_STOP = 0x0B7,
|
|
CMSG_MOVE_START_STRAFE_LEFT = 0x0B8,
|
|
CMSG_MOVE_START_STRAFE_RIGHT = 0x0B9,
|
|
CMSG_MOVE_STOP_STRAFE = 0x0BA,
|
|
CMSG_MOVE_JUMP = 0x0BB,
|
|
CMSG_MOVE_START_TURN_LEFT = 0x0BC,
|
|
CMSG_MOVE_START_TURN_RIGHT = 0x0BD,
|
|
CMSG_MOVE_STOP_TURN = 0x0BE,
|
|
CMSG_MOVE_SET_FACING = 0x0DA,
|
|
CMSG_MOVE_FALL_LAND = 0x0C9,
|
|
CMSG_MOVE_START_SWIM = 0x0CA,
|
|
CMSG_MOVE_STOP_SWIM = 0x0CB,
|
|
CMSG_MOVE_HEARTBEAT = 0x0EE,
|
|
|
|
// ---- Server to Client (Core) ----
|
|
SMSG_AUTH_CHALLENGE = 0x1EC,
|
|
SMSG_AUTH_RESPONSE = 0x1EE,
|
|
SMSG_CHAR_CREATE = 0x03A,
|
|
SMSG_CHAR_ENUM = 0x03B,
|
|
SMSG_CHAR_DELETE = 0x03C,
|
|
SMSG_PONG = 0x1DD,
|
|
SMSG_LOGIN_VERIFY_WORLD = 0x236,
|
|
SMSG_ACCOUNT_DATA_TIMES = 0x209,
|
|
SMSG_FEATURE_SYSTEM_STATUS = 0x3ED,
|
|
SMSG_MOTD = 0x33D,
|
|
|
|
// ---- Entity/Object updates ----
|
|
SMSG_UPDATE_OBJECT = 0x0A9,
|
|
SMSG_COMPRESSED_UPDATE_OBJECT = 0x1F6,
|
|
SMSG_DESTROY_OBJECT = 0x0AA,
|
|
|
|
// ---- Chat ----
|
|
CMSG_MESSAGECHAT = 0x095,
|
|
SMSG_MESSAGECHAT = 0x096,
|
|
|
|
// ---- Phase 1: Foundation (Targeting, Queries) ----
|
|
CMSG_SET_SELECTION = 0x13D,
|
|
CMSG_NAME_QUERY = 0x050,
|
|
SMSG_NAME_QUERY_RESPONSE = 0x051,
|
|
CMSG_CREATURE_QUERY = 0x060,
|
|
SMSG_CREATURE_QUERY_RESPONSE = 0x061,
|
|
CMSG_GAMEOBJECT_QUERY = 0x05E,
|
|
SMSG_GAMEOBJECT_QUERY_RESPONSE = 0x05F,
|
|
CMSG_SET_ACTIVE_MOVER = 0x26A,
|
|
|
|
// ---- XP ----
|
|
SMSG_LOG_XPGAIN = 0x1D0,
|
|
|
|
// ---- Phase 2: Combat Core ----
|
|
CMSG_ATTACKSWING = 0x141,
|
|
CMSG_ATTACKSTOP = 0x142,
|
|
SMSG_ATTACKSTART = 0x143,
|
|
SMSG_ATTACKSTOP = 0x144,
|
|
SMSG_ATTACKERSTATEUPDATE = 0x14A,
|
|
SMSG_SPELLNONMELEEDAMAGELOG = 0x250,
|
|
SMSG_SPELLHEALLOG = 0x150,
|
|
SMSG_SPELLENERGIZELOG = 0x25B,
|
|
SMSG_PERIODICAURALOG = 0x24E,
|
|
SMSG_ENVIRONMENTALDAMAGELOG = 0x1FC,
|
|
|
|
// ---- Phase 3: Spells, Action Bar, Auras ----
|
|
CMSG_CAST_SPELL = 0x12E,
|
|
CMSG_CANCEL_CAST = 0x12F,
|
|
CMSG_CANCEL_AURA = 0x033,
|
|
SMSG_CAST_FAILED = 0x130,
|
|
SMSG_SPELL_START = 0x131,
|
|
SMSG_SPELL_GO = 0x132,
|
|
SMSG_SPELL_FAILURE = 0x133,
|
|
SMSG_SPELL_COOLDOWN = 0x134,
|
|
SMSG_COOLDOWN_EVENT = 0x135,
|
|
SMSG_UPDATE_AURA_DURATION = 0x137,
|
|
SMSG_INITIAL_SPELLS = 0x12A,
|
|
SMSG_LEARNED_SPELL = 0x12B,
|
|
SMSG_REMOVED_SPELL = 0x203,
|
|
SMSG_SPELL_DELAYED = 0x1E2,
|
|
SMSG_AURA_UPDATE = 0x3FA,
|
|
SMSG_AURA_UPDATE_ALL = 0x495,
|
|
SMSG_SET_FLAT_SPELL_MODIFIER = 0x266,
|
|
SMSG_SET_PCT_SPELL_MODIFIER = 0x267,
|
|
|
|
// ---- Phase 4: Group/Party ----
|
|
CMSG_GROUP_INVITE = 0x06E,
|
|
SMSG_GROUP_INVITE = 0x06F,
|
|
CMSG_GROUP_ACCEPT = 0x072,
|
|
CMSG_GROUP_DECLINE = 0x073,
|
|
SMSG_GROUP_DECLINE = 0x074,
|
|
CMSG_GROUP_UNINVITE_GUID = 0x076,
|
|
SMSG_GROUP_UNINVITE = 0x077,
|
|
CMSG_GROUP_SET_LEADER = 0x078,
|
|
SMSG_GROUP_SET_LEADER = 0x079,
|
|
CMSG_GROUP_DISBAND = 0x07B,
|
|
SMSG_GROUP_LIST = 0x07D,
|
|
SMSG_PARTY_COMMAND_RESULT = 0x07E,
|
|
MSG_RAID_TARGET_UPDATE = 0x321,
|
|
|
|
// ---- Phase 5: Loot ----
|
|
CMSG_LOOT = 0x15D,
|
|
CMSG_LOOT_RELEASE = 0x15E,
|
|
SMSG_LOOT_RESPONSE = 0x160,
|
|
SMSG_LOOT_RELEASE_RESPONSE = 0x161,
|
|
CMSG_AUTOSTORE_LOOT_ITEM = 0x162,
|
|
SMSG_LOOT_REMOVED = 0x163,
|
|
SMSG_LOOT_MONEY_NOTIFY = 0x164,
|
|
SMSG_LOOT_CLEAR_MONEY = 0x165,
|
|
|
|
// ---- Phase 5: NPC Gossip ----
|
|
CMSG_GOSSIP_HELLO = 0x17C,
|
|
SMSG_GOSSIP_MESSAGE = 0x17D,
|
|
CMSG_GOSSIP_SELECT_OPTION = 0x17E,
|
|
SMSG_GOSSIP_COMPLETE = 0x17F,
|
|
SMSG_NPC_TEXT_UPDATE = 0x180,
|
|
|
|
// ---- Phase 5: Vendor ----
|
|
CMSG_LIST_INVENTORY = 0x19E,
|
|
SMSG_LIST_INVENTORY = 0x19F,
|
|
CMSG_SELL_ITEM = 0x1A0,
|
|
SMSG_SELL_ITEM = 0x1A1,
|
|
CMSG_BUY_ITEM = 0x1A2,
|
|
SMSG_BUY_FAILED = 0x1A5,
|
|
|
|
// ---- Phase 5: Item/Equip ----
|
|
CMSG_ITEM_QUERY_SINGLE = 0x056,
|
|
SMSG_ITEM_QUERY_SINGLE_RESPONSE = 0x058,
|
|
CMSG_AUTOEQUIP_ITEM = 0x10A,
|
|
SMSG_INVENTORY_CHANGE_FAILURE = 0x112,
|
|
};
|
|
|
|
} // namespace game
|
|
} // namespace wowee
|