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

#include <ActorBgCollisionCheck.h>

Inherited by ActorBgCollisionEnemyCheck, ActorBgCollisionObjCheck, and ActorBgCollisionPlayerCheck.

Classes

class  Output
struct  Sensor
class  SensorFlag

Public Types

enum  SakaType {
  cSakaType_None = 0 , cSakaType_Gentle , cSakaType_Moderate , cSakaType_Steep ,
  cSakaType_VerySteep , cSakaType_Num
}
enum  SakaDir { cSakaDir_Right = 0 , cSakaDir_Left }
enum  HitDirBit {
  cHitDirBit_Right = 0 , cHitDirBit_Left , cHitDirBit_Up , cHitDirBit_Down ,
  cHitDirBit_BoostBlock_Right , cHitDirBit_BoostBlock_Left , cHitDirBit_BoostBlock_Up , cHitDirBit_BoostBlock_Down
}
typedef sead::UnsafeArray< Sensor, cDirType_NumSensorArray
typedef sead::UnsafeArray< bool, cDirType_NumSensorBoolArray
typedef sead::UnsafeArray< Sensor, cDirType_NumXWallSensorArray
typedef sead::UnsafeArray< bool, cDirType_NumXWallSensorBoolArray
typedef sead::UnsafeArray< SensorFlag, cDirType_NumSensorFlagArray
typedef sead::UnsafeArray< BgCollisionCat, cDirType_NumSensorBgCollisionCatArray
typedef sead::UnsafeArray< ActorBgCollisionCheckResult, cBgCollisionCat_NumBgCheckResultArray
typedef sead::UnsafeArray< BgCheckResultArray, cDirType_NumSensorBgCheckResultArray
typedef sead::UnsafeArray< u64, cDirType_NumSensorHitBgCheckDataArray

Public Member Functions

 ActorBgCollisionCheck ()
virtual ~ActorBgCollisionCheck ()
virtual void checkBg ()
virtual void clearBg ()
virtual void atFrameStart ()
virtual ActorgetOwnerAtRevCheck (f32 bg_collision_pos_y) const =0
virtual ActorgetOwnerAtHit (const BgCollision &bg_collision, u8 direction) const =0
virtual s8 * vf4C (f32) const =0
virtual void vf54 ()
void set (Actor *owner, const Sensor *foot, const Sensor *head, const Sensor *wall)
 Initialize the checker with the owner and sensors.
ActorgetOwner () const
template<typename T>
T * getOwner () const
void setSensor (const Sensor *sensor, u8 direction)
const SensorgetSensor (u8 direction) const
void setSensorFoot (const Sensor *foot)
void setSensorHead (const Sensor *head)
void setSensorWall (const Sensor *wall_r)
bool isSensor1Set (DirType direction) const
bool isSensor1Null (DirType direction) const
bool isSensor2Set (DirType direction) const
const SensorArraygetSensorArray1 () const
const SensorArraygetSensorArray2 () const
SensorgetSensor1 (DirType direction)
const SensorgetSensor1 (DirType direction) const
SensorgetSensor2 (DirType direction)
const SensorgetSensor2 (DirType direction) const
const SensorgetSensorEffective (DirType direction) const
SensorFlaggetSensorFlag (DirType direction)
const SensorFlaggetSensorFlag (DirType direction) const
ActorgetIgnoreActor () const
void setIgnoreActor (Actor *actor)
const FollowArggetFollowArg () const
OutputgetOutput ()
const OutputgetOutput () const
bool checkFoot () const
bool checkHead () const
bool checkWall (DirType direction) const
bool checkRide () const
bool isQuicksand () const
bool isOnTrampoline () const
const sead::Vector2fgetBgSpeed () const
bool isHit (u8 hit_dir_flag) const
BgCollisiongetHitBgCollisionFoot () const
BgCollisiongetHitBgCollisionHead () const
BgCollisiongetHitBgCollisionWall (DirType direction) const
const u64 & getBgCheckData (DirType direction) const
const u64 & getBgCheckDataPrev (DirType direction) const
Angle getSakaBaseAngle ()
Angle getHeadSakaBaseAngle ()
SakaType getSakaType (Angle saka_base_angle)
bool isSaka ()
SakaDir getSakaDir ()
Angle getSakaAngle (DirType dir)
Angle getHeadSakaAngle (DirType dir)
Angle getWallAngle (DirType dir)
BasicBgCollisionCheckgetBgCheck ()
const BasicBgCollisionCheckgetBgCheck () const
void initBgCheck ()

Static Public Member Functions

static WaterType checkWater (f32 *surface_pos_y, const sead::Vector3f &pos, u8 layer)
static WaterType checkWater (f32 *surface_pos_y, BgCollisionCheckHitResult *hit_result, const sead::Vector3f &pos, u8 layer)
static WaterType checkWater (const sead::Vector3f &pos, u8 layer)
static u32 checkWaterDepth (f32 x, f32 y, u8 layer)

Protected Types

typedef LineNodeMgr< ActorBgCollisionCheckList

Protected Member Functions

virtual void checkFoot_ ()
virtual void checkHead_ ()
virtual void checkWall_ (u8 direction)

Protected Attributes

BasicBgCollisionCheck mBgCheck
ActorBgHitCheckCallback mBgHitCheckCallback
sead::FixedPtrArray< BgCollision, 512 > _54
List::Node mListNodeFoot
List::Node mListNodeHead
List::Node mListNodeWallR
List::Node mListNodeWallL
ActormOwner
ActormIgnoreActor
FollowArg mFollowArg
Output mOutput
Output mOutputPrev
sead::BoundBox2f _8b4
sead::BoundBox2f _8c4
sead::BoundBox2f _8d4
sead::BoundBox2f _8e4
sead::BoundBox2f _8f4
sead::Vector2f mBgSpeed
f32 _90c
u32 _910
u8 mHitDirectionFlag
bool mIsInitialized
bool _916
bool _917
bool _918
SensorBoolArray mIsSensor1Set
SensorBoolArray mIsSensor1Null
SensorBoolArray mIsSensor2Set
SensorArray mSensor1
SensorArray mSensor2
SensorArray mSensor3
WallSensorArray mSensor4
WallSensorBoolArray mIsSensor4Set
WallSensorBoolArray mIsSensor4SetPrev
SensorFlagArray mSensorFlag
SensorBgCollisionCatArray mBgCheckResultIdx
SensorBgCollisionCatArray mBgCheckResultIdxPrev
SensorBgCheckResultArray mBgCheckResult
SensorBgCheckResultArray mBgCheckResultPrev
SensorHitBgCheckDataArray mBgCheckData
SensorHitBgCheckDataArray mBgCheckDataPrev
u32 _14d8

Member Typedef Documentation

◆ SensorArray

◆ SensorBoolArray

◆ WallSensorArray

◆ WallSensorBoolArray

◆ SensorFlagArray

◆ SensorBgCollisionCatArray

◆ BgCheckResultArray

◆ SensorBgCheckResultArray

◆ SensorHitBgCheckDataArray

◆ List

Member Enumeration Documentation

◆ SakaType

Enumerator
cSakaType_None 
cSakaType_Gentle 
cSakaType_Moderate 
cSakaType_Steep 
cSakaType_VerySteep 
cSakaType_Num 

◆ SakaDir

Enumerator
cSakaDir_Right 
cSakaDir_Left 

◆ HitDirBit

Enumerator
cHitDirBit_Right 
cHitDirBit_Left 
cHitDirBit_Up 
cHitDirBit_Down 
cHitDirBit_BoostBlock_Right 
cHitDirBit_BoostBlock_Left 
cHitDirBit_BoostBlock_Up 
cHitDirBit_BoostBlock_Down 

Constructor & Destructor Documentation

◆ ActorBgCollisionCheck()

ActorBgCollisionCheck::ActorBgCollisionCheck ( )

◆ ~ActorBgCollisionCheck()

virtual ActorBgCollisionCheck::~ActorBgCollisionCheck ( )
virtual

Member Function Documentation

◆ checkBg()

virtual void ActorBgCollisionCheck::checkBg ( )
virtual

◆ clearBg()

virtual void ActorBgCollisionCheck::clearBg ( )
virtual

Reimplemented in ActorBgCollisionPlayerCheck.

◆ atFrameStart()

virtual void ActorBgCollisionCheck::atFrameStart ( )
virtual

Reimplemented in ActorBgCollisionPlayerCheck.

◆ getOwnerAtRevCheck()

virtual Actor * ActorBgCollisionCheck::getOwnerAtRevCheck ( f32 bg_collision_pos_y) const
pure virtual

◆ getOwnerAtHit()

virtual Actor * ActorBgCollisionCheck::getOwnerAtHit ( const BgCollision & bg_collision,
u8 direction ) const
pure virtual

◆ vf4C()

virtual s8 * ActorBgCollisionCheck::vf4C ( f32 ) const
pure virtual

◆ vf54()

virtual void ActorBgCollisionCheck::vf54 ( )
virtual

Reimplemented in ActorBgCollisionEnemyCheck.

◆ checkFoot_()

virtual void ActorBgCollisionCheck::checkFoot_ ( )
protectedvirtual

Reimplemented in ActorBgCollisionEnemyCheck.

◆ checkHead_()

virtual void ActorBgCollisionCheck::checkHead_ ( )
protectedvirtual

Reimplemented in ActorBgCollisionEnemyCheck.

◆ checkWall_()

virtual void ActorBgCollisionCheck::checkWall_ ( u8 direction)
protectedvirtual

Reimplemented in ActorBgCollisionEnemyCheck.

◆ set()

void ActorBgCollisionCheck::set ( Actor * owner,
const Sensor * foot,
const Sensor * head,
const Sensor * wall )

Initialize the checker with the owner and sensors.

Parameters
ownerThe actor which the sensors belong to and will follow.
footThe sensor to go below and check for floor collision, or nullptr if skipping this sensor.
headThe sensor to go above and check for ceiling collision, or nullptr if skipping this sensor.
wallThe sensor to go on either side and check for wall collision, or nullptr if skipping this sensor.
Address: 0x0218AF6C

◆ getOwner() [1/2]

Actor * ActorBgCollisionCheck::getOwner ( ) const
inline

◆ getOwner() [2/2]

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

◆ setSensor()

void ActorBgCollisionCheck::setSensor ( const Sensor * sensor,
u8 direction )

◆ getSensor()

const Sensor * ActorBgCollisionCheck::getSensor ( u8 direction) const

◆ setSensorFoot()

void ActorBgCollisionCheck::setSensorFoot ( const Sensor * foot)
inline

◆ setSensorHead()

void ActorBgCollisionCheck::setSensorHead ( const Sensor * head)
inline

◆ setSensorWall()

void ActorBgCollisionCheck::setSensorWall ( const Sensor * wall_r)
inline

◆ isSensor1Set()

bool ActorBgCollisionCheck::isSensor1Set ( DirType direction) const
inline

◆ isSensor1Null()

bool ActorBgCollisionCheck::isSensor1Null ( DirType direction) const
inline

◆ isSensor2Set()

bool ActorBgCollisionCheck::isSensor2Set ( DirType direction) const
inline

◆ getSensorArray1()

const SensorArray & ActorBgCollisionCheck::getSensorArray1 ( ) const
inline

◆ getSensorArray2()

const SensorArray & ActorBgCollisionCheck::getSensorArray2 ( ) const
inline

◆ getSensor1() [1/2]

Sensor * ActorBgCollisionCheck::getSensor1 ( DirType direction)
inline

◆ getSensor1() [2/2]

const Sensor * ActorBgCollisionCheck::getSensor1 ( DirType direction) const
inline

◆ getSensor2() [1/2]

Sensor * ActorBgCollisionCheck::getSensor2 ( DirType direction)
inline

◆ getSensor2() [2/2]

const Sensor * ActorBgCollisionCheck::getSensor2 ( DirType direction) const
inline

◆ getSensorEffective()

const Sensor * ActorBgCollisionCheck::getSensorEffective ( DirType direction) const
inline

◆ getSensorFlag() [1/2]

SensorFlag & ActorBgCollisionCheck::getSensorFlag ( DirType direction)
inline

◆ getSensorFlag() [2/2]

const SensorFlag & ActorBgCollisionCheck::getSensorFlag ( DirType direction) const
inline

◆ getIgnoreActor()

Actor * ActorBgCollisionCheck::getIgnoreActor ( ) const
inline

◆ setIgnoreActor()

void ActorBgCollisionCheck::setIgnoreActor ( Actor * actor)
inline

◆ getFollowArg()

const FollowArg & ActorBgCollisionCheck::getFollowArg ( ) const
inline

◆ getOutput() [1/2]

Output & ActorBgCollisionCheck::getOutput ( )
inline

◆ getOutput() [2/2]

const Output & ActorBgCollisionCheck::getOutput ( ) const
inline

◆ checkFoot()

bool ActorBgCollisionCheck::checkFoot ( ) const
inline

◆ checkHead()

bool ActorBgCollisionCheck::checkHead ( ) const
inline

◆ checkWall()

bool ActorBgCollisionCheck::checkWall ( DirType direction) const
inline

◆ checkRide()

bool ActorBgCollisionCheck::checkRide ( ) const
inline

◆ isQuicksand()

bool ActorBgCollisionCheck::isQuicksand ( ) const
inline

◆ isOnTrampoline()

bool ActorBgCollisionCheck::isOnTrampoline ( ) const
inline

◆ getBgSpeed()

const sead::Vector2f & ActorBgCollisionCheck::getBgSpeed ( ) const
inline

◆ isHit()

bool ActorBgCollisionCheck::isHit ( u8 hit_dir_flag) const
inline

◆ getHitBgCollisionFoot()

BgCollision * ActorBgCollisionCheck::getHitBgCollisionFoot ( ) const

◆ getHitBgCollisionHead()

BgCollision * ActorBgCollisionCheck::getHitBgCollisionHead ( ) const

◆ getHitBgCollisionWall()

BgCollision * ActorBgCollisionCheck::getHitBgCollisionWall ( DirType direction) const

◆ getBgCheckData()

const u64 & ActorBgCollisionCheck::getBgCheckData ( DirType direction) const
inline

◆ getBgCheckDataPrev()

const u64 & ActorBgCollisionCheck::getBgCheckDataPrev ( DirType direction) const
inline

◆ getSakaBaseAngle()

Angle ActorBgCollisionCheck::getSakaBaseAngle ( )

◆ getHeadSakaBaseAngle()

Angle ActorBgCollisionCheck::getHeadSakaBaseAngle ( )

◆ getSakaType()

SakaType ActorBgCollisionCheck::getSakaType ( Angle saka_base_angle)

◆ isSaka()

bool ActorBgCollisionCheck::isSaka ( )
inline

◆ getSakaDir()

SakaDir ActorBgCollisionCheck::getSakaDir ( )

◆ getSakaAngle()

Angle ActorBgCollisionCheck::getSakaAngle ( DirType dir)

◆ getHeadSakaAngle()

Angle ActorBgCollisionCheck::getHeadSakaAngle ( DirType dir)

◆ getWallAngle()

Angle ActorBgCollisionCheck::getWallAngle ( DirType dir)

◆ getBgCheck() [1/2]

BasicBgCollisionCheck & ActorBgCollisionCheck::getBgCheck ( )
inline

◆ getBgCheck() [2/2]

const BasicBgCollisionCheck & ActorBgCollisionCheck::getBgCheck ( ) const
inline

◆ initBgCheck()

void ActorBgCollisionCheck::initBgCheck ( )

◆ checkWater() [1/3]

WaterType ActorBgCollisionCheck::checkWater ( f32 * surface_pos_y,
const sead::Vector3f & pos,
u8 layer )
static

◆ checkWater() [2/3]

WaterType ActorBgCollisionCheck::checkWater ( f32 * surface_pos_y,
BgCollisionCheckHitResult * hit_result,
const sead::Vector3f & pos,
u8 layer )
static

◆ checkWater() [3/3]

WaterType ActorBgCollisionCheck::checkWater ( const sead::Vector3f & pos,
u8 layer )
static

◆ checkWaterDepth()

u32 ActorBgCollisionCheck::checkWaterDepth ( f32 x,
f32 y,
u8 layer )
static

Member Data Documentation

◆ mBgCheck

BasicBgCollisionCheck ActorBgCollisionCheck::mBgCheck
protected

◆ mBgHitCheckCallback

ActorBgHitCheckCallback ActorBgCollisionCheck::mBgHitCheckCallback
protected

◆ _54

sead::FixedPtrArray<BgCollision, 512> ActorBgCollisionCheck::_54
protected

◆ mListNodeFoot

List::Node ActorBgCollisionCheck::mListNodeFoot
protected

◆ mListNodeHead

List::Node ActorBgCollisionCheck::mListNodeHead
protected

◆ mListNodeWallR

List::Node ActorBgCollisionCheck::mListNodeWallR
protected

◆ mListNodeWallL

List::Node ActorBgCollisionCheck::mListNodeWallL
protected

◆ mOwner

Actor* ActorBgCollisionCheck::mOwner
protected

◆ mIgnoreActor

Actor* ActorBgCollisionCheck::mIgnoreActor
protected

◆ mFollowArg

FollowArg ActorBgCollisionCheck::mFollowArg
protected

◆ mOutput

Output ActorBgCollisionCheck::mOutput
protected

◆ mOutputPrev

Output ActorBgCollisionCheck::mOutputPrev
protected

◆ _8b4

sead::BoundBox2f ActorBgCollisionCheck::_8b4
protected

◆ _8c4

sead::BoundBox2f ActorBgCollisionCheck::_8c4
protected

◆ _8d4

sead::BoundBox2f ActorBgCollisionCheck::_8d4
protected

◆ _8e4

sead::BoundBox2f ActorBgCollisionCheck::_8e4
protected

◆ _8f4

sead::BoundBox2f ActorBgCollisionCheck::_8f4
protected

◆ mBgSpeed

sead::Vector2f ActorBgCollisionCheck::mBgSpeed
protected

◆ _90c

f32 ActorBgCollisionCheck::_90c
protected

◆ _910

u32 ActorBgCollisionCheck::_910
protected

◆ mHitDirectionFlag

u8 ActorBgCollisionCheck::mHitDirectionFlag
protected

◆ mIsInitialized

bool ActorBgCollisionCheck::mIsInitialized
protected

◆ _916

bool ActorBgCollisionCheck::_916
protected

◆ _917

bool ActorBgCollisionCheck::_917
protected

◆ _918

bool ActorBgCollisionCheck::_918
protected

◆ mIsSensor1Set

SensorBoolArray ActorBgCollisionCheck::mIsSensor1Set
protected

◆ mIsSensor1Null

SensorBoolArray ActorBgCollisionCheck::mIsSensor1Null
protected

◆ mIsSensor2Set

SensorBoolArray ActorBgCollisionCheck::mIsSensor2Set
protected

◆ mSensor1

SensorArray ActorBgCollisionCheck::mSensor1
protected

◆ mSensor2

SensorArray ActorBgCollisionCheck::mSensor2
protected

◆ mSensor3

SensorArray ActorBgCollisionCheck::mSensor3
protected

◆ mSensor4

WallSensorArray ActorBgCollisionCheck::mSensor4
protected

◆ mIsSensor4Set

WallSensorBoolArray ActorBgCollisionCheck::mIsSensor4Set
protected

◆ mIsSensor4SetPrev

WallSensorBoolArray ActorBgCollisionCheck::mIsSensor4SetPrev
protected

◆ mSensorFlag

SensorFlagArray ActorBgCollisionCheck::mSensorFlag
protected

◆ mBgCheckResultIdx

SensorBgCollisionCatArray ActorBgCollisionCheck::mBgCheckResultIdx
protected

◆ mBgCheckResultIdxPrev

SensorBgCollisionCatArray ActorBgCollisionCheck::mBgCheckResultIdxPrev
protected

◆ mBgCheckResult

SensorBgCheckResultArray ActorBgCollisionCheck::mBgCheckResult
protected

◆ mBgCheckResultPrev

SensorBgCheckResultArray ActorBgCollisionCheck::mBgCheckResultPrev
protected

◆ mBgCheckData

SensorHitBgCheckDataArray ActorBgCollisionCheck::mBgCheckData
protected

◆ mBgCheckDataPrev

SensorHitBgCheckDataArray ActorBgCollisionCheck::mBgCheckDataPrev
protected

◆ _14d8

u32 ActorBgCollisionCheck::_14d8
protected