New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
PlayerBase.h
Go to the documentation of this file.
1#pragma once
2
3#include <actor/Actor.h>
4#include <actor/AttentionLookat.h>
5#include <audio/GameAudio.h>
6#include <collision/ActorBgCollisionPlayerCheck.h>
7#include <effect/EffectObj.h>
8#include <effect/FollowEffect.h>
9#include <game/Quake.h>
10#include <map/NextGotoType.h>
11#include <player/PlayerDrcTouchCB.h>
12#include <player/PlayerEnum.h>
13#include <player/PlayerHIO_Gravity.h>
14#include <player/PlayerKey.h>
15#include <player/util/HipdropExEffect.h>
16#include <state/FStateMgr.h>
17#include <state/FStateVirtualID.h>
18
19#include <container/seadRingBuffer.h>
20#include <container/seadSafeArray.h>
21
22#define PLAYER_JUMP_SPEED (3.628f)
23
30static_assert(sizeof(PlayerBgPointHIO) == 0x24);
31
33class PlayerModelBase;
35
36class PlayerBase : public Actor // vtbl Address: 0x10166E84
37{
38 // getRuntimeTypeInfoStatic()::typeInfo initialization guard variable Address: 0x101E9CCC
39 // getRuntimeTypeInfoStatic()::typeInfo Address: 0x101E9CD0
40 SEAD_RTTI_OVERRIDE(PlayerBase, Actor)
41
42public:
43 // Address: 0x10166BC4
44 static const f32 cFireShootFrame;
45
46public:
48 {
58 cDamageType_Fire, // Damages player first if he isn't small or mini, otherwise same as Fire2
59 cDamageType_Fire2, // Immediately kills the player regardless of the powerup
60 cDamageType_Ice, // Freezes player if he isn't small or mini, otherwise just kills him
61 cDamageType_Ice2, // Always freezes the player regardless of the powerup, never kills him
64 cDamageType_Kill, // Instant kill, no damage first
66 cDamageType_Eaten, // Instant kill
67 cDamageType_Eaten2, // Damages player first(?) if he isn't small or mini, otherwise same as Eaten
68 cDamageType_SteppedOn, // i.e., by another player
70 };
71
72 enum Status
73 {
74 cStatus_ActiveThisFrame = 1, // NSMBW: Bit 0x01
75 cStatus_DisableUpdate, // NSMBW: Bit 0x7D
76 cStatus_DisableAnm, // NSMBW: Bit 0x02
77 cStatus_ControlledState, // NSMBW: Bit 0x03
78 cStatus_DemoMode, // NSMBW: Boolean
79 cStatus_DisableSound, // NSMBW: Bit 0xB5
80 cStatus_DispOut, // NSMBW: Bit 0xB9
81 cStatus_DispOutDanger, // NSMBW: Bit 0xBA
85
86 cStatus_OutOfPlay = 14, // NSMBW: Bit 0x04 (Dead or inside bubble)
87
88 cStatus_Down = 16, // NSMBW: Bit 0x05 (Dead)
89 cStatus_Stunned, // NSMBW: Bit 0x06 (Stunned either by electric shock or ice)
90 cStatus_18, // NSMBW: Bit 0x07
91 cStatus_Quake, // NSMBW: Bit 0x08
92
93 cStatus_Jump = 25, // NSMBW: Bit 0x0A
95
96 cStatus_SinkSandSurfJump = 29, // NSMBW: Bit 0x0E
97 cStatus_SitJump, // NSMBW: Bit 0x0F
98
99 cStatus_CannonJump = 32, // NSMBW: Bit 0x11
101 cStatus_WaitJump, // NSMBW: Bit 0x12
103 cStatus_WallSlide, // NSMBW: Bit 0x13
107 cStatus_40 = 40, // NSMBW: Bit 0x15
108 cStatus_41, // NSMBW: Bit 0x16
109
110 cStatus_45 = 45, // NSMBW: Bit 0x19
111 cStatus_46, // NSMBW: Bit 0x1A
112 cStatus_47, // NSMBW: Bit 0x1B
113 cStatus_48, // NSMBW: Bit 0x1C
114 cStatus_49, // NSMBW: Bit 0x1D
115 cStatus_50, // NSMBW: Bit 0x1E
117 cStatus_52, // NSMBW: Bit 0x1F
118
119 cStatus_HipAttackOnEnemy = 55, // NSMBW: Bit 0x22
120 cStatus_56, // NSMBW: Bit 0xC4
121 cStatus_57, // NSMBW: Bit 0x24
123
124 cStatus_60 = 60, // Disable block-hit bounce
125
126 cStatus_62 = 62, // Carry-related
128 cStatus_64, // NSMBW: Bit 0x73 (MAYBE)
129
130 cStatus_NoPropelRoll = 68, // NSMBW: Bit 0x2A
131 cStatus_Spin, // NSMBW: Bit 0x2B
132
133 cStatus_71 = 71, // NSMBW: Bit 0x2D
134
135 cStatus_73 = 73, // NSMBW: Bit 0x30
136 cStatus_74, // NSMBW: Bit 0x31
137
138 cStatus_Vine = 76, // NSMBW: Bit 0x33
139 cStatus_Hang, // NSMBW: Bit 0x34
140 cStatus_Pole, // NSMBW: Bit 0x35
141 cStatus_PoleRope, // NSMBW: Bit 0x36
142 cStatus_KaniHang, // NSMBW: Bit 0x37
143
145
146 cStatus_Swim = 84, // NSMBW: Bit 0x3A
147
149
151
153 cStatus_PenguinSwim, // NSMBW: Bit 0x3B
154 cStatus_PenguinSlide, // NSMBW: Bit 0x3C
155
156 cStatus_InitialSlip = 102, // NSMBW: Bit 0x3E
157
161 cStatus_RidePlayer, // NSMBW: Bit 0x45
162 cStatus_LiftUp, // NSMBW: Bit 0x46
163 cStatus_109, // NSMBW: Bit 0x47
165 cStatus_111, // NSMBW: Bit 0x48
166
167 cStatus_113 = 113, // NSMBW: Bit 0x4A
168 cStatus_RideYoshi, // NSMBW: Bit 0x4B
169
170 cStatus_116 = 116, // NSMBW: Bit 0x4D
173 cStatus_RideCloud, // NSMBW: Bit 0x4E
174 cStatus_RideJrCrown, // NSMBW: Bit 0x4F
175 cStatus_121, // NSMBW: Bit 0x51
176 cStatus_RideBalloon, // NSMBW: Bit 0x53
177 cStatus_RideBalloonSetVisible, // NSMBW: Bit 0x54 (Make visible next frame)
178 cStatus_RideBalloonAll, // NSMBW: Bit 0x57
181 cStatus_RideNatDone, // NSMBW: Bit 0x58 (Ride Nat target reached)
182 cStatus_RideNat, // NSMBW: Bit 0x59
183 cStatus_129, // NSMBW: Bit 0x5A
184 cStatus_130, // NSMBW: Bit 0x5C
185 cStatus_131, // NSMBW: Bit 0x5D
186
187 cStatus_133 = 133, // NSMBW: Bit 0x5E
188 cStatus_134, // NSMBW: Bit 0x61
190 cStatus_136, // NSMBW: Bit 0x62
198
199 cStatus_145 = 145, // NSMBW: Bit 0x86
200 cStatus_146, // NSMBW: Bit 0x87
201 cStatus_147, // NSMBW: Bit 0x88
202 cStatus_148, // NSMBW: Bit 0x89
203 cStatus_149, // NSMBW: Bit 0x8A (Spin action request maybe?)
204 cStatus_150, // NSMBW: Bit 0x2C
205 cStatus_151, // NSMBW: Bit 0x8B
206 cStatus_152, // NSMBW: Bit 0x8C
207 cStatus_153, // NSMBW: Bit 0x8D
208 cStatus_154, // NSMBW: Bit 0x8E
210 cStatus_156, // NSMBW: Bit 0x95
211 cStatus_157, // NSMBW: Bit 0x8F
212 cStatus_158, // NSMBW: Bit 0x91
213
215
216 cStatus_EnableSpin = 165, // NSMBW: Bit 0x9F
217 cStatus_166, // NSMBW: Bit 0xA0
218
220
222 cStatus_172, // NSMBW: Bit 0xA5
223
224 cStatus_FollowMameKuribo = 174, // NSMBW: Bit 0xAC
225 cStatus_Invisible, // NSMBW: Bit 0xBB
226 cStatus_HideTemporarily, // NSMBW: Bit 0xBC (for invincibility frames)
227 cStatus_CannonShot, // NSMBW: Bit 0xBD
228 cStatus_178, // NSMBW: Bit 0xBE
229 cStatus_179, // NSMBW: Bit 0xBF
230 cStatus_CanWaterWalk, // NSMBW: Bit 0xC1
231 cStatus_IsWaterWalk, // NSMBW: Bit 0xC2
232 cStatus_182, // NSMBW: Bit 0xC3
239
241
243
244 cStatus_195 = 195, // NSMBW: Bit 0x96
245 cStatus_196, // NSMBW: Bit 0x97
246 cStatus_197, // NSMBW: Bit 0x98
248 cStatus_199, // NSMBW: Bit 0xA7
249 cStatus_200, // NSMBW: Bit 0xA8
250
251 cStatus_NoSwimAction = 203, // NSMBW: Bit 0xAA
252 cStatus_204, // NSMBW: Bit 0xAB
253 cStatus_Penguin, // NSMBW: Bit 0xAD
254 cStatus_206, // NSMBW: Bit 0xAE
257 cStatus_SceneChangeNext, // NSMBW: Bit 0x64
259
260 cStatus_212 = 212, // NSMBW: Bit 0x65
261 cStatus_213, // NSMBW: Bit 0x66
262 cStatus_214, // NSMBW: Bit 0x67
263 cStatus_215, // NSMBW: Bit 0x68
266 cStatus_218, // NSMBW: Bit 0x69
267 cStatus_219, // NSMBW: Bit 0x6A
269 cStatus_221, // NSMBW: Bit 0x6B
271 cStatus_223, // NSMBW: Bit 0x6C
272 cStatus_224, // NSMBW: Bit 0x6D
274 cStatus_226, // NSMBW: Bit 0x6E
275 cStatus_227, // NSMBW: Bit 0x6F
276
277 cStatus_DemoControlReq = 235, // NSMBW: Bit 0x71
278 cStatus_NoSlipSaka, // NSMBW: Bit 0x73 (MAYBE)
280 cStatus_DemoControl, // NSMBW: Bit 0x72
281 cStatus_239, // NSMBW: Bit 0x74
282 cStatus_240, // NSMBW: Bit 0x63 (MAYBE)
283 cStatus_241, // NSMBW: Bit 0x60 (MAYBE)
284 cStatus_242, // NSMBW: Bit 0x76
286 cStatus_DemoOnLandStop, // NSMBW: Bit 0x5F
288
289 cStatus_IgnoreBgCross = 247, // NSMBW: Bit 0x7E
290 cStatus_NoBgCrossUpdate, // NSMBW: Bit 0x7F
291 cStatus_CheckBg, // NSMBW: Bit 0x80
294 cStatus_252, // NSMBW: Bit 0x81
295 cStatus_253, // NSMBW: Bit 0xB8
297 cStatus_ControlledMove, // NSMBW: Bit 0x82
298 cStatus_ControlledMoveReq, // NSMBW: Bit 0x83
299
305 cStatus_263, // NSMBW: Bit 0x77
306 cStatus_264, // NSMBW: Bit 0x78
307 cStatus_265, // NSMBW: Bit 0x79
308 cStatus_NoEntryReactCc, // NSMBW: Bit 0x7A
310
311 cStatus_270 = 270, // NSMBW: Bit 0x84
312
313 cStatus_280 = 280, // NSMBW: Bit 0xCA
314
317
318 cStatus_EndingDisableSound = 286, // NSMBW: Bit 0x75
319
320 cStatus_LastBit = cStatus_EndingDisableSound, // Not sure if bit 287 is used
323 };
324
326 {
327 cBgCross_IsFoot = 0, // NSMBW Bit: 0x00
328 cBgCross_IsHead, // NSMBW Bit: 0x01
329 cBgCross_IsWall, // NSMBW Bit: 0x02
330 cBgCross_IsWallPressL, // NSMBW Bit: 0x03
331 cBgCross_IsWallPressR, // NSMBW Bit: 0x04
332 cBgCross_IsWallTouchL, // NSMBW Bit: 0x05
333 cBgCross_IsWallTouchR, // NSMBW Bit: 0x06
334 cBgCross_CarryRelatedL, // NSMBW Bit: 0x07
335 cBgCross_CarryRelatedR, // NSMBW Bit: 0x08
336 cBgCross_CarryObjBgCarriedL, // NSMBW Bit: 0x09
337 cBgCross_CarryObjBgCarriedR, // NSMBW Bit: 0x0A
342 cBgCross_15, // NSMBW Bit: 0x0B (MAYBE)
343 cBgCross_16, // NSMBW Bit: 0x0C
344 cBgCross_17, // NSMBW Bit: 0x0D
345 cBgCross_IsUnderwater, // NSMBW Bit: 0x0E
346 cBgCross_IsWater, // NSMBW Bit: 0x0F (All liquids)
348 cBgCross_IsWaterShallow, // NSMBW Bit: 0x11
349 cBgCross_RDash_IsNonWaterLiquid = 22, // i.e. Lava, Lava Wave, Poison & Quicksand
350 cBgCross_IsAirWater, // NSMBW Bit: 0x12
353 cBgCross_IsSnow, // NSMBW Bit: 0x16
354 cBgCross_IsIce, // NSMBW Bit: 0x17
355 cBgCross_IsIceLowSlip, // NSMBW Bit: 0x18
357 cBgCross_OnSakaUnderRoof, // NSMBW Bit: 0x19
359 cBgCross_32, // On Ride that's moving up?
360 cBgCross_IsSand, // NSMBW Bit: 0x1A
365 cBgCross_IsBeltConveyorL, // NSMBW Bit: 0x1E
366 cBgCross_IsBeltConveyorR, // NSMBW Bit: 0x1F
369 cBgCross_OnHalf, // NSMBW Bit: 0x20
370 cBgCross_OnRide, // NSMBW Bit: 0x21
371 cBgCross_IsHold, // NSMBW Bit: 0x22 (i.e., Head is touching a horizontal rope)
372 cBgCross_Slip, // NSMBW Bit: 0x23 (MAYBE)
374 cBgCross_47, // NSMBW Bit: 0x26
375 cBgCross_IsSaka, // NSMBW: daPlBase_c::isSaka()
376
382 cBgCross_IsKani, // NSMBW Bit: 0x28
383 cBgCross_IsKani2, // NSMBW Bit: 0x29
384 cBgCross_IsKani3, // NSMBW Bit: 0x2A (Never actually set at runtime)
385 cBgCross_IsPole, // NSMBW Bit: 0x2B
386 cBgCross_IsVine, // NSMBW Bit: 0x2C (MAYBE)
387 cBgCross_60, // NSMBW Bit: 0x2E (MAYBE)
388 cBgCross_61, // NSMBW Bit: 0x2F (MAYBE)
389 cBgCross_62, // NSMBW Bit: 0x30 (MAYBE)
390 cBgCross_63, // NSMBW Bit: 0x33 (MAYBE)
391 cBgCross_64, // NSMBW Bit: 0x34 (MAYBE)
392 cBgCross_65, // NSMBW Bit: 0x31 (MAYBE)
393 cBgCross_66, // NSMBW Bit: 0x35
394 cBgCross_67, // NSMBW Bit: 0x36
395 cBgCross_68, // NSMBW Bit: 0x37 (MAYBE)
396 cBgCross_69, // NSMBW Bit: 0x38
397 cBgCross_70, // NSMBW Bit: 0x39
398 cBgCross_71, // NSMBW Bit: 0x3A
399
400 cBgCross_HitBgActorYuka = 73, // NSMBW Bit: 0x3B (MAYBE)
401 cBgCross_74, // NSMBW Bit: 0x3D
402 cBgCross_75, // NSMBW Bit: 0x3E
403 cBgCross_76, // NSMBW Bit: 0x3F
404
405 cBgCross_LastBit = cBgCross_76, // Explicitly checked in function 0x029586DC
408 };
409
410 static const s32 cOldBgCrossFootNum = 10;
411
430 static_assert(cBgAttr_Num == 14);
431 static_assert(sizeof(BgAttr) == 4);
432
448 static_assert(cDokanDir_Num == 4);
449 static_assert(sizeof(DokanDir) == 4);
450
452 {
455 cDokanType_Rail // Broken (leftover from NSMBW that wasn't fully stripped)
456 };
457 static_assert(sizeof(DokanType) == 4);
458
465 static_assert(sizeof(JumpSe) == 4);
466
473 static_assert(sizeof(JumpInf) == 0xC);
474
480 static_assert(sizeof(WalkAction) == 4);
481
493 static_assert(sizeof(HipAction) == 4);
494
500 static_assert(sizeof(JumpAction) == 4);
501
509 static_assert(sizeof(PoleAction) == 4);
510
518 static_assert(sizeof(VineAction) == 4);
519
525 static_assert(sizeof(CrouchAction) == 4);
526
534 static_assert(sizeof(SlipAction) == 4);
535
548 static_assert(sizeof(CloudAction) == 4);
549
559 static_assert(sizeof(SwimAction) == 4);
560
566 static_assert(sizeof(JumpDaiAction) == 4);
567
573 static_assert(sizeof(PlayerJumpDaiAction) == 4);
574
580 static_assert(sizeof(FireAction) == 4);
581
588 static_assert(sizeof(ThrowAction) == 4);
589
595 static_assert(sizeof(WallSlideAction) == 4);
596
605 static_assert(sizeof(CarryPlayerAction) == 4);
606
617 static_assert(sizeof(FlyDamageAction) == 4);
618
629 static_assert(sizeof(BalloonAction) == 4);
630
637 static_assert(sizeof(CannonJumpAction) == 4);
638
645 static_assert(sizeof(PropelAction) == 4);
646
652 static_assert(sizeof(SpinHipAttackAction) == 4);
653
661 static_assert(sizeof(PenguinSlideAction) == 4);
662
669 static_assert(sizeof(BalloonChibiYoshiAction) == 4);
670
681 static_assert(sizeof(TarzanRopeAction) == 4);
682
693 static_assert(sizeof(KaniAction) == 4);
694
701 static_assert(sizeof(HangAction) == 4);
702
723 static_assert(sizeof(AnimePlayAction) == 4);
728
734 static_assert(sizeof(FunsuiAction) == 4);
735
742 static_assert(sizeof(BalloonChibiYoshiFlyAction) == 4);
743
776 static_assert(sizeof(ActionType) == 4);
777
783 static_assert(sizeof(HangAction) == 4);
784
790 static_assert(sizeof(DemoStartWaitAction) == 4);
791
799 static_assert(sizeof(DemoWaitAction) == 4);
800
807 static_assert(sizeof(DemoOutDokanAction) == 4);
808
817 static_assert(sizeof(DemoInDokanAction) == 4);
818
830 static_assert(sizeof(DemoGoalAction) == 4);
831
842 static_assert(sizeof(DemoActionType) == 4);
843
852 static_assert(sizeof(DemoControlSubAction) == 4);
853
855 {
857 // And more...
858 };
859 static_assert(sizeof(DemoSubActionType) == 4);
860
867 static_assert(sizeof(FunsuiType) == 4);
868 static_assert(cFunsuiType_Num == 2);
869
879
885
892
899
907 static_assert(sizeof(ReductionMode) == 4);
908
915 static_assert(sizeof(NextGotoBlockDelay) == 4);
916
923
938 static_assert(sizeof(AnimePlayType) == 4);
939
947 static_assert(sizeof(ClearType) == 4);
948
955 static_assert(cSakaUpDown_Num == 2);
956
964 static_assert(cPowerChangeType_Num == 3);
965
971
972 // Address: 0x10166E60
974 // Address: 0x10166E68
975 static const f32 cJumpSpeed; // 3.628f
976 // Address: 0x10166E6C
977 static const f32 cUnkZero; // 0.0f
978 // Address: 0x10166E70
979 static const f32 cWaterNumaJumpSpeed; // 0.75f
980 // Address: 0x10166E74
981 static const f32 cMaxFallSpeed; // -4.0f
982 // Address: 0x10166E78
983 static const f32 cMaxFallSpeed_Foot; // -2.0f
984 // Address: 0x10166E7C
985 static const f32 cTurnPowerUpRate; // 3.0f
986 // Address: 0x10166E80
987 static const f32 cWaterCancelCrouchAnmSpeed; // 0.1f
988
991
992public:
993 // ------------------------------------ PlayerBase.cpp (1) ------------------------------------ //
994
995 // Address: 0x028F23C0
996 PlayerBase(const ActorCreateParam& param);
997 // Address: 0x028F2CA8
998 virtual ~PlayerBase();
999
1000protected:
1001 // Address: 0x028F2E78
1002 Result create() override;
1003 // Address: 0x028F2F0C
1005 // Address: 0x028F3078
1007 // Address: 0x028F3534
1008 void postExecute(MainState state) override;
1009 // Address: 0x028F36BC
1011
1012 // Address: 0x028F372C
1014
1015public:
1017 {
1018 return &mBgCheckPlayer;
1019 }
1020
1021 // Address: 0x028F376C
1023 // Address: 0x028F3778
1025
1026 // Address: 0x028F3784
1027 bool isKinopio() const;
1028 // Address: 0x028F37A8
1029 bool isTotten() const;
1030
1031 // Address: 0x028F37BC
1033
1034 // Address: 0x028F3820
1036 // Address: 0x028F3844
1038
1040 {
1041 return *const_cast<PlayerBase*>(this)->getHeadPosP();
1042 }
1043
1044 virtual void executeMain() = 0;
1045 virtual void executeLastPlayer() = 0;
1046 virtual void executeLastAll() = 0;
1047
1048 virtual void setPlayerMode(PlayerMode mode, bool temporary)
1049 {
1050 setPlayerModeImpl(mode, temporary);
1051 }
1052
1053 virtual void setPlayerModeImpl(PlayerMode mode, bool temporary) = 0;
1054
1055 virtual bool isEnableRDashLuigiPhysics() const
1056 {
1057 return false;
1058 }
1059
1061 {
1062 return getTallType(mMode);
1063 }
1064
1065 virtual PlayerTallType getTallType(PlayerMode mode) = 0;
1066
1067 virtual void getMaskPos(sead::Vector3f& pos) = 0;
1068 virtual void getMaskCaveCheckPos(sead::Vector3f* pos, f32* y_offset) = 0;
1069
1070 // Address: 0x028F3854
1071 virtual bool vf154();
1072
1073 // Address: 0x028F389C
1074 void setMaskPosInterpType(s32 src_type);
1075
1076 // Address: 0x028F31C0
1078
1079 // Address: 0x028F38AC
1080 void dokanAdjustMaskPos(sead::Vector3f& mask_pos);
1081
1082 // Address: 0x028F3948
1083 bool checkRideActor(PlayerBase* player_other);
1084 // Address: 0x028F3978
1085 void setRideNat(f32 value);
1086 // Address: 0x028F398C
1088
1089 // Address: 0x028F39E4
1091 // Address: 0x028F31A0
1093 // Address: 0x028F3A00
1095 // Address: 0x028F3A08
1097 // Address: 0x028F3A44
1099 // Address: 0x028F3A94
1101
1102 // ------------------------------------ PlayerBaseBg.cpp (1) ------------------------------------ //
1103
1104 // Address: 0x028F6274
1105 BgAttr getFootBgAttr(BgUnitCode::Attr attr);
1106
1107 // Address: 0x028F684C
1109 // Address: 0x028F6298
1111 // Address: 0x028F658C
1113
1114 // Address: 0x028F6B04
1116
1117 // Address: 0x028F77B4
1118 void bgCheck(bool side_view_check);
1119
1120 // Address: 0x028F86AC
1122 // Address: 0x028F6CD4
1124 // Address: 0x028F6CAC
1126
1127 // Address: 0x028F71C0
1128 bool checkOnHDokan(const u64& bc_data); // See BgUnitCode
1129
1130 // Address: 0x028F7204
1132
1134 {
1135 return isNowBgCross(cBgCross_IsSlightlyInsideSinkSand) || isNowBgCross(cBgCross_IsPartiallySubmergedInSinkSand);
1136 }
1137
1138 // Address: 0x028F730C
1139 bool checkBgWall(DirType dir);
1140
1141 // Address: 0x028F73F4
1143 // Address: 0x028F73B4
1145
1146 // Address: 0x028F7428
1148
1149 virtual const PlayerBgPointHIO* getBgPointData() = 0;
1150
1152 {
1153 return &getBgPointData()->sensor_head;
1154 }
1155
1157 {
1158 return &getBgPointData()->sensor_wall;
1159 }
1160
1162 {
1163 return &getBgPointData()->sensor_foot;
1164 }
1165
1167
1168 // Address: 0x028F86EC
1170
1171private:
1172 inline void checkBgCross_();
1173 inline void checkCarryObjBgCarried_(const ActorBgCollisionCheck::Output& output, DirType dir);
1174
1175public:
1176 virtual void checkBgCrossSub() = 0;
1177 virtual void postBgCross() = 0;
1178
1179 // Address: 0x028F872C
1180 bool checkBGCrossWall(DirType dir);
1181
1182 // Address: 0x028F8760
1183 bool checkOldBgCrossFoot(s32 frame_cnt);
1184
1185 virtual void clearJumpActionInfo() = 0;
1186
1187 // Address: 0x028F87B8
1189
1190 // Address: 0x028F87C8
1191 Angle getSakaAngle(DirType dir);
1192 // Address: 0x028F716C
1194 // Address: 0x028F8804
1196
1198 {
1199 return getSakaAngle(mDirection);
1200 }
1201
1203 {
1204 return getSakaAngleBySpeed(mSpeedF);
1205 }
1206
1208 {
1209 return getSakaUpDown(mDirection);
1210 }
1211
1212 // Address: 0x028F76A0
1214 // Address: 0x028F8850
1216
1217 // Address: 0x028F8900
1219
1220 // Address: 0x028F6EEC
1222 // Address: 0x028F6D20
1224 // Address: 0x028F6E64
1226 // Address: 0x028F6EA8
1228
1229private:
1230 inline bool checkDispSideLemit_();
1231
1232public:
1233 // Address: 0x028F8944
1235
1236 // Address: 0x028F8A1C
1238
1239 // Address: 0x028F8A4C
1240 void setNoHitObjBg(Actor* no_hit_obj, s32 time);
1241
1242 // Address: 0x028F8A58
1243 void setJumpAddSpeedF(f32 f);
1244 // Address: 0x028F8ABC
1246
1247 // ------------------------------------ PlayerBaseCc.cpp ------------------------------------ //
1248
1249 // Address: 0x028F9858
1250 virtual void initCollision(const ActorCollisionCheck::CollisionData& cc_data_react, const ActorCollisionCheck::CollisionData& cc_data_attack);
1251 // Address: 0x028F98FC
1252 virtual void releaseCcData();
1253 // Address: 0x028F9A78
1254 virtual void clearCcData();
1255
1256 // Address: 0x028F9AC8
1258
1259 virtual bool vf19C() = 0;
1260
1261 // Address: 0x028F9CC8
1262 void setCcAt(const ActorCollisionCheck::Vec2& center_offset, const ActorCollisionCheck::Vec2& half_size, const ActorCollisionCheck::Attack& attack);
1263
1264 // Address: 0x028F9D1C
1265 void setCcAtBody(const ActorCollisionCheck::Attack& attack);
1266 // Address: 0x028F9D2C
1268 // Address: 0x028F9D58
1270 // Address: 0x028F9D9C
1272 // Address: 0x028F9DD4
1274 // Address: 0x028F9E0C
1276
1277 // Address: 0x028F9E48
1279 // Address: 0x028F9E6C
1280 void setCcPlayerRevY(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other, f32 scale, ActorCollisionCheck::Kind kind);
1281 // Address: 0x028FA0DC
1282 void setCcPlayerRevParam(f32 param);
1283 // Address: 0x028FA108
1285 // Address: 0x028FA130
1287
1288 // Address: 0x028FA280
1289 void setNoHitPlayer(const PlayerBase* player_other, s32 time);
1290 // Address: 0x028FA290
1292 // Address: 0x028FA2B4
1294
1295 // Address: 0x028FA350
1296 bool isEnableStamp(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other);
1297 // Address: 0x028FA3E0
1298 bool isEnableStampPlayerJump(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other);
1299
1300 // Address: 0x028FA590
1301 void setStampReduction(PlayerBase* player_other);
1302 // Address: 0x028FA544
1304
1305 // Address: 0x028FA62C
1306 void setStampPlayerJump(bool allow_high_jump, f32 rev_y);
1307
1308 // Address: 0x028FA8D8
1309 virtual void initStampReduction();
1310 // Address: 0x028FA910
1311 virtual void calcJumpDaiReductionScale(s32 t, s32 max_t);
1312 // Address: 0x028FA97C
1313 virtual void setReductionBoyon();
1314
1315 // Address: 0x028FA830
1317
1318 // Address: 0x028FA990
1319 virtual bool getHeadTopPos(sead::Vector3f& pos);
1320
1321 // Address: 0x028FAA20
1323 // Address: 0x028FAB14
1324 void getReductionModelScale(sead::Vector3f* scale);
1325
1326 // ------------------------------------ PlayerBaseBg.cpp (2) ------------------------------------ //
1327
1328 // Address: 0x028F8B18
1330
1331 // Address: 0x028F8B3C
1333
1334 // Address: 0x028F92B0
1336 // Address: 0x028F9164
1338
1339 // Address: 0x028F93F8
1340 virtual void upperOverCheck();
1341
1342 // Address: 0x028F8BAC
1344
1345 // Address: 0x028F8C50
1347
1348 virtual void setFallDownDemo() = 0;
1349
1350 // Address: 0x028F8FA8
1352 // Address: 0x028F9010
1354
1355 virtual bool setBalloonInDispOut(s32) = 0;
1356 virtual bool setBalloonDispOut() = 0;
1357
1358 // Address: 0x028F9560
1360
1361 // Address: 0x028F9694
1362 bool isBgPress(Actor* actor);
1363 // Address: 0x028F9710
1365 // Address: 0x028F8F18
1367
1368private:
1369 inline void underOverCheck_();
1370
1371 // Address: 0x028F8CD8
1373 // Address: 0x028F8D88
1375 // Address: 0x028F8C80
1376 void setPressBgCollision_(const BgCollision* bg_collision);
1377
1378public:
1379 // ------------------------------------ PlayerBaseDemoCreate.cpp ------------------------------------ //
1380
1381 // Address: 0x028FD318
1382 virtual void setCreate(const sead::Vector3f& pos, NextGotoType next_goto_type, DirType dir);
1383 // Address: 0x028FD394
1384 virtual void reset();
1385 // Address: 0x028FD424
1386 void resetBg();
1387
1388 // Address: 0x028FD4C0
1389 void setPosAndDir(const sead::Vector3f& pos, DirType dir);
1390
1391 // Address: 0x028FD588
1393
1394 // Address: 0x028FD5B0
1396
1397private:
1398 inline void setCreateAction_(NextGotoType next_goto_type);
1399
1400public:
1401 // Address: 0x028FD684
1402 virtual void initialNormal(NextGotoType next_goto_type);
1403 // Address: 0x028FDD4C
1404 virtual void initialDoor(NextGotoType next_goto_type);
1405 // Address: 0x028FD6D0
1406 virtual void initialDokan(NextGotoType next_goto_type);
1407 // Address: 0x028FD7B4
1408 virtual void initialFall(NextGotoType next_goto_type);
1409 // Address: 0x028FD800
1410 virtual void initialHipAttack(NextGotoType next_goto_type);
1411 // Address: 0x028FD84C
1412 virtual void initialSlip(NextGotoType next_goto_type);
1413 // Address: 0x028FDD50
1414 virtual void initialJump(NextGotoType next_goto_type);
1415 // Address: 0x028FDD54
1416 virtual void initialVine(NextGotoType next_goto_type);
1417 // Address: 0x028FDD58
1418 virtual void initialShiroBoss(NextGotoType next_goto_type);
1419 // Address: 0x028FDD5C
1420 virtual void initialFinalBoss(NextGotoType next_goto_type);
1421 // Address: 0x028FDD60
1422 virtual void initialUnk10(NextGotoType next_goto_type);
1423 // Address: 0x028FD8A4
1424 virtual void initialUnk27(NextGotoType next_goto_type);
1425 // Address: 0x028FDD64
1426 virtual void initialBoxingKoopaJr(NextGotoType next_goto_type);
1427 // Address: 0x028FDD68
1428 virtual void initialTitle(NextGotoType next_goto_type);
1429
1430 // ------------------------------------ PlayerBaseDemo.cpp (1) ------------------------------------ //
1431
1432 // StateID_DemoCreate Address: 0x1022A008
1433 // initializeState_DemoCreate Address: 0x028FD8B4
1434 // executeState_DemoCreate Address: 0x028FD8B8
1435 // finalizeState_DemoCreate Address: 0x028FDD6C
1436 DECLARE_STATE_VIRTUAL_ID_BASE(PlayerBase, DemoCreate)
1437 // StateID_DemoNone Address: 0x1022A02C
1438 // initializeState_DemoNone Address: 0x028FAC40
1439 // executeState_DemoNone Address: 0x028FACDC
1440 // finalizeState_DemoNone Address: 0x028FD244
1442 // StateID_DemoReset Address: 0x1022A050
1443 // initializeState_DemoReset Address: 0x028FD248
1444 // executeState_DemoReset Address: 0x028FD24C
1445 // finalizeState_DemoReset Address: 0x028FD250
1447 // StateID_DemoStartCoinBattle Address: 0x1022A074
1448 // initializeState_DemoStartCoinBattle Address: 0x028FAEB0
1449 // executeState_DemoStartCoinBattle Address: 0x028FAFB4
1450 // finalizeState_DemoStartCoinBattle Address: 0x028FB05C
1452 // StateID_DemoGoal Address: 0x1022A098
1453 // initializeState_DemoGoal Address: 0x02901D7C
1454 // executeState_DemoGoal Address: 0x02902988
1455 // finalizeState_DemoGoal Address: 0x02902AE0
1457 // StateID_DemoStartWait Address: 0x1022A0BC
1458 // initializeState_DemoStartWait Address: 0x028FD938
1459 // executeState_DemoStartWait Address: 0x028FD9E0
1460 // finalizeState_DemoStartWait Address: 0x028FDD70
1462 // StateID_DemoWait Address: 0x1022A0E0
1463 // initializeState_DemoWait Address: 0x028FDAAC
1464 // executeState_DemoWait Address: 0x028FDB30
1465 // finalizeState_DemoWait Address: 0x028FDD18
1467 // StateID_DemoOutDokanU Address: 0x1022A104
1468 // initializeState_DemoOutDokanU Address: 0x028FDFB4
1469 // executeState_DemoOutDokanU Address: 0x028FE1E4
1470 // finalizeState_DemoOutDokanU Address: 0x028FE21C
1472 // StateID_DemoOutDokanD Address: 0x1022A128
1473 // initializeState_DemoOutDokanD Address: 0x028FE220
1474 // executeState_DemoOutDokanD Address: 0x028FE228
1475 // finalizeState_DemoOutDokanD Address: 0x028FE22C
1477 // StateID_DemoOutDokanR Address: 0x1022A14C
1478 // initializeState_DemoOutDokanR Address: 0x028FE3B4
1479 // executeState_DemoOutDokanR Address: 0x028FE67C
1480 // finalizeState_DemoOutDokanR Address: 0x028FE680
1482 // StateID_DemoOutDokanL Address: 0x1022A170
1483 // initializeState_DemoOutDokanL Address: 0x028FE684
1484 // executeState_DemoOutDokanL Address: 0x028FE68C
1485 // finalizeState_DemoOutDokanL Address: 0x028FE690
1487 // StateID_DemoOutDokanRollUD Address: 0x1022A194
1488 // initializeState_DemoOutDokanRollUD Address: 0x028FE7E4
1489 // executeState_DemoOutDokanRollUD Address: 0x028FE824
1490 // finalizeState_DemoOutDokanRollUD Address: 0x028FEBD0
1492 // StateID_DemoOutDokanRollLR Address: 0x1022A1B8
1493 // initializeState_DemoOutDokanRollLR Address: 0x028FEBD4
1494 // executeState_DemoOutDokanRollLR Address: 0x028FEC34
1495 // finalizeState_DemoOutDokanRollLR Address: 0x028FEDC4
1497 // StateID_DemoInDokanU Address: 0x1022A1DC
1498 // initializeState_DemoInDokanU Address: 0x028FEDC8
1499 // executeState_DemoInDokanU Address: 0x028FF344
1500 // finalizeState_DemoInDokanU Address: 0x028FF3A8
1502 // StateID_DemoInDokanD Address: 0x1022A200
1503 // initializeState_DemoInDokanD Address: 0x028FF3AC
1504 // executeState_DemoInDokanD Address: 0x028FF4B8
1505 // finalizeState_DemoInDokanD Address: 0x028FF4BC
1507 // StateID_DemoInDokanR Address: 0x1022A224
1508 // initializeState_DemoInDokanR Address: 0x028FF54C
1509 // executeState_DemoInDokanR Address: 0x028FF554
1510 // finalizeState_DemoInDokanR Address: 0x028FF558
1512 // StateID_DemoInDokanL Address: 0x1022A248
1513 // initializeState_DemoInDokanL Address: 0x028FF55C
1514 // executeState_DemoInDokanL Address: 0x028FF564
1515 // finalizeState_DemoInDokanL Address: 0x028FF568
1517 // StateID_DemoOutDoor Address: 0x1022A26C
1518 // initializeState_DemoOutDoor Address: 0x028FD254
1519 // executeState_DemoOutDoor Address: 0x028FD258
1520 // finalizeState_DemoOutDoor Address: 0x028FD25C
1522 // StateID_DemoInDoor Address: 0x1022A290
1523 // initializeState_DemoInDoor Address: 0x028FD260
1524 // executeState_DemoInDoor Address: 0x028FD264
1525 // finalizeState_DemoInDoor Address: 0x028FD268
1527 // StateID_DemoNextGotoBlock Address: 0x1022A2B4
1528 // initializeState_DemoNextGotoBlock Address: 0x028FB068
1529 // executeState_DemoNextGotoBlock Address: 0x028FB404
1530 // finalizeState_DemoNextGotoBlock Address: 0x028FB51C
1532 // StateID_DemoDown Address: 0x1022A2D8
1533 // initializeState_DemoDown Address: 0x02901CF8
1534 // executeState_DemoDown Address: 0x02901CFC
1535 // finalizeState_DemoDown Address: 0x02901D00
1537 // StateID_DemoControl Address: 0x1022A2FC
1538 // initializeState_DemoControl Address: 0x02900350
1539 // executeState_DemoControl Address: 0x02900420
1540 // finalizeState_DemoControl Address: 0x02900644
1542 // StateID_DemoSubjectClearLand Address: 0x1022A320
1543 // initializeState_DemoSubjectClearLand Address: 0x029031E8
1544 // executeState_DemoSubjectClearLand Address: 0x02903288
1545 // finalizeState_DemoSubjectClearLand Address: 0x0290338C
1547 // StateID_DemoSubjectClearAir Address: 0x1022A344
1548 // initializeState_DemoSubjectClearAir Address: 0x0290339C
1549 // executeState_DemoSubjectClearAir Address: 0x029033BC
1550 // finalizeState_DemoSubjectClearAir Address: 0x0290340C
1552 // StateID_DemoShadowFail Address: 0x1022A368
1553 // initializeState_DemoShadowFail Address: 0x02903F24
1554 // executeState_DemoShadowFail Address: 0x02903F28
1555 // finalizeState_DemoShadowFail Address: 0x02903F2C
1557
1558 // Address: 0x028FAF1C
1560 // Address: 0x028FB568
1562
1563 bool isDemoState(const StateID& state_id) const
1564 {
1565 return *mDemoStateMgr.getStateID() == state_id;
1566 }
1567
1568 bool isOldDemoState(const StateID& state_id) const
1569 {
1570 return *mDemoStateMgr.getOldStateID() == state_id;
1571 }
1572
1573 // ------------------------------------ PlayerBaseDemoDosa.cpp (1) ------------------------------------ //
1574
1575 virtual void initializeDemoControl(bool carry_chibi_yoshi = true) = 0;
1576
1577 // Address: 0x029006AC
1578 void setControlDemoPos(const sead::Vector3f& pos);
1579 // Address: 0x029007C8
1580 void setControlDemoDir(DirType dir);
1581
1582 // Address: 0x0290087C
1584 // Address: 0x029008FC
1586
1587 // Address: 0x02900924
1588 void setControlDemoWalk(f32 target_pos_x, f32 speed);
1589 // Address: 0x029009F4
1591
1592 // Address: 0x02900A1C
1593 void setControlDemoAnm(s32 anm_id, bool loop);
1594 // Address: Deleted
1595 bool isControlDemoAnm(s32 anm_id);
1596
1597 // Address: 0x02900AD0
1599 // Address: 0x02900AF4
1601
1602 // Address: 0x02900B34
1604 // Address: 0x02900B68
1606 // Address: 0x02900B6C
1608
1609 // Address: 0x02901A60
1611 // Address: 0x02900C44
1613
1614 // Address: 0x02900BBC
1615 bool startControlDemo(bool status);
1616 // Address: 0x02900CB0
1618
1619 // Address: 0x02900D34
1621
1622 void setEnemyStageClearDemo(const Actor& box)
1623 {
1624 mSpeed.x = 0.0f;
1625 mSpeedF = 0.0f;
1626 if (mPos.x >= box.getPos().x)
1627 setControlDemoDir(cDirType_Left);
1628 else
1629 setControlDemoDir(cDirType_Right);
1630 }
1631
1632 // Address: 0x02900CC0
1634
1635 // ------------------------------------ PlayerBaseDemo.cpp (2) ------------------------------------ //
1636
1637 // Address: 0x028FB6EC
1638 virtual void onDemoType(DemoType type);
1639 // Address: 0x028FB704
1640 virtual void offDemoType(DemoType type);
1641 // Address: 0x028FB71C
1642 virtual void offDemoMode();
1643 // Address: 0x028FB728
1644 virtual bool isDemoMode() const;
1645 // Address: 0x028FB738
1646 virtual bool isDemoType(DemoType type);
1647 // Address: 0x028FB754
1649 // Address: 0x028FB764
1650 bool isDemo();
1651 // Address: 0x028FAEBC
1652 void onDemo();
1653 // Address: 0x028FABD4
1654 void offDemo();
1655
1656 // Address: 0x028FB7E0
1658
1659 // Address: 0x028FB828
1661 // Address: 0x028FB948
1663
1664 // Address: 0x028FB888
1666 // Address: 0x028FB118
1668
1669 // Address: 0x028FB1D8
1670 void setFaderPos(const sead::Vector3f& pos);
1671 // Address: 0x028FB338
1673 // Address: 0x028FB9A8
1675
1676 // Address: 0x028FBA0C
1678
1679 // Address: 0x028FBAAC
1681
1682 // Address: 0x028FBB18
1683 bool setNextGotoBlockDemo(s32 dst_next_goto_no, s32 wait_timer, NextGotoBlockDelay delay, bool unk_rdash = false);
1684
1685 virtual bool isChange() = 0;
1686
1687 virtual bool vf4F4()
1688 {
1689 return false;
1690 }
1691
1692 virtual bool setTimeOverDemo() = 0;
1693 virtual bool vf504() = 0;
1694
1695 // ------------------------------------ PlayerBaseDemoGoal.cpp ------------------------------------ //
1696
1697 // Address: 0x02901D70
1698 void setDemoGoalMode(s32 demo_action, s32 demo_sub_action);
1699
1700 // Address: 0x02902B30
1702 // Address: 0x02902B08
1704
1705 // Address: 0x02902B84
1707
1708 // Address: 0x02902BA0
1710
1711 // Address: 0x02902BEC
1712 void setDemoGoalBase(const sead::Vector2f& pos, f32 walk_target_pos_x, bool secret_exit);
1713
1714 virtual void setDemoGoal(const sead::Vector2f& pos, f32 walk_target_pos_x, bool secret_exit) = 0;
1715 virtual bool setHideNotGoalPlayer() = 0;
1716 virtual bool vf51C(u32) = 0;
1717 virtual bool setDoorDemo(Actor*, u32) = 0;
1718 virtual void setGoalPoleCatchVoice() = 0;
1719
1720 // Address: 0x02902ECC
1721 virtual void vf534();
1722
1723 // Address: 0x02902EE4
1725
1726 // Address: 0x02902F78
1728
1729 // Address: 0x02903088
1731
1732 // Address: 0x02902338
1734 // Address: 0x029023C0
1735 s32 calcGoalLandNumFrame(f32 pos, f32 land_pos, f32 jump_speed);
1736 // Address: 0x02902408
1738 // Address: 0x02902520
1740
1741 // Address: 0x02901E90
1743 // Address: 0x02902630
1745 // Address: 0x029028A4
1747 // Address: 0x02902934
1750 virtual void executeDemoGoal_Run() = 0;
1751 virtual void executeDemoGoal_PreRun() = 0;
1752 virtual void executeDemoGoal_Item() = 0;
1753
1754 // Address: 0x0290288C
1756 virtual bool updateDemoKimePose(ClearType clear_type) = 0;
1757 virtual void finDemoKimePose() = 0;
1758
1759private:
1760 inline void initGoalJump_(const sead::Vector3f& pos, f32 jump_speed);
1761
1762public:
1763 // ------------------------------------ PlayerBaseDokan.cpp ------------------------------------ //
1764
1765 // Address: 0x028FDDE0
1767
1768 // Address: 0x028FDFBC
1769 bool demo_dokan_move_x(f32 step, f32 threshold);
1770 // Address: 0x028FE054
1771 bool demo_dokan_move_y(f32 step, f32 offset);
1772
1773 // Address: 0x028FE030
1775
1776 // Address: 0x028FE3BC
1778
1779 // Address: 0x028FE750
1780 void calcDokanMoveDiff(sead::Vector2f* diff = nullptr);
1781
1782 // Address: 0x028FEEA8
1784
1785 // Address: 0x028FF6A8
1786 void setObjDokanIn(ActorBoxBgCollision* bg_collision, const sead::Vector3f& pos, s32 dst_next_goto_no, DokanDir dir);
1787
1788 // Address: 0x028FF744
1790
1791 // Address: 0x028FF97C
1792 void getDokanInLRWallBgPointData(ActorBgCollisionCheck::Sensor* sensor);
1793
1794 // Address: 0x028FFA48
1796
1797 // Address: 0x028FFB4C
1799
1800 virtual bool isEnableDokanInStatus() = 0;
1801 virtual bool isEnableMameDokanIn() = 0; // I think...?
1802
1803 // Address: 0x028FFFD4
1804 virtual bool setDokanIn(DokanDir dir);
1805
1806 // Address: 0x028FFBEC
1807 bool checkBgDokanIn(sead::Vector3f* pos, s32* dst_next_goto_no, DokanDir dir);
1808 // Address: 0x028FFD8C
1809 void setDokanInPos(sead::Vector3f pos, DokanDir dir);
1810 // Address: 0x028FFEAC
1811 bool setDemoOutDokanAction(s32 dst_next_goto_no, DokanDir dir);
1812 // Address: 0x028FF56C
1813 bool setDokanInNextGoto(s32 dst_next_goto_no);
1814
1815 virtual f32 vf584() = 0;
1816 virtual void getDokanWallBgPointData(ActorBgCollisionCheck::Sensor* sensor) = 0;
1817
1818 // Address: 0x02900088
1819 virtual void setDokanWaitAnm(bool move_in);
1820
1821 // Address: 0x029000C8
1823
1824 virtual void initDemoOutDokan() = 0;
1825 // Address: 0x028FE1E8
1827
1828 // Address: 0x028FDE40
1830 // Address: 0x028FE06C
1832
1833 // Address: 0x028FE230
1835 // Address: 0x028FE4C4
1837
1838 // Address: 0x028FE694
1840
1841 virtual bool setOutDokanAngle() = 0;
1842
1843 // Address: 0x02900174
1845
1846 virtual void initDemoInDokan(DokanDir dir) = 0;
1847 // Address: 0x028FF348
1849
1850private:
1852
1853public:
1854 // Address: 0x028FF4C0
1856
1857 // Address: 0x028FF004
1859
1860 // Address: 0x029002B4
1862 // Address: 0x029002C0
1864 // Address: 0x029002CC
1866 // Address: 0x029002D8
1868
1869 // ------------------------------------ ??? ------------------------------------ //
1870
1871 // Address: Deleted
1872 virtual void vf5B4();
1873
1874 // Bounce player
1875 virtual bool bouncePlayer1(f32 speed_y, f32 speed_F, bool enable_LR, BounceType bounce_type, JumpSe jump_se_type) = 0; // Does lots of checks that can cancel the bounce, calls bouncePlayer2 otherwise
1876 virtual bool bouncePlayer2(f32 speed_y, f32 speed_F, bool enable_LR, BounceType bounce_type, JumpSe jump_se_type) = 0;
1877
1878 // Address: 0x02908BCC
1880
1881 // ------------------------------------ PlayerBaseState.cpp (1) ------------------------------------ //
1882
1883 // StateID_None Address: 0x1022A484
1884 // initializeState_None Address: 0x02908AE4
1885 // executeState_None Address: 0x02908AE8
1886 // finalizeState_None Address: 0x02908AEC
1887 DECLARE_STATE_VIRTUAL_ID_BASE(PlayerBase, None)
1888 // StateID_Walk Address: 0x1022A4A8
1889 // initializeState_Walk Address: 0x02908AF0
1890 // executeState_Walk Address: 0x02906488
1891 // finalizeState_Walk Address: 0x02906530
1893 // StateID_Jump Address: 0x1022A4CC
1894 // initializeState_Jump Address: 0x02908C30
1895 // executeState_Jump Address: 0x02908CC8
1896 // finalizeState_Jump Address: 0x02908D70
1898 // StateID_Fall Address: 0x1022A4F0
1899 // initializeState_Fall Address: 0x02908E34
1900 // executeState_Fall Address: 0x02908F00
1901 // finalizeState_Fall Address: 0x02908F1C
1903 // StateID_Land Address: 0x1022A514
1904 // initializeState_Land Address: 0x02909208
1905 // executeState_Land Address: 0x0290920C
1906 // finalizeState_Land Address: 0x02909210
1908 // StateID_Crouch Address: 0x1022A538
1909 // initializeState_Crouch Address: 0x02908AF4
1910 // executeState_Crouch Address: 0x02908AF8
1911 // finalizeState_Crouch Address: 0x02908AFC
1913 // StateID_SitJump Address: 0x1022A55C
1914 // initializeState_SitJump Address: 0x02909214
1915 // executeState_SitJump Address: 0x02909218
1916 // finalizeState_SitJump Address: 0x0290921C
1918 // StateID_Slip Address: 0x1022A580
1919 // initializeState_Slip Address: 0x0290AB70
1920 // executeState_Slip Address: 0x0290B418
1921 // finalizeState_Slip Address: 0x0290B6E4
1923 // StateID_Turn Address: 0x1022A5A4
1924 // initializeState_Turn Address: 0x02908B00
1925 // executeState_Turn Address: 0x02908B04
1926 // finalizeState_Turn Address: 0x02908B08
1928 // StateID_HipAttack Address: 0x1022A5C8
1929 // initializeState_HipAttack Address: 0x02909E44
1930 // executeState_HipAttack Address: 0x02909EE4
1931 // finalizeState_HipAttack Address: 0x02909FBC
1933 // StateID_Funsui Address: 0x1022A5EC
1934 // initializeState_Funsui Address: 0x02906540
1935 // executeState_Funsui Address: 0x02906650
1936 // finalizeState_Funsui Address: 0x029068B0
1938 // StateID_Cloud Address: 0x1022A610
1939 // initializeState_Cloud Address: 0x029068D8
1940 // executeState_Cloud Address: 0x02908B0C
1941 // finalizeState_Cloud Address: 0x02906970
1943 // StateID_Cloud2 Address: 0x1022A634
1944 // initializeState_Cloud2 Address: 0x029069B4
1945 // executeState_Cloud2 Address: 0x02908B10
1946 // finalizeState_Cloud2 Address: 0x029069E8
1947 DECLARE_STATE_VIRTUAL_ID_BASE(PlayerBase, Cloud2) // Unused, but functions almost exactly the same as Cloud
1948 // StateID_Swim Address: 0x1022A658
1949 // initializeState_Swim Address: 0x02908B14
1950 // executeState_Swim Address: 0x02908B18
1951 // finalizeState_Swim Address: 0x02908B1C
1953 // StateID_JumpDai Address: 0x1022A67C
1954 // initializeState_JumpDai Address: 0x0290928C
1955 // executeState_JumpDai Address: 0x02909368
1956 // finalizeState_JumpDai Address: 0x02909404
1958 // StateID_PlayerJumpDai Address: 0x1022A6A0
1959 // initializeState_PlayerJumpDai Address: 0x02909524
1960 // executeState_PlayerJumpDai Address: 0x02909654
1961 // finalizeState_PlayerJumpDai Address: 0x02909BA8
1963 // StateID_WaitJump Address: 0x1022A6C4
1964 // initializeState_WaitJump Address: 0x02908F58
1965 // executeState_WaitJump Address: 0x02908FC0
1966 // finalizeState_WaitJump Address: 0x02909038
1968 // StateID_AnimePlay Address: 0x1022A6E8
1969 // initializeState_AnimePlay Address: 0x02900E58
1970 // executeState_AnimePlay Address: 0x029017FC
1971 // finalizeState_AnimePlay Address: 0x02901A04
1973
1974 // Address: 0x02906A00
1976
1977 // Address: 0x02906B04
1978 void changeState(const StateID& state_id, s32 param);
1979 // Address: 0x02906B0C
1980 void changeState(const StateID& state_id, const JumpInf& jmp_inf);
1981
1982 // Address: 0x02906A38
1983 void changeStateImpl(const StateID& state_id, s32 param, const JumpInf* jmp_inf);
1984
1985 bool isState(const StateID& state_id) const
1986 {
1987 return *mStateMgr.getStateID() == state_id;
1988 }
1989
1990 bool isOldState(const StateID& state_id) const
1991 {
1992 return *mStateMgr.getOldStateID() == state_id;
1993 }
1994
1995 virtual bool checkWalkNextAction() = 0;
1996
1997 virtual void setWaitActionAnm(AnmBlend blend) = 0;
1998 virtual void setWalkActionAnm(AnmBlend blend) = 0;
1999 virtual void walkActionInit_Wait(AnmBlend blend) = 0;
2000
2001 // Address: 0x02906B18
2003 // Address: 0x02906B28
2005
2006 // Address: 0x02906CDC
2008 // Address: 0x02906E0C
2010
2011 // Address: 0x02906E8C
2013 // Address: 0x02906FA4
2015
2016 virtual bool isWaitFrameCountMax()
2017 {
2018 return false;
2019 }
2020
2021 // ------------------------------------ PlayerBaseSlip.cpp ------------------------------------ //
2022
2023 virtual void setSlipAction() = 0;
2024
2025 // Address: 0x0290B714
2027 // Address: 0x0290B7B4
2029 // Address: 0x0290ABF8
2031
2032 // Address: 0x0290AB0C
2034
2035 // Address: 0x0290ACD0
2037
2038 // Address: 0x0290B89C
2040
2041 // Address: 0x0290B85C
2043 // Address: 0x0290AE28
2045
2046 // Address: 0x0290AF68
2048 // Address: 0x0290AEE4
2050
2051 // Address: 0x0290AF34
2053
2054 // Address: 0x0290AFB8
2055 void slipActionMove(bool turned);
2056 virtual bool checkSlipMoveEnd() = 0;
2057
2059 {
2062 }
2063
2064 // ------------------------------------ PlayerBaseStateKetsuAttack.cpp ------------------------------------ //
2065
2066 virtual bool setHipAttackOnEnemy(const sead::Vector3f& target_pos) = 0;
2067 virtual void setHipBlockBreak() = 0;
2068
2069private:
2070 inline void setHipAttack_Ready_();
2071
2072public:
2073 // Address: 0x0290A020
2075 virtual void setHipAttack_AttackStart() = 0;
2076
2077 // Address: 0x0290A0C4
2079
2080 // Address: 0x0290A148
2082
2083 // Address: 0x0290A1F8
2086
2087 // Address: 0x0290A24C
2089
2090 // Address: 0x0290A2A0
2092 // Address: 0x0290A2F0
2094 // Address: 0x0290A38C
2096 // Address: 0x0290A6C4
2098 // Address: 0x0290A738
2100 // Address: 0x0290A8DC
2102 // Address: 0x0290A994
2104
2105 // Address: 0x0290A300
2107
2108 // Address: 0x0290A9FC
2109 void setHipAttackOnEnemyBase(const sead::Vector3f& target_pos);
2110 // Address: 0x02909EBC
2112
2113 // Address: 0x0290AA24
2115
2116 // ------------------------------------ PlayerBaseState.cpp (2) ------------------------------------ //
2117
2118 virtual bool checkCrouch() = 0;
2119 // Address: 0x02906FE8
2121 // Address: 0x02907108
2123 // Address: 0x0290718C
2125 // Address: 0x029071E8
2126 virtual bool setCancelCrouch();
2127 // Address: 0x029072EC
2128 virtual bool setCrouchJump();
2129
2130 // Address: 0x02907354
2132
2134
2135 virtual bool vf7F4(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) = 0;
2136
2137 // Address: 0x02907420
2139
2140 // Address: 0x02907508
2141 bool updateFunsuiPos(f32 x, f32 y);
2142
2143 // Address: 0x029075F4
2144 bool releaseFunsui(f32 speed_y);
2145
2146 virtual void releaseFunsuiAction() = 0;
2147
2148 // Address: 0x029076D0
2149 bool setCloudOn(Actor* cloud_actor);
2150 // Address: 0x02906964
2152
2153 virtual f32 getCloudOffsetY() = 0;
2154
2155 // Address: 0x029077B8
2156 void getCloudPos(sead::Vector3f& pos);
2157
2158 // Address: 0x029078D8
2160
2161 // Address: 0x02907830
2163
2164 virtual void throwCarryActor()
2165 {
2166 }
2167
2168 // Address: 0x02907A00
2169 Angle addCalcAngleY(const Angle& target, f32 rate);
2170
2171 Angle addCalcAngleY(Angle target, s32 num_frame)
2172 {
2173 f32 rate = 1.0f / static_cast<f32>(num_frame);
2174 return addCalcAngleY(target, rate);
2175 }
2176
2177 // Address: 0x02906608
2179
2180 // Address: 0x02907AA4
2181 bool turnBesideAngle(DirType dir);
2182
2184 {
2185 return turnBesideAngle(mDirection);
2186 }
2187
2188 // Address: 0x029065F0
2189 Angle getMukiAngle(DirType dir);
2190
2192 {
2193 return getMukiAngle(mDirection);
2194 }
2195
2196 // Address: 0x02907A60
2198
2200 {
2201 return getBesideMukiAngle(mDirection);
2202 }
2203
2204 // ------------------------------------ PlayerBaseDemoDosa.cpp (2) ------------------------------------ //
2205
2206 // Address: 0x02900E78
2208 // Address: 0x02900F00
2210 // Address: 0x02900F60
2212 // Address: 0x029010AC
2214 // Address: 0x029011EC
2216 // Address: 0x029012A0
2218 // Address: 0x029013E0
2220 // Address: 0x0290152C
2222 // Address: 0x02901634
2224 // Address: 0x02901780
2226 // Address: 0x02901A68
2227 virtual void DemoAnmTottenItem();
2228
2229 // ------------------------------------ PlayerBase.cpp (2) ------------------------------------ //
2230
2231 // Address: 0x028F3B44
2232 void coinJumpOnStampCB(s32 coin_num);
2233 // Address: 0x028F3C34
2234 void coinFunsuiOnDamageCB(s32 type, Actor* eat_die_actor);
2235
2236private:
2237 inline void reduceCoinNum_(s32 coin_num);
2238 // Address: 0x028F3AE4
2240
2241public:
2242 // Address: 0x028F3ED0
2243 virtual void calcTimerProc();
2244
2245 // Address: 0x028F3FB4
2246 virtual void startQuakeShock(Quake::ShockType shock_type);
2247 // Address: 0x028F3FD8
2248 virtual void startPatternRumble(const char* pattern);
2249
2250 virtual bool isCarry()
2251 {
2252 return false;
2253 }
2254
2255 virtual bool isLiftUp()
2256 {
2257 return false;
2258 }
2259
2260 virtual bool isCarryMamePlayer()
2261 {
2262 return false;
2263 }
2264
2265 virtual bool isLiftUpExceptMame()
2266 {
2267 return false;
2268 }
2269
2270 virtual void setZPosition() = 0;
2271 virtual void setZPosition(f32 z) = 0;
2272 virtual void setZPositionDirect(f32 z) = 0;
2273 virtual void offZPosSetNone() = 0;
2274
2275 // Address: 0x028F3814
2277 // Address: 0x028F3FFC
2279
2280 // Address: 0x028F4008
2281 void getAnkleCenterPos(sead::Vector3f* pos);
2282
2283 virtual bool isFaceRot()
2284 {
2285 return false;
2286 }
2287
2289 {
2290 return mGravityData;
2291 }
2292
2293 // ------------------------------------ PlayerBaseSpeed.cpp ------------------------------------ //
2294
2295 // Address: 0x02904A6C
2297
2298 // Address: 0x02904ACC
2300 // Address: 0x02904B68
2302 // Address: 0x02904C04
2304 // Address: 0x02904CA0
2306
2307 // Address: 0x02904CF4
2308 virtual void maxFallSpeedSet();
2309 // Address: 0x02904F3C
2311 // Address: 0x02905110
2313 // Address: 0x02905594
2315 // Address: 0x02906224
2316 void powerSet();
2317
2318 // Address: 0x02905F78
2320
2321 // Address: 0x029057b0
2323 // Address: 0x02905A24
2325
2326 void slipPowerSet(bool slip)
2327 {
2328 if (slip)
2330 else
2332 }
2333
2334 // Address: 0x0290603C
2336
2337 // Address: 0x02904E84
2339
2340 // Address: 0x02904DD8
2342 // Address: 0x02904D50
2344 // Address: 0x02904D04
2346
2347 void setJumpGravity(const f32* thresholds, const f32* gravities)
2348 {
2349 mAccelY = gravities[PLAYER_JUMP_GRAVITY_MAX_STAGES];
2350 for (s32 i = 0; i < PLAYER_JUMP_GRAVITY_MAX_STAGES; i++)
2351 {
2352 if (mSpeed.y > thresholds[i])
2353 {
2354 mAccelY = gravities[i];
2355 break;
2356 }
2357 }
2358 }
2359
2360 // Address: 0x02904FB0
2362
2363 // Address: 0x029050C8
2364 PowerChangeType getPowerChangeType(bool penguin_slide = false);
2365
2366 // Address: 0x029056C8
2367 void icePowerChange(bool slip);
2368
2370 {
2371 if (isStar())
2372 return mSpeedData_Star;
2373 else
2374 return mSpeedData_Normal;
2375 }
2376
2377 // Address: 0x0290587C
2378 void getPowerData(PlayerPowerData& out_data);
2379 // Address: 0x02906238
2380 void getPowerTurnData(PlayerPowerTurnData& out_data);
2381
2382 // Address: 0x029063AC
2384
2385 // ------------------------------------ PlayerBase.cpp (3) ------------------------------------ //
2386
2387 // Address: 0x028F40D8
2389 // Address: 0x028F40F0
2391
2392 // Address: 0x028F4898
2394 // Address: 0x028F45E4
2395 void posMoveAnglePlayer(const sead::Vector3f& speed);
2396 // Address: 0x028F4178
2397 void posMoveAnglePenguin(const sead::Vector3f& speed);
2398 // Address: 0x028F4CD8
2399 void initAirDriftSpeedF(f32 start_val, f32 len_frames);
2400 // Address: 0x028F4148
2402
2403 // Address: 0x028F4D48
2404 bool setJump(u8, JumpSe jump_se_type);
2405 // Address: 0x028F4E50
2407 // Address: 0x028F4EE8
2409
2410 // ------------------------------------ PlayerBaseStateJump.cpp ------------------------------------ //
2411
2412 virtual void setFallAction() = 0;
2413
2414 // Address: 0x02909050
2416
2417private:
2418 inline bool setWaitJump_(f32 speed_y);
2419
2420public:
2421 // Address: 0x029090E0
2423
2424 // Address: 0x0290911C
2426
2427 virtual f32 getJumpSpeed() = 0;
2428 virtual f32 getMoveJumpSpeed() = 0;
2429
2430 virtual void setJumpSound(JumpSe jump_se_type) = 0;
2431 virtual void vf8AC(bool) = 0;
2432
2433 // ------------------------------------ PlayerBaseStateJumpDai.cpp ------------------------------------ //
2434
2435 // Address: 0x02909BC0
2437
2438 // Address: 0x02909C1C
2439 bool setPlayerJumpDai(PlayerBase* player_other);
2440 // Address: 0x0290944C
2442
2443 // Address: 0x02909D38
2445
2446 // ------------------------------------ PlayerBaseDemoDown.cpp ------------------------------------ //
2447
2448 virtual bool isNoDamage() = 0;
2449 virtual bool isNoDamagePlayer() = 0; // Only used by Yoshi, called at 0x0295FAF8
2450 virtual bool setNormalDamage(ActorCollisionCheck* cc) = 0;
2451 virtual bool setDamage(Actor* actor, DamageType type) = 0;
2452 virtual bool setForcedDamage(Actor* actor, DamageType type) = 0;
2453 virtual bool setFlyDamage(DamageType type, DirType dir, bool, bool, f32 speed_F, f32 speed_y) = 0;
2454 virtual bool setDamage2(Actor* actor, DamageType type) = 0;
2455 virtual bool setPressBgDamage(DamageType type, bool) = 0;
2456
2457 // Address: 0x02901AD8
2459
2460 // Address: 0x02901B00
2462 // Address: 0x02901C20
2464
2465 // ------------------------------------ PlayerBase.cpp (4) ------------------------------------ //
2466
2467 // Address: 0x028F4F48
2469 s8 getTreadCount() const { return mTreadCnt; }
2470 // Address: 0x028F4F84
2472
2473 void clearComboCount() { mPlComboCnt = 0; }
2474 s8 getComboCount() const { return mPlComboCnt; }
2475 // Address: 0x028F4FA8
2477
2478 virtual void clearStarCount() = 0;
2479 virtual s8 getStarCount() const = 0;
2480 virtual s8 calcStarCount(s32 max) = 0;
2481 virtual void setStar(StarSet set_type = cStarSet_Default, s32 time = 0) = 0;
2482 virtual bool isStar() const = 0;
2483 virtual void endStar() = 0;
2484 virtual void setVirusStar(PlayerBase* other) = 0;
2485
2486 virtual void resetLight() // Not exactly sure
2487 {
2488 onStatus(cStatus_133);
2489 }
2490
2491 // ------------------------------------ PlayerBaseEffect.cpp ------------------------------------ //
2492
2503 virtual EffectID getWaterSplashEffectID(bool big) = 0;
2505 virtual EffectID getPoisonSplashEffectID(bool big) = 0;
2506 virtual EffectID getLavaSplashEffectID(bool big) = 0;
2508
2509 // Address: 0x02903FF0
2511 // Address: 0x029040C0
2513
2514 // Address: 0x02904128
2516
2517 // Address: 0x02904180
2520
2521 // Address: 0x02904284
2522 virtual void setTurnSmokeEffect(bool with_brake);
2523 // Address: 0x02904220
2525
2526 // Address: 0x029044B8
2528
2529 // Address: 0x02904600
2531
2532 // Address: 0x0290469C
2533 void setStartJumpEffect(bool with_smoke);
2534 // Address: 0x029046D8
2535 void setLandJumpEffect(/* bool with_smoke = true */);
2536
2537 // Address: 0x0290470C
2539 // Address: 0x0290475C
2541
2542 // Address: 0x02904770
2543 void setWaterInEffect(const sead::Vector3f& pos, bool deep);
2544 // Address: 0x029047E8
2545 void setWaterOutEffect(const sead::Vector3f& pos, bool deep);
2546 // Address: 0x02904858
2548
2549 // Address: 0x02904958
2551
2552 // Address: 0x029049F8
2554
2555 // Address: 0x029049FC
2557
2558 // ------------------------------------ PlayerBaseVoice.cpp ------------------------------------ //
2559
2560 // Address: 0x0290B93C
2562
2563 // Address: 0x0290B9A4
2564 void startSound(const char* label, StartSoundType type = cStartSoundType_Normal);
2565 // Address: 0x0290BA20
2566 void startSound(const char* label, s16 seq_var, StartSoundType type = cStartSoundType_Normal);
2567
2568 // Address: 0x0290BAB0
2569 void holdSound(const char* label, StartSoundType type = cStartSoundType_Normal);
2570 // Address: 0x0290BB2C
2571 void holdSound(const char* label, s16 seq_var, StartSoundType type = cStartSoundType_Normal);
2572
2573 // Address: 0x0290BBBC
2574 void startVoiceSound(PlayerVoiceID voice_id, StartSoundType type = cStartSoundType_Normal);
2575
2576 // Address: 0x0290BC60
2578
2579 // Address: 0x0290BC6C
2581
2582 // Address: 0x0290BD04
2583 void startFootSoundPlayer(const char* label);
2584
2585 // Address: 0x0290BDEC
2587
2588 // Address: 0x0290BD78
2589 void setFootSE(BgAttr attr);
2590 // Address: 0x0290BE64
2592 // Address: 0x0290BE90
2594 // Address: 0x0290BF08
2596
2597 // ------------------------------------ PlayerBaseDemoSubject.cpp ------------------------------------ //
2598
2599 // StateID_SubjectWait Address: 0x1022A3B8
2600 // initializeState_SubjectWait Address: 0x02903F30
2601 // executeState_SubjectWait Address: 0x02903504
2602 // finalizeState_SubjectWait Address: 0x02903F34
2603 DECLARE_STATE_VIRTUAL_ID_BASE(PlayerBase, SubjectWait)
2604 // StateID_SubjectCoinEndWait Address: 0x1022A3DC
2605 // initializeState_SubjectCoinEndWait Address: 0x02903628
2606 // executeState_SubjectCoinEndWait Address: 0x02903638
2607 // finalizeState_SubjectCoinEndWait Address: 0x02903F38
2609 // StateID_SubjectClearGoalWait Address: 0x1022A400
2610 // initializeState_SubjectClearGoalWait Address: 0x02903F3C
2611 // executeState_SubjectClearGoalWait Address: 0x0290363C
2612 // finalizeState_SubjectClearGoalWait Address: 0x02903F40
2614 // StateID_SubjectClear Address: 0x1022A424
2615 // initializeState_SubjectClear Address: 0x02903654
2616 // executeState_SubjectClear Address: 0x02903778
2617 // finalizeState_SubjectClear Address: 0x0290379C
2619 // StateID_SubjectClearWait Address: 0x1022A448
2620 // initializeState_SubjectClearWait Address: 0x029037B0
2621 // executeState_SubjectClearWait Address: 0x029037FC
2622 // finalizeState_SubjectClearWait Address: 0x0290387C
2624
2625 // Address: 0x0290345C
2627 // Address: 0x0290388C
2629
2630 bool isSubjectState(const StateID& state_id) const
2631 {
2632 return *mSubjectStateMgr.getStateID() == state_id;
2633 }
2634
2635 bool isOldSubjectState(const StateID& state_id) const
2636 {
2637 return *mSubjectStateMgr.getOldStateID() == state_id;
2638 }
2639
2640 // Address: 0x02903234
2642
2643 // Address: 0x0290341C
2645
2646 // Address: 0x02903464
2648
2649 // Address: 0x02903490
2651
2652 // Address: 0x029038C4
2654 // Address: 0x0290393C
2656
2657 // Address: 0x029039B0
2659
2660 virtual void setSubjectCoinTimeUp() = 0;
2661 virtual void setSubjectClear() = 0;
2662 virtual void setSubjectFail() = 0;
2663 virtual void setShadowFail() = 0;
2664
2665 // ------------------------------------ PlayerBaseAttention.cpp ------------------------------------ //
2666
2667 // Address: 0x028F5E90
2669
2670private:
2671 // Address: 0x028F5554
2672 PlayerBase* searchPlayerAttention_(const sead::Vector2f& src_pos);
2673 // Address: 0x028F566C
2674 bool calcHeadAttentionAngle_(const sead::Vector2f& target_pos, sead::BitFlag32 flag, Angle max_angle_y);
2675
2676public:
2677 // ------------------------------------ Common ------------------------------------ //
2678
2680 {
2681 return mPlayerKey;
2682 }
2683
2684 void onStatus(s32 bit)
2685 {
2686 mStatus.setBit(bit);
2687 }
2688
2689 void offStatus(s32 bit)
2690 {
2691 mStatus.resetBit(bit);
2692 }
2693
2694 bool isStatus(s32 bit)
2695 {
2696 return mStatus.isOnBit(bit);
2697 }
2698
2699 void onNowBgCross(s32 bit)
2700 {
2701 mNowBgCross.setBit(bit);
2702 }
2703
2704 void offNowBgCross(s32 bit)
2705 {
2706 mNowBgCross.resetBit(bit);
2707 }
2708
2709 bool isNowBgCross(s32 bit)
2710 {
2711 return mNowBgCross.isOnBit(bit);
2712 }
2713
2714 void onOldBgCross(s32 bit)
2715 {
2716 mOldBgCross.setBit(bit);
2717 }
2718
2719 void offOldBgCross(s32 bit)
2720 {
2721 mOldBgCross.resetBit(bit);
2722 }
2723
2724 bool isOldBgCross(s32 bit)
2725 {
2726 return mOldBgCross.isOnBit(bit);
2727 }
2728
2730 {
2731 return mMode;
2732 }
2733
2734protected:
2738 s32 mMaskPosInterpSrcType; // Interpolation source; 1 = ankle joints center pos, everything else = player pos
2755 bool _4e8;
2768 sead::SafeArray<
2769 BOOL,
2771 > mOldBgCrossFoot; // Array of cBgCross_IsFoot of the past 10 frames
2785 s32 mWaterDepthType; // TODO: enum
2786 sead::Vector3f mAirWaterHitPos; // "AirWater" = Floating Water Bubble
2797 2
2807 ActorCollisionCheck mCollisionCheck2_React; // First collision check is also for react
2822 bool _2084;
2823 bool _2085;
2831 sead::SafeArray<
2832 u32,
2835 sead::SafeArray<
2836 f32,
2842 s32 mDemoAction; // See DemoActionType
2843 s32 mDemoSubAction; // See DemoSubActionType
2848 NextGotoType mNextGotoType; // i.e., "Create Action"
2850 sead::Vector2f _2100; // Target for movement in a specific direction
2851 sead::Vector2f _2108; // Speed ^^^
2877 bool _2198;
2881 s32 mAction; // See ActionType
2901 EffectObj mEffectObjCommon; // Used for: Wall Slide Effect, Quake Numb Effect, Elec Effect, Fire Jump Smoke Effect, and quite possibly more
2917 EffectObj mWaterFunsuiEffect; // Completely dysfunctional
2918 u32 mWaterFunsuiEffectStep; // 0: Normal, 1: Fade, 2: Destroyed
2920 sead::SafeArray<FollowEffect, 3> mWaterEffect; // [0] = waterSplash, [2] = waterSplashS
2924};
2925static_assert(sizeof(PlayerBase) == 0x2750);
Definition ActorBoxBgCollision.h:7
Definition PlayerBase.h:37
BgAttr getFootBgAttr(BgUnitCode::Attr attr)
virtual void maxFallSpeedSet()
f32 mWaterSurfacePosYPrev
Definition PlayerBase.h:2783
f32 mJumpDaiSpeedFReserve
Definition PlayerBase.h:2892
void executeSubjectState()
DokanDir
Definition PlayerBase.h:434
@ cDokanDir_Num
Definition PlayerBase.h:440
@ cDokanDir_FaceRight
Definition PlayerBase.h:446
@ cDokanDir_ButtonUp
Definition PlayerBase.h:436
@ cDokanDir_ButtonLeft
Definition PlayerBase.h:438
@ cDokanDir_FaceLeft
Definition PlayerBase.h:445
@ cDokanDir_FaceDown
Definition PlayerBase.h:444
@ cDokanDir_ButtonDown
Definition PlayerBase.h:437
@ cDokanDir_FaceUp
Definition PlayerBase.h:443
@ cDokanDir_ButtonRight
Definition PlayerBase.h:439
virtual EffectID getHipDropSurfaceEffectID()=0
void DemoAnmEndingGladWait()
FunsuiAction
Definition PlayerBase.h:730
@ cFunsuiAction_Ascend
Definition PlayerBase.h:731
@ cFunsuiAction_Release
Definition PlayerBase.h:732
void HipAction_ToStoop()
u32 mWaterFunsuiEffectStep
Definition PlayerBase.h:2918
void setControlDemoWait()
virtual void initialDoor(NextGotoType next_goto_type)
virtual void setWalkActionAnm(AnmBlend blend)=0
bool vsPlayerCarryPush()
f32 getWaterDokanCenterOffset(f32 pos_y)
f32 getDokanCannonMoveXThreshold() const
void setUnkJumpGravity()
f32 getWaterOffsetY()
void initDemoOutDokanBase()
void updateHipAttackOnEnemy()
bool checkLedge()
void offNowBgCross(s32 bit)
Definition PlayerBase.h:2704
s32 mPenguinSlideCooldown
Definition PlayerBase.h:2899
PropelAction
Definition PlayerBase.h:640
@ cPropelAction_Fly
Definition PlayerBase.h:642
@ cPropelAction_BigFly
Definition PlayerBase.h:641
@ cPropelAction_Fall
Definition PlayerBase.h:643
static const f32 cTurnPowerUpRate
Definition PlayerBase.h:985
bool mIsTurnBrakeEffectEnable
Definition PlayerBase.h:2914
NextGotoBlockDelay mNextGotoDelay
Definition PlayerBase.h:2849
static const f32 cDirSpeed[cDirType_NumX]
Definition PlayerBase.h:973
NextGotoBlockDelay
Definition PlayerBase.h:910
@ cNextGotoBlockDelay_Normal
Definition PlayerBase.h:912
@ cNextGotoBlockDelay_Short
Definition PlayerBase.h:913
@ cNextGotoBlockDelay_None
Definition PlayerBase.h:911
void getPowerTurnData(PlayerPowerTurnData &out_data)
void setYoganDamageEffect()
void setNoHitObjBg(Actor *no_hit_obj, s32 time)
FollowEffect mTurnBrakeEffect
Definition PlayerBase.h:2911
bool isEnableStamp(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other)
u32 _1b9c
Definition PlayerBase.h:2800
void calcHeadAttentionAngle()
bool _4e8
Definition PlayerBase.h:2755
virtual void releaseCcData()
void setSubjectClearCourseOut()
s32 mGoalDemoNo
Definition PlayerBase.h:2856
void setSlipActionEnd()
void setWaterInEffect(const sead::Vector3f &pos, bool deep)
virtual bool setCancelCrouch()
DemoStartWaitAction
Definition PlayerBase.h:786
@ cDemoStartWaitAction_Move
Definition PlayerBase.h:788
@ cDemoStartWaitAction_Wait
Definition PlayerBase.h:787
s32 mFrameEndFollowMameKuribo
Definition PlayerBase.h:2897
void setCcAtHipAttack()
BgCross
Definition PlayerBase.h:326
@ cBgCross_OnRide
Definition PlayerBase.h:370
@ cBgCross_IsWaterPillarR
Definition PlayerBase.h:341
@ cBgCross_15
Definition PlayerBase.h:342
@ cBgCross_IsFunsui
Definition PlayerBase.h:381
@ cBgCross_IsWaterAttr
Definition PlayerBase.h:358
@ cBgCross_CarryRelatedR
Definition PlayerBase.h:335
@ cBgCross_IsSaka
Definition PlayerBase.h:375
@ cBgCross_IsSlightlyInsideSinkSand
Definition PlayerBase.h:362
@ cBgCross_61
Definition PlayerBase.h:388
@ cBgCross_47
Definition PlayerBase.h:374
@ cBgCross_DispSideLimitL
Definition PlayerBase.h:351
@ cBgCross_IsBeltConveyorR
Definition PlayerBase.h:366
@ cBgCross_WalkWallEnableR
Definition PlayerBase.h:339
@ cBgCross_IsBlockDRC
Definition PlayerBase.h:378
@ cBgCross_IsCompletelySubmergedInSinkSand
Definition PlayerBase.h:364
@ cBgCross_71
Definition PlayerBase.h:398
@ cBgCross_IsWallPressL
Definition PlayerBase.h:330
@ cBgCross_IsChikuwa
Definition PlayerBase.h:367
@ cBgCross_IsFloorGyration
Definition PlayerBase.h:380
@ cBgCross_IsIce
Definition PlayerBase.h:354
@ cBgCross_67
Definition PlayerBase.h:394
@ cBgCross_IsHead
Definition PlayerBase.h:328
@ cBgCross_68
Definition PlayerBase.h:395
@ cBgCross_IsKani3
Definition PlayerBase.h:384
@ cBgCross_MaxBitNum
Definition PlayerBase.h:407
@ cBgCross_IsLiftZenStar
Definition PlayerBase.h:379
@ cBgCross_IsLineSpinLift
Definition PlayerBase.h:377
@ cBgCross_LastBit
Definition PlayerBase.h:405
@ cBgCross_IsSand
Definition PlayerBase.h:360
@ cBgCross_IsUnderwater
Definition PlayerBase.h:345
@ cBgCross_CarryObjBgCarriedL
Definition PlayerBase.h:336
@ cBgCross_16
Definition PlayerBase.h:343
@ cBgCross_RDash_IsNonWaterLiquid
Definition PlayerBase.h:349
@ cBgCross_IsKani2
Definition PlayerBase.h:383
@ cBgCross_IsPole
Definition PlayerBase.h:385
@ cBgCross_64
Definition PlayerBase.h:391
@ cBgCross_17
Definition PlayerBase.h:344
@ cBgCross_CarryRelatedL
Definition PlayerBase.h:334
@ cBgCross_IsWaterShallow
Definition PlayerBase.h:348
@ cBgCross_WalkWallEnableL
Definition PlayerBase.h:338
@ cBgCross_CarryObjBgCarriedR
Definition PlayerBase.h:337
@ cBgCross_69
Definition PlayerBase.h:396
@ cBgCross_32
Definition PlayerBase.h:359
@ cBgCross_OnSakaUnderRoof
Definition PlayerBase.h:357
@ cBgCross_74
Definition PlayerBase.h:401
@ cBgCross_IsSinkSand
Definition PlayerBase.h:361
@ cBgCross_IsWater
Definition PlayerBase.h:346
@ cBgCross_75
Definition PlayerBase.h:402
@ cBgCross_76
Definition PlayerBase.h:403
@ cBgCross_IsWallTouchL
Definition PlayerBase.h:332
@ cBgCross_70
Definition PlayerBase.h:397
@ cBgCross_IsKani
Definition PlayerBase.h:382
@ cBgCross_IsCompletelyUnderwater
Definition PlayerBase.h:347
@ cBgCross_DispSideLimitR
Definition PlayerBase.h:352
@ cBgCross_IsAirWater
Definition PlayerBase.h:350
@ cBgCross_IsWallPressR
Definition PlayerBase.h:331
@ cBgCross_IsSnow
Definition PlayerBase.h:353
@ cBgCross_HitBgActorYuka
Definition PlayerBase.h:400
@ cBgCross_IsHold
Definition PlayerBase.h:371
@ cBgCross_IsWaterPillarL
Definition PlayerBase.h:340
@ cBgCross_OnHalf
Definition PlayerBase.h:369
@ cBgCross_BitNum
Definition PlayerBase.h:406
@ cBgCross_IsWallTouchR
Definition PlayerBase.h:333
@ cBgCross_65
Definition PlayerBase.h:392
@ cBgCross_IsChikuwaActor
Definition PlayerBase.h:368
@ cBgCross_IsWall
Definition PlayerBase.h:329
@ cBgCross_IsBeltConveyorL
Definition PlayerBase.h:365
@ cBgCross_IsPartiallySubmergedInSinkSand
Definition PlayerBase.h:363
@ cBgCross_62
Definition PlayerBase.h:389
@ cBgCross_IsSlideSlope
Definition PlayerBase.h:356
@ cBgCross_IsVine
Definition PlayerBase.h:386
@ cBgCross_IsIceLowSlip
Definition PlayerBase.h:355
@ cBgCross_63
Definition PlayerBase.h:390
@ cBgCross_IsFoot
Definition PlayerBase.h:327
@ cBgCross_60
Definition PlayerBase.h:387
@ cBgCross_Slip
Definition PlayerBase.h:372
@ cBgCross_66
Definition PlayerBase.h:393
@ cBgCross_IsOnHDokan
Definition PlayerBase.h:373
void onFollowMameKuribo()
void setCreateAction_(NextGotoType next_goto_type)
virtual bool vf51C(u32)=0
Angle getSakaAngleBySpeed()
Definition PlayerBase.h:1202
s32 mChangeStateParam
Definition PlayerBase.h:2880
void setHipAttack_StandNormal()
virtual void initialShiroBoss(NextGotoType next_goto_type)
bool setFunsui(FunsuiType type)
virtual bool isLiftUp()
Definition PlayerBase.h:2255
sead::Vector3f _4c8
Definition PlayerBase.h:2749
s32 mNoStampPlayerJumpTimer
Definition PlayerBase.h:2830
virtual void resetLight()
Definition PlayerBase.h:2486
void DemoAnmLastBoss2Glad()
bool checkBgDokanIn(sead::Vector3f *pos, s32 *dst_next_goto_no, DokanDir dir)
void DemoAnmBossGlad()
void executeDemoOutDokanUD()
bool setPlayerJumpDai(PlayerBase *player_other)
FlyDamageAction
Definition PlayerBase.h:608
@ cFlyDamageAction_2
Definition PlayerBase.h:611
@ cFlyDamageAction_0
Definition PlayerBase.h:609
@ cFlyDamageAction_4
Definition PlayerBase.h:613
@ cFlyDamageAction_1
Definition PlayerBase.h:610
@ cFlyDamageAction_6
Definition PlayerBase.h:615
@ cFlyDamageAction_5
Definition PlayerBase.h:614
@ cFlyDamageAction_3
Definition PlayerBase.h:612
virtual void setSubjectCoinTimeUp()=0
const sead::Vector3f & getLookatPos() const
Definition PlayerBase.h:1039
Angle mWallAngle
Definition PlayerBase.h:2781
EffectObj _2500
Definition PlayerBase.h:2910
bool isTotten() const
void setHipAttack_StandNormalEndBase()
void setDownFinishSubjectCoin()
void executeDemoCreate()
const PlayerBase * getNoHitPlayer()
bool entryCollision()
virtual void vf5B4()
f32 getSlipMaxSpeedF()
sead::Vector3f mDokanPos
Definition PlayerBase.h:2865
s32 _2060
Definition PlayerBase.h:2813
virtual void initialJump(NextGotoType next_goto_type)
virtual void initialUnk10(NextGotoType next_goto_type)
void onOldBgCross(s32 bit)
Definition PlayerBase.h:2714
f32 getThrowLoopPosX(f32 x)
void calcMaskPos()
void calcAirDriftSpeedF()
bool _2084
Definition PlayerBase.h:2822
PowerChangeType getPowerChangeType(bool penguin_slide=false)
bool isControlDemoAnmSeq(AnimePlayType type)
void initDemoOutDokanLR(DokanDir dir)
bool isDispOutCheckOn()
s32 mDemoAction
Definition PlayerBase.h:2842
void getPowerData(PlayerPowerData &out_data)
f32 mCcPlayerRevSpeedF
Definition PlayerBase.h:2820
bool mIsBgDamageEnable
Definition PlayerBase.h:2793
void updateNoHitPlayer()
bool isOnSinkSand()
Definition PlayerBase.h:1133
void setSlipSE()
virtual void setFallAction()=0
bool turnBesideAngle()
Definition PlayerBase.h:2183
PlayerCharacter mCharacter
Definition PlayerBase.h:2760
void fadeOutTurnEffect()
virtual s8 calcStarCount(s32 max)=0
void HipAction_Ready()
ActorCollisionCheck mCollisionCheck4_Attack
Definition PlayerBase.h:2809
virtual bool isCarry()
Definition PlayerBase.h:2250
void changeState(const StateID &state_id, s32 param)
virtual void vf534()
void executeDemoOutDokanLR()
virtual void checkBgCrossSub()=0
virtual bool setFlyDamage(DamageType type, DirType dir, bool, bool, f32 speed_F, f32 speed_y)=0
bool checkSitJumpRoof()
void initDemoOutDokanUD(DokanDir dir)
bool updateHipAttackEffect()
virtual f32 getJumpSpeed()=0
BgAttr
Definition PlayerBase.h:413
@ cBgAttr_Sand
Definition PlayerBase.h:416
@ cBgAttr_Water2
Definition PlayerBase.h:427
@ cBgAttr_Snow
Definition PlayerBase.h:415
@ cBgAttr_Carpet
Definition PlayerBase.h:424
@ cBgAttr_Leaf
Definition PlayerBase.h:425
@ cBgAttr_Num
Definition PlayerBase.h:428
@ cBgAttr_Beach
Definition PlayerBase.h:423
@ cBgAttr_Water1
Definition PlayerBase.h:419
@ cBgAttr_Ice
Definition PlayerBase.h:417
@ cBgAttr_Cloud
Definition PlayerBase.h:420
@ cBgAttr_SandFunsui
Definition PlayerBase.h:421
@ cBgAttr_Rock
Definition PlayerBase.h:414
@ cBgAttr_Manta
Definition PlayerBase.h:422
@ cBgAttr_Dirt
Definition PlayerBase.h:418
@ cBgAttr_Wood
Definition PlayerBase.h:426
void initGoalJump_(const sead::Vector3f &pos, f32 jump_speed)
s32 _2064
Definition PlayerBase.h:2814
void clearFollowMameKuribo()
Bitfield< cBgCross_MaxBitNum > mNowBgCross
Definition PlayerBase.h:2766
sead::Vector3f mMaskPos
Definition PlayerBase.h:2740
void walkAction_Move()
bool isSubjectDone()
bool turnBesideAngle(DirType dir)
virtual bool isEnableMameDokanIn()=0
virtual void initialUnk27(NextGotoType next_goto_type)
FunsuiType
Definition PlayerBase.h:862
@ cFunsuiType_Num
Definition PlayerBase.h:865
@ cFunsuiType_Sand
Definition PlayerBase.h:863
@ cFunsuiType_Water
Definition PlayerBase.h:864
void setRunFootEffect()
bool checkRideActor(PlayerBase *player_other)
void startSound(const char *label, StartSoundType type=cStartSoundType_Normal)
EffectObj mSlipSmokeEffect
Definition PlayerBase.h:2902
u32 mHipAttackEffectStep
Definition PlayerBase.h:2895
f32 _2080
Definition PlayerBase.h:2821
virtual EffectID getLandingSmokeEffectID()=0
Actor * getCloud()
FStateMgr< PlayerBase > mDemoStateMgr
Definition PlayerBase.h:2839
void dokanAdjustMaskPos(sead::Vector3f &mask_pos)
void setCcAt(const ActorCollisionCheck::Vec2 &center_offset, const ActorCollisionCheck::Vec2 &half_size, const ActorCollisionCheck::Attack &attack)
u32 _21dc
Definition PlayerBase.h:2886
virtual void setJumpSound(JumpSe jump_se_type)=0
s8 calcTreadCount(s32 max)
SakaUpDown
Definition PlayerBase.h:950
@ cSakaUpDown_Num
Definition PlayerBase.h:953
@ cSakaUpDown_Uphill
Definition PlayerBase.h:952
@ cSakaUpDown_Downhill
Definition PlayerBase.h:951
virtual void getMaskCaveCheckPos(sead::Vector3f *pos, f32 *y_offset)=0
bool checkBgWall(DirType dir)
void setHopAirDrift()
EffectObj _2498
Definition PlayerBase.h:2909
Angle mSpeedSakaAngle
Definition PlayerBase.h:2775
virtual bool bouncePlayer2(f32 speed_y, f32 speed_F, bool enable_LR, BounceType bounce_type, JumpSe jump_se_type)=0
void setSlipAction_ToStoop()
void clearBgCheckInfo()
bool startControlDemoKoopaSwitch()
bool isNowBgCross(s32 bit)
Definition PlayerBase.h:2709
virtual bool updateDemoKimePose(ClearType clear_type)=0
virtual EffectID getWaterSplashSEffectID()=0
bool setBgDamage()
bool checkBalloonInDispOutLR()
virtual bool vf4F4()
Definition PlayerBase.h:1687
void HipAction_StandNormalEnd()
virtual void initStampReduction()
virtual void startPatternRumble(const char *pattern)
virtual void setHipBlockBreak()=0
void cancelCloudOn()
JumpAction
Definition PlayerBase.h:496
@ cJumpAction_TakeOff
Definition PlayerBase.h:497
@ cJumpAction_Air
Definition PlayerBase.h:498
virtual void clearStarCount()=0
void reduceCoinNum_(s32 coin_num)
void startVoiceSound(PlayerVoiceID voice_id, StartSoundType type=cStartSoundType_Normal)
u32 _25f0
Definition PlayerBase.h:2916
JumpSe
Definition PlayerBase.h:460
@ cJumpSe_None
Definition PlayerBase.h:461
@ cJumpSe_High
Definition PlayerBase.h:463
@ cJumpSe_Normal
Definition PlayerBase.h:462
f32 getDokanCannonMoveXStep() const
Angle getSakaAngle()
Definition PlayerBase.h:1197
BalloonChibiYoshiAction
Definition PlayerBase.h:664
@ cBalloonChibiYoshiAction_Fly
Definition PlayerBase.h:665
@ cBalloonChibiYoshiAction_FallMaybe
Definition PlayerBase.h:666
@ cBalloonChibiYoshiAction_PreFallIdk
Definition PlayerBase.h:667
ActorBgCollisionCheck::Sensor mBcSensorHead
Definition PlayerBase.h:2763
bool _2085
Definition PlayerBase.h:2823
void endDemoOutDokan()
virtual bool checkCrouch()=0
void checkDamageBg()
void setSlipSmokeEffect()
s32 _206c
Definition PlayerBase.h:2816
void setPressBgCollision_(const BgCollision *bg_collision)
virtual void initCollision(const ActorCollisionCheck::CollisionData &cc_data_react, const ActorCollisionCheck::CollisionData &cc_data_attack)
ClearType
Definition PlayerBase.h:941
@ cClearType_Fanfare
Definition PlayerBase.h:944
@ cClearType_Normal
Definition PlayerBase.h:942
@ cClearType_LastBoss
Definition PlayerBase.h:945
@ cClearType_Boss
Definition PlayerBase.h:943
Angle getBesideMukiAngle(DirType dir)
bool isDemoState(const StateID &state_id) const
Definition PlayerBase.h:1563
bool setNextGotoBlockDemo(s32 dst_next_goto_no, s32 wait_timer, NextGotoBlockDelay delay, bool unk_rdash=false)
virtual void setReductionBoyon()
SakaUpDown getSakaUpDown(DirType dir)
void HipAction_StandNormal()
void executeDemoGoal_MultiJump()
void simpleMoveSpeedSet()
DemoGoalAction
Definition PlayerBase.h:820
@ cDemoGoalAction_PreRun
Definition PlayerBase.h:827
@ cDemoGoalAction_RideOffJump
Definition PlayerBase.h:825
@ cDemoGoalAction_Run
Definition PlayerBase.h:826
@ cDemoGoalAction_MultiJump
Definition PlayerBase.h:822
@ cDemoGoalAction_KimePose
Definition PlayerBase.h:824
@ cDemoGoalAction_Item
Definition PlayerBase.h:828
@ cDemoGoalAction_Pole
Definition PlayerBase.h:821
@ cDemoGoalAction_Wait
Definition PlayerBase.h:823
void setSlipEffect()
Definition PlayerBase.h:2058
virtual bool isWaitFrameCountMax()
Definition PlayerBase.h:2016
void setAddLiftSpeedF()
f32 mGoalPoleHeight
Definition PlayerBase.h:2854
s32 mActionTimer
Definition PlayerBase.h:2882
f32 mSinkSandSurfacePosY
Definition PlayerBase.h:2788
KaniAction
Definition PlayerBase.h:684
@ cKaniAction_HangUpVine
Definition PlayerBase.h:691
@ cKaniAction_HangFall
Definition PlayerBase.h:689
@ cKaniAction_Hang
Definition PlayerBase.h:688
@ cKaniAction_HangUp
Definition PlayerBase.h:690
@ cKaniAction_Walk
Definition PlayerBase.h:685
@ cKaniAction_HangInit
Definition PlayerBase.h:686
@ cKaniAction_JumpHangInit
Definition PlayerBase.h:687
virtual EffectID getTurnBrakeSmokeEffectID()=0
virtual bool isNoDamagePlayer()=0
bool setSlipAction_ToEnd(AnmBlend blend=cAnmBlend_Enable)
void holdSound(const char *label, s16 seq_var, StartSoundType type=cStartSoundType_Normal)
virtual bool setCrouchJump()
virtual bool isEnableRDashLuigiPhysics() const
Definition PlayerBase.h:1055
bool updateFunsuiPos(f32 x, f32 y)
void setFootSE(BgAttr attr)
sead::Vector3f mNextFrameSpeed
Definition PlayerBase.h:2756
void setHipAttackEffect()
Status
Definition PlayerBase.h:73
@ cStatus_46
Definition PlayerBase.h:111
@ cStatus_141
Definition PlayerBase.h:195
@ cStatus_131
Definition PlayerBase.h:185
@ cStatus_RDash_DispPinch
Definition PlayerBase.h:304
@ cStatus_263
Definition PlayerBase.h:305
@ cStatus_135
Definition PlayerBase.h:189
@ cStatus_UnkJumpGravity
Definition PlayerBase.h:102
@ cStatus_106
Definition PlayerBase.h:160
@ cStatus_184
Definition PlayerBase.h:234
@ cStatus_60
Definition PlayerBase.h:124
@ cStatus_156
Definition PlayerBase.h:210
@ cStatus_RideCloud
Definition PlayerBase.h:173
@ cStatus_200
Definition PlayerBase.h:249
@ cStatus_223
Definition PlayerBase.h:271
@ cStatus_ControlledMoveReq
Definition PlayerBase.h:298
@ cStatus_Jump
Definition PlayerBase.h:93
@ cStatus_89
Definition PlayerBase.h:148
@ cStatus_DispOutDanger
Definition PlayerBase.h:81
@ cStatus_LastBit
Definition PlayerBase.h:320
@ cStatus_CanWaterWalk
Definition PlayerBase.h:230
@ cStatus_254
Definition PlayerBase.h:296
@ cStatus_41
Definition PlayerBase.h:108
@ cStatus_242
Definition PlayerBase.h:284
@ cStatus_227
Definition PlayerBase.h:275
@ cStatus_OutOfPlay
Definition PlayerBase.h:86
@ cStatus_208
Definition PlayerBase.h:256
@ cStatus_DemoOnLandStop
Definition PlayerBase.h:286
@ cStatus_DisableSound
Definition PlayerBase.h:79
@ cStatus_47
Definition PlayerBase.h:112
@ cStatus_NoEntryReactCc
Definition PlayerBase.h:308
@ cStatus_155
Definition PlayerBase.h:209
@ cStatus_193
Definition PlayerBase.h:242
@ cStatus_45
Definition PlayerBase.h:110
@ cStatus_63
Definition PlayerBase.h:127
@ cStatus_178
Definition PlayerBase.h:228
@ cStatus_BitNum
Definition PlayerBase.h:321
@ cStatus_195
Definition PlayerBase.h:244
@ cStatus_191
Definition PlayerBase.h:240
@ cStatus_FaderPosSet
Definition PlayerBase.h:82
@ cStatus_DemoControlReq
Definition PlayerBase.h:277
@ cStatus_280
Definition PlayerBase.h:313
@ cStatus_DemoAnmLoop
Definition PlayerBase.h:287
@ cStatus_RideBalloonContVoiceReq
Definition PlayerBase.h:179
@ cStatus_282
Definition PlayerBase.h:315
@ cStatus_JumpAddSpeed
Definition PlayerBase.h:84
@ cStatus_186
Definition PlayerBase.h:236
@ cStatus_62
Definition PlayerBase.h:126
@ cStatus_HipAttackOnEnemy
Definition PlayerBase.h:119
@ cStatus_Down
Definition PlayerBase.h:88
@ cStatus_56
Definition PlayerBase.h:120
@ cStatus_179
Definition PlayerBase.h:229
@ cStatus_ZPosSetNone
Definition PlayerBase.h:247
@ cStatus_265
Definition PlayerBase.h:307
@ cStatus_IsWaterWalk
Definition PlayerBase.h:231
@ cStatus_HideTemporarily
Definition PlayerBase.h:226
@ cStatus_RideNatDone
Definition PlayerBase.h:181
@ cStatus_Vine
Definition PlayerBase.h:138
@ cStatus_48
Definition PlayerBase.h:113
@ cStatus_74
Definition PlayerBase.h:136
@ cStatus_NoSlipSaka
Definition PlayerBase.h:278
@ cStatus_RideBalloon
Definition PlayerBase.h:176
@ cStatus_113
Definition PlayerBase.h:167
@ cStatus_217
Definition PlayerBase.h:265
@ cStatus_64
Definition PlayerBase.h:128
@ cStatus_ControlledState
Definition PlayerBase.h:77
@ cStatus_NoGravityUntilFall
Definition PlayerBase.h:83
@ cStatus_160
Definition PlayerBase.h:214
@ cStatus_Spin
Definition PlayerBase.h:131
@ cStatus_38
Definition PlayerBase.h:105
@ cStatus_138
Definition PlayerBase.h:192
@ cStatus_BgPointDataCarryRev
Definition PlayerBase.h:303
@ cStatus_182
Definition PlayerBase.h:232
@ cStatus_207
Definition PlayerBase.h:255
@ cStatus_WaitJump
Definition PlayerBase.h:101
@ cStatus_SitJump
Definition PlayerBase.h:97
@ cStatus_224
Definition PlayerBase.h:272
@ cStatus_241
Definition PlayerBase.h:283
@ cStatus_252
Definition PlayerBase.h:294
@ cStatus_218
Definition PlayerBase.h:266
@ cStatus_199
Definition PlayerBase.h:248
@ cStatus_104
Definition PlayerBase.h:158
@ cStatus_EndingDisableSound
Definition PlayerBase.h:318
@ cStatus_121
Definition PlayerBase.h:175
@ cStatus_52
Definition PlayerBase.h:117
@ cStatus_130
Definition PlayerBase.h:184
@ cStatus_150
Definition PlayerBase.h:204
@ cStatus_220
Definition PlayerBase.h:268
@ cStatus_237
Definition PlayerBase.h:279
@ cStatus_93
Definition PlayerBase.h:150
@ cStatus_239
Definition PlayerBase.h:281
@ cStatus_212
Definition PlayerBase.h:260
@ cStatus_196
Definition PlayerBase.h:245
@ cStatus_Stunned
Definition PlayerBase.h:89
@ cStatus_DemoDokan
Definition PlayerBase.h:258
@ cStatus_NoPropelRoll
Definition PlayerBase.h:130
@ cStatus_188
Definition PlayerBase.h:238
@ cStatus_73
Definition PlayerBase.h:135
@ cStatus_109
Definition PlayerBase.h:163
@ cStatus_FollowMameKuribo
Definition PlayerBase.h:224
@ cStatus_PenguinSwim
Definition PlayerBase.h:153
@ cStatus_40
Definition PlayerBase.h:107
@ cStatus_216
Definition PlayerBase.h:264
@ cStatus_RideBalloonAll
Definition PlayerBase.h:178
@ cStatus_110
Definition PlayerBase.h:164
@ cStatus_264
Definition PlayerBase.h:306
@ cStatus_ControlledMove
Definition PlayerBase.h:297
@ cStatus_152
Definition PlayerBase.h:206
@ cStatus_226
Definition PlayerBase.h:274
@ cStatus_PoleRope
Definition PlayerBase.h:141
@ cStatus_258
Definition PlayerBase.h:300
@ cStatus_221
Definition PlayerBase.h:269
@ cStatus_225
Definition PlayerBase.h:273
@ cStatus_Fall
Definition PlayerBase.h:94
@ cStatus_MaxBitNum
Definition PlayerBase.h:322
@ cStatus_18
Definition PlayerBase.h:90
@ cStatus_71
Definition PlayerBase.h:133
@ cStatus_CanFlyBalloonChibiYoshi
Definition PlayerBase.h:193
@ cStatus_270
Definition PlayerBase.h:311
@ cStatus_Quake
Definition PlayerBase.h:91
@ cStatus_Pole
Definition PlayerBase.h:140
@ cStatus_CannonJump
Definition PlayerBase.h:99
@ cStatus_EnableDokanIn
Definition PlayerBase.h:221
@ cStatus_213
Definition PlayerBase.h:261
@ cStatus_142
Definition PlayerBase.h:196
@ cStatus_97
Definition PlayerBase.h:152
@ cStatus_57
Definition PlayerBase.h:121
@ cStatus_CheckBg
Definition PlayerBase.h:291
@ cStatus_153
Definition PlayerBase.h:207
@ cStatus_RideBalloonSetVisible
Definition PlayerBase.h:177
@ cStatus_197
Definition PlayerBase.h:246
@ cStatus_BalloonChibiYoshiFly
Definition PlayerBase.h:316
@ cStatus_Swim
Definition PlayerBase.h:146
@ cStatus_Invisible
Definition PlayerBase.h:225
@ cStatus_166
Definition PlayerBase.h:217
@ cStatus_183
Definition PlayerBase.h:233
@ cStatus_CannonShot
Definition PlayerBase.h:227
@ cStatus_SlideSlope
Definition PlayerBase.h:301
@ cStatus_Penguin
Definition PlayerBase.h:253
@ cStatus_RideNat
Definition PlayerBase.h:182
@ cStatus_116
Definition PlayerBase.h:170
@ cStatus_133
Definition PlayerBase.h:187
@ cStatus_58
Definition PlayerBase.h:122
@ cStatus_240
Definition PlayerBase.h:282
@ cStatus_219
Definition PlayerBase.h:267
@ cStatus_157
Definition PlayerBase.h:211
@ cStatus_82
Definition PlayerBase.h:144
@ cStatus_118
Definition PlayerBase.h:172
@ cStatus_RideBalloonCheckAllFade
Definition PlayerBase.h:180
@ cStatus_134
Definition PlayerBase.h:188
@ cStatus_EnableSpin
Definition PlayerBase.h:216
@ cStatus_49
Definition PlayerBase.h:114
@ cStatus_253
Definition PlayerBase.h:295
@ cStatus_RideYoshi
Definition PlayerBase.h:168
@ cStatus_InitialSlip
Definition PlayerBase.h:156
@ cStatus_243
Definition PlayerBase.h:285
@ cStatus_DisableUpdate
Definition PlayerBase.h:75
@ cStatus_143
Definition PlayerBase.h:197
@ cStatus_DispOut
Definition PlayerBase.h:80
@ cStatus_137
Definition PlayerBase.h:191
@ cStatus_147
Definition PlayerBase.h:201
@ cStatus_145
Definition PlayerBase.h:199
@ cStatus_105
Definition PlayerBase.h:159
@ cStatus_ActiveThisFrame
Definition PlayerBase.h:74
@ cStatus_DisableAnm
Definition PlayerBase.h:76
@ cStatus_149
Definition PlayerBase.h:203
@ cStatus_206
Definition PlayerBase.h:254
@ cStatus_222
Definition PlayerBase.h:270
@ cStatus_187
Definition PlayerBase.h:237
@ cStatus_51
Definition PlayerBase.h:116
@ cStatus_Hang
Definition PlayerBase.h:139
@ cStatus_111
Definition PlayerBase.h:165
@ cStatus_158
Definition PlayerBase.h:212
@ cStatus_RidePlayer
Definition PlayerBase.h:161
@ cStatus_DispOutPosYAdj
Definition PlayerBase.h:302
@ cStatus_136
Definition PlayerBase.h:190
@ cStatus_ShadowkunCatch
Definition PlayerBase.h:293
@ cStatus_129
Definition PlayerBase.h:183
@ cStatus_50
Definition PlayerBase.h:115
@ cStatus_215
Definition PlayerBase.h:263
@ cStatus_151
Definition PlayerBase.h:205
@ cStatus_185
Definition PlayerBase.h:235
@ cStatus_NoBgCrossUpdate
Definition PlayerBase.h:290
@ cStatus_204
Definition PlayerBase.h:252
@ cStatus_DemoMode
Definition PlayerBase.h:78
@ cStatus_154
Definition PlayerBase.h:208
@ cStatus_39
Definition PlayerBase.h:106
@ cStatus_CannonWarp
Definition PlayerBase.h:100
@ cStatus_267
Definition PlayerBase.h:309
@ cStatus_IgnoreBgCross
Definition PlayerBase.h:289
@ cStatus_214
Definition PlayerBase.h:262
@ cStatus_250
Definition PlayerBase.h:292
@ cStatus_DemoControl
Definition PlayerBase.h:280
@ cStatus_WallSlide
Definition PlayerBase.h:103
@ cStatus_SceneChangeNext
Definition PlayerBase.h:257
@ cStatus_PenguinSlide
Definition PlayerBase.h:154
@ cStatus_RideJrCrown
Definition PlayerBase.h:174
@ cStatus_168
Definition PlayerBase.h:219
@ cStatus_CanSetSpeedChibiYoshi
Definition PlayerBase.h:194
@ cStatus_148
Definition PlayerBase.h:202
@ cStatus_117
Definition PlayerBase.h:171
@ cStatus_KaniHang
Definition PlayerBase.h:142
@ cStatus_NoSwimAction
Definition PlayerBase.h:251
@ cStatus_LiftUp
Definition PlayerBase.h:162
@ cStatus_37
Definition PlayerBase.h:104
@ cStatus_146
Definition PlayerBase.h:200
@ cStatus_172
Definition PlayerBase.h:222
@ cStatus_SinkSandSurfJump
Definition PlayerBase.h:96
BalloonChibiYoshiFlyAction
Definition PlayerBase.h:737
@ cBalloonChibiYoshiFlyAction_FlyForceFall
Definition PlayerBase.h:740
@ cBalloonChibiYoshiFlyAction_Fly
Definition PlayerBase.h:738
@ cBalloonChibiYoshiFlyAction_Fall
Definition PlayerBase.h:739
virtual void setSubjectFail()=0
bool isBgPress(Actor *actor)
void setObjDokanIn(ActorBoxBgCollision *bg_collision, const sead::Vector3f &pos, s32 dst_next_goto_no, DokanDir dir)
virtual void setFallDownDemo()=0
void setCcAtPenguinSlip()
f32 getWaterCheckPosY()
s32 _20ec
Definition PlayerBase.h:2845
s32 mWaterFunsuiEffectTimer
Definition PlayerBase.h:2919
s32 _21e0
Definition PlayerBase.h:2887
DemoOutDokanAction
Definition PlayerBase.h:802
@ cDemoOutDokanAction_End
Definition PlayerBase.h:805
@ cDemoOutDokanAction_MoveMainAxis
Definition PlayerBase.h:804
@ cDemoOutDokanAction_MoveSubAxis
Definition PlayerBase.h:803
f32 mWaterSurfacePosY
Definition PlayerBase.h:2782
void setReductionScale()
s32 mExecuteFreezeTimer
Definition PlayerBase.h:2735
virtual EffectID getRunSmokeEffectID()=0
virtual bool setPressBgDamage(DamageType type, bool)=0
void setEnemyStageClearDemo(const Actor &box)
Definition PlayerBase.h:1622
void setDokanInPos(sead::Vector3f pos, DokanDir dir)
virtual bool setDokanIn(DokanDir dir)
void setCcAtCannon()
FollowEffect mTurnBrakeSmokeEffect
Definition PlayerBase.h:2912
sead::SafeArray< FollowEffect, 3 > mWaterEffect
Definition PlayerBase.h:2920
virtual f32 getStandHeadBgPointY()=0
void setTurnEnd()
virtual f32 vf584()=0
bool isState(const StateID &state_id) const
Definition PlayerBase.h:1985
bool checkOnHDokan(const u64 &bc_data)
f32 mDokanMoveYOffset
Definition PlayerBase.h:2869
void onStatus(s32 bit)
Definition PlayerBase.h:2684
bool checkSlip()
Bitfield< cStatus_MaxBitNum > mStatus
Definition PlayerBase.h:2745
s32 mDstNextGotoID
Definition PlayerBase.h:2847
virtual void throwCarryActor()
Definition PlayerBase.h:2164
virtual EffectID getHipDropExEffectID()=0
SlipAction
Definition PlayerBase.h:528
@ cSlipAction_1
Definition PlayerBase.h:530
@ cSlipAction_ToEnd
Definition PlayerBase.h:532
@ cSlipAction_ToStoop
Definition PlayerBase.h:531
@ cSlipAction_Move
Definition PlayerBase.h:529
u32 _4b8
Definition PlayerBase.h:2747
WaterType mWaterType
Definition PlayerBase.h:2784
Angle addCalcAngleY(Angle target, s32 num_frame)
Definition PlayerBase.h:2171
virtual void initDemoOutDokan()=0
bool execute() override
Main execution/logic callback for the actor. Called every frame (the game runs at exactly 60 FPS).
static const s32 cAddCalcAngleYFrameNum_Default
Definition PlayerBase.h:989
const JumpInf * mChangeStateJmpInf
Definition PlayerBase.h:2879
bool isStatus(s32 bit)
Definition PlayerBase.h:2694
bool dokanMoveOut()
virtual EffectID getDashSmokeEffectID()=0
virtual void setSubjectClear()=0
virtual bool checkSlipMoveEnd()=0
void endControlDemo()
FStateMgr< PlayerBase > mStateMgr
Definition PlayerBase.h:2878
bool checkOldBgCrossFoot(s32 frame_cnt)
WalkAction
Definition PlayerBase.h:476
@ cWalkAction_Move
Definition PlayerBase.h:478
@ cWalkAction_Wait
Definition PlayerBase.h:477
virtual EffectID getTurnBrakeEffectID()=0
ActorBgCollisionCheck::Sensor mBcSensorFoot
Definition PlayerBase.h:2764
void setStartJumpEffect(bool with_smoke)
static const f32 cMaxFallSpeed
Definition PlayerBase.h:981
sead::Vector2f mBgSpeedPrev
Definition PlayerBase.h:2790
bool calcCcPlayerRev(f32 *)
SwimAction
Definition PlayerBase.h:551
@ cSwimAction_Penguin
Definition PlayerBase.h:554
@ cSwimAction_Walk
Definition PlayerBase.h:553
@ cSwimAction_FireBall
Definition PlayerBase.h:555
@ cSwimAction_SwimWithChibi
Definition PlayerBase.h:556
@ cSwimAction_Swim
Definition PlayerBase.h:552
@ cSwimAction_SwimWithChibi_CantSpinMaybe
Definition PlayerBase.h:557
ActorUniqueID mNoHitPlayerID
Definition PlayerBase.h:2825
const ActorBgCollisionCheck::Sensor * getWallBgPointData()
Definition PlayerBase.h:1156
bool isSubjectState(const StateID &state_id) const
Definition PlayerBase.h:2630
ReductionMode
Definition PlayerBase.h:901
@ cReductionMode_JumpDai
Definition PlayerBase.h:903
@ cReductionMode_None
Definition PlayerBase.h:902
@ cReductionMode_2
Definition PlayerBase.h:904
@ cReductionMode_Boyon
Definition PlayerBase.h:905
void clearTreadCount()
BgAttr mBgAttr
Definition PlayerBase.h:2780
bool isControlDemoWait()
bool setWaitJumpAction()
PlayerModelBase * getModel()
virtual bool setBalloonDispOut()=0
void setJumpSandSinkRate()
BgAttr mTurnBrakeBgAttr
Definition PlayerBase.h:2913
sead::SafeArray< f32, cDirType_NumX > _20ac
Definition PlayerBase.h:2838
s32 _21e8
Definition PlayerBase.h:2889
void checkWater()
sead::Vector2f mDokanPosMoveDelta
Definition PlayerBase.h:2867
JumpDaiAction
Definition PlayerBase.h:562
@ cJumpDaiAction_1
Definition PlayerBase.h:564
@ cJumpDaiAction_0
Definition PlayerBase.h:563
AnimePlayType
Definition PlayerBase.h:925
@ cAnimePlayType_BossAttention
Definition PlayerBase.h:929
@ cAnimePlayType_EndingGladWait
Definition PlayerBase.h:935
@ cAnimePlayType_LastBoss1Glad
Definition PlayerBase.h:932
@ cAnimePlayType_LastBoss2Glad
Definition PlayerBase.h:931
@ cAnimePlayType_TitleSlip
Definition PlayerBase.h:933
@ cAnimePlayType_BossGlad
Definition PlayerBase.h:928
@ cAnimePlayType_EndingGlad
Definition PlayerBase.h:934
@ cAnimePlayType_TottenItem
Definition PlayerBase.h:936
@ cAnimePlayType_BossSetUp
Definition PlayerBase.h:927
@ cAnimePlayType_BossKeyGet
Definition PlayerBase.h:930
@ cAnimePlayType_Normal
Definition PlayerBase.h:926
virtual bool vf154()
virtual void setHipAttack_StandNormalEnd()=0
void setRideNat(f32 value)
sead::Vector3f mHipAttackEffectPos
Definition PlayerBase.h:2907
f32 mAirDriftSpeedF
Definition PlayerBase.h:2803
s32 mNoHitPlayerTimer
Definition PlayerBase.h:2824
CarryPlayerAction
Definition PlayerBase.h:598
@ cCarryPlayerAction_Move
Definition PlayerBase.h:599
@ cCarryPlayerAction_Crouch
Definition PlayerBase.h:600
@ cCarryPlayerAction_Fire
Definition PlayerBase.h:602
@ cCarryPlayerAction_FireEnd
Definition PlayerBase.h:603
@ cCarryPlayerAction_2
Definition PlayerBase.h:601
virtual void endStar()=0
bool executeDemoState()
s32 _2068
Definition PlayerBase.h:2815
void setControlDemoAnm(s32 anm_id, bool loop)
virtual bool isEnableDokanInStatus()=0
bool checkSlipEndKey()
virtual void walkActionInit_Wait(AnmBlend blend)=0
bool isOldDemoState(const StateID &state_id) const
Definition PlayerBase.h:1568
sead::Vector3f mAirWaterHitPos
Definition PlayerBase.h:2786
virtual bool setDamage(Actor *actor, DamageType type)=0
CloudAction
Definition PlayerBase.h:537
@ cCloudAction_Idle
Definition PlayerBase.h:538
@ cCloudAction_CrouchEnd
Definition PlayerBase.h:541
@ cCloudAction_Crouch
Definition PlayerBase.h:540
@ cCloudAction_Throw
Definition PlayerBase.h:545
@ cCloudAction_FireCreateEnd
Definition PlayerBase.h:543
@ cCloudAction_Move
Definition PlayerBase.h:539
@ cCloudAction_6
Definition PlayerBase.h:544
@ cCloudAction_ThrowEnd
Definition PlayerBase.h:546
@ cCloudAction_FireCreate
Definition PlayerBase.h:542
void setControlDemoAnmSeq(AnimePlayType type)
virtual void initialNormal(NextGotoType next_goto_type)
virtual s8 getStarCount() const =0
ActorBoxBgCollision * mDokanBgCollision
Definition PlayerBase.h:2873
virtual bool isStar() const =0
virtual bool isChange()=0
virtual bool setHipAttackToKaniHangAction()=0
void changeNormalAction()
virtual void executeDemoGoal_Item()=0
virtual void setPlayerModeImpl(PlayerMode mode, bool temporary)=0
void setStampPlayerJump(bool allow_high_jump, f32 rev_y)
virtual void initialFinalBoss(NextGotoType next_goto_type)
bool setSandMoveSpeed()
static const f32 cWaterCancelCrouchAnmSpeed
Definition PlayerBase.h:987
virtual void initialFall(NextGotoType next_goto_type)
PlayerBase(const ActorCreateParam &param)
sead::Vector2f _2100
Definition PlayerBase.h:2850
bool checkSinkSand()
void DemoAnmLastBoss1Glad()
PlayerJumpDaiAction
Definition PlayerBase.h:569
@ cPlayerJumpDaiAction_1
Definition PlayerBase.h:571
@ cPlayerJumpDaiAction_0
Definition PlayerBase.h:570
sead::Vector2f _2108
Definition PlayerBase.h:2851
bool setFumiSubjectCoinEndClear()
virtual void setPlayerMode(PlayerMode mode, bool temporary)
Definition PlayerBase.h:1048
virtual bool setTimeOverDemo()=0
virtual void initDemoInDokan(DokanDir dir)=0
void DemoAnmTitleSlip()
bool setDemoOutDokanAction(s32 dst_next_goto_no, DokanDir dir)
bool mIsSubjectClear
Definition PlayerBase.h:2923
virtual EffectID getLavaSplashEffectID(bool big)=0
void setHipAttack_Ready_()
void dispPinchRequestRDash()
bool isDemo5Any()
virtual void offZPosSetNone()=0
virtual bool isCarryMamePlayer()
Definition PlayerBase.h:2260
s32 mDemoActionTimer
Definition PlayerBase.h:2844
ReductionMode mReductionMode
Definition PlayerBase.h:2826
void DemoAnmEndingGlad()
void gravitySet()
f32 getDokanWaitAnmFixFrame() const
SakaUpDown getSakaUpDown()
Definition PlayerBase.h:1207
bool isOldState(const StateID &state_id) const
Definition PlayerBase.h:1990
s8 getComboCount() const
Definition PlayerBase.h:2474
s32 _214c
Definition PlayerBase.h:2863
virtual void initialBoxingKoopaJr(NextGotoType next_goto_type)
Angle getMukiAngle(DirType dir)
void offDemo()
bool checkPressBgUD_()
s32 mSubjectClearWaitTimer
Definition PlayerBase.h:2922
ActorCollisionCheck mCollisionCheck5_Attack
Definition PlayerBase.h:2810
bool isOldBgCross(s32 bit)
Definition PlayerBase.h:2724
void setSandEffect()
PlayerDrcTouchCB mDrcTouchCallback
Definition PlayerBase.h:2811
bool mIsTurnBrakeSmokeEffectEnable
Definition PlayerBase.h:2915
bool demo_dokan_move_x(f32 step, f32 threshold)
virtual bool setOutDokanAngle()=0
void HipAction_AttackStart()
void setLandSE()
BalloonAction
Definition PlayerBase.h:620
@ cBalloonAction_5
Definition PlayerBase.h:626
@ cBalloonAction_1
Definition PlayerBase.h:622
@ cBalloonAction_4
Definition PlayerBase.h:625
@ cBalloonAction_6
Definition PlayerBase.h:627
@ cBalloonAction_3
Definition PlayerBase.h:624
@ cBalloonAction_0
Definition PlayerBase.h:621
@ cBalloonAction_2
Definition PlayerBase.h:623
s32 calcGoalLandNumFrame(f32 pos, f32 land_pos, f32 jump_speed)
bool checkPressBg()
DokanType
Definition PlayerBase.h:452
@ cDokanType_Rail
Definition PlayerBase.h:455
@ cDokanType_Normal
Definition PlayerBase.h:454
@ cDokanType_Invalid
Definition PlayerBase.h:453
f32 getFollowMameKuriboSpeedScaleX()
virtual bool setBalloonInDispOut(s32)=0
void checkCarryObjBgCarried_(const ActorBgCollisionCheck::Output &output, DirType dir)
void setJumpAddSpeedF(f32 f)
u32 mReductionStep
Definition PlayerBase.h:2827
f32 mGoalBaseLandPos
Definition PlayerBase.h:2855
void moveSpeedSet()
CrouchAction
Definition PlayerBase.h:521
@ cCrouchAction_Ground
Definition PlayerBase.h:522
@ cCrouchAction_Water
Definition PlayerBase.h:523
bool setDokanInNextGoto(s32 dst_next_goto_no)
void initDispSideLemit()
void subjectClearRequest()
s32 mFollowMameKuribo
Definition PlayerBase.h:2898
void initGoalMultiJump()
s32 mMaskPosInterpTimer
Definition PlayerBase.h:2739
f32 getJumpSpeedBase()
bool preDraw() override
Callback invoked before the draw operation.
PlayerMode getPlayerMode() const
Definition PlayerBase.h:2729
bool vf51C_Base(u32)
bool setHideNotGoalPlayerBase()
void initDemoOutDokanRoll()
const PlayerKey & getPlayerKey() const
Definition PlayerBase.h:2679
FireAction
Definition PlayerBase.h:576
@ cFireAction_0
Definition PlayerBase.h:577
@ cFireAction_1
Definition PlayerBase.h:578
virtual void executeDemoGoal_RideOffJump()=0
f32 mReductionScale
Definition PlayerBase.h:2828
f32 mGoalBasePosY
Definition PlayerBase.h:2858
void setJumpSpeed()
virtual PlayerTallType getTallType(PlayerMode mode)=0
bool checkCrouchSlip()
DemoWaitAction
Definition PlayerBase.h:793
@ cDemoWaitAction_Move
Definition PlayerBase.h:795
@ cDemoWaitAction_WaitTurn
Definition PlayerBase.h:794
@ cDemoWaitAction_WaitSingle
Definition PlayerBase.h:796
void getReductionModelScale(sead::Vector3f *scale)
void slipActionMove(bool turned)
bool setJumpDaiRide()
bool isLenientOutCheck()
void calcDokanMoveDiff(sead::Vector2f *diff=nullptr)
AttentionLookat mAttentionLookat
Definition PlayerBase.h:2744
virtual const PlayerBgPointHIO * getBgPointData()=0
virtual EffectID getPoisonSplashEffectID(bool big)=0
PlayerBase * getPlayerJumpDai()
void setMaskPosInterpType(s32 src_type)
static const f32 cJumpSpeed
Definition PlayerBase.h:975
void initDemoInDokanUD_(DokanDir dir)
CannonJumpAction
Definition PlayerBase.h:632
@ cCannonJumpAction_0
Definition PlayerBase.h:633
@ cCannonJumpAction_2
Definition PlayerBase.h:635
@ cCannonJumpAction_1
Definition PlayerBase.h:634
f32 getThrowSpeed()
void calcSideLimitMultR(f32 x)
void calcNoHitObjBgTimer()
void setCcAtStar()
virtual const PlayerGravityHIO * getGravityData()
Definition PlayerBase.h:2288
virtual bool checkWalkNextAction()=0
sead::Vector3f mFrameEndPosDelta
Definition PlayerBase.h:2748
void clearCcPlayerRev()
CheckBgDokanInUDRes checkBgDokanInUD(sead::Vector3f *pos, DokanDir dir)
PoleAction
Definition PlayerBase.h:503
@ cPoleAction_Up
Definition PlayerBase.h:506
@ cPoleAction_Wait
Definition PlayerBase.h:505
@ cPoleAction_Down
Definition PlayerBase.h:507
@ cPoleAction_Start
Definition PlayerBase.h:504
sead::Vector3f _1b28
Definition PlayerBase.h:2779
PlayerSpeedHIO * mSpeedData_Normal
Definition PlayerBase.h:2750
bool checkButtonDokanIn(DokanDir dir)
void setButtonJumpGravity()
void setHipDropExEffect()
bool setDelayHelpJump()
void setBrakeSmokeEffect()
Definition PlayerBase.h:2519
virtual EffectID getWaterSplashEffectID(bool big)=0
void setLandJumpEffect()
virtual void setHipAttack_AttackStart()=0
Angle getSakaAngleBySpeed(f32 speed_F)
virtual void calcTimerProc()
bool setCloudOn(Actor *cloud_actor)
void grandPowerSet()
void executeDemoGoal_KimePose()
s32 mReductionSimpleMoveTimer
Definition PlayerBase.h:2829
void calcReductionScale()
const ActorBgCollisionCheck::Sensor * getFootBgPointData()
Definition PlayerBase.h:1161
void checkSideViewLemit()
const PlayerGravityHIO * mGravityData
Definition PlayerBase.h:2752
bool isFlyDamageType(DamageType type)
s8 getTreadCount() const
Definition PlayerBase.h:2469
f32 mSandSinkRate
Definition PlayerBase.h:2791
virtual bool vf504()=0
void changeActionSlipEnd(AnmBlend blend)
virtual bool vf19C()=0
virtual void setZPosition()=0
s32 mGoalLandTimer
Definition PlayerBase.h:2860
f32 getIceSakaSlipOffSpeed()
bool setWaitJump()
f32 mRideNatPosY
Definition PlayerBase.h:2896
void setPosAndDir(const sead::Vector3f &pos, DirType dir)
void DemoAnmNormal()
void initDemoKimePose()
bool isUnkDemoLand()
void checkDemoControl()
virtual void reset()
bool releaseFunsui(f32 speed_y)
f32 getDokanCannonMoveYStep() const
void setJumpGravity(const f32 *thresholds, const f32 *gravities)
Definition PlayerBase.h:2347
virtual void initialDokan(NextGotoType next_goto_type)
s8 calcComboCount(s32 max)
void airPowerSet()
f32 _2190
Definition PlayerBase.h:2875
HangAction
Definition PlayerBase.h:696
@ cHangAction_Move
Definition PlayerBase.h:699
@ cHangAction_Start
Definition PlayerBase.h:697
@ cHangAction_Wait
Definition PlayerBase.h:698
bool checkJumpTrigger()
void updateRideNat()
AnimePlayAction
Definition PlayerBase.h:704
@ cAnimePlayAction_End
Definition PlayerBase.h:706
@ cAnimePlayAction_BossKeyGet_Num
Definition PlayerBase.h:718
@ cAnimePlayAction_TitleSlip_Num
Definition PlayerBase.h:721
@ cAnimePlayAction_BossAttention_Turn
Definition PlayerBase.h:714
@ cAnimePlayAction_Start
Definition PlayerBase.h:705
@ cAnimePlayAction_Glad_Wait
Definition PlayerBase.h:711
@ cAnimePlayAction_Glad_PutOnCap
Definition PlayerBase.h:709
@ cAnimePlayAction_BossAttention_Num
Definition PlayerBase.h:715
@ cAnimePlayAction_TitleSlip_Move
Definition PlayerBase.h:720
@ cAnimePlayAction_Glad_KimeStart
Definition PlayerBase.h:708
@ cAnimePlayAction_Glad_Num
Definition PlayerBase.h:712
@ cAnimePlayAction_BossKeyGet_Cheer
Definition PlayerBase.h:717
@ cAnimePlayAction_Glad_KimeWait
Definition PlayerBase.h:710
virtual bool isDemoType(DemoType type)
virtual bool isLiftUpExceptMame()
Definition PlayerBase.h:2265
void checkDisplayOutDead()
void setSlipActionViewLimitEnd()
f32 _1b0c
Definition PlayerBase.h:2772
void onDemo()
void setDemoGoalBase(const sead::Vector2f &pos, f32 walk_target_pos_x, bool secret_exit)
void offStatus(s32 bit)
Definition PlayerBase.h:2689
bool isControlDemoAnm(s32 anm_id)
EffectObj mHipAttackDropEffect
Definition PlayerBase.h:2905
bool isControlDemoWalk()
void DemoAnmBossSetUp()
AnimePlayType mAnimePlayType
Definition PlayerBase.h:2900
void setStampReduction(PlayerBase *player_other)
s32 getFollowMameKuribo()
void calcSideLimitMultL(f32 x)
bool isDisableSound(StartSoundType type)
virtual void startQuakeShock(Quake::ShockType shock_type)
ActorUniqueID mPlayerJumpDaiID
Definition PlayerBase.h:2846
void setFallDownDemoBase()
virtual void initialSlip(NextGotoType next_goto_type)
ActorBgCollisionCheck::SakaType mSakaType
Definition PlayerBase.h:2774
s32 mGoalYoshiSpitOutTimer
Definition PlayerBase.h:2859
void setCrouchSmokeEffect()
virtual EffectID getSlipSmokeEffectID()=0
virtual void setStar(StarSet set_type=cStarSet_Default, s32 time=0)=0
sead::Vector3f mHipAttackOnEnemyPos
Definition PlayerBase.h:2894
PlayerModelBaseMgr * mModelBaseMgr
Definition PlayerBase.h:2736
sead::Vector3f mGoalLandPos
Definition PlayerBase.h:2861
void calcPlayerSpeedXY()
virtual void setDemoGoal(const sead::Vector2f &pos, f32 walk_target_pos_x, bool secret_exit)=0
void setJumpGravity()
bool startControlDemo(bool status)
Angle mBaseSakaAnglePrev
Definition PlayerBase.h:2778
void setLandSakaJumpSpeedF()
BounceType
Definition PlayerBase.h:894
@ cBounceType_2
Definition PlayerBase.h:897
@ cBounceType_Normal
Definition PlayerBase.h:895
@ cBounceType_1
Definition PlayerBase.h:896
s32 _21e4
Definition PlayerBase.h:2888
TarzanRopeAction
Definition PlayerBase.h:672
@ cTarzanRopeAction_HasigoMove
Definition PlayerBase.h:677
@ cTarzanRopeAction_Start
Definition PlayerBase.h:673
@ cTarzanRopeAction_HasigoHangDown
Definition PlayerBase.h:678
@ cTarzanRopeAction_Up
Definition PlayerBase.h:675
@ cTarzanRopeAction_Wait
Definition PlayerBase.h:674
@ cTarzanRopeAction_HasigoHangUp
Definition PlayerBase.h:679
@ cTarzanRopeAction_Down
Definition PlayerBase.h:676
bool mIsDokanSwim
Definition PlayerBase.h:2874
virtual bool getHeadTopPos(sead::Vector3f &pos)
virtual bool bouncePlayer1(f32 speed_y, f32 speed_F, bool enable_LR, BounceType bounce_type, JumpSe jump_se_type)=0
sead::Vector2f mFunsuiPos
Definition PlayerBase.h:2891
StartSoundType
Definition PlayerBase.h:967
@ cStartSoundType_Normal
Definition PlayerBase.h:968
@ cStartSoundType_DisableInEnding
Definition PlayerBase.h:969
void coinFunsuiOnDamageCB(s32 type, Actor *eat_die_actor)
Result create() override
Main initialization/setup callback for the actor.
bool checkStandUpRoof()
PenguinSlideAction
Definition PlayerBase.h:655
@ cPenguinSlideAction_1
Definition PlayerBase.h:657
@ cPenguinSlideAction_StandUp
Definition PlayerBase.h:659
@ cPenguinSlideAction_Move
Definition PlayerBase.h:656
@ cPenguinSlideAction_ToCrouch
Definition PlayerBase.h:658
bool isRideMove()
void executeDemoGoal_Pole()
sead::Vector3f mFaderPos
Definition PlayerBase.h:2852
s32 mActionSubTimer
Definition PlayerBase.h:2883
void icePowerChange(bool slip)
virtual EffectID getHipDropBlurEffectID()=0
void clearComboCount()
Definition PlayerBase.h:2473
f32 mDokanMoveXThreshold
Definition PlayerBase.h:2870
virtual f32 getMoveJumpSpeed()=0
f32 getSakaMaxSpeedRatio(DirType dir)
void setCrouchActionAnm()
DemoType
Definition PlayerBase.h:871
@ cDemoType_3
Definition PlayerBase.h:874
@ cDemoType_ShadowkunCatch
Definition PlayerBase.h:877
@ cDemoType_4
Definition PlayerBase.h:875
@ cDemoType_1
Definition PlayerBase.h:872
@ cDemoType_5
Definition PlayerBase.h:876
EffectObj mWaterFunsuiEffect
Definition PlayerBase.h:2917
s32 mInvincibilityTimer
Definition PlayerBase.h:2812
s32 adjustCoinReductionNumCB_(s32 coin_num)
void calcSpeedOnIceLift()
bool preExecute() override
Callback invoked before the execute operation.
s32 getFollowMameKuriboSpeedType()
f32 mCcPlayerRevSpeedFScale
Definition PlayerBase.h:2818
f32 mAirDriftSpeedFDecelStep
Definition PlayerBase.h:2804
void offOldBgCross(s32 bit)
Definition PlayerBase.h:2719
ActorUniqueID mLineSpinLiftID
Definition PlayerBase.h:2799
bool isActionRevisionY()
Angle getMukiAngle()
Definition PlayerBase.h:2191
void setHipAttackSE()
bool setWaitJump_(f32 speed_y)
PlayerBase * searchPlayerAttention_(const sead::Vector2f &src_pos)
void setCcPlayerRevParam(f32 param)
virtual bool setDoorDemo(Actor *, u32)=0
Angle mBaseSakaAngle
Definition PlayerBase.h:2777
void DemoAnmBossAttention()
f32 getSakaMoveAccele(DirType dir)
void slipPowerSet(bool slip)
Definition PlayerBase.h:2326
void endDemoInDokan()
void setHitBlockSE()
virtual void setVirusStar(PlayerBase *other)=0
CheckBgDokanInUDRes
Definition PlayerBase.h:918
@ cCheckBgDokanInUDRes_ClearMame
Definition PlayerBase.h:920
@ cCheckBgDokanInUDRes_Clear
Definition PlayerBase.h:919
@ cCheckBgDokanInUDRes_Blocked
Definition PlayerBase.h:921
sead::SafeArray< BOOL, cOldBgCrossFootNum > mOldBgCrossFoot
Definition PlayerBase.h:2771
virtual void setSlipAction()=0
bool isEnableControlDemoKoopaSwitch()
void setHipAttack_ToStoop()
bool checkBGCrossWall(DirType dir)
virtual void setZPosition(f32 z)=0
u32 mDokanInTimerL
Definition PlayerBase.h:2871
virtual void initialHipAttack(NextGotoType next_goto_type)
s32 _2070
Definition PlayerBase.h:2817
StarSet
Definition PlayerBase.h:887
@ cStarSet_Virus
Definition PlayerBase.h:888
@ cStarSet_CustomTime
Definition PlayerBase.h:889
@ cStarSet_Default
Definition PlayerBase.h:890
s32 mDemoSubAction
Definition PlayerBase.h:2843
bool isDisableDokanInDemo()
void setNoHitPlayer(const PlayerBase *player_other, s32 time)
virtual void upperOverCheck()
bool isKinopio() const
f32 mCcPlayerRevSpeedFStart
Definition PlayerBase.h:2819
const ActorBgCollisionCheck::Sensor * getHeadBgPointData()
Definition PlayerBase.h:1151
bool checkSakaReverse()
void updateHipDropExEffect()
virtual void executeDemoGoal_PreRun()=0
PlayerMode mMode
Definition PlayerBase.h:2761
void endWaterFunsuiEffect()
s32 _21d8
Definition PlayerBase.h:2885
s32 mJumpAddSpeedHoldTimer
Definition PlayerBase.h:2806
DokanDir mDokanDir
Definition PlayerBase.h:2864
DokanType mDokanType
Definition PlayerBase.h:2868
void setControlDemoPos(const sead::Vector3f &pos)
ActorBgCollisionCheck * getBgCheck() override
Definition PlayerBase.h:1016
void stopOutDokanOther()
void resetBg()
f32 _4e4
Definition PlayerBase.h:2754
s32 mWaterDepthType
Definition PlayerBase.h:2785
f32 mDispSideLimitPad
Definition PlayerBase.h:2792
bool updateCloudMove()
static const f32 cMaxFallSpeed_Foot
Definition PlayerBase.h:983
void setShadowkunCatchDemo()
f32 mAirDriftSpeedFStart
Definition PlayerBase.h:2802
void setCcPlayerRevY(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other, f32 scale, ActorCollisionCheck::Kind kind)
s32 mNoHitObjBgTimer
Definition PlayerBase.h:2801
ActorCollisionCheck mCollisionCheck2_React
Definition PlayerBase.h:2807
void setCrouchWallSpeed()
void forceSlipToStoop()
s8 mPlComboCnt
Definition PlayerBase.h:2759
bool _2198
Definition PlayerBase.h:2877
void setDrawTypeInDistantView()
void blockHitInit_() override
bool checkPressBgLR_()
virtual void vf8AC(bool)=0
sead::Vector3f * getHeadTopPosP()
virtual void getMaskPos(sead::Vector3f &pos)=0
bool mIsLastPlayer
Definition PlayerBase.h:2853
EffectObj mEffectObjCommon
Definition PlayerBase.h:2901
void postBgCrossBase()
PlayerKey mPlayerKey
Definition PlayerBase.h:2742
void setLandSmokeEffectLight()
virtual void executeMain()=0
ActorUniqueID mRideActorID
Definition PlayerBase.h:2884
sead::SafeArray< u32, cDirType_NumX > _20a4
Definition PlayerBase.h:2834
bool isGoalRingLand()
void initAirDriftSpeedF(f32 start_val, f32 len_frames)
virtual void finDemoKimePose()=0
Bitfield< cBgCross_MaxBitNum > mOldBgCross
Definition PlayerBase.h:2767
void getAnkleCenterPos(sead::Vector3f *pos)
virtual void onDemoType(DemoType type)
void underOverCheck_()
virtual void setShadowFail()=0
u32 mDokanInTimerR
Definition PlayerBase.h:2872
virtual void calcJumpDaiReductionScale(s32 t, s32 max_t)
virtual EffectID getLavaWaveSplashEffectID(bool big)=0
BgUnitCode::TypeInfo_Damage mDamageBgTypeInfo
Definition PlayerBase.h:2794
bool isEnableStampPlayerJump(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other)
s32 mNoGravityTimer
Definition PlayerBase.h:2753
bool setJump(u8, JumpSe jump_se_type)
ActorBgCollisionCheck::Sensor mBcSensorWall
Definition PlayerBase.h:2765
virtual bool isFaceRot()
Definition PlayerBase.h:2283
DemoControlSubAction
Definition PlayerBase.h:845
@ cDemoControlSubAction_Wait
Definition PlayerBase.h:846
@ cDemoControlSubAction_Walk
Definition PlayerBase.h:847
@ cDemoControlSubAction_Anm
Definition PlayerBase.h:848
@ cDemoControlSubAction_4
Definition PlayerBase.h:850
@ cDemoControlSubAction_AnmSeq
Definition PlayerBase.h:849
Angle mSpeedSakaAnglePrev
Definition PlayerBase.h:2776
void startSound(const char *label, s16 seq_var, StartSoundType type=cStartSoundType_Normal)
void setFootSound()
s8 mTreadCnt
Definition PlayerBase.h:2758
virtual bool isDemoMode() const
void revSideLimitCommon(f32 x)
void postExecute(MainState state) override
Callback invoked unconditionally after the execute phase completes. It executes even if preExecute() ...
virtual void postBgCross()=0
void resetDrawType()
GameAudio::AudioObjctPly mAudioObj
Definition PlayerBase.h:2743
bool checkDispSideLemit_()
virtual void setTurnSmokeEffect(bool with_brake)
void powerSet()
virtual void setZPositionDirect(f32 z)=0
virtual void initialVine(NextGotoType next_goto_type)
bool isSlipSaka()
virtual void executeLastAll()=0
sead::Vector3f * getHeadPosP()
virtual EffectID getHipDropEffectID()=0
bool calcGoalJump()
void setPlayerJumoDaiPos()
sead::Vector3f mRidePlayerPosDelta
Definition PlayerBase.h:2893
u8 mPriority
Definition PlayerBase.h:2757
WallSlideAction
Definition PlayerBase.h:591
@ cWallSlideAction_MusasabiSlide
Definition PlayerBase.h:593
@ cWallSlideAction_Normal
Definition PlayerBase.h:592
void walkAction_SetAnm(AnmBlend blend)
void setTurnSE()
void setDokanSE()
virtual void setDokanWaitAnm(bool move_in)
s32 mGoalDemoOrder
Definition PlayerBase.h:2857
s32 mChangeDemoStateParam
Definition PlayerBase.h:2840
s32 mAction
Definition PlayerBase.h:2881
virtual ~PlayerBase()
void posMoveAnglePenguin(const sead::Vector3f &speed)
ThrowAction
Definition PlayerBase.h:583
@ cThrowAction_1
Definition PlayerBase.h:585
@ cThrowAction_0
Definition PlayerBase.h:584
@ cThrowAction_2
Definition PlayerBase.h:586
virtual bool setNormalDamage(ActorCollisionCheck *cc)=0
void slipPowerSet()
void stopCreateOther()
void setHipAttackOnEnemyBase(const sead::Vector3f &target_pos)
void executeDemoGoal_Wait()
HipdropExEffect mHipdropExEffect
Definition PlayerBase.h:2908
f32 getFollowMameKuriboSpeedScaleY()
sead::FixedRingBuffer< ActorUniqueID, 2 > mBgPressIDBuffer
Definition PlayerBase.h:2798
void setControlDemoDir(DirType dir)
bool isEnableGoalCollision()
PowerChangeType
Definition PlayerBase.h:958
@ cPowerChangeType_Num
Definition PlayerBase.h:962
@ cPowerChangeType_Ice
Definition PlayerBase.h:960
@ cPowerChangeType_Normal
Definition PlayerBase.h:959
@ cPowerChangeType_Snow
Definition PlayerBase.h:961
u32 _2148
Definition PlayerBase.h:2862
EffectObj _22fc
Definition PlayerBase.h:2903
bool checkDispOutLR()
void setDemoGoalMode(s32 demo_action, s32 demo_sub_action)
NextGotoType mNextGotoType
Definition PlayerBase.h:2848
void updateWaterEffect()
bool isEnemyStageClearDemoLand()
virtual void executeDemoGoal_Run()=0
void clearBgAndSakaAngle()
ActorCollisionCheck mCollisionCheck3_React
Definition PlayerBase.h:2808
bool isDemoLand()
void HipAction_AttackFall()
virtual void releaseFunsuiAction()=0
virtual void offDemoMode()
sead::Vector2f mBgSpeed
Definition PlayerBase.h:2789
void DemoAnmBossKeyGet()
bool setPressBgDamageBase(DamageType type)
f32 mHeight
Definition PlayerBase.h:2746
bool checkTurn()
static const s32 cAddCalcAngleYFrameNum_DemoOutDoor
Definition PlayerBase.h:990
f32 getSakaStopAccele(DirType dir)
sead::BitFlag32 mDemoTypeFlag
Definition PlayerBase.h:2841
ActorBgCollisionPlayerCheck mBgCheckPlayer
Definition PlayerBase.h:2762
virtual void initializeDemoControl(bool carry_chibi_yoshi=true)=0
virtual bool setHipAttackOnEnemy(const sead::Vector3f &target_pos)=0
void setDownFinishSubject()
void trySetSubjectCoinClear()
f32 getDemoGoalLandPos()
void holdSound(const char *label, StartSoundType type=cStartSoundType_Normal)
SpinHipAttackAction
Definition PlayerBase.h:648
@ cSpinHipAttackAction_Fall
Definition PlayerBase.h:649
@ cSpinHipAttackAction_Land
Definition PlayerBase.h:650
HipAction
Definition PlayerBase.h:483
@ cHipAction_StandNormal
Definition PlayerBase.h:488
@ cHipAction_ToStoop
Definition PlayerBase.h:490
@ cHipAction_StandNormalEnd
Definition PlayerBase.h:489
@ cHipAction_Ready
Definition PlayerBase.h:484
@ cHipAction_AttackFall
Definition PlayerBase.h:486
@ cHipAction_Ground
Definition PlayerBase.h:487
@ cHipAction_Num
Definition PlayerBase.h:491
@ cHipAction_AttackStart
Definition PlayerBase.h:485
DemoInDokanAction
Definition PlayerBase.h:810
@ cDemoInDokanAction_End
Definition PlayerBase.h:815
@ cDemoInDokanAction_WaitNextTurn_UnderwaterKoopaJrDemo
Definition PlayerBase.h:814
@ cDemoInDokanAction_WaitNextTurn
Definition PlayerBase.h:812
@ cDemoInDokanAction_CheckTurn
Definition PlayerBase.h:811
@ cDemoInDokanAction_Move
Definition PlayerBase.h:813
bool isSceneChangeWaitDone()
bool isMameAction()
virtual f32 getCloudOffsetY()=0
AnmBlend
Definition PlayerBase.h:881
@ cAnmBlend_Enable
Definition PlayerBase.h:883
@ cAnmBlend_Disable
Definition PlayerBase.h:882
bool isDemoAll()
virtual void clearJumpActionInfo()=0
DamageType
Definition PlayerBase.h:48
@ cDamageType_DeathCloud
Definition PlayerBase.h:65
@ cDamageType_Ice
Definition PlayerBase.h:60
@ cDamageType_Hit
Definition PlayerBase.h:49
@ cDamageType_Ice2
Definition PlayerBase.h:61
@ cDamageType_Eaten2
Definition PlayerBase.h:67
@ cDamageType_SmallKnock
Definition PlayerBase.h:55
@ cDamageType_Num
Definition PlayerBase.h:69
@ cDamageType_Knock2
Definition PlayerBase.h:54
@ cDamageType_SteppedOn
Definition PlayerBase.h:68
@ cDamageType_Fire
Definition PlayerBase.h:58
@ cDamageType_Kill
Definition PlayerBase.h:64
@ cDamageType_Knock
Definition PlayerBase.h:53
@ cDamageType_Hit2
Definition PlayerBase.h:50
@ cDamageType_Poison
Definition PlayerBase.h:63
@ cDamageType_SmallKnock3
Definition PlayerBase.h:57
@ cDamageType_SmallKnock2
Definition PlayerBase.h:56
@ cDamageType_Eaten
Definition PlayerBase.h:66
@ cDamageType_HitKnock
Definition PlayerBase.h:51
@ cDamageType_Spark
Definition PlayerBase.h:62
@ cDamageType_Hit3
Definition PlayerBase.h:52
@ cDamageType_Fire2
Definition PlayerBase.h:59
void setHipAttack_AttackFall()
s32 mMaskPosInterpSrcType
Definition PlayerBase.h:2738
Angle getSakaAngle(DirType dir)
VineAction
Definition PlayerBase.h:512
@ cVineAction_Net
Definition PlayerBase.h:514
@ cVineAction_Ivy
Definition PlayerBase.h:513
@ cVineAction_Roll
Definition PlayerBase.h:516
@ cVineAction_Attack
Definition PlayerBase.h:515
void clearBgSpeed()
virtual bool setForcedDamage(Actor *actor, DamageType type)=0
bool demo_dokan_move_y(f32 step, f32 offset)
void changeStateImpl(const StateID &state_id, s32 param, const JumpInf *jmp_inf)
void setBcSensorFlagsBase()
void onNowBgCross(s32 bit)
Definition PlayerBase.h:2699
virtual void initialTitle(NextGotoType next_goto_type)
Angle addCalcAngleY(const Angle &target, f32 rate)
ActorBgCollisionCheck::SakaType getSakaType(DirType dir)
virtual void executeLastPlayer()=0
bool turnAngle()
bool isOldSubjectState(const StateID &state_id) const
Definition PlayerBase.h:2635
void setStomped()
void setPoisonDamageEffect()
s32 calcGoalBonusCoinNum()
void setNormalJumpGravity()
static const f32 cUnkZero
Definition PlayerBase.h:977
Angle getBesideMukiAngle()
Definition PlayerBase.h:2199
void changeState(const StateID &state_id, const JumpInf &jmp_inf)
s32 _2a4
Definition PlayerBase.h:2741
virtual void clearCcData()
u32 _2194
Definition PlayerBase.h:2876
FStateMgr< PlayerBase > mSubjectStateMgr
Definition PlayerBase.h:2921
virtual bool setHideNotGoalPlayer()=0
void bgCheck(bool side_view_check)
PlayerSpeedHIO * getSpeedData() const
Definition PlayerBase.h:2369
FunsuiType mFunsuiType
Definition PlayerBase.h:2890
PlayerSpeedHIO * mSpeedData_Star
Definition PlayerBase.h:2751
void setHipAttackDropEffect()
f32 mKaniPosY
Definition PlayerBase.h:2773
void setVsPlHipAttackEffect()
void executeDemoInDokan()
bool isDemo3Any()
virtual bool isNoDamage()=0
void updateWaterFunsuiEffect()
void getDokanInLRWallBgPointData(ActorBgCollisionCheck::Sensor *sensor)
virtual void offDemoType(DemoType type)
void setFaderPos(const sead::Vector3f &pos)
void checkBgCross_()
virtual bool setDamage2(Actor *actor, DamageType type)=0
virtual void setWaitActionAnm(AnmBlend blend)=0
bool isEnableDokanInStatusBase()
void checkDispOver()
virtual void setGoalPoleCatchVoice()=0
bool isDisableGoalDemo()
void normalPowerSet()
void initDemoInDokanLR(DokanDir dir)
f32 mAddBgSpeedF
Definition PlayerBase.h:2805
void setCcAtBody(const ActorCollisionCheck::Attack &attack)
sead::Vector3f _284
Definition PlayerBase.h:2737
static const s32 cOldBgCrossFootNum
Definition PlayerBase.h:410
void startFootSoundPlayer(const char *label)
virtual void DemoAnmTottenItem()
bool isDemo()
void calcAccOnIceLift()
bool calcHeadAttentionAngle_(const sead::Vector2f &target_pos, sead::BitFlag32 flag, Angle max_angle_y)
void setWaterOutEffect(const sead::Vector3f &pos, bool deep)
bool isEnableGoal()
bool isBossDemoLand()
void setItemCompleteVoice()
void initDemoInDokanBase(DokanDir dir)
void setHipAttack_AttackStartBase()
const PlayerModelBase * getModel() const
void getCloudPos(sead::Vector3f &pos)
void HipAction_Ground()
FollowEffect mHipAttackEffect
Definition PlayerBase.h:2906
DemoNextGotoBlockAction
Definition PlayerBase.h:779
@ cDemoNextGotoBlockAction_SceneChange
Definition PlayerBase.h:781
@ cDemoNextGotoBlockAction_Walk
Definition PlayerBase.h:780
static const f32 cWaterNumaJumpSpeed
Definition PlayerBase.h:979
sead::Vector3f mDokanFaderPos
Definition PlayerBase.h:2866
virtual void setCreate(const sead::Vector3f &pos, NextGotoType next_goto_type, DirType dir)
void coinJumpOnStampCB(s32 coin_num)
void setCcAtSlip()
virtual void getDokanWallBgPointData(ActorBgCollisionCheck::Sensor *sensor)=0
PlayerTallType getTallType()
Definition PlayerBase.h:1060
void posMoveAnglePlayer(const sead::Vector3f &speed)
EffectObj mFootEffect
Definition PlayerBase.h:2904
virtual bool vf7F4(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other)=0
void changeNextScene(s32)
Angle mAirWaterHitAngle
Definition PlayerBase.h:2787
void startKimePoseVoice(ClearType clear_type)
void setControlDemoWalk(f32 target_pos_x, f32 speed)
Definition PlayerModelBaseMgr.h:6
Definition PlayerModelBase.h:16
Definition PlayerBase.h:468
JumpSe jump_se_type
Definition PlayerBase.h:470
u8 _8
Definition PlayerBase.h:471
f32 speed_y
Definition PlayerBase.h:469
Definition PlayerBase.h:25
ActorBgCollisionCheck::Sensor sensor_wall
Definition PlayerBase.h:28
ActorBgCollisionCheck::Sensor sensor_foot
Definition PlayerBase.h:26
ActorBgCollisionCheck::Sensor sensor_head
Definition PlayerBase.h:27
Definition PlayerBase.h:745
CrouchAction crouch
Definition PlayerBase.h:751
CarryPlayerAction carry_player
Definition PlayerBase.h:760
WalkAction walk
Definition PlayerBase.h:746
JumpDaiAction jump_dai
Definition PlayerBase.h:755
PropelAction propel
Definition PlayerBase.h:764
JumpAction jump
Definition PlayerBase.h:748
PlayerJumpDaiAction player_jump_dai
Definition PlayerBase.h:756
BalloonChibiYoshiAction balloon_chibi_yoshi
Definition PlayerBase.h:767
HangAction hang
Definition PlayerBase.h:770
WallSlideAction wall_slide
Definition PlayerBase.h:759
AnimePlayAction anime_play
Definition PlayerBase.h:771
BalloonAction balloon
Definition PlayerBase.h:762
CloudAction cloud
Definition PlayerBase.h:753
FunsuiAction funsui
Definition PlayerBase.h:772
SwimAction swim
Definition PlayerBase.h:754
PenguinSlideAction penguin_slide
Definition PlayerBase.h:766
ThrowAction throw_
Definition PlayerBase.h:758
SlipAction slip
Definition PlayerBase.h:752
BalloonChibiYoshiFlyAction balloon_chibi_yoshi_fly
Definition PlayerBase.h:773
FireAction fire
Definition PlayerBase.h:757
CannonJumpAction cannon_jump
Definition PlayerBase.h:763
VineAction vine
Definition PlayerBase.h:750
TarzanRopeAction tarzan_rope
Definition PlayerBase.h:768
PoleAction pole
Definition PlayerBase.h:749
KaniAction kani
Definition PlayerBase.h:769
HipAction hip
Definition PlayerBase.h:747
FlyDamageAction fly_damage
Definition PlayerBase.h:761
SpinHipAttackAction spin_hip_attack
Definition PlayerBase.h:765
Definition PlayerBase.h:833
DemoInDokanAction in_dokan
Definition PlayerBase.h:838
DemoOutDokanAction out_dokan
Definition PlayerBase.h:837
DemoNextGotoBlockAction next_goto_block
Definition PlayerBase.h:834
DemoWaitAction wait
Definition PlayerBase.h:836
DemoGoalAction goal
Definition PlayerBase.h:839
DemoStartWaitAction start_wait
Definition PlayerBase.h:835
Definition PlayerBase.h:855
DemoControlSubAction control
Definition PlayerBase.h:856