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