Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
stop_watch.c
Go to the documentation of this file.
1#include "common.h"
2#include "script_api/battle.h"
3#include "model.h"
4#include "effects.h"
5
6#define NAMESPACE battle_item_stop_watch
7
9
12
14
15EvtScript N(EVS_UseItem) = {
16 SetConst(LVarA, ITEM_STOP_WATCH)
17 ExecWait(N(UseItemWithEffect))
18 Thread
19 Wait(5)
20 Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
21 Call(MoveBattleCamOver, 20)
24 PlayEffect(EFFECT_STOP_WATCH, 0, 0, 0, 0, Float(1.0), 200, 0)
25 Call(PlaySoundAtActor, ACTOR_PLAYER, SOUND_TIME_OUT)
26 Wait(200)
27 Call(UseBattleCamPreset, BTL_CAM_VIEW_ENEMIES)
28 Call(MoveBattleCamOver, 20)
29 Call(InitTargetIterator)
30 Label(0)
31 Call(SetGoalToTarget, ACTOR_SELF)
32 Call(ItemCheckHit, LVar0, DAMAGE_TYPE_NO_CONTACT, 0, LVar0, 0)
34 Goto(1)
35 EndIf
36 Call(GetItemPower, ITEM_STOP_WATCH, LVar0, LVar1)
37 Call(MakeStatusField, LVar0, STATUS_FLAG_STOP, 100, LVar0)
39 Label(1)
40 Wait(5)
41 Call(ChooseNextTarget, ITER_NEXT, LVar0)
43 Goto(0)
44 EndIf
46 ExecWait(N(PlayerGoHome))
47 Return
48 End
49};
Bytecode EvtScript[]
@ BS_FLAGS1_TRIGGER_EVENTS
Definition enums.h:3575
@ ITER_NO_MORE
Definition enums.h:2030
@ ITER_NEXT
Definition enums.h:2025
@ HIT_RESULT_MISS
Definition enums.h:1956
@ BTL_CAM_DEFAULT
Definition enums.h:4824
@ BTL_CAM_VIEW_ENEMIES
Definition enums.h:4825
@ STATUS_FLAG_STOP
Definition enums.h:2821
@ SOUND_TIME_OUT
Definition enums.h:967
@ ACTOR_PLAYER
Definition enums.h:2085
@ ACTOR_SELF
Definition enums.h:2084
@ DAMAGE_TYPE_STATUS_ALWAYS_HITS
Definition enums.h:2880
@ DAMAGE_TYPE_NO_CONTACT
Definition enums.h:2878
ApiStatus FadeBackgroundLighten(Evt *script, b32 isInitialCall)
ApiStatus FadeBackgroundDarken(Evt *script, b32 isInitialCall)
ApiStatus GetItemPower(Evt *script, b32 isInitialCall)
#define IfNe(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR != RVAR.
Definition macros.h:272
#define End
Signals the end of EVT script data. A script missing this will likely crash on load.
Definition macros.h:213
#define Goto(LABEL_ID)
Moves execution to the given label.
Definition macros.h:232
#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 EndIf
Marks the end of an if statement or an else block.
Definition macros.h:298
#define ExecWait(EVT_SOURCE)
Launches a new child thread.
Definition macros.h:475
#define Thread
Marks the start of a thread block.
Definition macros.h:544
#define EndThread
Marks the end of a thread block.
Definition macros.h:547
#define LVar1
Definition macros.h:149
#define LVarA
Definition macros.h:158
#define Wait(NUM_FRAMES)
Blocks for the given number of frames.
Definition macros.h:254
#define PlayEffect(args...)
Definition macros.h:807
#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 LVar0
Definition macros.h:148
#define SetConst(VAR, CONST)
Sets the given variable to a given value, skipping the evt_get_variable call.
Definition macros.h:370
#define Return
Kills the current EVT thread.
Definition macros.h:217