3#include <actor/UniqueID.h>
4#include <state/FStateMgr.h>
5#include <utility/Angle.h>
6#include <utility/Direction.h>
8#include <math/seadVector.h>
44 static_assert(
sizeof(
MovementProperties) == 0x14,
"ParentMovementMgr::MovementProperties size mismatch");
58 static_assert(
sizeof(
PivotalRotationSettings) == 0x2C,
"ParentMovementMgr::PivotalRotationSettings size mismatch");
65
66
67
68
69 void link(
const sead::Vector3f& position, u32 type_mask, u8 movement_id);
75
76
77
78
79 void linkPivotal(
const sead::Vector3f& position, u32 movement_mask, s8 movement_id,
const sead::Vector3f& pivot_center =
sead::
Vector3f(0.0f, 0.0f, 0.0f),
bool tilted =
false,
bool unk_8 =
false,
bool upside_down =
false,
bool movement_param =
true);
93 return mParentActorID;
108 return mTwoWayDistanceMultiplier;
113 return mFloorGyrationAngle;
123 return mBoltDirection;
133 return mMovementProperties;
163 mTwoWayDistanceMultiplier = multiplier;
168 mFloorGyrationAngle = angle;
178 mBoltDirection = direction;
188 mMovementProperties = properties;
254static_assert(
sizeof(
ParentMovementMgr) == 0xF8,
"ParentMovementMgr size mismatch");
ParentMovementType
Definition ParentMovementMgr.h:11
@ cPos_ShiftingPlatform
Definition ParentMovementMgr.h:20
@ cPos_Gyration
Definition ParentMovementMgr.h:21
@ cPos_Rail
Definition ParentMovementMgr.h:15
@ cPos_CenterRotation
Definition ParentMovementMgr.h:13
@ cPos_GoAndCome
Definition ParentMovementMgr.h:16
@ cPos_FloorGyration
Definition ParentMovementMgr.h:22
@ cPos_ScrewKinokoLift
Definition ParentMovementMgr.h:18
@ cPos_Screw
Definition ParentMovementMgr.h:14
@ cPos_ScrewKinokoLift_NoScrew
Definition ParentMovementMgr.h:19
@ cPos_None
Definition ParentMovementMgr.h:12
@ cPos_KinokoLift
Definition ParentMovementMgr.h:23
RectPlatformInfo
Definition ParentMovementMgr.h:27
@ cRectPlatformInfo_FollowBottom
Definition ParentMovementMgr.h:29
@ cRectPlatformInfo_FollowNone
Definition ParentMovementMgr.h:30
@ cRectPlatformInfo_FollowTop
Definition ParentMovementMgr.h:28
Definition ParentMovementMgr.h:34
void setTwoWayDistanceMultiplier(f32 multiplier)
Definition ParentMovementMgr.h:161
Angle mAngle
Definition ParentMovementMgr.h:224
bool mPivotalGyroscopic
Definition ParentMovementMgr.h:235
bool mPivotalTilted
Definition ParentMovementMgr.h:233
void linkPivotal2(PivotalRotationSettings pivot_settings)
u32 mTypeMask
Definition ParentMovementMgr.h:222
void linkPivotal(const sead::Vector3f &position, u32 movement_mask, s8 movement_id, const sead::Vector3f &pivot_center=sead::Vector3f(0.0f, 0.0f, 0.0f), bool tilted=false, bool unk_8=false, bool upside_down=false, bool movement_param=true)
Links to movement controllers with the matching movement id and type mask.
u32 _78
Definition ParentMovementMgr.h:229
u8 _54
Definition ParentMovementMgr.h:225
Angle getAngle() const
Definition ParentMovementMgr.h:96
const sead::Vector3f & getPosition() const
Definition ParentMovementMgr.h:86
void setBoltSpeed(f32 speed)
Definition ParentMovementMgr.h:171
void setPivotalUnknown(bool pivotal_unknown)
Definition ParentMovementMgr.h:201
sead::Vector3f mPivotCenter
Definition ParentMovementMgr.h:215
void setPivotalUpsideDown(bool pivotal_upside_down)
Definition ParentMovementMgr.h:191
DirType mBoltDirection
Definition ParentMovementMgr.h:239
u32 _a4
Definition ParentMovementMgr.h:244
u32 _a0
Definition ParentMovementMgr.h:243
u32 _44
Definition ParentMovementMgr.h:221
Angle mFloorGyrationAngle
Definition ParentMovementMgr.h:228
u8 _5c[0x74-0x5C]
Definition ParentMovementMgr.h:227
void setMovementProperties(const MovementProperties &properties)
Definition ParentMovementMgr.h:186
u32 _ac
Definition ParentMovementMgr.h:246
u32 _40
Definition ParentMovementMgr.h:220
void setAngle(Angle angle)
Definition ParentMovementMgr.h:156
u32 _a8
Definition ParentMovementMgr.h:245
u8 _89
Definition ParentMovementMgr.h:237
u32 _b0
Definition ParentMovementMgr.h:247
sead::Vector3f _18
Definition ParentMovementMgr.h:214
bool getPivotalUnknown() const
Definition ParentMovementMgr.h:146
bool mPivotalUnknown
Definition ParentMovementMgr.h:234
u32 _bc
Definition ParentMovementMgr.h:250
Angle getFloorGyrationAngle() const
Definition ParentMovementMgr.h:111
u32 _b4
Definition ParentMovementMgr.h:248
u8 _88
Definition ParentMovementMgr.h:236
u32 _7c
Definition ParentMovementMgr.h:230
void setPivotalGyroscopic(bool pivotal_gyroscopic)
Definition ParentMovementMgr.h:206
void link(const sead::Vector3f &position, u32 type_mask, u8 movement_id)
Links to movement controllers with the matching movement id and type mask.
void setBoltDirection(DirType direction)
Definition ParentMovementMgr.h:176
u32 _34
Definition ParentMovementMgr.h:217
bool getPivotalGyroscopic() const
Definition ParentMovementMgr.h:151
bool mPivotalUpsideDown
Definition ParentMovementMgr.h:232
MovementProperties mMovementProperties
Definition ParentMovementMgr.h:251
f32 mTwoWayDistanceMultiplier
Definition ParentMovementMgr.h:226
void setPivotalTilted(bool pivotal_tilted)
Definition ParentMovementMgr.h:196
f32 mBoltSpeed
Definition ParentMovementMgr.h:240
UniqueID mParentActorID
Definition ParentMovementMgr.h:218
UniqueID getParentActorID() const
Definition ParentMovementMgr.h:91
bool getPivotalTilted() const
Definition ParentMovementMgr.h:141
bool getPivotalUpsideDown() const
Definition ParentMovementMgr.h:136
u8 mMovementId
Definition ParentMovementMgr.h:223
sead::Vector3f _c
Definition ParentMovementMgr.h:213
void setRectPlatformInfo(RectPlatformInfo info)
Definition ParentMovementMgr.h:181
RectPlatformInfo getRectPlatformInfo() const
Definition ParentMovementMgr.h:126
u8 getMovementID() const
Definition ParentMovementMgr.h:101
f32 getBoltSpeed() const
Definition ParentMovementMgr.h:116
u32 _8c
Definition ParentMovementMgr.h:238
u32 _3c
Definition ParentMovementMgr.h:219
u32 getTypeMask(ParentMovementType type)
MovementProperties getMovementProperties() const
Definition ParentMovementMgr.h:131
DirType getBoltDirection() const
Definition ParentMovementMgr.h:121
DECLARE_STATE_ID(ParentMovementType, Search)
u32 _80
Definition ParentMovementMgr.h:231
RectPlatformInfo mRectPlatformInfo
Definition ParentMovementMgr.h:241
void setFloorGyrationAngle(Angle angle)
Definition ParentMovementMgr.h:166
u32 _30
Definition ParentMovementMgr.h:216
FStateMgr< ParentMovementMgr > mFStateMgr
Definition ParentMovementMgr.h:252
u32 _b8
Definition ParentMovementMgr.h:249
u32 _9c
Definition ParentMovementMgr.h:242
sead::Vector3f mPosition
Definition ParentMovementMgr.h:212
f32 getTwoWayDistanceMultiplier() const
Definition ParentMovementMgr.h:106
Definition ParentMovementMgr.h:37
u32 _8
Definition ParentMovementMgr.h:40
u32 _4
Definition ParentMovementMgr.h:39
f32 hill_distance_offset
Definition ParentMovementMgr.h:42
u32 _c
Definition ParentMovementMgr.h:41
u32 _0
Definition ParentMovementMgr.h:38
Definition ParentMovementMgr.h:47
sead::Vector3f position
Definition ParentMovementMgr.h:48
bool gyroscopic
Definition ParentMovementMgr.h:56
bool _21
Definition ParentMovementMgr.h:53
sead::Vector3f pivot_center
Definition ParentMovementMgr.h:51
bool upside_down
Definition ParentMovementMgr.h:54
u32 movement_mask
Definition ParentMovementMgr.h:49
u32 movement_param
Definition ParentMovementMgr.h:55
u8 movement_id
Definition ParentMovementMgr.h:50
bool tilted
Definition ParentMovementMgr.h:52