2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 13:07:42 +00:00

More collision imps and stubs

This commit is contained in:
2016-04-26 17:26:02 -07:00
parent bacc98d4a6
commit 2af6117ef8
15 changed files with 306 additions and 23 deletions

View File

@@ -23,20 +23,36 @@ public:
SIndexData(CInputStream&);
};
class CNodeLeafData
class CLeafData
{
std::vector<u16> x0_surface;
public:
CLeafData()=default;
CLeafData(const std::vector<u16>&);
CLeafData(CInputStream&);
const std::vector<u16>& GetSurfaceVector() const;
};
class CNode
{
zeus::COBBox x0_obb;
bool x3c_ = false;
std::unique_ptr<CNode> x40_;
std::unique_ptr<CNode> x44_;
std::unique_ptr<CNodeLeafData> x48_;
bool x3c_isLeaf = false;
std::unique_ptr<CNode> x40_left;
std::unique_ptr<CNode> x44_right;
std::unique_ptr<CLeafData> x48_leaf;
public:
CNode() = default;
CNode(const CNode&)=default;
CNode(const zeus::CTransform&, const zeus::CVector3f&, const CNode*, const CNode*, const CLeafData*);
CNode(CInputStream&);
bool WasHit() const;
void SetWasHit(bool) const;
CNode* GetLeft() const;
CNode* GetRight() const;
CLeafData* GetLeafData() const;
const zeus::COBBox& GetOBB() const;
};
private:
@@ -46,10 +62,9 @@ private:
u32 x8_memsize = 0;
/* CSimpleAllocator xc_ We're not using this but lets keep track*/
SIndexData x18_indexData;
std::unique_ptr<CNode> x88_root;
std::unique_ptr<const CNode> x88_root;
public:
COBBTree()=default;
COBBTree(const COBBTree::SIndexData&, const CNode*);
COBBTree(CInputStream&);
};