5#include "sprite/player.h"
74 for (i = 0; i < 20; i++) {
261 s32 wasStatusInflicted;
271 wasStatusInflicted =
FALSE;
280 state = &player->
state;
290 target->lastDamageTaken = 0;
586 target->hpChangeCounter = 0;
604 target->hpChangeCounter = 0;
640 target->hpChangeCounter = 0;
721 if (
target->actorBlueprint->spinSmashReq != 255
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) {
1077 if (player->
curHP < 1) {
1162 if (
script->functionTemp[0] == 0) {
1193 if (
script->functionTemp[1] != 2) {
1234 if (
script->functionTemp[1] != 1) {
1237 if (
script->functionTemp[1] != 2) {
1255 if (!
script->functionTemp[0]) {
1288 if (state->
vel < 0.0f) {
1317 script->functionTemp[0] = 0;
1320 if (
script->functionTemp[0] == 0) {
1324 script->functionTemp[0] = 1;
1348 if (player->
curPos.
y < 0.0f) {
1371 if (!
script->functionTemp[0]) {
1441 if (!
script->functionTemp[0]) {
1443 script->functionTemp[1] = *args++;
1468 script->functionTemp[3] = 0;
1495 if (
script->functionTemp[3] > 12) {
1496 if (!
script->functionTemp[2]) {
1502 if (
script->functionTemp[2]) {
1510 script->functionTemp[3]++;
1787 f32 posX, posY, posZ;
1811 script->functionTemp[1] = 0;
1870 switch (
script->functionTemp[0]) {
1944 f32 posX, posY, posZ;
1986 switch (
script->functionTemp[0]) {
2099 switch (
script->functionTemp[0]) {
2125 player->
rot.
z -= 66.0f;
2132 player->
rot.
z -= 66.0f;
2135 player->
rot.
z = 0.0f;
2200 f32 posX, posY, posZ;
2253 script->functionTemp[1] = 0;
2256 switch (
script->functionTemp[0]) {
2345 player->
rot.
y = 0.0f;
2395 switch (
script->functionTemp[0]) {
2410 player->
rot.
y += 133.0f;
2438 player->
rot.
y += 133.0f;
2445 player->
rot.
y = 0.0f;
2484 player->
rot.
y += 133.0f;
2489 player->
rot.
y = 0.0f;
2507 if (actionQuality < 0) {
2511 if (
quality < actionQuality) {
BSS s32 PopupMenu_SelectedIndex
struct Evt * takeTurnScript
struct Evt * handleEventScript
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
#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.
struct Actor * playerActor
BattleStatus gBattleStatus