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