3#include <actor/ActorUniqueID.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");
64
65
66
67 void link(
const sead::Vector3f& position, u32 type_mask, u8 movement_id);
71
72
73
74
75 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);
89 return mParentActorID;
104 return mTwoWayDistanceMultiplier;
109 return mFloorGyrationAngle;
119 return mBoltDirection;
129 return mMovementProperties;
159 mTwoWayDistanceMultiplier = multiplier;
164 mFloorGyrationAngle = angle;
174 mBoltDirection = direction;
184 mMovementProperties = properties;
250static_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:157
Angle mAngle
Definition ParentMovementMgr.h:220
bool mPivotalGyroscopic
Definition ParentMovementMgr.h:231
bool mPivotalTilted
Definition ParentMovementMgr.h:229
void linkPivotal2(PivotalRotationSettings pivot_settings)
u32 mTypeMask
Definition ParentMovementMgr.h:218
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:225
u8 _54
Definition ParentMovementMgr.h:221
Angle getAngle() const
Definition ParentMovementMgr.h:92
const sead::Vector3f & getPosition() const
Definition ParentMovementMgr.h:82
void setBoltSpeed(f32 speed)
Definition ParentMovementMgr.h:167
void setPivotalUnknown(bool pivotal_unknown)
Definition ParentMovementMgr.h:197
sead::Vector3f mPivotCenter
Definition ParentMovementMgr.h:211
void setPivotalUpsideDown(bool pivotal_upside_down)
Definition ParentMovementMgr.h:187
DirType mBoltDirection
Definition ParentMovementMgr.h:235
u32 _a4
Definition ParentMovementMgr.h:240
u32 _a0
Definition ParentMovementMgr.h:239
u32 _44
Definition ParentMovementMgr.h:217
Angle mFloorGyrationAngle
Definition ParentMovementMgr.h:224
u8 _5c[0x74-0x5C]
Definition ParentMovementMgr.h:223
void setMovementProperties(const MovementProperties &properties)
Definition ParentMovementMgr.h:182
u32 _ac
Definition ParentMovementMgr.h:242
u32 _40
Definition ParentMovementMgr.h:216
void setAngle(Angle angle)
Definition ParentMovementMgr.h:152
u32 _a8
Definition ParentMovementMgr.h:241
u8 _89
Definition ParentMovementMgr.h:233
u32 _b0
Definition ParentMovementMgr.h:243
sead::Vector3f _18
Definition ParentMovementMgr.h:210
bool getPivotalUnknown() const
Definition ParentMovementMgr.h:142
bool mPivotalUnknown
Definition ParentMovementMgr.h:230
u32 _bc
Definition ParentMovementMgr.h:246
Angle getFloorGyrationAngle() const
Definition ParentMovementMgr.h:107
u32 _b4
Definition ParentMovementMgr.h:244
u8 _88
Definition ParentMovementMgr.h:232
u32 _7c
Definition ParentMovementMgr.h:226
void setPivotalGyroscopic(bool pivotal_gyroscopic)
Definition ParentMovementMgr.h:202
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:172
u32 _34
Definition ParentMovementMgr.h:213
bool getPivotalGyroscopic() const
Definition ParentMovementMgr.h:147
bool mPivotalUpsideDown
Definition ParentMovementMgr.h:228
MovementProperties mMovementProperties
Definition ParentMovementMgr.h:247
f32 mTwoWayDistanceMultiplier
Definition ParentMovementMgr.h:222
void setPivotalTilted(bool pivotal_tilted)
Definition ParentMovementMgr.h:192
f32 mBoltSpeed
Definition ParentMovementMgr.h:236
bool getPivotalTilted() const
Definition ParentMovementMgr.h:137
bool getPivotalUpsideDown() const
Definition ParentMovementMgr.h:132
u8 mMovementId
Definition ParentMovementMgr.h:219
sead::Vector3f _c
Definition ParentMovementMgr.h:209
ActorUniqueID mParentActorID
Definition ParentMovementMgr.h:214
void setRectPlatformInfo(RectPlatformInfo info)
Definition ParentMovementMgr.h:177
RectPlatformInfo getRectPlatformInfo() const
Definition ParentMovementMgr.h:122
u8 getMovementID() const
Definition ParentMovementMgr.h:97
f32 getBoltSpeed() const
Definition ParentMovementMgr.h:112
u32 _8c
Definition ParentMovementMgr.h:234
u32 _3c
Definition ParentMovementMgr.h:215
u32 getTypeMask(ParentMovementType type)
ActorUniqueID getParentActorID() const
Definition ParentMovementMgr.h:87
MovementProperties getMovementProperties() const
Definition ParentMovementMgr.h:127
DirType getBoltDirection() const
Definition ParentMovementMgr.h:117
DECLARE_STATE_ID(ParentMovementType, Search)
u32 _80
Definition ParentMovementMgr.h:227
RectPlatformInfo mRectPlatformInfo
Definition ParentMovementMgr.h:237
void setFloorGyrationAngle(Angle angle)
Definition ParentMovementMgr.h:162
u32 _30
Definition ParentMovementMgr.h:212
FStateMgr< ParentMovementMgr > mFStateMgr
Definition ParentMovementMgr.h:248
u32 _b8
Definition ParentMovementMgr.h:245
u32 _9c
Definition ParentMovementMgr.h:238
sead::Vector3f mPosition
Definition ParentMovementMgr.h:208
f32 getTwoWayDistanceMultiplier() const
Definition ParentMovementMgr.h:102
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