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

#include <LineManager.h>

Public Member Functions

 LineManager ()
void initialize (const sead::Vector2f &pos, u32 layer, f32 base_speed=0.0f, bool stop_at_end=false, bool dir_left=false)
void initTermCheckPos ()
void changeDirection ()
void setBaseSpeed (f32 speed)
Angle acmAngle () const
u32 getLineUnitNo (f32 x, f32 y) const
void startLineMove (bool exec_fall_down=false)
f32 calcAdjustPosY (f32, f32)
void printInitState (const sead::SafeString &) const
bool isUnitCircle2x2 (u32)
bool isUnitCircle4x4 (u32)
bool lineCrossSlopeCheck (f32 *, f32 *, const sead::Vector2f &, const sead::Vector2f &)
bool lineCrossRangeCheck (f32, f32, f32)
bool slopeCrossSetIfCan (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &, f32, f32)
bool heightCrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool widthCrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
void circleNextPosSet (const sead::Vector3f &pos, f32)
bool checkTerm ()
void moveOnCircleSpeedSet (f32, f32)
void correctPosXUnitOver ()
void correctPosYUnitOver ()
Angle acmRotDeltaU2UPrev (Angle)
Angle acmRotDeltaU2URev (Angle)
void calcRotateToCircleRev (Angle, bool)
void calcRotateToCirclePrev (Angle, bool)
bool line0CrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool line1CrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool line3HCrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool line3VCrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool line4CrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool line5CrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool line7CrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool line8CrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool line9CrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool lineACrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool lineBCrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool lineCCrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool lineDCrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool lineECrossCheck (const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool lineFCrossCheck (const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
bool circleUL2CrossCheck (const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
bool circleUR2CrossCheck (const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
bool circleDL2CrossCheck (const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
bool circleDR2CrossCheck (const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
bool lineRHURCrossCheck (const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
bool lineRHULCrossCheck (const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
bool lineRHLLCrossCheck (const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
bool lineRHLRCrossCheck (const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
void fallOnLineCheck ()
bool moveToRightUpper (u32, const sead::Vector2f &, bool)
bool moveToRightLower (u32, const sead::Vector2f &, bool)
bool moveToLeftUpper (u32, const sead::Vector2f &, bool)
bool moveToLeftLower (u32, const sead::Vector2f &, bool)
void moveFromRightUpper (const sead::Vector2f &, bool)
void moveFromHeightUpper (const sead::Vector2f &)
void moveFromLeftLower (const sead::Vector2f &, bool)
void moveFromRightLower (const sead::Vector2f &, bool)
void moveFromHeightLower (const sead::Vector2f &)
void moveFromLeftUpper (const sead::Vector2f &, bool)
void moveOnCircle1 (f32, f32)
void moveOnCircle2 (f32, f32)
void moveOnCircle3 (f32, f32)
void moveOnCircle4 (f32, f32)
void execute ()
const sead::Vector2f & getPos () const
bool isState (const StateID &state_id) const
bool isDirLeft () const
bool isDirRight () const

Static Public Member Functions

static bool slopeCrossCheck (sead::Vector2f *, f32, f32, const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
static bool verticalCrossCheck (f32 *, f32, const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
static bool circleCrossCheck (f32, const sead::Vector2f &, const sead::Vector2f &)

Static Public Attributes

static f32 cUnitSizeX
 16.0f
static f32 cUnitSizeY
 16.0f

Protected Attributes

FStateMgr< LineManager > mStateMgr
sead::UnsafeArray< sead::Vector2f, 7 > _24
sead::Vector2f mSpeed
sead::Vector2f mPos
sead::Vector2f mPosPrev
sead::Vector2f mPosBlock
sead::Vector2f _7c
Angle mAngle
f32 mBaseSpeed
bool mStopAtEnd
u8 mLayer
bool mDirLeft
bool _8f

Constructor & Destructor Documentation

◆ LineManager()

LineManager::LineManager ( )

Member Function Documentation

◆ initialize()

void LineManager::initialize ( const sead::Vector2f & pos,
u32 layer,
f32 base_speed = 0.0f,
bool stop_at_end = false,
bool dir_left = false )
Parameters
stop_at_endWhether to stop when reaching the end as opposed to reversing.
dir_leftWhether to move left instead of right.
Address: 0x0200DF60

◆ initTermCheckPos()

void LineManager::initTermCheckPos ( )

◆ changeDirection()

void LineManager::changeDirection ( )

◆ setBaseSpeed()

void LineManager::setBaseSpeed ( f32 speed)

◆ acmAngle()

Angle LineManager::acmAngle ( ) const

◆ getLineUnitNo()

u32 LineManager::getLineUnitNo ( f32 x,
f32 y ) const

◆ startLineMove()

void LineManager::startLineMove ( bool exec_fall_down = false)

◆ calcAdjustPosY()

f32 LineManager::calcAdjustPosY ( f32 ,
f32  )

◆ printInitState()

void LineManager::printInitState ( const sead::SafeString & ) const

◆ isUnitCircle2x2()

bool LineManager::isUnitCircle2x2 ( u32 )

◆ isUnitCircle4x4()

bool LineManager::isUnitCircle4x4 ( u32 )

◆ lineCrossSlopeCheck()

bool LineManager::lineCrossSlopeCheck ( f32 * ,
f32 * ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ lineCrossRangeCheck()

bool LineManager::lineCrossRangeCheck ( f32 ,
f32 ,
f32  )

◆ slopeCrossCheck()

bool LineManager::slopeCrossCheck ( sead::Vector2f * ,
f32 ,
f32 ,
const sead::Vector2f & ,
sead::Vector2f ,
sead::Vector2f  )
static

◆ verticalCrossCheck()

bool LineManager::verticalCrossCheck ( f32 * ,
f32 ,
const sead::Vector2f & ,
sead::Vector2f ,
sead::Vector2f  )
static

◆ circleCrossCheck()

bool LineManager::circleCrossCheck ( f32 ,
const sead::Vector2f & ,
const sead::Vector2f &  )
static

◆ slopeCrossSetIfCan()

bool LineManager::slopeCrossSetIfCan ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f & ,
f32 ,
f32  )

◆ heightCrossCheck()

bool LineManager::heightCrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ widthCrossCheck()

bool LineManager::widthCrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ circleNextPosSet()

void LineManager::circleNextPosSet ( const sead::Vector3f & pos,
f32  )

◆ checkTerm()

bool LineManager::checkTerm ( )

◆ moveOnCircleSpeedSet()

void LineManager::moveOnCircleSpeedSet ( f32 ,
f32  )

◆ correctPosXUnitOver()

void LineManager::correctPosXUnitOver ( )

◆ correctPosYUnitOver()

void LineManager::correctPosYUnitOver ( )

◆ acmRotDeltaU2UPrev()

Angle LineManager::acmRotDeltaU2UPrev ( Angle )

◆ acmRotDeltaU2URev()

Angle LineManager::acmRotDeltaU2URev ( Angle )

◆ calcRotateToCircleRev()

void LineManager::calcRotateToCircleRev ( Angle ,
bool  )

◆ calcRotateToCirclePrev()

void LineManager::calcRotateToCirclePrev ( Angle ,
bool  )

◆ line0CrossCheck()

bool LineManager::line0CrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ line1CrossCheck()

bool LineManager::line1CrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ line3HCrossCheck()

bool LineManager::line3HCrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ line3VCrossCheck()

bool LineManager::line3VCrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ line4CrossCheck()

bool LineManager::line4CrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ line5CrossCheck()

bool LineManager::line5CrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ line7CrossCheck()

bool LineManager::line7CrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ line8CrossCheck()

bool LineManager::line8CrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ line9CrossCheck()

bool LineManager::line9CrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ lineACrossCheck()

bool LineManager::lineACrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ lineBCrossCheck()

bool LineManager::lineBCrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ lineCCrossCheck()

bool LineManager::lineCCrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ lineDCrossCheck()

bool LineManager::lineDCrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ lineECrossCheck()

bool LineManager::lineECrossCheck ( const sead::Vector2f & ,
const sead::Vector2f & ,
const sead::Vector2f &  )

◆ lineFCrossCheck()

bool LineManager::lineFCrossCheck ( const sead::Vector2f & ,
sead::Vector2f ,
sead::Vector2f  )

◆ circleUL2CrossCheck()

bool LineManager::circleUL2CrossCheck ( const sead::Vector2f & ,
sead::Vector2f ,
sead::Vector2f  )

◆ circleUR2CrossCheck()

bool LineManager::circleUR2CrossCheck ( const sead::Vector2f & ,
sead::Vector2f ,
sead::Vector2f  )

◆ circleDL2CrossCheck()

bool LineManager::circleDL2CrossCheck ( const sead::Vector2f & ,
sead::Vector2f ,
sead::Vector2f  )

◆ circleDR2CrossCheck()

bool LineManager::circleDR2CrossCheck ( const sead::Vector2f & ,
sead::Vector2f ,
sead::Vector2f  )

◆ lineRHURCrossCheck()

bool LineManager::lineRHURCrossCheck ( const sead::Vector2f & ,
sead::Vector2f ,
sead::Vector2f  )

◆ lineRHULCrossCheck()

bool LineManager::lineRHULCrossCheck ( const sead::Vector2f & ,
sead::Vector2f ,
sead::Vector2f  )

◆ lineRHLLCrossCheck()

bool LineManager::lineRHLLCrossCheck ( const sead::Vector2f & ,
sead::Vector2f ,
sead::Vector2f  )

◆ lineRHLRCrossCheck()

bool LineManager::lineRHLRCrossCheck ( const sead::Vector2f & ,
sead::Vector2f ,
sead::Vector2f  )

◆ fallOnLineCheck()

void LineManager::fallOnLineCheck ( )

◆ moveToRightUpper()

bool LineManager::moveToRightUpper ( u32 ,
const sead::Vector2f & ,
bool  )

◆ moveToRightLower()

bool LineManager::moveToRightLower ( u32 ,
const sead::Vector2f & ,
bool  )

◆ moveToLeftUpper()

bool LineManager::moveToLeftUpper ( u32 ,
const sead::Vector2f & ,
bool  )

◆ moveToLeftLower()

bool LineManager::moveToLeftLower ( u32 ,
const sead::Vector2f & ,
bool  )

◆ moveFromRightUpper()

void LineManager::moveFromRightUpper ( const sead::Vector2f & ,
bool  )

◆ moveFromHeightUpper()

void LineManager::moveFromHeightUpper ( const sead::Vector2f & )

◆ moveFromLeftLower()

void LineManager::moveFromLeftLower ( const sead::Vector2f & ,
bool  )

◆ moveFromRightLower()

void LineManager::moveFromRightLower ( const sead::Vector2f & ,
bool  )

◆ moveFromHeightLower()

void LineManager::moveFromHeightLower ( const sead::Vector2f & )

◆ moveFromLeftUpper()

void LineManager::moveFromLeftUpper ( const sead::Vector2f & ,
bool  )

◆ moveOnCircle1()

void LineManager::moveOnCircle1 ( f32 ,
f32  )

◆ moveOnCircle2()

void LineManager::moveOnCircle2 ( f32 ,
f32  )

◆ moveOnCircle3()

void LineManager::moveOnCircle3 ( f32 ,
f32  )

◆ moveOnCircle4()

void LineManager::moveOnCircle4 ( f32 ,
f32  )

◆ execute()

void LineManager::execute ( )
inline

◆ getPos()

const sead::Vector2f & LineManager::getPos ( ) const
inline

◆ isState()

bool LineManager::isState ( const StateID & state_id) const
inline

◆ isDirLeft()

bool LineManager::isDirLeft ( ) const
inline

◆ isDirRight()

bool LineManager::isDirRight ( ) const
inline

Member Data Documentation

◆ cUnitSizeX

f32 LineManager::cUnitSizeX
static

16.0f

Address: 0x10001740

◆ cUnitSizeY

f32 LineManager::cUnitSizeY
static

16.0f

Address: Deleted

◆ mStateMgr

FStateMgr<LineManager> LineManager::mStateMgr
protected

◆ _24

sead::UnsafeArray<sead::Vector2f, 7> LineManager::_24
protected

◆ mSpeed

sead::Vector2f LineManager::mSpeed
protected

◆ mPos

sead::Vector2f LineManager::mPos
protected

◆ mPosPrev

sead::Vector2f LineManager::mPosPrev
protected

◆ mPosBlock

sead::Vector2f LineManager::mPosBlock
protected

◆ _7c

sead::Vector2f LineManager::_7c
protected

◆ mAngle

Angle LineManager::mAngle
protected

◆ mBaseSpeed

f32 LineManager::mBaseSpeed
protected

◆ mStopAtEnd

bool LineManager::mStopAtEnd
protected

◆ mLayer

u8 LineManager::mLayer
protected

◆ mDirLeft

bool LineManager::mDirLeft
protected

◆ _8f

bool LineManager::_8f
protected