summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle/battle_2.c (renamed from src/battle_2.c)8
-rw-r--r--src/battle/battle_3.c (renamed from src/battle_3.c)2
-rw-r--r--src/battle/battle_4.c (renamed from src/battle_4.c)1252
-rw-r--r--src/battle/battle_7.c (renamed from src/battle_7.c)42
-rw-r--r--src/battle/battle_ai.c (renamed from src/battle_ai.c)4
-rw-r--r--src/battle/battle_anim.c (renamed from src/battle_anim.c)162
-rw-r--r--src/battle/battle_anim_807B69C.c (renamed from src/battle_anim_807B69C.c)14
-rw-r--r--src/battle/battle_anim_80A7E7C.c (renamed from src/battle_anim_80A7E7C.c)92
-rw-r--r--src/battle/battle_anim_80CA710.c (renamed from src/battle_anim_80CA710.c)0
-rw-r--r--src/battle/battle_controller_linkopponent.c (renamed from src/battle_controller_linkopponent.c)10
-rw-r--r--src/battle/battle_controller_linkpartner.c (renamed from src/battle_controller_linkpartner.c)10
-rw-r--r--src/battle/battle_controller_opponent.c (renamed from src/battle_controller_opponent.c)10
-rw-r--r--src/battle/battle_controller_player.c (renamed from src/battle_controller_player.c)10
-rw-r--r--src/battle/battle_controller_safari.c (renamed from src/battle_controller_safari.c)0
-rw-r--r--src/battle/battle_controller_wally.c (renamed from src/battle_controller_wally.c)4
-rw-r--r--src/battle/battle_interface.c (renamed from src/battle_interface.c)2
-rw-r--r--src/battle/battle_message.c (renamed from src/battle_message.c)0
-rw-r--r--src/battle/battle_party_menu.c (renamed from src/battle_party_menu.c)0
-rw-r--r--src/battle/battle_records.c (renamed from src/battle_records.c)0
-rw-r--r--src/battle/battle_setup.c (renamed from src/battle_setup.c)2
-rw-r--r--src/battle/battle_transition.c (renamed from src/battle_transition.c)0
-rw-r--r--src/battle/calculate_base_damage.c (renamed from src/calculate_base_damage.c)0
-rw-r--r--src/battle/contest_link_80C857C.c (renamed from src/contest_link_80C857C.c)0
-rw-r--r--src/battle/pokeball.c (renamed from src/pokeball.c)0
-rw-r--r--src/battle/post_battle_event_funcs.c (renamed from src/post_battle_event_funcs.c)0
-rw-r--r--src/battle/reshow_battle_screen.c (renamed from src/reshow_battle_screen.c)0
-rw-r--r--src/battle/smokescreen.c (renamed from src/smokescreen.c)0
-rw-r--r--src/debug/matsuda_debug_menu.c (renamed from src/matsuda_debug_menu.c)0
-rw-r--r--src/debug/mori_debug_menu.c (renamed from src/mori_debug_menu.c)0
-rw-r--r--src/debug/sound_check_menu.c1300
-rw-r--r--src/debug/unknown_debug_menu.c (renamed from src/unknown_debug_menu.c)0
-rw-r--r--src/engine/blend_palette.c (renamed from src/blend_palette.c)0
-rw-r--r--src/engine/cable_club.c (renamed from src/cable_club.c)4
-rw-r--r--src/engine/clear_save_data_menu.c (renamed from src/clear_save_data_menu.c)0
-rw-r--r--src/engine/clock.c (renamed from src/clock.c)0
-rw-r--r--src/engine/decompress.c (renamed from src/decompress.c)2
-rw-r--r--src/engine/link.c (renamed from src/link.c)0
-rw-r--r--src/engine/load_save.c (renamed from src/load_save.c)0
-rw-r--r--src/engine/main.c (renamed from src/main.c)0
-rw-r--r--src/engine/main_menu.c (renamed from src/main_menu.c)0
-rw-r--r--src/engine/menu.c (renamed from src/menu.c)0
-rw-r--r--src/engine/menu_cursor.c (renamed from src/menu_cursor.c)0
-rw-r--r--src/engine/mystery_event_menu.c (renamed from src/mystery_event_menu.c)0
-rw-r--r--src/engine/mystery_event_script.c (renamed from src/mystery_event_script.c)4
-rw-r--r--src/engine/name_string_util.c (renamed from src/name_string_util.c)0
-rw-r--r--src/engine/naming_screen.c (renamed from src/naming_screen.c)0
-rw-r--r--src/engine/option_menu.c (renamed from src/option_menu.c)0
-rw-r--r--src/engine/palette.c (renamed from src/palette.c)2
-rw-r--r--src/engine/play_time.c (renamed from src/play_time.c)0
-rw-r--r--src/engine/record_mixing.c (renamed from src/record_mixing.c)0
-rw-r--r--src/engine/reset_rtc_screen.c (renamed from src/reset_rtc_screen.c)0
-rw-r--r--src/engine/rng.c (renamed from src/rng.c)0
-rw-r--r--src/engine/rtc.c (renamed from src/rtc.c)0
-rw-r--r--src/engine/save.c (renamed from src/save.c)0
-rw-r--r--src/engine/save_failed_screen.c (renamed from src/save_failed_screen.c)0
-rw-r--r--src/engine/save_menu_util.c (renamed from src/save_menu_util.c)0
-rw-r--r--src/engine/script.c (renamed from src/script.c)68
-rw-r--r--src/engine/sound.c (renamed from src/sound.c)2
-rw-r--r--src/engine/sprite.c (renamed from src/sprite.c)0
-rw-r--r--src/engine/string_util.c (renamed from src/string_util.c)0
-rw-r--r--src/engine/task.c (renamed from src/task.c)0
-rw-r--r--src/engine/text.c (renamed from src/text.c)12
-rw-r--r--src/engine/text_window.c (renamed from src/text_window.c)0
-rw-r--r--src/engine/tileset_anim.c (renamed from src/tileset_anim.c)0
-rw-r--r--src/engine/time_events.c (renamed from src/time_events.c)0
-rw-r--r--src/engine/trade.c (renamed from src/trade.c)14
-rw-r--r--src/engine/trainer_card.c (renamed from src/trainer_card.c)0
-rw-r--r--src/engine/trig.c (renamed from src/trig.c)0
-rw-r--r--src/engine/util.c (renamed from src/util.c)0
-rw-r--r--src/field/bard_music.c (renamed from src/bard_music.c)0
-rw-r--r--src/field/berry.c (renamed from src/berry.c)0
-rw-r--r--src/field/berry_tag_screen.c (renamed from src/berry_tag_screen.c)0
-rw-r--r--src/field/bike.c (renamed from src/bike.c)6
-rw-r--r--src/field/birch_pc.c (renamed from src/birch_pc.c)8
-rw-r--r--src/field/braille_puzzles.c (renamed from src/braille_puzzles.c)0
-rw-r--r--src/field/choose_party.c (renamed from src/choose_party.c)0
-rw-r--r--src/field/coins.c (renamed from src/coins.c)26
-rw-r--r--src/field/coord_event_weather.c (renamed from src/coord_event_weather.c)0
-rw-r--r--src/field/daycare.c (renamed from src/daycare.c)0
-rw-r--r--src/field/decoration.c (renamed from src/decoration.c)6
-rw-r--r--src/field/decoration_inventory.c (renamed from src/decoration_inventory.c)0
-rw-r--r--src/field/dewford_trend.c (renamed from src/dewford_trend.c)0
-rw-r--r--src/field/diploma.c (renamed from src/diploma.c)0
-rw-r--r--src/field/easy_chat.c (renamed from src/easy_chat.c)2
-rw-r--r--src/field/event_data.c (renamed from src/event_data.c)4
-rw-r--r--src/field/field_camera.c (renamed from src/field_camera.c)0
-rw-r--r--src/field/field_control_avatar.c (renamed from src/field_control_avatar.c)0
-rw-r--r--src/field/field_door.c (renamed from src/field_door.c)0
-rw-r--r--src/field/field_effect.c (renamed from src/field_effect.c)20
-rw-r--r--src/field/field_effect_helpers.c (renamed from src/field_effect_helpers.c)0
-rw-r--r--src/field/field_fadetransition.c (renamed from src/field_fadetransition.c)14
-rw-r--r--src/field/field_ground_effect.c (renamed from src/field_ground_effect.c)0
-rw-r--r--src/field/field_map_obj.c (renamed from src/field_map_obj.c)22
-rw-r--r--src/field/field_map_obj_helpers.c (renamed from src/field_map_obj_helpers.c)0
-rw-r--r--src/field/field_message_box.c (renamed from src/field_message_box.c)0
-rw-r--r--src/field/field_player_avatar.c (renamed from src/field_player_avatar.c)4
-rw-r--r--src/field/field_poison.c (renamed from src/field_poison.c)0
-rw-r--r--src/field/field_region_map.c (renamed from src/field_region_map.c)0
-rw-r--r--src/field/field_screen_effect.c (renamed from src/field_screen_effect.c)2
-rw-r--r--src/field/field_special_scene.c (renamed from src/field_special_scene.c)2
-rw-r--r--src/field/field_specials.c (renamed from src/field_specials.c)6
-rw-r--r--src/field/field_tasks.c (renamed from src/field_tasks.c)0
-rw-r--r--src/field/field_weather.c (renamed from src/field_weather.c)0
-rw-r--r--src/field/fieldmap.c (renamed from src/fieldmap.c)0
-rw-r--r--src/field/fldeff_cut.c (renamed from src/fldeff_cut.c)0
-rw-r--r--src/field/fldeff_flash.c (renamed from src/fldeff_flash.c)0
-rw-r--r--src/field/fldeff_softboiled.c (renamed from src/fldeff_softboiled.c)0
-rw-r--r--src/field/fldeff_strength.c (renamed from src/fldeff_strength.c)0
-rw-r--r--src/field/fldeff_sweetscent.c (renamed from src/fldeff_sweetscent.c)0
-rw-r--r--src/field/fldeff_teleport.c (renamed from src/fldeff_teleport.c)0
-rw-r--r--src/field/heal_location.c (renamed from src/heal_location.c)0
-rw-r--r--src/field/hof_pc.c (renamed from src/hof_pc.c)2
-rw-r--r--src/field/item.c (renamed from src/item.c)8
-rw-r--r--src/field/item_menu.c (renamed from src/item_menu.c)6
-rw-r--r--src/field/item_use.c (renamed from src/item_use.c)34
-rw-r--r--src/field/landmark.c (renamed from src/landmark.c)0
-rw-r--r--src/field/lottery_corner.c (renamed from src/lottery_corner.c)0
-rw-r--r--src/field/map_name_popup.c (renamed from src/map_name_popup.c)0
-rw-r--r--src/field/map_obj_lock.c (renamed from src/map_obj_lock.c)0
-rw-r--r--src/field/mauville_man.c (renamed from src/mauville_man.c)0
-rw-r--r--src/field/menu_helpers.c (renamed from src/menu_helpers.c)0
-rw-r--r--src/field/metatile_behavior.c (renamed from src/metatile_behavior.c)0
-rw-r--r--src/field/money.c (renamed from src/money.c)0
-rw-r--r--src/field/overworld.c (renamed from src/overworld.c)178
-rw-r--r--src/field/party_menu.c (renamed from src/party_menu.c)0
-rw-r--r--src/field/player_pc.c (renamed from src/player_pc.c)0
-rw-r--r--src/field/pokeblock.c (renamed from src/pokeblock.c)2
-rw-r--r--src/field/pokenav.c (renamed from src/pokenav.c)0
-rw-r--r--src/field/region_map.c (renamed from src/region_map.c)6
-rw-r--r--src/field/roamer.c (renamed from src/roamer.c)0
-rw-r--r--src/field/rotating_gate.c (renamed from src/rotating_gate.c)0
-rw-r--r--src/field/safari_zone.c (renamed from src/safari_zone.c)0
-rw-r--r--src/field/scrcmd.c (renamed from src/scrcmd.c)650
-rw-r--r--src/field/script_menu.c (renamed from src/script_menu.c)0
-rw-r--r--src/field/script_movement.c (renamed from src/script_movement.c)0
-rw-r--r--src/field/secret_base.c (renamed from src/secret_base.c)2
-rw-r--r--src/field/shop.c (renamed from src/shop.c)2
-rw-r--r--src/field/slot_machine.c (renamed from src/slot_machine.c)2
-rw-r--r--src/field/start_menu.c (renamed from src/start_menu.c)0
-rw-r--r--src/field/starter_choose.c (renamed from src/starter_choose.c)0
-rw-r--r--src/field/trader.c (renamed from src/trader.c)0
-rw-r--r--src/field/trainer_see.c (renamed from src/trainer_see.c)0
-rw-r--r--src/field/tv.c (renamed from src/tv.c)4
-rw-r--r--src/field/use_pokeblock.c (renamed from src/use_pokeblock.c)0
-rw-r--r--src/field/wallclock.c (renamed from src/wallclock.c)0
-rw-r--r--src/field/wild_encounter.c (renamed from src/wild_encounter.c)0
-rw-r--r--src/libs/agb_flash.c (renamed from src/agb_flash.c)0
-rw-r--r--src/libs/agb_flash_1m.c (renamed from src/agb_flash_1m.c)0
-rw-r--r--src/libs/agb_flash_le.c (renamed from src/agb_flash_le.c)0
-rw-r--r--src/libs/agb_flash_mx.c (renamed from src/agb_flash_mx.c)0
-rw-r--r--src/libs/libc.c (renamed from src/libc.c)0
-rw-r--r--src/libs/m4a_2.c (renamed from src/m4a_2.c)0
-rw-r--r--src/libs/m4a_4.c (renamed from src/m4a_4.c)0
-rw-r--r--src/libs/m4a_tables.c (renamed from src/m4a_tables.c)0
-rw-r--r--src/libs/siirtc.c (renamed from src/siirtc.c)0
-rw-r--r--src/pokemon/learn_move.c (renamed from src/learn_move.c)0
-rw-r--r--src/pokemon/mail.c (renamed from src/mail.c)0
-rw-r--r--src/pokemon/mail_data.c (renamed from src/mail_data.c)0
-rw-r--r--src/pokemon/mon_markings.c (renamed from src/mon_markings.c)0
-rw-r--r--src/pokemon/pokeblock_feed.c (renamed from src/pokeblock_feed.c)6
-rw-r--r--src/pokemon/pokedex.c (renamed from src/pokedex.c)105
-rw-r--r--src/pokemon/pokedex_cry_screen.c (renamed from src/pokedex_cry_screen.c)0
-rw-r--r--src/pokemon/pokemon_1.c (renamed from src/pokemon_1.c)0
-rw-r--r--src/pokemon/pokemon_2.c (renamed from src/pokemon_2.c)0
-rw-r--r--src/pokemon/pokemon_3.c (renamed from src/pokemon_3.c)24
-rw-r--r--src/pokemon/pokemon_data.c (renamed from src/pokemon_data.c)0
-rw-r--r--src/pokemon/pokemon_icon.c (renamed from src/pokemon_icon.c)0
-rw-r--r--src/pokemon/pokemon_menu.c (renamed from src/pokemon_menu.c)0
-rw-r--r--src/pokemon/pokemon_size_record.c (renamed from src/pokemon_size_record.c)0
-rw-r--r--src/pokemon/pokemon_storage_system.c (renamed from src/pokemon_storage_system.c)0
-rw-r--r--src/pokemon/pokemon_summary_screen.c (renamed from src/pokemon_summary_screen.c)0
-rw-r--r--src/rom6.c2
-rw-r--r--src/rom_8077ABC.c204
-rw-r--r--src/scene/berry_blender.c (renamed from src/berry_blender.c)6
-rw-r--r--src/scene/contest_painting.c (renamed from src/contest_painting.c)4
-rw-r--r--src/scene/credits.c (renamed from src/credits.c)4
-rw-r--r--src/scene/cute_sketch.c (renamed from src/cute_sketch.c)0
-rw-r--r--src/scene/egg_hatch.c (renamed from src/egg_hatch.c)12
-rw-r--r--src/scene/evolution_graphics.c (renamed from src/evolution_graphics.c)0
-rw-r--r--src/scene/evolution_scene.c (renamed from src/evolution_scene.c)26
-rw-r--r--src/scene/hall_of_fame.c (renamed from src/hall_of_fame.c)2
-rw-r--r--src/scene/intro.c (renamed from src/intro.c)2
-rwxr-xr-xsrc/scene/intro_credits_graphics.c (renamed from src/intro_credits_graphics.c)0
-rw-r--r--src/scene/new_game.c (renamed from src/new_game.c)2
-rw-r--r--src/scene/title_screen.c (renamed from src/title_screen.c)0
-rw-r--r--src/script_pokemon_util_80C4BF0.c6
-rw-r--r--src/sound_check_menu.c2199
-rw-r--r--src/unused_8124F94.c6
188 files changed, 2693 insertions, 3967 deletions
diff --git a/src/battle_2.c b/src/battle/battle_2.c
index 3cdea07be..770aa1209 100644
--- a/src/battle_2.c
+++ b/src/battle/battle_2.c
@@ -1924,14 +1924,14 @@ void sub_8011384(void)
}
if (GetBankSide(gActiveBank) == 1
&& !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)))
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
}
else
{
if (GetBankSide(gActiveBank) == 1
&& !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)))
{
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
EmitLoadPokeSprite(0);
MarkBufferBankForExecution(gActiveBank);
}
@@ -2086,7 +2086,7 @@ void bc_801362C(void)
{
if (GetBankSide(gActiveBank) == 1
&& !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)))
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
}
gBattleMainFunc = sub_8011970;
}
@@ -2168,7 +2168,7 @@ void BattleBeginFirstTurn(void)
{
for (j = i + 1; j < gNoOfAllBanks; j++)
{
- if (b_first_side(gTurnOrder[i], gTurnOrder[j], 1) != 0)
+ if (GetWhoStrikesFirst(gTurnOrder[i], gTurnOrder[j], 1) != 0)
sub_8012FBC(i, j);
}
}
diff --git a/src/battle_3.c b/src/battle/battle_3.c
index f04e722c4..b59757f00 100644
--- a/src/battle_3.c
+++ b/src/battle/battle_3.c
@@ -378,7 +378,7 @@ u8 UpdateTurnCounters(void)
s32 j;
for (j = i + 1; j < gNoOfAllBanks; j++)
{
- if (b_first_side(gTurnOrder[i], gTurnOrder[j], 0))
+ if (GetWhoStrikesFirst(gTurnOrder[i], gTurnOrder[j], 0))
sub_8012FBC(i, j);
}
}
diff --git a/src/battle_4.c b/src/battle/battle_4.c
index 65ea765cf..e4a4895b5 100644
--- a/src/battle_4.c
+++ b/src/battle/battle_4.c
@@ -93,6 +93,7 @@ extern u16 gUnknown_02024C2C[4]; //last used moves 2, used by sketch
extern u16 gUnknown_030041B0;
extern u16 gUnknown_02024C4C[4]; //last used moves by banks, another one
extern u8 gCurrentMoveTurn;
+extern u16 gTrappingMoves[];
//extern functions
u8 AtkCanceller_UnableToUseMove(void);
@@ -122,7 +123,7 @@ bool8 IsTradedMon(struct Pokemon*);
void b_movescr_stack_pop_cursor(void);
void SwitchInClearStructs(void);
u8* ConvertIntToDecimalStringN(u8*, s32, u8, u8);
-u8 GetNationalPokedexFlag(u16 nationalNum, u8 caseID);
+u8 GetSetPokedexFlag(u16 nationalNum, u8 caseID);
u16 SpeciesToNationalPokedexNum(u16 species);
u8 sub_803FC34(u8 bank);
u16 sub_803FBFC(u8 a);
@@ -199,6 +200,9 @@ extern u8 BattleScript_TrainerBallBlock[];
extern u8 BattleScript_WallyBallThrow[];
extern u8 BattleScript_SuccessBallThrow[];
extern u8 BattleScript_ShakeBallThrow[];
+extern u8 BattleScript_AllStatsUp[];
+extern u8 BattleScript_AtkDefDown[];
+extern u8 BattleScript_SAtkDown2[];
extern u8 gUnknown_081D919F[]; //spikes1
extern u8 gUnknown_081D9171[]; //spikes2
@@ -211,6 +215,11 @@ extern u8 BattleScript_CastformChange[];
extern u8 gUnknown_081D9834[];
extern u8 gUnknown_081D90FC[]; //bs random switchout
extern u8 gUnknown_081D95DB[]; //bs payday money give
+extern u8 gUnknown_081D8C58[];
+extern u8 gUnknown_081D8C65[];
+extern u8 gUnknown_081D9156[];
+extern u8 gUnknown_081D9468[];
+
//useful macros
//read via orr
@@ -408,6 +417,7 @@ static void atk85_stockpile(void);
static void atk86_stockpiletobasedamage(void);
static void atk87_stockpiletohpheal(void);
static void atk88_negativedamage(void);
+static u8 ChangeStatBuffs(s8, u8, u8, u8*);
static void atk89_statbuffchange(void);
static void atk8A_normalisebuffs(void);
static void atk8B_setbide(void);
@@ -862,19 +872,19 @@ static const u32 gStatusFlagsForMoveEffects[] =
0x00000000
};
-extern const u8 BattleScript_1D963E[];
-extern const u8 BattleScript_1D965A[];
-extern const u8 BattleScript_1D9669[];
-extern const u8 BattleScript_1D9678[];
-extern const u8 BattleScript_1D9687[];
-extern const u8 BattleScript_1D969D[];
-extern const u8 BattleScript_1D96BA[];
-extern const u8 BattleScript_1D9696[];
-extern const u8 BattleScript_1D96B1[];
-extern const u8 BattleScript_1D96AA[];
-extern const u8 BattleScript_1D96C8[];
+extern u8 BattleScript_1D963E[];
+extern u8 BattleScript_1D965A[];
+extern u8 BattleScript_1D9669[];
+extern u8 BattleScript_1D9678[];
+extern u8 BattleScript_1D9687[];
+extern u8 BattleScript_1D969D[];
+extern u8 BattleScript_1D96BA[];
+extern u8 BattleScript_1D9696[];
+extern u8 BattleScript_1D96B1[];
+extern u8 BattleScript_1D96AA[];
+extern u8 BattleScript_1D96C8[];
-const u8* const gMoveEffectBS_Ptrs[] =
+u8* const gMoveEffectBS_Ptrs[] =
{
BattleScript_1D963E,
BattleScript_1D963E,
@@ -947,7 +957,7 @@ static const u16 sUnknown_081FACFE[] = //banned moves to copy
0xFFFF
};
-static const u8 sUnknown_081FAD26[] =
+static const u8 sUnknown_081FAD26[] = //reversal+flail HP thresholds to power
{
1, 200,
4, 150,
@@ -1445,73 +1455,71 @@ static void atk06_typecalc(void)
{
int i = 0;
u8 move_type;
- if (gCurrentMove == MOVE_STRUGGLE) {goto END;}
-
- if (BATTLE_STRUCT->dynamicMoveType)
- move_type = BATTLE_STRUCT->dynamicMoveType & 0x3F;
- else
- move_type = gBattleMoves[gCurrentMove].type;
-
- //check stab
- if (gBattleMons[gBankAttacker].type1 == move_type || gBattleMons[gBankAttacker].type2 == move_type)
+ if (gCurrentMove != MOVE_STRUGGLE)
{
- gBattleMoveDamage = gBattleMoveDamage * 15;
- gBattleMoveDamage = gBattleMoveDamage / 10;
- }
+ if (BATTLE_STRUCT->dynamicMoveType)
+ move_type = BATTLE_STRUCT->dynamicMoveType & 0x3F;
+ else
+ move_type = gBattleMoves[gCurrentMove].type;
- if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
- {
- gLastUsedAbility = gBattleMons[gBankTarget].ability;
- gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED);
- gMoveHitWith[gBankTarget] = 0;
- gUnknown_02024C44[gBankTarget] = 0;
- gBattleCommunication[6] = move_type;
- RecordAbilityBattle(gBankTarget, gLastUsedAbility);
- }
- else
- {
- while (gTypeEffectiveness[i]!= TYPE_ENDTABLE)
+ //check stab
+ if (gBattleMons[gBankAttacker].type1 == move_type || gBattleMons[gBankAttacker].type2 == move_type)
{
- if (gTypeEffectiveness[i] == TYPE_FORESIGHT)
- {
- if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT)
- break;
- i += 3;
- continue;
- }
+ gBattleMoveDamage = gBattleMoveDamage * 15;
+ gBattleMoveDamage = gBattleMoveDamage / 10;
+ }
- else if (gTypeEffectiveness[i] == move_type)
+ if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
+ {
+ gLastUsedAbility = gBattleMons[gBankTarget].ability;
+ gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED);
+ gMoveHitWith[gBankTarget] = 0;
+ gUnknown_02024C44[gBankTarget] = 0;
+ gBattleCommunication[6] = move_type;
+ RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ }
+ else
+ {
+ while (gTypeEffectiveness[i]!= TYPE_ENDTABLE)
{
- //check type1
- if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1)
- ModulateDmgByType(gTypeEffectiveness[i + 2]);
- //check type2
- if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 &&
- gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2)
- ModulateDmgByType(gTypeEffectiveness[i + 2]);
+ if (gTypeEffectiveness[i] == TYPE_FORESIGHT)
+ {
+ if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT)
+ break;
+ i += 3;
+ continue;
+ }
+
+ else if (gTypeEffectiveness[i] == move_type)
+ {
+ //check type1
+ if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1)
+ ModulateDmgByType(gTypeEffectiveness[i + 2]);
+ //check type2
+ if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 &&
+ gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2)
+ ModulateDmgByType(gTypeEffectiveness[i + 2]);
+ }
+ i += 3;
}
- i += 3;
}
- }
- if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2
- && (!(gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) || ((gBattleMoveFlags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)))
- && gBattleMoves[gCurrentMove].power)
- {
- gLastUsedAbility = ABILITY_WONDER_GUARD;
- gBattleMoveFlags |= MOVESTATUS_MISSED;
- gMoveHitWith[gBankTarget] = 0;
- gUnknown_02024C44[gBankTarget] = 0;
- gBattleCommunication[6] = 3;
- RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2
+ && (!(gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) || ((gBattleMoveFlags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)))
+ && gBattleMoves[gCurrentMove].power)
+ {
+ gLastUsedAbility = ABILITY_WONDER_GUARD;
+ gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveHitWith[gBankTarget] = 0;
+ gUnknown_02024C44[gBankTarget] = 0;
+ gBattleCommunication[6] = 3;
+ RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ }
+ if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED)
+ gProtectStructs[gBankAttacker].notEffective = 1;
}
- if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED)
- gProtectStructs[gBankAttacker].notEffective = 1;
-
- END:
- gBattlescriptCurrInstr++;
+ gBattlescriptCurrInstr++;
}
-
static void b_wonderguard_and_levitate(void)
{
u8 flags = 0;
@@ -1620,7 +1628,6 @@ static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) //a literal c
}
}
-#ifdef NONMATCHING
u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
{
int i = 0;
@@ -1662,7 +1669,7 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags);
//check type2
if (gTypeEffectiveness[i + 1] == gBattleMons[bank_def].type2 &&
- gBattleMons[bank_def].type1 != gBattleMons[bank_def].type2)
+ gBattleMons[gBankTarget /* what the christ */].type1 != gBattleMons[bank_def].type2)
ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags);
}
i += 3;
@@ -1678,254 +1685,6 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
}
return flags;
}
-#else
-__attribute__((naked))
-u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x14\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- mov r10, r0\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- str r1, [sp, 0x4]\n\
- lsls r2, 24\n\
- lsrs r2, 24\n\
- mov r9, r2\n\
- movs r7, 0\n\
- mov r0, sp\n\
- strb r7, [r0]\n\
- mov r0, r10\n\
- cmp r0, 0xA5\n\
- bne _0801D2AE\n\
- movs r0, 0\n\
- b _0801D43A\n\
- _0801D2AE:\n\
- ldr r1, _0801D31C @ =gBattleMoves\n\
- mov r3, r10\n\
- lsls r2, r3, 1\n\
- adds r0, r2, r3\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r0, [r0, 0x2]\n\
- str r0, [sp, 0x8]\n\
- ldr r1, _0801D320 @ =gBattleMons\n\
- movs r0, 0x58\n\
- ldr r3, [sp, 0x4]\n\
- muls r0, r3\n\
- adds r3, r0, r1\n\
- adds r0, r3, 0\n\
- adds r0, 0x21\n\
- ldrb r0, [r0]\n\
- str r2, [sp, 0xC]\n\
- adds r5, r1, 0\n\
- ldr r1, [sp, 0x8]\n\
- cmp r0, r1\n\
- beq _0801D2E2\n\
- adds r0, r3, 0\n\
- adds r0, 0x22\n\
- ldrb r0, [r0]\n\
- cmp r0, r1\n\
- bne _0801D2F4\n\
- _0801D2E2:\n\
- ldr r4, _0801D324 @ =gBattleMoveDamage\n\
- ldr r1, [r4]\n\
- lsls r0, r1, 4\n\
- subs r0, r1\n\
- str r0, [r4]\n\
- movs r1, 0xA\n\
- bl __divsi3\n\
- str r0, [r4]\n\
- _0801D2F4:\n\
- movs r0, 0x58\n\
- mov r2, r9\n\
- muls r2, r0\n\
- adds r0, r2, 0\n\
- adds r0, r5\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x1A\n\
- bne _0801D328\n\
- ldr r3, [sp, 0x8]\n\
- cmp r3, 0x4\n\
- bne _0801D328\n\
- movs r1, 0x9\n\
- mov r0, sp\n\
- ldrb r0, [r0]\n\
- orrs r0, r1\n\
- mov r1, sp\n\
- strb r0, [r1]\n\
- b _0801D3DC\n\
- .align 2, 0\n\
- _0801D31C: .4byte gBattleMoves\n\
- _0801D320: .4byte gBattleMons\n\
- _0801D324: .4byte gBattleMoveDamage\n\
- _0801D328:\n\
- ldr r1, _0801D344 @ =gTypeEffectiveness\n\
- adds r0, r7, r1\n\
- ldrb r0, [r0]\n\
- adds r2, r1, 0\n\
- cmp r0, 0xFF\n\
- beq _0801D3DC\n\
- cmp r0, 0xFE\n\
- bne _0801D34C\n\
- movs r0, 0x58\n\
- mov r1, r9\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- b _0801D3CA\n\
- .align 2, 0\n\
- _0801D344: .4byte gTypeEffectiveness\n\
- _0801D348:\n\
- adds r7, 0x3\n\
- b _0801D3B6\n\
- _0801D34C:\n\
- ldr r6, _0801D44C @ =gTypeEffectiveness\n\
- adds r0, r7, r6\n\
- ldrb r0, [r0]\n\
- ldr r2, [sp, 0x8]\n\
- cmp r0, r2\n\
- bne _0801D3B0\n\
- adds r1, r7, 0x1\n\
- adds r1, r6\n\
- ldr r3, _0801D450 @ =gBattleMons\n\
- mov r8, r3\n\
- movs r3, 0x58\n\
- mov r0, r9\n\
- muls r0, r3\n\
- mov r2, r8\n\
- adds r5, r0, r2\n\
- adds r0, r5, 0\n\
- adds r0, 0x21\n\
- ldrb r4, [r1]\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- bne _0801D388\n\
- adds r0, r7, 0x2\n\
- adds r0, r6\n\
- ldrb r0, [r0]\n\
- mov r1, r10\n\
- mov r2, sp\n\
- str r3, [sp, 0x10]\n\
- bl ModulateDmgByType2\n\
- ldr r3, [sp, 0x10]\n\
- _0801D388:\n\
- adds r0, r5, 0\n\
- adds r0, 0x22\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- bne _0801D3B0\n\
- ldr r0, _0801D454 @ =gBankTarget\n\
- ldrb r0, [r0]\n\
- muls r0, r3\n\
- add r0, r8\n\
- adds r0, 0x21\n\
- ldrb r0, [r0]\n\
- cmp r0, r4\n\
- beq _0801D3B0\n\
- adds r0, r7, 0x2\n\
- adds r0, r6\n\
- ldrb r0, [r0]\n\
- mov r1, r10\n\
- mov r2, sp\n\
- bl ModulateDmgByType2\n\
- _0801D3B0:\n\
- adds r7, 0x3\n\
- ldr r5, _0801D450 @ =gBattleMons\n\
- ldr r2, _0801D44C @ =gTypeEffectiveness\n\
- _0801D3B6:\n\
- adds r0, r7, r2\n\
- ldrb r0, [r0]\n\
- cmp r0, 0xFF\n\
- beq _0801D3DC\n\
- cmp r0, 0xFE\n\
- bne _0801D34C\n\
- movs r0, 0x58\n\
- mov r3, r9\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- _0801D3CA:\n\
- adds r1, r5, 0\n\
- adds r1, 0x50\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x80\n\
- lsls r1, 22\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0801D348\n\
- _0801D3DC:\n\
- movs r0, 0x58\n\
- mov r1, r9\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- adds r0, r5\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x19\n\
- bne _0801D436\n\
- mov r0, sp\n\
- ldrb r1, [r0]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0801D436\n\
- ldr r0, [sp, 0x4]\n\
- mov r1, r10\n\
- bl AttacksThisTurn\n\
- lsls r0, 24\n\
- lsrs r1, r0, 24\n\
- cmp r1, 0x2\n\
- bne _0801D436\n\
- mov r0, sp\n\
- ldrb r3, [r0]\n\
- adds r0, r1, 0\n\
- ands r0, r3\n\
- cmp r0, 0\n\
- beq _0801D41E\n\
- movs r0, 0x6\n\
- ands r0, r3\n\
- cmp r0, 0x6\n\
- bne _0801D436\n\
- _0801D41E:\n\
- ldr r0, _0801D458 @ =gBattleMoves\n\
- ldr r1, [sp, 0xC]\n\
- add r1, r10\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- cmp r0, 0\n\
- beq _0801D436\n\
- mov r0, sp\n\
- movs r1, 0x1\n\
- orrs r1, r3\n\
- strb r1, [r0]\n\
- _0801D436:\n\
- mov r0, sp\n\
- ldrb r0, [r0]\n\
- _0801D43A:\n\
- add sp, 0x14\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .align 2, 0\n\
- _0801D44C: .4byte gTypeEffectiveness\n\
- _0801D450: .4byte gBattleMons\n\
- _0801D454: .4byte gBankTarget\n\
- _0801D458: .4byte gBattleMoves\n\
- .syntax divided\n");
-}
-#endif // NONMATCHING
u8 AI_TypeCalc(u16 move, u16 species, u8 ability)
{
@@ -2510,7 +2269,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
#define EffectAffectsUser 0x40
register u8 certain asm("r5") = certainArg;
register bool32 StatusChanged asm("r10") = 0;
- register int AffectsUser asm("r6") = 0; //0x40 otherwise
+ register int AffectsUser asm("r6") = 0; //0x40 otherwise
bool32 NoSunCanFreeze = 1;
if (gBattleCommunication[MOVE_EFFECT_BYTE] & EffectAffectsUser)
@@ -2526,16 +2285,16 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
BATTLE_STRUCT->scriptingActive = gBankAttacker;
}
- if (gBattleMons[gEffectBank].ability_id == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) &&
+ if (gBattleMons[gEffectBank].ability == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) &&
!primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 9)
{gBattlescriptCurrInstr++; return;}
- if (gSideAffecting[get_bank_identity(gEffectBank) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) &&
+ if (gSideAffecting[GetBankIdentity(gEffectBank) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) &&
!primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 7)
{gBattlescriptCurrInstr++; return;}
//make sure at least ONE HP except payday and thief
- if (gBattleMons[gEffectBank].current_hp == 0 && gBattleCommunication[MOVE_EFFECT_BYTE] != 0xB && gBattleCommunication[MOVE_EFFECT_BYTE] != 0x1F)
+ if (gBattleMons[gEffectBank].hp == 0 && gBattleCommunication[MOVE_EFFECT_BYTE] != 0xB && gBattleCommunication[MOVE_EFFECT_BYTE] != 0x1F)
{gBattlescriptCurrInstr++; return;}
if (gBattleMons[gEffectBank].status2 & STATUS2_SUBSTITUTE && AffectsUser != EffectAffectsUser)
@@ -2547,81 +2306,82 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
case STATUS_SLEEP:
//check active uproar
- if (gBattleMons[gEffectBank].ability_id != ABILITY_SOUNDPROOF)
+ if (gBattleMons[gEffectBank].ability != ABILITY_SOUNDPROOF)
{
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks && !(gBattleMons[gActiveBank].status2 & STATUS2_UPROAR); gActiveBank++) {}
}
else
gActiveBank = gNoOfAllBanks;
- if (gBattleMons[gEffectBank].status) {break;}
+ if (gBattleMons[gEffectBank].status1) {break;}
if (gActiveBank != gNoOfAllBanks) {break;} //nice way of checking uproar...
- if (gBattleMons[gEffectBank].ability_id == ABILITY_VITAL_SPIRIT) {break;}
- if (gBattleMons[gEffectBank].ability_id == ABILITY_INSOMNIA) {break;}
+ if (gBattleMons[gEffectBank].ability == ABILITY_VITAL_SPIRIT) {break;}
+ if (gBattleMons[gEffectBank].ability == ABILITY_INSOMNIA) {break;}
- b_cancel_multi_turn_move_maybe(gEffectBank);
+ CancelMultiTurnMoves(gEffectBank);
StatusChanged = 1;
break;
case STATUS_POISON:
- if (gBattleMons[gEffectBank].ability_id == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80))
+ if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80))
{
gLastUsedAbility = ABILITY_IMMUNITY;
- RecordAbility(gEffectBank, ABILITY_IMMUNITY);
+ RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY);
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
//_0801E664:
- gBattlescriptCurrInstr = BS_PSN_PREVENTION;
+ gBattlescriptCurrInstr = BattleScript_PSNPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{
- gBattleCommunication.multistring_chooser = 1;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
return;
}
else
- {gBattleCommunication.multistring_chooser = 0; return;}
+ {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;}
}
if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL)
&& !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80))
{
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_PSN_PREVENTION;
- gBattleCommunication.multistring_chooser = 2;
+ gBattlescriptCurrInstr = BattleScript_PSNPrevention;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return;
}
if (gBattleMons[gEffectBank].type1 == TYPE_POISON) {break;}
if (gBattleMons[gEffectBank].type2 == TYPE_POISON) {break;}
if (gBattleMons[gEffectBank].type1 == TYPE_STEEL) {break;}
if (gBattleMons[gEffectBank].type2 == TYPE_STEEL) {break;}
- if (gBattleMons[gEffectBank].status) {break;}
- if (gBattleMons[gEffectBank].ability_id == ABILITY_IMMUNITY) {break;}
+ if (gBattleMons[gEffectBank].status1) {break;}
+ if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY) {break;}
+
StatusChanged = 1;
break;
case STATUS_BURN:
- if (gBattleMons[gEffectBank].ability_id == ABILITY_WATER_VEIL && (primary == 1 || certain == 0x80))
+ if (gBattleMons[gEffectBank].ability == ABILITY_WATER_VEIL && (primary == 1 || certain == 0x80))
{
gLastUsedAbility = ABILITY_WATER_VEIL;
- RecordAbility(gEffectBank, ABILITY_WATER_VEIL);
+ RecordAbilityBattle(gEffectBank, ABILITY_WATER_VEIL);
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
//_0801E664:
- gBattlescriptCurrInstr = BS_BRN_PREVENTION;
+ gBattlescriptCurrInstr = BattleScript_BRNPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{
- gBattleCommunication.multistring_chooser = 1;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
return;
}
else
- {gBattleCommunication.multistring_chooser = 0; return;}
+ {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;}
}
if ((gBattleMons[gEffectBank].type1 == TYPE_FIRE || gBattleMons[gEffectBank].type2 == TYPE_FIRE)
&& !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80))
{
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_BRN_PREVENTION;
- gBattleCommunication.multistring_chooser = 2;
+ gBattlescriptCurrInstr = BattleScript_BRNPrevention;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return;
}
if (gBattleMons[gEffectBank].type1 == TYPE_FIRE) {break;}
if (gBattleMons[gEffectBank].type2 == TYPE_FIRE) {break;}
- if (gBattleMons[gEffectBank].ability_id == ABILITY_WATER_VEIL) {break;}
+ if (gBattleMons[gEffectBank].ability == ABILITY_WATER_VEIL) {break;}
if (gBattleMons[gEffectBank].status1 == 0) {break;}
StatusChanged = 1;
break;
@@ -2629,70 +2389,70 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY) {NoSunCanFreeze = 0;}
if (gBattleMons[gEffectBank].type1 == TYPE_ICE) {break;}
if (gBattleMons[gEffectBank].type2 == TYPE_ICE) {break;}
- if (gBattleMons[gEffectBank].status) {break;}
+ if (gBattleMons[gEffectBank].status1) {break;}
if (NoSunCanFreeze == 0) {break;}
- if (gBattleMons[gEffectBank].ability_id == ABILITY_MAGMA_ARMOR) {break;}
+ if (gBattleMons[gEffectBank].ability == ABILITY_MAGMA_ARMOR) {break;}
- b_cancel_multi_turn_move_maybe(gEffectBank);
+ CancelMultiTurnMoves(gEffectBank);
StatusChanged = 1;
break;
case STATUS_PARALYSIS:
- if (gBattleMons[gEffectBank].ability_id == ABILITY_LIMBER)
+ if (gBattleMons[gEffectBank].ability == ABILITY_LIMBER)
{
if ((primary == 1 || certain == 0x80))
{
gLastUsedAbility = ABILITY_LIMBER;
- RecordAbility(gEffectBank, ABILITY_LIMBER);
+ RecordAbilityBattle(gEffectBank, ABILITY_LIMBER);
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
//_0801E664:
- gBattlescriptCurrInstr = BS_PRLZ_PREVENTION;
+ gBattlescriptCurrInstr = BattleScript_PRLZPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{
- gBattleCommunication.multistring_chooser = 1;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
return;
}
else
- {gBattleCommunication.multistring_chooser = 0; return;}
+ {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;}
}
else {break;}
}
- if (gBattleMons[gEffectBank].status) {break;}
+ if (gBattleMons[gEffectBank].status1) {break;}
StatusChanged = 1;
break;
case STATUS_TOXIC_POISON:
- if (gBattleMons[gEffectBank].ability_id == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80))
+ if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80))
{
gLastUsedAbility = ABILITY_IMMUNITY;
- RecordAbility(gEffectBank, ABILITY_IMMUNITY);
+ RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY);
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
//_0801E664:
- gBattlescriptCurrInstr = BS_PSN_PREVENTION;
+ gBattlescriptCurrInstr = BattleScript_PSNPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{
- gBattleCommunication.multistring_chooser = 1;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
return;
}
else
- {gBattleCommunication.multistring_chooser = 0; return;}
+ {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;}
}
if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL)
&& !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80))
{
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_PSN_PREVENTION;
- gBattleCommunication.multistring_chooser = 2;
+ gBattlescriptCurrInstr = BattleScript_PSNPrevention;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return;
}
- if (gBattleMons[gEffectBank].status) {break;}
+ if (gBattleMons[gEffectBank].status1) {break;}
if (gBattleMons[gEffectBank].type1 != TYPE_POISON &&
gBattleMons[gEffectBank].type2 != TYPE_POISON &&
gBattleMons[gEffectBank].type1 != TYPE_STEEL &&
gBattleMons[gEffectBank].type2 != TYPE_STEEL)
{
- if (gBattleMons[gEffectBank].ability_id == ABILITY_IMMUNITY) {break;}
- gBattleMons[gEffectBank].status1 |= ~(STATUS_POISON); //TODO: fix OR to AND
+ if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY) {break;}
+ gBattleMons[gEffectBank].status1 &= ~(0x9); //This gets (correctly) optimized out...
StatusChanged = 1;
break;
}
@@ -2707,20 +2467,20 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gBattleMons[gEffectBank].status1 |= ((Random() & 3) + 2);
else
gBattleMons[gEffectBank].status1 |= gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]];
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
gActiveBank = gEffectBank;
- bb2_setattributes_in_battle(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status);
- mark_buffer_bank_for_execution(gActiveBank);
+ EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1);
+ MarkBufferBankForExecution(gActiveBank);
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{
- gBattleCommunication.multistring_chooser = 1;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
}
else
- gBattleCommunication.multistring_chooser = 0;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
if (gBattleCommunication[MOVE_EFFECT_BYTE] == 2 || gBattleCommunication[MOVE_EFFECT_BYTE] == 6 || gBattleCommunication[MOVE_EFFECT_BYTE] == 5 || gBattleCommunication[MOVE_EFFECT_BYTE] == 3)
{
- BATTLE_STRUCT->SynchroniseEffect = gBattleCommunication[MOVE_EFFECT_BYTE];
+ BATTLE_STRUCT->synchroniseEffect = gBattleCommunication[MOVE_EFFECT_BYTE];
gHitMarker |= HITMARKER_SYNCHRONISE_EFFECT;
}
return;
@@ -2738,22 +2498,22 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
switch (gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]])
{
case 7: //confusion
- if (gBattleMons[gEffectBank].ability_id == ABILITY_OWN_TEMPO)
+ if (gBattleMons[gEffectBank].ability == ABILITY_OWN_TEMPO)
{gBattlescriptCurrInstr++; return;}
if (gBattleMons[gEffectBank].status2 & STATUS2_CONFUSION)
{gBattlescriptCurrInstr++; return;}
gBattleMons[gEffectBank].status2 |= (((Random()) % 0x4)) + 2;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 8: //flinch
- if (gBattleMons[gEffectBank].ability_id == ABILITY_INNER_FOCUS)
+ if (gBattleMons[gEffectBank].ability == ABILITY_INNER_FOCUS)
{
if (primary == 1 || certain == 0x80)
{
gLastUsedAbility = ABILITY_INNER_FOCUS;
- RecordAbility(gEffectBank, ABILITY_INNER_FOCUS);
- gBattlescriptCurrInstr = BS_FLINCH_PREVENTION;
+ RecordAbilityBattle(gEffectBank, ABILITY_INNER_FOCUS);
+ gBattlescriptCurrInstr = BattleScript_FlinchPrevention;
return;
}
else
@@ -2773,21 +2533,21 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gLockedMove[gEffectBank] = gCurrentMove;
gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 4;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 11: //pay day
- if (!(get_bank_identity(gEffectBank) & 1))
+ if (!(GetBankIdentity(gBankAttacker) & 1))
{
u16 PayDay = gPaydayMoney;
- gPaydayMoney += (gBattleMons[gEffectBank].level * 5);
+ gPaydayMoney += (gBattleMons[gBankAttacker].level * 5);
if (PayDay > gPaydayMoney)
gPaydayMoney = 0xFFFF;
}
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 9: //tri attack
- if (gBattleMons[gEffectBank].status)
+ if (gBattleMons[gEffectBank].status1)
{gBattlescriptCurrInstr++; return;}
gBattleCommunication[MOVE_EFFECT_BYTE] = Random() % 3 + 3;
SetMoveEffect(0, 0);
@@ -2795,73 +2555,73 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
case 12: //charging move
gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS;
gLockedMove[gEffectBank] = gCurrentMove;
- gProtectStructs[gEffectBank].flag1_chargingturn = 1;
+ gProtectStructs[gEffectBank].chargingTurn = 1;
gBattlescriptCurrInstr++;
break;
case 13: //wrap
if (gBattleMons[gEffectBank].status2 & STATUS2_WRAPPED)
{gBattlescriptCurrInstr++; return;}
gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 0xD;
- BATTLE_STRUCT->WrappedMove1[gEffectBank] = gCurrentMove;
- BATTLE_STRUCT->WrappedMove2[gEffectBank] = gCurrentMove >> 8;
- BATTLE_STRUCT->WrappedBy[gEffectBank] = gBankAttacker;
+ BATTLE_STRUCT->wrappedMove[gEffectBank*2] = (u8)gCurrentMove;
+ (1 + BATTLE_STRUCT->wrappedMove)[gEffectBank*2] = gCurrentMove >> 8; //don't ask.
+ BATTLE_STRUCT->wrappedBy[gEffectBank] = gBankAttacker;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
- gBattleCommunication.multistring_chooser = 0;
- while (gBattleCommunication.multistring_chooser <= 4
- && gCurrentMove != gTrappingMoves[gBattleCommunication.multistring_chooser])
- gBattleCommunication.multistring_chooser++;
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ while (gBattleCommunication[MULTISTRING_CHOOSER] <= 4
+ && gCurrentMove != gTrappingMoves[gBattleCommunication[MULTISTRING_CHOOSER]])
+ gBattleCommunication[MULTISTRING_CHOOSER]++;
break;
- case 14: //recoil
+ case 14: //25% recoil
gBattleMoveDamage = (gHP_dealt) / 4;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 15 ... 21: //stat + 1
- if (ChangeStats(0x10, gBattleCommunication[MOVE_EFFECT_BYTE] + 0xF2, certain, 0)) {gBattlescriptCurrInstr++;}
+ if (ChangeStatBuffs(0x10, gBattleCommunication[MOVE_EFFECT_BYTE] + 0xF2, certain, 0)) {gBattlescriptCurrInstr++;}
else
{
BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F; //TODO: the arg ptr is wrong by one
BATTLE_STRUCT->animArg2 = 0;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_STAT_UP;
+ gBattlescriptCurrInstr = BattleScript_StatUp;
}
break;
case 22 ... 28: //stat - 1
- if (ChangeStats(~(0x6f), gBattleCommunication[MOVE_EFFECT_BYTE] + 0xEB, certain, 0)) {gBattlescriptCurrInstr++;} //TODO: negation doesnt work correctly
+ if (ChangeStatBuffs(~(0x6f), gBattleCommunication[MOVE_EFFECT_BYTE] + 0xEB, certain, 0)) {gBattlescriptCurrInstr++;} //TODO: negation doesnt work correctly
else
{
BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
BATTLE_STRUCT->animArg2 = 0;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_STAT_DOWN;
+ gBattlescriptCurrInstr = BattleScript_StatDown;
}
break;
case 39 ... 45: //stat + 2
- if (ChangeStats(0x20, gBattleCommunication[MOVE_EFFECT_BYTE] + 0xDA, certain, 0)) {gBattlescriptCurrInstr++;}
+ if (ChangeStatBuffs(0x20, gBattleCommunication[MOVE_EFFECT_BYTE] + 0xDA, certain, 0)) {gBattlescriptCurrInstr++;}
else
{
BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
BATTLE_STRUCT->animArg2 = 0;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_STAT_UP;
+ gBattlescriptCurrInstr = BattleScript_StatUp;
}
break;
case 46 ... 52: //stat - 2
- if (ChangeStats(~(0x5f), gBattleCommunication[MOVE_EFFECT_BYTE] + 0xD3, certain, 0)) {gBattlescriptCurrInstr++;}
+ if (ChangeStatBuffs(~(0x5f), gBattleCommunication[MOVE_EFFECT_BYTE] + 0xD3, certain, 0)) {gBattlescriptCurrInstr++;}
else
{
BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
BATTLE_STRUCT->animArg2 = 0;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_STAT_DOWN;
+ gBattlescriptCurrInstr = BattleScript_StatDown;
}
break;
case 29: //recharge
gBattleMons[gEffectBank].status2 |= STATUS2_RECHARGE;
- gDisableStructs[gEffectBank].recharge_counter = 2;
+ gDisableStructs[gEffectBank].rechargeCounter = 2;
gLockedMove[gEffectBank] = gCurrentMove;
gBattlescriptCurrInstr++;
break;
@@ -2871,83 +2631,85 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
break;
case 31: //item steal
{
- u8 side = battle_side_get_owner(gBankAttacker);
- if (battle_side_get_owner(gBankAttacker) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400)
+ u8 side = GetBankSide(gBankAttacker);
+ if (GetBankSide(gBankAttacker) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400)
{gBattlescriptCurrInstr++; return;}
- if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400 && (gWishFutureKnock.KnockedOff[side] & gBitTable[gBattlePartyID[gBankAttacker]]))
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400 && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlePartyID[gBankAttacker]]))
{gBattlescriptCurrInstr++; return;}
- if (gBattleMons[gBankTarget].held_item && gBattleMons[gBankTarget].ability_id == ABILITY_STICKY_HOLD)
+ if (gBattleMons[gBankTarget].item && gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD)
{
b_movescr_stack_push_cursor();
- gBattlescriptCurrInstr = BS_NO_ITEMSTEAL;
- gLastUsedAbility = gBattleMons[gBankTarget].ability_id;
- RecordAbility(gBankTarget, gLastUsedAbility);
+ gBattlescriptCurrInstr = BattleScript_NoItemSteal;
+ gLastUsedAbility = gBattleMons[gBankTarget].ability;
+ RecordAbilityBattle(gBankTarget, gLastUsedAbility);
return;
}
- if (gBattleMons[gBankAttacker].held_item)
+ if (gBattleMons[gBankAttacker].item)
{gBattlescriptCurrInstr++; return;}
- if (gBattleMons[gBankTarget].held_item == ITEM_ENIGMA_BERRY)
+ if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY)
{gBattlescriptCurrInstr++; return;}
- if (gBattleMons[gBankTarget].held_item == 0)
+ if (gBattleMons[gBankTarget].item == 0)
{gBattlescriptCurrInstr++; return;}
- CHANGED_HELDITEMS[gBankAttacker] = gLastUsedItem = gBattleMons[gBankTarget].held_item;
- gBattleMons[gBankTarget].held_item = 0;
+ gLastUsedItem = gBattleMons[gBankTarget].item;
+ unk_2000000[gBankAttacker * 2 + 0x160cc] = gLastUsedItem;
+ gBattleMons[gBankTarget].item = 0;
gActiveBank = gBankAttacker;
- bb2_setattributes_in_battle(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem);
- mark_buffer_bank_for_execution(gBankAttacker);
+ EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem);
+ MarkBufferBankForExecution(gBankAttacker);
gActiveBank = gBankTarget;
- bb2_setattributes_in_battle(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].held_item);
- mark_buffer_bank_for_execution(gBankTarget);
+ EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item);
+ MarkBufferBankForExecution(gBankTarget);
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_ITEMSTEAL;
+ gBattlescriptCurrInstr = BattleScript_ItemSteal;
- STORE_CHOICEMOVE(gBankTarget, 0);
+ ewram[gBankTarget * 2 + 0x160e8] = 0;
+ //STORE_CHOICEMOVE(gBankTarget, 0);
}
break;
case 32: //escape prevention
gBattleMons[gBankTarget].status2 |= STATUS2_RECHARGE;
- gDisableStructs[gBankTarget].BankPreventingEscape = gBankAttacker;
+ gDisableStructs[gBankTarget].bankPreventingEscape = gBankAttacker;
gBattlescriptCurrInstr++;
break;
case 33: //nightmare
gBattleMons[gBankTarget].status2 |= STATUS2_NIGHTMARE;
gBattlescriptCurrInstr++;
break;
- case 34:
+ case 34: //ancientpower
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = gUnknown_081D9224;
+ gBattlescriptCurrInstr = BattleScript_AllStatsUp;
return;
case 35: //break free rapidspin
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_RAPIDSPINAWAY;
+ gBattlescriptCurrInstr = BattleScript_RapidSpinAway;
return;
case 36: //paralysis removal
if (gBattleMons[gBankTarget].status1 & STATUS_PARALYSIS)
{
gBattleMons[gBankTarget].status1 &= ~(STATUS_PARALYSIS);
gActiveBank = gBankTarget;
- bb2_setattributes_in_battle(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status);
- mark_buffer_bank_for_execution(gActiveBank);
+ EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1);
+ MarkBufferBankForExecution(gActiveBank);
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_PARALYSISHEALED;
+ gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal;
}
else
{gBattlescriptCurrInstr++; return;}
break;
- case 37: //
+ case 37: //superpower
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = gUnknown_081D93FA;
+ gBattlescriptCurrInstr = BattleScript_AtkDefDown;
return;
- case 38: //recoil plus paralysis
+ case 38: //33% recoil
gBattleMoveDamage = gHP_dealt / 3;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 53: //thrash
if (!(gBattleMons[gEffectBank].status2 & STATUS2_LOCK_CONFUSE))
@@ -2960,32 +2722,33 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{gBattlescriptCurrInstr++; return;}
break;
case 54: //knock off
- if (gBattleMons[gEffectBank].ability_id == ABILITY_STICKY_HOLD)
+ if (gBattleMons[gEffectBank].ability == ABILITY_STICKY_HOLD)
{
- if (gBattleMons[gEffectBank].held_item == 0)
+ if (gBattleMons[gEffectBank].item == 0)
{gBattlescriptCurrInstr++; return;}
gLastUsedAbility = ABILITY_STICKY_HOLD;
- gBattlescriptCurrInstr = BS_STICKYHOLD_ACTIVATES;
- RecordAbility(gEffectBank, ABILITY_STICKY_HOLD);
+ gBattlescriptCurrInstr = BattleScript_NoItemSteal;
+ RecordAbilityBattle(gEffectBank, ABILITY_STICKY_HOLD);
return;
}
- if (gBattleMons[gEffectBank].held_item == 0)
+ if (gBattleMons[gEffectBank].item == 0)
{gBattlescriptCurrInstr++; return;}
else
{
- u8 side = battle_side_get_owner(gEffectBank);
- gLastUsedItem = gBattleMons[gEffectBank].held_item;
- gBattleMons[gEffectBank].held_item = 0;
- gWishFutureKnock.KnockedOff[side] |= gBitTable[gBattlePartyID[gEffectBank]];
+ u8 side = GetBankSide(gEffectBank);
+ gLastUsedItem = gBattleMons[gEffectBank].item;
+ gBattleMons[gEffectBank].item = 0;
+ gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlePartyID[gEffectBank]];
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_KNOCKEDOFF;
+ gBattlescriptCurrInstr = BattleScript_KnockedOff;
- STORE_CHOICEMOVE(gEffectBank, 0);
+ ewram[gEffectBank * 2 + 0x160e8] = 0;
+ //STORE_CHOICEMOVE(gEffectBank, 0);
}
break;
- case 59: //overheat I guess, dont remember
+ case 59: //overheat
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = gUnknown_081D94B0;
+ gBattlescriptCurrInstr = BattleScript_SAtkDown2;
return;
}
}
@@ -4888,11 +4651,11 @@ _0801F3BC:\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
bl b_movescr_stack_push\n\
- ldr r0, _0801F3D0 @ =gUnknown_081D9224\n\
+ ldr r0, _0801F3D0 @ =BattleScript_AllStatsUp\n\
b _0801F5F8\n\
.align 2, 0\n\
_0801F3CC: .4byte gBattlescriptCurrInstr\n\
-_0801F3D0: .4byte gUnknown_081D9224\n\
+_0801F3D0: .4byte BattleScript_AllStatsUp\n\
_0801F3D4:\n\
ldr r4, _0801F3E4 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
@@ -4952,11 +4715,11 @@ _0801F44C:\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
bl b_movescr_stack_push\n\
- ldr r0, _0801F460 @ =gUnknown_081D93FA\n\
+ ldr r0, _0801F460 @ =BattleScript_AtkDefDown\n\
b _0801F5F8\n\
.align 2, 0\n\
_0801F45C: .4byte gBattlescriptCurrInstr\n\
-_0801F460: .4byte gUnknown_081D93FA\n\
+_0801F460: .4byte BattleScript_AtkDefDown\n\
_0801F464:\n\
ldr r4, _0801F494 @ =gBattleMoveDamage\n\
ldr r0, _0801F498 @ =gHP_dealt\n\
@@ -5141,7 +4904,7 @@ _0801F5EC:\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
bl b_movescr_stack_push\n\
- ldr r0, _0801F610 @ =gUnknown_081D94B0\n\
+ ldr r0, _0801F610 @ =BattleScript_SAtkDown2\n\
_0801F5F8:\n\
str r0, [r4]\n\
_0801F5FA:\n\
@@ -5155,11 +4918,12 @@ _0801F5FA:\n\
bx r0\n\
.align 2, 0\n\
_0801F60C: .4byte gBattlescriptCurrInstr\n\
-_0801F610: .4byte gUnknown_081D94B0\n\
+_0801F610: .4byte BattleScript_SAtkDown2\n\
.syntax divided\n");
}
#endif // NONMATCHING
+
static void atk15_seteffectwithchancetarget(void)
{
u32 PercentChance;
@@ -5208,425 +4972,107 @@ static void atk18_status_effect_clear(void)
BATTLE_STRUCT->unk16112 = 0;
}
-//Fuck this, Maybe later
-__attribute__((naked))
static void atk19_faint_pokemon(void)
{
- asm(".syntax unified\n\
-push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x4\n\
- ldr r0, _0801F81C @ =gBattlescriptCurrInstr\n\
- ldr r2, [r0]\n\
- ldrb r1, [r2, 0x2]\n\
- adds r6, r0, 0\n\
- cmp r1, 0\n\
- beq _0801F834\n\
- ldrb r0, [r2, 0x1]\n\
- bl GetBattleBank\n\
- ldr r5, _0801F820 @ =gActiveBank\n\
- strb r0, [r5]\n\
- ldr r2, _0801F824 @ =gHitMarker\n\
- ldr r1, _0801F828 @ =gBitTable\n\
- ldrb r0, [r5]\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldr r1, [r0]\n\
- lsls r1, 28\n\
- ldr r0, [r2]\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0801F7E6\n\
- b _0801FB1C\n\
-_0801F7E6:\n\
- ldr r1, [r6]\n\
- ldrb r4, [r1, 0x3]\n\
- ldrb r0, [r1, 0x4]\n\
- lsls r0, 8\n\
- orrs r4, r0\n\
- ldrb r0, [r1, 0x5]\n\
- lsls r0, 16\n\
- orrs r4, r0\n\
- ldrb r0, [r1, 0x6]\n\
- lsls r0, 24\n\
- orrs r4, r0\n\
- bl b_movescr_stack_pop_cursor\n\
- str r4, [r6]\n\
- ldrb r0, [r5]\n\
- bl GetBankSide\n\
- ldr r1, _0801F82C @ =gSideAffecting\n\
- lsls r0, 24\n\
- lsrs r0, 23\n\
- adds r0, r1\n\
- ldrh r2, [r0]\n\
- ldr r1, _0801F830 @ =0x0000fdff\n\
- ands r1, r2\n\
- strh r1, [r0]\n\
- b _0801FB22\n\
- .align 2, 0\n\
-_0801F81C: .4byte gBattlescriptCurrInstr\n\
-_0801F820: .4byte gActiveBank\n\
-_0801F824: .4byte gHitMarker\n\
-_0801F828: .4byte gBitTable\n\
-_0801F82C: .4byte gSideAffecting\n\
-_0801F830: .4byte 0x0000fdff\n\
-_0801F834:\n\
- ldrb r0, [r2, 0x1]\n\
- cmp r0, 0x1\n\
- bne _0801F85C\n\
- ldr r1, _0801F84C @ =gActiveBank\n\
- ldr r0, _0801F850 @ =gBankAttacker\n\
- ldrb r0, [r0]\n\
- strb r0, [r1]\n\
- ldr r0, _0801F854 @ =gBankTarget\n\
- ldrb r7, [r0]\n\
- ldr r4, _0801F858 @ =gUnknown_081D8C58\n\
- b _0801F86A\n\
- .align 2, 0\n\
-_0801F84C: .4byte gActiveBank\n\
-_0801F850: .4byte gBankAttacker\n\
-_0801F854: .4byte gBankTarget\n\
-_0801F858: .4byte gUnknown_081D8C58\n\
-_0801F85C:\n\
- ldr r1, _0801F954 @ =gActiveBank\n\
- ldr r0, _0801F958 @ =gBankTarget\n\
- ldrb r0, [r0]\n\
- strb r0, [r1]\n\
- ldr r0, _0801F95C @ =gBankAttacker\n\
- ldrb r7, [r0]\n\
- ldr r4, _0801F960 @ =gUnknown_081D8C65\n\
-_0801F86A:\n\
- ldr r0, _0801F964 @ =gAbsentBankFlags\n\
- ldrb r1, [r0]\n\
- ldr r0, _0801F968 @ =gBitTable\n\
- mov r12, r0\n\
- ldr r2, _0801F954 @ =gActiveBank\n\
- mov r8, r2\n\
- ldrb r2, [r2]\n\
- lsls r0, r2, 2\n\
- add r0, r12\n\
- ldr r0, [r0]\n\
- ands r1, r0\n\
- cmp r1, 0\n\
- beq _0801F886\n\
- b _0801FB1C\n\
-_0801F886:\n\
- ldr r3, _0801F96C @ =gBattleMons\n\
- mov r10, r3\n\
- movs r5, 0x58\n\
- mov r9, r5\n\
- mov r0, r9\n\
- muls r0, r2\n\
- add r0, r10\n\
- ldrh r3, [r0, 0x28]\n\
- cmp r3, 0\n\
- beq _0801F89C\n\
- b _0801FB1C\n\
-_0801F89C:\n\
- ldr r2, _0801F970 @ =0x02000000\n\
- lsls r1, r7, 1\n\
- ldr r5, _0801F974 @ =0x000160ac\n\
- adds r0, r1, r5\n\
- adds r0, r2\n\
- strb r3, [r0]\n\
- ldr r0, _0801F978 @ =0x000160ad\n\
- adds r1, r0\n\
- adds r1, r2\n\
- strb r3, [r1]\n\
- lsls r1, r7, 2\n\
- adds r5, 0x54\n\
- adds r0, r1, r5\n\
- adds r0, r2\n\
- strb r3, [r0]\n\
- adds r5, 0x1\n\
- adds r0, r1, r5\n\
- adds r0, r2\n\
- strb r3, [r0]\n\
- adds r5, 0x1\n\
- adds r0, r1, r5\n\
- adds r0, r2\n\
- strb r3, [r0]\n\
- ldr r0, _0801F97C @ =0x00016103\n\
- adds r1, r0\n\
- adds r1, r2\n\
- strb r3, [r1]\n\
- ldr r5, _0801F980 @ =gHitMarker\n\
- mov r1, r8\n\
- ldrb r0, [r1]\n\
- lsls r0, 2\n\
- add r0, r12\n\
- ldr r1, [r0]\n\
- lsls r1, 28\n\
- ldr r0, [r5]\n\
- orrs r0, r1\n\
- str r0, [r5]\n\
- ldr r0, [r6]\n\
- adds r0, 0x7\n\
- bl b_movescr_stack_push\n\
- str r4, [r6]\n\
- mov r2, r8\n\
- ldrb r0, [r2]\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _0801F9B0\n\
- ldr r0, [r5]\n\
- movs r1, 0x80\n\
- lsls r1, 15\n\
- orrs r0, r1\n\
- str r0, [r5]\n\
- ldr r1, _0801F984 @ =gBattleResults\n\
- ldrb r0, [r1]\n\
- cmp r0, 0xFE\n\
- bhi _0801F914\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
-_0801F914:\n\
- mov r0, r9\n\
- muls r0, r7\n\
- add r0, r10\n\
- adds r3, r0, 0\n\
- adds r3, 0x2A\n\
- mov r4, r8\n\
- ldrb r2, [r4]\n\
- mov r0, r9\n\
- muls r0, r2\n\
- add r0, r10\n\
- adds r1, r0, 0\n\
- adds r1, 0x2A\n\
- ldrb r0, [r3]\n\
- ldrb r5, [r1]\n\
- cmp r0, r5\n\
- bls _0801F9CC\n\
- ldrb r1, [r1]\n\
- subs r0, r1\n\
- cmp r0, 0x1D\n\
- ble _0801F990\n\
- ldr r1, _0801F988 @ =gBattlePartyID\n\
- lsls r0, r2, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- movs r0, 0x64\n\
- muls r0, r1\n\
- ldr r1, _0801F98C @ =gPlayerParty\n\
- adds r0, r1\n\
- movs r1, 0x8\n\
- bl AdjustFriendship\n\
- b _0801F9CC\n\
- .align 2, 0\n\
-_0801F954: .4byte gActiveBank\n\
-_0801F958: .4byte gBankTarget\n\
-_0801F95C: .4byte gBankAttacker\n\
-_0801F960: .4byte gUnknown_081D8C65\n\
-_0801F964: .4byte gAbsentBankFlags\n\
-_0801F968: .4byte gBitTable\n\
-_0801F96C: .4byte gBattleMons\n\
-_0801F970: .4byte 0x02000000\n\
-_0801F974: .4byte 0x000160ac\n\
-_0801F978: .4byte 0x000160ad\n\
-_0801F97C: .4byte 0x00016103\n\
-_0801F980: .4byte gHitMarker\n\
-_0801F984: .4byte gBattleResults\n\
-_0801F988: .4byte gBattlePartyID\n\
-_0801F98C: .4byte gPlayerParty\n\
-_0801F990:\n\
- ldr r1, _0801F9A8 @ =gBattlePartyID\n\
- lsls r0, r2, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- movs r0, 0x64\n\
- muls r0, r1\n\
- ldr r1, _0801F9AC @ =gPlayerParty\n\
- adds r0, r1\n\
- movs r1, 0x6\n\
- bl AdjustFriendship\n\
- b _0801F9CC\n\
- .align 2, 0\n\
-_0801F9A8: .4byte gBattlePartyID\n\
-_0801F9AC: .4byte gPlayerParty\n\
-_0801F9B0:\n\
- ldr r1, _0801FAE0 @ =gBattleResults\n\
- ldrb r0, [r1, 0x1]\n\
- cmp r0, 0xFE\n\
- bhi _0801F9BC\n\
- adds r0, 0x1\n\
- strb r0, [r1, 0x1]\n\
-_0801F9BC:\n\
- ldr r2, _0801FAE4 @ =gActiveBank\n\
- ldrb r0, [r2]\n\
- mov r3, r9\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- add r0, r10\n\
- ldrh r0, [r0]\n\
- strh r0, [r1, 0x20]\n\
-_0801F9CC:\n\
- ldr r0, _0801FAE8 @ =gHitMarker\n\
- ldr r0, [r0]\n\
- movs r1, 0x40\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0801FA02\n\
- ldr r6, _0801FAEC @ =gBattleMons\n\
- ldr r0, _0801FAF0 @ =gBankAttacker\n\
- ldrb r0, [r0]\n\
- movs r5, 0x58\n\
- muls r0, r5\n\
- adds r0, r6\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- beq _0801FA02\n\
- ldr r4, _0801FAF4 @ =gBattlescriptCurrInstr\n\
- ldr r0, [r4]\n\
- bl b_movescr_stack_push\n\
- ldr r1, _0801FAF8 @ =gBattleMoveDamage\n\
- adds r0, r7, 0\n\
- muls r0, r5\n\
- adds r0, r6\n\
- ldrh r0, [r0, 0x28]\n\
- str r0, [r1]\n\
- ldr r0, _0801FAFC @ =gUnknown_081D9156\n\
- str r0, [r4]\n\
-_0801FA02:\n\
- ldr r1, _0801FB00 @ =gStatuses3\n\
- ldr r6, _0801FB04 @ =gBankTarget\n\
- ldrb r0, [r6]\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x80\n\
- lsls r1, 7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0801FA1A\n\
- b _0801FB22\n\
-_0801FA1A:\n\
- ldr r0, _0801FAE8 @ =gHitMarker\n\
- ldr r5, [r0]\n\
- movs r0, 0x80\n\
- lsls r0, 17\n\
- ands r5, r0\n\
- cmp r5, 0\n\
- bne _0801FB22\n\
- ldr r4, _0801FAF0 @ =gBankAttacker\n\
- mov r8, r4\n\
- ldrb r0, [r4]\n\
- bl GetBankSide\n\
- adds r4, r0, 0\n\
- ldrb r0, [r6]\n\
- bl GetBankSide\n\
- lsls r4, 24\n\
- lsls r0, 24\n\
- cmp r4, r0\n\
- beq _0801FB22\n\
- ldr r0, _0801FAEC @ =gBattleMons\n\
- mov r9, r0\n\
- mov r1, r8\n\
- ldrb r2, [r1]\n\
- movs r7, 0x58\n\
- adds r3, r2, 0\n\
- muls r3, r7\n\
- adds r0, r3, r0\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- beq _0801FB22\n\
- ldr r0, _0801FB08 @ =gCurrentMove\n\
- ldrh r0, [r0]\n\
- cmp r0, 0xA5\n\
- beq _0801FB22\n\
- ldr r1, _0801FB0C @ =0x02000000\n\
- ldr r4, _0801FB10 @ =0x0001608c\n\
- adds r0, r2, r4\n\
- adds r0, r1\n\
- ldrb r4, [r0]\n\
- adds r0, r4, r3\n\
- mov r6, r9\n\
- adds r6, 0x24\n\
- adds r0, r6\n\
- strb r5, [r0]\n\
- ldr r5, _0801FAF4 @ =gBattlescriptCurrInstr\n\
- ldr r0, [r5]\n\
- bl b_movescr_stack_push\n\
- ldr r0, _0801FB14 @ =gUnknown_081D9468\n\
- str r0, [r5]\n\
- ldr r5, _0801FAE4 @ =gActiveBank\n\
- mov r1, r8\n\
- ldrb r0, [r1]\n\
- strb r0, [r5]\n\
- adds r1, r4, 0\n\
- adds r1, 0x9\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- ldrb r0, [r5]\n\
- muls r0, r7\n\
- adds r0, r6\n\
- adds r0, r4\n\
- str r0, [sp]\n\
- movs r0, 0\n\
- movs r2, 0\n\
- movs r3, 0x1\n\
- bl EmitSetAttributes\n\
- ldrb r0, [r5]\n\
- bl MarkBufferBankForExecution\n\
- ldr r1, _0801FB18 @ =gBattleTextBuff1\n\
- movs r0, 0xFD\n\
- strb r0, [r1]\n\
- movs r0, 0x2\n\
- strb r0, [r1, 0x1]\n\
- lsls r4, 1\n\
- mov r2, r8\n\
- ldrb r0, [r2]\n\
- muls r0, r7\n\
- adds r0, r4, r0\n\
- mov r2, r9\n\
- adds r2, 0xC\n\
- adds r0, r2\n\
- ldrh r0, [r0]\n\
- strb r0, [r1, 0x2]\n\
- mov r3, r8\n\
- ldrb r0, [r3]\n\
- muls r0, r7\n\
- adds r4, r0\n\
- adds r4, r2\n\
- ldrh r0, [r4]\n\
- lsrs r0, 8\n\
- strb r0, [r1, 0x3]\n\
- movs r0, 0xFF\n\
- strb r0, [r1, 0x4]\n\
- b _0801FB22\n\
- .align 2, 0\n\
-_0801FAE0: .4byte gBattleResults\n\
-_0801FAE4: .4byte gActiveBank\n\
-_0801FAE8: .4byte gHitMarker\n\
-_0801FAEC: .4byte gBattleMons\n\
-_0801FAF0: .4byte gBankAttacker\n\
-_0801FAF4: .4byte gBattlescriptCurrInstr\n\
-_0801FAF8: .4byte gBattleMoveDamage\n\
-_0801FAFC: .4byte gUnknown_081D9156\n\
-_0801FB00: .4byte gStatuses3\n\
-_0801FB04: .4byte gBankTarget\n\
-_0801FB08: .4byte gCurrentMove\n\
-_0801FB0C: .4byte 0x02000000\n\
-_0801FB10: .4byte 0x0001608c\n\
-_0801FB14: .4byte gUnknown_081D9468\n\
-_0801FB18: .4byte gBattleTextBuff1\n\
-_0801FB1C:\n\
- ldr r0, [r6]\n\
- adds r0, 0x7\n\
- str r0, [r6]\n\
-_0801FB22:\n\
- add sp, 0x4\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided\n");
+ u8 *r4;
+
+ if (gBattlescriptCurrInstr[2] != 0)
+ {
+ gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ if (gHitMarker & HITMARKER_FAINTED(gActiveBank))
+ {
+ r4 = BSScriptReadPtr(gBattlescriptCurrInstr + 3);
+
+ b_movescr_stack_pop_cursor();
+ gBattlescriptCurrInstr = r4;
+ gSideAffecting[GetBankSide(gActiveBank)] &= ~SIDE_STATUS_SPIKES_DAMAGED;
+ }
+ else
+ {
+ gBattlescriptCurrInstr += 7;
+ }
+ }
+ else
+ {
+ u8 bank;
+
+ if (gBattlescriptCurrInstr[1] == 1)
+ {
+ gActiveBank = gBankAttacker;
+ bank = gBankTarget;
+ r4 = gUnknown_081D8C58;
+ }
+ else
+ {
+ gActiveBank = gBankTarget;
+ bank = gBankAttacker;
+ r4 = gUnknown_081D8C65;
+ }
+ if (!(gAbsentBankFlags & gBitTable[gActiveBank])
+ && gBattleMons[gActiveBank].hp == 0)
+ {
+ ewram[0x160AC + bank * 2 + 0] = 0;
+ ewram[0x160AC + bank * 2 + 1] = 0;
+ ewram[0x16100 + bank * 4 + 0] = 0;
+ ewram[0x16100 + bank * 4 + 1] = 0;
+ ewram[0x16100 + bank * 4 + 2] = 0;
+ ewram[0x16100 + bank * 4 + 3] = 0;
+
+ gHitMarker |= HITMARKER_FAINTED(gActiveBank);
+ b_movescr_stack_push(gBattlescriptCurrInstr + 7);
+ gBattlescriptCurrInstr = r4;
+ if (GetBankSide(gActiveBank) == 0)
+ {
+ gHitMarker |= HITMARKER_x400000;
+ if (gBattleResults.playerFaintCounter < 0xFF)
+ gBattleResults.playerFaintCounter++;
+ if (gBattleMons[bank].level > gBattleMons[gActiveBank].level)
+ {
+ if (gBattleMons[bank].level - gBattleMons[gActiveBank].level > 0x1D)
+ AdjustFriendship(&gPlayerParty[gBattlePartyID[gActiveBank]], 8);
+ else
+ AdjustFriendship(&gPlayerParty[gBattlePartyID[gActiveBank]], 6);
+ }
+ }
+ else
+ {
+ if (gBattleResults.opponentFaintCounter < 0xFF)
+ gBattleResults.opponentFaintCounter++;
+ gBattleResults.lastOpponentSpecies = gBattleMons[gActiveBank].species;
+ }
+ if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBankAttacker].hp != 0)
+ {
+ b_movescr_stack_push(gBattlescriptCurrInstr);
+ gBattleMoveDamage = gBattleMons[bank].hp;
+ gBattlescriptCurrInstr = gUnknown_081D9156;
+ }
+ if ((gStatuses3[gBankTarget] & STATUS3_GRUDGE)
+ && !(gHitMarker & HITMARKER_GRUDGE)
+ && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)
+ && gBattleMons[gBankAttacker].hp != 0
+ && gCurrentMove != MOVE_STRUGGLE)
+ {
+ u8 moveIndex = ewram[0x1608C + gBankAttacker];
+
+ gBattleMons[gBankAttacker].pp[moveIndex] = 0;
+ b_movescr_stack_push(gBattlescriptCurrInstr);
+ gBattlescriptCurrInstr = gUnknown_081D9468;
+ gActiveBank = gBankAttacker;
+ EmitSetAttributes(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBank].pp[moveIndex]);
+ MarkBufferBankForExecution(gActiveBank);
+
+ gBattleTextBuff1[0] = 0xFD;
+ gBattleTextBuff1[1] = 2;
+ gBattleTextBuff1[2] = gBattleMons[gBankAttacker].moves[moveIndex];
+ gBattleTextBuff1[3] = gBattleMons[gBankAttacker].moves[moveIndex] >> 8;
+ gBattleTextBuff1[4] = EOS;
+ }
+ }
+ else
+ {
+ gBattlescriptCurrInstr += 7;
+ }
+ }
}
static void atk1A_faint_animation(void)
@@ -5832,13 +5278,14 @@ static void atk23_getexp(void)
else
{
BATTLE_STRUCT->atk23StateTracker++;
- unk_2000000[0x16113] |= gBitTable[gBattlePartyID[gBank1]];
+ ((u8*)ewram)[0x16113] |= gBitTable[gBattlePartyID[gBank1]];
}
break;
case 1: //calculate experience points to redistribute
{
- int via_sent_in = 0, i;
+ int via_sent_in = 0;
u16 calculatedExp;
+ int i;
for (i = 0; i < 6; i++)
{
u16 item;
@@ -5894,15 +5341,14 @@ static void atk23_getexp(void)
BATTLE_STRUCT->sentInPokes >>= 1;
tracker = &BATTLE_STRUCT->atk23StateTracker;
zero = 0;
- goto LABEL;
+ *tracker = 5; //increment looper
+ gBattleMoveDamage = zero; //used for exp
}
else if (GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_LEVEL) == 100)
{
-
BATTLE_STRUCT->sentInPokes >>= 1;
tracker = &BATTLE_STRUCT->atk23StateTracker;
zero = 0;
- LABEL:
*tracker = 5; //increment looper
gBattleMoveDamage = zero; //used for exp
}
@@ -5937,7 +5383,9 @@ static void atk23_getexp(void)
stringID = 0x14A;
}
else
- stringID = 0x149;
+ {
+ stringID = 0x149;
+ }
//get exp getter bank
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
@@ -5962,12 +5410,13 @@ static void atk23_getexp(void)
gBattleTextBuff1[3] = BATTLE_STRUCT->expGetterID;
gBattleTextBuff1[4] = 0xFF;
- //buffer 'gained' or 'gained a boosted'
- gBattleTextBuff2[0] = 0xFD;
- gBattleTextBuff2[1] = 0;
- gBattleTextBuff2[2] = sBYTE0_32(stringID);
- gBattleTextBuff2[3] = sBYTE1_32(stringID);
- gBattleTextBuff2[4] = 0xFF;
+ //buffer 'gained' or 'gained a boosted'
+ gBattleTextBuff2[0] = 0xFD;
+ gBattleTextBuff2[1] = 0;
+ gBattleTextBuff2[2] = stringID;
+ stringID = (stringID >> 8) & (0xFF); //this does not want to cooperate
+ gBattleTextBuff2[3] = stringID;
+ gBattleTextBuff2[4] = 0xFF;
//buffer exp number
gBattleTextBuff3[0] = 0xFD;
@@ -5994,7 +5443,8 @@ static void atk23_getexp(void)
gBattleBufferB[BATTLE_STRUCT->expGetterBank][0] = 0;
if (GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_HP) && GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_LEVEL) != 100)
{
- BATTLE_STRUCT->beforeLvlUp[0] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_MAX_HP); //doesnt match
+ // Doesn't match.
+ BATTLE_STRUCT->beforeLvlUp[0] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_MAX_HP);
BATTLE_STRUCT->beforeLvlUp[1] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_ATK);
BATTLE_STRUCT->beforeLvlUp[2] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_DEF);
BATTLE_STRUCT->beforeLvlUp[3] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_SPD);
@@ -8022,9 +7472,39 @@ _080214AE:\n\
#ifdef NONMATCHING
static void atk46_playanimation2(void)
{
-
+ u8 arg1;
+ u8* arg2;
+ u16* arg3;
+ u32 something;
+
+ arg1 = BSScriptRead8(gBattlescriptCurrInstr + 1);
+ gActiveBank = GetBattleBank(arg1);
+ arg2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
+ arg3 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6);
+
+ if (*arg2 == 1 || *arg2 == 0x11 || *arg2 == 2)
+ {
+ EmitBattleAnimation(0, *arg2, *arg3);
+ MarkBufferBankForExecution(gActiveBank);
+ gBattlescriptCurrInstr += 10;
+ return;
+ }
+ if ((gHitMarker & 0x80))
+ {
+ something = (u32)(gBattlescriptCurrInstr + 10);
+ }
+ else
+ {
+ u8 yeah = *arg2 - 10;
+ if (yeah < 4 || (gStatuses3[gActiveBank] & 0x000400C0) == 0)
+ {
+ EmitBattleAnimation(0, *arg2, *arg3);
+ MarkBufferBankForExecution(gActiveBank);
+ }
+ something = (u32)(gBattlescriptCurrInstr + 10);
+ }
+ gBattlescriptCurrInstr = (u8*)something;
}
-
#else
__attribute__((naked))
static void atk46_playanimation2(void)
@@ -10122,7 +9602,7 @@ static void atk4E_switchin_anim(void)
gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
if (GetBankSide(gActiveBank) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER)))
{
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
}
gAbsentBankFlags &= ~(gBitTable[gActiveBank]);
EmitSendOutPoke(0, gBattlePartyID[gActiveBank], BSScriptRead8(gBattlescriptCurrInstr + 2));
@@ -17834,7 +17314,7 @@ void atkEF_pokeball_catch_calculation(void)
ball_multiplier = 10;
break;
case ITEM_REPEAT_BALL:
- if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1))
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1))
ball_multiplier = 30;
else
ball_multiplier = 10;
@@ -17920,11 +17400,11 @@ static void atkF0_copy_caught_poke(void)
static void atkF1_setpoke_as_caught(void)
{
- if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1))
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1))
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
else
{
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 3);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 3);
if (gBattleMons[gBankTarget].species == SPECIES_UNOWN)
gSaveBlock2.pokedex.unownPersonality = gBattleMons[gBankTarget].personality;
if (gBattleMons[gBankTarget].species == SPECIES_SPINDA) //else if
diff --git a/src/battle_7.c b/src/battle/battle_7.c
index cf3a3522e..ad96510cf 100644
--- a/src/battle_7.c
+++ b/src/battle/battle_7.c
@@ -48,8 +48,8 @@ extern struct MusicPlayerInfo gMPlay_BGM;
extern u32 gBitTable[];
extern u16 gBattleTypeFlags;
extern u8 gBattleMonForms[];
-extern u8 gBattleAnimPlayerMonIndex;
-extern u8 gBattleAnimEnemyMonIndex;
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
extern void (*gAnimScriptCallback)(void);
extern u8 gAnimScriptActive;
extern const u8 *const gBattleAnims_Unknown1[];
@@ -78,7 +78,7 @@ extern void sub_80440EC();
extern void sub_804777C();
extern void sub_8141828();
extern u8 sub_8077ABC();
-extern u8 sub_8078874(u8);
+extern u8 AnimBankSpriteExists(u8);
extern u8 sub_8077F68(u8);
extern u8 sub_8077F7C(u8);
extern void sub_8094958(void);
@@ -185,8 +185,8 @@ bool8 move_anim_start_t3(u8 a, u8 b, u8 c, u8 d, u16 e)
sub_80324E0(a);
return TRUE;
}
- gBattleAnimPlayerMonIndex = b;
- gBattleAnimEnemyMonIndex = c;
+ gBattleAnimBankAttacker = b;
+ gBattleAnimBankTarget = c;
ewram17840.unk0 = e;
DoMoveAnim(gBattleAnims_Unknown1, d, 0);
taskId = CreateTask(sub_80315E8, 10);
@@ -225,8 +225,8 @@ void move_anim_start_t4(u8 a, u8 b, u8 c, u8 d)
{
u8 taskId;
- gBattleAnimPlayerMonIndex = b;
- gBattleAnimEnemyMonIndex = c;
+ gBattleAnimBankAttacker = b;
+ gBattleAnimBankTarget = c;
DoMoveAnim(gBattleAnims_Unknown2, d, 0);
taskId = CreateTask(sub_80316CC, 10);
gTasks[taskId].data[0] = a;
@@ -301,16 +301,16 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
r7);
paletteOffset = 0x100 + b * 16;
if (ewram17800[b].transformedSpecies == 0)
- lzPaletteData = pokemon_get_pal(pkmn);
+ lzPaletteData = GetMonSpritePal(pkmn);
else
- lzPaletteData = species_and_otid_get_pal(species, otId, personalityValue);
- sub_800D238(lzPaletteData, ewram);
+ lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
+ LZDecompressWram(lzPaletteData, ewram);
LoadPalette(ewram, paletteOffset, 0x20);
LoadPalette(ewram, 0x80 + b * 16, 0x20);
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + b * 16;
- sub_800D238(lzPaletteData, ewram + 0x16400);
+ LZDecompressWram(lzPaletteData, ewram + 0x16400);
LoadPalette(ewram + 0x16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
if (ewram17800[b].transformedSpecies != 0)
@@ -353,16 +353,16 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
r7);
paletteOffset = 0x100 + b * 16;
if (ewram17800[b].transformedSpecies == 0)
- lzPaletteData = pokemon_get_pal(pkmn);
+ lzPaletteData = GetMonSpritePal(pkmn);
else
- lzPaletteData = species_and_otid_get_pal(species, otId, personalityValue);
- sub_800D238(lzPaletteData, ewram);
+ lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
+ LZDecompressWram(lzPaletteData, ewram);
LoadPalette(ewram, paletteOffset, 0x20);
LoadPalette(ewram, 0x80 + b * 16, 0x20);
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + b * 16;
- sub_800D238(lzPaletteData, ewram + 0x16400);
+ LZDecompressWram(lzPaletteData, ewram + 0x16400);
LoadPalette(ewram + 0x16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
if (ewram17800[b].transformedSpecies != 0)
@@ -506,7 +506,7 @@ bool8 sub_8031C30(u8 a)
void load_gfxc_health_bar(void)
{
- sub_800D238(gUnknown_08D09C48, (void *)0x02000000);
+ LZDecompressWram(gUnknown_08D09C48, (void *)0x02000000);
}
u8 battle_load_something(u8 *pState, u8 *b)
@@ -690,14 +690,14 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
dst = (void *)(VRAM + 0x10000 + gSprites[gObjectBankIDs[a]].oam.tileNum * 32);
DmaCopy32(3, src, dst, 0x800);
paletteOffset = 0x100 + a * 16;
- lzPaletteData = species_and_otid_get_pal(species, otId, personalityValue);
- sub_800D238(lzPaletteData, ewram);
+ lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
+ LZDecompressWram(lzPaletteData, ewram);
LoadPalette(ewram, paletteOffset, 32);
if (species == SPECIES_CASTFORM)
{
u16 *paletteSrc = (u16 *)(ewram + 0x16400);
- sub_800D238(lzPaletteData, paletteSrc);
+ LZDecompressWram(lzPaletteData, paletteSrc);
LoadPalette(paletteSrc + gBattleMonForms[b] * 16, paletteOffset, 32);
}
BlendPalette(paletteOffset, 16, 6, 0x7FFF);
@@ -846,7 +846,7 @@ void sub_80326EC(u8 a)
for (i = 0; i < gNoOfAllBanks; i++)
{
- if (sub_8078874(i) != 0)
+ if (AnimBankSpriteExists(i) != 0)
{
gSprites[gObjectBankIDs[i]].oam.affineMode = a;
if (a == 0)
@@ -884,7 +884,7 @@ void sub_80328A4(struct Sprite *sprite)
u8 r4 = sprite->data0;
struct Sprite *r7 = &gSprites[gObjectBankIDs[r4]];
- if (!r7->inUse || sub_8078874(r4) == 0)
+ if (!r7->inUse || AnimBankSpriteExists(r4) == 0)
{
sprite->callback = sub_8032978;
return;
diff --git a/src/battle_ai.c b/src/battle/battle_ai.c
index 0e20c6b05..1869bbe36 100644
--- a/src/battle_ai.c
+++ b/src/battle/battle_ai.c
@@ -1273,7 +1273,7 @@ static void BattleAICmd_if_arg_not_equal(void)
static void BattleAICmd_if_would_go_first(void)
{
- if (b_first_side(gBankAttacker, gBankTarget, 1) == gAIScriptPtr[1])
+ if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, 1) == gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
@@ -1281,7 +1281,7 @@ static void BattleAICmd_if_would_go_first(void)
static void BattleAICmd_if_would_not_go_first(void)
{
- if (b_first_side(gBankAttacker, gBankTarget, 1) != gAIScriptPtr[1])
+ if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, 1) != gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
diff --git a/src/battle_anim.c b/src/battle/battle_anim.c
index 6bd98099a..111d72813 100644
--- a/src/battle_anim.c
+++ b/src/battle/battle_anim.c
@@ -37,8 +37,8 @@ EWRAM_DATA u8 gMonAnimTaskIdArray[2] = {0};
EWRAM_DATA u8 gUnknown_0202F7C4 = 0;
EWRAM_DATA u8 gUnknown_0202F7C5 = 0;
EWRAM_DATA u16 gAnimMoveIndex = 0; // set but unused.
-EWRAM_DATA u8 gBattleAnimPlayerMonIndex = 0;
-EWRAM_DATA u8 gBattleAnimEnemyMonIndex = 0;
+EWRAM_DATA u8 gBattleAnimBankAttacker = 0;
+EWRAM_DATA u8 gBattleAnimBankTarget = 0;
EWRAM_DATA u16 gUnknown_0202F7CA[4] = {0};
EWRAM_DATA u8 gUnknown_0202F7D2 = 0;
extern u16 gUnknown_030041B4;
@@ -201,15 +201,15 @@ void battle_anim_clear_some_data(void)
gUnknown_0202F7C4 = 0;
gUnknown_0202F7C5 = 0;
gAnimMoveIndex = 0;
- gBattleAnimPlayerMonIndex = 0;
- gBattleAnimEnemyMonIndex = 0;
+ gBattleAnimBankAttacker = 0;
+ gBattleAnimBankTarget = 0;
gUnknown_0202F7D2 = 0;
}
void ExecuteMoveAnim(u16 move)
{
- gBattleAnimPlayerMonIndex = gBankAttacker;
- gBattleAnimEnemyMonIndex = gBankTarget;
+ gBattleAnimBankAttacker = gBankAttacker;
+ gBattleAnimBankTarget = gBankTarget;
DoMoveAnim(gBattleAnims_Moves, move, 1);
}
@@ -396,7 +396,7 @@ static void ScriptCmd_sprite(void)
r4 -= 0x40;
else
r4 = -r4;
- _r0 = sub_8079E90(gBattleAnimEnemyMonIndex);
+ _r0 = sub_8079E90(gBattleAnimBankTarget);
r1 = r4;
}
@@ -407,15 +407,15 @@ static void ScriptCmd_sprite(void)
r4 -= 0x40;
else
r4 = -r4;
- _r0 = sub_8079E90(gBattleAnimPlayerMonIndex);
+ _r0 = sub_8079E90(gBattleAnimBankAttacker);
r1 = r4;
}
r6 = _r0 + r1;
if ((s16)r6 < 3)
r6 = 3;
- r4 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2);
- r2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 3);
+ r4 = sub_8077ABC(gBattleAnimBankTarget, 2);
+ r2 = sub_8077ABC(gBattleAnimBankTarget, 3);
CreateSpriteAndAnimate(r7, r4, r2, r6);
gAnimVisualTaskCount++;
}
@@ -485,10 +485,10 @@ _08075B34:\n\
_08075B36:\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
- ldr r0, _08075B40 @ =gBattleAnimEnemyMonIndex\n\
+ ldr r0, _08075B40 @ =gBattleAnimBankTarget\n\
b _08075B56\n\
.align 2, 0\n\
-_08075B40: .4byte gBattleAnimEnemyMonIndex\n\
+_08075B40: .4byte gBattleAnimBankTarget\n\
_08075B44:\n\
cmp r4, 0x3F\n\
bls _08075B4E\n\
@@ -500,7 +500,7 @@ _08075B4E:\n\
_08075B50:\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
- ldr r0, _08075BAC @ =gBattleAnimPlayerMonIndex\n\
+ ldr r0, _08075BAC @ =gBattleAnimBankAttacker\n\
_08075B56:\n\
ldrb r0, [r0]\n\
bl sub_8079E90\n\
@@ -517,7 +517,7 @@ _08075B56:\n\
bgt _08075B74\n\
movs r6, 0x3\n\
_08075B74:\n\
- ldr r5, _08075BB0 @ =gBattleAnimEnemyMonIndex\n\
+ ldr r5, _08075BB0 @ =gBattleAnimBankTarget\n\
ldrb r0, [r5]\n\
movs r1, 0x2\n\
bl sub_8077ABC\n\
@@ -543,8 +543,8 @@ _08075B74:\n\
pop {r0}\n\
bx r0\n\
.align 2, 0\n\
-_08075BAC: .4byte gBattleAnimPlayerMonIndex\n\
-_08075BB0: .4byte gBattleAnimEnemyMonIndex\n\
+_08075BAC: .4byte gBattleAnimBankAttacker\n\
+_08075BB0: .4byte gBattleAnimBankTarget\n\
_08075BB4: .4byte gAnimVisualTaskCount\n\
.syntax divided\n");
}
@@ -686,10 +686,10 @@ static void ScriptCmd_monbg(void)
else if (r6 == 1)
r6 = 3;
if (r6 == 0 || r6 == 2)
- r5 = gBattleAnimPlayerMonIndex;
+ r5 = gBattleAnimBankAttacker;
else
- r5 = gBattleAnimEnemyMonIndex;
- if (b_side_obj__get_some_boolean(r5))
+ r5 = gBattleAnimBankTarget;
+ if (IsAnimBankSpriteVisible(r5))
{
r0 = GetBankIdentity(r5);
r0 += 0xFF;
@@ -719,7 +719,7 @@ static void ScriptCmd_monbg(void)
}
r5 ^= 2;
- if (r6 > 1 && b_side_obj__get_some_boolean(r5))
+ if (r6 > 1 && IsAnimBankSpriteVisible(r5))
{
r0 = GetBankIdentity(r5);
r0 += 0xFF;
@@ -751,20 +751,20 @@ static void ScriptCmd_monbg(void)
}
#ifdef NONMATCHING
-bool8 b_side_obj__get_some_boolean(u8 a)
+bool8 IsAnimBankSpriteVisible(u8 a)
{
- if (IsContest() != 0)
+ if (IsContest())
{
- if (a == gBattleAnimPlayerMonIndex)
+ if (a == gBattleAnimBankAttacker)
return TRUE;
else
return FALSE;
}
- if (sub_8078874(a) == 0)
+ if (!AnimBankSpriteExists(a))
return FALSE;
- if (IsContest() != 0)
+ if (IsContest())
return TRUE; // this line wont ever be reached.
- if ((EWRAM_17800[a].unk0 & 1) == 0)
+ if (!(EWRAM_17800[a].unk0 & 1))
return TRUE;
if (gSprites[gObjectBankIDs[a]].invisible)
return FALSE;
@@ -772,7 +772,7 @@ bool8 b_side_obj__get_some_boolean(u8 a)
}
#else
__attribute__((naked))
-bool8 b_side_obj__get_some_boolean(u8 a)
+bool8 IsAnimBankSpriteVisible(u8 a)
{
asm(".syntax unified\n\
push {r4,r5,lr}\n\
@@ -783,16 +783,16 @@ bool8 b_side_obj__get_some_boolean(u8 a)
lsls r0, 24\n\
cmp r0, 0\n\
beq _08075FDC\n\
- ldr r0, _08075FD8 @ =gBattleAnimPlayerMonIndex\n\
+ ldr r0, _08075FD8 @ =gBattleAnimBankAttacker\n\
ldrb r0, [r0]\n\
cmp r4, r0\n\
beq _0807601C\n\
b _0807602C\n\
.align 2, 0\n\
-_08075FD8: .4byte gBattleAnimPlayerMonIndex\n\
+_08075FD8: .4byte gBattleAnimBankAttacker\n\
_08075FDC:\n\
adds r0, r4, 0\n\
- bl sub_8078874\n\
+ bl AnimBankSpriteExists\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _0807602C\n\
@@ -1096,9 +1096,9 @@ static void ScriptCmd_clearmonbg(void)
else if (r4 == 1)
r4 = 3;
if (r4 == 0 || r4 == 2)
- r5 = gBattleAnimPlayerMonIndex;
+ r5 = gBattleAnimBankAttacker;
else
- r5 = gBattleAnimEnemyMonIndex;
+ r5 = gBattleAnimBankTarget;
if (gMonAnimTaskIdArray[0] != 0xFF)
gSprites[gObjectBankIDs[r5]].invisible = FALSE;
if (r4 > 1 && gMonAnimTaskIdArray[1] != 0xFF)
@@ -1155,10 +1155,10 @@ static void ScriptCmd_monbg_22(void)
else if (r5 == 1)
r5 = 3;
if (r5 == 0 || r5 == 2)
- r4 = gBattleAnimPlayerMonIndex;
+ r4 = gBattleAnimBankAttacker;
else
- r4 = gBattleAnimEnemyMonIndex;
- if (b_side_obj__get_some_boolean(r4))
+ r4 = gBattleAnimBankTarget;
+ if (IsAnimBankSpriteVisible(r4))
{
r0 = GetBankIdentity(r4);
r0 += 0xFF;
@@ -1170,7 +1170,7 @@ static void ScriptCmd_monbg_22(void)
gSprites[gObjectBankIDs[r4]].invisible = FALSE;
}
r4 ^= 2;
- if (r5 > 1 && b_side_obj__get_some_boolean(r4))
+ if (r5 > 1 && IsAnimBankSpriteVisible(r4))
{
r0 = GetBankIdentity(r4);
r0 += 0xFF;
@@ -1197,12 +1197,12 @@ static void ScriptCmd_clearmonbg_23(void)
else if (r5 == 1)
r5 = 3;
if (r5 == 0 || r5 == 2)
- r6 = gBattleAnimPlayerMonIndex;
+ r6 = gBattleAnimBankAttacker;
else
- r6 = gBattleAnimEnemyMonIndex;
- if (b_side_obj__get_some_boolean(r6))
+ r6 = gBattleAnimBankTarget;
+ if (IsAnimBankSpriteVisible(r6))
gSprites[gObjectBankIDs[r6]].invisible = FALSE;
- if (r5 > 1 && b_side_obj__get_some_boolean(r6 ^ 2))
+ if (r5 > 1 && IsAnimBankSpriteVisible(r6 ^ 2))
gSprites[gObjectBankIDs[r6 ^ 2]].invisible = FALSE;
else
r5 = 0;
@@ -1228,9 +1228,9 @@ static void sub_80769A4(u8 taskId)
r5 = 0;
else
r5 = 1;
- if (b_side_obj__get_some_boolean(r4))
+ if (IsAnimBankSpriteVisible(r4))
sub_8076464(r5);
- if (gTasks[taskId].data[0] > 1 && b_side_obj__get_some_boolean(r4 ^ 2))
+ if (gTasks[taskId].data[0] > 1 && IsAnimBankSpriteVisible(r4 ^ 2))
sub_8076464(r5 ^ 1);
DestroyTask(taskId);
}
@@ -1371,7 +1371,7 @@ static void ScriptCmd_fadetobg_25(void)
taskId = CreateTask(task_p5_load_battle_screen_elements, 5);
if (IsContest() != 0)
gTasks[taskId].data[0] = r6;
- else if (GetBankSide(gBattleAnimEnemyMonIndex) == 0)
+ else if (GetBankSide(gBattleAnimBankTarget) == 0)
gTasks[taskId].data[0] = r7;
else
gTasks[taskId].data[0] = r8;
@@ -1422,7 +1422,7 @@ static void sub_8076DB8(u16 a)
void *dmaSrc;
void *dmaDest;
- sub_800D238(tilemap, IsContest() ? EWRAM_14800 : EWRAM_18000);
+ LZDecompressWram(tilemap, IsContest() ? EWRAM_14800 : EWRAM_18000);
sub_80763FC(sub_80789BC(), IsContest() ? EWRAM_14800 : EWRAM_18000, 0x100, 0);
dmaSrc = IsContest() ? EWRAM_14800 : EWRAM_18000;
dmaDest = (void *)(VRAM + 0xD000);
@@ -1493,16 +1493,16 @@ static void ScriptCmd_changebg(void)
/*
s8 sub_8076F98(s8 a)
{
- if (!IsContest() && (EWRAM_17810[gBattleAnimPlayerMonIndex].unk0 & 0x10))
+ if (!IsContest() && (EWRAM_17810[gBattleAnimBankAttacker].unk0 & 0x10))
{
- a = GetBankSide(gBattleAnimPlayerMonIndex) ? 0xC0 : 0x3F;
+ a = GetBankSide(gBattleAnimBankAttacker) ? 0xC0 : 0x3F;
}
//_08076FDC
else
{
if (IsContest())
{
- if (gBattleAnimPlayerMonIndex == gBattleAnimEnemyMonIndex && gBattleAnimPlayerMonIndex == 2
+ if (gBattleAnimBankAttacker == gBattleAnimBankTarget && gBattleAnimBankAttacker == 2
&& a == 0x3F)
{
//jump to _0807707A
@@ -1514,9 +1514,9 @@ s8 sub_8076F98(s8 a)
//_08077004
else
{
- if (GetBankSide(gBattleAnimPlayerMonIndex) == 0)
+ if (GetBankSide(gBattleAnimBankAttacker) == 0)
{
- if (GetBankSide(gBattleAnimEnemyMonIndex) == 0)
+ if (GetBankSide(gBattleAnimBankTarget) == 0)
}
//_08077042
else
@@ -1540,7 +1540,7 @@ s8 sub_8076F98(s8 a)
lsls r0, 24\n\
cmp r0, 0\n\
bne _08076FDC\n\
- ldr r0, _08076FD4 @ =gBattleAnimPlayerMonIndex\n\
+ ldr r0, _08076FD4 @ =gBattleAnimBankAttacker\n\
ldrb r2, [r0]\n\
lsls r0, r2, 1\n\
adds r0, r2\n\
@@ -1561,15 +1561,15 @@ s8 sub_8076F98(s8 a)
movs r4, 0x3F\n\
b _0807706E\n\
.align 2, 0\n\
-_08076FD4: .4byte gBattleAnimPlayerMonIndex\n\
+_08076FD4: .4byte gBattleAnimBankAttacker\n\
_08076FD8: .4byte 0x02017810\n\
_08076FDC:\n\
bl IsContest\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _08077004\n\
- ldr r0, _08076FFC @ =gBattleAnimPlayerMonIndex\n\
- ldr r1, _08077000 @ =gBattleAnimEnemyMonIndex\n\
+ ldr r0, _08076FFC @ =gBattleAnimBankAttacker\n\
+ ldr r1, _08077000 @ =gBattleAnimBankTarget\n\
ldrb r0, [r0]\n\
ldrb r1, [r1]\n\
cmp r0, r1\n\
@@ -1580,16 +1580,16 @@ _08076FDC:\n\
beq _0807707A\n\
b _08077068\n\
.align 2, 0\n\
-_08076FFC: .4byte gBattleAnimPlayerMonIndex\n\
-_08077000: .4byte gBattleAnimEnemyMonIndex\n\
+_08076FFC: .4byte gBattleAnimBankAttacker\n\
+_08077000: .4byte gBattleAnimBankTarget\n\
_08077004:\n\
- ldr r0, _0807702C @ =gBattleAnimPlayerMonIndex\n\
+ ldr r0, _0807702C @ =gBattleAnimBankAttacker\n\
ldrb r0, [r0]\n\
bl GetBankSide\n\
lsls r0, 24\n\
cmp r0, 0\n\
bne _08077042\n\
- ldr r0, _08077030 @ =gBattleAnimEnemyMonIndex\n\
+ ldr r0, _08077030 @ =gBattleAnimBankTarget\n\
ldrb r0, [r0]\n\
bl GetBankSide\n\
lsls r0, 24\n\
@@ -1602,8 +1602,8 @@ _08077004:\n\
movs r4, 0xC0\n\
b _0807706E\n\
.align 2, 0\n\
-_0807702C: .4byte gBattleAnimPlayerMonIndex\n\
-_08077030: .4byte gBattleAnimEnemyMonIndex\n\
+_0807702C: .4byte gBattleAnimBankAttacker\n\
+_08077030: .4byte gBattleAnimBankTarget\n\
_08077034:\n\
movs r0, 0x40\n\
negs r0, r0\n\
@@ -1613,7 +1613,7 @@ _08077034:\n\
lsls r0, 24\n\
b _0807706C\n\
_08077042:\n\
- ldr r0, _08077064 @ =gBattleAnimEnemyMonIndex\n\
+ ldr r0, _08077064 @ =gBattleAnimBankTarget\n\
ldrb r0, [r0]\n\
bl GetBankSide\n\
lsls r0, 24\n\
@@ -1629,7 +1629,7 @@ _08077042:\n\
movs r4, 0x3F\n\
b _0807706E\n\
.align 2, 0\n\
-_08077064: .4byte gBattleAnimEnemyMonIndex\n\
+_08077064: .4byte gBattleAnimBankTarget\n\
_08077068:\n\
lsls r0, r4, 24\n\
negs r0, r0\n\
@@ -1661,16 +1661,16 @@ _08077088:\n\
s8 sub_8077094(s8 a)
{
- if (!IsContest() && (EWRAM_17810[gBattleAnimPlayerMonIndex].unk0 & 0x10))
+ if (!IsContest() && (EWRAM_17810[gBattleAnimBankAttacker].unk0 & 0x10))
{
- if (GetBankSide(gBattleAnimPlayerMonIndex) != 0)
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
a = 0x3F;
else
a = 0xC0;
}
else
{
- if (GetBankSide(gBattleAnimPlayerMonIndex) != 0 || IsContest() != 0)
+ if (GetBankSide(gBattleAnimBankAttacker) != 0 || IsContest() != 0)
a = -a;
}
return a;
@@ -2128,9 +2128,9 @@ static void ScriptCmd_monbgprio_28(void)
r2 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
if (r2 != 0)
- r0 = gBattleAnimEnemyMonIndex;
+ r0 = gBattleAnimBankTarget;
else
- r0 = gBattleAnimPlayerMonIndex;
+ r0 = gBattleAnimBankAttacker;
r4 = GetBankIdentity(r0);
if (!IsContest() && (r4 == 0 || r4 == 3))
{
@@ -2157,12 +2157,12 @@ static void ScriptCmd_monbgprio_2A(void)
r6 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
- if (GetBankSide(gBattleAnimPlayerMonIndex) != GetBankSide(gBattleAnimEnemyMonIndex))
+ if (GetBankSide(gBattleAnimBankAttacker) != GetBankSide(gBattleAnimBankTarget))
{
if (r6 != 0)
- r0 = gBattleAnimEnemyMonIndex;
+ r0 = gBattleAnimBankTarget;
else
- r0 = gBattleAnimPlayerMonIndex;
+ r0 = gBattleAnimBankAttacker;
r4 = GetBankIdentity(r0);
if (!IsContest() && (r4 == 0 || r4 == 3))
{
@@ -2178,7 +2178,7 @@ static void ScriptCmd_invisible(void)
u8 spriteId;
r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
- spriteId = obj_id_for_side_relative_to_move(r0);
+ spriteId = GetAnimBankSpriteId(r0);
if (spriteId != 0xFF)
{
gSprites[spriteId].invisible = TRUE;
@@ -2192,7 +2192,7 @@ static void ScriptCmd_visible(void)
u8 spriteId;
r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
- spriteId = obj_id_for_side_relative_to_move(r0);
+ spriteId = GetAnimBankSpriteId(r0);
if (spriteId != 0xFF)
{
gSprites[spriteId].invisible = FALSE;
@@ -2209,17 +2209,17 @@ static void ScriptCmd_doublebattle_2D(void)
r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
if (!IsContest() && IsDoubleBattle()
- && GetBankSide(gBattleAnimPlayerMonIndex) == GetBankSide(gBattleAnimEnemyMonIndex))
+ && GetBankSide(gBattleAnimBankAttacker) == GetBankSide(gBattleAnimBankTarget))
{
if (r7 == 0)
{
- r4 = GetBankIdentity_permutated(gBattleAnimPlayerMonIndex);
- spriteId = obj_id_for_side_relative_to_move(0);
+ r4 = GetBankIdentity_permutated(gBattleAnimBankAttacker);
+ spriteId = GetAnimBankSpriteId(0);
}
else
{
- r4 = GetBankIdentity_permutated(gBattleAnimEnemyMonIndex);
- spriteId = obj_id_for_side_relative_to_move(1);
+ r4 = GetBankIdentity_permutated(gBattleAnimBankTarget);
+ spriteId = GetAnimBankSpriteId(1);
}
if (spriteId != 0xFF)
{
@@ -2243,17 +2243,17 @@ static void ScriptCmd_doublebattle_2E(void)
r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
if (!IsContest() && IsDoubleBattle()
- && GetBankSide(gBattleAnimPlayerMonIndex) == GetBankSide(gBattleAnimEnemyMonIndex))
+ && GetBankSide(gBattleAnimBankAttacker) == GetBankSide(gBattleAnimBankTarget))
{
if (r7 == 0)
{
- r4 = GetBankIdentity_permutated(gBattleAnimPlayerMonIndex);
- spriteId = obj_id_for_side_relative_to_move(0);
+ r4 = GetBankIdentity_permutated(gBattleAnimBankAttacker);
+ spriteId = GetAnimBankSpriteId(0);
}
else
{
- r4 = GetBankIdentity_permutated(gBattleAnimEnemyMonIndex);
- spriteId = obj_id_for_side_relative_to_move(1);
+ r4 = GetBankIdentity_permutated(gBattleAnimBankTarget);
+ spriteId = GetAnimBankSpriteId(1);
}
if (spriteId != 0xFF && r4 == 2)
{
diff --git a/src/battle_anim_807B69C.c b/src/battle/battle_anim_807B69C.c
index 42932877b..bf3eb7ef1 100644
--- a/src/battle_anim_807B69C.c
+++ b/src/battle/battle_anim_807B69C.c
@@ -8,12 +8,12 @@
#include "task.h"
#include "trig.h"
-extern u8 gBattleAnimPlayerMonIndex;
-extern u8 gBattleAnimEnemyMonIndex;
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
extern bool8 gAnimScriptActive;
extern void (*gAnimScriptCallback)(void);
extern s16 gBattleAnimArgs[];
-extern u8 gBattleAnimEnemyMonIndex;
+extern u8 gBattleAnimBankTarget;
extern u8 gObjectBankIDs[];
extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
@@ -179,8 +179,8 @@ static void sub_807B8A4(struct Sprite *sprite)
void sub_807B920(u8 taskId)
{
- s16 x = sub_8077ABC(gBattleAnimEnemyMonIndex, 2) - 32;
- s16 y = sub_8077ABC(gBattleAnimEnemyMonIndex, 3) - 36;
+ s16 x = sub_8077ABC(gBattleAnimBankTarget, 2) - 32;
+ s16 y = sub_8077ABC(gBattleAnimBankTarget, 3) - 36;
u8 spriteId;
if (IsContest())
@@ -335,8 +335,8 @@ void move_anim_start_t2(u8 a, u8 b)
{
u8 taskId;
- gBattleAnimPlayerMonIndex = a;
- gBattleAnimEnemyMonIndex = a;
+ gBattleAnimBankAttacker = a;
+ gBattleAnimBankTarget = a;
DoMoveAnim(gBattleAnims_StatusConditions, b, 0);
taskId = CreateTask(sub_807BDAC, 10);
gTasks[taskId].data[0] = a;
diff --git a/src/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c
index 31984977f..e0c79dc8e 100644
--- a/src/battle_anim_80A7E7C.c
+++ b/src/battle/battle_anim_80A7E7C.c
@@ -12,8 +12,8 @@ extern s16 gBattleAnimArgs[8];
extern u8 gObjectBankIDs[];
extern s32 gMoveDmgMoveAnim;
extern u16 gMovePowerMoveAnim;
-extern u8 gBattleAnimPlayerMonIndex;
-extern u8 gBattleAnimEnemyMonIndex;
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
static void sub_80A7EF0(u8 taskId);
static void sub_80A808C(u8 taskId);
@@ -34,7 +34,7 @@ static void sub_80A913C(u8 taskId);
void sub_80A7E7C(u8 taskId)
{
u8 sprite;
- sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
if (sprite == 0xff)
{
DestroyAnimVisualTask(taskId);
@@ -96,7 +96,7 @@ void sub_80A7FA0(u8 taskId)
r6 = 0;
if (gBattleAnimArgs[0] < 4)
{
- sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
if (sprite == 0xff)
{
DestroyAnimVisualTask(taskId);
@@ -121,7 +121,7 @@ void sub_80A7FA0(u8 taskId)
side = GetBankByPlayerAI(3);
break;
}
- if (b_side_obj__get_some_boolean(side) == FALSE)
+ if (IsAnimBankSpriteVisible(side) == FALSE)
{
r6 = 1;
}
@@ -129,7 +129,7 @@ void sub_80A7FA0(u8 taskId)
}
else
{
- sprite = gObjectBankIDs[gBattleAnimPlayerMonIndex];
+ sprite = gObjectBankIDs[gBattleAnimBankAttacker];
}
if (r6)
{
@@ -186,7 +186,7 @@ static void sub_80A808C(u8 taskId)
void sub_80A8154(u8 taskId)
{
u8 sprite;
- sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
if (sprite == 0xff)
{
DestroyAnimVisualTask(taskId);
@@ -244,7 +244,7 @@ static void sub_80A81D8(u8 taskId)
void sub_80A8314(u8 taskId)
{
- u8 sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ u8 sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
gSprites[sprite].pos2.x = gBattleAnimArgs[1];
TASK.data[0] = sprite;
TASK.data[1] = gBattleAnimArgs[1];
@@ -286,7 +286,7 @@ void sub_80A8408(u8 taskId)
u8 sprite;
u8 v1;
v1 = 1;
- sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
if (gBattleAnimArgs[4] > 5)
{
gBattleAnimArgs[4] = 5;
@@ -328,7 +328,7 @@ static void sub_80A8488(u8 taskId)
void sub_80A8500(u8 taskId)
{
- if (GetBankSide(gBattleAnimPlayerMonIndex))
+ if (GetBankSide(gBattleAnimBankAttacker))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
}
@@ -338,7 +338,7 @@ void sub_80A8500(u8 taskId)
void sub_80A8530(struct Sprite *sprite)
{
sprite->invisible = TRUE;
- if (GetBankSide(gBattleAnimPlayerMonIndex))
+ if (GetBankSide(gBattleAnimBankAttacker))
{
sprite->data1 = -gBattleAnimArgs[1];
}
@@ -348,9 +348,9 @@ void sub_80A8530(struct Sprite *sprite)
}
sprite->data0 = gBattleAnimArgs[0];
sprite->data2 = 0;
- sprite->data3 = gObjectBankIDs[gBattleAnimPlayerMonIndex];
+ sprite->data3 = gObjectBankIDs[gBattleAnimBankAttacker];
sprite->data4 = gBattleAnimArgs[0];
- oamt_set_x3A_32(sprite, sub_80A85A4);
+ StoreSpriteCallbackInData6(sprite, sub_80A85A4);
sprite->callback = sub_8078458;
}
@@ -359,20 +359,20 @@ static void sub_80A85A4(struct Sprite *sprite)
sprite->data0 = sprite->data4;
sprite->data1 = -sprite->data1;
sprite->callback = sub_8078458;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
void sub_80A85C8(struct Sprite *sprite)
{
u8 spriteId;
sprite->invisible = TRUE;
- spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[2]);
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]);
sprite->data0 = gBattleAnimArgs[0];
sprite->data1 = 0;
sprite->data2 = gBattleAnimArgs[1];
sprite->data3 = spriteId;
sprite->data4 = gBattleAnimArgs[0];
- oamt_set_x3A_32(sprite, sub_80A8614);
+ StoreSpriteCallbackInData6(sprite, sub_80A8614);
sprite->callback = sub_8078458;
}
@@ -381,7 +381,7 @@ void sub_80A8614(struct Sprite *sprite)
sprite->data0 = sprite->data4;
sprite->data2 = -sprite->data2;
sprite->callback = sub_8078458;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
void sub_80A8638(struct Sprite *sprite)
@@ -390,11 +390,11 @@ void sub_80A8638(struct Sprite *sprite)
int spriteId;
if (!gBattleAnimArgs[0])
{
- spriteId = gObjectBankIDs[gBattleAnimPlayerMonIndex];
+ spriteId = gObjectBankIDs[gBattleAnimBankAttacker];
}
else
{
- spriteId = gObjectBankIDs[gBattleAnimEnemyMonIndex];
+ spriteId = gObjectBankIDs[gBattleAnimBankTarget];
}
sprite->data0 = gBattleAnimArgs[2];
sprite->data1 = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x;
@@ -457,11 +457,11 @@ void sub_80A8764(struct Sprite *sprite)
u8 spriteId;
if (!gBattleAnimArgs[0])
{
- v1 = gBattleAnimPlayerMonIndex;
+ v1 = gBattleAnimBankAttacker;
}
else
{
- v1 = gBattleAnimEnemyMonIndex;
+ v1 = gBattleAnimBankTarget;
}
spriteId = gObjectBankIDs[v1];
if (GetBankSide(v1))
@@ -482,7 +482,7 @@ void sub_80A8764(struct Sprite *sprite)
sprite->data4 = 0;
sprite->data5 = spriteId;
sprite->invisible = TRUE;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
sprite->callback = sub_80784A8;
}
@@ -493,11 +493,11 @@ void sub_80A8818(struct Sprite *sprite)
sprite->invisible = TRUE;
if (!gBattleAnimArgs[0])
{
- v1 = gBattleAnimPlayerMonIndex;
+ v1 = gBattleAnimBankAttacker;
}
else
{
- v1 = gBattleAnimEnemyMonIndex;
+ v1 = gBattleAnimBankTarget;
}
spriteId = gObjectBankIDs[v1];
if (GetBankSide(v1))
@@ -520,11 +520,11 @@ void sub_80A8818(struct Sprite *sprite)
sprite->data6 = gBattleAnimArgs[5];
if (!gBattleAnimArgs[5])
{
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
else
{
- oamt_set_x3A_32(sprite, sub_80A88F0);
+ StoreSpriteCallbackInData6(sprite, sub_80A88F0);
}
sprite->callback = sub_80784A8;
}
@@ -541,12 +541,12 @@ void sub_80A8920(u8 taskId)
{
s16 r7;
r7 = 0x8000 / gBattleAnimArgs[3];
- if (GetBankSide(gBattleAnimPlayerMonIndex))
+ if (GetBankSide(gBattleAnimBankAttacker))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
gBattleAnimArgs[5] = -gBattleAnimArgs[5];
}
- TASK.data[0] = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ TASK.data[0] = GetAnimBankSpriteId(gBattleAnimArgs[0]);
TASK.data[1] = (gBattleAnimArgs[1] << 8) / gBattleAnimArgs[3];
TASK.data[2] = gBattleAnimArgs[2];
TASK.data[3] = gBattleAnimArgs[3];
@@ -600,30 +600,30 @@ void sub_80A8A80(u8 taskId)
{
case 0:
case 1:
- spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
break;
case 2:
- if (!b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex ^ 2))
+ if (!IsAnimBankSpriteVisible(gBattleAnimBankAttacker ^ 2))
{
DestroyAnimVisualTask(taskId);
return;
}
- spriteId = gObjectBankIDs[gBattleAnimPlayerMonIndex ^ 2];
+ spriteId = gObjectBankIDs[gBattleAnimBankAttacker ^ 2];
break;
case 3:
- if (!b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex ^ 2))
+ if (!IsAnimBankSpriteVisible(gBattleAnimBankTarget ^ 2))
{
DestroyAnimVisualTask(taskId);
return;
}
- spriteId = gObjectBankIDs[gBattleAnimEnemyMonIndex ^ 2];
+ spriteId = gObjectBankIDs[gBattleAnimBankTarget ^ 2];
break;
default:
DestroyAnimVisualTask(taskId);
return;
}
TASK.data[0] = spriteId;
- if (GetBankSide(gBattleAnimEnemyMonIndex))
+ if (GetBankSide(gBattleAnimBankTarget))
{
TASK.data[1] = gBattleAnimArgs[1];
}
@@ -648,11 +648,11 @@ static void sub_80A8B3C(u8 taskId)
void sub_80A8B88(u8 taskId)
{
u8 spriteId;
- if (GetBankSide(gBattleAnimPlayerMonIndex))
+ if (GetBankSide(gBattleAnimBankAttacker))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
}
- spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[4]);
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[4]);
TASK.data[0] = gBattleAnimArgs[0];
TASK.data[1] = gBattleAnimArgs[1];
TASK.data[2] = gBattleAnimArgs[2];
@@ -660,11 +660,11 @@ void sub_80A8B88(u8 taskId)
TASK.data[4] = spriteId;
if (gBattleAnimArgs[4] == 0)
{
- TASK.data[5] = gBattleAnimPlayerMonIndex;
+ TASK.data[5] = gBattleAnimBankAttacker;
}
else
{
- TASK.data[5] = gBattleAnimEnemyMonIndex;
+ TASK.data[5] = gBattleAnimBankTarget;
}
TASK.data[12] = 1;
TASK.func = sub_80A8C0C;
@@ -714,7 +714,7 @@ static void sub_80A8C0C(u8 taskId)
void sub_80A8D34(u8 taskId)
{
u8 spriteId;
- spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[3]);
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[3]);
sub_8078E70(spriteId, gBattleAnimArgs[4]);
TASK.data[0] = gBattleAnimArgs[0];
TASK.data[1] = gBattleAnimArgs[1];
@@ -754,7 +754,7 @@ static void sub_80A8D8C(u8 taskId)
void sub_80A8E04(u8 taskId)
{
u8 spriteId;
- spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[2]);
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]);
sub_8078E70(spriteId, 0);
TASK.data[1] = 0;
TASK.data[2] = gBattleAnimArgs[0];
@@ -777,11 +777,11 @@ void sub_80A8E04(u8 taskId)
{
if (gBattleAnimArgs[2] == 0)
{
- TASK.data[7] = !GetBankSide(gBattleAnimPlayerMonIndex);
+ TASK.data[7] = !GetBankSide(gBattleAnimBankAttacker);
}
else
{
- TASK.data[7] = !GetBankSide(gBattleAnimEnemyMonIndex);
+ TASK.data[7] = !GetBankSide(gBattleAnimBankTarget);
}
}
if (TASK.data[7])
@@ -798,20 +798,20 @@ void sub_80A8E04(u8 taskId)
void sub_80A8EFC(u8 taskId)
{
u8 spriteId;
- spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[2]);
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]);
sub_8078E70(spriteId, 0);
TASK.data[1] = 0;
TASK.data[2] = gBattleAnimArgs[0];
if (gBattleAnimArgs[2] == 0)
{
- if (GetBankSide(gBattleAnimPlayerMonIndex))
+ if (GetBankSide(gBattleAnimBankAttacker))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
}
}
else
{
- if (GetBankSide(gBattleAnimEnemyMonIndex))
+ if (GetBankSide(gBattleAnimBankTarget))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
}
@@ -891,7 +891,7 @@ void sub_80A9058(u8 taskId)
TASK.data[12] = 0;
TASK.data[10] = gBattleAnimArgs[3];
TASK.data[11] = gBattleAnimArgs[4];
- TASK.data[7] = obj_id_for_side_relative_to_move(1);
+ TASK.data[7] = GetAnimBankSpriteId(1);
TASK.data[8] = gSprites[TASK.data[7]].pos2.x;
TASK.data[9] = gSprites[TASK.data[7]].pos2.y;
TASK.data[0] = 0;
diff --git a/src/battle_anim_80CA710.c b/src/battle/battle_anim_80CA710.c
index 65ccd7c21..65ccd7c21 100644
--- a/src/battle_anim_80CA710.c
+++ b/src/battle/battle_anim_80CA710.c
diff --git a/src/battle_controller_linkopponent.c b/src/battle/battle_controller_linkopponent.c
index 93c6671e5..0b6c3b6a1 100644
--- a/src/battle_controller_linkopponent.c
+++ b/src/battle/battle_controller_linkopponent.c
@@ -71,7 +71,7 @@ extern void sub_8031A6C(u16, u8);
extern void sub_80313A0(struct Sprite *);
extern void sub_803757C(void);
extern void oamt_add_pos2_onto_pos1();
-extern void oamt_set_x3A_32();
+extern void StoreSpriteCallbackInData6();
extern void sub_8078B34(struct Sprite *);
extern void sub_80375B4(void);
extern void sub_8010384(struct Sprite *);
@@ -99,7 +99,7 @@ extern void nullsub_47(void);
extern bool8 IsDoubleBattle(void);
extern void sub_8037840(void);
extern void sub_8031B74();
-extern u8 sub_8078874();
+extern u8 AnimBankSpriteExists();
extern u8 move_anim_start_t3();
extern void sub_8037FD8(void);
extern void sub_8037F34(void);
@@ -1285,7 +1285,7 @@ void LinkOpponentHandleTrainerSlideBack(void)
gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
gBattleBankFunc[gActiveBank] = sub_80375B4;
}
@@ -1636,7 +1636,7 @@ void LinkOpponentHandleTrainerBallThrow(void)
gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], sub_803A3A8);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_803A3A8);
taskId = CreateTask(sub_803A2C4, 5);
gTasks[taskId].data[0] = gActiveBank;
if (ewram17810[gActiveBank].unk0_0)
@@ -1733,7 +1733,7 @@ void LinkOpponentHandlecmd50(void)
void LinkOpponentHandleSpriteInvisibility(void)
{
- if (sub_8078874(gActiveBank) != 0)
+ if (AnimBankSpriteExists(gActiveBank) != 0)
{
gSprites[gObjectBankIDs[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
sub_8031F88(gActiveBank);
diff --git a/src/battle_controller_linkpartner.c b/src/battle/battle_controller_linkpartner.c
index 95022eaaf..3e34b2e25 100644
--- a/src/battle_controller_linkpartner.c
+++ b/src/battle/battle_controller_linkpartner.c
@@ -66,7 +66,7 @@ extern u8 gAnimScriptActive;
extern void (*gAnimScriptCallback)(void);
extern u8 move_anim_start_t3();
-extern u8 sub_8078874();
+extern u8 AnimBankSpriteExists();
extern void sub_8044CA0(u8);
extern void sub_8030E38(struct Sprite *);
extern void sub_80E43C0();
@@ -82,7 +82,7 @@ extern void sub_80324BC();
extern u8 sub_8031720();
extern u8 mplay_80342A4();
extern void oamt_add_pos2_onto_pos1();
-extern void oamt_set_x3A_32();
+extern void StoreSpriteCallbackInData6();
extern void sub_8078B34(struct Sprite *);
extern void sub_80105EC(struct Sprite *);
extern s32 sub_803FC34(u16);
@@ -1239,7 +1239,7 @@ void LinkPartnerHandleTrainerSlideBack(void)
gSprites[gObjectBankIDs[gActiveBank]].data2 = -40;
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
gBattleBankFunc[gActiveBank] = sub_811DB1C;
}
@@ -1592,7 +1592,7 @@ void LinkPartnerHandleTrainerBallThrow(void)
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
gSprites[gObjectBankIDs[gActiveBank]].data5 = gActiveBank;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 1);
r4 = AllocSpritePalette(0xD6F9);
LoadCompressedPalette(
@@ -1682,7 +1682,7 @@ void LinkPartnerHandlecmd50(void)
void LinkPartnerHandleSpriteInvisibility(void)
{
- if (sub_8078874(gActiveBank) != 0)
+ if (AnimBankSpriteExists(gActiveBank) != 0)
{
gSprites[gObjectBankIDs[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
sub_8031F88(gActiveBank);
diff --git a/src/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c
index dd8c62cce..72b56b962 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle/battle_controller_opponent.c
@@ -85,7 +85,7 @@ extern void sub_8032B84(void);
extern void sub_8078B34(struct Sprite *);
extern void sub_8032BBC(void);
extern void oamt_add_pos2_onto_pos1();
-extern void oamt_set_x3A_32();
+extern void StoreSpriteCallbackInData6();
extern void sub_803311C(void);
extern void sub_8010384(struct Sprite *);
extern bool8 mplay_80342A4(u8);
@@ -113,7 +113,7 @@ extern void nullsub_45(void);
extern void sub_8031B74();
extern bool8 IsDoubleBattle(void);
extern void sub_8032E2C(void);
-extern u8 sub_8078874();
+extern u8 AnimBankSpriteExists();
extern u8 move_anim_start_t3();
extern void sub_80334C0(void);
@@ -1281,7 +1281,7 @@ void OpponentHandleTrainerSlideBack(void)
gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
gBattleBankFunc[gActiveBank] = sub_8032BBC;
}
@@ -1910,7 +1910,7 @@ void OpponentHandleTrainerBallThrow(void)
gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], sub_8035C10);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_8035C10);
taskId = CreateTask(sub_8035C44, 5);
gTasks[taskId].data[0] = gActiveBank;
if (ewram17810[gActiveBank].unk0_0)
@@ -2007,7 +2007,7 @@ void OpponentHandlecmd50(void)
void OpponentHandleSpriteInvisibility(void)
{
- if (sub_8078874(gActiveBank) != 0)
+ if (AnimBankSpriteExists(gActiveBank) != 0)
{
gSprites[gObjectBankIDs[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
sub_8031F88(gActiveBank);
diff --git a/src/battle_controller_player.c b/src/battle/battle_controller_player.c
index 5cfdeefbe..53b596c5e 100644
--- a/src/battle_controller_player.c
+++ b/src/battle/battle_controller_player.c
@@ -101,11 +101,11 @@ extern u8 GetBankSide(u8);
extern void sub_80E43C0();
extern void oamt_add_pos2_onto_pos1();
extern void sub_8078B34(struct Sprite *);
-extern void oamt_set_x3A_32();
+extern void StoreSpriteCallbackInData6();
extern void BattleLoadPlayerMonSprite();
extern bool8 IsDoubleBattle(void);
extern void sub_802D500(void);
-extern bool8 sub_8078874(u8);
+extern bool8 AnimBankSpriteExists(u8);
extern bool8 move_anim_start_t3();
extern void sub_802E460(void);
extern void b_link_standby_message(void);
@@ -2425,7 +2425,7 @@ void PlayerHandleTrainerSlideBack(void)
gSprites[gObjectBankIDs[gActiveBank]].data2 = -40;
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 1);
gBattleBankFunc[gActiveBank] = sub_802D274;
}
@@ -2896,7 +2896,7 @@ void PlayerHandleTrainerBallThrow(void)
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
gSprites[gObjectBankIDs[gActiveBank]].data5 = gActiveBank;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 1);
paletteNum = AllocSpritePalette(0xD6F8);
LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2.playerGender].data, 0x100 + paletteNum * 16, 32);
@@ -2994,7 +2994,7 @@ void PlayerHandlecmd50(void)
void PlayerHandleSpriteInvisibility(void)
{
- if (sub_8078874(gActiveBank))
+ if (AnimBankSpriteExists(gActiveBank))
{
gSprites[gObjectBankIDs[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
sub_8031F88(gActiveBank);
diff --git a/src/battle_controller_safari.c b/src/battle/battle_controller_safari.c
index e05578c31..e05578c31 100644
--- a/src/battle_controller_safari.c
+++ b/src/battle/battle_controller_safari.c
diff --git a/src/battle_controller_wally.c b/src/battle/battle_controller_wally.c
index f2cf5bbb4..bf6ef0892 100644
--- a/src/battle_controller_wally.c
+++ b/src/battle/battle_controller_wally.c
@@ -89,7 +89,7 @@ extern void sub_80E43C0();
extern void oamt_add_pos2_onto_pos1();
extern void sub_8078B34(struct Sprite *);
extern void sub_8030E38(struct Sprite *);
-extern void oamt_set_x3A_32();
+extern void StoreSpriteCallbackInData6();
extern u8 sub_8046400();
extern u8 sub_8077ABC();
extern u8 sub_8077F68();
@@ -1490,7 +1490,7 @@ void WallyHandleTrainerBallThrow(void)
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
gSprites[gObjectBankIDs[gActiveBank]].data5 = gActiveBank;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 1);
paletteNum = AllocSpritePalette(0xD6F8);
LoadCompressedPalette(gTrainerBackPicPaletteTable[2].data, 0x100 + paletteNum * 16, 32);
diff --git a/src/battle_interface.c b/src/battle/battle_interface.c
index 246bda62b..0741ad33a 100644
--- a/src/battle_interface.c
+++ b/src/battle/battle_interface.c
@@ -2501,7 +2501,7 @@ static void sub_8045458(u8 a, u8 b)
if (GetBankSide(r4) != 0)
{
u16 species = GetMonData(&gEnemyParty[gBattlePartyID[r4]], MON_DATA_SPECIES);
- if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(species), 1) != 0)
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 1) != 0)
{
r4 = gSprites[a].data5;
if (b != 0)
diff --git a/src/battle_message.c b/src/battle/battle_message.c
index a3cc320ad..a3cc320ad 100644
--- a/src/battle_message.c
+++ b/src/battle/battle_message.c
diff --git a/src/battle_party_menu.c b/src/battle/battle_party_menu.c
index 49e0b8432..49e0b8432 100644
--- a/src/battle_party_menu.c
+++ b/src/battle/battle_party_menu.c
diff --git a/src/battle_records.c b/src/battle/battle_records.c
index d848a10b8..d848a10b8 100644
--- a/src/battle_records.c
+++ b/src/battle/battle_records.c
diff --git a/src/battle_setup.c b/src/battle/battle_setup.c
index 59e17e9eb..40949ed38 100644
--- a/src/battle_setup.c
+++ b/src/battle/battle_setup.c
@@ -876,7 +876,7 @@ static void CB2_StartFirstBattle(void)
static void CB2_EndFirstBattle(void)
{
- sav1_reset_battle_music_maybe();
+ Overworld_ClearSavedMusic();
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
}
diff --git a/src/battle_transition.c b/src/battle/battle_transition.c
index 53d32d03a..53d32d03a 100644
--- a/src/battle_transition.c
+++ b/src/battle/battle_transition.c
diff --git a/src/calculate_base_damage.c b/src/battle/calculate_base_damage.c
index f5c679876..f5c679876 100644
--- a/src/calculate_base_damage.c
+++ b/src/battle/calculate_base_damage.c
diff --git a/src/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c
index 0ae98af09..0ae98af09 100644
--- a/src/contest_link_80C857C.c
+++ b/src/battle/contest_link_80C857C.c
diff --git a/src/pokeball.c b/src/battle/pokeball.c
index ee3b95678..ee3b95678 100644
--- a/src/pokeball.c
+++ b/src/battle/pokeball.c
diff --git a/src/post_battle_event_funcs.c b/src/battle/post_battle_event_funcs.c
index 27d7022fe..27d7022fe 100644
--- a/src/post_battle_event_funcs.c
+++ b/src/battle/post_battle_event_funcs.c
diff --git a/src/reshow_battle_screen.c b/src/battle/reshow_battle_screen.c
index 343c8f183..343c8f183 100644
--- a/src/reshow_battle_screen.c
+++ b/src/battle/reshow_battle_screen.c
diff --git a/src/smokescreen.c b/src/battle/smokescreen.c
index 8345cb6ad..8345cb6ad 100644
--- a/src/smokescreen.c
+++ b/src/battle/smokescreen.c
diff --git a/src/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c
index c7d81f502..c7d81f502 100644
--- a/src/matsuda_debug_menu.c
+++ b/src/debug/matsuda_debug_menu.c
diff --git a/src/mori_debug_menu.c b/src/debug/mori_debug_menu.c
index 1595ecd2e..1595ecd2e 100644
--- a/src/mori_debug_menu.c
+++ b/src/debug/mori_debug_menu.c
diff --git a/src/debug/sound_check_menu.c b/src/debug/sound_check_menu.c
new file mode 100644
index 000000000..14261b75e
--- /dev/null
+++ b/src/debug/sound_check_menu.c
@@ -0,0 +1,1300 @@
+#include "global.h"
+#include "sprite.h"
+#include "palette.h"
+#include "task.h"
+#include "m4a.h"
+#include "main.h"
+#include "text.h"
+#include "menu.h"
+#include "songs.h"
+#include "title_screen.h"
+#include "sound.h"
+#include "pokedex_cry_screen.h"
+
+// local task defines
+#define tWindowSelected data[0]
+#define tBgmIndex data[1]
+#define tSeIndex data[2]
+
+// window selections
+enum
+{
+ BGM_WINDOW,
+ SE_WINDOW
+};
+
+// driver test cry enums
+enum
+{
+ CRY_TEST_VOICE,
+ CRY_TEST_VOLUME,
+ CRY_TEST_PANPOT,
+ CRY_TEST_PITCH,
+ CRY_TEST_LENGTH,
+ CRY_TEST_RELEASE,
+ CRY_TEST_PROGRESS,
+ CRY_TEST_CHORUS,
+ CRY_TEST_PRIORITY
+};
+
+// minmax range enums
+enum
+{
+ MIN,
+ MAX
+};
+
+extern struct ToneData voicegroup_84537C0[];
+extern struct ToneData voicegroup_8452590[];
+extern struct ToneData voicegroup_8453DC0[];
+extern struct ToneData voicegroup_8452B90[];
+extern struct ToneData voicegroup_84543C0[];
+extern struct ToneData voicegroup_8453190[];
+extern struct ToneData voicegroup_84549C0[];
+extern struct ToneData voicegroup_8453790[];
+
+static EWRAM_DATA u8 gUnknown_020387B0 = 0;
+static EWRAM_DATA u8 gUnknown_020387B1 = 0;
+static EWRAM_DATA u8 gUnknown_020387B2 = 0;
+static EWRAM_DATA s8 sDriverTestSelection = 0;
+static EWRAM_DATA int sSoundTestParams[9] = {0};
+static EWRAM_DATA u8 gUnknown_020387D8 = 0;
+static EWRAM_DATA u8 gUnknown_020387D9 = 0;
+
+u16 gSoundTestCryNum;
+extern u8 gUnknown_03005E98;
+
+struct MusicPlayerInfo *gUnknown_03005D30;
+
+extern struct MusicPlayerInfo gMPlay_BGM;
+
+void Task_InitSoundCheckMenu(u8);
+void sub_80BA384(u8);
+void sub_80BA65C(u8);
+void sub_80BA68C(u8);
+void HighlightSelectedWindow(u8);
+void PrintSoundNumber(u16, u16, u16);
+void sub_80BA79C(const u8 *const, u16, u16);
+void Task_DrawDriverTestMenu(u8);
+void Task_ProcessDriverTestInput(u8);
+void AdjustSelectedDriverParam(s8);
+void PrintDriverTestMenuText(void);
+void sub_80BAE10(u8, u8);
+void PrintSignedNumber(int, u16, u16, u8);
+void sub_80BAF84(u8);
+void sub_80BB038(u8);
+void sub_80BB1D4(void);
+void Task_InitCryTest(u8);
+void Task_ProcessCryTestInput(u8);
+void PrintCryNumber(void);
+
+void CB2_SoundCheckMenu(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+void VBlankCB_SoundCheckMenu(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+
+ if (gUnknown_020387B0 != 0)
+ {
+ m4aSoundMain();
+ m4aSoundMain();
+ m4aSoundMain();
+ }
+}
+
+// unused
+void CB2_StartSoundCheckMenu(void)
+{
+ u8 taskId;
+
+ SetVBlankCallback(NULL);
+ REG_DISPCNT = 0;
+ REG_BG2CNT = 0;
+ REG_BG1CNT = 0;
+ REG_BG0CNT = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ DmaFill16(3, 0, VRAM, VRAM_SIZE);
+ DmaFill32(3, 0, OAM, OAM_SIZE);
+ DmaFill16(3, 0, PLTT, PLTT_SIZE);
+ ResetPaletteFade();
+ ResetTasks();
+ ResetSpriteData();
+ SetUpWindowConfig(&gWindowConfig_81E6C3C);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ REG_WIN0H = WIN_RANGE(0, 0);
+ REG_WIN0V = WIN_RANGE(0, 0);
+ REG_WIN1H = WIN_RANGE(0, 0);
+ REG_WIN1V = WIN_RANGE(0, 0);
+ REG_WININ = 0x1111;
+ REG_WINOUT = 0x31;
+ REG_BLDCNT = 0xE1;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 7;
+ REG_IE = 1; // could be a typo of REG_IME
+ REG_IE |= 1;
+ REG_DISPSTAT |= 8;
+ SetVBlankCallback(VBlankCB_SoundCheckMenu);
+ SetMainCallback2(CB2_SoundCheckMenu);
+ REG_DISPCNT = 0x7140;
+ taskId = CreateTask(Task_InitSoundCheckMenu, 0);
+ gTasks[taskId].tWindowSelected = BGM_WINDOW;
+ gTasks[taskId].tBgmIndex = 0;
+ gTasks[taskId].tSeIndex = 0;
+ gTasks[taskId].data[3] = 0;
+ gUnknown_020387B0 = 0;
+ gTasks[taskId].data[3] = 0; // why?
+ m4aSoundInit();
+}
+
+void Task_InitSoundCheckMenu(u8 taskId)
+{
+ u8 soundcheckStr[] = _("サウンドチェック");
+ u8 bgmStr[] = _("BGM");
+ u8 seStr[] = _("SE ");
+ u8 abDescStr[] = _("A‥さいせい B‥おわり");
+ u8 upDownStr[] = _("L‥UP R‥DOWN");
+ u8 driverStr[] = _("R‥DRIVER-TEST");
+
+ if (!gPaletteFade.active)
+ {
+ MenuDrawTextWindow(2, 0, 27, 3);
+ MenuDrawTextWindow(2, 5, 27, 10);
+ MenuDrawTextWindow(2, 12, 27, 17);
+ MenuPrint(soundcheckStr, 4, 1);
+ MenuPrint(abDescStr, 14, 1);
+ MenuPrint(bgmStr, 4, 6);
+ MenuPrint(upDownStr, 14, 6);
+ MenuPrint(seStr, 4, 13);
+ MenuPrint(upDownStr, 14, 13);
+ MenuPrint(driverStr, 14, 18);
+ gTasks[taskId].func = sub_80BA384;
+ REG_WIN0H = WIN_RANGE(17, 223);
+ REG_WIN0V = WIN_RANGE(1, 31);
+ }
+}
+
+// ideally this should be a multi Coords8 struct, but it wont match when its treated like a struct.
+static const u8 gUnknown_083D0300[] = { 1, 1, 1, 3, 1, 5, 1, 7, 1, 9, 1, 11, 1, 13, 1, 15, 1, 17 };
+
+extern const u8 *const gBGMNames[];
+extern const u8 *const gSENames[];
+
+void sub_80BA384(u8 taskId) // Task_HandleDrawingSoundCheckMenuText
+{
+ HighlightSelectedWindow(gTasks[taskId].tWindowSelected);
+ PrintSoundNumber(gTasks[taskId].tBgmIndex + BGM_STOP, 7, 8); // print by BGM index
+ sub_80BA79C(gBGMNames[gTasks[taskId].tBgmIndex], 11, 8);
+ PrintSoundNumber(gTasks[taskId].tSeIndex, 7, 15);
+ sub_80BA79C(gSENames[gTasks[taskId].tSeIndex], 11, 15);
+ gTasks[taskId].func = sub_80BA65C;
+}
+
+bool8 Task_ProcessSoundCheckMenuInput(u8 taskId)
+{
+ if (gMain.newKeys & R_BUTTON) // driver test
+ {
+ gTasks[taskId].func = Task_DrawDriverTestMenu;
+ }
+ else if (gMain.newKeys & L_BUTTON)
+ {
+ gTasks[taskId].func = sub_80BAF84;
+ }
+ else if (gMain.newKeys & START_BUTTON)
+ {
+ gTasks[taskId].func = Task_InitCryTest;
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ if (gTasks[taskId].tWindowSelected != 0) // is playing?
+ {
+ if (gTasks[taskId].data[4] != 0)
+ {
+ if (gTasks[taskId].tSeIndex != 0)
+ {
+ m4aSongNumStop(gTasks[taskId].data[4]);
+ m4aSongNumStart(gTasks[taskId].tSeIndex);
+ gTasks[taskId].data[4] = gTasks[taskId].tSeIndex;
+ }
+ else
+ {
+ m4aSongNumStop(gTasks[taskId].data[4]);
+ gTasks[taskId].data[4] = 0;
+ }
+ }
+ else if (gTasks[taskId].tSeIndex != 0)
+ {
+ m4aSongNumStart(gTasks[taskId].tSeIndex);
+ gTasks[taskId].data[4] = gTasks[taskId].tSeIndex;
+ }
+ }
+ else
+ {
+ if (gTasks[taskId].data[3] != 0)
+ {
+ if (gTasks[taskId].tBgmIndex != 0)
+ {
+ m4aSongNumStop(gTasks[taskId].data[3] + BGM_STOP);
+ m4aSongNumStart(gTasks[taskId].tBgmIndex + BGM_STOP);
+ gTasks[taskId].data[3] = gTasks[taskId].tBgmIndex;
+ }
+ else
+ {
+ m4aSongNumStop(gTasks[taskId].data[3] + BGM_STOP);
+ gTasks[taskId].data[3] = 0;
+ }
+ }
+ else if (gTasks[taskId].tBgmIndex != 0)
+ {
+ m4aSongNumStart(gTasks[taskId].tBgmIndex + BGM_STOP);
+ gTasks[taskId].data[3] = gTasks[taskId].tBgmIndex;
+ }
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ m4aSongNumStart(SE_SELECT);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gTasks[taskId].func = sub_80BA68C;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ gTasks[taskId].tWindowSelected ^= 1;
+ return TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ gTasks[taskId].tWindowSelected ^= 1;
+ return TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
+ {
+ if (gTasks[taskId].tWindowSelected != 0)
+ {
+ if (gTasks[taskId].tSeIndex > 0)
+ gTasks[taskId].tSeIndex--;
+ else
+ gTasks[taskId].tSeIndex = 247;
+ }
+ else
+ {
+ if (gTasks[taskId].tBgmIndex > 0)
+ gTasks[taskId].tBgmIndex--;
+ else
+ gTasks[taskId].tBgmIndex = 117;
+ }
+ return TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ if (gTasks[taskId].tWindowSelected != 0)
+ {
+ if (gTasks[taskId].tSeIndex < 247)
+ gTasks[taskId].tSeIndex++;
+ else
+ gTasks[taskId].tSeIndex = 0;
+ }
+ else
+ {
+ if (gTasks[taskId].tBgmIndex < 117)
+ gTasks[taskId].tBgmIndex++;
+ else
+ gTasks[taskId].tBgmIndex = 0;
+ }
+ return TRUE;
+ }
+ else if (gMain.heldKeys & SELECT_BUTTON)
+ {
+ gUnknown_020387B0 = 1;
+ }
+ else
+ {
+ gUnknown_020387B0 = 0;
+ }
+ return FALSE;
+}
+
+void sub_80BA65C(u8 taskId)
+{
+ if (Task_ProcessSoundCheckMenuInput(taskId) != FALSE)
+ gTasks[taskId].func = sub_80BA384;
+}
+
+void sub_80BA68C(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ DestroyTask(taskId);
+ SetMainCallback2(CB2_InitTitleScreen);
+ }
+}
+
+void HighlightSelectedWindow(u8 windowType)
+{
+ switch (windowType)
+ {
+ case BGM_WINDOW:
+ default:
+ REG_WIN1H = WIN_RANGE(17, 223);
+ REG_WIN1V = WIN_RANGE(41, 87);
+ break;
+ case SE_WINDOW:
+ REG_WIN1H = WIN_RANGE(17, 223);
+ REG_WIN1V = WIN_RANGE(97, 143);
+ break;
+ }
+}
+
+void PrintSoundNumber(u16 soundIndex, u16 x, u16 y) // PrintSoundNumber ?
+{
+ u8 i;
+ u8 str[5];
+ bool8 someBool;
+ u8 divisorValue;
+
+ for (i = 0; i < 3; i++)
+ str[i] = 0; // initialize array
+
+ str[3] = CHAR_ELLIPSIS;
+ str[4] = EOS;
+ someBool = FALSE;
+
+ divisorValue = soundIndex / 100;
+ if (divisorValue)
+ {
+ str[0] = divisorValue + CHAR_0;
+ someBool = TRUE;
+ }
+
+ divisorValue = (soundIndex % 100) / 10;
+ if (divisorValue || someBool)
+ str[1] = divisorValue + CHAR_0;
+
+ str[2] = ((soundIndex % 100) % 10) + CHAR_0;
+ MenuPrint(str, x, y);
+}
+
+void sub_80BA79C(const u8 *const string, u16 x, u16 y)
+{
+ u8 i;
+ u8 str[11];
+
+ for (i = 0; i <= 10; i++)
+ str[i] = 0; // format string.
+
+ str[10] = EOS; // the above for loop formats the last element of the array unnecessarily.
+
+ for (i = 0; string[i] != EOS && i < 10; i++)
+ str[i] = string[i];
+
+ MenuPrint(str, x, y);
+}
+
+void Task_DrawDriverTestMenu(u8 taskId) // Task_DrawDriverTestMenu
+{
+ u8 bbackStr[] = _("Bぼたんで もどる");
+ u8 aplayStr[] = _("Aぼたんで さいせい");
+ u8 voiceStr[] = _("VOICE‥‥‥‥");
+ u8 volumeStr[] = _("VOLUME‥‥‥");
+ u8 panpotStr[] = _("PANPOT‥‥‥");
+ u8 pitchStr[] = _("PITCH‥‥‥‥");
+ u8 lengthStr[] = _("LENGTH‥‥‥");
+ u8 releaseStr[] = _("RELEASE‥‥");
+ u8 progressStr[] = _("PROGRESS‥");
+ u8 chorusStr[] = _("CHORUS‥‥‥");
+ u8 priorityStr[] = _("PRIORITY‥");
+ u8 playingStr[] = _("さいせいちゆう‥"); // 再生中 (playing)
+ u8 reverseStr[] = _("はんてん‥‥‥‥"); // 反転 (reverse)
+ u8 stereoStr[] = _("すてれお‥‥‥‥"); // stereo
+
+ REG_DISPCNT = 0x3140;
+ MenuDrawTextWindow(0, 0, 29, 19);
+ MenuPrint(bbackStr, 19, 4);
+ MenuPrint(aplayStr, 19, 2);
+ MenuPrint(voiceStr, 2, 1);
+ MenuPrint(volumeStr, 2, 3);
+ MenuPrint(panpotStr, 2, 5);
+ MenuPrint(pitchStr, 2, 7);
+ MenuPrint(lengthStr, 2, 9);
+ MenuPrint(releaseStr, 2, 11);
+ MenuPrint(progressStr, 2, 13);
+ MenuPrint(chorusStr, 2, 15);
+ MenuPrint(priorityStr, 2, 17);
+ MenuPrint(playingStr, 19, 16);
+ MenuPrint(reverseStr, 19, 14);
+ MenuPrint(stereoStr, 19, 12);
+ REG_WIN0H = WIN_RANGE(0, DISPLAY_WIDTH);
+ REG_WIN0V = WIN_RANGE(0, DISPLAY_HEIGHT);
+ sDriverTestSelection = 0;
+ gUnknown_020387B1 = 0;
+ gUnknown_020387B2 = 0;
+ gUnknown_03005D30 = NULL;
+ gUnknown_020387D8 = 0;
+ gUnknown_020387D9 = 1;
+ sSoundTestParams[CRY_TEST_VOICE] = 0;
+ sSoundTestParams[CRY_TEST_VOLUME] = 120;
+ sSoundTestParams[CRY_TEST_PANPOT] = 0;
+ sSoundTestParams[CRY_TEST_PITCH] = 15360;
+ sSoundTestParams[CRY_TEST_LENGTH] = 180;
+ sSoundTestParams[CRY_TEST_PROGRESS] = 0;
+ sSoundTestParams[CRY_TEST_RELEASE] = 0;
+ sSoundTestParams[CRY_TEST_CHORUS] = 0;
+ sSoundTestParams[CRY_TEST_PRIORITY] = 2;
+ PrintDriverTestMenuText();
+ sub_80BAE10(0, 0);
+ gTasks[taskId].func = Task_ProcessDriverTestInput;
+}
+
+void Task_ProcessDriverTestInput(u8 taskId)
+{
+ if (gMain.newKeys & B_BUTTON)
+ {
+ REG_DISPCNT = 0x7140;
+ REG_WIN0H = WIN_RANGE(17, 223);
+ REG_WIN0V = WIN_RANGE(1, 31);
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ gTasks[taskId].func = Task_InitSoundCheckMenu;
+ return;
+ }
+ if (gMain.newAndRepeatedKeys & DPAD_UP) // _080BAAA8
+ {
+ u8 old = sDriverTestSelection;
+
+ if(--sDriverTestSelection < 0)
+ sDriverTestSelection = 8;
+ sub_80BAE10(old, sDriverTestSelection);
+ return;
+ }
+ if (gMain.newAndRepeatedKeys & DPAD_DOWN) // _080BAAD0
+ {
+ u8 old = sDriverTestSelection;
+
+ if(++sDriverTestSelection > 8)
+ sDriverTestSelection = 0;
+ sub_80BAE10(old, sDriverTestSelection);
+ return;
+ }
+ if (gMain.newKeys & START_BUTTON) // _080BAAF8
+ {
+ gUnknown_020387D8 ^= 1;
+ PrintDriverTestMenuText();
+ return;
+ }
+ if (gMain.newKeys & SELECT_BUTTON) // _080BAB14
+ {
+ gUnknown_020387D9 ^= 1;
+ PrintDriverTestMenuText();
+ SetPokemonCryStereo(gUnknown_020387D9);
+ return;
+ }
+ if (gMain.newAndRepeatedKeys & R_BUTTON) // _080BAB38
+ {
+ AdjustSelectedDriverParam(10);
+ PrintDriverTestMenuText();
+ return;
+ }
+ if (gMain.newAndRepeatedKeys & L_BUTTON) // _080BAB46
+ {
+ AdjustSelectedDriverParam(-10);
+ PrintDriverTestMenuText();
+ return;
+ }
+ if (gMain.newAndRepeatedKeys & DPAD_LEFT) // _080BAB56
+ {
+ AdjustSelectedDriverParam(-1);
+ PrintDriverTestMenuText();
+ return;
+ }
+ if (gMain.newAndRepeatedKeys & DPAD_RIGHT) // _080BAB64
+ {
+ AdjustSelectedDriverParam(1);
+ PrintDriverTestMenuText();
+ return;
+ }
+ if (gMain.newKeys & A_BUTTON) // _080BAB78
+ {
+ u8 divide, remaining;
+
+ SetPokemonCryVolume(sSoundTestParams[CRY_TEST_VOLUME]);
+ SetPokemonCryPanpot(sSoundTestParams[CRY_TEST_PANPOT]);
+ SetPokemonCryPitch(sSoundTestParams[CRY_TEST_PITCH]);
+ SetPokemonCryLength(sSoundTestParams[CRY_TEST_LENGTH]);
+ SetPokemonCryProgress(sSoundTestParams[CRY_TEST_PROGRESS]);
+ SetPokemonCryRelease(sSoundTestParams[CRY_TEST_RELEASE]);
+ SetPokemonCryChorus(sSoundTestParams[CRY_TEST_CHORUS]);
+ SetPokemonCryPriority(sSoundTestParams[CRY_TEST_PRIORITY]);
+
+ remaining = sSoundTestParams[CRY_TEST_VOICE] % 128;
+ divide = sSoundTestParams[CRY_TEST_VOICE] / 128;
+
+ switch (divide)
+ {
+ case 0:
+ if (gUnknown_020387D8)
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_84537C0[remaining]);
+ else
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8452590[remaining]);
+ break;
+ case 1:
+ if (gUnknown_020387D8)
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8453DC0[remaining]);
+ else
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8452B90[remaining]);
+ break;
+ case 2:
+ if (gUnknown_020387D8)
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_84543C0[remaining]);
+ else
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8453190[remaining]);
+ break;
+ case 3:
+ if (gUnknown_020387D8)
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_84549C0[remaining]);
+ else
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8453790[remaining]);
+ break;
+ }
+ }
+
+ // _080BACA2
+ if (gUnknown_03005D30 != NULL)
+ {
+ gUnknown_020387B1 = IsPokemonCryPlaying(gUnknown_03005D30);
+
+ if (gUnknown_020387B1 != gUnknown_020387B2)
+ PrintDriverTestMenuText();
+
+ gUnknown_020387B2 = gUnknown_020387B1;
+ }
+}
+
+void AdjustSelectedDriverParam(s8 delta)
+{
+ // also ideally should be a MinMax struct, but any attempt to make this into a struct causes it to not match due to the weird multi dim access.
+ int paramRanges[] =
+ {
+ 0, 387, // Voice
+ 0, 127, // Volume
+ -127, 127, // Panpot
+ -128, 32639, // Pitch
+ 0, 65535, // Length
+ 0, 255, // Release
+ 0, 65535, // Progress
+ -64, 63 // Chorus
+ // Priority??? Why is it missing?
+ };
+
+ sSoundTestParams[sDriverTestSelection] += delta;
+
+ if (sSoundTestParams[sDriverTestSelection] > paramRanges[MULTI_DIM_ARR(sDriverTestSelection, B_16, MAX)])
+ sSoundTestParams[sDriverTestSelection] = paramRanges[MULTI_DIM_ARR(sDriverTestSelection, B_16, MIN)];
+
+ if (sSoundTestParams[sDriverTestSelection] < paramRanges[MULTI_DIM_ARR(sDriverTestSelection, B_16, MIN)])
+ sSoundTestParams[sDriverTestSelection] = paramRanges[MULTI_DIM_ARR(sDriverTestSelection, B_16, MAX)];
+}
+
+void PrintDriverTestMenuText(void)
+{
+ PrintSignedNumber(sSoundTestParams[CRY_TEST_VOICE] + 1, 11, 1, 5);
+ PrintSignedNumber(sSoundTestParams[CRY_TEST_VOLUME], 11, 3, 5);
+ PrintSignedNumber(sSoundTestParams[CRY_TEST_PANPOT], 11, 5, 5);
+ PrintSignedNumber(sSoundTestParams[CRY_TEST_PITCH], 11, 7, 5);
+ PrintSignedNumber(sSoundTestParams[CRY_TEST_LENGTH], 11, 9, 5);
+ PrintSignedNumber(sSoundTestParams[CRY_TEST_RELEASE], 11, 11, 5);
+ PrintSignedNumber(sSoundTestParams[CRY_TEST_PROGRESS], 11, 13, 5);
+ PrintSignedNumber(sSoundTestParams[CRY_TEST_CHORUS], 11, 15, 5);
+ PrintSignedNumber(sSoundTestParams[CRY_TEST_PRIORITY], 11, 17, 5);
+ PrintSignedNumber(gUnknown_020387B1, 27, 16, 1);
+ PrintSignedNumber(gUnknown_020387D8, 27, 14, 1);
+ PrintSignedNumber(gUnknown_020387D9, 27, 12, 1);
+}
+
+void sub_80BAE10(u8 var1, u8 var2)
+{
+ u8 str1[] = _("▶");
+ u8 str2[] = _(" ");
+
+ MenuPrint(str2, gUnknown_083D0300[MULTI_DIM_ARR(var1, B_16, 0)], gUnknown_083D0300[MULTI_DIM_ARR(var1, B_16, 1)]);
+ MenuPrint(str1, gUnknown_083D0300[MULTI_DIM_ARR(var2, B_16, 0)], gUnknown_083D0300[MULTI_DIM_ARR(var2, B_16, 1)]);
+}
+
+void PrintSignedNumber(int n, u16 x, u16 y, u8 digits)
+{
+ int powersOfTen[6] =
+ {
+ 1,
+ 10,
+ 100,
+ 1000,
+ 10000,
+ 100000
+ };
+ u8 str[8];
+ s8 i;
+ s8 negative;
+ s8 someVar2;
+
+ for (i = 0; i <= digits; i++)
+ str[i] = CHAR_SPACE;
+ str[digits + 1] = EOS;
+
+ negative = FALSE;
+ if (n < 0)
+ {
+ n = -n;
+ negative = TRUE;
+ }
+
+ if (digits == 1)
+ someVar2 = TRUE;
+ else
+ someVar2 = FALSE;
+
+ for (i = digits - 1; i >= 0; i--)
+ {
+ s8 d = n / powersOfTen[i];
+
+ if (d != 0 || someVar2 || i == 0)
+ {
+ if (negative && !someVar2)
+ str[digits - i - 1] = CHAR_HYPHEN;
+ str[digits - i] = CHAR_0 + d;
+ someVar2 = TRUE;
+ }
+ n %= powersOfTen[i];
+ }
+
+ MenuPrint(str, x, y);
+}
+
+static const s8 gUnknown_083D03F8[5] = { 0x3F, 0x00, 0xC0, 0x7F, 0x80 };
+
+void sub_80BAF84(u8 taskId)
+{
+ u8 seStr[] = _("SE");
+ u8 panStr[] = _("PAN");
+ u8 playingStr[] = _("さいせいちゆう‥");
+
+ REG_DISPCNT = 0x3140;
+ MenuDrawTextWindow(0, 0, 29, 19);
+ MenuPrint(seStr, 3, 2);
+ MenuPrint(panStr, 3, 4);
+ MenuPrint(playingStr, 3, 8);
+ REG_WIN0H = WIN_RANGE(0, DISPLAY_WIDTH);
+ REG_WIN0V = WIN_RANGE(0, DISPLAY_HEIGHT);
+ sSoundTestParams[CRY_TEST_VOICE] = 1;
+ sSoundTestParams[CRY_TEST_PANPOT] = 0;
+ sSoundTestParams[CRY_TEST_CHORUS] = 0;
+ sSoundTestParams[CRY_TEST_PROGRESS] = 0;
+ sSoundTestParams[CRY_TEST_RELEASE] = 0;
+ sub_80BB1D4();
+ gTasks[taskId].func = sub_80BB038;
+}
+
+void sub_80BB038(u8 taskId)
+{
+ sub_80BB1D4();
+ if (sSoundTestParams[CRY_TEST_PROGRESS])
+ {
+ if (sSoundTestParams[CRY_TEST_RELEASE])
+ {
+ sSoundTestParams[CRY_TEST_RELEASE]--;
+ }
+ else // _080BB05C
+ {
+ s8 panpot = gUnknown_083D03F8[sSoundTestParams[CRY_TEST_PANPOT]];
+ if (panpot != -128)
+ {
+ if (panpot == 127)
+ {
+ sSoundTestParams[CRY_TEST_CHORUS] += 2;
+ if (sSoundTestParams[CRY_TEST_CHORUS] < 63)
+ SE12PanpotControl(sSoundTestParams[CRY_TEST_CHORUS]);
+ }
+ }
+ else // _080BB08C
+ {
+ sSoundTestParams[CRY_TEST_CHORUS] -= 2;
+ if (sSoundTestParams[CRY_TEST_CHORUS] > -64)
+ SE12PanpotControl(sSoundTestParams[CRY_TEST_CHORUS]);
+ }
+ }
+ }
+ // _080BB0A2
+ if (gMain.newKeys & B_BUTTON)
+ {
+ REG_DISPCNT = 0x7140;
+ REG_WIN0H = WIN_RANGE(17, 223);
+ REG_WIN0V = WIN_RANGE(1, 31);
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ gTasks[taskId].func = Task_InitSoundCheckMenu;
+ return;
+ }
+ if (gMain.newKeys & A_BUTTON) // _080BB104
+ {
+ s8 panpot = gUnknown_083D03F8[sSoundTestParams[CRY_TEST_PANPOT]];
+ if (panpot != -128)
+ {
+ if (panpot == 127)
+ {
+ PlaySE12WithPanning(sSoundTestParams[CRY_TEST_VOICE], -64);
+ sSoundTestParams[CRY_TEST_CHORUS] = -64;
+ sSoundTestParams[CRY_TEST_PROGRESS] = 1;
+ sSoundTestParams[CRY_TEST_RELEASE] = 30;
+ return;
+ }
+ }
+ else // _080BB140
+ {
+ PlaySE12WithPanning(sSoundTestParams[CRY_TEST_VOICE], 63);
+ sSoundTestParams[CRY_TEST_CHORUS] = 63;
+ sSoundTestParams[CRY_TEST_PROGRESS] = 1;
+ sSoundTestParams[CRY_TEST_RELEASE] = 30;
+ return;
+ }
+ // _080BB154
+ PlaySE12WithPanning(sSoundTestParams[CRY_TEST_VOICE], panpot);
+ sSoundTestParams[CRY_TEST_PROGRESS] = 0;
+ return;
+ }
+ if (gMain.newKeys & L_BUTTON) // _080BB15E
+ {
+ sSoundTestParams[CRY_TEST_PANPOT]++;
+ if (sSoundTestParams[CRY_TEST_PANPOT] > 4)
+ sSoundTestParams[CRY_TEST_PANPOT] = 0;
+ }
+ if (gMain.newKeys & R_BUTTON) // _080BB176
+ {
+ sSoundTestParams[CRY_TEST_PANPOT]--;
+ if (sSoundTestParams[CRY_TEST_PANPOT] < 0)
+ sSoundTestParams[CRY_TEST_PANPOT] = 4;
+ }
+ if (gMain.newAndRepeatedKeys & DPAD_RIGHT) // _080BB192
+ {
+ sSoundTestParams[CRY_TEST_VOICE]++;
+ if (sSoundTestParams[CRY_TEST_VOICE] > 247)
+ sSoundTestParams[CRY_TEST_VOICE] = 0;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_LEFT) // _080BB1B0
+ {
+ sSoundTestParams[CRY_TEST_VOICE]--;
+ if (sSoundTestParams[CRY_TEST_VOICE] < 0)
+ sSoundTestParams[CRY_TEST_VOICE] = 247;
+ }
+}
+
+void sub_80BB1D4(void)
+{
+ u8 lrStr[] = _(" LR");
+ u8 rlStr[] = _(" RL");
+
+ PrintSignedNumber(sSoundTestParams[CRY_TEST_VOICE], 7, 2, 3);
+
+ switch (gUnknown_083D03F8[sSoundTestParams[CRY_TEST_PANPOT]])
+ {
+ case 127:
+ MenuPrint(lrStr, 7, 4);
+ break;
+ case -128:
+ MenuPrint(rlStr, 7, 4);
+ break;
+ default:
+ PrintSignedNumber(gUnknown_083D03F8[sSoundTestParams[CRY_TEST_PANPOT]], 7, 4, 3);
+ break;
+ }
+ PrintSignedNumber(IsSEPlaying(), 12, 8, 1);
+}
+
+#define SOUND_LIST_BGM \
+ X(BGM_STOP, "STOP") \
+ X(BGM_TETSUJI, "TETSUJI") \
+ X(BGM_FIELD13, "FIELD13") \
+ X(BGM_KACHI22, "KACHI22") \
+ X(BGM_KACHI2, "KACHI2") \
+ X(BGM_KACHI3, "KACHI3") \
+ X(BGM_KACHI5, "KACHI5") \
+ X(BGM_PCC, "PCC") \
+ X(BGM_NIBI, "NIBI") \
+ X(BGM_SUIKUN, "SUIKUN") \
+ X(BGM_DOORO1, "DOORO1") \
+ X(BGM_DOORO_X1, "DOORO-X1") \
+ X(BGM_DOORO_X3, "DOORO-X3") \
+ X(BGM_MACHI_S2, "MACHI-S2") \
+ X(BGM_MACHI_S4, "MACHI-S4") \
+ X(BGM_GIM, "GIM") \
+ X(BGM_NAMINORI, "NAMINORI") \
+ X(BGM_DAN01, "DAN01") \
+ X(BGM_FANFA1, "FANFA1") \
+ X(BGM_ME_ASA, "ME-ASA") \
+ X(BGM_ME_BACHI, "ME-BACHI") \
+ X(BGM_FANFA4, "FANFA4") \
+ X(BGM_FANFA5, "FANFA5") \
+ X(BGM_ME_WAZA, "ME-WAZA") \
+ X(BGM_BIJYUTU, "BIJYUTU") \
+ X(BGM_DOORO_X4, "DOORO-X4") \
+ X(BGM_FUNE_KAN, "FUNE-KAN") \
+ X(BGM_ME_SHINKA, "ME-SHINKA") \
+ X(BGM_SHINKA, "SHINKA") \
+ X(BGM_ME_WASURE, "ME-WASURE") \
+ X(BGM_SYOUJOEYE, "SYOUJOEYE") \
+ X(BGM_BOYEYE, "BOYEYE") \
+ X(BGM_DAN02, "DAN02") \
+ X(BGM_MACHI_S3, "MACHI-S3") \
+ X(BGM_ODAMAKI, "ODAMAKI") \
+ X(BGM_B_TOWER, "B-TOWER") \
+ X(BGM_SWIMEYE, "SWIMEYE") \
+ X(BGM_DAN03, "DAN03") \
+ X(BGM_ME_KINOMI, "ME-KINOMI") \
+ X(BGM_ME_TAMA, "ME-TAMA") \
+ X(BGM_ME_B_BIG, "ME-B-BIG") \
+ X(BGM_ME_B_SMALL, "ME-B-SMALL") \
+ X(BGM_ME_ZANNEN, "ME-ZANNEN") \
+ X(BGM_BD_TIME, "BD-TIME") \
+ X(BGM_TEST1, "TEST1") \
+ X(BGM_TEST2, "TEST2") \
+ X(BGM_TEST3, "TEST3") \
+ X(BGM_TEST4, "TEST4") \
+ X(BGM_TEST, "TEST") \
+ X(BGM_GOMACHI0, "GOMACHI0") \
+ X(BGM_GOTOWN, "GOTOWN") \
+ X(BGM_POKECEN, "POKECEN") \
+ X(BGM_NEXTROAD, "NEXTROAD") \
+ X(BGM_GRANROAD, "GRANROAD") \
+ X(BGM_CYCLING, "CYCLING") \
+ X(BGM_FRIENDLY, "FRIENDLY") \
+ X(BGM_MISHIRO, "MISHIRO") \
+ X(BGM_TOZAN, "TOZAN") \
+ X(BGM_GIRLEYE, "GIRLEYE") \
+ X(BGM_MINAMO, "MINAMO") \
+ X(BGM_ASHROAD, "ASHROAD") \
+ X(BGM_EVENT0, "EVENT0") \
+ X(BGM_DEEPDEEP, "DEEPDEEP") \
+ X(BGM_KACHI1, "KACHI1") \
+ X(BGM_TITLE3, "TITLE3") \
+ X(BGM_DEMO1, "DEMO1") \
+ X(BGM_GIRL_SUP, "GIRL-SUP") \
+ X(BGM_HAGESHII, "HAGESHII") \
+ X(BGM_KAKKOII, "KAKKOII") \
+ X(BGM_KAZANBAI, "KAZANBAI") \
+ X(BGM_AQA_0, "AQA-0") \
+ X(BGM_TSURETEK, "TSURETEK") \
+ X(BGM_BOY_SUP, "BOY-SUP") \
+ X(BGM_RAINBOW, "RAINBOW") \
+ X(BGM_AYASII, "AYASII") \
+ X(BGM_KACHI4, "KACHI4") \
+ X(BGM_ROPEWAY, "ROPEWAY") \
+ X(BGM_CASINO, "CASINO") \
+ X(BGM_HIGHTOWN, "HIGHTOWN") \
+ X(BGM_SAFARI, "SAFARI") \
+ X(BGM_C_ROAD, "C-ROAD") \
+ X(BGM_AJITO, "AJITO") \
+ X(BGM_M_BOAT, "M-BOAT") \
+ X(BGM_M_DUNGON, "M-DUNGON") \
+ X(BGM_FINECITY, "FINECITY") \
+ X(BGM_MACHUPI, "MACHUPI") \
+ X(BGM_P_SCHOOL, "P-SCHOOL") \
+ X(BGM_DENDOU, "DENDOU") \
+ X(BGM_TONEKUSA, "TONEKUSA") \
+ X(BGM_MABOROSI, "MABOROSI") \
+ X(BGM_CON_FAN, "CON-FAN") \
+ X(BGM_CONTEST0, "CONTEST0") \
+ X(BGM_MGM0, "MGM0") \
+ X(BGM_T_BATTLE, "T-BATTLE") \
+ X(BGM_OOAME, "OOAME") \
+ X(BGM_HIDERI, "HIDERI") \
+ X(BGM_RUNECITY, "RUNECITY") \
+ X(BGM_CON_K, "CON-K") \
+ X(BGM_EIKOU_R, "EIKOU-R") \
+ X(BGM_KARAKURI, "KARAKURI") \
+ X(BGM_HUTAGO, "HUTAGO") \
+ X(BGM_SITENNOU, "SITENNOU") \
+ X(BGM_YAMA_EYE, "YAMA-EYE") \
+ X(BGM_CONLOBBY, "CONLOBBY") \
+ X(BGM_INTER_V, "INTER-V") \
+ X(BGM_DAIGO, "DAIGO") \
+ X(BGM_THANKFOR, "THANKFOR") \
+ X(BGM_END, "END") \
+ X(BGM_BATTLE27, "BATTLE27") \
+ X(BGM_BATTLE31, "BATTLE31") \
+ X(BGM_BATTLE20, "BATTLE20") \
+ X(BGM_BATTLE32, "BATTLE32") \
+ X(BGM_BATTLE33, "BATTLE33") \
+ X(BGM_BATTLE36, "BATTLE36") \
+ X(BGM_BATTLE34, "BATTLE34") \
+ X(BGM_BATTLE35, "BATTLE35") \
+ X(BGM_BATTLE38, "BATTLE38") \
+ X(BGM_BATTLE30, "BATTLE30")
+
+#define SOUND_LIST_SE \
+ X(SE_STOP, "STOP") \
+ X(SE_KAIFUKU, "KAIFUKU") \
+ X(SE_PC_LOGON, "PC-LOGON") \
+ X(SE_PC_OFF, "PC-OFF") \
+ X(SE_PC_ON, "PC-ON") \
+ X(SE_SELECT, "SELECT") \
+ X(SE_WIN_OPEN, "WIN-OPEN") \
+ X(SE_WALL_HIT, "WALL-HIT") \
+ X(SE_DOOR, "DOOR") \
+ X(SE_KAIDAN, "KAIDAN") \
+ X(SE_DANSA, "DANSA") \
+ X(SE_JITENSYA, "JITENSYA") \
+ X(SE_KOUKA_L, "KOUKA-L") \
+ X(SE_KOUKA_M, "KOUKA-M") \
+ X(SE_KOUKA_H, "KOUKA-H") \
+ X(SE_BOWA2, "BOWA2") \
+ X(SE_POKE_DEAD, "POKE-DEAD") \
+ X(SE_NIGERU, "NIGERU") \
+ X(SE_JIDO_DOA, "JIDO-DOA") \
+ X(SE_NAMINORI, "NAMINORI") \
+ X(SE_BAN, "BAN") \
+ X(SE_PIN, "PIN") \
+ X(SE_BOO, "BOO") \
+ X(SE_BOWA, "BOWA") \
+ X(SE_JYUNI, "JYUNI") \
+ X(SE_A, "A") \
+ X(SE_I, "I") \
+ X(SE_U, "U") \
+ X(SE_E, "E") \
+ X(SE_O, "O") \
+ X(SE_N, "N") \
+ X(SE_SEIKAI, "SEIKAI") \
+ X(SE_HAZURE, "HAZURE") \
+ X(SE_EXP, "EXP") \
+ X(SE_JITE_PYOKO, "JITE-PYOKO") \
+ X(SE_MU_PACHI, "MU-PACHI") \
+ X(SE_TK_KASYA, "TK-KASYA") \
+ X(SE_FU_ZAKU, "FU-ZAKU") \
+ X(SE_FU_ZAKU2, "FU-ZAKU2") \
+ X(SE_FU_ZUZUZU, "FU-ZUZUZU") \
+ X(SE_RU_GASHIN, "RU-GASHIN") \
+ X(SE_RU_GASYAN, "RU-GASYAN") \
+ X(SE_RU_BARI, "RU-BARI") \
+ X(SE_RU_HYUU, "RU-HYUU") \
+ X(SE_KI_GASYAN, "KI-GASYAN") \
+ X(SE_TK_WARPIN, "TK-WARPIN") \
+ X(SE_TK_WARPOUT, "TK-WARPOUT") \
+ X(SE_TU_SAA, "TU-SAA") \
+ X(SE_HI_TURUN, "HI-TURUN") \
+ X(SE_TRACK_MOVE, "TRACK-MOVE") \
+ X(SE_TRACK_STOP, "TRACK-STOP") \
+ X(SE_TRACK_HAIK, "TRACK-HAIK") \
+ X(SE_TRACK_DOOR, "TRACK-DOOR") \
+ X(SE_MOTER, "MOTER") \
+ X(SE_CARD, "CARD") \
+ X(SE_SAVE, "SAVE") \
+ X(SE_KON, "KON") \
+ X(SE_KON2, "KON2") \
+ X(SE_KON3, "KON3") \
+ X(SE_KON4, "KON4") \
+ X(SE_SUIKOMU, "SUIKOMU") \
+ X(SE_NAGERU, "NAGERU") \
+ X(SE_TOY_C, "TOY-C") \
+ X(SE_TOY_D, "TOY-D") \
+ X(SE_TOY_E, "TOY-E") \
+ X(SE_TOY_F, "TOY-F") \
+ X(SE_TOY_G, "TOY-G") \
+ X(SE_TOY_A, "TOY-A") \
+ X(SE_TOY_B, "TOY-B") \
+ X(SE_TOY_C1, "TOY-C1") \
+ X(SE_MIZU, "MIZU") \
+ X(SE_HASHI, "HASHI") \
+ X(SE_DAUGI, "DAUGI") \
+ X(SE_PINPON, "PINPON") \
+ X(SE_FUUSEN1, "FUUSEN1") \
+ X(SE_FUUSEN2, "FUUSEN2") \
+ X(SE_FUUSEN3, "FUUSEN3") \
+ X(SE_TOY_KABE, "TOY-KABE") \
+ X(SE_TOY_DANGO, "TOY-DANGO") \
+ X(SE_DOKU, "DOKU") \
+ X(SE_ESUKA, "ESUKA") \
+ X(SE_T_AME, "T-AME") \
+ X(SE_T_AME_E, "T-AME-E") \
+ X(SE_T_OOAME, "T-OOAME") \
+ X(SE_T_OOAME_E, "T-OOAME-E") \
+ X(SE_T_KOAME, "T-KOAME") \
+ X(SE_T_KOAME_E, "T-KOAME-E") \
+ X(SE_T_KAMI, "T-KAMI") \
+ X(SE_T_KAMI2, "T-KAMI2") \
+ X(SE_ELEBETA, "ELEBETA") \
+ X(SE_HINSI, "HINSI") \
+ X(SE_EXPMAX, "EXPMAX") \
+ X(SE_TAMAKORO, "TAMAKORO") \
+ X(SE_TAMAKORO_E, "TAMAKORO-E") \
+ X(SE_BASABASA, "BASABASA") \
+ X(SE_REGI, "REGI") \
+ X(SE_C_GAJI, "C-GAJI") \
+ X(SE_C_MAKU_U, "C-MAKU-U") \
+ X(SE_C_MAKU_D, "C-MAKU-D") \
+ X(SE_C_PASI, "C-PASI") \
+ X(SE_C_SYU, "C-SYU") \
+ X(SE_C_PIKON, "C-PIKON") \
+ X(SE_REAPOKE, "REAPOKE") \
+ X(SE_OP_BASYU, "OP-BASYU") \
+ X(SE_BT_START, "BT-START") \
+ X(SE_DENDOU, "DENDOU") \
+ X(SE_JIHANKI, "JIHANKI") \
+ X(SE_TAMA, "TAMA") \
+ X(SE_Z_SCROLL, "Z-SCROLL") \
+ X(SE_Z_PAGE, "Z-PAGE") \
+ X(SE_PN_ON, "PN-ON") \
+ X(SE_PN_OFF, "PN-OFF") \
+ X(SE_Z_SEARCH, "Z-SEARCH") \
+ X(SE_TAMAGO, "TAMAGO") \
+ X(SE_TB_START, "TB-START") \
+ X(SE_TB_KON, "TB-KON") \
+ X(SE_TB_KARA, "TB-KARA") \
+ X(SE_BIDORO, "BIDORO") \
+ X(SE_W085, "W085") \
+ X(SE_W085B, "W085B") \
+ X(SE_W231, "W231") \
+ X(SE_W171, "W171") \
+ X(SE_W233, "W233") \
+ X(SE_W233B, "W233B") \
+ X(SE_W145, "W145") \
+ X(SE_W145B, "W145B") \
+ X(SE_W145C, "W145C") \
+ X(SE_W240, "W240") \
+ X(SE_W015, "W015") \
+ X(SE_W081, "W081") \
+ X(SE_W081B, "W081B") \
+ X(SE_W088, "W088") \
+ X(SE_W016, "W016") \
+ X(SE_W016B, "W016B") \
+ X(SE_W003, "W003") \
+ X(SE_W104, "W104") \
+ X(SE_W013, "W013") \
+ X(SE_W196, "W196") \
+ X(SE_W086, "W086") \
+ X(SE_W004, "W004") \
+ X(SE_W025, "W025") \
+ X(SE_W025B, "W025B") \
+ X(SE_W152, "W152") \
+ X(SE_W026, "W026") \
+ X(SE_W172, "W172") \
+ X(SE_W172B, "W172B") \
+ X(SE_W053, "W053") \
+ X(SE_W007, "W007") \
+ X(SE_W092, "W092") \
+ X(SE_W221, "W221") \
+ X(SE_W221B, "W221B") \
+ X(SE_W052, "W052") \
+ X(SE_W036, "W036") \
+ X(SE_W059, "W059") \
+ X(SE_W059B, "W059B") \
+ X(SE_W010, "W010") \
+ X(SE_W011, "W011") \
+ X(SE_W017, "W017") \
+ X(SE_W019, "W019") \
+ X(SE_W028, "W028") \
+ X(SE_W013B, "W013B") \
+ X(SE_W044, "W044") \
+ X(SE_W029, "W029") \
+ X(SE_W057, "W057") \
+ X(SE_W056, "W056") \
+ X(SE_W250, "W250") \
+ X(SE_W030, "W030") \
+ X(SE_W039, "W039") \
+ X(SE_W054, "W054") \
+ X(SE_W077, "W077") \
+ X(SE_W020, "W020") \
+ X(SE_W082, "W082") \
+ X(SE_W047, "W047") \
+ X(SE_W195, "W195") \
+ X(SE_W006, "W006") \
+ X(SE_W091, "W091") \
+ X(SE_W146, "W146") \
+ X(SE_W120, "W120") \
+ X(SE_W153, "W153") \
+ X(SE_W071B, "W071B") \
+ X(SE_W071, "W071") \
+ X(SE_W103, "W103") \
+ X(SE_W062, "W062") \
+ X(SE_W062B, "W062B") \
+ X(SE_W048, "W048") \
+ X(SE_W187, "W187") \
+ X(SE_W118, "W118") \
+ X(SE_W155, "W155") \
+ X(SE_W122, "W122") \
+ X(SE_W060, "W060") \
+ X(SE_W185, "W185") \
+ X(SE_W014, "W014") \
+ X(SE_W043, "W043") \
+ X(SE_W207, "W207") \
+ X(SE_W207B, "W207B") \
+ X(SE_W215, "W215") \
+ X(SE_W109, "W109") \
+ X(SE_W173, "W173") \
+ X(SE_W280, "W280") \
+ X(SE_W202, "W202") \
+ X(SE_W060B, "W060B") \
+ X(SE_W076, "W076") \
+ X(SE_W080, "W080") \
+ X(SE_W100, "W100") \
+ X(SE_W107, "W107") \
+ X(SE_W166, "W166") \
+ X(SE_W129, "W129") \
+ X(SE_W115, "W115") \
+ X(SE_W112, "W112") \
+ X(SE_W197, "W197") \
+ X(SE_W199, "W199") \
+ X(SE_W236, "W236") \
+ X(SE_W204, "W204") \
+ X(SE_W268, "W268") \
+ X(SE_W070, "W070") \
+ X(SE_W063, "W063") \
+ X(SE_W127, "W127") \
+ X(SE_W179, "W179") \
+ X(SE_W151, "W151") \
+ X(SE_W201, "W201") \
+ X(SE_W161, "W161") \
+ X(SE_W161B, "W161B") \
+ X(SE_W227, "W227") \
+ X(SE_W227B, "W227B") \
+ X(SE_W226, "W226") \
+ X(SE_W208, "W208") \
+ X(SE_W213, "W213") \
+ X(SE_W213B, "W213B") \
+ X(SE_W234, "W234") \
+ X(SE_W260, "W260") \
+ X(SE_W328, "W328") \
+ X(SE_W320, "W320") \
+ X(SE_W255, "W255") \
+ X(SE_W291, "W291") \
+ X(SE_W089, "W089") \
+ X(SE_W239, "W239") \
+ X(SE_W230, "W230") \
+ X(SE_W281, "W281") \
+ X(SE_W327, "W327") \
+ X(SE_W287, "W287") \
+ X(SE_W257, "W257") \
+ X(SE_W253, "W253") \
+ X(SE_W258, "W258") \
+ X(SE_W322, "W322") \
+ X(SE_W298, "W298") \
+ X(SE_W287B, "W287B") \
+ X(SE_W114, "W114") \
+ X(SE_W063B, "W063B")
+
+// Create BGM list
+#define X(songId, name) static const u8 sBGMName_##songId[] = _(name);
+SOUND_LIST_BGM
+#undef X
+
+#define X(songId, name) sBGMName_##songId,
+static const u8 *const gBGMNames[] =
+{
+SOUND_LIST_BGM
+};
+#undef X
+
+// Create SE list
+#define X(songId, name) static const u8 sSEName_##songId[] = _(name);
+SOUND_LIST_SE
+#undef X
+
+#define X(songId, name) sSEName_##songId,
+static const u8 *const gSENames[] =
+{
+SOUND_LIST_SE
+};
+#undef X
+
+void Task_InitCryTest(u8 taskId)
+{
+ struct CryRelatedStruct cryStruct, cryStruct2;
+ u8 zero;
+
+ SetUpWindowConfig(&gWindowConfig_81E6C3C);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ gSoundTestCryNum = 1;
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+
+ cryStruct.unk0 = 0x2000;
+ cryStruct.unk2 = 29;
+ cryStruct.paletteNo = 12;
+ cryStruct.yPos = 30;
+ cryStruct.xPos = 4;
+
+ zero = 0; // wtf?
+ gUnknown_03005E98 = 0;
+
+ while (sub_8119E3C(&cryStruct, 3) == FALSE)
+ ;
+
+ cryStruct2.unk0 = 0;
+ cryStruct2.unk2 = 15;
+ cryStruct2.paletteNo = 13;
+ cryStruct2.xPos = 12;
+ cryStruct2.yPos = 12;
+
+ zero = 0; // wtf?
+ gUnknown_03005E98 = 0;
+
+ while (ShowPokedexCryScreen(&cryStruct2, 2) == FALSE)
+ ;
+
+ MenuDrawTextWindow(0, 16, 5, 19);
+ PrintCryNumber();
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG2CNT = 0xF01;
+ REG_BG3CNT = 0x1D03;
+ REG_DISPCNT = 0x1d40;
+ m4aMPlayFadeOutTemporarily(&gMPlay_BGM, 2);
+ gTasks[taskId].func = Task_ProcessCryTestInput;
+}
+
+void Task_ProcessCryTestInput(u8 taskId)
+{
+ sub_8119F88(3);
+
+ if (gMain.newKeys & A_BUTTON)
+ {
+ sub_811A050(gSoundTestCryNum);
+ }
+ if (gMain.newKeys & R_BUTTON)
+ {
+ StopCryAndClearCrySongs();
+ }
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if(--gSoundTestCryNum == 0)
+ gSoundTestCryNum = 384; // total species
+ PrintCryNumber();
+ }
+ if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if(++gSoundTestCryNum > 384)
+ gSoundTestCryNum = 1;
+ PrintCryNumber();
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ REG_DISPCNT = 0x7140;
+ REG_WIN0H = WIN_RANGE(17, 223);
+ REG_WIN0V = WIN_RANGE(1, 31);
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ gTasks[taskId].func = Task_InitSoundCheckMenu;
+ DestroyCryMeterNeedleSprite();
+ }
+}
+
+void PrintCryNumber(void)
+{
+ PrintSignedNumber(gSoundTestCryNum, 1, 17, 3);
+}
diff --git a/src/unknown_debug_menu.c b/src/debug/unknown_debug_menu.c
index a81625f2a..a81625f2a 100644
--- a/src/unknown_debug_menu.c
+++ b/src/debug/unknown_debug_menu.c
diff --git a/src/blend_palette.c b/src/engine/blend_palette.c
index 843c50ac1..843c50ac1 100644
--- a/src/blend_palette.c
+++ b/src/engine/blend_palette.c
diff --git a/src/cable_club.c b/src/engine/cable_club.c
index 7a85f2b6c..c61a1d01c 100644
--- a/src/cable_club.c
+++ b/src/engine/cable_club.c
@@ -68,7 +68,7 @@ static void sub_8083B6C(void);
static void sub_8083CA4(u8 taskId);
extern void sub_80831F8(u8 taskId);
-extern void call_map_music_set_to_zero(void);
+extern void Overworld_ResetMapMusic(void);
extern void sub_810FEFC(void);
extern void sub_8047CD8(void);
extern void sub_805559C(void);
@@ -708,7 +708,7 @@ static void sub_808382C(u8 taskId)
static void sub_8083958(void)
{
- call_map_music_set_to_zero();
+ Overworld_ResetMapMusic();
LoadPlayerParty();
SavePlayerBag();
sub_810FEFC();
diff --git a/src/clear_save_data_menu.c b/src/engine/clear_save_data_menu.c
index 498562fe0..498562fe0 100644
--- a/src/clear_save_data_menu.c
+++ b/src/engine/clear_save_data_menu.c
diff --git a/src/clock.c b/src/engine/clock.c
index 9635514d2..9635514d2 100644
--- a/src/clock.c
+++ b/src/engine/clock.c
diff --git a/src/decompress.c b/src/engine/decompress.c
index d7f7087a7..3e5993118 100644
--- a/src/decompress.c
+++ b/src/engine/decompress.c
@@ -6,7 +6,7 @@
#define WRAM 0x02000000
-void sub_800D238(const void *src, void *dest)
+void LZDecompressWram(const void *src, void *dest)
{
LZ77UnCompWram(src, dest);
}
diff --git a/src/link.c b/src/engine/link.c
index 850201ccb..850201ccb 100644
--- a/src/link.c
+++ b/src/engine/link.c
diff --git a/src/load_save.c b/src/engine/load_save.c
index 8424b1121..8424b1121 100644
--- a/src/load_save.c
+++ b/src/engine/load_save.c
diff --git a/src/main.c b/src/engine/main.c
index d7c11b6c8..d7c11b6c8 100644
--- a/src/main.c
+++ b/src/engine/main.c
diff --git a/src/main_menu.c b/src/engine/main_menu.c
index e0af86f3d..e0af86f3d 100644
--- a/src/main_menu.c
+++ b/src/engine/main_menu.c
diff --git a/src/menu.c b/src/engine/menu.c
index a9c4aaa43..a9c4aaa43 100644
--- a/src/menu.c
+++ b/src/engine/menu.c
diff --git a/src/menu_cursor.c b/src/engine/menu_cursor.c
index d43be2a2f..d43be2a2f 100644
--- a/src/menu_cursor.c
+++ b/src/engine/menu_cursor.c
diff --git a/src/mystery_event_menu.c b/src/engine/mystery_event_menu.c
index 0e48dc177..0e48dc177 100644
--- a/src/mystery_event_menu.c
+++ b/src/engine/mystery_event_menu.c
diff --git a/src/mystery_event_script.c b/src/engine/mystery_event_script.c
index f507942a7..a6568f5de 100644
--- a/src/mystery_event_script.c
+++ b/src/engine/mystery_event_script.c
@@ -401,8 +401,8 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx)
if (species != SPECIES_EGG)
{
u16 pokedexNum = SpeciesToNationalPokedexNum(species);
- GetNationalPokedexFlag(pokedexNum, 2);
- GetNationalPokedexFlag(pokedexNum, 3);
+ GetSetPokedexFlag(pokedexNum, 2);
+ GetSetPokedexFlag(pokedexNum, 3);
}
heldItem = GetMonData(&gPlayerParty[5], MON_DATA_HELD_ITEM);
diff --git a/src/name_string_util.c b/src/engine/name_string_util.c
index f1a935453..f1a935453 100644
--- a/src/name_string_util.c
+++ b/src/engine/name_string_util.c
diff --git a/src/naming_screen.c b/src/engine/naming_screen.c
index 3f8417e6d..3f8417e6d 100644
--- a/src/naming_screen.c
+++ b/src/engine/naming_screen.c
diff --git a/src/option_menu.c b/src/engine/option_menu.c
index dfc49b035..dfc49b035 100644
--- a/src/option_menu.c
+++ b/src/engine/option_menu.c
diff --git a/src/palette.c b/src/engine/palette.c
index 94a4f8092..17e9ca178 100644
--- a/src/palette.c
+++ b/src/engine/palette.c
@@ -74,7 +74,7 @@ static bool8 IsSoftwarePaletteFadeFinishing(void);
void LoadCompressedPalette(const void *src, u16 offset, u16 size)
{
- sub_800D238(src, sPaletteDecompressionBuffer);
+ LZDecompressWram(src, sPaletteDecompressionBuffer);
CpuCopy16(sPaletteDecompressionBuffer, gPlttBufferUnfaded + offset, size);
CpuCopy16(sPaletteDecompressionBuffer, gPlttBufferFaded + offset, size);
}
diff --git a/src/play_time.c b/src/engine/play_time.c
index 9882c9c4b..9882c9c4b 100644
--- a/src/play_time.c
+++ b/src/engine/play_time.c
diff --git a/src/record_mixing.c b/src/engine/record_mixing.c
index 8dff432c1..8dff432c1 100644
--- a/src/record_mixing.c
+++ b/src/engine/record_mixing.c
diff --git a/src/reset_rtc_screen.c b/src/engine/reset_rtc_screen.c
index d052992ad..d052992ad 100644
--- a/src/reset_rtc_screen.c
+++ b/src/engine/reset_rtc_screen.c
diff --git a/src/rng.c b/src/engine/rng.c
index 7d4b5600e..7d4b5600e 100644
--- a/src/rng.c
+++ b/src/engine/rng.c
diff --git a/src/rtc.c b/src/engine/rtc.c
index d73f943d2..d73f943d2 100644
--- a/src/rtc.c
+++ b/src/engine/rtc.c
diff --git a/src/save.c b/src/engine/save.c
index eae3f4470..eae3f4470 100644
--- a/src/save.c
+++ b/src/engine/save.c
diff --git a/src/save_failed_screen.c b/src/engine/save_failed_screen.c
index b91e8b5bf..b91e8b5bf 100644
--- a/src/save_failed_screen.c
+++ b/src/engine/save_failed_screen.c
diff --git a/src/save_menu_util.c b/src/engine/save_menu_util.c
index a2d17bd36..a2d17bd36 100644
--- a/src/save_menu_util.c
+++ b/src/engine/save_menu_util.c
diff --git a/src/script.c b/src/engine/script.c
index f049b96fc..8625cfdc2 100644
--- a/src/script.c
+++ b/src/engine/script.c
@@ -3,6 +3,14 @@
#include "event_data.h"
#define RAM_SCRIPT_MAGIC 51
+#define SCRIPT_STACK_SIZE 20
+
+enum
+{
+ SCRIPT_MODE_STOPPED,
+ SCRIPT_MODE_BYTECODE,
+ SCRIPT_MODE_NATIVE,
+};
EWRAM_DATA u8 *gUnknown_0202E8AC = NULL;
@@ -19,66 +27,66 @@ void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTable
{
s32 i;
- ctx->mode = 0;
- ctx->scriptPtr = 0;
+ ctx->mode = SCRIPT_MODE_STOPPED;
+ ctx->scriptPtr = NULL;
ctx->stackDepth = 0;
- ctx->nativePtr = 0;
+ ctx->nativePtr = NULL;
ctx->cmdTable = cmdTable;
ctx->cmdTableEnd = cmdTableEnd;
for (i = 0; i < 4; i++)
ctx->data[i] = 0;
- for (i = 0; i < 20; i++)
+ for (i = 0; i < SCRIPT_STACK_SIZE; i++)
ctx->stack[i] = 0;
}
u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr)
{
ctx->scriptPtr = ptr;
- ctx->mode = 1;
+ ctx->mode = SCRIPT_MODE_BYTECODE;
return 1;
}
void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void))
{
- ctx->mode = 2;
+ ctx->mode = SCRIPT_MODE_NATIVE;
ctx->nativePtr = ptr;
}
void StopScript(struct ScriptContext *ctx)
{
- ctx->mode = 0;
- ctx->scriptPtr = 0;
+ ctx->mode = SCRIPT_MODE_STOPPED;
+ ctx->scriptPtr = NULL;
}
-u8 RunScriptCommand(struct ScriptContext *ctx)
+bool8 RunScriptCommand(struct ScriptContext *ctx)
{
- if (ctx->mode == 0)
- return 0;
+ if (ctx->mode == SCRIPT_MODE_STOPPED)
+ return FALSE;
switch (ctx->mode)
{
- case 0:
- return 0;
- case 2:
+ case SCRIPT_MODE_STOPPED:
+ return FALSE;
+ case SCRIPT_MODE_NATIVE:
if (ctx->nativePtr)
{
if (ctx->nativePtr() == TRUE)
- ctx->mode = 1;
- return 1;
+ ctx->mode = SCRIPT_MODE_BYTECODE;
+ return TRUE;
}
- ctx->mode = 1;
- case 1:
+ ctx->mode = SCRIPT_MODE_BYTECODE;
+ case SCRIPT_MODE_BYTECODE:
while (1)
{
u8 cmdCode;
- ScrCmdFunc *func;
+ ScrCmdFunc *cmdFunc;
- if (!ctx->scriptPtr)
+ if (ctx->scriptPtr == NULL)
{
- ctx->mode = 0;
- return 0;
+ ctx->mode = SCRIPT_MODE_STOPPED;
+ return FALSE;
}
if (ctx->scriptPtr == gNullScriptPtr)
@@ -89,25 +97,25 @@ u8 RunScriptCommand(struct ScriptContext *ctx)
cmdCode = *(ctx->scriptPtr);
ctx->scriptPtr++;
- func = &ctx->cmdTable[cmdCode];
+ cmdFunc = &ctx->cmdTable[cmdCode];
- if (func >= ctx->cmdTableEnd)
+ if (cmdFunc >= ctx->cmdTableEnd)
{
- ctx->mode = 0;
- return 0;
+ ctx->mode = SCRIPT_MODE_STOPPED;
+ return FALSE;
}
- if ((*func)(ctx) == 1)
- return 1;
+ if ((*cmdFunc)(ctx) == TRUE)
+ return TRUE;
}
}
- return 1;
+ return TRUE;
}
u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr)
{
- if (ctx->stackDepth + 1 >= 20)
+ if (ctx->stackDepth + 1 >= SCRIPT_STACK_SIZE)
{
return 1;
}
diff --git a/src/sound.c b/src/engine/sound.c
index 91f5e06a3..a6a61c0b5 100644
--- a/src/sound.c
+++ b/src/engine/sound.c
@@ -81,8 +81,6 @@ void MapMusicMain(void)
PlayBGM(sCurrentMapMusic);
break;
case 2:
- case 3:
- case 4:
break;
case 5:
if (IsBGMStopped())
diff --git a/src/sprite.c b/src/engine/sprite.c
index fb8c2b648..fb8c2b648 100644
--- a/src/sprite.c
+++ b/src/engine/sprite.c
diff --git a/src/string_util.c b/src/engine/string_util.c
index 9686256a1..9686256a1 100644
--- a/src/string_util.c
+++ b/src/engine/string_util.c
diff --git a/src/task.c b/src/engine/task.c
index 7bd2b5937..7bd2b5937 100644
--- a/src/task.c
+++ b/src/engine/task.c
diff --git a/src/text.c b/src/engine/text.c
index 35f74b339..87903608f 100644
--- a/src/text.c
+++ b/src/engine/text.c
@@ -219,12 +219,12 @@ static const u8 sBrailleGlyphs[] = INCBIN_U8("graphics/fonts/font6_braille.1bpp"
static const u32 sDownArrowTiles[] = INCBIN_U32("graphics/fonts/down_arrow.4bpp");
// clang-format off
-#include "data/text/type1_map.h"
-#include "data/text/type3_map.h"
-#include "data/text/font1_widths.h"
-#include "data/text/font4_widths.h"
-#include "data/text/font0_widths.h"
-#include "data/text/font3_widths.h"
+#include "../data/text/type1_map.h"
+#include "../data/text/type3_map.h"
+#include "../data/text/font1_widths.h"
+#include "../data/text/font4_widths.h"
+#include "../data/text/font0_widths.h"
+#include "../data/text/font3_widths.h"
// clang-format on
const u16 gUnknownPalette_81E6692[] = INCBIN_U16("graphics/fonts/unknown_81E6692.gbapal");
diff --git a/src/text_window.c b/src/engine/text_window.c
index 9a88789d1..9a88789d1 100644
--- a/src/text_window.c
+++ b/src/engine/text_window.c
diff --git a/src/tileset_anim.c b/src/engine/tileset_anim.c
index 34685381d..34685381d 100644
--- a/src/tileset_anim.c
+++ b/src/engine/tileset_anim.c
diff --git a/src/time_events.c b/src/engine/time_events.c
index accb03db8..accb03db8 100644
--- a/src/time_events.c
+++ b/src/engine/time_events.c
diff --git a/src/trade.c b/src/engine/trade.c
index 37b91f57e..19381f4ee 100644
--- a/src/trade.c
+++ b/src/engine/trade.c
@@ -2403,7 +2403,7 @@ static void sub_8049ED4(u8 a0)
gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]].data0 = 20;
gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]].data2 = (gTradeMonSpriteCoords[6 * whichParty + whichPokemon][0] + gTradeMonSpriteCoords[6 * whichParty + whichPokemon + 1][0]) / 2 * 8 + 14;
gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]].data4 = gTradeMonSpriteCoords[6 * whichParty + whichPokemon][1] * 8 - 12;
- oamt_set_x3A_32(&gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]], sub_809D62C);
+ StoreSpriteCallbackInData6(&gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]], sub_809D62C);
gUnknown_03004824->unk_0080[a0] ++;
sub_8078A34(&gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]]);
HandleDestroyMenuCursors();
@@ -2617,7 +2617,7 @@ static void sub_8049ED4(u8 a0)
"\tlsls r0, 2\n"
"\tadds r0, r7\n"
"\tldr r1, _0804A0A0 @ =sub_809D62C\n"
- "\tbl oamt_set_x3A_32\n"
+ "\tbl StoreSpriteCallbackInData6\n"
"\tldr r2, _0804A09C @ =gUnknown_03004824\n"
"\tldr r1, [r2]\n"
"\tadds r1, 0x80\n"
@@ -3943,11 +3943,11 @@ static void sub_804B2D0(u8 whichParty, u8 a1)
species = GetMonData(pokemon, MON_DATA_SPECIES2);
personality = GetMonData(pokemon, MON_DATA_PERSONALITY);
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)ewram, gUnknown_081FAF4C[whichParty * 2 + 1], species, personality);
- LoadCompressedObjectPalette(sub_8040990(pokemon));
+ LoadCompressedObjectPalette(GetMonSpritePalStruct(pokemon));
gUnknown_03004828->tradeSpecies[whichParty] = species;
break;
case 1:
- GetMonSpriteTemplate_803C56C(sub_8040990(pokemon)->tag, v0);
+ GetMonSpriteTemplate_803C56C(GetMonSpritePalStruct(pokemon)->tag, v0);
gUnknown_03004828->pokePicSpriteIdxs[whichParty] = CreateSprite(&gUnknown_02024E8C, 0x78, 0x3c, 0x6);
gSprites[gUnknown_03004828->pokePicSpriteIdxs[whichParty]].invisible = TRUE;
gSprites[gUnknown_03004828->pokePicSpriteIdxs[whichParty]].callback = SpriteCallbackDummy;
@@ -4545,8 +4545,8 @@ static void sub_804BA18(u8 partyIdx)
if (!GetMonData(pokemon, MON_DATA_IS_EGG))
{
u16 species = SpeciesToNationalPokedexNum(GetMonData(pokemon, MON_DATA_SPECIES, NULL));
- GetNationalPokedexFlag(species, 2);
- GetNationalPokedexFlag(species, 3);
+ GetSetPokedexFlag(species, 2);
+ GetSetPokedexFlag(species, 3);
}
}
@@ -4949,7 +4949,7 @@ static bool8 sub_804C29C(void)
gUnknown_03004828->unk_00c4 ++;
break;
case 37:
- if (!sub_8040A3C(gUnknown_03004828->tradeSpecies[0]))
+ if (!IsPokeSpriteNotFlipped(gUnknown_03004828->tradeSpecies[0]))
{
gSprites[gUnknown_03004828->pokePicSpriteIdxs[0]].affineAnims = gSpriteAffineAnimTable_8215AC0;
gSprites[gUnknown_03004828->pokePicSpriteIdxs[0]].oam.affineMode = 3;
diff --git a/src/trainer_card.c b/src/engine/trainer_card.c
index bcb62ede6..bcb62ede6 100644
--- a/src/trainer_card.c
+++ b/src/engine/trainer_card.c
diff --git a/src/trig.c b/src/engine/trig.c
index e16a69e63..e16a69e63 100644
--- a/src/trig.c
+++ b/src/engine/trig.c
diff --git a/src/util.c b/src/engine/util.c
index 582b9f806..582b9f806 100644
--- a/src/util.c
+++ b/src/engine/util.c
diff --git a/src/bard_music.c b/src/field/bard_music.c
index daf003233..daf003233 100644
--- a/src/bard_music.c
+++ b/src/field/bard_music.c
diff --git a/src/berry.c b/src/field/berry.c
index d82eab2a6..d82eab2a6 100644
--- a/src/berry.c
+++ b/src/field/berry.c
diff --git a/src/berry_tag_screen.c b/src/field/berry_tag_screen.c
index 1413a02ca..1413a02ca 100644
--- a/src/berry_tag_screen.c
+++ b/src/field/berry_tag_screen.c
diff --git a/src/bike.c b/src/field/bike.c
index dae86bd88..8df901b40 100644
--- a/src/bike.c
+++ b/src/field/bike.c
@@ -935,13 +935,13 @@ void GetOnOffBike(u8 var)
if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE))
{
SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT);
- sav1_reset_battle_music_maybe();
- sub_8053E90();
+ Overworld_ClearSavedMusic();
+ Overworld_PlaySpecialMapMusic();
}
else
{
SetPlayerAvatarTransitionFlags(var);
- sav1_set_battle_music_maybe(BGM_CYCLING);
+ Overworld_SetSavedMusic(BGM_CYCLING);
Overworld_ChangeMusicTo(BGM_CYCLING);
}
}
diff --git a/src/birch_pc.c b/src/field/birch_pc.c
index 5fb6427c3..9872dd54d 100644
--- a/src/birch_pc.c
+++ b/src/field/birch_pc.c
@@ -91,15 +91,15 @@ const u8 *GetPokedexRatingText(u16 count)
return gBirchDexRatingText_LessThan200;
if (count == 200)
{
- if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1)
- || GetNationalPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // Jirachi or Deoxys is not counted towards the dex completion. If either of these flags are enabled, it means the actual count is less than 200.
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1)
+ || GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // Jirachi or Deoxys is not counted towards the dex completion. If either of these flags are enabled, it means the actual count is less than 200.
return gBirchDexRatingText_LessThan200;
return gBirchDexRatingText_DexCompleted;
}
if (count == 201)
{
- if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1)
- && GetNationalPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // If both of these flags are enabled, it means the actual count is less than 200.
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1)
+ && GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // If both of these flags are enabled, it means the actual count is less than 200.
return gBirchDexRatingText_LessThan200;
return gBirchDexRatingText_DexCompleted;
}
diff --git a/src/braille_puzzles.c b/src/field/braille_puzzles.c
index b11b1ff3a..b11b1ff3a 100644
--- a/src/braille_puzzles.c
+++ b/src/field/braille_puzzles.c
diff --git a/src/choose_party.c b/src/field/choose_party.c
index 9cdf63fc8..9cdf63fc8 100644
--- a/src/choose_party.c
+++ b/src/field/choose_party.c
diff --git a/src/coins.c b/src/field/coins.c
index 3c6356612..91a4b508d 100644
--- a/src/coins.c
+++ b/src/field/coins.c
@@ -6,47 +6,47 @@
#define MAX_COINS 9999
-void UpdateCoinsWindow(s32 a, u8 b, u8 c)
+void UpdateCoinsWindow(s32 coins, u8 x, u8 y)
{
- PrintCoins(a, 4, b + 2, c + 1);
+ PrintCoins(coins, 4, x + 2, y + 1);
}
-void ShowCoinsWindow(u32 a, u8 b, u8 c)
+void ShowCoinsWindow(u32 coins, u8 x, u8 y)
{
- MenuDrawTextWindow(b, c, b + 9, c + 3);
- UpdateCoinsWindow(a, b, c);
+ MenuDrawTextWindow(x, y, x + 9, y + 3);
+ UpdateCoinsWindow(coins, x, y);
}
-void HideCoinsWindow(u8 a, u8 b)
+void HideCoinsWindow(u8 x, u8 y)
{
- MenuZeroFillWindowRect(a, b, a + 9, b + 3);
+ MenuZeroFillWindowRect(x, y, x + 9, y + 3);
}
-void PrintCoins(s32 a, u8 b, u8 c, u8 d)
+void PrintCoins(s32 coins, u8 b, u8 x, u8 y)
{
u8 string[16];
u8 *ptr;
u8 r1;
u8 foo;
- ConvertIntToDecimalString(string, a);
+ ConvertIntToDecimalString(string, coins);
r1 = (b * 6 + 0x21 - 8 * (b + 2));
- c = c - r1 / 8;
+ x = x - r1 / 8;
foo = r1 % 8;
ptr = gStringVar1;
if (foo)
{
- ptr[0] = 0xFC;
+ ptr[0] = EXT_CTRL_CODE_BEGIN;
ptr[1] = 0x11;
ptr[2] = 8 - (foo);
ptr += 3;
}
- ptr[0] = 0xFC;
+ ptr[0] = EXT_CTRL_CODE_BEGIN;
ptr[1] = 0x11;
ptr[2] = (b - StringLength(string)) * 6;
ptr += 3;
StringCopy(ptr, string);
- MenuPrint(gOtherText_Coins2, c, d);
+ MenuPrint(gOtherText_Coins2, x, y);
}
u16 GetCoins(void)
diff --git a/src/coord_event_weather.c b/src/field/coord_event_weather.c
index 9c5a1ca4d..9c5a1ca4d 100644
--- a/src/coord_event_weather.c
+++ b/src/field/coord_event_weather.c
diff --git a/src/daycare.c b/src/field/daycare.c
index 591b5b188..591b5b188 100644
--- a/src/daycare.c
+++ b/src/field/daycare.c
diff --git a/src/decoration.c b/src/field/decoration.c
index 1d48692c1..e067191e9 100644
--- a/src/decoration.c
+++ b/src/field/decoration.c
@@ -619,7 +619,7 @@ const u8 DecorDesc_REGISTEEL_DOLL[] = _(
"Place it on a mat\n"
"or a desk.");
#elif GERMAN
-#include "data/decoration/descriptions_de.h"
+#include "../data/decoration/descriptions_de.h"
#endif
const u16 DecorGfx_SMALL_DESK[] = {
@@ -1389,7 +1389,7 @@ const struct Decoration gDecorations[] = {
{DECOR_REGISTEEL_DOLL, _("REGISTEEL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_REGISTEEL_DOLL, DecorGfx_REGISTEEL_DOLL}
};
#elif GERMAN
-#include "data/decoration/decorations.h"
+#include "../data/decoration/decorations.h"
#endif
const u8 *const gUnknown_083EC5E4[] = {
@@ -2199,7 +2199,7 @@ void sub_80FF0E0(u8 taskId)
void sub_80FF114(u8 taskId)
{
DrawWholeMapView();
- warp1_set(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gTasks[taskId].data[3], gTasks[taskId].data[4]);
+ Overworld_SetWarpDestination(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gTasks[taskId].data[3], gTasks[taskId].data[4]);
warp_in();
}
void sub_80FF160(u8 taskId)
diff --git a/src/decoration_inventory.c b/src/field/decoration_inventory.c
index 083cb260c..083cb260c 100644
--- a/src/decoration_inventory.c
+++ b/src/field/decoration_inventory.c
diff --git a/src/dewford_trend.c b/src/field/dewford_trend.c
index aaf4dd66a..aaf4dd66a 100644
--- a/src/dewford_trend.c
+++ b/src/field/dewford_trend.c
diff --git a/src/diploma.c b/src/field/diploma.c
index 27601404c..27601404c 100644
--- a/src/diploma.c
+++ b/src/field/diploma.c
diff --git a/src/easy_chat.c b/src/field/easy_chat.c
index e71067454..6014b3d14 100644
--- a/src/easy_chat.c
+++ b/src/field/easy_chat.c
@@ -430,7 +430,7 @@ static u16 sub_80EB9D8(void)
for (i = 0; i < gEasyChatGroupSizes[EC_GROUP_POKEMON]; i++)
{
const u16 dexNum = SpeciesToNationalPokedexNum(*speciesList);
- const u8 local2 = GetNationalPokedexFlag(dexNum, 0);
+ const u8 local2 = GetSetPokedexFlag(dexNum, 0);
if (local2)
{
diff --git a/src/event_data.c b/src/field/event_data.c
index ee475343f..43d49c417 100644
--- a/src/event_data.c
+++ b/src/field/event_data.c
@@ -114,10 +114,8 @@ u16 *GetVarPointer(u16 id)
{
if (id < 0x4000)
return NULL;
-
- if ((s16)id >= 0)
+ if (id < 0x8000)
return &gSaveBlock1.vars[id - 0x4000];
-
return gSpecialVars[id - 0x8000];
}
diff --git a/src/field_camera.c b/src/field/field_camera.c
index db51cf054..db51cf054 100644
--- a/src/field_camera.c
+++ b/src/field/field_camera.c
diff --git a/src/field_control_avatar.c b/src/field/field_control_avatar.c
index ff8e8504c..ff8e8504c 100644
--- a/src/field_control_avatar.c
+++ b/src/field/field_control_avatar.c
diff --git a/src/field_door.c b/src/field/field_door.c
index ab46f0696..ab46f0696 100644
--- a/src/field_door.c
+++ b/src/field/field_door.c
diff --git a/src/field_effect.c b/src/field/field_effect.c
index 72224f299..afe020ac7 100644
--- a/src/field_effect.c
+++ b/src/field/field_effect.c
@@ -660,7 +660,7 @@ u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subprio
const struct CompressedSpritePalette *spritePalette;
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)gUnknown_081FAF4C[3] /* this is actually u8* or something, pointing to ewram */, gUnknown_081FAF4C[3], species, g);
- spritePalette = sub_80409C8(species, d, g);
+ spritePalette = GetMonSpritePalStructFromOtIdPersonality(species, d, g);
LoadCompressedObjectPalette(spritePalette);
GetMonSpriteTemplate_803C56C(species, 3);
gUnknown_02024E8C.paletteTag = spritePalette->tag;
@@ -1213,7 +1213,7 @@ void task00_8084310(u8 taskId)
}
if (!FieldEffectActiveListContains(FLDEFF_USE_FLY))
{
- flag_var_implications_of_teleport_();
+ Overworld_ResetStateAfterFly();
warp_in();
SetMainCallback2(CB2_LoadMap);
gFieldCallback = mapldr_08084390;
@@ -1223,7 +1223,7 @@ void task00_8084310(u8 taskId)
void mapldr_08084390(void)
{
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
pal_fill_black();
CreateTask(c3_080843F8, 0);
gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = 1;
@@ -1264,7 +1264,7 @@ extern void CameraObjectReset1(void);
void sub_8086748(void)
{
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
pal_fill_for_map_transition();
ScriptContext2_Enable();
FreezeMapObjects();
@@ -1533,7 +1533,7 @@ void sub_8086C40(void)
void sub_8086C94(void)
{
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
pal_fill_for_map_transition();
ScriptContext2_Enable();
CreateTask(sub_8086CBC, 0);
@@ -1897,7 +1897,7 @@ void sub_8087470(u8);
void mapldr_080851BC(void)
{
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
pal_fill_for_map_transition();
ScriptContext2_Enable();
gFieldCallback = NULL;
@@ -2134,7 +2134,7 @@ void sub_8087A74(u8);
void mapldr_080859D4(void)
{
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
pal_fill_for_map_transition();
ScriptContext2_Enable();
FreezeMapObjects();
@@ -2266,7 +2266,7 @@ void sub_8087D78(struct Task *task)
{
if (!gPaletteFade.active && sub_8054034() == TRUE)
{
- sub_8053570();
+ Overworld_SetWarpDestToLastHealLoc();
warp_in();
SetMainCallback2(CB2_LoadMap);
gFieldCallback = mapldr_08085D88;
@@ -2278,7 +2278,7 @@ void sub_8087E1C(u8);
void mapldr_08085D88(void)
{
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
pal_fill_for_map_transition();
ScriptContext2_Enable();
FreezeMapObjects();
@@ -2879,7 +2879,7 @@ u8 FldEff_UseSurf(void)
u8 taskId;
taskId = CreateTask(sub_8088954, 0xff);
gTasks[taskId].data[15] = gFieldEffectArguments[0];
- sav1_reset_battle_music_maybe();
+ Overworld_ClearSavedMusic();
Overworld_ChangeMusicTo(0x016d);
return FALSE;
}
diff --git a/src/field_effect_helpers.c b/src/field/field_effect_helpers.c
index 2ad8bdce3..2ad8bdce3 100644
--- a/src/field_effect_helpers.c
+++ b/src/field/field_effect_helpers.c
diff --git a/src/field_fadetransition.c b/src/field/field_fadetransition.c
index d95177821..82776d18c 100644
--- a/src/field_fadetransition.c
+++ b/src/field/field_fadetransition.c
@@ -89,7 +89,7 @@ void task0A_asap_script_env_2_enable_and_set_ctx_running(u8 taskID)
void sub_8080990(void)
{
ScriptContext2_Enable();
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
pal_fill_black();
CreateTask(task0A_asap_script_env_2_enable_and_set_ctx_running, 10);
}
@@ -130,7 +130,7 @@ void task_mpl_807DD60(u8 taskId)
void sub_8080A3C(void)
{
ScriptContext2_Enable();
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
palette_bg_fill_black();
CreateTask(task_mpl_807DD60, 10);
}
@@ -165,7 +165,7 @@ void sub_8080A5C(u8 taskId)
void sub_8080AC4(void)
{
ScriptContext2_Enable();
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
palette_bg_fill_black();
CreateTask(sub_8080A5C, 10);
}
@@ -188,7 +188,7 @@ void sub_8080AE4(void)
void mapldr_default(void)
{
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
pal_fill_for_map_transition();
sub_8080AE4();
ScriptContext2_Enable();
@@ -196,7 +196,7 @@ void mapldr_default(void)
void sub_8080B60(void)
{
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
pal_fill_black();
sub_8080AE4();
ScriptContext2_Enable();
@@ -204,7 +204,7 @@ void sub_8080B60(void)
void sub_8080B78(void)
{
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
pal_fill_for_map_transition();
PlaySE(SE_TK_WARPOUT);
CreateTask(task_map_chg_seq_0807E2CC, 10);
@@ -354,7 +354,7 @@ void sub_8080E28(void)
void sub_8080E44(void)
{
ScriptContext2_Enable();
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
pal_fill_black();
CreateTask(task_mpl_807E3C8, 10);
}
diff --git a/src/field_ground_effect.c b/src/field/field_ground_effect.c
index 5af8ea3e3..5af8ea3e3 100644
--- a/src/field_ground_effect.c
+++ b/src/field/field_ground_effect.c
diff --git a/src/field_map_obj.c b/src/field/field_map_obj.c
index 59319a16e..0cba448a9 100644
--- a/src/field_map_obj.c
+++ b/src/field/field_map_obj.c
@@ -2462,24 +2462,24 @@ extern void sub_8064970(struct Sprite *);
extern void sub_8060470(s16 *, s16 *, s16, s16);
extern void InitObjectPriorityByZCoord();
-u8 sub_805B410(u8 a, u8 b, s16 c, s16 d, u8 e, u8 f)
+u8 sub_805B410(u8 graphicsId, u8 b, s16 x, s16 y, u8 elevation, u8 direction)
{
const struct MapObjectGraphicsInfo *gfxInfo;
struct SpriteTemplate spriteTemplate;
const struct SubspriteTable *subspriteTables;
u8 spriteId;
- gfxInfo = GetFieldObjectGraphicsInfo(a);
- MakeObjectTemplateFromFieldObjectGraphicsInfo(a, sub_8064970, &spriteTemplate, &subspriteTables);
+ gfxInfo = GetFieldObjectGraphicsInfo(graphicsId);
+ MakeObjectTemplateFromFieldObjectGraphicsInfo(graphicsId, sub_8064970, &spriteTemplate, &subspriteTables);
#ifdef NONMATCHING
spriteTemplate.paletteTag = 0xFFFF;
#else
*(u16 *)&spriteTemplate.paletteTag = 0xFFFF;
#endif
- c += 7;
- d += 7;
- sub_8060470(&c, &d, 8, 16);
- spriteId = CreateSpriteAtEnd(&spriteTemplate, c, d, 0);
+ x += 7;
+ y += 7;
+ sub_8060470(&x, &y, 8, 16);
+ spriteId = CreateSpriteAtEnd(&spriteTemplate, x, y, 0);
if (spriteId != 64)
{
struct Sprite *sprite = &gSprites[spriteId];
@@ -2490,7 +2490,7 @@ u8 sub_805B410(u8 a, u8 b, s16 c, s16 d, u8 e, u8 f)
sprite->oam.paletteNum = gfxInfo->paletteSlot;
sprite->coordOffsetEnabled = TRUE;
sprite->data0 = b;
- sprite->data1 = e;
+ sprite->data1 = elevation;
if (gfxInfo->paletteSlot == 10)
npc_load_two_palettes__and_record(gfxInfo->paletteTag1, gfxInfo->paletteSlot);
if (subspriteTables != NULL)
@@ -2498,9 +2498,9 @@ u8 sub_805B410(u8 a, u8 b, s16 c, s16 d, u8 e, u8 f)
SetSubspriteTables(sprite, subspriteTables);
sprite->subspriteMode = 2;
}
- InitObjectPriorityByZCoord(sprite, e);
- SetObjectSubpriorityByZCoord(e, sprite, 1);
- StartSpriteAnim(sprite, FieldObjectDirectionToImageAnimId(f));
+ InitObjectPriorityByZCoord(sprite, elevation);
+ SetObjectSubpriorityByZCoord(elevation, sprite, 1);
+ StartSpriteAnim(sprite, FieldObjectDirectionToImageAnimId(direction));
}
return spriteId;
}
diff --git a/src/field_map_obj_helpers.c b/src/field/field_map_obj_helpers.c
index b453d3794..b453d3794 100644
--- a/src/field_map_obj_helpers.c
+++ b/src/field/field_map_obj_helpers.c
diff --git a/src/field_message_box.c b/src/field/field_message_box.c
index 35aac7ac9..35aac7ac9 100644
--- a/src/field_message_box.c
+++ b/src/field/field_message_box.c
diff --git a/src/field_player_avatar.c b/src/field/field_player_avatar.c
index e7947b704..6c1c9123a 100644
--- a/src/field_player_avatar.c
+++ b/src/field/field_player_avatar.c
@@ -1365,8 +1365,8 @@ void sub_805A20C(u8 a)
u8 taskId;
ScriptContext2_Enable();
- sav1_reset_battle_music_maybe();
- sub_8053F84();
+ Overworld_ClearSavedMusic();
+ Overworld_ChangeMusicToDefault();
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_SURFING;
gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_ON_FOOT;
gPlayerAvatar.unk6 = 1;
diff --git a/src/field_poison.c b/src/field/field_poison.c
index 1244b9c62..1244b9c62 100644
--- a/src/field_poison.c
+++ b/src/field/field_poison.c
diff --git a/src/field_region_map.c b/src/field/field_region_map.c
index 7cb22e5df..7cb22e5df 100644
--- a/src/field_region_map.c
+++ b/src/field/field_region_map.c
diff --git a/src/field_screen_effect.c b/src/field/field_screen_effect.c
index 1464a99b1..0c76d254d 100644
--- a/src/field_screen_effect.c
+++ b/src/field/field_screen_effect.c
@@ -327,7 +327,7 @@ static void task50_0807F0C8(u8);
void sub_8081924(void)
{
- sub_8054044();
+ Overworld_FadeOutMapMusic();
CreateTask(task50_0807F0C8, 80);
}
diff --git a/src/field_special_scene.c b/src/field/field_special_scene.c
index 38c076c51..d4b59c8a2 100644
--- a/src/field_special_scene.c
+++ b/src/field/field_special_scene.c
@@ -250,7 +250,7 @@ bool8 sub_80C7754(void)
}
else
{
- warp1_set(mapGroup, mapNum, -1, x, y);
+ Overworld_SetWarpDestination(mapGroup, mapNum, -1, x, y);
return TRUE;
}
}
diff --git a/src/field_specials.c b/src/field/field_specials.c
index c23ea2ddc..36362d098 100644
--- a/src/field_specials.c
+++ b/src/field/field_specials.c
@@ -213,7 +213,7 @@ void UpdateCyclingRoadState(void) {
if (VarGet(0x40a9) == 2 || VarGet(0x40a9) == 3)
{
VarSet(0x40a9, 0);
- sav1_set_battle_music_maybe(SE_STOP);
+ Overworld_SetSavedMusic(SE_STOP);
}
}
@@ -700,11 +700,11 @@ void CableCarWarp(void)
{
if (gSpecialVar_0x8004 != 0)
{
- warp1_set(MAP_GROUP_ROUTE112_CABLE_CAR_STATION, MAP_ID_ROUTE112_CABLE_CAR_STATION, -1, 6, 4);
+ Overworld_SetWarpDestination(MAP_GROUP_ROUTE112_CABLE_CAR_STATION, MAP_ID_ROUTE112_CABLE_CAR_STATION, -1, 6, 4);
}
else
{
- warp1_set(MAP_GROUP_MT_CHIMNEY_CABLE_CAR_STATION, MAP_ID_MT_CHIMNEY_CABLE_CAR_STATION, -1, 6, 4);
+ Overworld_SetWarpDestination(MAP_GROUP_MT_CHIMNEY_CABLE_CAR_STATION, MAP_ID_MT_CHIMNEY_CABLE_CAR_STATION, -1, 6, 4);
}
}
diff --git a/src/field_tasks.c b/src/field/field_tasks.c
index da6f162c2..da6f162c2 100644
--- a/src/field_tasks.c
+++ b/src/field/field_tasks.c
diff --git a/src/field_weather.c b/src/field/field_weather.c
index 443a38357..443a38357 100644
--- a/src/field_weather.c
+++ b/src/field/field_weather.c
diff --git a/src/fieldmap.c b/src/field/fieldmap.c
index 7a31ae720..7a31ae720 100644
--- a/src/fieldmap.c
+++ b/src/field/fieldmap.c
diff --git a/src/fldeff_cut.c b/src/field/fldeff_cut.c
index 00643a979..00643a979 100644
--- a/src/fldeff_cut.c
+++ b/src/field/fldeff_cut.c
diff --git a/src/fldeff_flash.c b/src/field/fldeff_flash.c
index 1ee8a8f05..1ee8a8f05 100644
--- a/src/fldeff_flash.c
+++ b/src/field/fldeff_flash.c
diff --git a/src/fldeff_softboiled.c b/src/field/fldeff_softboiled.c
index cb26d9966..cb26d9966 100644
--- a/src/fldeff_softboiled.c
+++ b/src/field/fldeff_softboiled.c
diff --git a/src/fldeff_strength.c b/src/field/fldeff_strength.c
index d9603d094..d9603d094 100644
--- a/src/fldeff_strength.c
+++ b/src/field/fldeff_strength.c
diff --git a/src/fldeff_sweetscent.c b/src/field/fldeff_sweetscent.c
index b9dbf619d..b9dbf619d 100644
--- a/src/fldeff_sweetscent.c
+++ b/src/field/fldeff_sweetscent.c
diff --git a/src/fldeff_teleport.c b/src/field/fldeff_teleport.c
index af48fb414..af48fb414 100644
--- a/src/fldeff_teleport.c
+++ b/src/field/fldeff_teleport.c
diff --git a/src/heal_location.c b/src/field/heal_location.c
index 42bc18567..42bc18567 100644
--- a/src/heal_location.c
+++ b/src/field/heal_location.c
diff --git a/src/hof_pc.c b/src/field/hof_pc.c
index aeeb7fe17..267ed4274 100644
--- a/src/hof_pc.c
+++ b/src/field/hof_pc.c
@@ -28,7 +28,7 @@ void ReturnFromHallOfFamePC(void)
static void ReshowPCMenuAfterHallOfFamePC(void)
{
ScriptContext2_Enable();
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
ScrSpecial_CreatePCMenu();
ScriptMenu_DisplayPCStartupPrompt();
diff --git a/src/item.c b/src/field/item.c
index 36871285a..fd49f5c39 100644
--- a/src/item.c
+++ b/src/field/item.c
@@ -30,11 +30,11 @@ enum
};
#if ENGLISH
-#include "data/item_descriptions_en.h"
-#include "data/items_en.h"
+#include "../data/item_descriptions_en.h"
+#include "../data/items_en.h"
#elif GERMAN
-#include "data/item_descriptions_de.h"
-#include "data/items_de.h"
+#include "../data/item_descriptions_de.h"
+#include "../data/items_de.h"
#endif
static void CompactPCItems(void);
diff --git a/src/item_menu.c b/src/field/item_menu.c
index 891eb135f..c508bcacf 100644
--- a/src/item_menu.c
+++ b/src/field/item_menu.c
@@ -152,7 +152,7 @@ static u8 sReturnLocation;
static const u8 *sPopupMenuActionList;
// common
-void (*gUnknown_03005D00)(u8) = NULL;
+void (*gFieldItemUseCallback)(u8) = NULL;
extern u16 gUnknown_030041B4;
extern struct PocketScrollState gBagPocketScrollStates[];
extern struct ItemSlot *gCurrentBagPocketItemSlots; // selected pocket item slots
@@ -2718,7 +2718,7 @@ void ExecuteItemUseFromBlackPalette(void)
static void Task_CallItemUseOnFieldCallback(u8 taskId)
{
if (sub_807D770() == TRUE)
- gUnknown_03005D00(taskId);
+ gFieldItemUseCallback(taskId);
}
void sub_80A5D04(void)
@@ -4492,7 +4492,7 @@ static void LoadBerryPic(u8 berryId)
spritePal.data = (u16 *)sBerryGraphicsTable[berryId].lzPalette;
spritePal.tag = 0x7544;
LoadCompressedObjectPalette((struct CompressedSpritePalette *)&spritePal);
- sub_800D238(sBerryGraphicsTable[berryId].lzPic, ewramBerryPicTemp);
+ LZDecompressWram(sBerryGraphicsTable[berryId].lzPic, ewramBerryPicTemp);
DrawBerryPic(ewramBerryPicTemp, ewramBerryPic);
}
}
diff --git a/src/item_use.c b/src/field/item_use.c
index 8bc83bdc6..68da27fdb 100644
--- a/src/item_use.c
+++ b/src/field/item_use.c
@@ -36,7 +36,7 @@
#include "task.h"
#include "vars.h"
-extern void (*gUnknown_03005D00)(u8);
+extern void (*gFieldItemUseCallback)(u8);
extern void (*gFieldCallback)(void);
extern void (*gUnknown_0300485C)(void);
extern void (*gUnknown_03004AE4)(u8, u16, TaskFunc);
@@ -106,11 +106,13 @@ void SetUpItemUseOnFieldCallback(u8 taskId)
{
if (gTasks[taskId].data[2] != 1)
{
- gFieldCallback = (void *)ExecuteItemUseFromBlackPalette;
+ gFieldCallback = ExecuteItemUseFromBlackPalette;
ItemMenu_ConfirmNormalFade(taskId);
}
else
- gUnknown_03005D00(taskId);
+ {
+ gFieldItemUseCallback(taskId);
+ }
}
void HandleDeniedItemUseMessage(u8 var1, u8 playerMenuStatus, const u8 *text)
@@ -185,9 +187,9 @@ void ItemUseOutOfBattle_Bike(u8 taskId)
}
else
{
- if (Overworld_IsBikeAllowedOnCurrentMap() == TRUE && IsBikingDisallowedByPlayer() == FALSE)
+ if (Overworld_IsBikingAllowed() == TRUE && IsBikingDisallowedByPlayer() == FALSE)
{
- gUnknown_03005D00 = (void *)ItemUseOnFieldCB_Bike;
+ gFieldItemUseCallback = (void *)ItemUseOnFieldCB_Bike;
SetUpItemUseOnFieldCallback(taskId);
}
else
@@ -241,7 +243,7 @@ void ItemUseOutOfBattle_Rod(u8 taskId)
{
if (CanFish() == TRUE)
{
- gUnknown_03005D00 = (void *)ItemUseOnFieldCB_Rod;
+ gFieldItemUseCallback = (void *)ItemUseOnFieldCB_Rod;
SetUpItemUseOnFieldCallback(taskId);
}
else
@@ -257,7 +259,7 @@ void ItemUseOnFieldCB_Rod(u8 taskId)
void ItemUseOutOfBattle_Itemfinder(u8 var)
{
IncrementGameStat(0x27);
- gUnknown_03005D00 = (void *)ItemUseOnFieldCB_Itemfinder;
+ gFieldItemUseCallback = (void *)ItemUseOnFieldCB_Itemfinder;
SetUpItemUseOnFieldCallback(var);
}
@@ -780,7 +782,7 @@ void sub_80C9C7C(u8 taskId)
{
if (IsPlayerFacingPlantedBerryTree() == TRUE)
{
- gUnknown_03005D00 = sub_80C9D00;
+ gFieldItemUseCallback = sub_80C9D00;
gFieldCallback = ExecuteItemUseFromBlackPalette;
gTasks[taskId].data[8] = (u32)c2_exit_to_overworld_2_switch >> 16;
gTasks[taskId].data[9] = (u32)c2_exit_to_overworld_2_switch;
@@ -805,7 +807,7 @@ void ItemUseOutOfBattle_WailmerPail(u8 taskId)
{
if (TryToWaterBerryTree() == TRUE)
{
- gUnknown_03005D00 = sub_80C9D74;
+ gFieldItemUseCallback = sub_80C9D74;
SetUpItemUseOnFieldCallback(taskId);
}
else
@@ -909,7 +911,7 @@ void sub_80C9FC0(u8 var)
sub_80C9D98(var);
}
-void sub_80C9FDC(void)
+static void PrepareItemUseMessage(void)
{
RemoveBagItem(gScriptItemId, 1);
sub_80A3E0C();
@@ -922,7 +924,7 @@ void ItemUseOutOfBattle_Repel(u8 var)
if (VarGet(VAR_REPEL_STEP_COUNT) == FALSE)
{
VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gScriptItemId));
- sub_80C9FDC();
+ PrepareItemUseMessage();
DisplayItemMessageOnField(var, gStringVar4, CleanUpItemMenuMessage, 1);
}
else
@@ -975,10 +977,10 @@ void task08_080A1C44(u8 taskId)
DestroyTask(taskId);
}
-void sub_80CA18C(u8 taskId)
+void EscapeRopeCallback(u8 taskId)
{
- sub_8053014();
- sub_80C9FDC();
+ Overworld_ResetStateAfterDigEscRope();
+ PrepareItemUseMessage();
gTasks[taskId].data[0] = 0;
DisplayItemMessageOnField(taskId, gStringVar4, task08_080A1C44, 0);
}
@@ -995,7 +997,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId)
{
if (CanUseEscapeRopeOnCurrMap() == TRUE)
{
- gUnknown_03005D00 = sub_80CA18C;
+ gFieldItemUseCallback = EscapeRopeCallback;
SetUpItemUseOnFieldCallback(taskId);
}
else
@@ -1114,7 +1116,7 @@ void ItemUseInBattle_Escape(u8 taskId)
if((gBattleTypeFlags & BATTLE_TYPE_TRAINER) == FALSE)
{
- sub_80C9FDC();
+ PrepareItemUseMessage();
DisplayItemMessageOnField(taskId, gStringVar4, sub_80A7094, 1);
}
else
diff --git a/src/landmark.c b/src/field/landmark.c
index 6a53716bb..6a53716bb 100644
--- a/src/landmark.c
+++ b/src/field/landmark.c
diff --git a/src/lottery_corner.c b/src/field/lottery_corner.c
index c2c25b9ac..c2c25b9ac 100644
--- a/src/lottery_corner.c
+++ b/src/field/lottery_corner.c
diff --git a/src/map_name_popup.c b/src/field/map_name_popup.c
index 01105d0db..01105d0db 100644
--- a/src/map_name_popup.c
+++ b/src/field/map_name_popup.c
diff --git a/src/map_obj_lock.c b/src/field/map_obj_lock.c
index 2856320b8..2856320b8 100644
--- a/src/map_obj_lock.c
+++ b/src/field/map_obj_lock.c
diff --git a/src/mauville_man.c b/src/field/mauville_man.c
index 33bc39648..33bc39648 100644
--- a/src/mauville_man.c
+++ b/src/field/mauville_man.c
diff --git a/src/menu_helpers.c b/src/field/menu_helpers.c
index 14e823355..14e823355 100644
--- a/src/menu_helpers.c
+++ b/src/field/menu_helpers.c
diff --git a/src/metatile_behavior.c b/src/field/metatile_behavior.c
index d05ba0b89..d05ba0b89 100644
--- a/src/metatile_behavior.c
+++ b/src/field/metatile_behavior.c
diff --git a/src/money.c b/src/field/money.c
index 5d0f0ae8d..5d0f0ae8d 100644
--- a/src/money.c
+++ b/src/field/money.c
diff --git a/src/overworld.c b/src/field/overworld.c
index 9b41a262d..d6f255409 100644
--- a/src/overworld.c
+++ b/src/field/overworld.c
@@ -91,7 +91,7 @@ extern struct MapHeader * const * const gMapGroups[];
extern s32 gMaxFlashLevel;
EWRAM_DATA struct WarpData gUnknown_020297F0 = {0};
-EWRAM_DATA struct WarpData gUnknown_020297F8 = {0};
+EWRAM_DATA struct WarpData gWarpDestination = {0}; // new warp position
EWRAM_DATA struct WarpData gUnknown_02029800 = {0};
EWRAM_DATA struct WarpData gUnknown_02029808 = {0};
EWRAM_DATA struct UnkPlayerStruct gUnknown_02029810 = {0};
@@ -195,12 +195,12 @@ static void DoWhiteOut(void)
ScriptContext2_RunNewScript(S_WhiteOut);
gSaveBlock1.money /= 2;
ScrSpecial_HealPlayerParty();
- sub_8053050();
- sub_8053570();
+ Overworld_ResetStateAfterWhiteOut();
+ Overworld_SetWarpDestToLastHealLoc();
warp_in();
}
-void flag_var_implications_of_teleport_(void)
+void Overworld_ResetStateAfterFly(void)
{
player_avatar_init_params_reset();
FlagClear(SYS_CYCLING_ROAD);
@@ -221,7 +221,7 @@ void Overworld_ResetStateAfterTeleport(void)
ScriptContext2_RunNewScript(gUnknown_0819FC9F);
}
-void sub_8053014(void)
+void Overworld_ResetStateAfterDigEscRope(void)
{
player_avatar_init_params_reset();
FlagClear(SYS_CYCLING_ROAD);
@@ -231,7 +231,7 @@ void sub_8053014(void)
FlagClear(SYS_USE_FLASH);
}
-void sub_8053050(void)
+void Overworld_ResetStateAfterWhiteOut(void)
{
player_avatar_init_params_reset();
FlagClear(SYS_CYCLING_ROAD);
@@ -283,9 +283,12 @@ void SetGameStat(u8 index, u32 value)
gSaveBlock1.gameStats[index] = value;
}
-void sub_8053154(void)
+void LoadMapObjTemplatesFromHeader(void)
{
+ // Clear map object templates
CpuFill32(0, gSaveBlock1.mapObjectTemplates, sizeof(gSaveBlock1.mapObjectTemplates));
+
+ // Copy map header events to save block
CpuCopy32(gMapHeader.events->mapObjects,
gSaveBlock1.mapObjectTemplates,
gMapHeader.events->mapObjectCount * sizeof(struct MapObjectTemplate));
@@ -300,7 +303,7 @@ static void LoadSaveblockMapObjScripts(void)
mapObjectTemplates[i].script = gMapHeader.events->mapObjects[i].script;
}
-void Overworld_SaveMapObjCoords(u8 localId, s16 x, s16 y)
+void Overworld_SetMapObjTemplateCoords(u8 localId, s16 x, s16 y)
{
s32 i;
for (i = 0; i < 64; i++)
@@ -315,9 +318,10 @@ void Overworld_SaveMapObjCoords(u8 localId, s16 x, s16 y)
}
}
-void Overworld_SaveMapObjMovementType(u8 localId, u8 movementType)
+void Overworld_SetMapObjTemplateMovementType(u8 localId, u8 movementType)
{
s32 i;
+
for (i = 0; i < 64; i++)
{
struct MapObjectTemplate *mapObjectTemplate = &gSaveBlock1.mapObjectTemplates[i];
@@ -346,15 +350,15 @@ static struct MapData *get_mapdata_header(void)
return NULL;
}
-static void warp_shift(void)
+static void ApplyCurrentWarp(void)
{
gUnknown_020297F0 = gSaveBlock1.location;
- gSaveBlock1.location = gUnknown_020297F8;
+ gSaveBlock1.location = gWarpDestination;
gUnknown_02029800 = sDummyWarpData;
gUnknown_02029808 = sDummyWarpData;
}
-static void warp_set(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
+static void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
{
warp->mapGroup = mapGroup;
warp->mapNum = mapNum;
@@ -385,7 +389,7 @@ struct MapHeader *const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 map
struct MapHeader *const warp1_get_mapheader(void)
{
- return Overworld_GetMapHeaderByGroupAndId(gUnknown_020297F8.mapGroup, gUnknown_020297F8.mapNum);
+ return Overworld_GetMapHeaderByGroupAndId(gWarpDestination.mapGroup, gWarpDestination.mapNum);
}
static void set_current_map_header_from_sav1_save_old_name(void)
@@ -422,34 +426,34 @@ void sub_80533CC(void)
void warp_in(void)
{
- warp_shift();
+ ApplyCurrentWarp();
set_current_map_header_from_sav1_save_old_name();
sub_80533CC();
}
-void warp1_set(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
+void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
{
- warp_set(&gUnknown_020297F8, mapGroup, mapNum, warpId, x, y);
+ SetWarpData(&gWarpDestination, mapGroup, mapNum, warpId, x, y);
}
void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpId)
{
- warp1_set(mapGroup, mapNum, warpId, -1, -1);
+ Overworld_SetWarpDestination(mapGroup, mapNum, warpId, -1, -1);
}
void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId)
{
- warp_set(&gSaveBlock1.warp2, mapGroup, mapNum, warpId, gSaveBlock1.pos.x, gSaveBlock1.pos.y);
+ SetWarpData(&gSaveBlock1.warp2, mapGroup, mapNum, warpId, gSaveBlock1.pos.x, gSaveBlock1.pos.y);
}
void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
{
- warp_set(&gSaveBlock1.warp2, mapGroup, mapNum, warpId, x, y);
+ SetWarpData(&gSaveBlock1.warp2, mapGroup, mapNum, warpId, x, y);
}
void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused)
{
- gUnknown_020297F8 = gSaveBlock1.warp2;
+ gWarpDestination = gSaveBlock1.warp2;
}
void sub_8053538(u8 a1)
@@ -457,81 +461,82 @@ void sub_8053538(u8 a1)
const struct HealLocation *warp = GetHealLocation(a1);
if (warp)
- warp1_set(warp->group, warp->map, -1, warp->x, warp->y);
+ Overworld_SetWarpDestination(warp->group, warp->map, -1, warp->x, warp->y);
}
-void sub_8053570(void)
+void Overworld_SetWarpDestToLastHealLoc(void)
{
- gUnknown_020297F8 = gSaveBlock1.warp3;
+ gWarpDestination = gSaveBlock1.lastHealLocation;
}
-void sub_8053588(u8 a1)
+void Overworld_SetHealLocationWarp(u8 healLocationId)
{
- const struct HealLocation *warp = GetHealLocation(a1);
- if (warp)
- warp_set(&gSaveBlock1.warp3, warp->group, warp->map, -1, warp->x, warp->y);
+ const struct HealLocation *healLocation = GetHealLocation(healLocationId);
+
+ if (healLocation != NULL)
+ SetWarpData(&gSaveBlock1.lastHealLocation, healLocation->group, healLocation->map, -1, healLocation->x, healLocation->y);
}
void sub_80535C4(s16 a1, s16 a2)
{
- u8 v4 = Overworld_GetMapTypeOfSaveblockLocation();
- u8 v5 = GetMapTypeByGroupAndId(gUnknown_020297F8.mapGroup, gUnknown_020297F8.mapNum);
- if (is_map_type_1_2_3_5_or_6(v4) && is_map_type_1_2_3_5_or_6(v5) != TRUE)
+ u8 currMapType = Overworld_GetMapTypeOfSaveblockLocation();
+ u8 destMapType = GetMapTypeByGroupAndId(gWarpDestination.mapGroup, gWarpDestination.mapNum);
+ if (is_map_type_1_2_3_5_or_6(currMapType) && is_map_type_1_2_3_5_or_6(destMapType) != TRUE)
sub_805363C(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, a1 - 7, a2 - 6);
}
void sub_805363C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
{
- warp_set(&gSaveBlock1.warp4, mapGroup, mapNum, warpId, x, y);
+ SetWarpData(&gSaveBlock1.warp4, mapGroup, mapNum, warpId, x, y);
}
void sub_8053678(void)
{
- gUnknown_020297F8 = gSaveBlock1.warp4;
+ gWarpDestination = gSaveBlock1.warp4;
}
void sub_8053690(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
{
- warp_set(&gUnknown_02029800, mapGroup, mapNum, warpId, x, y);
+ SetWarpData(&gUnknown_02029800, mapGroup, mapNum, warpId, x, y);
}
-void warp1_set_to_warp2(void)
+static void warp1_set_to_warp2(void)
{
- gUnknown_020297F8 = gUnknown_02029800;
+ gWarpDestination = gUnknown_02029800;
}
void sub_80536E4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
{
- warp_set(&gUnknown_02029808, mapGroup, mapNum, warpId, x, y);
+ SetWarpData(&gUnknown_02029808, mapGroup, mapNum, warpId, x, y);
}
void sub_8053720(s16 x, s16 y)
{
if (warp_data_is_not_neg_1(&gUnknown_02029808) == TRUE)
{
- gUnknown_020297F8 = gUnknown_020297F0;
+ gWarpDestination = gUnknown_020297F0;
}
else
{
- warp1_set(gUnknown_02029808.mapGroup, gUnknown_02029808.mapNum, -1, x, y);
+ Overworld_SetWarpDestination(gUnknown_02029808.mapGroup, gUnknown_02029808.mapNum, -1, x, y);
}
}
void sub_8053778(void)
{
- gUnknown_020297F8 = gSaveBlock1.warp1;
+ gWarpDestination = gSaveBlock1.warp1;
}
void unref_sub_8053790(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y)
{
- warp_set(&gSaveBlock1.warp1, mapGroup, mapNum, warpId, x, y);
+ SetWarpData(&gSaveBlock1.warp1, mapGroup, mapNum, warpId, x, y);
}
void sub_80537CC(u8 a1)
{
const struct HealLocation *warp = GetHealLocation(a1);
if (warp)
- warp_set(&gSaveBlock1.warp1, warp->group, warp->map, -1, warp->x, warp->y);
+ SetWarpData(&gSaveBlock1.warp1, warp->group, warp->map, -1, warp->x, warp->y);
}
void gpu_sync_bg_hide()
@@ -539,7 +544,7 @@ void gpu_sync_bg_hide()
gSaveBlock1.warp1 = gSaveBlock1.warp2;
}
-struct MapConnection *sub_8053818(u8 dir)
+struct MapConnection *GetMapConnection(u8 dir)
{
s32 i;
s32 count = gMapHeader.connections->count;
@@ -557,10 +562,11 @@ struct MapConnection *sub_8053818(u8 dir)
bool8 sub_8053850(u8 dir, u16 x, u16 y)
{
- struct MapConnection *connection = sub_8053818(dir);
+ struct MapConnection *connection = GetMapConnection(dir);
+
if (connection != NULL)
{
- warp1_set(connection->mapGroup, connection->mapNum, -1, x, y);
+ Overworld_SetWarpDestination(connection->mapGroup, connection->mapNum, -1, x, y);
}
else
{
@@ -586,11 +592,11 @@ void sub_80538F0(u8 mapGroup, u8 mapNum)
{
s32 i;
- warp1_set(mapGroup, mapNum, -1, -1, -1);
+ Overworld_SetWarpDestination(mapGroup, mapNum, -1, -1, -1);
sub_8053F0C();
- warp_shift();
+ ApplyCurrentWarp();
set_current_map_header_from_sav1_save_old_name();
- sub_8053154();
+ LoadMapObjTemplatesFromHeader();
ClearTempFieldEventData();
ResetCyclingRoadChallengeData();
prev_quest_postbuffer_cursor_backup_reset();
@@ -599,7 +605,7 @@ void sub_80538F0(u8 mapGroup, u8 mapNum)
sub_80806E4();
ChooseAmbientCrySpecies();
SetDefaultFlashLevel();
- sav1_reset_battle_music_maybe();
+ Overworld_ClearSavedMusic();
mapheader_run_script_with_tag_x3();
not_trainer_hill_battle_pyramid();
sub_8056D38(gMapHeader.mapData);
@@ -623,7 +629,7 @@ void sub_8053994(u32 a1)
bool8 v3;
set_current_map_header_from_sav1_save_old_name();
- sub_8053154();
+ LoadMapObjTemplatesFromHeader();
v2 = is_map_type_1_2_3_5_or_6(gMapHeader.mapType);
v3 = Overworld_MapTypeIsIndoors(gMapHeader.mapType);
ClearTempFieldEventData();
@@ -637,7 +643,7 @@ void sub_8053994(u32 a1)
if (v2)
FlagClear(SYS_USE_FLASH);
SetDefaultFlashLevel();
- sav1_reset_battle_music_maybe();
+ Overworld_ClearSavedMusic();
mapheader_run_script_with_tag_x3();
UpdateLocationHistoryForRoamer();
RoamerMoveToOtherLocationSet();
@@ -691,7 +697,7 @@ u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3)
return 16;
if (MetatileBehavior_IsSurfableWaterOrUnderwater(a2) == 1)
return 8;
- if (Overworld_IsBikeAllowedOnCurrentMap() != TRUE)
+ if (Overworld_IsBikingAllowed() != TRUE)
return 1;
if (playerStruct->player_field_0 == 2)
return 2;
@@ -729,7 +735,7 @@ u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void)
return MapGridGetMetatileBehaviorAt(gSaveBlock1.pos.x + 7, gSaveBlock1.pos.y + 7);
}
-bool32 Overworld_IsBikeAllowedOnCurrentMap(void)
+bool32 Overworld_IsBikingAllowed(void)
{
// is player in cycling road entrance?
if (gSaveBlock1.location.mapGroup == MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE
@@ -830,10 +836,11 @@ static u16 GetLocationMusic(struct WarpData *warp)
return Overworld_GetMapHeaderByGroupAndId(warp->mapGroup, warp->mapNum)->music;
}
-u16 sav1_map_get_music(void)
+u16 GetCurrLocationDefaultMusic(void)
{
u16 music;
+ // Play the desert music only when the sandstorm is active on Route 111.
if (gSaveBlock1.location.mapGroup == MAP_GROUP_ROUTE111
&& gSaveBlock1.location.mapNum == MAP_ID_ROUTE111
&& GetSav1Weather() == 8)
@@ -853,9 +860,9 @@ u16 sav1_map_get_music(void)
}
}
-u16 warp1_target_get_music(void)
+u16 GetWarpDestinationMusic(void)
{
- u16 music = GetLocationMusic(&gUnknown_020297F8);
+ u16 music = GetLocationMusic(&gWarpDestination);
if (music != 0x7FFF)
{
return music;
@@ -870,19 +877,19 @@ u16 warp1_target_get_music(void)
}
}
-void call_map_music_set_to_zero(void)
+void Overworld_ResetMapMusic(void)
{
ResetMapMusic();
}
-void sub_8053E90(void)
+void Overworld_PlaySpecialMapMusic(void)
{
- u16 music = sav1_map_get_music();
+ u16 music = GetCurrLocationDefaultMusic();
if (music != LEGENDARY_MUSIC)
{
- if (gSaveBlock1.battleMusic)
- music = gSaveBlock1.battleMusic;
+ if (gSaveBlock1.savedMusic)
+ music = gSaveBlock1.savedMusic;
else if (Overworld_GetMapTypeOfSaveblockLocation() == MAP_TYPE_UNDERWATER)
music = BGM_DEEPDEEP;
else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
@@ -893,21 +900,21 @@ void sub_8053E90(void)
PlayNewMapMusic(music);
}
-void sav1_set_battle_music_maybe(u16 songNum)
+void Overworld_SetSavedMusic(u16 songNum)
{
- gSaveBlock1.battleMusic = songNum;
+ gSaveBlock1.savedMusic = songNum;
}
-void sav1_reset_battle_music_maybe(void)
+void Overworld_ClearSavedMusic(void)
{
- gSaveBlock1.battleMusic = 0;
+ gSaveBlock1.savedMusic = 0;
}
void sub_8053F0C(void)
{
if (FlagGet(SPECIAL_FLAG_1) != TRUE)
{
- u16 newMusic = warp1_target_get_music();
+ u16 newMusic = GetWarpDestinationMusic();
u16 currentMusic = GetCurrentMapMusic();
if (newMusic != LEGENDARY_MUSIC)
{
@@ -926,11 +933,11 @@ void sub_8053F0C(void)
}
}
-void sub_8053F84(void)
+void Overworld_ChangeMusicToDefault(void)
{
u16 currentMusic = GetCurrentMapMusic();
- if (currentMusic != sav1_map_get_music())
- FadeOutAndPlayNewMapMusic(sav1_map_get_music(), 8);
+ if (currentMusic != GetCurrLocationDefaultMusic())
+ FadeOutAndPlayNewMapMusic(GetCurrLocationDefaultMusic(), 8);
}
void Overworld_ChangeMusicTo(u16 newMusic)
@@ -951,7 +958,7 @@ u8 GetMapMusicFadeoutSpeed(void)
void sub_8053FF8(void)
{
- u16 music = warp1_target_get_music();
+ u16 music = GetWarpDestinationMusic();
if (FlagGet(SPECIAL_FLAG_1) != TRUE && music != GetCurrentMapMusic())
{
u8 speed = GetMapMusicFadeoutSpeed();
@@ -964,7 +971,7 @@ bool8 sub_8054034(void)
return IsNotWaitingForBGMStop();
}
-void sub_8054044(void)
+void Overworld_FadeOutMapMusic(void)
{
FadeOutMapMusic(4);
}
@@ -972,14 +979,16 @@ void sub_8054044(void)
static void PlayAmbientCry(void)
{
s16 x, y;
+ s8 pan;
+ s8 volume;
+
PlayerGetDestCoords(&x, &y);
- if (sIsAmbientCryWaterMon != TRUE
- || MetatileBehavior_IsSurfableWaterOrUnderwater(MapGridGetMetatileBehaviorAt(x, y)))
- {
- s8 pan = (Random() % 88) + 212;
- s8 volume = (Random() % 30) + 50;
- PlayCry2(sAmbientCrySpecies, pan, volume, 1);
- }
+ if (sIsAmbientCryWaterMon == TRUE
+ && !MetatileBehavior_IsSurfableWaterOrUnderwater(MapGridGetMetatileBehaviorAt(x, y)))
+ return;
+ pan = (Random() % 88) + 212;
+ volume = (Random() % 30) + 50;
+ PlayCry2(sAmbientCrySpecies, pan, volume, 1);
}
void UpdateAmbientCry(s16 *state, u16 *delayCounter)
@@ -1149,6 +1158,7 @@ void OverworldBasic(void)
sub_8072EDC();
}
+// This CB2 is used when starting
void CB2_OverworldBasic(void)
{
OverworldBasic();
@@ -1176,7 +1186,7 @@ void sub_80543DC(u16 (*a1)(u32))
void sub_80543E8(void)
{
- if (gFieldCallback)
+ if (gFieldCallback != NULL)
gFieldCallback();
else
mapldr_default();
@@ -1977,27 +1987,27 @@ void sub_8055280(u16 a1)
u16 sub_80552B0(u32 a1)
{
- if (gMain.heldKeys & 0x40)
+ if (gMain.heldKeys & DPAD_UP)
{
return 19;
}
- else if (gMain.heldKeys & 0x80)
+ else if (gMain.heldKeys & DPAD_DOWN)
{
return 18;
}
- else if (gMain.heldKeys & 0x20)
+ else if (gMain.heldKeys & DPAD_LEFT)
{
return 20;
}
- else if (gMain.heldKeys & 0x10)
+ else if (gMain.heldKeys & DPAD_RIGHT)
{
return 21;
}
- else if (gMain.newKeys & 8)
+ else if (gMain.newKeys & START_BUTTON)
{
return 24;
}
- else if (gMain.newKeys & 1)
+ else if (gMain.newKeys & A_BUTTON)
{
return 25;
}
diff --git a/src/party_menu.c b/src/field/party_menu.c
index 39477e293..39477e293 100644
--- a/src/party_menu.c
+++ b/src/field/party_menu.c
diff --git a/src/player_pc.c b/src/field/player_pc.c
index 83e6dd221..83e6dd221 100644
--- a/src/player_pc.c
+++ b/src/field/player_pc.c
diff --git a/src/pokeblock.c b/src/field/pokeblock.c
index 593d7344b..34f4ffa35 100644
--- a/src/pokeblock.c
+++ b/src/field/pokeblock.c
@@ -378,7 +378,7 @@ static bool8 sub_810B998(void)
ewram[0x1ffff]++;
break;
case 1:
- sub_800D238(gMenuPokeblock_Tilemap, gBGTilemapBuffers[2]);
+ LZDecompressWram(gMenuPokeblock_Tilemap, gBGTilemapBuffers[2]);
ewram[0x1ffff]++;
break;
case 2:
diff --git a/src/pokenav.c b/src/field/pokenav.c
index 21d7bb4e3..21d7bb4e3 100644
--- a/src/pokenav.c
+++ b/src/field/pokenav.c
diff --git a/src/region_map.c b/src/field/region_map.c
index 900c9ad71..bfd2729c2 100644
--- a/src/region_map.c
+++ b/src/field/region_map.c
@@ -140,12 +140,12 @@ static const u16 sRegionMapBkgnd_Pal[] = INCBIN_U16("graphics/pokenav/region_map
static const u8 sRegionMapBkgnd_ImageLZ[] = INCBIN_U8("graphics/pokenav/region_map.8bpp.lz");
static const u8 sRegionMapBkgnd_TilemapLZ[] = INCBIN_U8("graphics/pokenav/region_map_map.bin.lz");
-#include "data/region_map_layout.h"
+#include "../data/region_map_layout.h"
#if ENGLISH
-#include "data/region_map_names_en.h"
+#include "../data/region_map_names_en.h"
#elif GERMAN
-#include "data/region_map_names_de.h"
+#include "../data/region_map_names_de.h"
#endif
struct RegionMapLocation
diff --git a/src/roamer.c b/src/field/roamer.c
index 948828d5e..948828d5e 100644
--- a/src/roamer.c
+++ b/src/field/roamer.c
diff --git a/src/rotating_gate.c b/src/field/rotating_gate.c
index e8ab7e1bf..e8ab7e1bf 100644
--- a/src/rotating_gate.c
+++ b/src/field/rotating_gate.c
diff --git a/src/safari_zone.c b/src/field/safari_zone.c
index 14fd1ddc4..14fd1ddc4 100644
--- a/src/safari_zone.c
+++ b/src/field/safari_zone.c
diff --git a/src/scrcmd.c b/src/field/scrcmd.c
index 31a90158a..28584d4d0 100644
--- a/src/scrcmd.c
+++ b/src/field/scrcmd.c
@@ -91,12 +91,12 @@ static u8 * const sScriptStringVars[] =
gStringVar3,
};
-bool8 ScrCmd_snop(struct ScriptContext *ctx)
+bool8 ScrCmd_nop(struct ScriptContext *ctx)
{
return FALSE;
}
-bool8 ScrCmd_snop1(struct ScriptContext *ctx)
+bool8 ScrCmd_nop1(struct ScriptContext *ctx)
{
return FALSE;
}
@@ -107,9 +107,10 @@ bool8 ScrCmd_end(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_jumpasm(struct ScriptContext *ctx)
+bool8 ScrCmd_gotonative(struct ScriptContext *ctx)
{
bool8 (*addr)(void) = (bool8 (*)(void))ScriptReadWord(ctx);
+
SetupNativeScript(ctx, addr);
return TRUE;
}
@@ -117,20 +118,23 @@ bool8 ScrCmd_jumpasm(struct ScriptContext *ctx)
bool8 ScrCmd_special(struct ScriptContext *ctx)
{
u16 index = ScriptReadHalfword(ctx);
+
gSpecials[index]();
return FALSE;
}
-bool8 ScrCmd_specialval(struct ScriptContext *ctx)
+bool8 ScrCmd_specialvar(struct ScriptContext *ctx)
{
u16 *var = GetVarPointer(ScriptReadHalfword(ctx));
+
*var = gSpecials[ScriptReadHalfword(ctx)]();
return FALSE;
}
-bool8 ScrCmd_callasm(struct ScriptContext *ctx)
+bool8 ScrCmd_callnative(struct ScriptContext *ctx)
{
NativeFunc func = (NativeFunc)ScriptReadWord(ctx);
+
func();
return FALSE;
}
@@ -141,9 +145,10 @@ bool8 ScrCmd_waitstate(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_jump(struct ScriptContext *ctx)
+bool8 ScrCmd_goto(struct ScriptContext *ctx)
{
u8 *ptr = (u8 *)ScriptReadWord(ctx);
+
ScriptJump(ctx, ptr);
return FALSE;
}
@@ -156,25 +161,27 @@ bool8 ScrCmd_return(struct ScriptContext *ctx)
bool8 ScrCmd_call(struct ScriptContext *ctx)
{
-
u8 *ptr = (u8 *)ScriptReadWord(ctx);
+
ScriptCall(ctx, ptr);
return FALSE;
}
-bool8 ScrCmd_jumpif(struct ScriptContext *ctx)
+bool8 ScrCmd_goto_if(struct ScriptContext *ctx)
{
u8 condition = ScriptReadByte(ctx);
u8 *ptr = (u8 *)ScriptReadWord(ctx);
+
if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
ScriptJump(ctx, ptr);
return FALSE;
}
-bool8 ScrCmd_callif(struct ScriptContext *ctx)
+bool8 ScrCmd_call_if(struct ScriptContext *ctx)
{
u8 condition = ScriptReadByte(ctx);
u8 *ptr = (u8 *)ScriptReadWord(ctx);
+
if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
ScriptCall(ctx, ptr);
return FALSE;
@@ -184,13 +191,15 @@ bool8 ScrCmd_setvaddress(struct ScriptContext *ctx)
{
u32 addr1 = (u32)ctx->scriptPtr - 1;
u32 addr2 = ScriptReadWord(ctx);
+
gUnknown_0202E8B0 = addr2 - addr1;
return FALSE;
}
-bool8 ScrCmd_vjump(struct ScriptContext *ctx)
+bool8 ScrCmd_vgoto(struct ScriptContext *ctx)
{
u32 addr = ScriptReadWord(ctx);
+
ScriptJump(ctx, (u8 *)(addr - gUnknown_0202E8B0));
return FALSE;
}
@@ -198,32 +207,36 @@ bool8 ScrCmd_vjump(struct ScriptContext *ctx)
bool8 ScrCmd_vcall(struct ScriptContext *ctx)
{
u32 addr = ScriptReadWord(ctx);
+
ScriptCall(ctx, (u8 *)(addr - gUnknown_0202E8B0));
return FALSE;
}
-bool8 ScrCmd_if5(struct ScriptContext *ctx)
+bool8 ScrCmd_vgoto_if(struct ScriptContext *ctx)
{
u8 condition = ScriptReadByte(ctx);
u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_0202E8B0);
+
if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
ScriptJump(ctx, ptr);
return FALSE;
}
-bool8 ScrCmd_if6(struct ScriptContext *ctx)
+bool8 ScrCmd_vcall_if(struct ScriptContext *ctx)
{
u8 condition = ScriptReadByte(ctx);
u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_0202E8B0);
+
if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
ScriptCall(ctx, ptr);
return FALSE;
}
-bool8 ScrCmd_jumpstd(struct ScriptContext *ctx)
+bool8 ScrCmd_gotostd(struct ScriptContext *ctx)
{
u8 index = ScriptReadByte(ctx);
u8 **ptr = &gStdScripts[index];
+
if (ptr < gStdScripts_End)
ScriptJump(ctx, *ptr);
return FALSE;
@@ -233,15 +246,17 @@ bool8 ScrCmd_callstd(struct ScriptContext *ctx)
{
u8 index = ScriptReadByte(ctx);
u8 **ptr = &gStdScripts[index];
+
if (ptr < gStdScripts_End)
ScriptCall(ctx, *ptr);
return FALSE;
}
-bool8 ScrCmd_jumpstdif(struct ScriptContext *ctx)
+bool8 ScrCmd_gotostd_if(struct ScriptContext *ctx)
{
u8 condition = ScriptReadByte(ctx);
u8 index = ScriptReadByte(ctx);
+
if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
{
u8 **ptr = &gStdScripts[index];
@@ -251,10 +266,11 @@ bool8 ScrCmd_jumpstdif(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_callstdif(struct ScriptContext *ctx)
+bool8 ScrCmd_callstd_if(struct ScriptContext *ctx)
{
u8 condition = ScriptReadByte(ctx);
u8 index = ScriptReadByte(ctx);
+
if (sScriptConditionTable[condition][ctx->comparisonResult] == 1)
{
u8 **ptr = &gStdScripts[index];
@@ -264,50 +280,55 @@ bool8 ScrCmd_callstdif(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_jumpram(struct ScriptContext *ctx)
+bool8 ScrCmd_gotoram(struct ScriptContext *ctx)
{
ScriptJump(ctx, (u8 *)gUnknown_0202E8AC);
return FALSE;
}
-bool8 ScrCmd_die(struct ScriptContext *ctx)
+bool8 ScrCmd_killscript(struct ScriptContext *ctx)
{
ClearRamScript();
StopScript(ctx);
return TRUE;
}
-bool8 ScrCmd_setbyte(struct ScriptContext *ctx)
+bool8 ScrCmd_setmysteryeventstatus(struct ScriptContext *ctx)
{
u8 value = ScriptReadByte(ctx);
+
SetMysteryEventScriptStatus(value);
return FALSE;
}
-bool8 ScrCmd_loadptr(struct ScriptContext *ctx)
+bool8 ScrCmd_loadword(struct ScriptContext *ctx)
{
u8 index = ScriptReadByte(ctx);
+
ctx->data[index] = ScriptReadWord(ctx);
return FALSE;
}
-bool8 ScrCmd_loadbytefrompointer(struct ScriptContext *ctx)
+bool8 ScrCmd_loadbytefromaddr(struct ScriptContext *ctx)
{
u8 index = ScriptReadByte(ctx);
+
ctx->data[index] = *(u8 *)ScriptReadWord(ctx);
return FALSE;
}
-bool8 ScrCmd_writebytetooffset(struct ScriptContext *ctx)
+bool8 ScrCmd_writebytetoaddr(struct ScriptContext *ctx)
{
u8 value = ScriptReadByte(ctx);
+
*(u8 *)ScriptReadWord(ctx) = value;
return FALSE;
}
-bool8 ScrCmd_setbufferbyte(struct ScriptContext *ctx)
+bool8 ScrCmd_loadbyte(struct ScriptContext *ctx)
{
u8 index = ScriptReadByte(ctx);
+
ctx->data[index] = ScriptReadByte(ctx);
return FALSE;
}
@@ -315,14 +336,16 @@ bool8 ScrCmd_setbufferbyte(struct ScriptContext *ctx)
bool8 ScrCmd_setptrbyte(struct ScriptContext *ctx)
{
u8 index = ScriptReadByte(ctx);
+
*(u8 *)ScriptReadWord(ctx) = ctx->data[index];
return FALSE;
}
-bool8 ScrCmd_copybuffers(struct ScriptContext *ctx)
+bool8 ScrCmd_copylocal(struct ScriptContext *ctx)
{
u8 destIndex = ScriptReadByte(ctx);
u8 srcIndex = ScriptReadByte(ctx);
+
ctx->data[destIndex] = ctx->data[srcIndex];
return FALSE;
}
@@ -359,73 +382,81 @@ u8 compare_012(u16 a1, u16 a2)
{
if (a1 < a2)
return 0;
-
if (a1 == a2)
return 1;
-
return 2;
}
-bool8 ScrCmd_comparebuffers(struct ScriptContext *ctx)
+// comparelocaltolocal
+bool8 ScrCmd_compare_local_to_local(struct ScriptContext *ctx)
{
u8 value1 = ctx->data[ScriptReadByte(ctx)];
u8 value2 = ctx->data[ScriptReadByte(ctx)];
+
ctx->comparisonResult = compare_012(value1, value2);
return FALSE;
}
-bool8 ScrCmd_comparebuffertobyte(struct ScriptContext *ctx)
+// comparelocaltoimm
+bool8 ScrCmd_compare_local_to_value(struct ScriptContext *ctx)
{
u8 value1 = ctx->data[ScriptReadByte(ctx)];
u8 value2 = ScriptReadByte(ctx);
+
ctx->comparisonResult = compare_012(value1, value2);
return FALSE;
}
-bool8 ScrCmd_comparebuffertoptrbyte(struct ScriptContext *ctx)
+bool8 ScrCmd_compare_local_to_addr(struct ScriptContext *ctx)
{
u8 value1 = ctx->data[ScriptReadByte(ctx)];
u8 value2 = *(u8 *)ScriptReadWord(ctx);
+
ctx->comparisonResult = compare_012(value1, value2);
return FALSE;
}
-bool8 ScrCmd_compareptrbytetobuffer(struct ScriptContext *ctx)
+bool8 ScrCmd_compare_addr_to_local(struct ScriptContext *ctx)
{
u8 value1 = *(u8 *)ScriptReadWord(ctx);
u8 value2 = ctx->data[ScriptReadByte(ctx)];
+
ctx->comparisonResult = compare_012(value1, value2);
return FALSE;
}
-bool8 ScrCmd_compareptrbytetobyte(struct ScriptContext *ctx)
+bool8 ScrCmd_compare_addr_to_value(struct ScriptContext *ctx)
{
u8 value1 = *(u8 *)ScriptReadWord(ctx);
u8 value2 = ScriptReadByte(ctx);
+
ctx->comparisonResult = compare_012(value1, value2);
return FALSE;
}
-bool8 ScrCmd_compareptrbytes(struct ScriptContext *ctx)
+bool8 ScrCmd_compare_addr_to_addr(struct ScriptContext *ctx)
{
u8 value1 = *(u8 *)ScriptReadWord(ctx);
u8 value2 = *(u8 *)ScriptReadWord(ctx);
+
ctx->comparisonResult = compare_012(value1, value2);
return FALSE;
}
-bool8 ScrCmd_compare(struct ScriptContext *ctx)
+bool8 ScrCmd_compare_var_to_value(struct ScriptContext *ctx)
{
u16 value1 = *GetVarPointer(ScriptReadHalfword(ctx));
u16 value2 = ScriptReadHalfword(ctx);
+
ctx->comparisonResult = compare_012(value1, value2);
return FALSE;
}
-bool8 ScrCmd_comparevars(struct ScriptContext *ctx)
+bool8 ScrCmd_compare_var_to_var(struct ScriptContext *ctx)
{
u16 *ptr1 = GetVarPointer(ScriptReadHalfword(ctx));
u16 *ptr2 = GetVarPointer(ScriptReadHalfword(ctx));
+
ctx->comparisonResult = compare_012(*ptr1, *ptr2);
return FALSE;
}
@@ -447,6 +478,7 @@ bool8 ScrCmd_subvar(struct ScriptContext *ctx)
bool8 ScrCmd_random(struct ScriptContext *ctx)
{
u16 max = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = Random() % max;
return FALSE;
}
@@ -455,6 +487,7 @@ bool8 ScrCmd_additem(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = AddBagItem(itemId, (u8)quantity);
return FALSE;
}
@@ -463,6 +496,7 @@ bool8 ScrCmd_removeitem(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = RemoveBagItem(itemId, (u8)quantity);
return FALSE;
}
@@ -471,6 +505,7 @@ bool8 ScrCmd_checkitemspace(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = CheckBagHasSpace(itemId, (u8)quantity);
return FALSE;
}
@@ -479,6 +514,7 @@ bool8 ScrCmd_checkitem(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u32 quantity = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = CheckBagHasItem(itemId, (u8)quantity);
return FALSE;
}
@@ -486,6 +522,7 @@ bool8 ScrCmd_checkitem(struct ScriptContext *ctx)
bool8 ScrCmd_checkitemtype(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = GetPocketByItemId(itemId);
return FALSE;
}
@@ -494,6 +531,7 @@ bool8 ScrCmd_addpcitem(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u16 quantity = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = AddPCItem(itemId, quantity);
return FALSE;
}
@@ -502,6 +540,7 @@ bool8 ScrCmd_checkpcitem(struct ScriptContext *ctx)
{
u16 itemId = VarGet(ScriptReadHalfword(ctx));
u16 quantity = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = CheckPCHasItem(itemId, quantity);
return FALSE;
}
@@ -509,6 +548,7 @@ bool8 ScrCmd_checkpcitem(struct ScriptContext *ctx)
bool8 ScrCmd_adddecor(struct ScriptContext *ctx)
{
u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = IsThereStorageSpaceForDecoration(decorId);
return FALSE;
}
@@ -516,6 +556,7 @@ bool8 ScrCmd_adddecor(struct ScriptContext *ctx)
bool8 ScrCmd_removedecor(struct ScriptContext *ctx)
{
u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = sub_81340A8(decorId);
return FALSE;
}
@@ -523,13 +564,15 @@ bool8 ScrCmd_removedecor(struct ScriptContext *ctx)
bool8 ScrCmd_checkdecor(struct ScriptContext *ctx)
{
u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = sub_8134074(decorId);
return FALSE;
}
-bool8 ScrCmd_testdecor(struct ScriptContext *ctx)
+bool8 ScrCmd_hasdecor(struct ScriptContext *ctx)
{
u32 decorId = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = sub_8133FE4(decorId);
return FALSE;
}
@@ -552,22 +595,23 @@ bool8 ScrCmd_checkflag(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_inccounter(struct ScriptContext *ctx)
+bool8 ScrCmd_incrementgamestat(struct ScriptContext *ctx)
{
IncrementGameStat(ScriptReadByte(ctx));
return FALSE;
}
-bool8 ScrCmd_lighten(struct ScriptContext *ctx)
+bool8 ScrCmd_animdarklevel(struct ScriptContext *ctx)
{
sub_8081594(ScriptReadByte(ctx));
ScriptContext1_Stop();
return TRUE;
}
-bool8 ScrCmd_darken(struct ScriptContext *ctx)
+bool8 ScrCmd_setdarklevel(struct ScriptContext *ctx)
{
u16 flashLevel = VarGet(ScriptReadHalfword(ctx));
+
Overworld_SetFlashLevel(flashLevel);
return FALSE;
}
@@ -591,6 +635,7 @@ bool8 ScrCmd_fadescreendelay(struct ScriptContext *ctx)
{
u8 duration = ScriptReadByte(ctx);
u8 delay = ScriptReadByte(ctx);
+
fade_screen(duration, delay);
SetupNativeScript(ctx, IsPaletteNotActive);
return TRUE;
@@ -606,28 +651,29 @@ bool8 s28_pause_asm()
return FALSE;
}
-bool8 ScrCmd_pause(struct ScriptContext *ctx)
+bool8 ScrCmd_delay(struct ScriptContext *ctx)
{
sPauseCounter = ScriptReadHalfword(ctx);
SetupNativeScript(ctx, s28_pause_asm);
return TRUE;
}
-bool8 ScrCmd_compareflags(struct ScriptContext *ctx)
+bool8 ScrCmd_initclock(struct ScriptContext *ctx)
{
u8 hour = VarGet(ScriptReadHalfword(ctx));
u8 minute = VarGet(ScriptReadHalfword(ctx));
+
RtcInitLocalTimeOffset(hour, minute);
return FALSE;
}
-bool8 ScrCmd_checkdailyflags(struct ScriptContext *ctx)
+bool8 ScrCmd_dodailyevents(struct ScriptContext *ctx)
{
DoTimeBasedEvents();
return FALSE;
}
-bool8 ScrCmd_resetvars(struct ScriptContext *ctx)
+bool8 ScrCmd_gettime(struct ScriptContext *ctx)
{
RtcCalcLocalTime();
gSpecialVar_0x8000 = gLocalTime.hours;
@@ -638,8 +684,9 @@ bool8 ScrCmd_resetvars(struct ScriptContext *ctx)
bool8 ScrCmd_setweather(struct ScriptContext *ctx)
{
- u16 value = VarGet(ScriptReadHalfword(ctx));
- SetSav1Weather(value);
+ u16 weather = VarGet(ScriptReadHalfword(ctx));
+
+ SetSav1Weather(weather);
return FALSE;
}
@@ -661,47 +708,51 @@ bool8 ScrCmd_tileeffect(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_setmapfooter(struct ScriptContext *ctx)
+bool8 ScrCmd_setmaplayoutindex(struct ScriptContext *ctx)
{
u16 value = VarGet(ScriptReadHalfword(ctx));
+
sub_8053D14(value);
return FALSE;
}
bool8 ScrCmd_warp(struct ScriptContext *ctx)
{
- u8 v1 = ScriptReadByte(ctx);
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- u16 v4 = VarGet(ScriptReadHalfword(ctx));
- s8 v5 = VarGet(ScriptReadHalfword(ctx));
- warp1_set(v1, v2, v3, v4, v5);
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
sub_8080E88();
player_avatar_init_params_reset();
return TRUE;
}
-bool8 ScrCmd_warpmuted(struct ScriptContext *ctx)
+bool8 ScrCmd_warpsilent(struct ScriptContext *ctx)
{
- u8 v1 = ScriptReadByte(ctx);
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- u16 v4 = VarGet(ScriptReadHalfword(ctx));
- s8 v5 = VarGet(ScriptReadHalfword(ctx));
- warp1_set(v1, v2, v3, v4, v5);
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
sp13E_warp_to_last_warp();
player_avatar_init_params_reset();
return TRUE;
}
-bool8 ScrCmd_warpwalk(struct ScriptContext *ctx)
+bool8 ScrCmd_warpdoor(struct ScriptContext *ctx)
{
- u8 v1 = ScriptReadByte(ctx);
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- u16 v4 = VarGet(ScriptReadHalfword(ctx));
- s8 v5 = VarGet(ScriptReadHalfword(ctx));
- warp1_set(v1, v2, v3, v4, v5);
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
sub_8080EF0();
player_avatar_init_params_reset();
return TRUE;
@@ -709,18 +760,16 @@ bool8 ScrCmd_warpwalk(struct ScriptContext *ctx)
bool8 ScrCmd_warphole(struct ScriptContext *ctx)
{
- u8 v1 = ScriptReadByte(ctx);
- u8 v2 = ScriptReadByte(ctx);
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
u16 x;
u16 y;
PlayerGetDestCoords(&x, &y);
-
- if (v1 == 0xFF && v2 == 0xFF)
+ if (mapGroup == 0xFF && mapNum == 0xFF)
sub_8053720(x - 7, y - 7);
else
- warp1_set(v1, v2, -1, x - 7, y - 7);
-
+ Overworld_SetWarpDestination(mapGroup, mapNum, -1, x - 7, y - 7);
sp13F_fall_to_last_warp();
player_avatar_init_params_reset();
return TRUE;
@@ -728,78 +777,85 @@ bool8 ScrCmd_warphole(struct ScriptContext *ctx)
bool8 ScrCmd_warpteleport(struct ScriptContext *ctx)
{
- u8 v1 = ScriptReadByte(ctx);
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- u16 v4 = VarGet(ScriptReadHalfword(ctx));
- s8 v5 = VarGet(ScriptReadHalfword(ctx));
- warp1_set(v1, v2, v3, v4, v5);
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
sub_8080F68();
player_avatar_init_params_reset();
return TRUE;
}
-bool8 ScrCmd_warp3(struct ScriptContext *ctx)
+bool8 ScrCmd_setwarp(struct ScriptContext *ctx)
{
- u8 v1 = ScriptReadByte(ctx);
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- u16 v4 = VarGet(ScriptReadHalfword(ctx));
- s8 v5 = VarGet(ScriptReadHalfword(ctx));
- warp1_set(v1, v2, v3, v4, v5);
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y);
return FALSE;
}
-bool8 ScrCmd_warpplace(struct ScriptContext *ctx)
+bool8 ScrCmd_setdynamicwarp(struct ScriptContext *ctx)
{
- u8 v1 = ScriptReadByte(ctx);
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- u16 v4 = VarGet(ScriptReadHalfword(ctx));
- s8 v5 = VarGet(ScriptReadHalfword(ctx));
- saved_warp2_set_2(0, v1, v2, v3, v4, v5);
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ saved_warp2_set_2(0, mapGroup, mapNum, warpId, x, y);
return FALSE;
}
-bool8 ScrCmd_warp4(struct ScriptContext *ctx)
+bool8 ScrCmd_setdivewarp(struct ScriptContext *ctx)
{
- u8 v1 = ScriptReadByte(ctx);
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- u16 v4 = VarGet(ScriptReadHalfword(ctx));
- s8 v5 = VarGet(ScriptReadHalfword(ctx));
- sub_8053690(v1, v2, v3, v4, v5);
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ sub_8053690(mapGroup, mapNum, warpId, x, y);
return FALSE;
}
-bool8 ScrCmd_warp5(struct ScriptContext *ctx)
+bool8 ScrCmd_setholewarp(struct ScriptContext *ctx)
{
- u8 v1 = ScriptReadByte(ctx);
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- u16 v4 = VarGet(ScriptReadHalfword(ctx));
- s8 v5 = VarGet(ScriptReadHalfword(ctx));
- sub_80536E4(v1, v2, v3, v4, v5);
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ sub_80536E4(mapGroup, mapNum, warpId, x, y);
return FALSE;
}
-bool8 ScrCmd_warp6(struct ScriptContext *ctx)
+bool8 ScrCmd_setescapewarp(struct ScriptContext *ctx)
{
- u8 v1 = ScriptReadByte(ctx);
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- u16 v4 = VarGet(ScriptReadHalfword(ctx));
- s8 v5 = VarGet(ScriptReadHalfword(ctx));
- sub_805363C(v1, v2, v3, v4, v5);
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 warpId = ScriptReadByte(ctx);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ sub_805363C(mapGroup, mapNum, warpId, x, y);
return FALSE;
}
bool8 ScrCmd_getplayerxy(struct ScriptContext *ctx)
{
- u16 *ptr1 = GetVarPointer(ScriptReadHalfword(ctx));
- u16 *ptr2 = GetVarPointer(ScriptReadHalfword(ctx));
- *ptr1 = gSaveBlock1.pos.x;
- *ptr2 = gSaveBlock1.pos.y;
+ u16 *pX = GetVarPointer(ScriptReadHalfword(ctx));
+ u16 *pY = GetVarPointer(ScriptReadHalfword(ctx));
+
+ *pX = gSaveBlock1.pos.x;
+ *pY = gSaveBlock1.pos.y;
return FALSE;
}
@@ -809,7 +865,7 @@ bool8 ScrCmd_countpokemon(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_playsfx(struct ScriptContext *ctx)
+bool8 ScrCmd_playse(struct ScriptContext *ctx)
{
PlaySE(ScriptReadHalfword(ctx));
return FALSE;
@@ -823,13 +879,13 @@ static bool8 WaitForSoundEffectFinish()
return FALSE;
}
-bool8 ScrCmd_checksound(struct ScriptContext *ctx)
+bool8 ScrCmd_waitse(struct ScriptContext *ctx)
{
SetupNativeScript(ctx, WaitForSoundEffectFinish);
return TRUE;
}
-bool8 ScrCmd_fanfare(struct ScriptContext *ctx)
+bool8 ScrCmd_playfanfare(struct ScriptContext *ctx)
{
PlayFanfare(ScriptReadHalfword(ctx));
return FALSE;
@@ -846,37 +902,39 @@ bool8 ScrCmd_waitfanfare(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_playmusic(struct ScriptContext *ctx)
+bool8 ScrCmd_playbgm(struct ScriptContext *ctx)
{
u16 songId = ScriptReadHalfword(ctx);
bool8 val = ScriptReadByte(ctx);
+
if (val == TRUE)
- sav1_set_battle_music_maybe(songId);
+ Overworld_SetSavedMusic(songId);
PlayNewMapMusic(songId);
return FALSE;
}
-bool8 ScrCmd_playmusicbattle(struct ScriptContext *ctx)
+bool8 ScrCmd_savebgm(struct ScriptContext *ctx)
{
- sav1_set_battle_music_maybe(ScriptReadHalfword(ctx));
+ Overworld_SetSavedMusic(ScriptReadHalfword(ctx));
return FALSE;
}
-bool8 ScrCmd_fadedefault(struct ScriptContext *ctx)
+bool8 ScrCmd_fadedefaultbgm(struct ScriptContext *ctx)
{
- sub_8053F84();
+ Overworld_ChangeMusicToDefault();
return FALSE;
}
-bool8 ScrCmd_fademusic(struct ScriptContext *ctx)
+bool8 ScrCmd_fadenewbgm(struct ScriptContext *ctx)
{
Overworld_ChangeMusicTo(ScriptReadHalfword(ctx));
return FALSE;
}
-bool8 ScrCmd_fadeout(struct ScriptContext *ctx)
+bool8 ScrCmd_fadeoutbgm(struct ScriptContext *ctx)
{
u8 speed = ScriptReadByte(ctx);
+
if (speed != 0)
FadeOutBGMTemporarily(4 * speed);
else
@@ -885,9 +943,10 @@ bool8 ScrCmd_fadeout(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_fadein(struct ScriptContext *ctx)
+bool8 ScrCmd_fadeinbgm(struct ScriptContext *ctx)
{
u8 speed = ScriptReadByte(ctx);
+
if (speed != 0)
FadeInBGM(4 * speed);
else
@@ -895,7 +954,7 @@ bool8 ScrCmd_fadein(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_move(struct ScriptContext *ctx)
+bool8 ScrCmd_applymovement(struct ScriptContext *ctx)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
void *movementScript = (void *)ScriptReadWord(ctx);
@@ -905,7 +964,7 @@ bool8 ScrCmd_move(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_movecoords(struct ScriptContext *ctx)
+bool8 ScrCmd_applymovement_at(struct ScriptContext *ctx)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
void *movementScript = (void *)ScriptReadWord(ctx);
@@ -922,7 +981,7 @@ static bool8 WaitForMovementFinish(void)
return ScriptMovement_IsObjectMovementFinished(sMovingNpcId, sMovingNpcMapId, sMovingNpcMapBank);
}
-bool8 ScrCmd_waitmove(struct ScriptContext *ctx)
+bool8 ScrCmd_waitmovement(struct ScriptContext *ctx)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
@@ -934,7 +993,7 @@ bool8 ScrCmd_waitmove(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_waitmovexy(struct ScriptContext *ctx)
+bool8 ScrCmd_waitmovement_at(struct ScriptContext *ctx)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 mapBank;
@@ -950,97 +1009,108 @@ bool8 ScrCmd_waitmovexy(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_disappear(struct ScriptContext *ctx)
+bool8 ScrCmd_removeobject(struct ScriptContext *ctx)
{
- u16 objectId = VarGet(ScriptReadHalfword(ctx));
- RemoveFieldObjectByLocalIdAndMap(objectId, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+
+ RemoveFieldObjectByLocalIdAndMap(localId, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
return FALSE;
}
-bool8 ScrCmd_disappearxy(struct ScriptContext *ctx)
+bool8 ScrCmd_removeobject_at(struct ScriptContext *ctx)
{
u16 objectId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
+
RemoveFieldObjectByLocalIdAndMap(objectId, mapNum, mapGroup);
return FALSE;
}
-bool8 ScrCmd_reappear(struct ScriptContext *ctx)
+bool8 ScrCmd_addobject(struct ScriptContext *ctx)
{
u16 objectId = VarGet(ScriptReadHalfword(ctx));
+
show_sprite(objectId, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
return FALSE;
}
-bool8 ScrCmd_reappearxy(struct ScriptContext *ctx)
+bool8 ScrCmd_addobject_at(struct ScriptContext *ctx)
{
u16 objectId = VarGet(ScriptReadHalfword(ctx));
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
+
show_sprite(objectId, mapNum, mapGroup);
return FALSE;
}
-bool8 ScrCmd_movesprite(struct ScriptContext *ctx)
+bool8 ScrCmd_setobjectxy(struct ScriptContext *ctx)
{
- u16 v1 = VarGet(ScriptReadHalfword(ctx));
- u16 v2 = VarGet(ScriptReadHalfword(ctx));
- u32 v3 = VarGet(ScriptReadHalfword(ctx));
- sub_805C0F8(v1, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, v2, v3);
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ sub_805C0F8(localId, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, x, y);
return FALSE;
}
-bool8 ScrCmd_movespriteperm(struct ScriptContext *ctx)
+bool8 ScrCmd_setobjectxyperm(struct ScriptContext *ctx)
{
- u16 v1 = VarGet(ScriptReadHalfword(ctx));
- u16 v2 = VarGet(ScriptReadHalfword(ctx));
- u32 v3 = VarGet(ScriptReadHalfword(ctx));
- Overworld_SaveMapObjCoords(v1, v2, v3);
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetMapObjTemplateCoords(localId, x, y);
return FALSE;
}
-bool8 ScrCmd_moveoffscreen(struct ScriptContext *ctx)
+bool8 ScrCmd_moveobjectoffscreen(struct ScriptContext *ctx)
{
- u16 v1 = VarGet(ScriptReadHalfword(ctx));
- sub_805C78C(v1, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+
+ sub_805C78C(localId, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
return FALSE;
}
-bool8 ScrCmd_spritevisible(struct ScriptContext *ctx)
+bool8 ScrCmd_showobject(struct ScriptContext *ctx)
{
- u16 v1 = VarGet(ScriptReadHalfword(ctx));
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- npc_by_local_id_and_map_set_field_1_bit_x20(v1, v3, v2, 0);
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 0);
return FALSE;
}
-bool8 ScrCmd_spriteinvisible(struct ScriptContext *ctx)
+bool8 ScrCmd_hideobject(struct ScriptContext *ctx)
{
- u16 v1 = VarGet(ScriptReadHalfword(ctx));
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- npc_by_local_id_and_map_set_field_1_bit_x20(v1, v3, v2, 1);
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 1);
return FALSE;
}
-bool8 ScrCmd_spritelevelup(struct ScriptContext *ctx)
+bool8 ScrCmd_setobjectpriority(struct ScriptContext *ctx)
{
- u16 v1 = VarGet(ScriptReadHalfword(ctx));
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- u8 v4 = ScriptReadByte(ctx);
- sub_805BCF0(v1, v3, v2, v4 + 83);
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+ u8 priority = ScriptReadByte(ctx);
+
+ sub_805BCF0(localId, mapNum, mapGroup, priority + 83);
return FALSE;
}
-bool8 ScrCmd_restorespritelevel(struct ScriptContext *ctx)
+bool8 ScrCmd_resetobjectpriority(struct ScriptContext *ctx)
{
- u16 v1 = VarGet(ScriptReadHalfword(ctx));
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- sub_805BD48(v1, v3, v2);
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 mapGroup = ScriptReadByte(ctx);
+ u8 mapNum = ScriptReadByte(ctx);
+
+ sub_805BD48(localId, mapNum, mapGroup);
return FALSE;
}
@@ -1054,39 +1124,43 @@ bool8 ScrCmd_faceplayer(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_spriteface(struct ScriptContext *ctx)
+bool8 ScrCmd_turnobject(struct ScriptContext *ctx)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
u8 direction = ScriptReadByte(ctx);
+
FieldObjectTurnByLocalIdAndMap(localId, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, direction);
return FALSE;
}
-bool8 ScrCmd_spritebehave(struct ScriptContext *ctx)
+bool8 ScrCmd_setobjectmovementtype(struct ScriptContext *ctx)
{
- u16 v1 = VarGet(ScriptReadHalfword(ctx));
- u8 v2 = ScriptReadByte(ctx);
- Overworld_SaveMapObjMovementType(v1, v2);
+ u16 localId = VarGet(ScriptReadHalfword(ctx));
+ u8 movementType = ScriptReadByte(ctx);
+
+ Overworld_SetMapObjTemplateMovementType(localId, movementType);
return FALSE;
}
-bool8 ScrCmd_createvsprite(struct ScriptContext *ctx)
+bool8 ScrCmd_createvobject(struct ScriptContext *ctx)
{
- u8 v1 = ScriptReadByte(ctx);
+ u8 graphicsId = ScriptReadByte(ctx);
u8 v2 = ScriptReadByte(ctx);
- u16 v3 = VarGet(ScriptReadHalfword(ctx));
- u32 v4 = VarGet(ScriptReadHalfword(ctx));
- u8 v5 = ScriptReadByte(ctx);
- u8 v6 = ScriptReadByte(ctx);
- sub_805B410(v1, v2, v3, v4, v5, v6);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u32 y = VarGet(ScriptReadHalfword(ctx));
+ u8 elevation = ScriptReadByte(ctx);
+ u8 direction = ScriptReadByte(ctx);
+
+ sub_805B410(graphicsId, v2, x, y, elevation, direction);
return FALSE;
}
-bool8 ScrCmd_vspriteface(struct ScriptContext *ctx)
+bool8 ScrCmd_turnvobject(struct ScriptContext *ctx)
{
u8 v1 = ScriptReadByte(ctx);
- u8 v2 = ScriptReadByte(ctx);
- sub_8064990(v1, v2);
+ u8 direction = ScriptReadByte(ctx);
+
+ sub_8064990(v1, direction);
return FALSE;
}
@@ -1122,7 +1196,6 @@ bool8 ScrCmd_lock(struct ScriptContext *ctx)
ScriptFreezeMapObjects();
SetupNativeScript(ctx, sub_8064CFC);
}
-
return TRUE;
}
}
@@ -1156,34 +1229,36 @@ bool8 ScrCmd_release(struct ScriptContext *ctx)
bool8 ScrCmd_message(struct ScriptContext *ctx)
{
u8 *msg = (u8 *)ScriptReadWord(ctx);
- if (!msg)
+
+ if (msg == NULL)
msg = (u8 *)ctx->data[0];
ShowFieldMessage(msg);
return FALSE;
}
-bool8 ScrCmd_message2(struct ScriptContext *ctx)
+bool8 ScrCmd_messageautoscroll(struct ScriptContext *ctx)
{
u8 *msg = (u8 *)ScriptReadWord(ctx);
- if (!msg)
+
+ if (msg == NULL)
msg = (u8 *)ctx->data[0];
ShowFieldAutoScrollMessage(msg);
return FALSE;
}
-bool8 ScrCmd_waittext(struct ScriptContext *ctx)
+bool8 ScrCmd_waitmessage(struct ScriptContext *ctx)
{
SetupNativeScript(ctx, IsFieldMessageBoxHidden);
return TRUE;
}
-bool8 ScrCmd_closebutton(struct ScriptContext *ctx)
+bool8 ScrCmd_closemessage(struct ScriptContext *ctx)
{
HideFieldMessageBox();
return FALSE;
}
-bool8 WaitForAorBPress(void)
+static bool8 WaitForAorBPress(void)
{
if (gMain.newKeys & A_BUTTON)
return TRUE;
@@ -1202,6 +1277,7 @@ bool8 ScrCmd_yesnobox(struct ScriptContext *ctx)
{
u8 left = ScriptReadByte(ctx);
u8 top = ScriptReadByte(ctx);
+
if (ScriptMenu_YesNo(left, top) == TRUE)
{
ScriptContext1_Stop();
@@ -1219,6 +1295,7 @@ bool8 ScrCmd_multichoice(struct ScriptContext *ctx)
u8 top = ScriptReadByte(ctx);
u8 multichoiceId = ScriptReadByte(ctx);
u8 ignoreBPress = ScriptReadByte(ctx);
+
if (ScriptMenu_Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE)
{
ScriptContext1_Stop();
@@ -1230,13 +1307,14 @@ bool8 ScrCmd_multichoice(struct ScriptContext *ctx)
}
}
-bool8 ScrCmd_multichoicedef(struct ScriptContext *ctx)
+bool8 ScrCmd_multichoicedefault(struct ScriptContext *ctx)
{
u8 left = ScriptReadByte(ctx);
u8 top = ScriptReadByte(ctx);
u8 multichoiceId = ScriptReadByte(ctx);
u8 defaultChoice = ScriptReadByte(ctx);
u8 ignoreBPress = ScriptReadByte(ctx);
+
if (ScriptMenu_MultichoiceWithDefault(left, top, multichoiceId, ignoreBPress, defaultChoice) == TRUE)
{
ScriptContext1_Stop();
@@ -1248,23 +1326,25 @@ bool8 ScrCmd_multichoicedef(struct ScriptContext *ctx)
}
}
-bool8 ScrCmd_showbox(struct ScriptContext *ctx)
+bool8 ScrCmd_drawbox(struct ScriptContext *ctx)
{
u8 left = ScriptReadByte(ctx);
u8 top = ScriptReadByte(ctx);
u8 right = ScriptReadByte(ctx);
u8 bottom = ScriptReadByte(ctx);
+
MenuDrawTextWindow(left, top, right, bottom);
return FALSE;
}
-bool8 ScrCmd_multichoicerow(struct ScriptContext *ctx)
+bool8 ScrCmd_multichoicegrid(struct ScriptContext *ctx)
{
u8 left = ScriptReadByte(ctx);
u8 top = ScriptReadByte(ctx);
u8 multichoiceId = ScriptReadByte(ctx);
u8 numColumns = ScriptReadByte(ctx);
u8 ignoreBPress = ScriptReadByte(ctx);
+
if (ScriptMenu_MultichoiceGrid(left, top, multichoiceId, ignoreBPress, numColumns) == TRUE)
{
ScriptContext1_Stop();
@@ -1276,23 +1356,25 @@ bool8 ScrCmd_multichoicerow(struct ScriptContext *ctx)
}
}
-bool8 ScrCmd_hidebox(struct ScriptContext *ctx)
+bool8 ScrCmd_erasebox(struct ScriptContext *ctx)
{
u8 left = ScriptReadByte(ctx);
u8 top = ScriptReadByte(ctx);
u8 right = ScriptReadByte(ctx);
u8 bottom = ScriptReadByte(ctx);
+
MenuZeroFillWindowRect(left, top, right, bottom);
return FALSE;
}
// unused
-bool8 ScrCmd_clearbox(struct ScriptContext *ctx)
+bool8 ScrCmd_drawboxtext(struct ScriptContext *ctx)
{
u8 left = ScriptReadByte(ctx);
u8 top = ScriptReadByte(ctx);
u8 multichoiceId = ScriptReadByte(ctx);
u8 ignoreBPress = ScriptReadByte(ctx);
+
if (Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE)
{
ScriptContext1_Stop();
@@ -1304,16 +1386,17 @@ bool8 ScrCmd_clearbox(struct ScriptContext *ctx)
}
}
-bool8 ScrCmd_showpokepic(struct ScriptContext *ctx)
+bool8 ScrCmd_drawpokepic(struct ScriptContext *ctx)
{
u16 species = VarGet(ScriptReadHalfword(ctx));
u8 x = ScriptReadByte(ctx);
u8 y = ScriptReadByte(ctx);
+
ScriptMenu_ShowPokemonPic(species, x, y);
return FALSE;
}
-bool8 ScrCmd_hidepokepic(struct ScriptContext *ctx)
+bool8 ScrCmd_erasepokepic(struct ScriptContext *ctx)
{
bool8 (*func)(void) = ScriptMenu_GetPicboxWaitFunc();
@@ -1323,9 +1406,10 @@ bool8 ScrCmd_hidepokepic(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_showcontestwinner(struct ScriptContext *ctx)
+bool8 ScrCmd_drawcontestwinner(struct ScriptContext *ctx)
{
u8 v1 = ScriptReadByte(ctx);
+
if (v1)
sub_8106630(v1);
ShowContestWinner();
@@ -1333,9 +1417,10 @@ bool8 ScrCmd_showcontestwinner(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_braillemsg(struct ScriptContext *ctx)
+bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
{
u8 *ptr = (u8 *)ScriptReadWord(ctx);
+
u8 v2 = ptr[0];
u8 v3 = ptr[1];
u8 v4 = ptr[2];
@@ -1348,24 +1433,27 @@ bool8 ScrCmd_braillemsg(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_vtext(struct ScriptContext *ctx)
+bool8 ScrCmd_vmessage(struct ScriptContext *ctx)
{
u32 v1 = ScriptReadWord(ctx);
+
ShowFieldMessage((u8 *)(v1 - gUnknown_0202E8B0));
return FALSE;
}
-bool8 ScrCmd_bufferpoke(struct ScriptContext *ctx)
+bool8 ScrCmd_getspeciesname(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 species = VarGet(ScriptReadHalfword(ctx));
+
StringCopy(sScriptStringVars[stringVarIndex], gSpeciesNames[species]);
return FALSE;
}
-bool8 ScrCmd_bufferfirstpoke(struct ScriptContext *ctx)
+bool8 ScrCmd_getfirstpartypokename(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
+
u8 *dest = sScriptStringVars[stringVarIndex];
u8 partyIndex = GetLeadMonIndex();
u32 species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES, NULL);
@@ -1373,82 +1461,91 @@ bool8 ScrCmd_bufferfirstpoke(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_bufferpartypoke(struct ScriptContext *ctx)
+bool8 ScrCmd_getpartypokename(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 partyIndex = VarGet(ScriptReadHalfword(ctx));
+
GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, sScriptStringVars[stringVarIndex]);
StringGetEnd10(sScriptStringVars[stringVarIndex]);
return FALSE;
}
-bool8 ScrCmd_bufferitem(struct ScriptContext *ctx)
+bool8 ScrCmd_getitemname(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 itemId = VarGet(ScriptReadHalfword(ctx));
+
CopyItemName(itemId, sScriptStringVars[stringVarIndex]);
return FALSE;
}
-bool8 ScrCmd_bufferdecor(struct ScriptContext *ctx)
+bool8 ScrCmd_getdecorname(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 decorId = VarGet(ScriptReadHalfword(ctx));
+
StringCopy(sScriptStringVars[stringVarIndex], gDecorations[decorId].name);
return FALSE;
}
-bool8 ScrCmd_bufferattack(struct ScriptContext *ctx)
+bool8 ScrCmd_getmovename(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 moveId = VarGet(ScriptReadHalfword(ctx));
+
StringCopy(sScriptStringVars[stringVarIndex], gMoveNames[moveId]);
return FALSE;
}
-bool8 ScrCmd_buffernum(struct ScriptContext *ctx)
+bool8 ScrCmd_getnumberstring(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 v1 = VarGet(ScriptReadHalfword(ctx));
u8 v2 = sub_80BF0B8(v1);
+
ConvertIntToDecimalStringN(sScriptStringVars[stringVarIndex], v1, 0, v2);
return FALSE;
}
-bool8 ScrCmd_bufferstd(struct ScriptContext *ctx)
+bool8 ScrCmd_getstdstring(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 index = VarGet(ScriptReadHalfword(ctx));
+
StringCopy(sScriptStringVars[stringVarIndex], gUnknown_083CE048[index]);
return FALSE;
}
-bool8 ScrCmd_buffertext(struct ScriptContext *ctx)
+bool8 ScrCmd_getstring(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u8 *text = (u8 *)ScriptReadWord(ctx);
+
StringCopy(sScriptStringVars[stringVarIndex], text);
return FALSE;
}
-bool8 ScrCmd_vloadptr(struct ScriptContext *ctx)
+bool8 ScrCmd_vloadword(struct ScriptContext *ctx)
{
u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_0202E8B0);
+
StringExpandPlaceholders(gStringVar4, ptr);
return FALSE;
}
-bool8 ScrCmd_vbuffer(struct ScriptContext *ctx)
+bool8 ScrCmd_vgetstring(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u32 addr = ScriptReadWord(ctx);
+
u8 *src = (u8 *)(addr - gUnknown_0202E8B0);
u8 *dest = sScriptStringVars[stringVarIndex];
StringCopy(dest, src);
return FALSE;
}
-bool8 ScrCmd_givepokemon(struct ScriptContext *ctx)
+bool8 ScrCmd_givepoke(struct ScriptContext *ctx)
{
u16 species = VarGet(ScriptReadHalfword(ctx));
u8 level = ScriptReadByte(ctx);
@@ -1456,6 +1553,7 @@ bool8 ScrCmd_givepokemon(struct ScriptContext *ctx)
u32 unkParam1 = ScriptReadWord(ctx);
u32 unkParam2 = ScriptReadWord(ctx);
u8 unkParam3 = ScriptReadByte(ctx);
+
gScriptResult = ScriptGiveMon(species, level, item, unkParam1, unkParam2, unkParam3);
return FALSE;
}
@@ -1463,6 +1561,7 @@ bool8 ScrCmd_givepokemon(struct ScriptContext *ctx)
bool8 ScrCmd_giveegg(struct ScriptContext *ctx)
{
u16 species = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = ScriptGiveEgg(species);
return FALSE;
}
@@ -1472,14 +1571,16 @@ bool8 ScrCmd_setpokemove(struct ScriptContext *ctx)
u8 partyIndex = ScriptReadByte(ctx);
u8 slot = ScriptReadByte(ctx);
u16 move = ScriptReadHalfword(ctx);
+
ScriptSetMonMoveSlot(partyIndex, move, slot);
return FALSE;
}
-bool8 ScrCmd_checkattack(struct ScriptContext *ctx)
+bool8 ScrCmd_checkpokemove(struct ScriptContext *ctx)
{
u8 i;
u16 moveId = ScriptReadHalfword(ctx);
+
gScriptResult = 6;
for (i = 0; i < 6; i++)
{
@@ -1501,15 +1602,17 @@ bool8 ScrCmd_givemoney(struct ScriptContext *ctx)
{
u32 amount = ScriptReadWord(ctx);
u8 ignore = ScriptReadByte(ctx);
+
if (!ignore)
AddMoney(&gSaveBlock1.money, amount);
return FALSE;
}
-bool8 ScrCmd_paymoney(struct ScriptContext *ctx)
+bool8 ScrCmd_takemoney(struct ScriptContext *ctx)
{
u32 amount = ScriptReadWord(ctx);
u8 ignore = ScriptReadByte(ctx);
+
if (!ignore)
RemoveMoney(&gSaveBlock1.money, amount);
return FALSE;
@@ -1519,60 +1622,67 @@ bool8 ScrCmd_checkmoney(struct ScriptContext *ctx)
{
u32 amount = ScriptReadWord(ctx);
u8 ignore = ScriptReadByte(ctx);
+
if (!ignore)
gScriptResult = IsEnoughMoney(gSaveBlock1.money, amount);
return FALSE;
}
-bool8 ScrCmd_showmoney(struct ScriptContext *ctx)
+bool8 ScrCmd_showmoneybox(struct ScriptContext *ctx)
{
u8 x = ScriptReadByte(ctx);
u8 y = ScriptReadByte(ctx);
u8 ignore = ScriptReadByte(ctx);
+
if (!ignore)
OpenMoneyWindow(gSaveBlock1.money, x, y);
return FALSE;
}
-bool8 ScrCmd_hidemoney(struct ScriptContext *ctx)
+bool8 ScrCmd_hidemoneybox(struct ScriptContext *ctx)
{
u8 x = ScriptReadByte(ctx);
u8 y = ScriptReadByte(ctx);
+
CloseMoneyWindow(x, y);
return FALSE;
}
-bool8 ScrCmd_updatemoney(struct ScriptContext *ctx)
+bool8 ScrCmd_updatemoneybox(struct ScriptContext *ctx)
{
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
u8 ignore = ScriptReadByte(ctx);
+
if (!ignore)
- UpdateMoneyWindow(gSaveBlock1.money, v2, v3);
+ UpdateMoneyWindow(gSaveBlock1.money, x, y);
return FALSE;
}
-bool8 ScrCmd_showcoins(struct ScriptContext *ctx)
+bool8 ScrCmd_showcoinsbox(struct ScriptContext *ctx)
{
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- ShowCoinsWindow(gSaveBlock1.coins, v2, v3);
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+
+ ShowCoinsWindow(gSaveBlock1.coins, x, y);
return FALSE;
}
-bool8 ScrCmd_hidecoins(struct ScriptContext *ctx)
+bool8 ScrCmd_hidecoinsbox(struct ScriptContext *ctx)
{
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- HideCoinsWindow(v2, v3);
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+
+ HideCoinsWindow(x, y);
return FALSE;
}
-bool8 ScrCmd_updatecoins(struct ScriptContext *ctx)
+bool8 ScrCmd_updatecoinsbox(struct ScriptContext *ctx)
{
- u8 v2 = ScriptReadByte(ctx);
- u8 v3 = ScriptReadByte(ctx);
- UpdateCoinsWindow(gSaveBlock1.coins, v2, v3);
+ u8 x = ScriptReadByte(ctx);
+ u8 y = ScriptReadByte(ctx);
+
+ UpdateCoinsWindow(gSaveBlock1.coins, x, y);
return FALSE;
}
@@ -1582,19 +1692,19 @@ bool8 ScrCmd_trainerbattle(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_reptrainerbattle(struct ScriptContext *ctx)
+bool8 ScrCmd_battlebegin(struct ScriptContext *ctx)
{
BattleSetup_StartTrainerBattle();
return TRUE;
}
-bool8 ScrCmd_endtrainerbattle(struct ScriptContext *ctx)
+bool8 ScrCmd_ontrainerbattleend(struct ScriptContext *ctx)
{
ctx->scriptPtr = BattleSetup_GetScriptAddrAfterBattle();
return FALSE;
}
-bool8 ScrCmd_endtrainerbattle2(struct ScriptContext *ctx)
+bool8 ScrCmd_ontrainerbattleendgoto(struct ScriptContext *ctx)
{
ctx->scriptPtr = BattleSetup_GetTrainerPostBattleScript();
return FALSE;
@@ -1603,20 +1713,23 @@ bool8 ScrCmd_endtrainerbattle2(struct ScriptContext *ctx)
bool8 ScrCmd_checktrainerflag(struct ScriptContext *ctx)
{
u16 index = VarGet(ScriptReadHalfword(ctx));
+
ctx->comparisonResult = HasTrainerAlreadyBeenFought(index);
return FALSE;
}
-bool8 ScrCmd_cleartrainerflag(struct ScriptContext *ctx)
+bool8 ScrCmd_settrainerflag(struct ScriptContext *ctx)
{
u16 index = VarGet(ScriptReadHalfword(ctx));
+
trainer_flag_set(index);
return FALSE;
}
-bool8 ScrCmd_settrainerflag(struct ScriptContext *ctx)
+bool8 ScrCmd_cleartrainerflag(struct ScriptContext *ctx)
{
u16 index = VarGet(ScriptReadHalfword(ctx));
+
trainer_flag_clear(index);
return FALSE;
}
@@ -1626,6 +1739,7 @@ bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx)
u16 species = ScriptReadHalfword(ctx);
u8 level = ScriptReadByte(ctx);
u16 item = ScriptReadHalfword(ctx);
+
CreateScriptedWildMon(species, level, item);
return FALSE;
}
@@ -1640,6 +1754,7 @@ bool8 ScrCmd_dowildbattle(struct ScriptContext *ctx)
bool8 ScrCmd_pokemart(struct ScriptContext *ctx)
{
void *ptr = (void *)ScriptReadWord(ctx);
+
CreatePokemartMenu(ptr);
ScriptContext1_Stop();
return TRUE;
@@ -1648,6 +1763,7 @@ bool8 ScrCmd_pokemart(struct ScriptContext *ctx)
bool8 ScrCmd_pokemartdecor(struct ScriptContext *ctx)
{
void *ptr = (void *)ScriptReadWord(ctx);
+
CreateDecorationShop1Menu(ptr);
ScriptContext1_Stop();
return TRUE;
@@ -1656,24 +1772,27 @@ bool8 ScrCmd_pokemartdecor(struct ScriptContext *ctx)
bool8 ScrCmd_pokemartbp(struct ScriptContext *ctx)
{
void *ptr = (void *)ScriptReadWord(ctx);
+
CreateDecorationShop2Menu(ptr);
ScriptContext1_Stop();
return TRUE;
}
-bool8 ScrCmd_pokecasino(struct ScriptContext *ctx)
+bool8 ScrCmd_playslotmachine(struct ScriptContext *ctx)
{
u8 v2 = VarGet(ScriptReadHalfword(ctx));
+
PlaySlotMachine(v2, c2_exit_to_overworld_1_continue_scripts_restart_music);
ScriptContext1_Stop();
return TRUE;
}
-bool8 ScrCmd_event_8a(struct ScriptContext *ctx)
+bool8 ScrCmd_plantberrytree(struct ScriptContext *ctx)
{
u8 treeId = ScriptReadByte(ctx);
u8 berry = ScriptReadByte(ctx);
u8 growthStage = ScriptReadByte(ctx);
+
if (berry == 0)
PlantBerryTree(treeId, 0, growthStage, FALSE);
else
@@ -1681,9 +1800,10 @@ bool8 ScrCmd_event_8a(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_event_96(struct ScriptContext *ctx)
+bool8 ScrCmd_getpricereduction(struct ScriptContext *ctx)
{
u16 value = VarGet(ScriptReadHalfword(ctx));
+
gScriptResult = GetPriceReduction(value);
return FALSE;
}
@@ -1716,17 +1836,19 @@ bool8 ScrCmd_contestlinktransfer(struct ScriptContext *ctx)
return TRUE;
}
-bool8 ScrCmd_doanimation(struct ScriptContext *ctx)
+bool8 ScrCmd_dofieldeffect(struct ScriptContext *ctx)
{
u16 effectId = VarGet(ScriptReadHalfword(ctx));
+
sFieldEffectScriptId = effectId;
FieldEffectStart(sFieldEffectScriptId);
return FALSE;
}
-bool8 ScrCmd_setanimation(struct ScriptContext *ctx)
+bool8 ScrCmd_setfieldeffect(struct ScriptContext *ctx)
{
u8 argNum = ScriptReadByte(ctx);
+
gFieldEffectArguments[argNum] = (s16)VarGet(ScriptReadHalfword(ctx));
return FALSE;
}
@@ -1739,7 +1861,7 @@ static bool8 sub_8067B48()
return FALSE;
}
-bool8 ScrCmd_checkanimation(struct ScriptContext *ctx)
+bool8 ScrCmd_waitfieldeffect(struct ScriptContext *ctx)
{
sFieldEffectScriptId = VarGet(ScriptReadHalfword(ctx));
SetupNativeScript(ctx, sub_8067B48);
@@ -1748,21 +1870,23 @@ bool8 ScrCmd_checkanimation(struct ScriptContext *ctx)
bool8 ScrCmd_sethealplace(struct ScriptContext *ctx)
{
- u16 v2 = VarGet(ScriptReadHalfword(ctx));
- sub_8053588(v2);
+ u16 healLocationId = VarGet(ScriptReadHalfword(ctx));
+
+ Overworld_SetHealLocationWarp(healLocationId);
return FALSE;
}
-bool8 ScrCmd_checkgender(struct ScriptContext *ctx)
+bool8 ScrCmd_checkplayergender(struct ScriptContext *ctx)
{
gScriptResult = gSaveBlock2.playerGender;
return FALSE;
}
-bool8 ScrCmd_pokecry(struct ScriptContext *ctx)
+bool8 ScrCmd_playpokecry(struct ScriptContext *ctx)
{
u16 species = VarGet(ScriptReadHalfword(ctx));
u16 mode = VarGet(ScriptReadHalfword(ctx));
+
PlayCry5(species, mode);
return FALSE;
}
@@ -1779,6 +1903,7 @@ bool8 ScrCmd_setmaptile(struct ScriptContext *ctx)
u16 y = VarGet(ScriptReadHalfword(ctx));
u16 tileId = VarGet(ScriptReadHalfword(ctx));
u16 v8 = VarGet(ScriptReadHalfword(ctx));
+
x += 7;
y += 7;
if (!v8)
@@ -1788,10 +1913,11 @@ bool8 ScrCmd_setmaptile(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_setdooropened(struct ScriptContext *ctx)
+bool8 ScrCmd_opendoor(struct ScriptContext *ctx)
{
u16 x = VarGet(ScriptReadHalfword(ctx));
u16 y = VarGet(ScriptReadHalfword(ctx));
+
x += 7;
y += 7;
PlaySE(GetDoorSoundEffect(x, y));
@@ -1799,10 +1925,11 @@ bool8 ScrCmd_setdooropened(struct ScriptContext *ctx)
return FALSE;
}
-bool8 ScrCmd_setdoorclosed(struct ScriptContext *ctx)
+bool8 ScrCmd_closedoor(struct ScriptContext *ctx)
{
u16 x = VarGet(ScriptReadHalfword(ctx));
u16 y = VarGet(ScriptReadHalfword(ctx));
+
x += 7;
y += 7;
FieldAnimateDoorClose(x, y);
@@ -1817,43 +1944,46 @@ static bool8 IsDoorAnimationStopped()
return FALSE;
}
-bool8 ScrCmd_doorchange(struct ScriptContext *ctx)
+bool8 ScrCmd_waitdooranim(struct ScriptContext *ctx)
{
SetupNativeScript(ctx, IsDoorAnimationStopped);
return TRUE;
}
-bool8 ScrCmd_setdooropened2(struct ScriptContext *ctx)
+bool8 ScrCmd_setdooropen(struct ScriptContext *ctx)
{
u16 x = VarGet(ScriptReadHalfword(ctx));
u16 y = VarGet(ScriptReadHalfword(ctx));
+
x += 7;
y += 7;
FieldSetDoorOpened(x, y);
return FALSE;
}
-bool8 ScrCmd_setdoorclosed2(struct ScriptContext *ctx)
+bool8 ScrCmd_setdoorclosed(struct ScriptContext *ctx)
{
u16 x = VarGet(ScriptReadHalfword(ctx));
u16 y = VarGet(ScriptReadHalfword(ctx));
+
x += 7;
y += 7;
FieldSetDoorClosed(x, y);
return FALSE;
}
-bool8 ScrCmd_event_b1(struct ScriptContext *ctx)
+bool8 ScrCmd_addelevmenuitem(struct ScriptContext *ctx)
{
u8 v3 = ScriptReadByte(ctx);
u16 v5 = VarGet(ScriptReadHalfword(ctx));
u16 v7 = VarGet(ScriptReadHalfword(ctx));
u16 v9 = VarGet(ScriptReadHalfword(ctx));
+
ScriptAddElevatorMenuItem(v3, v5, v7, v9);
return FALSE;
}
-bool8 ScrCmd_event_b2(struct ScriptContext *ctx)
+bool8 ScrCmd_showelevmenu(struct ScriptContext *ctx)
{
ScriptShowElevatorMenu();
ScriptContext1_Stop();
@@ -1870,21 +2000,21 @@ bool8 ScrCmd_checkcoins(struct ScriptContext *ctx)
bool8 ScrCmd_givecoins(struct ScriptContext *ctx)
{
u16 coins = VarGet(ScriptReadHalfword(ctx));
+
if (GiveCoins(coins) == TRUE)
gScriptResult = 0;
else
gScriptResult = 1;
-
return FALSE;
}
-bool8 ScrCmd_removecoins(struct ScriptContext *ctx)
+bool8 ScrCmd_takecoins(struct ScriptContext *ctx)
{
u16 coins = VarGet(ScriptReadHalfword(ctx));
+
if (TakeCoins(coins) == TRUE)
gScriptResult = 0;
else
gScriptResult = 1;
-
return FALSE;
}
diff --git a/src/script_menu.c b/src/field/script_menu.c
index e25e74d8c..e25e74d8c 100644
--- a/src/script_menu.c
+++ b/src/field/script_menu.c
diff --git a/src/script_movement.c b/src/field/script_movement.c
index 30e10b451..30e10b451 100644
--- a/src/script_movement.c
+++ b/src/field/script_movement.c
diff --git a/src/secret_base.c b/src/field/secret_base.c
index b2cd1f094..f221d7f16 100644
--- a/src/secret_base.c
+++ b/src/field/secret_base.c
@@ -301,7 +301,7 @@ void sub_80BBBEC(u8 taskid)
s8 idx;
if (!gPaletteFade.active) {
idx = 4 * (gUnknown_020387DC / 10);
- warp1_set(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gUnknown_083D1374[idx + 2], gUnknown_083D1374[idx + 3]);
+ Overworld_SetWarpDestination(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gUnknown_083D1374[idx + 2], gUnknown_083D1374[idx + 3]);
warp_in();
gFieldCallback = sub_80BBB90;
SetMainCallback2(CB2_LoadMap);
diff --git a/src/shop.c b/src/field/shop.c
index 22250b1c4..375205935 100644
--- a/src/shop.c
+++ b/src/field/shop.c
@@ -282,7 +282,7 @@ void BuyMenuDrawGraphics(void)
register const u32 zero asm("r6") = 0;
DmaFill32(3, zero, addr, OAM_SIZE);
LZDecompressVram(gBuyMenuFrame_Gfx, (void*)(VRAM + 0x7C00));
- sub_800D238(gBuyMenuFrame_Tilemap, (void *)0x02018000);
+ LZDecompressWram(gBuyMenuFrame_Tilemap, (void *)0x02018000);
LoadCompressedPalette(gMenuMoneyPal, 0xC0, sizeof(gMenuMoneyPal));
FreeAllSpritePalettes();
ResetPaletteFade();
diff --git a/src/slot_machine.c b/src/field/slot_machine.c
index c9a06a758..e8e4f271b 100644
--- a/src/slot_machine.c
+++ b/src/field/slot_machine.c
@@ -71,7 +71,7 @@ void sub_8106448(void) {
u32 offsetRead, offsetWrite;
u32 size;
- sub_800D238(gSlotMachine_Gfx, (void *) 0x02010000);
+ LZDecompressWram(gSlotMachine_Gfx, (void *) 0x02010000);
offsetRead = 0x02010000;
offsetWrite = BG_VRAM;
diff --git a/src/start_menu.c b/src/field/start_menu.c
index 6e44090df..6e44090df 100644
--- a/src/start_menu.c
+++ b/src/field/start_menu.c
diff --git a/src/starter_choose.c b/src/field/starter_choose.c
index 2b28df4f0..2b28df4f0 100644
--- a/src/starter_choose.c
+++ b/src/field/starter_choose.c
diff --git a/src/trader.c b/src/field/trader.c
index 61f48fad8..61f48fad8 100644
--- a/src/trader.c
+++ b/src/field/trader.c
diff --git a/src/trainer_see.c b/src/field/trainer_see.c
index 5a8ebbafc..5a8ebbafc 100644
--- a/src/trainer_see.c
+++ b/src/field/trainer_see.c
diff --git a/src/tv.c b/src/field/tv.c
index 734cbad6f..e9b5e850d 100644
--- a/src/tv.c
+++ b/src/field/tv.c
@@ -1555,7 +1555,7 @@ u16 sub_80BF674(u16 species)
rspecies = (Random() % (NUM_SPECIES - 1)) + 1;
cspecies = rspecies;
- while (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(cspecies), 0) != 1 || cspecies == species)
+ while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(cspecies), 0) != 1 || cspecies == species)
{
if (cspecies == SPECIES_BULBASAUR)
cspecies = NUM_SPECIES - 1;
@@ -2319,7 +2319,7 @@ void sub_80C03A8(u8 showidx)
void sub_80C03C8(u16 species, u8 showidx)
{
- if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(species), 0) == 0)
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 0) == 0)
gSaveBlock1.tvShows[showidx].common.var01 = 0;
}
diff --git a/src/use_pokeblock.c b/src/field/use_pokeblock.c
index e946a9cfc..e946a9cfc 100644
--- a/src/use_pokeblock.c
+++ b/src/field/use_pokeblock.c
diff --git a/src/wallclock.c b/src/field/wallclock.c
index 8db13dc2d..8db13dc2d 100644
--- a/src/wallclock.c
+++ b/src/field/wallclock.c
diff --git a/src/wild_encounter.c b/src/field/wild_encounter.c
index 390898917..390898917 100644
--- a/src/wild_encounter.c
+++ b/src/field/wild_encounter.c
diff --git a/src/agb_flash.c b/src/libs/agb_flash.c
index 340d469a7..340d469a7 100644
--- a/src/agb_flash.c
+++ b/src/libs/agb_flash.c
diff --git a/src/agb_flash_1m.c b/src/libs/agb_flash_1m.c
index e249fab9a..e249fab9a 100644
--- a/src/agb_flash_1m.c
+++ b/src/libs/agb_flash_1m.c
diff --git a/src/agb_flash_le.c b/src/libs/agb_flash_le.c
index 39d956e27..39d956e27 100644
--- a/src/agb_flash_le.c
+++ b/src/libs/agb_flash_le.c
diff --git a/src/agb_flash_mx.c b/src/libs/agb_flash_mx.c
index 67348901f..67348901f 100644
--- a/src/agb_flash_mx.c
+++ b/src/libs/agb_flash_mx.c
diff --git a/src/libc.c b/src/libs/libc.c
index 920673e3e..920673e3e 100644
--- a/src/libc.c
+++ b/src/libs/libc.c
diff --git a/src/m4a_2.c b/src/libs/m4a_2.c
index 2d3c65848..2d3c65848 100644
--- a/src/m4a_2.c
+++ b/src/libs/m4a_2.c
diff --git a/src/m4a_4.c b/src/libs/m4a_4.c
index 2e1d140b4..2e1d140b4 100644
--- a/src/m4a_4.c
+++ b/src/libs/m4a_4.c
diff --git a/src/m4a_tables.c b/src/libs/m4a_tables.c
index 91f00a31d..91f00a31d 100644
--- a/src/m4a_tables.c
+++ b/src/libs/m4a_tables.c
diff --git a/src/siirtc.c b/src/libs/siirtc.c
index 965a068f1..965a068f1 100644
--- a/src/siirtc.c
+++ b/src/libs/siirtc.c
diff --git a/src/learn_move.c b/src/pokemon/learn_move.c
index 33252c66b..33252c66b 100644
--- a/src/learn_move.c
+++ b/src/pokemon/learn_move.c
diff --git a/src/mail.c b/src/pokemon/mail.c
index c5dd119e3..c5dd119e3 100644
--- a/src/mail.c
+++ b/src/pokemon/mail.c
diff --git a/src/mail_data.c b/src/pokemon/mail_data.c
index ae3f4b3e8..ae3f4b3e8 100644
--- a/src/mail_data.c
+++ b/src/pokemon/mail_data.c
diff --git a/src/mon_markings.c b/src/pokemon/mon_markings.c
index 0cad8db59..0cad8db59 100644
--- a/src/mon_markings.c
+++ b/src/pokemon/mon_markings.c
diff --git a/src/pokeblock_feed.c b/src/pokemon/pokeblock_feed.c
index ccbb391af..5d6b215cd 100644
--- a/src/pokeblock_feed.c
+++ b/src/pokemon/pokeblock_feed.c
@@ -46,7 +46,7 @@ extern const u8 gBattleTerrainPalette_BattleTower[];
extern const struct CompressedSpriteSheet gUnknown_083F7F74;
extern const struct CompressedSpritePalette gUnknown_083F7F7C;
-bool8 sub_8040A3C(u16 species);
+bool8 IsPokeSpriteNotFlipped(u16 species);
// this file's functions
static void sub_8147B04(void);
@@ -626,7 +626,7 @@ static bool8 sub_8147B20(struct Pokemon* mon)
species = GetMonData(mon, MON_DATA_SPECIES2);
PiD = GetMonData(mon, MON_DATA_PERSONALITY);
TiD = GetMonData(mon, MON_DATA_OT_ID);
- palette = sub_80409C8(species, TiD, PiD);
+ palette = GetMonSpritePalStructFromOtIdPersonality(species, TiD, PiD);
LoadCompressedObjectPalette(palette);
GetMonSpriteTemplate_803C56C(palette->tag, 1);
ewram[0x1FFFF]++;
@@ -766,7 +766,7 @@ static u8 PokeblockFeed_CreatePokeSprite(struct Pokemon* mon)
gSprites[spriteID].data2 = species;
gSprites[spriteID].callback = SpriteCallbackDummy;
gPokeblockMonNotFlipped = 1;
- if (!sub_8040A3C(species))
+ if (!IsPokeSpriteNotFlipped(species))
{
gSprites[spriteID].affineAnims = sSpriteAffineAnimTable_84120EC;
gSprites[spriteID].oam.affineMode = 3;
diff --git a/src/pokedex.c b/src/pokemon/pokedex.c
index 274869d4d..947dfd218 100644
--- a/src/pokedex.c
+++ b/src/pokemon/pokedex.c
@@ -1,4 +1,3 @@
-
#include "global.h"
#include "gba/m4a_internal.h"
#include "pokedex.h"
@@ -185,7 +184,7 @@ static const u8 gUnknown_0839FA7C[] = INCBIN_U8("graphics/pokedex/noball.4bpp.lz
extern const u8 gUnknown_0839FA7C[];
#endif
-#include "data/pokedex_orders.h"
+#include "../data/pokedex_orders.h"
static const struct OamData gOamData_83A0404 =
{
.y = 160,
@@ -514,9 +513,9 @@ static const u8 gUnknown_083A05F1[] = {16, 8, 4, 2, 1};
const u8 gEmptySpacce_83A05F6[] = {0, 0}; // Padding, maybe?
static const u8 gUnknown_083A05F8[] = _("");
#if ENGLISH
-#include "data/pokedex_entries_en.h"
+#include "../data/pokedex_entries_en.h"
#elif GERMAN
-#include "data/pokedex_entries_de.h"
+#include "../data/pokedex_entries_de.h"
#endif
static const u16 gUnknown_083B4EC4[16] = {0};
static const u8 *const sMonFootprintTable[] =
@@ -1319,8 +1318,8 @@ void ResetPokedex(void)
{
gSaveBlock2.pokedex.owned[i] = 0;
gSaveBlock2.pokedex.seen[i] = 0;
- gSaveBlock1.unk938[i] = 0;
- gSaveBlock1.unk3A8C[i] = 0;
+ gSaveBlock1.dexSeen2[i] = 0;
+ gSaveBlock1.dexSeen3[i] = 0;
}
}
@@ -2029,8 +2028,8 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
{
vars[2] = HoennToNationalOrder(i + 1);
gPokedexView->unk0[i].dexNum = vars[2];
- gPokedexView->unk0[i].seen = GetNationalPokedexFlag(vars[2], 0);
- gPokedexView->unk0[i].owned = GetNationalPokedexFlag(vars[2], 1);
+ gPokedexView->unk0[i].seen = GetSetPokedexFlag(vars[2], 0);
+ gPokedexView->unk0[i].owned = GetSetPokedexFlag(vars[2], 1);
if (gPokedexView->unk0[i].seen)
gPokedexView->pokemonListCount = i + 1;
}
@@ -2044,14 +2043,14 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
for (i = 0; i < vars[0]; i++)
{
vars[2] = i + 1;
- if (GetNationalPokedexFlag(vars[2], 0))
+ if (GetSetPokedexFlag(vars[2], 0))
r10 = 1;
if (r10)
{
asm(""); //Needed to match for some reason
gPokedexView->unk0[r5].dexNum = vars[2];
- gPokedexView->unk0[r5].seen = GetNationalPokedexFlag(vars[2], 0);
- gPokedexView->unk0[r5].owned = GetNationalPokedexFlag(vars[2], 1);
+ gPokedexView->unk0[r5].seen = GetSetPokedexFlag(vars[2], 0);
+ gPokedexView->unk0[r5].owned = GetSetPokedexFlag(vars[2], 1);
if (gPokedexView->unk0[r5].seen)
gPokedexView->pokemonListCount = r5 + 1;
r5++;
@@ -2064,11 +2063,11 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
{
vars[2] = gPokedexOrder_Alphabetical[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 0))
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 0))
{
gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
- gPokedexView->unk0[gPokedexView->pokemonListCount].owned = GetNationalPokedexFlag(vars[2], 1);
+ gPokedexView->unk0[gPokedexView->pokemonListCount].owned = GetSetPokedexFlag(vars[2], 1);
gPokedexView->pokemonListCount++;
}
}
@@ -2078,7 +2077,7 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
{
vars[2] = gPokedexOrder_Weight[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1))
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1))
{
gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
@@ -2092,7 +2091,7 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
{
vars[2] = gPokedexOrder_Weight[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1))
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1))
{
gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
@@ -2106,7 +2105,7 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
{
vars[2] = gPokedexOrder_Height[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1))
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1))
{
gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
@@ -2120,7 +2119,7 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
{
vars[2] = gPokedexOrder_Height[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1))
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1))
{
gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
@@ -3945,7 +3944,7 @@ static void sub_8090B8C(u8 taskId)
otId = ((u16)gTasks[taskId].data[13] << 16) | (u16)gTasks[taskId].data[12];
personality = ((u16)gTasks[taskId].data[15] << 16) | (u16)gTasks[taskId].data[14];
paletteNum = gSprites[gTasks[taskId].data[3]].oam.paletteNum;
- lzPaletteData = species_and_otid_get_pal(species, otId, personality);
+ lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personality);
LoadCompressedPalette(lzPaletteData, 0x100 | paletteNum * 16, 32);
DestroyTask(taskId);
}
@@ -4007,79 +4006,79 @@ u16 GetPokedexHeightWeight(u16 dexNum, u8 data)
}
}
-s8 GetNationalPokedexFlag(u16 a, u8 b)
+s8 GetSetPokedexFlag(u16 nationalDexNo, u8 caseID)
{
u8 index;
u8 bit;
u8 mask;
s8 retVal;
- a--;
- index = a / 8;
- bit = a % 8;
+ nationalDexNo--;
+ index = nationalDexNo / 8;
+ bit = nationalDexNo % 8;
mask = 1 << bit;
retVal = 0;
- switch (b)
+ switch (caseID)
{
- case 0:
+ case FLAG_GET_SEEN:
if (gSaveBlock2.pokedex.seen[index] & mask)
{
- if ((gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.unk938[index] & mask)
- && (gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.unk3A8C[index] & mask))
+ if ((gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.dexSeen2[index] & mask)
+ && (gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.dexSeen3[index] & mask))
retVal = 1;
else
{
gSaveBlock2.pokedex.seen[index] &= ~mask;
- gSaveBlock1.unk938[index] &= ~mask;
- gSaveBlock1.unk3A8C[index] &= ~mask;
+ gSaveBlock1.dexSeen2[index] &= ~mask;
+ gSaveBlock1.dexSeen3[index] &= ~mask;
retVal = 0;
}
}
break;
- case 1:
+ case FLAG_GET_CAUGHT:
if (gSaveBlock2.pokedex.owned[index] & mask)
{
if ((gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock2.pokedex.seen[index] & mask)
- && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.unk938[index] & mask)
- && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.unk3A8C[index] & mask))
+ && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.dexSeen2[index] & mask)
+ && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.dexSeen3[index] & mask))
retVal = 1;
else
{
gSaveBlock2.pokedex.owned[index] &= ~mask;
gSaveBlock2.pokedex.seen[index] &= ~mask;
- gSaveBlock1.unk938[index] &= ~mask;
- gSaveBlock1.unk3A8C[index] &= ~mask;
+ gSaveBlock1.dexSeen2[index] &= ~mask;
+ gSaveBlock1.dexSeen3[index] &= ~mask;
retVal = 0;
}
}
break;
- case 2:
+ case FLAG_SET_SEEN:
gSaveBlock2.pokedex.seen[index] |= mask;
- gSaveBlock1.unk938[index] |= mask;
- gSaveBlock1.unk3A8C[index] |= mask;
+ gSaveBlock1.dexSeen2[index] |= mask;
+ gSaveBlock1.dexSeen3[index] |= mask;
break;
- case 3:
+ case FLAG_SET_CAUGHT:
gSaveBlock2.pokedex.owned[index] |= mask;
break;
}
return retVal;
}
-u16 GetNationalPokedexCount(u8 a)
+u16 GetNationalPokedexCount(u8 caseID)
{
u16 count = 0;
u16 i;
for (i = 0; i < NATIONAL_DEX_COUNT; i++)
{
- switch (a)
+ switch (caseID)
{
- case 0:
- if (GetNationalPokedexFlag(i + 1, 0) != 0)
+ case FLAG_GET_SEEN:
+ if (GetSetPokedexFlag(i + 1, FLAG_GET_SEEN))
count++;
break;
- case 1:
- if (GetNationalPokedexFlag(i + 1, 1) != 0)
+ case FLAG_GET_CAUGHT:
+ if (GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT))
count++;
break;
}
@@ -4087,21 +4086,21 @@ u16 GetNationalPokedexCount(u8 a)
return count;
}
-u16 GetHoennPokedexCount(u8 a)
+u16 GetHoennPokedexCount(u8 caseID)
{
u16 count = 0;
u16 i;
for (i = 0; i < 202; i++)
{
- switch (a)
+ switch (caseID)
{
- case 0:
- if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 0) != 0)
+ case FLAG_GET_SEEN:
+ if (GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_SEEN))
count++;
break;
- case 1:
- if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 1) != 0)
+ case FLAG_GET_CAUGHT:
+ if (GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_CAUGHT))
count++;
break;
}
@@ -4115,7 +4114,7 @@ bool8 sub_8090FC0(void)
for (i = 0; i < 200; i++)
{
- if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 1) == 0)
+ if (!GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_CAUGHT))
return FALSE;
}
return TRUE;
@@ -4127,17 +4126,17 @@ u16 sub_8090FF4(void)
for (i = 0; i < 150; i++)
{
- if (GetNationalPokedexFlag(i + 1, 1) == 0)
+ if (GetSetPokedexFlag(i + 1, 1) == 0)
return 0;
}
for (i = 152; i < 250; i++)
{
- if (GetNationalPokedexFlag(i + 1, 1) == 0)
+ if (GetSetPokedexFlag(i + 1, 1) == 0)
return 0;
}
for (i = 252; i < 384; i++)
{
- if (GetNationalPokedexFlag(i + 1, 1) == 0)
+ if (GetSetPokedexFlag(i + 1, 1) == 0)
return 0;
}
return 1;
diff --git a/src/pokedex_cry_screen.c b/src/pokemon/pokedex_cry_screen.c
index 92fd832fc..92fd832fc 100644
--- a/src/pokedex_cry_screen.c
+++ b/src/pokemon/pokedex_cry_screen.c
diff --git a/src/pokemon_1.c b/src/pokemon/pokemon_1.c
index 1d597cb17..1d597cb17 100644
--- a/src/pokemon_1.c
+++ b/src/pokemon/pokemon_1.c
diff --git a/src/pokemon_2.c b/src/pokemon/pokemon_2.c
index f02ce6170..f02ce6170 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon/pokemon_2.c
diff --git a/src/pokemon_3.c b/src/pokemon/pokemon_3.c
index e51d3187b..1eff9b83c 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon/pokemon_3.c
@@ -278,7 +278,7 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem)
else
holdEffect = ItemId_GetHoldEffect(heldItem);
- if (holdEffect == 38 && type != 3)
+ if (holdEffect == HOLD_EFFECT_PREVENT_EVOLVE && type != 3)
return 0;
switch (type)
@@ -1096,7 +1096,7 @@ void ClearBattleMonForms(void)
gBattleMonForms[i] = 0;
}
-u16 sub_8040728(void)
+u16 GetBGM_ForBattle(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON)
return BGM_BATTLE34;
@@ -1137,7 +1137,7 @@ void sub_80408BC(void)
{
ResetMapMusic();
m4aMPlayAllStop();
- PlayBGM(sub_8040728());
+ PlayBGM(GetBGM_ForBattle());
}
void current_map_music_set__default_for_battle(u16 song)
@@ -1147,15 +1147,15 @@ void current_map_music_set__default_for_battle(u16 song)
if (song)
PlayNewMapMusic(song);
else
- PlayNewMapMusic(sub_8040728());
+ PlayNewMapMusic(GetBGM_ForBattle());
}
-const u8 *pokemon_get_pal(struct Pokemon *mon)
+const u8 *GetMonSpritePal(struct Pokemon *mon)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0);
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0);
- return species_and_otid_get_pal(species, otId, personality);
+ return GetMonSpritePalFromOtIdPersonality(species, otId, personality);
}
//Extracts the upper 16 bits of a 32-bit number
@@ -1164,7 +1164,7 @@ const u8 *pokemon_get_pal(struct Pokemon *mon)
//Extracts the lower 16 bits of a 32-bit number
#define LOHALF(n) ((n) & 0xFFFF)
-const u8 *species_and_otid_get_pal(u16 species, u32 otId, u32 personality)
+const u8 *GetMonSpritePalFromOtIdPersonality(u16 species, u32 otId, u32 personality)
{
u32 shinyValue;
@@ -1178,15 +1178,15 @@ const u8 *species_and_otid_get_pal(u16 species, u32 otId, u32 personality)
return gMonPaletteTable[species].data;
}
-const struct CompressedSpritePalette *sub_8040990(struct Pokemon *mon)
+const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0);
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0);
- return sub_80409C8(species, otId, personality);
+ return GetMonSpritePalStructFromOtIdPersonality(species, otId, personality);
}
-const struct CompressedSpritePalette *sub_80409C8(u16 species, u32 otId , u32 personality)
+const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality)
{
u32 shinyValue;
@@ -1208,9 +1208,9 @@ bool32 IsHMMove2(u16 move)
return FALSE;
}
-bool8 sub_8040A3C(u16 species)
+bool8 IsPokeSpriteNotFlipped(u16 species)
{
- return gBaseStats[species].unk19_7;
+ return gBaseStats[species].noFlip;
}
s8 sub_8040A54(struct Pokemon *mon, u8 a2)
diff --git a/src/pokemon_data.c b/src/pokemon/pokemon_data.c
index 6414134fb..6414134fb 100644
--- a/src/pokemon_data.c
+++ b/src/pokemon/pokemon_data.c
diff --git a/src/pokemon_icon.c b/src/pokemon/pokemon_icon.c
index 9bb3386e1..9bb3386e1 100644
--- a/src/pokemon_icon.c
+++ b/src/pokemon/pokemon_icon.c
diff --git a/src/pokemon_menu.c b/src/pokemon/pokemon_menu.c
index bc5150a16..bc5150a16 100644
--- a/src/pokemon_menu.c
+++ b/src/pokemon/pokemon_menu.c
diff --git a/src/pokemon_size_record.c b/src/pokemon/pokemon_size_record.c
index f2222bd3b..f2222bd3b 100644
--- a/src/pokemon_size_record.c
+++ b/src/pokemon/pokemon_size_record.c
diff --git a/src/pokemon_storage_system.c b/src/pokemon/pokemon_storage_system.c
index 5e97523e2..5e97523e2 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon/pokemon_storage_system.c
diff --git a/src/pokemon_summary_screen.c b/src/pokemon/pokemon_summary_screen.c
index 00a0bea29..00a0bea29 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon/pokemon_summary_screen.c
diff --git a/src/rom6.c b/src/rom6.c
index 3a5071034..b91a9b2c0 100644
--- a/src/rom6.c
+++ b/src/rom6.c
@@ -169,7 +169,7 @@ int SetUpFieldMove_Dig(void)
static void sub_810B5D8(void)
{
- sub_8053014();
+ Overworld_ResetStateAfterDigEscRope();
FieldEffectStart(FLDEFF_USE_DIG);
gFieldEffectArguments[0] = gLastFieldPokeMenuOpened;
}
diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c
index 249146b37..172233e6d 100644
--- a/src/rom_8077ABC.c
+++ b/src/rom_8077ABC.c
@@ -102,8 +102,8 @@ extern u32 gTransformPersonalities[NUM_BATTLE_SLOTS];
extern u8 gBattleMonForms[NUM_BATTLE_SLOTS];
extern u16 gUnknown_0202F7CA[];
extern u8 gBattleMonSprites[NUM_BATTLE_SLOTS];
-extern u8 gBattleAnimPlayerMonIndex;
-extern u8 gBattleAnimEnemyMonIndex;
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
extern s16 gBattleAnimArgs[8];
extern u8 gBanksBySide[NUM_BATTLE_SLOTS];
extern u8 gNoOfAllBanks; // gNumBattleMons?
@@ -402,43 +402,43 @@ u8 sub_8077FC0(u8 slot) {
return r6;
}
-u8 obj_id_for_side_relative_to_move(u8 a1) {
+u8 GetAnimBankSpriteId(u8 whichBank) {
u8 *sprites;
- if (a1 == 0) {
- if (sub_8078874(gBattleAnimPlayerMonIndex)) {
+ if (whichBank == ANIM_BANK_ATK) {
+ if (AnimBankSpriteExists(gBattleAnimBankAttacker)) {
sprites = gBattleMonSprites;
- return sprites[gBattleAnimPlayerMonIndex];
+ return sprites[gBattleAnimBankAttacker];
} else {
return 0xff;
}
- } else if (a1 == 1) {
- if (sub_8078874(gBattleAnimEnemyMonIndex)) {
+ } else if (whichBank == ANIM_BANK_DEF) {
+ if (AnimBankSpriteExists(gBattleAnimBankTarget)) {
sprites = gBattleMonSprites;
- return sprites[gBattleAnimEnemyMonIndex];
+ return sprites[gBattleAnimBankTarget];
} else {
return 0xff;
}
- } else if (a1 == 2) {
- if (!b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex ^ 2)) {
+ } else if (whichBank == ANIM_BANK_ATK_PARTNER) {
+ if (!IsAnimBankSpriteVisible(gBattleAnimBankAttacker ^ 2)) {
return 0xff;
} else {
- return gBattleMonSprites[gBattleAnimPlayerMonIndex ^ 2];
+ return gBattleMonSprites[gBattleAnimBankAttacker ^ 2];
}
} else {
- if (b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex ^ 2)) {
- return gBattleMonSprites[gBattleAnimEnemyMonIndex ^ 2];
+ if (IsAnimBankSpriteVisible(gBattleAnimBankTarget ^ 2)) {
+ return gBattleMonSprites[gBattleAnimBankTarget ^ 2];
} else {
return 0xff;
}
}
}
-void oamt_set_x3A_32(struct Sprite *sprite, void (*callback)(struct Sprite*)) {
+void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*callback)(struct Sprite*)) {
sprite->data6 = (u32)(callback) & 0xffff;
sprite->data7 = (u32)(callback) >> 16;
}
-void sub_8078104(struct Sprite *sprite) {
+void SetCallbackToStoredInData6(struct Sprite *sprite) {
u32 callback = (u16)sprite->data6 | (sprite->data7 << 16);
sprite->callback = (void (*)(struct Sprite *))callback;
}
@@ -455,7 +455,7 @@ void sub_8078114(struct Sprite *sprite) {
}
sprite->data3--;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -472,7 +472,7 @@ void sub_8078174(struct Sprite *sprite) {
}
sprite->data3--;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -494,7 +494,7 @@ void unref_sub_80781F0(struct Sprite *sprite) {
}
sprite->data3--;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -510,7 +510,7 @@ void sub_8078278(struct Sprite *sprite) {
}
sprite->data3--;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -518,7 +518,7 @@ void sub_80782D8(struct Sprite *sprite) {
if (sprite->data0 > 0) {
sprite->data0--;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -547,7 +547,7 @@ void sub_8078364(struct Sprite *sprite) {
sprite->pos2.x += sprite->data1;
sprite->pos2.y += sprite->data2;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -559,7 +559,7 @@ void sub_8078394(struct Sprite *sprite) {
sprite->pos2.x = sprite->data3 >> 8;
sprite->pos2.y = sprite->data4 >> 8;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -571,7 +571,7 @@ void sub_80783D0(struct Sprite *sprite) {
sprite->pos2.x = sprite->data3 >> 8;
sprite->pos2.y = sprite->data4 >> 8;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
UpdateMonIconFrame(sprite);
}
@@ -579,8 +579,8 @@ void sub_80783D0(struct Sprite *sprite) {
void unref_sub_8078414(struct Sprite *sprite) {
sprite->data1 = sprite->pos1.x + sprite->pos2.x;
sprite->data3 = sprite->pos1.y + sprite->pos2.y;
- sprite->data2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2);
- sprite->data4 = sub_8077ABC(gBattleAnimEnemyMonIndex, 3);
+ sprite->data2 = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->data4 = sub_8077ABC(gBattleAnimBankTarget, 3);
sprite->callback = sub_80782F8;
}
@@ -590,7 +590,7 @@ void sub_8078458(struct Sprite *sprite) {
gSprites[sprite->data3].pos2.x += sprite->data1;
gSprites[sprite->data3].pos2.y += sprite->data2;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -602,7 +602,7 @@ void sub_80784A8(struct Sprite *sprite) {
gSprites[sprite->data5].pos2.x = sprite->data3 >> 8;
gSprites[sprite->data5].pos2.y = sprite->data4 >> 8;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -619,7 +619,7 @@ void sub_8078504(struct Sprite *sprite) {
}
}
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -631,8 +631,8 @@ void move_anim_8074EE0(struct Sprite *sprite) {
void unref_sub_8078588(struct Sprite *sprite) {
sprite->data1 = sprite->pos1.x + sprite->pos2.x;
sprite->data3 = sprite->pos1.y + sprite->pos2.y;
- sprite->data2 = sub_8077ABC(gBattleAnimPlayerMonIndex, 2);
- sprite->data4 = sub_8077ABC(gBattleAnimPlayerMonIndex, 3);
+ sprite->data2 = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->data4 = sub_8077ABC(gBattleAnimBankAttacker, 3);
sprite->callback = sub_80782F8;
}
@@ -643,13 +643,13 @@ void unref_sub_80785CC(struct Sprite *sprite) {
void sub_80785E4(struct Sprite *sprite) {
if (sprite->affineAnimEnded) {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
void sub_8078600(struct Sprite *sprite) {
if (sprite->animEnded) {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -666,19 +666,19 @@ void sub_8078634(u8 task) {
}
void sub_8078650(struct Sprite *sprite) {
- sprite->pos1.x = sub_8077ABC(gBattleAnimPlayerMonIndex, 2);
- sprite->pos1.y = sub_8077ABC(gBattleAnimPlayerMonIndex, 3);
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3);
}
void sub_807867C(struct Sprite *sprite, s16 a2) {
- u16 v1 = sub_8077ABC(gBattleAnimPlayerMonIndex, 0);
- u16 v2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 0);
+ u16 v1 = sub_8077ABC(gBattleAnimBankAttacker, 0);
+ u16 v2 = sub_8077ABC(gBattleAnimBankTarget, 0);
if (v1 > v2) {
sprite->pos1.x -= a2;
} else if (v1 < v2) {
sprite->pos1.x += a2;
} else {
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
sprite->pos1.x -= a2;
} else {
sprite->pos1.x += a2;
@@ -712,8 +712,8 @@ void oamt_add_pos2_onto_pos1(struct Sprite *sprite) {
void sub_8078764(struct Sprite *sprite, u8 a2) {
if (!a2) {
- sprite->pos1.x = sub_8077EE4(gBattleAnimEnemyMonIndex, 0);
- sprite->pos1.y = sub_8077EE4(gBattleAnimEnemyMonIndex, 1);
+ sprite->pos1.x = sub_8077EE4(gBattleAnimBankTarget, 0);
+ sprite->pos1.y = sub_8077EE4(gBattleAnimBankTarget, 1);
}
sub_807867C(sprite, gBattleAnimArgs[0]);
sprite->pos1.y += gBattleAnimArgs[1];
@@ -721,11 +721,11 @@ void sub_8078764(struct Sprite *sprite, u8 a2) {
void sub_80787B0(struct Sprite *sprite, u8 a2) {
if (!a2) {
- sprite->pos1.x = sub_8077EE4(gBattleAnimPlayerMonIndex, 0);
- sprite->pos1.y = sub_8077EE4(gBattleAnimPlayerMonIndex, 1);
+ sprite->pos1.x = sub_8077EE4(gBattleAnimBankAttacker, 0);
+ sprite->pos1.y = sub_8077EE4(gBattleAnimBankAttacker, 1);
} else {
- sprite->pos1.x = sub_8077EE4(gBattleAnimPlayerMonIndex, 2);
- sprite->pos1.y = sub_8077EE4(gBattleAnimPlayerMonIndex, 3);
+ sprite->pos1.x = sub_8077EE4(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077EE4(gBattleAnimBankAttacker, 3);
}
sub_807867C(sprite, gBattleAnimArgs[0]);
sprite->pos1.y += gBattleAnimArgs[1];
@@ -749,12 +749,12 @@ u8 GetBankByPlayerAI(u8 slot) {
return i;
}
-bool8 sub_8078874(u8 slot) {
+bool8 AnimBankSpriteExists(u8 slot) {
if (IsContest()) {
- if (gBattleAnimPlayerMonIndex == slot) {
+ if (gBattleAnimBankAttacker == slot) {
return TRUE;
}
- if (gBattleAnimEnemyMonIndex == slot) {
+ if (gBattleAnimBankTarget == slot) {
return TRUE;
}
return FALSE;
@@ -796,7 +796,7 @@ void sub_8078954(struct Struct_sub_8078914 *unk) {
unk->field_0 = (u8 *)0x6008000;
unk->field_4 = (u8 *)0x600f000;
unk->field_8 = 0xe;
- } else if (GetBankIdentity_permutated(gBattleAnimPlayerMonIndex) == 1) {
+ } else if (GetBankIdentity_permutated(gBattleAnimBankAttacker) == 1) {
unk->field_0 = (u8 *)0x6004000;
unk->field_4 = (u8 *)0x600e000;
unk->field_8 = 0x8;
@@ -906,7 +906,7 @@ bool8 sub_8078B5C(struct Sprite *sprite) {
void sub_8078BB8(struct Sprite *sprite) {
if (sub_8078B5C(sprite)) {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -986,7 +986,7 @@ bool8 sub_8078CE8(struct Sprite *sprite) {
void sub_8078D44(struct Sprite *sprite) {
if (sub_8078CE8(sprite)) {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -1024,7 +1024,7 @@ void obj_id_set_rotscale(u8 sprite, s16 xScale, s16 yScale, u16 rotation) {
bool8 sub_8078E38() {
if (IsContest()) {
- if (gSprites[obj_id_for_side_relative_to_move(0)].data2 == 0xc9 /* XXX SPECIES_UNOWN? */) {
+ if (gSprites[GetAnimBankSpriteId(0)].data2 == 0xc9 /* XXX SPECIES_UNOWN? */) {
return FALSE;
}
return TRUE;
@@ -1035,7 +1035,7 @@ bool8 sub_8078E38() {
void sub_8078E70(u8 sprite, u8 a2) {
struct Struct_2017810 *unk;
u8 r7 = gSprites[sprite].data0;
- if (IsContest() || b_side_obj__get_some_boolean(r7)) {
+ if (IsContest() || IsAnimBankSpriteVisible(r7)) {
gSprites[sprite].invisible = FALSE;
}
gSprites[sprite].oam.objMode = a2;
@@ -1096,12 +1096,12 @@ void sub_8079098(struct Sprite *sprite) {
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
}
-u16 sub_80790D8(s16 a, s16 b) {
+static u16 ArcTan2_(s16 a, s16 b) {
return ArcTan2(a, b);
}
u16 sub_80790F0(s16 a, s16 b) {
- u16 var = sub_80790D8(a, b);
+ u16 var = ArcTan2_(a, b);
return -var;
}
@@ -1140,22 +1140,22 @@ u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) {
}
}
if (a2) {
- shift = gBattleAnimPlayerMonIndex + 16;
+ shift = gBattleAnimBankAttacker + 16;
var |= 1 << shift;
}
if (a3) {
- shift = gBattleAnimEnemyMonIndex + 16;
+ shift = gBattleAnimBankTarget + 16;
var |= 1 << shift;
}
if (a4) {
- if (b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex ^ 2)) {
- shift = (gBattleAnimPlayerMonIndex ^ 2) + 16;
+ if (IsAnimBankSpriteVisible(gBattleAnimBankAttacker ^ 2)) {
+ shift = (gBattleAnimBankAttacker ^ 2) + 16;
var |= 1 << shift;
}
}
if (a5) {
- if (b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex ^ 2)) {
- shift = (gBattleAnimEnemyMonIndex ^ 2) + 16;
+ if (IsAnimBankSpriteVisible(gBattleAnimBankTarget ^ 2)) {
+ shift = (gBattleAnimBankTarget ^ 2) + 16;
var |= 1 << shift;
}
}
@@ -1184,24 +1184,24 @@ u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4) {
}
} else {
if (a1) {
- if (b_side_obj__get_some_boolean(GetBankByPlayerAI(0))) {
+ if (IsAnimBankSpriteVisible(GetBankByPlayerAI(0))) {
var |= 1 << (GetBankByPlayerAI(0) + 16);
}
}
if (a2) {
- if (b_side_obj__get_some_boolean(GetBankByPlayerAI(2))) {
+ if (IsAnimBankSpriteVisible(GetBankByPlayerAI(2))) {
shift = GetBankByPlayerAI(2) + 16;
var |= 1 << shift;
}
}
if (a3) {
- if (b_side_obj__get_some_boolean(GetBankByPlayerAI(1))) {
+ if (IsAnimBankSpriteVisible(GetBankByPlayerAI(1))) {
shift = GetBankByPlayerAI(1) + 16;
var |= 1 << shift;
}
}
if (a4) {
- if (b_side_obj__get_some_boolean(GetBankByPlayerAI(3))) {
+ if (IsAnimBankSpriteVisible(GetBankByPlayerAI(3))) {
shift = GetBankByPlayerAI(3) + 16;
var |= 1 << shift;
}
@@ -1252,24 +1252,24 @@ void sub_807941C(struct Sprite *sprite) {
v2 = 1;
}
sub_80787B0(sprite, v1);
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
sprite->data0 = gBattleAnimArgs[4];
- sprite->data2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2) + gBattleAnimArgs[2];
- sprite->data4 = sub_8077ABC(gBattleAnimEnemyMonIndex, v2) + gBattleAnimArgs[3];
+ sprite->data2 = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2];
+ sprite->data4 = sub_8077ABC(gBattleAnimBankTarget, v2) + gBattleAnimArgs[3];
sprite->callback = sub_8078B34;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
void sub_80794A8(struct Sprite *sprite) {
sub_80787B0(sprite, 1);
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
sprite->data0 = gBattleAnimArgs[4];
- sprite->data2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2) + gBattleAnimArgs[2];
- sprite->data4 = sub_8077ABC(gBattleAnimEnemyMonIndex, 3) + gBattleAnimArgs[3];
+ sprite->data2 = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2];
+ sprite->data4 = sub_8077ABC(gBattleAnimBankTarget, 3) + gBattleAnimArgs[3];
sprite->data5 = gBattleAnimArgs[5];
sub_80786EC(sprite);
sprite->callback = sub_8079518;
@@ -1292,12 +1292,12 @@ void sub_8079534(struct Sprite *sprite) {
}
if (!gBattleAnimArgs[5]) {
sub_80787B0(sprite, r4);
- slot = gBattleAnimPlayerMonIndex;
+ slot = gBattleAnimBankAttacker;
} else {
sub_8078764(sprite, r4);
- slot = gBattleAnimEnemyMonIndex;
+ slot = gBattleAnimBankTarget;
}
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
sub_8078764(sprite, r4);
@@ -1305,12 +1305,12 @@ void sub_8079534(struct Sprite *sprite) {
sprite->data2 = sub_8077ABC(slot, 2) + gBattleAnimArgs[2];
sprite->data4 = sub_8077ABC(slot, r7) + gBattleAnimArgs[3];
sprite->callback = sub_8078B34;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 a1) {
u16 i;
- u8 sprite = obj_id_for_side_relative_to_move(a1);
+ u8 sprite = GetAnimBankSpriteId(a1);
if (sprite != 0xff) {
for (i = 0; i < 0x40; i++) {
if (gSprites[i].inUse) {
@@ -1380,7 +1380,7 @@ void sub_80796F8(u8 taskId) {
}
void sub_8079790(u8 task) {
- u8 sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ u8 sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
if (sprite == 0xff) {
DestroyAnimVisualTask(task);
return;
@@ -1624,24 +1624,24 @@ void sub_8079CEC(u8 task) {
}
void unref_sub_8079D20(u8 priority) {
- if (b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex)) {
- gSprites[gBattleMonSprites[gBattleAnimEnemyMonIndex]].oam.priority = priority;
+ if (IsAnimBankSpriteVisible(gBattleAnimBankTarget)) {
+ gSprites[gBattleMonSprites[gBattleAnimBankTarget]].oam.priority = priority;
}
- if (b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex)) {
- gSprites[gBattleMonSprites[gBattleAnimPlayerMonIndex]].oam.priority = priority;
+ if (IsAnimBankSpriteVisible(gBattleAnimBankAttacker)) {
+ gSprites[gBattleMonSprites[gBattleAnimBankAttacker]].oam.priority = priority;
}
- if (b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex ^ 2)) {
- gSprites[gBattleMonSprites[gBattleAnimEnemyMonIndex ^ 2]].oam.priority = priority;
+ if (IsAnimBankSpriteVisible(gBattleAnimBankTarget ^ 2)) {
+ gSprites[gBattleMonSprites[gBattleAnimBankTarget ^ 2]].oam.priority = priority;
}
- if (b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex ^ 2)) {
- gSprites[gBattleMonSprites[gBattleAnimPlayerMonIndex ^ 2]].oam.priority = priority;
+ if (IsAnimBankSpriteVisible(gBattleAnimBankAttacker ^ 2)) {
+ gSprites[gBattleMonSprites[gBattleAnimBankAttacker ^ 2]].oam.priority = priority;
}
}
void sub_8079E24() {
int i;
for (i = 0; i < gNoOfAllBanks; i++) {
- if (b_side_obj__get_some_boolean(i)) {
+ if (IsAnimBankSpriteVisible(i)) {
gSprites[gBattleMonSprites[i]].subpriority = sub_8079E90(i);
gSprites[gBattleMonSprites[i]].oam.priority = 2;
}
@@ -1706,7 +1706,7 @@ u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7,
u16 sheet = LoadSpriteSheet(&gUnknown_0837F5E0[a3]);
u16 palette = AllocSpritePalette(gSpriteTemplate_837F5B0[a3].paletteTag);
if (!isBackpic) {
- LoadCompressedPalette(species_and_otid_get_pal(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
+ LoadCompressedPalette(GetMonSpritePalFromOtIdPersonality(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
LoadSpecialPokePic(
&gMonFrontPicTable[species],
gMonFrontPicCoords[species].coords,
@@ -1719,7 +1719,7 @@ u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7,
);
} else {
LoadCompressedPalette(
- species_and_otid_get_pal(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
+ GetMonSpritePalFromOtIdPersonality(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
LoadSpecialPokePic(
&gMonBackPicTable[species],
gMonBackPicCoords[species].coords,
@@ -1892,7 +1892,7 @@ u8 sub_807A4A0(int a1, u8 sprite, int a3) {
void sub_807A544(struct Sprite *sprite) {
sub_8078650(sprite);
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
sprite->pos1.x -= gBattleAnimArgs[0];
gBattleAnimArgs[3] = -gBattleAnimArgs[3];
sprite->hFlip = TRUE;
@@ -1904,12 +1904,12 @@ void sub_807A544(struct Sprite *sprite) {
sprite->data1 = gBattleAnimArgs[3];
sprite->data3 = gBattleAnimArgs[4];
sprite->data5 = gBattleAnimArgs[5];
- oamt_set_x3A_32(sprite, move_anim_8074EE0);
+ StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = sub_8078504;
}
void sub_807A5C4(struct Sprite *sprite) {
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
sprite->pos1.x -= gBattleAnimArgs[0];
gBattleAnimArgs[3] *= -1;
} else {
@@ -1921,28 +1921,28 @@ void sub_807A5C4(struct Sprite *sprite) {
sprite->data3 = gBattleAnimArgs[4];
sprite->data5 = gBattleAnimArgs[5];
StartSpriteAnim(sprite, gBattleAnimArgs[6]);
- oamt_set_x3A_32(sprite, move_anim_8074EE0);
+ StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = sub_8078504;
}
void sub_807A63C(struct Sprite *sprite) {
sub_8078650(sprite);
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
sprite->pos1.x -= gBattleAnimArgs[0];
} else {
sprite->pos1.x += gBattleAnimArgs[0];
}
sprite->pos1.y += gBattleAnimArgs[1];
sprite->callback = sub_8078600;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
void sub_807A69C(u8 taskId) {
u16 src;
u16 dest;
struct Task *task = &gTasks[taskId];
- task->data[0] = obj_id_for_side_relative_to_move(0);
- task->data[1] = (GetBankSide(gBattleAnimPlayerMonIndex)) ? -8 : 8;
+ task->data[0] = GetAnimBankSpriteId(0);
+ task->data[1] = (GetBankSide(gBattleAnimBankAttacker)) ? -8 : 8;
task->data[2] = 0;
task->data[3] = 0;
gSprites[task->data[0]].pos2.x -= task->data[0];
@@ -1951,7 +1951,7 @@ void sub_807A69C(u8 taskId) {
dest = (task->data[4] + 0x10) * 0x10;
src = (gSprites[task->data[0]].oam.paletteNum + 0x10) * 0x10;
- task->data[6] = sub_8079E90(gBattleAnimPlayerMonIndex);
+ task->data[6] = sub_8079E90(gBattleAnimBankAttacker);
if (task->data[6] == 20 || task->data[6] == 40) {
task->data[6] = 2;
} else {
@@ -2012,9 +2012,9 @@ void sub_807A8D4(struct Sprite *sprite) {
}
void sub_807A908(struct Sprite *sprite) {
- sprite->pos1.x = sub_8077ABC(gBattleAnimPlayerMonIndex, 2);
- sprite->pos1.y = sub_8077ABC(gBattleAnimPlayerMonIndex, 3);
- if (!GetBankSide(gBattleAnimPlayerMonIndex)) {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ if (!GetBankSide(gBattleAnimBankAttacker)) {
sprite->data0 = 5;
} else {
sprite->data0 = -10;
@@ -2041,7 +2041,7 @@ void sub_807A9BC(struct Sprite *sprite) {
sprite->data0 = gBattleAnimArgs[2];
sprite->data2 = sprite->pos1.x + gBattleAnimArgs[4];
sprite->data4 = sprite->pos1.y + gBattleAnimArgs[5];
- if (!GetBankSide(gBattleAnimEnemyMonIndex)) {
+ if (!GetBankSide(gBattleAnimBankTarget)) {
x = (u16)gBattleAnimArgs[4] + 30;
sprite->pos1.x += x;
sprite->pos1.y = gBattleAnimArgs[5] - 20;
@@ -2051,5 +2051,5 @@ void sub_807A9BC(struct Sprite *sprite) {
sprite->pos1.y = gBattleAnimArgs[5] - 80;
}
sprite->callback = sub_8078B34;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
diff --git a/src/berry_blender.c b/src/scene/berry_blender.c
index 455aabc45..7ffcc5185 100644
--- a/src/berry_blender.c
+++ b/src/scene/berry_blender.c
@@ -828,7 +828,7 @@ static bool8 sub_804E2EC(void)
switch (gBerryBlenderData->field_1)
{
case 0:
- sub_800D238(gUnknown_08E6C100, &ewram[0x10000]);
+ LZDecompressWram(gUnknown_08E6C100, &ewram[0x10000]);
gBerryBlenderData->field_1++;
break;
case 1:
@@ -862,11 +862,11 @@ static bool8 sub_804E2EC(void)
}
break;
case 3:
- sub_800D238(gUnknown_08E6C920, &ewram[0x10000]);
+ LZDecompressWram(gUnknown_08E6C920, &ewram[0x10000]);
gBerryBlenderData->field_1++;
break;
case 4:
- sub_800D238(gUnknown_08E6D354, &ewram[0x13000]);
+ LZDecompressWram(gUnknown_08E6D354, &ewram[0x13000]);
gBerryBlenderData->field_1++;
break;
case 5:
diff --git a/src/contest_painting.c b/src/scene/contest_painting.c
index 391cbdfaa..3662efdec 100644
--- a/src/contest_painting.c
+++ b/src/scene/contest_painting.c
@@ -353,7 +353,7 @@ static void sub_8106AC4(u16 species, u8 arg1)
void *pal;
// Unsure what gUnknown_03005E8C->var0 is supposed to be.
- pal = species_and_otid_get_pal(species, gUnknown_03005E8C->var4, gUnknown_03005E8C->var0);
+ pal = GetMonSpritePalFromOtIdPersonality(species, gUnknown_03005E8C->var4, gUnknown_03005E8C->var0);
LZDecompressVram(pal, gUnknown_03005E90);
if (arg1 == 1)
@@ -402,7 +402,7 @@ static void sub_8106AC4(u16 arg0, u8 arg2)
ldr r1, [r0, 0x4]\n\
ldr r2, [r0]\n\
adds r0, r6, 0\n\
- bl species_and_otid_get_pal\n\
+ bl GetMonSpritePalFromOtIdPersonality\n\
ldr r1, _08106B2C @ =gUnknown_03005E90\n\
mov r8, r1\n\
ldr r1, [r1]\n\
diff --git a/src/credits.c b/src/scene/credits.c
index df70674b6..cf10137c1 100644
--- a/src/credits.c
+++ b/src/scene/credits.c
@@ -1387,7 +1387,7 @@ static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position)
1
);
- lzPaletteData = species_and_otid_get_pal(species, 0, 0xFFFF);
+ lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, 0, 0xFFFF);
LoadCompressedPalette(lzPaletteData, 0x100 + (position * 16), 0x20);
sub_8143648(position, position);
@@ -1433,7 +1433,7 @@ static void sub_81458DC(void)
for (dexNum = 1, seenTypesCount = 0; dexNum < 386; dexNum++)
{
- if (GetNationalPokedexFlag(dexNum, 1))
+ if (GetSetPokedexFlag(dexNum, 1))
{
unk201C000->unk90[seenTypesCount] = dexNum;
seenTypesCount++;
diff --git a/src/cute_sketch.c b/src/scene/cute_sketch.c
index 5317bc334..5317bc334 100644
--- a/src/cute_sketch.c
+++ b/src/scene/cute_sketch.c
diff --git a/src/egg_hatch.c b/src/scene/egg_hatch.c
index e85ca01af..032dcd284 100644
--- a/src/egg_hatch.c
+++ b/src/scene/egg_hatch.c
@@ -46,10 +46,10 @@ extern const struct SpriteSheet sUnknown_0820A3B0;
extern const struct SpriteSheet sUnknown_0820A3B8;
extern const struct SpritePalette sUnknown_0820A3C0;
-bool8 GetNationalPokedexFlag(u16 nationalNum, u8 caseID);
+bool8 GetSetPokedexFlag(u16 nationalNum, u8 caseID);
u8* GetMonNick(struct Pokemon* mon, u8* dst);
u8 sav1_map_get_name(void);
-const struct CompressedSpritePalette* sub_8040990(struct Pokemon* mon); //gets pokemon palette address
+const struct CompressedSpritePalette* GetMonSpritePalStruct(struct Pokemon* mon); //gets pokemon palette address
void sub_8080990(void);
static void Task_EggHatch(u8 taskID);
@@ -287,8 +287,8 @@ static void AddHatchedMonToParty(u8 id)
SetMonData(mon, MON_DATA_NICKNAME, name);
pokeNum = SpeciesToNationalPokedexNum(pokeNum);
- GetNationalPokedexFlag(pokeNum, 2);
- GetNationalPokedexFlag(pokeNum, 3);
+ GetSetPokedexFlag(pokeNum, 2);
+ GetSetPokedexFlag(pokeNum, 3);
GetMonNick(mon, gStringVar1);
@@ -417,11 +417,11 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID)
u16 species = GetMonData(mon, MON_DATA_SPECIES);
u32 pid = GetMonData(mon, MON_DATA_PERSONALITY);
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset,(u32)(&ewram[0]), gUnknown_081FAF4C[2 * a0 + 1], species, pid);
- LoadCompressedObjectPalette(sub_8040990(mon));
+ LoadCompressedObjectPalette(GetMonSpritePalStruct(mon));
}
break;
case 1:
- GetMonSpriteTemplate_803C56C(sub_8040990(mon)->tag, r5);
+ GetMonSpriteTemplate_803C56C(GetMonSpritePalStruct(mon)->tag, r5);
spriteID = CreateSprite(&gUnknown_02024E8C, 120, 70, 6);
gSprites[spriteID].invisible = 1;
gSprites[spriteID].callback = SpriteCallbackDummy;
diff --git a/src/evolution_graphics.c b/src/scene/evolution_graphics.c
index 1fd5bf8fa..1fd5bf8fa 100644
--- a/src/evolution_graphics.c
+++ b/src/scene/evolution_graphics.c
diff --git a/src/evolution_scene.c b/src/scene/evolution_scene.c
index 57d3152f3..24168dc56 100644
--- a/src/evolution_scene.c
+++ b/src/scene/evolution_scene.c
@@ -236,7 +236,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
gMonFrontPicCoords[currSpecies].y_offset,
(void*)(0x2000000),
gUnknown_081FAF4C[1], currSpecies);
- pokePal = (void*) sub_80409C8(currSpecies, TiD, PiD);
+ pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(currSpecies, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x110, 0x20);
GetMonSpriteTemplate_803C56C(currSpecies, 1);
@@ -253,7 +253,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
gMonFrontPicCoords[speciesToEvolve].y_offset,
(void*)(0x2000000),
gUnknown_081FAF4C[3], speciesToEvolve);
- pokePal = (void*) sub_80409C8(speciesToEvolve, TiD, PiD);
+ pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x120, 0x20);
GetMonSpriteTemplate_803C56C(speciesToEvolve, 3);
@@ -333,7 +333,7 @@ static void CB2_EvolutionSceneLoadGraphics(void)
gMonFrontPicCoords[postEvoSpecies].y_offset,
(void*)(0x2000000),
gUnknown_081FAF4C[3], postEvoSpecies);
- pokePal = (void*) sub_80409C8(postEvoSpecies, TiD, PiD);
+ pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x120, 0x20);
GetMonSpriteTemplate_803C56C(postEvoSpecies, 3);
@@ -403,7 +403,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
gMonFrontPicCoords[postEvoSpecies].y_offset,
(void*)(0x2000000),
gUnknown_081FAF4C[3], postEvoSpecies);
- pokePal = (void*) sub_80409C8(postEvoSpecies, TiD, PiD);
+ pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x120, 0x20);
gMain.state++;
}
@@ -453,7 +453,7 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri
gMonFrontPicCoords[speciesToEvolve].y_offset,
(void*)(0x2000000),
gUnknown_081FAF4C[1], speciesToEvolve);
- pokePal = (void*) sub_80409C8(speciesToEvolve, TiD, PiD);
+ pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x120, 0x20);
GetMonSpriteTemplate_803C56C(speciesToEvolve, 1);
@@ -527,8 +527,8 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon* mon)
// can't match it otherwise, ehh
EvoTable = gEvolutionTable;
Evos = EvoTable + preEvoSpecies;
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(Evos->evolutions[1].targetSpecies), 2);
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(Evos->evolutions[1].targetSpecies), 3);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(Evos->evolutions[1].targetSpecies), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(Evos->evolutions[1].targetSpecies), 3);
if (GetMonData(Shedinja, MON_DATA_SPECIES) == SPECIES_SHEDINJA
&& GetMonData(Shedinja, MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE
@@ -654,8 +654,8 @@ static void Task_EvolutionScene(u8 taskID)
SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskID].tPostEvoSpecies));
CalculateMonStats(mon);
EvolutionRenameMon(mon, gTasks[taskID].tPreEvoSpecies, gTasks[taskID].tPostEvoSpecies);
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 2);
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 3);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 3);
IncrementGameStat(14);
}
break;
@@ -667,7 +667,7 @@ static void Task_EvolutionScene(u8 taskID)
{
u8 text[20];
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
gTasks[taskID].tBits |= TASK_BIT_LEARN_MOVE;
gTasks[taskID].tLearnsFirstMove = FALSE;
gTasks[taskID].tLearnMoveState = 0;
@@ -691,7 +691,7 @@ static void Task_EvolutionScene(u8 taskID)
if (!gPaletteFade.active)
{
if (!(gTasks[taskID].tBits & TASK_BIT_LEARN_MOVE))
- sub_8053E90();
+ Overworld_PlaySpecialMapMusic();
if (!gTasks[taskID].tEvoWasStopped)
CreateShedinja(gTasks[taskID].tPreEvoSpecies, mon);
DestroyTask(taskID);
@@ -996,8 +996,8 @@ static void Task_TradeEvolutionScene(u8 taskID)
SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskID].tPostEvoSpecies));
CalculateMonStats(mon);
EvolutionRenameMon(mon, gTasks[taskID].tPreEvoSpecies, gTasks[taskID].tPostEvoSpecies);
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 2);
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 3);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 3);
IncrementGameStat(14);
}
break;
diff --git a/src/hall_of_fame.c b/src/scene/hall_of_fame.c
index 10c999ef3..6f7df576b 100644
--- a/src/hall_of_fame.c
+++ b/src/scene/hall_of_fame.c
@@ -1347,7 +1347,7 @@ static u32 HallOfFame_LoadPokemonPic(u16 species, s16 posX, s16 posY, u16 pokeID
LoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, 0x2000000, gUnknown_0840B5A0[pokeID], species, pid, 1);
- pokePal = species_and_otid_get_pal(species, tid, pid);
+ pokePal = GetMonSpritePalFromOtIdPersonality(species, tid, pid);
LoadCompressedPalette(pokePal, 16 * pokeID + 256, 0x20);
sub_8143648(pokeID, pokeID);
diff --git a/src/intro.c b/src/scene/intro.c
index a43e0356c..dd7cc858c 100644
--- a/src/intro.c
+++ b/src/scene/intro.c
@@ -1785,7 +1785,7 @@ static u16 sub_813CE88(u16 species, s16 x, s16 y, u16 d, u8 front)
LoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, 0x2000000, gUnknown_0840B5A0[d], species, 0, 1);
else
LoadSpecialPokePic(&gMonBackPicTable[species], gMonBackPicCoords[species].coords, gMonBackPicCoords[species].y_offset, 0x2000000, gUnknown_0840B5A0[d], species, 0, 0);
- lzPaletteData = species_and_otid_get_pal(species, 0, 0xFFFF);
+ lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, 0, 0xFFFF);
LoadCompressedPalette(lzPaletteData, 0x100 + d * 0x10, 0x20);
sub_8143648(d, d);
spriteId = CreateSprite(&gUnknown_02024E8C, x, y, (d + 1) * 4);
diff --git a/src/intro_credits_graphics.c b/src/scene/intro_credits_graphics.c
index cd0589af8..cd0589af8 100755
--- a/src/intro_credits_graphics.c
+++ b/src/scene/intro_credits_graphics.c
diff --git a/src/new_game.c b/src/scene/new_game.c
index 3f9e9f5a1..6ab21c544 100644
--- a/src/new_game.c
+++ b/src/scene/new_game.c
@@ -99,7 +99,7 @@ void sub_8052DE4(void)
void WarpToTruck(void)
{
- warp1_set(25, 40, -1, -1, -1); // inside of truck
+ Overworld_SetWarpDestination(25, 40, -1, -1, -1); // inside of truck
warp_in();
}
diff --git a/src/title_screen.c b/src/scene/title_screen.c
index 2503b0654..2503b0654 100644
--- a/src/title_screen.c
+++ b/src/scene/title_screen.c
diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c
index 323df991a..f98293a90 100644
--- a/src/script_pokemon_util_80C4BF0.c
+++ b/src/script_pokemon_util_80C4BF0.c
@@ -433,7 +433,7 @@ void ShowContestEntryMonPic(void)
gUnknown_081FAF4C[1],
species,
var1);
- palette = sub_80409C8(species, var2, var1);
+ palette = GetMonSpritePalStructFromOtIdPersonality(species, var2, var1);
LoadCompressedObjectPalette(palette);
GetMonSpriteTemplate_803C56C(species, 1);
gUnknown_02024E8C.paletteTag = palette->tag;
@@ -560,8 +560,8 @@ u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 u
{
case 0:
case 1:
- GetNationalPokedexFlag(nationalDexNum, 2);
- GetNationalPokedexFlag(nationalDexNum, 3);
+ GetSetPokedexFlag(nationalDexNum, 2);
+ GetSetPokedexFlag(nationalDexNum, 3);
break;
}
return sentToPc;
diff --git a/src/sound_check_menu.c b/src/sound_check_menu.c
deleted file mode 100644
index d97ae6d86..000000000
--- a/src/sound_check_menu.c
+++ /dev/null
@@ -1,2199 +0,0 @@
-#include "global.h"
-#include "sprite.h"
-#include "palette.h"
-#include "task.h"
-#include "m4a.h"
-#include "main.h"
-#include "text.h"
-#include "menu.h"
-#include "songs.h"
-#include "title_screen.h"
-#include "sound.h"
-#include "pokedex_cry_screen.h"
-
-// local task defines
-#define WINDOW_SELECTED data[0]
-#define BGM_INDEX data[1]
-#define SE_INDEX data[2]
-#define UNK_DATA3 data[3]
-#define UNK_DATA4 data[4]
-// data 5-7 are not used
-// i dont have a define for data 8 yet because its used in a nonmatching and I can't be sure yet its actually used.
-
-// window selections
-enum
-{
- BGM_WINDOW,
- SE_WINDOW
-};
-
-// driver test cry enums
-enum
-{
- CRY_TEST_UNK0,
- CRY_TEST_VOLUME,
- CRY_TEST_PANPOT,
- CRY_TEST_PITCH,
- CRY_TEST_LENGTH,
- CRY_TEST_RELEASE,
- CRY_TEST_PROGRESS,
- CRY_TEST_CHORUS,
- CRY_TEST_PRIORITY
-};
-
-// minmax range enums
-enum
-{
- MIN,
- MAX
-};
-
-extern struct ToneData voicegroup_84537C0[];
-extern struct ToneData voicegroup_8452590[];
-extern struct ToneData voicegroup_8453DC0[];
-extern struct ToneData voicegroup_8452B90[];
-extern struct ToneData voicegroup_84543C0[];
-extern struct ToneData voicegroup_8453190[];
-extern struct ToneData voicegroup_84549C0[];
-extern struct ToneData voicegroup_8453790[];
-
-static EWRAM_DATA u8 gUnknown_020387B0 = 0;
-static EWRAM_DATA u8 gUnknown_020387B1 = 0;
-static EWRAM_DATA u8 gUnknown_020387B2 = 0;
-static EWRAM_DATA s8 gUnknown_020387B3 = 0;
-static EWRAM_DATA int gUnknown_020387B4[9] = {0};
-static EWRAM_DATA u8 gUnknown_020387D8 = 0;
-static EWRAM_DATA u8 gUnknown_020387D9 = 0;
-
-extern u16 gUnknown_03005D34;
-extern u8 gUnknown_03005E98;
-
-struct MusicPlayerInfo *gUnknown_03005D30;
-
-extern struct MusicPlayerInfo gMPlay_BGM;
-
-void sub_80BA258(u8);
-void sub_80BA384(u8);
-void sub_80BA65C(u8);
-void sub_80BA68C(u8);
-void sub_80BA6B8(u8);
-void sub_80BA700(u16, u16, u16);
-void sub_80BA79C(const u8 *const, u16, u16);
-void sub_80BA800(u8);
-void sub_80BAA48(u8);
-void sub_80BACDC(s8);
-void sub_80BAD5C(void);
-void sub_80BAE10(u8, u8);
-void sub_80BAE78(int, u16, u16, u8);
-void sub_80BAF84(u8);
-void sub_80BB038(u8);
-void sub_80BB1D4(void);
-void sub_80BB25C(u8);
-void sub_80BB3B4(u8);
-void sub_80BB494(void);
-
-static const u8 gDebugText_SoundCheckJap[] = _("サウンドチェック");
-static const u8 gDebugText_BGM[] = _("BGM");
-static const u8 gDebugText_SE[] = _("SE ");
-static const u8 gDebugText_ABDesc[] = _("A‥さいせい B‥おわり");
-static const u8 gDebugText_UpDown[] = _("L‥UP R‥DOWN");
-static const u8 gDebugText_DriverTest[] = _("R‥DRIVER-TEST");
-
-// ideally this should be a multi Coords8 struct, but it wont match when its treated like a struct.
-static const u8 gUnknown_083D0300[] = { 1, 1, 1, 3, 1, 5, 1, 7, 1, 9, 1, 11, 1, 13, 1, 15, 1, 17 };
-
-static const u8 gDebugText_BBack[] = _("Bぼたんで もどる");
-static const u8 gDebugText_APlay[] = _("Aぼたんで さいせい");
-static const u8 gDebugText_Voice[] = _("VOICE‥‥‥‥");
-static const u8 gDebugText_Volume[] = _("VOLUME‥‥‥");
-static const u8 gDebugText_Panpot[] = _("PANPOT‥‥‥");
-static const u8 gDebugText_Pitch[] = _("PITCH‥‥‥‥");
-static const u8 gDebugText_Length[] = _("LENGTH‥‥‥");
-static const u8 gDebugText_Release[] = _("RELEASE‥‥");
-static const u8 gDebugText_Progress[] = _("PROGRESS‥");
-static const u8 gDebugText_Chorus[] = _("CHORUS‥‥‥");
-static const u8 gDebugText_Priority[] = _("PRIORITY‥");
-static const u8 gDebugText_Playing[] = _("さいせいちゆう‥"); // 再生中 (playing)
-static const u8 gDebugText_Reverse[] = _("はんてん‥‥‥‥"); // 反転 (reverse)
-static const u8 gDebugText_Stereo[] = _("すてれお‥‥‥‥"); // stereo
-
-// also ideally should be a MinMax struct, but any attempt to make this into a struct causes it to not match due to the weird multi dim access.
-static const int gUnknown_083D039C[16] =
-{
- 0, 387,
- 0, 127,
- -127, 127,
- -128, 32639,
- 0, 65535,
- 0, 255,
- 0, 65535,
- -64, 63
-};
-
-static const u8 gUnknown_083D03DC[] = _("▶");
-static const u8 gUnknown_083D03DE[] = _(" ");
-
-// why not just use Powers of ten from string_util?
-static const int gUnknown_083D03E0[6] =
-{
- 1,
- 10,
- 100,
- 1000,
- 10000,
- 100000
-};
-
-static const s8 gUnknown_083D03F8[5] = { 0x3F, 0x00, 0xC0, 0x7F, 0x80 };
-
-static const u8 gOtherText_SE[] = _("SE");
-static const u8 gOtherText_Pan[] = _("PAN");
-static const u8 gOtherText_LR[] = _(" LR");
-static const u8 gOtherText_RL[] = _(" RL");
-
-// bgm names
-static const u8 BGMName_STOP[] = _("STOP");
-static const u8 BGMName_TETSUJI[] = _("TETSUJI");
-static const u8 BGMName_FIELD13[] = _("FIELD13");
-static const u8 BGMName_KACHI22[] = _("KACHI22");
-static const u8 BGMName_KACHI2[] = _("KACHI2");
-static const u8 BGMName_KACHI3[] = _("KACHI3");
-static const u8 BGMName_KACHI5[] = _("KACHI5");
-static const u8 BGMName_PCC[] = _("PCC");
-static const u8 BGMName_NIBI[] = _("NIBI");
-static const u8 BGMName_SUIKUN[] = _("SUIKUN");
-static const u8 BGMName_DOORO1[] = _("DOORO1");
-static const u8 BGMName_DOORO_X1[] = _("DOORO-X1");
-static const u8 BGMName_DOORO_X3[] = _("DOORO-X3");
-static const u8 BGMName_MACHI_S2[] = _("MACHI-S2");
-static const u8 BGMName_MACHI_S4[] = _("MACHI-S4");
-static const u8 BGMName_GIM[] = _("GIM");
-static const u8 BGMName_NAMINORI[] = _("NAMINORI");
-static const u8 BGMName_DAN01[] = _("DAN01");
-static const u8 BGMName_FANFA1[] = _("FANFA1");
-static const u8 BGMName_ME_ASA[] = _("ME-ASA");
-static const u8 BGMName_ME_BACHI[] = _("ME-BACHI");
-static const u8 BGMName_FANFA4[] = _("FANFA4");
-static const u8 BGMName_FANFA5[] = _("FANFA5");
-static const u8 BGMName_ME_WAZA[] = _("ME-WAZA");
-static const u8 BGMName_BIJYUTU[] = _("BIJYUTU");
-static const u8 BGMName_DOORO_X4[] = _("DOORO-X4");
-static const u8 BGMName_FUNE_KAN[] = _("FUNE-KAN");
-static const u8 BGMName_ME_SHINKA[] = _("ME-SHINKA");
-static const u8 BGMName_SHINKA[] = _("SHINKA");
-static const u8 BGMName_ME_WASURE[] = _("ME-WASURE");
-static const u8 BGMName_SYOUJOEYE[] = _("SYOUJOEYE");
-static const u8 BGMName_BOYEYE[] = _("BOYEYE");
-static const u8 BGMName_DAN02[] = _("DAN02");
-static const u8 BGMName_MACHI_S3[] = _("MACHI-S3");
-static const u8 BGMName_ODAMAKI[] = _("ODAMAKI");
-static const u8 BGMName_B_TOWER[] = _("B-TOWER");
-static const u8 BGMName_SWIMEYE[] = _("SWIMEYE");
-static const u8 BGMName_DAN03[] = _("DAN03");
-static const u8 BGMName_ME_KINOMI[] = _("ME-KINOMI");
-static const u8 BGMName_ME_TAMA[] = _("ME-TAMA");
-static const u8 BGMName_ME_B_BIG[] = _("ME-B-BIG");
-static const u8 BGMName_ME_B_SMALL[] = _("ME-B-SMALL");
-static const u8 BGMName_ME_ZANNEN[] = _("ME-ZANNEN");
-static const u8 BGMName_BD_TIME[] = _("BD-TIME");
-static const u8 BGMName_TEST1[] = _("TEST1");
-static const u8 BGMName_TEST2[] = _("TEST2");
-static const u8 BGMName_TEST3[] = _("TEST3");
-static const u8 BGMName_TEST4[] = _("TEST4");
-static const u8 BGMName_TEST[] = _("TEST");
-static const u8 BGMName_GOMACHI0[] = _("GOMACHI0");
-static const u8 BGMName_GOTOWN[] = _("GOTOWN");
-static const u8 BGMName_POKECEN[] = _("POKECEN");
-static const u8 BGMName_NEXTROAD[] = _("NEXTROAD");
-static const u8 BGMName_GRANROAD[] = _("GRANROAD");
-static const u8 BGMName_CYCLING[] = _("CYCLING");
-static const u8 BGMName_FRIENDLY[] = _("FRIENDLY");
-static const u8 BGMName_MISHIRO[] = _("MISHIRO");
-static const u8 BGMName_TOZAN[] = _("TOZAN");
-static const u8 BGMName_GIRLEYE[] = _("GIRLEYE");
-static const u8 BGMName_MINAMO[] = _("MINAMO");
-static const u8 BGMName_ASHROAD[] = _("ASHROAD");
-static const u8 BGMName_EVENT0[] = _("EVENT0");
-static const u8 BGMName_DEEPDEEP[] = _("DEEPDEEP");
-static const u8 BGMName_KACHI1[] = _("KACHI1");
-static const u8 BGMName_TITLE3[] = _("TITLE3");
-static const u8 BGMName_DEMO1[] = _("DEMO1");
-static const u8 BGMName_GIRL_SUP[] = _("GIRL-SUP");
-static const u8 BGMName_HAGESHII[] = _("HAGESHII");
-static const u8 BGMName_KAKKOII[] = _("KAKKOII");
-static const u8 BGMName_KAZANBAI[] = _("KAZANBAI");
-static const u8 BGMName_AQA_0[] = _("AQA-0");
-static const u8 BGMName_TSURETEK[] = _("TSURETEK");
-static const u8 BGMName_BOY_SUP[] = _("BOY-SUP");
-static const u8 BGMName_RAINBOW[] = _("RAINBOW");
-static const u8 BGMName_AYASII[] = _("AYASII");
-static const u8 BGMName_KACHI4[] = _("KACHI4");
-static const u8 BGMName_ROPEWAY[] = _("ROPEWAY");
-static const u8 BGMName_CASINO[] = _("CASINO");
-static const u8 BGMName_HIGHTOWN[] = _("HIGHTOWN");
-static const u8 BGMName_SAFARI[] = _("SAFARI");
-static const u8 BGMName_C_ROAD[] = _("C-ROAD");
-static const u8 BGMName_AJITO[] = _("AJITO");
-static const u8 BGMName_M_BOAT[] = _("M-BOAT");
-static const u8 BGMName_M_DUNGON[] = _("M-DUNGON");
-static const u8 BGMName_FINECITY[] = _("FINECITY");
-static const u8 BGMName_MACHUPI[] = _("MACHUPI");
-static const u8 BGMName_P_SCHOOL[] = _("P-SCHOOL");
-static const u8 BGMName_DENDOU[] = _("DENDOU");
-static const u8 BGMName_TONEKUSA[] = _("TONEKUSA");
-static const u8 BGMName_MABOROSI[] = _("MABOROSI");
-static const u8 BGMName_CON_FAN[] = _("CON-FAN");
-static const u8 BGMName_CONTEST0[] = _("CONTEST0");
-static const u8 BGMName_MGM0[] = _("MGM0");
-static const u8 BGMName_T_BATTLE[] = _("T-BATTLE");
-static const u8 BGMName_OOAME[] = _("OOAME");
-static const u8 BGMName_HIDERI[] = _("HIDERI");
-static const u8 BGMName_RUNECITY[] = _("RUNECITY");
-static const u8 BGMName_CON_K[] = _("CON-K");
-static const u8 BGMName_EIKOU_R[] = _("EIKOU-R");
-static const u8 BGMName_KARAKURI[] = _("KARAKURI");
-static const u8 BGMName_HUTAGO[] = _("HUTAGO");
-static const u8 BGMName_SITENNOU[] = _("SITENNOU");
-static const u8 BGMName_YAMA_EYE[] = _("YAMA-EYE");
-static const u8 BGMName_CONLOBBY[] = _("CONLOBBY");
-static const u8 BGMName_INTER_V[] = _("INTER-V");
-static const u8 BGMName_DAIGO[] = _("DAIGO");
-static const u8 BGMName_THANKFOR[] = _("THANKFOR");
-static const u8 BGMName_END[] = _("END");
-static const u8 BGMName_BATTLE27[] = _("BATTLE27");
-static const u8 BGMName_BATTLE31[] = _("BATTLE31");
-static const u8 BGMName_BATTLE20[] = _("BATTLE20");
-static const u8 BGMName_BATTLE32[] = _("BATTLE32");
-static const u8 BGMName_BATTLE33[] = _("BATTLE33");
-static const u8 BGMName_BATTLE36[] = _("BATTLE36");
-static const u8 BGMName_BATTLE34[] = _("BATTLE34");
-static const u8 BGMName_BATTLE35[] = _("BATTLE35");
-static const u8 BGMName_BATTLE38[] = _("BATTLE38");
-static const u8 BGMName_BATTLE30[] = _("BATTLE30");
-
-static const u8 *const gBGMNames[] =
-{
- BGMName_STOP,
- BGMName_TETSUJI,
- BGMName_FIELD13,
- BGMName_KACHI22,
- BGMName_KACHI2,
- BGMName_KACHI3,
- BGMName_KACHI5,
- BGMName_PCC,
- BGMName_NIBI,
- BGMName_SUIKUN,
- BGMName_DOORO1,
- BGMName_DOORO_X1,
- BGMName_DOORO_X3,
- BGMName_MACHI_S2,
- BGMName_MACHI_S4,
- BGMName_GIM,
- BGMName_NAMINORI,
- BGMName_DAN01,
- BGMName_FANFA1,
- BGMName_ME_ASA,
- BGMName_ME_BACHI,
- BGMName_FANFA4,
- BGMName_FANFA5,
- BGMName_ME_WAZA,
- BGMName_BIJYUTU,
- BGMName_DOORO_X4,
- BGMName_FUNE_KAN,
- BGMName_ME_SHINKA,
- BGMName_SHINKA,
- BGMName_ME_WASURE,
- BGMName_SYOUJOEYE,
- BGMName_BOYEYE,
- BGMName_DAN02,
- BGMName_MACHI_S3,
- BGMName_ODAMAKI,
- BGMName_B_TOWER,
- BGMName_SWIMEYE,
- BGMName_DAN03,
- BGMName_ME_KINOMI,
- BGMName_ME_TAMA,
- BGMName_ME_B_BIG,
- BGMName_ME_B_SMALL,
- BGMName_ME_ZANNEN,
- BGMName_BD_TIME,
- BGMName_TEST1,
- BGMName_TEST2,
- BGMName_TEST3,
- BGMName_TEST4,
- BGMName_TEST,
- BGMName_GOMACHI0,
- BGMName_GOTOWN,
- BGMName_POKECEN,
- BGMName_NEXTROAD,
- BGMName_GRANROAD,
- BGMName_CYCLING,
- BGMName_FRIENDLY,
- BGMName_MISHIRO,
- BGMName_TOZAN,
- BGMName_GIRLEYE,
- BGMName_MINAMO,
- BGMName_ASHROAD,
- BGMName_EVENT0,
- BGMName_DEEPDEEP,
- BGMName_KACHI1,
- BGMName_TITLE3,
- BGMName_DEMO1,
- BGMName_GIRL_SUP,
- BGMName_HAGESHII,
- BGMName_KAKKOII,
- BGMName_KAZANBAI,
- BGMName_AQA_0,
- BGMName_TSURETEK,
- BGMName_BOY_SUP,
- BGMName_RAINBOW,
- BGMName_AYASII,
- BGMName_KACHI4,
- BGMName_ROPEWAY,
- BGMName_CASINO,
- BGMName_HIGHTOWN,
- BGMName_SAFARI,
- BGMName_C_ROAD,
- BGMName_AJITO,
- BGMName_M_BOAT,
- BGMName_M_DUNGON,
- BGMName_FINECITY,
- BGMName_MACHUPI,
- BGMName_P_SCHOOL,
- BGMName_DENDOU,
- BGMName_TONEKUSA,
- BGMName_MABOROSI,
- BGMName_CON_FAN,
- BGMName_CONTEST0,
- BGMName_MGM0,
- BGMName_T_BATTLE,
- BGMName_OOAME,
- BGMName_HIDERI,
- BGMName_RUNECITY,
- BGMName_CON_K,
- BGMName_EIKOU_R,
- BGMName_KARAKURI,
- BGMName_HUTAGO,
- BGMName_SITENNOU,
- BGMName_YAMA_EYE,
- BGMName_CONLOBBY,
- BGMName_INTER_V,
- BGMName_DAIGO,
- BGMName_THANKFOR,
- BGMName_END,
- BGMName_BATTLE27,
- BGMName_BATTLE31,
- BGMName_BATTLE20,
- BGMName_BATTLE32,
- BGMName_BATTLE33,
- BGMName_BATTLE36,
- BGMName_BATTLE34,
- BGMName_BATTLE35,
- BGMName_BATTLE38,
- BGMName_BATTLE30
-};
-
-// SE names
-static const u8 SEName_STOP[] = _("STOP");
-static const u8 SEName_KAIFUKU[] = _("KAIFUKU");
-static const u8 SEName_PC_LOGON[] = _("PC-LOGON");
-static const u8 SEName_PC_OFF[] = _("PC-OFF");
-static const u8 SEName_PC_ON[] = _("PC-ON");
-static const u8 SEName_SELECT[] = _("SELECT");
-static const u8 SEName_WIN_OPEN[] = _("WIN-OPEN");
-static const u8 SEName_WALL_HIT[] = _("WALL-HIT");
-static const u8 SEName_DOOR[] = _("DOOR");
-static const u8 SEName_KAIDAN[] = _("KAIDAN");
-static const u8 SEName_DANSA[] = _("DANSA");
-static const u8 SEName_JITENSYA[] = _("JITENSYA");
-static const u8 SEName_KOUKA_L[] = _("KOUKA-L");
-static const u8 SEName_KOUKA_M[] = _("KOUKA-M");
-static const u8 SEName_KOUKA_H[] = _("KOUKA-H");
-static const u8 SEName_BOWA2[] = _("BOWA2");
-static const u8 SEName_POKE_DEAD[] = _("POKE-DEAD");
-static const u8 SEName_NIGERU[] = _("NIGERU");
-static const u8 SEName_JIDO_DOA[] = _("JIDO-DOA");
-static const u8 SEName_NAMINORI[] = _("NAMINORI");
-static const u8 SEName_BAN[] = _("BAN");
-static const u8 SEName_PIN[] = _("PIN");
-static const u8 SEName_BOO[] = _("BOO");
-static const u8 SEName_BOWA[] = _("BOWA");
-static const u8 SEName_JYUNI[] = _("JYUNI");
-static const u8 SEName_A[] = _("A");
-static const u8 SEName_I[] = _("I");
-static const u8 SEName_U[] = _("U");
-static const u8 SEName_E[] = _("E");
-static const u8 SEName_O[] = _("O");
-static const u8 SEName_N[] = _("N");
-static const u8 SEName_SEIKAI[] = _("SEIKAI");
-static const u8 SEName_HAZURE[] = _("HAZURE");
-static const u8 SEName_EXP[] = _("EXP");
-static const u8 SEName_JITE_PYOKO[] = _("JITE-PYOKO");
-static const u8 SEName_MU_PACHI[] = _("MU-PACHI");
-static const u8 SEName_TK_KASYA[] = _("TK-KASYA");
-static const u8 SEName_FU_ZAKU[] = _("FU-ZAKU");
-static const u8 SEName_FU_ZAKU2[] = _("FU-ZAKU2");
-static const u8 SEName_FU_ZUZUZU[] = _("FU-ZUZUZU");
-static const u8 SEName_RU_GASHIN[] = _("RU-GASHIN");
-static const u8 SEName_RU_GASYAN[] = _("RU-GASYAN");
-static const u8 SEName_RU_BARI[] = _("RU-BARI");
-static const u8 SEName_RU_HYUU[] = _("RU-HYUU");
-static const u8 SEName_KI_GASYAN[] = _("KI-GASYAN");
-static const u8 SEName_TK_WARPIN[] = _("TK-WARPIN");
-static const u8 SEName_TK_WARPOUT[] = _("TK-WARPOUT");
-static const u8 SEName_TU_SAA[] = _("TU-SAA");
-static const u8 SEName_HI_TURUN[] = _("HI-TURUN");
-static const u8 SEName_TRACK_MOVE[] = _("TRACK-MOVE");
-static const u8 SEName_TRACK_STOP[] = _("TRACK-STOP");
-static const u8 SEName_TRACK_HAIK[] = _("TRACK-HAIK");
-static const u8 SEName_TRACK_DOOR[] = _("TRACK-DOOR");
-static const u8 SEName_MOTER[] = _("MOTER");
-static const u8 SEName_CARD[] = _("CARD");
-static const u8 SEName_SAVE[] = _("SAVE");
-static const u8 SEName_KON[] = _("KON");
-static const u8 SEName_KON2[] = _("KON2");
-static const u8 SEName_KON3[] = _("KON3");
-static const u8 SEName_KON4[] = _("KON4");
-static const u8 SEName_SUIKOMU[] = _("SUIKOMU");
-static const u8 SEName_NAGERU[] = _("NAGERU");
-static const u8 SEName_TOY_C[] = _("TOY-C");
-static const u8 SEName_TOY_D[] = _("TOY-D");
-static const u8 SEName_TOY_E[] = _("TOY-E");
-static const u8 SEName_TOY_F[] = _("TOY-F");
-static const u8 SEName_TOY_G[] = _("TOY-G");
-static const u8 SEName_TOY_A[] = _("TOY-A");
-static const u8 SEName_TOY_B[] = _("TOY-B");
-static const u8 SEName_TOY_C1[] = _("TOY-C1");
-static const u8 SEName_MIZU[] = _("MIZU");
-static const u8 SEName_HASHI[] = _("HASHI");
-static const u8 SEName_DAUGI[] = _("DAUGI");
-static const u8 SEName_PINPON[] = _("PINPON");
-static const u8 SEName_FUUSEN1[] = _("FUUSEN1");
-static const u8 SEName_FUUSEN2[] = _("FUUSEN2");
-static const u8 SEName_FUUSEN3[] = _("FUUSEN3");
-static const u8 SEName_TOY_KABE[] = _("TOY-KABE");
-static const u8 SEName_TOY_DANGO[] = _("TOY-DANGO");
-static const u8 SEName_DOKU[] = _("DOKU");
-static const u8 SEName_ESUKA[] = _("ESUKA");
-static const u8 SEName_T_AME[] = _("T-AME");
-static const u8 SEName_T_AME_E[] = _("T-AME-E");
-static const u8 SEName_T_OOAME[] = _("T-OOAME");
-static const u8 SEName_T_OOAME_E[] = _("T-OOAME-E");
-static const u8 SEName_T_KOAME[] = _("T-KOAME");
-static const u8 SEName_T_KOAME_E[] = _("T-KOAME-E");
-static const u8 SEName_T_KAMI[] = _("T-KAMI");
-static const u8 SEName_T_KAMI2[] = _("T-KAMI2");
-static const u8 SEName_ELEBETA[] = _("ELEBETA");
-static const u8 SEName_HINSI[] = _("HINSI");
-static const u8 SEName_EXPMAX[] = _("EXPMAX");
-static const u8 SEName_TAMAKORO[] = _("TAMAKORO");
-static const u8 SEName_TAMAKORO_E[] = _("TAMAKORO-E");
-static const u8 SEName_BASABASA[] = _("BASABASA");
-static const u8 SEName_REGI[] = _("REGI");
-static const u8 SEName_C_GAJI[] = _("C-GAJI");
-static const u8 SEName_C_MAKU_U[] = _("C-MAKU-U");
-static const u8 SEName_C_MAKU_D[] = _("C-MAKU-D");
-static const u8 SEName_C_PASI[] = _("C-PASI");
-static const u8 SEName_C_SYU[] = _("C-SYU");
-static const u8 SEName_C_PIKON[] = _("C-PIKON");
-static const u8 SEName_REAPOKE[] = _("REAPOKE");
-static const u8 SEName_OP_BASYU[] = _("OP-BASYU");
-static const u8 SEName_BT_START[] = _("BT-START");
-static const u8 SEName_DENDOU[] = _("DENDOU");
-static const u8 SEName_JIHANKI[] = _("JIHANKI");
-static const u8 SEName_TAMA[] = _("TAMA");
-static const u8 SEName_Z_SCROLL[] = _("Z-SCROLL");
-static const u8 SEName_Z_PAGE[] = _("Z-PAGE");
-static const u8 SEName_PN_ON[] = _("PN-ON");
-static const u8 SEName_PN_OFF[] = _("PN-OFF");
-static const u8 SEName_Z_SEARCH[] = _("Z-SEARCH");
-static const u8 SEName_TAMAGO[] = _("TAMAGO");
-static const u8 SEName_TB_START[] = _("TB-START");
-static const u8 SEName_TB_KON[] = _("TB-KON");
-static const u8 SEName_TB_KARA[] = _("TB-KARA");
-static const u8 SEName_BIDORO[] = _("BIDORO");
-static const u8 SEName_W085[] = _("W085");
-static const u8 SEName_W085B[] = _("W085B");
-static const u8 SEName_W231[] = _("W231");
-static const u8 SEName_W171[] = _("W171");
-static const u8 SEName_W233[] = _("W233");
-static const u8 SEName_W233B[] = _("W233B");
-static const u8 SEName_W145[] = _("W145");
-static const u8 SEName_W145B[] = _("W145B");
-static const u8 SEName_W145C[] = _("W145C");
-static const u8 SEName_W240[] = _("W240");
-static const u8 SEName_W015[] = _("W015");
-static const u8 SEName_W081[] = _("W081");
-static const u8 SEName_W081B[] = _("W081B");
-static const u8 SEName_W088[] = _("W088");
-static const u8 SEName_W016[] = _("W016");
-static const u8 SEName_W016B[] = _("W016B");
-static const u8 SEName_W003[] = _("W003");
-static const u8 SEName_W104[] = _("W104");
-static const u8 SEName_W013[] = _("W013");
-static const u8 SEName_W196[] = _("W196");
-static const u8 SEName_W086[] = _("W086");
-static const u8 SEName_W004[] = _("W004");
-static const u8 SEName_W025[] = _("W025");
-static const u8 SEName_W025B[] = _("W025B");
-static const u8 SEName_W152[] = _("W152");
-static const u8 SEName_W026[] = _("W026");
-static const u8 SEName_W172[] = _("W172");
-static const u8 SEName_W172B[] = _("W172B");
-static const u8 SEName_W053[] = _("W053");
-static const u8 SEName_W007[] = _("W007");
-static const u8 SEName_W092[] = _("W092");
-static const u8 SEName_W221[] = _("W221");
-static const u8 SEName_W221B[] = _("W221B");
-static const u8 SEName_W052[] = _("W052");
-static const u8 SEName_W036[] = _("W036");
-static const u8 SEName_W059[] = _("W059");
-static const u8 SEName_W059B[] = _("W059B");
-static const u8 SEName_W010[] = _("W010");
-static const u8 SEName_W011[] = _("W011");
-static const u8 SEName_W017[] = _("W017");
-static const u8 SEName_W019[] = _("W019");
-static const u8 SEName_W028[] = _("W028");
-static const u8 SEName_W013B[] = _("W013B");
-static const u8 SEName_W044[] = _("W044");
-static const u8 SEName_W029[] = _("W029");
-static const u8 SEName_W057[] = _("W057");
-static const u8 SEName_W056[] = _("W056");
-static const u8 SEName_W250[] = _("W250");
-static const u8 SEName_W030[] = _("W030");
-static const u8 SEName_W039[] = _("W039");
-static const u8 SEName_W054[] = _("W054");
-static const u8 SEName_W077[] = _("W077");
-static const u8 SEName_W020[] = _("W020");
-static const u8 SEName_W082[] = _("W082");
-static const u8 SEName_W047[] = _("W047");
-static const u8 SEName_W195[] = _("W195");
-static const u8 SEName_W006[] = _("W006");
-static const u8 SEName_W091[] = _("W091");
-static const u8 SEName_W146[] = _("W146");
-static const u8 SEName_W120[] = _("W120");
-static const u8 SEName_W153[] = _("W153");
-static const u8 SEName_W071B[] = _("W071B");
-static const u8 SEName_W071[] = _("W071");
-static const u8 SEName_W103[] = _("W103");
-static const u8 SEName_W062[] = _("W062");
-static const u8 SEName_W062B[] = _("W062B");
-static const u8 SEName_W048[] = _("W048");
-static const u8 SEName_W187[] = _("W187");
-static const u8 SEName_W118[] = _("W118");
-static const u8 SEName_W155[] = _("W155");
-static const u8 SEName_W122[] = _("W122");
-static const u8 SEName_W060[] = _("W060");
-static const u8 SEName_W185[] = _("W185");
-static const u8 SEName_W014[] = _("W014");
-static const u8 SEName_W043[] = _("W043");
-static const u8 SEName_W207[] = _("W207");
-static const u8 SEName_W207B[] = _("W207B");
-static const u8 SEName_W215[] = _("W215");
-static const u8 SEName_W109[] = _("W109");
-static const u8 SEName_W173[] = _("W173");
-static const u8 SEName_W280[] = _("W280");
-static const u8 SEName_W202[] = _("W202");
-static const u8 SEName_W060B[] = _("W060B");
-static const u8 SEName_W076[] = _("W076");
-static const u8 SEName_W080[] = _("W080");
-static const u8 SEName_W100[] = _("W100");
-static const u8 SEName_W107[] = _("W107");
-static const u8 SEName_W166[] = _("W166");
-static const u8 SEName_W129[] = _("W129");
-static const u8 SEName_W115[] = _("W115");
-static const u8 SEName_W112[] = _("W112");
-static const u8 SEName_W197[] = _("W197");
-static const u8 SEName_W199[] = _("W199");
-static const u8 SEName_W236[] = _("W236");
-static const u8 SEName_W204[] = _("W204");
-static const u8 SEName_W268[] = _("W268");
-static const u8 SEName_W070[] = _("W070");
-static const u8 SEName_W063[] = _("W063");
-static const u8 SEName_W127[] = _("W127");
-static const u8 SEName_W179[] = _("W179");
-static const u8 SEName_W151[] = _("W151");
-static const u8 SEName_W201[] = _("W201");
-static const u8 SEName_W161[] = _("W161");
-static const u8 SEName_W161B[] = _("W161B");
-static const u8 SEName_W227[] = _("W227");
-static const u8 SEName_W227B[] = _("W227B");
-static const u8 SEName_W226[] = _("W226");
-static const u8 SEName_W208[] = _("W208");
-static const u8 SEName_W213[] = _("W213");
-static const u8 SEName_W213B[] = _("W213B");
-static const u8 SEName_W234[] = _("W234");
-static const u8 SEName_W260[] = _("W260");
-static const u8 SEName_W328[] = _("W328");
-static const u8 SEName_W320[] = _("W320");
-static const u8 SEName_W255[] = _("W255");
-static const u8 SEName_W291[] = _("W291");
-static const u8 SEName_W089[] = _("W089");
-static const u8 SEName_W239[] = _("W239");
-static const u8 SEName_W230[] = _("W230");
-static const u8 SEName_W281[] = _("W281");
-static const u8 SEName_W327[] = _("W327");
-static const u8 SEName_W287[] = _("W287");
-static const u8 SEName_W257[] = _("W257");
-static const u8 SEName_W253[] = _("W253");
-static const u8 SEName_W258[] = _("W258");
-static const u8 SEName_W322[] = _("W322");
-static const u8 SEName_W298[] = _("W298");
-static const u8 SEName_W287B[] = _("W287B");
-static const u8 SEName_W114[] = _("W114");
-static const u8 SEName_W063B[] = _("W063B");
-
-static const u8 *const gSENames[] =
-{
- SEName_STOP,
- SEName_KAIFUKU,
- SEName_PC_LOGON,
- SEName_PC_OFF,
- SEName_PC_ON,
- SEName_SELECT,
- SEName_WIN_OPEN,
- SEName_WALL_HIT,
- SEName_DOOR,
- SEName_KAIDAN,
- SEName_DANSA,
- SEName_JITENSYA,
- SEName_KOUKA_L,
- SEName_KOUKA_M,
- SEName_KOUKA_H,
- SEName_BOWA2,
- SEName_POKE_DEAD,
- SEName_NIGERU,
- SEName_JIDO_DOA,
- SEName_NAMINORI,
- SEName_BAN,
- SEName_PIN,
- SEName_BOO,
- SEName_BOWA,
- SEName_JYUNI,
- SEName_A,
- SEName_I,
- SEName_U,
- SEName_E,
- SEName_O,
- SEName_N,
- SEName_SEIKAI,
- SEName_HAZURE,
- SEName_EXP,
- SEName_JITE_PYOKO,
- SEName_MU_PACHI,
- SEName_TK_KASYA,
- SEName_FU_ZAKU,
- SEName_FU_ZAKU2,
- SEName_FU_ZUZUZU,
- SEName_RU_GASHIN,
- SEName_RU_GASYAN,
- SEName_RU_BARI,
- SEName_RU_HYUU,
- SEName_KI_GASYAN,
- SEName_TK_WARPIN,
- SEName_TK_WARPOUT,
- SEName_TU_SAA,
- SEName_HI_TURUN,
- SEName_TRACK_MOVE,
- SEName_TRACK_STOP,
- SEName_TRACK_HAIK,
- SEName_TRACK_DOOR,
- SEName_MOTER,
- SEName_CARD,
- SEName_SAVE,
- SEName_KON,
- SEName_KON2,
- SEName_KON3,
- SEName_KON4,
- SEName_SUIKOMU,
- SEName_NAGERU,
- SEName_TOY_C,
- SEName_TOY_D,
- SEName_TOY_E,
- SEName_TOY_F,
- SEName_TOY_G,
- SEName_TOY_A,
- SEName_TOY_B,
- SEName_TOY_C1,
- SEName_MIZU,
- SEName_HASHI,
- SEName_DAUGI,
- SEName_PINPON,
- SEName_FUUSEN1,
- SEName_FUUSEN2,
- SEName_FUUSEN3,
- SEName_TOY_KABE,
- SEName_TOY_DANGO,
- SEName_DOKU,
- SEName_ESUKA,
- SEName_T_AME,
- SEName_T_AME_E,
- SEName_T_OOAME,
- SEName_T_OOAME_E,
- SEName_T_KOAME,
- SEName_T_KOAME_E,
- SEName_T_KAMI,
- SEName_T_KAMI2,
- SEName_ELEBETA,
- SEName_HINSI,
- SEName_EXPMAX,
- SEName_TAMAKORO,
- SEName_TAMAKORO_E,
- SEName_BASABASA,
- SEName_REGI,
- SEName_C_GAJI,
- SEName_C_MAKU_U,
- SEName_C_MAKU_D,
- SEName_C_PASI,
- SEName_C_SYU,
- SEName_C_PIKON,
- SEName_REAPOKE,
- SEName_OP_BASYU,
- SEName_BT_START,
- SEName_DENDOU,
- SEName_JIHANKI,
- SEName_TAMA,
- SEName_Z_SCROLL,
- SEName_Z_PAGE,
- SEName_PN_ON,
- SEName_PN_OFF,
- SEName_Z_SEARCH,
- SEName_TAMAGO,
- SEName_TB_START,
- SEName_TB_KON,
- SEName_TB_KARA,
- SEName_BIDORO,
- SEName_W085,
- SEName_W085B,
- SEName_W231,
- SEName_W171,
- SEName_W233,
- SEName_W233B,
- SEName_W145,
- SEName_W145B,
- SEName_W145C,
- SEName_W240,
- SEName_W015,
- SEName_W081,
- SEName_W081B,
- SEName_W088,
- SEName_W016,
- SEName_W016B,
- SEName_W003,
- SEName_W104,
- SEName_W013,
- SEName_W196,
- SEName_W086,
- SEName_W004,
- SEName_W025,
- SEName_W025B,
- SEName_W152,
- SEName_W026,
- SEName_W172,
- SEName_W172B,
- SEName_W053,
- SEName_W007,
- SEName_W092,
- SEName_W221,
- SEName_W221B,
- SEName_W052,
- SEName_W036,
- SEName_W059,
- SEName_W059B,
- SEName_W010,
- SEName_W011,
- SEName_W017,
- SEName_W019,
- SEName_W028,
- SEName_W013B,
- SEName_W044,
- SEName_W029,
- SEName_W057,
- SEName_W056,
- SEName_W250,
- SEName_W030,
- SEName_W039,
- SEName_W054,
- SEName_W077,
- SEName_W020,
- SEName_W082,
- SEName_W047,
- SEName_W195,
- SEName_W006,
- SEName_W091,
- SEName_W146,
- SEName_W120,
- SEName_W153,
- SEName_W071B,
- SEName_W071,
- SEName_W103,
- SEName_W062,
- SEName_W062B,
- SEName_W048,
- SEName_W187,
- SEName_W118,
- SEName_W155,
- SEName_W122,
- SEName_W060,
- SEName_W185,
- SEName_W014,
- SEName_W043,
- SEName_W207,
- SEName_W207B,
- SEName_W215,
- SEName_W109,
- SEName_W173,
- SEName_W280,
- SEName_W202,
- SEName_W060B,
- SEName_W076,
- SEName_W080,
- SEName_W100,
- SEName_W107,
- SEName_W166,
- SEName_W129,
- SEName_W115,
- SEName_W112,
- SEName_W197,
- SEName_W199,
- SEName_W236,
- SEName_W204,
- SEName_W268,
- SEName_W070,
- SEName_W063,
- SEName_W127,
- SEName_W179,
- SEName_W151,
- SEName_W201,
- SEName_W161,
- SEName_W161B,
- SEName_W227,
- SEName_W227B,
- SEName_W226,
- SEName_W208,
- SEName_W213,
- SEName_W213B,
- SEName_W234,
- SEName_W260,
- SEName_W328,
- SEName_W320,
- SEName_W255,
- SEName_W291,
- SEName_W089,
- SEName_W239,
- SEName_W230,
- SEName_W281,
- SEName_W327,
- SEName_W287,
- SEName_W257,
- SEName_W253,
- SEName_W258,
- SEName_W322,
- SEName_W298,
- SEName_W287B,
- SEName_W114,
- SEName_W063B
-};
-
-void sub_80BA0A8(void)
-{
- RunTasks();
- AnimateSprites();
- BuildOamBuffer();
- UpdatePaletteFade();
-}
-
-void sub_80BA0C0(void)
-{
- LoadOam();
- ProcessSpriteCopyRequests();
- TransferPlttBuffer();
-
- if(gUnknown_020387B0 != 0)
- {
- m4aSoundMain();
- m4aSoundMain();
- m4aSoundMain();
- }
-}
-
-// unused
-void CB2_StartSoundCheckMenu(void)
-{
- u8 taskId;
-
- SetVBlankCallback(NULL);
- REG_DISPCNT = 0;
- REG_BG2CNT = 0;
- REG_BG1CNT = 0;
- REG_BG0CNT = 0;
- REG_BG2HOFS = 0;
- REG_BG2VOFS = 0;
- REG_BG1HOFS = 0;
- REG_BG1VOFS = 0;
- REG_BG0HOFS = 0;
- REG_BG0VOFS = 0;
- DmaFill16(3, 0, VRAM, VRAM_SIZE);
- DmaFill32(3, 0, OAM, OAM_SIZE);
- DmaFill16(3, 0, PLTT, PLTT_SIZE);
- ResetPaletteFade();
- ResetTasks();
- ResetSpriteData();
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- REG_WIN0H = WIN_RANGE(0, 0);
- REG_WIN0V = WIN_RANGE(0, 0);
- REG_WIN1H = WIN_RANGE(0, 0);
- REG_WIN1V = WIN_RANGE(0, 0);
- REG_WININ = 0x1111;
- REG_WINOUT = 0x31;
- REG_BLDCNT = 0xE1;
- REG_BLDALPHA = 0;
- REG_BLDY = 7;
- REG_IE = 1; // could be a typo of REG_IME
- REG_IE |= 1;
- REG_DISPSTAT |= 8;
- SetVBlankCallback(sub_80BA0C0);
- SetMainCallback2(sub_80BA0A8);
- REG_DISPCNT = 0x7140;
- taskId = CreateTask(sub_80BA258, 0);
- TASK.WINDOW_SELECTED = BGM_WINDOW;
- TASK.BGM_INDEX = 0;
- TASK.SE_INDEX = 0;
- TASK.UNK_DATA3 = 0;
- gUnknown_020387B0 = 0;
- TASK.UNK_DATA3 = 0; // why?
- m4aSoundInit();
-}
-
-// Task_InitSoundCheckMenu
-void sub_80BA258(u8 taskId)
-{
- u8 soundcheckStr[sizeof(gDebugText_SoundCheckJap)];
- u8 bgmStr[sizeof(gDebugText_BGM)];
- u8 seStr[sizeof(gDebugText_SE)];
- u8 abDescStr[sizeof(gDebugText_ABDesc)];
- u8 upDownStr[sizeof(gDebugText_UpDown)];
- u8 driverStr[sizeof(gDebugText_DriverTest)];
-
- memcpy(soundcheckStr, gDebugText_SoundCheckJap, sizeof(gDebugText_SoundCheckJap));
- memcpy(bgmStr, gDebugText_BGM, sizeof(gDebugText_BGM));
- memcpy(seStr, gDebugText_SE, sizeof(gDebugText_SE));
- memcpy(abDescStr, gDebugText_ABDesc, sizeof(gDebugText_ABDesc));
- memcpy(upDownStr, gDebugText_UpDown, sizeof(gDebugText_UpDown));
- memcpy(driverStr, gDebugText_DriverTest, sizeof(gDebugText_DriverTest));
-
- if(!gPaletteFade.active)
- {
- MenuDrawTextWindow(0x2, 0, 0x1B, 0x3);
- MenuDrawTextWindow(0x2, 0x5, 0x1B, 0xA);
- MenuDrawTextWindow(0x2, 0xC, 0x1B, 0x11);
- MenuPrint(soundcheckStr, 4, 1);
- MenuPrint(abDescStr, 14, 1);
- MenuPrint(bgmStr, 4, 6);
- MenuPrint(upDownStr, 14, 6);
- MenuPrint(seStr, 4, 13);
- MenuPrint(upDownStr, 14, 13);
- MenuPrint(driverStr, 14, 18);
- TASK.FUNC = sub_80BA384;
- REG_WIN0H = WIN_RANGE(17, 223);
- REG_WIN0V = WIN_RANGE(1, 31);
- }
-}
-
-void sub_80BA384(u8 taskId) // Task_HandleDrawingSoundCheckMenuText
-{
- sub_80BA6B8(TASK.WINDOW_SELECTED);
- sub_80BA700(TASK.BGM_INDEX + BGM_STOP, 7, 8); // print by BGM index
- sub_80BA79C(gBGMNames[TASK.BGM_INDEX], 11, 8);
- sub_80BA700(TASK.SE_INDEX, 7, 15);
- sub_80BA79C(gSENames[TASK.SE_INDEX], 11, 15);
- TASK.FUNC = sub_80BA65C;
-}
-
-#ifdef NONMATCHING
-bool8 sub_80BA400(u8 taskId) // Task_ProcessSoundCheckMenuInput
-{
- if(gMain.newKeys & R_BUTTON) // driver test
- {
- TASK.FUNC = sub_80BA800;
- return FALSE;
- }
- if(gMain.newKeys & L_BUTTON)
- {
- TASK.FUNC = sub_80BAF84;
- return FALSE;
- }
- if(gMain.newKeys & START_BUTTON)
- {
- TASK.FUNC = sub_80BB25C;
- return FALSE;
- }
- if(gMain.newKeys & A_BUTTON) // both these cases insist on non reuses of certain data variables and cause the function to not match.
- {
- if(TASK.WINDOW_SELECTED != 0) // is playing?
- {
- if(TASK.UNK_DATA4 != 0)
- {
- if(TASK.SE_INDEX != 0) // why are you insiting on a non signed halfword?
- {
- m4aSongNumStop(TASK.UNK_DATA4);
- }
- else
- {
- m4aSongNumStop(TASK.SE_INDEX);
- TASK.UNK_DATA4 = TASK.SE_INDEX;
- return FALSE;
- }
- }
- else if(TASK.SE_INDEX == 0) // _080BA4BA
- {
- return FALSE;
- }
- // _080BA4C4
- m4aSongNumStart(TASK.SE_INDEX);
- TASK.UNK_DATA4 = TASK.SE_INDEX;
- return FALSE;
- }
- else // _080BA4D0
- {
- if(TASK.UNK_DATA3 != 0)
- {
- if(TASK.BGM_INDEX != 0)
- {
- m4aSongNumStop(TASK.UNK_DATA3 + BGM_STOP);
- }
- else // _080BA500
- {
- m4aSongNumStop(TASK.UNK_DATA3 + BGM_STOP);
- TASK.UNK_DATA3 = TASK.BGM_INDEX;
- return FALSE;
- }
- }
- else if(TASK.BGM_INDEX == 0) // _080BA514
- return FALSE;
-
- m4aSongNumStart(TASK.BGM_INDEX + BGM_STOP);
- TASK.UNK_DATA3 = TASK.BGM_INDEX;
- }
- return FALSE;
- }
- if(gMain.newKeys & B_BUTTON)
- {
- m4aSongNumStart(5);
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- TASK.FUNC = sub_80BA68C;
- return FALSE;
- }
- if(gMain.newAndRepeatedKeys & DPAD_UP)
- {
- TASK.data[8] ^= A_BUTTON; // huh?
- return TRUE;
- }
- if(gMain.newAndRepeatedKeys & DPAD_DOWN)
- {
- TASK.data[8] ^= A_BUTTON; // huh?
- return TRUE;
- }
- else
- {
- u16 keys = gMain.newAndRepeatedKeys & DPAD_RIGHT;
- if(keys)
- {
- if(TASK.WINDOW_SELECTED != 0)
- {
- if(TASK.SE_INDEX > 0)
- {
- TASK.SE_INDEX--;
- }
- else
- {
- TASK.SE_INDEX = 0xF7;
- }
- }
- else if(TASK.BGM_INDEX > 0)
- {
- TASK.BGM_INDEX--;
- }
- else
- {
- TASK.BGM_INDEX = 0x75;
- }
- return TRUE;
- }
- if(gMain.newAndRepeatedKeys & DPAD_LEFT)
- {
- if(TASK.WINDOW_SELECTED != 0)
- {
- if(TASK.SE_INDEX < 0xF7)
- {
- TASK.SE_INDEX++;
- }
- else
- {
- TASK.SE_INDEX = keys; // ??
- }
- }
- else if(TASK.BGM_INDEX < 0x75)
- {
- TASK.BGM_INDEX++;
- return TRUE;
- }
- else
- {
- TASK.BGM_INDEX = TASK.SE_INDEX;
- return TRUE;
- }
- return TRUE;
- }
- if(gMain.heldKeys & SELECT_BUTTON)
- {
- gUnknown_020387B0 = A_BUTTON;
- return FALSE;
- }
- else
- {
- gUnknown_020387B0 = (gMain.heldKeys & SELECT_BUTTON);
- return FALSE;
- }
- }
-}
-#else
-__attribute__((naked))
-bool8 sub_80BA400(u8 taskId)
-{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- sub sp, 0x4\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- ldr r2, _080BA428 @ =gMain\n\
- ldrh r1, [r2, 0x2E]\n\
- movs r0, 0x80\n\
- lsls r0, 1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080BA434\n\
- ldr r0, _080BA42C @ =gTasks\n\
- lsls r1, r4, 2\n\
- adds r1, r4\n\
- lsls r1, 3\n\
- adds r1, r0\n\
- ldr r0, _080BA430 @ =sub_80BA800\n\
- str r0, [r1]\n\
- b _080BA64C\n\
- .align 2, 0\n\
-_080BA428: .4byte gMain\n\
-_080BA42C: .4byte gTasks\n\
-_080BA430: .4byte sub_80BA800\n\
-_080BA434:\n\
- movs r0, 0x80\n\
- lsls r0, 2\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080BA458\n\
- ldr r0, _080BA450 @ =gTasks\n\
- lsls r1, r4, 2\n\
- adds r1, r4\n\
- lsls r1, 3\n\
- adds r1, r0\n\
- ldr r0, _080BA454 @ =sub_80BAF84\n\
- str r0, [r1]\n\
- b _080BA64C\n\
- .align 2, 0\n\
-_080BA450: .4byte gTasks\n\
-_080BA454: .4byte sub_80BAF84\n\
-_080BA458:\n\
- movs r0, 0x8\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080BA478\n\
- ldr r0, _080BA470 @ =gTasks\n\
- lsls r1, r4, 2\n\
- adds r1, r4\n\
- lsls r1, 3\n\
- adds r1, r0\n\
- ldr r0, _080BA474 @ =sub_80BB25C\n\
- str r0, [r1]\n\
- b _080BA64C\n\
- .align 2, 0\n\
-_080BA470: .4byte gTasks\n\
-_080BA474: .4byte sub_80BB25C\n\
-_080BA478:\n\
- movs r6, 0x1\n\
- movs r5, 0x1\n\
- ands r5, r1\n\
- cmp r5, 0\n\
- beq _080BA538\n\
- ldr r0, _080BA4AC @ =gTasks\n\
- lsls r1, r4, 2\n\
- adds r1, r4\n\
- lsls r1, 3\n\
- adds r5, r1, r0\n\
- movs r1, 0x8\n\
- ldrsh r0, [r5, r1]\n\
- cmp r0, 0\n\
- beq _080BA4D0\n\
- movs r2, 0x10\n\
- ldrsh r0, [r5, r2]\n\
- cmp r0, 0\n\
- beq _080BA4BA\n\
- movs r3, 0xC\n\
- ldrsh r4, [r5, r3]\n\
- cmp r4, 0\n\
- beq _080BA4B0\n\
- ldrh r0, [r5, 0x10]\n\
- bl m4aSongNumStop\n\
- b _080BA4C4\n\
- .align 2, 0\n\
-_080BA4AC: .4byte gTasks\n\
-_080BA4B0:\n\
- ldrh r0, [r5, 0x10]\n\
- bl m4aSongNumStop\n\
- strh r4, [r5, 0x10]\n\
- b _080BA64C\n\
-_080BA4BA:\n\
- movs r4, 0xC\n\
- ldrsh r0, [r5, r4]\n\
- cmp r0, 0\n\
- bne _080BA4C4\n\
- b _080BA64C\n\
-_080BA4C4:\n\
- ldrh r0, [r5, 0xC]\n\
- bl m4aSongNumStart\n\
- ldrh r0, [r5, 0xC]\n\
- strh r0, [r5, 0x10]\n\
- b _080BA64C\n\
-_080BA4D0:\n\
- ldrh r1, [r5, 0xE]\n\
- movs r2, 0xE\n\
- ldrsh r0, [r5, r2]\n\
- cmp r0, 0\n\
- beq _080BA514\n\
- movs r3, 0xA\n\
- ldrsh r4, [r5, r3]\n\
- cmp r4, 0\n\
- beq _080BA500\n\
- ldr r0, _080BA4FC @ =0x0000015d\n\
- adds r4, r0, 0\n\
- adds r0, r1, r4\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- bl m4aSongNumStop\n\
- ldrh r1, [r5, 0xA]\n\
- adds r4, r1\n\
- lsls r4, 16\n\
- lsrs r4, 16\n\
- adds r0, r4, 0\n\
- b _080BA528\n\
- .align 2, 0\n\
-_080BA4FC: .4byte 0x0000015d\n\
-_080BA500:\n\
- ldr r2, _080BA510 @ =0x0000015d\n\
- adds r0, r1, r2\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- bl m4aSongNumStop\n\
- strh r4, [r5, 0xE]\n\
- b _080BA64C\n\
- .align 2, 0\n\
-_080BA510: .4byte 0x0000015d\n\
-_080BA514:\n\
- ldrh r1, [r5, 0xA]\n\
- movs r3, 0xA\n\
- ldrsh r0, [r5, r3]\n\
- cmp r0, 0\n\
- bne _080BA520\n\
- b _080BA64C\n\
-_080BA520:\n\
- ldr r4, _080BA534 @ =0x0000015d\n\
- adds r0, r1, r4\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
-_080BA528:\n\
- bl m4aSongNumStart\n\
- ldrh r0, [r5, 0xA]\n\
- strh r0, [r5, 0xE]\n\
- b _080BA64C\n\
- .align 2, 0\n\
-_080BA534: .4byte 0x0000015d\n\
-_080BA538:\n\
- movs r0, 0x2\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080BA570\n\
- movs r0, 0x5\n\
- bl m4aSongNumStart\n\
- movs r0, 0x1\n\
- negs r0, r0\n\
- str r5, [sp]\n\
- movs r1, 0\n\
- movs r2, 0\n\
- movs r3, 0x10\n\
- bl BeginNormalPaletteFade\n\
- ldr r1, _080BA568 @ =gTasks\n\
- lsls r0, r4, 2\n\
- adds r0, r4\n\
- lsls r0, 3\n\
- adds r0, r1\n\
- ldr r1, _080BA56C @ =sub_80BA68C\n\
- str r1, [r0]\n\
- b _080BA64C\n\
- .align 2, 0\n\
-_080BA568: .4byte gTasks\n\
-_080BA56C: .4byte sub_80BA68C\n\
-_080BA570:\n\
- ldrh r1, [r2, 0x30]\n\
- movs r0, 0x40\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _080BA582\n\
- movs r0, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080BA59C\n\
-_080BA582:\n\
- ldr r0, _080BA598 @ =gTasks\n\
- lsls r1, r4, 2\n\
- adds r1, r4\n\
- lsls r1, 3\n\
- adds r1, r0\n\
- ldrh r0, [r1, 0x8]\n\
- eors r0, r6\n\
- strh r0, [r1, 0x8]\n\
-_080BA592:\n\
- movs r0, 0x1\n\
- b _080BA64E\n\
- .align 2, 0\n\
-_080BA598: .4byte gTasks\n\
-_080BA59C:\n\
- movs r0, 0x10\n\
- ands r0, r1\n\
- lsls r0, 16\n\
- lsrs r3, r0, 16\n\
- cmp r3, 0\n\
- beq _080BA5EA\n\
- ldr r0, _080BA5CC @ =gTasks\n\
- lsls r1, r4, 2\n\
- adds r1, r4\n\
- lsls r1, 3\n\
- adds r1, r0\n\
- movs r2, 0x8\n\
- ldrsh r0, [r1, r2]\n\
- cmp r0, 0\n\
- beq _080BA5D6\n\
- ldrh r2, [r1, 0xC]\n\
- movs r3, 0xC\n\
- ldrsh r0, [r1, r3]\n\
- cmp r0, 0\n\
- ble _080BA5D0\n\
- subs r0, r2, 0x1\n\
- strh r0, [r1, 0xC]\n\
- b _080BA592\n\
- .align 2, 0\n\
-_080BA5CC: .4byte gTasks\n\
-_080BA5D0:\n\
- movs r0, 0xF7\n\
- strh r0, [r1, 0xC]\n\
- b _080BA592\n\
-_080BA5D6:\n\
- ldrh r2, [r1, 0xA]\n\
- movs r4, 0xA\n\
- ldrsh r0, [r1, r4]\n\
- cmp r0, 0\n\
- ble _080BA5E4\n\
- subs r0, r2, 0x1\n\
- b _080BA5E6\n\
-_080BA5E4:\n\
- movs r0, 0x75\n\
-_080BA5E6:\n\
- strh r0, [r1, 0xA]\n\
- b _080BA592\n\
-_080BA5EA:\n\
- movs r0, 0x20\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080BA630\n\
- ldr r1, _080BA614 @ =gTasks\n\
- lsls r0, r4, 2\n\
- adds r0, r4\n\
- lsls r0, 3\n\
- adds r1, r0, r1\n\
- movs r0, 0x8\n\
- ldrsh r2, [r1, r0]\n\
- cmp r2, 0\n\
- beq _080BA61C\n\
- ldrh r2, [r1, 0xC]\n\
- movs r4, 0xC\n\
- ldrsh r0, [r1, r4]\n\
- cmp r0, 0xF6\n\
- bgt _080BA618\n\
- adds r0, r2, 0x1\n\
- strh r0, [r1, 0xC]\n\
- b _080BA592\n\
- .align 2, 0\n\
-_080BA614: .4byte gTasks\n\
-_080BA618:\n\
- strh r3, [r1, 0xC]\n\
- b _080BA592\n\
-_080BA61C:\n\
- ldrh r3, [r1, 0xA]\n\
- movs r4, 0xA\n\
- ldrsh r0, [r1, r4]\n\
- cmp r0, 0x74\n\
- bgt _080BA62C\n\
- adds r0, r3, 0x1\n\
- strh r0, [r1, 0xA]\n\
- b _080BA592\n\
-_080BA62C:\n\
- strh r2, [r1, 0xA]\n\
- b _080BA592\n\
-_080BA630:\n\
- ldrh r1, [r2, 0x2C]\n\
- movs r0, 0x4\n\
- ands r0, r1\n\
- lsls r0, 16\n\
- lsrs r1, r0, 16\n\
- cmp r1, 0\n\
- beq _080BA648\n\
- ldr r0, _080BA644 @ =gUnknown_020387B0\n\
- strb r6, [r0]\n\
- b _080BA64C\n\
- .align 2, 0\n\
-_080BA644: .4byte gUnknown_020387B0\n\
-_080BA648:\n\
- ldr r0, _080BA658 @ =gUnknown_020387B0\n\
- strb r1, [r0]\n\
-_080BA64C:\n\
- movs r0, 0\n\
-_080BA64E:\n\
- add sp, 0x4\n\
- pop {r4-r6}\n\
- pop {r1}\n\
- bx r1\n\
- .align 2, 0\n\
-_080BA658: .4byte gUnknown_020387B0\n\
- .syntax divided");
-}
-#endif
-
-void sub_80BA65C(u8 taskId)
-{
- if(sub_80BA400(taskId) != FALSE)
- TASK.FUNC = sub_80BA384;
-}
-
-void sub_80BA68C(u8 taskId)
-{
- if(!gPaletteFade.active)
- {
- DestroyTask(taskId);
- SetMainCallback2(CB2_InitTitleScreen);
- }
-}
-
-void sub_80BA6B8(u8 windowType)
-{
- switch(windowType)
- {
- case BGM_WINDOW:
- default:
- REG_WIN1H = WIN_RANGE(17, 223);
- REG_WIN1V = WIN_RANGE(41, 87);
- break;
- case SE_WINDOW:
- REG_WIN1H = WIN_RANGE(17, 223);
- REG_WIN1V = WIN_RANGE(97, 143);
- break;
- }
-}
-
-void sub_80BA700(u16 soundIndex, u16 x, u16 y) // PrintSoundNumber ?
-{
- u8 i;
- u8 str[5];
- bool8 someBool;
- u8 divisorValue;
-
- for(i = 0; i < 3; i++)
- str[i] = 0; // initialize array
-
- str[3] = CHAR_ELLIPSIS;
- str[4] = EOS;
- someBool = FALSE;
-
- divisorValue = soundIndex / 100;
- if(divisorValue)
- {
- str[0] = divisorValue + CHAR_0;
- someBool = TRUE;
- }
-
- divisorValue = (soundIndex % 100) / 10;
- if(divisorValue || someBool != FALSE)
- str[1] = divisorValue + CHAR_0;
-
- str[2] = ((soundIndex % 100) % 10) + CHAR_0;
- MenuPrint(str, x, y);
-}
-
-void sub_80BA79C(const u8 *const string, u16 x, u16 y)
-{
- u8 i;
- u8 str[11];
-
- for(i = 0; i < 11; i++)
- str[i] = 0; // format string.
-
- str[10] = EOS; // the above for loop formats the last element of the array unnecessarily.
-
- for(i = 0; string[i] != EOS && i < 10; i++)
- str[i] = string[i];
-
- MenuPrint(str, x, y);
-}
-
-void sub_80BA800(u8 taskId) // Task_DrawDriverTestMenu
-{
- u8 bbackStr[sizeof(gDebugText_BBack)];
- u8 aplayStr[sizeof(gDebugText_APlay)];
- u8 voiceStr[sizeof(gDebugText_Voice)];
- u8 volumeStr[sizeof(gDebugText_Volume)];
- u8 panpotStr[sizeof(gDebugText_Panpot)];
- u8 pitchStr[sizeof(gDebugText_Pitch)];
- u8 lengthStr[sizeof(gDebugText_Length)];
- u8 releaseStr[sizeof(gDebugText_Release)];
- u8 progressStr[sizeof(gDebugText_Progress)];
- u8 chorusStr[sizeof(gDebugText_Chorus)];
- u8 priorityStr[sizeof(gDebugText_Priority)];
- u8 playingStr[sizeof(gDebugText_Playing)];
- u8 reverseStr[sizeof(gDebugText_Reverse)];
- u8 stereoStr[sizeof(gDebugText_Stereo)];
-
- memcpy(bbackStr, gDebugText_BBack, sizeof(gDebugText_BBack));
- memcpy(aplayStr, gDebugText_APlay, sizeof(gDebugText_APlay));
- memcpy(voiceStr, gDebugText_Voice, sizeof(gDebugText_Voice));
- memcpy(volumeStr, gDebugText_Volume, sizeof(gDebugText_Volume));
- memcpy(panpotStr, gDebugText_Panpot, sizeof(gDebugText_Panpot));
- memcpy(pitchStr, gDebugText_Pitch, sizeof(gDebugText_Pitch));
- memcpy(lengthStr, gDebugText_Length, sizeof(gDebugText_Length));
- memcpy(releaseStr, gDebugText_Release, sizeof(gDebugText_Release));
- memcpy(progressStr, gDebugText_Progress, sizeof(gDebugText_Progress));
- memcpy(chorusStr, gDebugText_Chorus, sizeof(gDebugText_Chorus));
- memcpy(priorityStr, gDebugText_Priority, sizeof(gDebugText_Priority));
- memcpy(playingStr, gDebugText_Playing, sizeof(gDebugText_Playing));
- memcpy(reverseStr, gDebugText_Reverse, sizeof(gDebugText_Reverse));
- memcpy(stereoStr, gDebugText_Stereo, sizeof(gDebugText_Stereo));
-
- REG_DISPCNT = 0x3140;
- MenuDrawTextWindow(0, 0, 0x1D, 0x13);
- MenuPrint(bbackStr, 0x13, 0x4);
- MenuPrint(aplayStr, 0x13, 0x2);
- MenuPrint(voiceStr, 0x2, 0x1);
- MenuPrint(volumeStr, 0x2, 0x3);
- MenuPrint(panpotStr, 0x2, 0x5);
- MenuPrint(pitchStr, 0x2, 0x7);
- MenuPrint(lengthStr, 0x2, 0x9);
- MenuPrint(releaseStr, 0x2, 0xB);
- MenuPrint(progressStr, 0x2, 0xD);
- MenuPrint(chorusStr, 0x2, 0xF);
- MenuPrint(priorityStr, 0x2, 0x11);
- MenuPrint(playingStr, 0x13, 0x10);
- MenuPrint(reverseStr, 0x13, 0xE);
- MenuPrint(stereoStr, 0x13, 0xC);
- REG_WIN0H = WIN_RANGE(0, 240);
- REG_WIN0V = WIN_RANGE(0, 160);
- gUnknown_020387B3 = 0;
- gUnknown_020387B1 = 0;
- gUnknown_020387B2 = 0;
- gUnknown_03005D30 = NULL;
- gUnknown_020387D8 = 0;
- gUnknown_020387D9 = 1;
- gUnknown_020387B4[CRY_TEST_UNK0] = 0;
- gUnknown_020387B4[CRY_TEST_VOLUME] = 0x78;
- gUnknown_020387B4[CRY_TEST_PANPOT] = 0;
- gUnknown_020387B4[CRY_TEST_PITCH] = 0x3C00;
- gUnknown_020387B4[CRY_TEST_LENGTH] = 0xB4;
- gUnknown_020387B4[CRY_TEST_PROGRESS] = 0;
- gUnknown_020387B4[CRY_TEST_RELEASE] = 0;
- gUnknown_020387B4[CRY_TEST_CHORUS] = 0;
- gUnknown_020387B4[CRY_TEST_PRIORITY] = 2;
- sub_80BAD5C();
- sub_80BAE10(0, 0);
- TASK.FUNC = sub_80BAA48;
-}
-
-void sub_80BAA48(u8 taskId) // Task_ProcessDriverTestInput
-{
- if(gMain.newKeys & B_BUTTON)
- {
- REG_DISPCNT = 0x7140;
- REG_WIN0H = WIN_RANGE(17, 223);
- REG_WIN0V = WIN_RANGE(1, 31);
- MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
- TASK.FUNC = sub_80BA258;
- return;
- }
- if(gMain.newAndRepeatedKeys & DPAD_UP) // _080BAAA8
- {
- u8 backupVar = gUnknown_020387B3;
- if(--gUnknown_020387B3 < 0)
- gUnknown_020387B3 = 8;
-
- sub_80BAE10(backupVar, gUnknown_020387B3);
- return;
- }
- if(gMain.newAndRepeatedKeys & DPAD_DOWN) // _080BAAD0
- {
- u8 backupVar = gUnknown_020387B3;
- if(++gUnknown_020387B3 > 8)
- gUnknown_020387B3 = 0;
-
- sub_80BAE10(backupVar, gUnknown_020387B3);
- return;
- }
- if(gMain.newKeys & START_BUTTON) // _080BAAF8
- {
- gUnknown_020387D8 ^= 1;
- sub_80BAD5C();
- return;
- }
- if(gMain.newKeys & SELECT_BUTTON) // _080BAB14
- {
- gUnknown_020387D9 ^= 1;
- sub_80BAD5C();
- SetPokemonCryStereo(gUnknown_020387D9);
- return;
- }
- if(gMain.newAndRepeatedKeys & R_BUTTON) // _080BAB38
- {
- sub_80BACDC(10);
- sub_80BAD5C();
- return;
- }
- if(gMain.newAndRepeatedKeys & L_BUTTON) // _080BAB46
- {
- sub_80BACDC(-10);
- sub_80BAD5C();
- return;
- }
- if(gMain.newAndRepeatedKeys & DPAD_LEFT) // _080BAB56
- {
- sub_80BACDC(-1);
- sub_80BAD5C();
- return;
- }
- if(gMain.newAndRepeatedKeys & DPAD_RIGHT) // _080BAB64
- {
- sub_80BACDC(1);
- sub_80BAD5C();
- return;
- }
- if(gMain.newKeys & A_BUTTON) // _080BAB78
- {
- u8 divide, remaining;
-
- SetPokemonCryVolume(gUnknown_020387B4[CRY_TEST_VOLUME]);
- SetPokemonCryPanpot(gUnknown_020387B4[CRY_TEST_PANPOT]);
- SetPokemonCryPitch(gUnknown_020387B4[CRY_TEST_PITCH]);
- SetPokemonCryLength(gUnknown_020387B4[CRY_TEST_LENGTH]);
- SetPokemonCryProgress(gUnknown_020387B4[CRY_TEST_PROGRESS]);
- SetPokemonCryRelease(gUnknown_020387B4[CRY_TEST_RELEASE]);
- SetPokemonCryChorus(gUnknown_020387B4[CRY_TEST_CHORUS]);
- SetPokemonCryPriority(gUnknown_020387B4[CRY_TEST_PRIORITY]);
-
- remaining = gUnknown_020387B4[CRY_TEST_UNK0] % 128;
- divide = gUnknown_020387B4[CRY_TEST_UNK0] / 128;
-
- switch(divide)
- {
- case 0:
- if(gUnknown_020387D8)
- gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_84537C0[remaining]);
- else
- gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8452590[remaining]);
- break;
- case 1:
- if(gUnknown_020387D8)
- gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8453DC0[remaining]);
- else
- gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8452B90[remaining]);
- break;
- case 2:
- if(gUnknown_020387D8)
- gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_84543C0[remaining]);
- else
- gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8453190[remaining]);
- break;
- case 3:
- if(gUnknown_020387D8)
- gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_84549C0[remaining]);
- else
- gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8453790[remaining]);
- break;
- }
- }
-
- // _080BACA2
- if(gUnknown_03005D30 != NULL)
- {
- gUnknown_020387B1 = IsPokemonCryPlaying(gUnknown_03005D30);
-
- if(gUnknown_020387B1 != gUnknown_020387B2)
- sub_80BAD5C();
-
- gUnknown_020387B2 = gUnknown_020387B1;
- }
-}
-
-void sub_80BACDC(s8 var)
-{
- int minMaxArray[ARRAY_COUNT(gUnknown_083D039C)];
-
- memcpy(minMaxArray, gUnknown_083D039C, sizeof(gUnknown_083D039C));
- gUnknown_020387B4[gUnknown_020387B3] += var;
-
- if(gUnknown_020387B4[gUnknown_020387B3] > minMaxArray[MULTI_DIM_ARR(gUnknown_020387B3, B_16, MAX)])
- gUnknown_020387B4[gUnknown_020387B3] = minMaxArray[MULTI_DIM_ARR(gUnknown_020387B3, B_16, MIN)];
-
- if(gUnknown_020387B4[gUnknown_020387B3] < minMaxArray[MULTI_DIM_ARR(gUnknown_020387B3, B_16, MIN)])
- gUnknown_020387B4[gUnknown_020387B3] = minMaxArray[MULTI_DIM_ARR(gUnknown_020387B3, B_16, MAX)];
-}
-
-void sub_80BAD5C(void)
-{
- sub_80BAE78(gUnknown_020387B4[CRY_TEST_UNK0] + 1, 0xB, 0x1, 0x5);
- sub_80BAE78(gUnknown_020387B4[CRY_TEST_VOLUME], 0xB, 0x3, 0x5);
- sub_80BAE78(gUnknown_020387B4[CRY_TEST_PANPOT], 0xB, 0x5, 0x5);
- sub_80BAE78(gUnknown_020387B4[CRY_TEST_PITCH], 0xB, 0x7, 0x5);
- sub_80BAE78(gUnknown_020387B4[CRY_TEST_LENGTH], 0xB, 0x9, 0x5);
- sub_80BAE78(gUnknown_020387B4[CRY_TEST_RELEASE], 0xB, 0xB, 0x5);
- sub_80BAE78(gUnknown_020387B4[CRY_TEST_PROGRESS], 0xB, 0xD, 0x5);
- sub_80BAE78(gUnknown_020387B4[CRY_TEST_CHORUS], 0xB, 0xF, 0x5);
- sub_80BAE78(gUnknown_020387B4[CRY_TEST_PRIORITY], 0xB, 0x11, 0x5);
- sub_80BAE78(gUnknown_020387B1, 0x1B, 0x10, 0x1);
- sub_80BAE78(gUnknown_020387D8, 0x1B, 0xE, 0x1);
- sub_80BAE78(gUnknown_020387D9, 0x1B, 0xC, 0x1);
-}
-
-void sub_80BAE10(u8 var1, u8 var2)
-{
- u8 str1[sizeof(gUnknown_083D03DC)];
- u8 str2[sizeof(gUnknown_083D03DE)];
-
- memcpy(str1, gUnknown_083D03DC, sizeof(gUnknown_083D03DC));
- memcpy(str2, gUnknown_083D03DE, sizeof(gUnknown_083D03DE));
-
- MenuPrint(str2, gUnknown_083D0300[MULTI_DIM_ARR(var1, B_16, 0)], gUnknown_083D0300[MULTI_DIM_ARR(var1, B_16, 1)]);
- MenuPrint(str1, gUnknown_083D0300[MULTI_DIM_ARR(var2, B_16, 0)], gUnknown_083D0300[MULTI_DIM_ARR(var2, B_16, 1)]);
-}
-
-/*void sub_80BAE78(int var1, u16 var2, u16 var3, u8 var4)
-{
- u32 powers[6];
- u8 str[8];
- u8 i;
- u8 someVar, someVar2;
-
- memcpy(powers, gUnknown_083D03E0, sizeof(powers);
-
- for(i = 0; i < var4; i++)
- str[i] = 0;
-
- str[var4 + 1] = CHAR_0;
- someVar = 0;
-
- if(var1 < 0) // make absolute value? wtf
- {
- var1 = -var1; // just use abs?
- someVar = 1;
- }
-
- // _080BAED6
- someVar2 = 0;
- if(var4 == 1)
- someVar2 = 1;
-
- // _080BAEE2
- for(;;)
- {
-
- }
-}*/
-
-// no.
-__attribute__((naked))
-void sub_80BAE78(int var1, u16 var2, u16 var3, u8 var4)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x2C\n\
- mov r8, r0\n\
- lsls r1, 16\n\
- lsrs r6, r1, 16\n\
- lsls r2, 16\n\
- lsrs r2, 16\n\
- lsls r3, 24\n\
- lsrs r7, r3, 24\n\
- mov r1, sp\n\
- ldr r0, _080BAF80 @ =gUnknown_083D03E0\n\
- ldm r0!, {r3-r5}\n\
- stm r1!, {r3-r5}\n\
- ldm r0!, {r3-r5}\n\
- stm r1!, {r3-r5}\n\
- movs r5, 0\n\
- add r0, sp, 0x18\n\
- mov r9, r0\n\
- cmp r5, r7\n\
- bgt _080BAEC0\n\
- mov r4, r9\n\
- movs r3, 0\n\
-_080BAEAC:\n\
- lsls r0, r5, 24\n\
- asrs r0, 24\n\
- adds r1, r4, r0\n\
- strb r3, [r1]\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- asrs r0, 24\n\
- cmp r0, r7\n\
- ble _080BAEAC\n\
-_080BAEC0:\n\
- adds r0, r7, 0x1\n\
- add r0, r9\n\
- movs r1, 0xFF\n\
- strb r1, [r0]\n\
- movs r1, 0\n\
- mov r3, r8\n\
- cmp r3, 0\n\
- bge _080BAED6\n\
- negs r3, r3\n\
- mov r8, r3\n\
- movs r1, 0x1\n\
-_080BAED6:\n\
- movs r4, 0\n\
- mov r10, r4\n\
- cmp r7, 0x1\n\
- bne _080BAEE2\n\
- movs r5, 0x1\n\
- mov r10, r5\n\
-_080BAEE2:\n\
- subs r0, r7, 0x1\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- lsls r0, r5, 24\n\
- lsls r6, 24\n\
- str r6, [sp, 0x24]\n\
- lsls r2, 24\n\
- str r2, [sp, 0x28]\n\
- cmp r0, 0\n\
- blt _080BAF62\n\
- str r1, [sp, 0x20]\n\
-_080BAEF8:\n\
- asrs r6, r0, 24\n\
- lsls r0, r6, 2\n\
- add r0, sp\n\
- ldr r1, [r0]\n\
- mov r0, r8\n\
- bl __divsi3\n\
- lsls r0, 24\n\
- lsrs r2, r0, 24\n\
- cmp r0, 0\n\
- bne _080BAF1A\n\
- mov r0, r10\n\
- cmp r0, 0\n\
- bne _080BAF1A\n\
- lsls r4, r5, 24\n\
- cmp r6, 0\n\
- bne _080BAF46\n\
-_080BAF1A:\n\
- lsls r4, r5, 24\n\
- ldr r3, [sp, 0x20]\n\
- cmp r3, 0\n\
- beq _080BAF34\n\
- mov r5, r10\n\
- cmp r5, 0\n\
- bne _080BAF34\n\
- asrs r0, r4, 24\n\
- subs r0, r7, r0\n\
- subs r0, 0x1\n\
- add r0, r9\n\
- movs r1, 0xAE\n\
- strb r1, [r0]\n\
-_080BAF34:\n\
- asrs r1, r4, 24\n\
- subs r1, r7, r1\n\
- add r1, r9\n\
- lsls r0, r2, 24\n\
- asrs r0, 24\n\
- subs r0, 0x5F\n\
- strb r0, [r1]\n\
- movs r0, 0x1\n\
- mov r10, r0\n\
-_080BAF46:\n\
- asrs r4, 24\n\
- lsls r0, r4, 2\n\
- add r0, sp\n\
- ldr r1, [r0]\n\
- mov r0, r8\n\
- bl __modsi3\n\
- mov r8, r0\n\
- subs r4, 0x1\n\
- lsls r4, 24\n\
- lsrs r5, r4, 24\n\
- lsls r0, r5, 24\n\
- cmp r0, 0\n\
- bge _080BAEF8\n\
-_080BAF62:\n\
- ldr r3, [sp, 0x24]\n\
- lsrs r1, r3, 24\n\
- ldr r4, [sp, 0x28]\n\
- lsrs r2, r4, 24\n\
- mov r0, r9\n\
- bl MenuPrint\n\
- add sp, 0x2C\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_080BAF80: .4byte gUnknown_083D03E0\n\
- .syntax divided");
-}
-
-void sub_80BAF84(u8 taskId)
-{
- u8 seStr[sizeof(gOtherText_SE)];
- u8 panStr[sizeof(gOtherText_Pan)];
- u8 playingStr[sizeof(gDebugText_Playing)];
-
- memcpy(seStr, gOtherText_SE, sizeof(gOtherText_SE));
- memcpy(panStr, gOtherText_Pan, sizeof(gOtherText_Pan));
- memcpy(playingStr, gDebugText_Playing, sizeof(gDebugText_Playing));
-
- REG_DISPCNT = 0x3140;
- MenuDrawTextWindow(0, 0, 0x1D, 0x13);
- MenuPrint(seStr, 3, 2);
- MenuPrint(panStr, 3, 4);
- MenuPrint(playingStr, 3, 8);
- REG_WIN0H = WIN_RANGE(0, 240);
- REG_WIN0V = WIN_RANGE(0, 160);
- gUnknown_020387B4[CRY_TEST_UNK0] = 1;
- gUnknown_020387B4[CRY_TEST_PANPOT] = 0;
- gUnknown_020387B4[CRY_TEST_CHORUS] = 0;
- gUnknown_020387B4[CRY_TEST_PROGRESS] = 0;
- gUnknown_020387B4[CRY_TEST_RELEASE] = 0;
- sub_80BB1D4();
- TASK.FUNC = sub_80BB038;
-}
-
-void sub_80BB038(u8 taskId)
-{
- sub_80BB1D4();
- if(gUnknown_020387B4[CRY_TEST_PROGRESS])
- {
- if(gUnknown_020387B4[CRY_TEST_RELEASE])
- {
- gUnknown_020387B4[CRY_TEST_RELEASE]--;
- }
- else // _080BB05C
- {
- s8 panpot = gUnknown_083D03F8[gUnknown_020387B4[CRY_TEST_PANPOT]];
- if(panpot != -128)
- {
- if(panpot == 0x7F)
- {
- gUnknown_020387B4[CRY_TEST_CHORUS] += 2;
- if(gUnknown_020387B4[CRY_TEST_CHORUS] < 0x3F)
- SE12PanpotControl(gUnknown_020387B4[CRY_TEST_CHORUS]);
- }
- }
- else // _080BB08C
- {
- gUnknown_020387B4[CRY_TEST_CHORUS] -= 2;
- if(gUnknown_020387B4[CRY_TEST_CHORUS] > -0x40)
- SE12PanpotControl(gUnknown_020387B4[CRY_TEST_CHORUS]);
- }
- }
- }
- // _080BB0A2
- if(gMain.newKeys & B_BUTTON)
- {
- REG_DISPCNT = 0x7140;
- REG_WIN0H = WIN_RANGE(17, 223);
- REG_WIN0V = WIN_RANGE(1, 31);
- MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
- TASK.FUNC = sub_80BA258;
- return;
- }
- if(gMain.newKeys & A_BUTTON) // _080BB104
- {
- s8 panpot = gUnknown_083D03F8[gUnknown_020387B4[CRY_TEST_PANPOT]];
- if(panpot != -128)
- {
- if(panpot == 0x7F)
- {
- PlaySE12WithPanning(gUnknown_020387B4[CRY_TEST_UNK0], -0x40);
- gUnknown_020387B4[CRY_TEST_CHORUS] = -0x40;
- gUnknown_020387B4[CRY_TEST_PROGRESS] = 1;
- gUnknown_020387B4[CRY_TEST_RELEASE] = 0x1E;
- return;
- }
- }
- else // _080BB140
- {
- PlaySE12WithPanning(gUnknown_020387B4[CRY_TEST_UNK0], 0x3F);
- gUnknown_020387B4[CRY_TEST_CHORUS] = 0x3F;
- gUnknown_020387B4[CRY_TEST_PROGRESS] = 1;
- gUnknown_020387B4[CRY_TEST_RELEASE] = 0x1E;
- return;
- }
- // _080BB154
- PlaySE12WithPanning(gUnknown_020387B4[CRY_TEST_UNK0], panpot);
- gUnknown_020387B4[CRY_TEST_PROGRESS] = 0;
- return;
- }
- if(gMain.newKeys & L_BUTTON) // _080BB15E
- {
- gUnknown_020387B4[CRY_TEST_PANPOT]++;
- if(gUnknown_020387B4[CRY_TEST_PANPOT] > 4)
- gUnknown_020387B4[CRY_TEST_PANPOT] = 0;
- }
- if(gMain.newKeys & R_BUTTON) // _080BB176
- {
- gUnknown_020387B4[CRY_TEST_PANPOT]--;
- if(gUnknown_020387B4[CRY_TEST_PANPOT] < 0)
- gUnknown_020387B4[CRY_TEST_PANPOT] = 4;
- }
- if(gMain.newAndRepeatedKeys & DPAD_RIGHT) // _080BB192
- {
- gUnknown_020387B4[CRY_TEST_UNK0]++;
- if(gUnknown_020387B4[CRY_TEST_UNK0] > 0xF7)
- gUnknown_020387B4[CRY_TEST_UNK0] = 0;
- }
- else if(gMain.newAndRepeatedKeys & DPAD_LEFT) // _080BB1B0
- {
- gUnknown_020387B4[CRY_TEST_UNK0]--;
- if(gUnknown_020387B4[CRY_TEST_UNK0] < 0)
- gUnknown_020387B4[CRY_TEST_UNK0] = 0xF7;
- }
-}
-
-void sub_80BB1D4(void)
-{
- u8 lrStr[sizeof(gOtherText_LR)];
- u8 rlStr[sizeof(gOtherText_RL)];
-
- memcpy(lrStr, gOtherText_LR, sizeof(lrStr));
- memcpy(rlStr, gOtherText_RL, sizeof(rlStr));
-
- sub_80BAE78(gUnknown_020387B4[CRY_TEST_UNK0], 7, 2, 3);
-
- switch(gUnknown_083D03F8[gUnknown_020387B4[CRY_TEST_PANPOT]])
- {
- case 0x7F:
- MenuPrint(lrStr, 7, 4);
- break;
- case -0x80:
- MenuPrint(rlStr, 7, 4);
- break;
- default:
- sub_80BAE78(gUnknown_083D03F8[gUnknown_020387B4[CRY_TEST_PANPOT]], 7, 4, 3);
- break;
- }
- sub_80BAE78(IsSEPlaying(), 12, 8, 1);
-}
-
-void sub_80BB25C(u8 taskId)
-{
- struct CryRelatedStruct cryStruct, cryStruct2;
- u8 zero;
-
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
- gUnknown_03005D34 = 1;
- ResetSpriteData();
- FreeAllSpritePalettes();
-
- cryStruct.unk0 = 0x2000;
- cryStruct.unk2 = 29;
- cryStruct.paletteNo = 12;
- cryStruct.yPos = 30;
- cryStruct.xPos = 4;
-
- zero = 0; // wtf?
- gUnknown_03005E98 = 0;
-
- while(sub_8119E3C(&cryStruct, 3) == FALSE);
-
- cryStruct2.unk0 = 0;
- cryStruct2.unk2 = 15;
- cryStruct2.paletteNo = 13;
- cryStruct2.xPos = 12;
- cryStruct2.yPos = 12;
-
- zero = 0; // wtf?
- gUnknown_03005E98 = 0;
-
- while(ShowPokedexCryScreen(&cryStruct2, 2) == FALSE);
-
- MenuDrawTextWindow(0, 16, 5, 19);
- sub_80BB494();
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- REG_BG2HOFS = 0;
- REG_BG2VOFS = 0;
- REG_BG2CNT = 0xF01;
- REG_BG3CNT = 0x1D03;
- REG_DISPCNT = 0x1d40;
- m4aMPlayFadeOutTemporarily(&gMPlay_BGM, 2);
- TASK.FUNC = sub_80BB3B4;
-}
-
-void sub_80BB3B4(u8 taskId)
-{
- sub_8119F88(3);
-
- if(gMain.newKeys & A_BUTTON)
- {
- sub_811A050(gUnknown_03005D34);
- }
- if(gMain.newKeys & R_BUTTON)
- {
- StopCryAndClearCrySongs();
- }
- if(gMain.newAndRepeatedKeys & DPAD_UP)
- {
- if(--gUnknown_03005D34 == 0)
- gUnknown_03005D34 = 384; // total species
- sub_80BB494();
- }
- if(gMain.newAndRepeatedKeys & DPAD_DOWN)
- {
- if(++gUnknown_03005D34 > 384)
- gUnknown_03005D34 = 1;
- sub_80BB494();
- }
- if(gMain.newKeys & B_BUTTON)
- {
- REG_DISPCNT = 0x7140;
- REG_WIN0H = WIN_RANGE(17, 223);
- REG_WIN0V = WIN_RANGE(1, 31);
- MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
- TASK.FUNC = sub_80BA258;
- DestroyCryMeterNeedleSprite();
- }
-}
-
-void sub_80BB494(void)
-{
- sub_80BAE78(gUnknown_03005D34, 1, 17, 3);
-}
diff --git a/src/unused_8124F94.c b/src/unused_8124F94.c
index 93b569058..5f76fa92e 100644
--- a/src/unused_8124F94.c
+++ b/src/unused_8124F94.c
@@ -64,7 +64,7 @@ u8 unref_sub_8124FD8(struct UnknownStruct1 *a, const struct UnknownStruct2 *b)
}
else
{
- sub_800D238(b->src, a->dest + a->unk2 * 64);
+ LZDecompressWram(b->src, a->dest + a->unk2 * 64);
}
a->unk88[a->unk1].unk8 = a->unk2;
temp = r6 + a->unk2;
@@ -95,7 +95,7 @@ u8 unref_sub_81250A4(struct UnknownStruct1 *a, struct UnknownStruct3 *b)
{
u16 palette[16];
- sub_800D238(b->paletteSrc, palette);
+ LZDecompressWram(b->paletteSrc, palette);
LoadPalette(palette, a->paletteNum * 16, 32);
}
a->unk8[a->paletteNum].paletteCount = a->paletteNum;
@@ -111,7 +111,7 @@ u8 unref_sub_8125118(struct UnknownStruct1 *a, struct UnknownStruct3 *b)
u8 r7 = b->paletteCount;
u8 i;
- sub_800D238(b->paletteSrc, palettes);
+ LZDecompressWram(b->paletteSrc, palettes);
for (i = a->paletteNum; i < r7; i++)
{
if (a->paletteNum + i >= 16)