Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
earthquake_jump.c
Go to the documentation of this file.
1#include "common.h"
2#include "script_api/battle.h"
4#include "effects.h"
5#include "sprite/player.h"
6
7#define NAMESPACE battle_move_earthquake_jump
8
10
11API_CALLABLE(N(func_802A10E4_785C04)) {
12 script->varTable[0] = 3;
13 return ApiStatus_DONE2;
14}
15
17 11, 10, 9, 8, 7, 6, 5, 4
18};
19
23
29 CaseEq(0)
31 CaseEq(1)
33 CaseEq(2)
36 Return
37 End
38};
39
45 Sub(LVar0, 20)
49 Sub(LVar3, Float(70.0))
51 Sub(LVar0, 20)
53 EndIf
55 Call(AddGoalPos, ACTOR_PLAYER, -30, 0, 0)
62 Call(AddGoalPos, ACTOR_PLAYER, 30, 0, 0)
65 Add(LVarB, 2)
68 Call(SetGoalPos, ACTOR_PLAYER, 30, 0, 0)
72 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.2))
73 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
74 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(2.0))
75 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
76 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(0.7))
77 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.4))
78 Call(ShakeCam, CAM_BATTLE, 0, 6, Float(0.1))
79 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.05))
83 Add(LVar0, 24)
84 Add(LVar1, 10)
85 PlayEffect(EFFECT_SMOKE_IMPACT, 0, LVar0, LVar1, LVar2, 72, 8, 0, 30, 0, 0, 0, 0, 0)
86 PlayEffect(EFFECT_SMOKE_IMPACT, 0, LVar0, LVar1, LVar2, 72, 8, 24, 30, 0, 0, 0, 0, 0)
88 Wait(10)
91 Set(LVar9, 0)
92 Label(1)
96 Goto(2)
97 EndIf
106 Label(2)
108 Add(LVar9, 1)
111 Goto(1)
112 EndIf
117 Return
125 Wait(5)
126 Call(SetGoalPos, ACTOR_PLAYER, 30, 0, 0)
130 Set(LVarF, 0)
132 Label(10)
135 Wait(5)
136 Call(SetGoalPos, ACTOR_PLAYER, 30, 0, 0)
143 Set(LVarA, 26)
145 CaseEq(0)
147 CaseEq(1)
149 CaseEq(2)
151 CaseEq(3)
157 Call(SetGoalPos, ACTOR_PLAYER, 30, 0, 0)
158 IfEq(LVarF, 0)
160 Else
162 EndIf
164 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.2))
165 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
166 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(2.0))
167 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
168 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(0.7))
169 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.4))
170 Call(ShakeCam, CAM_BATTLE, 0, 6, Float(0.1))
171 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.05))
175 Add(LVar0, 24)
176 Add(LVar1, 10)
177 PlayEffect(EFFECT_SMOKE_IMPACT, 0, LVar0, LVar1, LVar2, 72, 8, 0, 30, 0, 0, 0, 0, 0)
178 PlayEffect(EFFECT_SMOKE_IMPACT, 0, LVar0, LVar1, LVar2, 72, 8, 24, 30, 0, 0, 0, 0, 0)
180 Wait(10)
182 IfEq(LVar1, 1)
183 IfGt(LVarF, 3)
184 Set(LFlag0, TRUE)
185 EndIf
186 EndIf
187 Set(LVar0, 3)
190 Set(LFlag0, TRUE)
191 EndIf
194 Set(LVar9, 0)
195 Label(11)
199 Goto(12)
200 EndIf
206 Else
209 EndIf
215 CaseEq(0)
217 CaseEq(1)
219 CaseEq(2)
221 CaseEq(3)
227 Label(12)
229 Add(LVar9, 1)
232 Goto(11)
233 EndIf
239 Return
240 EndIf
242 Return
248 Return
249 EndIf
252 Add(LVarF, 1)
253 Goto(10)
254 Return
255 End
256};
257
263 Sub(LVar0, 20)
267 Sub(LVar3, Float(70.0))
269 Sub(LVar0, 20)
270 Set(LVar3, LVar0)
271 EndIf
273 Call(AddGoalPos, ACTOR_PLAYER, -30, 0, 0)
280 Call(AddGoalPos, ACTOR_PLAYER, 30, 0, 0)
284 Set(LVarB, LVarA)
285 Add(LVarB, 2)
288 Call(SetGoalPos, ACTOR_PLAYER, 30, 0, 0)
292 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.2))
293 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
294 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(2.0))
295 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
296 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(0.7))
297 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.4))
298 Call(ShakeCam, CAM_BATTLE, 0, 6, Float(0.1))
299 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.05))
303 Add(LVar0, 24)
304 Add(LVar1, 10)
305 PlayEffect(EFFECT_SMOKE_IMPACT, 0, LVar0, LVar1, LVar2, 72, 8, 0, 30, 0, 0, 0, 0, 0)
306 PlayEffect(EFFECT_SMOKE_IMPACT, 0, LVar0, LVar1, LVar2, 72, 8, 24, 30, 0, 0, 0, 0, 0)
308 Wait(10)
311 Set(LVar9, 0)
312 Label(1)
316 Goto(2)
317 EndIf
326 Label(2)
328 Add(LVar9, 1)
331 Goto(1)
332 EndIf
337 Return
345 Wait(5)
346 Call(SetGoalPos, ACTOR_PLAYER, 30, 0, 0)
350 Set(LVarF, 0)
352 Label(10)
355 Wait(5)
356 Call(SetGoalPos, ACTOR_PLAYER, 30, 0, 0)
363 Set(LVarA, 39)
365 CaseEq(0)
367 CaseEq(1)
369 CaseEq(2)
371 CaseEq(3)
376 Call(SetGoalPos, ACTOR_PLAYER, 30, 0, 0)
379 IfEq(LVarF, 0)
381 Wait(7)
383 Else
385 Wait(7)
387 EndIf
390 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.2))
391 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
392 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(2.0))
393 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
394 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(0.7))
395 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.4))
396 Call(ShakeCam, CAM_BATTLE, 0, 6, Float(0.1))
397 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.05))
401 Add(LVar0, 24)
402 Add(LVar1, 10)
403 PlayEffect(EFFECT_SMOKE_IMPACT, 0, LVar0, LVar1, LVar2, 72, 8, 0, 30, 0, 0, 0, 0, 0)
404 PlayEffect(EFFECT_SMOKE_IMPACT, 0, LVar0, LVar1, LVar2, 72, 8, 24, 30, 0, 0, 0, 0, 0)
406 Wait(10)
408 IfEq(LVar1, 1)
409 IfGt(LVarF, 4)
410 Set(LFlag0, TRUE)
411 EndIf
412 EndIf
413 Set(LVar0, 4)
416 Set(LFlag0, TRUE)
417 EndIf
420 Set(LVar9, 0)
421 Label(11)
425 Goto(12)
426 EndIf
432 Else
435 EndIf
441 CaseEq(0)
443 CaseEq(1)
445 CaseEq(2)
447 CaseEq(3)
453 Label(12)
455 Add(LVar9, 1)
458 Goto(1) // @bug? shouldn't this be Goto(11)?
459 EndIf
465 Return
466 EndIf
468 Return
474 Return
475 EndIf
478 Add(LVarF, 1)
479 Goto(10)
480 Return
481 End
482};
483
489 Sub(LVar0, 20)
493 Sub(LVar3, Float(70.0))
495 Sub(LVar0, 20)
496 Set(LVar3, LVar0)
497 EndIf
499 Call(AddGoalPos, ACTOR_PLAYER, -30, 0, 0)
506 Call(AddGoalPos, ACTOR_PLAYER, 30, 0, 0)
510 Set(LVarB, LVarA)
511 Add(LVarB, 2)
514 Call(SetGoalPos, ACTOR_PLAYER, 30, 0, 0)
518 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.2))
519 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
520 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(2.0))
521 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
522 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(0.7))
523 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.4))
524 Call(ShakeCam, CAM_BATTLE, 0, 6, Float(0.1))
525 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.05))
529 Add(LVar0, 24)
530 Add(LVar1, 10)
531 PlayEffect(EFFECT_SMOKE_IMPACT, 0, LVar0, LVar1, LVar2, 72, 8, 0, 30, 0, 0, 0, 0, 0)
532 PlayEffect(EFFECT_SMOKE_IMPACT, 0, LVar0, LVar1, LVar2, 72, 8, 24, 30, 0, 0, 0, 0, 0)
534 Wait(10)
537 Set(LVar9, 0)
538 Label(1)
542 Goto(2)
543 EndIf
552 Label(2)
554 Add(LVar9, 1)
557 Goto(1)
558 EndIf
563 Return
571 Wait(5)
572 Call(SetGoalPos, ACTOR_PLAYER, 30, 0, 0)
576 Set(LVarF, 0)
578 Label(10)
581 Wait(5)
582 Call(SetGoalPos, ACTOR_PLAYER, 30, 0, 0)
589 Set(LVarA, 27)
591 CaseEq(0)
593 CaseEq(1)
595 CaseEq(2)
597 CaseEq(3)
602 Call(SetGoalPos, ACTOR_PLAYER, 30, 0, 0)
605 IfEq(LVarF, 0)
607 Else
609 EndIf
612 Call(ShakeCam, CAM_BATTLE, 0, 2, Float(0.2))
613 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
614 Call(ShakeCam, CAM_BATTLE, 0, 10, Float(2.0))
615 Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
616 Call(ShakeCam, CAM_BATTLE, 0, 3, Float(0.7))
617 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.4))
618 Call(ShakeCam, CAM_BATTLE, 0, 6, Float(0.1))
619 Call(ShakeCam, CAM_BATTLE, 0, 4, Float(0.05))
623 Add(LVar0, 24)
624 Add(LVar1, 10)
625 PlayEffect(EFFECT_SMOKE_IMPACT, 0, LVar0, LVar1, LVar2, 72, 8, 0, 30, 0, 0, 0, 0, 0)
626 PlayEffect(EFFECT_SMOKE_IMPACT, 0, LVar0, LVar1, LVar2, 72, 8, 24, 30, 0, 0, 0, 0, 0)
628 Wait(10)
630 IfEq(LVar1, 1)
631 IfGt(LVarF, 5)
632 Set(LFlag0, TRUE)
633 EndIf
634 EndIf
635 Set(LVar0, 5)
638 Set(LFlag0, TRUE)
639 EndIf
642 Set(LVar9, 0)
643 Label(11)
647 Goto(12)
648 EndIf
654 Else
657 EndIf
663 CaseEq(0)
665 CaseEq(1)
667 CaseEq(2)
669 CaseEq(3)
675 Label(12)
677 Add(LVar9, 1)
680 Goto(1) // @bug? shouldn't this be Goto(11)?
681 EndIf
687 Return
688 EndIf
690 Return
696 Return
697 EndIf
700 Add(LVarF, 1)
701 Goto(10)
702 Return
703 End
704};
BSS s32 PopupMenu_SelectedIndex
@ AC_DIFFICULTY_3
Definition action_cmd.h:45
@ AC_DIFFICULTY_4
Definition action_cmd.h:46
@ AC_DIFFICULTY_5
Definition action_cmd.h:47
Bytecode EvtScript[]
@ ACTION_COMMAND_JUMP
Definition enums.h:3473
@ ACTOR_SOUND_HURT
Definition enums.h:2037
@ BS_FLAGS1_NO_RATING
Definition enums.h:3576
@ BS_FLAGS1_NICE_HIT
Definition enums.h:3575
@ BS_FLAGS1_TRIGGER_EVENTS
Definition enums.h:3574
@ BS_FLAGS1_INCLUDE_POWER_UPS
Definition enums.h:3570
@ PLAYER_ULTRA_JUMP_2
Definition enums.h:4314
@ PLAYER_ULTRA_JUMP_4
Definition enums.h:4316
@ ITER_NEXT
Definition enums.h:2025
@ PLAYER_SUPER_JUMP_3
Definition enums.h:4305
@ PLAYER_SUPER_JUMP_4
Definition enums.h:4306
@ PLAYER_SUPER_JUMP_5
Definition enums.h:4307
@ PLAYER_SUPER_JUMP_6
Definition enums.h:4308
@ HIT_RESULT_NO_DAMAGE
Definition enums.h:1952
@ HIT_RESULT_HIT
Definition enums.h:1950
@ HIT_RESULT_NICE_NO_DAMAGE
Definition enums.h:1953
@ HIT_RESULT_NICE
Definition enums.h:1951
@ HIT_RESULT_MISS
Definition enums.h:1956
@ BTL_CAM_PLAYER_PRE_ULTRA_JUMP_FINISH
Definition enums.h:4849
@ BTL_CAM_PLAYER_PRE_JUMP_FINISH
Definition enums.h:4848
@ BTL_CAM_PLAYER_JUMP_FINISH
Definition enums.h:4856
@ BTL_CAM_PLAYER_JUMP_MIDAIR
Definition enums.h:4855
@ BTL_CAM_PLAYER_ATTACK_APPROACH
Definition enums.h:4847
@ PLAYER_BASIC_JUMP_3
Definition enums.h:4297
@ PLAYER_BASIC_JUMP_4
Definition enums.h:4298
@ PLAYER_BASIC_JUMP_0
Definition enums.h:4294
@ SOUND_ACTOR_JUMPED_2
Definition enums.h:778
@ SOUND_JUMP_COMBO_1
Definition enums.h:954
@ SOUND_ACTOR_JUMPED_1
Definition enums.h:777
@ SOUND_NONE
Definition enums.h:547
@ SOUND_JUMP_COMBO_4
Definition enums.h:957
@ SOUND_JUMP_COMBO_3
Definition enums.h:956
@ SOUND_ACTOR_JUMPED_3
Definition enums.h:779
@ SOUND_JUMP_COMBO_2
Definition enums.h:955
@ ACTOR_PLAYER
Definition enums.h:2085
@ ACTOR_SELF
Definition enums.h:2084
@ ACTOR_BLUR_ENABLE
Definition enums.h:6413
@ ACTOR_BLUR_DISABLE
Definition enums.h:6412
@ CAM_BATTLE
Definition enums.h:1801
@ DAMAGE_TYPE_IGNORE_DEFENSE
Definition enums.h:2877
@ DAMAGE_TYPE_QUAKE
Definition enums.h:2862
@ DAMAGE_TYPE_NO_CONTACT
Definition enums.h:2878
@ DAMAGE_TYPE_MULTIPLE_POPUPS
Definition enums.h:2879
#define ApiStatus_DONE2
Definition evt.h:118
ApiStatus ShakeCam(Evt *script, b32 isInitialCall)
#define Else
Marks the end of an if statement and the start of the else block.
Definition macros.h:295
#define Switch(LVAR)
Marks the start of a switch statement.
Definition macros.h:311
#define Ref(sym)
Address/pointer constant.
Definition macros.h:60
#define Set(VAR, INT_VALUE)
Sets the given variable to a given value casted to an integer.
Definition macros.h:365
#define CaseEq(RVAR)
Marks the start of a switch case that executes only if LVAR == RVAR. It also marks the end of any pre...
Definition macros.h:319
#define EndChildThread
Marks the end of a child thread block.
Definition macros.h:563
#define Sub(VAR, INT_VALUE)
Definition macros.h:377
#define LVarF
Definition macros.h:163
#define End
Signals the end of EVT script data. A script missing this will likely crash on load.
Definition macros.h:213
#define Add(VAR, INT_VALUE)
Definition macros.h:376
#define LFlagA
Definition macros.h:177
#define EndCaseGroup
Marks the end of a switch case group (CaseOrEq and/or CaseAndEq), stopping fallthrough.
Definition macros.h:352
#define Goto(LABEL_ID)
Moves execution to the given label.
Definition macros.h:232
#define LVarC
Definition macros.h:160
#define IfGt(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR <= RVAR.
Definition macros.h:278
#define IfLt(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR < RVAR.
Definition macros.h:275
#define Float(DOUBLE)
Definition macros.h:51
#define Label(LABEL_ID)
Marks this point in the script as a Goto target.
Definition macros.h:227
#define CaseOrEq(RVAR)
Marks the start of a switch case that executes only if LVAR == RVAR.
Definition macros.h:341
#define EndIf
Marks the end of an if statement or an else block.
Definition macros.h:298
#define LVar5
Definition macros.h:153
#define CaseDefault
Marks the start of a switch case that executes unconditionally. It also marks the end of any previous...
Definition macros.h:337
#define LVarB
Definition macros.h:159
#define ExecWait(EVT_SOURCE)
Launches a new child thread.
Definition macros.h:475
#define LVar2
Definition macros.h:150
#define LVar1
Definition macros.h:149
#define LFlag0
Definition macros.h:167
#define LVarA
Definition macros.h:158
#define Wait(NUM_FRAMES)
Blocks for the given number of frames.
Definition macros.h:254
#define LVar9
Definition macros.h:157
s32 Difficulty1D[8]
Definition macros.h:106
#define PlayEffect(args...)
Definition macros.h:807
#define EndSwitch
Marks the end of a switch statement and any case.
Definition macros.h:362
#define IfEq(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR == RVAR.
Definition macros.h:269
#define Call(FUNC, ARGS...)
Calls a given C EVT API function with any number of arguments.
Definition macros.h:576
#define ChildThread
Marks the start of a child thread block.
Definition macros.h:560
#define CaseGt(RVAR)
Marks the start of a switch case that executes only if LVAR <= RVAR. It also marks the end of any pre...
Definition macros.h:328
#define LVar4
Definition macros.h:152
#define LVar3
Definition macros.h:151
#define LVarE
Definition macros.h:162
#define LVar0
Definition macros.h:148
#define Return
Kills the current EVT thread.
Definition macros.h:217