2021-11-02 03:06:09 +00:00
|
|
|
#ifndef _SWEEPPRUNE_H
|
|
|
|
#define _SWEEPPRUNE_H
|
|
|
|
|
|
|
|
#include "types.h"
|
|
|
|
|
2021-11-04 02:15:55 +00:00
|
|
|
struct Callback;
|
|
|
|
|
2021-11-02 03:06:09 +00:00
|
|
|
namespace SweepPrune {
|
|
|
|
struct Node {
|
|
|
|
float m_radius; // _00
|
|
|
|
Node* m_prev; // _04
|
|
|
|
Node* m_next; // _08
|
|
|
|
Node* m_current; // _0C
|
2021-11-02 15:32:37 +00:00
|
|
|
uint m_flags; // _10
|
2021-11-02 03:06:09 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct Object {
|
|
|
|
Node m_minX; // _00
|
|
|
|
Node m_maxX; // _14
|
|
|
|
Node m_minZ; // _28
|
|
|
|
Node m_maxZ; // _3C
|
|
|
|
};
|
|
|
|
|
|
|
|
struct World {
|
2021-11-04 02:15:55 +00:00
|
|
|
struct ResolveArg {
|
|
|
|
Callback* m_callback;
|
|
|
|
u32* _04;
|
2021-11-04 02:30:01 +00:00
|
|
|
u32 _08;
|
2021-11-04 02:15:55 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
void resolve(ResolveArg&);
|
|
|
|
|
2021-11-04 02:30:01 +00:00
|
|
|
float _00; // _00
|
|
|
|
u32 _04; // _04
|
|
|
|
u32 _08; // _08
|
|
|
|
u32 _0C; // _0C
|
|
|
|
u8 _10[4]; // _10
|
|
|
|
float _14; // _14
|
|
|
|
u32 _18; // _18
|
|
|
|
u32 _1C; // _1C
|
|
|
|
u32 _20; // _20
|
2021-11-02 03:06:09 +00:00
|
|
|
};
|
|
|
|
} // namespace SweepPrune
|
|
|
|
|
2021-11-04 02:15:55 +00:00
|
|
|
struct Callback {
|
|
|
|
virtual void invoke(SweepPrune::Object*, SweepPrune::Object*);
|
|
|
|
};
|
|
|
|
|
|
|
|
struct SweepCallback : Callback {
|
|
|
|
virtual void invoke(SweepPrune::Object*, SweepPrune::Object*);
|
|
|
|
|
|
|
|
// vt _00
|
|
|
|
};
|
|
|
|
|
2021-11-02 03:06:09 +00:00
|
|
|
#endif
|