From 9997d231b00c0c39baaa1545b4abd8746180025a Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sun, 30 Jul 2023 18:26:06 +0530 Subject: [PATCH 01/38] Removed old macros and renamed unk_8 to numTracks --- asm/macros.inc | 162 ------------------------------------- include/gba/m4a_internal.h | 2 +- src/m4a.c | 2 +- 3 files changed, 2 insertions(+), 164 deletions(-) diff --git a/asm/macros.inc b/asm/macros.inc index ac7f5681ff..ad53038b92 100644 --- a/asm/macros.inc +++ b/asm/macros.inc @@ -5,165 +5,3 @@ .include "asm/macros/map.inc" .include "asm/macros/m4a.inc" .include "asm/macros/trainer_tower.inc" - - .macro region_map_location x, y, width, height, name - .byte \x - .byte \y - .byte \width - .byte \height - .4byte gMapName_\name - .endm - - .macro obj_tiles address, uncompressed_size, tag - .4byte \address - .2byte \uncompressed_size - .2byte \tag - .endm - - .macro null_obj_tiles - obj_tiles 0, 0, 0 - .endm - - .macro obj_pal address, tag - .4byte \address - .2byte \tag - .2byte 0 @ padding - .endm - - .macro null_obj_pal - obj_pal 0, 0 - .endm - - .macro paired_pals tag, address - .2byte \tag - .2byte 0 @ padding - .4byte \address - .endm - -@ For object animation frames. - .macro obj_frame_tiles address, uncompressed_size - .4byte \address - .2byte \uncompressed_size - .2byte 0 @ padding - .endm - - .macro spr_template tile_tag, pal_tag, oam, anims, images, affine_anims, callback - .2byte \tile_tag - .2byte \pal_tag - .4byte \oam - .4byte \anims - .4byte \images - .4byte \affine_anims - .4byte \callback - .endm - -@ Berry trees have a table defining the palette slot used for each of their 5 -@ stages. However, the first 2 stages always use the same slots regardless of -@ the type of tree and the slots of the last 3 stages always equal each other. - .macro berry_tree_palette_slot_table slot - .byte 3, 4, \slot, \slot, \slot - .endm - - .macro subsprite x, y, priority, tile_num_offset, size - .byte \x - .byte \y - .2byte ((\priority) << 14) | ((\tile_num_offset) << 4) | SPRITE_SIZE_\size - .endm - - .macro obj_image_anim_frame pic_id, duration, flags = 0 - .2byte \pic_id - .byte (\flags) | (\duration) - .byte 0 @ padding - .endm - - .macro obj_image_anim_loop count - .2byte 0xfffd - .byte \count - .byte 0 @ padding - .endm - - .macro obj_image_anim_jump target_index - .2byte 0xfffe - .byte \target_index - .byte 0 @ padding - .endm - - .macro obj_image_anim_end - .2byte 0xffff - .2byte 0 @ padding - .endm - - .macro obj_rot_scal_anim_frame delta_x_scale, delta_y_scale, delta_angle, duration - .2byte \delta_x_scale - .2byte \delta_y_scale - .byte \delta_angle - .byte \duration - .2byte 0 @ padding - .endm - - .macro obj_rot_scal_anim_loop count - .2byte 0x7ffd - .2byte \count - .4byte 0 @ padding - .endm - - .macro obj_rot_scal_anim_jump target_index - .2byte 0x7ffe - .2byte \target_index - .4byte 0 @ padding - .endm - - .macro obj_rot_scal_anim_end unknown=0 - .2byte 0x7fff - .2byte \unknown - .fill 4 @ padding - .endm - - .macro overworld_frame ptr:req, width:req, height:req, frame:req - .4byte (\ptr + (\width * \height * \frame * 64) / 2) - .2byte (\width * \height * 64) / 2 - .2byte 0 @ padding - .endm - - .macro credits_entry number, text - .4byte \number - .4byte \text - .endm - - .macro door_anim_frame unknown, offset - .byte \unknown - .byte 0 @ padding - .2byte \offset - .endm - - .macro door_anim_gfx metatile_num, unknown, tile_addr, palette_addr - .2byte \metatile_num - .2byte \unknown - .4byte \tile_addr - .4byte \palette_addr - .endm - - .macro trainer_eye_trainer opp_1, opp_2, opp_3, opp_4, opp_5, map_name - .2byte OPPONENT_\opp_1 - .2byte OPPONENT_\opp_2 - .2byte OPPONENT_\opp_3 - .2byte OPPONENT_\opp_4 - .2byte OPPONENT_\opp_5 - .2byte GROUP_\map_name - .2byte MAP_\map_name - .space 2 - .endm - - .macro window_template bg, top, left, height, width, palno, baseBlock - .byte \bg, \top, \left, \height, \width, \palno - .2byte \baseBlock - .endm - - .macro abspath relative - .if REVISION == 0 - .ascii "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/" - .else - .ascii "C:/WORK/POKeFRLG/Src/pm_lgfr_ose/source/" - .endif - .asciz "\relative" - .endm diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h index eeb79391b5..a057c2da61 100644 --- a/include/gba/m4a_internal.h +++ b/include/gba/m4a_internal.h @@ -349,7 +349,7 @@ struct MusicPlayer { struct MusicPlayerInfo *info; struct MusicPlayerTrack *track; - u8 unk_8; + u8 numTracks; u16 unk_A; }; diff --git a/src/m4a.c b/src/m4a.c index 365e7f6aa3..7774d09cba 100644 --- a/src/m4a.c +++ b/src/m4a.c @@ -83,7 +83,7 @@ void m4aSoundInit(void) for (i = 0; i < NUM_MUSIC_PLAYERS; i++) { struct MusicPlayerInfo *mplayInfo = gMPlayTable[i].info; - MPlayOpen(mplayInfo, gMPlayTable[i].track, gMPlayTable[i].unk_8); + MPlayOpen(mplayInfo, gMPlayTable[i].track, gMPlayTable[i].numTracks); mplayInfo->unk_B = gMPlayTable[i].unk_A; mplayInfo->memAccArea = gMPlayMemAccArea; } From 0af86763fd89bb1240a53d027c5377cc7ce64e21 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sun, 30 Jul 2023 19:07:25 +0530 Subject: [PATCH 02/38] Document the files in asm folder present in root directory --- asm/macros/asm.inc | 9 +- asm/macros/battle_anim.inc | 266 ----------------------------- asm/macros/event.inc | 4 +- asm/macros/field_effect_script.inc | 18 +- asm/macros/function.inc | 16 +- asm/macros/m4a.inc | 10 +- asm/macros/movement.inc | 2 +- data/field_effect_scripts.s | 264 ++++++++++++++-------------- data/mystery_event_msg.s | 2 +- 9 files changed, 161 insertions(+), 430 deletions(-) delete mode 100644 asm/macros/battle_anim.inc diff --git a/asm/macros/asm.inc b/asm/macros/asm.inc index 26b2707ca1..3f70145d31 100644 --- a/asm/macros/asm.inc +++ b/asm/macros/asm.inc @@ -1,7 +1,4 @@ - .ifndef GUARD_ASM_MACROS_ASM_INC - .set GUARD_ASM_MACROS_ASM_INC, 1 - - .macro inc x + .macro inc x:req .set \x, \x + 1 .endm @@ -9,9 +6,7 @@ .set __enum__, \x .endm - .macro enum constant + .macro enum constant:req .equiv \constant, __enum__ inc __enum__ .endm - - .endif @ GUARD_ASM_MACROS_ASM_INC diff --git a/asm/macros/battle_anim.inc b/asm/macros/battle_anim.inc deleted file mode 100644 index 4ff8450328..0000000000 --- a/asm/macros/battle_anim.inc +++ /dev/null @@ -1,266 +0,0 @@ - .macro loadsprite id - .byte 0x00 - .2byte \id - .endm - - .macro unloadsprite id - .byte 0x01 - .2byte \id - .endm - - .macro sprite template, priority, argv:vararg - .byte 0x02 - .4byte \template - .byte \priority - .byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2 -.Lsprite_\@_1: - .2byte \argv -.Lsprite_\@_2: - .endm - - .macro createtask addr, priority, argv:vararg - .byte 0x03 - .4byte \addr - .byte \priority - .byte (.Lcreatetask_\@_2 - .Lcreatetask_\@_1) / 2 -.Lcreatetask_\@_1: - .2byte \argv -.Lcreatetask_\@_2: - .endm - - .macro pause delay - .byte 0x04 - .byte \delay - .endm - - .macro wait - .byte 0x05 - .endm - - .macro hang1 - .byte 0x06 - .endm - - .macro hang2 - .byte 0x07 - .endm - - .macro end - .byte 0x08 - .endm - - .macro playse id - .byte 0x09 - .2byte \id - .endm - - .macro monbg which - .byte 0x0A - .byte \which - .endm - - .macro clearmonbg which - .byte 0x0B - .byte \which - .endm - - .macro setalpha eva, evb - .byte 0x0C - .2byte ((\evb) << 8) | (\eva) - .endm - - .macro blendoff - .byte 0x0D - .endm - - .macro call addr - .byte 0x0E - .4byte \addr - .endm - - .macro ret - .byte 0x0F - .endm - - .macro setvar var_num, value - .byte 0x10 - .byte \var_num - .2byte \value - .endm - - .macro ifelse addr1, addr2 - .byte 0x11 - .4byte \addr1 - .4byte \addr2 - .endm - - .macro jumpif cond, addr - .byte 0x12 - .byte \cond - .4byte \addr - .endm - - .macro jump addr - .byte 0x13 - .4byte \addr - .endm - - .macro fadetobg id - .byte 0x14 - .byte \id - .endm - - .macro restorebg - .byte 0x15 - .endm - - .macro waitbgfadeout - .byte 0x16 - .endm - - .macro waitbgfadein - .byte 0x17 - .endm - - .macro changebg id - .byte 0x18 - .byte \id - .endm - - .macro panse_19 id, pan - .byte 0x19 - .2byte \id - .byte \pan - .endm - - .macro setpan pan - .byte 0x1A - .byte \pan - .endm - - .macro panse_1B id, pan_start, pan_end, step, delay - .byte 0x1B - .2byte \id - .byte \pan_start - .byte \pan_end - .byte \step - .byte \delay - .endm - - .macro panse_1C id, pan, delay, count - .byte 0x1C - .2byte \id - .byte \pan - .byte \delay - .byte \count - .endm - - .macro panse_1D id, pan, count - .byte 0x1D - .2byte \id - .byte \pan - .byte \count - .endm - - .macro setbldcnt bldcnt - .byte 0x1E - .2byte \bldcnt - .endm - - .macro createtask_1F addr, argv:vararg - .byte 0x1F - .4byte \addr - .byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2 -.Lcreatetask_1F_\@_1: - .2byte \argv -.Lcreatetask_1F_\@_2: - .endm - - .macro waitsound - .byte 0x20 - .endm - - .macro jumpvareq var_num, value, addr - .byte 0x21 - .byte \var_num - .2byte \value - .4byte \addr - .endm - - .macro monbg_22 unk - .byte 0x22 - .byte \unk - .endm - - .macro clearmonbg_23 unk - .byte 0x23 - .byte \unk - .endm - - .macro jumpunkcond addr - .byte 0x24 - .4byte \addr - .endm - - .macro fadetobg_25 a, b, c - .byte 0x25 - .byte \a - .byte \b - .byte \c - .endm - - .macro panse_26 id, pan_start, pan_end, step, delay - .byte 0x26 - .2byte \id - .byte \pan_start - .byte \pan_end - .byte \step - .byte \delay - .endm - - .macro panse_27 id, pan_start, pan_end, step, delay - .byte 0x27 - .2byte \id - .byte \pan_start - .byte \pan_end - .byte \step - .byte \delay - .endm - - .macro monbgprio_28 unk - .byte 0x28 - .byte \unk - .endm - - .macro monbgprio_29 - .byte 0x29 - .endm - - .macro monbgprio_2A unk - .byte 0x2A - .byte \unk - .endm - - .macro invisible side - .byte 0x2B - .byte \side - .endm - - .macro visible side - .byte 0x2C - .byte \side - .endm - - .macro doublebattle_2D unk - .byte 0x2D - .byte \unk - .endm - - .macro doublebattle_2E unk - .byte 0x2E - .byte \unk - .endm - - .macro stopsound - .byte 0x2F - .endm diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 0135bc26df..8f9597bd0e 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -1577,14 +1577,14 @@ .endm @ Sets the modernFatefulEncounter bit for the Pokemon in the specified slot of the player's party. - .macro setmonmodernfatefulencounter slot:req + .macro setmodernfatefulencounter slot:req .byte 0xcd .2byte \slot .endm @ Checks if the modernFatefulEncounter bit is set for the Pokemon in the specified slot of the player's party. If it isn't set, @ VAR_RESULT is TRUE. If the bit is set (or if the specified slot is empty or invalid), VAR_RESULT is FALSE. - .macro checkmonmodernfatefulencounter slot:req + .macro checkmodernfatefulencounter slot:req .byte 0xce .2byte \slot .endm diff --git a/asm/macros/field_effect_script.inc b/asm/macros/field_effect_script.inc index d5895b0eff..38f7e31750 100644 --- a/asm/macros/field_effect_script.inc +++ b/asm/macros/field_effect_script.inc @@ -1,41 +1,43 @@ - .macro loadtiles address +@ The first .byte argument of each macro below is an index into gFieldEffectScriptFuncs + + .macro field_eff_loadtiles address:req .byte 0 .4byte \address .endm - .macro loadfadedpal address + .macro field_eff_loadfadedpal address:req .byte 1 .4byte \address .endm - .macro loadpal address + .macro field_eff_loadpal address:req .byte 2 .4byte \address .endm - .macro callnative address + .macro field_eff_callnative address:req .byte 3 .4byte \address .endm - .macro end + .macro field_eff_end .byte 4 .endm - .macro loadgfx_callnative tiles_address, palette_address, function_address + .macro field_eff_loadgfx_callnative tiles_address:req, palette_address:req, function_address:req .byte 5 .4byte \tiles_address .4byte \palette_address .4byte \function_address .endm - .macro loadtiles_callnative tiles_address, function_address + .macro field_eff_loadtiles_callnative tiles_address:req, function_address:req .byte 6 .4byte \tiles_address .4byte \function_address .endm - .macro loadfadedpal_callnative palette_address, function_address + .macro field_eff_loadfadedpal_callnative palette_address:req, function_address:req .byte 7 .4byte \palette_address .4byte \function_address diff --git a/asm/macros/function.inc b/asm/macros/function.inc index 67fb373a80..0f4e6720c9 100644 --- a/asm/macros/function.inc +++ b/asm/macros/function.inc @@ -1,29 +1,29 @@ - .macro arm_func_start name + .macro arm_func_start name:req .align 2, 0 .global \name .arm - .type \name, function + .type \name, %function .endm - .macro arm_func_end name + .macro arm_func_end name:req .size \name, .-\name .endm - .macro thumb_func_start name + .macro thumb_func_start name:req .align 2, 0 .global \name .thumb .thumb_func - .type \name, function + .type \name, %function .endm - .macro non_word_aligned_thumb_func_start name + .macro non_word_aligned_thumb_func_start name:req .global \name .thumb .thumb_func - .type \name, function + .type \name, %function .endm - .macro thumb_func_end name + .macro thumb_func_end name:req .size \name, .-\name .endm diff --git a/asm/macros/m4a.inc b/asm/macros/m4a.inc index 6c5abc09b5..b22da3d634 100644 --- a/asm/macros/m4a.inc +++ b/asm/macros/m4a.inc @@ -1,13 +1,13 @@ - .macro song label, music_player, unknown + .macro song label:req, music_player:req, unknown:req .4byte \label .2byte \music_player .2byte \unknown .endm - .macro music_player info_struct, track_struct, unknown_1, unknown_2 + .macro music_player info_struct:req, track_struct:req, num_tracks:req, unknown:req .4byte \info_struct .4byte \track_struct - .byte \unknown_1 - .space 1 - .2byte \unknown_2 + .byte \num_tracks + .space 1 @ Padding + .2byte \unknown .endm diff --git a/asm/macros/movement.inc b/asm/macros/movement.inc index 775efb2452..a85fae564c 100644 --- a/asm/macros/movement.inc +++ b/asm/macros/movement.inc @@ -55,7 +55,7 @@ create_movement_action walk_in_place_faster_right, MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT create_movement_action ride_water_current_down, MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN create_movement_action ride_water_current_up, MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP - create_movement_action ride_water_current_lefft, MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT + create_movement_action ride_water_current_left, MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT create_movement_action ride_water_current_right, MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT create_movement_action walk_faster_down, MOVEMENT_ACTION_WALK_FASTER_DOWN create_movement_action walk_faster_up, MOVEMENT_ACTION_WALK_FASTER_UP diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index 3245a5bef5..fc687505cb 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -74,273 +74,273 @@ gFieldEffectScriptPointers:: .4byte gFldEffScript_PhotoFlash @ FLDEFF_PHOTO_FLASH gFldEffScript_ExclamationMarkIcon:: - callnative FldEff_ExclamationMarkIcon1 - end + field_eff_callnative FldEff_ExclamationMarkIcon1 + field_eff_end gFldEffScript_UseCutOnGrass:: - callnative FldEff_UseCutOnGrass - end + field_eff_callnative FldEff_UseCutOnGrass + field_eff_end gFldEffScript_UseCutOnTree:: - callnative FldEff_UseCutOnTree - end + field_eff_callnative FldEff_UseCutOnTree + field_eff_end gFldEffScript_Shadow:: - callnative FldEff_Shadow - end + field_eff_callnative FldEff_Shadow + field_eff_end gFldEffScript_TallGrass:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_TallGrass - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_TallGrass + field_eff_end gFldEffScript_Ripple:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ripple - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ripple + field_eff_end gFldEffScript_FieldMoveShowMon:: - callnative FldEff_FieldMoveShowMon - end + field_eff_callnative FldEff_FieldMoveShowMon + field_eff_end gFldEffScript_Ash:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ash - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ash + field_eff_end gFldEffScript_SurfBlob:: - callnative FldEff_SurfBlob - end + field_eff_callnative FldEff_SurfBlob + field_eff_end gFldEffScript_UseSurf:: - callnative FldEff_UseSurf - end + field_eff_callnative FldEff_UseSurf + field_eff_end gFldEffScript_Dust:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Dust - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Dust + field_eff_end gFldEffScript_UseSecretPowerCave:: - end + field_eff_end gFldEffScript_JumpTallGrass:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpTallGrass - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpTallGrass + field_eff_end gFldEffScript_SandFootprints:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandFootprints - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandFootprints + field_eff_end gFldEffScript_JumpBigSplash:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpBigSplash - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpBigSplash + field_eff_end gFldEffScript_Splash:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Splash - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Splash + field_eff_end gFldEffScript_JumpSmallSplash:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpSmallSplash - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpSmallSplash + field_eff_end gFldEffScript_LongGrass:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_LongGrass - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_LongGrass + field_eff_end gFldEffScript_JumpLongGrass:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpLongGrass - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpLongGrass + field_eff_end gFldEffScript_UnusedGrass:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass + field_eff_end gFldEffScript_UnusedGrass2:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass2 - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass2 + field_eff_end gFldEffScript_UnusedSand:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedSand - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedSand + field_eff_end gFldEffScript_UnusedWaterSurfacing:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedWaterSurfacing - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedWaterSurfacing + field_eff_end gFldEffScript_BerryTreeGrowthSparkle:: - callnative FldEff_BerryTreeGrowthSparkle - end + field_eff_callnative FldEff_BerryTreeGrowthSparkle + field_eff_end gFldEffScript_DeepSandFootprints:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_DeepSandFootprints - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_DeepSandFootprints + field_eff_end gFldEffScript_PokecenterHeal:: - loadfadedpal gSpritePalette_PokeballGlow - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_PokecenterHeal - end + field_eff_loadfadedpal gSpritePalette_PokeballGlow + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_PokecenterHeal + field_eff_end gFldEffScript_UseSecretPowerTree:: - end + field_eff_end gFldEffScript_UseSecretPowerShrub:: - end + field_eff_end gFldEffScript_TreeDisguise:: - callnative ShowTreeDisguiseFieldEffect - end + field_eff_callnative ShowTreeDisguiseFieldEffect + field_eff_end gFldEffScript_MountainDisguise:: - callnative ShowMountainDisguiseFieldEffect - end + field_eff_callnative ShowMountainDisguiseFieldEffect + field_eff_end gFldEffScript_NpcflyOut:: - callnative FldEff_NpcFlyOut - end + field_eff_callnative FldEff_NpcFlyOut + field_eff_end gFldEffScript_FlyOut:: - callnative FldEff_FlyOut - end + field_eff_callnative FldEff_FlyOut + field_eff_end gFldEffScript_FlyIn:: - callnative FldEff_FlyIn - end + field_eff_callnative FldEff_FlyIn + field_eff_end gFldEffScript_QuestionMarkIcon:: - callnative FldEff_QuestionMarkIcon - end + field_eff_callnative FldEff_QuestionMarkIcon + field_eff_end gFldEffScript_FeetInFlowingWater:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_FeetInFlowingWater - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_FeetInFlowingWater + field_eff_end gFldEffScript_BikeTireTracks:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_BikeTireTracks - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_BikeTireTracks + field_eff_end gFldEffScript_SandDisguise:: - callnative ShowSandDisguiseFieldEffect - end + field_eff_callnative ShowSandDisguiseFieldEffect + field_eff_end gFldEffScript_UseRockSmash:: - callnative FldEff_UseRockSmash - end + field_eff_callnative FldEff_UseRockSmash + field_eff_end gFldEffScript_UseStrength:: - callnative FldEff_UseStrength - end + field_eff_callnative FldEff_UseStrength + field_eff_end gFldEffScript_UseDig:: - callnative FldEff_UseDig - end + field_eff_callnative FldEff_UseDig + field_eff_end gFldEffScript_SandPile:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandPile - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandPile + field_eff_end gFldEffScript_ShortGrass:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_ShortGrass - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_ShortGrass + field_eff_end gFldEffScript_HotSpringsWater:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_HotSpringsWater - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_HotSpringsWater + field_eff_end gFldEffScript_UseWaterfall:: - callnative FldEff_UseWaterfall - end + field_eff_callnative FldEff_UseWaterfall + field_eff_end gFldEffScript_UseDive:: - callnative FldEff_UseDive - end + field_eff_callnative FldEff_UseDive + field_eff_end gFldEffScript_Pokeball:: - loadpal gSpritePalette_Pokeball - callnative FldEff_PokeballTrail - end + field_eff_loadpal gSpritePalette_Pokeball + field_eff_callnative FldEff_PokeballTrail + field_eff_end gFldEffScript_XIcon:: - callnative FldEff_XIcon - end + field_eff_callnative FldEff_XIcon + field_eff_end gFldEffScript_Nop47:: - end + field_eff_end gFldEffScript_Nop48:: - end + field_eff_end gFldEffScript_PopOutOfAsh:: - loadfadedpal_callnative gSpritePalette_Ash, FldEff_PopOutOfAsh - end + field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_PopOutOfAsh + field_eff_end gFldEffScript_LavaridgeGymWarp:: - loadfadedpal_callnative gSpritePalette_Ash, FldEff_LavaridgeGymWarp - end + field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_LavaridgeGymWarp + field_eff_end gFldEffScript_SweetScent:: - callnative FldEff_SweetScent - end + field_eff_callnative FldEff_SweetScent + field_eff_end gFldEffScript_SandPillar:: - end + field_eff_end gFldEffScript_Bubbles:: - loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Bubbles - end + field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Bubbles + field_eff_end gFldEffScript_Sparkle:: - loadfadedpal_callnative gSpritePalette_SmallSparkle, FldEff_Sparkle - end + field_eff_loadfadedpal_callnative gSpritePalette_SmallSparkle, FldEff_Sparkle + field_eff_end gFldEffScript_SecretPowerCave:: - end + field_eff_end gFldEffScript_SecretPowerTree:: - end + field_eff_end gFldEffScript_SecretPowerShrub:: - end + field_eff_end gFldEffScript_CutGrass:: - loadfadedpal_callnative gFldEffPalette_CutGrass, FldEff_CutGrass - end + field_eff_loadfadedpal_callnative gFldEffPalette_CutGrass, FldEff_CutGrass + field_eff_end gFldEffScript_FieldMoveShowMonInit:: - callnative FldEff_FieldMoveShowMonInit - end + field_eff_callnative FldEff_FieldMoveShowMonInit + field_eff_end gFldEffScript_UseFlyAncientTomb:: - end + field_eff_end gFldEffScript_PcturnOn:: - end + field_eff_end gFldEffScript_HallOfFameRecord:: - loadfadedpal gSpritePalette_PokeballGlow - loadfadedpal_callnative gSpritePalette_HofMonitor, FldEff_HallOfFameRecord - end + field_eff_loadfadedpal gSpritePalette_PokeballGlow + field_eff_loadfadedpal_callnative gSpritePalette_HofMonitor, FldEff_HallOfFameRecord + field_eff_end gFldEffScript_UseTeleport:: - callnative FldEff_UseTeleport - end + field_eff_callnative FldEff_UseTeleport + field_eff_end gFldEffScript_SmileyFaceIcon:: - callnative FldEff_SmileyFaceIcon - end + field_eff_callnative FldEff_SmileyFaceIcon + field_eff_end gFldEffScript_UseVsSeeker:: - callnative FldEff_UseVsSeeker - end + field_eff_callnative FldEff_UseVsSeeker + field_eff_end gFldEffScript_DoubleExclMarkIcon:: - callnative FldEff_DoubleExclMarkIcon - end + field_eff_callnative FldEff_DoubleExclMarkIcon + field_eff_end gFldEffScript_MoveDeoxysRock:: - callnative FldEff_MoveDeoxysRock - end + field_eff_callnative FldEff_MoveDeoxysRock + field_eff_end gFldEffScript_DestroyDeoxysRock:: - callnative FldEff_DestroyDeoxysRock - end + field_eff_callnative FldEff_DestroyDeoxysRock + field_eff_end gFldEffScript_PhotoFlash:: - callnative FldEff_PhotoFlash - end + field_eff_callnative FldEff_PhotoFlash + field_eff_end diff --git a/data/mystery_event_msg.s b/data/mystery_event_msg.s index 535c530f1f..4a125086f9 100644 --- a/data/mystery_event_msg.s +++ b/data/mystery_event_msg.s @@ -68,7 +68,7 @@ SurfPichu_FullParty: SurfPichu_GiveEgg: giveegg SPECIES_PICHU - setmonmodernfatefulencounter VAR_EVENT_PICHU_SLOT + setmodernfatefulencounter VAR_EVENT_PICHU_SLOT setmonmetlocation VAR_EVENT_PICHU_SLOT, METLOC_FATEFUL_ENCOUNTER vgoto_if_eq VAR_EVENT_PICHU_SLOT, 1, SurfPichu_Slot1 vgoto_if_eq VAR_EVENT_PICHU_SLOT, 2, SurfPichu_Slot2 From 70c28c7da6a323016d533141bbba1c5490e5c4dc Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sun, 30 Jul 2023 20:16:55 +0530 Subject: [PATCH 03/38] Documented data/battle_ai_scripts.s to match Emerald --- asm/macros/battle_ai_script.inc | 4 +- data/battle_ai_scripts.s | 1120 +++++++++++++++---------------- include/constants/battle_ai.h | 2 +- src/battle_ai_script_commands.c | 8 +- 4 files changed, 567 insertions(+), 567 deletions(-) diff --git a/asm/macros/battle_ai_script.inc b/asm/macros/battle_ai_script.inc index 3aadc1e478..35e38b97a9 100644 --- a/asm/macros/battle_ai_script.inc +++ b/asm/macros/battle_ai_script.inc @@ -224,7 +224,7 @@ .byte 0x24 .endm - .macro get_last_used_move battler:req + .macro get_last_used_bank_move battler:req .byte 0x25 .byte \battler .endm @@ -264,7 +264,7 @@ .byte 0x2b .endm - .macro count_alive_pokemon battler:req + .macro count_usable_party_mons battler:req .byte 0x2c .byte \battler .endm diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 85d043d417..615ce0e788 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -16,16 +16,16 @@ .align 2 gBattleAI_ScriptsTable:: - .4byte AI_CheckBadMove - .4byte AI_CheckViability - .4byte AI_TryToFaint - .4byte AI_SetupFirstTurn - .4byte AI_Risky - .4byte AI_PreferStrongestMove - .4byte AI_PreferBatonPass - .4byte AI_DoubleBattle - .4byte AI_HPAware - .4byte AI_Unknown + .4byte AI_CheckBadMove @ AI_SCRIPT_CHECK_BAD_MOVE + .4byte AI_CheckViability @ AI_SCRIPT_CHECK_VIABILITY + .4byte AI_TryToFaint @ AI_SCRIPT_TRY_TO_FAINT + .4byte AI_SetupFirstTurn @ AI_SCRIPT_SETUP_FIRST_TURN + .4byte AI_Risky @ AI_SCRIPT_RISKY + .4byte AI_PreferPowerExtremes @ AI_SCRIPT_PREFER_POWER_EXTREMES + .4byte AI_PreferBatonPass @ AI_SCRIPT_PREFER_BATON_PASS + .4byte AI_DoubleBattle @ AI_SCRIPT_DOUBLE_BATTLE + .4byte AI_HPAware @ AI_SCRIPT_HP_AWARE + .4byte AI_TrySunnyDayStart @ AI_SCRIPT_TRY_SUNNY_DAY_START .4byte AI_Ret .4byte AI_Ret .4byte AI_Ret @@ -45,17 +45,17 @@ gBattleAI_ScriptsTable:: .4byte AI_Ret .4byte AI_Ret .4byte AI_Ret - .4byte AI_Roaming - .4byte AI_Safari - .4byte AI_FirstBattle + .4byte AI_Roaming @ AI_SCRIPT_ROAMING + .4byte AI_Safari @ AI_SCRIPT_SAFARI + .4byte AI_FirstBattle @ AI_SCRIPT_FIRST_BATTLE -AI_CheckBadMove:: +AI_CheckBadMove: @ if_move MOVE_FISSURE, AI_CBM_CheckIfNegatesType @ Improvement in Emerald @ if_move MOVE_HORN_DRILL, AI_CBM_CheckIfNegatesType get_how_powerful_move_is - if_equal MOVE_POWER_DISCOURAGED, AI_CheckBadMove_CheckSoundproof + if_equal MOVE_POWER_OTHER, AI_CheckBadMove_CheckSoundproof -AI_CBM_CheckIfNegatesType:: +AI_CBM_CheckIfNegatesType: if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_VOLT_ABSORB, CheckIfVoltAbsorbCancelsElectric @@ -65,30 +65,30 @@ AI_CBM_CheckIfNegatesType:: if_equal ABILITY_LEVITATE, CheckIfLevitateCancelsGroundMove goto AI_CheckBadMove_CheckSoundproof -CheckIfVoltAbsorbCancelsElectric:: +CheckIfVoltAbsorbCancelsElectric: get_curr_move_type if_equal_ TYPE_ELECTRIC, Score_Minus12 goto AI_CheckBadMove_CheckSoundproof -CheckIfWaterAbsorbCancelsWater:: +CheckIfWaterAbsorbCancelsWater: get_curr_move_type if_equal_ TYPE_WATER, Score_Minus12 goto AI_CheckBadMove_CheckSoundproof -CheckIfFlashFireCancelsFire:: +CheckIfFlashFireCancelsFire: get_curr_move_type if_equal_ TYPE_FIRE, Score_Minus12 goto AI_CheckBadMove_CheckSoundproof -CheckIfWonderGuardCancelsMove:: +CheckIfWonderGuardCancelsMove: if_type_effectiveness AI_EFFECTIVENESS_x2, AI_CheckBadMove_CheckSoundproof goto Score_Minus10 -CheckIfLevitateCancelsGroundMove:: +CheckIfLevitateCancelsGroundMove: get_curr_move_type if_equal_ TYPE_GROUND, Score_Minus10 -AI_CheckBadMove_CheckSoundproof:: +AI_CheckBadMove_CheckSoundproof: get_ability AI_TARGET if_not_equal ABILITY_SOUNDPROOF, AI_CheckBadMove_CheckEffect if_move MOVE_GROWL, Score_Minus10 @@ -101,7 +101,7 @@ AI_CheckBadMove_CheckSoundproof:: if_move MOVE_METAL_SOUND, Score_Minus10 if_move MOVE_GRASS_WHISTLE, Score_Minus10 -AI_CheckBadMove_CheckEffect:: +AI_CheckBadMove_CheckEffect: if_effect EFFECT_SLEEP, AI_CBM_Sleep if_effect EFFECT_EXPLOSION, AI_CBM_Explosion if_effect EFFECT_DREAM_EATER, AI_CBM_DreamEater @@ -122,7 +122,7 @@ AI_CheckBadMove_CheckEffect:: if_effect EFFECT_HAZE, AI_CBM_Haze if_effect EFFECT_BIDE, AI_CBM_HighRiskForDamage if_effect EFFECT_ROAR, AI_CBM_Roar - if_effect EFFECT_TOXIC, AI_CBM_Poison + if_effect EFFECT_TOXIC, AI_CBM_Toxic if_effect EFFECT_LIGHT_SCREEN, AI_CBM_LightScreen if_effect EFFECT_OHKO, AI_CBM_OneHitKO if_effect EFFECT_RAZOR_WIND, AI_CBM_HighRiskForDamage @@ -145,7 +145,7 @@ AI_CheckBadMove_CheckEffect:: if_effect EFFECT_ACCURACY_DOWN_2, AI_CBM_AccDown if_effect EFFECT_EVASION_DOWN_2, AI_CBM_EvasionDown if_effect EFFECT_REFLECT, AI_CBM_Reflect - if_effect EFFECT_POISON, AI_CBM_Poison + if_effect EFFECT_POISON, AI_CBM_Toxic if_effect EFFECT_PARALYZE, AI_CBM_Paralyze if_effect EFFECT_SUBSTITUTE, AI_CBM_Substitute if_effect EFFECT_RECHARGE, AI_CBM_HighRiskForDamage @@ -213,7 +213,7 @@ AI_CheckBadMove_CheckEffect:: if_effect EFFECT_DRAGON_DANCE, AI_CBM_DragonDance end -AI_CBM_Sleep:: +AI_CBM_Sleep: get_ability AI_TARGET if_equal ABILITY_INSOMNIA, Score_Minus10 if_equal ABILITY_VITAL_SPIRIT, Score_Minus10 @@ -221,100 +221,100 @@ AI_CBM_Sleep:: @ if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 @ Improvement in Emerald end -AI_CBM_Explosion:: +AI_CBM_Explosion: if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_DAMP, Score_Minus10 - count_alive_pokemon AI_USER + count_usable_party_mons AI_USER if_not_equal 0, AI_CBM_Explosion_End - count_alive_pokemon AI_TARGET + count_usable_party_mons AI_TARGET if_not_equal 0, Score_Minus10 goto Score_Minus1 -AI_CBM_Explosion_End:: +AI_CBM_Explosion_End: end -AI_CBM_Nightmare:: +AI_CBM_Nightmare: if_status2 AI_TARGET, STATUS2_NIGHTMARE, Score_Minus10 if_not_status AI_TARGET, STATUS1_SLEEP, Score_Minus8 end -AI_CBM_DreamEater:: +AI_CBM_DreamEater: if_not_status AI_TARGET, STATUS1_SLEEP, Score_Minus8 if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 end -AI_CBM_BellyDrum:: +AI_CBM_BellyDrum: if_hp_less_than AI_USER, 51, Score_Minus10 -AI_CBM_AttackUp:: +AI_CBM_AttackUp: if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 end -AI_CBM_DefenseUp:: +AI_CBM_DefenseUp: if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus10 end -AI_CBM_SpeedUp:: +AI_CBM_SpeedUp: if_stat_level_equal AI_USER, STAT_SPEED, 12, Score_Minus10 end -AI_CBM_SpAtkUp:: +AI_CBM_SpAtkUp: if_stat_level_equal AI_USER, STAT_SPATK, 12, Score_Minus10 end -AI_CBM_SpDefUp:: +AI_CBM_SpDefUp: if_stat_level_equal AI_USER, STAT_SPDEF, 12, Score_Minus10 end -AI_CBM_AccUp:: +AI_CBM_AccUp: if_stat_level_equal AI_USER, STAT_ACC, 12, Score_Minus10 end -AI_CBM_EvasionUp:: +AI_CBM_EvasionUp: if_stat_level_equal AI_USER, STAT_EVASION, 12, Score_Minus10 end -AI_CBM_AttackDown:: +AI_CBM_AttackDown: if_stat_level_equal AI_TARGET, STAT_ATK, 0, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_HYPER_CUTTER, Score_Minus10 goto CheckIfAbilityBlocksStatChange -AI_CBM_DefenseDown:: +AI_CBM_DefenseDown: if_stat_level_equal AI_TARGET, STAT_DEF, 0, Score_Minus10 goto CheckIfAbilityBlocksStatChange -AI_CBM_SpeedDown:: +AI_CBM_SpeedDown: if_stat_level_equal AI_TARGET, STAT_SPEED, 0, Score_Minus10 @ get_ability AI_TARGET @ Improvement in Emerald @ if_equal ABILITY_SPEED_BOOST, Score_Minus10 goto CheckIfAbilityBlocksStatChange -AI_CBM_SpAtkDown:: +AI_CBM_SpAtkDown: if_stat_level_equal AI_TARGET, STAT_SPATK, 0, Score_Minus10 goto CheckIfAbilityBlocksStatChange -AI_CBM_SpDefDown:: +AI_CBM_SpDefDown: if_stat_level_equal AI_TARGET, STAT_SPDEF, 0, Score_Minus10 goto CheckIfAbilityBlocksStatChange -AI_CBM_AccDown:: +AI_CBM_AccDown: if_stat_level_equal AI_TARGET, STAT_ACC, 0, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_KEEN_EYE, Score_Minus10 goto CheckIfAbilityBlocksStatChange -AI_CBM_EvasionDown:: +AI_CBM_EvasionDown: if_stat_level_equal AI_TARGET, STAT_EVASION, 0, Score_Minus10 -CheckIfAbilityBlocksStatChange:: +CheckIfAbilityBlocksStatChange: get_ability AI_TARGET if_equal ABILITY_CLEAR_BODY, Score_Minus10 if_equal ABILITY_WHITE_SMOKE, Score_Minus10 end -AI_CBM_Haze:: +AI_CBM_Haze: if_stat_level_less_than AI_USER, STAT_ATK, 6, AI_CBM_Haze_End if_stat_level_less_than AI_USER, STAT_DEF, 6, AI_CBM_Haze_End if_stat_level_less_than AI_USER, STAT_SPEED, 6, AI_CBM_Haze_End @@ -331,17 +331,17 @@ AI_CBM_Haze:: if_stat_level_more_than AI_TARGET, STAT_EVASION, 6, AI_CBM_Haze_End goto Score_Minus10 -AI_CBM_Haze_End:: +AI_CBM_Haze_End: end -AI_CBM_Roar:: - count_alive_pokemon AI_TARGET +AI_CBM_Roar: + count_usable_party_mons AI_TARGET if_equal 0, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_SUCTION_CUPS, Score_Minus10 end -AI_CBM_Poison:: +AI_CBM_Toxic: get_target_type1 if_equal TYPE_STEEL, Score_Minus10 if_equal TYPE_POISON, Score_Minus10 @@ -354,51 +354,51 @@ AI_CBM_Poison:: @ if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 @ Improvement in Emerald end -AI_CBM_LightScreen:: +AI_CBM_LightScreen: if_side_affecting AI_USER, SIDE_STATUS_LIGHTSCREEN, Score_Minus8 end -AI_CBM_OneHitKO:: +AI_CBM_OneHitKO: if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_STURDY, Score_Minus10 if_level_cond 1, Score_Minus10 end -AI_CBM_Magnitude:: +AI_CBM_Magnitude: get_ability AI_TARGET if_equal ABILITY_LEVITATE, Score_Minus10 -AI_CBM_HighRiskForDamage:: +AI_CBM_HighRiskForDamage: if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 get_ability AI_TARGET if_not_equal ABILITY_WONDER_GUARD, AI_CBM_HighRiskForDamage_End if_type_effectiveness AI_EFFECTIVENESS_x2, AI_CBM_HighRiskForDamage_End goto Score_Minus10 -AI_CBM_HighRiskForDamage_End:: +AI_CBM_HighRiskForDamage_End: end -AI_CBM_Mist:: +AI_CBM_Mist: if_side_affecting AI_USER, SIDE_STATUS_MIST, Score_Minus8 end -AI_CBM_FocusEnergy:: +AI_CBM_FocusEnergy: if_status2 AI_USER, STATUS2_FOCUS_ENERGY, Score_Minus10 end -AI_CBM_Confuse:: +AI_CBM_Confuse: if_status2 AI_TARGET, STATUS2_CONFUSION, Score_Minus5 get_ability AI_TARGET if_equal ABILITY_OWN_TEMPO, Score_Minus10 @ if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 @ Improvement in Emerald end -AI_CBM_Reflect:: +AI_CBM_Reflect: if_side_affecting AI_USER, SIDE_STATUS_REFLECT, Score_Minus8 end -AI_CBM_Paralyze:: +AI_CBM_Paralyze: if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_LIMBER, Score_Minus10 @@ -406,12 +406,12 @@ AI_CBM_Paralyze:: @ if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 @ Improvement in Emerald end -AI_CBM_Substitute:: +AI_CBM_Substitute: if_status2 AI_USER, STATUS2_SUBSTITUTE, Score_Minus8 if_hp_less_than AI_USER, 26, Score_Minus10 end -AI_CBM_LeechSeed:: +AI_CBM_LeechSeed: if_status3 AI_TARGET, STATUS3_LEECHSEED, Score_Minus10 get_target_type1 if_equal TYPE_GRASS, Score_Minus10 @@ -419,45 +419,45 @@ AI_CBM_LeechSeed:: if_equal TYPE_GRASS, Score_Minus10 end -AI_CBM_Disable:: +AI_CBM_Disable: if_any_move_disabled AI_TARGET, Score_Minus8 end -AI_CBM_Encore:: +AI_CBM_Encore: if_any_move_encored AI_TARGET, Score_Minus8 end -AI_CBM_DamageDuringSleep:: +AI_CBM_DamageDuringSleep: if_not_status AI_USER, STATUS1_SLEEP, Score_Minus8 end -AI_CBM_CantEscape:: +AI_CBM_CantEscape: if_status2 AI_TARGET, STATUS2_ESCAPE_PREVENTION, Score_Minus10 end -AI_CBM_Curse:: +AI_CBM_Curse: if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus8 end -AI_CBM_Spikes:: +AI_CBM_Spikes: if_side_affecting AI_TARGET, SIDE_STATUS_SPIKES, Score_Minus10 end -AI_CBM_Foresight:: +AI_CBM_Foresight: if_status2 AI_TARGET, STATUS2_FORESIGHT, Score_Minus10 end -AI_CBM_PerishSong:: +AI_CBM_PerishSong: if_status3 AI_TARGET, STATUS3_PERISH_SONG, Score_Minus10 end -AI_CBM_Sandstorm:: +AI_CBM_Sandstorm: get_weather if_equal AI_WEATHER_SANDSTORM, Score_Minus8 end -AI_CBM_Attract:: +AI_CBM_Attract: if_status2 AI_TARGET, STATUS2_INFATUATION, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_OBLIVIOUS, Score_Minus10 @@ -466,73 +466,73 @@ AI_CBM_Attract:: if_equal MON_FEMALE, AI_CBM_Attract_CheckIfTargetIsMale goto Score_Minus10 -AI_CBM_Attract_CheckIfTargetIsFemale:: +AI_CBM_Attract_CheckIfTargetIsFemale: get_gender AI_TARGET if_equal MON_FEMALE, AI_CBM_Attract_End goto Score_Minus10 -AI_CBM_Attract_CheckIfTargetIsMale:: +AI_CBM_Attract_CheckIfTargetIsMale: get_gender AI_TARGET if_equal MON_MALE, AI_CBM_Attract_End goto Score_Minus10 -AI_CBM_Attract_End:: +AI_CBM_Attract_End: end -AI_CBM_Safeguard:: +AI_CBM_Safeguard: if_side_affecting AI_USER, SIDE_STATUS_SAFEGUARD, Score_Minus8 end -AI_CBM_Memento:: +AI_CBM_Memento: if_stat_level_equal AI_TARGET, STAT_ATK, 0, Score_Minus10 if_stat_level_equal AI_TARGET, STAT_SPATK, 0, Score_Minus8 -AI_CBM_BatonPass:: - count_alive_pokemon AI_USER +AI_CBM_BatonPass: + count_usable_party_mons AI_USER if_equal 0, Score_Minus10 end -AI_CBM_RainDance:: +AI_CBM_RainDance: get_weather if_equal AI_WEATHER_RAIN, Score_Minus8 end -AI_CBM_SunnyDay:: +AI_CBM_SunnyDay: get_weather if_equal AI_WEATHER_SUN, Score_Minus8 end -AI_CBM_FutureSight:: +AI_CBM_FutureSight: if_side_affecting AI_TARGET, SIDE_STATUS_FUTUREATTACK, Score_Minus10 @ if_side_affecting AI_USER, SIDE_STATUS_FUTUREATTACK, Score_Minus12 @ Improvement in Emerald end -AI_CBM_FakeOut:: +AI_CBM_FakeOut: is_first_turn_for AI_USER if_equal 0, Score_Minus10 end -AI_CBM_Stockpile:: +AI_CBM_Stockpile: get_stockpile_count AI_USER if_equal 3, Score_Minus10 end -AI_CBM_SpitUpAndSwallow:: +AI_CBM_SpitUpAndSwallow: if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 get_stockpile_count AI_USER if_equal 0, Score_Minus10 end -AI_CBM_Hail:: +AI_CBM_Hail: get_weather if_equal AI_WEATHER_HAIL, Score_Minus8 end -AI_CBM_Torment:: +AI_CBM_Torment: if_status2 AI_TARGET, STATUS2_TORMENT, Score_Minus10 end -AI_CBM_WillOWisp:: +AI_CBM_WillOWisp: get_ability AI_TARGET if_equal ABILITY_WATER_VEIL, Score_Minus10 if_status AI_TARGET, STATUS1_ANY, Score_Minus10 @@ -542,115 +542,115 @@ AI_CBM_WillOWisp:: @ if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 @ Improvement in Emerald end -AI_CBM_HelpingHand:: +AI_CBM_HelpingHand: if_not_double_battle Score_Minus10 end -AI_CBM_TrickAndKnockOff:: +AI_CBM_TrickAndKnockOff: get_ability AI_TARGET if_equal ABILITY_STICKY_HOLD, Score_Minus10 end -AI_CBM_Ingrain:: +AI_CBM_Ingrain: if_status3 AI_USER, STATUS3_ROOTED, Score_Minus10 end -AI_CBM_Recycle:: +AI_CBM_Recycle: get_used_held_item AI_USER if_equal ITEM_NONE, Score_Minus10 end -AI_CBM_Imprison:: +AI_CBM_Imprison: if_status3 AI_USER, STATUS3_IMPRISONED_OTHERS, Score_Minus10 end -AI_CBM_Refresh:: +AI_CBM_Refresh: if_not_status AI_USER, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, Score_Minus10 end -AI_CBM_MudSport:: +AI_CBM_MudSport: if_status3 AI_USER, STATUS3_MUDSPORT, Score_Minus10 end -AI_CBM_Tickle:: +AI_CBM_Tickle: if_stat_level_equal AI_TARGET, STAT_ATK, 0, Score_Minus10 if_stat_level_equal AI_TARGET, STAT_DEF, 0, Score_Minus8 end -AI_CBM_CosmicPower:: +AI_CBM_CosmicPower: if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus10 if_stat_level_equal AI_USER, STAT_SPDEF, 12, Score_Minus8 end -AI_CBM_BulkUp:: +AI_CBM_BulkUp: if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus8 end -AI_CBM_WaterSport:: +AI_CBM_WaterSport: if_status3 AI_USER, STATUS3_WATERSPORT, Score_Minus10 end -AI_CBM_CalmMind:: +AI_CBM_CalmMind: if_stat_level_equal AI_USER, STAT_SPATK, 12, Score_Minus10 if_stat_level_equal AI_USER, STAT_SPDEF, 12, Score_Minus8 end -AI_CBM_DragonDance:: +AI_CBM_DragonDance: if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 if_stat_level_equal AI_USER, STAT_SPEED, 12, Score_Minus8 end -Score_Minus1:: +Score_Minus1: score -1 end -Score_Minus2:: +Score_Minus2: score -2 end -Score_Minus3:: +Score_Minus3: score -3 end -Score_Minus5:: +Score_Minus5: score -5 end -Score_Minus8:: +Score_Minus8: score -8 end -Score_Minus10:: +Score_Minus10: score -10 end -Score_Minus12:: +Score_Minus12: score -12 end -Score_Plus1:: +Score_Plus1: score +1 end -Score_Plus2:: +Score_Plus2: score +2 end -Score_Plus3:: +Score_Plus3: score +3 end -Score_Plus5:: +Score_Plus5: score +5 end @ Improvement in Emerald -@Score_Plus10:: +@Score_Plus10: @ score +10 @ end -AI_CheckViability:: +AI_CheckViability: if_effect EFFECT_SLEEP, AI_CV_Sleep if_effect EFFECT_ABSORB, AI_CV_Absorb if_effect EFFECT_EXPLOSION, AI_CV_SelfKO @@ -775,91 +775,91 @@ AI_CheckViability:: if_effect EFFECT_DRAGON_DANCE, AI_CV_DragonDance end -AI_CV_Sleep:: +AI_CV_Sleep: if_has_move_with_effect AI_TARGET, EFFECT_DREAM_EATER, AI_CV_SleepEncourageSlpDamage if_has_move_with_effect AI_TARGET, EFFECT_NIGHTMARE, AI_CV_SleepEncourageSlpDamage goto AI_CV_Sleep_End -AI_CV_SleepEncourageSlpDamage:: +AI_CV_SleepEncourageSlpDamage: if_random_less_than 128, AI_CV_Sleep_End score +1 -AI_CV_Sleep_End:: +AI_CV_Sleep_End: end -AI_CV_Absorb:: +AI_CV_Absorb: if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_AbsorbEncourageMaybe if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_AbsorbEncourageMaybe goto AI_CV_Absorb_End -AI_CV_AbsorbEncourageMaybe:: +AI_CV_AbsorbEncourageMaybe: if_random_less_than 50, AI_CV_Absorb_End score -3 -AI_CV_Absorb_End:: +AI_CV_Absorb_End: end -AI_CV_SelfKO:: +AI_CV_SelfKO: if_stat_level_less_than AI_TARGET, STAT_EVASION, 7, AI_CV_SelfKO_Encourage1 score -1 if_stat_level_less_than AI_TARGET, STAT_EVASION, 10, AI_CV_SelfKO_Encourage1 if_random_less_than 128, AI_CV_SelfKO_Encourage1 score -1 -AI_CV_SelfKO_Encourage1:: +AI_CV_SelfKO_Encourage1: if_hp_less_than AI_USER, 80, AI_CV_SelfKO_Encourage2 if_target_faster AI_CV_SelfKO_Encourage2 if_random_less_than 50, AI_CV_SelfKO_End goto Score_Minus3 -AI_CV_SelfKO_Encourage2:: +AI_CV_SelfKO_Encourage2: if_hp_more_than AI_USER, 50, AI_CV_SelfKO_Encourage4 if_random_less_than 128, AI_CV_SelfKO_Encourage3 score +1 -AI_CV_SelfKO_Encourage3:: +AI_CV_SelfKO_Encourage3: if_hp_more_than AI_USER, 30, AI_CV_SelfKO_End if_random_less_than 50, AI_CV_SelfKO_End score +1 goto AI_CV_SelfKO_End -AI_CV_SelfKO_Encourage4:: +AI_CV_SelfKO_Encourage4: if_random_less_than 50, AI_CV_SelfKO_End score -1 -AI_CV_SelfKO_End:: +AI_CV_SelfKO_End: end -AI_CV_DreamEater:: +AI_CV_DreamEater: if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_DreamEater_ScoreDown1 if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_DreamEater_ScoreDown1 goto AI_CV_DreamEater_End -AI_CV_DreamEater_ScoreDown1:: +AI_CV_DreamEater_ScoreDown1: score -1 -AI_CV_DreamEater_End:: +AI_CV_DreamEater_End: end -AI_CV_MirrorMove:: +AI_CV_MirrorMove: if_target_faster AI_CV_MirrorMove2 - get_last_used_move AI_TARGET + get_last_used_bank_move AI_TARGET if_not_in_hwords AI_CV_MirrorMove_EncouragedMovesToMirror, AI_CV_MirrorMove2 if_random_less_than 128, AI_CV_MirrorMove_End score +2 goto AI_CV_MirrorMove_End -AI_CV_MirrorMove2:: - get_last_used_move AI_TARGET +AI_CV_MirrorMove2: + get_last_used_bank_move AI_TARGET if_in_hwords AI_CV_MirrorMove_EncouragedMovesToMirror, AI_CV_MirrorMove_End if_random_less_than 80, AI_CV_MirrorMove_End score -1 -AI_CV_MirrorMove_End:: +AI_CV_MirrorMove_End: end .space 2 -AI_CV_MirrorMove_EncouragedMovesToMirror:: +AI_CV_MirrorMove_EncouragedMovesToMirror: .align 1 .2byte MOVE_SLEEP_POWDER .2byte MOVE_LOVELY_KISS @@ -902,63 +902,63 @@ AI_CV_MirrorMove_EncouragedMovesToMirror:: .2byte MOVE_SKILL_SWAP .2byte -1 -AI_CV_AttackUp:: +AI_CV_AttackUp: if_stat_level_less_than AI_USER, STAT_ATK, 9, AI_CV_AttackUp2 if_random_less_than 100, AI_CV_AttackUp3 score -1 goto AI_CV_AttackUp3 -AI_CV_AttackUp2:: +AI_CV_AttackUp2: if_hp_not_equal AI_USER, 100, AI_CV_AttackUp3 if_random_less_than 128, AI_CV_AttackUp3 score +2 -AI_CV_AttackUp3:: +AI_CV_AttackUp3: if_hp_more_than AI_USER, 70, AI_CV_AttackUp_End if_hp_less_than AI_USER, 40, AI_CV_AttackUp_ScoreDown2 if_random_less_than 40, AI_CV_AttackUp_End -AI_CV_AttackUp_ScoreDown2:: +AI_CV_AttackUp_ScoreDown2: score -2 -AI_CV_AttackUp_End:: +AI_CV_AttackUp_End: end -AI_CV_DefenseUp:: +AI_CV_DefenseUp: if_stat_level_less_than AI_USER, STAT_DEF, 9, AI_CV_DefenseUp2 if_random_less_than 100, AI_CV_DefenseUp3 score -1 goto AI_CV_DefenseUp3 -AI_CV_DefenseUp2:: +AI_CV_DefenseUp2: if_hp_not_equal AI_USER, 100, AI_CV_DefenseUp3 if_random_less_than 128, AI_CV_DefenseUp3 score +2 -AI_CV_DefenseUp3:: +AI_CV_DefenseUp3: if_hp_less_than AI_USER, 70, AI_CV_DefenseUp4 if_random_less_than 200, AI_CV_DefenseUp_End -AI_CV_DefenseUp4:: +AI_CV_DefenseUp4: if_hp_less_than AI_USER, 40, AI_CV_DefenseUp_ScoreDown2 - get_last_used_move AI_TARGET + get_last_used_bank_move AI_TARGET get_move_power_from_result if_equal 0, AI_CV_DefenseUp5 - get_last_used_move AI_TARGET + get_last_used_bank_move AI_TARGET get_move_type_from_result if_not_in_bytes AI_CV_DefenseUp_PhysicalTypes, AI_CV_DefenseUp_ScoreDown2 if_random_less_than 60, AI_CV_DefenseUp_End -AI_CV_DefenseUp5:: +AI_CV_DefenseUp5: if_random_less_than 60, AI_CV_DefenseUp_End -AI_CV_DefenseUp_ScoreDown2:: +AI_CV_DefenseUp_ScoreDown2: score -2 -AI_CV_DefenseUp_End:: +AI_CV_DefenseUp_End: end -AI_CV_DefenseUp_PhysicalTypes:: +AI_CV_DefenseUp_PhysicalTypes: .byte TYPE_NORMAL .byte TYPE_FIGHTING .byte TYPE_POISON @@ -970,75 +970,75 @@ AI_CV_DefenseUp_PhysicalTypes:: .byte TYPE_STEEL .byte -1 -AI_CV_SpeedUp:: +AI_CV_SpeedUp: if_target_faster AI_CV_SpeedUp2 score -3 goto AI_CV_SpeedUp_End -AI_CV_SpeedUp2:: +AI_CV_SpeedUp2: if_random_less_than 70, AI_CV_SpeedUp_End score +3 -AI_CV_SpeedUp_End:: +AI_CV_SpeedUp_End: end -AI_CV_SpAtkUp:: +AI_CV_SpAtkUp: if_stat_level_less_than AI_USER, STAT_SPATK, 9, AI_CV_SpAtkUp2 if_random_less_than 100, AI_CV_SpAtkUp3 score -1 goto AI_CV_SpAtkUp3 -AI_CV_SpAtkUp2:: +AI_CV_SpAtkUp2: if_hp_not_equal AI_USER, 100, AI_CV_SpAtkUp3 if_random_less_than 128, AI_CV_SpAtkUp3 score +2 -AI_CV_SpAtkUp3:: +AI_CV_SpAtkUp3: if_hp_more_than AI_USER, 70, AI_CV_SpAtkUp_End if_hp_less_than AI_USER, 40, AI_CV_SpAtkUp_ScoreDown2 if_random_less_than 70, AI_CV_SpAtkUp_End -AI_CV_SpAtkUp_ScoreDown2:: +AI_CV_SpAtkUp_ScoreDown2: score -2 -AI_CV_SpAtkUp_End:: +AI_CV_SpAtkUp_End: end -AI_CV_SpDefUp:: +AI_CV_SpDefUp: if_stat_level_less_than AI_USER, STAT_SPDEF, 9, AI_CV_SpDefUp2 if_random_less_than 100, AI_CV_SpDefUp3 score -1 goto AI_CV_SpDefUp3 -AI_CV_SpDefUp2:: +AI_CV_SpDefUp2: if_hp_not_equal AI_USER, 100, AI_CV_SpDefUp3 if_random_less_than 128, AI_CV_SpDefUp3 score +2 -AI_CV_SpDefUp3:: +AI_CV_SpDefUp3: if_hp_less_than AI_USER, 70, AI_CV_SpDefUp4 if_random_less_than 200, AI_CV_SpDefUp_End -AI_CV_SpDefUp4:: +AI_CV_SpDefUp4: if_hp_less_than AI_USER, 40, AI_CV_SpDefUp_ScoreDown2 - get_last_used_move AI_TARGET + get_last_used_bank_move AI_TARGET get_move_power_from_result if_equal 0, AI_CV_SpDefUp5 - get_last_used_move AI_TARGET + get_last_used_bank_move AI_TARGET get_move_type_from_result if_in_bytes AI_CV_SpDefUp_PhysicalTypes, AI_CV_SpDefUp_ScoreDown2 if_random_less_than 60, AI_CV_SpDefUp_End -AI_CV_SpDefUp5:: +AI_CV_SpDefUp5: if_random_less_than 60, AI_CV_SpDefUp_End -AI_CV_SpDefUp_ScoreDown2:: +AI_CV_SpDefUp_ScoreDown2: score -2 -AI_CV_SpDefUp_End:: +AI_CV_SpDefUp_End: end -AI_CV_SpDefUp_PhysicalTypes:: +AI_CV_SpDefUp_PhysicalTypes: .byte TYPE_NORMAL .byte TYPE_FIGHTING .byte TYPE_POISON @@ -1050,98 +1050,98 @@ AI_CV_SpDefUp_PhysicalTypes:: .byte TYPE_STEEL .byte -1 -AI_CV_AccuracyUp:: +AI_CV_AccuracyUp: if_stat_level_less_than AI_USER, STAT_ACC, 9, AI_CV_AccuracyUp2 if_random_less_than 50, AI_CV_AccuracyUp2 score -2 -AI_CV_AccuracyUp2:: +AI_CV_AccuracyUp2: if_hp_more_than AI_USER, 70, AI_CV_AccuracyUp_End score -2 -AI_CV_AccuracyUp_End:: +AI_CV_AccuracyUp_End: end -AI_CV_EvasionUp:: +AI_CV_EvasionUp: if_hp_less_than AI_USER, 90, AI_CV_EvasionUp2 if_random_less_than 100, AI_CV_EvasionUp2 score +3 -AI_CV_EvasionUp2:: +AI_CV_EvasionUp2: if_stat_level_less_than AI_USER, STAT_EVASION, 9, AI_CV_EvasionUp3 if_random_less_than 128, AI_CV_EvasionUp3 score -1 -AI_CV_EvasionUp3:: +AI_CV_EvasionUp3: if_not_status AI_TARGET, STATUS1_TOXIC_POISON, AI_CV_EvasionUp5 if_hp_more_than AI_USER, 50, AI_CV_EvasionUp4 if_random_less_than 80, AI_CV_EvasionUp5 -AI_CV_EvasionUp4:: +AI_CV_EvasionUp4: if_random_less_than 50, AI_CV_EvasionUp5 score +3 -AI_CV_EvasionUp5:: +AI_CV_EvasionUp5: if_not_status3 AI_TARGET, STATUS3_LEECHSEED, AI_CV_EvasionUp6 if_random_less_than 70, AI_CV_EvasionUp6 score +3 -AI_CV_EvasionUp6:: +AI_CV_EvasionUp6: if_not_status3 AI_USER, STATUS3_ROOTED, AI_CV_EvasionUp7 if_random_less_than 128, AI_CV_EvasionUp7 score +2 -AI_CV_EvasionUp7:: +AI_CV_EvasionUp7: if_not_status2 AI_TARGET, STATUS2_CURSED, AI_CV_EvasionUp8 if_random_less_than 70, AI_CV_EvasionUp8 score +3 -AI_CV_EvasionUp8:: +AI_CV_EvasionUp8: if_hp_more_than AI_USER, 70, AI_CV_EvasionUp_End if_stat_level_equal AI_USER, STAT_EVASION, 6, AI_CV_EvasionUp_End if_hp_less_than AI_USER, 40, AI_CV_EvasionUp_ScoreDown2 if_hp_less_than AI_TARGET, 40, AI_CV_EvasionUp_ScoreDown2 if_random_less_than 70, AI_CV_EvasionUp_End -AI_CV_EvasionUp_ScoreDown2:: +AI_CV_EvasionUp_ScoreDown2: score -2 -AI_CV_EvasionUp_End:: +AI_CV_EvasionUp_End: end -AI_CV_AlwaysHit:: +AI_CV_AlwaysHit: if_stat_level_more_than AI_TARGET, STAT_EVASION, 10, AI_CV_AlwaysHit_ScoreUp1 if_stat_level_less_than AI_USER, STAT_ACC, 2, AI_CV_AlwaysHit_ScoreUp1 if_stat_level_more_than AI_TARGET, STAT_EVASION, 8, AI_CV_AlwaysHit2 if_stat_level_less_than AI_USER, STAT_ACC, 4, AI_CV_AlwaysHit2 goto AI_CV_AlwaysHit_End -AI_CV_AlwaysHit_ScoreUp1:: +AI_CV_AlwaysHit_ScoreUp1: score +1 -AI_CV_AlwaysHit2:: +AI_CV_AlwaysHit2: if_random_less_than 100, AI_CV_AlwaysHit_End score +1 -AI_CV_AlwaysHit_End:: +AI_CV_AlwaysHit_End: end -AI_CV_AttackDown:: +AI_CV_AttackDown: if_stat_level_equal AI_TARGET, STAT_ATK, 6, AI_CV_AttackDown3 score -1 if_hp_more_than AI_USER, 90, AI_CV_AttackDown2 score -1 -AI_CV_AttackDown2:: +AI_CV_AttackDown2: if_stat_level_more_than AI_TARGET, STAT_ATK, 3, AI_CV_AttackDown3 if_random_less_than 50, AI_CV_AttackDown3 score -2 -AI_CV_AttackDown3:: +AI_CV_AttackDown3: if_hp_more_than AI_TARGET, 70, AI_CV_AttackDown4 score -2 -AI_CV_AttackDown4:: +AI_CV_AttackDown4: get_target_type1 if_in_bytes AI_CV_AttackDown_PhysicalTypeList, AI_CV_AttackDown_End get_target_type2 @@ -1149,11 +1149,11 @@ AI_CV_AttackDown4:: if_random_less_than 50, AI_CV_AttackDown_End score -2 -AI_CV_AttackDown_End:: +AI_CV_AttackDown_End: end @ Missing Poison, Flying, and Ghost for unknown reason -AI_CV_AttackDown_PhysicalTypeList:: +AI_CV_AttackDown_PhysicalTypeList: .byte TYPE_NORMAL .byte TYPE_FIGHTING .byte TYPE_GROUND @@ -1162,55 +1162,55 @@ AI_CV_AttackDown_PhysicalTypeList:: .byte TYPE_STEEL .byte -1 -AI_CV_DefenseDown:: +AI_CV_DefenseDown: if_hp_less_than AI_USER, 70, AI_CV_DefenseDown2 if_stat_level_more_than AI_TARGET, STAT_DEF, 3, AI_CV_DefenseDown3 -AI_CV_DefenseDown2:: +AI_CV_DefenseDown2: if_random_less_than 50, AI_CV_DefenseDown3 score -2 -AI_CV_DefenseDown3:: +AI_CV_DefenseDown3: if_hp_more_than AI_TARGET, 70, AI_CV_DefenseDown_End score -2 -AI_CV_DefenseDown_End:: +AI_CV_DefenseDown_End: end -AI_CV_SpeedDownFromChance:: +AI_CV_SpeedDownFromChance: if_move MOVE_ICY_WIND, AI_CV_SpeedDown if_move MOVE_ROCK_TOMB, AI_CV_SpeedDown if_move MOVE_MUD_SHOT, AI_CV_SpeedDown end -AI_CV_SpeedDown:: +AI_CV_SpeedDown: if_target_faster AI_CV_SpeedDown2 score -3 goto AI_CV_SpeedDown_End -AI_CV_SpeedDown2:: +AI_CV_SpeedDown2: if_random_less_than 70, AI_CV_SpeedDown_End score +2 -AI_CV_SpeedDown_End:: +AI_CV_SpeedDown_End: end -AI_CV_SpAtkDown:: +AI_CV_SpAtkDown: if_stat_level_equal AI_TARGET, STAT_ATK, 6, AI_CV_SpAtkDown3 score -1 if_hp_more_than AI_USER, 90, AI_CV_SpAtkDown2 score -1 -AI_CV_SpAtkDown2:: +AI_CV_SpAtkDown2: if_stat_level_more_than AI_TARGET, STAT_SPATK, 3, AI_CV_SpAtkDown3 if_random_less_than 50, AI_CV_SpAtkDown3 score -2 -AI_CV_SpAtkDown3:: +AI_CV_SpAtkDown3: if_hp_more_than AI_TARGET, 70, AI_CV_SpAtkDown4 score -2 -AI_CV_SpAtkDown4:: +AI_CV_SpAtkDown4: get_target_type1 if_in_bytes AI_CV_SpAtkDown_SpecialTypeList, AI_CV_SpAtkDown_End get_target_type2 @@ -1218,10 +1218,10 @@ AI_CV_SpAtkDown4:: if_random_less_than 50, AI_CV_SpAtkDown_End score -2 -AI_CV_SpAtkDown_End:: +AI_CV_SpAtkDown_End: end -AI_CV_SpAtkDown_SpecialTypeList:: +AI_CV_SpAtkDown_SpecialTypeList: .byte TYPE_FIRE .byte TYPE_WATER .byte TYPE_GRASS @@ -1232,83 +1232,83 @@ AI_CV_SpAtkDown_SpecialTypeList:: .byte TYPE_DARK .byte -1 -AI_CV_SpDefDown:: +AI_CV_SpDefDown: if_hp_less_than AI_USER, 70, AI_CV_SpDefDown2 if_stat_level_more_than AI_TARGET, STAT_SPDEF, 3, AI_CV_SpDefDown3 -AI_CV_SpDefDown2:: +AI_CV_SpDefDown2: if_random_less_than 50, AI_CV_SpDefDown3 score -2 -AI_CV_SpDefDown3:: +AI_CV_SpDefDown3: if_hp_more_than AI_TARGET, 70, AI_CV_SpDefDown_End score -2 -AI_CV_SpDefDown_End:: +AI_CV_SpDefDown_End: end -AI_CV_AccuracyDown:: +AI_CV_AccuracyDown: if_hp_less_than AI_USER, 70, AI_CV_AccuracyDown2 if_hp_more_than AI_TARGET, 70, AI_CV_AccuracyDown3 -AI_CV_AccuracyDown2:: +AI_CV_AccuracyDown2: if_random_less_than 100, AI_CV_AccuracyDown3 score -1 -AI_CV_AccuracyDown3:: +AI_CV_AccuracyDown3: if_stat_level_more_than AI_USER, STAT_ACC, 4, AI_CV_AccuracyDown4 if_random_less_than 80, AI_CV_AccuracyDown4 score -2 -AI_CV_AccuracyDown4:: +AI_CV_AccuracyDown4: if_not_status AI_TARGET, STATUS1_TOXIC_POISON, AI_CV_AccuracyDown5 if_random_less_than 70, AI_CV_AccuracyDown5 score +2 -AI_CV_AccuracyDown5:: +AI_CV_AccuracyDown5: if_not_status3 AI_TARGET, STATUS3_LEECHSEED, AI_CV_AccuracyDown6 if_random_less_than 70, AI_CV_AccuracyDown6 score +2 -AI_CV_AccuracyDown6:: +AI_CV_AccuracyDown6: if_not_status3 AI_USER, STATUS3_ROOTED, AI_CV_AccuracyDown7 if_random_less_than 128, AI_CV_AccuracyDown7 score +1 -AI_CV_AccuracyDown7:: +AI_CV_AccuracyDown7: if_not_status2 AI_TARGET, STATUS2_CURSED, AI_CV_AccuracyDown8 if_random_less_than 70, AI_CV_AccuracyDown8 score +2 -AI_CV_AccuracyDown8:: +AI_CV_AccuracyDown8: if_hp_more_than AI_USER, 70, AI_CV_AccuracyDown_End if_stat_level_equal AI_TARGET, STAT_ACC, 6, AI_CV_AccuracyDown_End if_hp_less_than AI_USER, 40, AI_CV_AccuracyDown_ScoreDown2 if_hp_less_than AI_TARGET, 40, AI_CV_AccuracyDown_ScoreDown2 if_random_less_than 70, AI_CV_AccuracyDown_End -AI_CV_AccuracyDown_ScoreDown2:: +AI_CV_AccuracyDown_ScoreDown2: score -2 -AI_CV_AccuracyDown_End:: +AI_CV_AccuracyDown_End: end -AI_CV_EvasionDown:: +AI_CV_EvasionDown: if_hp_less_than AI_USER, 70, AI_CV_EvasionDown2 if_stat_level_more_than AI_TARGET, STAT_EVASION, 3, AI_CV_EvasionDown3 -AI_CV_EvasionDown2:: +AI_CV_EvasionDown2: if_random_less_than 50, AI_CV_EvasionDown3 score -2 -AI_CV_EvasionDown3:: +AI_CV_EvasionDown3: if_hp_more_than AI_TARGET, 70, AI_CV_EvasionDown_End score -2 -AI_CV_EvasionDown_End:: +AI_CV_EvasionDown_End: end -AI_CV_Haze:: +AI_CV_Haze: if_stat_level_more_than AI_USER, STAT_ATK, 8, AI_CV_Haze2 if_stat_level_more_than AI_USER, STAT_DEF, 8, AI_CV_Haze2 if_stat_level_more_than AI_USER, STAT_SPATK, 8, AI_CV_Haze2 @@ -1321,11 +1321,11 @@ AI_CV_Haze:: if_stat_level_less_than AI_TARGET, STAT_ACC, 4, AI_CV_Haze2 goto AI_CV_Haze3 -AI_CV_Haze2:: +AI_CV_Haze2: if_random_less_than 50, AI_CV_Haze3 score -3 -AI_CV_Haze3:: +AI_CV_Haze3: if_stat_level_more_than AI_TARGET, STAT_ATK, 8, AI_CV_Haze4 if_stat_level_more_than AI_TARGET, STAT_DEF, 8, AI_CV_Haze4 if_stat_level_more_than AI_TARGET, STAT_SPATK, 8, AI_CV_Haze4 @@ -1340,21 +1340,21 @@ AI_CV_Haze3:: score -1 goto AI_CV_Haze_End -AI_CV_Haze4:: +AI_CV_Haze4: if_random_less_than 50, AI_CV_Haze_End score +3 -AI_CV_Haze_End:: +AI_CV_Haze_End: end -AI_CV_Bide:: +AI_CV_Bide: if_hp_more_than AI_USER, 90, AI_CV_Bide_End score -2 -AI_CV_Bide_End:: +AI_CV_Bide_End: end -AI_CV_Roar:: +AI_CV_Roar: if_stat_level_more_than AI_TARGET, STAT_ATK, 8, AI_CV_Roar2 if_stat_level_more_than AI_TARGET, STAT_DEF, 8, AI_CV_Roar2 if_stat_level_more_than AI_TARGET, STAT_SPATK, 8, AI_CV_Roar2 @@ -1363,36 +1363,36 @@ AI_CV_Roar:: score -3 goto AI_CV_Roar_End -AI_CV_Roar2:: +AI_CV_Roar2: if_random_less_than 128, AI_CV_Roar_End score +2 -AI_CV_Roar_End:: +AI_CV_Roar_End: end -AI_CV_Conversion:: +AI_CV_Conversion: if_hp_more_than AI_USER, 90, AI_CV_Conversion2 score -2 -AI_CV_Conversion2:: +AI_CV_Conversion2: get_turn_count if_equal 0, AI_CV_Conversion_End if_random_less_than 200, Score_Minus2 -AI_CV_Conversion_End:: +AI_CV_Conversion_End: end -AI_CV_HealWeather:: +AI_CV_HealWeather: get_weather if_equal AI_WEATHER_HAIL, AI_CV_HealWeather_ScoreDown2 if_equal AI_WEATHER_RAIN, AI_CV_HealWeather_ScoreDown2 if_equal AI_WEATHER_SANDSTORM, AI_CV_HealWeather_ScoreDown2 goto AI_CV_Heal -AI_CV_HealWeather_ScoreDown2:: +AI_CV_HealWeather_ScoreDown2: score -2 -AI_CV_Heal:: +AI_CV_Heal: if_hp_equal AI_USER, 100, AI_CV_Heal3 if_target_faster AI_CV_Heal4 score -8 @@ -1404,51 +1404,51 @@ AI_CV_Heal2: if_hp_more_than AI_USER, 80, AI_CV_Heal3 if_random_less_than 70, AI_CV_Heal5 -AI_CV_Heal3:: +AI_CV_Heal3: score -3 goto AI_CV_Heal_End -AI_CV_Heal4:: +AI_CV_Heal4: if_hp_less_than AI_USER, 70, AI_CV_Heal5 if_random_less_than 30, AI_CV_Heal5 score -3 goto AI_CV_Heal_End -AI_CV_Heal5:: +AI_CV_Heal5: if_doesnt_have_move_with_effect AI_TARGET, EFFECT_SNATCH, AI_CV_Heal6 if_random_less_than 100, AI_CV_Heal_End -AI_CV_Heal6:: +AI_CV_Heal6: if_random_less_than 20, AI_CV_Heal_End score +2 -AI_CV_Heal_End:: +AI_CV_Heal_End: end -AI_CV_Toxic:: +AI_CV_Toxic: if_user_has_no_attacking_moves AI_CV_Toxic3 if_hp_more_than AI_USER, 50, AI_CV_Toxic2 if_random_less_than 50, AI_CV_Toxic2 score -3 -AI_CV_Toxic2:: +AI_CV_Toxic2: if_hp_more_than AI_TARGET, 50, AI_CV_Toxic3 if_random_less_than 50, AI_CV_Toxic3 score -3 -AI_CV_Toxic3:: +AI_CV_Toxic3: if_has_move_with_effect AI_USER, EFFECT_SPECIAL_DEFENSE_UP, AI_CV_Toxic4 if_has_move_with_effect AI_USER, EFFECT_PROTECT, AI_CV_Toxic4 goto AI_CV_Toxic_End -AI_CV_Toxic4:: +AI_CV_Toxic4: if_random_less_than 60, AI_CV_Toxic_End score +2 -AI_CV_Toxic_End:: +AI_CV_Toxic_End: end -AI_CV_LightScreen:: +AI_CV_LightScreen: if_hp_less_than AI_USER, 50, AI_CV_LightScreen_ScoreDown2 get_target_type1 if_in_bytes AI_CV_LightScreen_SpecialTypeList, AI_CV_LightScreen_End @@ -1456,13 +1456,13 @@ AI_CV_LightScreen:: if_in_bytes AI_CV_LightScreen_SpecialTypeList, AI_CV_LightScreen_End if_random_less_than 50, AI_CV_LightScreen_End -AI_CV_LightScreen_ScoreDown2:: +AI_CV_LightScreen_ScoreDown2: score -2 -AI_CV_LightScreen_End:: +AI_CV_LightScreen_End: end -AI_CV_LightScreen_SpecialTypeList:: +AI_CV_LightScreen_SpecialTypeList: .byte TYPE_FIRE .byte TYPE_WATER .byte TYPE_GRASS @@ -1473,99 +1473,99 @@ AI_CV_LightScreen_SpecialTypeList:: .byte TYPE_DARK .byte -1 -AI_CV_Rest:: +AI_CV_Rest: if_target_faster AI_CV_Rest4 if_hp_not_equal AI_USER, 100, AI_CV_Rest2 score -8 goto AI_CV_Rest_End -AI_CV_Rest2:: +AI_CV_Rest2: if_hp_less_than AI_USER, 40, AI_CV_Rest6 if_hp_more_than AI_USER, 50, AI_CV_Rest3 if_random_less_than 70, AI_CV_Rest6 -AI_CV_Rest3:: +AI_CV_Rest3: score -3 goto AI_CV_Rest_End -AI_CV_Rest4:: +AI_CV_Rest4: if_hp_less_than AI_USER, 60, AI_CV_Rest6 if_hp_more_than AI_USER, 70, AI_CV_Rest5 if_random_less_than 50, AI_CV_Rest6 -AI_CV_Rest5:: +AI_CV_Rest5: score -3 goto AI_CV_Rest_End -AI_CV_Rest6:: +AI_CV_Rest6: if_doesnt_have_move_with_effect AI_TARGET, EFFECT_SNATCH, AI_CV_Rest7 if_random_less_than 50, AI_CV_Rest_End -AI_CV_Rest7:: +AI_CV_Rest7: if_random_less_than 10, AI_CV_Rest_End score +3 -AI_CV_Rest_End:: +AI_CV_Rest_End: end -AI_CV_OneHitKO:: +AI_CV_OneHitKO: end -AI_CV_SuperFang:: +AI_CV_SuperFang: if_hp_more_than AI_TARGET, 50, AI_CV_SuperFang_End score -1 -AI_CV_SuperFang_End:: +AI_CV_SuperFang_End: end -AI_CV_Trap:: +AI_CV_Trap: if_status AI_TARGET, STATUS1_TOXIC_POISON, AI_CV_Trap2 if_status2 AI_TARGET, STATUS2_CURSED, AI_CV_Trap2 if_status3 AI_TARGET, STATUS3_PERISH_SONG, AI_CV_Trap2 if_status2 AI_TARGET, STATUS2_INFATUATION, AI_CV_Trap2 goto AI_CV_Trap_End -AI_CV_Trap2:: +AI_CV_Trap2: if_random_less_than 128, AI_CV_Trap_End score +1 -AI_CV_Trap_End:: +AI_CV_Trap_End: end -AI_CV_HighCrit:: +AI_CV_HighCrit: if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_HighCrit_End if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_HighCrit_End if_type_effectiveness AI_EFFECTIVENESS_x2, AI_CV_HighCrit2 if_type_effectiveness AI_EFFECTIVENESS_x4, AI_CV_HighCrit2 if_random_less_than 128, AI_CV_HighCrit_End -AI_CV_HighCrit2:: +AI_CV_HighCrit2: if_random_less_than 128, AI_CV_HighCrit_End score +1 -AI_CV_HighCrit_End:: +AI_CV_HighCrit_End: end @ Improvement in Emerald @AI_CV_Swagger: @ if_has_move AI_USER, MOVE_PSYCH_UP, AI_CV_SwaggerHasPsychUp -AI_CV_Flatter:: +AI_CV_Flatter: if_random_less_than 128, AI_CV_Confuse score +1 -AI_CV_Confuse:: +AI_CV_Confuse: if_hp_more_than AI_TARGET, 70, AI_CV_Confuse_End if_random_less_than 128, AI_CV_Confuse2 score -1 -AI_CV_Confuse2:: +AI_CV_Confuse2: if_hp_more_than AI_TARGET, 50, AI_CV_Confuse_End score -1 if_hp_more_than AI_TARGET, 30, AI_CV_Confuse_End score -1 -AI_CV_Confuse_End:: +AI_CV_Confuse_End: end @ Improvement in Emerald @@ -1583,7 +1583,7 @@ AI_CV_Confuse_End:: @AI_CV_SwaggerHasPsychUp_End: @ end -AI_CV_Reflect:: +AI_CV_Reflect: if_hp_less_than AI_USER, 50, AI_CV_Reflect_ScoreDown2 get_target_type1 if_in_bytes AI_CV_Reflect_PhysicalTypeList, AI_CV_Reflect_End @@ -1591,13 +1591,13 @@ AI_CV_Reflect:: if_in_bytes AI_CV_Reflect_PhysicalTypeList, AI_CV_Reflect_End if_random_less_than 50, AI_CV_Reflect_End -AI_CV_Reflect_ScoreDown2:: +AI_CV_Reflect_ScoreDown2: score -2 -AI_CV_Reflect_End:: +AI_CV_Reflect_End: end -AI_CV_Reflect_PhysicalTypeList:: +AI_CV_Reflect_PhysicalTypeList: .byte TYPE_NORMAL .byte TYPE_FIGHTING .byte TYPE_FLYING @@ -1609,60 +1609,60 @@ AI_CV_Reflect_PhysicalTypeList:: .byte TYPE_STEEL .byte -1 -AI_CV_Poison:: +AI_CV_Poison: if_hp_less_than AI_USER, 50, AI_CV_Poison_ScoreDown1 if_hp_more_than AI_TARGET, 50, AI_CV_Poison_End -AI_CV_Poison_ScoreDown1:: +AI_CV_Poison_ScoreDown1: score -1 -AI_CV_Poison_End:: +AI_CV_Poison_End: end -AI_CV_Paralyze:: +AI_CV_Paralyze: if_target_faster AI_CV_Paralyze2 if_hp_more_than AI_USER, 70, AI_CV_Paralyze_End score -1 goto AI_CV_Paralyze_End -AI_CV_Paralyze2:: +AI_CV_Paralyze2: if_random_less_than 20, AI_CV_Paralyze_End score +3 -AI_CV_Paralyze_End:: +AI_CV_Paralyze_End: end -AI_CV_VitalThrow:: +AI_CV_VitalThrow: if_target_faster AI_CV_VitalThrow_End if_hp_more_than AI_USER, 60, AI_CV_VitalThrow_End if_hp_less_than AI_USER, 40, AI_CV_VitalThrow2 if_random_less_than 180, AI_CV_VitalThrow_End -AI_CV_VitalThrow2:: +AI_CV_VitalThrow2: if_random_less_than 50, AI_CV_VitalThrow_End score -1 -AI_CV_VitalThrow_End:: +AI_CV_VitalThrow_End: end -AI_CV_Substitute:: +AI_CV_Substitute: if_hp_more_than AI_USER, 90, AI_CV_Substitute4 if_hp_more_than AI_USER, 70, AI_CV_Substitute3 if_hp_more_than AI_USER, 50, AI_CV_Substitute2 if_random_less_than 100, AI_CV_Substitute2 score -1 -AI_CV_Substitute2:: +AI_CV_Substitute2: if_random_less_than 100, AI_CV_Substitute3 score -1 -AI_CV_Substitute3:: +AI_CV_Substitute3: if_random_less_than 100, AI_CV_Substitute4 score -1 -AI_CV_Substitute4:: +AI_CV_Substitute4: if_target_faster AI_CV_Substitute_End - get_last_used_move AI_TARGET + get_last_used_bank_move AI_TARGET get_move_effect_from_result if_equal EFFECT_SLEEP, AI_CV_Substitute5 if_equal EFFECT_TOXIC, AI_CV_Substitute5 @@ -1673,56 +1673,56 @@ AI_CV_Substitute4:: if_equal EFFECT_LEECH_SEED, AI_CV_Substitute7 goto AI_CV_Substitute_End -AI_CV_Substitute5:: +AI_CV_Substitute5: if_not_status AI_TARGET, STATUS1_ANY, AI_CV_Substitute8 goto AI_CV_Substitute_End -AI_CV_Substitute6:: +AI_CV_Substitute6: if_not_status2 AI_TARGET, STATUS2_CONFUSION, AI_CV_Substitute8 goto AI_CV_Substitute_End -AI_CV_Substitute7:: +AI_CV_Substitute7: if_status3 AI_TARGET, STATUS3_LEECHSEED, AI_CV_Substitute_End -AI_CV_Substitute8:: +AI_CV_Substitute8: if_random_less_than 100, AI_CV_Substitute_End score +1 -AI_CV_Substitute_End:: +AI_CV_Substitute_End: end -AI_CV_Recharge:: +AI_CV_Recharge: if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_Recharge_ScoreDown1 if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_Recharge_ScoreDown1 if_target_faster AI_CV_Recharge2 if_hp_more_than AI_USER, 40, AI_CV_Recharge_ScoreDown1 goto AI_CV_Recharge_End -AI_CV_Recharge2:: +AI_CV_Recharge2: if_hp_less_than AI_USER, 60, AI_CV_Recharge_End -AI_CV_Recharge_ScoreDown1:: +AI_CV_Recharge_ScoreDown1: score -1 -AI_CV_Recharge_End:: +AI_CV_Recharge_End: end -AI_CV_Disable:: +AI_CV_Disable: if_target_faster AI_CV_Disable_End - get_last_used_move AI_TARGET + get_last_used_bank_move AI_TARGET get_move_power_from_result if_equal 0, AI_CV_Disable2 score +1 goto AI_CV_Disable_End -AI_CV_Disable2:: +AI_CV_Disable2: if_random_less_than 100, AI_CV_Disable_End score -1 -AI_CV_Disable_End:: +AI_CV_Disable_End: end -AI_CV_Counter:: +AI_CV_Counter: if_status AI_TARGET, STATUS1_SLEEP, AI_CV_Counter_ScoreDown1 if_status2 AI_TARGET, STATUS2_INFATUATION, AI_CV_Counter_ScoreDown1 if_status2 AI_TARGET, STATUS2_CONFUSION, AI_CV_Counter_ScoreDown1 @@ -1730,34 +1730,34 @@ AI_CV_Counter:: if_random_less_than 10, AI_CV_Counter2 score -1 -AI_CV_Counter2:: +AI_CV_Counter2: if_hp_more_than AI_USER, 50, AI_CV_Counter3 if_random_less_than 100, AI_CV_Counter3 score -1 -AI_CV_Counter3:: +AI_CV_Counter3: @ if_has_move AI_USER, MOVE_MIRROR_COAT, AI_CV_Counter7 @ Improvement in Emerald - get_last_used_move AI_TARGET + get_last_used_bank_move AI_TARGET get_move_power_from_result if_equal 0, AI_CV_Counter5 if_target_not_taunted AI_CV_Counter4 if_random_less_than 100, AI_CV_Counter4 score +1 -AI_CV_Counter4:: - get_last_used_move AI_TARGET +AI_CV_Counter4: + get_last_used_bank_move AI_TARGET get_move_type_from_result if_not_in_bytes AI_CV_Counter_PhysicalTypeList, AI_CV_Counter_ScoreDown1 if_random_less_than 100, AI_CV_Counter_End score +1 goto AI_CV_Counter_End -AI_CV_Counter5:: +AI_CV_Counter5: if_target_not_taunted AI_CV_Counter6 if_random_less_than 100, AI_CV_Counter6 score +1 -AI_CV_Counter6:: +AI_CV_Counter6: get_target_type1 if_in_bytes AI_CV_Counter_PhysicalTypeList, AI_CV_Counter_End get_target_type2 @@ -1772,13 +1772,13 @@ AI_CV_Counter6:: @AI_CV_Counter8: @ end -AI_CV_Counter_ScoreDown1:: +AI_CV_Counter_ScoreDown1: score -1 -AI_CV_Counter_End:: +AI_CV_Counter_End: end -AI_CV_Counter_PhysicalTypeList:: +AI_CV_Counter_PhysicalTypeList: .byte TYPE_NORMAL .byte TYPE_FIGHTING .byte TYPE_FLYING @@ -1790,25 +1790,25 @@ AI_CV_Counter_PhysicalTypeList:: .byte TYPE_STEEL .byte -1 -AI_CV_Encore:: +AI_CV_Encore: if_any_move_disabled AI_TARGET, AI_CV_Encore2 if_target_faster AI_CV_Encore_ScoreDown2 - get_last_used_move AI_TARGET + get_last_used_bank_move AI_TARGET get_move_effect_from_result if_not_in_bytes AI_CV_Encore_EncouragedMovesToEncore, AI_CV_Encore_ScoreDown2 -AI_CV_Encore2:: +AI_CV_Encore2: if_random_less_than 30, AI_CV_Encore_End score +3 goto AI_CV_Encore_End -AI_CV_Encore_ScoreDown2:: +AI_CV_Encore_ScoreDown2: score -2 -AI_CV_Encore_End:: +AI_CV_Encore_End: end -AI_CV_Encore_EncouragedMovesToEncore:: +AI_CV_Encore_EncouragedMovesToEncore: .byte EFFECT_DREAM_EATER .byte EFFECT_ATTACK_UP .byte EFFECT_DEFENSE_UP @@ -1873,108 +1873,108 @@ AI_CV_Encore_EncouragedMovesToEncore:: .byte EFFECT_CAMOUFLAGE .byte -1 -AI_CV_PainSplit:: +AI_CV_PainSplit: if_hp_less_than AI_TARGET, 80, AI_CV_PainSplit_ScoreDown1 if_target_faster AI_CV_PainSplit2 if_hp_more_than AI_USER, 40, AI_CV_PainSplit_ScoreDown1 score +1 goto AI_CV_PainSplit_End -AI_CV_PainSplit2:: +AI_CV_PainSplit2: if_hp_more_than AI_USER, 60, AI_CV_PainSplit_ScoreDown1 score +1 goto AI_CV_PainSplit_End -AI_CV_PainSplit_ScoreDown1:: +AI_CV_PainSplit_ScoreDown1: score -1 -AI_CV_PainSplit_End:: +AI_CV_PainSplit_End: end -AI_CV_Snore:: +AI_CV_Snore: score +2 end -AI_CV_LockOn:: +AI_CV_LockOn: if_random_less_than 128, AI_CV_LockOn_End score +2 -AI_CV_LockOn_End:: +AI_CV_LockOn_End: end -AI_CV_SleepTalk:: +AI_CV_SleepTalk: @ if_status AI_USER, STATUS1_SLEEP, Score_Plus10 @ Improvement in Emerald score +2 @ Change to -5 end -AI_CV_DestinyBond:: +AI_CV_DestinyBond: score -1 if_target_faster AI_CV_DestinyBond_End if_hp_more_than AI_USER, 70, AI_CV_DestinyBond_End if_random_less_than 128, AI_CV_DestinyBond2 score +1 -AI_CV_DestinyBond2:: +AI_CV_DestinyBond2: if_hp_more_than AI_USER, 50, AI_CV_DestinyBond_End if_random_less_than 128, AI_CV_DestinyBond3 score +1 -AI_CV_DestinyBond3:: +AI_CV_DestinyBond3: if_hp_more_than AI_USER, 30, AI_CV_DestinyBond_End if_random_less_than 100, AI_CV_DestinyBond_End score +2 -AI_CV_DestinyBond_End:: +AI_CV_DestinyBond_End: end -AI_CV_Flail:: +AI_CV_Flail: if_target_faster AI_CV_Flail2 if_hp_more_than AI_USER, 33, AI_CV_Flail_ScoreDown1 if_hp_more_than AI_USER, 20, AI_CV_Flail_End if_hp_less_than AI_USER, 8, AI_CV_Flail_ScoreUp1 goto AI_CV_Flail3 -AI_CV_Flail2:: +AI_CV_Flail2: if_hp_more_than AI_USER, 60, AI_CV_Flail_ScoreDown1 if_hp_more_than AI_USER, 40, AI_CV_Flail_End goto AI_CV_Flail3 -AI_CV_Flail_ScoreUp1:: +AI_CV_Flail_ScoreUp1: score +1 -AI_CV_Flail3:: +AI_CV_Flail3: if_random_less_than 100, AI_CV_Flail_End score +1 goto AI_CV_Flail_End -AI_CV_Flail_ScoreDown1:: +AI_CV_Flail_ScoreDown1: score -1 -AI_CV_Flail_End:: +AI_CV_Flail_End: end -AI_CV_HealBell:: +AI_CV_HealBell: if_status AI_TARGET, STATUS1_ANY, AI_CV_HealBell_End if_status_in_party AI_TARGET, STATUS1_ANY, AI_CV_HealBell_End score -5 -AI_CV_HealBell_End:: +AI_CV_HealBell_End: end -AI_CV_Thief:: +AI_CV_Thief: get_hold_effect AI_TARGET if_not_in_bytes AI_CV_Thief_EncourageItemsToSteal, AI_CV_Thief_ScoreDown2 if_random_less_than 50, AI_CV_Thief_End score +1 goto AI_CV_Thief_End -AI_CV_Thief_ScoreDown2:: +AI_CV_Thief_ScoreDown2: score -2 -AI_CV_Thief_End:: +AI_CV_Thief_End: end -AI_CV_Thief_EncourageItemsToSteal:: +AI_CV_Thief_EncourageItemsToSteal: .byte HOLD_EFFECT_CURE_SLP .byte HOLD_EFFECT_CURE_STATUS .byte HOLD_EFFECT_RESTORE_HP @@ -1984,7 +1984,7 @@ AI_CV_Thief_EncourageItemsToSteal:: .byte HOLD_EFFECT_THICK_CLUB .byte -1 -AI_CV_Curse:: +AI_CV_Curse: get_user_type1 if_equal TYPE_GHOST, AI_CV_Curse4 get_user_type2 @@ -1993,25 +1993,25 @@ AI_CV_Curse:: if_random_less_than 128, AI_CV_Curse2 score +1 -AI_CV_Curse2:: +AI_CV_Curse2: if_stat_level_more_than AI_USER, STAT_DEF, 7, AI_CV_Curse_End if_random_less_than 128, AI_CV_Curse3 score +1 -AI_CV_Curse3:: +AI_CV_Curse3: if_stat_level_more_than AI_USER, STAT_DEF, 6, AI_CV_Curse_End if_random_less_than 128, AI_CV_Curse_End score +1 goto AI_CV_Curse_End -AI_CV_Curse4:: +AI_CV_Curse4: if_hp_more_than AI_USER, 80, AI_CV_Curse_End score -1 -AI_CV_Curse_End:: +AI_CV_Curse_End: end -AI_CV_Protect:: +AI_CV_Protect: get_protect_count AI_USER if_more_than 1, AI_CV_Protect_ScoreDown2 if_status AI_USER, STATUS1_TOXIC_POISON, AI_CV_Protect3 @@ -2028,19 +2028,19 @@ AI_CV_Protect:: if_status2 AI_TARGET, STATUS2_INFATUATION, AI_CV_Protect_ScoreUp2 if_status3 AI_TARGET, STATUS3_LEECHSEED, AI_CV_Protect_ScoreUp2 if_status3 AI_TARGET, STATUS3_YAWN, AI_CV_Protect_ScoreUp2 - get_last_used_move AI_TARGET + get_last_used_bank_move AI_TARGET get_move_effect_from_result if_not_equal EFFECT_LOCK_ON, AI_CV_Protect_ScoreUp2 goto AI_CV_Protect2 -AI_CV_Protect_ScoreUp2:: +AI_CV_Protect_ScoreUp2: score +2 -AI_CV_Protect2:: +AI_CV_Protect2: @ if_random_less_than 128, AI_CV_Protect4 @ Improvement in Emerald @ score -1 -AI_CV_Protect4:: +AI_CV_Protect4: get_protect_count AI_USER if_equal 0, AI_CV_Protect_End score -1 @@ -2048,18 +2048,18 @@ AI_CV_Protect4:: score -1 goto AI_CV_Protect_End -AI_CV_Protect3:: - get_last_used_move AI_TARGET +AI_CV_Protect3: + get_last_used_bank_move AI_TARGET get_move_effect_from_result if_not_equal EFFECT_LOCK_ON, AI_CV_Protect_End -AI_CV_Protect_ScoreDown2:: +AI_CV_Protect_ScoreDown2: score -2 -AI_CV_Protect_End:: +AI_CV_Protect_End: end -AI_CV_Foresight:: +AI_CV_Foresight: get_user_type1 if_equal TYPE_GHOST, AI_CV_Foresight2 get_user_type2 @@ -2068,32 +2068,32 @@ AI_CV_Foresight:: score -2 goto AI_CV_Foresight_End -AI_CV_Foresight2:: +AI_CV_Foresight2: if_random_less_than 80, AI_CV_Foresight_End -AI_CV_Foresight3:: +AI_CV_Foresight3: if_random_less_than 80, AI_CV_Foresight_End score +2 -AI_CV_Foresight_End:: +AI_CV_Foresight_End: end -AI_CV_Endure:: +AI_CV_Endure: if_hp_less_than AI_USER, 4, AI_CV_Endure2 if_hp_less_than AI_USER, 35, AI_CV_Endure3 -AI_CV_Endure2:: +AI_CV_Endure2: score -1 goto AI_CV_Endure_End -AI_CV_Endure3:: +AI_CV_Endure3: if_random_less_than 70, AI_CV_Endure_End score +1 -AI_CV_Endure_End:: +AI_CV_Endure_End: end -AI_CV_BatonPass:: +AI_CV_BatonPass: if_stat_level_more_than AI_USER, STAT_ATK, 8, AI_CV_BatonPass2 if_stat_level_more_than AI_USER, STAT_DEF, 8, AI_CV_BatonPass2 if_stat_level_more_than AI_USER, STAT_SPATK, 8, AI_CV_BatonPass2 @@ -2101,20 +2101,20 @@ AI_CV_BatonPass:: if_stat_level_more_than AI_USER, STAT_EVASION, 8, AI_CV_BatonPass2 goto AI_CV_BatonPass5 -AI_CV_BatonPass2:: +AI_CV_BatonPass2: if_target_faster AI_CV_BatonPass3 if_hp_more_than AI_USER, 60, AI_CV_BatonPass_End goto AI_CV_BatonPass4 -AI_CV_BatonPass3:: +AI_CV_BatonPass3: if_hp_more_than AI_USER, 70, AI_CV_BatonPass_End -AI_CV_BatonPass4:: +AI_CV_BatonPass4: if_random_less_than 80, AI_CV_BatonPass_End score +2 goto AI_CV_BatonPass_End -AI_CV_BatonPass5:: +AI_CV_BatonPass5: if_stat_level_more_than AI_USER, STAT_ATK, 7, AI_CV_BatonPass7 if_stat_level_more_than AI_USER, STAT_DEF, 7, AI_CV_BatonPass7 if_stat_level_more_than AI_USER, STAT_SPATK, 7, AI_CV_BatonPass7 @@ -2122,21 +2122,21 @@ AI_CV_BatonPass5:: if_stat_level_more_than AI_USER, STAT_EVASION, 7, AI_CV_BatonPass7 goto AI_CV_BatonPass_ScoreDown2 -AI_CV_BatonPass7:: +AI_CV_BatonPass7: if_target_faster AI_CV_BatonPass8 if_hp_more_than AI_USER, 60, AI_CV_BatonPass_ScoreDown2 goto AI_CV_BatonPass_End -AI_CV_BatonPass8:: +AI_CV_BatonPass8: if_hp_less_than AI_USER, 70, AI_CV_BatonPass_End -AI_CV_BatonPass_ScoreDown2:: +AI_CV_BatonPass_ScoreDown2: score -2 -AI_CV_BatonPass_End:: +AI_CV_BatonPass_End: end -AI_CV_Pursuit:: +AI_CV_Pursuit: is_first_turn_for AI_USER if_not_equal 0, AI_CV_Pursuit_End get_target_type1 @@ -2149,19 +2149,19 @@ AI_CV_Pursuit:: if_equal TYPE_PSYCHIC, AI_CV_Pursuit2 goto AI_CV_Pursuit_End -AI_CV_Pursuit2:: +AI_CV_Pursuit2: if_random_less_than 128, AI_CV_Pursuit_End score +1 -AI_CV_Pursuit_End:: +AI_CV_Pursuit_End: end -AI_CV_RainDance:: +AI_CV_RainDance: if_user_faster AI_CV_RainDance2 get_ability AI_USER if_equal ABILITY_SWIFT_SWIM, AI_CV_RainDance3 -AI_CV_RainDance2:: +AI_CV_RainDance2: if_hp_less_than AI_USER, 40, AI_CV_RainDance_ScoreDown1 get_weather if_equal AI_WEATHER_HAIL, AI_CV_RainDance3 @@ -2171,17 +2171,17 @@ AI_CV_RainDance2:: if_equal ABILITY_RAIN_DISH, AI_CV_RainDance3 goto AI_CV_RainDance_End -AI_CV_RainDance3:: +AI_CV_RainDance3: score +1 goto AI_CV_RainDance_End -AI_CV_RainDance_ScoreDown1:: +AI_CV_RainDance_ScoreDown1: score -1 -AI_CV_RainDance_End:: +AI_CV_RainDance_End: end -AI_CV_SunnyDay:: +AI_CV_SunnyDay: if_hp_less_than AI_USER, 40, AI_CV_SunnyDay_ScoreDown1 get_weather if_equal AI_WEATHER_HAIL, AI_CV_SunnyDay2 @@ -2189,27 +2189,27 @@ AI_CV_SunnyDay:: if_equal AI_WEATHER_SANDSTORM, AI_CV_SunnyDay2 goto AI_CV_SunnyDay_End -AI_CV_SunnyDay2:: +AI_CV_SunnyDay2: score +1 goto AI_CV_SunnyDay_End -AI_CV_SunnyDay_ScoreDown1:: +AI_CV_SunnyDay_ScoreDown1: score -1 -AI_CV_SunnyDay_End:: +AI_CV_SunnyDay_End: end -AI_CV_BellyDrum:: +AI_CV_BellyDrum: if_hp_less_than AI_USER, 90, AI_CV_BellyDrum_ScoreDown2 goto AI_CV_BellyDrum_End -AI_CV_BellyDrum_ScoreDown2:: +AI_CV_BellyDrum_ScoreDown2: score -2 -AI_CV_BellyDrum_End:: +AI_CV_BellyDrum_End: end -AI_CV_PsychUp:: +AI_CV_PsychUp: if_stat_level_more_than AI_TARGET, STAT_ATK, 8, AI_CV_PsychUp2 if_stat_level_more_than AI_TARGET, STAT_DEF, 8, AI_CV_PsychUp2 if_stat_level_more_than AI_TARGET, STAT_SPATK, 8, AI_CV_PsychUp2 @@ -2217,7 +2217,7 @@ AI_CV_PsychUp:: if_stat_level_more_than AI_TARGET, STAT_EVASION, 8, AI_CV_PsychUp2 goto AI_CV_PsychUp_ScoreDown2 -AI_CV_PsychUp2:: +AI_CV_PsychUp2: if_stat_level_less_than AI_USER, STAT_ATK, 7, AI_CV_PsychUp3 if_stat_level_less_than AI_USER, STAT_DEF, 7, AI_CV_PsychUp3 if_stat_level_less_than AI_USER, STAT_SPATK, 7, AI_CV_PsychUp3 @@ -2226,21 +2226,21 @@ AI_CV_PsychUp2:: if_random_less_than 50, AI_CV_PsychUp_End goto AI_CV_PsychUp_ScoreDown2 -AI_CV_PsychUp_ScoreUp1:: +AI_CV_PsychUp_ScoreUp1: score +1 -AI_CV_PsychUp3:: +AI_CV_PsychUp3: if_random_less_than 128, AI_CV_PsychUp_End @ Remove this line score +1 @ end @ Improvement in Emerald -AI_CV_PsychUp_ScoreDown2:: +AI_CV_PsychUp_ScoreDown2: score -2 -AI_CV_PsychUp_End:: +AI_CV_PsychUp_End: end -AI_CV_MirrorCoat:: +AI_CV_MirrorCoat: if_status AI_TARGET, STATUS1_SLEEP, AI_CV_MirrorCoat_ScoreDown1 if_status2 AI_TARGET, STATUS2_INFATUATION, AI_CV_MirrorCoat_ScoreDown1 if_status2 AI_TARGET, STATUS2_CONFUSION, AI_CV_MirrorCoat_ScoreDown1 @@ -2248,34 +2248,34 @@ AI_CV_MirrorCoat:: if_random_less_than 10, AI_CV_MirrorCoat2 score -1 -AI_CV_MirrorCoat2:: +AI_CV_MirrorCoat2: if_hp_more_than AI_USER, 50, AI_CV_MirrorCoat3 if_random_less_than 100, AI_CV_MirrorCoat3 score -1 -AI_CV_MirrorCoat3:: +AI_CV_MirrorCoat3: @ if_has_move AI_USER, MOVE_COUNTER, AI_CV_MirrorCoat_ScoreUp4 @ Improvement in Emerald - get_last_used_move AI_TARGET + get_last_used_bank_move AI_TARGET get_move_power_from_result if_equal 0, AI_CV_MirrorCoat5 if_target_not_taunted AI_CV_MirrorCoat4 if_random_less_than 100, AI_CV_MirrorCoat4 score +1 -AI_CV_MirrorCoat4:: - get_last_used_move AI_TARGET +AI_CV_MirrorCoat4: + get_last_used_bank_move AI_TARGET get_move_type_from_result if_not_in_bytes AI_CV_MirrorCoat_SpecialTypeList, AI_CV_MirrorCoat_ScoreDown1 if_random_less_than 100, AI_CV_MirrorCoat_End score +1 goto AI_CV_MirrorCoat_End -AI_CV_MirrorCoat5:: +AI_CV_MirrorCoat5: if_target_not_taunted AI_CV_MirrorCoat6 if_random_less_than 100, AI_CV_MirrorCoat6 score +1 -AI_CV_MirrorCoat6:: +AI_CV_MirrorCoat6: get_target_type1 if_in_bytes AI_CV_MirrorCoat_SpecialTypeList, AI_CV_MirrorCoat_End get_target_type2 @@ -2290,13 +2290,13 @@ AI_CV_MirrorCoat6:: @AI_CV_MirrorCoat_ScoreUp4_End: @ end -AI_CV_MirrorCoat_ScoreDown1:: +AI_CV_MirrorCoat_ScoreDown1: score -1 -AI_CV_MirrorCoat_End:: +AI_CV_MirrorCoat_End: end -AI_CV_MirrorCoat_SpecialTypeList:: +AI_CV_MirrorCoat_SpecialTypeList: .byte TYPE_FIRE .byte TYPE_WATER .byte TYPE_GRASS @@ -2307,7 +2307,7 @@ AI_CV_MirrorCoat_SpecialTypeList:: .byte TYPE_DARK .byte -1 -AI_CV_ChargeUpMove:: +AI_CV_ChargeUpMove: if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_ChargeUpMove_ScoreDown2 if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_ChargeUpMove_ScoreDown2 if_has_move_with_effect AI_TARGET, EFFECT_PROTECT, AI_CV_ChargeUpMove_ScoreDown2 @@ -2315,13 +2315,13 @@ AI_CV_ChargeUpMove:: score -1 goto AI_CV_ChargeUpMove_End -AI_CV_ChargeUpMove_ScoreDown2:: +AI_CV_ChargeUpMove_ScoreDown2: score -2 -AI_CV_ChargeUpMove_End:: +AI_CV_ChargeUpMove_End: end -AI_CV_SemiInvulnerable:: +AI_CV_SemiInvulnerable: if_doesnt_have_move_with_effect AI_TARGET, EFFECT_PROTECT, AI_CV_SemiInvulnerable2 score -1 goto AI_CV_SemiInvulnerable_End @@ -2329,7 +2329,7 @@ AI_CV_SemiInvulnerable:: @ BUG: The scripts for checking type-resistance to weather for semi-invulnerable moves are swapped @ The result is that the AI is encouraged to stall while taking damage from weather @ To fix, swap _CheckSandstormTypes/_CheckIceType in the below script -AI_CV_SemiInvulnerable2:: +AI_CV_SemiInvulnerable2: if_status AI_TARGET, STATUS1_TOXIC_POISON, AI_CV_SemiInvulnerable_TryEncourage if_status2 AI_TARGET, STATUS2_CURSED, AI_CV_SemiInvulnerable_TryEncourage if_status3 AI_TARGET, STATUS3_LEECHSEED, AI_CV_SemiInvulnerable_TryEncourage @@ -2338,53 +2338,53 @@ AI_CV_SemiInvulnerable2:: if_equal AI_WEATHER_SANDSTORM, AI_CV_SemiInvulnerable_CheckIceType goto AI_CV_SemiInvulnerable5 -AI_CV_SemiInvulnerable_CheckSandstormTypes:: +AI_CV_SemiInvulnerable_CheckSandstormTypes: get_user_type1 if_in_bytes AI_CV_SandstormResistantTypes, AI_CV_SemiInvulnerable_TryEncourage get_user_type2 if_in_bytes AI_CV_SandstormResistantTypes, AI_CV_SemiInvulnerable_TryEncourage goto AI_CV_SemiInvulnerable5 -AI_CV_SemiInvulnerable_CheckIceType:: +AI_CV_SemiInvulnerable_CheckIceType: get_user_type1 if_equal TYPE_ICE, AI_CV_SemiInvulnerable_TryEncourage get_user_type2 if_equal TYPE_ICE, AI_CV_SemiInvulnerable_TryEncourage -AI_CV_SemiInvulnerable5:: +AI_CV_SemiInvulnerable5: if_target_faster AI_CV_SemiInvulnerable_End - get_last_used_move AI_TARGET + get_last_used_bank_move AI_TARGET get_move_effect_from_result if_not_equal EFFECT_LOCK_ON, AI_CV_SemiInvulnerable_TryEncourage goto AI_CV_SemiInvulnerable_End -AI_CV_SemiInvulnerable_TryEncourage:: +AI_CV_SemiInvulnerable_TryEncourage: if_random_less_than 80, AI_CV_SemiInvulnerable_End score +1 -AI_CV_SemiInvulnerable_End:: +AI_CV_SemiInvulnerable_End: end -AI_CV_SandstormResistantTypes:: +AI_CV_SandstormResistantTypes: .byte TYPE_GROUND .byte TYPE_ROCK .byte TYPE_STEEL .byte -1 -AI_CV_FakeOut:: +AI_CV_FakeOut: score +2 end -AI_CV_SpitUp:: +AI_CV_SpitUp: get_stockpile_count AI_USER if_less_than 2, AI_CV_SpitUp_End if_random_less_than 80, AI_CV_SpitUp_End score +2 -AI_CV_SpitUp_End:: +AI_CV_SpitUp_End: end -AI_CV_Hail:: +AI_CV_Hail: if_hp_less_than AI_USER, 40, AI_CV_Hail_ScoreDown1 get_weather if_equal AI_WEATHER_SUN, AI_CV_Hail2 @@ -2392,25 +2392,25 @@ AI_CV_Hail:: if_equal AI_WEATHER_SANDSTORM, AI_CV_Hail2 goto AI_CV_Hail_End -AI_CV_Hail2:: +AI_CV_Hail2: score +1 goto AI_CV_Hail_End -AI_CV_Hail_ScoreDown1:: +AI_CV_Hail_ScoreDown1: score -1 -AI_CV_Hail_End:: +AI_CV_Hail_End: end @ BUG: Facade score is increased if the target is statused, but should be if the user is. Replace AI_TARGET with AI_USER -AI_CV_Facade:: +AI_CV_Facade: if_not_status AI_TARGET, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, AI_CV_Facade_End score +1 -AI_CV_Facade_End:: +AI_CV_Facade_End: end -AI_CV_FocusPunch:: +AI_CV_FocusPunch: if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_FocusPunch2 if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_FocusPunch2 if_status AI_TARGET, STATUS1_SLEEP, AI_CV_FocusPunch_ScoreUp1 @@ -2422,54 +2422,54 @@ AI_CV_FocusPunch:: score +1 goto AI_CV_FocusPunch_End -AI_CV_FocusPunch2:: +AI_CV_FocusPunch2: score -1 goto AI_CV_FocusPunch_End -AI_CV_FocusPunch3:: +AI_CV_FocusPunch3: if_random_less_than 100, AI_CV_FocusPunch_End -AI_CV_FocusPunch_ScoreUp1:: +AI_CV_FocusPunch_ScoreUp1: score +1 -AI_CV_FocusPunch_End:: +AI_CV_FocusPunch_End: end -AI_CV_SmellingSalt:: +AI_CV_SmellingSalt: if_status AI_TARGET, STATUS1_PARALYSIS, AI_CV_SmellingSalt_ScoreUp1 goto AI_CV_SmellingSalt_End -AI_CV_SmellingSalt_ScoreUp1:: +AI_CV_SmellingSalt_ScoreUp1: score +1 -AI_CV_SmellingSalt_End:: +AI_CV_SmellingSalt_End: end -AI_CV_Trick:: +AI_CV_Trick: get_hold_effect AI_USER - if_in_bytes AI_CV_Trick_ChoiceEffects, AI_CV_Trick3 + if_in_bytes AI_CV_Trick_EffectsToEncourage2, AI_CV_Trick3 if_in_bytes AI_CV_Trick_EffectsToEncourage, AI_CV_Trick4 -AI_CV_Trick2:: +AI_CV_Trick2: score -3 goto AI_CV_Trick_End -AI_CV_Trick3:: +AI_CV_Trick3: get_hold_effect AI_TARGET - if_in_bytes AI_CV_Trick_ChoiceEffects, AI_CV_Trick2 + if_in_bytes AI_CV_Trick_EffectsToEncourage2, AI_CV_Trick2 score +5 goto AI_CV_Trick_End -AI_CV_Trick4:: +AI_CV_Trick4: get_hold_effect AI_TARGET if_in_bytes AI_CV_Trick_EffectsToEncourage, AI_CV_Trick2 if_random_less_than 50, AI_CV_Trick_End score +2 -AI_CV_Trick_End:: +AI_CV_Trick_End: end -AI_CV_Trick_EffectsToEncourage:: +AI_CV_Trick_EffectsToEncourage: .byte HOLD_EFFECT_CONFUSE_SPICY .byte HOLD_EFFECT_CONFUSE_DRY .byte HOLD_EFFECT_CONFUSE_SWEET @@ -2479,28 +2479,28 @@ AI_CV_Trick_EffectsToEncourage:: .byte HOLD_EFFECT_CHOICE_BAND .byte -1 -AI_CV_Trick_ChoiceEffects:: +AI_CV_Trick_EffectsToEncourage2: .byte HOLD_EFFECT_CHOICE_BAND .byte -1 -AI_CV_ChangeSelfAbility:: +AI_CV_ChangeSelfAbility: get_ability AI_USER if_in_bytes AI_CV_ChangeSelfAbility_AbilitiesToEncourage, AI_CV_ChangeSelfAbility2 get_ability AI_TARGET if_in_bytes AI_CV_ChangeSelfAbility_AbilitiesToEncourage, AI_CV_ChangeSelfAbility3 -AI_CV_ChangeSelfAbility2:: +AI_CV_ChangeSelfAbility2: score -1 goto AI_CV_ChangeSelfAbility_End -AI_CV_ChangeSelfAbility3:: +AI_CV_ChangeSelfAbility3: if_random_less_than 50, AI_CV_ChangeSelfAbility_End score +2 -AI_CV_ChangeSelfAbility_End:: +AI_CV_ChangeSelfAbility_End: end -AI_CV_ChangeSelfAbility_AbilitiesToEncourage:: +AI_CV_ChangeSelfAbility_AbilitiesToEncourage: .byte ABILITY_SPEED_BOOST .byte ABILITY_BATTLE_ARMOR .byte ABILITY_SAND_VEIL @@ -2519,7 +2519,7 @@ AI_CV_ChangeSelfAbility_AbilitiesToEncourage:: .byte ABILITY_SHIELD_DUST .byte -1 -AI_CV_Superpower:: +AI_CV_Superpower: if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_Superpower_ScoreDown1 if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_Superpower_ScoreDown1 if_stat_level_less_than AI_USER, STAT_ATK, 6, AI_CV_Superpower_ScoreDown1 @@ -2527,21 +2527,21 @@ AI_CV_Superpower:: if_hp_more_than AI_USER, 40, AI_CV_Superpower_ScoreDown1 goto AI_CV_Superpower_End -AI_CV_Superpower2:: +AI_CV_Superpower2: if_hp_less_than AI_USER, 60, AI_CV_Superpower_End -AI_CV_Superpower_ScoreDown1:: +AI_CV_Superpower_ScoreDown1: score -1 -AI_CV_Superpower_End:: +AI_CV_Superpower_End: end -AI_CV_MagicCoat:: +AI_CV_MagicCoat: if_hp_more_than AI_TARGET, 30, AI_CV_MagicCoat2 if_random_less_than 100, AI_CV_MagicCoat2 score -1 -AI_CV_MagicCoat2:: +AI_CV_MagicCoat2: is_first_turn_for AI_USER if_equal 0, AI_CV_MagicCoat4 if_random_less_than 150, AI_CV_MagicCoat_End @@ -2549,36 +2549,36 @@ AI_CV_MagicCoat2:: goto AI_CV_MagicCoat_End if_random_less_than 50, AI_CV_MagicCoat_End -AI_CV_MagicCoat3:: +AI_CV_MagicCoat3: @ if_random_less_than 50, AI_CV_MagicCoat_End @ Improvement in Emerald -AI_CV_MagicCoat4:: +AI_CV_MagicCoat4: if_random_less_than 30, AI_CV_MagicCoat_End score -1 -AI_CV_MagicCoat_End:: +AI_CV_MagicCoat_End: end -AI_CV_Recycle:: +AI_CV_Recycle: get_used_held_item AI_USER if_not_in_bytes AI_CV_Recycle_ItemsToEncourage, AI_CV_Recycle_ScoreDown2 if_random_less_than 50, AI_CV_Recycle_End score +1 goto AI_CV_Recycle_End -AI_CV_Recycle_ScoreDown2:: +AI_CV_Recycle_ScoreDown2: score -2 -AI_CV_Recycle_End:: +AI_CV_Recycle_End: end -AI_CV_Recycle_ItemsToEncourage:: +AI_CV_Recycle_ItemsToEncourage: .byte ITEM_CHESTO_BERRY .byte ITEM_LUM_BERRY .byte ITEM_STARF_BERRY .byte -1 -AI_CV_Revenge:: +AI_CV_Revenge: if_status AI_TARGET, STATUS1_SLEEP, AI_CV_Revenge_ScoreDown2 if_status2 AI_TARGET, STATUS2_INFATUATION, AI_CV_Revenge_ScoreDown2 if_status2 AI_TARGET, STATUS2_CONFUSION, AI_CV_Revenge_ScoreDown2 @@ -2586,86 +2586,86 @@ AI_CV_Revenge:: score +2 goto AI_CV_Revenge_End -AI_CV_Revenge_ScoreDown2:: +AI_CV_Revenge_ScoreDown2: score -2 -AI_CV_Revenge_End:: +AI_CV_Revenge_End: end -AI_CV_BrickBreak:: +AI_CV_BrickBreak: if_side_affecting AI_TARGET, SIDE_STATUS_REFLECT, AI_CV_BrickBreak_ScoreUp1 goto AI_CV_BrickBreak_End -AI_CV_BrickBreak_ScoreUp1:: +AI_CV_BrickBreak_ScoreUp1: score +1 -AI_CV_BrickBreak_End:: +AI_CV_BrickBreak_End: end -AI_CV_KnockOff:: +AI_CV_KnockOff: if_hp_less_than AI_TARGET, 30, AI_CV_KnockOff_End is_first_turn_for AI_USER if_more_than 0, AI_CV_KnockOff_End if_random_less_than 180, AI_CV_KnockOff_End score +1 -AI_CV_KnockOff_End:: +AI_CV_KnockOff_End: end -AI_CV_Endeavor:: +AI_CV_Endeavor: if_hp_less_than AI_TARGET, 70, AI_CV_Endeavor_ScoreDown1 if_target_faster AI_CV_Endeavor2 if_hp_more_than AI_USER, 40, AI_CV_Endeavor_ScoreDown1 score +1 goto AI_CV_Endeavor_End -AI_CV_Endeavor2:: +AI_CV_Endeavor2: if_hp_more_than AI_USER, 50, AI_CV_Endeavor_ScoreDown1 score +1 goto AI_CV_Endeavor_End -AI_CV_Endeavor_ScoreDown1:: +AI_CV_Endeavor_ScoreDown1: score -1 -AI_CV_Endeavor_End:: +AI_CV_Endeavor_End: end -AI_CV_Eruption:: +AI_CV_Eruption: if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_Eruption_ScoreDown1 if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_Eruption_ScoreDown1 if_target_faster AI_CV_Eruption2 if_hp_more_than AI_TARGET, 50, AI_CV_Eruption_End goto AI_CV_Eruption_ScoreDown1 -AI_CV_Eruption2:: +AI_CV_Eruption2: if_hp_more_than AI_TARGET, 70, AI_CV_Eruption_End -AI_CV_Eruption_ScoreDown1:: +AI_CV_Eruption_ScoreDown1: score -1 -AI_CV_Eruption_End:: +AI_CV_Eruption_End: end -AI_CV_Imprison:: +AI_CV_Imprison: is_first_turn_for AI_USER if_more_than 0, AI_CV_Imprison_End if_random_less_than 100, AI_CV_Imprison_End score +2 -AI_CV_Imprison_End:: +AI_CV_Imprison_End: end -AI_CV_Refresh:: +AI_CV_Refresh: if_hp_less_than AI_TARGET, 50, AI_CV_Refresh_ScoreDown1 goto AI_CV_Refresh_End -AI_CV_Refresh_ScoreDown1:: +AI_CV_Refresh_ScoreDown1: score -1 -AI_CV_Refresh_End:: +AI_CV_Refresh_End: end -AI_CV_Snatch:: +AI_CV_Snatch: is_first_turn_for AI_USER if_equal 1, AI_CV_Snatch3 if_random_less_than 30, AI_CV_Snatch_End @@ -2675,30 +2675,30 @@ AI_CV_Snatch:: if_random_less_than 60, AI_CV_Snatch_End goto AI_CV_Snatch5 -AI_CV_Snatch2:: +AI_CV_Snatch2: if_hp_more_than AI_TARGET, 25, AI_CV_Snatch5 if_has_move_with_effect AI_TARGET, EFFECT_RESTORE_HP, AI_CV_Snatch3 if_has_move_with_effect AI_TARGET, EFFECT_DEFENSE_CURL, AI_CV_Snatch3 goto AI_CV_Snatch4 -AI_CV_Snatch3:: +AI_CV_Snatch3: if_random_less_than 150, AI_CV_Snatch_End score +2 goto AI_CV_Snatch_End -AI_CV_Snatch4:: +AI_CV_Snatch4: if_random_less_than 230, AI_CV_Snatch5 score +1 goto AI_CV_Snatch_End -AI_CV_Snatch5:: +AI_CV_Snatch5: if_random_less_than 30, AI_CV_Snatch_End score -2 -AI_CV_Snatch_End:: +AI_CV_Snatch_End: end -AI_CV_MudSport:: +AI_CV_MudSport: if_hp_less_than AI_USER, 50, AI_CV_MudSport_ScoreDown1 get_target_type1 if_equal TYPE_ELECTRIC, AI_CV_MudSport2 @@ -2706,33 +2706,33 @@ AI_CV_MudSport:: if_equal TYPE_ELECTRIC, AI_CV_MudSport2 goto AI_CV_MudSport_ScoreDown1 -AI_CV_MudSport2:: +AI_CV_MudSport2: score +1 goto AI_CV_MudSport_End -AI_CV_MudSport_ScoreDown1:: +AI_CV_MudSport_ScoreDown1: score -1 -AI_CV_MudSport_End:: +AI_CV_MudSport_End: end -AI_CV_Overheat:: +AI_CV_Overheat: if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_Overheat_ScoreDown1 if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_Overheat_ScoreDown1 if_target_faster AI_CV_Overheat2 if_hp_more_than AI_USER, 60, AI_CV_Overheat_End goto AI_CV_Overheat_ScoreDown1 -AI_CV_Overheat2:: +AI_CV_Overheat2: if_hp_more_than AI_USER, 80, AI_CV_Overheat_End -AI_CV_Overheat_ScoreDown1:: +AI_CV_Overheat_ScoreDown1: score -1 -AI_CV_Overheat_End:: +AI_CV_Overheat_End: end -AI_CV_WaterSport:: +AI_CV_WaterSport: if_hp_less_than AI_USER, 50, AI_CV_WaterSport_ScoreDown1 get_target_type1 if_equal TYPE_FIRE, AI_CV_WaterSport2 @@ -2740,31 +2740,31 @@ AI_CV_WaterSport:: if_equal TYPE_FIRE, AI_CV_WaterSport2 goto AI_CV_WaterSport_ScoreDown1 -AI_CV_WaterSport2:: +AI_CV_WaterSport2: score +1 goto AI_CV_WaterSport_End -AI_CV_WaterSport_ScoreDown1:: +AI_CV_WaterSport_ScoreDown1: score -1 -AI_CV_WaterSport_End:: +AI_CV_WaterSport_End: end -AI_CV_DragonDance:: +AI_CV_DragonDance: if_target_faster AI_CV_DragonDance2 if_hp_more_than AI_USER, 50, AI_CV_DragonDance_End if_random_less_than 70, AI_CV_DragonDance_End score -1 goto AI_CV_DragonDance_End -AI_CV_DragonDance2:: +AI_CV_DragonDance2: if_random_less_than 128, AI_CV_DragonDance_End score +1 -AI_CV_DragonDance_End:: +AI_CV_DragonDance_End: end -AI_TryToFaint:: +AI_TryToFaint: if_can_faint AI_TryToFaint_TryToEncourageQuickAttack get_how_powerful_move_is if_equal MOVE_NOT_MOST_POWERFUL, Score_Minus1 @@ -2777,18 +2777,18 @@ AI_TryToFaint:: @ score +2 @ end -AI_TryToFaint_TryToEncourageQuickAttack:: +AI_TryToFaint_TryToEncourageQuickAttack: if_effect EFFECT_EXPLOSION, AI_TryToFaint_End if_not_effect EFFECT_QUICK_ATTACK, AI_TryToFaint_ScoreUp4 score +2 -AI_TryToFaint_ScoreUp4:: +AI_TryToFaint_ScoreUp4: score +4 -AI_TryToFaint_End:: +AI_TryToFaint_End: end -AI_SetupFirstTurn:: +AI_SetupFirstTurn: get_turn_count if_not_equal 0, AI_SetupFirstTurn_End get_considered_move_effect @@ -2796,10 +2796,10 @@ AI_SetupFirstTurn:: if_random_less_than 80, AI_SetupFirstTurn_End score +2 -AI_SetupFirstTurn_End:: +AI_SetupFirstTurn_End: end -AI_SetupFirstTurn_SetupEffectsToEncourage:: +AI_SetupFirstTurn_SetupEffectsToEncourage: .byte EFFECT_ATTACK_UP .byte EFFECT_DEFENSE_UP .byte EFFECT_SPEED_UP @@ -2857,25 +2857,25 @@ AI_SetupFirstTurn_SetupEffectsToEncourage:: .byte EFFECT_CAMOUFLAGE .byte -1 -AI_PreferStrongestMove:: +AI_PreferPowerExtremes: get_how_powerful_move_is - if_not_equal MOVE_POWER_DISCOURAGED, AI_PreferStrongestMove_End - if_random_less_than 100, AI_PreferStrongestMove_End + if_not_equal MOVE_POWER_OTHER, AI_PreferPowerExtremes_End + if_random_less_than 100, AI_PreferPowerExtremes_End score +2 -AI_PreferStrongestMove_End:: +AI_PreferPowerExtremes_End: end -AI_Risky:: +AI_Risky: get_considered_move_effect if_not_in_bytes AI_Risky_EffectsToEncourage, AI_Risky_End if_random_less_than 128, AI_Risky_End score +2 -AI_Risky_End:: +AI_Risky_End: end -AI_Risky_EffectsToEncourage:: +AI_Risky_EffectsToEncourage: .byte EFFECT_SLEEP .byte EFFECT_EXPLOSION .byte EFFECT_MIRROR_MOVE @@ -2897,16 +2897,16 @@ AI_Risky_EffectsToEncourage:: .byte EFFECT_TEETER_DANCE .byte -1 -AI_PreferBatonPass:: - count_alive_pokemon AI_USER +AI_PreferBatonPass: + count_usable_party_mons AI_USER if_equal 0, AI_PreferBatonPass_End get_how_powerful_move_is - if_not_equal MOVE_POWER_DISCOURAGED, AI_PreferBatonPass_End + if_not_equal MOVE_POWER_OTHER, AI_PreferBatonPass_End if_has_move_with_effect AI_USER, EFFECT_BATON_PASS, AI_PreferBatonPass_GoForBatonPass if_random_less_than 80, AI_Risky_End @ Improvement in Emerald (several below) -AI_PreferBatonPass_GoForBatonPass:: +AI_PreferBatonPass_GoForBatonPass: @ if_move MOVE_SWORDS_DANCE, AI_PreferBatonPass2 @ if_move MOVE_DRAGON_DANCE, AI_PreferBatonPass2 @ if_move MOVE_CALM_MIND, AI_PreferBatonPass2 @@ -2921,8 +2921,8 @@ AI_PreferBatonPass_GoForBatonPass:: @ if_hp_less_than AI_USER, 60, Score_Minus10 @ goto Score_Plus1 @ -@AI_PreferBatonPass3:: -@ get_last_used_move AI_USER +@AI_PreferBatonPass3: +@ get_last_used_bank_move AI_USER @ if_in_hwords AI_PreferBatonPass_ProtectMoves, Score_Minus2 @ score +2 @ end @@ -2943,59 +2943,59 @@ AI_PreferBatonPass_GoForBatonPass:: @ if_stat_level_more_than AI_USER, STAT_SPATK, 6, Score_Plus1 @ end -AI_PreferBatonPass_End:: +AI_PreferBatonPass_End: end @ Empty. Expanded in Emerald -AI_DoubleBattle:: +AI_DoubleBattle: end -AI_HPAware:: +AI_HPAware: if_hp_more_than AI_USER, 70, AI_HPAware_UserHasHighHP if_hp_more_than AI_USER, 30, AI_HPAware_UserHasMediumHP get_considered_move_effect if_in_bytes AI_HPAware_DiscouragedEffectsWhenLowHP, AI_HPAware_TryToDiscourage goto AI_HPAware_ConsiderTarget -AI_HPAware_UserHasHighHP:: +AI_HPAware_UserHasHighHP: get_considered_move_effect if_in_bytes AI_HPAware_DiscouragedEffectsWhenHighHP, AI_HPAware_TryToDiscourage goto AI_HPAware_ConsiderTarget -AI_HPAware_UserHasMediumHP:: +AI_HPAware_UserHasMediumHP: get_considered_move_effect if_in_bytes AI_HPAware_DiscouragedEffectsWhenMediumHP, AI_HPAware_TryToDiscourage goto AI_HPAware_ConsiderTarget -AI_HPAware_TryToDiscourage:: +AI_HPAware_TryToDiscourage: if_random_less_than 50, AI_HPAware_ConsiderTarget score -2 -AI_HPAware_ConsiderTarget:: +AI_HPAware_ConsiderTarget: if_hp_more_than AI_TARGET, 70, AI_HPAware_TargetHasHighHP if_hp_more_than AI_TARGET, 30, AI_HPAware_TargetHasMediumHP get_considered_move_effect if_in_bytes AI_HPAware_DiscouragedEffectsWhenTargetLowHP, AI_HPAware_TargetTryToDiscourage goto AI_HPAware_End -AI_HPAware_TargetHasHighHP:: +AI_HPAware_TargetHasHighHP: get_considered_move_effect if_in_bytes AI_HPAware_DiscouragedEffectsWhenTargetHighHP, AI_HPAware_TargetTryToDiscourage goto AI_HPAware_End -AI_HPAware_TargetHasMediumHP:: +AI_HPAware_TargetHasMediumHP: get_considered_move_effect if_in_bytes AI_HPAware_DiscouragedEffectsWhenTargetMediumHP, AI_HPAware_TargetTryToDiscourage goto AI_HPAware_End -AI_HPAware_TargetTryToDiscourage:: +AI_HPAware_TargetTryToDiscourage: if_random_less_than 50, AI_HPAware_End score -2 -AI_HPAware_End:: +AI_HPAware_End: end -AI_HPAware_DiscouragedEffectsWhenHighHP:: +AI_HPAware_DiscouragedEffectsWhenHighHP: .byte EFFECT_EXPLOSION .byte EFFECT_RESTORE_HP .byte EFFECT_REST @@ -3011,7 +3011,7 @@ AI_HPAware_DiscouragedEffectsWhenHighHP:: .byte EFFECT_OVERHEAT .byte -1 -AI_HPAware_DiscouragedEffectsWhenMediumHP:: +AI_HPAware_DiscouragedEffectsWhenMediumHP: .byte EFFECT_EXPLOSION .byte EFFECT_ATTACK_UP .byte EFFECT_DEFENSE_UP @@ -3056,7 +3056,7 @@ AI_HPAware_DiscouragedEffectsWhenMediumHP:: .byte EFFECT_DRAGON_DANCE .byte -1 -AI_HPAware_DiscouragedEffectsWhenLowHP:: +AI_HPAware_DiscouragedEffectsWhenLowHP: .byte EFFECT_ATTACK_UP .byte EFFECT_DEFENSE_UP .byte EFFECT_SPEED_UP @@ -3106,10 +3106,10 @@ AI_HPAware_DiscouragedEffectsWhenLowHP:: .byte EFFECT_DRAGON_DANCE .byte -1 -AI_HPAware_DiscouragedEffectsWhenTargetHighHP:: +AI_HPAware_DiscouragedEffectsWhenTargetHighHP: .byte -1 -AI_HPAware_DiscouragedEffectsWhenTargetMediumHP:: +AI_HPAware_DiscouragedEffectsWhenTargetMediumHP: .byte EFFECT_ATTACK_UP .byte EFFECT_DEFENSE_UP .byte EFFECT_SPEED_UP @@ -3151,7 +3151,7 @@ AI_HPAware_DiscouragedEffectsWhenTargetMediumHP:: .byte EFFECT_DRAGON_DANCE .byte -1 -AI_HPAware_DiscouragedEffectsWhenTargetLowHP:: +AI_HPAware_DiscouragedEffectsWhenTargetLowHP: .byte EFFECT_SLEEP .byte EFFECT_EXPLOSION .byte EFFECT_ATTACK_UP @@ -3213,17 +3213,17 @@ AI_HPAware_DiscouragedEffectsWhenTargetLowHP:: .byte EFFECT_DRAGON_DANCE .byte -1 -AI_Unknown:: - if_not_effect EFFECT_SUNNY_DAY, AI_Unknown_End - if_equal 0, AI_Unknown_End +AI_TrySunnyDayStart: + if_not_effect EFFECT_SUNNY_DAY, AI_TrySunnyDayStart_End + if_equal 0, AI_TrySunnyDayStart_End is_first_turn_for AI_USER - if_equal 0, AI_Unknown_End + if_equal 0, AI_TrySunnyDayStart_End score +5 -AI_Unknown_End:: +AI_TrySunnyDayStart_End: end -AI_Roaming:: +AI_Roaming: if_status2 AI_USER, STATUS2_WRAPPED, AI_Roaming_End if_status2 AI_USER, STATUS2_ESCAPE_PREVENTION, AI_Roaming_End get_ability AI_TARGET @@ -3233,27 +3233,27 @@ AI_Roaming:: get_ability AI_TARGET if_equal ABILITY_ARENA_TRAP, AI_Roaming_End -AI_Roaming_Flee:: +AI_Roaming_Flee: flee -AI_Roaming_End:: +AI_Roaming_End: end -AI_Safari:: +AI_Safari: if_random_safari_flee AI_Safari_Flee watch -AI_Safari_Flee:: +AI_Safari_Flee: flee @ From Hoenns Poochyena fight (Zigzagoon in Emerald) -AI_FirstBattle:: +AI_FirstBattle: if_hp_equal AI_TARGET, 20, AI_FirstBattle_Flee if_hp_less_than AI_TARGET, 20, AI_FirstBattle_Flee end -AI_FirstBattle_Flee:: +AI_FirstBattle_Flee: flee -AI_Ret:: +AI_Ret: end diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h index d23648f390..680e76ad1a 100644 --- a/include/constants/battle_ai.h +++ b/include/constants/battle_ai.h @@ -29,7 +29,7 @@ #define AI_WEATHER_HAIL 3 // get_how_powerful_move_is -#define MOVE_POWER_DISCOURAGED 0 +#define MOVE_POWER_OTHER 0 #define MOVE_NOT_MOST_POWERFUL 1 #define MOVE_MOST_POWERFUL 2 diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 4df9977bc5..67709511f1 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -86,7 +86,7 @@ static void Cmd_if_would_go_first(void); static void Cmd_if_would_not_go_first(void); static void Cmd_nullsub_2A(void); static void Cmd_nullsub_2B(void); -static void Cmd_count_alive_pokemon(void); +static void Cmd_count_usable_party_mons(void); static void Cmd_get_considered_move(void); static void Cmd_get_considered_move_effect(void); static void Cmd_get_ability(void); @@ -190,7 +190,7 @@ static const BattleAICmdFunc sBattleAICmdTable[] = Cmd_if_would_not_go_first, // 0x29 Cmd_nullsub_2A, // 0x2A Cmd_nullsub_2B, // 0x2B - Cmd_count_alive_pokemon, // 0x2C + Cmd_count_usable_party_mons, // 0x2C Cmd_get_considered_move, // 0x2D Cmd_get_considered_move_effect, // 0x2E Cmd_get_ability, // 0x2F @@ -1021,7 +1021,7 @@ static void Cmd_get_how_powerful_move_is(void) } else { - AI_THINKING_STRUCT->funcResult = MOVE_POWER_DISCOURAGED; // Highly discouraged in terms of power. + AI_THINKING_STRUCT->funcResult = MOVE_POWER_OTHER; // Highly discouraged in terms of power. } sAIScriptPtr++; @@ -1077,7 +1077,7 @@ static void Cmd_nullsub_2B(void) { } -static void Cmd_count_alive_pokemon(void) +static void Cmd_count_usable_party_mons(void) { u8 battlerId; u8 battlerOnField1, battlerOnField2; From 04a7ff8aee67490657d55908ad031d27df8b18c6 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sun, 30 Jul 2023 20:24:05 +0530 Subject: [PATCH 04/38] Used DEFAULT_STAT_STAGE, MAX_STAT_STAGE and MIN_STAT_STAGE in data/battle_ai_scripts.s --- data/battle_ai_scripts.s | 108 +++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 615ce0e788..551d72db59 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -248,65 +248,65 @@ AI_CBM_BellyDrum: if_hp_less_than AI_USER, 51, Score_Minus10 AI_CBM_AttackUp: - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_DefenseUp: - if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_SpeedUp: - if_stat_level_equal AI_USER, STAT_SPEED, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPEED, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_SpAtkUp: - if_stat_level_equal AI_USER, STAT_SPATK, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPATK, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_SpDefUp: - if_stat_level_equal AI_USER, STAT_SPDEF, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPDEF, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_AccUp: - if_stat_level_equal AI_USER, STAT_ACC, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_ACC, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_EvasionUp: - if_stat_level_equal AI_USER, STAT_EVASION, 12, Score_Minus10 + if_stat_level_equal AI_USER, STAT_EVASION, MAX_STAT_STAGE, Score_Minus10 end AI_CBM_AttackDown: - if_stat_level_equal AI_TARGET, STAT_ATK, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_ATK, MIN_STAT_STAGE, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_HYPER_CUTTER, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_DefenseDown: - if_stat_level_equal AI_TARGET, STAT_DEF, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_DEF, MIN_STAT_STAGE, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_SpeedDown: - if_stat_level_equal AI_TARGET, STAT_SPEED, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_SPEED, MIN_STAT_STAGE, Score_Minus10 @ get_ability AI_TARGET @ Improvement in Emerald @ if_equal ABILITY_SPEED_BOOST, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_SpAtkDown: - if_stat_level_equal AI_TARGET, STAT_SPATK, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_SPATK, MIN_STAT_STAGE, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_SpDefDown: - if_stat_level_equal AI_TARGET, STAT_SPDEF, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_SPDEF, MIN_STAT_STAGE, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_AccDown: - if_stat_level_equal AI_TARGET, STAT_ACC, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_ACC, MIN_STAT_STAGE, Score_Minus10 get_ability AI_TARGET if_equal ABILITY_KEEN_EYE, Score_Minus10 goto CheckIfAbilityBlocksStatChange AI_CBM_EvasionDown: - if_stat_level_equal AI_TARGET, STAT_EVASION, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_EVASION, MIN_STAT_STAGE, Score_Minus10 CheckIfAbilityBlocksStatChange: get_ability AI_TARGET @@ -315,20 +315,20 @@ CheckIfAbilityBlocksStatChange: end AI_CBM_Haze: - if_stat_level_less_than AI_USER, STAT_ATK, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_DEF, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_SPEED, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_SPATK, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_SPDEF, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_ACC, 6, AI_CBM_Haze_End - if_stat_level_less_than AI_USER, STAT_EVASION, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_ATK, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_DEF, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_SPEED, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_SPATK, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_SPDEF, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_ACC, 6, AI_CBM_Haze_End - if_stat_level_more_than AI_TARGET, STAT_EVASION, 6, AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_DEF, DEFAULT_STAT_STAGE AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_SPEED, DEFAULT_STAT_STAGE AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_SPDEF, DEFAULT_STAT_STAGE AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_ACC, DEFAULT_STAT_STAGE AI_CBM_Haze_End + if_stat_level_less_than AI_USER, STAT_EVASION, DEFAULT_STAT_STAGE AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_ATK, DEFAULT_STAT_STAGE AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_DEF, DEFAULT_STAT_STAGE AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_SPEED, DEFAULT_STAT_STAGE AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_SPATK, DEFAULT_STAT_STAGE AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_SPDEF, DEFAULT_STAT_STAGE AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_ACC, DEFAULT_STAT_STAGE AI_CBM_Haze_End + if_stat_level_more_than AI_TARGET, STAT_EVASION, DEFAULT_STAT_STAGE AI_CBM_Haze_End goto Score_Minus10 AI_CBM_Haze_End: @@ -436,8 +436,8 @@ AI_CBM_CantEscape: end AI_CBM_Curse: - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus8 end AI_CBM_Spikes: @@ -484,8 +484,8 @@ AI_CBM_Safeguard: end AI_CBM_Memento: - if_stat_level_equal AI_TARGET, STAT_ATK, 0, Score_Minus10 - if_stat_level_equal AI_TARGET, STAT_SPATK, 0, Score_Minus8 + if_stat_level_equal AI_TARGET, STAT_ATK, MIN_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_SPATK, MIN_STAT_STAGE, Score_Minus8 AI_CBM_BatonPass: count_usable_party_mons AI_USER @@ -573,18 +573,18 @@ AI_CBM_MudSport: end AI_CBM_Tickle: - if_stat_level_equal AI_TARGET, STAT_ATK, 0, Score_Minus10 - if_stat_level_equal AI_TARGET, STAT_DEF, 0, Score_Minus8 + if_stat_level_equal AI_TARGET, STAT_ATK, MIN_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_TARGET, STAT_DEF, MIN_STAT_STAGE, Score_Minus8 end AI_CBM_CosmicPower: - if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_SPDEF, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPDEF, MAX_STAT_STAGE, Score_Minus8 end AI_CBM_BulkUp: - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_DEF, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_DEF, MAX_STAT_STAGE, Score_Minus8 end AI_CBM_WaterSport: @@ -592,13 +592,13 @@ AI_CBM_WaterSport: end AI_CBM_CalmMind: - if_stat_level_equal AI_USER, STAT_SPATK, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_SPDEF, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_SPATK, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPDEF, MAX_STAT_STAGE, Score_Minus8 end AI_CBM_DragonDance: - if_stat_level_equal AI_USER, STAT_ATK, 12, Score_Minus10 - if_stat_level_equal AI_USER, STAT_SPEED, 12, Score_Minus8 + if_stat_level_equal AI_USER, STAT_ATK, MAX_STAT_STAGE, Score_Minus10 + if_stat_level_equal AI_USER, STAT_SPEED, MAX_STAT_STAGE, Score_Minus8 end Score_Minus1: @@ -1098,7 +1098,7 @@ AI_CV_EvasionUp7: AI_CV_EvasionUp8: if_hp_more_than AI_USER, 70, AI_CV_EvasionUp_End - if_stat_level_equal AI_USER, STAT_EVASION, 6, AI_CV_EvasionUp_End + if_stat_level_equal AI_USER, STAT_EVASION, DEFAULT_STAT_STAGE AI_CV_EvasionUp_End if_hp_less_than AI_USER, 40, AI_CV_EvasionUp_ScoreDown2 if_hp_less_than AI_TARGET, 40, AI_CV_EvasionUp_ScoreDown2 if_random_less_than 70, AI_CV_EvasionUp_End @@ -1127,7 +1127,7 @@ AI_CV_AlwaysHit_End: end AI_CV_AttackDown: - if_stat_level_equal AI_TARGET, STAT_ATK, 6, AI_CV_AttackDown3 + if_stat_level_equal AI_TARGET, STAT_ATK, DEFAULT_STAT_STAGE AI_CV_AttackDown3 score -1 if_hp_more_than AI_USER, 90, AI_CV_AttackDown2 score -1 @@ -1196,7 +1196,7 @@ AI_CV_SpeedDown_End: end AI_CV_SpAtkDown: - if_stat_level_equal AI_TARGET, STAT_ATK, 6, AI_CV_SpAtkDown3 + if_stat_level_equal AI_TARGET, STAT_ATK, DEFAULT_STAT_STAGE AI_CV_SpAtkDown3 score -1 if_hp_more_than AI_USER, 90, AI_CV_SpAtkDown2 score -1 @@ -1282,7 +1282,7 @@ AI_CV_AccuracyDown7: AI_CV_AccuracyDown8: if_hp_more_than AI_USER, 70, AI_CV_AccuracyDown_End - if_stat_level_equal AI_TARGET, STAT_ACC, 6, AI_CV_AccuracyDown_End + if_stat_level_equal AI_TARGET, STAT_ACC, DEFAULT_STAT_STAGE AI_CV_AccuracyDown_End if_hp_less_than AI_USER, 40, AI_CV_AccuracyDown_ScoreDown2 if_hp_less_than AI_TARGET, 40, AI_CV_AccuracyDown_ScoreDown2 if_random_less_than 70, AI_CV_AccuracyDown_End @@ -1999,7 +1999,7 @@ AI_CV_Curse2: score +1 AI_CV_Curse3: - if_stat_level_more_than AI_USER, STAT_DEF, 6, AI_CV_Curse_End + if_stat_level_more_than AI_USER, STAT_DEF, DEFAULT_STAT_STAGE AI_CV_Curse_End if_random_less_than 128, AI_CV_Curse_End score +1 goto AI_CV_Curse_End @@ -2522,7 +2522,7 @@ AI_CV_ChangeSelfAbility_AbilitiesToEncourage: AI_CV_Superpower: if_type_effectiveness AI_EFFECTIVENESS_x0_25, AI_CV_Superpower_ScoreDown1 if_type_effectiveness AI_EFFECTIVENESS_x0_5, AI_CV_Superpower_ScoreDown1 - if_stat_level_less_than AI_USER, STAT_ATK, 6, AI_CV_Superpower_ScoreDown1 + if_stat_level_less_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE AI_CV_Superpower_ScoreDown1 if_target_faster AI_CV_Superpower2 if_hp_more_than AI_USER, 40, AI_CV_Superpower_ScoreDown1 goto AI_CV_Superpower_End @@ -2935,12 +2935,12 @@ AI_PreferBatonPass_GoForBatonPass: @AI_PreferBatonPass_EncourageIfHighStats: @ get_turn_count @ if_equal 0, Score_Minus2 -@ if_stat_level_more_than AI_USER, STAT_ATK, 8, Score_Plus3 -@ if_stat_level_more_than AI_USER, STAT_ATK, 7, Score_Plus2 -@ if_stat_level_more_than AI_USER, STAT_ATK, 6, Score_Plus1 -@ if_stat_level_more_than AI_USER, STAT_SPATK, 8, Score_Plus3 -@ if_stat_level_more_than AI_USER, STAT_SPATK, 7, Score_Plus2 -@ if_stat_level_more_than AI_USER, STAT_SPATK, 6, Score_Plus1 +@ if_stat_level_more_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE + 2, Score_Plus3 +@ if_stat_level_more_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE + 1, Score_Plus2 +@ if_stat_level_more_than AI_USER, STAT_ATK, DEFAULT_STAT_STAGE, Score_Plus1 +@ if_stat_level_more_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE + 2, Score_Plus3 +@ if_stat_level_more_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE + 1, Score_Plus2 +@ if_stat_level_more_than AI_USER, STAT_SPATK, DEFAULT_STAT_STAGE, Score_Plus1 @ end AI_PreferBatonPass_End: From c84e52633c96074165adfff0c8986f70e8b0c5a0 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sun, 30 Jul 2023 20:44:23 +0530 Subject: [PATCH 05/38] Matched documentation of data/battle_scripts_2.s with pokeemerald --- data/battle_scripts_2.s | 110 ++++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 6f41e3ce13..eb2257005b 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -19,80 +19,80 @@ .align 2 gBattlescriptsForBallThrow:: - .4byte BattleScript_ThrowBall - .4byte BattleScript_ThrowBall - .4byte BattleScript_ThrowBall - .4byte BattleScript_ThrowBall - .4byte BattleScript_ThrowBall - .4byte BattleScript_ThrowSafariBall - .4byte BattleScript_ThrowBall - .4byte BattleScript_ThrowBall - .4byte BattleScript_ThrowBall - .4byte BattleScript_ThrowBall - .4byte BattleScript_ThrowBall - .4byte BattleScript_ThrowBall - .4byte BattleScript_ThrowBall + .4byte BattleScript_BallThrow @ ITEM_NONE + .4byte BattleScript_BallThrow @ ITEM_MASTER_BALL + .4byte BattleScript_BallThrow @ ITEM_ULTRA_BALL + .4byte BattleScript_BallThrow @ ITEM_GREAT_BALL + .4byte BattleScript_BallThrow @ ITEM_POKE_BALL + .4byte BattleScript_SafariBallThrow @ ITEM_SAFARI_BALL + .4byte BattleScript_BallThrow @ ITEM_NET_BALL + .4byte BattleScript_BallThrow @ ITEM_DIVE_BALL + .4byte BattleScript_BallThrow @ ITEM_NEST_BALL + .4byte BattleScript_BallThrow @ ITEM_REPEAT_BALL + .4byte BattleScript_BallThrow @ ITEM_TIMER_BALL + .4byte BattleScript_BallThrow @ ITEM_LUXURY_BALL + .4byte BattleScript_BallThrow @ ITEM_PREMIER_BALL gBattlescriptsForUsingItem:: - .4byte BattleScript_PlayerUseItem - .4byte BattleScript_AIUseFullRestoreOrHpHeal - .4byte BattleScript_AIUseFullRestoreOrHpHeal - .4byte BattleScript_AIUseStatRestore - .4byte BattleScript_AIUseXstat - .4byte BattleScript_AIUseGuardSpec + .4byte BattleScript_PlayerUsesItem + .4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_FULL_RESTORE + .4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_HEAL_HP + .4byte BattleScript_OpponentUsesStatusCureItem @ AI_ITEM_CURE_CONDITION + .4byte BattleScript_OpponentUsesXItem @ AI_ITEM_X_STAT + .4byte BattleScript_OpponentUsesGuardSpec @ AI_ITEM_GUARD_SPEC gBattlescriptsForRunningByItem:: .4byte BattleScript_UseFluffyTail .4byte BattleScript_UsePokeFlute gBattlescriptsForSafariActions:: - .4byte BattleScript_WatchesCarefully - .4byte BattleScript_ThrowRock - .4byte BattleScript_ThrowBait - .4byte BattleScript_LeftoverWallyPrepToThrow - -BattleScript_ThrowBall:: - jumpifbattletype BATTLE_TYPE_OLD_MAN_TUTORIAL, BattleScript_OldManThrowBall - jumpifbattletype BATTLE_TYPE_POKEDUDE, BattleScript_PokedudeThrowBall + .4byte BattleScript_ActionWatchesCarefully + .4byte BattleScript_ActionThrowRock + .4byte BattleScript_ActionThrowBait + .4byte BattleScript_ActionWatchesCarefullyLeftoverWallyPrepToThrow + +BattleScript_BallThrow:: + jumpifbattletype BATTLE_TYPE_OLD_MAN_TUTORIAL, BattleScript_BallThrowByOldMan + jumpifbattletype BATTLE_TYPE_POKEDUDE, BattleScript_BallThrowByPokedude printstring STRINGID_PLAYERUSEDITEM handleballthrow -BattleScript_OldManThrowBall:: +BattleScript_BallThrowByOldMan:: printstring STRINGID_OLDMANUSEDITEM handleballthrow -BattleScript_PokedudeThrowBall:: +BattleScript_BallThrowByPokedude:: printstring STRINGID_POKEDUDEUSED handleballthrow -BattleScript_ThrowSafariBall:: +BattleScript_SafariBallThrow:: printstring STRINGID_PLAYERUSEDITEM updatestatusicon BS_ATTACKER handleballthrow BattleScript_SuccessBallThrow:: - jumpifhalfword CMP_EQUAL, gLastUsedItem, ITEM_SAFARI_BALL, BattleScript_SafariNoIncGameStat + jumpifhalfword CMP_EQUAL, gLastUsedItem, ITEM_SAFARI_BALL, BattleScript_PrintCaughtMonInfo incrementgamestat GAME_STAT_POKEMON_CAPTURES -BattleScript_SafariNoIncGameStat:: +BattleScript_PrintCaughtMonInfo:: printstring STRINGID_GOTCHAPKMNCAUGHT - trysetcaughtmondexflags BattleScript_CaughtPokemonSkipNewDex + trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon printstring STRINGID_PKMNDATAADDEDTODEX waitstate setbyte gBattleCommunication, 0 displaydexinfo -BattleScript_CaughtPokemonSkipNewDex:: +BattleScript_TryNicknameCaughtMon:: printstring STRINGID_GIVENICKNAMECAPTURED waitstate setbyte gBattleCommunication, 0 - trygivecaughtmonnick BattleScript_CaughtPokemonSkipNickname + trygivecaughtmonnick BattleScript_GiveCaughtMonEnd givecaughtmon printfromtable gCaughtMonStringIds waitmessage B_WAIT_TIME_LONG - goto BattleScript_CaughtPokemonDone + goto BattleScript_SuccessBallThrowEnd -BattleScript_CaughtPokemonSkipNickname:: +BattleScript_GiveCaughtMonEnd:: givecaughtmon -BattleScript_CaughtPokemonDone:: +BattleScript_SuccessBallThrowEnd:: setbyte gBattleOutcome, B_OUTCOME_CAUGHT finishturn @@ -105,12 +105,12 @@ BattleScript_OldMan_Pokedude_CaughtMessage:: BattleScript_ShakeBallThrow:: printfromtable gBallEscapeStringIds waitmessage B_WAIT_TIME_LONG - jumpifnotbattletype BATTLE_TYPE_SAFARI, BattleScript_CatchFailEnd - jumpifbyte CMP_NOT_EQUAL, gNumSafariBalls, 0, BattleScript_CatchFailEnd + jumpifnotbattletype BATTLE_TYPE_SAFARI, BattleScript_ShakeBallThrowEnd + jumpifbyte CMP_NOT_EQUAL, gNumSafariBalls, 0, BattleScript_ShakeBallThrowEnd printstring STRINGID_OUTOFSAFARIBALLS waitmessage B_WAIT_TIME_LONG setbyte gBattleOutcome, B_OUTCOME_NO_SAFARI_BALLS -BattleScript_CatchFailEnd:: +BattleScript_ShakeBallThrowEnd:: finishaction BattleScript_TrainerBallBlock:: @@ -127,11 +127,11 @@ BattleScript_GhostBallDodge:: waitmessage B_WAIT_TIME_LONG finishaction -BattleScript_PlayerUseItem:: - moveendcase 15 +BattleScript_PlayerUsesItem:: + moveendcase MOVEEND_MIRROR_MOVE end -BattleScript_AIUseFullRestoreOrHpHeal:: +BattleScript_OpponentUsesHealItem:: printstring STRINGID_EMPTYSTRING3 pause B_WAIT_TIME_MED playse SE_USE_ITEM @@ -144,10 +144,10 @@ BattleScript_AIUseFullRestoreOrHpHeal:: printstring STRINGID_PKMNSITEMRESTOREDHEALTH waitmessage B_WAIT_TIME_LONG updatestatusicon BS_ATTACKER - moveendcase 15 + moveendcase MOVEEND_MIRROR_MOVE finishaction -BattleScript_AIUseStatRestore:: +BattleScript_OpponentUsesStatusCureItem:: printstring STRINGID_EMPTYSTRING3 pause B_WAIT_TIME_MED playse SE_USE_ITEM @@ -157,10 +157,10 @@ BattleScript_AIUseStatRestore:: printfromtable gTrainerItemCuredStatusStringIds waitmessage B_WAIT_TIME_LONG updatestatusicon BS_ATTACKER - moveendcase 15 + moveendcase MOVEEND_MIRROR_MOVE finishaction -BattleScript_AIUseXstat:: +BattleScript_OpponentUsesXItem:: printstring STRINGID_EMPTYSTRING3 pause B_WAIT_TIME_MED playse SE_USE_ITEM @@ -169,10 +169,10 @@ BattleScript_AIUseXstat:: useitemonopponent printfromtable gStatUpStringIds waitmessage B_WAIT_TIME_LONG - moveendcase 15 + moveendcase MOVEEND_MIRROR_MOVE finishaction -BattleScript_AIUseGuardSpec:: +BattleScript_OpponentUsesGuardSpec:: printstring STRINGID_EMPTYSTRING3 pause B_WAIT_TIME_MED playse SE_USE_ITEM @@ -181,7 +181,7 @@ BattleScript_AIUseGuardSpec:: useitemonopponent printfromtable gMistUsedStringIds waitmessage B_WAIT_TIME_LONG - moveendcase 15 + moveendcase MOVEEND_MIRROR_MOVE finishaction BattleScript_UseFluffyTail:: @@ -208,25 +208,25 @@ BattleScript_PokeFluteWakeUp:: BattleScript_PokeFluteEnd:: finishaction -BattleScript_WatchesCarefully:: +BattleScript_ActionWatchesCarefully:: printfromtable gSafariReactionStringIds waitmessage B_WAIT_TIME_LONG playanimation BS_OPPONENT1, B_ANIM_SAFARI_REACTION end2 -BattleScript_ThrowRock:: +BattleScript_ActionThrowRock:: printstring STRINGID_THREWROCK waitmessage B_WAIT_TIME_LONG playanimation BS_ATTACKER, B_ANIM_ROCK_THROW end2 -BattleScript_ThrowBait:: +BattleScript_ActionThrowBait:: printstring STRINGID_THREWBAIT waitmessage B_WAIT_TIME_LONG playanimation BS_ATTACKER, B_ANIM_BAIT_THROW end2 -BattleScript_LeftoverWallyPrepToThrow:: +BattleScript_ActionWatchesCarefullyLeftoverWallyPrepToThrow:: printstring STRINGID_RETURNMON waitmessage B_WAIT_TIME_LONG returnatktoball From 99e7db9ee67f19299d53f71b53b9e1895504124a Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sun, 30 Jul 2023 22:17:55 +0530 Subject: [PATCH 06/38] Add commented out numbers for mystery_event_script_cmd_table.s --- data/mystery_event_script_cmd_table.s | 34 +++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/data/mystery_event_script_cmd_table.s b/data/mystery_event_script_cmd_table.s index e22d84f086..d0ab80c5cc 100644 --- a/data/mystery_event_script_cmd_table.s +++ b/data/mystery_event_script_cmd_table.s @@ -2,21 +2,21 @@ .align 2 gMysteryEventScriptCmdTable:: - .4byte MEScrCmd_nop - .4byte MEScrCmd_checkcompat - .4byte MEScrCmd_end - .4byte MEScrCmd_setmsg - .4byte MEScrCmd_setstatus - .4byte MEScrCmd_runscript - .4byte MEScrCmd_initramscript - .4byte MEScrCmd_setenigmaberry - .4byte MEScrCmd_giveribbon - .4byte MEScrCmd_givenationaldex - .4byte MEScrCmd_addrareword - .4byte MEScrCmd_setrecordmixinggift - .4byte MEScrCmd_givepokemon - .4byte MEScrCmd_addtrainer - .4byte MEScrCmd_enableresetrtc - .4byte MEScrCmd_checksum - .4byte MEScrCmd_crc + .4byte MEScrCmd_nop @ 0x00 + .4byte MEScrCmd_checkcompat @ 0x01 + .4byte MEScrCmd_end @ 0x02 + .4byte MEScrCmd_setmsg @ 0x03 + .4byte MEScrCmd_setstatus @ 0x04 + .4byte MEScrCmd_runscript @ 0x05 + .4byte MEScrCmd_initramscript @ 0x06 + .4byte MEScrCmd_setenigmaberry @ 0x07 + .4byte MEScrCmd_giveribbon @ 0x08 + .4byte MEScrCmd_givenationaldex @ 0x09 + .4byte MEScrCmd_addrareword @ 0x0a + .4byte MEScrCmd_setrecordmixinggift @ 0x0b + .4byte MEScrCmd_givepokemon @ 0x0c + .4byte MEScrCmd_addtrainer @ 0x0d + .4byte MEScrCmd_enableresetrtc @ 0x0e + .4byte MEScrCmd_checksum @ 0x0f + .4byte MEScrCmd_crc @ 0x10 gMysteryEventScriptCmdTableEnd:: From 576b96354a93dab1e66e53942feb7c1104f20715 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sun, 30 Jul 2023 22:23:13 +0530 Subject: [PATCH 07/38] Documented and formated include/constants/battle_ai.h --- include/constants/battle_ai.h | 44 +++++++++++++++++------------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h index 680e76ad1a..b581510c08 100644 --- a/include/constants/battle_ai.h +++ b/include/constants/battle_ai.h @@ -2,17 +2,17 @@ #define GUARD_CONSTANTS_BATTLE_AI_H // battlers -#define AI_TARGET 0 -#define AI_USER 1 -#define AI_TARGET_PARTNER 2 -#define AI_USER_PARTNER 3 +#define AI_TARGET 0 +#define AI_USER 1 +#define AI_TARGET_PARTNER 2 +#define AI_USER_PARTNER 3 // get_type command -#define AI_TYPE1_TARGET 0 -#define AI_TYPE1_USER 1 -#define AI_TYPE2_TARGET 2 -#define AI_TYPE2_USER 3 -#define AI_TYPE_MOVE 4 +#define AI_TYPE1_TARGET 0 +#define AI_TYPE1_USER 1 +#define AI_TYPE2_TARGET 2 +#define AI_TYPE2_USER 3 +#define AI_TYPE_MOVE 4 // type effectiveness #define AI_EFFECTIVENESS_x4 160 @@ -34,19 +34,19 @@ #define MOVE_MOST_POWERFUL 2 // script's table id to bit -#define AI_SCRIPT_CHECK_BAD_MOVE (1 << 0) -#define AI_SCRIPT_CHECK_VIABILITY (1 << 1) -#define AI_SCRIPT_TRY_TO_FAINT (1 << 2) -#define AI_SCRIPT_SETUP_FIRST_TURN (1 << 3) -#define AI_SCRIPT_RISKY (1 << 4) -#define AI_SCRIPT_PREFER_STRONGEST_MOVE (1 << 5) -#define AI_SCRIPT_PREFER_BATON_PASS (1 << 6) -#define AI_SCRIPT_DOUBLE_BATTLE (1 << 7) -#define AI_SCRIPT_HP_AWARE (1 << 8) -#define AI_SCRIPT_UNKNOWN (1 << 9) +#define AI_SCRIPT_CHECK_BAD_MOVE (1 << 0) +#define AI_SCRIPT_CHECK_VIABILITY (1 << 1) +#define AI_SCRIPT_TRY_TO_FAINT (1 << 2) +#define AI_SCRIPT_SETUP_FIRST_TURN (1 << 3) +#define AI_SCRIPT_RISKY (1 << 4) +#define AI_SCRIPT_PREFER_POWER_EXTREMES (1 << 5) +#define AI_SCRIPT_PREFER_BATON_PASS (1 << 6) +#define AI_SCRIPT_DOUBLE_BATTLE (1 << 7) +#define AI_SCRIPT_HP_AWARE (1 << 8) +#define AI_SCRIPT_TRY_SUNNY_DAY_START (1 << 9) // 10 - 28 are not used -#define AI_SCRIPT_ROAMING (1 << 29) -#define AI_SCRIPT_SAFARI (1 << 30) -#define AI_SCRIPT_FIRST_BATTLE (1 << 31) +#define AI_SCRIPT_ROAMING (1 << 29) +#define AI_SCRIPT_SAFARI (1 << 30) +#define AI_SCRIPT_FIRST_BATTLE (1 << 31) #endif // GUARD_CONSTANTS_BATTLE_AI_H From c5c41871b3054494733691e053658dccd1ba9125 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sun, 30 Jul 2023 22:29:25 +0530 Subject: [PATCH 08/38] Minor readability improvements to include/constants/battle_script_commands.h --- include/constants/battle_script_commands.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 3dac1f74e1..4c22a6bc8c 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -67,12 +67,12 @@ #define ACC_CURR_MOVE 0 // compare operands -#define CMP_EQUAL 0x0 -#define CMP_NOT_EQUAL 0x1 -#define CMP_GREATER_THAN 0x2 -#define CMP_LESS_THAN 0x3 -#define CMP_COMMON_BITS 0x4 -#define CMP_NO_COMMON_BITS 0x5 +#define CMP_EQUAL 0 +#define CMP_NOT_EQUAL 1 +#define CMP_GREATER_THAN 2 +#define CMP_LESS_THAN 3 +#define CMP_COMMON_BITS 4 +#define CMP_NO_COMMON_BITS 5 // TODO: documentation // atk76, various From 9326cd430441bd3aee968c07df064a09a45fc330 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sun, 30 Jul 2023 22:37:31 +0530 Subject: [PATCH 09/38] Formated include/constants/battle_string_ids.h a bit better --- include/constants/battle_string_ids.h | 752 +++++++++++++------------- 1 file changed, 376 insertions(+), 376 deletions(-) diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 24cc01ca6a..3b8d5bd9a2 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -10,382 +10,382 @@ // todo: make some of those names less vague: attacker/target vs pkmn, etc. -#define STRINGID_TRAINER1LOSETEXT 12 -#define STRINGID_PKMNGAINEDEXP 13 -#define STRINGID_PKMNGREWTOLV 14 -#define STRINGID_PKMNLEARNEDMOVE 15 -#define STRINGID_TRYTOLEARNMOVE1 16 -#define STRINGID_TRYTOLEARNMOVE2 17 -#define STRINGID_TRYTOLEARNMOVE3 18 -#define STRINGID_PKMNFORGOTMOVE 19 -#define STRINGID_STOPLEARNINGMOVE 20 -#define STRINGID_DIDNOTLEARNMOVE 21 -#define STRINGID_PKMNLEARNEDMOVE2 22 -#define STRINGID_ATTACKMISSED 23 -#define STRINGID_PKMNPROTECTEDITSELF 24 -#define STRINGID_STATSWONTINCREASE2 25 -#define STRINGID_AVOIDEDDAMAGE 26 -#define STRINGID_ITDOESNTAFFECT 27 -#define STRINGID_ATTACKERFAINTED 28 -#define STRINGID_TARGETFAINTED 29 -#define STRINGID_PLAYERGOTMONEY 30 -#define STRINGID_PLAYERWHITEOUT 31 -#define STRINGID_PLAYERWHITEOUT2 32 -#define STRINGID_PREVENTSESCAPE 33 -#define STRINGID_HITXTIMES 34 -#define STRINGID_PKMNFELLASLEEP 35 -#define STRINGID_PKMNMADESLEEP 36 -#define STRINGID_PKMNALREADYASLEEP 37 -#define STRINGID_PKMNALREADYASLEEP2 38 -#define STRINGID_PKMNWASNTAFFECTED 39 -#define STRINGID_PKMNWASPOISONED 40 -#define STRINGID_PKMNPOISONEDBY 41 -#define STRINGID_PKMNHURTBYPOISON 42 -#define STRINGID_PKMNALREADYPOISONED 43 -#define STRINGID_PKMNBADLYPOISONED 44 -#define STRINGID_PKMNENERGYDRAINED 45 -#define STRINGID_PKMNWASBURNED 46 -#define STRINGID_PKMNBURNEDBY 47 -#define STRINGID_PKMNHURTBYBURN 48 -#define STRINGID_PKMNWASFROZEN 49 -#define STRINGID_PKMNFROZENBY 50 -#define STRINGID_PKMNISFROZEN 51 -#define STRINGID_PKMNWASDEFROSTED 52 -#define STRINGID_PKMNWASDEFROSTED2 53 -#define STRINGID_PKMNWASDEFROSTEDBY 54 -#define STRINGID_PKMNWASPARALYZED 55 -#define STRINGID_PKMNWASPARALYZEDBY 56 -#define STRINGID_PKMNISPARALYZED 57 -#define STRINGID_PKMNISALREADYPARALYZED 58 -#define STRINGID_PKMNHEALEDPARALYSIS 59 -#define STRINGID_PKMNDREAMEATEN 60 -#define STRINGID_STATSWONTINCREASE 61 -#define STRINGID_STATSWONTDECREASE 62 -#define STRINGID_TEAMSTOPPEDWORKING 63 -#define STRINGID_FOESTOPPEDWORKING 64 -#define STRINGID_PKMNISCONFUSED 65 -#define STRINGID_PKMNHEALEDCONFUSION 66 -#define STRINGID_PKMNWASCONFUSED 67 -#define STRINGID_PKMNALREADYCONFUSED 68 -#define STRINGID_PKMNFELLINLOVE 69 -#define STRINGID_PKMNINLOVE 70 -#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71 -#define STRINGID_PKMNBLOWNAWAY 72 -#define STRINGID_PKMNCHANGEDTYPE 73 -#define STRINGID_PKMNFLINCHED 74 -#define STRINGID_PKMNREGAINEDHEALTH 75 -#define STRINGID_PKMNHPFULL 76 -#define STRINGID_PKMNRAISEDSPDEF 77 -#define STRINGID_PKMNRAISEDDEF 78 -#define STRINGID_PKMNCOVEREDBYVEIL 79 -#define STRINGID_PKMNUSEDSAFEGUARD 80 -#define STRINGID_PKMNSAFEGUARDEXPIRED 81 -#define STRINGID_PKMNWENTTOSLEEP 82 -#define STRINGID_PKMNSLEPTHEALTHY 83 -#define STRINGID_PKMNWHIPPEDWHIRLWIND 84 -#define STRINGID_PKMNTOOKSUNLIGHT 85 -#define STRINGID_PKMNLOWEREDHEAD 86 -#define STRINGID_PKMNISGLOWING 87 -#define STRINGID_PKMNFLEWHIGH 88 -#define STRINGID_PKMNDUGHOLE 89 -#define STRINGID_PKMNSQUEEZEDBYBIND 90 -#define STRINGID_PKMNTRAPPEDINVORTEX 91 -#define STRINGID_PKMNWRAPPEDBY 92 -#define STRINGID_PKMNCLAMPED 93 -#define STRINGID_PKMNHURTBY 94 -#define STRINGID_PKMNFREEDFROM 95 -#define STRINGID_PKMNCRASHED 96 -#define STRINGID_PKMNSHROUDEDINMIST 97 -#define STRINGID_PKMNPROTECTEDBYMIST 98 -#define STRINGID_PKMNGETTINGPUMPED 99 -#define STRINGID_PKMNHITWITHRECOIL 100 -#define STRINGID_PKMNPROTECTEDITSELF2 101 -#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102 -#define STRINGID_PKMNPELTEDBYHAIL 103 -#define STRINGID_PKMNSEEDED 104 -#define STRINGID_PKMNEVADEDATTACK 105 -#define STRINGID_PKMNSAPPEDBYLEECHSEED 106 -#define STRINGID_PKMNFASTASLEEP 107 -#define STRINGID_PKMNWOKEUP 108 -#define STRINGID_PKMNUPROARKEPTAWAKE 109 -#define STRINGID_PKMNWOKEUPINUPROAR 110 -#define STRINGID_PKMNCAUSEDUPROAR 111 -#define STRINGID_PKMNMAKINGUPROAR 112 -#define STRINGID_PKMNCALMEDDOWN 113 -#define STRINGID_PKMNCANTSLEEPINUPROAR 114 -#define STRINGID_PKMNSTOCKPILED 115 -#define STRINGID_PKMNCANTSTOCKPILE 116 -#define STRINGID_PKMNCANTSLEEPINUPROAR2 117 -#define STRINGID_UPROARKEPTPKMNAWAKE 118 -#define STRINGID_PKMNSTAYEDAWAKEUSING 119 -#define STRINGID_PKMNSTORINGENERGY 120 -#define STRINGID_PKMNUNLEASHEDENERGY 121 -#define STRINGID_PKMNFATIGUECONFUSION 122 -#define STRINGID_PLAYERPICKEDUPMONEY 123 -#define STRINGID_PKMNUNAFFECTED 124 -#define STRINGID_PKMNTRANSFORMEDINTO 125 -#define STRINGID_PKMNMADESUBSTITUTE 126 -#define STRINGID_PKMNHASSUBSTITUTE 127 -#define STRINGID_SUBSTITUTEDAMAGED 128 -#define STRINGID_PKMNSUBSTITUTEFADED 129 -#define STRINGID_PKMNMUSTRECHARGE 130 -#define STRINGID_PKMNRAGEBUILDING 131 -#define STRINGID_PKMNMOVEWASDISABLED 132 -#define STRINGID_PKMNMOVEISDISABLED 133 -#define STRINGID_PKMNMOVEDISABLEDNOMORE 134 -#define STRINGID_PKMNGOTENCORE 135 -#define STRINGID_PKMNENCOREENDED 136 -#define STRINGID_PKMNTOOKAIM 137 -#define STRINGID_PKMNSKETCHEDMOVE 138 -#define STRINGID_PKMNTRYINGTOTAKEFOE 139 -#define STRINGID_PKMNTOOKFOE 140 -#define STRINGID_PKMNREDUCEDPP 141 -#define STRINGID_PKMNSTOLEITEM 142 -#define STRINGID_TARGETCANTESCAPENOW 143 -#define STRINGID_PKMNFELLINTONIGHTMARE 144 -#define STRINGID_PKMNLOCKEDINNIGHTMARE 145 -#define STRINGID_PKMNLAIDCURSE 146 -#define STRINGID_PKMNAFFLICTEDBYCURSE 147 -#define STRINGID_SPIKESSCATTERED 148 -#define STRINGID_PKMNHURTBYSPIKES 149 -#define STRINGID_PKMNIDENTIFIED 150 -#define STRINGID_PKMNPERISHCOUNTFELL 151 -#define STRINGID_PKMNBRACEDITSELF 152 -#define STRINGID_PKMNENDUREDHIT 153 -#define STRINGID_MAGNITUDESTRENGTH 154 -#define STRINGID_PKMNCUTHPMAXEDATTACK 155 -#define STRINGID_PKMNCOPIEDSTATCHANGES 156 -#define STRINGID_PKMNGOTFREE 157 -#define STRINGID_PKMNSHEDLEECHSEED 158 -#define STRINGID_PKMNBLEWAWAYSPIKES 159 -#define STRINGID_PKMNFLEDFROMBATTLE 160 -#define STRINGID_PKMNFORESAWATTACK 161 -#define STRINGID_PKMNTOOKATTACK 162 -#define STRINGID_PKMNATTACK 163 -#define STRINGID_PKMNCENTERATTENTION 164 -#define STRINGID_PKMNCHARGINGPOWER 165 -#define STRINGID_NATUREPOWERTURNEDINTO 166 -#define STRINGID_PKMNSTATUSNORMAL 167 -#define STRINGID_PKMNHASNOMOVESLEFT 168 -#define STRINGID_PKMNSUBJECTEDTOTORMENT 169 -#define STRINGID_PKMNCANTUSEMOVETORMENT 170 -#define STRINGID_PKMNTIGHTENINGFOCUS 171 -#define STRINGID_PKMNFELLFORTAUNT 172 -#define STRINGID_PKMNCANTUSEMOVETAUNT 173 -#define STRINGID_PKMNREADYTOHELP 174 -#define STRINGID_PKMNSWITCHEDITEMS 175 -#define STRINGID_PKMNCOPIEDFOE 176 -#define STRINGID_PKMNMADEWISH 177 -#define STRINGID_PKMNWISHCAMETRUE 178 -#define STRINGID_PKMNPLANTEDROOTS 179 -#define STRINGID_PKMNABSORBEDNUTRIENTS 180 -#define STRINGID_PKMNANCHOREDITSELF 181 -#define STRINGID_PKMNWASMADEDROWSY 182 -#define STRINGID_PKMNKNOCKEDOFF 183 -#define STRINGID_PKMNSWAPPEDABILITIES 184 -#define STRINGID_PKMNSEALEDOPPONENTMOVE 185 -#define STRINGID_PKMNCANTUSEMOVESEALED 186 -#define STRINGID_PKMNWANTSGRUDGE 187 -#define STRINGID_PKMNLOSTPPGRUDGE 188 -#define STRINGID_PKMNSHROUDEDITSELF 189 -#define STRINGID_PKMNMOVEBOUNCED 190 -#define STRINGID_PKMNWAITSFORTARGET 191 -#define STRINGID_PKMNSNATCHEDMOVE 192 -#define STRINGID_PKMNMADEITRAIN 193 -#define STRINGID_PKMNRAISEDSPEED 194 -#define STRINGID_PKMNPROTECTEDBY 195 -#define STRINGID_PKMNPREVENTSUSAGE 196 -#define STRINGID_PKMNRESTOREDHPUSING 197 -#define STRINGID_PKMNCHANGEDTYPEWITH 198 -#define STRINGID_PKMNPREVENTSPARALYSISWITH 199 -#define STRINGID_PKMNPREVENTSROMANCEWITH 200 -#define STRINGID_PKMNPREVENTSPOISONINGWITH 201 -#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202 -#define STRINGID_PKMNRAISEDFIREPOWERWITH 203 -#define STRINGID_PKMNANCHORSITSELFWITH 204 -#define STRINGID_PKMNCUTSATTACKWITH 205 -#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206 -#define STRINGID_PKMNHURTSWITH 207 -#define STRINGID_PKMNTRACED 208 -#define STRINGID_STATSHARPLY 209 -#define STRINGID_STATROSE 210 -#define STRINGID_STATHARSHLY 211 -#define STRINGID_STATFELL 212 -#define STRINGID_ATTACKERSSTATROSE 213 -#define STRINGID_DEFENDERSSTATROSE 214 -#define STRINGID_ATTACKERSSTATFELL 215 -#define STRINGID_DEFENDERSSTATFELL 216 -#define STRINGID_CRITICALHIT 217 -#define STRINGID_ONEHITKO 218 -#define STRINGID_123POOF 219 -#define STRINGID_ANDELLIPSIS 220 -#define STRINGID_NOTVERYEFFECTIVE 221 -#define STRINGID_SUPEREFFECTIVE 222 -#define STRINGID_GOTAWAYSAFELY 223 -#define STRINGID_WILDPKMNFLED 224 -#define STRINGID_NORUNNINGFROMTRAINERS 225 -#define STRINGID_CANTESCAPE 226 -#define STRINGID_DONTLEAVEBIRCH 227 -#define STRINGID_BUTNOTHINGHAPPENED 228 -#define STRINGID_BUTITFAILED 229 -#define STRINGID_ITHURTCONFUSION 230 -#define STRINGID_MIRRORMOVEFAILED 231 -#define STRINGID_STARTEDTORAIN 232 -#define STRINGID_DOWNPOURSTARTED 233 -#define STRINGID_RAINCONTINUES 234 -#define STRINGID_DOWNPOURCONTINUES 235 -#define STRINGID_RAINSTOPPED 236 -#define STRINGID_SANDSTORMBREWED 237 -#define STRINGID_SANDSTORMRAGES 238 -#define STRINGID_SANDSTORMSUBSIDED 239 -#define STRINGID_SUNLIGHTGOTBRIGHT 240 -#define STRINGID_SUNLIGHTSTRONG 241 -#define STRINGID_SUNLIGHTFADED 242 -#define STRINGID_STARTEDHAIL 243 -#define STRINGID_HAILCONTINUES 244 -#define STRINGID_HAILSTOPPED 245 -#define STRINGID_FAILEDTOSPITUP 246 -#define STRINGID_FAILEDTOSWALLOW 247 -#define STRINGID_WINDBECAMEHEATWAVE 248 -#define STRINGID_STATCHANGESGONE 249 -#define STRINGID_COINSSCATTERED 250 -#define STRINGID_TOOWEAKFORSUBSTITUTE 251 -#define STRINGID_SHAREDPAIN 252 -#define STRINGID_BELLCHIMED 253 -#define STRINGID_FAINTINTHREE 254 -#define STRINGID_NOPPLEFT 255 -#define STRINGID_BUTNOPPLEFT 256 -#define STRINGID_PLAYERUSEDITEM 257 -#define STRINGID_OLDMANUSEDITEM 258 -#define STRINGID_TRAINERBLOCKEDBALL 259 -#define STRINGID_DONTBEATHIEF 260 -#define STRINGID_ITDODGEDBALL 261 -#define STRINGID_YOUMISSEDPKMN 262 -#define STRINGID_PKMNBROKEFREE 263 -#define STRINGID_ITAPPEAREDCAUGHT 264 -#define STRINGID_AARGHALMOSTHADIT 265 -#define STRINGID_SHOOTSOCLOSE 266 -#define STRINGID_GOTCHAPKMNCAUGHT 267 -#define STRINGID_GOTCHAPKMNCAUGHT2 268 -#define STRINGID_GIVENICKNAMECAPTURED 269 -#define STRINGID_PKMNSENTTOPC 270 -#define STRINGID_PKMNDATAADDEDTODEX 271 -#define STRINGID_ITISRAINING 272 -#define STRINGID_SANDSTORMISRAGING 273 -#define STRINGID_CANTESCAPE2 274 -#define STRINGID_PKMNIGNORESASLEEP 275 -#define STRINGID_PKMNIGNOREDORDERS 276 -#define STRINGID_PKMNBEGANTONAP 277 -#define STRINGID_PKMNLOAFING 278 -#define STRINGID_PKMNWONTOBEY 279 -#define STRINGID_PKMNTURNEDAWAY 280 -#define STRINGID_PKMNPRETENDNOTNOTICE 281 -#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282 -#define STRINGID_THREWROCK 283 -#define STRINGID_THREWBAIT 284 -#define STRINGID_PKMNWATCHINGCAREFULLY 285 -#define STRINGID_PKMNANGRY 286 -#define STRINGID_PKMNEATING 287 -#define STRINGID_DUMMY288 288 -#define STRINGID_DUMMY289 289 -#define STRINGID_OUTOFSAFARIBALLS 290 -#define STRINGID_PKMNSITEMCUREDPARALYSIS 291 -#define STRINGID_PKMNSITEMCUREDPOISON 292 -#define STRINGID_PKMNSITEMHEALEDBURN 293 -#define STRINGID_PKMNSITEMDEFROSTEDIT 294 -#define STRINGID_PKMNSITEMWOKEIT 295 -#define STRINGID_PKMNSITEMSNAPPEDOUT 296 -#define STRINGID_PKMNSITEMCUREDPROBLEM 297 -#define STRINGID_PKMNSITEMRESTOREDHEALTH 298 -#define STRINGID_PKMNSITEMRESTOREDPP 299 -#define STRINGID_PKMNSITEMRESTOREDSTATUS 300 -#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301 -#define STRINGID_ITEMALLOWSONLYYMOVE 302 -#define STRINGID_PKMNHUNGONWITHX 303 -#define STRINGID_EMPTYSTRING3 304 -#define STRINGID_PKMNSXPREVENTSBURNS 305 -#define STRINGID_PKMNSXBLOCKSY 306 -#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307 -#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308 -#define STRINGID_PKMNSXPREVENTSYLOSS 309 -#define STRINGID_PKMNSXINFATUATEDY 310 -#define STRINGID_PKMNSXMADEYINEFFECTIVE 311 -#define STRINGID_PKMNSXCUREDYPROBLEM 312 -#define STRINGID_ITSUCKEDLIQUIDOOZE 313 -#define STRINGID_PKMNTRANSFORMED 314 -#define STRINGID_ELECTRICITYWEAKENED 315 -#define STRINGID_FIREWEAKENED 316 -#define STRINGID_PKMNHIDUNDERWATER 317 -#define STRINGID_PKMNSPRANGUP 318 -#define STRINGID_HMMOVESCANTBEFORGOTTEN 319 -#define STRINGID_XFOUNDONEY 320 -#define STRINGID_PLAYERDEFEATEDTRAINER1 321 -#define STRINGID_SOOTHINGAROMA 322 -#define STRINGID_ITEMSCANTBEUSEDNOW 323 -#define STRINGID_FORXCOMMAYZ 324 -#define STRINGID_USINGITEMSTATOFPKMNROSE 325 -#define STRINGID_PKMNUSEDXTOGETPUMPED 326 -#define STRINGID_PKMNSXMADEYUSELESS 327 -#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328 -#define STRINGID_EMPTYSTRING4 329 -#define STRINGID_ABOOSTED 330 -#define STRINGID_PKMNSXINTENSIFIEDSUN 331 -#define STRINGID_PKMNMAKESGROUNDMISS 332 -#define STRINGID_YOUTHROWABALLNOWRIGHT 333 -#define STRINGID_PKMNSXTOOKATTACK 334 -#define STRINGID_PKMNCHOSEXASDESTINY 335 -#define STRINGID_PKMNLOSTFOCUS 336 -#define STRINGID_USENEXTPKMN 337 -#define STRINGID_PKMNFLEDUSINGITS 338 -#define STRINGID_PKMNFLEDUSING 339 -#define STRINGID_PKMNWASDRAGGEDOUT 340 -#define STRINGID_PREVENTEDFROMWORKING 341 -#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342 -#define STRINGID_TRAINER1USEDITEM 343 -#define STRINGID_BOXISFULL 344 -#define STRINGID_PKMNAVOIDEDATTACK 345 -#define STRINGID_PKMNSXMADEITINEFFECTIVE 346 -#define STRINGID_PKMNSXPREVENTSFLINCHING 347 -#define STRINGID_PKMNALREADYHASBURN 348 -#define STRINGID_STATSWONTDECREASE2 349 -#define STRINGID_PKMNSXBLOCKSY2 350 -#define STRINGID_PKMNSXWOREOFF 351 -#define STRINGID_PKMNRAISEDDEFALITTLE 352 -#define STRINGID_PKMNRAISEDSPDEFALITTLE 353 -#define STRINGID_THEWALLSHATTERED 354 -#define STRINGID_PKMNSXPREVENTSYSZ 355 -#define STRINGID_PKMNSXCUREDITSYPROBLEM 356 -#define STRINGID_ATTACKERCANTESCAPE 357 -#define STRINGID_PKMNOBTAINEDX 358 -#define STRINGID_PKMNOBTAINEDX2 359 -#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360 -#define STRINGID_BUTNOEFFECT 361 -#define STRINGID_PKMNSXHADNOEFFECTONY 362 -#define STRINGID_OAKPLAYERWON 363 -#define STRINGID_OAKPLAYERLOST 364 -#define STRINGID_PLAYERLOSTAGAINSTENEMYTRAINER 365 -#define STRINGID_PLAYERPAIDPRIZEMONEY 366 -#define STRINGID_PKMNTRANSFERREDSOMEONESPC 367 -#define STRINGID_PKMNTRANSFERREDBILLSPC 368 -#define STRINGID_PKMNBOXSOMEONESPCFULL 369 -#define STRINGID_PKMNBOXBILLSPCFULL 370 -#define STRINGID_POKEDUDEUSED 371 -#define STRINGID_POKEFLUTECATCHY 372 -#define STRINGID_POKEFLUTE 373 -#define STRINGID_MONHEARINGFLUTEAWOKE 374 -#define STRINGID_TRAINER2LOSETEXT 375 -#define STRINGID_TRAINER2WINTEXT 376 -#define STRINGID_PLAYERWHITEDOUT 377 -#define STRINGID_MONTOOSCAREDTOMOVE 378 -#define STRINGID_GHOSTGETOUTGETOUT 379 -#define STRINGID_SILPHSCOPEUNVEILED 380 -#define STRINGID_GHOSTWASMAROWAK 381 -#define STRINGID_TRAINER1MON1COMEBACK 382 -#define STRINGID_TRAINER1WINTEXT 383 -#define STRINGID_TRAINER1MON2COMEBACK 384 -#define STRINGID_TRAINER1MON1AND2COMEBACK 385 - -#define BATTLESTRINGS_COUNT 386 +#define STRINGID_TRAINER1LOSETEXT 12 +#define STRINGID_PKMNGAINEDEXP 13 +#define STRINGID_PKMNGREWTOLV 14 +#define STRINGID_PKMNLEARNEDMOVE 15 +#define STRINGID_TRYTOLEARNMOVE1 16 +#define STRINGID_TRYTOLEARNMOVE2 17 +#define STRINGID_TRYTOLEARNMOVE3 18 +#define STRINGID_PKMNFORGOTMOVE 19 +#define STRINGID_STOPLEARNINGMOVE 20 +#define STRINGID_DIDNOTLEARNMOVE 21 +#define STRINGID_PKMNLEARNEDMOVE2 22 +#define STRINGID_ATTACKMISSED 23 +#define STRINGID_PKMNPROTECTEDITSELF 24 +#define STRINGID_STATSWONTINCREASE2 25 +#define STRINGID_AVOIDEDDAMAGE 26 +#define STRINGID_ITDOESNTAFFECT 27 +#define STRINGID_ATTACKERFAINTED 28 +#define STRINGID_TARGETFAINTED 29 +#define STRINGID_PLAYERGOTMONEY 30 +#define STRINGID_PLAYERWHITEOUT 31 +#define STRINGID_PLAYERWHITEOUT2 32 +#define STRINGID_PREVENTSESCAPE 33 +#define STRINGID_HITXTIMES 34 +#define STRINGID_PKMNFELLASLEEP 35 +#define STRINGID_PKMNMADESLEEP 36 +#define STRINGID_PKMNALREADYASLEEP 37 +#define STRINGID_PKMNALREADYASLEEP2 38 +#define STRINGID_PKMNWASNTAFFECTED 39 +#define STRINGID_PKMNWASPOISONED 40 +#define STRINGID_PKMNPOISONEDBY 41 +#define STRINGID_PKMNHURTBYPOISON 42 +#define STRINGID_PKMNALREADYPOISONED 43 +#define STRINGID_PKMNBADLYPOISONED 44 +#define STRINGID_PKMNENERGYDRAINED 45 +#define STRINGID_PKMNWASBURNED 46 +#define STRINGID_PKMNBURNEDBY 47 +#define STRINGID_PKMNHURTBYBURN 48 +#define STRINGID_PKMNWASFROZEN 49 +#define STRINGID_PKMNFROZENBY 50 +#define STRINGID_PKMNISFROZEN 51 +#define STRINGID_PKMNWASDEFROSTED 52 +#define STRINGID_PKMNWASDEFROSTED2 53 +#define STRINGID_PKMNWASDEFROSTEDBY 54 +#define STRINGID_PKMNWASPARALYZED 55 +#define STRINGID_PKMNWASPARALYZEDBY 56 +#define STRINGID_PKMNISPARALYZED 57 +#define STRINGID_PKMNISALREADYPARALYZED 58 +#define STRINGID_PKMNHEALEDPARALYSIS 59 +#define STRINGID_PKMNDREAMEATEN 60 +#define STRINGID_STATSWONTINCREASE 61 +#define STRINGID_STATSWONTDECREASE 62 +#define STRINGID_TEAMSTOPPEDWORKING 63 +#define STRINGID_FOESTOPPEDWORKING 64 +#define STRINGID_PKMNISCONFUSED 65 +#define STRINGID_PKMNHEALEDCONFUSION 66 +#define STRINGID_PKMNWASCONFUSED 67 +#define STRINGID_PKMNALREADYCONFUSED 68 +#define STRINGID_PKMNFELLINLOVE 69 +#define STRINGID_PKMNINLOVE 70 +#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71 +#define STRINGID_PKMNBLOWNAWAY 72 +#define STRINGID_PKMNCHANGEDTYPE 73 +#define STRINGID_PKMNFLINCHED 74 +#define STRINGID_PKMNREGAINEDHEALTH 75 +#define STRINGID_PKMNHPFULL 76 +#define STRINGID_PKMNRAISEDSPDEF 77 +#define STRINGID_PKMNRAISEDDEF 78 +#define STRINGID_PKMNCOVEREDBYVEIL 79 +#define STRINGID_PKMNUSEDSAFEGUARD 80 +#define STRINGID_PKMNSAFEGUARDEXPIRED 81 +#define STRINGID_PKMNWENTTOSLEEP 82 +#define STRINGID_PKMNSLEPTHEALTHY 83 +#define STRINGID_PKMNWHIPPEDWHIRLWIND 84 +#define STRINGID_PKMNTOOKSUNLIGHT 85 +#define STRINGID_PKMNLOWEREDHEAD 86 +#define STRINGID_PKMNISGLOWING 87 +#define STRINGID_PKMNFLEWHIGH 88 +#define STRINGID_PKMNDUGHOLE 89 +#define STRINGID_PKMNSQUEEZEDBYBIND 90 +#define STRINGID_PKMNTRAPPEDINVORTEX 91 +#define STRINGID_PKMNWRAPPEDBY 92 +#define STRINGID_PKMNCLAMPED 93 +#define STRINGID_PKMNHURTBY 94 +#define STRINGID_PKMNFREEDFROM 95 +#define STRINGID_PKMNCRASHED 96 +#define STRINGID_PKMNSHROUDEDINMIST 97 +#define STRINGID_PKMNPROTECTEDBYMIST 98 +#define STRINGID_PKMNGETTINGPUMPED 99 +#define STRINGID_PKMNHITWITHRECOIL 100 +#define STRINGID_PKMNPROTECTEDITSELF2 101 +#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102 +#define STRINGID_PKMNPELTEDBYHAIL 103 +#define STRINGID_PKMNSEEDED 104 +#define STRINGID_PKMNEVADEDATTACK 105 +#define STRINGID_PKMNSAPPEDBYLEECHSEED 106 +#define STRINGID_PKMNFASTASLEEP 107 +#define STRINGID_PKMNWOKEUP 108 +#define STRINGID_PKMNUPROARKEPTAWAKE 109 +#define STRINGID_PKMNWOKEUPINUPROAR 110 +#define STRINGID_PKMNCAUSEDUPROAR 111 +#define STRINGID_PKMNMAKINGUPROAR 112 +#define STRINGID_PKMNCALMEDDOWN 113 +#define STRINGID_PKMNCANTSLEEPINUPROAR 114 +#define STRINGID_PKMNSTOCKPILED 115 +#define STRINGID_PKMNCANTSTOCKPILE 116 +#define STRINGID_PKMNCANTSLEEPINUPROAR2 117 +#define STRINGID_UPROARKEPTPKMNAWAKE 118 +#define STRINGID_PKMNSTAYEDAWAKEUSING 119 +#define STRINGID_PKMNSTORINGENERGY 120 +#define STRINGID_PKMNUNLEASHEDENERGY 121 +#define STRINGID_PKMNFATIGUECONFUSION 122 +#define STRINGID_PLAYERPICKEDUPMONEY 123 +#define STRINGID_PKMNUNAFFECTED 124 +#define STRINGID_PKMNTRANSFORMEDINTO 125 +#define STRINGID_PKMNMADESUBSTITUTE 126 +#define STRINGID_PKMNHASSUBSTITUTE 127 +#define STRINGID_SUBSTITUTEDAMAGED 128 +#define STRINGID_PKMNSUBSTITUTEFADED 129 +#define STRINGID_PKMNMUSTRECHARGE 130 +#define STRINGID_PKMNRAGEBUILDING 131 +#define STRINGID_PKMNMOVEWASDISABLED 132 +#define STRINGID_PKMNMOVEISDISABLED 133 +#define STRINGID_PKMNMOVEDISABLEDNOMORE 134 +#define STRINGID_PKMNGOTENCORE 135 +#define STRINGID_PKMNENCOREENDED 136 +#define STRINGID_PKMNTOOKAIM 137 +#define STRINGID_PKMNSKETCHEDMOVE 138 +#define STRINGID_PKMNTRYINGTOTAKEFOE 139 +#define STRINGID_PKMNTOOKFOE 140 +#define STRINGID_PKMNREDUCEDPP 141 +#define STRINGID_PKMNSTOLEITEM 142 +#define STRINGID_TARGETCANTESCAPENOW 143 +#define STRINGID_PKMNFELLINTONIGHTMARE 144 +#define STRINGID_PKMNLOCKEDINNIGHTMARE 145 +#define STRINGID_PKMNLAIDCURSE 146 +#define STRINGID_PKMNAFFLICTEDBYCURSE 147 +#define STRINGID_SPIKESSCATTERED 148 +#define STRINGID_PKMNHURTBYSPIKES 149 +#define STRINGID_PKMNIDENTIFIED 150 +#define STRINGID_PKMNPERISHCOUNTFELL 151 +#define STRINGID_PKMNBRACEDITSELF 152 +#define STRINGID_PKMNENDUREDHIT 153 +#define STRINGID_MAGNITUDESTRENGTH 154 +#define STRINGID_PKMNCUTHPMAXEDATTACK 155 +#define STRINGID_PKMNCOPIEDSTATCHANGES 156 +#define STRINGID_PKMNGOTFREE 157 +#define STRINGID_PKMNSHEDLEECHSEED 158 +#define STRINGID_PKMNBLEWAWAYSPIKES 159 +#define STRINGID_PKMNFLEDFROMBATTLE 160 +#define STRINGID_PKMNFORESAWATTACK 161 +#define STRINGID_PKMNTOOKATTACK 162 +#define STRINGID_PKMNATTACK 163 +#define STRINGID_PKMNCENTERATTENTION 164 +#define STRINGID_PKMNCHARGINGPOWER 165 +#define STRINGID_NATUREPOWERTURNEDINTO 166 +#define STRINGID_PKMNSTATUSNORMAL 167 +#define STRINGID_PKMNHASNOMOVESLEFT 168 +#define STRINGID_PKMNSUBJECTEDTOTORMENT 169 +#define STRINGID_PKMNCANTUSEMOVETORMENT 170 +#define STRINGID_PKMNTIGHTENINGFOCUS 171 +#define STRINGID_PKMNFELLFORTAUNT 172 +#define STRINGID_PKMNCANTUSEMOVETAUNT 173 +#define STRINGID_PKMNREADYTOHELP 174 +#define STRINGID_PKMNSWITCHEDITEMS 175 +#define STRINGID_PKMNCOPIEDFOE 176 +#define STRINGID_PKMNMADEWISH 177 +#define STRINGID_PKMNWISHCAMETRUE 178 +#define STRINGID_PKMNPLANTEDROOTS 179 +#define STRINGID_PKMNABSORBEDNUTRIENTS 180 +#define STRINGID_PKMNANCHOREDITSELF 181 +#define STRINGID_PKMNWASMADEDROWSY 182 +#define STRINGID_PKMNKNOCKEDOFF 183 +#define STRINGID_PKMNSWAPPEDABILITIES 184 +#define STRINGID_PKMNSEALEDOPPONENTMOVE 185 +#define STRINGID_PKMNCANTUSEMOVESEALED 186 +#define STRINGID_PKMNWANTSGRUDGE 187 +#define STRINGID_PKMNLOSTPPGRUDGE 188 +#define STRINGID_PKMNSHROUDEDITSELF 189 +#define STRINGID_PKMNMOVEBOUNCED 190 +#define STRINGID_PKMNWAITSFORTARGET 191 +#define STRINGID_PKMNSNATCHEDMOVE 192 +#define STRINGID_PKMNMADEITRAIN 193 +#define STRINGID_PKMNRAISEDSPEED 194 +#define STRINGID_PKMNPROTECTEDBY 195 +#define STRINGID_PKMNPREVENTSUSAGE 196 +#define STRINGID_PKMNRESTOREDHPUSING 197 +#define STRINGID_PKMNCHANGEDTYPEWITH 198 +#define STRINGID_PKMNPREVENTSPARALYSISWITH 199 +#define STRINGID_PKMNPREVENTSROMANCEWITH 200 +#define STRINGID_PKMNPREVENTSPOISONINGWITH 201 +#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202 +#define STRINGID_PKMNRAISEDFIREPOWERWITH 203 +#define STRINGID_PKMNANCHORSITSELFWITH 204 +#define STRINGID_PKMNCUTSATTACKWITH 205 +#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206 +#define STRINGID_PKMNHURTSWITH 207 +#define STRINGID_PKMNTRACED 208 +#define STRINGID_STATSHARPLY 209 +#define STRINGID_STATROSE 210 +#define STRINGID_STATHARSHLY 211 +#define STRINGID_STATFELL 212 +#define STRINGID_ATTACKERSSTATROSE 213 +#define STRINGID_DEFENDERSSTATROSE 214 +#define STRINGID_ATTACKERSSTATFELL 215 +#define STRINGID_DEFENDERSSTATFELL 216 +#define STRINGID_CRITICALHIT 217 +#define STRINGID_ONEHITKO 218 +#define STRINGID_123POOF 219 +#define STRINGID_ANDELLIPSIS 220 +#define STRINGID_NOTVERYEFFECTIVE 221 +#define STRINGID_SUPEREFFECTIVE 222 +#define STRINGID_GOTAWAYSAFELY 223 +#define STRINGID_WILDPKMNFLED 224 +#define STRINGID_NORUNNINGFROMTRAINERS 225 +#define STRINGID_CANTESCAPE 226 +#define STRINGID_DONTLEAVEBIRCH 227 +#define STRINGID_BUTNOTHINGHAPPENED 228 +#define STRINGID_BUTITFAILED 229 +#define STRINGID_ITHURTCONFUSION 230 +#define STRINGID_MIRRORMOVEFAILED 231 +#define STRINGID_STARTEDTORAIN 232 +#define STRINGID_DOWNPOURSTARTED 233 +#define STRINGID_RAINCONTINUES 234 +#define STRINGID_DOWNPOURCONTINUES 235 +#define STRINGID_RAINSTOPPED 236 +#define STRINGID_SANDSTORMBREWED 237 +#define STRINGID_SANDSTORMRAGES 238 +#define STRINGID_SANDSTORMSUBSIDED 239 +#define STRINGID_SUNLIGHTGOTBRIGHT 240 +#define STRINGID_SUNLIGHTSTRONG 241 +#define STRINGID_SUNLIGHTFADED 242 +#define STRINGID_STARTEDHAIL 243 +#define STRINGID_HAILCONTINUES 244 +#define STRINGID_HAILSTOPPED 245 +#define STRINGID_FAILEDTOSPITUP 246 +#define STRINGID_FAILEDTOSWALLOW 247 +#define STRINGID_WINDBECAMEHEATWAVE 248 +#define STRINGID_STATCHANGESGONE 249 +#define STRINGID_COINSSCATTERED 250 +#define STRINGID_TOOWEAKFORSUBSTITUTE 251 +#define STRINGID_SHAREDPAIN 252 +#define STRINGID_BELLCHIMED 253 +#define STRINGID_FAINTINTHREE 254 +#define STRINGID_NOPPLEFT 255 +#define STRINGID_BUTNOPPLEFT 256 +#define STRINGID_PLAYERUSEDITEM 257 +#define STRINGID_OLDMANUSEDITEM 258 +#define STRINGID_TRAINERBLOCKEDBALL 259 +#define STRINGID_DONTBEATHIEF 260 +#define STRINGID_ITDODGEDBALL 261 +#define STRINGID_YOUMISSEDPKMN 262 +#define STRINGID_PKMNBROKEFREE 263 +#define STRINGID_ITAPPEAREDCAUGHT 264 +#define STRINGID_AARGHALMOSTHADIT 265 +#define STRINGID_SHOOTSOCLOSE 266 +#define STRINGID_GOTCHAPKMNCAUGHT 267 +#define STRINGID_GOTCHAPKMNCAUGHT2 268 +#define STRINGID_GIVENICKNAMECAPTURED 269 +#define STRINGID_PKMNSENTTOPC 270 +#define STRINGID_PKMNDATAADDEDTODEX 271 +#define STRINGID_ITISRAINING 272 +#define STRINGID_SANDSTORMISRAGING 273 +#define STRINGID_CANTESCAPE2 274 +#define STRINGID_PKMNIGNORESASLEEP 275 +#define STRINGID_PKMNIGNOREDORDERS 276 +#define STRINGID_PKMNBEGANTONAP 277 +#define STRINGID_PKMNLOAFING 278 +#define STRINGID_PKMNWONTOBEY 279 +#define STRINGID_PKMNTURNEDAWAY 280 +#define STRINGID_PKMNPRETENDNOTNOTICE 281 +#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282 +#define STRINGID_THREWROCK 283 +#define STRINGID_THREWBAIT 284 +#define STRINGID_PKMNWATCHINGCAREFULLY 285 +#define STRINGID_PKMNANGRY 286 +#define STRINGID_PKMNEATING 287 +#define STRINGID_DUMMY288 288 +#define STRINGID_DUMMY289 289 +#define STRINGID_OUTOFSAFARIBALLS 290 +#define STRINGID_PKMNSITEMCUREDPARALYSIS 291 +#define STRINGID_PKMNSITEMCUREDPOISON 292 +#define STRINGID_PKMNSITEMHEALEDBURN 293 +#define STRINGID_PKMNSITEMDEFROSTEDIT 294 +#define STRINGID_PKMNSITEMWOKEIT 295 +#define STRINGID_PKMNSITEMSNAPPEDOUT 296 +#define STRINGID_PKMNSITEMCUREDPROBLEM 297 +#define STRINGID_PKMNSITEMRESTOREDHEALTH 298 +#define STRINGID_PKMNSITEMRESTOREDPP 299 +#define STRINGID_PKMNSITEMRESTOREDSTATUS 300 +#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301 +#define STRINGID_ITEMALLOWSONLYYMOVE 302 +#define STRINGID_PKMNHUNGONWITHX 303 +#define STRINGID_EMPTYSTRING3 304 +#define STRINGID_PKMNSXPREVENTSBURNS 305 +#define STRINGID_PKMNSXBLOCKSY 306 +#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307 +#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308 +#define STRINGID_PKMNSXPREVENTSYLOSS 309 +#define STRINGID_PKMNSXINFATUATEDY 310 +#define STRINGID_PKMNSXMADEYINEFFECTIVE 311 +#define STRINGID_PKMNSXCUREDYPROBLEM 312 +#define STRINGID_ITSUCKEDLIQUIDOOZE 313 +#define STRINGID_PKMNTRANSFORMED 314 +#define STRINGID_ELECTRICITYWEAKENED 315 +#define STRINGID_FIREWEAKENED 316 +#define STRINGID_PKMNHIDUNDERWATER 317 +#define STRINGID_PKMNSPRANGUP 318 +#define STRINGID_HMMOVESCANTBEFORGOTTEN 319 +#define STRINGID_XFOUNDONEY 320 +#define STRINGID_PLAYERDEFEATEDTRAINER1 321 +#define STRINGID_SOOTHINGAROMA 322 +#define STRINGID_ITEMSCANTBEUSEDNOW 323 +#define STRINGID_FORXCOMMAYZ 324 +#define STRINGID_USINGITEMSTATOFPKMNROSE 325 +#define STRINGID_PKMNUSEDXTOGETPUMPED 326 +#define STRINGID_PKMNSXMADEYUSELESS 327 +#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328 +#define STRINGID_EMPTYSTRING4 329 +#define STRINGID_ABOOSTED 330 +#define STRINGID_PKMNSXINTENSIFIEDSUN 331 +#define STRINGID_PKMNMAKESGROUNDMISS 332 +#define STRINGID_YOUTHROWABALLNOWRIGHT 333 +#define STRINGID_PKMNSXTOOKATTACK 334 +#define STRINGID_PKMNCHOSEXASDESTINY 335 +#define STRINGID_PKMNLOSTFOCUS 336 +#define STRINGID_USENEXTPKMN 337 +#define STRINGID_PKMNFLEDUSINGITS 338 +#define STRINGID_PKMNFLEDUSING 339 +#define STRINGID_PKMNWASDRAGGEDOUT 340 +#define STRINGID_PREVENTEDFROMWORKING 341 +#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342 +#define STRINGID_TRAINER1USEDITEM 343 +#define STRINGID_BOXISFULL 344 +#define STRINGID_PKMNAVOIDEDATTACK 345 +#define STRINGID_PKMNSXMADEITINEFFECTIVE 346 +#define STRINGID_PKMNSXPREVENTSFLINCHING 347 +#define STRINGID_PKMNALREADYHASBURN 348 +#define STRINGID_STATSWONTDECREASE2 349 +#define STRINGID_PKMNSXBLOCKSY2 350 +#define STRINGID_PKMNSXWOREOFF 351 +#define STRINGID_PKMNRAISEDDEFALITTLE 352 +#define STRINGID_PKMNRAISEDSPDEFALITTLE 353 +#define STRINGID_THEWALLSHATTERED 354 +#define STRINGID_PKMNSXPREVENTSYSZ 355 +#define STRINGID_PKMNSXCUREDITSYPROBLEM 356 +#define STRINGID_ATTACKERCANTESCAPE 357 +#define STRINGID_PKMNOBTAINEDX 358 +#define STRINGID_PKMNOBTAINEDX2 359 +#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360 +#define STRINGID_BUTNOEFFECT 361 +#define STRINGID_PKMNSXHADNOEFFECTONY 362 +#define STRINGID_OAKPLAYERWON 363 +#define STRINGID_OAKPLAYERLOST 364 +#define STRINGID_PLAYERLOSTAGAINSTENEMYTRAINER 365 +#define STRINGID_PLAYERPAIDPRIZEMONEY 366 +#define STRINGID_PKMNTRANSFERREDSOMEONESPC 367 +#define STRINGID_PKMNTRANSFERREDBILLSPC 368 +#define STRINGID_PKMNBOXSOMEONESPCFULL 369 +#define STRINGID_PKMNBOXBILLSPCFULL 370 +#define STRINGID_POKEDUDEUSED 371 +#define STRINGID_POKEFLUTECATCHY 372 +#define STRINGID_POKEFLUTE 373 +#define STRINGID_MONHEARINGFLUTEAWOKE 374 +#define STRINGID_TRAINER2LOSETEXT 375 +#define STRINGID_TRAINER2WINTEXT 376 +#define STRINGID_PLAYERWHITEDOUT 377 +#define STRINGID_MONTOOSCAREDTOMOVE 378 +#define STRINGID_GHOSTGETOUTGETOUT 379 +#define STRINGID_SILPHSCOPEUNVEILED 380 +#define STRINGID_GHOSTWASMAROWAK 381 +#define STRINGID_TRAINER1MON1COMEBACK 382 +#define STRINGID_TRAINER1WINTEXT 383 +#define STRINGID_TRAINER1MON2COMEBACK 384 +#define STRINGID_TRAINER1MON1AND2COMEBACK 385 + +#define BATTLESTRINGS_COUNT 386 // This is the string id that gBattleStringsTable starts with. // String ids before this (e.g. STRINGID_INTROMSG) are not in the table, From 7ab4c38ab233deaf9311e510ac9dc1f8b4ace15b Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sun, 30 Jul 2023 22:51:36 +0530 Subject: [PATCH 10/38] Formated include/constants/event_objects.h --- include/constants/event_objects.h | 306 +++++++++++++++--------------- 1 file changed, 153 insertions(+), 153 deletions(-) diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h index 0eac72a29c..d93ded7d04 100644 --- a/include/constants/event_objects.h +++ b/include/constants/event_objects.h @@ -1,160 +1,160 @@ #ifndef GUARD_CONSTANTS_EVENT_OBJECTS_H #define GUARD_CONSTANTS_EVENT_OBJECTS_H -#define OBJ_EVENT_GFX_RED_NORMAL 0 -#define OBJ_EVENT_GFX_RED_BIKE 1 -#define OBJ_EVENT_GFX_RED_SURF 2 -#define OBJ_EVENT_GFX_RED_FIELD_MOVE 3 -#define OBJ_EVENT_GFX_RED_FISH 4 -#define OBJ_EVENT_GFX_RED_VS_SEEKER 5 -#define OBJ_EVENT_GFX_RED_VS_SEEKER_BIKE 6 -#define OBJ_EVENT_GFX_GREEN_NORMAL 7 -#define OBJ_EVENT_GFX_GREEN_BIKE 8 -#define OBJ_EVENT_GFX_GREEN_SURF 9 -#define OBJ_EVENT_GFX_GREEN_FIELD_MOVE 10 -#define OBJ_EVENT_GFX_GREEN_FISH 11 -#define OBJ_EVENT_GFX_GREEN_VS_SEEKER 12 -#define OBJ_EVENT_GFX_GREEN_VS_SEEKER_BIKE 13 -#define OBJ_EVENT_GFX_RS_BRENDAN 14 -#define OBJ_EVENT_GFX_RS_MAY 15 -#define OBJ_EVENT_GFX_LITTLE_BOY 16 -#define OBJ_EVENT_GFX_LITTLE_GIRL 17 -#define OBJ_EVENT_GFX_YOUNGSTER 18 -#define OBJ_EVENT_GFX_BOY 19 -#define OBJ_EVENT_GFX_BUG_CATCHER 20 -#define OBJ_EVENT_GFX_SITTING_BOY 21 -#define OBJ_EVENT_GFX_LASS 22 -#define OBJ_EVENT_GFX_WOMAN_1 23 -#define OBJ_EVENT_GFX_BATTLE_GIRL 24 -#define OBJ_EVENT_GFX_MAN 25 -#define OBJ_EVENT_GFX_ROCKER 26 -#define OBJ_EVENT_GFX_FAT_MAN 27 -#define OBJ_EVENT_GFX_WOMAN_2 28 -#define OBJ_EVENT_GFX_BEAUTY 29 -#define OBJ_EVENT_GFX_BALDING_MAN 30 -#define OBJ_EVENT_GFX_WOMAN_3 31 -#define OBJ_EVENT_GFX_OLD_MAN_1 32 -#define OBJ_EVENT_GFX_OLD_MAN_2 33 -#define OBJ_EVENT_GFX_OLD_MAN_LYING_DOWN 34 -#define OBJ_EVENT_GFX_OLD_WOMAN 35 -#define OBJ_EVENT_GFX_TUBER_M_WATER 36 -#define OBJ_EVENT_GFX_TUBER_F 37 -#define OBJ_EVENT_GFX_TUBER_M_LAND 38 -#define OBJ_EVENT_GFX_CAMPER 39 -#define OBJ_EVENT_GFX_PICNICKER 40 -#define OBJ_EVENT_GFX_COOLTRAINER_M 41 -#define OBJ_EVENT_GFX_COOLTRAINER_F 42 -#define OBJ_EVENT_GFX_SWIMMER_M_WATER 43 -#define OBJ_EVENT_GFX_SWIMMER_F_WATER 44 -#define OBJ_EVENT_GFX_SWIMMER_M_LAND 45 -#define OBJ_EVENT_GFX_SWIMMER_F_LAND 46 -#define OBJ_EVENT_GFX_WORKER_M 47 -#define OBJ_EVENT_GFX_WORKER_F 48 -#define OBJ_EVENT_GFX_ROCKET_M 49 -#define OBJ_EVENT_GFX_ROCKET_F 50 -#define OBJ_EVENT_GFX_GBA_KID 51 -#define OBJ_EVENT_GFX_SUPER_NERD 52 -#define OBJ_EVENT_GFX_BIKER 53 -#define OBJ_EVENT_GFX_BLACKBELT 54 -#define OBJ_EVENT_GFX_SCIENTIST 55 -#define OBJ_EVENT_GFX_HIKER 56 -#define OBJ_EVENT_GFX_FISHER 57 -#define OBJ_EVENT_GFX_CHANNELER 58 -#define OBJ_EVENT_GFX_CHEF 59 -#define OBJ_EVENT_GFX_POLICEMAN 60 -#define OBJ_EVENT_GFX_GENTLEMAN 61 -#define OBJ_EVENT_GFX_SAILOR 62 -#define OBJ_EVENT_GFX_CAPTAIN 63 -#define OBJ_EVENT_GFX_NURSE 64 -#define OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST 65 -#define OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST 66 -#define OBJ_EVENT_GFX_UNUSED_MALE_RECEPTIONIST 67 -#define OBJ_EVENT_GFX_CLERK 68 -#define OBJ_EVENT_GFX_MG_DELIVERYMAN 69 -#define OBJ_EVENT_GFX_TRAINER_TOWER_DUDE 70 -#define OBJ_EVENT_GFX_PROF_OAK 71 -#define OBJ_EVENT_GFX_BLUE 72 -#define OBJ_EVENT_GFX_BILL 73 -#define OBJ_EVENT_GFX_LANCE 74 -#define OBJ_EVENT_GFX_AGATHA 75 -#define OBJ_EVENT_GFX_DAISY 76 -#define OBJ_EVENT_GFX_LORELEI 77 -#define OBJ_EVENT_GFX_MR_FUJI 78 -#define OBJ_EVENT_GFX_BRUNO 79 -#define OBJ_EVENT_GFX_BROCK 80 -#define OBJ_EVENT_GFX_MISTY 81 -#define OBJ_EVENT_GFX_LT_SURGE 82 -#define OBJ_EVENT_GFX_ERIKA 83 -#define OBJ_EVENT_GFX_KOGA 84 -#define OBJ_EVENT_GFX_SABRINA 85 -#define OBJ_EVENT_GFX_BLAINE 86 -#define OBJ_EVENT_GFX_GIOVANNI 87 -#define OBJ_EVENT_GFX_MOM 88 -#define OBJ_EVENT_GFX_CELIO 89 -#define OBJ_EVENT_GFX_TEACHY_TV_HOST 90 -#define OBJ_EVENT_GFX_GYM_GUY 91 -#define OBJ_EVENT_GFX_ITEM_BALL 92 -#define OBJ_EVENT_GFX_TOWN_MAP 93 -#define OBJ_EVENT_GFX_POKEDEX 94 -#define OBJ_EVENT_GFX_CUT_TREE 95 -#define OBJ_EVENT_GFX_ROCK_SMASH_ROCK 96 -#define OBJ_EVENT_GFX_PUSHABLE_BOULDER 97 -#define OBJ_EVENT_GFX_FOSSIL 98 -#define OBJ_EVENT_GFX_RUBY 99 -#define OBJ_EVENT_GFX_SAPPHIRE 100 -#define OBJ_EVENT_GFX_OLD_AMBER 101 -#define OBJ_EVENT_GFX_GYM_SIGN 102 -#define OBJ_EVENT_GFX_SIGN 103 -#define OBJ_EVENT_GFX_TRAINER_TIPS 104 -#define OBJ_EVENT_GFX_CLIPBOARD 105 -#define OBJ_EVENT_GFX_METEORITE 106 -#define OBJ_EVENT_GFX_LAPRAS_DOLL 107 -#define OBJ_EVENT_GFX_SEAGALLOP 108 -#define OBJ_EVENT_GFX_SNORLAX 109 -#define OBJ_EVENT_GFX_SPEAROW 110 -#define OBJ_EVENT_GFX_CUBONE 111 -#define OBJ_EVENT_GFX_POLIWRATH 112 -#define OBJ_EVENT_GFX_CLEFAIRY 113 -#define OBJ_EVENT_GFX_PIDGEOT 114 -#define OBJ_EVENT_GFX_JIGGLYPUFF 115 -#define OBJ_EVENT_GFX_PIDGEY 116 -#define OBJ_EVENT_GFX_CHANSEY 117 -#define OBJ_EVENT_GFX_OMANYTE 118 -#define OBJ_EVENT_GFX_KANGASKHAN 119 -#define OBJ_EVENT_GFX_PIKACHU 120 -#define OBJ_EVENT_GFX_PSYDUCK 121 -#define OBJ_EVENT_GFX_NIDORAN_F 122 -#define OBJ_EVENT_GFX_NIDORAN_M 123 -#define OBJ_EVENT_GFX_NIDORINO 124 -#define OBJ_EVENT_GFX_MEOWTH 125 -#define OBJ_EVENT_GFX_SEEL 126 -#define OBJ_EVENT_GFX_VOLTORB 127 -#define OBJ_EVENT_GFX_SLOWPOKE 128 -#define OBJ_EVENT_GFX_SLOWBRO 129 -#define OBJ_EVENT_GFX_MACHOP 130 -#define OBJ_EVENT_GFX_WIGGLYTUFF 131 -#define OBJ_EVENT_GFX_DODUO 132 -#define OBJ_EVENT_GFX_FEAROW 133 -#define OBJ_EVENT_GFX_MACHOKE 134 -#define OBJ_EVENT_GFX_LAPRAS 135 -#define OBJ_EVENT_GFX_ZAPDOS 136 -#define OBJ_EVENT_GFX_MOLTRES 137 -#define OBJ_EVENT_GFX_ARTICUNO 138 -#define OBJ_EVENT_GFX_MEWTWO 139 -#define OBJ_EVENT_GFX_MEW 140 -#define OBJ_EVENT_GFX_ENTEI 141 -#define OBJ_EVENT_GFX_SUICUNE 142 -#define OBJ_EVENT_GFX_RAIKOU 143 -#define OBJ_EVENT_GFX_LUGIA 144 -#define OBJ_EVENT_GFX_HO_OH 145 -#define OBJ_EVENT_GFX_CELEBI 146 -#define OBJ_EVENT_GFX_KABUTO 147 -#define OBJ_EVENT_GFX_DEOXYS_D 148 -#define OBJ_EVENT_GFX_DEOXYS_A 149 -#define OBJ_EVENT_GFX_DEOXYS_N 150 -#define OBJ_EVENT_GFX_SS_ANNE 151 +#define OBJ_EVENT_GFX_RED_NORMAL 0 +#define OBJ_EVENT_GFX_RED_BIKE 1 +#define OBJ_EVENT_GFX_RED_SURF 2 +#define OBJ_EVENT_GFX_RED_FIELD_MOVE 3 +#define OBJ_EVENT_GFX_RED_FISH 4 +#define OBJ_EVENT_GFX_RED_VS_SEEKER 5 +#define OBJ_EVENT_GFX_RED_VS_SEEKER_BIKE 6 +#define OBJ_EVENT_GFX_GREEN_NORMAL 7 +#define OBJ_EVENT_GFX_GREEN_BIKE 8 +#define OBJ_EVENT_GFX_GREEN_SURF 9 +#define OBJ_EVENT_GFX_GREEN_FIELD_MOVE 10 +#define OBJ_EVENT_GFX_GREEN_FISH 11 +#define OBJ_EVENT_GFX_GREEN_VS_SEEKER 12 +#define OBJ_EVENT_GFX_GREEN_VS_SEEKER_BIKE 13 +#define OBJ_EVENT_GFX_RS_BRENDAN 14 +#define OBJ_EVENT_GFX_RS_MAY 15 +#define OBJ_EVENT_GFX_LITTLE_BOY 16 +#define OBJ_EVENT_GFX_LITTLE_GIRL 17 +#define OBJ_EVENT_GFX_YOUNGSTER 18 +#define OBJ_EVENT_GFX_BOY 19 +#define OBJ_EVENT_GFX_BUG_CATCHER 20 +#define OBJ_EVENT_GFX_SITTING_BOY 21 +#define OBJ_EVENT_GFX_LASS 22 +#define OBJ_EVENT_GFX_WOMAN_1 23 +#define OBJ_EVENT_GFX_BATTLE_GIRL 24 +#define OBJ_EVENT_GFX_MAN 25 +#define OBJ_EVENT_GFX_ROCKER 26 +#define OBJ_EVENT_GFX_FAT_MAN 27 +#define OBJ_EVENT_GFX_WOMAN_2 28 +#define OBJ_EVENT_GFX_BEAUTY 29 +#define OBJ_EVENT_GFX_BALDING_MAN 30 +#define OBJ_EVENT_GFX_WOMAN_3 31 +#define OBJ_EVENT_GFX_OLD_MAN_1 32 +#define OBJ_EVENT_GFX_OLD_MAN_2 33 +#define OBJ_EVENT_GFX_OLD_MAN_LYING_DOWN 34 +#define OBJ_EVENT_GFX_OLD_WOMAN 35 +#define OBJ_EVENT_GFX_TUBER_M_WATER 36 +#define OBJ_EVENT_GFX_TUBER_F 37 +#define OBJ_EVENT_GFX_TUBER_M_LAND 38 +#define OBJ_EVENT_GFX_CAMPER 39 +#define OBJ_EVENT_GFX_PICNICKER 40 +#define OBJ_EVENT_GFX_COOLTRAINER_M 41 +#define OBJ_EVENT_GFX_COOLTRAINER_F 42 +#define OBJ_EVENT_GFX_SWIMMER_M_WATER 43 +#define OBJ_EVENT_GFX_SWIMMER_F_WATER 44 +#define OBJ_EVENT_GFX_SWIMMER_M_LAND 45 +#define OBJ_EVENT_GFX_SWIMMER_F_LAND 46 +#define OBJ_EVENT_GFX_WORKER_M 47 +#define OBJ_EVENT_GFX_WORKER_F 48 +#define OBJ_EVENT_GFX_ROCKET_M 49 +#define OBJ_EVENT_GFX_ROCKET_F 50 +#define OBJ_EVENT_GFX_GBA_KID 51 +#define OBJ_EVENT_GFX_SUPER_NERD 52 +#define OBJ_EVENT_GFX_BIKER 53 +#define OBJ_EVENT_GFX_BLACKBELT 54 +#define OBJ_EVENT_GFX_SCIENTIST 55 +#define OBJ_EVENT_GFX_HIKER 56 +#define OBJ_EVENT_GFX_FISHER 57 +#define OBJ_EVENT_GFX_CHANNELER 58 +#define OBJ_EVENT_GFX_CHEF 59 +#define OBJ_EVENT_GFX_POLICEMAN 60 +#define OBJ_EVENT_GFX_GENTLEMAN 61 +#define OBJ_EVENT_GFX_SAILOR 62 +#define OBJ_EVENT_GFX_CAPTAIN 63 +#define OBJ_EVENT_GFX_NURSE 64 +#define OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST 65 +#define OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST 66 +#define OBJ_EVENT_GFX_UNUSED_MALE_RECEPTIONIST 67 +#define OBJ_EVENT_GFX_CLERK 68 +#define OBJ_EVENT_GFX_MG_DELIVERYMAN 69 +#define OBJ_EVENT_GFX_TRAINER_TOWER_DUDE 70 +#define OBJ_EVENT_GFX_PROF_OAK 71 +#define OBJ_EVENT_GFX_BLUE 72 +#define OBJ_EVENT_GFX_BILL 73 +#define OBJ_EVENT_GFX_LANCE 74 +#define OBJ_EVENT_GFX_AGATHA 75 +#define OBJ_EVENT_GFX_DAISY 76 +#define OBJ_EVENT_GFX_LORELEI 77 +#define OBJ_EVENT_GFX_MR_FUJI 78 +#define OBJ_EVENT_GFX_BRUNO 79 +#define OBJ_EVENT_GFX_BROCK 80 +#define OBJ_EVENT_GFX_MISTY 81 +#define OBJ_EVENT_GFX_LT_SURGE 82 +#define OBJ_EVENT_GFX_ERIKA 83 +#define OBJ_EVENT_GFX_KOGA 84 +#define OBJ_EVENT_GFX_SABRINA 85 +#define OBJ_EVENT_GFX_BLAINE 86 +#define OBJ_EVENT_GFX_GIOVANNI 87 +#define OBJ_EVENT_GFX_MOM 88 +#define OBJ_EVENT_GFX_CELIO 89 +#define OBJ_EVENT_GFX_TEACHY_TV_HOST 90 +#define OBJ_EVENT_GFX_GYM_GUY 91 +#define OBJ_EVENT_GFX_ITEM_BALL 92 +#define OBJ_EVENT_GFX_TOWN_MAP 93 +#define OBJ_EVENT_GFX_POKEDEX 94 +#define OBJ_EVENT_GFX_CUT_TREE 95 +#define OBJ_EVENT_GFX_ROCK_SMASH_ROCK 96 +#define OBJ_EVENT_GFX_PUSHABLE_BOULDER 97 +#define OBJ_EVENT_GFX_FOSSIL 98 +#define OBJ_EVENT_GFX_RUBY 99 +#define OBJ_EVENT_GFX_SAPPHIRE 100 +#define OBJ_EVENT_GFX_OLD_AMBER 101 +#define OBJ_EVENT_GFX_GYM_SIGN 102 +#define OBJ_EVENT_GFX_SIGN 103 +#define OBJ_EVENT_GFX_TRAINER_TIPS 104 +#define OBJ_EVENT_GFX_CLIPBOARD 105 +#define OBJ_EVENT_GFX_METEORITE 106 +#define OBJ_EVENT_GFX_LAPRAS_DOLL 107 +#define OBJ_EVENT_GFX_SEAGALLOP 108 +#define OBJ_EVENT_GFX_SNORLAX 109 +#define OBJ_EVENT_GFX_SPEAROW 110 +#define OBJ_EVENT_GFX_CUBONE 111 +#define OBJ_EVENT_GFX_POLIWRATH 112 +#define OBJ_EVENT_GFX_CLEFAIRY 113 +#define OBJ_EVENT_GFX_PIDGEOT 114 +#define OBJ_EVENT_GFX_JIGGLYPUFF 115 +#define OBJ_EVENT_GFX_PIDGEY 116 +#define OBJ_EVENT_GFX_CHANSEY 117 +#define OBJ_EVENT_GFX_OMANYTE 118 +#define OBJ_EVENT_GFX_KANGASKHAN 119 +#define OBJ_EVENT_GFX_PIKACHU 120 +#define OBJ_EVENT_GFX_PSYDUCK 121 +#define OBJ_EVENT_GFX_NIDORAN_F 122 +#define OBJ_EVENT_GFX_NIDORAN_M 123 +#define OBJ_EVENT_GFX_NIDORINO 124 +#define OBJ_EVENT_GFX_MEOWTH 125 +#define OBJ_EVENT_GFX_SEEL 126 +#define OBJ_EVENT_GFX_VOLTORB 127 +#define OBJ_EVENT_GFX_SLOWPOKE 128 +#define OBJ_EVENT_GFX_SLOWBRO 129 +#define OBJ_EVENT_GFX_MACHOP 130 +#define OBJ_EVENT_GFX_WIGGLYTUFF 131 +#define OBJ_EVENT_GFX_DODUO 132 +#define OBJ_EVENT_GFX_FEAROW 133 +#define OBJ_EVENT_GFX_MACHOKE 134 +#define OBJ_EVENT_GFX_LAPRAS 135 +#define OBJ_EVENT_GFX_ZAPDOS 136 +#define OBJ_EVENT_GFX_MOLTRES 137 +#define OBJ_EVENT_GFX_ARTICUNO 138 +#define OBJ_EVENT_GFX_MEWTWO 139 +#define OBJ_EVENT_GFX_MEW 140 +#define OBJ_EVENT_GFX_ENTEI 141 +#define OBJ_EVENT_GFX_SUICUNE 142 +#define OBJ_EVENT_GFX_RAIKOU 143 +#define OBJ_EVENT_GFX_LUGIA 144 +#define OBJ_EVENT_GFX_HO_OH 145 +#define OBJ_EVENT_GFX_CELEBI 146 +#define OBJ_EVENT_GFX_KABUTO 147 +#define OBJ_EVENT_GFX_DEOXYS_D 148 +#define OBJ_EVENT_GFX_DEOXYS_A 149 +#define OBJ_EVENT_GFX_DEOXYS_N 150 +#define OBJ_EVENT_GFX_SS_ANNE 151 -#define NUM_OBJ_EVENT_GFX 152 +#define NUM_OBJ_EVENT_GFX 152 // These are dynamic object gfx ids. // They correspond with the values of the VAR_OBJ_GFX_ID_X vars. From 40c5cd9d32f9657ec62928cce4e5cc74e0bb33e4 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 07:47:49 +0530 Subject: [PATCH 11/38] Add proper comments in include/constants/items.h --- include/constants/items.h | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/include/constants/items.h b/include/constants/items.h index cfc42256c3..258651df40 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -2,6 +2,8 @@ #define GUARD_CONSTANTS_ITEMS_H #define ITEM_NONE 0 + +// Balls #define ITEM_MASTER_BALL 1 #define ITEM_ULTRA_BALL 2 #define ITEM_GREAT_BALL 3 @@ -14,6 +16,8 @@ #define ITEM_TIMER_BALL 10 #define ITEM_LUXURY_BALL 11 #define ITEM_PREMIER_BALL 12 + +// Pokemon Items #define ITEM_POTION 13 #define ITEM_ANTIDOTE 14 #define ITEM_BURN_HEAL 15 @@ -104,6 +108,8 @@ #define ITEM_064 100 #define ITEM_065 101 #define ITEM_066 102 + +// Unusable #define ITEM_TINY_MUSHROOM 103 #define ITEM_BIG_MUSHROOM 104 #define ITEM_069 105 @@ -122,6 +128,8 @@ #define ITEM_076 118 #define ITEM_077 119 #define ITEM_078 120 + +// Mails #define ITEM_ORANGE_MAIL 121 #define ITEM_HARBOR_MAIL 122 #define ITEM_GLITTER_MAIL 123 @@ -134,6 +142,8 @@ #define ITEM_DREAM_MAIL 130 #define ITEM_FAB_MAIL 131 #define ITEM_RETRO_MAIL 132 + +// Berries #define ITEM_CHERI_BERRY 133 #define ITEM_CHESTO_BERRY 134 #define ITEM_PECHA_BERRY 135 @@ -187,6 +197,7 @@ #define MAX_BERRY_INDEX ITEM_UNUSED_BERRY_3 +// Battle Held items #define ITEM_BRIGHT_POWDER 179 #define ITEM_WHITE_HERB 180 #define ITEM_MACHO_BRACE 181 @@ -262,11 +273,15 @@ #define ITEM_0FB 251 #define ITEM_0FC 252 #define ITEM_0FD 253 + +// Contest held items #define ITEM_RED_SCARF 254 #define ITEM_BLUE_SCARF 255 #define ITEM_PINK_SCARF 256 #define ITEM_GREEN_SCARF 257 #define ITEM_YELLOW_SCARF 258 + +// Key Items #define ITEM_MACH_BIKE 259 #define ITEM_COIN_CASE 260 #define ITEM_ITEMFINDER 261 @@ -297,6 +312,8 @@ #define ITEM_ROOT_FOSSIL 286 #define ITEM_CLAW_FOSSIL 287 #define ITEM_DEVON_SCOPE 288 + +// TMs/HMs #define ITEM_TM01 289 #define ITEM_TM02 290 #define ITEM_TM03 291 @@ -355,8 +372,6 @@ #define ITEM_HM06 344 #define ITEM_HM07 345 #define ITEM_HM08 346 -#define ITEM_15B 347 -#define ITEM_15C 348 #define ITEM_TM01_FOCUS_PUNCH ITEM_TM01 #define ITEM_TM02_DRAGON_CLAW ITEM_TM02 @@ -417,6 +432,10 @@ #define ITEM_HM07_WATERFALL ITEM_HM07 #define ITEM_HM08_DIVE ITEM_HM08 +// Unknown +#define ITEM_15B 347 +#define ITEM_15C 348 + // FireRed/LeafGreen #define ITEM_OAKS_PARCEL 349 #define ITEM_POKE_FLUTE 350 From 4206066fbd7a234fda3b60b10f237b3fc56ea21b Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 07:49:44 +0530 Subject: [PATCH 12/38] Add proper comments to include/constants/map_script.h --- include/constants/map_scripts.h | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/include/constants/map_scripts.h b/include/constants/map_scripts.h index 1353de360c..cd00621e71 100644 --- a/include/constants/map_scripts.h +++ b/include/constants/map_scripts.h @@ -1,6 +1,41 @@ #ifndef GUARD_CONSTANTS_MAP_SCRIPTS_H #define GUARD_CONSTANTS_MAP_SCRIPTS_H +/* + IDs for special scripts that can be run for a particular map. + For the functions that handle when they are run, see these constants' uses in src/script.c + + Below describes when a script of this kind will be called, and what it typically does. + They are numbered in the order that they will be called when entering a map (from a warp or camera transition). + NOTE: These descriptions are just of what they generally do, not what they always or have to do + + 3. ON_LOAD: Run after the layout is loaded (but not drawn yet). + Almost exclusively used to set metatiles on the map before it's first drawn + + 6. ON_FRAME_TABLE: Run every frame after the map has faded in, before player input is processed. + This is a table of scripts; only the first script whose condition is satisfied is run. + Used to trigger an event, such as the player exiting the cable car or the SS Tidal sailor announcing progress + + 2. ON_TRANSITION: Run during the transition to the map + Used to set map-specific flags/vars, update object positions/movement types, set weather, etc + + 5. ON_WARP_INTO_MAP_TABLE: Run after the map's objects are loaded. + This is a table of scripts; only the first script whose condition is satisfied is run. + Used to add objects to the scene or update something about the player as they warp in (e.g. their facing dir or visibility) + Note that ON_TRANSITION may also handle object visibility, but would do so by modifying a flag or var + + 4. ON_RESUME: Run at the end of map load, and again any time upon returning to field (e.g. exiting the Bag menu, or finishing a battle) + Used to hide defeated static pokemon, or maintain some map state (e.g. the Trainer Hill timer, or the cycling road challenge) + In some maps this takes the metatile setting job of ON_LOAD + + 1. ON_DIVE_WARP: Run after the player chooses to dive/emerge. + Only used once, to determine whether or not the player should emerge in the Sealed Chamber + + x. ON_RETURN_TO_FIELD: Run exlusively upon returning to the field, shortly after ON_RESUME (as opposed to ON_RESUME, which also runs once on entering the map) + Used rarely, when something must only happen on reload (e.g. making sure Mew is above the grass after battling it on Faraway Island) + +*/ + #define MAP_SCRIPT_ON_LOAD 1 #define MAP_SCRIPT_ON_FRAME_TABLE 2 #define MAP_SCRIPT_ON_TRANSITION 3 From 753cfa821b6e517cde63411dfd84dee5dc53f285 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 08:08:29 +0530 Subject: [PATCH 13/38] Renamed win0left, win0top, win0right and winbottom to wirelessWinLeft, wirelessWinTop, wirelessWinRight and wirelessWinBottom respectively --- src/pc_screen_effect.c | 96 +++++++++++++++++++++--------------------- src/trade_scene.c | 40 +++++++++--------- 2 files changed, 68 insertions(+), 68 deletions(-) diff --git a/src/pc_screen_effect.c b/src/pc_screen_effect.c index ee91b80a78..7e1a2bf71a 100644 --- a/src/pc_screen_effect.c +++ b/src/pc_screen_effect.c @@ -9,10 +9,10 @@ #define tState data[0] #define tXSpeed data[1] #define tYSpeed data[2] -#define tWin0Left data[3] -#define tWin0Right data[4] -#define tWin0Top data[5] -#define tWin0Bottom data[6] +#define twirelessWinLeft data[3] +#define twirelessWinRight data[4] +#define twirelessWinTop data[5] +#define twirelessWinBottom data[6] #define tBldCntBak data[7] #define tBldYBak data[8] @@ -57,13 +57,13 @@ static void Task_PCScreenEffect_TurnOn(u8 taskId) switch (task->tState) { case 0: - task->tWin0Left = 120; - task->tWin0Right = 120; - task->tWin0Top = 80; - task->tWin0Bottom = 81; + task->twirelessWinLeft = 120; + task->twirelessWinRight = 120; + task->twirelessWinTop = 80; + task->twirelessWinBottom = 81; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWin0Left, task->tWin0Right)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWin0Top, task->tWin0Bottom)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->twirelessWinLeft, task->twirelessWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->twirelessWinTop, task->twirelessWinBottom)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, 0); break; @@ -74,32 +74,32 @@ static void Task_PCScreenEffect_TurnOn(u8 taskId) SetGpuReg(REG_OFFSET_BLDY, 16); break; case 2: - task->tWin0Left -= task->tXSpeed; - task->tWin0Right += task->tXSpeed; - if (task->tWin0Left <= 0 || task->tWin0Right >= DISPLAY_WIDTH) + task->twirelessWinLeft -= task->tXSpeed; + task->twirelessWinRight += task->tXSpeed; + if (task->twirelessWinLeft <= 0 || task->twirelessWinRight >= DISPLAY_WIDTH) { - task->tWin0Left = 0; - task->tWin0Right = DISPLAY_WIDTH; + task->twirelessWinLeft = 0; + task->twirelessWinRight = DISPLAY_WIDTH; SetGpuReg(REG_OFFSET_BLDY, 0); SetGpuReg(REG_OFFSET_BLDCNT, task->tBldCntBak); BlendPalettes(PALETTES_ALL, 0, RGB_BLACK); gPlttBufferFaded[BG_PLTT_ID(0)] = 0; } - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWin0Left, task->tWin0Right)); - if (task->tWin0Left) + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->twirelessWinLeft, task->twirelessWinRight)); + if (task->twirelessWinLeft) return; break; case 3: - task->tWin0Top -= task->tYSpeed; - task->tWin0Bottom += task->tYSpeed; - if (task->tWin0Top <= 0 || task->tWin0Bottom >= DISPLAY_HEIGHT) + task->twirelessWinTop -= task->tYSpeed; + task->twirelessWinBottom += task->tYSpeed; + if (task->twirelessWinTop <= 0 || task->twirelessWinBottom >= DISPLAY_HEIGHT) { - task->tWin0Top = 0; - task->tWin0Bottom = DISPLAY_HEIGHT; + task->twirelessWinTop = 0; + task->twirelessWinBottom = DISPLAY_HEIGHT; ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); } - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWin0Top, task->tWin0Bottom)); - if (task->tWin0Top) + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->twirelessWinTop, task->twirelessWinBottom)); + if (task->twirelessWinTop) return; break; default: @@ -120,42 +120,42 @@ static void Task_PCScreenEffect_TurnOff(u8 taskId) gPlttBufferFaded[BG_PLTT_ID(0)] = 0; break; case 1: - task->tWin0Left = 0; - task->tWin0Right = DISPLAY_WIDTH; - task->tWin0Top = 0; - task->tWin0Bottom = DISPLAY_HEIGHT; + task->twirelessWinLeft = 0; + task->twirelessWinRight = DISPLAY_WIDTH; + task->twirelessWinTop = 0; + task->twirelessWinBottom = DISPLAY_HEIGHT; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWin0Left, task->tWin0Right)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWin0Top, task->tWin0Bottom)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->twirelessWinLeft, task->twirelessWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->twirelessWinTop, task->twirelessWinBottom)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, 0); break; case 2: - task->tWin0Top += task->tYSpeed; - task->tWin0Bottom -= task->tYSpeed; - if (task->tWin0Top >= 80 || task->tWin0Bottom <= 81) + task->twirelessWinTop += task->tYSpeed; + task->twirelessWinBottom -= task->tYSpeed; + if (task->twirelessWinTop >= 80 || task->twirelessWinBottom <= 81) { - task->tWin0Top = 80; - task->tWin0Bottom = 81; + task->twirelessWinTop = 80; + task->twirelessWinBottom = 81; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_LIGHTEN); SetGpuReg(REG_OFFSET_BLDY, 16); } - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWin0Top, task->tWin0Bottom)); - if (task->tWin0Top != 80) + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->twirelessWinTop, task->twirelessWinBottom)); + if (task->twirelessWinTop != 80) return; break; case 3: - task->tWin0Left += task->tXSpeed; - task->tWin0Right -= task->tXSpeed; - if (task->tWin0Left >= 120 || task->tWin0Right <= 120) + task->twirelessWinLeft += task->tXSpeed; + task->twirelessWinRight -= task->tXSpeed; + if (task->twirelessWinLeft >= 120 || task->twirelessWinRight <= 120) { - task->tWin0Left = 120; - task->tWin0Right = 120; + task->twirelessWinLeft = 120; + task->twirelessWinRight = 120; BlendPalettes(PALETTES_ALL, 0x10, RGB_BLACK); gPlttBufferFaded[BG_PLTT_ID(0)] = 0; } - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWin0Left, task->tWin0Right)); - if (task->tWin0Left != 120) + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->twirelessWinLeft, task->twirelessWinRight)); + if (task->twirelessWinLeft != 120) return; break; default: @@ -170,10 +170,10 @@ static void Task_PCScreenEffect_TurnOff(u8 taskId) #undef tBldYBak #undef tBldCntBak -#undef tWin0Bottom -#undef tWin0Top -#undef tWin0Right -#undef tWin0Left +#undef twirelessWinBottom +#undef twirelessWinTop +#undef twirelessWinRight +#undef twirelessWinLeft #undef tYSpeed #undef tXSpeed #undef tState diff --git a/src/trade_scene.c b/src/trade_scene.c index 129774f349..f919beb8f1 100644 --- a/src/trade_scene.c +++ b/src/trade_scene.c @@ -113,10 +113,10 @@ struct { /*0x104*/ u8 textColor[3]; /*0x107*/ u8 filler_107[1]; /*0x108*/ bool8 isCableTrade; - /*0x109*/ u8 win0left; - /*0x10A*/ u8 win0top; - /*0x10B*/ u8 win0right; - /*0x10C*/ u8 win0bottom; + /*0x109*/ u8 wirelessWinLeft; + /*0x10A*/ u8 wirelessWinTop; + /*0x10B*/ u8 wirelessWinRight; + /*0x10C*/ u8 wirelessWinBottom; } static EWRAM_DATA * sTradeAnim = NULL; static void SpriteCB_LinkMonGlow(struct Sprite *sprite); @@ -2829,9 +2829,9 @@ static void Task_OpenCenterWhiteColumn(u8 taskId) if (data[0] == 0) { - sTradeAnim->win0left = sTradeAnim->win0right = DISPLAY_WIDTH / 2; - sTradeAnim->win0top = 0; - sTradeAnim->win0bottom = DISPLAY_HEIGHT; + sTradeAnim->wirelessWinLeft = sTradeAnim->wirelessWinRight = DISPLAY_WIDTH / 2; + sTradeAnim->wirelessWinTop = 0; + sTradeAnim->wirelessWinBottom = DISPLAY_HEIGHT; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_OBJ); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | @@ -2839,14 +2839,14 @@ static void Task_OpenCenterWhiteColumn(u8 taskId) WININ_WIN0_OBJ); } - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE2(sTradeAnim->win0left, sTradeAnim->win0right)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE2(sTradeAnim->win0top, sTradeAnim->win0bottom)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE2(sTradeAnim->wirelessWinLeft, sTradeAnim->wirelessWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE2(sTradeAnim->wirelessWinTop, sTradeAnim->wirelessWinBottom)); data[0]++; - sTradeAnim->win0left -= 5; - sTradeAnim->win0right += 5; + sTradeAnim->wirelessWinLeft -= 5; + sTradeAnim->wirelessWinRight += 5; - if (sTradeAnim->win0left < 80) + if (sTradeAnim->wirelessWinLeft < 80) DestroyTask(taskId); } @@ -2856,24 +2856,24 @@ static void Task_CloseCenterWhiteColumn(u8 taskId) if (data[0] == 0) { - sTradeAnim->win0left = 80; - sTradeAnim->win0right = DISPLAY_WIDTH - 80; + sTradeAnim->wirelessWinLeft = 80; + sTradeAnim->wirelessWinRight = DISPLAY_WIDTH - 80; SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_OBJ); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_OBJ); } - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE2(sTradeAnim->win0left, sTradeAnim->win0right)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE2(sTradeAnim->win0top, sTradeAnim->win0bottom)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE2(sTradeAnim->wirelessWinLeft, sTradeAnim->wirelessWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE2(sTradeAnim->wirelessWinTop, sTradeAnim->wirelessWinBottom)); - if (sTradeAnim->win0left != DISPLAY_WIDTH / 2) + if (sTradeAnim->wirelessWinLeft != DISPLAY_WIDTH / 2) { data[0]++; - sTradeAnim->win0left += 5; - sTradeAnim->win0right -= 5; + sTradeAnim->wirelessWinLeft += 5; + sTradeAnim->wirelessWinRight -= 5; - if (sTradeAnim->win0left > DISPLAY_WIDTH / 2 - 5) + if (sTradeAnim->wirelessWinLeft > DISPLAY_WIDTH / 2 - 5) BlendPalettes(0x8, 0, RGB_WHITEALPHA); } else From 5f5f1c0469c9ef1f6b19fccefb512a7da33b63b1 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 08:12:39 +0530 Subject: [PATCH 14/38] Rename GAME_STAT_FISHING_CAPTURES to GAME_STAT_FISHING_ENCOUNTERS --- include/constants/game_stat.h | 2 +- src/wild_encounter.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/constants/game_stat.h b/include/constants/game_stat.h index 234091bff4..f8916f3343 100644 --- a/include/constants/game_stat.h +++ b/include/constants/game_stat.h @@ -13,7 +13,7 @@ #define GAME_STAT_TRAINER_BATTLES 9 #define GAME_STAT_ENTERED_HOF 10 #define GAME_STAT_POKEMON_CAPTURES 11 -#define GAME_STAT_FISHING_CAPTURES 12 +#define GAME_STAT_FISHING_ENCOUNTERS 12 #define GAME_STAT_HATCHED_EGGS 13 #define GAME_STAT_EVOLVED_POKEMON 14 #define GAME_STAT_USED_POKECENTER 15 diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 125cdac6a3..3dce9c5063 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -519,7 +519,7 @@ bool8 DoesCurrentMapHaveFishingMons(void) void FishingWildEncounter(u8 rod) { GenerateFishingEncounter(gWildMonHeaders[GetCurrentMapWildMonHeaderId()].fishingMonsInfo, rod); - IncrementGameStat(GAME_STAT_FISHING_CAPTURES); + IncrementGameStat(GAME_STAT_FISHING_ENCOUNTERS); StartWildBattle(); } From 12196b3ca09e50f1f4ba5dcfeae9a383c8b1f3cb Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 08:18:32 +0530 Subject: [PATCH 15/38] Replace NUM_TEXT_PRINTERS with WINDOWS_MAX --- include/text.h | 2 -- include/window.h | 4 ++-- src/text_printer.c | 6 +++--- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/include/text.h b/include/text.h index 7090a029bf..bb223307dc 100644 --- a/include/text.h +++ b/include/text.h @@ -4,8 +4,6 @@ #include "global.h" #include "characters.h" -#define NUM_TEXT_PRINTERS 32 - #define TEXT_SPEED_INSTANT 0 // Given as a text speed when all the text should be diff --git a/include/window.h b/include/window.h index f64adce251..1d70ea3695 100644 --- a/include/window.h +++ b/include/window.h @@ -3,6 +3,8 @@ #include "global.h" +#define WINDOWS_MAX 32 + #define PIXEL_FILL(num) ((num) | ((num) << 4)) enum @@ -36,8 +38,6 @@ struct WindowTemplate u16 baseBlock; }; -#define WINDOWS_MAX 32 - #define DUMMY_WIN_TEMPLATE \ { \ 0xFF, \ diff --git a/src/text_printer.c b/src/text_printer.c index 6710ebfd0c..c783244fa2 100644 --- a/src/text_printer.c +++ b/src/text_printer.c @@ -3,7 +3,7 @@ #include "text.h" static EWRAM_DATA struct TextPrinter sTempTextPrinter = {0}; -static EWRAM_DATA struct TextPrinter sTextPrinters[NUM_TEXT_PRINTERS] = {0}; +static EWRAM_DATA struct TextPrinter sTextPrinters[WINDOWS_MAX] = {0}; static u16 sFontHalfRowLookupTable[0x51]; static u16 sLastTextBgColor; @@ -41,7 +41,7 @@ void SetFontsPointer(const struct FontInfo *fonts) void DeactivateAllTextPrinters (void) { int printer; - for (printer = 0; printer < NUM_TEXT_PRINTERS; ++printer) + for (printer = 0; printer < WINDOWS_MAX; ++printer) sTextPrinters[printer].active = 0; } @@ -116,7 +116,7 @@ void RunTextPrinters(void) { int i; - for (i = 0; i < NUM_TEXT_PRINTERS; ++i) + for (i = 0; i < WINDOWS_MAX; ++i) { if (sTextPrinters[i].active) { From cf242fedb9ca8223dc68b85cd6534e9192c86ada Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 08:22:42 +0530 Subject: [PATCH 16/38] Added STANDARD_FRIENDSHIP constant to allow easier custom adjustments --- include/constants/pokemon.h | 3 + src/data/pokemon/species_info.h | 652 ++++++++++++++++---------------- 2 files changed, 329 insertions(+), 326 deletions(-) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 21c678744f..2a9c72f8e8 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -223,6 +223,9 @@ #define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 8 #define FRIENDSHIP_EVENT_FAINT_LARGE 9 +// Friendship value that the majority of species use. This was changed in Generation 8 to 50. +#define STANDARD_FRIENDSHIP 70 + #define MAX_FRIENDSHIP 255 #define MAX_SHEEN 255 #define MAX_CONDITION 255 diff --git a/src/data/pokemon/species_info.h b/src/data/pokemon/species_info.h index 3e36c08ced..736f370fc9 100644 --- a/src/data/pokemon/species_info.h +++ b/src/data/pokemon/species_info.h @@ -56,7 +56,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, @@ -85,7 +85,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, @@ -114,7 +114,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, @@ -143,7 +143,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, @@ -172,7 +172,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, @@ -201,7 +201,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, @@ -230,7 +230,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, @@ -259,7 +259,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, @@ -288,7 +288,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, @@ -317,7 +317,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE}, @@ -346,7 +346,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, @@ -375,7 +375,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SILVER_POWDER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_COMPOUND_EYES, ABILITY_NONE}, @@ -404,7 +404,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE}, @@ -433,7 +433,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, @@ -462,7 +462,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SWARM, ABILITY_NONE}, @@ -491,7 +491,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, @@ -520,7 +520,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, @@ -549,7 +549,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, @@ -578,7 +578,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_RUN_AWAY, ABILITY_GUTS}, @@ -607,7 +607,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SITRUS_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_RUN_AWAY, ABILITY_GUTS}, @@ -636,7 +636,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, @@ -665,7 +665,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, @@ -694,7 +694,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, .abilities = {ABILITY_INTIMIDATE, ABILITY_SHED_SKIN}, @@ -723,7 +723,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, .abilities = {ABILITY_INTIMIDATE, ABILITY_SHED_SKIN}, @@ -752,7 +752,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, .abilities = {ABILITY_STATIC, ABILITY_NONE}, @@ -781,7 +781,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, .abilities = {ABILITY_STATIC, ABILITY_NONE}, @@ -810,7 +810,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE}, @@ -839,7 +839,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SOFT_SAND, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE}, @@ -868,7 +868,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_FEMALE, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, @@ -897,7 +897,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_FEMALE, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, @@ -926,7 +926,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_FEMALE, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, @@ -955,7 +955,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_MALE, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, @@ -984,7 +984,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_MALE, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, @@ -1013,7 +1013,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_MALE, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, @@ -1100,7 +1100,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE}, @@ -1129,7 +1129,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE}, @@ -1158,7 +1158,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE}, @@ -1187,7 +1187,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE}, @@ -1216,7 +1216,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, @@ -1245,7 +1245,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, @@ -1274,7 +1274,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -1303,7 +1303,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -1332,7 +1332,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -1361,7 +1361,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_BIG_MUSHROOM, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_GRASS}, .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE}, @@ -1390,7 +1390,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_BIG_MUSHROOM, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_GRASS}, .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE}, @@ -1419,7 +1419,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_COMPOUND_EYES, ABILITY_NONE}, @@ -1448,7 +1448,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SILVER_POWDER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE}, @@ -1477,7 +1477,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_SAND_VEIL, ABILITY_ARENA_TRAP}, @@ -1506,7 +1506,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_SAND_VEIL, ABILITY_ARENA_TRAP}, @@ -1535,7 +1535,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NUGGET, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_PICKUP, ABILITY_NONE}, @@ -1564,7 +1564,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_LIMBER, ABILITY_NONE}, @@ -1593,7 +1593,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, .abilities = {ABILITY_DAMP, ABILITY_CLOUD_NINE}, @@ -1622,7 +1622,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, .abilities = {ABILITY_DAMP, ABILITY_CLOUD_NINE}, @@ -1651,7 +1651,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_NONE}, @@ -1680,7 +1680,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_NONE}, @@ -1709,7 +1709,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE}, @@ -1738,7 +1738,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE}, @@ -1767,7 +1767,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP}, @@ -1796,7 +1796,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP}, @@ -1825,7 +1825,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP}, @@ -1854,7 +1854,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_TWISTED_SPOON, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS}, @@ -1883,7 +1883,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_TWISTED_SPOON, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS}, @@ -1912,7 +1912,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_TWISTED_SPOON, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS}, @@ -1941,7 +1941,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_GUTS, ABILITY_NONE}, @@ -1970,7 +1970,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_FOCUS_BAND, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_GUTS, ABILITY_NONE}, @@ -1999,7 +1999,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_FOCUS_BAND, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_GUTS, ABILITY_NONE}, @@ -2028,7 +2028,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -2057,7 +2057,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -2086,7 +2086,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -2115,7 +2115,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, .abilities = {ABILITY_CLEAR_BODY, ABILITY_LIQUID_OOZE}, @@ -2144,7 +2144,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, .abilities = {ABILITY_CLEAR_BODY, ABILITY_LIQUID_OOZE}, @@ -2173,7 +2173,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY}, @@ -2202,7 +2202,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_HARD_STONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY}, @@ -2231,7 +2231,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_HARD_STONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY}, @@ -2260,7 +2260,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_RUN_AWAY, ABILITY_FLASH_FIRE}, @@ -2289,7 +2289,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_RUN_AWAY, ABILITY_FLASH_FIRE}, @@ -2318,7 +2318,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, .abilities = {ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO}, @@ -2347,7 +2347,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, .abilities = {ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO}, @@ -2376,7 +2376,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_GENDERLESS, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY}, @@ -2405,7 +2405,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_MAGNET, .genderRatio = MON_GENDERLESS, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY}, @@ -2434,7 +2434,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_STICK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FIELD}, .abilities = {ABILITY_KEEN_EYE, ABILITY_INNER_FOCUS}, @@ -2463,7 +2463,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD}, @@ -2492,7 +2492,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD}, @@ -2521,7 +2521,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, .abilities = {ABILITY_THICK_FAT, ABILITY_NONE}, @@ -2550,7 +2550,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NEVER_MELT_ICE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, .abilities = {ABILITY_THICK_FAT, ABILITY_NONE}, @@ -2579,7 +2579,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_STENCH, ABILITY_STICKY_HOLD}, @@ -2608,7 +2608,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_STENCH, ABILITY_STICKY_HOLD}, @@ -2637,7 +2637,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_BIG_PEARL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, .abilities = {ABILITY_SHELL_ARMOR, ABILITY_NONE}, @@ -2666,7 +2666,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_BIG_PEARL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, .abilities = {ABILITY_SHELL_ARMOR, ABILITY_NONE}, @@ -2695,7 +2695,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, @@ -2724,7 +2724,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, @@ -2753,7 +2753,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, @@ -2782,7 +2782,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_HARD_STONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY}, @@ -2811,7 +2811,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_INSOMNIA, ABILITY_NONE}, @@ -2840,7 +2840,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_INSOMNIA, ABILITY_NONE}, @@ -2869,7 +2869,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR}, @@ -2898,7 +2898,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR}, @@ -2927,7 +2927,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_GENDERLESS, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_SOUNDPROOF, ABILITY_STATIC}, @@ -2956,7 +2956,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_GENDERLESS, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_SOUNDPROOF, ABILITY_STATIC}, @@ -2985,7 +2985,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -3014,7 +3014,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -3043,7 +3043,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_THICK_CLUB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, .abilities = {ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD}, @@ -3072,7 +3072,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_THICK_CLUB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, .abilities = {ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD}, @@ -3101,7 +3101,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_MALE, .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_LIMBER, ABILITY_NONE}, @@ -3130,7 +3130,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_MALE, .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, @@ -3159,7 +3159,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, .abilities = {ABILITY_OWN_TEMPO, ABILITY_OBLIVIOUS}, @@ -3188,7 +3188,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, @@ -3217,7 +3217,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, @@ -3246,7 +3246,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD}, @@ -3275,7 +3275,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD}, @@ -3333,7 +3333,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -3362,7 +3362,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_FEMALE, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, .abilities = {ABILITY_EARLY_BIRD, ABILITY_NONE}, @@ -3391,7 +3391,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, @@ -3420,7 +3420,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, .abilities = {ABILITY_POISON_POINT, ABILITY_NONE}, @@ -3449,7 +3449,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_VEIL}, @@ -3478,7 +3478,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_VEIL}, @@ -3507,7 +3507,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_STAR_PIECE, .genderRatio = MON_GENDERLESS, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, .abilities = {ABILITY_ILLUMINATE, ABILITY_NATURAL_CURE}, @@ -3536,7 +3536,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_STAR_PIECE, .genderRatio = MON_GENDERLESS, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, .abilities = {ABILITY_ILLUMINATE, ABILITY_NATURAL_CURE}, @@ -3565,7 +3565,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE}, @@ -3594,7 +3594,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SWARM, ABILITY_NONE}, @@ -3623,7 +3623,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_FEMALE, .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, @@ -3652,7 +3652,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_STATIC, ABILITY_NONE}, @@ -3681,7 +3681,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE}, @@ -3710,7 +3710,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_NONE}, @@ -3739,7 +3739,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_MALE, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, @@ -3768,7 +3768,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 5, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_WATER_2, EGG_GROUP_DRAGON}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, @@ -3797,7 +3797,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 5, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_WATER_2, EGG_GROUP_DRAGON}, .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, @@ -3826,7 +3826,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, .abilities = {ABILITY_WATER_ABSORB, ABILITY_SHELL_ARMOR}, @@ -3855,7 +3855,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_METAL_POWDER, .genderRatio = MON_GENDERLESS, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_DITTO, EGG_GROUP_DITTO}, .abilities = {ABILITY_LIMBER, ABILITY_NONE}, @@ -3884,7 +3884,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_RUN_AWAY, ABILITY_NONE}, @@ -3913,7 +3913,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_WATER_ABSORB, ABILITY_NONE}, @@ -3942,7 +3942,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_VOLT_ABSORB, ABILITY_NONE}, @@ -3971,7 +3971,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE}, @@ -4000,7 +4000,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_GENDERLESS, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_TRACE, ABILITY_NONE}, @@ -4029,7 +4029,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SHELL_ARMOR}, @@ -4058,7 +4058,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SHELL_ARMOR}, @@ -4087,7 +4087,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_BATTLE_ARMOR}, @@ -4116,7 +4116,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_BATTLE_ARMOR}, @@ -4145,7 +4145,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_ROCK_HEAD, ABILITY_PRESSURE}, @@ -4174,7 +4174,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_CHESTO_BERRY, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 40, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, .abilities = {ABILITY_IMMUNITY, ABILITY_THICK_FAT}, @@ -4435,7 +4435,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_LUM_BERRY, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, @@ -4464,7 +4464,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, @@ -4493,7 +4493,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, @@ -4522,7 +4522,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, @@ -4551,7 +4551,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, @@ -4580,7 +4580,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, @@ -4609,7 +4609,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, @@ -4638,7 +4638,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, @@ -4667,7 +4667,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, @@ -4696,7 +4696,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_ORAN_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_RUN_AWAY, ABILITY_KEEN_EYE}, @@ -4725,7 +4725,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SITRUS_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_RUN_AWAY, ABILITY_KEEN_EYE}, @@ -4754,7 +4754,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_INSOMNIA, ABILITY_KEEN_EYE}, @@ -4783,7 +4783,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_INSOMNIA, ABILITY_KEEN_EYE}, @@ -4812,7 +4812,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SWARM, ABILITY_EARLY_BIRD}, @@ -4841,7 +4841,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SWARM, ABILITY_EARLY_BIRD}, @@ -4870,7 +4870,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SWARM, ABILITY_INSOMNIA}, @@ -4899,7 +4899,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SWARM, ABILITY_INSOMNIA}, @@ -4928,7 +4928,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, @@ -4957,7 +4957,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_YELLOW_SHARD, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, .abilities = {ABILITY_VOLT_ABSORB, ABILITY_ILLUMINATE}, @@ -4986,7 +4986,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_YELLOW_SHARD, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, .abilities = {ABILITY_VOLT_ABSORB, ABILITY_ILLUMINATE}, @@ -5015,7 +5015,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, .abilities = {ABILITY_STATIC, ABILITY_NONE}, @@ -5073,7 +5073,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE}, @@ -5102,7 +5102,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 10, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, .abilities = {ABILITY_HUSTLE, ABILITY_SERENE_GRACE}, @@ -5131,7 +5131,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 10, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FAIRY}, .abilities = {ABILITY_HUSTLE, ABILITY_SERENE_GRACE}, @@ -5160,7 +5160,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD}, @@ -5189,7 +5189,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD}, @@ -5218,7 +5218,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, .abilities = {ABILITY_STATIC, ABILITY_NONE}, @@ -5247,7 +5247,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, .abilities = {ABILITY_STATIC, ABILITY_NONE}, @@ -5276,7 +5276,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, .abilities = {ABILITY_STATIC, ABILITY_NONE}, @@ -5305,7 +5305,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -5334,7 +5334,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FAIRY}, .abilities = {ABILITY_THICK_FAT, ABILITY_HUGE_POWER}, @@ -5363,7 +5363,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 10, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FAIRY}, .abilities = {ABILITY_THICK_FAT, ABILITY_HUGE_POWER}, @@ -5392,7 +5392,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD}, @@ -5421,7 +5421,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_KINGS_ROCK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP}, @@ -5450,7 +5450,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -5479,7 +5479,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -5508,7 +5508,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -5537,7 +5537,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_RUN_AWAY, ABILITY_PICKUP}, @@ -5566,7 +5566,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -5595,7 +5595,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -5624,7 +5624,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SPEED_BOOST, ABILITY_COMPOUND_EYES}, @@ -5653,7 +5653,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, .abilities = {ABILITY_DAMP, ABILITY_WATER_ABSORB}, @@ -5682,7 +5682,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, .abilities = {ABILITY_DAMP, ABILITY_WATER_ABSORB}, @@ -5711,7 +5711,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 35, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_SYNCHRONIZE, ABILITY_NONE}, @@ -5798,7 +5798,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_KINGS_ROCK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, .abilities = {ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO}, @@ -5856,7 +5856,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_GENDERLESS, .eggCycles = 40, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, @@ -5885,7 +5885,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_SHADOW_TAG, ABILITY_NONE}, @@ -5914,7 +5914,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_PERSIM_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_INNER_FOCUS, ABILITY_EARLY_BIRD}, @@ -5943,7 +5943,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_STURDY, ABILITY_NONE}, @@ -5972,7 +5972,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_STURDY, ABILITY_NONE}, @@ -6001,7 +6001,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY}, @@ -6030,7 +6030,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SAND_VEIL}, @@ -6059,7 +6059,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_METAL_COAT, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY}, @@ -6088,7 +6088,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, .abilities = {ABILITY_INTIMIDATE, ABILITY_RUN_AWAY}, @@ -6117,7 +6117,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, .abilities = {ABILITY_INTIMIDATE, ABILITY_INTIMIDATE}, @@ -6146,7 +6146,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, .abilities = {ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM}, @@ -6175,7 +6175,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SWARM, ABILITY_NONE}, @@ -6204,7 +6204,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_BERRY_JUICE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_STURDY, ABILITY_NONE}, @@ -6233,7 +6233,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SWARM, ABILITY_GUTS}, @@ -6291,7 +6291,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SITRUS_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_PICKUP, ABILITY_NONE}, @@ -6320,7 +6320,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SITRUS_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_GUTS, ABILITY_NONE}, @@ -6349,7 +6349,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_MAGMA_ARMOR, ABILITY_FLAME_BODY}, @@ -6378,7 +6378,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_MAGMA_ARMOR, ABILITY_FLAME_BODY}, @@ -6407,7 +6407,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, @@ -6436,7 +6436,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NEVER_MELT_ICE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, @@ -6465,7 +6465,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_RED_SHARD, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, .abilities = {ABILITY_HUSTLE, ABILITY_NATURAL_CURE}, @@ -6494,7 +6494,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, .abilities = {ABILITY_HUSTLE, ABILITY_NONE}, @@ -6523,7 +6523,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, .abilities = {ABILITY_SUCTION_CUPS, ABILITY_NONE}, @@ -6552,7 +6552,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_HUSTLE}, @@ -6581,7 +6581,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_ABSORB}, @@ -6610,7 +6610,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_KEEN_EYE, ABILITY_STURDY}, @@ -6697,7 +6697,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, @@ -6726,7 +6726,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_PICKUP, ABILITY_NONE}, @@ -6755,7 +6755,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_STURDY, ABILITY_NONE}, @@ -6784,7 +6784,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_UP_GRADE, .genderRatio = MON_GENDERLESS, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_TRACE, ABILITY_NONE}, @@ -6813,7 +6813,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, @@ -6842,7 +6842,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_OWN_TEMPO, ABILITY_NONE}, @@ -6871,7 +6871,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_MALE, .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, .abilities = {ABILITY_GUTS, ABILITY_NONE}, @@ -6900,7 +6900,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_MALE, .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, @@ -6929,7 +6929,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_FEMALE, .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, @@ -6958,7 +6958,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, .abilities = {ABILITY_STATIC, ABILITY_NONE}, @@ -6987,7 +6987,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE}, @@ -7016,7 +7016,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_MOOMOO_MILK, .genderRatio = MON_FEMALE, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_THICK_FAT, ABILITY_NONE}, @@ -7360,7 +7360,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, @@ -7389,7 +7389,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, @@ -7418,7 +7418,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, .abilities = {ABILITY_OVERGROW, ABILITY_NONE}, @@ -7447,7 +7447,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, @@ -7476,7 +7476,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, @@ -7505,7 +7505,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_BLAZE, ABILITY_NONE}, @@ -7534,7 +7534,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, @@ -7563,7 +7563,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, @@ -7592,7 +7592,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, .abilities = {ABILITY_TORRENT, ABILITY_NONE}, @@ -7621,7 +7621,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_PECHA_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_RUN_AWAY, ABILITY_NONE}, @@ -7650,7 +7650,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_PECHA_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, @@ -7679,7 +7679,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_ORAN_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_PICKUP, ABILITY_NONE}, @@ -7708,7 +7708,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SITRUS_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_PICKUP, ABILITY_NONE}, @@ -7737,7 +7737,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE}, @@ -7766,7 +7766,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, @@ -7795,7 +7795,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SILVER_POWDER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SWARM, ABILITY_NONE}, @@ -7824,7 +7824,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, @@ -7853,7 +7853,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SILVER_POWDER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE}, @@ -7882,7 +7882,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_GRASS}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH}, @@ -7911,7 +7911,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_GRASS}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH}, @@ -7940,7 +7940,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_GRASS}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH}, @@ -7969,7 +7969,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD}, @@ -7998,7 +7998,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD}, @@ -8027,7 +8027,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD}, @@ -8056,7 +8056,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_COMPOUND_EYES, ABILITY_NONE}, @@ -8085,7 +8085,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_SPEED_BOOST, ABILITY_NONE}, @@ -8114,7 +8114,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_GENDERLESS, .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_WONDER_GUARD, ABILITY_NONE}, @@ -8143,7 +8143,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_GUTS, ABILITY_NONE}, @@ -8172,7 +8172,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, .abilities = {ABILITY_GUTS, ABILITY_NONE}, @@ -8201,7 +8201,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE}, @@ -8230,7 +8230,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE}, @@ -8259,7 +8259,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_CHESTO_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_OWN_TEMPO, ABILITY_NONE}, @@ -8288,7 +8288,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, @@ -8317,7 +8317,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE}, @@ -8346,7 +8346,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_BUG}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, @@ -8375,7 +8375,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SILVER_POWDER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_BUG}, .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, @@ -8404,7 +8404,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_WATER_2}, .abilities = {ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS}, @@ -8433,7 +8433,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_WATER_2}, .abilities = {ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS}, @@ -8462,7 +8462,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_LEPPA_BERRY, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE}, @@ -8491,7 +8491,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_LEPPA_BERRY, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE}, @@ -8520,7 +8520,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_PERSIM_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_COLOR_CHANGE, ABILITY_NONE}, @@ -8549,7 +8549,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_GENDERLESS, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, @@ -8578,7 +8578,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_GENDERLESS, .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, @@ -8607,7 +8607,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_STURDY, ABILITY_MAGNET_PULL}, @@ -8636,7 +8636,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_WHITE_SMOKE, ABILITY_NONE}, @@ -8694,7 +8694,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, @@ -8723,7 +8723,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, @@ -8752,7 +8752,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, @@ -8781,7 +8781,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR}, @@ -8810,7 +8810,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR}, @@ -8839,7 +8839,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, @@ -8868,7 +8868,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, .abilities = {ABILITY_MARVEL_SCALE, ABILITY_NONE}, @@ -8955,7 +8955,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SOFT_SAND, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_ARENA_TRAP}, @@ -8984,7 +8984,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_LEVITATE, ABILITY_LEVITATE}, @@ -9013,7 +9013,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, .abilities = {ABILITY_LEVITATE, ABILITY_LEVITATE}, @@ -9042,7 +9042,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_THICK_FAT, ABILITY_GUTS}, @@ -9071,7 +9071,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_KINGS_ROCK, .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_THICK_FAT, ABILITY_GUTS}, @@ -9100,7 +9100,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_STATIC, ABILITY_LIGHTNING_ROD}, @@ -9129,7 +9129,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_STATIC, ABILITY_LIGHTNING_ROD}, @@ -9158,7 +9158,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_RAWST_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, @@ -9187,7 +9187,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_RAWST_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_MAGMA_ARMOR, ABILITY_NONE}, @@ -9216,7 +9216,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, .abilities = {ABILITY_THICK_FAT, ABILITY_NONE}, @@ -9245,7 +9245,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, .abilities = {ABILITY_THICK_FAT, ABILITY_NONE}, @@ -9274,7 +9274,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, .abilities = {ABILITY_THICK_FAT, ABILITY_NONE}, @@ -9361,7 +9361,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_MINERAL}, .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, @@ -9390,7 +9390,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NEVER_MELT_ICE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_MINERAL}, .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, @@ -9419,7 +9419,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_MOON_STONE, .genderRatio = MON_GENDERLESS, .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, @@ -9448,7 +9448,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_SUN_STONE, .genderRatio = MON_GENDERLESS, .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, @@ -9477,7 +9477,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, .abilities = {ABILITY_THICK_FAT, ABILITY_HUGE_POWER}, @@ -9506,7 +9506,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_THICK_FAT, ABILITY_OWN_TEMPO}, @@ -9535,7 +9535,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_THICK_FAT, ABILITY_OWN_TEMPO}, @@ -9564,7 +9564,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, .abilities = {ABILITY_PLUS, ABILITY_NONE}, @@ -9593,7 +9593,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, .abilities = {ABILITY_MINUS, ABILITY_NONE}, @@ -9622,7 +9622,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, .abilities = {ABILITY_HYPER_CUTTER, ABILITY_INTIMIDATE}, @@ -9651,7 +9651,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_PURE_POWER, ABILITY_NONE}, @@ -9680,7 +9680,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_PURE_POWER, ABILITY_NONE}, @@ -9709,7 +9709,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_DRAGON}, .abilities = {ABILITY_NATURAL_CURE, ABILITY_NONE}, @@ -9738,7 +9738,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_DRAGON}, .abilities = {ABILITY_NATURAL_CURE, ABILITY_NONE}, @@ -9767,7 +9767,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, .abilities = {ABILITY_SHADOW_TAG, ABILITY_NONE}, @@ -9854,7 +9854,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, .abilities = {ABILITY_NATURAL_CURE, ABILITY_POISON_POINT}, @@ -9883,7 +9883,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_TRUANT, ABILITY_NONE}, @@ -9912,7 +9912,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_NONE}, @@ -9941,7 +9941,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_TRUANT, ABILITY_NONE}, @@ -9970,7 +9970,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_BIG_PEARL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_LIQUID_OOZE, ABILITY_STICKY_HOLD}, @@ -9999,7 +9999,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_BIG_PEARL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_LIQUID_OOZE, ABILITY_STICKY_HOLD}, @@ -10028,7 +10028,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, @@ -10057,7 +10057,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_CHESTO_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE}, @@ -10086,7 +10086,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_CHESTO_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE}, @@ -10115,7 +10115,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_CHESTO_BERRY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE}, @@ -10144,7 +10144,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_BLUE_SHARD, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, .abilities = {ABILITY_SHELL_ARMOR, ABILITY_NONE}, @@ -10173,7 +10173,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, @@ -10202,7 +10202,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE}, @@ -10318,7 +10318,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, @@ -10347,7 +10347,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, .abilities = {ABILITY_IMMUNITY, ABILITY_NONE}, @@ -10376,7 +10376,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_GREEN_SHARD, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 40, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, .abilities = {ABILITY_SWIFT_SWIM, ABILITY_ROCK_HEAD}, @@ -10492,7 +10492,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_MYSTIC_WATER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_FORECAST, ABILITY_NONE}, @@ -10521,7 +10521,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_MALE, .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_ILLUMINATE, ABILITY_SWARM}, @@ -10550,7 +10550,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = MON_FEMALE, .eggCycles = 15, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE}, .abilities = {ABILITY_OBLIVIOUS, ABILITY_NONE}, @@ -10579,7 +10579,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, .abilities = {ABILITY_SUCTION_CUPS, ABILITY_NONE}, @@ -10608,7 +10608,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, .abilities = {ABILITY_SUCTION_CUPS, ABILITY_NONE}, @@ -10637,7 +10637,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_NONE}, @@ -10666,7 +10666,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 30, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_ERRATIC, .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_NONE}, @@ -11246,7 +11246,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 70, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, From 4b9a00c798795a908aa0e8bb9a7f38b5978012be Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 08:27:01 +0530 Subject: [PATCH 17/38] Properly rename eventLegal to modernFatefulEncounter --- include/trade.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/trade.h b/include/trade.h index d7c1f369c9..d68267a2fc 100644 --- a/include/trade.h +++ b/include/trade.h @@ -15,8 +15,8 @@ extern const u8 gText_GenderlessSymbol[]; extern const u16 gTradeOrHatchMonShadowTilemap[]; void CB2_StartCreateTradeMenu(void); s32 GetGameProgressForLinkTrade(void); -s32 CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData rfuPlayer, u16 species2, u16 species, u8 isEventLegal); -s32 GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData rfuPlayer, struct RfuGameCompatibilityData rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isEventLegal); +s32 CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData rfuPlayer, u16 species2, u16 species, u8 ismodernFatefulEncounter); +s32 GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData rfuPlayer, struct RfuGameCompatibilityData rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 ismodernFatefulEncounter); void CB2_ReturnToTradeMenuFromSummary(void); #endif //GUARD_TRADE_H From 9beb4af7d4d7c416ea16c8f2e7c47139ec5765b0 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 08:35:53 +0530 Subject: [PATCH 18/38] Rename STRINGID_GOTCHAPKMNCAUGHT to STRINGID_GOTCHAPKMNCAUGHTPLAYER and STRINGID_GOTCHAPKMNCAUGHT2 to STRINGID_GOTCHAPKMNCAUGHTOLDMANORDUDE --- data/battle_scripts_2.s | 4 ++-- include/constants/battle_string_ids.h | 4 ++-- src/battle_message.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index eb2257005b..179504944c 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -74,7 +74,7 @@ BattleScript_SuccessBallThrow:: jumpifhalfword CMP_EQUAL, gLastUsedItem, ITEM_SAFARI_BALL, BattleScript_PrintCaughtMonInfo incrementgamestat GAME_STAT_POKEMON_CAPTURES BattleScript_PrintCaughtMonInfo:: - printstring STRINGID_GOTCHAPKMNCAUGHT + printstring STRINGID_GOTCHAPKMNCAUGHTPLAYER trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon printstring STRINGID_PKMNDATAADDEDTODEX waitstate @@ -97,7 +97,7 @@ BattleScript_SuccessBallThrowEnd:: finishturn BattleScript_OldMan_Pokedude_CaughtMessage:: - printstring STRINGID_GOTCHAPKMNCAUGHT2 + printstring STRINGID_GOTCHAPKMNCAUGHT_OLDMANORDUDE setbyte gBattleOutcome, B_OUTCOME_CAUGHT endlinkbattle finishturn diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 3b8d5bd9a2..5f1ce5db22 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -265,8 +265,8 @@ #define STRINGID_ITAPPEAREDCAUGHT 264 #define STRINGID_AARGHALMOSTHADIT 265 #define STRINGID_SHOOTSOCLOSE 266 -#define STRINGID_GOTCHAPKMNCAUGHT 267 -#define STRINGID_GOTCHAPKMNCAUGHT2 268 +#define STRINGID_GOTCHAPKMNCAUGHTPLAYER 267 +#define STRINGID_GOTCHAPKMNCAUGHT_OLDMANORDUDE 268 #define STRINGID_GIVENICKNAMECAPTURED 269 #define STRINGID_PKMNSENTTOPC 270 #define STRINGID_PKMNDATAADDEDTODEX 271 diff --git a/src/battle_message.c b/src/battle_message.c index 9e6789c9c6..e0538422bf 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -770,8 +770,8 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT - BATTLESTRINGS_TABLE_ST [STRINGID_ITAPPEAREDCAUGHT - BATTLESTRINGS_TABLE_START] = sText_ItAppearedCaught, [STRINGID_AARGHALMOSTHADIT - BATTLESTRINGS_TABLE_START] = sText_AarghAlmostHadIt, [STRINGID_SHOOTSOCLOSE - BATTLESTRINGS_TABLE_START] = sText_ShootSoClose, - [STRINGID_GOTCHAPKMNCAUGHT - BATTLESTRINGS_TABLE_START] = sText_GotchaPkmnCaught, - [STRINGID_GOTCHAPKMNCAUGHT2 - BATTLESTRINGS_TABLE_START] = sText_GotchaPkmnCaught2, + [STRINGID_GOTCHAPKMNCAUGHTPLAYER - BATTLESTRINGS_TABLE_START] = sText_GotchaPkmnCaught, + [STRINGID_GOTCHAPKMNCAUGHT_OLDMANORDUDE - BATTLESTRINGS_TABLE_START] = sText_GotchaPkmnCaught2, [STRINGID_GIVENICKNAMECAPTURED - BATTLESTRINGS_TABLE_START] = sText_GiveNicknameCaptured, [STRINGID_PKMNSENTTOPC - BATTLESTRINGS_TABLE_START] = sText_PkmnSentToPC, [STRINGID_PKMNDATAADDEDTODEX - BATTLESTRINGS_TABLE_START] = sText_PkmnDataAddedToDex, From 09c3c5547fe834ba0ebf22c84fb0914d53dff4a8 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 08:43:27 +0530 Subject: [PATCH 19/38] Renamed PrintMysteryGiftOrEReaderTopMenu to PrintMysteryGiftOrEReaderHeader --- include/mystery_gift_menu.h | 2 +- src/mystery_gift_menu.c | 20 ++++++++++---------- src/mystery_gift_show_card.c | 2 +- src/mystery_gift_show_news.c | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/include/mystery_gift_menu.h b/include/mystery_gift_menu.h index 84c647c5b4..ad991d2da9 100644 --- a/include/mystery_gift_menu.h +++ b/include/mystery_gift_menu.h @@ -6,7 +6,7 @@ extern bool8 gGiftIsFromEReader; bool32 PrintMysteryGiftMenuMessage(u8 * cmdPtr, const u8 * src); void AddTextPrinterToWindow1(const u8 *str); void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void); -void PrintMysteryGiftOrEReaderTopMenu(bool8, bool32); +void PrintMysteryGiftOrEReaderHeader(bool8 isJapanese, bool32 usePickOkCancel); void CB2_InitMysteryGift(void); void CB2_MysteryGiftEReader(void); s8 DoMysteryGiftYesNo(u8 * textState, u16 * windowId, bool8 yesNoBoxPlacement, const u8 * str); diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index 0c98001462..c72d66e090 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -410,7 +410,7 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 isEReader) FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 17); FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 17); MG_DrawCheckerboardPattern(); - PrintMysteryGiftOrEReaderTopMenu(isEReader, FALSE); + PrintMysteryGiftOrEReaderHeader(isEReader, FALSE); gMain.state++; break; case 2: @@ -463,7 +463,7 @@ void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void) SetMainCallback2(CB2_InitTitleScreen); } -void PrintMysteryGiftOrEReaderTopMenu(bool8 isEReader, bool32 useCancel) +void PrintMysteryGiftOrEReaderHeader(bool8 isEReader, bool32 useCancel) { const u8 * options; s32 width; @@ -1153,7 +1153,7 @@ static void Task_MysteryGift(u8 taskId) if (PrintMysteryGiftMenuMessage(&data->textState, gText_DontHaveCardNewOneInput)) { data->state = MG_STATE_SOURCE_PROMPT; - PrintMysteryGiftOrEReaderTopMenu(FALSE, TRUE); + PrintMysteryGiftOrEReaderHeader(FALSE, TRUE); } } else @@ -1161,7 +1161,7 @@ static void Task_MysteryGift(u8 taskId) if (PrintMysteryGiftMenuMessage(&data->textState, gText_DontHaveNewsNewOneInput)) { data->state = MG_STATE_SOURCE_PROMPT; - PrintMysteryGiftOrEReaderTopMenu(FALSE, TRUE); + PrintMysteryGiftOrEReaderHeader(FALSE, TRUE); } } break; @@ -1196,7 +1196,7 @@ static void Task_MysteryGift(u8 taskId) else { data->state = MG_STATE_TO_MAIN_MENU; - PrintMysteryGiftOrEReaderTopMenu(FALSE, FALSE); + PrintMysteryGiftOrEReaderHeader(FALSE, FALSE); } break; } @@ -1372,7 +1372,7 @@ static void Task_MysteryGift(u8 taskId) { // Did not receive card/news, return to main menu data->state = MG_STATE_TO_MAIN_MENU; - PrintMysteryGiftOrEReaderTopMenu(FALSE, FALSE); + PrintMysteryGiftOrEReaderHeader(FALSE, FALSE); } else { @@ -1384,7 +1384,7 @@ static void Task_MysteryGift(u8 taskId) if (SaveOnMysteryGiftMenu(&data->textState)) { data->state = MG_STATE_TO_MAIN_MENU; - PrintMysteryGiftOrEReaderTopMenu(FALSE, FALSE); + PrintMysteryGiftOrEReaderHeader(FALSE, FALSE); } break; case MG_STATE_LOAD_GIFT: @@ -1496,7 +1496,7 @@ static void Task_MysteryGift(u8 taskId) if (PrintThrownAway(&data->textState, data->isWonderNews)) { data->state = MG_STATE_TO_MAIN_MENU; - PrintMysteryGiftOrEReaderTopMenu(FALSE, FALSE); + PrintMysteryGiftOrEReaderHeader(FALSE, FALSE); } break; case MG_STATE_GIFT_INPUT_EXIT: @@ -1581,7 +1581,7 @@ static void Task_MysteryGift(u8 taskId) else { data->state = MG_STATE_TO_MAIN_MENU; - PrintMysteryGiftOrEReaderTopMenu(FALSE, FALSE); + PrintMysteryGiftOrEReaderHeader(FALSE, FALSE); } } break; @@ -1590,7 +1590,7 @@ static void Task_MysteryGift(u8 taskId) if (PrintMysteryGiftMenuMessage(&data->textState, gText_CommunicationError)) { data->state = MG_STATE_TO_MAIN_MENU; - PrintMysteryGiftOrEReaderTopMenu(FALSE, FALSE); + PrintMysteryGiftOrEReaderHeader(FALSE, FALSE); } break; case MG_STATE_EXIT: diff --git a/src/mystery_gift_show_card.c b/src/mystery_gift_show_card.c index e7b2f99304..fc3e87c83f 100644 --- a/src/mystery_gift_show_card.c +++ b/src/mystery_gift_show_card.c @@ -283,7 +283,7 @@ s32 WonderCard_Exit(bool32 useCancel) FreeMonIconPalettes(); break; case 5: - PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, useCancel); + PrintMysteryGiftOrEReaderHeader(gGiftIsFromEReader, useCancel); break; case 6: CopyBgTilemapBufferToVram(0); diff --git a/src/mystery_gift_show_news.c b/src/mystery_gift_show_news.c index 43d0dea12a..e6a722a8f0 100644 --- a/src/mystery_gift_show_news.c +++ b/src/mystery_gift_show_news.c @@ -251,7 +251,7 @@ s32 WonderNews_Exit(bool32 useCancel) } break; case 5: - PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, useCancel); + PrintMysteryGiftOrEReaderHeader(gGiftIsFromEReader, useCancel); break; case 6: MG_DrawCheckerboardPattern(); From 197fc642ab8c89106fd0fc4b5cacf7344e748d61 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 08:54:00 +0530 Subject: [PATCH 20/38] Sync battle anim args --- data/battle_anim_scripts.s | 10 +++++----- include/constants/battle_anim.h | 15 +++++++++++---- src/battle_anim_dark.c | 8 ++++---- src/battle_anim_mon_movement.c | 9 +++++---- 4 files changed, 25 insertions(+), 17 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 3304833c78..db67dd9566 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1498,11 +1498,11 @@ FuryCutterStrongest: Move_SELF_DESTRUCT: loadspritegfx ANIM_TAG_EXPLOSION createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 0, 9, RGB_RED - createvisualtask AnimTask_ShakeMon2, 5, 4, 6, 0, 38, 1 - createvisualtask AnimTask_ShakeMon2, 5, 5, 6, 0, 38, 1 - createvisualtask AnimTask_ShakeMon2, 5, 6, 6, 0, 38, 1 - createvisualtask AnimTask_ShakeMon2, 5, 7, 6, 0, 38, 1 - createvisualtask AnimTask_ShakeMon2, 5, 8, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_PLAYER_LEFT, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_PLAYER_RIGHT, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_OPPONENT_LEFT, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_OPPONENT_RIGHT, 6, 0, 38, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_ATTACKER_FORCE, 6, 0, 38, 1 call SelfDestructExplode call SelfDestructExplode waitforvisualfinish diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 4fc4e4407f..54a1d37cb4 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -298,10 +298,17 @@ #define ANIM_TAG_BLUE_RING_2 (ANIM_SPRITES_START + 288) // battlers -#define ANIM_ATTACKER 0 -#define ANIM_TARGET 1 -#define ANIM_ATK_PARTNER 2 -#define ANIM_DEF_PARTNER 3 +#define ANIM_ATTACKER 0 +#define ANIM_TARGET 1 +#define ANIM_ATK_PARTNER 2 +#define ANIM_DEF_PARTNER 3 + +// Below are used by AnimTask_ShakeMon2 and AnimTask_SetGrayscaleOrOriginalPal +#define ANIM_PLAYER_LEFT (MAX_BATTLERS_COUNT + 0) +#define ANIM_PLAYER_RIGHT (MAX_BATTLERS_COUNT + 1) +#define ANIM_OPPONENT_LEFT (MAX_BATTLERS_COUNT + 2) +#define ANIM_OPPONENT_RIGHT (MAX_BATTLERS_COUNT + 3) +#define ANIM_ATTACKER_FORCE (MAX_BATTLERS_COUNT + 4) // stereo panning constants [0-255] // diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c index fbce95e301..25366c958e 100644 --- a/src/battle_anim_dark.c +++ b/src/battle_anim_dark.c @@ -880,19 +880,19 @@ void AnimTask_SetGrayscaleOrOriginalPal(u8 taskId) case ANIM_DEF_PARTNER: spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); break; - case 4: + case ANIM_PLAYER_LEFT: position = B_POSITION_PLAYER_LEFT; calcSpriteId = TRUE; break; - case 5: + case ANIM_PLAYER_RIGHT: position = B_POSITION_PLAYER_RIGHT; calcSpriteId = TRUE; break; - case 6: + case ANIM_OPPONENT_LEFT: position = B_POSITION_OPPONENT_LEFT; calcSpriteId = TRUE; break; - case 7: + case ANIM_OPPONENT_RIGHT: position = B_POSITION_OPPONENT_RIGHT; calcSpriteId = TRUE; break; diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c index a514080166..7d4b93eb20 100644 --- a/src/battle_anim_mon_movement.c +++ b/src/battle_anim_mon_movement.c @@ -155,19 +155,20 @@ void AnimTask_ShakeMon2(u8 taskId) if (spriteId == SPRITE_NONE) abort = TRUE; } - else if (gBattleAnimArgs[0] != 8) + else if (gBattleAnimArgs[0] != ANIM_ATTACKER_FORCE) { switch (gBattleAnimArgs[0]) { - case 4: + case ANIM_PLAYER_LEFT: battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); break; - case 5: + case ANIM_PLAYER_RIGHT: battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); break; - case 6: + case ANIM_OPPONENT_LEFT: battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); break; + case ANIM_OPPONENT_RIGHT: default: battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); break; From d72c9efeaa521e665e8a747b03acc962b749c50b Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 09:02:53 +0530 Subject: [PATCH 21/38] Add missing TYPE_MUL_NO_EFFECT and PARTY_SIZE usage --- src/battle_ai_switch_items.c | 6 +++--- src/battle_controller_opponent.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 73c013cfaa..e8674ab55c 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -458,8 +458,8 @@ u8 GetMostSuitableMonToSwitchInto(void) invalidMons = 0; while (invalidMons != 0x3F) // All mons are invalid. { - bestDmg = 0; - bestMonId = 6; + bestDmg = TYPE_MUL_NO_EFFECT; + bestMonId = PARTY_SIZE; // Find the mon whose type is the most suitable offensively. for (i = 0; i < PARTY_SIZE; ++i) { @@ -513,7 +513,7 @@ u8 GetMostSuitableMonToSwitchInto(void) gMoveResultFlags = 0; gCritMultiplier = 1; bestDmg = 0; - bestMonId = 6; + bestMonId = PARTY_SIZE; // If we couldn't find the best mon in terms of typing, find the one that deals most damage. for (i = 0; i < PARTY_SIZE; ++i) { diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index b4b6ebbdf0..f0e08b83eb 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1051,7 +1051,7 @@ static void OpponentHandleLoadMonSprite(void) static void OpponentHandleSwitchInAnim(void) { - *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6; + *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = PARTY_SIZE; gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1]; StartSendOutAnim(gActiveBattler, gBattleBufferA[gActiveBattler][2]); gBattlerControllerFuncs[gActiveBattler] = SwitchIn_TryShinyAnim; From 8d3e3265322bf6fda06861982ab337f051408398 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 09:10:32 +0530 Subject: [PATCH 22/38] Added missing use of gSaveBlock1Ptr->registeredItem = ITEM_NONE; in src/new_game.c --- src/new_game.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/new_game.c b/src/new_game.c index ab5fa9958c..a3153e8777 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -29,6 +29,7 @@ #include "berry_powder.h" #include "pokemon_jump.h" #include "event_scripts.h" +#include "constants/items.h" // this file's functions static void ResetMiniGamesResults(void); @@ -135,7 +136,7 @@ void NewGameInitData(void) ZeroPlayerPartyMons(); ResetPokemonStorageSystem(); ClearRoamerData(); - gSaveBlock1Ptr->registeredItem = 0; + gSaveBlock1Ptr->registeredItem = ITEM_NONE; ClearBag(); NewGameInitPCItems(); ClearEnigmaBerries(); From 50b76366116844426a37d4dafb59c68af73e4e7e Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 09:15:44 +0530 Subject: [PATCH 23/38] Add NUM_TILES_PER_METATILE constant --- include/fieldmap.h | 2 ++ src/field_camera.c | 2 +- src/shop.c | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/include/fieldmap.h b/include/fieldmap.h index a23b6c428a..639e329a9a 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -12,6 +12,8 @@ #define MAX_MAP_DATA_SIZE 0x2800 #define VIRTUAL_MAP_SIZE (MAX_MAP_DATA_SIZE) +#define NUM_TILES_PER_METATILE 8 + // Map coordinates are offset by 7 when using the map // buffer because it needs to load sufficient border // metatiles to fill the player's view (the player has diff --git a/src/field_camera.c b/src/field_camera.c index e2839d76ee..ddc9cdb8ae 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -236,7 +236,7 @@ static void DrawMetatileAt(const struct MapLayout *mapLayout, u16 offset, int x, metatiles = mapLayout->secondaryTileset->metatiles; metatileId -= NUM_METATILES_IN_PRIMARY; } - DrawMetatile(MapGridGetMetatileLayerTypeAt(x, y), metatiles + metatileId * 8, offset); + DrawMetatile(MapGridGetMetatileLayerTypeAt(x, y), metatiles + metatileId * NUM_TILES_PER_METATILE, offset); } static void DrawMetatile(s32 metatileLayerType, const u16 *tiles, u16 offset) diff --git a/src/shop.c b/src/shop.c index 46c0d755a6..98e8491469 100644 --- a/src/shop.c +++ b/src/shop.c @@ -751,9 +751,9 @@ static void BuyMenuDrawMapBg(void) metatileLayerType = MapGridGetMetatileLayerTypeAt(x + i, y + j); if (metatile < NUM_METATILES_IN_PRIMARY) - BuyMenuDrawMapMetatile(i, j, mapLayout->primaryTileset->metatiles + metatile * 8, metatileLayerType); + BuyMenuDrawMapMetatile(i, j, mapLayout->primaryTileset->metatiles + metatile * NUM_TILES_PER_METATILE, metatileLayerType); else - BuyMenuDrawMapMetatile(i, j, mapLayout->secondaryTileset->metatiles + ((metatile - NUM_METATILES_IN_PRIMARY) * 8), metatileLayerType); + BuyMenuDrawMapMetatile(i, j, mapLayout->secondaryTileset->metatiles + ((metatile - NUM_METATILES_IN_PRIMARY) * NUM_TILES_PER_METATILE), metatileLayerType); } } } From 3dc1a6552c26e02c3f8fc826862292b7f23a966b Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 09:22:52 +0530 Subject: [PATCH 24/38] Introduce NUM_BATTLE_SIDES --- include/battle.h | 8 ++++---- include/constants/battle.h | 1 + src/battle_main.c | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/include/battle.h b/include/battle.h index dd9c3ffcbe..2df2eaf7a6 100644 --- a/include/battle.h +++ b/include/battle.h @@ -250,7 +250,7 @@ struct SideTimer /*0x0B*/ u8 fieldB; }; -extern struct SideTimer gSideTimers[]; +extern struct SideTimer gSideTimers[NUM_BATTLE_SIDES]; struct WishFutureKnock { @@ -261,7 +261,7 @@ struct WishFutureKnock u8 wishCounter[MAX_BATTLERS_COUNT]; u8 wishMonId[MAX_BATTLERS_COUNT]; u8 weatherDuration; - u8 knockedOffMons[2]; + u8 knockedOffMons[NUM_BATTLE_SIDES]; // Each battler is represented by a bit. }; extern struct WishFutureKnock gWishFutureKnock; @@ -424,7 +424,7 @@ struct BattleStruct u8 AI_monToSwitchIntoId[2]; u8 simulatedInputState[4]; // used by Oak/Old Man/Pokedude controllers u8 lastTakenMove[MAX_BATTLERS_COUNT * 2 * 2]; // ask gamefreak why they declared it that way - u16 hpOnSwitchout[2]; + u16 hpOnSwitchout[NUM_BATTLE_SIDES]; u8 abilityPreventingSwitchout; u8 hpScale; u16 savedBattleTypeFlags; @@ -691,7 +691,7 @@ extern const u8 *gSelectionBattleScripts[MAX_BATTLERS_COUNT]; extern u16 gLastMoves[MAX_BATTLERS_COUNT]; extern u8 gBattlerByTurnOrder[MAX_BATTLERS_COUNT]; extern u8 gBattleCommunication[BATTLE_COMMUNICATION_ENTRIES_COUNT]; -extern u16 gSideStatuses[2]; +extern u16 gSideStatuses[NUM_BATTLE_SIDES]; extern u32 gHitMarker; extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT]; extern u8 gMoveResultFlags; diff --git a/include/constants/battle.h b/include/constants/battle.h index 3000f033c2..8f856586b6 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -36,6 +36,7 @@ #define B_SIDE_PLAYER 0 #define B_SIDE_OPPONENT 1 +#define NUM_BATTLE_SIDES 2 #define B_FLANK_LEFT 0 #define B_FLANK_RIGHT 1 diff --git a/src/battle_main.c b/src/battle_main.c index 66a5cc7680..b491fa7e22 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -185,8 +185,8 @@ EWRAM_DATA u32 gHitMarker = 0; static EWRAM_DATA u8 sUnusedBattlersArray[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u8 gUnusedFirstBattleVar2 = 0; -EWRAM_DATA u16 gSideStatuses[2] = {0}; -EWRAM_DATA struct SideTimer gSideTimers[2] = {0}; +EWRAM_DATA u16 gSideStatuses[NUM_BATTLE_SIDES] = {0}; +EWRAM_DATA struct SideTimer gSideTimers[NUM_BATTLE_SIDES] = {0}; EWRAM_DATA u32 gStatuses3[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gPauseCounterBattle = 0; From ecdfcc4e46d3afc9d1f7c41579539b7f9884e166 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 09:24:39 +0530 Subject: [PATCH 25/38] Rename sListMenuItems_TradeBoard to sTradeBoardListMenuItems --- src/data/union_room.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/data/union_room.h b/src/data/union_room.h index 0bbeadbb48..a96b6215c4 100644 --- a/src/data/union_room.h +++ b/src/data/union_room.h @@ -309,7 +309,7 @@ static const struct WindowTemplate sWindowTemplate_TradingBoardMain = { .baseBlock = 0x039 }; -static const struct ListMenuItem sListMenuItems_TradeBoard[] = { +static const struct ListMenuItem sTradeBoardListMenuItems[] = { {gText_UR_EmptyString, -3}, {gText_UR_EmptyString, 0}, {gText_UR_EmptyString, 1}, @@ -323,10 +323,10 @@ static const struct ListMenuItem sListMenuItems_TradeBoard[] = { }; static const struct ListMenuTemplate sListMenuTemplate_TradeBoard = { - .items = sListMenuItems_TradeBoard, + .items = sTradeBoardListMenuItems, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .itemPrintFunc = TradeBoardListMenuItemPrintFunc, - .totalItems = ARRAY_COUNT(sListMenuItems_TradeBoard), + .totalItems = ARRAY_COUNT(sTradeBoardListMenuItems), .maxShowed = 5, .windowId = 0, .header_X = 0, From 0b5c6af54448ea7077aea9bf3a2a45f561b77efe Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 09:36:33 +0530 Subject: [PATCH 26/38] More missing constant usage --- src/berry_pouch.c | 4 ++-- src/data/union_room.h | 2 +- src/daycare.c | 2 +- src/field_specials.c | 2 +- src/item_menu.c | 2 +- src/item_pc.c | 4 ++-- src/learn_move.c | 8 ++++---- src/player_pc.c | 8 ++++---- src/slot_machine.c | 2 +- src/start_menu.c | 4 ++-- src/union_room_chat.c | 8 ++++---- 11 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/berry_pouch.c b/src/berry_pouch.c index ac9c0d318f..3342f074ac 100644 --- a/src/berry_pouch.c +++ b/src/berry_pouch.c @@ -948,7 +948,7 @@ static void Task_BerryPouchMain(u8 taskId) { switch (menuInput) { - case -1: + case MENU_B_PRESSED: return; case -2: if (sStaticCnt.type != BERRYPOUCH_FROMBERRYCRUSH) @@ -1047,7 +1047,7 @@ static void Task_NormalContextMenu_HandleInput(u8 taskId) { case -2: break; - case -1: + case MENU_B_PRESSED: PlaySE(SE_SELECT); sContextMenuActions[BP_ACTION_EXIT].func.void_u8(taskId); break; diff --git a/src/data/union_room.h b/src/data/union_room.h index a96b6215c4..7a5fc04cf8 100644 --- a/src/data/union_room.h +++ b/src/data/union_room.h @@ -310,7 +310,7 @@ static const struct WindowTemplate sWindowTemplate_TradingBoardMain = { }; static const struct ListMenuItem sTradeBoardListMenuItems[] = { - {gText_UR_EmptyString, -3}, + {gText_UR_EmptyString, LIST_HEADER}, {gText_UR_EmptyString, 0}, {gText_UR_EmptyString, 1}, {gText_UR_EmptyString, 2}, diff --git a/src/daycare.c b/src/daycare.c index b3bc5c3a06..2cada63fc2 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1964,7 +1964,7 @@ static void CB2_EggHatch_1(void) DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar3, species, gender, personality, EggHatchSetMonNickname); break; case 1: - case -1: + case MENU_B_PRESSED: sEggHatchData->CB2_state++; } break; diff --git a/src/field_specials.c b/src/field_specials.c index 2d792eee00..ea6d4d2c9a 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1412,7 +1412,7 @@ static void Task_ListMenuHandleInput(u8 taskId) input = ListMenu_ProcessInput(task->data[14]); switch (input) { - case -1: + case MENU_B_PRESSED: break; case -2: gSpecialVar_Result = 0x7F; diff --git a/src/item_menu.c b/src/item_menu.c index c45f693d8b..8899919c8e 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1448,7 +1448,7 @@ static void Task_FieldItemContextMenuHandleInput(u8 taskId) input = Menu_ProcessInputNoWrapAround(); switch (input) { - case -1: + case MENU_B_PRESSED: PlaySE(SE_SELECT); sItemMenuContextActions[ITEMMENUACTION_CANCEL].func.void_u8(taskId); break; diff --git a/src/item_pc.c b/src/item_pc.c index 5a114e9fd2..f3a1b09b8d 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -736,7 +736,7 @@ static void Task_ItemPcMain(u8 taskId) ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row); switch (input) { - case -1: + case MENU_B_PRESSED: break; case -2: PlaySE(SE_SELECT); @@ -853,7 +853,7 @@ static void Task_ItemPcSubmenuRun(u8 taskId) s8 input = Menu_ProcessInputNoWrapAround(); switch (input) { - case -1: + case MENU_B_PRESSED: PlaySE(SE_SELECT); Task_ItemPcCancel(taskId); break; diff --git a/src/learn_move.c b/src/learn_move.c index 2f7f04b018..e163d7e419 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -525,7 +525,7 @@ static void MoveRelearnerStateMachine(void) } break; case 1: - case -1: + case MENU_B_PRESSED: sMoveRelearner->state = 3; break; } @@ -542,7 +542,7 @@ static void MoveRelearnerStateMachine(void) sMoveRelearner->state = 14; break; case 1: - case -1: + case MENU_B_PRESSED: sMoveRelearner->state = 3; break; } @@ -563,7 +563,7 @@ static void MoveRelearnerStateMachine(void) sMoveRelearner->state = 19; break; case 1: - case -1: + case MENU_B_PRESSED: sMoveRelearner->state = 24; break; } @@ -583,7 +583,7 @@ static void MoveRelearnerStateMachine(void) sMoveRelearner->state = 27; break; case 1: - case -1: + case MENU_B_PRESSED: sMoveRelearner->state = 16; break; } diff --git a/src/player_pc.c b/src/player_pc.c index d48282032d..a46cb66a7e 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -194,7 +194,7 @@ static void Task_TopMenuHandleInput(u8 taskId) { case -2: break; - case -1: + case MENU_B_PRESSED: PlaySE(SE_SELECT); ClearStdWindowAndFrameToTransparent(tWindowId, FALSE); ClearWindowTilemap(tWindowId); @@ -471,7 +471,7 @@ static void Task_MailboxPcHandleInput(u8 taskId) ListMenuGetScrollAndRow(tListMenuTaskId, &gPlayerPcMenuManager.cursorPos, &gPlayerPcMenuManager.itemsAbove); switch (input) { - case -1: + case MENU_B_PRESSED: break; case -2: PlaySE(SE_SELECT); @@ -540,7 +540,7 @@ static void Task_MailSubmenuHandleInput(u8 taskId) s8 input = Menu_ProcessInput_other(); switch (input) { - case -1: + case MENU_B_PRESSED: PlaySE(SE_SELECT); Task_PlayerPcExitMailSubmenu(taskId); break; @@ -618,7 +618,7 @@ static void Task_MoveToBagYesNoMenuHandleInput(u8 taskId) case 0: Task_TryPutMailInBag_DestroyMsgIfSuccessful(taskId); break; - case -1: + case MENU_B_PRESSED: PlaySE(SE_SELECT); // fallthrough case 1: diff --git a/src/slot_machine.c b/src/slot_machine.c index aa5d4c67ef..88d2b2d7a0 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -1122,7 +1122,7 @@ static void MainTask_ConfirmExitGame(u8 taskId) data[0] = 3; break; case 1: - case -1: + case MENU_B_PRESSED: SetSlotMachineSetupTask(SLOTTASK_DESTROY_YESNO, 0); data[0] = 4; break; diff --git a/src/start_menu.c b/src/start_menu.c index c6a1c5c087..d5fdb52ecb 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -726,7 +726,7 @@ static u8 SaveDialogCB_AskSaveHandleInput(void) sSaveDialogCB = SaveDialogCB_PrintSavingDontTurnOffPower; break; case 1: - case -1: + case MENU_B_PRESSED: CloseSaveStatsWindow_(); CloseSaveMessageWindow(); return SAVECB_RETURN_CANCEL; @@ -765,7 +765,7 @@ static u8 SaveDialogCB_AskOverwriteOrReplacePreviousFileHandleInput(void) sSaveDialogCB = SaveDialogCB_PrintSavingDontTurnOffPower; break; case 1: - case -1: + case MENU_B_PRESSED: CloseSaveStatsWindow_(); CloseSaveMessageWindow(); return SAVECB_RETURN_CANCEL; diff --git a/src/union_room_chat.c b/src/union_room_chat.c index aedc57fdc8..5f9a49570f 100644 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -594,7 +594,7 @@ static void ChatEntryRoutine_AskQuitChatting(void) input = UnionRoomChat_ProcessInput(); switch (input) { - case -1: + case MENU_B_PRESSED: case 1: UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO, 0); sWork->routineState = 3; @@ -633,7 +633,7 @@ static void ChatEntryRoutine_AskQuitChatting(void) input = UnionRoomChat_ProcessInput(); switch (input) { - case -1: + case MENU_B_PRESSED: case 1: UnionRoomChat_StartDisplaySubtask(CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO, 0); sWork->routineState = 3; @@ -926,7 +926,7 @@ static void ChatEntryRoutine_SaveAndExit(void) input = UnionRoomChat_ProcessInput(); switch (input) { - case -1: + case MENU_B_PRESSED: case 1: sWork->routineState = 12; break; @@ -951,7 +951,7 @@ static void ChatEntryRoutine_SaveAndExit(void) input = UnionRoomChat_ProcessInput(); switch (input) { - case -1: + case MENU_B_PRESSED: case 1: sWork->routineState = 12; break; From 9712d038787eb5184bd63b9ebd0d88dfee33da7f Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 09:38:24 +0530 Subject: [PATCH 27/38] Adding documentation about GFHeader --- src/rom_header_gf.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/rom_header_gf.c b/src/rom_header_gf.c index 60696d810a..b285391858 100644 --- a/src/rom_header_gf.c +++ b/src/rom_header_gf.c @@ -7,6 +7,15 @@ #include "pokeball.h" #include "pokedex.h" +// The purpose of this struct is for outside applications to be +// able to access parts of the ROM or its save file, like a public API. +// In vanilla, it was used by Colosseum and XD to access pokemon graphics. +// +// If this struct is rearranged in any way, it defeats the purpose of +// having it at all. Applications like PKHex or streaming HUDs may find +// these values useful, so there's some potential benefit to keeping it. +// If there's a compilation problem below, just comment out the assignment +// instead of changing this struct. struct GFRomHeader { u32 version; From 1d22e14ae0d80ff5ddc7bab856470b052229aae6 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 09:51:12 +0530 Subject: [PATCH 28/38] Add documentation to thunder weather effect --- include/field_weather.h | 10 +-- src/field_weather_effects.c | 152 +++++++++++++++++++----------------- 2 files changed, 86 insertions(+), 76 deletions(-) diff --git a/include/field_weather.h b/include/field_weather.h index c3c07d10d7..a1e1a2d7fe 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -71,12 +71,12 @@ struct Weather u16 snowflakeTimer; u8 snowflakeSpriteCount; u8 targetSnowflakeSpriteCount; - u16 thunderDelay; - u16 thunderCounter; + u16 thunderTimer; // general-purpose timer for state transitions + u16 thunderSETimer; // timer for thunder sound effect bool8 thunderAllowEnd; - bool8 thunderSkipShort; - u8 thunderShortRetries; - bool8 thunderTriggered; + bool8 thunderLongBolt; // true if this cycle will end in a long lightning bolt + u8 thunderShortBolts; // the number of short bolts this cycle + bool8 thunderEnqueued; u16 fogHScrollPosX; u16 fogHScrollCounter; u16 fogHScrollOffset; diff --git a/src/field_weather_effects.c b/src/field_weather_effects.c index 6d69e35525..c059e7f529 100644 --- a/src/field_weather_effects.c +++ b/src/field_weather_effects.c @@ -974,29 +974,29 @@ static void UpdateSnowflakeSprite(struct Sprite *sprite) enum { // This block of states is run only once // when first setting up the thunderstorm - TSTORM_STATE_LOAD_RAIN, - TSTORM_STATE_CREATE_RAIN, - TSTORM_STATE_INIT_RAIN, - TSTORM_STATE_WAIT_CHANGE, + THUNDER_STATE_LOAD_RAIN, + THUNDER_STATE_CREATE_RAIN, + THUNDER_STATE_INIT_RAIN, + THUNDER_STATE_WAIT_CHANGE, // The thunderstorm loops through these states, // not necessarily in order. - TSTORM_STATE_LOOP_START, - TSTORM_STATE_LOOP_WAIT, - TSTORM_STATE_INIT_THUNDER_SHORT_1, - TSTORM_STATE_INIT_THUNDER_SHORT_2, - TSTORM_STATE_TRY_THUNDER_SHORT, - TSTORM_STATE_TRY_NEW_THUNDER, - TSTORM_STATE_WAIT_THUNDER_SHORT, - TSTORM_STATE_INIT_THUNDER_LONG, - TSTORM_STATE_WAIT_THUNDER_LONG, - TSTORM_STATE_FADE_THUNDER_LONG, - TSTORM_STATE_END_THUNDER_LONG, + THUNDER_STATE_NEW_CYCLE, + THUNDER_STATE_NEW_CYCLE_WAIT, + THUNDER_STATE_INIT_CYCLE_1, + THUNDER_STATE_INIT_CYCLE_2, + THUNDER_STATE_SHORT_BOLT, + THUNDER_STATE_TRY_NEW_BOLT, + THUNDER_STATE_WAIT_BOLT_SHORT, + THUNDER_STATE_INIT_BOLT_LONG, + THUNDER_STATE_WAIT_BOLT_LONG, + THUNDER_STATE_FADE_BOLT_LONG, + THUNDER_STATE_END_BOLT_LONG, }; void Thunderstorm_InitVars(void) { - gWeatherPtr->initStep = TSTORM_STATE_LOAD_RAIN; + gWeatherPtr->initStep = THUNDER_STATE_LOAD_RAIN; gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleDelay = 4; @@ -1005,7 +1005,7 @@ void Thunderstorm_InitVars(void) gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment - gWeatherPtr->thunderTriggered = FALSE; + gWeatherPtr->thunderEnqueued = FALSE; SetRainStrengthFromSoundEffect(SE_THUNDERSTORM); } @@ -1021,11 +1021,11 @@ void Thunderstorm_InitAll(void) //------------------------------------------------------------------------------ static void UpdateThunderSound(void); -static void SetThunderCounter(u16); +static void EnqueueThunder(u16); void Downpour_InitVars(void) { - gWeatherPtr->initStep = TSTORM_STATE_LOAD_RAIN; + gWeatherPtr->initStep = THUNDER_STATE_LOAD_RAIN; gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleDelay = 4; @@ -1044,110 +1044,119 @@ void Downpour_InitAll(void) Thunderstorm_Main(); } +// In a given cycle, there will be some shorter bolts of lightning, potentially +// followed by a longer bolt. As a "regex", the pattern is: +// (SHORT_BOLT){1,2}(LONG_BOLT)? +// +// Thunder only plays on the final bolt of the cycle. void Thunderstorm_Main(void) { UpdateThunderSound(); switch (gWeatherPtr->initStep) { - case TSTORM_STATE_LOAD_RAIN: + case THUNDER_STATE_LOAD_RAIN: LoadRainSpriteSheet(); gWeatherPtr->initStep++; break; - case TSTORM_STATE_CREATE_RAIN: + case THUNDER_STATE_CREATE_RAIN: if (!CreateRainSprite()) gWeatherPtr->initStep++; break; - case TSTORM_STATE_INIT_RAIN: + case THUNDER_STATE_INIT_RAIN: if (!UpdateVisibleRainSprites()) { gWeatherPtr->weatherGfxLoaded = TRUE; gWeatherPtr->initStep++; } break; - case TSTORM_STATE_WAIT_CHANGE: + case THUNDER_STATE_WAIT_CHANGE: if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_CHANGING_WEATHER) - gWeatherPtr->initStep = TSTORM_STATE_INIT_THUNDER_SHORT_1; + gWeatherPtr->initStep = THUNDER_STATE_INIT_CYCLE_1; break; - case TSTORM_STATE_LOOP_START: + case THUNDER_STATE_NEW_CYCLE: gWeatherPtr->thunderAllowEnd = TRUE; - gWeatherPtr->thunderDelay = (Random() % 360) + 360; + gWeatherPtr->thunderTimer = (Random() % 360) + 360; gWeatherPtr->initStep++; // fall through - case TSTORM_STATE_LOOP_WAIT: - // Wait between 360-720 frames before trying thunder again - if (--gWeatherPtr->thunderDelay == 0) + case THUNDER_STATE_NEW_CYCLE_WAIT: + // Wait between 360-720 frames before starting a new cycle. + if (--gWeatherPtr->thunderTimer == 0) gWeatherPtr->initStep++; break; - case TSTORM_STATE_INIT_THUNDER_SHORT_1: + case THUNDER_STATE_INIT_CYCLE_1: gWeatherPtr->thunderAllowEnd = TRUE; - gWeatherPtr->thunderSkipShort = Random() % 2; + gWeatherPtr->thunderLongBolt = Random() % 2; gWeatherPtr->initStep++; break; - case TSTORM_STATE_INIT_THUNDER_SHORT_2: - gWeatherPtr->thunderShortRetries = (Random() & 1) + 1; + case THUNDER_STATE_INIT_CYCLE_2: + gWeatherPtr->thunderShortBolts = (Random() & 1) + 1; gWeatherPtr->initStep++; // fall through - case TSTORM_STATE_TRY_THUNDER_SHORT: + case THUNDER_STATE_SHORT_BOLT: + // Short bolt of lightning strikes. WeatherShiftGammaIfPalStateIdle(19); - if (!gWeatherPtr->thunderSkipShort && gWeatherPtr->thunderShortRetries == 1) - SetThunderCounter(20); // Do short thunder + // If final lightning bolt, enqueue thunder. + if (!gWeatherPtr->thunderLongBolt && gWeatherPtr->thunderShortBolts == 1) + EnqueueThunder(20); - gWeatherPtr->thunderDelay = (Random() % 3) + 6; + gWeatherPtr->thunderTimer = (Random() % 3) + 6; gWeatherPtr->initStep++; break; - case TSTORM_STATE_TRY_NEW_THUNDER: - if (--gWeatherPtr->thunderDelay == 0) + case THUNDER_STATE_TRY_NEW_BOLT: + if (--gWeatherPtr->thunderTimer == 0) { + // Short bolt of lightning ends. WeatherShiftGammaIfPalStateIdle(3); gWeatherPtr->thunderAllowEnd = TRUE; - if (--gWeatherPtr->thunderShortRetries != 0) + if (--gWeatherPtr->thunderShortBolts != 0) { - // Try a short thunder again - gWeatherPtr->thunderDelay = (Random() % 16) + 60; - gWeatherPtr->initStep = TSTORM_STATE_WAIT_THUNDER_SHORT; + // Wait a little, then do another short bolt. + gWeatherPtr->thunderTimer = (Random() % 16) + 60; + gWeatherPtr->initStep = THUNDER_STATE_WAIT_BOLT_SHORT; } - else if (!gWeatherPtr->thunderSkipShort) + else if (!gWeatherPtr->thunderLongBolt) { - // No more thunder, restart loop - gWeatherPtr->initStep = TSTORM_STATE_LOOP_START; + // No more bolts, restart loop. + gWeatherPtr->initStep = THUNDER_STATE_NEW_CYCLE; } else { - // Set up long thunder - gWeatherPtr->initStep = TSTORM_STATE_INIT_THUNDER_LONG; + // Set up long bolt. + gWeatherPtr->initStep = THUNDER_STATE_INIT_BOLT_LONG; } } break; - case TSTORM_STATE_WAIT_THUNDER_SHORT: - if (--gWeatherPtr->thunderDelay == 0) - gWeatherPtr->initStep = TSTORM_STATE_TRY_THUNDER_SHORT; + case THUNDER_STATE_WAIT_BOLT_SHORT: + if (--gWeatherPtr->thunderTimer == 0) + gWeatherPtr->initStep = THUNDER_STATE_SHORT_BOLT; break; - case TSTORM_STATE_INIT_THUNDER_LONG: - gWeatherPtr->thunderDelay = (Random() % 16) + 60; + case THUNDER_STATE_INIT_BOLT_LONG: + gWeatherPtr->thunderTimer = (Random() % 16) + 60; gWeatherPtr->initStep++; break; - case TSTORM_STATE_WAIT_THUNDER_LONG: - if (--gWeatherPtr->thunderDelay == 0) + case THUNDER_STATE_WAIT_BOLT_LONG: + if (--gWeatherPtr->thunderTimer == 0) { - // Do long thunder - SetThunderCounter(100); + // Do long bolt. Enqueue thunder with a potentially longer delay. + EnqueueThunder(100); WeatherShiftGammaIfPalStateIdle(19); - gWeatherPtr->thunderDelay = (Random() & 0xF) + 30; + gWeatherPtr->thunderTimer = (Random() & 0xF) + 30; gWeatherPtr->initStep++; } break; - case TSTORM_STATE_FADE_THUNDER_LONG: - if (--gWeatherPtr->thunderDelay == 0) + case THUNDER_STATE_FADE_BOLT_LONG: + if (--gWeatherPtr->thunderTimer == 0) { + // Fade long bolt out over time. WeatherBeginGammaFade(19, 3, 5); gWeatherPtr->initStep++; } break; - case TSTORM_STATE_END_THUNDER_LONG: + case THUNDER_STATE_END_BOLT_LONG: if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE) { gWeatherPtr->thunderAllowEnd = TRUE; - gWeatherPtr->initStep = TSTORM_STATE_LOOP_START; + gWeatherPtr->initStep = THUNDER_STATE_NEW_CYCLE; } break; } @@ -1178,7 +1187,7 @@ bool8 Thunderstorm_Finish(void) if (!UpdateVisibleRainSprites()) { DestroyRainSprites(); - gWeatherPtr->thunderTriggered = FALSE; + gWeatherPtr->thunderEnqueued = FALSE; gWeatherPtr->finishStep++; return FALSE; } @@ -1189,20 +1198,21 @@ bool8 Thunderstorm_Finish(void) return TRUE; } -static void SetThunderCounter(u16 max) +// Enqueue a thunder sound effect for at most `waitFrames` frames from now. +static void EnqueueThunder(u16 waitFrames) { - if (!gWeatherPtr->thunderTriggered) + if (!gWeatherPtr->thunderEnqueued) { - gWeatherPtr->thunderCounter = Random() % max; - gWeatherPtr->thunderTriggered = TRUE; + gWeatherPtr->thunderSETimer = Random() % waitFrames; + gWeatherPtr->thunderEnqueued = TRUE; } } static void UpdateThunderSound(void) { - if (gWeatherPtr->thunderTriggered == TRUE) + if (gWeatherPtr->thunderEnqueued == TRUE) { - if (gWeatherPtr->thunderCounter == 0) + if (gWeatherPtr->thunderSETimer == 0) { if (IsSEPlaying()) return; @@ -1212,11 +1222,11 @@ static void UpdateThunderSound(void) else PlaySE(SE_THUNDER2); - gWeatherPtr->thunderTriggered = FALSE; + gWeatherPtr->thunderEnqueued = FALSE; } else { - gWeatherPtr->thunderCounter--; + gWeatherPtr->thunderSETimer--; } } } From 4eb5728dc56a3cb99410df2b3397b0ef78ec07e7 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Mon, 31 Jul 2023 09:53:56 +0530 Subject: [PATCH 29/38] Added missing usage of NUM_PALS_IN_PRIMARY and NUM_PALS_TOTAL --- src/overworld.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/overworld.c b/src/overworld.c index 61e1a1db7f..979ba1daf9 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -767,7 +767,7 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) InitMap(); CopySecondaryTilesetToVramUsingHeap(gMapHeader.mapLayout); LoadSecondaryTilesetPalette(gMapHeader.mapLayout); - for (paletteIndex = 7; paletteIndex < 13; paletteIndex++) + for (paletteIndex = NUM_PALS_IN_PRIMARY; paletteIndex < NUM_PALS_TOTAL; paletteIndex++) ApplyWeatherGammaShiftToPal(paletteIndex); InitSecondaryTilesetAnimation(); UpdateLocationHistoryForRoamer(); From 677b281fe36a83a7eef7bc907d4762bbcd515a46 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Tue, 1 Aug 2023 08:48:11 +0530 Subject: [PATCH 30/38] Made all the gFieldEffectObjectTemplates in src/data/field_effects/field_effect_object_tmplate_pointers.h to extern const struct instead of const struct --- .../field_effect_object_template_pointers.h | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/data/field_effects/field_effect_object_template_pointers.h b/src/data/field_effects/field_effect_object_template_pointers.h index 1f5c27ed46..61eeed962b 100644 --- a/src/data/field_effects/field_effect_object_template_pointers.h +++ b/src/data/field_effects/field_effect_object_template_pointers.h @@ -1,39 +1,39 @@ -const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall; -const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium; -const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge; -const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge; -const struct SpriteTemplate gFieldEffectObjectTemplate_TallGrass; -const struct SpriteTemplate gFieldEffectObjectTemplate_Ripple; -const struct SpriteTemplate gFieldEffectObjectTemplate_Ash; -const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob; -const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow; -const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust; -const struct SpriteTemplate gFieldEffectObjectTemplate_JumpTallGrass; -const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints; -const struct SpriteTemplate gFieldEffectObjectTemplate_JumpBigSplash; -const struct SpriteTemplate gFieldEffectObjectTemplate_Splash; -const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash; -const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass; -const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass; -const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass; -const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass2; -const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedSand; -const struct SpriteTemplate gFieldEffectObjectTemplate_WaterSurfacing; -const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion; -const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints; -/*const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle;*/ -const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise; -const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise; -const struct SpriteTemplate gFieldEffectObjectTemplate_Bird; -const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks; -const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder; -const struct SpriteTemplate gFieldEffectObjectTemplate_SandPile; -const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass; -const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater; -const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff; -const struct SpriteTemplate gFieldEffectObjectTemplate_AshLaunch; -const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles; -const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_TallGrass; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_Ripple; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_Ash; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_JumpTallGrass; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_JumpBigSplash; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_Splash; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass2; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedSand; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_WaterSurfacing; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints; +/*extern const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle;*/ +extern const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_Bird; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_SandPile; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_AshLaunch; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles; +extern const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle; const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = { [FLDEFFOBJ_SHADOW_S] = &gFieldEffectObjectTemplate_ShadowSmall, From b16ec26ce46db0c5d29ebaa9b6535c76a9578055 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Tue, 1 Aug 2023 09:00:39 +0530 Subject: [PATCH 31/38] Converted MovementActions and gMovementActionFuncs to u8 instead of static bool8 and sMovementActionFuncs to gMovementActionFuncs matching emerald --- .../movement_action_func_tables.h | 1614 ++++++++--------- src/event_object_movement.c | 554 +++--- 2 files changed, 1084 insertions(+), 1084 deletions(-) diff --git a/src/data/object_events/movement_action_func_tables.h b/src/data/object_events/movement_action_func_tables.h index 2a1c496f77..c0f3861c8e 100644 --- a/src/data/object_events/movement_action_func_tables.h +++ b/src/data/object_events/movement_action_func_tables.h @@ -1,661 +1,661 @@ -static bool8 MovementAction_FaceDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FaceUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FaceLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FaceRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_PauseSpriteAnim(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FaceDownFast_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FaceUpFast_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FaceLeftFast_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FaceRightFast_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowerDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowerDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowerUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowerUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowerLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowerLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowerRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowerRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkNormalDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkNormalDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkNormalUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkNormalUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkNormalLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkNormalLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkNormalRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkNormalRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceSlowDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceSlowUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceSlowLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceSlowRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceSlow_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceNormalDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceNormalUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceNormalLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceNormalRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlace_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceFastDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceFastUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceFastLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceFastRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceFasterDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceFasterUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceFasterLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceFasterRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Jump2Down_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Jump2Down_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Jump2Up_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Jump2Up_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Jump2Left_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Jump2Left_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Jump2Right_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Jump2Right_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Delay1_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Delay2_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Delay4_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Delay8_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Delay16_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Delay_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RideWaterCurrentDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RideWaterCurrentDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RideWaterCurrentUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RideWaterCurrentUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RideWaterCurrentLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RideWaterCurrentLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RideWaterCurrentRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RideWaterCurrentRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFasterDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFasterDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFasterUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFasterUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFasterLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFasterLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFasterRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFasterRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SlideDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SlideDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SlideUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SlideUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SlideLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SlideLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SlideRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SlideRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_PlayerRunDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_PlayerRunDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_PlayerRunUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_PlayerRunUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_PlayerRunLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_PlayerRunLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_PlayerRunRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_PlayerRunRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RunDownSlow_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RunDownSlow_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RunUpSlow_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RunUpSlow_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RunLeftSlow_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RunLeftSlow_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RunRightSlow_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RunRightSlow_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_StartAnimInDirection_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FacePlayer_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FaceAwayPlayer_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_LockFacingDirection_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_UnlockFacingDirection_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceDownUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceDownUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceUpDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceUpDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceLeftRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceLeftRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceRightLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpInPlaceRightLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FaceOriginalDirection_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_NurseJoyBowDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_EnableJumpLandingGroundEffect_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_DisableJumpLandingGroundEffect_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_DisableAnimation_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RestoreAnimation_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SetInvisible_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SetVisible_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_EmoteExclamationMark_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_EmoteQuestionMark_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_EmoteX_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_EmoteDoubleExclamationMark_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_EmoteSmile_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RevealTrainer_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RevealTrainer_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RockSmashBreak_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RockSmashBreak_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RockSmashBreak_Step2(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_CutTree_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_CutTree_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_CutTree_Step2(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SetFixedPriority_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_ClearFixedPriority_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_InitAffineAnim_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_ClearAffineAnim_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkDownStartAffine_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkDownStartAffine_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkDownAffine_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkDownAffine_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieFaceDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieFaceUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieFaceLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieFaceRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroEndWheelieFaceDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroEndWheelieFaceUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroEndWheelieFaceLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroEndWheelieFaceRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_UnusedAcroActionDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_UnusedAcroActionUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_UnusedAcroActionLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_UnusedAcroActionRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopFaceDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopFaceDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopFaceUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopFaceUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopFaceLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopFaceLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopFaceRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopFaceRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieHopRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieJumpDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieJumpDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieJumpUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieJumpUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieJumpLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieJumpLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieJumpRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieJumpRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieInPlaceDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieInPlaceUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieInPlaceLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieInPlaceRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieMoveDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieMoveDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieMoveUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieMoveUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieMoveLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieMoveLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieMoveRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieMoveRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieMoveDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieMoveDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieMoveUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieMoveUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieMoveLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieMoveLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieMoveRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroWheelieMoveRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SpinDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SpinDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SpinUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SpinUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SpinLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SpinLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SpinRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SpinRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RaiseHand_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RaiseHandAndStop_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RaiseHandAndJump_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RaiseHandAndSwim_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowestDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowestDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowestUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowestUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowestLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowestLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowestRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkSlowestRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_ShakeHeadOrWalkInPlace_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_ShakeHeadOrWalkInPlace_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_GlideDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_GlideDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_GlideUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_GlideUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_GlideLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_GlideLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_GlideRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_GlideRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FlyUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FlyUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FlyUp_Step2(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FlyDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FlyDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialWithEffectDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialWithEffectDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialWithEffectUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialWithEffectUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialWithEffectLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialWithEffectLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialWithEffectRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_JumpSpecialWithEffectRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WaitSpriteAnim(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Finish(struct ObjectEvent *, struct Sprite *); - -static bool8 (*const sMovementActionFuncs_FaceDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_FaceUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_FaceLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_FaceRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_FaceDownFast[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_FaceUpFast[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_FaceLeftFast[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_FaceRightFast[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkSlowerDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkSlowerUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkSlowerLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkSlowerRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkSlowUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkSlowDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkSlowLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkSlowRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkNormalDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkNormalUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkNormalLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkNormalRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_Jump2Down[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_Jump2Up[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_Jump2Left[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_Jump2Right[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_Delay1[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_Delay2[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_Delay4[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_Delay8[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_Delay16[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkFastDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkFastUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkFastLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkFastRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceFastDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceFastUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceFastLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceFastRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_RideWaterCurrentDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_RideWaterCurrentUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_RideWaterCurrentLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_RideWaterCurrentRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkFasterDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkFasterUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkFasterLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkFasterRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_SlideDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_SlideUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_SlideLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_SlideRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_PlayerRunDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_PlayerRunUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_PlayerRunLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_PlayerRunRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_PlayerRunDownSlow[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_PlayerRunUpSlow[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_PlayerRunLeftSlow[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_PlayerRunRightSlow[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_StartAnimInDirection[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpSpecialDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpSpecialUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpSpecialLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpSpecialRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_FacePlayer[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_FaceAwayPlayer[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_LockFacingDirection[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_UnlockFacingDirection[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpInPlaceDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpInPlaceUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpInPlaceLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpInPlaceRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpInPlaceDownUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpInPlaceUpDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpInPlaceLeftRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpInPlaceRightLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_FaceOriginalDirection[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_NurseJoyBowDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_EnableJumpLandingGroundEffect[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_DisableJumpLandingGroundEffect[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_DisableAnimation[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_RestoreAnimation[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_SetInvisible[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_SetVisible[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_EmoteExclamationMark[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_EmoteQuestionMark[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_EmoteX[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_EmoteDoubleExclMark[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_EmoteSmile[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_RevealTrainer[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_RockSmashBreak[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_CutTree[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_SetFixedPriority[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_ClearFixedPriority[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_InitAffineAnim[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_ClearAffineAnim[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkDownStartAffine[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkDownAffine[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieFaceDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieFaceUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieFaceLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieFaceRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroPopWheelieDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroPopWheelieUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroPopWheelieLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroPopWheelieRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieHopDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieHopUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieHopLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieHopRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieJumpDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieJumpUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieJumpLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieJumpRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieMoveDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieMoveUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieMoveLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_AcroWheelieMoveRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_SpinDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_SpinUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_SpinLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_SpinRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_RaiseHandAndStop[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_RaiseHandAndJump[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_RaiseHandAndSwim[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkSlowestDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkSlowestUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkSlowestLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_WalkSlowestRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_ShakeHeadOrWalkInPlace[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_GlideDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_GlideUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_GlideLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_GlideRight[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_FlyUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectDown[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectUp[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectLeft[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectRight[])(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FaceDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FaceUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FaceLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FaceRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_PauseSpriteAnim(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FaceDownFast_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FaceUpFast_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FaceLeftFast_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FaceRightFast_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowerDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowerDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowerUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowerUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowerLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowerLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowerRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowerRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkNormalDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkNormalDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkNormalUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkNormalUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkNormalLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkNormalLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkNormalRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkNormalRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceSlowDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceSlowUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceSlowLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceSlowRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceSlow_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceNormalDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceNormalUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceNormalLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceNormalRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlace_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceFastDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceFastUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceFastLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceFastRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceFasterDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceFasterUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceFasterLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkInPlaceFasterRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Jump2Down_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Jump2Down_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Jump2Up_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Jump2Up_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Jump2Left_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Jump2Left_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Jump2Right_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Jump2Right_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Delay1_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Delay2_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Delay4_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Delay8_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Delay16_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Delay_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFastDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFastDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFastUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFastUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFastLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFastLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFastRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFastRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RideWaterCurrentDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RideWaterCurrentDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RideWaterCurrentUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RideWaterCurrentUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RideWaterCurrentLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RideWaterCurrentLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RideWaterCurrentRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RideWaterCurrentRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFasterDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFasterDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFasterUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFasterUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFasterLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFasterLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFasterRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkFasterRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SlideDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SlideDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SlideUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SlideUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SlideLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SlideLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SlideRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SlideRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_PlayerRunDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_PlayerRunDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_PlayerRunUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_PlayerRunUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_PlayerRunLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_PlayerRunLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_PlayerRunRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_PlayerRunRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RunDownSlow_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RunDownSlow_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RunUpSlow_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RunUpSlow_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RunLeftSlow_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RunLeftSlow_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RunRightSlow_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RunRightSlow_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_StartAnimInDirection_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FacePlayer_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FaceAwayPlayer_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_LockFacingDirection_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_UnlockFacingDirection_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceDownUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceDownUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceUpDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceUpDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceLeftRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceLeftRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceRightLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpInPlaceRightLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FaceOriginalDirection_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_NurseJoyBowDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_EnableJumpLandingGroundEffect_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_DisableJumpLandingGroundEffect_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_DisableAnimation_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RestoreAnimation_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SetInvisible_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SetVisible_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_EmoteExclamationMark_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_EmoteQuestionMark_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_EmoteX_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_EmoteDoubleExclamationMark_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_EmoteSmile_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RevealTrainer_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RevealTrainer_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RockSmashBreak_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RockSmashBreak_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RockSmashBreak_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_CutTree_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_CutTree_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_CutTree_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SetFixedPriority_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_ClearFixedPriority_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_InitAffineAnim_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_ClearAffineAnim_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkDownStartAffine_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkDownStartAffine_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkDownAffine_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkDownAffine_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieFaceDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieFaceUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieFaceLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieFaceRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroEndWheelieFaceDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroEndWheelieFaceUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroEndWheelieFaceLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroEndWheelieFaceRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_UnusedAcroActionDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_UnusedAcroActionUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_UnusedAcroActionLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_UnusedAcroActionRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopFaceDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopFaceDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopFaceUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopFaceUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopFaceLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopFaceLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopFaceRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopFaceRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieHopRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieJumpDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieJumpDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieJumpUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieJumpUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieJumpLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieJumpLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieJumpRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieJumpRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieInPlaceDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieInPlaceUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieInPlaceLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieInPlaceRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieMoveDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieMoveDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieMoveUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieMoveUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieMoveLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieMoveLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieMoveRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroPopWheelieMoveRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieMoveDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieMoveDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieMoveUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieMoveUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieMoveLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieMoveLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieMoveRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_AcroWheelieMoveRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SpinDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SpinDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SpinUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SpinUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SpinLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SpinLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SpinRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_SpinRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RaiseHand_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RaiseHandAndStop_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RaiseHandAndJump_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_RaiseHandAndSwim_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowestDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowestDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowestUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowestUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowestLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowestLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowestRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WalkSlowestRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_ShakeHeadOrWalkInPlace_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_ShakeHeadOrWalkInPlace_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_GlideDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_GlideDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_GlideUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_GlideUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_GlideLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_GlideLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_GlideRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_GlideRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FlyUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FlyUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FlyUp_Step2(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FlyDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_FlyDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialWithEffectDown_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialWithEffectDown_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialWithEffectUp_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialWithEffectUp_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialWithEffectLeft_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialWithEffectLeft_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialWithEffectRight_Step0(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_JumpSpecialWithEffectRight_Step1(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_WaitSpriteAnim(struct ObjectEvent *, struct Sprite *); +u8 MovementAction_Finish(struct ObjectEvent *, struct Sprite *); + +u8 (*const gMovementActionFuncs_FaceDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_FaceUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_FaceLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_FaceRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_FaceDownFast[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_FaceUpFast[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_FaceLeftFast[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_FaceRightFast[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkSlowerDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkSlowerUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkSlowerLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkSlowerRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkSlowUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkSlowDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkSlowLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkSlowRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkNormalDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkNormalUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkNormalLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkNormalRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_Jump2Down[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_Jump2Up[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_Jump2Left[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_Jump2Right[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_Delay1[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_Delay2[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_Delay4[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_Delay8[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_Delay16[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkFastDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkFastUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkFastLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkFastRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceSlowDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceSlowUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceSlowLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceSlowRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceNormalDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceNormalUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceNormalLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceNormalRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceFastDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceFastUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceFastLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceFastRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceFasterDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceFasterUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceFasterLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkInPlaceFasterRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_RideWaterCurrentDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_RideWaterCurrentUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_RideWaterCurrentLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_RideWaterCurrentRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkFasterDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkFasterUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkFasterLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkFasterRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_SlideDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_SlideUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_SlideLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_SlideRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_PlayerRunDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_PlayerRunUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_PlayerRunLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_PlayerRunRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_PlayerRunDownSlow[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_PlayerRunUpSlow[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_PlayerRunLeftSlow[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_PlayerRunRightSlow[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_StartAnimInDirection[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpSpecialDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpSpecialUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpSpecialLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpSpecialRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_FacePlayer[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_FaceAwayPlayer[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_LockFacingDirection[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_UnlockFacingDirection[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpInPlaceDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpInPlaceUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpInPlaceLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpInPlaceRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpInPlaceDownUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpInPlaceUpDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpInPlaceLeftRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpInPlaceRightLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_FaceOriginalDirection[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_NurseJoyBowDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_EnableJumpLandingGroundEffect[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_DisableJumpLandingGroundEffect[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_DisableAnimation[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_RestoreAnimation[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_SetInvisible[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_SetVisible[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_EmoteExclamationMark[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_EmoteQuestionMark[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_EmoteX[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_EmoteDoubleExclMark[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_EmoteSmile[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_RevealTrainer[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_RockSmashBreak[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_CutTree[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_SetFixedPriority[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_ClearFixedPriority[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_InitAffineAnim[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_ClearAffineAnim[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkDownStartAffine[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkDownAffine[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieFaceDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieFaceUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieFaceLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieFaceRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroPopWheelieDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroPopWheelieUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroPopWheelieLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroPopWheelieRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroEndWheelieFaceDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroEndWheelieFaceUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroEndWheelieFaceLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroEndWheelieFaceRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieHopFaceDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieHopFaceUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieHopFaceLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieHopFaceRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieHopDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieHopUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieHopLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieHopRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieJumpDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieJumpUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieJumpLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieJumpRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieInPlaceDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieInPlaceUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieInPlaceLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieInPlaceRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroPopWheelieMoveDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroPopWheelieMoveUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroPopWheelieMoveLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroPopWheelieMoveRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieMoveDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieMoveUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieMoveLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_AcroWheelieMoveRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_SpinDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_SpinUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_SpinLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_SpinRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_RaiseHandAndStop[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_RaiseHandAndJump[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_RaiseHandAndSwim[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkSlowestDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkSlowestUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkSlowestLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_WalkSlowestRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_ShakeHeadOrWalkInPlace[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_GlideDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_GlideUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_GlideLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_GlideRight[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_FlyUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpSpecialWithEffectDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpSpecialWithEffectUp[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpSpecialWithEffectLeft[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_JumpSpecialWithEffectRight[])(struct ObjectEvent *, struct Sprite *); static u8 GetMoveDirectionFastAnimNum(u8 direction); static u8 GetMoveDirectionFasterAnimNum(u8 direction); static u8 GetMoveDirectionFastestAnimNum(u8 direction); -static bool8 (*const *const sMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *) = { - [MOVEMENT_ACTION_FACE_DOWN] = sMovementActionFuncs_FaceDown, - [MOVEMENT_ACTION_FACE_UP] = sMovementActionFuncs_FaceUp, - [MOVEMENT_ACTION_FACE_LEFT] = sMovementActionFuncs_FaceLeft, - [MOVEMENT_ACTION_FACE_RIGHT] = sMovementActionFuncs_FaceRight, - [MOVEMENT_ACTION_FACE_DOWN_FAST] = sMovementActionFuncs_FaceDownFast, - [MOVEMENT_ACTION_FACE_UP_FAST] = sMovementActionFuncs_FaceUpFast, - [MOVEMENT_ACTION_FACE_LEFT_FAST] = sMovementActionFuncs_FaceLeftFast, - [MOVEMENT_ACTION_FACE_RIGHT_FAST] = sMovementActionFuncs_FaceRightFast, - [MOVEMENT_ACTION_WALK_SLOWER_DOWN] = sMovementActionFuncs_WalkSlowerDown, - [MOVEMENT_ACTION_WALK_SLOWER_UP] = sMovementActionFuncs_WalkSlowerUp, - [MOVEMENT_ACTION_WALK_SLOWER_LEFT] = sMovementActionFuncs_WalkSlowerLeft, - [MOVEMENT_ACTION_WALK_SLOWER_RIGHT] = sMovementActionFuncs_WalkSlowerRight, - [MOVEMENT_ACTION_WALK_SLOW_DOWN] = sMovementActionFuncs_WalkSlowDown, - [MOVEMENT_ACTION_WALK_SLOW_UP] = sMovementActionFuncs_WalkSlowUp, - [MOVEMENT_ACTION_WALK_SLOW_LEFT] = sMovementActionFuncs_WalkSlowLeft, - [MOVEMENT_ACTION_WALK_SLOW_RIGHT] = sMovementActionFuncs_WalkSlowRight, - [MOVEMENT_ACTION_WALK_NORMAL_DOWN] = sMovementActionFuncs_WalkNormalDown, - [MOVEMENT_ACTION_WALK_NORMAL_UP] = sMovementActionFuncs_WalkNormalUp, - [MOVEMENT_ACTION_WALK_NORMAL_LEFT] = sMovementActionFuncs_WalkNormalLeft, - [MOVEMENT_ACTION_WALK_NORMAL_RIGHT] = sMovementActionFuncs_WalkNormalRight, - [MOVEMENT_ACTION_JUMP_2_DOWN] = sMovementActionFuncs_Jump2Down, - [MOVEMENT_ACTION_JUMP_2_UP] = sMovementActionFuncs_Jump2Up, - [MOVEMENT_ACTION_JUMP_2_LEFT] = sMovementActionFuncs_Jump2Left, - [MOVEMENT_ACTION_JUMP_2_RIGHT] = sMovementActionFuncs_Jump2Right, - [MOVEMENT_ACTION_DELAY_1] = sMovementActionFuncs_Delay1, - [MOVEMENT_ACTION_DELAY_2] = sMovementActionFuncs_Delay2, - [MOVEMENT_ACTION_DELAY_4] = sMovementActionFuncs_Delay4, - [MOVEMENT_ACTION_DELAY_8] = sMovementActionFuncs_Delay8, - [MOVEMENT_ACTION_DELAY_16] = sMovementActionFuncs_Delay16, - [MOVEMENT_ACTION_WALK_FAST_DOWN] = sMovementActionFuncs_WalkFastDown, - [MOVEMENT_ACTION_WALK_FAST_UP] = sMovementActionFuncs_WalkFastUp, - [MOVEMENT_ACTION_WALK_FAST_LEFT] = sMovementActionFuncs_WalkFastLeft, - [MOVEMENT_ACTION_WALK_FAST_RIGHT] = sMovementActionFuncs_WalkFastRight, - [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN] = sMovementActionFuncs_WalkInPlaceSlowDown, - [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP] = sMovementActionFuncs_WalkInPlaceSlowUp, - [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT] = sMovementActionFuncs_WalkInPlaceSlowLeft, - [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT] = sMovementActionFuncs_WalkInPlaceSlowRight, - [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN] = sMovementActionFuncs_WalkInPlaceNormalDown, - [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP] = sMovementActionFuncs_WalkInPlaceNormalUp, - [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT] = sMovementActionFuncs_WalkInPlaceNormalLeft, - [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT] = sMovementActionFuncs_WalkInPlaceNormalRight, - [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN] = sMovementActionFuncs_WalkInPlaceFastDown, - [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP] = sMovementActionFuncs_WalkInPlaceFastUp, - [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT] = sMovementActionFuncs_WalkInPlaceFastLeft, - [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT] = sMovementActionFuncs_WalkInPlaceFastRight, - [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN] = sMovementActionFuncs_WalkInPlaceFasterDown, - [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_UP] = sMovementActionFuncs_WalkInPlaceFasterUp, - [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_LEFT] = sMovementActionFuncs_WalkInPlaceFasterLeft, - [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT] = sMovementActionFuncs_WalkInPlaceFasterRight, - [MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN] = sMovementActionFuncs_RideWaterCurrentDown, - [MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP] = sMovementActionFuncs_RideWaterCurrentUp, - [MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT] = sMovementActionFuncs_RideWaterCurrentLeft, - [MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT] = sMovementActionFuncs_RideWaterCurrentRight, - [MOVEMENT_ACTION_WALK_FASTER_DOWN] = sMovementActionFuncs_WalkFasterDown, - [MOVEMENT_ACTION_WALK_FASTER_UP] = sMovementActionFuncs_WalkFasterUp, - [MOVEMENT_ACTION_WALK_FASTER_LEFT] = sMovementActionFuncs_WalkFasterLeft, - [MOVEMENT_ACTION_WALK_FASTER_RIGHT] = sMovementActionFuncs_WalkFasterRight, - [MOVEMENT_ACTION_SLIDE_DOWN] = sMovementActionFuncs_SlideDown, - [MOVEMENT_ACTION_SLIDE_UP] = sMovementActionFuncs_SlideUp, - [MOVEMENT_ACTION_SLIDE_LEFT] = sMovementActionFuncs_SlideLeft, - [MOVEMENT_ACTION_SLIDE_RIGHT] = sMovementActionFuncs_SlideRight, - [MOVEMENT_ACTION_PLAYER_RUN_DOWN] = sMovementActionFuncs_PlayerRunDown, - [MOVEMENT_ACTION_PLAYER_RUN_UP] = sMovementActionFuncs_PlayerRunUp, - [MOVEMENT_ACTION_PLAYER_RUN_LEFT] = sMovementActionFuncs_PlayerRunLeft, - [MOVEMENT_ACTION_PLAYER_RUN_RIGHT] = sMovementActionFuncs_PlayerRunRight, - [MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW] = sMovementActionFuncs_PlayerRunDownSlow, - [MOVEMENT_ACTION_PLAYER_RUN_UP_SLOW] = sMovementActionFuncs_PlayerRunUpSlow, - [MOVEMENT_ACTION_PLAYER_RUN_LEFT_SLOW] = sMovementActionFuncs_PlayerRunLeftSlow, - [MOVEMENT_ACTION_PLAYER_RUN_RIGHT_SLOW] = sMovementActionFuncs_PlayerRunRightSlow, - [MOVEMENT_ACTION_START_ANIM_IN_DIRECTION] = sMovementActionFuncs_StartAnimInDirection, - [MOVEMENT_ACTION_JUMP_SPECIAL_DOWN] = sMovementActionFuncs_JumpSpecialDown, - [MOVEMENT_ACTION_JUMP_SPECIAL_UP] = sMovementActionFuncs_JumpSpecialUp, - [MOVEMENT_ACTION_JUMP_SPECIAL_LEFT] = sMovementActionFuncs_JumpSpecialLeft, - [MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT] = sMovementActionFuncs_JumpSpecialRight, - [MOVEMENT_ACTION_FACE_PLAYER] = sMovementActionFuncs_FacePlayer, - [MOVEMENT_ACTION_FACE_AWAY_PLAYER] = sMovementActionFuncs_FaceAwayPlayer, - [MOVEMENT_ACTION_LOCK_FACING_DIRECTION] = sMovementActionFuncs_LockFacingDirection, - [MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION] = sMovementActionFuncs_UnlockFacingDirection, - [MOVEMENT_ACTION_JUMP_DOWN] = sMovementActionFuncs_JumpDown, - [MOVEMENT_ACTION_JUMP_UP] = sMovementActionFuncs_JumpUp, - [MOVEMENT_ACTION_JUMP_LEFT] = sMovementActionFuncs_JumpLeft, - [MOVEMENT_ACTION_JUMP_RIGHT] = sMovementActionFuncs_JumpRight, - [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN] = sMovementActionFuncs_JumpInPlaceDown, - [MOVEMENT_ACTION_JUMP_IN_PLACE_UP] = sMovementActionFuncs_JumpInPlaceUp, - [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT] = sMovementActionFuncs_JumpInPlaceLeft, - [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT] = sMovementActionFuncs_JumpInPlaceRight, - [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP] = sMovementActionFuncs_JumpInPlaceDownUp, - [MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN] = sMovementActionFuncs_JumpInPlaceUpDown, - [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT] = sMovementActionFuncs_JumpInPlaceLeftRight, - [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT] = sMovementActionFuncs_JumpInPlaceRightLeft, - [MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION] = sMovementActionFuncs_FaceOriginalDirection, - [MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN] = sMovementActionFuncs_NurseJoyBowDown, - [MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT] = sMovementActionFuncs_EnableJumpLandingGroundEffect, - [MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT] = sMovementActionFuncs_DisableJumpLandingGroundEffect, - [MOVEMENT_ACTION_DISABLE_ANIMATION] = sMovementActionFuncs_DisableAnimation, - [MOVEMENT_ACTION_RESTORE_ANIMATION] = sMovementActionFuncs_RestoreAnimation, - [MOVEMENT_ACTION_SET_INVISIBLE] = sMovementActionFuncs_SetInvisible, - [MOVEMENT_ACTION_SET_VISIBLE] = sMovementActionFuncs_SetVisible, - [MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK] = sMovementActionFuncs_EmoteExclamationMark, - [MOVEMENT_ACTION_EMOTE_QUESTION_MARK] = sMovementActionFuncs_EmoteQuestionMark, - [MOVEMENT_ACTION_EMOTE_X] = sMovementActionFuncs_EmoteX, - [MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK] = sMovementActionFuncs_EmoteDoubleExclMark, - [MOVEMENT_ACTION_EMOTE_SMILE] = sMovementActionFuncs_EmoteSmile, - [MOVEMENT_ACTION_REVEAL_TRAINER] = sMovementActionFuncs_RevealTrainer, - [MOVEMENT_ACTION_ROCK_SMASH_BREAK] = sMovementActionFuncs_RockSmashBreak, - [MOVEMENT_ACTION_CUT_TREE] = sMovementActionFuncs_CutTree, - [MOVEMENT_ACTION_SET_FIXED_PRIORITY] = sMovementActionFuncs_SetFixedPriority, - [MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY] = sMovementActionFuncs_ClearFixedPriority, - [MOVEMENT_ACTION_INIT_AFFINE_ANIM] = sMovementActionFuncs_InitAffineAnim, - [MOVEMENT_ACTION_CLEAR_AFFINE_ANIM] = sMovementActionFuncs_ClearAffineAnim, - [MOVEMENT_ACTION_WALK_DOWN_START_AFFINE] = sMovementActionFuncs_WalkDownStartAffine, - [MOVEMENT_ACTION_WALK_DOWN_AFFINE] = sMovementActionFuncs_WalkDownAffine, - [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN] = sMovementActionFuncs_AcroWheelieFaceDown, - [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP] = sMovementActionFuncs_AcroWheelieFaceUp, - [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT] = sMovementActionFuncs_AcroWheelieFaceLeft, - [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT] = sMovementActionFuncs_AcroWheelieFaceRight, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN] = sMovementActionFuncs_AcroPopWheelieDown, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP] = sMovementActionFuncs_AcroPopWheelieUp, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT] = sMovementActionFuncs_AcroPopWheelieLeft, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT] = sMovementActionFuncs_AcroPopWheelieRight, - [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN] = sMovementActionFuncs_AcroEndWheelieFaceDown, - [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP] = sMovementActionFuncs_AcroEndWheelieFaceUp, - [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT] = sMovementActionFuncs_AcroEndWheelieFaceLeft, - [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT] = sMovementActionFuncs_AcroEndWheelieFaceRight, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN] = sMovementActionFuncs_AcroWheelieHopFaceDown, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP] = sMovementActionFuncs_AcroWheelieHopFaceUp, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT] = sMovementActionFuncs_AcroWheelieHopFaceLeft, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT] = sMovementActionFuncs_AcroWheelieHopFaceRight, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN] = sMovementActionFuncs_AcroWheelieHopDown, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP] = sMovementActionFuncs_AcroWheelieHopUp, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT] = sMovementActionFuncs_AcroWheelieHopLeft, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT] = sMovementActionFuncs_AcroWheelieHopRight, - [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN] = sMovementActionFuncs_AcroWheelieJumpDown, - [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP] = sMovementActionFuncs_AcroWheelieJumpUp, - [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT] = sMovementActionFuncs_AcroWheelieJumpLeft, - [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT] = sMovementActionFuncs_AcroWheelieJumpRight, - [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN] = sMovementActionFuncs_AcroWheelieInPlaceDown, - [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP] = sMovementActionFuncs_AcroWheelieInPlaceUp, - [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT] = sMovementActionFuncs_AcroWheelieInPlaceLeft, - [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT] = sMovementActionFuncs_AcroWheelieInPlaceRight, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN] = sMovementActionFuncs_AcroPopWheelieMoveDown, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP] = sMovementActionFuncs_AcroPopWheelieMoveUp, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_AcroPopWheelieMoveLeft, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_AcroPopWheelieMoveRight, - [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN] = sMovementActionFuncs_AcroWheelieMoveDown, - [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP] = sMovementActionFuncs_AcroWheelieMoveUp, - [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_AcroWheelieMoveLeft, - [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_AcroWheelieMoveRight, - [MOVEMENT_ACTION_SPIN_DOWN] = sMovementActionFuncs_SpinDown, - [MOVEMENT_ACTION_SPIN_UP] = sMovementActionFuncs_SpinUp, - [MOVEMENT_ACTION_SPIN_LEFT] = sMovementActionFuncs_SpinLeft, - [MOVEMENT_ACTION_SPIN_RIGHT] = sMovementActionFuncs_SpinRight, - [MOVEMENT_ACTION_RAISE_HAND_AND_STOP] = sMovementActionFuncs_RaiseHandAndStop, - [MOVEMENT_ACTION_RAISE_HAND_AND_JUMP] = sMovementActionFuncs_RaiseHandAndJump, - [MOVEMENT_ACTION_RAISE_HAND_AND_SWIM] = sMovementActionFuncs_RaiseHandAndSwim, - [MOVEMENT_ACTION_WALK_SLOWEST_DOWN] = sMovementActionFuncs_WalkSlowestDown, - [MOVEMENT_ACTION_WALK_SLOWEST_UP] = sMovementActionFuncs_WalkSlowestUp, - [MOVEMENT_ACTION_WALK_SLOWEST_LEFT] = sMovementActionFuncs_WalkSlowestLeft, - [MOVEMENT_ACTION_WALK_SLOWEST_RIGHT] = sMovementActionFuncs_WalkSlowestRight, - [MOVEMENT_ACTION_SHAKE_HEAD_OR_WALK_IN_PLACE] = sMovementActionFuncs_ShakeHeadOrWalkInPlace, - [MOVEMENT_ACTION_GLIDE_DOWN] = sMovementActionFuncs_GlideDown, - [MOVEMENT_ACTION_GLIDE_UP] = sMovementActionFuncs_GlideUp, - [MOVEMENT_ACTION_GLIDE_LEFT] = sMovementActionFuncs_GlideLeft, - [MOVEMENT_ACTION_GLIDE_RIGHT] = sMovementActionFuncs_GlideRight, - [MOVEMENT_ACTION_FLY_UP] = sMovementActionFuncs_FlyUp, - [MOVEMENT_ACTION_FLY_DOWN] = sMovementActionFuncs_FlyDown, - [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_DOWN] = sMovementActionFuncs_JumpSpecialWithEffectDown, - [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_UP] = sMovementActionFuncs_JumpSpecialWithEffectUp, - [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_LEFT] = sMovementActionFuncs_JumpSpecialWithEffectLeft, - [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_RIGHT] = sMovementActionFuncs_JumpSpecialWithEffectRight, -}; - -static bool8 (*const sMovementActionFuncs_FaceDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *) = { + [MOVEMENT_ACTION_FACE_DOWN] = gMovementActionFuncs_FaceDown, + [MOVEMENT_ACTION_FACE_UP] = gMovementActionFuncs_FaceUp, + [MOVEMENT_ACTION_FACE_LEFT] = gMovementActionFuncs_FaceLeft, + [MOVEMENT_ACTION_FACE_RIGHT] = gMovementActionFuncs_FaceRight, + [MOVEMENT_ACTION_FACE_DOWN_FAST] = gMovementActionFuncs_FaceDownFast, + [MOVEMENT_ACTION_FACE_UP_FAST] = gMovementActionFuncs_FaceUpFast, + [MOVEMENT_ACTION_FACE_LEFT_FAST] = gMovementActionFuncs_FaceLeftFast, + [MOVEMENT_ACTION_FACE_RIGHT_FAST] = gMovementActionFuncs_FaceRightFast, + [MOVEMENT_ACTION_WALK_SLOWER_DOWN] = gMovementActionFuncs_WalkSlowerDown, + [MOVEMENT_ACTION_WALK_SLOWER_UP] = gMovementActionFuncs_WalkSlowerUp, + [MOVEMENT_ACTION_WALK_SLOWER_LEFT] = gMovementActionFuncs_WalkSlowerLeft, + [MOVEMENT_ACTION_WALK_SLOWER_RIGHT] = gMovementActionFuncs_WalkSlowerRight, + [MOVEMENT_ACTION_WALK_SLOW_DOWN] = gMovementActionFuncs_WalkSlowDown, + [MOVEMENT_ACTION_WALK_SLOW_UP] = gMovementActionFuncs_WalkSlowUp, + [MOVEMENT_ACTION_WALK_SLOW_LEFT] = gMovementActionFuncs_WalkSlowLeft, + [MOVEMENT_ACTION_WALK_SLOW_RIGHT] = gMovementActionFuncs_WalkSlowRight, + [MOVEMENT_ACTION_WALK_NORMAL_DOWN] = gMovementActionFuncs_WalkNormalDown, + [MOVEMENT_ACTION_WALK_NORMAL_UP] = gMovementActionFuncs_WalkNormalUp, + [MOVEMENT_ACTION_WALK_NORMAL_LEFT] = gMovementActionFuncs_WalkNormalLeft, + [MOVEMENT_ACTION_WALK_NORMAL_RIGHT] = gMovementActionFuncs_WalkNormalRight, + [MOVEMENT_ACTION_JUMP_2_DOWN] = gMovementActionFuncs_Jump2Down, + [MOVEMENT_ACTION_JUMP_2_UP] = gMovementActionFuncs_Jump2Up, + [MOVEMENT_ACTION_JUMP_2_LEFT] = gMovementActionFuncs_Jump2Left, + [MOVEMENT_ACTION_JUMP_2_RIGHT] = gMovementActionFuncs_Jump2Right, + [MOVEMENT_ACTION_DELAY_1] = gMovementActionFuncs_Delay1, + [MOVEMENT_ACTION_DELAY_2] = gMovementActionFuncs_Delay2, + [MOVEMENT_ACTION_DELAY_4] = gMovementActionFuncs_Delay4, + [MOVEMENT_ACTION_DELAY_8] = gMovementActionFuncs_Delay8, + [MOVEMENT_ACTION_DELAY_16] = gMovementActionFuncs_Delay16, + [MOVEMENT_ACTION_WALK_FAST_DOWN] = gMovementActionFuncs_WalkFastDown, + [MOVEMENT_ACTION_WALK_FAST_UP] = gMovementActionFuncs_WalkFastUp, + [MOVEMENT_ACTION_WALK_FAST_LEFT] = gMovementActionFuncs_WalkFastLeft, + [MOVEMENT_ACTION_WALK_FAST_RIGHT] = gMovementActionFuncs_WalkFastRight, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN] = gMovementActionFuncs_WalkInPlaceSlowDown, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP] = gMovementActionFuncs_WalkInPlaceSlowUp, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT] = gMovementActionFuncs_WalkInPlaceSlowLeft, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT] = gMovementActionFuncs_WalkInPlaceSlowRight, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN] = gMovementActionFuncs_WalkInPlaceNormalDown, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP] = gMovementActionFuncs_WalkInPlaceNormalUp, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT] = gMovementActionFuncs_WalkInPlaceNormalLeft, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT] = gMovementActionFuncs_WalkInPlaceNormalRight, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN] = gMovementActionFuncs_WalkInPlaceFastDown, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP] = gMovementActionFuncs_WalkInPlaceFastUp, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT] = gMovementActionFuncs_WalkInPlaceFastLeft, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT] = gMovementActionFuncs_WalkInPlaceFastRight, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN] = gMovementActionFuncs_WalkInPlaceFasterDown, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_UP] = gMovementActionFuncs_WalkInPlaceFasterUp, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_LEFT] = gMovementActionFuncs_WalkInPlaceFasterLeft, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT] = gMovementActionFuncs_WalkInPlaceFasterRight, + [MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN] = gMovementActionFuncs_RideWaterCurrentDown, + [MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP] = gMovementActionFuncs_RideWaterCurrentUp, + [MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT] = gMovementActionFuncs_RideWaterCurrentLeft, + [MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT] = gMovementActionFuncs_RideWaterCurrentRight, + [MOVEMENT_ACTION_WALK_FASTER_DOWN] = gMovementActionFuncs_WalkFasterDown, + [MOVEMENT_ACTION_WALK_FASTER_UP] = gMovementActionFuncs_WalkFasterUp, + [MOVEMENT_ACTION_WALK_FASTER_LEFT] = gMovementActionFuncs_WalkFasterLeft, + [MOVEMENT_ACTION_WALK_FASTER_RIGHT] = gMovementActionFuncs_WalkFasterRight, + [MOVEMENT_ACTION_SLIDE_DOWN] = gMovementActionFuncs_SlideDown, + [MOVEMENT_ACTION_SLIDE_UP] = gMovementActionFuncs_SlideUp, + [MOVEMENT_ACTION_SLIDE_LEFT] = gMovementActionFuncs_SlideLeft, + [MOVEMENT_ACTION_SLIDE_RIGHT] = gMovementActionFuncs_SlideRight, + [MOVEMENT_ACTION_PLAYER_RUN_DOWN] = gMovementActionFuncs_PlayerRunDown, + [MOVEMENT_ACTION_PLAYER_RUN_UP] = gMovementActionFuncs_PlayerRunUp, + [MOVEMENT_ACTION_PLAYER_RUN_LEFT] = gMovementActionFuncs_PlayerRunLeft, + [MOVEMENT_ACTION_PLAYER_RUN_RIGHT] = gMovementActionFuncs_PlayerRunRight, + [MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW] = gMovementActionFuncs_PlayerRunDownSlow, + [MOVEMENT_ACTION_PLAYER_RUN_UP_SLOW] = gMovementActionFuncs_PlayerRunUpSlow, + [MOVEMENT_ACTION_PLAYER_RUN_LEFT_SLOW] = gMovementActionFuncs_PlayerRunLeftSlow, + [MOVEMENT_ACTION_PLAYER_RUN_RIGHT_SLOW] = gMovementActionFuncs_PlayerRunRightSlow, + [MOVEMENT_ACTION_START_ANIM_IN_DIRECTION] = gMovementActionFuncs_StartAnimInDirection, + [MOVEMENT_ACTION_JUMP_SPECIAL_DOWN] = gMovementActionFuncs_JumpSpecialDown, + [MOVEMENT_ACTION_JUMP_SPECIAL_UP] = gMovementActionFuncs_JumpSpecialUp, + [MOVEMENT_ACTION_JUMP_SPECIAL_LEFT] = gMovementActionFuncs_JumpSpecialLeft, + [MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT] = gMovementActionFuncs_JumpSpecialRight, + [MOVEMENT_ACTION_FACE_PLAYER] = gMovementActionFuncs_FacePlayer, + [MOVEMENT_ACTION_FACE_AWAY_PLAYER] = gMovementActionFuncs_FaceAwayPlayer, + [MOVEMENT_ACTION_LOCK_FACING_DIRECTION] = gMovementActionFuncs_LockFacingDirection, + [MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION] = gMovementActionFuncs_UnlockFacingDirection, + [MOVEMENT_ACTION_JUMP_DOWN] = gMovementActionFuncs_JumpDown, + [MOVEMENT_ACTION_JUMP_UP] = gMovementActionFuncs_JumpUp, + [MOVEMENT_ACTION_JUMP_LEFT] = gMovementActionFuncs_JumpLeft, + [MOVEMENT_ACTION_JUMP_RIGHT] = gMovementActionFuncs_JumpRight, + [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN] = gMovementActionFuncs_JumpInPlaceDown, + [MOVEMENT_ACTION_JUMP_IN_PLACE_UP] = gMovementActionFuncs_JumpInPlaceUp, + [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT] = gMovementActionFuncs_JumpInPlaceLeft, + [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT] = gMovementActionFuncs_JumpInPlaceRight, + [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP] = gMovementActionFuncs_JumpInPlaceDownUp, + [MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN] = gMovementActionFuncs_JumpInPlaceUpDown, + [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT] = gMovementActionFuncs_JumpInPlaceLeftRight, + [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT] = gMovementActionFuncs_JumpInPlaceRightLeft, + [MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION] = gMovementActionFuncs_FaceOriginalDirection, + [MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN] = gMovementActionFuncs_NurseJoyBowDown, + [MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT] = gMovementActionFuncs_EnableJumpLandingGroundEffect, + [MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT] = gMovementActionFuncs_DisableJumpLandingGroundEffect, + [MOVEMENT_ACTION_DISABLE_ANIMATION] = gMovementActionFuncs_DisableAnimation, + [MOVEMENT_ACTION_RESTORE_ANIMATION] = gMovementActionFuncs_RestoreAnimation, + [MOVEMENT_ACTION_SET_INVISIBLE] = gMovementActionFuncs_SetInvisible, + [MOVEMENT_ACTION_SET_VISIBLE] = gMovementActionFuncs_SetVisible, + [MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK] = gMovementActionFuncs_EmoteExclamationMark, + [MOVEMENT_ACTION_EMOTE_QUESTION_MARK] = gMovementActionFuncs_EmoteQuestionMark, + [MOVEMENT_ACTION_EMOTE_X] = gMovementActionFuncs_EmoteX, + [MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK] = gMovementActionFuncs_EmoteDoubleExclMark, + [MOVEMENT_ACTION_EMOTE_SMILE] = gMovementActionFuncs_EmoteSmile, + [MOVEMENT_ACTION_REVEAL_TRAINER] = gMovementActionFuncs_RevealTrainer, + [MOVEMENT_ACTION_ROCK_SMASH_BREAK] = gMovementActionFuncs_RockSmashBreak, + [MOVEMENT_ACTION_CUT_TREE] = gMovementActionFuncs_CutTree, + [MOVEMENT_ACTION_SET_FIXED_PRIORITY] = gMovementActionFuncs_SetFixedPriority, + [MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY] = gMovementActionFuncs_ClearFixedPriority, + [MOVEMENT_ACTION_INIT_AFFINE_ANIM] = gMovementActionFuncs_InitAffineAnim, + [MOVEMENT_ACTION_CLEAR_AFFINE_ANIM] = gMovementActionFuncs_ClearAffineAnim, + [MOVEMENT_ACTION_WALK_DOWN_START_AFFINE] = gMovementActionFuncs_WalkDownStartAffine, + [MOVEMENT_ACTION_WALK_DOWN_AFFINE] = gMovementActionFuncs_WalkDownAffine, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN] = gMovementActionFuncs_AcroWheelieFaceDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP] = gMovementActionFuncs_AcroWheelieFaceUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT] = gMovementActionFuncs_AcroWheelieFaceLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT] = gMovementActionFuncs_AcroWheelieFaceRight, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN] = gMovementActionFuncs_AcroPopWheelieDown, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP] = gMovementActionFuncs_AcroPopWheelieUp, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT] = gMovementActionFuncs_AcroPopWheelieLeft, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT] = gMovementActionFuncs_AcroPopWheelieRight, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN] = gMovementActionFuncs_AcroEndWheelieFaceDown, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP] = gMovementActionFuncs_AcroEndWheelieFaceUp, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT] = gMovementActionFuncs_AcroEndWheelieFaceLeft, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT] = gMovementActionFuncs_AcroEndWheelieFaceRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN] = gMovementActionFuncs_AcroWheelieHopFaceDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP] = gMovementActionFuncs_AcroWheelieHopFaceUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT] = gMovementActionFuncs_AcroWheelieHopFaceLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT] = gMovementActionFuncs_AcroWheelieHopFaceRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN] = gMovementActionFuncs_AcroWheelieHopDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP] = gMovementActionFuncs_AcroWheelieHopUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT] = gMovementActionFuncs_AcroWheelieHopLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT] = gMovementActionFuncs_AcroWheelieHopRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN] = gMovementActionFuncs_AcroWheelieJumpDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP] = gMovementActionFuncs_AcroWheelieJumpUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT] = gMovementActionFuncs_AcroWheelieJumpLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT] = gMovementActionFuncs_AcroWheelieJumpRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN] = gMovementActionFuncs_AcroWheelieInPlaceDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP] = gMovementActionFuncs_AcroWheelieInPlaceUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT] = gMovementActionFuncs_AcroWheelieInPlaceLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT] = gMovementActionFuncs_AcroWheelieInPlaceRight, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN] = gMovementActionFuncs_AcroPopWheelieMoveDown, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP] = gMovementActionFuncs_AcroPopWheelieMoveUp, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT] = gMovementActionFuncs_AcroPopWheelieMoveLeft, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT] = gMovementActionFuncs_AcroPopWheelieMoveRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN] = gMovementActionFuncs_AcroWheelieMoveDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP] = gMovementActionFuncs_AcroWheelieMoveUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT] = gMovementActionFuncs_AcroWheelieMoveLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT] = gMovementActionFuncs_AcroWheelieMoveRight, + [MOVEMENT_ACTION_SPIN_DOWN] = gMovementActionFuncs_SpinDown, + [MOVEMENT_ACTION_SPIN_UP] = gMovementActionFuncs_SpinUp, + [MOVEMENT_ACTION_SPIN_LEFT] = gMovementActionFuncs_SpinLeft, + [MOVEMENT_ACTION_SPIN_RIGHT] = gMovementActionFuncs_SpinRight, + [MOVEMENT_ACTION_RAISE_HAND_AND_STOP] = gMovementActionFuncs_RaiseHandAndStop, + [MOVEMENT_ACTION_RAISE_HAND_AND_JUMP] = gMovementActionFuncs_RaiseHandAndJump, + [MOVEMENT_ACTION_RAISE_HAND_AND_SWIM] = gMovementActionFuncs_RaiseHandAndSwim, + [MOVEMENT_ACTION_WALK_SLOWEST_DOWN] = gMovementActionFuncs_WalkSlowestDown, + [MOVEMENT_ACTION_WALK_SLOWEST_UP] = gMovementActionFuncs_WalkSlowestUp, + [MOVEMENT_ACTION_WALK_SLOWEST_LEFT] = gMovementActionFuncs_WalkSlowestLeft, + [MOVEMENT_ACTION_WALK_SLOWEST_RIGHT] = gMovementActionFuncs_WalkSlowestRight, + [MOVEMENT_ACTION_SHAKE_HEAD_OR_WALK_IN_PLACE] = gMovementActionFuncs_ShakeHeadOrWalkInPlace, + [MOVEMENT_ACTION_GLIDE_DOWN] = gMovementActionFuncs_GlideDown, + [MOVEMENT_ACTION_GLIDE_UP] = gMovementActionFuncs_GlideUp, + [MOVEMENT_ACTION_GLIDE_LEFT] = gMovementActionFuncs_GlideLeft, + [MOVEMENT_ACTION_GLIDE_RIGHT] = gMovementActionFuncs_GlideRight, + [MOVEMENT_ACTION_FLY_UP] = gMovementActionFuncs_FlyUp, + [MOVEMENT_ACTION_FLY_DOWN] = gMovementActionFuncs_FlyDown, + [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_DOWN] = gMovementActionFuncs_JumpSpecialWithEffectDown, + [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_UP] = gMovementActionFuncs_JumpSpecialWithEffectUp, + [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_LEFT] = gMovementActionFuncs_JumpSpecialWithEffectLeft, + [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_RIGHT] = gMovementActionFuncs_JumpSpecialWithEffectRight, +}; + +u8 (*const gMovementActionFuncs_FaceDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceDown_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_FaceUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_FaceUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceUp_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_FaceLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_FaceLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceLeft_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_FaceRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_FaceRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceRight_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sDirectionAnimFuncsBySpeed[])(u8) = { +u8 (*const sDirectionAnimFuncsBySpeed[])(u8) = { [MOVE_SPEED_NORMAL] = GetMoveDirectionAnimNum, [MOVE_SPEED_FAST_1] = GetMoveDirectionFastAnimNum, [MOVE_SPEED_FAST_2] = GetMoveDirectionFastAnimNum, @@ -663,97 +663,97 @@ static bool8 (*const sDirectionAnimFuncsBySpeed[])(u8) = { [MOVE_SPEED_FASTEST] = GetMoveDirectionFastestAnimNum, }; -static bool8 (*const sMovementActionFuncs_WalkSlowestDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkSlowestDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkSlowestDown_Step0, MovementAction_WalkSlowestDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkSlowestUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkSlowestUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkSlowestUp_Step0, MovementAction_WalkSlowestUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkSlowestLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkSlowestLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkSlowestLeft_Step0, MovementAction_WalkSlowestLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkSlowestRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkSlowestRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkSlowestRight_Step0, MovementAction_WalkSlowestRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkSlowerDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkSlowerDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkSlowerDown_Step0, MovementAction_WalkSlowerDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkSlowerUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkSlowerUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkSlowerUp_Step0, MovementAction_WalkSlowerUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkSlowerLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkSlowerLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkSlowerLeft_Step0, MovementAction_WalkSlowerLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkSlowerRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkSlowerRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkSlowerRight_Step0, MovementAction_WalkSlowerRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkSlowUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkSlowUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkSlowUp_Step0, MovementAction_WalkSlowUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkSlowDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkSlowDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkSlowDown_Step0, MovementAction_WalkSlowDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkSlowLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkSlowLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkSlowLeft_Step0, MovementAction_WalkSlowLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkSlowRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkSlowRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkSlowRight_Step0, MovementAction_WalkSlowRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkNormalDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkNormalDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkNormalDown_Step0, MovementAction_WalkNormalDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkNormalUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkNormalUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkNormalUp_Step0, MovementAction_WalkNormalUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkNormalLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkNormalLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkNormalLeft_Step0, MovementAction_WalkNormalLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkNormalRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkNormalRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkNormalRight_Step0, MovementAction_WalkNormalRight_Step1, MovementAction_PauseSpriteAnim, @@ -771,895 +771,895 @@ static const s16 sJumpDisplacements[] = { [JUMP_DISTANCE_FAR] = 1, }; -static bool8 (*const sMovementActionFuncs_Jump2Down[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_Jump2Down[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Jump2Down_Step0, MovementAction_Jump2Down_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_Jump2Up[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_Jump2Up[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Jump2Up_Step0, MovementAction_Jump2Up_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_Jump2Left[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_Jump2Left[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Jump2Left_Step0, MovementAction_Jump2Left_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_Jump2Right[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_Jump2Right[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Jump2Right_Step0, MovementAction_Jump2Right_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_Delay1[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_Delay1[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Delay1_Step0, MovementAction_Delay_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_Delay2[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_Delay2[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Delay2_Step0, MovementAction_Delay_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_Delay4[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_Delay4[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Delay4_Step0, MovementAction_Delay_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_Delay8[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_Delay8[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Delay8_Step0, MovementAction_Delay_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_Delay16[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_Delay16[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Delay16_Step0, MovementAction_Delay_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_WalkFastDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkFastDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkFastDown_Step0, MovementAction_WalkFastDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkFastUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkFastUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkFastUp_Step0, MovementAction_WalkFastUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkFastLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkFastLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkFastLeft_Step0, MovementAction_WalkFastLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkFastRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkFastRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkFastRight_Step0, MovementAction_WalkFastRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_GlideDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_GlideDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_GlideDown_Step0, MovementAction_GlideDown_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_GlideUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_GlideUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_GlideUp_Step0, MovementAction_GlideUp_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_GlideLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_GlideLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_GlideLeft_Step0, MovementAction_GlideLeft_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_GlideRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_GlideRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_GlideRight_Step0, MovementAction_GlideRight_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_FaceDownFast[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_FaceDownFast[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceDownFast_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_FaceUpFast[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_FaceUpFast[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceUpFast_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_FaceLeftFast[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_FaceLeftFast[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceLeftFast_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_FaceRightFast[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_FaceRightFast[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceRightFast_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceSlowDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceSlowDown_Step0, MovementAction_WalkInPlaceSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceSlowUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceSlowUp_Step0, MovementAction_WalkInPlaceSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceSlowLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceSlowLeft_Step0, MovementAction_WalkInPlaceSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceSlowRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceSlowRight_Step0, MovementAction_WalkInPlaceSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceNormalDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceNormalDown_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceNormalUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceNormalUp_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceNormalLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceNormalLeft_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceNormalRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceNormalRight_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceFastDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceFastDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceFastDown_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceFastUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceFastUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceFastUp_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceFastLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceFastLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceFastLeft_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceFastRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceFastRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceFastRight_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceFasterDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceFasterDown_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceFasterUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceFasterUp_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceFasterLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceFasterLeft_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkInPlaceFasterRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceFasterRight_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_RideWaterCurrentDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_RideWaterCurrentDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RideWaterCurrentDown_Step0, MovementAction_RideWaterCurrentDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_RideWaterCurrentUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_RideWaterCurrentUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RideWaterCurrentUp_Step0, MovementAction_RideWaterCurrentUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_RideWaterCurrentLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_RideWaterCurrentLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RideWaterCurrentLeft_Step0, MovementAction_RideWaterCurrentLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_RideWaterCurrentRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_RideWaterCurrentRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RideWaterCurrentRight_Step0, MovementAction_RideWaterCurrentRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkFasterDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkFasterDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkFasterDown_Step0, MovementAction_WalkFasterDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkFasterUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkFasterUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkFasterUp_Step0, MovementAction_WalkFasterUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkFasterLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkFasterLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkFasterLeft_Step0, MovementAction_WalkFasterLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkFasterRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkFasterRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkFasterRight_Step0, MovementAction_WalkFasterRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_SlideDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_SlideDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SlideDown_Step0, MovementAction_SlideDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_SlideUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_SlideUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SlideUp_Step0, MovementAction_SlideUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_SlideLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_SlideLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SlideLeft_Step0, MovementAction_SlideLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_SlideRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_SlideRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SlideRight_Step0, MovementAction_SlideRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_PlayerRunDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_PlayerRunDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_PlayerRunDown_Step0, MovementAction_PlayerRunDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_PlayerRunUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_PlayerRunUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_PlayerRunUp_Step0, MovementAction_PlayerRunUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_PlayerRunLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_PlayerRunLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_PlayerRunLeft_Step0, MovementAction_PlayerRunLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_PlayerRunRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_PlayerRunRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_PlayerRunRight_Step0, MovementAction_PlayerRunRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_PlayerRunDownSlow[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_PlayerRunDownSlow[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RunDownSlow_Step0, MovementAction_RunDownSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_PlayerRunUpSlow[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_PlayerRunUpSlow[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RunUpSlow_Step0, MovementAction_RunUpSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_PlayerRunLeftSlow[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_PlayerRunLeftSlow[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RunLeftSlow_Step0, MovementAction_RunLeftSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_PlayerRunRightSlow[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_PlayerRunRightSlow[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RunRightSlow_Step0, MovementAction_RunRightSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_StartAnimInDirection[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_StartAnimInDirection[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_StartAnimInDirection_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpSpecialDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpSpecialDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpSpecialDown_Step0, MovementAction_JumpSpecialDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpSpecialUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpSpecialUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpSpecialUp_Step0, MovementAction_JumpSpecialUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpSpecialLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpSpecialLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpSpecialLeft_Step0, MovementAction_JumpSpecialLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpSpecialRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpSpecialRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpSpecialRight_Step0, MovementAction_JumpSpecialRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpSpecialWithEffectDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpSpecialWithEffectDown_Step0, MovementAction_JumpSpecialWithEffectDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpSpecialWithEffectUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpSpecialWithEffectUp_Step0, MovementAction_JumpSpecialWithEffectUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpSpecialWithEffectLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpSpecialWithEffectLeft_Step0, MovementAction_JumpSpecialWithEffectLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpSpecialWithEffectRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpSpecialWithEffectRight_Step0, MovementAction_JumpSpecialWithEffectRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_FacePlayer[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_FacePlayer[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FacePlayer_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_FaceAwayPlayer[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_FaceAwayPlayer[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceAwayPlayer_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_LockFacingDirection[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_LockFacingDirection[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_LockFacingDirection_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_UnlockFacingDirection[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_UnlockFacingDirection[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_UnlockFacingDirection_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpDown_Step0, MovementAction_JumpDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpUp_Step0, MovementAction_JumpUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpLeft_Step0, MovementAction_JumpLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpRight_Step0, MovementAction_JumpRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpInPlaceDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpInPlaceDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceDown_Step0, MovementAction_JumpInPlaceDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpInPlaceUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpInPlaceUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceUp_Step0, MovementAction_JumpInPlaceUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpInPlaceLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpInPlaceLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceLeft_Step0, MovementAction_JumpInPlaceLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpInPlaceRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpInPlaceRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceRight_Step0, MovementAction_JumpInPlaceRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpInPlaceDownUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpInPlaceDownUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceDownUp_Step0, MovementAction_JumpInPlaceDownUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpInPlaceUpDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpInPlaceUpDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceUpDown_Step0, MovementAction_JumpInPlaceUpDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpInPlaceLeftRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpInPlaceLeftRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceLeftRight_Step0, MovementAction_JumpInPlaceLeftRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_JumpInPlaceRightLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_JumpInPlaceRightLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceRightLeft_Step0, MovementAction_JumpInPlaceRightLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_FaceOriginalDirection[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_FaceOriginalDirection[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceOriginalDirection_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_NurseJoyBowDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_NurseJoyBowDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_NurseJoyBowDown_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_EnableJumpLandingGroundEffect[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_EnableJumpLandingGroundEffect[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_EnableJumpLandingGroundEffect_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_DisableJumpLandingGroundEffect[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_DisableJumpLandingGroundEffect[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_DisableJumpLandingGroundEffect_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_DisableAnimation[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_DisableAnimation[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_DisableAnimation_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_RestoreAnimation[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_RestoreAnimation[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RestoreAnimation_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_SetInvisible[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_SetInvisible[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SetInvisible_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_SetVisible[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_SetVisible[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SetVisible_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_EmoteExclamationMark[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_EmoteExclamationMark[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_EmoteExclamationMark_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_EmoteQuestionMark[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_EmoteQuestionMark[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_EmoteQuestionMark_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_EmoteX[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_EmoteX[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_EmoteX_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_EmoteDoubleExclMark[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_EmoteDoubleExclMark[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_EmoteDoubleExclamationMark_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_EmoteSmile[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_EmoteSmile[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_EmoteSmile_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_RevealTrainer[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_RevealTrainer[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RevealTrainer_Step0, MovementAction_RevealTrainer_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_RockSmashBreak[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_RockSmashBreak[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RockSmashBreak_Step0, MovementAction_RockSmashBreak_Step1, MovementAction_RockSmashBreak_Step2, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_CutTree[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_CutTree[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_CutTree_Step0, MovementAction_CutTree_Step1, MovementAction_CutTree_Step2, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_SetFixedPriority[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_SetFixedPriority[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SetFixedPriority_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_ClearFixedPriority[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_ClearFixedPriority[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_ClearFixedPriority_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_InitAffineAnim[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_InitAffineAnim[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_InitAffineAnim_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_ClearAffineAnim[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_ClearAffineAnim[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_ClearAffineAnim_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_WalkDownStartAffine[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkDownStartAffine[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkDownStartAffine_Step0, MovementAction_WalkDownStartAffine_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_WalkDownAffine[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_WalkDownAffine[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkDownAffine_Step0, MovementAction_WalkDownAffine_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieFaceDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieFaceDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieFaceDown_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieFaceUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieFaceUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieFaceUp_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieFaceLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieFaceLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieFaceLeft_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieFaceRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieFaceRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieFaceRight_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroPopWheelieDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroPopWheelieDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieDown_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroPopWheelieUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroPopWheelieUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieUp_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroPopWheelieLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroPopWheelieLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieLeft_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroPopWheelieRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroPopWheelieRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieRight_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroEndWheelieFaceDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroEndWheelieFaceDown_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroEndWheelieFaceUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroEndWheelieFaceUp_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroEndWheelieFaceLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroEndWheelieFaceLeft_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroEndWheelieFaceRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroEndWheelieFaceRight_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const MovementActionFuncs_UnusedAcroActionDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const MovementActionFuncs_UnusedAcroActionDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_UnusedAcroActionDown_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const MovementActionFuncs_UnusedAcroActionUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const MovementActionFuncs_UnusedAcroActionUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_UnusedAcroActionUp_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const MovementActionFuncs_UnusedAcroActionLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const MovementActionFuncs_UnusedAcroActionLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_UnusedAcroActionLeft_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const MovementActionFuncs_UnusedAcroActionRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const MovementActionFuncs_UnusedAcroActionRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_UnusedAcroActionRight_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieHopFaceDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopFaceDown_Step0, MovementAction_AcroWheelieHopFaceDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieHopFaceUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopFaceUp_Step0, MovementAction_AcroWheelieHopFaceUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieHopFaceLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopFaceLeft_Step0, MovementAction_AcroWheelieHopFaceLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieHopFaceRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopFaceRight_Step0, MovementAction_AcroWheelieHopFaceRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieHopDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieHopDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopDown_Step0, MovementAction_AcroWheelieHopDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieHopUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieHopUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopUp_Step0, MovementAction_AcroWheelieHopUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieHopLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieHopLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopLeft_Step0, MovementAction_AcroWheelieHopLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieHopRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieHopRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopRight_Step0, MovementAction_AcroWheelieHopRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieJumpDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieJumpDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieJumpDown_Step0, MovementAction_AcroWheelieJumpDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieJumpUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieJumpUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieJumpUp_Step0, MovementAction_AcroWheelieJumpUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieJumpLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieJumpLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieJumpLeft_Step0, MovementAction_AcroWheelieJumpLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieJumpRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieJumpRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieJumpRight_Step0, MovementAction_AcroWheelieJumpRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieInPlaceDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieInPlaceDown_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieInPlaceUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieInPlaceUp_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieInPlaceLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieInPlaceLeft_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieInPlaceRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieInPlaceRight_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroPopWheelieMoveDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieMoveDown_Step0, MovementAction_AcroPopWheelieMoveDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroPopWheelieMoveUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieMoveUp_Step0, MovementAction_AcroPopWheelieMoveUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroPopWheelieMoveLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieMoveLeft_Step0, MovementAction_AcroPopWheelieMoveLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroPopWheelieMoveRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieMoveRight_Step0, MovementAction_AcroPopWheelieMoveRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieMoveDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieMoveDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieMoveDown_Step0, MovementAction_AcroWheelieMoveDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieMoveUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieMoveUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieMoveUp_Step0, MovementAction_AcroWheelieMoveUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieMoveLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieMoveLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieMoveLeft_Step0, MovementAction_AcroWheelieMoveLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_AcroWheelieMoveRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_AcroWheelieMoveRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieMoveRight_Step0, MovementAction_AcroWheelieMoveRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_SpinDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_SpinDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SpinDown_Step0, MovementAction_SpinDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_SpinUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_SpinUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SpinUp_Step0, MovementAction_SpinUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_SpinLeft[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_SpinLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SpinLeft_Step0, MovementAction_SpinLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_SpinRight[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_SpinRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SpinRight_Step0, MovementAction_SpinRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_RaiseHandAndStop[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_RaiseHandAndStop[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RaiseHand_Step0, MovementAction_RaiseHandAndStop_Step1, }; -static bool8 (*const sMovementActionFuncs_RaiseHandAndJump[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_RaiseHandAndJump[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RaiseHand_Step0, MovementAction_RaiseHandAndJump_Step1, }; -static bool8 (*const sMovementActionFuncs_RaiseHandAndSwim[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_RaiseHandAndSwim[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RaiseHand_Step0, MovementAction_RaiseHandAndSwim_Step1, }; -static bool8 (*const sMovementActionFuncs_ShakeHeadOrWalkInPlace[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_ShakeHeadOrWalkInPlace[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_ShakeHeadOrWalkInPlace_Step0, MovementAction_ShakeHeadOrWalkInPlace_Step1, }; -static bool8 (*const sMovementActionFuncs_FlyUp[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_FlyUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FlyUp_Step0, MovementAction_FlyUp_Step1, MovementAction_FlyUp_Step2, }; -static bool8 (*const sMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *) = { +u8 (*const gMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FlyDown_Step0, MovementAction_FlyDown_Step1, MovementAction_FlyUp_Step2, diff --git a/src/event_object_movement.c b/src/event_object_movement.c index da74befeb7..ceb289feea 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -5235,7 +5235,7 @@ static u32 GetCopyDirection(u8 copyInitDir, u32 playerInitDir, u32 playerMoveDir static void ObjectEventExecHeldMovementAction(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) + if (gMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) { objectEvent->heldMovementFinished = TRUE; } @@ -5243,7 +5243,7 @@ static void ObjectEventExecHeldMovementAction(struct ObjectEvent *objectEvent, s static void QuestLogObjectEventExecHeldMovementAction(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) + if (gMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) { objectEvent->heldMovementFinished = TRUE; if (objectEvent->graphicsId == OBJ_EVENT_GFX_PUSHABLE_BOULDER) @@ -5253,7 +5253,7 @@ static void QuestLogObjectEventExecHeldMovementAction(struct ObjectEvent *object static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (sMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) + if (gMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) { objectEvent->movementActionId = MOVEMENT_ACTION_NONE; sprite->data[2] = 0; @@ -5282,25 +5282,25 @@ static void FaceDirection(struct ObjectEvent *objectEvent, struct Sprite *sprite sprite->data[2] = 1; } -static bool8 MovementAction_FaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_FaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { FaceDirection(objectEvent, sprite, DIR_SOUTH); return TRUE; } -static bool8 MovementAction_FaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_FaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { FaceDirection(objectEvent, sprite, DIR_NORTH); return TRUE; } -static bool8 MovementAction_FaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_FaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { FaceDirection(objectEvent, sprite, DIR_WEST); return TRUE; } -static bool8 MovementAction_FaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_FaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { FaceDirection(objectEvent, sprite, DIR_EAST); return TRUE; @@ -5416,13 +5416,13 @@ bool8 UpdateWalkSlowest(struct ObjectEvent *objectEvent, struct Sprite *sprite) return FALSE; } -static bool8 MovementAction_WalkSlowestDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowestDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlowest(objectEvent, sprite, DIR_SOUTH); return MovementAction_WalkSlowestDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkSlowestDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowestDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlowest(objectEvent, sprite)) { @@ -5432,13 +5432,13 @@ static bool8 MovementAction_WalkSlowestDown_Step1(struct ObjectEvent *objectEven return FALSE; } -static bool8 MovementAction_WalkSlowestUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowestUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlowest(objectEvent, sprite, DIR_NORTH); return MovementAction_WalkSlowestUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkSlowestUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowestUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlowest(objectEvent, sprite)) { @@ -5448,13 +5448,13 @@ static bool8 MovementAction_WalkSlowestUp_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_WalkSlowestLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowestLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlowest(objectEvent, sprite, DIR_WEST); return MovementAction_WalkSlowestLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkSlowestLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowestLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlowest(objectEvent, sprite)) { @@ -5464,13 +5464,13 @@ static bool8 MovementAction_WalkSlowestLeft_Step1(struct ObjectEvent *objectEven return FALSE; } -static bool8 MovementAction_WalkSlowestRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowestRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlowest(objectEvent, sprite, DIR_EAST); return MovementAction_WalkSlowestRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkSlowestRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowestRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlowest(objectEvent, sprite)) { @@ -5480,13 +5480,13 @@ static bool8 MovementAction_WalkSlowestRight_Step1(struct ObjectEvent *objectEve return FALSE; } -static bool8 MovementAction_WalkSlowerDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowerDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlower(objectEvent, sprite, DIR_SOUTH); return MovementAction_WalkSlowerDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkSlowerDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowerDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlower(objectEvent, sprite)) { @@ -5496,13 +5496,13 @@ static bool8 MovementAction_WalkSlowerDown_Step1(struct ObjectEvent *objectEvent return FALSE; } -static bool8 MovementAction_WalkSlowerUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowerUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlower(objectEvent, sprite, DIR_NORTH); return MovementAction_WalkSlowerUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkSlowerUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowerUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlower(objectEvent, sprite)) { @@ -5512,13 +5512,13 @@ static bool8 MovementAction_WalkSlowerUp_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_WalkSlowerLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowerLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlower(objectEvent, sprite, DIR_WEST); return MovementAction_WalkSlowerLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkSlowerLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowerLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlower(objectEvent, sprite)) { @@ -5528,13 +5528,13 @@ static bool8 MovementAction_WalkSlowerLeft_Step1(struct ObjectEvent *objectEvent return FALSE; } -static bool8 MovementAction_WalkSlowerRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowerRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlower(objectEvent, sprite, DIR_EAST); return MovementAction_WalkSlowerRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkSlowerRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowerRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlower(objectEvent, sprite)) { @@ -5582,13 +5582,13 @@ bool8 UpdateWalkSlow(struct ObjectEvent *objectEvent, struct Sprite *sprite) return FALSE; } -static bool8 MovementAction_WalkSlowUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlow(objectEvent, sprite, DIR_NORTH); return MovementAction_WalkSlowUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkSlowUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlow(objectEvent, sprite)) { @@ -5598,13 +5598,13 @@ static bool8 MovementAction_WalkSlowUp_Step1(struct ObjectEvent *objectEvent, st return FALSE; } -static bool8 MovementAction_WalkSlowDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlow(objectEvent, sprite, DIR_SOUTH); return MovementAction_WalkSlowDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkSlowDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlow(objectEvent, sprite)) { @@ -5614,13 +5614,13 @@ static bool8 MovementAction_WalkSlowDown_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_WalkSlowLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlow(objectEvent, sprite, DIR_WEST); return MovementAction_WalkSlowLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkSlowLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlow(objectEvent, sprite)) { @@ -5630,13 +5630,13 @@ static bool8 MovementAction_WalkSlowLeft_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_WalkSlowRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlow(objectEvent, sprite, DIR_EAST); return MovementAction_WalkSlowRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkSlowRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkSlowRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlow(objectEvent, sprite)) { @@ -5646,13 +5646,13 @@ static bool8 MovementAction_WalkSlowRight_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_WalkNormalDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkNormalDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_NORMAL); return MovementAction_WalkNormalDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkNormalDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkNormalDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -5662,13 +5662,13 @@ static bool8 MovementAction_WalkNormalDown_Step1(struct ObjectEvent *objectEvent return FALSE; } -static bool8 MovementAction_WalkNormalUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkNormalUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_NORMAL); return MovementAction_WalkNormalUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkNormalUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkNormalUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -5678,13 +5678,13 @@ static bool8 MovementAction_WalkNormalUp_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_WalkNormalLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkNormalLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_NORMAL); return MovementAction_WalkNormalLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkNormalLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkNormalLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -5694,13 +5694,13 @@ static bool8 MovementAction_WalkNormalLeft_Step1(struct ObjectEvent *objectEvent return FALSE; } -static bool8 MovementAction_WalkNormalRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkNormalRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_NORMAL); return MovementAction_WalkNormalRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkNormalRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkNormalRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -5813,13 +5813,13 @@ bool8 DoJumpInPlaceAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) } } -static bool8 MovementAction_Jump2Down_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Jump2Down_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_Jump2Down_Step1(objectEvent, sprite); } -static bool8 MovementAction_Jump2Down_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Jump2Down_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -5830,13 +5830,13 @@ static bool8 MovementAction_Jump2Down_Step1(struct ObjectEvent *objectEvent, str return FALSE; } -static bool8 MovementAction_Jump2Up_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Jump2Up_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_Jump2Up_Step1(objectEvent, sprite); } -static bool8 MovementAction_Jump2Up_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Jump2Up_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -5847,13 +5847,13 @@ static bool8 MovementAction_Jump2Up_Step1(struct ObjectEvent *objectEvent, struc return FALSE; } -static bool8 MovementAction_Jump2Left_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Jump2Left_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_Jump2Left_Step1(objectEvent, sprite); } -static bool8 MovementAction_Jump2Left_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Jump2Left_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -5864,13 +5864,13 @@ static bool8 MovementAction_Jump2Left_Step1(struct ObjectEvent *objectEvent, str return FALSE; } -static bool8 MovementAction_Jump2Right_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Jump2Right_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_Jump2Right_Step1(objectEvent, sprite); } -static bool8 MovementAction_Jump2Right_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Jump2Right_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -5887,7 +5887,7 @@ void InitMovementDelay(struct Sprite *sprite, u16 duration) sprite->data[3] = duration; } -static bool8 MovementAction_Delay_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Delay_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (--sprite->data[3] == 0) { @@ -5897,43 +5897,43 @@ static bool8 MovementAction_Delay_Step1(struct ObjectEvent *objectEvent, struct return FALSE; } -static bool8 MovementAction_Delay1_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Delay1_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementDelay(sprite, 1); return MovementAction_Delay_Step1(objectEvent, sprite); } -static bool8 MovementAction_Delay2_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Delay2_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementDelay(sprite, 2); return MovementAction_Delay_Step1(objectEvent, sprite); } -static bool8 MovementAction_Delay4_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Delay4_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementDelay(sprite, 4); return MovementAction_Delay_Step1(objectEvent, sprite); } -static bool8 MovementAction_Delay8_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Delay8_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementDelay(sprite, 8); return MovementAction_Delay_Step1(objectEvent, sprite); } -static bool8 MovementAction_Delay16_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_Delay16_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementDelay(sprite, 16); return MovementAction_Delay_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkFastDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFastDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FAST_1); return MovementAction_WalkFastDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkFastDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFastDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -5943,13 +5943,13 @@ static bool8 MovementAction_WalkFastDown_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_WalkFastUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFastUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FAST_1); return MovementAction_WalkFastUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkFastUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFastUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -5959,13 +5959,13 @@ static bool8 MovementAction_WalkFastUp_Step1(struct ObjectEvent *objectEvent, st return FALSE; } -static bool8 MovementAction_WalkFastLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFastLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FAST_1); return MovementAction_WalkFastLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkFastLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFastLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -5975,13 +5975,13 @@ static bool8 MovementAction_WalkFastLeft_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_WalkFastRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFastRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FAST_1); return MovementAction_WalkFastRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkFastRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFastRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6011,7 +6011,7 @@ u8 MovementAction_GlideDown_Step0(struct ObjectEvent *objectEvent, struct Sprite return MovementAction_GlideDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_GlideDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_GlideDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AnimateSprite(sprite); if (UpdateMovementGlide(objectEvent, sprite)) @@ -6031,7 +6031,7 @@ u8 MovementAction_GlideUp_Step0(struct ObjectEvent *objectEvent, struct Sprite * return MovementAction_GlideUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_GlideUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_GlideUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AnimateSprite(sprite); if (UpdateMovementGlide(objectEvent, sprite)) @@ -6051,7 +6051,7 @@ u8 MovementAction_GlideLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite return MovementAction_GlideLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_GlideLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_GlideLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AnimateSprite(sprite); if (UpdateMovementGlide(objectEvent, sprite)) @@ -6071,7 +6071,7 @@ u8 MovementAction_GlideRight_Step0(struct ObjectEvent *objectEvent, struct Sprit return MovementAction_GlideRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_GlideRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_GlideRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AnimateSprite(sprite); if (UpdateMovementGlide(objectEvent, sprite)) @@ -6139,7 +6139,7 @@ void InitMoveInPlace(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 sprite->data[3] = duration; } -static bool8 MovementAction_WalkInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (--sprite->data[3] == 0) { @@ -6150,7 +6150,7 @@ static bool8 MovementAction_WalkInPlace_Step1(struct ObjectEvent *objectEvent, s return FALSE; } -static bool8 MovementAction_WalkInPlaceSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (sprite->data[3] & 1) sprite->animDelayCounter++; @@ -6158,109 +6158,109 @@ static bool8 MovementAction_WalkInPlaceSlow_Step1(struct ObjectEvent *objectEven return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceSlowDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceSlowDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionAnimNum(DIR_SOUTH), 32); return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceSlowUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceSlowUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionAnimNum(DIR_NORTH), 32); return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceSlowLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceSlowLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionAnimNum(DIR_WEST), 32); return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceSlowRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceSlowRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionAnimNum(DIR_EAST), 32); return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceNormalDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceNormalDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionAnimNum(DIR_SOUTH), 16); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceNormalUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceNormalUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionAnimNum(DIR_NORTH), 16); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceNormalLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceNormalLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionAnimNum(DIR_WEST), 16); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceNormalRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceNormalRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionAnimNum(DIR_EAST), 16); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceFastDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceFastDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionFastAnimNum(DIR_SOUTH), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceFastUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceFastUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionFastAnimNum(DIR_NORTH), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceFastLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceFastLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionFastAnimNum(DIR_WEST), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceFastRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceFastRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionFastAnimNum(DIR_EAST), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceFasterDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceFasterDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionFasterAnimNum(DIR_SOUTH), 4); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceFasterUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceFasterUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionFasterAnimNum(DIR_NORTH), 4); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceFasterLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceFasterLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionFasterAnimNum(DIR_WEST), 4); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceFasterRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkInPlaceFasterRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionFasterAnimNum(DIR_EAST), 4); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_RideWaterCurrentDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RideWaterCurrentDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FAST_2); return MovementAction_RideWaterCurrentDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_RideWaterCurrentDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RideWaterCurrentDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6270,13 +6270,13 @@ static bool8 MovementAction_RideWaterCurrentDown_Step1(struct ObjectEvent *objec return FALSE; } -static bool8 MovementAction_RideWaterCurrentUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RideWaterCurrentUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FAST_2); return MovementAction_RideWaterCurrentUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_RideWaterCurrentUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RideWaterCurrentUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6286,13 +6286,13 @@ static bool8 MovementAction_RideWaterCurrentUp_Step1(struct ObjectEvent *objectE return FALSE; } -static bool8 MovementAction_RideWaterCurrentLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RideWaterCurrentLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FAST_2); return MovementAction_RideWaterCurrentLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_RideWaterCurrentLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RideWaterCurrentLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6302,13 +6302,13 @@ static bool8 MovementAction_RideWaterCurrentLeft_Step1(struct ObjectEvent *objec return FALSE; } -static bool8 MovementAction_RideWaterCurrentRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RideWaterCurrentRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FAST_2); return MovementAction_RideWaterCurrentRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_RideWaterCurrentRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RideWaterCurrentRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6318,13 +6318,13 @@ static bool8 MovementAction_RideWaterCurrentRight_Step1(struct ObjectEvent *obje return FALSE; } -static bool8 MovementAction_WalkFasterDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFasterDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FASTER); return MovementAction_WalkFasterDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkFasterDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFasterDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6334,13 +6334,13 @@ static bool8 MovementAction_WalkFasterDown_Step1(struct ObjectEvent *objectEvent return FALSE; } -static bool8 MovementAction_WalkFasterUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFasterUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FASTER); return MovementAction_WalkFasterUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkFasterUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFasterUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6350,13 +6350,13 @@ static bool8 MovementAction_WalkFasterUp_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_WalkFasterLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFasterLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FASTER); return MovementAction_WalkFasterLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkFasterLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFasterLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6366,13 +6366,13 @@ static bool8 MovementAction_WalkFasterLeft_Step1(struct ObjectEvent *objectEvent return FALSE; } -static bool8 MovementAction_WalkFasterRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFasterRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FASTER); return MovementAction_WalkFasterRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkFasterRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkFasterRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6382,13 +6382,13 @@ static bool8 MovementAction_WalkFasterRight_Step1(struct ObjectEvent *objectEven return FALSE; } -static bool8 MovementAction_SlideDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SlideDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FASTEST); return MovementAction_SlideDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_SlideDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SlideDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6398,13 +6398,13 @@ static bool8 MovementAction_SlideDown_Step1(struct ObjectEvent *objectEvent, str return FALSE; } -static bool8 MovementAction_SlideUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SlideUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FASTEST); return MovementAction_SlideUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_SlideUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SlideUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6414,13 +6414,13 @@ static bool8 MovementAction_SlideUp_Step1(struct ObjectEvent *objectEvent, struc return FALSE; } -static bool8 MovementAction_SlideLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SlideLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FASTEST); return MovementAction_SlideLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_SlideLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SlideLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6430,13 +6430,13 @@ static bool8 MovementAction_SlideLeft_Step1(struct ObjectEvent *objectEvent, str return FALSE; } -static bool8 MovementAction_SlideRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SlideRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FASTEST); return MovementAction_SlideRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_SlideRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SlideRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6446,13 +6446,13 @@ static bool8 MovementAction_SlideRight_Step1(struct ObjectEvent *objectEvent, st return FALSE; } -static bool8 MovementAction_PlayerRunDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_PlayerRunDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartRunningAnim(objectEvent, sprite, DIR_SOUTH); return MovementAction_PlayerRunDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_PlayerRunDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_PlayerRunDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6462,13 +6462,13 @@ static bool8 MovementAction_PlayerRunDown_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_PlayerRunUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_PlayerRunUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartRunningAnim(objectEvent, sprite, DIR_NORTH); return MovementAction_PlayerRunUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_PlayerRunUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_PlayerRunUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6478,13 +6478,13 @@ static bool8 MovementAction_PlayerRunUp_Step1(struct ObjectEvent *objectEvent, s return FALSE; } -static bool8 MovementAction_PlayerRunLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_PlayerRunLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartRunningAnim(objectEvent, sprite, DIR_WEST); return MovementAction_PlayerRunLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_PlayerRunLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_PlayerRunLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6494,13 +6494,13 @@ static bool8 MovementAction_PlayerRunLeft_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_PlayerRunRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_PlayerRunRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartRunningAnim(objectEvent, sprite, DIR_EAST); return MovementAction_PlayerRunRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_PlayerRunRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_PlayerRunRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6544,13 +6544,13 @@ bool8 UpdateRunSlow(struct ObjectEvent *objectEvent, struct Sprite *sprite) return FALSE; } -static bool8 MovementAction_RunDownSlow_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RunDownSlow_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitRunSlow(objectEvent, sprite, DIR_SOUTH); return MovementAction_RunDownSlow_Step1(objectEvent, sprite); } -static bool8 MovementAction_RunDownSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RunDownSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateRunSlow(objectEvent, sprite)) { @@ -6560,13 +6560,13 @@ static bool8 MovementAction_RunDownSlow_Step1(struct ObjectEvent *objectEvent, s return FALSE; } -static bool8 MovementAction_RunUpSlow_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RunUpSlow_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitRunSlow(objectEvent, sprite, DIR_NORTH); return MovementAction_RunUpSlow_Step1(objectEvent, sprite); } -static bool8 MovementAction_RunUpSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RunUpSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateRunSlow(objectEvent, sprite)) { @@ -6576,13 +6576,13 @@ static bool8 MovementAction_RunUpSlow_Step1(struct ObjectEvent *objectEvent, str return FALSE; } -static bool8 MovementAction_RunLeftSlow_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RunLeftSlow_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitRunSlow(objectEvent, sprite, DIR_WEST); return MovementAction_RunLeftSlow_Step1(objectEvent, sprite); } -static bool8 MovementAction_RunLeftSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RunLeftSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateRunSlow(objectEvent, sprite)) { @@ -6592,13 +6592,13 @@ static bool8 MovementAction_RunLeftSlow_Step1(struct ObjectEvent *objectEvent, s return FALSE; } -static bool8 MovementAction_RunRightSlow_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RunRightSlow_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitRunSlow(objectEvent, sprite, DIR_SOUTH); return MovementAction_RunRightSlow_Step1(objectEvent, sprite); } -static bool8 MovementAction_RunRightSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RunRightSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateRunSlow(objectEvent, sprite)) { @@ -6615,13 +6615,13 @@ void StartSpriteAnimInDirection(struct ObjectEvent *objectEvent, struct Sprite * sprite->data[2] = 1; } -static bool8 MovementAction_StartAnimInDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_StartAnimInDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, objectEvent->movementDirection, sprite->animNum); return FALSE; } -static bool8 MovementAction_WaitSpriteAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WaitSpriteAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (SpriteAnimEnded(sprite)) { @@ -6637,13 +6637,13 @@ void InitJumpSpecial(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 StartSpriteAnim(sprite, GetJumpSpecialDirectionAnimNum(direction)); } -static bool8 MovementAction_JumpSpecialDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpSpecial(objectEvent, sprite, DIR_SOUTH); return MovementAction_JumpSpecialDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpSpecialDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpSpecialAnim(objectEvent, sprite)) { @@ -6654,13 +6654,13 @@ static bool8 MovementAction_JumpSpecialDown_Step1(struct ObjectEvent *objectEven return FALSE; } -static bool8 MovementAction_JumpSpecialUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpSpecial(objectEvent, sprite, DIR_NORTH); return MovementAction_JumpSpecialUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpSpecialUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpSpecialAnim(objectEvent, sprite)) { @@ -6671,13 +6671,13 @@ static bool8 MovementAction_JumpSpecialUp_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_JumpSpecialLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpSpecial(objectEvent, sprite, DIR_WEST); return MovementAction_JumpSpecialLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpSpecialLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpSpecialAnim(objectEvent, sprite)) { @@ -6688,13 +6688,13 @@ static bool8 MovementAction_JumpSpecialLeft_Step1(struct ObjectEvent *objectEven return FALSE; } -static bool8 MovementAction_JumpSpecialRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpSpecial(objectEvent, sprite, DIR_EAST); return MovementAction_JumpSpecialRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpSpecialRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpSpecialAnim(objectEvent, sprite)) { @@ -6705,13 +6705,13 @@ static bool8 MovementAction_JumpSpecialRight_Step1(struct ObjectEvent *objectEve return FALSE; } -static bool8 MovementAction_JumpSpecialWithEffectDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialWithEffectDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpSpecial(objectEvent, sprite, DIR_SOUTH); return MovementAction_JumpSpecialWithEffectDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpSpecialWithEffectDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialWithEffectDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpSpecialAnim(objectEvent, sprite)) { @@ -6721,13 +6721,13 @@ static bool8 MovementAction_JumpSpecialWithEffectDown_Step1(struct ObjectEvent * return FALSE; } -static bool8 MovementAction_JumpSpecialWithEffectUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialWithEffectUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpSpecial(objectEvent, sprite, DIR_NORTH); return MovementAction_JumpSpecialWithEffectUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpSpecialWithEffectUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialWithEffectUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpSpecialAnim(objectEvent, sprite)) { @@ -6737,13 +6737,13 @@ static bool8 MovementAction_JumpSpecialWithEffectUp_Step1(struct ObjectEvent *ob return FALSE; } -static bool8 MovementAction_JumpSpecialWithEffectLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialWithEffectLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpSpecial(objectEvent, sprite, DIR_WEST); return MovementAction_JumpSpecialWithEffectLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpSpecialWithEffectLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialWithEffectLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpSpecialAnim(objectEvent, sprite)) { @@ -6753,13 +6753,13 @@ static bool8 MovementAction_JumpSpecialWithEffectLeft_Step1(struct ObjectEvent * return FALSE; } -static bool8 MovementAction_JumpSpecialWithEffectRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialWithEffectRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpSpecial(objectEvent, sprite, DIR_EAST); return MovementAction_JumpSpecialWithEffectRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpSpecialWithEffectRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpSpecialWithEffectRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpSpecialAnim(objectEvent, sprite)) { @@ -6769,7 +6769,7 @@ static bool8 MovementAction_JumpSpecialWithEffectRight_Step1(struct ObjectEvent return FALSE; } -static bool8 MovementAction_FacePlayer_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_FacePlayer_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { u8 playerObjectId; @@ -6781,7 +6781,7 @@ static bool8 MovementAction_FacePlayer_Step0(struct ObjectEvent *objectEvent, st return TRUE; } -static bool8 MovementAction_FaceAwayPlayer_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_FaceAwayPlayer_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { u8 playerObjectId; @@ -6793,27 +6793,27 @@ static bool8 MovementAction_FaceAwayPlayer_Step0(struct ObjectEvent *objectEvent return TRUE; } -static bool8 MovementAction_LockFacingDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_LockFacingDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->facingDirectionLocked = TRUE; sprite->data[2] = 1; return TRUE; } -static bool8 MovementAction_UnlockFacingDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_UnlockFacingDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->facingDirectionLocked = FALSE; sprite->data[2] = 1; return TRUE; } -static bool8 MovementAction_JumpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_NORMAL, JUMP_TYPE_NORMAL); return MovementAction_JumpDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -6824,13 +6824,13 @@ static bool8 MovementAction_JumpDown_Step1(struct ObjectEvent *objectEvent, stru return FALSE; } -static bool8 MovementAction_JumpUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_NORMAL, JUMP_TYPE_NORMAL); return MovementAction_JumpUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -6841,13 +6841,13 @@ static bool8 MovementAction_JumpUp_Step1(struct ObjectEvent *objectEvent, struct return FALSE; } -static bool8 MovementAction_JumpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_NORMAL, JUMP_TYPE_NORMAL); return MovementAction_JumpLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -6858,13 +6858,13 @@ static bool8 MovementAction_JumpLeft_Step1(struct ObjectEvent *objectEvent, stru return FALSE; } -static bool8 MovementAction_JumpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_NORMAL, JUMP_TYPE_NORMAL); return MovementAction_JumpRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -6875,13 +6875,13 @@ static bool8 MovementAction_JumpRight_Step1(struct ObjectEvent *objectEvent, str return FALSE; } -static bool8 MovementAction_JumpInPlaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpInPlaceDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -6892,13 +6892,13 @@ static bool8 MovementAction_JumpInPlaceDown_Step1(struct ObjectEvent *objectEven return FALSE; } -static bool8 MovementAction_JumpInPlaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpInPlaceUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -6909,13 +6909,13 @@ static bool8 MovementAction_JumpInPlaceUp_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_JumpInPlaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpInPlaceLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -6926,13 +6926,13 @@ static bool8 MovementAction_JumpInPlaceLeft_Step1(struct ObjectEvent *objectEven return FALSE; } -static bool8 MovementAction_JumpInPlaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpInPlaceRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -6943,13 +6943,13 @@ static bool8 MovementAction_JumpInPlaceRight_Step1(struct ObjectEvent *objectEve return FALSE; } -static bool8 MovementAction_JumpInPlaceDownUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceDownUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceDownUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpInPlaceDownUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceDownUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpInPlaceAnim(objectEvent, sprite)) { @@ -6960,13 +6960,13 @@ static bool8 MovementAction_JumpInPlaceDownUp_Step1(struct ObjectEvent *objectEv return FALSE; } -static bool8 MovementAction_JumpInPlaceUpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceUpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceUpDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpInPlaceUpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceUpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpInPlaceAnim(objectEvent, sprite)) { @@ -6977,13 +6977,13 @@ static bool8 MovementAction_JumpInPlaceUpDown_Step1(struct ObjectEvent *objectEv return FALSE; } -static bool8 MovementAction_JumpInPlaceLeftRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceLeftRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceLeftRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpInPlaceLeftRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceLeftRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpInPlaceAnim(objectEvent, sprite)) { @@ -6994,13 +6994,13 @@ static bool8 MovementAction_JumpInPlaceLeftRight_Step1(struct ObjectEvent *objec return FALSE; } -static bool8 MovementAction_JumpInPlaceRightLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceRightLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceRightLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_JumpInPlaceRightLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_JumpInPlaceRightLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpInPlaceAnim(objectEvent, sprite)) { @@ -7011,61 +7011,61 @@ static bool8 MovementAction_JumpInPlaceRightLeft_Step1(struct ObjectEvent *objec return FALSE; } -static bool8 MovementAction_FaceOriginalDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_FaceOriginalDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { FaceDirection(objectEvent, sprite, gInitialMovementTypeFacingDirections[objectEvent->movementType]); return TRUE; } -static bool8 MovementAction_NurseJoyBowDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_NurseJoyBowDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, DIR_SOUTH, ANIM_NURSE_BOW); return FALSE; } -static bool8 MovementAction_EnableJumpLandingGroundEffect_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_EnableJumpLandingGroundEffect_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->disableJumpLandingGroundEffect = FALSE; sprite->data[2] = 1; return TRUE; } -static bool8 MovementAction_DisableJumpLandingGroundEffect_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_DisableJumpLandingGroundEffect_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->disableJumpLandingGroundEffect = TRUE; sprite->data[2] = 1; return TRUE; } -static bool8 MovementAction_DisableAnimation_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_DisableAnimation_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->inanimate = TRUE; sprite->data[2] = 1; return TRUE; } -static bool8 MovementAction_RestoreAnimation_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RestoreAnimation_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->inanimate = GetObjectEventGraphicsInfo(objectEvent->graphicsId)->inanimate; sprite->data[2] = 1; return TRUE; } -static bool8 MovementAction_SetInvisible_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SetInvisible_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->invisible = TRUE; sprite->data[2] = 1; return TRUE; } -static bool8 MovementAction_SetVisible_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SetVisible_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->invisible = FALSE; sprite->data[2] = 1; return TRUE; } -static bool8 MovementAction_EmoteExclamationMark_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_EmoteExclamationMark_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON); @@ -7073,7 +7073,7 @@ static bool8 MovementAction_EmoteExclamationMark_Step0(struct ObjectEvent *objec return TRUE; } -static bool8 MovementAction_EmoteQuestionMark_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_EmoteQuestionMark_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_QUESTION_MARK_ICON); @@ -7081,7 +7081,7 @@ static bool8 MovementAction_EmoteQuestionMark_Step0(struct ObjectEvent *objectEv return TRUE; } -static bool8 MovementAction_EmoteX_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_EmoteX_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_X_ICON); @@ -7089,7 +7089,7 @@ static bool8 MovementAction_EmoteX_Step0(struct ObjectEvent *objectEvent, struct return TRUE; } -static bool8 MovementAction_EmoteDoubleExclamationMark_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_EmoteDoubleExclamationMark_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_DOUBLE_EXCL_MARK_ICON); @@ -7097,7 +7097,7 @@ static bool8 MovementAction_EmoteDoubleExclamationMark_Step0(struct ObjectEvent return TRUE; } -static bool8 MovementAction_EmoteSmile_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_EmoteSmile_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_SMILEY_FACE_ICON); @@ -7105,7 +7105,7 @@ static bool8 MovementAction_EmoteSmile_Step0(struct ObjectEvent *objectEvent, st return TRUE; } -static bool8 MovementAction_RevealTrainer_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RevealTrainer_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (objectEvent->movementType == MOVEMENT_TYPE_BURIED) { @@ -7122,7 +7122,7 @@ static bool8 MovementAction_RevealTrainer_Step0(struct ObjectEvent *objectEvent, return MovementAction_RevealTrainer_Step1(objectEvent, sprite); } -static bool8 MovementAction_RevealTrainer_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RevealTrainer_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateRevealDisguise(objectEvent)) { @@ -7132,14 +7132,14 @@ static bool8 MovementAction_RevealTrainer_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_RockSmashBreak_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RockSmashBreak_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { SetAndStartSpriteAnim(sprite, ANIM_REMOVE_OBSTACLE, 0); sprite->data[2] = 1; return FALSE; } -static bool8 MovementAction_RockSmashBreak_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RockSmashBreak_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (SpriteAnimEnded(sprite)) { @@ -7149,7 +7149,7 @@ static bool8 MovementAction_RockSmashBreak_Step1(struct ObjectEvent *objectEvent return FALSE; } -static bool8 MovementAction_RockSmashBreak_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RockSmashBreak_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->invisible ^= TRUE; if (WaitForMovementDelay(sprite)) @@ -7160,14 +7160,14 @@ static bool8 MovementAction_RockSmashBreak_Step2(struct ObjectEvent *objectEvent return FALSE; } -static bool8 MovementAction_CutTree_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_CutTree_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { SetAndStartSpriteAnim(sprite, ANIM_REMOVE_OBSTACLE, 0); sprite->data[2] = 1; return FALSE; } -static bool8 MovementAction_CutTree_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_CutTree_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (SpriteAnimEnded(sprite)) { @@ -7177,7 +7177,7 @@ static bool8 MovementAction_CutTree_Step1(struct ObjectEvent *objectEvent, struc return FALSE; } -static bool8 MovementAction_CutTree_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_CutTree_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->invisible ^= TRUE; if (WaitForMovementDelay(sprite)) @@ -7188,21 +7188,21 @@ static bool8 MovementAction_CutTree_Step2(struct ObjectEvent *objectEvent, struc return FALSE; } -static bool8 MovementAction_SetFixedPriority_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SetFixedPriority_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->fixedPriority = TRUE; sprite->data[2] = 1; return TRUE; } -static bool8 MovementAction_ClearFixedPriority_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_ClearFixedPriority_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->fixedPriority = FALSE; sprite->data[2] = 1; return TRUE; } -static bool8 MovementAction_InitAffineAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_InitAffineAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; InitSpriteAffineAnim(sprite); @@ -7211,7 +7211,7 @@ static bool8 MovementAction_InitAffineAnim_Step0(struct ObjectEvent *objectEvent return TRUE; } -static bool8 MovementAction_ClearAffineAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_ClearAffineAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { FreeOamMatrix(sprite->oam.matrixNum); sprite->oam.affineMode = ST_OAM_AFFINE_OFF; @@ -7219,7 +7219,7 @@ static bool8 MovementAction_ClearAffineAnim_Step0(struct ObjectEvent *objectEven return TRUE; } -static bool8 MovementAction_WalkDownStartAffine_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkDownStartAffine_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlower(objectEvent, sprite, DIR_SOUTH); sprite->affineAnimPaused = FALSE; @@ -7227,7 +7227,7 @@ static bool8 MovementAction_WalkDownStartAffine_Step0(struct ObjectEvent *object return MovementAction_WalkDownStartAffine_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkDownStartAffine_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkDownStartAffine_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlower(objectEvent, sprite)) { @@ -7238,7 +7238,7 @@ static bool8 MovementAction_WalkDownStartAffine_Step1(struct ObjectEvent *object return FALSE; } -static bool8 MovementAction_WalkDownAffine_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkDownAffine_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlower(objectEvent, sprite, DIR_SOUTH); sprite->affineAnimPaused = FALSE; @@ -7246,7 +7246,7 @@ static bool8 MovementAction_WalkDownAffine_Step0(struct ObjectEvent *objectEvent return MovementAction_WalkDownAffine_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkDownAffine_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_WalkDownAffine_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlower(objectEvent, sprite)) { @@ -7266,97 +7266,97 @@ void AcroWheelieFaceDirection(struct ObjectEvent *objectEvent, struct Sprite *sp sprite->data[2] = 1; } -static bool8 MovementAction_AcroWheelieFaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieFaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AcroWheelieFaceDirection(objectEvent, sprite, DIR_SOUTH); return TRUE; } -static bool8 MovementAction_AcroWheelieFaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieFaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AcroWheelieFaceDirection(objectEvent, sprite, DIR_NORTH); return TRUE; } -static bool8 MovementAction_AcroWheelieFaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieFaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AcroWheelieFaceDirection(objectEvent, sprite, DIR_WEST); return TRUE; } -static bool8 MovementAction_AcroWheelieFaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieFaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AcroWheelieFaceDirection(objectEvent, sprite, DIR_EAST); return TRUE; } -static bool8 MovementAction_AcroPopWheelieDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroPopWheelieDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, DIR_SOUTH, GetAcroWheelieDirectionAnimNum(DIR_SOUTH)); return FALSE; } -static bool8 MovementAction_AcroPopWheelieUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroPopWheelieUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, DIR_NORTH, GetAcroWheelieDirectionAnimNum(DIR_NORTH)); return FALSE; } -static bool8 MovementAction_AcroPopWheelieLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroPopWheelieLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, DIR_WEST, GetAcroWheelieDirectionAnimNum(DIR_WEST)); return FALSE; } -static bool8 MovementAction_AcroPopWheelieRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroPopWheelieRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, DIR_EAST, GetAcroWheelieDirectionAnimNum(DIR_EAST)); return FALSE; } -static bool8 MovementAction_AcroEndWheelieFaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroEndWheelieFaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, DIR_SOUTH, GetAcroEndWheelieDirectionAnimNum(DIR_SOUTH)); return FALSE; } -static bool8 MovementAction_AcroEndWheelieFaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroEndWheelieFaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, DIR_NORTH, GetAcroEndWheelieDirectionAnimNum(DIR_NORTH)); return FALSE; } -static bool8 MovementAction_AcroEndWheelieFaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroEndWheelieFaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, DIR_WEST, GetAcroEndWheelieDirectionAnimNum(DIR_WEST)); return FALSE; } -static bool8 MovementAction_AcroEndWheelieFaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroEndWheelieFaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, DIR_EAST, GetAcroEndWheelieDirectionAnimNum(DIR_EAST)); return FALSE; } -static bool8 MovementAction_UnusedAcroActionDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_UnusedAcroActionDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, DIR_SOUTH, GetAcroUnusedActionDirectionAnimNum(DIR_SOUTH)); return FALSE; } -static bool8 MovementAction_UnusedAcroActionUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_UnusedAcroActionUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, DIR_NORTH, GetAcroUnusedActionDirectionAnimNum(DIR_NORTH)); return FALSE; } -static bool8 MovementAction_UnusedAcroActionLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_UnusedAcroActionLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, DIR_WEST, GetAcroUnusedActionDirectionAnimNum(DIR_WEST)); return FALSE; } -static bool8 MovementAction_UnusedAcroActionRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_UnusedAcroActionRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnimInDirection(objectEvent, sprite, DIR_EAST, GetAcroUnusedActionDirectionAnimNum(DIR_EAST)); return FALSE; @@ -7369,13 +7369,13 @@ void InitAcroWheelieJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, DoShadowFieldEffect(objectEvent); } -static bool8 MovementAction_AcroWheelieHopFaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopFaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieHopFaceDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopFaceDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -7386,13 +7386,13 @@ static bool8 MovementAction_AcroWheelieHopFaceDown_Step1(struct ObjectEvent *obj return FALSE; } -static bool8 MovementAction_AcroWheelieHopFaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopFaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieHopFaceUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopFaceUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -7403,13 +7403,13 @@ static bool8 MovementAction_AcroWheelieHopFaceUp_Step1(struct ObjectEvent *objec return FALSE; } -static bool8 MovementAction_AcroWheelieHopFaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopFaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieHopFaceLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopFaceLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -7420,13 +7420,13 @@ static bool8 MovementAction_AcroWheelieHopFaceLeft_Step1(struct ObjectEvent *obj return FALSE; } -static bool8 MovementAction_AcroWheelieHopFaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopFaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieHopFaceRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopFaceRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -7437,13 +7437,13 @@ static bool8 MovementAction_AcroWheelieHopFaceRight_Step1(struct ObjectEvent *ob return FALSE; } -static bool8 MovementAction_AcroWheelieHopDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_NORMAL, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieHopDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -7454,13 +7454,13 @@ static bool8 MovementAction_AcroWheelieHopDown_Step1(struct ObjectEvent *objectE return FALSE; } -static bool8 MovementAction_AcroWheelieHopUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_NORMAL, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieHopUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -7471,13 +7471,13 @@ static bool8 MovementAction_AcroWheelieHopUp_Step1(struct ObjectEvent *objectEve return FALSE; } -static bool8 MovementAction_AcroWheelieHopLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_NORMAL, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieHopLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -7488,13 +7488,13 @@ static bool8 MovementAction_AcroWheelieHopLeft_Step1(struct ObjectEvent *objectE return FALSE; } -static bool8 MovementAction_AcroWheelieHopRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_NORMAL, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieHopRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieHopRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -7505,13 +7505,13 @@ static bool8 MovementAction_AcroWheelieHopRight_Step1(struct ObjectEvent *object return FALSE; } -static bool8 MovementAction_AcroWheelieJumpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieJumpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieJumpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieJumpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -7522,13 +7522,13 @@ static bool8 MovementAction_AcroWheelieJumpDown_Step1(struct ObjectEvent *object return FALSE; } -static bool8 MovementAction_AcroWheelieJumpUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieJumpUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieJumpUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieJumpUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -7539,13 +7539,13 @@ static bool8 MovementAction_AcroWheelieJumpUp_Step1(struct ObjectEvent *objectEv return FALSE; } -static bool8 MovementAction_AcroWheelieJumpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieJumpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieJumpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieJumpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -7556,13 +7556,13 @@ static bool8 MovementAction_AcroWheelieJumpLeft_Step1(struct ObjectEvent *object return FALSE; } -static bool8 MovementAction_AcroWheelieJumpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieJumpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieJumpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieJumpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpAnim(objectEvent, sprite)) { @@ -7573,25 +7573,25 @@ static bool8 MovementAction_AcroWheelieJumpRight_Step1(struct ObjectEvent *objec return FALSE; } -static bool8 MovementAction_AcroWheelieInPlaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieInPlaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetAcroWheeliePedalDirectionAnimNum(DIR_SOUTH), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieInPlaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieInPlaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetAcroWheeliePedalDirectionAnimNum(DIR_NORTH), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieInPlaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieInPlaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetAcroWheeliePedalDirectionAnimNum(DIR_WEST), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieInPlaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieInPlaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetAcroWheeliePedalDirectionAnimNum(DIR_EAST), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); @@ -7604,13 +7604,13 @@ void InitAcroPopWheelie(struct ObjectEvent *objectEvent, struct Sprite *sprite, SeekSpriteAnim(sprite, 0); } -static bool8 MovementAction_AcroPopWheelieMoveDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroPopWheelieMoveDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroPopWheelie(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FAST_1); return MovementAction_AcroPopWheelieMoveDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroPopWheelieMoveDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroPopWheelieMoveDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7620,13 +7620,13 @@ static bool8 MovementAction_AcroPopWheelieMoveDown_Step1(struct ObjectEvent *obj return FALSE; } -static bool8 MovementAction_AcroPopWheelieMoveUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroPopWheelieMoveUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroPopWheelie(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FAST_1); return MovementAction_AcroPopWheelieMoveUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroPopWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroPopWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7636,13 +7636,13 @@ static bool8 MovementAction_AcroPopWheelieMoveUp_Step1(struct ObjectEvent *objec return FALSE; } -static bool8 MovementAction_AcroPopWheelieMoveLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroPopWheelieMoveLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroPopWheelie(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FAST_1); return MovementAction_AcroPopWheelieMoveLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroPopWheelieMoveLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroPopWheelieMoveLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7652,13 +7652,13 @@ static bool8 MovementAction_AcroPopWheelieMoveLeft_Step1(struct ObjectEvent *obj return FALSE; } -static bool8 MovementAction_AcroPopWheelieMoveRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroPopWheelieMoveRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroPopWheelie(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FAST_1); return MovementAction_AcroPopWheelieMoveRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroPopWheelieMoveRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroPopWheelieMoveRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7674,13 +7674,13 @@ void InitAcroWheelieMove(struct ObjectEvent *objectEvent, struct Sprite *sprite, SetStepAnimHandleAlternation(objectEvent, sprite, GetAcroWheeliePedalDirectionAnimNum(objectEvent->facingDirection)); } -static bool8 MovementAction_AcroWheelieMoveDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieMoveDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieMove(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FAST_1); return MovementAction_AcroWheelieMoveDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieMoveDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieMoveDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7690,13 +7690,13 @@ static bool8 MovementAction_AcroWheelieMoveDown_Step1(struct ObjectEvent *object return FALSE; } -static bool8 MovementAction_AcroWheelieMoveUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieMoveUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieMove(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FAST_1); return MovementAction_AcroWheelieMoveUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7706,13 +7706,13 @@ static bool8 MovementAction_AcroWheelieMoveUp_Step1(struct ObjectEvent *objectEv return FALSE; } -static bool8 MovementAction_AcroWheelieMoveLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieMoveLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieMove(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FAST_1); return MovementAction_AcroWheelieMoveLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieMoveLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieMoveLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7722,13 +7722,13 @@ static bool8 MovementAction_AcroWheelieMoveLeft_Step1(struct ObjectEvent *object return FALSE; } -static bool8 MovementAction_AcroWheelieMoveRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieMoveRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitAcroWheelieMove(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FAST_1); return MovementAction_AcroWheelieMoveRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_AcroWheelieMoveRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_AcroWheelieMoveRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7745,13 +7745,13 @@ void InitSpin(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 directi SeekSpriteAnim(sprite, 0); } -static bool8 MovementAction_SpinDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SpinDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitSpin(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FAST_1); return MovementAction_SpinDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_SpinDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SpinDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7761,13 +7761,13 @@ static bool8 MovementAction_SpinDown_Step1(struct ObjectEvent *objectEvent, stru return FALSE; } -static bool8 MovementAction_SpinUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SpinUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitSpin(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FAST_1); return MovementAction_SpinUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_SpinUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SpinUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7777,13 +7777,13 @@ static bool8 MovementAction_SpinUp_Step1(struct ObjectEvent *objectEvent, struct return FALSE; } -static bool8 MovementAction_SpinLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SpinLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitSpin(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FAST_1); return MovementAction_SpinLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_SpinLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SpinLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7793,13 +7793,13 @@ static bool8 MovementAction_SpinLeft_Step1(struct ObjectEvent *objectEvent, stru return FALSE; } -static bool8 MovementAction_SpinRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SpinRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitSpin(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FAST_1); return MovementAction_SpinRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_SpinRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_SpinRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7809,7 +7809,7 @@ static bool8 MovementAction_SpinRight_Step1(struct ObjectEvent *objectEvent, str return FALSE; } -static bool8 MovementAction_RaiseHand_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RaiseHand_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnim(sprite, ANIM_RAISE_HAND); sprite->animPaused = FALSE; @@ -7822,12 +7822,12 @@ static bool8 MovementAction_RaiseHand_Step0(struct ObjectEvent *objectEvent, str return FALSE; } -static bool8 MovementAction_RaiseHandAndStop_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RaiseHandAndStop_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { return sprite->animEnded; } -static bool8 MovementAction_RaiseHandAndJump_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RaiseHandAndJump_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { switch (sprite->data[7]) { @@ -7873,7 +7873,7 @@ static bool8 MovementAction_RaiseHandAndJump_Step1(struct ObjectEvent *objectEve return FALSE; } -static bool8 MovementAction_RaiseHandAndSwim_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_RaiseHandAndSwim_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { bool8 ret; sprite->data[7] = (sprite->data[7] + 4) & 0xFF; @@ -7885,7 +7885,7 @@ static bool8 MovementAction_RaiseHandAndSwim_Step1(struct ObjectEvent *objectEve return ret; } -static bool8 MovementAction_ShakeHeadOrWalkInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_ShakeHeadOrWalkInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnim(sprite, ANIM_SHAKE_HEAD_OR_WALK_IN_PLACE); sprite->animPaused = FALSE; @@ -7894,7 +7894,7 @@ static bool8 MovementAction_ShakeHeadOrWalkInPlace_Step0(struct ObjectEvent *obj return FALSE; } -static bool8 MovementAction_ShakeHeadOrWalkInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_ShakeHeadOrWalkInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { return sprite->animEnded; } @@ -7904,20 +7904,20 @@ u8 MovementAction_Finish(struct ObjectEvent *objectEvent, struct Sprite *sprite) return TRUE; } -static bool8 MovementAction_PauseSpriteAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_PauseSpriteAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->animPaused = TRUE; return TRUE; } -static bool8 MovementAction_FlyUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_FlyUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->y2 = 0; sprite->data[2]++; return FALSE; } -static bool8 MovementAction_FlyUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_FlyUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->y2 -= 8; if (sprite->y2 == -160) @@ -7925,14 +7925,14 @@ static bool8 MovementAction_FlyUp_Step1(struct ObjectEvent *objectEvent, struct return FALSE; } -static bool8 MovementAction_FlyDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_FlyDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->y2 = -160; sprite->data[2]++; return FALSE; } -static bool8 MovementAction_FlyDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 MovementAction_FlyDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->y2 += 8; if (sprite->y2 == 0) From e3b2f9c73ce99e4b40ef70d247bcdf00e42a2807 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Tue, 1 Aug 2023 09:07:21 +0530 Subject: [PATCH 32/38] Changed static const u8 to const u8 in src/data/pokemon/item_effects.h and also changed sItemEffect to gItemEffect --- src/data/pokemon/item_effects.h | 252 ++++++++++++++++---------------- 1 file changed, 126 insertions(+), 126 deletions(-) diff --git a/src/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h index db57298b6c..d1e6cf0889 100644 --- a/src/data/pokemon/item_effects.h +++ b/src/data/pokemon/item_effects.h @@ -1,84 +1,84 @@ -static const u8 sItemEffect_Potion[7] = { +const u8 gItemEffect_Potion[7] = { [4] = ITEM4_HEAL_HP, [6] = 20, // Amount of HP to recover }; -static const u8 sItemEffect_Antidote[6] = { +const u8 gItemEffect_Antidote[6] = { [3] = ITEM3_POISON, }; -static const u8 sItemEffect_BurnHeal[6] = { +const u8 gItemEffect_BurnHeal[6] = { [3] = ITEM3_BURN, }; -static const u8 sItemEffect_IceHeal[6] = { +const u8 gItemEffect_IceHeal[6] = { [3] = ITEM3_FREEZE, }; -static const u8 sItemEffect_Awakening[6] = { +const u8 gItemEffect_Awakening[6] = { [3] = ITEM3_SLEEP, }; -static const u8 sItemEffect_ParalyzeHeal[6] = { +const u8 gItemEffect_ParalyzeHeal[6] = { [3] = ITEM3_PARALYSIS, }; -static const u8 sItemEffect_FullRestore[7] = { +const u8 gItemEffect_FullRestore[7] = { [3] = ITEM3_STATUS_ALL, [4] = ITEM4_HEAL_HP, [6] = ITEM6_HEAL_HP_FULL, }; -static const u8 sItemEffect_MaxPotion[7] = { +const u8 gItemEffect_MaxPotion[7] = { [4] = ITEM4_HEAL_HP, [6] = ITEM6_HEAL_HP_FULL, }; -static const u8 sItemEffect_HyperPotion[7] = { +const u8 gItemEffect_HyperPotion[7] = { [4] = ITEM4_HEAL_HP, [6] = 200, // Amount of HP to recover }; -static const u8 sItemEffect_SuperPotion[7] = { +const u8 gItemEffect_SuperPotion[7] = { [4] = ITEM4_HEAL_HP, [6] = 50, // Amount of HP to recover }; -static const u8 sItemEffect_FullHeal[6] = { +const u8 gItemEffect_FullHeal[6] = { [3] = ITEM3_STATUS_ALL, }; -static const u8 sItemEffect_Revive[7] = { +const u8 gItemEffect_Revive[7] = { [4] = ITEM4_REVIVE | ITEM4_HEAL_HP, [6] = ITEM6_HEAL_HP_HALF, }; -static const u8 sItemEffect_MaxRevive[7] = { +const u8 gItemEffect_MaxRevive[7] = { [4] = ITEM4_REVIVE | ITEM4_HEAL_HP, [6] = ITEM6_HEAL_HP_FULL, }; -static const u8 sItemEffect_FreshWater[7] = { +const u8 gItemEffect_FreshWater[7] = { [4] = ITEM4_HEAL_HP, [6] = 50, // Amount of HP to recover }; -static const u8 sItemEffect_SodaPop[7] = { +const u8 gItemEffect_SodaPop[7] = { [4] = ITEM4_HEAL_HP, [6] = 60, // Amount of HP to recover }; -static const u8 sItemEffect_Lemonade[7] = { +const u8 gItemEffect_Lemonade[7] = { [4] = ITEM4_HEAL_HP, [6] = 80, // Amount of HP to recover }; -static const u8 sItemEffect_MoomooMilk[7] = { +const u8 gItemEffect_MoomooMilk[7] = { [4] = ITEM4_HEAL_HP, [6] = 100, // Amount of HP to recover }; -static const u8 sItemEffect_EnergyPowder[10] = { +const u8 gItemEffect_EnergyPowder[10] = { [4] = ITEM4_HEAL_HP, [5] = ITEM5_FRIENDSHIP_ALL, [6] = 50, // Amount of HP to recover @@ -87,7 +87,7 @@ static const u8 sItemEffect_EnergyPowder[10] = { [9] = -10, // Friendship change, high }; -static const u8 sItemEffect_EnergyRoot[10] = { +const u8 gItemEffect_EnergyRoot[10] = { [4] = ITEM4_HEAL_HP, [5] = ITEM5_FRIENDSHIP_ALL, [6] = 200, // Amount of HP to recover @@ -96,7 +96,7 @@ static const u8 sItemEffect_EnergyRoot[10] = { [9] = -15, // Friendship change, high }; -static const u8 sItemEffect_HealPowder[9] = { +const u8 gItemEffect_HealPowder[9] = { [3] = ITEM3_STATUS_ALL, [5] = ITEM5_FRIENDSHIP_ALL, [6] = -5, // Friendship change, low @@ -104,7 +104,7 @@ static const u8 sItemEffect_HealPowder[9] = { [8] = -10, // Friendship change, high }; -static const u8 sItemEffect_RevivalHerb[10] = { +const u8 gItemEffect_RevivalHerb[10] = { [4] = ITEM4_REVIVE | ITEM4_HEAL_HP, [5] = ITEM5_FRIENDSHIP_ALL, [6] = ITEM6_HEAL_HP_FULL, @@ -113,48 +113,48 @@ static const u8 sItemEffect_RevivalHerb[10] = { [9] = -20, // Friendship change, high }; -static const u8 sItemEffect_Ether[7] = { +const u8 gItemEffect_Ether[7] = { [4] = ITEM4_HEAL_PP_ONE | ITEM4_HEAL_PP_ALL, [6] = 10, // Amount of PP to recover }; -static const u8 sItemEffect_MaxEther[7] = { +const u8 gItemEffect_MaxEther[7] = { [4] = ITEM4_HEAL_PP_ONE | ITEM4_HEAL_PP_ALL, [6] = ITEM6_HEAL_PP_FULL, }; -static const u8 sItemEffect_Elixir[7] = { +const u8 gItemEffect_Elixir[7] = { [4] = ITEM4_HEAL_PP_ALL, [6] = 10, // Amount of PP to recover }; -static const u8 sItemEffect_MaxElixir[7] = { +const u8 gItemEffect_MaxElixir[7] = { [4] = ITEM4_HEAL_PP_ALL, [6] = ITEM6_HEAL_PP_FULL, }; -static const u8 sItemEffect_LavaCookie[6] = { +const u8 gItemEffect_LavaCookie[6] = { [3] = ITEM3_STATUS_ALL, }; -static const u8 sItemEffect_BlueFlute[6] = { +const u8 gItemEffect_BlueFlute[6] = { [3] = ITEM3_SLEEP, }; -static const u8 sItemEffect_YellowFlute[6] = { +const u8 gItemEffect_YellowFlute[6] = { [3] = ITEM3_CONFUSION, }; -static const u8 sItemEffect_RedFlute[6] = { +const u8 gItemEffect_RedFlute[6] = { [0] = ITEM0_INFATUATION, }; -static const u8 sItemEffect_BerryJuice[7] = { +const u8 gItemEffect_BerryJuice[7] = { [4] = ITEM4_HEAL_HP, [6] = 20, // Amount of HP to recover }; -static const u8 sItemEffect_SacredAsh[7] = { +const u8 gItemEffect_SacredAsh[7] = { [0] = ITEM0_SACRED_ASH, [4] = ITEM4_REVIVE | ITEM4_HEAL_HP, [6] = ITEM6_HEAL_HP_FULL, @@ -165,39 +165,39 @@ static const u8 sItemEffect_SacredAsh[7] = { [(i) + 1] = 3, /* Friendship change, mid */ \ [(i) + 2] = 2 /* Friendship change, high */ -static const u8 sItemEffect_HPUp[10] = { +const u8 gItemEffect_HPUp[10] = { [4] = ITEM4_EV_HP, [5] = ITEM5_FRIENDSHIP_ALL, [6] = ITEM6_ADD_EV, VITAMIN_FRIENDSHIP_CHANGE(7), }; -static const u8 sItemEffect_Protein[10] = { +const u8 gItemEffect_Protein[10] = { [4] = ITEM4_EV_ATK, [5] = ITEM5_FRIENDSHIP_ALL, [6] = ITEM6_ADD_EV, VITAMIN_FRIENDSHIP_CHANGE(7), }; -static const u8 sItemEffect_Iron[10] = { +const u8 gItemEffect_Iron[10] = { [5] = ITEM5_EV_DEF | ITEM5_FRIENDSHIP_ALL, [6] = ITEM6_ADD_EV, VITAMIN_FRIENDSHIP_CHANGE(7), }; -static const u8 sItemEffect_Carbos[10] = { +const u8 gItemEffect_Carbos[10] = { [5] = ITEM5_EV_SPEED | ITEM5_FRIENDSHIP_ALL, [6] = ITEM6_ADD_EV, VITAMIN_FRIENDSHIP_CHANGE(7), }; -static const u8 sItemEffect_Calcium[10] = { +const u8 gItemEffect_Calcium[10] = { [5] = ITEM5_EV_SPATK | ITEM5_FRIENDSHIP_ALL, [6] = ITEM6_ADD_EV, VITAMIN_FRIENDSHIP_CHANGE(7), }; -static const u8 sItemEffect_RareCandy[10] = { +const u8 gItemEffect_RareCandy[10] = { [3] = ITEM3_LEVEL_UP, [4] = ITEM4_REVIVE | ITEM4_HEAL_HP, [5] = ITEM5_FRIENDSHIP_ALL, @@ -205,19 +205,19 @@ static const u8 sItemEffect_RareCandy[10] = { VITAMIN_FRIENDSHIP_CHANGE(7), }; -static const u8 sItemEffect_PPUp[9] = { +const u8 gItemEffect_PPUp[9] = { [4] = ITEM4_PP_UP, [5] = ITEM5_FRIENDSHIP_ALL, VITAMIN_FRIENDSHIP_CHANGE(6), }; -static const u8 sItemEffect_Zinc[10] = { +const u8 gItemEffect_Zinc[10] = { [5] = ITEM5_EV_SPDEF | ITEM5_FRIENDSHIP_ALL, [6] = ITEM6_ADD_EV, VITAMIN_FRIENDSHIP_CHANGE(7), }; -static const u8 sItemEffect_PPMax[9] = { +const u8 gItemEffect_PPMax[9] = { [5] = ITEM5_PP_MAX | ITEM5_FRIENDSHIP_ALL, VITAMIN_FRIENDSHIP_CHANGE(6), }; @@ -226,179 +226,179 @@ static const u8 sItemEffect_PPMax[9] = { [6] = 1, /* Friendship change, low */ \ [7] = 1 /* Friendship change, mid */ -static const u8 sItemEffect_GuardSpec[8] = { +const u8 gItemEffect_GuardSpec[8] = { [3] = ITEM3_GUARD_SPEC, [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, STAT_BOOST_FRIENDSHIP_CHANGE }; -static const u8 sItemEffect_DireHit[8] = { +const u8 gItemEffect_DireHit[8] = { [0] = 2 << 4, // ITEM0_DIRE_HIT [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, STAT_BOOST_FRIENDSHIP_CHANGE }; -static const u8 sItemEffect_XAttack[8] = { +const u8 gItemEffect_XAttack[8] = { [0] = 1, // ITEM0_X_ATTACK [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, STAT_BOOST_FRIENDSHIP_CHANGE }; -static const u8 sItemEffect_XDefend[8] = { +const u8 gItemEffect_XDefend[8] = { [1] = 1 << 4, /// ITEM1_X_DEFEND [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, STAT_BOOST_FRIENDSHIP_CHANGE, }; -static const u8 sItemEffect_XSpeed[8] = { +const u8 gItemEffect_XSpeed[8] = { [1] = 1, // ITEM1_X_SPEED [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, STAT_BOOST_FRIENDSHIP_CHANGE, }; -static const u8 sItemEffect_XAccuracy[8] = { +const u8 gItemEffect_XAccuracy[8] = { [2] = 1 << 4, // ITEM2_X_ACCURACY [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, STAT_BOOST_FRIENDSHIP_CHANGE, }; -static const u8 sItemEffect_XSpecial[8] = { +const u8 gItemEffect_XSpecial[8] = { [2] = 1, // ITEM2_X_SPATK [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, STAT_BOOST_FRIENDSHIP_CHANGE, }; -static const u8 sItemEffect_SunStone[6] = { +const u8 gItemEffect_SunStone[6] = { [4] = ITEM4_EVO_STONE, }; -static const u8 sItemEffect_MoonStone[6] = { +const u8 gItemEffect_MoonStone[6] = { [4] = ITEM4_EVO_STONE, }; -static const u8 sItemEffect_FireStone[6] = { +const u8 gItemEffect_FireStone[6] = { [4] = ITEM4_EVO_STONE, }; -static const u8 sItemEffect_ThunderStone[6] = { +const u8 gItemEffect_ThunderStone[6] = { [4] = ITEM4_EVO_STONE, }; -static const u8 sItemEffect_WaterStone[6] = { +const u8 gItemEffect_WaterStone[6] = { [4] = ITEM4_EVO_STONE, }; -static const u8 sItemEffect_LeafStone[6] = { +const u8 gItemEffect_LeafStone[6] = { [4] = ITEM4_EVO_STONE, }; -static const u8 sItemEffect_CheriBerry[6] = { +const u8 gItemEffect_CheriBerry[6] = { [3] = ITEM3_PARALYSIS, }; -static const u8 sItemEffect_ChestoBerry[6] = { +const u8 gItemEffect_ChestoBerry[6] = { [3] = ITEM3_SLEEP, }; -static const u8 sItemEffect_PechaBerry[6] = { +const u8 gItemEffect_PechaBerry[6] = { [3] = ITEM3_POISON, }; -static const u8 sItemEffect_RawstBerry[6] = { +const u8 gItemEffect_RawstBerry[6] = { [3] = ITEM3_BURN, }; -static const u8 sItemEffect_AspearBerry[6] = { +const u8 gItemEffect_AspearBerry[6] = { [3] = ITEM3_FREEZE, }; -static const u8 sItemEffect_LeppaBerry[7] = { +const u8 gItemEffect_LeppaBerry[7] = { [4] = ITEM4_HEAL_PP_ONE | ITEM4_HEAL_PP_ALL, [6] = 10, // Amount of PP to recover }; -static const u8 sItemEffect_OranBerry[7] = { +const u8 gItemEffect_OranBerry[7] = { [4] = ITEM4_HEAL_HP, [6] = 10, // Amount of HP to recover }; -static const u8 sItemEffect_PersimBerry[6] = { +const u8 gItemEffect_PersimBerry[6] = { [3] = ITEM3_CONFUSION, }; -static const u8 sItemEffect_LumBerry[6] = { +const u8 gItemEffect_LumBerry[6] = { [3] = ITEM3_STATUS_ALL, }; -static const u8 sItemEffect_SitrusBerry[7] = { +const u8 gItemEffect_SitrusBerry[7] = { [4] = ITEM4_HEAL_HP, [6] = 30, // Amount of HP to recover }; const u8 *const gItemEffectTable[] = { - [ITEM_POTION - ITEM_POTION] = sItemEffect_Potion, - [ITEM_ANTIDOTE - ITEM_POTION] = sItemEffect_Antidote, - [ITEM_BURN_HEAL - ITEM_POTION] = sItemEffect_BurnHeal, - [ITEM_ICE_HEAL - ITEM_POTION] = sItemEffect_IceHeal, - [ITEM_AWAKENING - ITEM_POTION] = sItemEffect_Awakening, - [ITEM_PARALYZE_HEAL - ITEM_POTION] = sItemEffect_ParalyzeHeal, - [ITEM_FULL_RESTORE - ITEM_POTION] = sItemEffect_FullRestore, - [ITEM_MAX_POTION - ITEM_POTION] = sItemEffect_MaxPotion, - [ITEM_HYPER_POTION - ITEM_POTION] = sItemEffect_HyperPotion, - [ITEM_SUPER_POTION - ITEM_POTION] = sItemEffect_SuperPotion, - [ITEM_FULL_HEAL - ITEM_POTION] = sItemEffect_FullHeal, - [ITEM_REVIVE - ITEM_POTION] = sItemEffect_Revive, - [ITEM_MAX_REVIVE - ITEM_POTION] = sItemEffect_MaxRevive, - [ITEM_FRESH_WATER - ITEM_POTION] = sItemEffect_FreshWater, - [ITEM_SODA_POP - ITEM_POTION] = sItemEffect_SodaPop, - [ITEM_LEMONADE - ITEM_POTION] = sItemEffect_Lemonade, - [ITEM_MOOMOO_MILK - ITEM_POTION] = sItemEffect_MoomooMilk, - [ITEM_ENERGY_POWDER - ITEM_POTION] = sItemEffect_EnergyPowder, - [ITEM_ENERGY_ROOT - ITEM_POTION] = sItemEffect_EnergyRoot, - [ITEM_HEAL_POWDER - ITEM_POTION] = sItemEffect_HealPowder, - [ITEM_REVIVAL_HERB - ITEM_POTION] = sItemEffect_RevivalHerb, - [ITEM_ETHER - ITEM_POTION] = sItemEffect_Ether, - [ITEM_MAX_ETHER - ITEM_POTION] = sItemEffect_MaxEther, - [ITEM_ELIXIR - ITEM_POTION] = sItemEffect_Elixir, - [ITEM_MAX_ELIXIR - ITEM_POTION] = sItemEffect_MaxElixir, - [ITEM_LAVA_COOKIE - ITEM_POTION] = sItemEffect_LavaCookie, - [ITEM_BLUE_FLUTE - ITEM_POTION] = sItemEffect_BlueFlute, - [ITEM_YELLOW_FLUTE - ITEM_POTION] = sItemEffect_YellowFlute, - [ITEM_RED_FLUTE - ITEM_POTION] = sItemEffect_RedFlute, - [ITEM_BERRY_JUICE - ITEM_POTION] = sItemEffect_BerryJuice, - [ITEM_SACRED_ASH - ITEM_POTION] = sItemEffect_SacredAsh, - [ITEM_HP_UP - ITEM_POTION] = sItemEffect_HPUp, - [ITEM_PROTEIN - ITEM_POTION] = sItemEffect_Protein, - [ITEM_IRON - ITEM_POTION] = sItemEffect_Iron, - [ITEM_CARBOS - ITEM_POTION] = sItemEffect_Carbos, - [ITEM_CALCIUM - ITEM_POTION] = sItemEffect_Calcium, - [ITEM_RARE_CANDY - ITEM_POTION] = sItemEffect_RareCandy, - [ITEM_PP_UP - ITEM_POTION] = sItemEffect_PPUp, - [ITEM_ZINC - ITEM_POTION] = sItemEffect_Zinc, - [ITEM_PP_MAX - ITEM_POTION] = sItemEffect_PPMax, - [ITEM_GUARD_SPEC - ITEM_POTION] = sItemEffect_GuardSpec, - [ITEM_DIRE_HIT - ITEM_POTION] = sItemEffect_DireHit, - [ITEM_X_ATTACK - ITEM_POTION] = sItemEffect_XAttack, - [ITEM_X_DEFEND - ITEM_POTION] = sItemEffect_XDefend, - [ITEM_X_SPEED - ITEM_POTION] = sItemEffect_XSpeed, - [ITEM_X_ACCURACY - ITEM_POTION] = sItemEffect_XAccuracy, - [ITEM_X_SPECIAL - ITEM_POTION] = sItemEffect_XSpecial, - [ITEM_SUN_STONE - ITEM_POTION] = sItemEffect_SunStone, - [ITEM_MOON_STONE - ITEM_POTION] = sItemEffect_MoonStone, - [ITEM_FIRE_STONE - ITEM_POTION] = sItemEffect_FireStone, - [ITEM_THUNDER_STONE - ITEM_POTION] = sItemEffect_ThunderStone, - [ITEM_WATER_STONE - ITEM_POTION] = sItemEffect_WaterStone, - [ITEM_LEAF_STONE - ITEM_POTION] = sItemEffect_LeafStone, - [ITEM_CHERI_BERRY - ITEM_POTION] = sItemEffect_CheriBerry, - [ITEM_CHESTO_BERRY - ITEM_POTION] = sItemEffect_ChestoBerry, - [ITEM_PECHA_BERRY - ITEM_POTION] = sItemEffect_PechaBerry, - [ITEM_RAWST_BERRY - ITEM_POTION] = sItemEffect_RawstBerry, - [ITEM_ASPEAR_BERRY - ITEM_POTION] = sItemEffect_AspearBerry, - [ITEM_LEPPA_BERRY - ITEM_POTION] = sItemEffect_LeppaBerry, - [ITEM_ORAN_BERRY - ITEM_POTION] = sItemEffect_OranBerry, - [ITEM_PERSIM_BERRY - ITEM_POTION] = sItemEffect_PersimBerry, - [ITEM_LUM_BERRY - ITEM_POTION] = sItemEffect_LumBerry, - [ITEM_SITRUS_BERRY - ITEM_POTION] = sItemEffect_SitrusBerry, + [ITEM_POTION - ITEM_POTION] = gItemEffect_Potion, + [ITEM_ANTIDOTE - ITEM_POTION] = gItemEffect_Antidote, + [ITEM_BURN_HEAL - ITEM_POTION] = gItemEffect_BurnHeal, + [ITEM_ICE_HEAL - ITEM_POTION] = gItemEffect_IceHeal, + [ITEM_AWAKENING - ITEM_POTION] = gItemEffect_Awakening, + [ITEM_PARALYZE_HEAL - ITEM_POTION] = gItemEffect_ParalyzeHeal, + [ITEM_FULL_RESTORE - ITEM_POTION] = gItemEffect_FullRestore, + [ITEM_MAX_POTION - ITEM_POTION] = gItemEffect_MaxPotion, + [ITEM_HYPER_POTION - ITEM_POTION] = gItemEffect_HyperPotion, + [ITEM_SUPER_POTION - ITEM_POTION] = gItemEffect_SuperPotion, + [ITEM_FULL_HEAL - ITEM_POTION] = gItemEffect_FullHeal, + [ITEM_REVIVE - ITEM_POTION] = gItemEffect_Revive, + [ITEM_MAX_REVIVE - ITEM_POTION] = gItemEffect_MaxRevive, + [ITEM_FRESH_WATER - ITEM_POTION] = gItemEffect_FreshWater, + [ITEM_SODA_POP - ITEM_POTION] = gItemEffect_SodaPop, + [ITEM_LEMONADE - ITEM_POTION] = gItemEffect_Lemonade, + [ITEM_MOOMOO_MILK - ITEM_POTION] = gItemEffect_MoomooMilk, + [ITEM_ENERGY_POWDER - ITEM_POTION] = gItemEffect_EnergyPowder, + [ITEM_ENERGY_ROOT - ITEM_POTION] = gItemEffect_EnergyRoot, + [ITEM_HEAL_POWDER - ITEM_POTION] = gItemEffect_HealPowder, + [ITEM_REVIVAL_HERB - ITEM_POTION] = gItemEffect_RevivalHerb, + [ITEM_ETHER - ITEM_POTION] = gItemEffect_Ether, + [ITEM_MAX_ETHER - ITEM_POTION] = gItemEffect_MaxEther, + [ITEM_ELIXIR - ITEM_POTION] = gItemEffect_Elixir, + [ITEM_MAX_ELIXIR - ITEM_POTION] = gItemEffect_MaxElixir, + [ITEM_LAVA_COOKIE - ITEM_POTION] = gItemEffect_LavaCookie, + [ITEM_BLUE_FLUTE - ITEM_POTION] = gItemEffect_BlueFlute, + [ITEM_YELLOW_FLUTE - ITEM_POTION] = gItemEffect_YellowFlute, + [ITEM_RED_FLUTE - ITEM_POTION] = gItemEffect_RedFlute, + [ITEM_BERRY_JUICE - ITEM_POTION] = gItemEffect_BerryJuice, + [ITEM_SACRED_ASH - ITEM_POTION] = gItemEffect_SacredAsh, + [ITEM_HP_UP - ITEM_POTION] = gItemEffect_HPUp, + [ITEM_PROTEIN - ITEM_POTION] = gItemEffect_Protein, + [ITEM_IRON - ITEM_POTION] = gItemEffect_Iron, + [ITEM_CARBOS - ITEM_POTION] = gItemEffect_Carbos, + [ITEM_CALCIUM - ITEM_POTION] = gItemEffect_Calcium, + [ITEM_RARE_CANDY - ITEM_POTION] = gItemEffect_RareCandy, + [ITEM_PP_UP - ITEM_POTION] = gItemEffect_PPUp, + [ITEM_ZINC - ITEM_POTION] = gItemEffect_Zinc, + [ITEM_PP_MAX - ITEM_POTION] = gItemEffect_PPMax, + [ITEM_GUARD_SPEC - ITEM_POTION] = gItemEffect_GuardSpec, + [ITEM_DIRE_HIT - ITEM_POTION] = gItemEffect_DireHit, + [ITEM_X_ATTACK - ITEM_POTION] = gItemEffect_XAttack, + [ITEM_X_DEFEND - ITEM_POTION] = gItemEffect_XDefend, + [ITEM_X_SPEED - ITEM_POTION] = gItemEffect_XSpeed, + [ITEM_X_ACCURACY - ITEM_POTION] = gItemEffect_XAccuracy, + [ITEM_X_SPECIAL - ITEM_POTION] = gItemEffect_XSpecial, + [ITEM_SUN_STONE - ITEM_POTION] = gItemEffect_SunStone, + [ITEM_MOON_STONE - ITEM_POTION] = gItemEffect_MoonStone, + [ITEM_FIRE_STONE - ITEM_POTION] = gItemEffect_FireStone, + [ITEM_THUNDER_STONE - ITEM_POTION] = gItemEffect_ThunderStone, + [ITEM_WATER_STONE - ITEM_POTION] = gItemEffect_WaterStone, + [ITEM_LEAF_STONE - ITEM_POTION] = gItemEffect_LeafStone, + [ITEM_CHERI_BERRY - ITEM_POTION] = gItemEffect_CheriBerry, + [ITEM_CHESTO_BERRY - ITEM_POTION] = gItemEffect_ChestoBerry, + [ITEM_PECHA_BERRY - ITEM_POTION] = gItemEffect_PechaBerry, + [ITEM_RAWST_BERRY - ITEM_POTION] = gItemEffect_RawstBerry, + [ITEM_ASPEAR_BERRY - ITEM_POTION] = gItemEffect_AspearBerry, + [ITEM_LEPPA_BERRY - ITEM_POTION] = gItemEffect_LeppaBerry, + [ITEM_ORAN_BERRY - ITEM_POTION] = gItemEffect_OranBerry, + [ITEM_PERSIM_BERRY - ITEM_POTION] = gItemEffect_PersimBerry, + [ITEM_LUM_BERRY - ITEM_POTION] = gItemEffect_LumBerry, + [ITEM_SITRUS_BERRY - ITEM_POTION] = gItemEffect_SitrusBerry, [LAST_BERRY_INDEX - ITEM_POTION] = NULL, }; From 328d8d55cbd09cc797e1b76d267ed97075ba4ef6 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Tue, 1 Aug 2023 09:13:22 +0530 Subject: [PATCH 33/38] Converted sTMHMLearnsets to gTMHMLearnsets and static const u32 to const u32 in src/data/pokemon//tmhm_learnsets.h --- src/data/pokemon/tmhm_learnsets.h | 2 +- src/pokemon.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/data/pokemon/tmhm_learnsets.h b/src/data/pokemon/tmhm_learnsets.h index 0aa21e85be..ff5722f630 100644 --- a/src/data/pokemon/tmhm_learnsets.h +++ b/src/data/pokemon/tmhm_learnsets.h @@ -4,7 +4,7 @@ // This table determines which TMs and HMs a species is capable of learning. // Each entry is a 64-bit bit array spread across two 32-bit values, with // each bit corresponding to a machine. -static const u32 sTMHMLearnsets[][2] = +const u32 gTMHMLearnsets[][2] = { [SPECIES_NONE] = TMHM_LEARNSET(0), diff --git a/src/pokemon.c b/src/pokemon.c index 330ae3dea0..b9cba94a0f 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5717,12 +5717,12 @@ u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm) else if (tm < 32) { u32 mask = 1 << tm; - return sTMHMLearnsets[species][0] & mask; + return gTMHMLearnsets[species][0] & mask; } else { u32 mask = 1 << (tm - 32); - return sTMHMLearnsets[species][1] & mask; + return gTMHMLearnsets[species][1] & mask; } } From 232eed616e85cb3beb0af1897a2c89b2ccfa6f93 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Tue, 1 Aug 2023 19:02:25 +0530 Subject: [PATCH 34/38] Made the Requested Changes --- asm/macros/asm.inc | 5 + asm/macros/battle_ai_script.inc | 2 +- asm/macros/field_effect_script.inc | 16 +- data/battle_ai_scripts.s | 40 ++-- data/battle_scripts_2.s | 2 +- data/field_effect_scripts.s | 264 +++++++++++++------------- include/constants/battle_string_ids.h | 2 +- include/constants/map_scripts.h | 35 ---- include/trade.h | 4 +- src/battle_message.c | 2 +- src/data/union_room.h | 6 +- src/pc_screen_effect.c | 96 +++++----- 12 files changed, 222 insertions(+), 252 deletions(-) diff --git a/asm/macros/asm.inc b/asm/macros/asm.inc index 3f70145d31..4802a1e631 100644 --- a/asm/macros/asm.inc +++ b/asm/macros/asm.inc @@ -1,3 +1,6 @@ +.ifndef GUARD_ASM_MACROS_ASM_INC +.set GUARD_ASM_MACROS_ASM_INC, 1 + .macro inc x:req .set \x, \x + 1 .endm @@ -10,3 +13,5 @@ .equiv \constant, __enum__ inc __enum__ .endm + +.endif @ GUARD_ASM_MACROS_ASM_INC diff --git a/asm/macros/battle_ai_script.inc b/asm/macros/battle_ai_script.inc index 35e38b97a9..245655164c 100644 --- a/asm/macros/battle_ai_script.inc +++ b/asm/macros/battle_ai_script.inc @@ -224,7 +224,7 @@ .byte 0x24 .endm - .macro get_last_used_bank_move battler:req + .macro get_last_used_move battler:req .byte 0x25 .byte \battler .endm diff --git a/asm/macros/field_effect_script.inc b/asm/macros/field_effect_script.inc index 38f7e31750..a3882f7274 100644 --- a/asm/macros/field_effect_script.inc +++ b/asm/macros/field_effect_script.inc @@ -1,43 +1,43 @@ @ The first .byte argument of each macro below is an index into gFieldEffectScriptFuncs - .macro field_eff_loadtiles address:req + .macro loadtiles address:req .byte 0 .4byte \address .endm - .macro field_eff_loadfadedpal address:req + .macro loadfadedpal address:req .byte 1 .4byte \address .endm - .macro field_eff_loadpal address:req + .macro loadpal address:req .byte 2 .4byte \address .endm - .macro field_eff_callnative address:req + .macro callnative address:req .byte 3 .4byte \address .endm - .macro field_eff_end + .macro end .byte 4 .endm - .macro field_eff_loadgfx_callnative tiles_address:req, palette_address:req, function_address:req + .macro loadgfx_callnative tiles_address:req, palette_address:req, function_address:req .byte 5 .4byte \tiles_address .4byte \palette_address .4byte \function_address .endm - .macro field_eff_loadtiles_callnative tiles_address:req, function_address:req + .macro loadtiles_callnative tiles_address:req, function_address:req .byte 6 .4byte \tiles_address .4byte \function_address .endm - .macro field_eff_loadfadedpal_callnative palette_address:req, function_address:req + .macro loadfadedpal_callnative palette_address:req, function_address:req .byte 7 .4byte \palette_address .4byte \function_address diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 551d72db59..759ce175e1 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -843,14 +843,14 @@ AI_CV_DreamEater_End: AI_CV_MirrorMove: if_target_faster AI_CV_MirrorMove2 - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET if_not_in_hwords AI_CV_MirrorMove_EncouragedMovesToMirror, AI_CV_MirrorMove2 if_random_less_than 128, AI_CV_MirrorMove_End score +2 goto AI_CV_MirrorMove_End AI_CV_MirrorMove2: - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET if_in_hwords AI_CV_MirrorMove_EncouragedMovesToMirror, AI_CV_MirrorMove_End if_random_less_than 80, AI_CV_MirrorMove_End score -1 @@ -941,10 +941,10 @@ AI_CV_DefenseUp3: AI_CV_DefenseUp4: if_hp_less_than AI_USER, 40, AI_CV_DefenseUp_ScoreDown2 - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_power_from_result if_equal 0, AI_CV_DefenseUp5 - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_type_from_result if_not_in_bytes AI_CV_DefenseUp_PhysicalTypes, AI_CV_DefenseUp_ScoreDown2 if_random_less_than 60, AI_CV_DefenseUp_End @@ -1021,10 +1021,10 @@ AI_CV_SpDefUp3: AI_CV_SpDefUp4: if_hp_less_than AI_USER, 40, AI_CV_SpDefUp_ScoreDown2 - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_power_from_result if_equal 0, AI_CV_SpDefUp5 - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_type_from_result if_in_bytes AI_CV_SpDefUp_PhysicalTypes, AI_CV_SpDefUp_ScoreDown2 if_random_less_than 60, AI_CV_SpDefUp_End @@ -1662,7 +1662,7 @@ AI_CV_Substitute3: AI_CV_Substitute4: if_target_faster AI_CV_Substitute_End - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_effect_from_result if_equal EFFECT_SLEEP, AI_CV_Substitute5 if_equal EFFECT_TOXIC, AI_CV_Substitute5 @@ -1709,7 +1709,7 @@ AI_CV_Recharge_End: AI_CV_Disable: if_target_faster AI_CV_Disable_End - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_power_from_result if_equal 0, AI_CV_Disable2 score +1 @@ -1737,7 +1737,7 @@ AI_CV_Counter2: AI_CV_Counter3: @ if_has_move AI_USER, MOVE_MIRROR_COAT, AI_CV_Counter7 @ Improvement in Emerald - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_power_from_result if_equal 0, AI_CV_Counter5 if_target_not_taunted AI_CV_Counter4 @@ -1745,7 +1745,7 @@ AI_CV_Counter3: score +1 AI_CV_Counter4: - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_type_from_result if_not_in_bytes AI_CV_Counter_PhysicalTypeList, AI_CV_Counter_ScoreDown1 if_random_less_than 100, AI_CV_Counter_End @@ -1793,7 +1793,7 @@ AI_CV_Counter_PhysicalTypeList: AI_CV_Encore: if_any_move_disabled AI_TARGET, AI_CV_Encore2 if_target_faster AI_CV_Encore_ScoreDown2 - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_effect_from_result if_not_in_bytes AI_CV_Encore_EncouragedMovesToEncore, AI_CV_Encore_ScoreDown2 @@ -2028,7 +2028,7 @@ AI_CV_Protect: if_status2 AI_TARGET, STATUS2_INFATUATION, AI_CV_Protect_ScoreUp2 if_status3 AI_TARGET, STATUS3_LEECHSEED, AI_CV_Protect_ScoreUp2 if_status3 AI_TARGET, STATUS3_YAWN, AI_CV_Protect_ScoreUp2 - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_effect_from_result if_not_equal EFFECT_LOCK_ON, AI_CV_Protect_ScoreUp2 goto AI_CV_Protect2 @@ -2049,7 +2049,7 @@ AI_CV_Protect4: goto AI_CV_Protect_End AI_CV_Protect3: - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_effect_from_result if_not_equal EFFECT_LOCK_ON, AI_CV_Protect_End @@ -2255,7 +2255,7 @@ AI_CV_MirrorCoat2: AI_CV_MirrorCoat3: @ if_has_move AI_USER, MOVE_COUNTER, AI_CV_MirrorCoat_ScoreUp4 @ Improvement in Emerald - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_power_from_result if_equal 0, AI_CV_MirrorCoat5 if_target_not_taunted AI_CV_MirrorCoat4 @@ -2263,7 +2263,7 @@ AI_CV_MirrorCoat3: score +1 AI_CV_MirrorCoat4: - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_type_from_result if_not_in_bytes AI_CV_MirrorCoat_SpecialTypeList, AI_CV_MirrorCoat_ScoreDown1 if_random_less_than 100, AI_CV_MirrorCoat_End @@ -2353,7 +2353,7 @@ AI_CV_SemiInvulnerable_CheckIceType: AI_CV_SemiInvulnerable5: if_target_faster AI_CV_SemiInvulnerable_End - get_last_used_bank_move AI_TARGET + get_last_used_move AI_TARGET get_move_effect_from_result if_not_equal EFFECT_LOCK_ON, AI_CV_SemiInvulnerable_TryEncourage goto AI_CV_SemiInvulnerable_End @@ -2447,7 +2447,7 @@ AI_CV_SmellingSalt_End: AI_CV_Trick: get_hold_effect AI_USER - if_in_bytes AI_CV_Trick_EffectsToEncourage2, AI_CV_Trick3 + if_in_bytes AI_CV_Trick_ChoiceEffects, AI_CV_Trick3 if_in_bytes AI_CV_Trick_EffectsToEncourage, AI_CV_Trick4 AI_CV_Trick2: @@ -2456,7 +2456,7 @@ AI_CV_Trick2: AI_CV_Trick3: get_hold_effect AI_TARGET - if_in_bytes AI_CV_Trick_EffectsToEncourage2, AI_CV_Trick2 + if_in_bytes AI_CV_Trick_ChoiceEffects, AI_CV_Trick2 score +5 goto AI_CV_Trick_End @@ -2479,7 +2479,7 @@ AI_CV_Trick_EffectsToEncourage: .byte HOLD_EFFECT_CHOICE_BAND .byte -1 -AI_CV_Trick_EffectsToEncourage2: +AI_CV_Trick_ChoiceEffects: .byte HOLD_EFFECT_CHOICE_BAND .byte -1 @@ -2922,7 +2922,7 @@ AI_PreferBatonPass_GoForBatonPass: @ goto Score_Plus1 @ @AI_PreferBatonPass3: -@ get_last_used_bank_move AI_USER +@ get_last_used_move AI_USER @ if_in_hwords AI_PreferBatonPass_ProtectMoves, Score_Minus2 @ score +2 @ end diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 179504944c..0562242abf 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -97,7 +97,7 @@ BattleScript_SuccessBallThrowEnd:: finishturn BattleScript_OldMan_Pokedude_CaughtMessage:: - printstring STRINGID_GOTCHAPKMNCAUGHT_OLDMANORDUDE + printstring STRINGID_GOTCHAPKMNCAUGHTOLDMANORDUDE setbyte gBattleOutcome, B_OUTCOME_CAUGHT endlinkbattle finishturn diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index fc687505cb..3245a5bef5 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -74,273 +74,273 @@ gFieldEffectScriptPointers:: .4byte gFldEffScript_PhotoFlash @ FLDEFF_PHOTO_FLASH gFldEffScript_ExclamationMarkIcon:: - field_eff_callnative FldEff_ExclamationMarkIcon1 - field_eff_end + callnative FldEff_ExclamationMarkIcon1 + end gFldEffScript_UseCutOnGrass:: - field_eff_callnative FldEff_UseCutOnGrass - field_eff_end + callnative FldEff_UseCutOnGrass + end gFldEffScript_UseCutOnTree:: - field_eff_callnative FldEff_UseCutOnTree - field_eff_end + callnative FldEff_UseCutOnTree + end gFldEffScript_Shadow:: - field_eff_callnative FldEff_Shadow - field_eff_end + callnative FldEff_Shadow + end gFldEffScript_TallGrass:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_TallGrass - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_TallGrass + end gFldEffScript_Ripple:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ripple - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ripple + end gFldEffScript_FieldMoveShowMon:: - field_eff_callnative FldEff_FieldMoveShowMon - field_eff_end + callnative FldEff_FieldMoveShowMon + end gFldEffScript_Ash:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ash - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ash + end gFldEffScript_SurfBlob:: - field_eff_callnative FldEff_SurfBlob - field_eff_end + callnative FldEff_SurfBlob + end gFldEffScript_UseSurf:: - field_eff_callnative FldEff_UseSurf - field_eff_end + callnative FldEff_UseSurf + end gFldEffScript_Dust:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Dust - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Dust + end gFldEffScript_UseSecretPowerCave:: - field_eff_end + end gFldEffScript_JumpTallGrass:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpTallGrass - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpTallGrass + end gFldEffScript_SandFootprints:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandFootprints - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandFootprints + end gFldEffScript_JumpBigSplash:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpBigSplash - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpBigSplash + end gFldEffScript_Splash:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Splash - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Splash + end gFldEffScript_JumpSmallSplash:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpSmallSplash - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpSmallSplash + end gFldEffScript_LongGrass:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_LongGrass - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_LongGrass + end gFldEffScript_JumpLongGrass:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpLongGrass - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpLongGrass + end gFldEffScript_UnusedGrass:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass + end gFldEffScript_UnusedGrass2:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass2 - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass2 + end gFldEffScript_UnusedSand:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedSand - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedSand + end gFldEffScript_UnusedWaterSurfacing:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedWaterSurfacing - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedWaterSurfacing + end gFldEffScript_BerryTreeGrowthSparkle:: - field_eff_callnative FldEff_BerryTreeGrowthSparkle - field_eff_end + callnative FldEff_BerryTreeGrowthSparkle + end gFldEffScript_DeepSandFootprints:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_DeepSandFootprints - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_DeepSandFootprints + end gFldEffScript_PokecenterHeal:: - field_eff_loadfadedpal gSpritePalette_PokeballGlow - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_PokecenterHeal - field_eff_end + loadfadedpal gSpritePalette_PokeballGlow + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_PokecenterHeal + end gFldEffScript_UseSecretPowerTree:: - field_eff_end + end gFldEffScript_UseSecretPowerShrub:: - field_eff_end + end gFldEffScript_TreeDisguise:: - field_eff_callnative ShowTreeDisguiseFieldEffect - field_eff_end + callnative ShowTreeDisguiseFieldEffect + end gFldEffScript_MountainDisguise:: - field_eff_callnative ShowMountainDisguiseFieldEffect - field_eff_end + callnative ShowMountainDisguiseFieldEffect + end gFldEffScript_NpcflyOut:: - field_eff_callnative FldEff_NpcFlyOut - field_eff_end + callnative FldEff_NpcFlyOut + end gFldEffScript_FlyOut:: - field_eff_callnative FldEff_FlyOut - field_eff_end + callnative FldEff_FlyOut + end gFldEffScript_FlyIn:: - field_eff_callnative FldEff_FlyIn - field_eff_end + callnative FldEff_FlyIn + end gFldEffScript_QuestionMarkIcon:: - field_eff_callnative FldEff_QuestionMarkIcon - field_eff_end + callnative FldEff_QuestionMarkIcon + end gFldEffScript_FeetInFlowingWater:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_FeetInFlowingWater - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_FeetInFlowingWater + end gFldEffScript_BikeTireTracks:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_BikeTireTracks - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_BikeTireTracks + end gFldEffScript_SandDisguise:: - field_eff_callnative ShowSandDisguiseFieldEffect - field_eff_end + callnative ShowSandDisguiseFieldEffect + end gFldEffScript_UseRockSmash:: - field_eff_callnative FldEff_UseRockSmash - field_eff_end + callnative FldEff_UseRockSmash + end gFldEffScript_UseStrength:: - field_eff_callnative FldEff_UseStrength - field_eff_end + callnative FldEff_UseStrength + end gFldEffScript_UseDig:: - field_eff_callnative FldEff_UseDig - field_eff_end + callnative FldEff_UseDig + end gFldEffScript_SandPile:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandPile - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandPile + end gFldEffScript_ShortGrass:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_ShortGrass - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_ShortGrass + end gFldEffScript_HotSpringsWater:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_HotSpringsWater - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_HotSpringsWater + end gFldEffScript_UseWaterfall:: - field_eff_callnative FldEff_UseWaterfall - field_eff_end + callnative FldEff_UseWaterfall + end gFldEffScript_UseDive:: - field_eff_callnative FldEff_UseDive - field_eff_end + callnative FldEff_UseDive + end gFldEffScript_Pokeball:: - field_eff_loadpal gSpritePalette_Pokeball - field_eff_callnative FldEff_PokeballTrail - field_eff_end + loadpal gSpritePalette_Pokeball + callnative FldEff_PokeballTrail + end gFldEffScript_XIcon:: - field_eff_callnative FldEff_XIcon - field_eff_end + callnative FldEff_XIcon + end gFldEffScript_Nop47:: - field_eff_end + end gFldEffScript_Nop48:: - field_eff_end + end gFldEffScript_PopOutOfAsh:: - field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_PopOutOfAsh - field_eff_end + loadfadedpal_callnative gSpritePalette_Ash, FldEff_PopOutOfAsh + end gFldEffScript_LavaridgeGymWarp:: - field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_LavaridgeGymWarp - field_eff_end + loadfadedpal_callnative gSpritePalette_Ash, FldEff_LavaridgeGymWarp + end gFldEffScript_SweetScent:: - field_eff_callnative FldEff_SweetScent - field_eff_end + callnative FldEff_SweetScent + end gFldEffScript_SandPillar:: - field_eff_end + end gFldEffScript_Bubbles:: - field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Bubbles - field_eff_end + loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Bubbles + end gFldEffScript_Sparkle:: - field_eff_loadfadedpal_callnative gSpritePalette_SmallSparkle, FldEff_Sparkle - field_eff_end + loadfadedpal_callnative gSpritePalette_SmallSparkle, FldEff_Sparkle + end gFldEffScript_SecretPowerCave:: - field_eff_end + end gFldEffScript_SecretPowerTree:: - field_eff_end + end gFldEffScript_SecretPowerShrub:: - field_eff_end + end gFldEffScript_CutGrass:: - field_eff_loadfadedpal_callnative gFldEffPalette_CutGrass, FldEff_CutGrass - field_eff_end + loadfadedpal_callnative gFldEffPalette_CutGrass, FldEff_CutGrass + end gFldEffScript_FieldMoveShowMonInit:: - field_eff_callnative FldEff_FieldMoveShowMonInit - field_eff_end + callnative FldEff_FieldMoveShowMonInit + end gFldEffScript_UseFlyAncientTomb:: - field_eff_end + end gFldEffScript_PcturnOn:: - field_eff_end + end gFldEffScript_HallOfFameRecord:: - field_eff_loadfadedpal gSpritePalette_PokeballGlow - field_eff_loadfadedpal_callnative gSpritePalette_HofMonitor, FldEff_HallOfFameRecord - field_eff_end + loadfadedpal gSpritePalette_PokeballGlow + loadfadedpal_callnative gSpritePalette_HofMonitor, FldEff_HallOfFameRecord + end gFldEffScript_UseTeleport:: - field_eff_callnative FldEff_UseTeleport - field_eff_end + callnative FldEff_UseTeleport + end gFldEffScript_SmileyFaceIcon:: - field_eff_callnative FldEff_SmileyFaceIcon - field_eff_end + callnative FldEff_SmileyFaceIcon + end gFldEffScript_UseVsSeeker:: - field_eff_callnative FldEff_UseVsSeeker - field_eff_end + callnative FldEff_UseVsSeeker + end gFldEffScript_DoubleExclMarkIcon:: - field_eff_callnative FldEff_DoubleExclMarkIcon - field_eff_end + callnative FldEff_DoubleExclMarkIcon + end gFldEffScript_MoveDeoxysRock:: - field_eff_callnative FldEff_MoveDeoxysRock - field_eff_end + callnative FldEff_MoveDeoxysRock + end gFldEffScript_DestroyDeoxysRock:: - field_eff_callnative FldEff_DestroyDeoxysRock - field_eff_end + callnative FldEff_DestroyDeoxysRock + end gFldEffScript_PhotoFlash:: - field_eff_callnative FldEff_PhotoFlash - field_eff_end + callnative FldEff_PhotoFlash + end diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 5f1ce5db22..e38ca7c52e 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -266,7 +266,7 @@ #define STRINGID_AARGHALMOSTHADIT 265 #define STRINGID_SHOOTSOCLOSE 266 #define STRINGID_GOTCHAPKMNCAUGHTPLAYER 267 -#define STRINGID_GOTCHAPKMNCAUGHT_OLDMANORDUDE 268 +#define STRINGID_GOTCHAPKMNCAUGHTOLDMANORDUDE 268 #define STRINGID_GIVENICKNAMECAPTURED 269 #define STRINGID_PKMNSENTTOPC 270 #define STRINGID_PKMNDATAADDEDTODEX 271 diff --git a/include/constants/map_scripts.h b/include/constants/map_scripts.h index cd00621e71..1353de360c 100644 --- a/include/constants/map_scripts.h +++ b/include/constants/map_scripts.h @@ -1,41 +1,6 @@ #ifndef GUARD_CONSTANTS_MAP_SCRIPTS_H #define GUARD_CONSTANTS_MAP_SCRIPTS_H -/* - IDs for special scripts that can be run for a particular map. - For the functions that handle when they are run, see these constants' uses in src/script.c - - Below describes when a script of this kind will be called, and what it typically does. - They are numbered in the order that they will be called when entering a map (from a warp or camera transition). - NOTE: These descriptions are just of what they generally do, not what they always or have to do - - 3. ON_LOAD: Run after the layout is loaded (but not drawn yet). - Almost exclusively used to set metatiles on the map before it's first drawn - - 6. ON_FRAME_TABLE: Run every frame after the map has faded in, before player input is processed. - This is a table of scripts; only the first script whose condition is satisfied is run. - Used to trigger an event, such as the player exiting the cable car or the SS Tidal sailor announcing progress - - 2. ON_TRANSITION: Run during the transition to the map - Used to set map-specific flags/vars, update object positions/movement types, set weather, etc - - 5. ON_WARP_INTO_MAP_TABLE: Run after the map's objects are loaded. - This is a table of scripts; only the first script whose condition is satisfied is run. - Used to add objects to the scene or update something about the player as they warp in (e.g. their facing dir or visibility) - Note that ON_TRANSITION may also handle object visibility, but would do so by modifying a flag or var - - 4. ON_RESUME: Run at the end of map load, and again any time upon returning to field (e.g. exiting the Bag menu, or finishing a battle) - Used to hide defeated static pokemon, or maintain some map state (e.g. the Trainer Hill timer, or the cycling road challenge) - In some maps this takes the metatile setting job of ON_LOAD - - 1. ON_DIVE_WARP: Run after the player chooses to dive/emerge. - Only used once, to determine whether or not the player should emerge in the Sealed Chamber - - x. ON_RETURN_TO_FIELD: Run exlusively upon returning to the field, shortly after ON_RESUME (as opposed to ON_RESUME, which also runs once on entering the map) - Used rarely, when something must only happen on reload (e.g. making sure Mew is above the grass after battling it on Faraway Island) - -*/ - #define MAP_SCRIPT_ON_LOAD 1 #define MAP_SCRIPT_ON_FRAME_TABLE 2 #define MAP_SCRIPT_ON_TRANSITION 3 diff --git a/include/trade.h b/include/trade.h index d68267a2fc..721ba66ced 100644 --- a/include/trade.h +++ b/include/trade.h @@ -15,8 +15,8 @@ extern const u8 gText_GenderlessSymbol[]; extern const u16 gTradeOrHatchMonShadowTilemap[]; void CB2_StartCreateTradeMenu(void); s32 GetGameProgressForLinkTrade(void); -s32 CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData rfuPlayer, u16 species2, u16 species, u8 ismodernFatefulEncounter); -s32 GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData rfuPlayer, struct RfuGameCompatibilityData rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 ismodernFatefulEncounter); +s32 CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData rfuPlayer, u16 species2, u16 species, u8 isModernFatefulEncounter); +s32 GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData rfuPlayer, struct RfuGameCompatibilityData rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isModernFatefulEncounter); void CB2_ReturnToTradeMenuFromSummary(void); #endif //GUARD_TRADE_H diff --git a/src/battle_message.c b/src/battle_message.c index e0538422bf..f081ec1a6d 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -771,7 +771,7 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT - BATTLESTRINGS_TABLE_ST [STRINGID_AARGHALMOSTHADIT - BATTLESTRINGS_TABLE_START] = sText_AarghAlmostHadIt, [STRINGID_SHOOTSOCLOSE - BATTLESTRINGS_TABLE_START] = sText_ShootSoClose, [STRINGID_GOTCHAPKMNCAUGHTPLAYER - BATTLESTRINGS_TABLE_START] = sText_GotchaPkmnCaught, - [STRINGID_GOTCHAPKMNCAUGHT_OLDMANORDUDE - BATTLESTRINGS_TABLE_START] = sText_GotchaPkmnCaught2, + [STRINGID_GOTCHAPKMNCAUGHTOLDMANORDUDE - BATTLESTRINGS_TABLE_START] = sText_GotchaPkmnCaught2, [STRINGID_GIVENICKNAMECAPTURED - BATTLESTRINGS_TABLE_START] = sText_GiveNicknameCaptured, [STRINGID_PKMNSENTTOPC - BATTLESTRINGS_TABLE_START] = sText_PkmnSentToPC, [STRINGID_PKMNDATAADDEDTODEX - BATTLESTRINGS_TABLE_START] = sText_PkmnDataAddedToDex, diff --git a/src/data/union_room.h b/src/data/union_room.h index 7a5fc04cf8..8060f72346 100644 --- a/src/data/union_room.h +++ b/src/data/union_room.h @@ -309,7 +309,7 @@ static const struct WindowTemplate sWindowTemplate_TradingBoardMain = { .baseBlock = 0x039 }; -static const struct ListMenuItem sTradeBoardListMenuItems[] = { +static const struct ListMenuItem sListMenuItems_TradeBoard[] = { {gText_UR_EmptyString, LIST_HEADER}, {gText_UR_EmptyString, 0}, {gText_UR_EmptyString, 1}, @@ -323,10 +323,10 @@ static const struct ListMenuItem sTradeBoardListMenuItems[] = { }; static const struct ListMenuTemplate sListMenuTemplate_TradeBoard = { - .items = sTradeBoardListMenuItems, + .items = sListMenuItems_TradeBoard, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .itemPrintFunc = TradeBoardListMenuItemPrintFunc, - .totalItems = ARRAY_COUNT(sTradeBoardListMenuItems), + .totalItems = ARRAY_COUNT(sListMenuItems_TradeBoard), .maxShowed = 5, .windowId = 0, .header_X = 0, diff --git a/src/pc_screen_effect.c b/src/pc_screen_effect.c index 7e1a2bf71a..9a8a35eb31 100644 --- a/src/pc_screen_effect.c +++ b/src/pc_screen_effect.c @@ -9,10 +9,10 @@ #define tState data[0] #define tXSpeed data[1] #define tYSpeed data[2] -#define twirelessWinLeft data[3] -#define twirelessWinRight data[4] -#define twirelessWinTop data[5] -#define twirelessWinBottom data[6] +#define tWinLeft data[3] +#define tWinRight data[4] +#define tWinTop data[5] +#define tWinBottom data[6] #define tBldCntBak data[7] #define tBldYBak data[8] @@ -57,13 +57,13 @@ static void Task_PCScreenEffect_TurnOn(u8 taskId) switch (task->tState) { case 0: - task->twirelessWinLeft = 120; - task->twirelessWinRight = 120; - task->twirelessWinTop = 80; - task->twirelessWinBottom = 81; + task->tWinLeft = 120; + task->tWinRight = 120; + task->tWinTop = 80; + task->tWinBottom = 81; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->twirelessWinLeft, task->twirelessWinRight)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->twirelessWinTop, task->twirelessWinBottom)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, 0); break; @@ -74,32 +74,32 @@ static void Task_PCScreenEffect_TurnOn(u8 taskId) SetGpuReg(REG_OFFSET_BLDY, 16); break; case 2: - task->twirelessWinLeft -= task->tXSpeed; - task->twirelessWinRight += task->tXSpeed; - if (task->twirelessWinLeft <= 0 || task->twirelessWinRight >= DISPLAY_WIDTH) + task->tWinLeft -= task->tXSpeed; + task->tWinRight += task->tXSpeed; + if (task->tWinLeft <= 0 || task->tWinRight >= DISPLAY_WIDTH) { - task->twirelessWinLeft = 0; - task->twirelessWinRight = DISPLAY_WIDTH; + task->tWinLeft = 0; + task->tWinRight = DISPLAY_WIDTH; SetGpuReg(REG_OFFSET_BLDY, 0); SetGpuReg(REG_OFFSET_BLDCNT, task->tBldCntBak); BlendPalettes(PALETTES_ALL, 0, RGB_BLACK); gPlttBufferFaded[BG_PLTT_ID(0)] = 0; } - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->twirelessWinLeft, task->twirelessWinRight)); - if (task->twirelessWinLeft) + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); + if (task->tWinLeft) return; break; case 3: - task->twirelessWinTop -= task->tYSpeed; - task->twirelessWinBottom += task->tYSpeed; - if (task->twirelessWinTop <= 0 || task->twirelessWinBottom >= DISPLAY_HEIGHT) + task->tWinTop -= task->tYSpeed; + task->tWinBottom += task->tYSpeed; + if (task->tWinTop <= 0 || task->tWinBottom >= DISPLAY_HEIGHT) { - task->twirelessWinTop = 0; - task->twirelessWinBottom = DISPLAY_HEIGHT; + task->tWinTop = 0; + task->tWinBottom = DISPLAY_HEIGHT; ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); } - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->twirelessWinTop, task->twirelessWinBottom)); - if (task->twirelessWinTop) + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); + if (task->tWinTop) return; break; default: @@ -120,42 +120,42 @@ static void Task_PCScreenEffect_TurnOff(u8 taskId) gPlttBufferFaded[BG_PLTT_ID(0)] = 0; break; case 1: - task->twirelessWinLeft = 0; - task->twirelessWinRight = DISPLAY_WIDTH; - task->twirelessWinTop = 0; - task->twirelessWinBottom = DISPLAY_HEIGHT; + task->tWinLeft = 0; + task->tWinRight = DISPLAY_WIDTH; + task->tWinTop = 0; + task->tWinBottom = DISPLAY_HEIGHT; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->twirelessWinLeft, task->twirelessWinRight)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->twirelessWinTop, task->twirelessWinBottom)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, 0); break; case 2: - task->twirelessWinTop += task->tYSpeed; - task->twirelessWinBottom -= task->tYSpeed; - if (task->twirelessWinTop >= 80 || task->twirelessWinBottom <= 81) + task->tWinTop += task->tYSpeed; + task->tWinBottom -= task->tYSpeed; + if (task->tWinTop >= 80 || task->tWinBottom <= 81) { - task->twirelessWinTop = 80; - task->twirelessWinBottom = 81; + task->tWinTop = 80; + task->tWinBottom = 81; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_LIGHTEN); SetGpuReg(REG_OFFSET_BLDY, 16); } - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->twirelessWinTop, task->twirelessWinBottom)); - if (task->twirelessWinTop != 80) + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->tWinTop, task->tWinBottom)); + if (task->tWinTop != 80) return; break; case 3: - task->twirelessWinLeft += task->tXSpeed; - task->twirelessWinRight -= task->tXSpeed; - if (task->twirelessWinLeft >= 120 || task->twirelessWinRight <= 120) + task->tWinLeft += task->tXSpeed; + task->tWinRight -= task->tXSpeed; + if (task->tWinLeft >= 120 || task->tWinRight <= 120) { - task->twirelessWinLeft = 120; - task->twirelessWinRight = 120; + task->tWinLeft = 120; + task->tWinRight = 120; BlendPalettes(PALETTES_ALL, 0x10, RGB_BLACK); gPlttBufferFaded[BG_PLTT_ID(0)] = 0; } - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->twirelessWinLeft, task->twirelessWinRight)); - if (task->twirelessWinLeft != 120) + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWinLeft, task->tWinRight)); + if (task->tWinLeft != 120) return; break; default: @@ -170,10 +170,10 @@ static void Task_PCScreenEffect_TurnOff(u8 taskId) #undef tBldYBak #undef tBldCntBak -#undef twirelessWinBottom -#undef twirelessWinTop -#undef twirelessWinRight -#undef twirelessWinLeft +#undef tWinBottom +#undef tWinTop +#undef tWinRight +#undef tWinLeft #undef tYSpeed #undef tXSpeed #undef tState From 476f4fa623bc7350898af814089c20d12bc9d9e2 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sat, 4 May 2024 18:16:31 +0530 Subject: [PATCH 35/38] Changed spaces to tabs --- data/battle_ai_scripts.s | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 759ce175e1..b6d2f1c115 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -16,7 +16,7 @@ .align 2 gBattleAI_ScriptsTable:: - .4byte AI_CheckBadMove @ AI_SCRIPT_CHECK_BAD_MOVE + .4byte AI_CheckBadMove @ AI_SCRIPT_CHECK_BAD_MOVE .4byte AI_CheckViability @ AI_SCRIPT_CHECK_VIABILITY .4byte AI_TryToFaint @ AI_SCRIPT_TRY_TO_FAINT .4byte AI_SetupFirstTurn @ AI_SCRIPT_SETUP_FIRST_TURN From 2ad8d98fecf08936be61e344acff51a0a67646b3 Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sat, 4 May 2024 18:20:07 +0530 Subject: [PATCH 36/38] Used correct naming convention of AI_ITEM_GUARD_SPECS used in pokefirered --- data/battle_scripts_2.s | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 0562242abf..daf7b14d2e 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -39,7 +39,7 @@ gBattlescriptsForUsingItem:: .4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_HEAL_HP .4byte BattleScript_OpponentUsesStatusCureItem @ AI_ITEM_CURE_CONDITION .4byte BattleScript_OpponentUsesXItem @ AI_ITEM_X_STAT - .4byte BattleScript_OpponentUsesGuardSpec @ AI_ITEM_GUARD_SPEC + .4byte BattleScript_OpponentUsesGuardSpec @ AI_ITEM_GUARD_SPECS gBattlescriptsForRunningByItem:: .4byte BattleScript_UseFluffyTail From d6758c92a87b2663f2d7770919e5cfe06d754b1b Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sat, 4 May 2024 18:28:16 +0530 Subject: [PATCH 37/38] Improved BattleScript_ActionWatchesCarefullyLeftoverWallyPrepToThrow to BattleScript_ActionLeftoverWallyPrepToThrow --- data/battle_scripts_2.s | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index daf7b14d2e..97780a8235 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -49,7 +49,7 @@ gBattlescriptsForSafariActions:: .4byte BattleScript_ActionWatchesCarefully .4byte BattleScript_ActionThrowRock .4byte BattleScript_ActionThrowBait - .4byte BattleScript_ActionWatchesCarefullyLeftoverWallyPrepToThrow + .4byte BattleScript_ActionLeftoverWallyPrepToThrow BattleScript_BallThrow:: jumpifbattletype BATTLE_TYPE_OLD_MAN_TUTORIAL, BattleScript_BallThrowByOldMan @@ -226,7 +226,7 @@ BattleScript_ActionThrowBait:: playanimation BS_ATTACKER, B_ANIM_BAIT_THROW end2 -BattleScript_ActionWatchesCarefullyLeftoverWallyPrepToThrow:: +BattleScript_ActionLeftoverWallyPrepToThrow:: printstring STRINGID_RETURNMON waitmessage B_WAIT_TIME_LONG returnatktoball From 6fe664f35450177d17da4438ff7d5686c96935ad Mon Sep 17 00:00:00 2001 From: HunarPG Date: Sat, 4 May 2024 18:31:16 +0530 Subject: [PATCH 38/38] Switch back to more accurate pokefirered names in battle_scripts_2.s --- data/battle_scripts_2.s | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 97780a8235..e0d9e206c3 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -84,15 +84,15 @@ BattleScript_TryNicknameCaughtMon:: printstring STRINGID_GIVENICKNAMECAPTURED waitstate setbyte gBattleCommunication, 0 - trygivecaughtmonnick BattleScript_GiveCaughtMonEnd + trygivecaughtmonnick BattleScript_CaughtPokemonSkipNickname givecaughtmon printfromtable gCaughtMonStringIds waitmessage B_WAIT_TIME_LONG - goto BattleScript_SuccessBallThrowEnd + goto BattleScript_CaughtPokemonDone -BattleScript_GiveCaughtMonEnd:: +BattleScript_CaughtPokemonSkipNickname:: givecaughtmon -BattleScript_SuccessBallThrowEnd:: +BattleScript_CaughtPokemonDone:: setbyte gBattleOutcome, B_OUTCOME_CAUGHT finishturn