rodecomp/Source/ActorPickNode.h
ragnarok-clanker 53af619c20 Decompile 6 functions in Source/ActorPickNode.cpp, Source/ActorPickNode.h, ...
Batch #5891 by Tanke: 2 byte-identical, 4 confirmed by peer review.

- fn_17878 MovementRouteInterpolation::Duration: byte-identical
- fn_17880 MovementRouteInterpolation::Empty: byte-identical
- fn_17881 CPathFinder::Walkable: logic confirmed by peer review
- fn_17909 CActorPickNode::Clear: logic confirmed by peer review
- fn_17910 CActorPickNode::Pick: logic confirmed by peer review
- fn_17911 CActorPickNode::MakeQuardTree: logic confirmed by peer review

Peer-reviewed-by: ragnarok-clanker, KWDev
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
2026-10-30 17:16:50 +00:00

56 lines
1.4 KiB
C++

#ifndef RAGNAROK_SOURCE_ACTORPICKNODE_H
#define RAGNAROK_SOURCE_ACTORPICKNODE_H
#include <cstddef>
#include <list>
struct ActorPickInfo {
/* 0000 */ float left;
/* 0004 */ float top;
/* 0008 */ float depth;
/* 000C */ float right;
/* 0010 */ float bottom;
/* 0014 */ float depthOffset;
/* 0018 */ unsigned char unknown_0018[0x10];
};
struct ActorPickBounds {
/* 0000 */ int left;
/* 0004 */ int top;
/* 0008 */ int right;
/* 000C */ int bottom;
};
class CActorPickNode {
public:
// INLINED
CActorPickNode() : children{} {
}
virtual ~CActorPickNode();
void AddPickInfo(ActorPickInfo* info);
void Clear();
ActorPickInfo* Pick(float x, float y);
void MakeQuardTree(int depth, ActorPickBounds bounds);
/* 0004 */ int left;
/* 0008 */ int top;
/* 000C */ int right;
/* 0010 */ int bottom;
/* 0014 */ CActorPickNode* children[4];
/* 0024 */ std::list<ActorPickInfo*> pickInfos;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(ActorPickInfo) == 0x28);
static_assert(offsetof(ActorPickInfo, depth) == 0x08);
static_assert(offsetof(ActorPickInfo, right) == 0x0C);
static_assert(offsetof(ActorPickInfo, bottom) == 0x10);
static_assert(offsetof(ActorPickInfo, depthOffset) == 0x14);
static_assert(sizeof(ActorPickBounds) == 0x10);
static_assert(offsetof(CActorPickNode, children) == 0x14);
static_assert(offsetof(CActorPickNode, pickInfos) == 0x24);
static_assert(sizeof(CActorPickNode) == 0x2C);
#endif
#endif