Skip to content

Commit 959ea4c

Browse files
committed
[Fix] Correct 4.3.4 LFG opcode values
m3's LFG opcode block used a placeholder 0x135E-0x1373 sequence instead of real 4.3.4 (build 15595) values. Replace all wrong SMSG and CMSG values with the ones verified against the client's own dispatch table and serializer functions (client_opcode_table_434.tsv / Wow-64.c), add the four SMSG and one CMSG name m3 was missing (SMSG_LFG_UPDATE_STATUS, SMSG_LFG_UPDATE_STATUS_NONE, SMSG_LFG_BOOT_PROPOSAL_UPDATE, SMSG_LFG_SLOT_INVALID, CMSG_LFG_LOCK_INFO_REQUEST), rename CMSG_LFG_PROPOSAL_RESPONSE -> CMSG_LFG_PROPOSAL_RESULT and CMSG_LFG_BOOT_PLAYER_VOTE -> CMSG_LFG_SET_BOOT_VOTE, and retire SMSG_LFG_UPDATE_PLAYER, SMSG_LFG_UPDATE_PARTY, SMSG_LFG_UPDATE_SEARCH, CMSG_LFG_GET_PLAYER_INFO, CMSG_LFG_GET_PARTY_INFO and CMSG_LFG_SET_NEEDS, which have no 4.3.4 counterpart (the first two collapsed into SMSG_LFG_UPDATE_STATUS with an IsParty bit; GET_PLAYER_INFO/GET_PARTY_INFO merged into CMSG_LFG_LOCK_INFO_REQUEST). Fixes SMSG_OPEN_LFG_DUNGEON_FINDER from 0x0412 to 0x2C37 -- a live bug: 0x0412 is actually CMSG_LFG_LOCK_INFO_REQUEST (client-to-server), so the old value assigned an inbound opcode's slot to an outbound packet under a false "4.3.4 15595" verified-comment. Kept every LFG opcode commented out of OpcodeTable.cpp except SMSG_OPEN_LFG_DUNGEON_FINDER and SMSG_LFG_DISABLED (both already live); this corrects values only and enables nothing new. Values not explicitly listed for rename (SMSG_LFG_SEARCH_RESULTS, SMSG_ROLE_CHOSEN, CMSG_LFG_SEARCH_JOIN, CMSG_LFG_SEARCH_LEAVE) keep their existing m3 names -- LFGHandler.cpp references them by name in live (non-commented) packet-building code, so renaming would have broken the build; only their numeric values were wrong. Two retired/renamed opcodes were also referenced by name in that same live code (SendLfgUpdate/SendLfgBootUpdate in LFGHandler.cpp, reachable from LFGMgrProposal.cpp/LFGMgrQueue.cpp even though no CMSG opcode currently dispatches into that path): updated those two call sites to the new identifiers to keep the build green. Packet body shape is untouched -- that is Phase 3 (packet layer rewrite), not this value-only pass. No duplicate values introduced: checked all 1407 enum entries.
1 parent fd7759d commit 959ea4c

3 files changed

Lines changed: 35 additions & 37 deletions

File tree

src/game/Server/OpcodeTable.cpp

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1002,22 +1002,20 @@ void InitializeOpcodes()
10021002
//OPCODE(CMSG_LFG_SEARCH_LEAVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSearchLfgLeaveOpcode );
10031003
//OPCODE(SMSG_LFG_SEARCH_RESULTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
10041004
//OPCODE(SMSG_LFG_PROPOSAL_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
1005-
//OPCODE(CMSG_LFG_PROPOSAL_RESPONSE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::Handle_NULL );
1005+
//OPCODE(CMSG_LFG_PROPOSAL_RESULT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::Handle_NULL );
10061006
//OPCODE(SMSG_LFG_ROLE_CHECK_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
10071007
//OPCODE(SMSG_LFG_JOIN_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
10081008
//OPCODE(SMSG_LFG_QUEUE_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
10091009
OPCODE(CMSG_SET_LFG_COMMENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetLfgCommentOpcode );
1010-
//OPCODE(SMSG_LFG_UPDATE_PLAYER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
1011-
//OPCODE(SMSG_LFG_UPDATE_PARTY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
1012-
//OPCODE(SMSG_LFG_UPDATE_SEARCH, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
1010+
//OPCODE(SMSG_LFG_UPDATE_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
1011+
//OPCODE(SMSG_LFG_UPDATE_STATUS_NONE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
1012+
//OPCODE(SMSG_LFG_SLOT_INVALID, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
10131013
//OPCODE(CMSG_LFG_SET_ROLES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
1014-
//OPCODE(CMSG_LFG_SET_NEEDS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
1015-
//OPCODE(CMSG_LFG_BOOT_PLAYER_VOTE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
1016-
//OPCODE(SMSG_LFG_BOOT_PLAYER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
1017-
//OPCODE(CMSG_LFG_GET_PLAYER_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
1014+
//OPCODE(CMSG_LFG_LOCK_INFO_REQUEST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
1015+
//OPCODE(CMSG_LFG_SET_BOOT_VOTE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
1016+
//OPCODE(SMSG_LFG_BOOT_PROPOSAL_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
10181017
//OPCODE(SMSG_LFG_PLAYER_INFO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
10191018
//OPCODE(CMSG_LFG_TELEPORT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
1020-
//OPCODE(CMSG_LFG_GET_PARTY_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
10211019
//OPCODE(SMSG_LFG_PARTY_INFO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
10221020
OPCODE(SMSG_TITLE_EARNED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
10231021
OPCODE(CMSG_SET_TITLE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTitleOpcode );

src/game/WorldHandlers/LFGHandler.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,9 @@ void WorldSession::SendLfgUpdate(bool isGroup, LFGPlayerStatus status)
371371
break;
372372
}
373373

374-
WorldPacket data(isGroup ? SMSG_LFG_UPDATE_PARTY : SMSG_LFG_UPDATE_PLAYER);
374+
// SMSG_LFG_UPDATE_PLAYER/SMSG_LFG_UPDATE_PARTY collapsed into one 4.3.4
375+
// opcode carrying an IsParty bit; body still needs the Phase 3 rewrite.
376+
WorldPacket data(SMSG_LFG_UPDATE_STATUS);
375377
data << uint8(status.updateType);
376378

377379
data << uint8(dungeonSize > 0);
@@ -594,7 +596,7 @@ void WorldSession::SendLfgBootUpdate(LFGBoot const& boot)
594596

595597
uint32 timeLeft = uint8(((boot.startTime + LFG_TIME_BOOT) - time(NULL)) / 1000);
596598

597-
WorldPacket data(SMSG_LFG_BOOT_PLAYER, 27 + boot.reason.length());
599+
WorldPacket data(SMSG_LFG_BOOT_PROPOSAL_UPDATE, 27 + boot.reason.length());
598600

599601
data << uint8(boot.inProgress); // Is boot still ongoing?
600602
data << uint8(plrAnswer != LFG_ANSWER_PENDING); // Did this player vote yet?

src/proto/Opcodes.h

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -593,8 +593,8 @@ enum OpcodesList
593593
SMSG_ENVIRONMENTALDAMAGELOG = 0x6C05, // 4.3.4 15595
594594
CMSG_CHANGEPLAYER_DIFFICULTY = 0x6107, // 4.3.4 15595
595595
SMSG_RWHOIS = 0x11FF,
596-
SMSG_LFG_PLAYER_REWARD = 0x1200,
597-
SMSG_LFG_TELEPORT_DENIED = 0x1201,
596+
SMSG_LFG_PLAYER_REWARD = 0x6834, // 4.3.4 15595
597+
SMSG_LFG_TELEPORT_DENIED = 0x0E14, // 4.3.4 15595
598598
CMSG_UNLEARN_SPELL = 0x1202,
599599
CMSG_UNLEARN_SKILL = 0x6106, // 4.3.4 15595
600600
SMSG_REMOVED_SPELL = 0x4804, // 4.3.4 15595
@@ -752,7 +752,7 @@ enum OpcodesList
752752
CMSG_BUYBACK_ITEM = 0x6C17, // 4.3.4 15595
753753
SMSG_SERVER_MESSAGE = 0x6C04, // 4.3.4 15595
754754
CMSG_SET_SAVED_INSTANCE_EXTEND = 0x6706, // 4.3.4 15595
755-
SMSG_LFG_OFFER_CONTINUE = 0x1294,
755+
SMSG_LFG_OFFER_CONTINUE = 0x6B27, // 4.3.4 15595
756756
CMSG_TEST_DROP_RATE = 0x1295,
757757
SMSG_TEST_DROP_RATE_RESULT = 0x1296,
758758
CMSG_LFG_GET_STATUS = 0x2581, // 4.3.4 15595
@@ -792,7 +792,7 @@ enum OpcodesList
792792
SMSG_AREA_TRIGGER_MESSAGE = 0x4505, // 4.3.4 15595
793793
CMSG_SHOWING_HELM = 0x0735, // 4.3.4 15595
794794
CMSG_SHOWING_CLOAK = 0x4135, // 4.3.4 15595
795-
SMSG_ROLE_CHOSEN = 0x12BC,
795+
SMSG_ROLE_CHOSEN = 0x6A26, // 4.3.4 15595
796796
SMSG_PLAYER_SKINNED = 0x0116, // 4.3.4 15595
797797
SMSG_DURABILITY_DAMAGE_DEATH = 0x4C27, // 4.3.4 15595
798798
CMSG_SET_EXPLORATION = 0x12BF,
@@ -961,28 +961,26 @@ enum OpcodesList
961961
CMSG_MOVE_STOP_ASCEND = 0x7B00, // 4.3.4 15595
962962
SMSG_ARENA_TEAM_STATS = 0x4425, // 4.3.4 15595
963963
CMSG_LFG_JOIN = 0x2430, // 4.3.4 15595
964-
CMSG_LFG_LEAVE = 0x135E,
965-
CMSG_LFG_SEARCH_JOIN = 0x135F,
966-
CMSG_LFG_SEARCH_LEAVE = 0x1360,
967-
SMSG_LFG_SEARCH_RESULTS = 0x1361,
968-
SMSG_LFG_PROPOSAL_UPDATE = 0x1362,
969-
CMSG_LFG_PROPOSAL_RESPONSE = 0x1363,
970-
SMSG_LFG_ROLE_CHECK_UPDATE = 0x1364,
971-
SMSG_LFG_JOIN_RESULT = 0x1365,
972-
SMSG_LFG_QUEUE_STATUS = 0x1366,
964+
CMSG_LFG_LEAVE = 0x2433, // 4.3.4 15595
965+
CMSG_LFG_SEARCH_JOIN = 0x0531, // 4.3.4 15595
966+
CMSG_LFG_SEARCH_LEAVE = 0x0500, // 4.3.4 15595
967+
SMSG_LFG_SEARCH_RESULTS = 0x54A1, // 4.3.4 15595
968+
SMSG_LFG_PROPOSAL_UPDATE = 0x7DA6, // 4.3.4 15595
969+
CMSG_LFG_PROPOSAL_RESULT = 0x0403, // 4.3.4 15595
970+
SMSG_LFG_ROLE_CHECK_UPDATE = 0x0336, // 4.3.4 15595
971+
SMSG_LFG_JOIN_RESULT = 0x38B6, // 4.3.4 15595
972+
SMSG_LFG_QUEUE_STATUS = 0x78B4, // 4.3.4 15595
973973
CMSG_SET_LFG_COMMENT = 0x0530, // 4.3.4 15595
974-
SMSG_LFG_UPDATE_PLAYER = 0x1368,
975-
SMSG_LFG_UPDATE_PARTY = 0x1369,
976-
SMSG_LFG_UPDATE_SEARCH = 0x136A,
977-
CMSG_LFG_SET_ROLES = 0x136B,
978-
CMSG_LFG_SET_NEEDS = 0x136C,
979-
CMSG_LFG_BOOT_PLAYER_VOTE = 0x136D,
980-
SMSG_LFG_BOOT_PLAYER = 0x136E,
981-
CMSG_LFG_GET_PLAYER_INFO = 0x136F,
982-
SMSG_LFG_PLAYER_INFO = 0x1370,
983-
CMSG_LFG_TELEPORT = 0x1371,
984-
CMSG_LFG_GET_PARTY_INFO = 0x1372,
985-
SMSG_LFG_PARTY_INFO = 0x1373,
974+
SMSG_LFG_UPDATE_STATUS = 0x31A4, // 4.3.4 15595
975+
SMSG_LFG_UPDATE_STATUS_NONE = 0x7CA1, // 4.3.4 15595
976+
SMSG_LFG_SLOT_INVALID = 0x54B5, // 4.3.4 15595
977+
CMSG_LFG_SET_ROLES = 0x0480, // 4.3.4 15595
978+
CMSG_LFG_LOCK_INFO_REQUEST = 0x0412, // 4.3.4 15595
979+
CMSG_LFG_SET_BOOT_VOTE = 0x04B3, // 4.3.4 15595
980+
SMSG_LFG_BOOT_PROPOSAL_UPDATE = 0x0F05, // 4.3.4 15595
981+
SMSG_LFG_PLAYER_INFO = 0x4B36, // 4.3.4 15595
982+
CMSG_LFG_TELEPORT = 0x2482, // 4.3.4 15595
983+
SMSG_LFG_PARTY_INFO = 0x2325, // 4.3.4 15595
986984
SMSG_TITLE_EARNED = 0x2426, // 4.3.4 15595
987985
CMSG_SET_TITLE = 0x2117, // 4.3.4 15595
988986
CMSG_CANCEL_MOUNT_AURA = 0x0635, // 4.3.4 15595
@@ -1406,7 +1404,7 @@ enum OpcodesList
14061404
CMSG_AUTH_CONTINUED_SESSION = 0x1513,
14071405
CMSG_DROP_NEW_CONNECTION = 0x1514,
14081406
SMSG_SEND_ALL_COMBAT_LOG = 0x1515,
1409-
SMSG_OPEN_LFG_DUNGEON_FINDER = 0x0412, // 4.3.4 15595
1407+
SMSG_OPEN_LFG_DUNGEON_FINDER = 0x2C37, // 4.3.4 15595
14101408
SMSG_MOVE_SET_COLLISION_HGT = 0x11B0, // 4.3.4 15595
14111409
CMSG_MOVE_SET_COLLISION_HGT_ACK = 0x7114, // 4.3.4 15595
14121410
MSG_MOVE_SET_COLLISION_HGT = 0x1519,

0 commit comments

Comments
 (0)