mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-27 05:23:51 +00:00
Fix stale opcode mappings and handler wiring across expansions
This commit is contained in:
parent
70e579157d
commit
d8ab69f9c3
9 changed files with 190 additions and 23 deletions
|
|
@ -1229,9 +1229,9 @@ void GameHandler::handlePacket(network::Packet& packet) {
|
|||
handleRandomRoll(packet);
|
||||
}
|
||||
break;
|
||||
case Opcode::CMSG_DUEL_PROPOSED:
|
||||
// Some servers reuse this wire value for an outbound server packet variant.
|
||||
// Consume safely until we have a concrete parser.
|
||||
case Opcode::SMSG_ITEM_PUSH_RESULT:
|
||||
// Item received notification (new item in bags, loot, quest reward, etc.)
|
||||
// TODO: parse and show "item received" UI notification
|
||||
packet.setReadPos(packet.getSize());
|
||||
break;
|
||||
|
||||
|
|
@ -2247,9 +2247,13 @@ void GameHandler::handlePacket(network::Packet& packet) {
|
|||
handleShowTaxiNodes(packet);
|
||||
break;
|
||||
case Opcode::SMSG_ACTIVATETAXIREPLY:
|
||||
case Opcode::SMSG_ACTIVATETAXIREPLY_ALT:
|
||||
handleActivateTaxiReply(packet);
|
||||
break;
|
||||
case Opcode::SMSG_STANDSTATE_UPDATE:
|
||||
// Server confirms stand state change (sit/stand/sleep/kneel)
|
||||
// TODO: parse uint8 standState and update player entity
|
||||
packet.setReadPos(packet.getSize());
|
||||
break;
|
||||
case Opcode::SMSG_NEW_TAXI_PATH:
|
||||
// Empty packet - server signals a new flight path was learned
|
||||
// The actual node details come in the next SMSG_SHOWTAXINODES
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ static const OpcodeNameEntry kOpcodeNames[] = {
|
|||
{"SMSG_GUILD_COMMAND_RESULT", LogicalOpcode::SMSG_GUILD_COMMAND_RESULT},
|
||||
{"MSG_RAID_READY_CHECK", LogicalOpcode::MSG_RAID_READY_CHECK},
|
||||
{"MSG_RAID_READY_CHECK_CONFIRM", LogicalOpcode::MSG_RAID_READY_CHECK_CONFIRM},
|
||||
{"CMSG_DUEL_PROPOSED", LogicalOpcode::CMSG_DUEL_PROPOSED},
|
||||
{"SMSG_ITEM_PUSH_RESULT", LogicalOpcode::SMSG_ITEM_PUSH_RESULT},
|
||||
{"CMSG_DUEL_ACCEPTED", LogicalOpcode::CMSG_DUEL_ACCEPTED},
|
||||
{"CMSG_DUEL_CANCELLED", LogicalOpcode::CMSG_DUEL_CANCELLED},
|
||||
{"SMSG_DUEL_REQUESTED", LogicalOpcode::SMSG_DUEL_REQUESTED},
|
||||
|
|
@ -264,7 +264,7 @@ static const OpcodeNameEntry kOpcodeNames[] = {
|
|||
{"CMSG_CANCEL_MOUNT_AURA", LogicalOpcode::CMSG_CANCEL_MOUNT_AURA},
|
||||
{"SMSG_SHOWTAXINODES", LogicalOpcode::SMSG_SHOWTAXINODES},
|
||||
{"SMSG_ACTIVATETAXIREPLY", LogicalOpcode::SMSG_ACTIVATETAXIREPLY},
|
||||
{"SMSG_ACTIVATETAXIREPLY_ALT", LogicalOpcode::SMSG_ACTIVATETAXIREPLY_ALT},
|
||||
{"SMSG_STANDSTATE_UPDATE", LogicalOpcode::SMSG_STANDSTATE_UPDATE},
|
||||
{"SMSG_NEW_TAXI_PATH", LogicalOpcode::SMSG_NEW_TAXI_PATH},
|
||||
{"CMSG_ACTIVATETAXIEXPRESS", LogicalOpcode::CMSG_ACTIVATETAXIEXPRESS},
|
||||
{"SMSG_BATTLEFIELD_PORT_DENIED", LogicalOpcode::SMSG_BATTLEFIELD_PORT_DENIED},
|
||||
|
|
|
|||
|
|
@ -1885,9 +1885,11 @@ network::Packet RequestRaidInfoPacket::build() {
|
|||
// ============================================================
|
||||
|
||||
network::Packet DuelProposedPacket::build(uint64_t targetGuid) {
|
||||
network::Packet packet(wireOpcode(Opcode::CMSG_DUEL_PROPOSED));
|
||||
packet.writeUInt64(targetGuid);
|
||||
LOG_DEBUG("Built CMSG_DUEL_PROPOSED for target: 0x", std::hex, targetGuid, std::dec);
|
||||
// TODO: Duels are initiated via CMSG_CAST_SPELL with spell 7266,
|
||||
// not a dedicated CMSG_DUEL_PROPOSED opcode (which doesn't exist in WoW).
|
||||
// For now, build a cast spell packet targeting the opponent.
|
||||
auto packet = CastSpellPacket::build(7266, targetGuid, 0);
|
||||
LOG_DEBUG("Built duel request (spell 7266) for target: 0x", std::hex, targetGuid, std::dec);
|
||||
return packet;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue