New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
BasicBgCollisionCheck.h
Go to the documentation of this file.
1#pragma once
2
3#include <collision/BgCollisionCheckType.h>
4#include <system/LineNodeMgr.h>
5#include <utility/Direction.h>
6
7#include <math/seadVector.h>
8#include <prim/seadBitFlag.h>
9
10class Actor;
11class BgCollision;
16
18{
19public:
20 static const u8 cHitDirMaskAll = (
21 1 << cDirType_Right |
22 1 << cDirType_Left |
23 1 << cDirType_Up |
24 1 << cDirType_Down
25 );
26
27protected:
28 // Address: 0x021A09A4
30
31 // Address: 0x021A09D8
32 bool isMatching_(const u64& bc_data) const;
33
34 // Address: 0x021A0A44
35 bool isConsider_(const BgCollision& bg_collision) const;
36
37public:
38 // Address: 0x021A0B8C
40 // Address: 0x021A0C44
42
43 // Address: 0x021A0D04
45
46 // Address: 0x021A0D40
47 bool checkAreaUnit(BgCollisionCheckResultArea* res, const sead::Vector2f& p0, const sead::Vector2f& p1, u8 hit_dir_mask = cHitDirMaskAll) const;
48 // Address: 0x021A1184
49 bool checkAreaActor(BgCollisionCheckResultArea* res, const sead::Vector2f& p0, const sead::Vector2f& p1, u8 hit_dir_mask = cHitDirMaskAll) const;
50 // Address: 0x021A13F0
51 bool checkArea(BgCollisionCheckResultArea* res, const sead::Vector2f& p0, const sead::Vector2f& p1, u8 hit_dir_mask = cHitDirMaskAll) const;
52
53 // Address: 0x021A1610
54 bool checkPointUnit(BgCollisionCheckResultPoint* res, const sead::Vector2f& p) const;
55 // Address: 0x021A1828
56 bool checkPointActor(BgCollisionCheckResultPoint* res, const sead::Vector2f& p) const;
57 // Address: 0x021A1988
58 bool checkPoint(BgCollisionCheckResultPoint* res, const sead::Vector2f& p) const;
59
60 void setIgnoreQuicksand(bool ignore)
61 {
62 mIgnoreQuicksand = ignore;
63 }
64
65 void setLayer(u8 layer)
66 {
67 mLayer = layer;
68 }
69
70private:
78 u32 mIgnoreActor[(0x48 - 0x10) / sizeof(u32)]; // sead::FixedRingBuffer<Actor*, 10> mIgnoreActor; // Actors to ignore their BgCollision
80};
81static_assert(sizeof(BasicBgCollisionCheck) == 0x4C);
Definition Actor.h:19
Definition BasicBgCollisionCheck.h:18
bool checkPoint(BgCollisionCheckResultPoint *res, const sead::Vector2f &p) const
bool isMatching_(const u64 &bc_data) const
void initialize(const BgCollisionCheckParam &param)
bool isConsider_(const BgCollision &bg_collision) const
BgCollisionCheckType mType
Definition BasicBgCollisionCheck.h:75
static const u8 cHitDirMaskAll
Definition BasicBgCollisionCheck.h:20
sead::BitFlag8 mCollisionMask
Definition BasicBgCollisionCheck.h:74
bool checkArea(BgCollisionCheckResultArea *res, const sead::Vector2f &p0, const sead::Vector2f &p1, u8 hit_dir_mask=cHitDirMaskAll) const
u8 _0
Definition BasicBgCollisionCheck.h:71
u8 mLayer
Definition BasicBgCollisionCheck.h:73
const LineNodeMgr< BgCollision > & getActorBgCollisionList_() const
BgHitCheckCallback * mCallback
Definition BasicBgCollisionCheck.h:77
void setLayer(u8 layer)
Definition BasicBgCollisionCheck.h:65
Actor * mActor
Definition BasicBgCollisionCheck.h:76
void setIgnoreQuicksand(bool ignore)
Definition BasicBgCollisionCheck.h:60
bool mIgnoreQuicksand
Definition BasicBgCollisionCheck.h:72
bool checkAreaUnit(BgCollisionCheckResultArea *res, const sead::Vector2f &p0, const sead::Vector2f &p1, u8 hit_dir_mask=cHitDirMaskAll) const
bool checkPointActor(BgCollisionCheckResultPoint *res, const sead::Vector2f &p) const
bool checkAreaActor(BgCollisionCheckResultArea *res, const sead::Vector2f &p0, const sead::Vector2f &p1, u8 hit_dir_mask=cHitDirMaskAll) const
u32 _48
Definition BasicBgCollisionCheck.h:79
u32 mIgnoreActor[(0x48 - 0x10)/sizeof(u32)]
Definition BasicBgCollisionCheck.h:78
bool checkPointUnit(BgCollisionCheckResultPoint *res, const sead::Vector2f &p) const
BasicBgCollisionCheck(const BgCollisionCheckParam &param)
Definition BgCollision.h:19
Definition BgHitCheckCallback.h:9
Definition BgCollisionCheckParam.h:10
Definition BgCollisionCheckResult.h:19
Definition BgCollisionCheckResult.h:11