New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
BgCollision Class Referenceabstract

#include <BgCollision.h>

Inherits sead::IDisposer.

Inherited by ActorCircleBgCollision, ActorEllipseBgCollision, BasicRideLineBgCollision, LoopRideLineBgCollision, and PoleRopeBgCollision.

Classes

struct  BoxInitArg
struct  CircleInitArg
struct  EllipseInitArg
struct  InitArg
struct  LineInitArg
struct  PoleRopeInitArg

Public Types

enum  Type {
  cType_Normal = 0 , cType_Coin = 1 , cType_GreenCoin = 2 , cType_BlueCoin = 3 ,
  cType_CoinOutline = 4 , cType_Fence = 5 , cType_Vine = 6 , cType_QuestionBlock = 7 ,
  cType_BrickBlock = 8 , cType_QuestionBlockBig = 9 , cType_BrickBlockBig = 10 , cType_BlockUsedBig = 11 ,
  cType_BlockUsed = 12 , cType_WoodBlock = 13 , cType_StoneBlock = 14 , cType_RedBlock = 15 ,
  cType_DonutBlock = 16 , cType_BoostBlock = 17 , cType_UnknownLiquid = 18 , cType_Water = 19 ,
  cType_Lava = 20 , cType_Poison = 21 , cType_Quicksand = 22 , cType_Carpet = 23 ,
  cType_Leaves = 24 , cType_Wood = 25 , cType_Cloud = 26 , cType_SwingingVine = 27 ,
  cType_SwingingChain = 28 , cType_RopeLadder = 29 , cType_Ice = 30 , cType_BreakableIce = 31 ,
  cType_BreakableIce2 = 32 , cType_GrrrolPassage = 33 , cType_SpikesUp = 34 , cType_StreamCurrent = 35 ,
  cType_AirshipHand = 36 , cType_WaterGeyser = 37 , cType_Unknown10 = 38 , cType_SpineCoaster = 39 ,
  cType_Urchin = 40 , cType_InvisibleBlock = 41
}
typedef LineNodeMgr< ActorBgCollisionCheckBcList
typedef void(* Callback) (BgCollision *, ActorBgCollisionCheck *)
typedef void(* CallbackWall) (BgCollision *, ActorBgCollisionCheck *, u8 direction)
typedef bool(* CheckRev) (Actor *, Actor *)
typedef bool(* CheckRevWall) (Actor *, Actor *, u8 direction)

Public Member Functions

 BgCollision ()
virtual ~BgCollision ()
virtual bool vf24 (u32 *, u32)
virtual u32 vf2C (u32 *)
virtual void vf34 ()=0
virtual void execute ()=0
virtual bool checkAreaBasic (BgCollisionCheckResultArea *res, const BasicBgCollisionCheck &bc, const sead::Vector2f &p0, const sead::Vector2f &p1, u8 hit_dir_mask)=0
virtual bool checkAreaActor (ActorBgCollisionCheckResult *, sead::Vector2f *, sead::Vector2f *, u8 direction, ActorBgCollisionCheck *)=0
virtual bool checkPointInside (bool *on_edge, const sead::Vector2f &p) const =0
virtual bool vf5C (u32 *)=0
virtual void vf64 ()
virtual void vf6C ()=0
virtual void onBgCheckDataChange (const u64 &bc_data)=0
virtual bool checkPointInsideOrWithinDistance (const sead::Vector2f &p, f32 distance) const =0
const sead::BoundBox2f getAffectedArea () const
ActorgetOwner () const
template<typename T>
T * getOwner () const
ActorgetIgnoreActor () const
const FollowArggetFollowArg () const
sead::Vector2fgetPosOffset ()
const sead::Vector2fgetPosOffset () const
const sead::Vector2fgetPosOffset2 () const
sead::Vector2fgetTypeOffset ()
const sead::Vector2fgetTypeOffset () const
f32 getPosX () const
f32 getPosY () const
sead::Vector2f getPos () const
f32 getPosPrevX () const
f32 getPosPrevY () const
sead::Vector2f getPosPrev () const
f32 getTypePosX () const
f32 getTypePosY () const
sead::Vector2f getTypePos () const
f32 getTypePosPrevX () const
f32 getTypePosPrevY () const
sead::Vector2f getTypePosPrev () const
bool isInactive () const
Angle getAngle () const
void setAngle (Angle angle)
const BcListgetBcListFoot () const
const BcListgetBcListHead () const
const BcListgetBcListWallR () const
const BcListgetBcListWallL () const
void entryBcFoot (ActorBgCollisionCheck *bc_check)
void releaseBcFoot (ActorBgCollisionCheck *bc_check)
bool isEntryBcFoot (ActorBgCollisionCheck *bc_check) const
void reset ()
void clearBcList ()
void setType (Type type)
Type getType () const
void setBgCheckData (const u64 &bc_data)
const u64 & getBgCheckData () const
void setHitType (BgUnitCode::HitType hit_type)
void setAttr (BgUnitCode::Attr attr)
void setSlipAttr (BgUnitCode::SlipAttr slip_attr)
void update ()
sead::Vector2f addDokanMoveDiff (sead::Vector2f pos)
void setFlag (u32 flag)
void resetFlag (u32 mask)
void clearFlag ()
bool isFlag (s32 bit) const
void setCallback (Callback callback_foot, Callback callback_head, CallbackWall callback_wall)
 Register callbacks for interacting with a sensor of another actor.
void setCheckRev (CheckRev check_rev_foot, CheckRev check_rev_head, CheckRevWall check_rev_wall)
void setDrcTouchCallback (ActorCollisionDrcTouchCallback *drc_touch_callback)
Public Member Functions inherited from sead::IDisposer
 IDisposer ()
virtual ~IDisposer ()

Static Public Member Functions

static bool CheckRevUpperSpeed (Actor *actor_self, Actor *actor_other)
static bool CheckRevUnderSpeed (Actor *actor_self, Actor *actor_other)
static bool CheckRevSideSpeed (Actor *actor_self, Actor *actor_other, u8 direction)

Protected Types

typedef LineNodeMgr< BgCollisionList

Protected Attributes

List::Node mActiveListNode
List::Node mSolidListNode
List::Node mNonSolidListNode
List::Node _34
List::Node mCoinListNode
List::Node mPoleListNode
List::Node mTouchDrcCheckNoDamageListNode
List::Node mTouchDrcHoldListNode
sead::BoundBox2f mAffectedArea
sead::Vector2f mPosOffset2
sead::BitFlag32 mFlag
sead::BitFlag32 mCheckRevFlag
ActormOwner
ActormIgnoreActor
FollowArg mFollowArg
sead::Vector2f mPosOffset
sead::Vector2f mPosOffsetPrev
sead::Vector2f mRotPivotOffset
sead::Vector2f mRotPivotOffsetPrev
sead::Vector2f mTypeOffset
sead::Vector2f mTypeOffsetPrev
bool mIsInactive
BgCollisionCat mCategory
sead::Matrix22f mRotMtx
Angle mAngle
Angle mAnglePrev
BcList mBcListFoot
BcList mBcListHead
BcList mBcListWallR
BcList mBcListWallL
Type mType
u64 mBgCheckData
Callback mCallbackFoot
Callback mCallbackHead
CallbackWall mCallbackWall
CheckRev mCheckRevFoot
CheckRev mCheckRevHead
CheckRevWall mCheckRevWall
ActorCollisionDrcTouchCallbackmDrcTouchCallback
u32 _154

Member Typedef Documentation

◆ BcList

◆ Callback

typedef void(* BgCollision::Callback) (BgCollision *, ActorBgCollisionCheck *)

◆ CallbackWall

typedef void(* BgCollision::CallbackWall) (BgCollision *, ActorBgCollisionCheck *, u8 direction)

◆ CheckRev

typedef bool(* BgCollision::CheckRev) (Actor *, Actor *)

◆ CheckRevWall

typedef bool(* BgCollision::CheckRevWall) (Actor *, Actor *, u8 direction)

◆ List

Member Enumeration Documentation

◆ Type

Enumerator
cType_Normal 
cType_Coin 
cType_GreenCoin 
cType_BlueCoin 
cType_CoinOutline 
cType_Fence 
cType_Vine 
cType_QuestionBlock 
cType_BrickBlock 
cType_QuestionBlockBig 
cType_BrickBlockBig 
cType_BlockUsedBig 
cType_BlockUsed 
cType_WoodBlock 
cType_StoneBlock 
cType_RedBlock 
cType_DonutBlock 
cType_BoostBlock 
cType_UnknownLiquid 
cType_Water 
cType_Lava 
cType_Poison 
cType_Quicksand 
cType_Carpet 
cType_Leaves 
cType_Wood 
cType_Cloud 
cType_SwingingVine 
cType_SwingingChain 
cType_RopeLadder 
cType_Ice 
cType_BreakableIce 
cType_BreakableIce2 
cType_GrrrolPassage 
cType_SpikesUp 
cType_StreamCurrent 
cType_AirshipHand 
cType_WaterGeyser 
cType_Unknown10 
cType_SpineCoaster 
cType_Urchin 
cType_InvisibleBlock 

Constructor & Destructor Documentation

◆ BgCollision()

BgCollision::BgCollision ( )

◆ ~BgCollision()

virtual BgCollision::~BgCollision ( )
virtual

Member Function Documentation

◆ vf24()

virtual bool BgCollision::vf24 ( u32 * ,
u32  )
virtual

◆ vf2C()

virtual u32 BgCollision::vf2C ( u32 * )
virtual

◆ vf34()

virtual void BgCollision::vf34 ( )
pure virtual

◆ execute()

virtual void BgCollision::execute ( )
pure virtual

◆ checkAreaBasic()

virtual bool BgCollision::checkAreaBasic ( BgCollisionCheckResultArea * res,
const BasicBgCollisionCheck & bc,
const sead::Vector2f & p0,
const sead::Vector2f & p1,
u8 hit_dir_mask )
pure virtual

◆ checkAreaActor()

◆ checkPointInside()

virtual bool BgCollision::checkPointInside ( bool * on_edge,
const sead::Vector2f & p ) const
pure virtual

◆ vf5C()

virtual bool BgCollision::vf5C ( u32 * )
pure virtual

◆ vf64()

virtual void BgCollision::vf64 ( )
virtual

◆ vf6C()

◆ onBgCheckDataChange()

virtual void BgCollision::onBgCheckDataChange ( const u64 & bc_data)
pure virtual

◆ checkPointInsideOrWithinDistance()

virtual bool BgCollision::checkPointInsideOrWithinDistance ( const sead::Vector2f & p,
f32 distance ) const
pure virtual

◆ getAffectedArea()

const sead::BoundBox2f BgCollision::getAffectedArea ( ) const
inline

◆ getOwner() [1/2]

Actor * BgCollision::getOwner ( ) const
inline

◆ getOwner() [2/2]

template<typename T>
T * BgCollision::getOwner ( ) const
inline

◆ getIgnoreActor()

Actor * BgCollision::getIgnoreActor ( ) const
inline

◆ getFollowArg()

const FollowArg & BgCollision::getFollowArg ( ) const
inline

◆ getPosOffset() [1/2]

sead::Vector2f & BgCollision::getPosOffset ( )
inline

◆ getPosOffset() [2/2]

const sead::Vector2f & BgCollision::getPosOffset ( ) const
inline

◆ getPosOffset2()

const sead::Vector2f & BgCollision::getPosOffset2 ( ) const
inline

◆ getTypeOffset() [1/2]

sead::Vector2f & BgCollision::getTypeOffset ( )
inline

◆ getTypeOffset() [2/2]

const sead::Vector2f & BgCollision::getTypeOffset ( ) const
inline

◆ getPosX()

f32 BgCollision::getPosX ( ) const
inline

◆ getPosY()

f32 BgCollision::getPosY ( ) const
inline

◆ getPos()

sead::Vector2f BgCollision::getPos ( ) const
inline

◆ getPosPrevX()

f32 BgCollision::getPosPrevX ( ) const
inline

◆ getPosPrevY()

f32 BgCollision::getPosPrevY ( ) const
inline

◆ getPosPrev()

sead::Vector2f BgCollision::getPosPrev ( ) const
inline

◆ getTypePosX()

f32 BgCollision::getTypePosX ( ) const
inline

◆ getTypePosY()

f32 BgCollision::getTypePosY ( ) const
inline

◆ getTypePos()

sead::Vector2f BgCollision::getTypePos ( ) const
inline

◆ getTypePosPrevX()

f32 BgCollision::getTypePosPrevX ( ) const
inline

◆ getTypePosPrevY()

f32 BgCollision::getTypePosPrevY ( ) const
inline

◆ getTypePosPrev()

sead::Vector2f BgCollision::getTypePosPrev ( ) const
inline

◆ isInactive()

bool BgCollision::isInactive ( ) const
inline

◆ getAngle()

Angle BgCollision::getAngle ( ) const
inline

◆ setAngle()

void BgCollision::setAngle ( Angle angle)
inline

◆ getBcListFoot()

const BcList & BgCollision::getBcListFoot ( ) const
inline

◆ getBcListHead()

const BcList & BgCollision::getBcListHead ( ) const
inline

◆ getBcListWallR()

const BcList & BgCollision::getBcListWallR ( ) const
inline

◆ getBcListWallL()

const BcList & BgCollision::getBcListWallL ( ) const
inline

◆ entryBcFoot()

void BgCollision::entryBcFoot ( ActorBgCollisionCheck * bc_check)

◆ releaseBcFoot()

void BgCollision::releaseBcFoot ( ActorBgCollisionCheck * bc_check)

◆ isEntryBcFoot()

bool BgCollision::isEntryBcFoot ( ActorBgCollisionCheck * bc_check) const

◆ reset()

void BgCollision::reset ( )

◆ clearBcList()

void BgCollision::clearBcList ( )

◆ setType()

void BgCollision::setType ( Type type)

◆ getType()

Type BgCollision::getType ( ) const
inline

◆ setBgCheckData()

void BgCollision::setBgCheckData ( const u64 & bc_data)

◆ getBgCheckData()

const u64 & BgCollision::getBgCheckData ( ) const
inline

◆ setHitType()

void BgCollision::setHitType ( BgUnitCode::HitType hit_type)

◆ setAttr()

void BgCollision::setAttr ( BgUnitCode::Attr attr)

◆ setSlipAttr()

void BgCollision::setSlipAttr ( BgUnitCode::SlipAttr slip_attr)

◆ update()

void BgCollision::update ( )

◆ addDokanMoveDiff()

sead::Vector2f BgCollision::addDokanMoveDiff ( sead::Vector2f pos)

◆ setFlag()

void BgCollision::setFlag ( u32 flag)
inline

◆ resetFlag()

void BgCollision::resetFlag ( u32 mask)
inline

◆ clearFlag()

void BgCollision::clearFlag ( )
inline

◆ isFlag()

bool BgCollision::isFlag ( s32 bit) const
inline

◆ setCallback()

void BgCollision::setCallback ( Callback callback_foot,
Callback callback_head,
CallbackWall callback_wall )
inline

Register callbacks for interacting with a sensor of another actor.

Parameters
callback_footCallback for when the foot sensor touches the collider, or nullptr for no callback.
callback_headCallback for when the head sensor touches the collider, or nullptr for no callback.
callback_wallCallback for when the wall sensor touches the collider, or nullptr for no callback.

◆ setCheckRev()

void BgCollision::setCheckRev ( CheckRev check_rev_foot,
CheckRev check_rev_head,
CheckRevWall check_rev_wall )
inline

◆ setDrcTouchCallback()

void BgCollision::setDrcTouchCallback ( ActorCollisionDrcTouchCallback * drc_touch_callback)
inline

◆ CheckRevUpperSpeed()

bool BgCollision::CheckRevUpperSpeed ( Actor * actor_self,
Actor * actor_other )
inlinestatic

◆ CheckRevUnderSpeed()

bool BgCollision::CheckRevUnderSpeed ( Actor * actor_self,
Actor * actor_other )
inlinestatic

◆ CheckRevSideSpeed()

bool BgCollision::CheckRevSideSpeed ( Actor * actor_self,
Actor * actor_other,
u8 direction )
inlinestatic

Member Data Documentation

◆ mActiveListNode

List::Node BgCollision::mActiveListNode
protected

◆ mSolidListNode

List::Node BgCollision::mSolidListNode
protected

◆ mNonSolidListNode

List::Node BgCollision::mNonSolidListNode
protected

◆ _34

List::Node BgCollision::_34
protected

◆ mCoinListNode

List::Node BgCollision::mCoinListNode
protected

◆ mPoleListNode

List::Node BgCollision::mPoleListNode
protected

◆ mTouchDrcCheckNoDamageListNode

List::Node BgCollision::mTouchDrcCheckNoDamageListNode
protected

◆ mTouchDrcHoldListNode

List::Node BgCollision::mTouchDrcHoldListNode
protected

◆ mAffectedArea

sead::BoundBox2f BgCollision::mAffectedArea
protected

◆ mPosOffset2

sead::Vector2f BgCollision::mPosOffset2
protected

◆ mFlag

sead::BitFlag32 BgCollision::mFlag
protected

◆ mCheckRevFlag

sead::BitFlag32 BgCollision::mCheckRevFlag
protected

◆ mOwner

Actor* BgCollision::mOwner
protected

◆ mIgnoreActor

Actor* BgCollision::mIgnoreActor
protected

◆ mFollowArg

FollowArg BgCollision::mFollowArg
protected

◆ mPosOffset

sead::Vector2f BgCollision::mPosOffset
protected

◆ mPosOffsetPrev

sead::Vector2f BgCollision::mPosOffsetPrev
protected

◆ mRotPivotOffset

sead::Vector2f BgCollision::mRotPivotOffset
protected

◆ mRotPivotOffsetPrev

sead::Vector2f BgCollision::mRotPivotOffsetPrev
protected

◆ mTypeOffset

sead::Vector2f BgCollision::mTypeOffset
protected

◆ mTypeOffsetPrev

sead::Vector2f BgCollision::mTypeOffsetPrev
protected

◆ mIsInactive

bool BgCollision::mIsInactive
protected

◆ mCategory

BgCollisionCat BgCollision::mCategory
protected

◆ mRotMtx

sead::Matrix22f BgCollision::mRotMtx
protected

◆ mAngle

Angle BgCollision::mAngle
protected

◆ mAnglePrev

Angle BgCollision::mAnglePrev
protected

◆ mBcListFoot

BcList BgCollision::mBcListFoot
protected

◆ mBcListHead

BcList BgCollision::mBcListHead
protected

◆ mBcListWallR

BcList BgCollision::mBcListWallR
protected

◆ mBcListWallL

BcList BgCollision::mBcListWallL
protected

◆ mType

Type BgCollision::mType
protected

◆ mBgCheckData

u64 BgCollision::mBgCheckData
protected

◆ mCallbackFoot

Callback BgCollision::mCallbackFoot
protected

◆ mCallbackHead

Callback BgCollision::mCallbackHead
protected

◆ mCallbackWall

CallbackWall BgCollision::mCallbackWall
protected

◆ mCheckRevFoot

CheckRev BgCollision::mCheckRevFoot
protected

◆ mCheckRevHead

CheckRev BgCollision::mCheckRevHead
protected

◆ mCheckRevWall

CheckRevWall BgCollision::mCheckRevWall
protected

◆ mDrcTouchCallback

ActorCollisionDrcTouchCallback* BgCollision::mDrcTouchCallback
protected

◆ _154

u32 BgCollision::_154
protected