feat(object): add CMovementStatus

This commit is contained in:
fallenoak 2026-01-12 20:27:55 -06:00
parent 1cc8c3ce40
commit 4114f1ee16
No known key found for this signature in database
GPG Key ID: 7628F8E61AEA070D
2 changed files with 71 additions and 0 deletions

View File

@ -0,0 +1,39 @@
#include "object/movement/CMovementStatus.hpp"
#include "util/DataStore.hpp"
CDataStore& operator>>(CDataStore& msg, CMovementStatus& move) {
msg.Get(move.moveFlags);
msg.Get(move.uint14);
msg.Get(move.uint0);
msg >> move.position18;
msg.Get(move.facing34);
if (move.moveFlags & 0x200) {
// TODO
} else {
move.transport = 0;
// TODO
}
if ((move.moveFlags & (0x200000 | 0x2000000)) || (move.uint14 & 0x20)) {
msg.Get(move.float38);
} else {
move.float38 = 0.0f;
}
msg.Get(move.uint3C);
if (move.moveFlags & 0x1000) {
msg.Get(move.float40);
msg.Get(move.float44);
msg.Get(move.float48);
msg.Get(move.float4C);
}
if (move.moveFlags & 0x4000000) {
msg.Get(move.float50);
}
return msg;
}

View File

@ -0,0 +1,32 @@
#ifndef OBJECT_MOVEMENT_C_MOVEMENT_STATUS_HPP
#define OBJECT_MOVEMENT_C_MOVEMENT_STATUS_HPP
#include "util/GUID.hpp"
#include <common/DataStore.hpp>
#include <tempest/Vector.hpp>
#include <cstdint>
struct CMovementStatus {
uint32_t uint0 = 0;
// TODO
WOWGUID transport = 0;
uint32_t moveFlags = 0x0;
uint16_t uint14 = 0;
// TODO
C3Vector position18;
float facing24 = 0.0f;
C3Vector position28;
float facing34 = 0.0f;
float float38 = 0.0f;
uint32_t uint3C = 0;
float float40 = 0.0f;
float float44 = 0.0f;
float float48 = 0.0f;
float float4C = 0.0f;
float float50 = 0.0f;
// TODO
};
CDataStore& operator>>(CDataStore& msg, CMovementStatus& move);
#endif