5#include "sprite/player.h"
10API_CALLABLE(PlaySleepHitFX) {
11 fx_debuff(0, script->varTable[0], script->varTable[1], script->varTable[2]);
15API_CALLABLE(PlayDizzyHitFX) {
16 fx_debuff(1, script->varTable[0], script->varTable[1], script->varTable[2]);
20API_CALLABLE(PlayParalyzeHitFX) {
21 EffectInstance* debuffEffect = fx_debuff(2, script->varTable[0], script->varTable[1], script->varTable[2]);
32API_CALLABLE(PlayPoisonHitFX) {
33 EffectInstance* debuffEffect = fx_debuff(2, script->varTable[0], script->varTable[1], script->varTable[2]);
44API_CALLABLE(PlayStopHitFX) {
45 EffectInstance* debuffEffect = fx_debuff(2, script->varTable[0], script->varTable[1], script->varTable[2]);
56API_CALLABLE(PlayFreezeHitSnowflakeFX) {
57 fx_big_snowflakes(0, script->varTable[0], script->varTable[1], script->varTable[2]);
61API_CALLABLE(PlayFreezeHitParticleFX) {
63 f32 temp1 = actor->size.y;
64 f32 temp2 = actor->size.x / 2;
66 fx_misc_particles(0, script->varTable[0], script->varTable[1], script->varTable[2], temp1, temp2, 1.0f, 10, 30);
67 fx_misc_particles(1, script->varTable[0], script->varTable[1], script->varTable[2], temp1, temp2, 1.0f, 10, 30);
71API_CALLABLE(PlayShrinkHitFX) {
74 for (i = 0; i < 20; i++) {
75 fx_floating_cloud_puff(0,
76 script->varTable[0] +
rand_int(30) - 15,
77 script->varTable[1] +
rand_int(20) - 15,
78 script->varTable[2] + 5,
98 Call(PlayParalyzeHitFX)
104 Call(PlayPoisonHitFX)
116 Call(PlayFreezeHitSnowflakeFX)
118 Call(PlayFreezeHitSnowflakeFX)
120 Call(PlayFreezeHitParticleFX)
126 Call(PlayShrinkHitFX)
145 eventScript->
owner1.actor = NULL;
152 if (oldOnHitScript != NULL) {
171 eventScript->
owner1.actor = NULL;
173 if (oldOnHitScript != NULL) {
192 if (target == NULL) {
197 ASSERT(targetPart != NULL);
250 s32 currentAttackDamage;
253 s32 partImmuneToElement;
255 s32 missedAllOrNothing;
261 s32 wasStatusInflicted;
264 canBeShocked = FALSE;
265 isFireDamage = FALSE;
266 isWaterDamage = FALSE;
267 isShockDamage = FALSE;
269 wasSpecialHit = FALSE;
270 partImmuneToElement = FALSE;
271 wasStatusInflicted = FALSE;
272 missedAllOrNothing = FALSE;
280 state = &player->
state;
282 if (target == NULL) {
288 ASSERT(targetPart != NULL);
321 partImmuneToElement = TRUE;
389 isShockDamage = TRUE;
394 isWaterDamage = TRUE;
407 switch (attackFxType) {
450 targetDefense += 127;
463 currentAttackDamage += battleStatus->
jumpCharge;
472 if (battleStatus->
unk_98 != 0) {
473 currentAttackDamage += 2;
477 currentAttackDamage += 2;
481 currentAttackDamage++;
485 currentAttackDamage--;
489 currentAttackDamage++;
496 currentAttackDamage--;
498 if (currentAttackDamage < 0) {
511 currentAttackDamage -= 2;
513 if (currentAttackDamage < 0) {
528 currentAttackDamage += 2;
532 currentAttackDamage += 4;
540 currentAttackDamage++;
543 missedAllOrNothing = TRUE;
544 currentAttackDamage = 0;
556 if (currentAttackDamage > 0) {
557 currentAttackDamage /= 2;
559 if (currentAttackDamage == 0) {
560 currentAttackDamage = 1;
570 currentAttackDamage = target->
curHP;
575 currentAttackDamage = 0;
578 if (currentAttackDamage > 99) {
579 currentAttackDamage = 99;
582 if (currentAttackDamage < 0) {
587 currentAttackDamage -= targetDefense;
589 if (currentAttackDamage < 0) {
590 currentAttackDamage = 0;
596 if (currentAttackDamage < 1) {
597 currentAttackDamage = 1;
603 if (currentAttackDamage < 1) {
611 if (target->
curHP < 1) {
627 && !partImmuneToElement
630 target->
curHP -= currentAttackDamage;
632 if (target->
curHP < 1) {
702 if (target->
curHP < 1) {
787 wasSpecialHit = TRUE;
804 wasSpecialHit = TRUE;
823 wasSpecialHit = TRUE;
839 wasSpecialHit = TRUE;
865 #define INFLICT_STATUS(STATUS_TYPE) \
866 if ((battleStatus->curAttackStatus & STATUS_FLAG_##STATUS_TYPE) && \
867 try_inflict_status(target, STATUS_KEY_##STATUS_TYPE, STATUS_TURN_MOD_##STATUS_TYPE)) { \
868 wasSpecialHit = TRUE; \
869 wasStatusInflicted = TRUE; \
882 #undef INFLICT_STATUS
884 if (wasStatusInflicted) {
900 if (!wasSpecialHit && !wasStatusInflicted) {
903 }
else if (!partImmuneToElement) {
936 if (missedAllOrNothing) {
944 if ((battleStatus->
lastAttackDamage > 0 || wasSpecialHit) && !partImmuneToElement) {
949 }
else if (isShockDamage) {
951 }
else if (isIceDamage) {
964 evt->varTable[0] = state->
goalPos.
x;
965 evt->varTable[1] = state->
goalPos.
y;
966 evt->varTable[2] = state->
goalPos.
z;
972 evt->varTable[0] = state->
goalPos.
x;
973 evt->varTable[1] = state->
goalPos.
y;
974 evt->varTable[2] = state->
goalPos.
z;
980 evt->varTable[0] = state->
goalPos.
x;
981 evt->varTable[1] = state->
goalPos.
y;
982 evt->varTable[2] = state->
goalPos.
z;
988 evt->varTable[0] = state->
goalPos.
x;
989 evt->varTable[1] = state->
goalPos.
y;
990 evt->varTable[2] = state->
goalPos.
z;
996 evt->varTable[0] = state->
goalPos.
x;
997 evt->varTable[1] = state->
goalPos.
y;
998 evt->varTable[2] = state->
goalPos.
z;
1004 evt->varTable[0] = state->
goalPos.
x;
1005 evt->varTable[1] = state->
goalPos.
y;
1006 evt->varTable[2] = state->
goalPos.
z;
1007 evt->varTablePtr[3] = target;
1013 evt->varTable[0] = state->
goalPos.
x;
1014 evt->varTable[1] = state->
goalPos.
y;
1015 evt->varTable[2] = state->
goalPos.
z;
1016 evt->varTablePtr[3] = target;
1055 s32 oldHPChangeCounter;
1063 temp = (s16)damageAmount;
1071 player->
curHP -= temp;
1074 oldPlayerHP = player->
curHP;
1076 dispatchEvent = event;
1077 if (player->
curHP < 1) {
1135API_CALLABLE(GetMenuSelection) {
1137 Bytecode* args = script->ptrReadPos;
1138 s32 outVar1 = *args++;
1139 s32 outVar2 = *args++;
1140 s32 outVar3 = *args++;
1149API_CALLABLE(PlayerHopToGoal) {
1151 Bytecode* args = script->ptrReadPos;
1156 f32 goalX, goalY, goalZ;
1158 if (isInitialCall) {
1159 script->functionTemp[0] = FALSE;
1162 if (script->functionTemp[0] == 0) {
1178 playerState->
angle =
atan2(x, z, goalX, goalZ);
1179 playerState->
dist =
dist2D(x, z, goalX, goalZ);
1190 playerState->
unk_24 = 90.0f;
1193 if (script->functionTemp[1] != 2) {
1196 script->functionTemp[0] = TRUE;
1199 if (playerState->
vel < 0.0f) {
1203 playerVel = playerState->
vel;
1219 playerState->
curPos.
y += playerVel;
1234 if (script->functionTemp[1] != 1) {
1237 if (script->functionTemp[1] != 2) {
1244API_CALLABLE(PlayerFallToGoal) {
1245 Bytecode* args = script->ptrReadPos;
1249 f32 goalX, goalY, goalZ;
1251 if (isInitialCall) {
1252 script->functionTemp[0] = FALSE;
1255 if (!script->functionTemp[0]) {
1285 script->functionTemp[0] = TRUE;
1288 if (state->
vel < 0.0f) {
1312API_CALLABLE(PlayerLandJump) {
1316 if (isInitialCall) {
1317 script->functionTemp[0] = 0;
1320 if (script->functionTemp[0] == 0) {
1324 script->functionTemp[0] = 1;
1327 if (walkMovement->
vel > 0.0f) {
1333 if (walkMovement->
vel < 0.0f) {
1348 if (player->
curPos.
y < 0.0f) {
1360API_CALLABLE(PlayerRunToGoal) {
1362 Bytecode* args = script->ptrReadPos;
1365 f32 currentX, currentZ, goalX, goalZ;
1367 if (isInitialCall) {
1368 script->functionTemp[0] = FALSE;
1371 if (!script->functionTemp[0]) {
1394 script->functionTemp[0] = TRUE;
1403 if (playerState->
speed < 4.0f) {
1409 playerState->
dist += playerState->
speed;
1412 playerState->
dist = 0.0f;
1430API_CALLABLE(CancelablePlayerRunToGoal) {
1432 Bytecode* args = script->ptrReadPos;
1435 f32 currentX, currentZ, goalX, goalZ;
1437 if (isInitialCall) {
1438 script->functionTemp[0] = FALSE;
1441 if (!script->functionTemp[0]) {
1443 script->functionTemp[1] = *args++;
1467 script->functionTemp[2] = FALSE;
1468 script->functionTemp[3] = 0;
1469 script->functionTemp[0] = TRUE;
1478 if (playerState->
speed < 4.0f) {
1484 playerState->
dist += playerState->
speed;
1487 playerState->
dist = 0.0f;
1495 if (script->functionTemp[3] > 12) {
1496 if (!script->functionTemp[2]) {
1498 script->functionTemp[2] = TRUE;
1502 if (script->functionTemp[2]) {
1510 script->functionTemp[3]++;
1523API_CALLABLE(GetPlayerHP) {
1528API_CALLABLE(PlayerDamageEnemy) {
1530 Bytecode* args = script->ptrReadPos;
1531 s32 hitResultOutVar = *args++;
1544 if (dx_debug_is_cheat_enabled(DEBUG_CHEAT_GOD_MODE)) {
1584 target =
get_actor(script->owner1.actorID);
1594 if (hitResult < 0) {
1606API_CALLABLE(PlayerPowerBounceEnemy) {
1608 Bytecode* args = script->ptrReadPos;
1609 s32 hitResultOutVar = *args++;
1655 target =
get_actor(script->owner1.actorID);
1665 if (hitResult < 0) {
1677API_CALLABLE(PlayerTestEnemy) {
1679 Bytecode* args = script->ptrReadPos;
1680 s32 hitResultOutVar = *args++;
1726 target =
get_actor(script->owner1.actorID);
1736 if (hitResult < 0) {
1743API_CALLABLE(DispatchDamagePlayerEvent) {
1744 Bytecode* args = script->ptrReadPos;
1758API_CALLABLE(EnablePlayerBlur) {
1772API_CALLABLE(ForceDisablePlayerBlur) {
1777API_CALLABLE(ForceDisablePlayerBlurImmediately) {
1782API_CALLABLE(PlayerBasicJumpToGoal) {
1784 Bytecode* args = script->ptrReadPos;
1787 f32 posX, posY, posZ;
1798 if (isInitialCall) {
1804 script->functionTemp[0] = BASIC_STATE_00;
1807 script->functionTemp[0] = BASIC_STATE_02;
1811 script->functionTemp[1] = 0;
1814 if (script->functionTemp[0] == BASIC_STATE_00) {
1823 playerState->
angle =
atan2(posX, posZ, goalX, goalZ);
1824 playerState->
dist =
dist2D(posX, posZ, goalX, goalZ);
1840 playerState->
vel = 0.0f;
1847 playerState->
unk_24 = 90.0f;
1858 playerState->
unk_24 = 90.0f;
1867 script->functionTemp[0] = BASIC_STATE_01;
1870 switch (script->functionTemp[0]) {
1871 case BASIC_STATE_01:
1872 if (playerState->
vel >
PI_S / 2) {
1904 case BASIC_STATE_02:
1910 playerState->
unk_24 = 90.0f;
1917 script->functionTemp[0] = BASIC_STATE_03;
1919 case BASIC_STATE_03:
1940API_CALLABLE(PlayerSuperJumpToGoal) {
1941 Bytecode* args = script->ptrReadPos;
1944 f32 posX, posY, posZ;
1961 SUPER_STATE_10 = 10,
1962 SUPER_STATE_11 = 11,
1963 SUPER_STATE_20 = 20,
1964 SUPER_STATE_21 = 21,
1967 if (isInitialCall) {
1973 script->functionTemp[0] = SUPER_STATE_00;
1978 script->functionTemp[0] = SUPER_STATE_10;
1981 script->functionTemp[0] = SUPER_STATE_20;
1986 switch (script->functionTemp[0]) {
1987 case SUPER_STATE_00:
1996 playerState->
angle =
atan2(posX, posZ, goalX, goalZ);
1997 playerState->
dist =
dist2D(posX, posZ, goalX, goalZ);
2015 playerState->
vel = 0.0f;
2019 playerState->
unk_24 = 90.0f;
2028 vel1 = playerState->
vel;
2032 vel2 = playerState->
vel;
2036 script->functionTemp[0] = SUPER_STATE_01;
2038 case SUPER_STATE_10:
2047 playerState->
angle =
atan2(posX, posZ, goalX, goalZ);
2048 playerState->
dist =
dist2D(posX, posZ, goalX, goalZ);
2063 playerState->
vel = (
PI_S / 2);
2067 playerState->
unk_24 = 90.0f;
2076 vel3 = playerState->
vel;
2080 vel4 = playerState->
vel;
2085 script->functionTemp[0] = SUPER_STATE_11;
2087 case SUPER_STATE_20:
2089 playerState->
unk_24 = 90.0f;
2095 script->functionTemp[0] = SUPER_STATE_21;
2099 switch (script->functionTemp[0]) {
2100 case SUPER_STATE_01:
2102 vel5 = playerState->
vel;
2106 vel6 = playerState->
vel;
2125 player->
rot.
z -= 66.0f;
2127 script->functionTemp[0] = SUPER_STATE_02;
2130 case SUPER_STATE_02:
2132 player->
rot.
z -= 66.0f;
2135 player->
rot.
z = 0.0f;
2141 case SUPER_STATE_11:
2155 vel7 = playerState->
vel;
2159 vel8 = playerState->
vel;
2173 case SUPER_STATE_21:
2174 temp_f20 = playerState->
curPos.
x;
2176 playerState->
curPos.
x = temp_f20;
2196API_CALLABLE(PlayerUltraJumpToGoal) {
2197 Bytecode* args = script->ptrReadPos;
2200 f32 posX, posY, posZ;
2222 ULTRA_STATE_10 = 10,
2223 ULTRA_STATE_11 = 11,
2224 ULTRA_STATE_20 = 20,
2225 ULTRA_STATE_21 = 21,
2226 ULTRA_STATE_30 = 30,
2227 ULTRA_STATE_31 = 31,
2230 if (isInitialCall) {
2237 script->functionTemp[0] = ULTRA_STATE_00;
2240 script->functionTemp[0] = ULTRA_STATE_11;
2243 script->functionTemp[0] = ULTRA_STATE_30;
2246 script->functionTemp[0] = ULTRA_STATE_20;
2249 script->functionTemp[0] = ULTRA_STATE_30;
2253 script->functionTemp[1] = 0;
2256 switch (script->functionTemp[0]) {
2257 case ULTRA_STATE_00:
2266 playerState->
angle =
atan2(posX, posZ, goalX, goalZ);
2267 playerState->
dist =
dist2D(posX, posZ, goalX, goalZ);
2274 playerState->
vel = 0.0f;
2284 playerState->
unk_24 = 90.0f;
2286 temp = playerState->
dist;
2292 temp_f20 = playerState->
vel;
2296 script->functionTemp[0] = ULTRA_STATE_01;
2298 case ULTRA_STATE_10:
2307 playerState->
angle =
atan2(posX, posZ, goalX, goalZ);
2308 playerState->
dist =
dist2D(posX, posZ, goalX, goalZ);
2314 playerState->
speed = speed;
2315 temp = playerState->
dist - (playerState->
moveTime * speed);
2318 playerState->
vel = 0.0f;
2328 playerState->
unk_24 = 90.0f;
2329 temp_f20_2 = playerState->
vel;
2332 temp = playerState->
dist;
2340 script->functionTemp[0] = ULTRA_STATE_11;
2342 case ULTRA_STATE_20:
2345 player->
rot.
y = 0.0f;
2346 playerState->
unk_24 = 90.0f;
2352 script->functionTemp[0] = ULTRA_STATE_21;
2354 case ULTRA_STATE_30:
2363 playerState->
angle =
atan2(posX, posZ, goalX, goalZ);
2364 playerState->
dist =
dist2D(posX, posZ, goalX, goalZ);
2373 playerState->
vel = 0.0f;
2380 playerState->
unk_24 = 90.0f;
2391 script->functionTemp[0] = ULTRA_STATE_31;
2395 switch (script->functionTemp[0]) {
2396 case ULTRA_STATE_01:
2397 temp_f22_4 = playerState->
vel;
2410 player->
rot.
y += 133.0f;
2420 case ULTRA_STATE_11:
2421 temp_f22_6 = playerState->
vel;
2438 player->
rot.
y += 133.0f;
2445 player->
rot.
y = 0.0f;
2451 case ULTRA_STATE_21:
2467 case ULTRA_STATE_31:
2484 player->
rot.
y += 133.0f;
2489 player->
rot.
y = 0.0f;
2501API_CALLABLE(GetPlayerActionSuccess) {
2502 Bytecode* args = script->ptrReadPos;
2503 s32 outVar = *args++;
2505 s32 actionSucceeded = 0;
2507 if (actionSuccess < 0) {
2511 if (actionSucceeded < actionSuccess) {
2512 actionSucceeded = actionSuccess;
2519API_CALLABLE(PlayerYieldTurn) {
2524API_CALLABLE(DispatchEventPlayer) {
@ ACTION_COMMAND_MODE_NOT_LEARNED
struct Evt * takeTurnScript
struct ActorBlueprint * actorBlueprint
struct Evt * handleEventScript
union Evt::@8 owner1
Initially -1.
HitResult calc_player_test_enemy(void)
EvtScript EVS_PlayStopHitFX
#define INFLICT_STATUS(STATUS_TYPE)
b32 dispatch_damage_tick_event_player(s32 damageAmount, s32 event)
void dispatch_event_player(s32 eventType)
void dispatch_event_player_continue_turn(s32 eventType)
EvtScript EVS_PlayFreezeHitFX
b32 dispatch_damage_event_player(s32 damageAmount, s32 event, b32 noHitSound)
EvtScript EVS_PlayShrinkHitFX
b32 dispatch_hazard_event_player(s32 damageAmount, s32 event)
EvtScript EVS_PlayParalyzeHitFX
HitResult calc_player_damage_enemy(void)
EvtScript EVS_PlayPoisonHitFX
EvtScript EVS_PlaySleepHitFX
EvtScript EVS_PlayDizzyHitFX
#define sfx_play_sound_at_position
struct DebuffFXData * debuff
#define ASSERT(condition)
@ ACTION_RATING_NICE_SUPER_COMBO
'Nice' but becomes 'Super' if nice hits > 2
@ ACTION_RATING_MISS
clears nice hits
@ ACTION_RATING_NICE
sets nice hits = 1
@ BS_FLAGS1_TUTORIAL_BATTLE
@ BS_FLAGS1_FORCE_IMMUNE_HIT
@ BS_FLAGS1_TRIGGER_EVENTS
@ BS_FLAGS1_INCLUDE_POWER_UPS
@ ACTOR_EVENT_FLAG_STAR_ROD_ENCHANTED
Actor glows and listens for Star Beam and Peach Beam events.
@ ACTOR_EVENT_FLAG_GROUNDABLE
Actor can be knocked down from flight; triggered by jump attacks.
@ ACTOR_EVENT_FLAG_FIRE_EXPLODE
Fire attacks trigger an explosion, used only by bullet/bombshell bills.
@ ACTOR_EVENT_FLAG_POWER_BOUNCE
Actor listens for Power Bounce events.
@ ACTOR_EVENT_FLAG_ELECTRIFIED
Player takes shock damage upon contact.
@ ACTOR_EVENT_FLAG_SPIKY_FRONT
Player takes spike damage from hammer attacks.
@ ACTOR_EVENT_FLAG_EXTREME_DEFENSE
Actor has 127 extra defense during damage calculation, unaffected by IGNORE_DEFENSE.
@ ACTOR_EVENT_FLAG_EXPLODE_ON_CONTACT
Attacks that contact will trigger an explosion.
@ ACTOR_EVENT_FLAG_FIREY
Player takes burn damage upon contact.
@ ACTOR_EVENT_FLAG_BURIED
Actor can only by hit by quake-element attacks.
@ ACTOR_EVENT_FLAG_ALT_SPIKY
Additional spiky quality associated with Pokeys and Spinies.
@ ACTOR_EVENT_FLAG_FLIPABLE
Actor can be flipped; triggered by jump and quake attacks.
@ ACTOR_EVENT_FLAG_EXPLODE_ON_IGNITION
Blast and fire attacks trigger an explosion.
@ ACTOR_EVENT_FLAG_ILLUSORY
Player attacks pass through and miss.
@ ACTOR_EVENT_FLAG_SPIKY_TOP
Player takes spike damage from jump attacks.
@ ACTOR_EVENT_FLAG_ENCHANTED
Actor glows and listens for the Star Beam event.
@ ACTOR_PART_TARGET_NO_DAMAGE
@ BS_FLAGS2_IS_FIRST_STRIKE
@ BS_FLAGS2_HAS_DRAINED_HP
@ HIT_RESULT_LANDED_ON_SPIKE
@ HIT_RESULT_NICE_NO_DAMAGE
@ SUPPRESS_EVENT_ALT_SPIKY
@ SUPPRESS_EVENT_SHOCK_CONTACT
@ SUPPRESS_EVENT_SPIKY_FRONT
@ SUPPRESS_EVENT_BURN_CONTACT
@ SOUND_SLIDE_WHISTLE_OUT
@ SOUND_LIFE_SHROOM_CHIME
@ ACTOR_FLAG_NO_DMG_POPUP
Hide damage popup.
@ ACTOR_FLAG_FLIPPED
Actor has been flipped over.
@ EVENT_POWER_BOUNCE_DEATH
@ ACTOR_PART_FLAG_DAMAGE_IMMUNE
electrified Plays extra hurt SFX?
@ DAMAGE_TYPE_MULTI_BOUNCE
@ DAMAGE_TYPE_SHELL_CRACK
@ DAMAGE_TYPE_STATUS_ALWAYS_HITS
@ DAMAGE_TYPE_POWER_BOUNCE
@ DAMAGE_TYPE_IGNORE_DEFENSE
@ DAMAGE_TYPE_QUAKE_HAMMER
@ DAMAGE_TYPE_MULTIPLE_POPUPS
@ EVT_FLAG_RUN_IMMEDIATELY
don't wait for next update_scripts call
void show_primary_damage_popup(f32 x, f32 y, f32 z, s32 attack, s32 a)
s32 does_script_exist_by_ref(Evt *script)
s32 evt_get_variable(Evt *script, Bytecode var)
s32 is_ability_active(s32 arg0)
s32 player_team_is_ability_active(Actor *actor, s32 ability)
void show_immune_bonk(f32 x, f32 y, f32 z, s32, s32, s32)
s32 count_power_plus(s32)
void disable_player_blur(void)
void dispatch_event_actor(Actor *, s32)
void show_actor_health_bar(Actor *)
void clear_part_pal_adjustment(ActorPart *)
s32 evt_set_variable(Evt *script, Bytecode var, s32 value)
void enable_player_blur(void)
void set_actor_flash_mode(Actor *actor, s32 arg1)
void show_damage_fx(Actor *actor, f32 x, f32 y, f32 z, s32 damage)
void force_disable_player_blur_immediately(void)
f32 dist2D(f32 ax, f32 ay, f32 bx, f32 by)
void add_xz_vec3f(Vec3f *vector, f32 speed, f32 angleDeg)
Evt * start_script(EvtScript *source, s32 priority, s32 initialState)
ActorPart * get_actor_part(Actor *actor, s32 partID)
s32 get_defense(Actor *actor, s32 *defenseTable, s32 elementFlags)
void set_actor_anim(s32 actorID, s32 partID, AnimID animID)
Actor * get_actor(s32 actorID)
void kill_script_by_ID(s32 id)
void func_80266970(Actor *)
void set_goal_pos_to_part(ActorState *state, s32 actorID, s32 partID)
void play_movement_dust_effects(s32 var0, f32 xPos, f32 yPos, f32 zPos, f32 angleDeg)
void force_disable_player_blur(void)
void show_next_damage_popup(f32 x, f32 y, f32 z, s32 damageAmount, s32)
void apply_shock_effect(Actor *)
void show_action_rating(s32, Actor *, f32, f32, f32)
void reset_player_blur(void)
EvtScript EVS_Player_HandleEvent
void sfx_play_sound(s32 soundID)
#define End
Signals the end of EVT script data. A script missing this will likely crash on load.
#define Wait(NUM_FRAMES)
Blocks for the given number of frames.
#define Call(FUNC, ARGS...)
Calls a given C EVT API function with any number of arguments.
#define Return
Kills the current EVT thread.
s8 moveCategory
0 = jump, 1 = hammer, 5 = partner, ...
s32 curAttackEventSuppression
struct Actor * playerActor
BattleStatus gBattleStatus