New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
ActorBgCollisionPlayerCheck Class Reference

#include <ActorBgCollisionPlayerCheck.h>

Inherits ActorBgCollisionCheck.

Classes

struct  PcCheckArea
struct  VineResult

Public Types

enum  VineType { cVineType_None = 0 , cVineType_Ivy , cVineType_Rock , cVineType_Wire }
enum  Flag { cFlag_IsVine = 1 << 0 , cFlag_IsWallSlide = 1 << 1 , cFlag_IsSakaReverse = 1 << 2 , cFlag_IsMame = 1 << 3 }
Public Types inherited from ActorBgCollisionCheck
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

 ActorBgCollisionPlayerCheck ()
virtual ~ActorBgCollisionPlayerCheck ()
void checkBg () override
void clearBg () override
void atFrameStart () override
void setCarryPlayerNo (s8 player_no)
bool isSakaReverse () const
void onMame ()
void offMame ()
bool isMame () const
bool checkDokanDown (sead::Vector3f *pos, s32 *dst_next_goto_no)
bool checkDokanUp (sead::Vector3f *pos, s32 *dst_next_goto_no)
bool checkDokanLR (sead::Vector3f *pos, s32 *dst_next_goto_no, DirType direction, const Sensor &wall)
bool isMameDokan () const
VineResult checkVine (const Sensor &vine_sensor)
bool checkPole (const sead::Vector2f &offset)
ActorgetOwnerAtRevCheck (f32 bg_collision_pos_y) const override
ActorgetOwnerAtHit (const BgCollision &bg_collision, u8 direction) const override
s8 * vf4C (f32) const override
VineType getVineType () const
BgCollisiongetVineBgCollision () const
void setPcCheckArea (const PcCheckArea &area)
bool checkGround (const sead::Vector3f &pos, f32 check_distance, BgCollisionCheckResultArea *res=nullptr)
bool checkWall (const sead::Vector3f &pos, f32 speed_x, f32 *hit_pos_x=nullptr, bool use_callback=false)
bool checkTenjou (const sead::Vector3f &pos, f32 check_distance, f32 *hit_pos_y=nullptr, bool no_invis_block=false)
bool checkQuicksand (const sead::Vector3f &pos, f32 *hit_pos_y=nullptr)
bool checkKani (s32 *type, f32 *hit_pos_y, const sead::Vector3f &pos, f32 check_distance)
bool checkWall (DirType direction) const
Public Member Functions inherited from ActorBgCollisionCheck
 ActorBgCollisionCheck ()
virtual ~ActorBgCollisionCheck ()
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 ()

Private Attributes

List::Node _14e0
s8 mCarryPlayerNo
sead::BitFlag16 mFlag
bool mIsMameDokan
VineType mVineType
BgCollisionmVineBgCollision
PcCheckArea mPcCheckArea
PcCheckArea mPcCheckAreaPrev
u32 _1524 [(0x15A0 - 0x1524)/sizeof(u32)]

Additional Inherited Members

Static Public Member Functions inherited from ActorBgCollisionCheck
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 inherited from ActorBgCollisionCheck
typedef LineNodeMgr< ActorBgCollisionCheckList
Protected Member Functions inherited from ActorBgCollisionCheck
virtual void checkFoot_ ()
virtual void checkHead_ ()
virtual void checkWall_ (u8 direction)
Protected Attributes inherited from ActorBgCollisionCheck
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 Enumeration Documentation

◆ VineType

Enumerator
cVineType_None 
cVineType_Ivy 
cVineType_Rock 
cVineType_Wire 

◆ Flag

Enumerator
cFlag_IsVine 
cFlag_IsWallSlide 
cFlag_IsSakaReverse 
cFlag_IsMame 

Constructor & Destructor Documentation

◆ ActorBgCollisionPlayerCheck()

ActorBgCollisionPlayerCheck::ActorBgCollisionPlayerCheck ( )

◆ ~ActorBgCollisionPlayerCheck()

virtual ActorBgCollisionPlayerCheck::~ActorBgCollisionPlayerCheck ( )
virtual

Member Function Documentation

◆ checkBg()

void ActorBgCollisionPlayerCheck::checkBg ( )
overridevirtual

Reimplemented from ActorBgCollisionCheck.

◆ clearBg()

void ActorBgCollisionPlayerCheck::clearBg ( )
overridevirtual

Reimplemented from ActorBgCollisionCheck.

◆ atFrameStart()

void ActorBgCollisionPlayerCheck::atFrameStart ( )
overridevirtual

Reimplemented from ActorBgCollisionCheck.

◆ setCarryPlayerNo()

void ActorBgCollisionPlayerCheck::setCarryPlayerNo ( s8 player_no)
inline

◆ isSakaReverse()

bool ActorBgCollisionPlayerCheck::isSakaReverse ( ) const
inline

◆ onMame()

void ActorBgCollisionPlayerCheck::onMame ( )
inline

◆ offMame()

void ActorBgCollisionPlayerCheck::offMame ( )
inline

◆ isMame()

bool ActorBgCollisionPlayerCheck::isMame ( ) const
inline

◆ checkDokanDown()

bool ActorBgCollisionPlayerCheck::checkDokanDown ( sead::Vector3f * pos,
s32 * dst_next_goto_no )

◆ checkDokanUp()

bool ActorBgCollisionPlayerCheck::checkDokanUp ( sead::Vector3f * pos,
s32 * dst_next_goto_no )

◆ checkDokanLR()

bool ActorBgCollisionPlayerCheck::checkDokanLR ( sead::Vector3f * pos,
s32 * dst_next_goto_no,
DirType direction,
const Sensor & wall )

◆ isMameDokan()

bool ActorBgCollisionPlayerCheck::isMameDokan ( ) const
inline

◆ checkVine()

VineResult ActorBgCollisionPlayerCheck::checkVine ( const Sensor & vine_sensor)

◆ checkPole()

bool ActorBgCollisionPlayerCheck::checkPole ( const sead::Vector2f & offset)

◆ getOwnerAtRevCheck()

Actor * ActorBgCollisionPlayerCheck::getOwnerAtRevCheck ( f32 bg_collision_pos_y) const
overridevirtual

Implements ActorBgCollisionCheck.

◆ getOwnerAtHit()

Actor * ActorBgCollisionPlayerCheck::getOwnerAtHit ( const BgCollision & bg_collision,
u8 direction ) const
overridevirtual

Implements ActorBgCollisionCheck.

◆ vf4C()

s8 * ActorBgCollisionPlayerCheck::vf4C ( f32 ) const
overridevirtual

Implements ActorBgCollisionCheck.

◆ getVineType()

VineType ActorBgCollisionPlayerCheck::getVineType ( ) const
inline

◆ getVineBgCollision()

BgCollision * ActorBgCollisionPlayerCheck::getVineBgCollision ( ) const
inline

◆ setPcCheckArea()

void ActorBgCollisionPlayerCheck::setPcCheckArea ( const PcCheckArea & area)
inline

◆ checkGround()

bool ActorBgCollisionPlayerCheck::checkGround ( const sead::Vector3f & pos,
f32 check_distance,
BgCollisionCheckResultArea * res = nullptr )

◆ checkWall() [1/2]

bool ActorBgCollisionPlayerCheck::checkWall ( const sead::Vector3f & pos,
f32 speed_x,
f32 * hit_pos_x = nullptr,
bool use_callback = false )

◆ checkTenjou()

bool ActorBgCollisionPlayerCheck::checkTenjou ( const sead::Vector3f & pos,
f32 check_distance,
f32 * hit_pos_y = nullptr,
bool no_invis_block = false )

◆ checkQuicksand()

bool ActorBgCollisionPlayerCheck::checkQuicksand ( const sead::Vector3f & pos,
f32 * hit_pos_y = nullptr )

◆ checkKani()

bool ActorBgCollisionPlayerCheck::checkKani ( s32 * type,
f32 * hit_pos_y,
const sead::Vector3f & pos,
f32 check_distance )

◆ checkWall() [2/2]

bool ActorBgCollisionCheck::checkWall ( DirType direction) const
inline

Member Data Documentation

◆ _14e0

List::Node ActorBgCollisionPlayerCheck::_14e0
private

◆ mCarryPlayerNo

s8 ActorBgCollisionPlayerCheck::mCarryPlayerNo
private

◆ mFlag

sead::BitFlag16 ActorBgCollisionPlayerCheck::mFlag
private

◆ mIsMameDokan

bool ActorBgCollisionPlayerCheck::mIsMameDokan
private

◆ mVineType

VineType ActorBgCollisionPlayerCheck::mVineType
private

◆ mVineBgCollision

BgCollision* ActorBgCollisionPlayerCheck::mVineBgCollision
private

◆ mPcCheckArea

PcCheckArea ActorBgCollisionPlayerCheck::mPcCheckArea
private

◆ mPcCheckAreaPrev

PcCheckArea ActorBgCollisionPlayerCheck::mPcCheckAreaPrev
private

◆ _1524

u32 ActorBgCollisionPlayerCheck::_1524[(0x15A0 - 0x1524)/sizeof(u32)]
private