Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
walk.c
Go to the documentation of this file.
1#include "common.h"
2#include "world/disguise.h"
3#include "sprite/player.h"
4
26
27static void action_update_run_peach(void);
28static void action_update_walk_peach(void);
29
35 f32 moveAngle;
36 AnimID anim;
37
39 action_update_walk_peach();
40 return;
41 }
42
45 playerStatus->unk_60 = 0;
47
49 playerStatus->curSpeed = playerStatus->walkSpeed;
50 }
51
52 if (playerStatus->animFlags & PA_FLAG_8BIT_MARIO) {
54 } else if (!(playerStatus->animFlags & PA_FLAG_USING_WATT)) {
55 anim = ANIM_Mario1_Walk;
56 } else {
58 }
60 }
61
63 playerStatus->targetYaw = playerStatus->heading;
65 return;
66 }
67
70
71 if (check_input_jump()) {
72 return;
73 }
74
76 return;
77 }
78
80 if (moveMag == 0.0f) {
82 return;
83 }
84
85 if (fabsf(PrevPlayerCamRelativeYaw - moveAngle) <= 90.0f && abs(moveMag - D_800F7B44) < 20) {
86 if (!(playerStatus->animFlags & PA_FLAG_80000000)) {
87 if (moveMag >= 20.0f) {
88 playerStatus->targetYaw = moveAngle;
89 }
90 }
91 playerStatus->animFlags &= ~PA_FLAG_80000000;
92 } else {
93 if (playerStatus->animFlags & PA_FLAG_80000000) {
94 playerStatus->targetYaw = moveAngle;
95 } else {
96 playerStatus->animFlags |= PA_FLAG_80000000;
97 }
98 }
99
101 if (SQ(playerStatus->stickAxis[0]) + SQ(playerStatus->stickAxis[1]) > SQ(55)) {
103 return;
104 }
105 }
106
108 playerData->walkingStepsTaken++;
109}
110
115 f32 moveAngle;
116 f32 moveMag;
117 AnimID anim;
119
120 if (playerStatus->animFlags & PA_FLAG_USING_PEACH_PHYSICS) {
121 action_update_run_peach();
122 return;
123 }
124
128 playerStatus->unk_60 = 0;
130
131 if (!(playerStatus->flags & PS_FLAG_CUTSCENE_MOVEMENT)) {
132 playerStatus->curSpeed = playerStatus->runSpeed;
133 }
134
135 if (playerStatus->animFlags & PA_FLAG_8BIT_MARIO) {
137 } else if (!(playerStatus->animFlags & PA_FLAG_USING_WATT)) {
138 anim = ANIM_Mario1_Run;
139 } else {
141 }
143 }
144
146 playerStatus->targetYaw = playerStatus->heading;
148 return;
149 }
150
152 runSpeedModifier = 1.0f;
153
154 if (playerStatus->animFlags & PA_FLAG_SPINNING) {
155 runSpeedModifier = 1.5f;
156 }
157
158 playerStatus->curSpeed = playerStatus->runSpeed * runSpeedModifier;
161
162 if (check_input_jump()) {
163 return;
164 }
165
166 if (!firstFrame && check_input_hammer()) {
167 return;
168 }
169
171 if (moveMag == 0.0f) {
173 return;
174 }
175
176 if (fabsf(PrevPlayerCamRelativeYaw - moveAngle) <= 90.0f) {
177 if (!(playerStatus->animFlags & PA_FLAG_80000000)) {
178 playerStatus->targetYaw = moveAngle;
179 }
180 playerStatus->animFlags &= ~PA_FLAG_80000000;
181 } else {
182 if (playerStatus->animFlags & PA_FLAG_80000000) {
183 playerStatus->targetYaw = moveAngle;
184 } else {
185 playerStatus->animFlags |= PA_FLAG_80000000;
186 }
187 }
188
190 if (sqrtf(SQ(playerStatus->stickAxis[0]) + SQ(playerStatus->stickAxis[1])) <= 55.0f) {
192 return;
193 }
194 } else {
196 return;
197 }
199 playerData->runningStepsTaken++;
200}
201
211
212static void action_update_walk_peach(void) {
215 f32 angle;
216
219 playerStatus->unk_60 = 0;
220 if (!(playerStatus->flags & PS_FLAG_CUTSCENE_MOVEMENT)) {
221 playerStatus->curSpeed = playerStatus->walkSpeed;
222 }
224 }
225
227 playerStatus->targetYaw = playerStatus->heading;
229 return;
230 }
233
234 if (magnitude == 0.0f) {
236 return;
237 }
238
239 playerStatus->targetYaw = angle;
241 if (sqrtf(SQ(playerStatus->stickAxis[0]) + SQ(playerStatus->stickAxis[1])) > 55.0f) {
243 return;
244 }
245 }
246
248}
249
250static void action_update_run_peach(void) {
251 f32 moveX, moveY;
252
258 }
259
266 } else {
268 }
269 }
270
274 return;
275 }
276
280 if (moveY == 0.0f) {
282 return;
283 }
284
286 if (sqrtf(SQ(gPlayerStatus.stickAxis[0]) + SQ(gPlayerStatus.stickAxis[1])) < 55.0f) {
288 return;
289 } else {
291 }
292}
DisguiseAnims BasicPeachDisguiseAnims[]
Definition 7E9D0.c:464
BSS s32 PopupMenu_SelectedIndex
s32 b32
u32 AnimID
#define sqrtf
@ PEACH_FLAG_DEPRESSED
Definition enums.h:2492
@ PS_FLAG_ACTION_STATE_CHANGED
Definition enums.h:3084
@ PS_FLAG_CUTSCENE_MOVEMENT
Definition enums.h:3054
@ PS_FLAG_ARMS_RAISED
Definition enums.h:3063
@ PS_FLAG_SCRIPTED_FALL
Definition enums.h:3071
@ PA_FLAG_SPINNING
Definition enums.h:3107
@ PA_FLAG_80000000
Definition enums.h:3127
@ PA_FLAG_INVISIBLE
Definition enums.h:3104
@ PA_FLAG_8BIT_MARIO
Definition enums.h:3105
@ PA_FLAG_USING_PEACH_PHYSICS
Definition enums.h:3103
@ PA_FLAG_USING_WATT
Definition enums.h:3090
@ ABILITY_SLOW_GO
Definition enums.h:447
@ PEACH_BAKING_CAKE_MIXED
Definition enums.h:2507
@ PEACH_BAKING_CAKE_BOWL
Definition enums.h:2506
@ PEACH_BAKING_BUTTER
Definition enums.h:2499
@ PEACH_BAKING_CAKE_WITH_ICING
Definition enums.h:2513
@ PEACH_BAKING_NONE
Definition enums.h:2496
@ PEACH_BAKING_WATER
Definition enums.h:2501
@ PEACH_BAKING_COMPLETE_CAKE
Definition enums.h:2505
@ PEACH_BAKING_FLOUR
Definition enums.h:2503
@ PEACH_BAKING_SUGAR
Definition enums.h:2512
@ PEACH_BAKING_CAKE_PAN
Definition enums.h:2508
@ PEACH_BAKING_STRAWBERRY
Definition enums.h:2498
@ PEACH_BAKING_CAKE_WITH_BERRIES
Definition enums.h:2514
@ PEACH_BAKING_EGG
Definition enums.h:2504
@ PEACH_BAKING_CAKE_BATTER
Definition enums.h:2509
@ PEACH_BAKING_MILK
Definition enums.h:2502
@ PEACH_BAKING_CLEANSER
Definition enums.h:2500
@ PEACH_BAKING_SALT
Definition enums.h:2511
@ PEACH_BAKING_CAKE_BARE
Definition enums.h:2510
@ PEACH_BAKING_CREAM
Definition enums.h:2497
@ ACTION_STATE_IDLE
Definition enums.h:2426
@ ACTION_STATE_WALK
Definition enums.h:2427
@ ACTION_STATE_RUN
Definition enums.h:2428
s32 is_ability_active(s32 arg0)
Definition inventory.c:1736
f32 fabsf(f32 f)
void peach_set_disguise_anim(AnimID)
Definition 7E9D0.c:506
void player_input_to_move_vector(f32 *angle, f32 *magnitude)
Definition 7B440.c:140
void set_action_state(s32 actionState)
Definition 7E9D0.c:209
void phys_update_interact_collider(void)
Definition 7BB60.c:1127
void suggest_player_anim_allow_backward(AnimID anim)
Definition 77480.c:894
b32 check_input_hammer(void)
Definition 7E9D0.c:321
void try_player_footstep_sounds(s32 arg0)
Definition 7BB60.c:1105
b32 check_input_jump(void)
Definition 7E9D0.c:344
#define SQ(x)
Definition macros.h:170
GameStatus gGameStatus
Definition main_loop.c:21
s32 D_800F7B44
Definition 7E9D0.c:32
s32 PrevPlayerCamRelativeYaw
Definition 7E9D0.c:31
PlayerData gPlayerData
Definition 77480.c:40
PlayerStatus gPlayerStatus
Definition 77480.c:39
s32 PlayerRunStateTime
Definition 7B440.c:8
void action_update_walk_set_peach_anim(void)
Definition walk.c:202
AnimID WalkPeachAnims[]
Definition walk.c:5
void action_update_run(void)
Definition walk.c:111
void action_update_walk(void)
Definition walk.c:30