net: add MSG_MOVE_START_DESCEND to other-player movement dispatch

The complement to MSG_MOVE_START_ASCEND was missing from both the
main dispatch switch and the compressed-moves opcode table, causing
downward vertical movement of flying players to be dropped.
This commit is contained in:
Kelsi 2026-03-10 11:30:55 -07:00
parent 785df23f1b
commit 71cabddbd6

View file

@ -4480,6 +4480,7 @@ void GameHandler::handlePacket(network::Packet& packet) {
case Opcode::MSG_MOVE_STOP_PITCH:
case Opcode::MSG_MOVE_START_ASCEND:
case Opcode::MSG_MOVE_STOP_ASCEND:
case Opcode::MSG_MOVE_START_DESCEND:
if (state == WorldState::IN_WORLD) {
handleOtherPlayerMovement(packet);
}
@ -12245,7 +12246,7 @@ void GameHandler::handleCompressedMoves(network::Packet& packet) {
// Player movement sub-opcodes (SMSG_MULTIPLE_MOVES carries MSG_MOVE_*)
// Not static — wireOpcode() depends on runtime active opcode table.
const std::array<uint16_t, 22> kMoveOpcodes = {
const std::array<uint16_t, 23> kMoveOpcodes = {
wireOpcode(Opcode::MSG_MOVE_START_FORWARD),
wireOpcode(Opcode::MSG_MOVE_START_BACKWARD),
wireOpcode(Opcode::MSG_MOVE_STOP),
@ -12268,6 +12269,7 @@ void GameHandler::handleCompressedMoves(network::Packet& packet) {
wireOpcode(Opcode::MSG_MOVE_STOP_PITCH),
wireOpcode(Opcode::MSG_MOVE_START_ASCEND),
wireOpcode(Opcode::MSG_MOVE_STOP_ASCEND),
wireOpcode(Opcode::MSG_MOVE_START_DESCEND),
};
// Track unhandled sub-opcodes once per compressed packet (avoid log spam)