6#include "sprite/npc/BattleGoombario.h"
8#define NAMESPACE battle_partner_goombario
49 if (
script->varTable[0] > 20) {
54 if (
script->varTable[0] < 10) {
57 }
else if (
script->varTable[0] < 15) {
104 script->functionTemp[1] = 0;
105 script->functionTemp[0] = 0;
107 script->functionTemp[0] = 2;
111 if (
script->functionTemp[0] == 0) {
174 script->functionTemp[0] = 1;
177 switch (
script->functionTemp[0]) {
231 script->functionTemp[0] = 3;
263 script->functionTemp[0] = 0;
266 if (
script->functionTemp[0] == 0) {
270 script->functionTemp[0] = 1;
273 if (
partner->state.vel > 0.0f) {
277 if (
partner->state.vel < 0.0f) {
288 if (
partner->curPos.y < 10.0f) {
306 script->varTable[0] = *tattle;
369 if (
partner->isGlowing >= 99) {
374 if (
partner->isGlowing >= 99) {
379 if (
partner->isGlowing >= 99) {
405 if (
partner->isGlowing >= 99) {
412 if (
partner->isGlowing >= 99) {
419 if (
partner->isGlowing >= 99) {
532 .posOffset = { 0, 0, 0 },
533 .targetOffset = { 8, 22 },
538 .elementImmunityFlags = 0,
553 .hurricaneChance = 0,
555 .upAndAwayChance = 0,
557 .powerBounceChance = 80,
560 .healthBarOffset = { 0, 0 },
561 .statusIconOffset = { -10, 20 },
562 .statusTextOffset = { 10, 20 },
BSS s32 PopupMenu_SelectedIndex
EffectInstanceDataPtr data
struct TattleWindowFXData * tattleWindow
@ FX_INSTANCE_FLAG_DISMISS
@ BS_FLAGS1_GOOMBARIO_CHARGED
@ BS_FLAGS1_TRIGGER_EVENTS
@ BS_FLAGS1_INCLUDE_POWER_UPS
@ BTL_MSG_CHARGE_GOOMBARIO_MORE
@ BTL_MSG_CHARGE_GOOMBARIO
@ BTL_MENU_TYPE_STAR_POWERS
@ STATUS_TURN_MOD_DEFAULT
@ STATUS_TURN_MOD_PARALYZE
@ HIT_RESULT_NICE_NO_DAMAGE
@ BTL_CAM_GOOMBARIO_BONK_FOLLOWUP_2
@ BTL_CAM_GOOMBARIO_BONK_FOLLOWUP_1
@ BTL_CAM_PARTNER_MISTAKE
@ BTL_CAM_PARTNER_APPROACH
@ SUPPRESS_EVENT_SPIKY_FRONT
@ SUPPRESS_EVENT_BURN_CONTACT
@ SOUND_GOOMBARIO_HEADBONK
@ SOUND_GOOMBARIO_GATHERING
@ SOUND_TATTLE_WINDOW_OPEN
@ ACTOR_FLAG_UPSIDE_DOWN
HP bar offset below actor (e.g. Swooper when upside-down).
@ DAMAGE_TYPE_POWER_BOUNCE
s32 evt_get_variable(Evt *script, Bytecode var)
f32 dist3D(f32 ax, f32 ay, f32 az, f32 bx, f32 by, f32 bz)
f32 dist2D(f32 ax, f32 ay, f32 bx, f32 by)
void add_xz_vec3f(Vec3f *vector, f32 speed, f32 angleDeg)
void set_actor_anim(s32 actorID, s32 partID, AnimID animID)
Actor * get_actor(s32 actorID)
void play_movement_dust_effects(s32 var0, f32 xPos, f32 yPos, f32 zPos, f32 angleDeg)
f32 evt_get_float_variable(Evt *script, Bytecode var)
void save_tattle_flags(s32)
EvtScript EVS_Partner_Hit
EvtScript EVS_Partner_Recover
EvtScript EVS_Partner_BurnContact
EvtScript EVS_Partner_Drop
EvtScript EVS_Partner_NoDamageHit
EvtScript EVS_Partner_ShockHit
EvtScript EVS_Partner_BurnHit
EvtScript EVS_Partner_Celebrate
EvtScript EVS_RunAwayFail
EvtScript EVS_Partner_SpikeContact
EvtScript EVS_Partner_RunAway
void sfx_play_sound(s32 soundID)
@ GF_Tutorial_SwapTurnOrder
ApiStatus SetCamEnabled(Evt *script, b32 isInitialCall)
ApiStatus SetCamViewport(Evt *script, b32 isInitialCall)
ApiStatus SetCamLookTarget(Evt *script, b32 isInitialCall)
ApiStatus ShakeCam(Evt *script, b32 isInitialCall)
ApiStatus SetNoInterpCamParams(Evt *script, b32 isInitialCall)
ApiStatus SetCamNoDraw(Evt *script, b32 isInitialCall)
ApiStatus SetCamPerspective(Evt *script, b32 isInitialCall)
#define Else
Marks the end of an if statement and the start of the else block.
#define Switch(LVAR)
Marks the start of a switch statement.
#define Ref(sym)
Address/pointer constant.
#define DivF(VAR, FLOAT_VALUE)
#define IfGe(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR >= RVAR.
#define Set(VAR, INT_VALUE)
Sets the given variable to a given value casted to an integer.
#define AddF(VAR, FLOAT_VALUE)
#define CaseEq(RVAR)
Marks the start of a switch case that executes only if LVAR == RVAR. It also marks the end of any pre...
#define EndChildThread
Marks the end of a child thread block.
#define Sub(VAR, INT_VALUE)
#define End
Signals the end of EVT script data. A script missing this will likely crash on load.
#define Mod(VAR, INT_VALUE)
#define Add(VAR, INT_VALUE)
#define EndLoop
Marks the end of a loop.
#define EndCaseGroup
Marks the end of a switch case group (CaseOrEq and/or CaseAndEq), stopping fallthrough.
#define Goto(LABEL_ID)
Moves execution to the given label.
#define IfGt(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR <= RVAR.
#define IfLt(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR < RVAR.
#define Label(LABEL_ID)
Marks this point in the script as a Goto target.
#define CaseOrEq(RVAR)
Marks the start of a switch case that executes only if LVAR == RVAR.
#define EndIf
Marks the end of an if statement or an else block.
#define CaseDefault
Marks the start of a switch case that executes unconditionally. It also marks the end of any previous...
#define ExecWait(EVT_SOURCE)
Launches a new child thread.
#define Thread
Marks the start of a thread block.
#define EndThread
Marks the end of a thread block.
#define Div(VAR, INT_VALUE)
#define Wait(NUM_FRAMES)
Blocks for the given number of frames.
#define PlayEffect(args...)
#define EndSwitch
Marks the end of a switch statement and any case.
#define IfEq(LVAR, RVAR)
Marks the beginning of an if statement that only executes if LVAR == RVAR.
#define Call(FUNC, ARGS...)
Calls a given C EVT API function with any number of arguments.
#define ChildThread
Marks the start of a child thread block.
#define CaseGt(RVAR)
Marks the start of a switch case that executes only if LVAR <= RVAR. It also marks the end of any pre...
#define Loop(TIMES)
Marks the beginning of a loop.
#define SetConst(VAR, CONST)
Sets the given variable to a given value, skipping the evt_get_variable call.
#define Return
Kills the current EVT thread.
ActorOffsets bActorOffsets[]
struct Actor * partnerActor
BattleStatus gBattleStatus