3#include <state/FStateMgr.h>
4#include <utility/Angle.h>
5#include <utility/Direction.h>
6#include <prim/seadSafeString.h>
7#include <container/seadSafeArray.h>
8#include <math/seadVector.h>
17
18
19
20
21 void initialize(
const sead::Vector2f& pos, u32 layer, f32 base_speed = 0.0f,
bool stop_at_end =
false,
bool dir_left =
false);
72 bool heightCrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
75 bool widthCrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
105 bool line0CrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
107 bool line1CrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
109 bool line3HCrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
111 bool line3VCrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
113 bool line4CrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
115 bool line5CrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
117 bool line7CrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
119 bool line8CrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
121 bool line9CrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
123 bool lineACrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
125 bool lineBCrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
127 bool lineCCrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
129 bool lineDCrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
131 bool lineECrossCheck(
const sead::Vector2f&,
const sead::Vector2f&,
const sead::Vector2f&);
189 mStateMgr.executeState();
199 return *mStateMgr.getStateID() == state_id;
326
327
328
332
333
334
352static_assert(
sizeof(
LineManager) == 0x90,
"LineManager size mismatch");
Definition LineManager.h:11
bool line3HCrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool lineRHLRCrossCheck(const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
FStateMgr< LineManager > mStateMgr
Definition LineManager.h:338
void correctPosYUnitOver()
bool line8CrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
Angle mAngle
Definition LineManager.h:345
bool isDirRight() const
Definition LineManager.h:207
void calcRotateToCircleRev(Angle, bool)
bool _8f
Definition LineManager.h:350
void moveOnCircle2(f32, f32)
sead::UnsafeArray< sead::Vector2f, 7 > _24
Definition LineManager.h:339
void moveOnCircleSpeedSet(f32, f32)
void moveOnCircle1(f32, f32)
bool lineACrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
sead::Vector2f mPosBlock
Definition LineManager.h:343
Angle acmRotDeltaU2UPrev(Angle)
static bool slopeCrossCheck(sead::Vector2f *, f32, f32, const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
bool slopeCrossSetIfCan(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &, f32, f32)
bool widthCrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool lineRHLLCrossCheck(const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
void circleNextPosSet(const sead::Vector3f &pos, f32)
bool mDirLeft
Definition LineManager.h:349
bool line5CrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool lineCCrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
sead::Vector2f mSpeed
Definition LineManager.h:340
bool circleUR2CrossCheck(const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
bool line9CrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
void moveFromLeftLower(const sead::Vector2f &, bool)
bool moveToRightUpper(u32, const sead::Vector2f &, bool)
void moveFromRightUpper(const sead::Vector2f &, bool)
bool lineRHURCrossCheck(const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
void execute()
Definition LineManager.h:187
bool lineDCrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool circleUL2CrossCheck(const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
bool circleDL2CrossCheck(const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
bool lineECrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
static f32 cUnitSizeY
16.0f
Definition LineManager.h:335
const sead::Vector2f & getPos() const
Definition LineManager.h:192
bool moveToRightLower(u32, const sead::Vector2f &, bool)
void setBaseSpeed(f32 speed)
void moveFromHeightUpper(const sead::Vector2f &)
bool line0CrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool line3VCrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
void moveFromLeftUpper(const sead::Vector2f &, bool)
void initialize(const sead::Vector2f &pos, u32 layer, f32 base_speed=0.0f, bool stop_at_end=false, bool dir_left=false)
bool lineCrossRangeCheck(f32, f32, f32)
static bool circleCrossCheck(f32, const sead::Vector2f &, const sead::Vector2f &)
void moveOnCircle3(f32, f32)
void moveOnCircle4(f32, f32)
bool lineCrossSlopeCheck(f32 *, f32 *, const sead::Vector2f &, const sead::Vector2f &)
bool isDirLeft() const
Definition LineManager.h:202
bool moveToLeftUpper(u32, const sead::Vector2f &, bool)
bool lineBCrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
static bool verticalCrossCheck(f32 *, f32, const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
sead::Vector2f mPos
Definition LineManager.h:341
bool heightCrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool line1CrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool isState(const StateID &state_id) const
Definition LineManager.h:197
void moveFromHeightLower(const sead::Vector2f &)
bool lineRHULCrossCheck(const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
void correctPosXUnitOver()
bool line7CrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
bool circleDR2CrossCheck(const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
bool line4CrossCheck(const sead::Vector2f &, const sead::Vector2f &, const sead::Vector2f &)
void calcRotateToCirclePrev(Angle, bool)
void startLineMove(bool exec_fall_down=false)
bool moveToLeftLower(u32, const sead::Vector2f &, bool)
f32 mBaseSpeed
Definition LineManager.h:346
void moveFromRightLower(const sead::Vector2f &, bool)
sead::Vector2f mPosPrev
Definition LineManager.h:342
void printInitState(const sead::SafeString &) const
bool lineFCrossCheck(const sead::Vector2f &, sead::Vector2f, sead::Vector2f)
sead::Vector2f _7c
Definition LineManager.h:344
bool mStopAtEnd
Definition LineManager.h:347
Angle acmRotDeltaU2URev(Angle)
bool isUnitCircle4x4(u32)
u8 mLayer
Definition LineManager.h:348
bool isUnitCircle2x2(u32)
u32 getLineUnitNo(f32 x, f32 y) const
f32 calcAdjustPosY(f32, f32)