Update opcode data and movement integration docs/code

This commit is contained in:
Kelsi 2026-02-18 03:15:25 -08:00
parent 69b23f4edd
commit 73e7c86621
11 changed files with 41 additions and 15 deletions

View file

@ -105,6 +105,13 @@ public:
bool isEntityMoving() const { return isMoving_; }
// Returns the latest server-authoritative position: destination if moving, current if not.
// Unlike getX/Y/Z (which only update via updateMovement), this always reflects the
// last known server position regardless of distance culling.
float getLatestX() const { return isMoving_ ? moveEndX_ : x; }
float getLatestY() const { return isMoving_ ? moveEndY_ : y; }
float getLatestZ() const { return isMoving_ ? moveEndZ_ : z; }
// Object type
ObjectType getType() const { return type; }
void setType(ObjectType t) { type = t; }

View file

@ -1049,6 +1049,7 @@ private:
// ---- Creature movement handler ----
void handleMonsterMove(network::Packet& packet);
void handleCompressedMoves(network::Packet& packet);
void handleMonsterMoveTransport(network::Packet& packet);
// ---- Other player movement (MSG_MOVE_* from server) ----

View file

@ -157,6 +157,7 @@ enum class LogicalOpcode : uint16_t {
// ---- Creature Movement ----
SMSG_MONSTER_MOVE,
SMSG_COMPRESSED_MOVES, // Vanilla/Classic batch movement packet (0x6B)
// ---- Phase 2: Combat Core ----
CMSG_ATTACKSWING,

View file

@ -1450,7 +1450,11 @@ struct MonsterMoveData {
class MonsterMoveParser {
public:
// WotLK 3.3.5a format: PackedGUID + uint8 unk + float[3] + uint32 splineId + uint8 moveType + ...
static bool parse(network::Packet& packet, MonsterMoveData& data);
// Vanilla 1.12 format: PackedGUID + float[3] + uint32 timeInMs + uint8 moveType + ...
// Used for Classic/TBC/Turtle WoW servers (no splineId, timeInMs before moveType)
static bool parseVanilla(network::Packet& packet, MonsterMoveData& data);
};
/** SMSG_ATTACKSTART data */