diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bard_music.c (renamed from src/field/bard_music.c) | 4 | ||||
-rw-r--r-- | src/battle/anim/bubble.c | 2 | ||||
-rw-r--r-- | src/battle/anim/bug.c | 37 | ||||
-rw-r--r-- | src/battle/anim/cutter.c | 2 | ||||
-rw-r--r-- | src/battle/anim/dark.c | 2 | ||||
-rw-r--r-- | src/battle/anim/drum.c | 2 | ||||
-rw-r--r-- | src/battle/anim/fight.c | 51 | ||||
-rw-r--r-- | src/battle/anim/fire_2.c | 67 | ||||
-rw-r--r-- | src/battle/anim/flying_hearts.c | 2 | ||||
-rw-r--r-- | src/battle/anim/flying_path.c | 14 | ||||
-rw-r--r-- | src/battle/anim/homing.c | 2 | ||||
-rw-r--r-- | src/battle/anim/money.c | 2 | ||||
-rw-r--r-- | src/battle/anim/orbit_fast.c | 17 | ||||
-rw-r--r-- | src/battle/anim/orbit_scatter.c | 14 | ||||
-rw-r--r-- | src/battle/anim/orbs.c | 2 | ||||
-rw-r--r-- | src/battle/anim/poison.c | 18 | ||||
-rw-r--r-- | src/battle/anim/psychic.c | 2 | ||||
-rw-r--r-- | src/battle/anim/rock.c | 2 | ||||
-rw-r--r-- | src/battle/anim/scan.c | 8 | ||||
-rw-r--r-- | src/battle/anim/seed.c | 27 | ||||
-rw-r--r-- | src/battle/anim/slash.c | 2 | ||||
-rw-r--r-- | src/battle/anim/slice.c | 20 | ||||
-rw-r--r-- | src/battle/anim/sonic.c | 34 | ||||
-rw-r--r-- | src/battle/anim/unused_8.c | 2 | ||||
-rw-r--r-- | src/battle/battle_anim_80A7E7C.c | 45 | ||||
-rw-r--r-- | src/battle/pokeball.c | 6 | ||||
-rw-r--r-- | src/battle_tower.c (renamed from src/field/battle_tower.c) | 8 | ||||
-rw-r--r-- | src/berry.c (renamed from src/field/berry.c) | 0 | ||||
-rw-r--r-- | src/berry_blender.c (renamed from src/scene/berry_blender.c) | 0 | ||||
-rw-r--r-- | src/berry_tag_screen.c (renamed from src/field/berry_tag_screen.c) | 0 | ||||
-rw-r--r-- | src/bike.c (renamed from src/field/bike.c) | 0 | ||||
-rw-r--r-- | src/birch_pc.c (renamed from src/field/birch_pc.c) | 0 | ||||
-rw-r--r-- | src/blend_palette.c (renamed from src/engine/blend_palette.c) | 0 | ||||
-rw-r--r-- | src/braille_puzzles.c (renamed from src/field/braille_puzzles.c) | 0 | ||||
-rw-r--r-- | src/cable_car.c (renamed from src/scene/cable_car.c) | 0 | ||||
-rw-r--r-- | src/cable_car_util.c (renamed from src/engine/cable_car_util.c) | 0 | ||||
-rw-r--r-- | src/cable_club.c (renamed from src/engine/cable_club.c) | 0 | ||||
-rw-r--r-- | src/choose_party.c (renamed from src/field/choose_party.c) | 0 | ||||
-rw-r--r-- | src/clear_save_data_menu.c (renamed from src/engine/clear_save_data_menu.c) | 0 | ||||
-rw-r--r-- | src/clock.c (renamed from src/engine/clock.c) | 0 | ||||
-rw-r--r-- | src/coins.c (renamed from src/field/coins.c) | 0 | ||||
-rw-r--r-- | src/contest_painting.c (renamed from src/scene/contest_painting.c) | 11 | ||||
-rw-r--r-- | src/coord_event_weather.c (renamed from src/field/coord_event_weather.c) | 0 | ||||
-rw-r--r-- | src/credits.c (renamed from src/scene/credits.c) | 4 | ||||
-rw-r--r-- | src/cute_sketch.c (renamed from src/scene/cute_sketch.c) | 0 | ||||
-rw-r--r-- | src/daycare.c (renamed from src/field/daycare.c) | 2 | ||||
-rw-r--r-- | src/debug/tomomichi_debug_menu.c | 4497 | ||||
-rw-r--r-- | src/decompress.c (renamed from src/engine/decompress.c) | 0 | ||||
-rw-r--r-- | src/decoration.c (renamed from src/field/decoration.c) | 4 | ||||
-rw-r--r-- | src/decoration_inventory.c (renamed from src/field/decoration_inventory.c) | 0 | ||||
-rw-r--r-- | src/dewford_trend.c (renamed from src/field/dewford_trend.c) | 0 | ||||
-rw-r--r-- | src/diploma.c (renamed from src/field/diploma.c) | 0 | ||||
-rw-r--r-- | src/egg_hatch.c (renamed from src/scene/egg_hatch.c) | 0 | ||||
-rw-r--r-- | src/event_data.c (renamed from src/field/event_data.c) | 0 | ||||
-rw-r--r-- | src/event_object_movement.c (renamed from src/field/event_object_movement.c) | 22 | ||||
-rw-r--r-- | src/evolution_graphics.c (renamed from src/scene/evolution_graphics.c) | 0 | ||||
-rw-r--r-- | src/evolution_scene.c (renamed from src/scene/evolution_scene.c) | 0 | ||||
-rw-r--r-- | src/field_camera.c (renamed from src/field/field_camera.c) | 0 | ||||
-rw-r--r-- | src/field_control_avatar.c (renamed from src/field/field_control_avatar.c) | 0 | ||||
-rw-r--r-- | src/field_door.c (renamed from src/field/field_door.c) | 0 | ||||
-rw-r--r-- | src/field_effect.c (renamed from src/field/field_effect.c) | 0 | ||||
-rw-r--r-- | src/field_effect_helpers.c (renamed from src/field/field_effect_helpers.c) | 0 | ||||
-rw-r--r-- | src/field_fadetransition.c (renamed from src/field/field_fadetransition.c) | 0 | ||||
-rw-r--r-- | src/field_message_box.c (renamed from src/field/field_message_box.c) | 0 | ||||
-rw-r--r-- | src/field_player_avatar.c (renamed from src/field/field_player_avatar.c) | 0 | ||||
-rw-r--r-- | src/field_poison.c (renamed from src/field/field_poison.c) | 0 | ||||
-rw-r--r-- | src/field_region_map.c (renamed from src/field/field_region_map.c) | 0 | ||||
-rw-r--r-- | src/field_screen_effect.c (renamed from src/field/field_screen_effect.c) | 0 | ||||
-rw-r--r-- | src/field_special_scene.c (renamed from src/field/field_special_scene.c) | 0 | ||||
-rw-r--r-- | src/field_specials.c (renamed from src/field/field_specials.c) | 0 | ||||
-rw-r--r-- | src/field_tasks.c (renamed from src/field/field_tasks.c) | 0 | ||||
-rw-r--r-- | src/field_weather.c (renamed from src/field/field_weather.c) | 0 | ||||
-rw-r--r-- | src/field_weather_effects.c (renamed from src/field/field_weather_effects.c) | 66 | ||||
-rw-r--r-- | src/fieldmap.c (renamed from src/field/fieldmap.c) | 0 | ||||
-rw-r--r-- | src/fldeff_berrytree.c (renamed from src/field/fldeff_berrytree.c) | 0 | ||||
-rw-r--r-- | src/fldeff_cut.c (renamed from src/field/fldeff_cut.c) | 0 | ||||
-rw-r--r-- | src/fldeff_decoration.c (renamed from src/field/fldeff_decoration.c) | 0 | ||||
-rw-r--r-- | src/fldeff_escalator.c (renamed from src/field/fldeff_escalator.c) | 0 | ||||
-rw-r--r-- | src/fldeff_flash.c (renamed from src/field/fldeff_flash.c) | 0 | ||||
-rw-r--r-- | src/fldeff_poison.c (renamed from src/field/fldeff_poison.c) | 0 | ||||
-rw-r--r-- | src/fldeff_recordmixing.c (renamed from src/field/fldeff_recordmixing.c) | 0 | ||||
-rw-r--r-- | src/fldeff_secret_base_pc.c (renamed from src/field/fldeff_secret_base_pc.c) | 0 | ||||
-rw-r--r-- | src/fldeff_secretpower.c (renamed from src/field/fldeff_secretpower.c) | 0 | ||||
-rw-r--r-- | src/fldeff_softboiled.c (renamed from src/field/fldeff_softboiled.c) | 0 | ||||
-rw-r--r-- | src/fldeff_strength.c (renamed from src/field/fldeff_strength.c) | 0 | ||||
-rw-r--r-- | src/fldeff_sweetscent.c (renamed from src/field/fldeff_sweetscent.c) | 0 | ||||
-rw-r--r-- | src/fldeff_teleport.c (renamed from src/field/fldeff_teleport.c) | 0 | ||||
-rw-r--r-- | src/hall_of_fame.c (renamed from src/scene/hall_of_fame.c) | 0 | ||||
-rw-r--r-- | src/heal_location.c (renamed from src/field/heal_location.c) | 0 | ||||
-rw-r--r-- | src/hof_pc.c (renamed from src/field/hof_pc.c) | 0 | ||||
-rw-r--r-- | src/intro.c (renamed from src/scene/intro.c) | 0 | ||||
-rw-r--r-- | src/intro_credits_graphics.c (renamed from src/scene/intro_credits_graphics.c) | 0 | ||||
-rw-r--r-- | src/item.c (renamed from src/field/item.c) | 8 | ||||
-rw-r--r-- | src/item_menu.c (renamed from src/field/item_menu.c) | 0 | ||||
-rw-r--r-- | src/item_use.c (renamed from src/field/item_use.c) | 0 | ||||
-rw-r--r-- | src/landmark.c (renamed from src/field/landmark.c) | 0 | ||||
-rw-r--r-- | src/learn_move.c (renamed from src/pokemon/learn_move.c) | 0 | ||||
-rw-r--r-- | src/link.c (renamed from src/engine/link.c) | 0 | ||||
-rw-r--r-- | src/load_save.c (renamed from src/engine/load_save.c) | 0 | ||||
-rw-r--r-- | src/lottery_corner.c (renamed from src/field/lottery_corner.c) | 0 | ||||
-rw-r--r-- | src/mail.c (renamed from src/pokemon/mail.c) | 0 | ||||
-rw-r--r-- | src/mail_data.c (renamed from src/pokemon/mail_data.c) | 0 | ||||
-rw-r--r-- | src/main.c (renamed from src/engine/main.c) | 0 | ||||
-rw-r--r-- | src/main_menu.c (renamed from src/engine/main_menu.c) | 0 | ||||
-rw-r--r-- | src/map_name_popup.c (renamed from src/field/map_name_popup.c) | 0 | ||||
-rw-r--r-- | src/map_obj_lock.c (renamed from src/field/map_obj_lock.c) | 0 | ||||
-rw-r--r-- | src/mauville_man.c (renamed from src/field/mauville_man.c) | 0 | ||||
-rw-r--r-- | src/menu.c (renamed from src/engine/menu.c) | 0 | ||||
-rw-r--r-- | src/menu_cursor.c (renamed from src/engine/menu_cursor.c) | 4 | ||||
-rw-r--r-- | src/menu_helpers.c (renamed from src/field/menu_helpers.c) | 0 | ||||
-rw-r--r-- | src/metatile_behavior.c (renamed from src/field/metatile_behavior.c) | 0 | ||||
-rw-r--r-- | src/mon_markings.c (renamed from src/pokemon/mon_markings.c) | 0 | ||||
-rw-r--r-- | src/money.c (renamed from src/field/money.c) | 0 | ||||
-rw-r--r-- | src/mystery_event_menu.c (renamed from src/engine/mystery_event_menu.c) | 0 | ||||
-rw-r--r-- | src/mystery_event_msg.c (renamed from src/engine/mystery_event_msg.c) | 0 | ||||
-rw-r--r-- | src/mystery_event_script.c (renamed from src/engine/mystery_event_script.c) | 0 | ||||
-rw-r--r-- | src/name_string_util.c (renamed from src/engine/name_string_util.c) | 0 | ||||
-rw-r--r-- | src/naming_screen.c (renamed from src/engine/naming_screen.c) | 0 | ||||
-rw-r--r-- | src/new_game.c (renamed from src/scene/new_game.c) | 2 | ||||
-rw-r--r-- | src/option_menu.c (renamed from src/engine/option_menu.c) | 0 | ||||
-rw-r--r-- | src/overworld.c (renamed from src/field/overworld.c) | 0 | ||||
-rw-r--r-- | src/palette.c (renamed from src/engine/palette.c) | 0 | ||||
-rw-r--r-- | src/party_menu.c (renamed from src/field/party_menu.c) | 0 | ||||
-rw-r--r-- | src/pc_screen_effect.c (renamed from src/field/pc_screen_effect.c) | 0 | ||||
-rw-r--r-- | src/play_time.c (renamed from src/engine/play_time.c) | 0 | ||||
-rw-r--r-- | src/player_pc.c (renamed from src/field/player_pc.c) | 0 | ||||
-rw-r--r-- | src/pokeblock.c (renamed from src/field/pokeblock.c) | 0 | ||||
-rw-r--r-- | src/pokeblock_feed.c (renamed from src/pokemon/pokeblock_feed.c) | 0 | ||||
-rw-r--r-- | src/pokedex.c (renamed from src/pokemon/pokedex.c) | 6 | ||||
-rw-r--r-- | src/pokedex_area_screen.c (renamed from src/field/pokedex_area_screen.c) | 0 | ||||
-rw-r--r-- | src/pokedex_cry_screen.c (renamed from src/pokemon/pokedex_cry_screen.c) | 0 | ||||
-rw-r--r-- | src/pokemon_1.c (renamed from src/pokemon/pokemon_1.c) | 18 | ||||
-rw-r--r-- | src/pokemon_2.c (renamed from src/pokemon/pokemon_2.c) | 0 | ||||
-rw-r--r-- | src/pokemon_3.c (renamed from src/pokemon/pokemon_3.c) | 0 | ||||
-rw-r--r-- | src/pokemon_icon.c (renamed from src/pokemon/pokemon_icon.c) | 0 | ||||
-rw-r--r-- | src/pokemon_item_effect.c (renamed from src/pokemon/pokemon_item_effect.c) | 0 | ||||
-rw-r--r-- | src/pokemon_menu.c (renamed from src/pokemon/pokemon_menu.c) | 0 | ||||
-rw-r--r-- | src/pokemon_size_record.c (renamed from src/pokemon/pokemon_size_record.c) | 0 | ||||
-rw-r--r-- | src/pokemon_storage_system.c (renamed from src/pokemon/pokemon_storage_system.c) | 0 | ||||
-rw-r--r-- | src/pokemon_storage_system_2.c (renamed from src/pokemon/pokemon_storage_system_2.c) | 0 | ||||
-rw-r--r-- | src/pokemon_storage_system_3.c (renamed from src/pokemon/pokemon_storage_system_3.c) | 0 | ||||
-rw-r--r-- | src/pokemon_storage_system_4.c (renamed from src/pokemon/pokemon_storage_system_4.c) | 0 | ||||
-rw-r--r-- | src/pokemon_storage_system_5.c (renamed from src/pokemon/pokemon_storage_system_5.c) | 0 | ||||
-rw-r--r-- | src/pokemon_summary_screen.c (renamed from src/pokemon/pokemon_summary_screen.c) | 8 | ||||
-rw-r--r-- | src/pokenav.c (renamed from src/field/pokenav.c) | 0 | ||||
-rw-r--r-- | src/random.c (renamed from src/engine/random.c) | 0 | ||||
-rw-r--r-- | src/record_mixing.c (renamed from src/engine/record_mixing.c) | 0 | ||||
-rw-r--r-- | src/region_map.c (renamed from src/field/region_map.c) | 6 | ||||
-rw-r--r-- | src/reset_rtc_screen.c (renamed from src/engine/reset_rtc_screen.c) | 0 | ||||
-rw-r--r-- | src/roamer.c (renamed from src/field/roamer.c) | 0 | ||||
-rw-r--r-- | src/rom_8077ABC.c | 63 | ||||
-rw-r--r-- | src/rotating_gate.c (renamed from src/field/rotating_gate.c) | 0 | ||||
-rw-r--r-- | src/rtc.c (renamed from src/engine/rtc.c) | 0 | ||||
-rw-r--r-- | src/safari_zone.c (renamed from src/field/safari_zone.c) | 0 | ||||
-rw-r--r-- | src/save.c (renamed from src/engine/save.c) | 0 | ||||
-rw-r--r-- | src/save_failed_screen.c (renamed from src/engine/save_failed_screen.c) | 0 | ||||
-rw-r--r-- | src/save_menu_util.c (renamed from src/engine/save_menu_util.c) | 0 | ||||
-rw-r--r-- | src/scrcmd.c (renamed from src/field/scrcmd.c) | 0 | ||||
-rw-r--r-- | src/script.c (renamed from src/engine/script.c) | 0 | ||||
-rw-r--r-- | src/script_menu.c (renamed from src/field/script_menu.c) | 0 | ||||
-rw-r--r-- | src/script_movement.c (renamed from src/field/script_movement.c) | 0 | ||||
-rw-r--r-- | src/secret_base.c (renamed from src/field/secret_base.c) | 0 | ||||
-rw-r--r-- | src/shop.c (renamed from src/field/shop.c) | 0 | ||||
-rw-r--r-- | src/slot_machine.c (renamed from src/field/slot_machine.c) | 0 | ||||
-rw-r--r-- | src/sound.c (renamed from src/engine/sound.c) | 0 | ||||
-rw-r--r-- | src/sprite.c (renamed from src/engine/sprite.c) | 0 | ||||
-rw-r--r-- | src/start_menu.c (renamed from src/field/start_menu.c) | 0 | ||||
-rw-r--r-- | src/starter_choose.c (renamed from src/field/starter_choose.c) | 0 | ||||
-rw-r--r-- | src/string_util.c (renamed from src/engine/string_util.c) | 0 | ||||
-rw-r--r-- | src/task.c (renamed from src/engine/task.c) | 0 | ||||
-rw-r--r-- | src/text.c (renamed from src/engine/text.c) | 12 | ||||
-rw-r--r-- | src/text_window.c (renamed from src/engine/text_window.c) | 0 | ||||
-rw-r--r-- | src/tileset_anim.c (renamed from src/engine/tileset_anim.c) | 0 | ||||
-rw-r--r-- | src/time_events.c (renamed from src/engine/time_events.c) | 0 | ||||
-rw-r--r-- | src/title_screen.c (renamed from src/scene/title_screen.c) | 0 | ||||
-rw-r--r-- | src/trade.c (renamed from src/engine/trade.c) | 0 | ||||
-rw-r--r-- | src/trader.c (renamed from src/field/trader.c) | 0 | ||||
-rw-r--r-- | src/trainer_card.c (renamed from src/engine/trainer_card.c) | 0 | ||||
-rw-r--r-- | src/trainer_see.c (renamed from src/field/trainer_see.c) | 0 | ||||
-rw-r--r-- | src/trig.c (renamed from src/engine/trig.c) | 0 | ||||
-rw-r--r-- | src/tv.c (renamed from src/field/tv.c) | 0 | ||||
-rw-r--r-- | src/use_pokeblock.c (renamed from src/field/use_pokeblock.c) | 0 | ||||
-rw-r--r-- | src/util.c (renamed from src/engine/util.c) | 0 | ||||
-rw-r--r-- | src/wallclock.c (renamed from src/field/wallclock.c) | 0 | ||||
-rw-r--r-- | src/wild_encounter.c (renamed from src/field/wild_encounter.c) | 0 |
185 files changed, 4847 insertions, 280 deletions
diff --git a/src/field/bard_music.c b/src/bard_music.c index 5c48749cf..4518cf09b 100644 --- a/src/field/bard_music.c +++ b/src/bard_music.c @@ -141,9 +141,9 @@ static const u32 sBardSoundLengthDeltas[] = { }; #if ENGLISH -#include "../src/data/bard_music_en.h" +#include "data/bard_music_en.h" #elif GERMAN -#include "../src/data/bard_music_de.h" +#include "data/bard_music_de.h" #endif // ENGLISH/GERMAN static const struct BardSound (*const gBardMusicTable[])[6] = { diff --git a/src/battle/anim/bubble.c b/src/battle/anim/bubble.c index 1252c1315..d6ec06be9 100644 --- a/src/battle/anim/bubble.c +++ b/src/battle/anim/bubble.c @@ -97,6 +97,6 @@ static void sub_80D3370(struct Sprite *sprite) static void sub_80D3398(struct Sprite *sprite) { sprite->data[0] = 10; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, move_anim_8074EE0); } diff --git a/src/battle/anim/bug.c b/src/battle/anim/bug.c index e12f55a8b..d57a1046e 100644 --- a/src/battle/anim/bug.c +++ b/src/battle/anim/bug.c @@ -13,7 +13,7 @@ static void sub_80DCA38(struct Sprite *sprite); static void sub_80DCAEC(struct Sprite *sprite); static void sub_80DCB5C(struct Sprite *sprite); static void sub_80DCBB4(struct Sprite *sprite); -void sub_80DCD78(struct Sprite *sprite); +static void AnimMissileArcStep(struct Sprite *sprite); // used in Move_MEGAHORN void sub_80DC824(struct Sprite *sprite) @@ -174,9 +174,15 @@ static void sub_80DCBB4(struct Sprite *sprite) DestroyAnimSprite(sprite); } -// used in 3 moves: -// Move_POISON_STING, Move_TWINEEDLE, Move_SPIKE_CANNON -void sub_80DCBCC(struct Sprite *sprite) +// Translates a stinger sprite linearly to a destination location. The sprite is +// initially rotated so that it appears to be traveling in a straight line. +// Used by Move_POISON_STING, Move_TWINEEDLE, Move_SPIKE_CANNON +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: target x pixel offset +// arg 3: target y pixel offset +// arg 4: duration +void AnimTranslateStinger(struct Sprite *sprite) { s16 lVarX, lVarY; u16 rot; @@ -216,7 +222,7 @@ void sub_80DCBCC(struct Sprite *sprite) lVarX = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; lVarY = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; - rot = sub_80790F0(lVarX - sprite->pos1.x, lVarY - sprite->pos1.y); + rot = ArcTan2Neg(lVarX - sprite->pos1.x, lVarY - sprite->pos1.y); rot += 0xC000; sub_8078FDC(sprite, FALSE, 0x100, 0x100, rot); @@ -230,7 +236,14 @@ void sub_80DCBCC(struct Sprite *sprite) // used in 2 moves: // Move_PIN_MISSILE, Move_ICICLE_SPEAR -void sub_80DCCFC(struct Sprite *sprite) +// Rotates sprite and moves it in an arc, so that it appears like a missle or arrow traveling. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: target x pixel offset +// arg 3: target y pixel offset +// arg 4: duration +// arg 5: wave amplitude +void AnimMissileArc(struct Sprite *sprite) { InitAnimSpritePos(sprite, 1); @@ -241,13 +254,13 @@ void sub_80DCCFC(struct Sprite *sprite) sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); - sprite->callback = sub_80DCD78; + sprite->callback = AnimMissileArcStep; sprite->invisible = TRUE; } -void sub_80DCD78(struct Sprite *sprite) +static void AnimMissileArcStep(struct Sprite *sprite) { sprite->invisible = FALSE; @@ -273,10 +286,10 @@ void sub_80DCD78(struct Sprite *sprite) if (!TranslateAnimSpriteLinearAndSine(sprite)) { - u16 rot = sub_80790F0(sprite->pos1.x + sprite->pos2.x - x2, + u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - x2, sprite->pos1.y + sprite->pos2.y - y2); - rot += 0xC000; - sub_8078FDC(sprite, FALSE, 0x100, 0x100, rot); + rotation += 0xC000; + sub_8078FDC(sprite, FALSE, 0x100, 0x100, rotation); for (i = 0; i < 8; i++) data[i] = tempData[i]; diff --git a/src/battle/anim/cutter.c b/src/battle/anim/cutter.c index 0f23fed82..fed3598fc 100644 --- a/src/battle/anim/cutter.c +++ b/src/battle/anim/cutter.c @@ -43,7 +43,7 @@ void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) } sprite->data[5] = gBattleAnimArgs[5]; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) { sprite->data[0] = 1; diff --git a/src/battle/anim/dark.c b/src/battle/anim/dark.c index aaf8507c6..055cf5802 100644 --- a/src/battle/anim/dark.c +++ b/src/battle/anim/dark.c @@ -238,7 +238,7 @@ void sub_80DFFD0(struct Sprite *sprite) sprite->data[4] = sprite->pos1.y + 12; sprite->data[5] = -12; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_80E00D0; } diff --git a/src/battle/anim/drum.c b/src/battle/anim/drum.c index 6306778ae..7937d040a 100644 --- a/src/battle/anim/drum.c +++ b/src/battle/anim/drum.c @@ -27,6 +27,6 @@ void sub_80CEDF0(struct Sprite* sprite) sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2) + a; sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) + 8; sprite->data[0] = 8; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/fight.c b/src/battle/anim/fight.c index a7c25de49..0f46187f2 100644 --- a/src/battle/anim/fight.c +++ b/src/battle/anim/fight.c @@ -29,9 +29,9 @@ extern struct SpriteTemplate gBasicHitSplatSpriteTemplate; static void sub_80D927C(struct Sprite *sprite); static void sub_80D9328(struct Sprite *sprite); static void sub_80D9404(struct Sprite *sprite); -static void sub_80D9474(struct Sprite *sprite); -static void sub_80D94CC(struct Sprite *sprite); -static void sub_80D9524(struct Sprite *sprite); +static void AnimSpinningKickOrPunchFinish(struct Sprite *sprite); +static void AnimStompFootStep(struct Sprite *sprite); +static void AnimStompFootEnd(struct Sprite *sprite); static void sub_80D9640(struct Sprite *sprite); static void sub_80D97A0(struct Sprite *sprite); static void sub_80D986C(struct Sprite *sprite); @@ -44,7 +44,7 @@ void sub_080B08A0(struct Sprite *sprite) sub_807867C(sprite, gBattleAnimArgs[0]); sprite->pos1.y += gBattleAnimArgs[1]; sprite->data[0] = 15; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -72,7 +72,14 @@ void sub_80D9078(struct Sprite *sprite) sub_80D902C(sprite); } -void sub_80D90A4(struct Sprite *sprite) +// Displays a basic fist or foot sprite for a given duration. +// Used by many fighting moves (and elemental "punch" moves). +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: duration +// arg 3: ? (todo: related to initial pixel offsets) +// arg 4: anim num +void AnimBasicFistOrFoot(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[4]); @@ -82,7 +89,7 @@ void sub_80D90A4(struct Sprite *sprite) sub_8078764(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } @@ -225,35 +232,45 @@ static void sub_80D9404(struct Sprite *sprite) } } -void sub_80D943C(struct Sprite *sprite) +// Animates the spinning, shrinking kick or punch, which then +// reappears at full size. Used by moves such as MOVE_MEGA_PUNCH and MOVE_MEGA_KICK. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: anim num +// arg 3: spin duration +void AnimSpinningKickOrPunch(struct Sprite *sprite) { sub_8078764(sprite, 1); StartSpriteAnim(sprite, gBattleAnimArgs[2]); sprite->data[0] = gBattleAnimArgs[3]; - sprite->callback = sub_80782D8; - StoreSpriteCallbackInData(sprite, sub_80D9474); + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData(sprite, AnimSpinningKickOrPunchFinish); } -static void sub_80D9474(struct Sprite *sprite) +static void AnimSpinningKickOrPunchFinish(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, 0); sprite->affineAnimPaused = 1; sprite->data[0] = 20; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } -void sub_80D94A8(struct Sprite *sprite) +// Animates MOVE_STOMP's foot that slides downward. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: initial wait duration +void AnimStompFoot(struct Sprite *sprite) { sub_8078764(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; - sprite->callback = sub_80D94CC; + sprite->callback = AnimStompFootStep; } -static void sub_80D94CC(struct Sprite *sprite) +static void AnimStompFootStep(struct Sprite *sprite) { if (--sprite->data[0] == -1) { @@ -262,15 +279,15 @@ static void sub_80D94CC(struct Sprite *sprite) sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); sprite->callback = StartTranslateAnimSpriteByDeltas; - StoreSpriteCallbackInData(sprite, sub_80D9524); + StoreSpriteCallbackInData(sprite, AnimStompFootEnd); } } -static void sub_80D9524(struct Sprite *sprite) +static void AnimStompFootEnd(struct Sprite *sprite) { sprite->data[0] = 15; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/fire_2.c b/src/battle/anim/fire_2.c index fe63fcff1..f9c9b6d3b 100644 --- a/src/battle/anim/fire_2.c +++ b/src/battle/anim/fire_2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "battle.h" #include "battle_anim.h" #include "heated_rock.h" #include "rom_8077ABC.h" @@ -11,24 +12,34 @@ extern u8 gAnimBankTarget; extern struct SpriteTemplate gSpriteTemplate_83D96C4; extern s16 gHeatedRockCoords[7][2]; -void sub_80D5254(struct Sprite *); -void sub_80D5348(struct Sprite *); -void sub_80D52AC(struct Sprite *); -void sub_80D5324(struct Sprite *); +static void AnimFireRingStep1(struct Sprite *); +static void UpdateFireRingCircleOffset(struct Sprite *); +static void AnimFireRingStep2(struct Sprite *); +static void AnimFireRingStep3(struct Sprite *); void sub_80D53F4(struct Sprite *); void sub_80D541C(struct Sprite *); void sub_80D54E0(u8 taskId); void sub_80D57C4(u8 spriteId, u8 taskId, u8 a3); -void sub_80D51A8(struct Sprite *sprite) + +// Animates the secondary effect of MOVE_EMBER, where the flames grow and slide +// horizontally a bit. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: target x pixel offset +// arg 3: target y pixel offset +// arg 4: duration +// arg 5: ? (todo: something related to which mon the pixel offsets are based on) +// arg 6: ? (todo: something related to which mon the pixel offsets are based on) +void AnimEmberFlare(struct Sprite *sprite) { if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget) - && (gAnimBankAttacker == GetBankByIdentity(2) - || gAnimBankAttacker == GetBankByIdentity(3))) + && (gAnimBankAttacker == GetBankByIdentity(IDENTITY_PLAYER_MON2) + || gAnimBankAttacker == GetBankByIdentity(IDENTITY_OPPONENT_MON2))) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->callback = sub_8079534; - sub_8079534(sprite); + sprite->callback(sprite); } struct Sprite *sub_80D5210(struct Sprite *sprite) @@ -40,19 +51,26 @@ struct Sprite *sub_80D5210(struct Sprite *sprite) return sprite; } -void sub_80D522C(struct Sprite *sprite) +// Animates the a fire sprite in the first-half of the MOVE_FIRE_BLAST +// animation. The fire sprite first moves in a circle around the mon, +// and then it is translated towards the target mon, while still rotating. +// Lastly, it moves in a circle around the target mon. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: initial wave offset +void AnimFireRing(struct Sprite *sprite) { InitAnimSpritePos(sprite, 1); sprite->data[7] = gBattleAnimArgs[2]; sprite->data[0] = 0; - sprite->callback = sub_80D5254; + sprite->callback = AnimFireRingStep1; } -void sub_80D5254(struct Sprite *sprite) +static void AnimFireRingStep1(struct Sprite *sprite) { - sub_80D5348(sprite); + UpdateFireRingCircleOffset(sprite); if (++sprite->data[0] == 0x12) { @@ -64,11 +82,11 @@ void sub_80D5254(struct Sprite *sprite) InitAnimSpriteTranslationDeltas(sprite); - sprite->callback = sub_80D52AC; + sprite->callback = AnimFireRingStep2; } } -void sub_80D52AC(struct Sprite *sprite) +static void AnimFireRingStep2(struct Sprite *sprite) { if (TranslateAnimSpriteByDeltas(sprite)) { @@ -79,8 +97,8 @@ void sub_80D52AC(struct Sprite *sprite) sprite->pos2.y = 0; sprite->pos2.x = 0; - sprite->callback = sub_80D5324; - sub_80D5324(sprite); + sprite->callback = AnimFireRingStep3; + sprite->callback(sprite); } else { @@ -91,15 +109,15 @@ void sub_80D52AC(struct Sprite *sprite) } } -void sub_80D5324(struct Sprite *sprite) +static void AnimFireRingStep3(struct Sprite *sprite) { - sub_80D5348(sprite); + UpdateFireRingCircleOffset(sprite); if (++sprite->data[0] == 0x1F) DestroyAnimSprite(sprite); } -void sub_80D5348(struct Sprite *sprite) +static void UpdateFireRingCircleOffset(struct Sprite *sprite) { sprite->pos2.x = Sin(sprite->data[7], 28); sprite->pos2.y = Cos(sprite->data[7], 28); @@ -107,7 +125,12 @@ void sub_80D5348(struct Sprite *sprite) sprite->data[7] = (sprite->data[7] + 20) & 0xFF; } -void sub_80D5374(struct Sprite *sprite) +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: duration +// arg 3: x delta +// arg 4: y delta +void AnimFireCross(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -118,7 +141,7 @@ void sub_80D5374(struct Sprite *sprite) StoreSpriteCallbackInData(sprite, DestroyAnimSprite); - sprite->callback = sub_8078364; + sprite->callback = TranslateSpriteOverDuration; } void sub_80D53B4(struct Sprite *sprite) @@ -129,7 +152,7 @@ void sub_80D53B4(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[3]; sprite->invisible = TRUE; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80D53F4); } diff --git a/src/battle/anim/flying_hearts.c b/src/battle/anim/flying_hearts.c index d2d22602a..f20416535 100644 --- a/src/battle/anim/flying_hearts.c +++ b/src/battle/anim/flying_hearts.c @@ -19,7 +19,7 @@ void sub_80D2064(struct Sprite* sprite) sprite->pos1.y = 0xA0; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[1]; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80D2094); } diff --git a/src/battle/anim/flying_path.c b/src/battle/anim/flying_path.c index 559f617c6..70c418afc 100644 --- a/src/battle/anim/flying_path.c +++ b/src/battle/anim/flying_path.c @@ -40,7 +40,7 @@ void sub_80CBDF4(u8 taskId) gSprites[task->data[2]].data[3] = task->data[9]; gSprites[task->data[2]].data[4] = task->data[7] + (task->data[11] / 2 + 10) * task->data[5]; gSprites[task->data[2]].data[5] = sub_80CC338(&gSprites[task->data[2]]); - sub_80786EC(&gSprites[task->data[2]]); + InitAnimSpriteTranslationOverDuration(&gSprites[task->data[2]]); task->func = sub_80CBF5C; } @@ -98,7 +98,7 @@ void sub_80CBF5C(u8 taskId) task->data[3] = a; sprite->subpriority = task->data[4]; StartSpriteAnim(sprite, task->data[3]); - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); task->data[0]++; break; case 2: @@ -123,7 +123,7 @@ void sub_80CBF5C(u8 taskId) task->data[3] = 2; sprite->subpriority = task->data[4]; StartSpriteAnim(sprite, task->data[3]); - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); task->data[0]++; break; case 5: @@ -141,7 +141,7 @@ void sub_80CBF5C(u8 taskId) task->data[3] = 3; sprite->subpriority = task->data[4]; StartSpriteAnim(sprite, task->data[3]); - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); task->data[0]++; break; case 6: @@ -167,7 +167,7 @@ void sub_80CBF5C(u8 taskId) task->data[3] = 4; sprite->subpriority = task->data[4]; StartSpriteAnim(sprite, task->data[3]); - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); task->data[0]++; break; case 9: @@ -184,7 +184,7 @@ void sub_80CBF5C(u8 taskId) task->data[3] = 5; sprite->subpriority = task->data[4]; StartSpriteAnim(sprite, task->data[3]); - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); task->data[0]++; break; case 10: @@ -215,7 +215,7 @@ void sub_80CBF5C(u8 taskId) task->data[3] = 6; sprite->subpriority = task->data[4]; StartSpriteAnim(sprite, task->data[3]); - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); task->data[0]++; break; } diff --git a/src/battle/anim/homing.c b/src/battle/anim/homing.c index 6fb4a76d8..208d3b831 100644 --- a/src/battle/anim/homing.c +++ b/src/battle/anim/homing.c @@ -60,7 +60,7 @@ void sub_80CC6CC(struct Sprite* sprite) sprite->data[2] = y * 16; sprite->data[3] = (sprite->data[5] - sprite->pos1.x) * 16 / gBattleAnimArgs[4]; sprite->data[4] = (sprite->data[6] - sprite->pos1.y) * 16 / gBattleAnimArgs[4]; - c = sub_80790F0(sprite->data[5] - x, sprite->data[6] - y); + c = ArcTan2Neg(sprite->data[5] - x, sprite->data[6] - y); if (IsContest()) c -= 0x8000; diff --git a/src/battle/anim/money.c b/src/battle/anim/money.c index 0ee381e13..c3d130750 100644 --- a/src/battle/anim/money.c +++ b/src/battle/anim/money.c @@ -26,7 +26,7 @@ void sub_80CFE9C(struct Sprite* sprite) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; r6 += gBattleAnimArgs[2]; - var = sub_80790F0(r6 - sprite->pos1.x, r7 - sprite->pos1.y); + var = ArcTan2Neg(r6 - sprite->pos1.x, r7 - sprite->pos1.y); var += 0xC000; sub_8078FDC(sprite, 0, 0x100, 0x100, var); sprite->data[0] = gBattleAnimArgs[4]; diff --git a/src/battle/anim/orbit_fast.c b/src/battle/anim/orbit_fast.c index 92b67672b..71303b03c 100644 --- a/src/battle/anim/orbit_fast.c +++ b/src/battle/anim/orbit_fast.c @@ -8,12 +8,13 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -static void sub_80D2704(struct Sprite* sprite); +static void AnimOrbitFastStep(struct Sprite* sprite); -// orbit_fast (a quickly moving fast circular motion of a sprite around an object.) -// Used by Hidden Power. - -void sub_80D26A4(struct Sprite* sprite) +// Orbits a sphere in an ellipse around the mon. +// Used by MOVE_HIDDEN_POWER +// arg 0: duration +// arg 1: initial wave offset +void AnimOrbitFast(struct Sprite* sprite) { sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); @@ -21,11 +22,11 @@ void sub_80D26A4(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; sprite->data[7] = sub_8079E90(gAnimBankAttacker); - sprite->callback = sub_80D2704; - sub_80D2704(sprite); + sprite->callback = AnimOrbitFastStep; + sprite->callback(sprite); } -void sub_80D2704(struct Sprite* sprite) +static void AnimOrbitFastStep(struct Sprite* sprite) { if ((u16)(sprite->data[1] - 0x40) <= 0x7F) sprite->subpriority = sprite->data[7] + 1; diff --git a/src/battle/anim/orbit_scatter.c b/src/battle/anim/orbit_scatter.c index 54c157839..cda09a729 100644 --- a/src/battle/anim/orbit_scatter.c +++ b/src/battle/anim/orbit_scatter.c @@ -8,21 +8,21 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -static void sub_80D2834(struct Sprite* sprite); +static void AnimOrbitScatterStep(struct Sprite* sprite); -// orbit_scatter (scatters the objects associated with the fast orbit from the last file.) -// Used in Hidden Power. - -void sub_80D27E0(struct Sprite* sprite) +// Moves orbs away from the mon, based on where they are in their orbit. +// Used in MOVE_HIDDEN_POWER. +// arg 0: initial wave offset +void AnimOrbitScatter(struct Sprite* sprite) { sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2); sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3); sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[1] = Cos(gBattleAnimArgs[0], 7); - sprite->callback = sub_80D2834; + sprite->callback = AnimOrbitScatterStep; } -void sub_80D2834(struct Sprite* sprite) +static void AnimOrbitScatterStep(struct Sprite* sprite) { sprite->pos2.x += sprite->data[0]; sprite->pos2.y += sprite->data[1]; diff --git a/src/battle/anim/orbs.c b/src/battle/anim/orbs.c index b965cacb8..6f1bba9c3 100644 --- a/src/battle/anim/orbs.c +++ b/src/battle/anim/orbs.c @@ -99,7 +99,7 @@ void sub_80CA9A8(struct Sprite* sprite) sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2); sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3); sprite->data[5] = gBattleAnimArgs[2]; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_80CA9F8; } diff --git a/src/battle/anim/poison.c b/src/battle/anim/poison.c index 272d99e84..3a7477a57 100644 --- a/src/battle/anim/poison.c +++ b/src/battle/anim/poison.c @@ -10,7 +10,7 @@ extern u8 gAnimBankTarget; void sub_80D9DD4(struct Sprite *sprite); void sub_80D9E78(struct Sprite *sprite); void sub_80D9EE8(struct Sprite *sprite); -void sub_80D9FF0(struct Sprite *sprite); +static void AnimBubbleEffectStep(struct Sprite *sprite); void sub_80D9D70(struct Sprite *sprite) { @@ -24,7 +24,7 @@ void sub_80D9D70(struct Sprite *sprite) sprite->data[4] = GetBankPosition(gAnimBankTarget, 3); sprite->data[5] = -30; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_80D9DD4; } @@ -52,7 +52,7 @@ void sub_80D9DF0(struct Sprite *sprite) sprite->data[4] = l2 + gBattleAnimArgs[5]; sprite->data[5] = -30; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_80D9E78; } @@ -108,7 +108,13 @@ void sub_80D9F14(struct Sprite *sprite) StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } -void sub_80D9F88(struct Sprite *sprite) +// Animates a bubble by rising upward, swaying side to side, and +// enlarging the sprite. This is used as an after-effect by poison-type +// moves, along with MOVE_BUBBLE, and MOVE_BUBBLEBEAM. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: 0 = single-target, 1 = multi-target +void AnimBubbleEffect(struct Sprite *sprite) { if (!gBattleAnimArgs[2]) { @@ -125,10 +131,10 @@ void sub_80D9F88(struct Sprite *sprite) sprite->pos1.y += gBattleAnimArgs[1]; } - sprite->callback = sub_80D9FF0; + sprite->callback = AnimBubbleEffectStep; } -void sub_80D9FF0(struct Sprite *sprite) +static void AnimBubbleEffectStep(struct Sprite *sprite) { sprite->data[0] = (sprite->data[0] + 0xB) & 0xFF; sprite->pos2.x = Sin(sprite->data[0], 4); diff --git a/src/battle/anim/psychic.c b/src/battle/anim/psychic.c index b108c496a..42f396870 100644 --- a/src/battle/anim/psychic.c +++ b/src/battle/anim/psychic.c @@ -522,7 +522,7 @@ static void sub_80DC1FC(u8 taskId) gSprites[spriteId].data[4] = task->data[14]; gSprites[spriteId].data[5] = task->data[10]; - sub_80786EC(&gSprites[spriteId]); + InitAnimSpriteTranslationOverDuration(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], task->data[2] & 3); } diff --git a/src/battle/anim/rock.c b/src/battle/anim/rock.c index 1d1772b1b..6fbe065b8 100644 --- a/src/battle/anim/rock.c +++ b/src/battle/anim/rock.c @@ -446,7 +446,7 @@ static void sub_80DD774(struct Task *task) gSprites[spriteId].data[5] = -16 - (task->data[1] * 2); gSprites[spriteId].oam.tileNum += var0; - sub_80786EC(&gSprites[spriteId]); + InitAnimSpriteTranslationOverDuration(&gSprites[spriteId]); task->data[11]++; } diff --git a/src/battle/anim/scan.c b/src/battle/anim/scan.c index e6b85dd5f..403894cc8 100644 --- a/src/battle/anim/scan.c +++ b/src/battle/anim/scan.c @@ -26,7 +26,7 @@ void sub_80CD3E0(struct Sprite* sprite) sprite->pos1.x -= 32; sprite->pos1.y -= 32; sprite->data[0] = 20; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80CD408); } @@ -36,7 +36,7 @@ void sub_80CD408(struct Sprite* sprite) { case 0: sprite->data[0] = 1; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80CD408); break; case 1: @@ -62,7 +62,7 @@ void sub_80CD4B8(struct Sprite* sprite) if ((sprite->data[5] >> 8) == 4) { sprite->data[0] = 10; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80CD4EC); } else @@ -80,7 +80,7 @@ void sub_80CD4EC(struct Sprite* sprite) sprite->data[0] = 3; sprite->data[1] = 0; sprite->data[2] = 0; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80CD5A8); } else diff --git a/src/battle/anim/seed.c b/src/battle/anim/seed.c index e3d4bd3fb..7f8154504 100644 --- a/src/battle/anim/seed.c +++ b/src/battle/anim/seed.c @@ -7,13 +7,18 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -static void sub_80CAB88(struct Sprite* sprite); -static void sub_80CABC0(struct Sprite* sprite); +static void AnimLeechSeedStep(struct Sprite* sprite); +static void AnimLeechSeedSprouts(struct Sprite* sprite); // seed (sprouts a sapling from a seed.) // Used by Leech Seed. - -void sub_80CAB18(struct Sprite* sprite) +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: target x pixel offset +// arg 3: target y pixel offset +// arg 4: duration +// arg 5: wave amplitude +void AnimLeechSeed(struct Sprite* sprite) { InitAnimSpritePos(sprite, 1); if (GetBankSide(gAnimBankAttacker)) @@ -25,26 +30,26 @@ void sub_80CAB18(struct Sprite* sprite) sprite->data[2] = GetBankPosition(gAnimBankTarget, 0) + gBattleAnimArgs[2]; sprite->data[4] = GetBankPosition(gAnimBankTarget, 1) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; - sub_80786EC(sprite); - sprite->callback = sub_80CAB88; + InitAnimSpriteTranslationOverDuration(sprite); + sprite->callback = AnimLeechSeedStep; } -void sub_80CAB88(struct Sprite* sprite) +static void AnimLeechSeedStep(struct Sprite* sprite) { if (TranslateAnimSpriteLinearAndSine(sprite)) { sprite->invisible = 1; sprite->data[0] = 10; - sprite->callback = sub_80782D8; - StoreSpriteCallbackInData(sprite, sub_80CABC0); + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData(sprite, AnimLeechSeedSprouts); } } -void sub_80CABC0(struct Sprite* sprite) +static void AnimLeechSeedSprouts(struct Sprite* sprite) { sprite->invisible = 0; StartSpriteAnim(sprite, 1); sprite->data[0] = 60; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/slash.c b/src/battle/anim/slash.c index 6adcaf098..306968111 100644 --- a/src/battle/anim/slash.c +++ b/src/battle/anim/slash.c @@ -60,7 +60,7 @@ void sub_80CDE78(struct Sprite* sprite) sprite->data[1] = 8; sprite->data[2] = 0; StoreSpriteCallbackInData(sprite, sub_80CDEB0); - sprite->callback = sub_8078364; + sprite->callback = TranslateSpriteOverDuration; } } diff --git a/src/battle/anim/slice.c b/src/battle/anim/slice.c index fe8745483..80c58dddf 100644 --- a/src/battle/anim/slice.c +++ b/src/battle/anim/slice.c @@ -8,19 +8,21 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -static void sub_80CCB00(struct Sprite* sprite); +static void AnimSliceStep(struct Sprite* sprite); -// slice (the cutting animation showing as a yellow line drawn diagonally) -// Used in Cut, Fury Cutter, Aerial Ace, and Air Cutter. - -void sub_80CC914(struct Sprite* sprite) +// Moves the sprite in a diagonally slashing motion across the target mon. +// Used by moves such as MOVE_CUT and MOVE_AERIAL_ACE. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: slice direction; 0 = right-to-left, 1 = left-to-right +void AnimCuttingSlice(struct Sprite* sprite) { sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0); sprite->pos1.y = GetBankPosition(gAnimBankTarget, 1); if (GetBankSide(gAnimBankTarget) == 0) sprite->pos1.y += 8; - sprite->callback = sub_80CCB00; + sprite->callback = AnimSliceStep; if (gBattleAnimArgs[2] == 0) { sprite->pos1.x += gBattleAnimArgs[0]; @@ -70,7 +72,7 @@ void sub_80CC9BC(struct Sprite* sprite) if (GetBankSide(gAnimBankTarget) == 0) sprite->pos1.y += 8; - sprite->callback = sub_80CCB00; + sprite->callback = AnimSliceStep; if (gBattleAnimArgs[2] == 0) { sprite->pos1.x += gBattleAnimArgs[0]; @@ -89,7 +91,7 @@ void sub_80CC9BC(struct Sprite* sprite) sprite->data[1] = -sprite->data[1]; } -void sub_80CCB00(struct Sprite* sprite) +static void AnimSliceStep(struct Sprite* sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; @@ -106,6 +108,6 @@ void sub_80CCB00(struct Sprite* sprite) { StoreSpriteCallbackInData(sprite, DestroyAnimSprite); sprite->data[0] = 3; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; } } diff --git a/src/battle/anim/sonic.c b/src/battle/anim/sonic.c index 2808c86c2..1501f51f1 100644 --- a/src/battle/anim/sonic.c +++ b/src/battle/anim/sonic.c @@ -9,14 +9,18 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -// sonic (shoots a projectile towards the target.) -// Used in Sonic Boom and Air Cutter. - -void sub_80CF6DC(struct Sprite* sprite) +// Moves a projectile towards the target mon. The sprite is rotated to be pointing +// in the same direction it's moving. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: target x pixel offset +// arg 3: target y pixel offset +// arg 4: duration +void AnimSonicBoomProjectile(struct Sprite* sprite) { - s16 a; - s16 b; - u16 c; + s16 targetXPos; + s16 targetYPos; + u16 rotation; if (IsContest()) { @@ -30,17 +34,17 @@ void sub_80CF6DC(struct Sprite* sprite) } InitAnimSpritePos(sprite, 1); - a = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; - b = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; - c = sub_80790F0(a - sprite->pos1.x, b - sprite->pos1.y); - c += 0xF000; + targetXPos = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; + targetYPos = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; + rotation = ArcTan2Neg(targetXPos - sprite->pos1.x, targetYPos - sprite->pos1.y); + rotation += 0xF000; if (IsContest()) - c -= 0x6000; + rotation -= 0x6000; - sub_8078FDC(sprite, 0, 0x100, 0x100, c); + sub_8078FDC(sprite, 0, 0x100, 0x100, rotation); sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = a; - sprite->data[4] = b; + sprite->data[2] = targetXPos; + sprite->data[4] = targetYPos; sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } diff --git a/src/battle/anim/unused_8.c b/src/battle/anim/unused_8.c index b5e150dd8..c67ec2754 100644 --- a/src/battle/anim/unused_8.c +++ b/src/battle/anim/unused_8.c @@ -19,7 +19,7 @@ void sub_80CF458(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[4]; - sprite->callback = sub_80782D8; + sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, sub_80CF490); } diff --git a/src/battle/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c index f339a1206..a8b0ec329 100644 --- a/src/battle/battle_anim_80A7E7C.c +++ b/src/battle/battle_anim_80A7E7C.c @@ -30,10 +30,10 @@ static void SlideMonToOriginalPosStep(struct Sprite *sprite); static void SlideMonToOffset(struct Sprite *sprite); static void sub_80A8818(struct Sprite *sprite); static void sub_80A88F0(struct Sprite *sprite); -static void sub_80A89B4(u8 taskId); -static void sub_80A8A18(u8 taskId); +static void AnimTask_WindUpLungePart1(u8 taskId); +static void AnimTask_WindUpLungePart2(u8 taskId); static void AnimTask_SwayMonStep(u8 taskId); -static void sub_80A8D8C(u8 taskId); +static void AnimTask_ScaleMonAndRestoreStep(u8 taskId); static void sub_80A8FD8(u8 taskId); static void sub_80A913C(u8 taskId); @@ -646,11 +646,20 @@ static void sub_80A88F0(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80A8920(u8 taskId) +// Task to facilitate a two-part translation animation, in which the sprite +// is first translated in an arc to one position. Then, it "lunges" to a target +// x offset. Used in TAKE_DOWN, for example. +// arg 0: anim bank +// arg 1: horizontal speed (subpixel) +// arg 2: wave amplitude +// arg 3: first duration +// arg 4: delay before starting lunge +// arg 5: target x offset for lunge +// arg 6: lunge duration +void AnimTask_WindUpLunge(u8 taskId) { - s16 r7; - r7 = 0x8000 / gBattleAnimArgs[3]; - if (GetBankSide(gAnimBankAttacker)) + s16 wavePeriod = 0x8000 / gBattleAnimArgs[3]; + if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[5] = -gBattleAnimArgs[5]; @@ -662,11 +671,11 @@ void sub_80A8920(u8 taskId) TASK.data[4] = gBattleAnimArgs[4]; TASK.data[5] = (gBattleAnimArgs[5] << 8) / gBattleAnimArgs[6]; TASK.data[6] = gBattleAnimArgs[6]; - TASK.data[7] = r7; - TASK.func = sub_80A89B4; + TASK.data[7] = wavePeriod; + TASK.func = AnimTask_WindUpLungePart1; } -static void sub_80A89B4(u8 taskId) +static void AnimTask_WindUpLungePart1(u8 taskId) { u8 spriteId; spriteId = TASK.data[0]; @@ -676,11 +685,11 @@ static void sub_80A89B4(u8 taskId) TASK.data[10] += TASK.data[7]; if (--TASK.data[3] == 0) { - TASK.func = sub_80A8A18; + TASK.func = AnimTask_WindUpLungePart2; } } -static void sub_80A8A18(u8 taskId) +static void AnimTask_WindUpLungePart2(u8 taskId) { u8 spriteId; if (TASK.data[4] > 0) @@ -828,7 +837,13 @@ static void AnimTask_SwayMonStep(u8 taskId) } } -void sub_80A8D34(u8 taskId) +// Scales a mon's sprite, and then scales back to its original dimensions. +// arg 0: x scale delta +// arg 1: y scale delta +// arg 2: duration +// arg 3: anim bank +// arg 4: sprite object mode +void AnimTask_ScaleMonAndRestore(u8 taskId) { u8 spriteId; spriteId = GetAnimBankSpriteId(gBattleAnimArgs[3]); @@ -840,10 +855,10 @@ void sub_80A8D34(u8 taskId) TASK.data[4] = spriteId; TASK.data[10] = 0x100; TASK.data[11] = 0x100; - TASK.func = sub_80A8D8C; + TASK.func = AnimTask_ScaleMonAndRestoreStep; } -static void sub_80A8D8C(u8 taskId) +static void AnimTask_ScaleMonAndRestoreStep(u8 taskId) { u8 spriteId; TASK.data[10] += TASK.data[0]; diff --git a/src/battle/pokeball.c b/src/battle/pokeball.c index 3a47e0204..20c6d8676 100644 --- a/src/battle/pokeball.c +++ b/src/battle/pokeball.c @@ -297,7 +297,7 @@ const struct SpriteTemplate gBallSpriteTemplates[] = }; extern u32 ball_number_to_ball_processing_index(u16); // not sure of return type -extern void sub_80786EC(); +extern void InitAnimSpriteTranslationOverDuration(); extern bool8 TranslateAnimSpriteLinearAndSine(struct Sprite *); extern u8 sub_814086C(u8, u8, int, int, u8); extern u8 sub_8141314(u8, u8, int, u8); @@ -397,7 +397,7 @@ static void sub_8046464(u8 taskId) gSprites[spriteId].data[2] = GetBankPosition(gBankTarget, 0); gSprites[spriteId].data[4] = GetBankPosition(gBankTarget, 1) - 16; gSprites[spriteId].data[5] = -40; - sub_80786EC(&gSprites[spriteId]); + InitAnimSpriteTranslationOverDuration(&gSprites[spriteId]); gSprites[spriteId].oam.affineParam = taskId; gTasks[taskId].data[4] = gBankTarget; gTasks[taskId].func = TaskDummy; @@ -834,7 +834,7 @@ static void sub_8047074(struct Sprite *sprite) sprite->data[4] = GetBankPosition(sprite->data[6], 3) + 24; sprite->data[5] = -30; sprite->oam.affineParam = sprite->data[6]; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_80470C4; } diff --git a/src/field/battle_tower.c b/src/battle_tower.c index d4dbba120..8c44b71a3 100644 --- a/src/field/battle_tower.c +++ b/src/battle_tower.c @@ -28,9 +28,9 @@ #include "ewram.h" #if ENGLISH -#include "../data/battle_tower/trainers.h" +#include "data/battle_tower/trainers.h" #elif GERMAN -#include "../data/battle_tower/trainers_de.h" +#include "data/battle_tower/trainers_de.h" #endif static const u16 sBattleTowerHeldItems[] = @@ -100,8 +100,8 @@ static const u16 sBattleTowerHeldItems[] = ITEM_GANLON_BERRY, }; -#include "../data/battle_tower/level_50_mons.h" -#include "../data/battle_tower/level_100_mons.h" +#include "data/battle_tower/level_50_mons.h" +#include "data/battle_tower/level_100_mons.h" static const u8 sMaleTrainerClasses[] = { diff --git a/src/field/berry.c b/src/berry.c index 9313c458b..9313c458b 100644 --- a/src/field/berry.c +++ b/src/berry.c diff --git a/src/scene/berry_blender.c b/src/berry_blender.c index bf634a49f..bf634a49f 100644 --- a/src/scene/berry_blender.c +++ b/src/berry_blender.c diff --git a/src/field/berry_tag_screen.c b/src/berry_tag_screen.c index 9fbfd0681..9fbfd0681 100644 --- a/src/field/berry_tag_screen.c +++ b/src/berry_tag_screen.c diff --git a/src/field/bike.c b/src/bike.c index 28439e6bb..28439e6bb 100644 --- a/src/field/bike.c +++ b/src/bike.c diff --git a/src/field/birch_pc.c b/src/birch_pc.c index 4b0025504..4b0025504 100644 --- a/src/field/birch_pc.c +++ b/src/birch_pc.c diff --git a/src/engine/blend_palette.c b/src/blend_palette.c index 843c50ac1..843c50ac1 100644 --- a/src/engine/blend_palette.c +++ b/src/blend_palette.c diff --git a/src/field/braille_puzzles.c b/src/braille_puzzles.c index f11fb5fb3..f11fb5fb3 100644 --- a/src/field/braille_puzzles.c +++ b/src/braille_puzzles.c diff --git a/src/scene/cable_car.c b/src/cable_car.c index 8c3f9885d..8c3f9885d 100644 --- a/src/scene/cable_car.c +++ b/src/cable_car.c diff --git a/src/engine/cable_car_util.c b/src/cable_car_util.c index 02bfbc195..02bfbc195 100644 --- a/src/engine/cable_car_util.c +++ b/src/cable_car_util.c diff --git a/src/engine/cable_club.c b/src/cable_club.c index 0da23c5f3..0da23c5f3 100644 --- a/src/engine/cable_club.c +++ b/src/cable_club.c diff --git a/src/field/choose_party.c b/src/choose_party.c index 4766b2fbb..4766b2fbb 100644 --- a/src/field/choose_party.c +++ b/src/choose_party.c diff --git a/src/engine/clear_save_data_menu.c b/src/clear_save_data_menu.c index b6053715a..b6053715a 100644 --- a/src/engine/clear_save_data_menu.c +++ b/src/clear_save_data_menu.c diff --git a/src/engine/clock.c b/src/clock.c index fceccdfcb..fceccdfcb 100644 --- a/src/engine/clock.c +++ b/src/clock.c diff --git a/src/field/coins.c b/src/coins.c index 2c217e635..2c217e635 100644 --- a/src/field/coins.c +++ b/src/coins.c diff --git a/src/scene/contest_painting.c b/src/contest_painting.c index 0aa02312f..7d8f53299 100644 --- a/src/scene/contest_painting.c +++ b/src/contest_painting.c @@ -333,8 +333,7 @@ static void sub_8106AC4(u16 species, u8 arg1) { void *pal; - // Unsure what gUnknown_03005E8C->var0 is supposed to be. - pal = GetMonSpritePalFromOtIdPersonality(species, gUnknown_03005E8C->var4, gUnknown_03005E8C->var0); + pal = GetMonSpritePalFromOtIdPersonality(species, gUnknown_03005E8C->otId, gUnknown_03005E8C->personality); LZDecompressVram(pal, gUnknown_03005E90); if (arg1 == 1) @@ -346,7 +345,7 @@ static void sub_8106AC4(u16 species, u8 arg1) 0x2000000, gUnknown_081FAF4C[1], species, - (u32)gUnknown_03005E8C->var0 + (u32)gUnknown_03005E8C->personality ); sub_8106B90(gUnknown_081FAF4C[1], gUnknown_03005E90, gUnknown_03005E10); } @@ -359,7 +358,7 @@ static void sub_8106AC4(u16 species, u8 arg1) 0x2000000, gUnknown_081FAF4C[0], species, - (u32)gUnknown_03005E8C->var0 + (u32)gUnknown_03005E8C->personality ); sub_8106B90(gUnknown_081FAF4C[0], gUnknown_03005E90, gUnknown_03005E10); } @@ -743,7 +742,7 @@ static void sub_8106F6C(u8 arg0) gUnknown_03005E20.var_4 = gUnknown_03005E10; gUnknown_03005E20.var_8 = gUnknown_03005E90; gUnknown_03005E20.var_18 = 0; - gUnknown_03005E20.var_1F = gUnknown_03005E8C->var0; + gUnknown_03005E20.var_1F = gUnknown_03005E8C->personality % 256; gUnknown_03005E20.var_19 = 0; gUnknown_03005E20.var_1A = 0; gUnknown_03005E20.var_1B = 64; @@ -779,7 +778,7 @@ static void sub_8106F6C(u8 arg0) static void sub_8107090(u8 arg0, u8 arg1) { sub_8106F4C(); - sub_8106AC4(gUnknown_03005E8C->var8, 0); + sub_8106AC4(gUnknown_03005E8C->species, 0); sub_8106F6C(sub_8106EE0(arg0)); sub_8106E98(arg0); sub_8106C40(arg0, arg1); diff --git a/src/field/coord_event_weather.c b/src/coord_event_weather.c index 60b87fa30..60b87fa30 100644 --- a/src/field/coord_event_weather.c +++ b/src/coord_event_weather.c diff --git a/src/scene/credits.c b/src/credits.c index e31e2c797..9a85265e4 100644 --- a/src/scene/credits.c +++ b/src/credits.c @@ -246,9 +246,9 @@ const u8 gUnknown_0840B878[] = }; #ifdef GERMAN -#include "../data/credits_de.h" +#include "data/credits_de.h" #else -#include "../data/credits_en.h" +#include "data/credits_en.h" #endif const u8 gUnknown_0840CA00[][2] = diff --git a/src/scene/cute_sketch.c b/src/cute_sketch.c index 5317bc334..5317bc334 100644 --- a/src/scene/cute_sketch.c +++ b/src/cute_sketch.c diff --git a/src/field/daycare.c b/src/daycare.c index da0838d29..e26db531f 100644 --- a/src/field/daycare.c +++ b/src/daycare.c @@ -35,7 +35,7 @@ static void ClearDaycareMail(struct DayCareMail *); static void SetInitialEggData(struct Pokemon *, u16, struct DayCare *); static u8 GetDaycareCompatibilityScore(struct DayCare *); -#include "../data/pokemon/egg_moves.h" +#include "data/pokemon/egg_moves.h" static const u8 *const sCompatibilityMessages[] = { DaycareText_GetAlongVeryWell, diff --git a/src/debug/tomomichi_debug_menu.c b/src/debug/tomomichi_debug_menu.c index c3616797e..3d4637746 100644 --- a/src/debug/tomomichi_debug_menu.c +++ b/src/debug/tomomichi_debug_menu.c @@ -1,20 +1,4483 @@ #if DEBUG #include "global.h" +#include "ewram.h" +#include "string_util.h" +#include "palette.h" +#include "data2.h" +#include "event_data.h" +#include "constants/flags.h" +#include "constants/songs.h" +#include "constants/species.h" +#include "overworld.h" +#include "script.h" +#include "menu.h" +#include "start_menu.h" +#include "main.h" +#include "contest_painting.h" +#include "sound.h" -// These should be static, uninitialized once it gets decompiled. -#define BSS_DATA __attribute__((section(".bss"))) -BSS_DATA u8 gDebug_03000700[4] = {0}; -BSS_DATA u8 gDebug_03000704[4] = {0}; -BSS_DATA u8 gDebug_03000708[4] = {0}; -BSS_DATA u8 gDebug_0300070C = 0; -BSS_DATA u8 gDebug_0300070D = 0; -BSS_DATA u8 gDebug_0300070E = 0; -BSS_DATA u8 gDebug_0300070F = 0; -BSS_DATA u8 gDebug_03000710[13] = {0}; -BSS_DATA u8 gDebug_0300071D = 0; -BSS_DATA u8 gDebug_0300071E = 0; -BSS_DATA u8 gDebug_0300071F = 0; -BSS_DATA u8 gDebug_03000720 = 0; -BSS_DATA u8 gDebug_03000721 = 0; - -#endif +static u16 sPicTest_Species; +static u32 sPicTest_OTID; +static u32 sPicTest_Personality; +static u8 sPicTest_ContestType; +static u8 sPicTest_MuseumArtTitleType; +static u8 sPicTest_PreviewType; +static u8 sFlagAndVarTest_WhichSubmenu; +static u8 sPicTest_StringBuffer[13]; +static u8 sTopMenuCursorPos; +static u8 sTrickRelatedMenuCursorPos; +static u8 sControlEventsCursorPos; +static u8 sControlFlagsCursorPos; +static u8 sControlWORKCursorPos; + +static bool8 ArtMusGraphics(void); +static bool8 DummyMenuAction(void); +static bool8 ContestGraphics(void); +static bool8 ContestGraphics_Show(void); +static bool8 ControlEvents(void); +static bool8 ControlFlags(void); +static bool8 ControlWorks(void); +static bool8 MuseumGraphics_Show(void); +static bool8 PreviewData(void); +static bool8 TrickHouse(void); +static bool8 InitDebugWindow(void); +static bool8 TopMenu_HandleInput(void); +static bool8 ContestGraphics_HandleInput(void); +static bool8 ArtMusGraphics_HandleInput(void); +static bool8 PreviewData_HandleInput(void); +static bool8 TrickHouse_HandleInput(void); +static bool8 ControlEvents_HandleInput(void); +static bool8 ControlFlags_HandleInput(void); +static bool8 ControlWorks_HandleInput(void); +static bool8 ControlEvents_InitSubmenu1(void); +static bool8 ControlEvents_InitSubmenu2(void); +static bool8 ControlEvents_Events1_HandleInput(void); +static bool8 ControlEvents_Events2_HandleInput(void); +static bool8 CallScript_DoHallOfFame(void); +static bool8 CallScript_GiveCoinCaseIfNotAlreadyOwned(void); +static bool8 CallScript_SetOldaleStateAfterRoute103Rival(void); +static bool8 CallScript_OpenNewMauville(void); +static bool8 CallScript_GiveSSTicketAndDoHallOfFame(void); +static bool8 CallScript_GiveKyogreEgg(void); +static bool8 CallScript_GiveAllItems(void); +static bool8 CallScript_GiveAllDecorations(void); +static bool8 CallScript_GiveAllCoins(void); +static bool8 CallScript_OpenSootopolisGym(void); +static bool8 CallScript_SetMoneyTo0(void); +static bool8 CallScript_FillPartyWithBarboach(void); +static bool8 CallScript_FillPartyWithShroomish(void); +static bool8 CallScript_GiveBarboachEgg(void); +static bool8 CallScript_GiveShroomishEgg(void); +static bool8 debug_sub_808C280(void); +static bool8 debug_sub_808C2E4(void); +static bool8 ControlFlags_EventFlag_InitSubmenu(void); +static bool8 debug_sub_808C36C(void); +static bool8 debug_sub_808C3B0(void); +static bool8 debug_sub_808C408(void); +static bool8 debug_sub_808C460(void); +static bool8 debug_sub_808C4B8(void); +static bool8 debug_sub_808C510(void); +static bool8 debug_sub_808C568(void); +static bool8 debug_sub_808C5C0(void); +static bool8 debug_sub_808C618(void); +static bool8 debug_sub_808C670(void); +static bool8 debug_sub_808C6C8(void); +static void debug_sub_808C714(u8, u8); +static void debug_sub_808C764(u8); +static bool8 ControlFlags_VanishFlag_InitSubmenu(void); +static bool8 debug_sub_808C818(void); +static bool8 debug_sub_808C85C(void); +static bool8 debug_sub_808C8B4(void); +static bool8 debug_sub_808C90C(void); +static bool8 debug_sub_808C964(void); +static bool8 debug_sub_808C9BC(void); +static bool8 debug_sub_808CA14(void); +static bool8 debug_sub_808CA6C(void); +static bool8 debug_sub_808CAC4(void); +static bool8 debug_sub_808CB1C(void); +static bool8 debug_sub_808CB74(void); +static void debug_sub_808CBC0(u8, u8); +static void debug_sub_808CC10(u8); +static bool8 ControlFlags_TrainerFlag_InitSubmenu(void); +static bool8 debug_sub_808CCC4(void); +static bool8 debug_sub_808CD08(void); +static bool8 debug_sub_808CD60(void); +static bool8 debug_sub_808CDB8(void); +static bool8 debug_sub_808CE10(void); +static void debug_sub_808CE5C(u8, u8); +static void debug_sub_808CEAC(u8); +static bool8 ControlFlags_SysFlag_InitSubmenu(void); +static bool8 debug_sub_808CF60(void); +static bool8 debug_sub_808CFA4(void); +static bool8 debug_sub_808CFFC(void); +static bool8 debug_sub_808D054(void); +static bool8 debug_sub_808D0AC(void); +static bool8 debug_sub_808D104(void); +static bool8 debug_sub_808D15C(void); +static bool8 debug_sub_808D1B4(void); +static bool8 debug_sub_808D20C(void); +static bool8 debug_sub_808D264(void); +static bool8 debug_sub_808D2BC(void); +static void debug_sub_808D308(u8, u8); +static void debug_sub_808D358(u8); +static bool8 ControlFlags_FH_OBJ_InitSubmenu(void); +static bool8 ControlFlags_FH_OBJ_HandleInput(void); +static bool8 ControlFlags_FH_OBJ00_08_InitSubsubmenu(void); +static bool8 ControlFlags_FH_OBJ09_15_InitSubsubmenu(void); +static bool8 ControlFlags_FH_OBJ_Subsubmenu_HandleInput(void); +static void ControlFlags_FH_OBJ_FlagToggle(u8, u8); +static void ControlFlags_FH_OBJ_UpdateDisplay(u8); +static bool8 ControlFlags_FH_InitSubmenu(void); +static bool8 debug_sub_808D650(void); +static bool8 debug_sub_808D694(void); +static bool8 debug_sub_808D6EC(void); +static bool8 debug_sub_808D744(void); +static void debug_sub_808D790(u8, u8); +static void debug_sub_808D7E0(u8); +static bool8 ControlFlags_BallVanishFlag_InitSubmenu(void); +static bool8 debug_sub_808D894(void); +static bool8 debug_sub_808D8D8(void); +static bool8 debug_sub_808D930(void); +static void debug_sub_808D97C(u8, u8); +static void debug_sub_808D9CC(u8); +static bool8 ControlWorks_AnsWork_InitSubmenu(void); +static bool8 ControlWorks_AnsWork_HandleInput(void); +static void ControlWorks_AnsWork_PrintRESULT(void); +static void ControlWorks_AnsWork_AdjustRESULT(void); +static bool8 ControlWorks_SaveWork_InitSubmenu(void); +static bool8 ControlWorks_SaveWork_HandleInput(void); +static bool8 ControlWorks_SaveWork_Town_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_City_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_Route101To109_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_Route110To118_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_Route119To127_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_Route128To134_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_RoomTown_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_RoomCity_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_Dungeon_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_Subsubmenu_HandleInput(void); +static void debug_sub_808DF04(u8); +static void debug_sub_808DF64(u8, u8); +static bool8 ControlWorks_SaveWorkPart2_InitSubmenu(void); +static bool8 ControlWorks_SaveWorkPart2_HandleInput(void); +static bool8 ControlWorks_SaveWorkPart2_SP_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWorkPart2_RoomR110Part1TrickHouse_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWorkPart2_RoomR110Part2_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWorkPart2_RoomLoad_InitSubsubmenu(void); +static bool8 debug_sub_808E1B4(void); +static bool8 debug_sub_808E20C(void); +static bool8 debug_sub_808E264(void); +static void debug_sub_808E2B0(u8); +static void debug_sub_808E310(u8, u8); +static bool8 ControlWorks_SysWork_InitSubmenu(void); +static bool8 debug_sub_808E3BC(void); +static bool8 debug_sub_808E400(void); +static bool8 debug_sub_808E458(void); +static bool8 debug_sub_808E4B0(void); +static bool8 debug_sub_808E508(void); +static bool8 debug_sub_808E560(void); +static bool8 debug_sub_808E5B8(void); +static void debug_sub_808E604(u8, u8); +static void debug_sub_808E660(u8); +static bool8 ControlWorks_LocalWork_InitSubmenu(void); +static bool8 debug_sub_808E710(void); +static bool8 debug_sub_808E754(void); +static bool8 debug_sub_808E7AC(void); +static bool8 debug_sub_808E804(void); +static void debug_sub_808E850(u8, u8); +static void debug_sub_808E8AC(u8); +static bool8 ControlWorks_ObjWork_InitSubmenu(void); +static bool8 debug_sub_808E95C(void); +static bool8 debug_sub_808E9A0(void); +static bool8 debug_sub_808E9F8(void); +static bool8 debug_sub_808EA50(void); +static void debug_sub_808EA9C(u8); +static void debug_sub_808EAFC(u8, u8); +static bool8 TrickRelated_Level_InitSubmenu(void); +static bool8 TrickRelated_TrickMaster_InitSubmenu(void); +static bool8 debug_sub_808EC10(void); +static bool8 debug_sub_808EC5C(void); +static bool8 PreviewGraphics_Show(void); +static bool8 debug_sub_808ECD0(void); +static void PicTest_SelectPokemon(void); +static void PicTest_SelectPersonality(void); +static void ContestPicTest_SelectContestType(void); +static void MuseumArtPicTest_SelectTitleType(void); +static void PreviewPicTest_SelectType(void); +static void PicTest_Redraw(u8 a0); +static void PrepareDebugOverlayBeforeShowingContestPainting(u8 a0); +static void PrintBool(u8, u8, bool8); +static void PrintUnsignedShort(u8, u8, u16); + +extern const u8 DebugScript_081C1CFE[]; +extern const u8 DebugScript_081C1D07[]; +extern const u8 DebugScript_081C1D1E[]; +extern const u8 DebugScript_081C1D24[]; +extern const u8 DebugScript_081C1D2A[]; +extern const u8 DebugScript_081C1D35[]; +extern const u8 DebugScript_081C1D46[]; +extern const u8 DebugScript_081C221F[]; +extern const u8 DebugScript_081C23E2[]; +extern const u8 DebugScript_081C23E6[]; +extern const u8 DebugScript_081C23F6[]; +extern const u8 DebugScript_081C2482[]; +extern const u8 DebugScript_081C23FD[]; +extern const u8 DebugScript_081C2518[]; +extern const u8 DebugScript_081C2507[]; + +static const u8 sString_ContestGraphics[] = _("Contest graphics"); +static const u8 sString_ArtMuseumGraphics[] = _("Art Mus. graphics"); +static const u8 sString_PreviewData[] = _("Preview data"); +static const u8 sString_TrickHouse[] = _("TRICK HOUSE"); +static const u8 sString_ControlEvents[] = _("Control events"); +static const u8 sString_ControlFlags[] = _("Control flags"); +static const u8 sString_ControlWORK[] = _("Control WORK"); + +static const struct MenuAction sMenuActions_TopMenu[] = { + {sString_ContestGraphics, ContestGraphics}, + {sString_ArtMuseumGraphics, ArtMusGraphics}, + {sString_PreviewData, PreviewData}, + {sString_TrickHouse, TrickHouse}, + {sString_ControlEvents, ControlEvents}, + {sString_ControlFlags, ControlFlags}, + {sString_ControlWORK, ControlWorks}, +}; + +static const u8 sString_ContestMenuTitle[] = _("Contest"); + +static const u8 sString_Contest_PokemonNo[] = _("Pokémon No."); +static const u8 sString_Contest_Personality[] = _("ID rnd. digit"); +static const u8 sString_Contest_Type[] = _("Contest Type"); +static const u8 sString_Contest_PokeArt[] = _("Poké Art"); + +static const struct MenuAction sMenuActions_ContestPicTest[] = { + {sString_Contest_PokemonNo, DummyMenuAction}, + {sString_Contest_Personality, DummyMenuAction}, + {sString_Contest_Type, DummyMenuAction}, + {sString_Contest_PokeArt, ContestGraphics_Show} +}; + +static const u8 sString_Contest_ArtMuseumTitle[] = _("Art Mus."); + +static const u8 sString_Contest_ArtMuseum_PokemonNo[] = _("Pokémon No."); +static const u8 sString_Contest_ArtMuseum_Personality[] = _("ID rnd. digit"); +static const u8 sString_Contest_ArtMuseum_Type[] = _("Title Type"); +static const u8 sString_Contest_ArtMuseum_PokeArt[] = _("Poké Art"); + +static const struct MenuAction sMenuActions_ArtMuseumPicTest[] = { + {sString_Contest_ArtMuseum_PokemonNo, DummyMenuAction}, + {sString_Contest_ArtMuseum_Personality, DummyMenuAction}, + {sString_Contest_ArtMuseum_Type, DummyMenuAction}, + {sString_Contest_ArtMuseum_PokeArt, MuseumGraphics_Show} +}; + +static const u8 sString_Contest_PreviewTitle[] = _("Preview"); + +static const u8 sString_Contest_Preview_PokemonNo[] = _("Pokémon No."); +static const u8 sString_Contest_Preview_Personality[] = _("ID rnd. digit"); +static const u8 sString_Contest_Preview_Type[] = _("Type"); +static const u8 sString_Contest_Preview_PokeArt[] = _("Poké Art"); + +static const struct MenuAction sMenuActions_PreviewPicTest[] = { + {sString_Contest_Preview_PokemonNo, DummyMenuAction}, + {sString_Contest_Preview_Personality, DummyMenuAction}, + {sString_Contest_Preview_Type, DummyMenuAction}, + {sString_Contest_Preview_PokeArt, PreviewGraphics_Show} +}; + +static const u8 sString_TrickRelated[] = _("Trick related"); + +static const u8 sString_TrickRelated_Level[] = _("Level"); +static const u8 sString_TrickRelated_TrickMaster[] = _("Trick Master"); + +static const struct MenuAction sMenuActions_TrickRelated[] = { + {sString_TrickRelated_Level, TrickRelated_Level_InitSubmenu}, + {sString_TrickRelated_TrickMaster, TrickRelated_TrickMaster_InitSubmenu} +}; + +static const u8 sString_Event1[] = _("パート1"); +static const u8 sString_Event2[] = _("パート2"); + +static const struct MenuAction sMenuActions_ControlEvents[] = { + {sString_Event1, ControlEvents_InitSubmenu1}, + {sString_Event2, ControlEvents_InitSubmenu2} +}; + +static const u8 sString_EventFlag[] = _("イベントFLAG"); +static const u8 sString_VanishFlag[] = _("バニシュFLAG"); +static const u8 sString_TrainerFlag[] = _("トレーナーFLAG"); +static const u8 sString_SysFlag[] = _("SYSFLAG"); +static const u8 sString_BallVanishFlag[] = _("BALLバニシュFLAG"); +static const u8 sString_FH[] = _("FH"); +static const u8 sString_FH_OBJ[] = _("FH-OBJ"); + +static const struct MenuAction sMenuActions_ControlFlags[] = { + {sString_EventFlag, ControlFlags_EventFlag_InitSubmenu}, + {sString_VanishFlag, ControlFlags_VanishFlag_InitSubmenu}, + {sString_TrainerFlag, ControlFlags_TrainerFlag_InitSubmenu}, + {sString_SysFlag, ControlFlags_SysFlag_InitSubmenu}, + {sString_BallVanishFlag, ControlFlags_BallVanishFlag_InitSubmenu}, + {sString_FH, ControlFlags_FH_InitSubmenu}, + {sString_FH_OBJ, ControlFlags_FH_OBJ_InitSubmenu} +}; + +static const u8 sString_SaveWork[] = _("SAVEWORK"); +static const u8 sString_SysWork[] = _("SYSWORK"); +static const u8 sString_LocalWork[] = _("LOCALWORK"); +static const u8 sString_ObjWork[] = _("OBJWORK"); +static const u8 sString_AnsWork[] = _("ANSWORK"); +static const u8 sString_SaveWorkPart2[] = _("SAVEWORK パート2"); + +static const struct MenuAction sMenuActions_ControlWorks[] = { + {sString_SaveWork, ControlWorks_SaveWork_InitSubmenu}, + {sString_SysWork, ControlWorks_SysWork_InitSubmenu}, + {sString_LocalWork, ControlWorks_LocalWork_InitSubmenu}, + {sString_ObjWork, ControlWorks_ObjWork_InitSubmenu}, + {sString_AnsWork, ControlWorks_AnsWork_InitSubmenu}, + {sString_SaveWorkPart2, ControlWorks_SaveWorkPart2_InitSubmenu} +}; + +static const u8 sString_Clear_go[] = _("クリアご"); +static const u8 sString_Coin_kounyuuka[] = _("コインこうにゅうかのう"); +static const u8 sString_Oldale_supporter_set[] = _("コトキサポーターセット"); +static const u8 sString_New_Mauville_open[] = _("ニューキンセツOPEN"); +static const u8 sString_Renrakusen_ni_noreru[] = _("れんらくせんにのれる"); +static const u8 sString_Egg_tsuika[] = _("タマゴついか"); +static const u8 sString_Item_ippai[] = _("アイテムいっぱい"); +static const u8 sString_Gezzu_ippai[] = _("グッズいっぱい"); +static const u8 sString_Coin_ippai[] = _("COINいっぱい"); + +static const struct MenuAction sMenuActions_ControlEvents_Events1[] = { + {sString_Clear_go, CallScript_DoHallOfFame}, + {sString_Coin_kounyuuka, CallScript_GiveCoinCaseIfNotAlreadyOwned}, + {sString_Oldale_supporter_set, CallScript_SetOldaleStateAfterRoute103Rival}, + {sString_New_Mauville_open, CallScript_OpenNewMauville}, + {sString_Renrakusen_ni_noreru, CallScript_GiveSSTicketAndDoHallOfFame}, + {sString_Egg_tsuika, CallScript_GiveKyogreEgg}, + {sString_Item_ippai, CallScript_GiveAllItems}, + {sString_Gezzu_ippai, CallScript_GiveAllDecorations}, + {sString_Coin_ippai, CallScript_GiveAllCoins} +}; + +static const u8 sString_SootpolisGymOpen[] = _("ムロジムOPEN"); +static const u8 sString_MoneyTo0[] = _("おかねを0へ"); +static const u8 sString_BarboachFull[] = _("ドジョッチ FULL"); +static const u8 sString_ShroomishFull[] = _("キノココ FULL"); +static const u8 sString_BarboachEgg[] = _("ドジョッチ タマゴ"); +static const u8 sString_ShroomishEgg[] = _("キノココ タマゴ"); + +static const struct MenuAction sMenuActions_ControlEvents_Events2[] = { + {sString_SootpolisGymOpen, CallScript_OpenSootopolisGym}, + {sString_MoneyTo0, CallScript_SetMoneyTo0}, + {sString_BarboachFull, CallScript_FillPartyWithBarboach}, + {sString_ShroomishFull, CallScript_FillPartyWithShroomish}, + {sString_BarboachEgg, CallScript_GiveBarboachEgg}, + {sString_ShroomishEgg, CallScript_GiveShroomishEgg} +}; + +static const u8 sString_Answork_Mikansei[] = _("ANSWORK みかんせい"); + +static const struct MenuAction sMenuActions_ControlEvents_AnsWork[] = { + {sString_Answork_Mikansei, DummyMenuAction} +}; + +static const u8 sString_FH_OBJ00_08[] = _("FHーOBJ00ー08"); +static const u8 sString_FH_OBJ09_15[] = _("FHーOBJ09ー15"); + +static const struct MenuAction sMenuActions_ControlFlags_FH_OBJ[] = { + {sString_FH_OBJ00_08, ControlFlags_FH_OBJ00_08_InitSubsubmenu}, + {sString_FH_OBJ09_15, ControlFlags_FH_OBJ09_15_InitSubsubmenu} +}; + +static const u8 sString_FH_OBJ00[] = _("FHーOBJ00"); +static const u8 sString_FH_OBJ01[] = _("FHーOBJ01"); +static const u8 sString_FH_OBJ02[] = _("FHーOBJ02"); +static const u8 sString_FH_OBJ03[] = _("FHーOBJ03"); +static const u8 sString_FH_OBJ04[] = _("FHーOBJ04"); +static const u8 sString_FH_OBJ05[] = _("FHーOBJ05"); +static const u8 sString_FH_OBJ06[] = _("FHーOBJ06"); +static const u8 sString_FH_OBJ07[] = _("FHーOBJ07"); +static const u8 sString_FH_OBJ08[] = _("FHーOBJ08"); + +static const struct MenuAction sMenuActions_ControlFlags_FH_OBJ00_08[] = { + {sString_FH_OBJ00, DummyMenuAction}, + {sString_FH_OBJ01, DummyMenuAction}, + {sString_FH_OBJ02, DummyMenuAction}, + {sString_FH_OBJ03, DummyMenuAction}, + {sString_FH_OBJ04, DummyMenuAction}, + {sString_FH_OBJ05, DummyMenuAction}, + {sString_FH_OBJ06, DummyMenuAction}, + {sString_FH_OBJ07, DummyMenuAction}, + {sString_FH_OBJ08, DummyMenuAction} +}; + +static const u8 sString_FH_OBJ09[] = _("FH-OBJ09"); +static const u8 sString_FH_OBJ10[] = _("FH-OBJ10"); +static const u8 sString_FH_OBJ11[] = _("FH-OBJ11"); +static const u8 sString_FH_OBJ12[] = _("FH-OBJ12"); +static const u8 sString_FH_OBJ13[] = _("FH-OBJ13"); +static const u8 sString_FH_OBJ14[] = _("FH-OBJ14"); +static const u8 sString_FH_OBJ15[] = _("FH-OBJ15"); +static const u8 sString_Blank_083C1147[] = _(""); +static const u8 sString_Blank_083C1148[] = _(""); + +static const struct MenuAction sMenuActions_ControlFlags_FH_OBJ09_15[] = { + {sString_FH_OBJ09, DummyMenuAction}, + {sString_FH_OBJ10, DummyMenuAction}, + {sString_FH_OBJ11, DummyMenuAction}, + {sString_FH_OBJ12, DummyMenuAction}, + {sString_FH_OBJ13, DummyMenuAction}, + {sString_FH_OBJ14, DummyMenuAction}, + {sString_FH_OBJ15, DummyMenuAction}, + {sString_Blank_083C1147, DummyMenuAction}, + {sString_Blank_083C1148, DummyMenuAction} +}; + +static const u8 sControlFlags_FH_OBJ_CountsArray[] = {9, 7}; + +static const u16 sControlFlags_FH_OBJ_FlagsArrays[][9] = { + {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19}, + {0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20} +}; + +static const u8 gUnknown_Debug_083C11BA[] = _("FH-00-08"); +static const u8 gUnknown_Debug_083C11C3[] = _("FH-09-15"); + +static const struct MenuAction gUnknown_Debug_083C11CC[] = { + {gUnknown_Debug_083C11BA, debug_sub_808D694}, + {gUnknown_Debug_083C11C3, debug_sub_808D6EC} +}; + +static const u8 gUnknown_Debug_083C11DC[] = _("FH-00"); +static const u8 gUnknown_Debug_083C11E2[] = _("FH-01"); +static const u8 gUnknown_Debug_083C11E8[] = _("FH-02"); +static const u8 gUnknown_Debug_083C11EE[] = _("FH-03"); +static const u8 gUnknown_Debug_083C11F4[] = _("FH-04"); +static const u8 gUnknown_Debug_083C11FA[] = _("FH-05"); +static const u8 gUnknown_Debug_083C1200[] = _("FH-06"); +static const u8 gUnknown_Debug_083C1206[] = _("FH-07"); +static const u8 gUnknown_Debug_083C120C[] = _("FH-08"); + +static const struct MenuAction gUnknown_Debug_083C1212[] = { + {gUnknown_Debug_083C11DC, DummyMenuAction}, + {gUnknown_Debug_083C11E2, DummyMenuAction}, + {gUnknown_Debug_083C11E8, DummyMenuAction}, + {gUnknown_Debug_083C11EE, DummyMenuAction}, + {gUnknown_Debug_083C11F4, DummyMenuAction}, + {gUnknown_Debug_083C11FA, DummyMenuAction}, + {gUnknown_Debug_083C1200, DummyMenuAction}, + {gUnknown_Debug_083C1206, DummyMenuAction}, + {gUnknown_Debug_083C120C, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C125C[] = _("FHー09"); +static const u8 gUnknown_Debug_083C1262[] = _("FHー10"); +static const u8 gUnknown_Debug_083C1268[] = _("FHー11"); +static const u8 gUnknown_Debug_083C126E[] = _("FHー12"); +static const u8 gUnknown_Debug_083C1274[] = _("FHー13"); +static const u8 gUnknown_Debug_083C127A[] = _("FHー14"); +static const u8 gUnknown_Debug_083C1280[] = _("FHー15"); +static const u8 gUnknown_Debug_083C1286[] = _(""); +static const u8 gUnknown_Debug_083C1287[] = _(""); + +static const struct MenuAction gUnknown_Debug_083C1288[] = { + {gUnknown_Debug_083C125C, DummyMenuAction}, + {gUnknown_Debug_083C1262, DummyMenuAction}, + {gUnknown_Debug_083C1268, DummyMenuAction}, + {gUnknown_Debug_083C126E, DummyMenuAction}, + {gUnknown_Debug_083C1274, DummyMenuAction}, + {gUnknown_Debug_083C127A, DummyMenuAction}, + {gUnknown_Debug_083C1280, DummyMenuAction}, + {gUnknown_Debug_083C1286, DummyMenuAction}, + {gUnknown_Debug_083C1287, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C12D0[] = {9, 7}; + +static const u16 gUnknown_Debug_083C12D2[][9] = { + {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09}, + {0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10} +}; + +static const u8 gUnknown_Debug_083C12F6[] = _("BATCH"); +static const u8 gUnknown_Debug_083C12FC[] = _("タウンとうちゃく"); +static const u8 gUnknown_Debug_083C1305[] = _("シティとうちゃく"); +static const u8 gUnknown_Debug_083C130E[] = _("GET"); +static const u8 gUnknown_Debug_083C1312[] = _("そのた1"); +static const u8 gUnknown_Debug_083C1317[] = _("そのた2"); +static const u8 gUnknown_Debug_083C131C[] = _("そのた3"); +static const u8 gUnknown_Debug_083C1321[] = _("そのた4"); +static const u8 gUnknown_Debug_083C1326[] = _("そのた とうちゃく"); + +static const struct MenuAction gUnknown_Debug_083C1330[] = { + {gUnknown_Debug_083C12F6, debug_sub_808CFA4}, + {gUnknown_Debug_083C12FC, debug_sub_808CFFC}, + {gUnknown_Debug_083C1305, debug_sub_808D054}, + {gUnknown_Debug_083C130E, debug_sub_808D0AC}, + {gUnknown_Debug_083C1312, debug_sub_808D104}, + {gUnknown_Debug_083C1317, debug_sub_808D15C}, + {gUnknown_Debug_083C131C, debug_sub_808D1B4}, + {gUnknown_Debug_083C1321, debug_sub_808D20C}, + {gUnknown_Debug_083C1326, debug_sub_808D264} +}; + +static const u8 gUnknown_Debug_083C1378[] = _("BATCH01ーGET"); +static const u8 gUnknown_Debug_083C1384[] = _("BATCH02ーGET"); +static const u8 gUnknown_Debug_083C1390[] = _("BATCH03ーGET"); +static const u8 gUnknown_Debug_083C139C[] = _("BATCH04ーGET"); +static const u8 gUnknown_Debug_083C13A8[] = _("BATCH05ーGET"); +static const u8 gUnknown_Debug_083C13B4[] = _("BATCH06ーGET"); +static const u8 gUnknown_Debug_083C13C0[] = _("BATCH07ーGET"); +static const u8 gUnknown_Debug_083C13CC[] = _("BATCH08ーGET"); + +static const struct MenuAction gUnknown_Debug_083C13D8[] = { + {gUnknown_Debug_083C1378, DummyMenuAction}, + {gUnknown_Debug_083C1384, DummyMenuAction}, + {gUnknown_Debug_083C1390, DummyMenuAction}, + {gUnknown_Debug_083C139C, DummyMenuAction}, + {gUnknown_Debug_083C13A8, DummyMenuAction}, + {gUnknown_Debug_083C13B4, DummyMenuAction}, + {gUnknown_Debug_083C13C0, DummyMenuAction}, + {gUnknown_Debug_083C13CC, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1418[] = _("T101ARRIVE"); +static const u8 gUnknown_Debug_083C1423[] = _("T102ARRIVE"); +static const u8 gUnknown_Debug_083C142E[] = _("T103ARRIVE"); +static const u8 gUnknown_Debug_083C1439[] = _("T104ARRIVE"); +static const u8 gUnknown_Debug_083C1444[] = _("T105ARRIVE"); +static const u8 gUnknown_Debug_083C144F[] = _("T106ARRIVE"); +static const u8 gUnknown_Debug_083C145A[] = _("T107ARRIVE"); + +static const struct MenuAction gUnknown_Debug_083C1465[] = { + {gUnknown_Debug_083C1418, DummyMenuAction}, + {gUnknown_Debug_083C1423, DummyMenuAction}, + {gUnknown_Debug_083C142E, DummyMenuAction}, + {gUnknown_Debug_083C1439, DummyMenuAction}, + {gUnknown_Debug_083C1444, DummyMenuAction}, + {gUnknown_Debug_083C144F, DummyMenuAction}, + {gUnknown_Debug_083C145A, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C14A0[] = _("C101ARRIVE"); +static const u8 gUnknown_Debug_083C14AB[] = _("C102ARRIVE"); +static const u8 gUnknown_Debug_083C14B6[] = _("C103ARRIVE"); +static const u8 gUnknown_Debug_083C14C1[] = _("C104ARRIVE"); +static const u8 gUnknown_Debug_083C14CC[] = _("C105ARRIVE"); +static const u8 gUnknown_Debug_083C14D7[] = _("C106ARRIVE"); +static const u8 gUnknown_Debug_083C14E2[] = _("C107ARRIVE"); +static const u8 gUnknown_Debug_083C14ED[] = _("C108ARRIVE"); +static const u8 gUnknown_Debug_083C14F8[] = _("C109ARRIVE"); + +static const struct MenuAction gUnknown_Debug_083C1503[] = { + {gUnknown_Debug_083C14A0, DummyMenuAction}, + {gUnknown_Debug_083C14AB, DummyMenuAction}, + {gUnknown_Debug_083C14B6, DummyMenuAction}, + {gUnknown_Debug_083C14C1, DummyMenuAction}, + {gUnknown_Debug_083C14CC, DummyMenuAction}, + {gUnknown_Debug_083C14D7, DummyMenuAction}, + {gUnknown_Debug_083C14E2, DummyMenuAction}, + {gUnknown_Debug_083C14ED, DummyMenuAction}, + {gUnknown_Debug_083C14F8, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C154C[] = _("SYSーPOKEMONーGET"); +static const u8 gUnknown_Debug_083C155C[] = _("SYSーZUKANーGET"); +static const u8 gUnknown_Debug_083C156A[] = _("SYSーPOKEGEARーGET"); +static const u8 gUnknown_Debug_083C157B[] = _("SYSーRIBBONーGET"); + +static const struct MenuAction gUnknown_Debug_083C158A[] = { + {gUnknown_Debug_083C154C, DummyMenuAction}, + {gUnknown_Debug_083C155C, DummyMenuAction}, + {gUnknown_Debug_083C156A, DummyMenuAction}, + {gUnknown_Debug_083C157B, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C15AC[] = _("SYSーGAMEーCLEAR"); +static const u8 gUnknown_Debug_083C15BB[] = _("SYSーKAIWAーUSED"); +static const u8 gUnknown_Debug_083C15CA[] = _("SYSーNOWーOYAJIーMEET"); +static const u8 gUnknown_Debug_083C15DD[] = _("SYSーUSEーWAZAーFLASH"); +static const u8 gUnknown_Debug_083C15F0[] = _("SYSーUSEーWAZAーKAIRIKI"); +static const u8 gUnknown_Debug_083C1605[] = _("SYSーWEATHERーCTRL"); +static const u8 gUnknown_Debug_083C1616[] = _("SYSーCYCLINGーROAD"); +static const u8 gUnknown_Debug_083C1627[] = _("SYSーSAFARIーMODE"); +static const u8 gUnknown_Debug_083C1637[] = _("SYSーCRUISEーMODE"); + +static const struct MenuAction gUnknown_Debug_083C1647[] = { + {gUnknown_Debug_083C15AC, DummyMenuAction}, + {gUnknown_Debug_083C15BB, DummyMenuAction}, + {gUnknown_Debug_083C15CA, DummyMenuAction}, + {gUnknown_Debug_083C15DD, DummyMenuAction}, + {gUnknown_Debug_083C15F0, DummyMenuAction}, + {gUnknown_Debug_083C1605, DummyMenuAction}, + {gUnknown_Debug_083C1616, DummyMenuAction}, + {gUnknown_Debug_083C1627, DummyMenuAction}, + {gUnknown_Debug_083C1637, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1690[] = _("SYSーTVーHOME"); +static const u8 gUnknown_Debug_083C169C[] = _("SYSーTVーWATCH"); +static const u8 gUnknown_Debug_083C16A9[] = _("SYSーTVSTART"); +static const u8 gUnknown_Debug_083C16B5[] = _("SYSーPOPWORDーINPUT"); +static const u8 gUnknown_Debug_083C16C7[] = _("SYSーMIXーRECORD"); +static const u8 gUnknown_Debug_083C16D6[] = _("SYSーCLOCKーSET"); +static const u8 gUnknown_Debug_083C16E4[] = _("SYSーCAVEーSHIP"); +static const u8 gUnknown_Debug_083C16F2[] = _("SYSーCAVEーWONDER"); +static const u8 gUnknown_Debug_083C1702[] = _("SYSーCAVEーBATTLE"); + +static const struct MenuAction gUnknown_Debug_083C1712[] = { + {gUnknown_Debug_083C1690, DummyMenuAction}, + {gUnknown_Debug_083C169C, DummyMenuAction}, + {gUnknown_Debug_083C16A9, DummyMenuAction}, + {gUnknown_Debug_083C16B5, DummyMenuAction}, + {gUnknown_Debug_083C16C7, DummyMenuAction}, + {gUnknown_Debug_083C16D6, DummyMenuAction}, + {gUnknown_Debug_083C16E4, DummyMenuAction}, + {gUnknown_Debug_083C16F2, DummyMenuAction}, + {gUnknown_Debug_083C1702, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C175C[] = _("SYSーSPECIALーZUKAN"); +static const u8 gUnknown_Debug_083C176E[] = _("SYSーASASEーTIDE"); +static const u8 gUnknown_Debug_083C177D[] = _("SYSーRIBBONーGET"); +static const u8 gUnknown_Debug_083C178C[] = _("SYSーPASOーMAYUMI"); +static const u8 gUnknown_Debug_083C179C[] = _("SYSーEXDATAーENABLE"); +static const u8 gUnknown_Debug_083C17AE[] = _("SYSーTENJIーANAWOHORU"); +static const u8 gUnknown_Debug_083C17C2[] = _("SYSーTENJIーKAIRIKI"); +static const u8 gUnknown_Debug_083C17D4[] = _("SYSーTENJIーWAIT"); +static const u8 gUnknown_Debug_083C17E3[] = _("SYSーTENJIーSORAWOTOBU"); + +static const struct MenuAction gUnknown_Debug_083C17F8[] = { + {gUnknown_Debug_083C175C, DummyMenuAction}, + {gUnknown_Debug_083C176E, DummyMenuAction}, + {gUnknown_Debug_083C177D, DummyMenuAction}, + {gUnknown_Debug_083C178C, DummyMenuAction}, + {gUnknown_Debug_083C179C, DummyMenuAction}, + {gUnknown_Debug_083C17AE, DummyMenuAction}, + {gUnknown_Debug_083C17C2, DummyMenuAction}, + {gUnknown_Debug_083C17D4, DummyMenuAction}, + {gUnknown_Debug_083C17E3, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1840[] = _("SYSーENCーUPーITEM"); +static const u8 gUnknown_Debug_083C1850[] = _("SYSーENEーDOWNーITEM"); +static const u8 gUnknown_Debug_083C1862[] = _("SYSーKOKOROーEVENT"); +static const u8 gUnknown_Debug_083C1873[] = _("SYSーMOVEーPOKEーNEWS"); +static const u8 gUnknown_Debug_083C1886[] = _("SYSーASASEーITEM"); +static const u8 gUnknown_Debug_083C1895[] = _("SYSーBーDASH"); +static const u8 gUnknown_Debug_083C18A0[] = _("SYSーCTRLーOBJーDELETE"); +static const u8 gUnknown_Debug_083C18B4[] = _(""); +static const u8 gUnknown_Debug_083C18B5[] = _(""); + +static const struct MenuAction gUnknown_Debug_083C18B8[] = { + {gUnknown_Debug_083C1840, DummyMenuAction}, + {gUnknown_Debug_083C1850, DummyMenuAction}, + {gUnknown_Debug_083C1862, DummyMenuAction}, + {gUnknown_Debug_083C1873, DummyMenuAction}, + {gUnknown_Debug_083C1886, DummyMenuAction}, + {gUnknown_Debug_083C1895, DummyMenuAction}, + {gUnknown_Debug_083C18A0, DummyMenuAction}, + {gUnknown_Debug_083C18B4, DummyMenuAction}, + {gUnknown_Debug_083C18B5, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1900[] = _("SYSーARRIVEーSUBMARINECAVE"); +static const u8 gUnknown_Debug_083C1919[] = _("SYSーARRIVEーBATTLETOWER"); +static const u8 gUnknown_Debug_083C1930[] = _("SYSーARRIVEーISLAND"); +static const u8 gUnknown_Debug_083C1942[] = _("SYSーARRIVEーLEAGUE"); +static const u8 gUnknown_Debug_083C1954[] = _("SYSーARRIVEーSORANOHASHIRA"); +static const u8 gUnknown_Debug_083C196D[] = _(""); +static const u8 gUnknown_Debug_083C196E[] = _(""); +static const u8 gUnknown_Debug_083C196F[] = _(""); +static const u8 gUnknown_Debug_083C1970[] = _(""); + +static const struct MenuAction gDebug_0x83C1974[] = { + {gUnknown_Debug_083C1900, DummyMenuAction}, + {gUnknown_Debug_083C1919, DummyMenuAction}, + {gUnknown_Debug_083C1930, DummyMenuAction}, + {gUnknown_Debug_083C1942, DummyMenuAction}, + {gUnknown_Debug_083C1954, DummyMenuAction}, + {gUnknown_Debug_083C196D, DummyMenuAction}, + {gUnknown_Debug_083C196E, DummyMenuAction}, + {gUnknown_Debug_083C196F, DummyMenuAction}, + {gUnknown_Debug_083C1970, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C19BC[] = {8, 7, 9, 4, 9, 9, 9, 7, 5}; + +static const u16 gUnknown_Debug_083C19C6[][9] = { + {FLAG_BADGE01_GET, FLAG_BADGE02_GET, FLAG_BADGE03_GET, FLAG_BADGE04_GET, FLAG_BADGE05_GET, FLAG_BADGE06_GET, FLAG_BADGE07_GET, FLAG_BADGE08_GET}, + {FLAG_VISITED_LITTLEROOT_TOWN, FLAG_VISITED_OLDALE_TOWN, FLAG_VISITED_DEWFORD_TOWN, FLAG_VISITED_LAVARIDGE_TOWN, FLAG_VISITED_FALLARBOR_TOWN, FLAG_VISITED_VERDANTURF_TOWN, FLAG_VISITED_PACIFIDLOG_TOWN}, + {FLAG_VISITED_PETALBURG_CITY, FLAG_VISITED_SLATEPORT_CITY, FLAG_VISITED_MAUVILLE_CITY, FLAG_VISITED_RUSTBORO_CITY, FLAG_VISITED_FORTREE_CITY, FLAG_VISITED_LILYCOVE_CITY, FLAG_VISITED_MOSSDEEP_CITY, FLAG_VISITED_SOOTOPOLIS_CITY, FLAG_VISITED_EVER_GRANDE_CITY}, + {FLAG_SYS_POKEMON_GET, FLAG_SYS_POKEDEX_GET, FLAG_SYS_POKENAV_GET, FLAG_SYS_RIBBON_GET}, + {FLAG_SYS_GAME_CLEAR, FLAG_SYS_CHAT_USED, FLAG_SYS_HIPSTER_MEET, FLAG_SYS_USE_FLASH, FLAG_SYS_USE_STRENGTH, FLAG_SYS_WEATHER_CTRL, FLAG_SYS_CYCLING_ROAD, FLAG_SYS_SAFARI_MODE, FLAG_SYS_CRUISE_MODE}, + {FLAG_SYS_TV_HOME, FLAG_SYS_TV_WATCH, FLAG_SYS_TV_START, FLAG_SYS_POPWORD_INPUT, FLAG_SYS_MIX_RECORD, FLAG_SYS_CLOCK_SET, FLAG_SYS_CAVE_SHIP, FLAG_SYS_CAVE_WONDER, FLAG_SYS_CAVE_BATTLE}, + {FLAG_SYS_NATIONAL_DEX, FLAG_SYS_SHOAL_TIDE, FLAG_SYS_RIBBON_GET, FLAG_SYS_PC_LANETTE, FLAG_SYS_EXDATA_ENABLE, FLAG_SYS_BRAILLE_DIG, FLAG_SYS_BRAILLE_STRENGTH, FLAG_SYS_BRAILLE_WAIT, FLAG_SYS_BRAILLE_FLY}, + {FLAG_SYS_ENC_UP_ITEM, FLAG_SYS_ENC_DOWN_ITEM, FLAG_SYS_HAS_EON_TICKET, FLAG_SYS_TV_LATI, FLAG_SYS_SHOAL_ITEM, FLAG_SYS_B_DASH, FLAG_SYS_CTRL_OBJ_DELETE}, + {FLAG_LANDMARK_SEAFLOOR_CAVERN, FLAG_LANDMARK_BATTLE_TOWER, FLAG_LANDMARK_SOUTHERN_ISLAND, FLAG_SYS_POKEMON_LEAGUE_FLY, FLAG_LANDMARK_SKY_PILLAR} +}; + +static const u8 gDebug_0x83C1A68[] = _("FVーBALL パート1"); + +static const struct MenuAction gUnknown_Debug_083C1A78[] = { + {gDebug_0x83C1A68, debug_sub_808D8D8} +}; + +static const u8 gUnknown_Debug_083C1A80[] = _("FVーBALL1ー78"); +static const u8 gUnknown_Debug_083C1A8C[] = _("FVーBALL1ー133"); + +static const struct MenuAction gUnknown_Debug_083C1A9C[] = { + {gUnknown_Debug_083C1A80, DummyMenuAction}, + {gUnknown_Debug_083C1A8C, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1AAC[] = {2}; + +static const u16 gUnknown_Debug_083C1AAE[][9] = { + {FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_2, FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_1} +}; + +static const u8 gUnknown_Debug_083C1AC0[] = _("ジムリーダー"); +static const u8 gUnknown_Debug_083C1AC7[] = _("してんのう"); +static const u8 gUnknown_Debug_083C1ACD[] = _("みつる/Champロード"); + +static const struct MenuAction gUnknown_Debug_083C1ADC[] = { + {gUnknown_Debug_083C1AC0, debug_sub_808CD08}, + {gUnknown_Debug_083C1AC7, debug_sub_808CD60}, + {gUnknown_Debug_083C1ACD, debug_sub_808CDB8} +}; + +static const u8 gUnknown_Debug_083C1AF4[] = _("FTーGYMー01ーLEADER"); +static const u8 gUnknown_Debug_083C1B05[] = _("FTーGYMー02ーLEADER"); +static const u8 gUnknown_Debug_083C1B16[] = _("FTーGYMー03ーLEADER"); +static const u8 gUnknown_Debug_083C1B27[] = _("FTーGYMー04ーLEADER"); +static const u8 gUnknown_Debug_083C1B38[] = _("FTーGYMー05ーLEADER"); +static const u8 gUnknown_Debug_083C1B49[] = _("FTーGYMー06ーLEADER"); +static const u8 gUnknown_Debug_083C1B5A[] = _("FTーGYMー07ーLEADER"); +static const u8 gUnknown_Debug_083C1B6B[] = _("FTーGYMー08ーLEADER"); + +static const struct MenuAction gUnknown_Debug_083C1B7C[] = { + {gUnknown_Debug_083C1AF4, DummyMenuAction}, + {gUnknown_Debug_083C1B05, DummyMenuAction}, + {gUnknown_Debug_083C1B16, DummyMenuAction}, + {gUnknown_Debug_083C1B27, DummyMenuAction}, + {gUnknown_Debug_083C1B38, DummyMenuAction}, + {gUnknown_Debug_083C1B49, DummyMenuAction}, + {gUnknown_Debug_083C1B5A, DummyMenuAction}, + {gUnknown_Debug_083C1B6B, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1BBC[] = _("FTーSHITENー01"); +static const u8 gUnknown_Debug_083C1BC9[] = _("FTーSHITENー02"); +static const u8 gUnknown_Debug_083C1BD6[] = _("FTーSHITENー03"); +static const u8 gUnknown_Debug_083C1BE3[] = _("FTーSHITENー04"); + +static const struct MenuAction gUnknown_Debug_083C1BF0[] = { + {gUnknown_Debug_083C1BBC, DummyMenuAction}, + {gUnknown_Debug_083C1BC9, DummyMenuAction}, + {gUnknown_Debug_083C1BD6, DummyMenuAction}, + {gUnknown_Debug_083C1BE3, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1C10[] = _("FTーMITSURUー01ーCAVEーD1301"); + +static const struct MenuAction gUnknown_Debug_083C1C2C[] = { + {gUnknown_Debug_083C1C10, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1C34[] = {8, 4, 1}; +static const u16 gUnknown_Debug_083C1C38[][9] = { + {FLAG_DEFEATED_RUSTBORO_GYM, FLAG_DEFEATED_DEWFORD_GYM, FLAG_DEFEATED_MAUVILLE_GYM, FLAG_DEFEATED_LAVARIDGE_GYM, FLAG_DEFEATED_PETALBURG_GYM, FLAG_DEFEATED_FORTREE_GYM, FLAG_DEFEATED_MOSSDEEP_GYM, FLAG_DEFEATED_SOOTOPOLIS_GYM}, + {FLAG_DEFEATED_ELITE_4_SYDNEY, FLAG_DEFEATED_ELITE_4_PHOEBE, FLAG_DEFEATED_ELITE_4_GLACIA, FLAG_DEFEATED_ELITE_4_DRAKE}, + {0x04E1} +}; + +static const u8 gUnknown_Debug_083C1C6E[] = _("120/119ばんどうろカクレオン"); +static const u8 gUnknown_Debug_083C1C80[] = _("そのた1 / SUPPORTM/W"); +static const u8 gUnknown_Debug_083C1C92[] = _("ODAMAKI/FIGHTER1"); +static const u8 gUnknown_Debug_083C1CA3[] = _("MITSURU/TENKI"); +static const u8 gUnknown_Debug_083C1CB1[] = _("そのた2 /DAIGO"); +static const u8 gUnknown_Debug_083C1CBD[] = _("POKE/POKEMON"); +static const u8 gUnknown_Debug_083C1CCA[] = _("MAMA/SUPPORT02"); +static const u8 gUnknown_Debug_083C1CD9[] = _("HAGI"); +static const u8 gUnknown_Debug_083C1CDE[] = _("SUPPORT01"); + +static const struct MenuAction gUnknown_Debug_083C1CE8[] = { + {gUnknown_Debug_083C1C6E, debug_sub_808C85C}, + {gUnknown_Debug_083C1C80, debug_sub_808C8B4}, + {gUnknown_Debug_083C1C92, debug_sub_808C90C}, + {gUnknown_Debug_083C1CA3, debug_sub_808C964}, + {gUnknown_Debug_083C1CB1, debug_sub_808C9BC}, + {gUnknown_Debug_083C1CBD, debug_sub_808CA14}, + {gUnknown_Debug_083C1CCA, debug_sub_808CA6C}, + {gUnknown_Debug_083C1CD9, debug_sub_808CAC4}, + {gUnknown_Debug_083C1CDE, debug_sub_808CB1C} +}; + +static const u8 gUnknown_Debug_083C1D30[] = _("FVーKAKUREONBー01ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1D4B[] = _("FVーKAKUREー01ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1D63[] = _("FVーKAKUREー02ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1D7B[] = _("FVーKAKUREー03ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1D93[] = _("FVーKAKUREー04ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1DAB[] = _("FVーKAKUREー05ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1DC3[] = _("FVーKAKUREー06ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1DDB[] = _("FVーKAKUREー01ーFIELDーR119"); +static const u8 gUnknown_Debug_083C1DF3[] = _("FVーKAKUREー02ーFIELDーR119"); + +static const struct MenuAction gUnknown_Debug_083C1E0C[] = { + {gUnknown_Debug_083C1D30, DummyMenuAction}, + {gUnknown_Debug_083C1D4B, DummyMenuAction}, + {gUnknown_Debug_083C1D63, DummyMenuAction}, + {gUnknown_Debug_083C1D7B, DummyMenuAction}, + {gUnknown_Debug_083C1D93, DummyMenuAction}, + {gUnknown_Debug_083C1DAB, DummyMenuAction}, + {gUnknown_Debug_083C1DC3, DummyMenuAction}, + {gUnknown_Debug_083C1DDB, DummyMenuAction}, + {gUnknown_Debug_083C1DF3, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1E54[] = _("FVーBALLー01ーC107ーR0501"); +static const u8 gUnknown_Debug_083C1E6A[] = _("FVーWORKERM1ー04ーFIELDーC104"); +static const u8 gUnknown_Debug_083C1E84[] = _("FVーSUBMARINEー06ーCAVEーD1101"); +static const u8 gUnknown_Debug_083C1E9F[] = _("FVーGUESTーALLーC106ーR0102"); +static const u8 gUnknown_Debug_083C1EB7[] = _("FVーHORIDASIー01ーC106ーR1106"); +static const u8 gUnknown_Debug_083C1ED1[] = _("FVーMIDDLEM1ー01ーR110ーR0101"); +static const u8 gUnknown_Debug_083C1EEB[] = _("FVーFUNEー01ーC102ーR0601"); +static const u8 gUnknown_Debug_083C1F01[] = _("FVーSUPPORTWー01ーT101ーR0202"); +static const u8 gUnknown_Debug_083C1F1B[] = _("FVーSUPPORTMー01ーT101ーR0102"); + +static const struct MenuAction gUnknown_Debug_083C1F38[] = { + {gUnknown_Debug_083C1E54, DummyMenuAction}, + {gUnknown_Debug_083C1E6A, DummyMenuAction}, + {gUnknown_Debug_083C1E84, DummyMenuAction}, + {gUnknown_Debug_083C1E9F, DummyMenuAction}, + {gUnknown_Debug_083C1EB7, DummyMenuAction}, + {gUnknown_Debug_083C1ED1, DummyMenuAction}, + {gUnknown_Debug_083C1EEB, DummyMenuAction}, + {gUnknown_Debug_083C1F01, DummyMenuAction}, + {gUnknown_Debug_083C1F1B, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1F80[] = _("FVーODAMAKIー01ーFIELDーR101"); +static const u8 gUnknown_Debug_083C1F99[] = _("FVーODAMAKIー01ーT101ーR0301"); +static const u8 gUnknown_Debug_083C1FB2[] = _("FVーODAMAKIーHYOKAーT101ーR0301"); +static const u8 gUnknown_Debug_083C1FCE[] = _("FVーODAMAKIーHYOKAーFIELDーR101"); +static const u8 gUnknown_Debug_083C1FEA[] = _("FVーODAMAKIーHYOKAーFIELDーR103"); +static const u8 gUnknown_Debug_083C2006[] = _("FVーODAMAKIー01ーC109ーR0105"); +static const u8 gUnknown_Debug_083C201F[] = _("FVーFIGHTERー01ーCAVEーD0201"); +static const u8 gUnknown_Debug_083C2038[] = _("FVーFIGHTERー01ーT106ーR0201"); +static const u8 gUnknown_Debug_083C2051[] = _("FVーFIGHTERー01ーFIELDーR116"); + +static const struct MenuAction gUnknown_Debug_083C206C[] = { + {gUnknown_Debug_083C1F80, DummyMenuAction}, + {gUnknown_Debug_083C1F99, DummyMenuAction}, + {gUnknown_Debug_083C1FB2, DummyMenuAction}, + {gUnknown_Debug_083C1FCE, DummyMenuAction}, + {gUnknown_Debug_083C1FEA, DummyMenuAction}, + {gUnknown_Debug_083C2006, DummyMenuAction}, + {gUnknown_Debug_083C201F, DummyMenuAction}, + {gUnknown_Debug_083C2038, DummyMenuAction}, + {gUnknown_Debug_083C2051, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C20B4[] = _("FVーMITSURUー01ーFIELDーC101"); +static const u8 gUnknown_Debug_083C20CD[] = _("FVーMITSURUー02ーCAVEーD1301"); +static const u8 gUnknown_Debug_083C20E6[] = _("FVーMITSURUー01ーFIELDーC103"); +static const u8 gUnknown_Debug_083C20FF[] = _("FVーMITSURUー01ーT106ーR0201"); +static const u8 gUnknown_Debug_083C2118[] = _("FVーMITSURUー01ーCAVEーD1301"); +static const u8 gUnknown_Debug_083C2131[] = _("FVーMITSURUー01ーC101ーR0201"); +static const u8 gUnknown_Debug_083C214A[] = _("FVーMITSURUー01ーFIELDーR102"); +static const u8 gUnknown_Debug_083C2163[] = _("FVーTENKIー01ーR119ーR101"); +static const u8 gUnknown_Debug_083C2179[] = _("FVーTENKIー01ーR119ーR102"); + +static const struct MenuAction gUnknown_Debug_083C2190[] = { + {gUnknown_Debug_083C20B4, DummyMenuAction}, + {gUnknown_Debug_083C20CD, DummyMenuAction}, + {gUnknown_Debug_083C20E6, DummyMenuAction}, + {gUnknown_Debug_083C20FF, DummyMenuAction}, + {gUnknown_Debug_083C2118, DummyMenuAction}, + {gUnknown_Debug_083C2131, DummyMenuAction}, + {gUnknown_Debug_083C214A, DummyMenuAction}, + {gUnknown_Debug_083C2163, DummyMenuAction}, + {gUnknown_Debug_083C2179, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C21D8[] = _("FVーDAIGOー01ーCAVEーD0504"); +static const u8 gUnknown_Debug_083C21EF[] = _("FVーDAIGOー01ーFIELDーR128"); +static const u8 gUnknown_Debug_083C2206[] = _("FVーDAIGOー01ーFIELDーR118"); +static const u8 gUnknown_Debug_083C221D[] = _("FVーDAIGOー01ーC107ーR0501"); +static const u8 gUnknown_Debug_083C2234[] = _("FVーDAIGOー01ーFIELDーR120"); +static const u8 gUnknown_Debug_083C224B[] = _("FVーDAIGOー01ーFIELDーR108"); + +static const struct MenuAction gUnknown_Debug_083C2264[] = { + {gUnknown_Debug_083C21D8, DummyMenuAction}, + {gUnknown_Debug_083C21EF, DummyMenuAction}, + {gUnknown_Debug_083C2206, DummyMenuAction}, + {gUnknown_Debug_083C221D, DummyMenuAction}, + {gUnknown_Debug_083C2234, DummyMenuAction}, + {gUnknown_Debug_083C224B, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2294[] = _("FVーPOKE1ー02ーCAVEーD1111"); +static const u8 gUnknown_Debug_083C22AB[] = _("FVーPOKE1ー01ーCAVEーD0601"); +static const u8 gUnknown_Debug_083C22C2[] = _("FVーPOKE1ー02ーCAVEーD0601"); +static const u8 gUnknown_Debug_083C22D9[] = _("FVーPOKE1ー01ーFIELDーR101"); +static const u8 gUnknown_Debug_083C22F0[] = _("FVーPOKE1ー01ーOPENINGーROOM01"); +static const u8 gUnknown_Debug_083C230B[] = _("FVーPOKE1ー02ーOPENINGーROOM01"); +static const u8 gUnknown_Debug_083C2326[] = _("FVーPOKE1ー01ーCAVEーD2308"); +static const u8 gUnknown_Debug_083C233D[] = _("FVーPOKEMONー01ーCAVEーD0201"); +static const u8 gUnknown_Debug_083C2356[] = _("FVーPOKEMONー01ーR104ーR0101"); + +static const struct MenuAction gUnknown_Debug_083C2370[] = { + {gUnknown_Debug_083C2294, DummyMenuAction}, + {gUnknown_Debug_083C22AB, DummyMenuAction}, + {gUnknown_Debug_083C22C2, DummyMenuAction}, + {gUnknown_Debug_083C22D9, DummyMenuAction}, + {gUnknown_Debug_083C22F0, DummyMenuAction}, + {gUnknown_Debug_083C230B, DummyMenuAction}, + {gUnknown_Debug_083C2326, DummyMenuAction}, + {gUnknown_Debug_083C233D, DummyMenuAction}, + {gUnknown_Debug_083C2356, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C23B8[] = _("FVーMAMAー01ーFIELDーT101"); +static const u8 gUnknown_Debug_083C23CE[] = _("FVーMAMAー01ーOPENINGーROOM02"); +static const u8 gUnknown_Debug_083C23E8[] = _("FVーMAMAー01ーT101ーR0101"); +static const u8 gUnknown_Debug_083C23FE[] = _("FVーMAMAー01ーT101ーR0201"); +static const u8 gUnknown_Debug_083C2414[] = _("FVーMAMAー02ーT101ーR0101"); +static const u8 gUnknown_Debug_083C242A[] = _("FVーMAMAー02ーT101ーR0201"); +static const u8 gUnknown_Debug_083C2440[] = _("FVーSUPPORTー02ーFIELDーR110"); +static const u8 gUnknown_Debug_083C2459[] = _("FVーSUPPORTー02ーFIELDーR119"); +static const u8 gUnknown_Debug_083C2472[] = _("FVーSUPPORTー02ーFIELDーT104"); + +static const struct MenuAction gUnknown_Debug_083C248C[] = { + {gUnknown_Debug_083C23B8, DummyMenuAction}, + {gUnknown_Debug_083C23CE, DummyMenuAction}, + {gUnknown_Debug_083C23E8, DummyMenuAction}, + {gUnknown_Debug_083C23FE, DummyMenuAction}, + {gUnknown_Debug_083C2414, DummyMenuAction}, + {gUnknown_Debug_083C242A, DummyMenuAction}, + {gUnknown_Debug_083C2440, DummyMenuAction}, + {gUnknown_Debug_083C2459, DummyMenuAction}, + {gUnknown_Debug_083C2472, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C24D4[] = _("FVーHAGIー01ーFIELDーR104"); +static const u8 gUnknown_Debug_083C24EA[] = _("FVーHAGIー01ーR104ーR0101"); +static const u8 gUnknown_Debug_083C2500[] = _("FVーHAGIー01ーFIELDーT103"); +static const u8 gUnknown_Debug_083C2516[] = _("FVーHAGIー01ーFIELDーR109"); +static const u8 gUnknown_Debug_083C252C[] = _("FVーHAGIー01ーC102ーR0601"); +static const u8 gUnknown_Debug_083C2542[] = _("FVーHAGIー01ーC102ーR0101"); +static const u8 gUnknown_Debug_083C2558[] = _("FVーHAGIー01ーCAVEーD0201"); +static const u8 gUnknown_Debug_083C256E[] = _("FVーHAGIー01ーFIELDーR116"); +static const u8 gUnknown_Debug_083C2584[] = _("FVーHAGIー01ーSPーSHIP01"); + +static const struct MenuAction gUnknown_Debug_083C259C[] = { + {gUnknown_Debug_083C24D4, DummyMenuAction}, + {gUnknown_Debug_083C24EA, DummyMenuAction}, + {gUnknown_Debug_083C2500, DummyMenuAction}, + {gUnknown_Debug_083C2516, DummyMenuAction}, + {gUnknown_Debug_083C252C, DummyMenuAction}, + {gUnknown_Debug_083C2542, DummyMenuAction}, + {gUnknown_Debug_083C2558, DummyMenuAction}, + {gUnknown_Debug_083C256E, DummyMenuAction}, + {gUnknown_Debug_083C2584, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C25E4[] = _("FVーSUPPORTー01ーT101ーR0301"); +static const u8 gUnknown_Debug_083C25FD[] = _("FVーSUPPORTー01ーC109ーR0105"); +static const u8 gUnknown_Debug_083C2616[] = _("FVーSUPPORTー01ーFIELDーC104"); +static const u8 gUnknown_Debug_083C262F[] = _("FVーSUPPORTー01ーFIELDーC106"); +static const u8 gUnknown_Debug_083C2648[] = _("FVーSUPPORTー01ーFIELDーR103"); +static const u8 gUnknown_Debug_083C2661[] = _("FVーSUPPORTー01ーFIELDーR110"); +static const u8 gUnknown_Debug_083C267A[] = _("FVーSUPPORTー01ーFIELDーR119"); +static const u8 gUnknown_Debug_083C2693[] = _("FVーSUPPORTー01ーFIELDーT104"); +static const u8 gUnknown_Debug_083C26AC[] = _("FVーSUPPORTー01ーFIELDーT102"); + +static const struct MenuAction gUnknown_Debug_083C26C8[] = { + {gUnknown_Debug_083C25E4, DummyMenuAction}, + {gUnknown_Debug_083C25FD, DummyMenuAction}, + {gUnknown_Debug_083C2616, DummyMenuAction}, + {gUnknown_Debug_083C262F, DummyMenuAction}, + {gUnknown_Debug_083C2648, DummyMenuAction}, + {gUnknown_Debug_083C2661, DummyMenuAction}, + {gUnknown_Debug_083C267A, DummyMenuAction}, + {gUnknown_Debug_083C2693, DummyMenuAction}, + {gUnknown_Debug_083C26AC, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2710[] = {9, 9, 9, 9, 6, 9, 9, 9, 9}; + +static const u16 gUnknown_Debug_083C271A[][9] = { + {FLAG_HIDE_KECLEON_ROUTE120_2, FLAG_HIDE_KECLEON_ROUTE120_1, FLAG_HIDE_KECLEON_ROUTE120_3, FLAG_HIDE_KECLEON_ROUTE120_4, FLAG_HIDE_KECLEON_ROUTE120_5, FLAG_HIDE_KECLEON_ROUTE120_6, FLAG_HIDE_KECLEON_ROUTE120_7, FLAG_HIDE_KECLEON_ROUTE119_1, FLAG_HIDE_KECLEON_ROUTE119_2}, + {FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE, FLAG_HIDE_DEVON_RUSTBORO, FLAG_HIDE_UNDERWATER_SUBMARINE_INTERACTION, FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE, FLAG_HIDE_ROOFTOP_LADY_LILYCOVE_MART, FLAG_HIDE_TRICKMASTER_ENTRANCE, 0x352, FLAG_HIDE_MAY_UPSTAIRS, FLAG_HIDE_BRENDAN_UPSTAIRS}, + {FLAG_HIDE_BIRCH_BATTLE_POOCHYENA, FLAG_HIDE_BIRCH_IN_LAB, FLAG_UNKNOWN_BIRCH_380, FLAG_HIDE_BIRCH_ROUTE101, FLAG_HIDE_BIRCH_ROUTE103, FLAG_HIDE_BIRCH_CHAMPIONS_ROOM, FLAG_HIDE_BOYFRIEND_RUSTURF_TUNNEL, FLAG_HIDE_BOYFRIEND_WANDAS_HOUSE, FLAG_HIDE_TUNNER_DIGGER_ROUTE116}, + {FLAG_HIDE_WALLY_PETALBURG, FLAG_HIDE_WALLY_DEFEATED_VICTORY_ROAD, FLAG_HIDE_WALLY_MAUVILLE, FLAG_HIDE_WALLY_WANDAS_HOUSE, FLAG_HIDE_WALLY_BATTLE_VICTORY_ROAD, FLAG_HIDE_WALLY_PETALBURG_GYM, FLAG_UNKNOWN_363, FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_1F, FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_2F}, + {FLAG_HIDE_STEVEN_GRANITE_CAVE, FLAG_HIDE_STEVEN_ROUTE128, FLAG_HIDE_STEVEN_ROUTE118, FLAG_HIDE_STEVEN_STEVENS_HOUSE, FLAG_HIDE_STEVEN_ROUTE120, FLAG_HIDE_STEVEN_SOOTOPOLIS}, + {FLAG_HIDE_SLEEPING_MON_SEAFLOOR_CAVERN, FLAG_UNKNOWN_2E1, FLAG_UNKNOWN_2EC, FLAG_HIDE_POOCHYENA_ROUTE101, FLAG_HIDE_MACHOKE_MOVER_1, FLAG_HIDE_MACHOKE_MOVER_2, 0x305, FLAG_HIDE_PEEKO_RUSTURF_TUNNEL, FLAG_HIDE_PEEKO_BRINEY_HOUSE}, + {FLAG_HIDE_MOM_LITTLEROOT, FLAG_HIDE_MOM_UPSTAIRS, FLAG_HIDE_BRENDAN_MOM_DOWNSTAIRS, FLAG_HIDE_MAY_MOM_DOWNSTAIRS, FLAG_UNKNOWN_30E, FLAG_UNKNOWN_30F, FLAG_HIDE_RIVAL_ON_BIKE_ROUTE110, FLAG_HIDE_RIVAL_ROUTE119_ON_BIKE, FLAG_HIDE_RIVAL_LAVARIDGE_2}, + {FLAG_HIDE_MR_BRINEY_ROUTE104, FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE, FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN, FLAG_HIDE_MR_BRINEY_ROUTE109, FLAG_UNKNOWN_34F, FLAG_HIDE_BRINEY_SLATEPORT_SHIPYARD, FLAG_HIDE_BRINEY_RUSTURF_TUNNEL, FLAG_HIDE_BRINEY_ROUTE116, FLAG_HIDE_BRINEY_AND_PEEKO_SS_TIDAL}, + {FLAG_HIDE_RIVAL_BIRCH_LAB, FLAG_HIDE_RIVAL_CHAMPIONS_ROOM, FLAG_HIDE_RIVAL_RUSTBORO, FLAG_HIDE_RIVAL_LILYCOVE_MART, FLAG_HIDE_RIVAL_ROUTE103, FLAG_HIDE_RIVAL_ROUTE110, FLAG_HIDE_RIVAL_ROUTE119, FLAG_HIDE_RIVAL_LAVARIDGE_1, FLAG_HIDE_RIVAL_OLDALE_TOWN} +}; + +static const u8 gUnknown_Debug_083C27BC[] = _("FEひでんわざ/デボンかんれん"); +static const u8 gUnknown_Debug_083C27CC[] = _("FEだいじなアイテムPART1"); +static const u8 gUnknown_Debug_083C27DC[] = _("そのた1"); +static const u8 gUnknown_Debug_083C27E1[] = _("MITSURU/DOOR"); +static const u8 gUnknown_Debug_083C27EE[] = _("カラクリやしき10のやじるし/GYM07"); +static const u8 gUnknown_Debug_083C2803[] = _("SUPPORT/そのた4"); +static const u8 gUnknown_Debug_083C2810[] = _("DAISUKI/そのた5"); +static const u8 gUnknown_Debug_083C281D[] = _("そのた2"); +static const u8 gUnknown_Debug_083C2822[] = _("そのた6"); + +static const struct MenuAction gUnknown_Debug_083C2828[] = { + {gUnknown_Debug_083C27BC, debug_sub_808C3B0}, + {gUnknown_Debug_083C27CC, debug_sub_808C408}, + {gUnknown_Debug_083C27DC, debug_sub_808C460}, + {gUnknown_Debug_083C27E1, debug_sub_808C4B8}, + {gUnknown_Debug_083C27EE, debug_sub_808C510}, + {gUnknown_Debug_083C2803, debug_sub_808C568}, + {gUnknown_Debug_083C2810, debug_sub_808C5C0}, + {gUnknown_Debug_083C281D, debug_sub_808C618}, + {gUnknown_Debug_083C2822, debug_sub_808C670} +}; + +static const u8 gUnknown_Debug_083C2870[] = _("FEーHWAZA01ーGET"); +static const u8 gUnknown_Debug_083C287F[] = _("FEーHWAZA02ー01ーFIELDR119"); +static const u8 gUnknown_Debug_083C2897[] = _("FEーHWAZA03ーGET"); +static const u8 gUnknown_Debug_083C28A6[] = _("FEーHWAZA04ー01ーT106ーR0201"); +static const u8 gUnknown_Debug_083C28BF[] = _("FEーHWAZA05ー01ーCAVEーD0502"); +static const u8 gUnknown_Debug_083C28D8[] = _("FEーHWAZA04ー01ーC103ーR0301"); +static const u8 gUnknown_Debug_083C28F1[] = _("FEーDEBONーNIMOTSUーRETURN"); +static const u8 gUnknown_Debug_083C2909[] = _("FEーDEBONー01ーFIELDーC104"); +static const u8 gUnknown_Debug_083C2920[] = _("FEーDEBONー02ーFIELDーC104"); + +static const struct MenuAction gUnknown_Debug_083C2938[] = { + {gUnknown_Debug_083C2870, DummyMenuAction}, + {gUnknown_Debug_083C287F, DummyMenuAction}, + {gUnknown_Debug_083C2897, DummyMenuAction}, + {gUnknown_Debug_083C28A6, DummyMenuAction}, + {gUnknown_Debug_083C28BF, DummyMenuAction}, + {gUnknown_Debug_083C28D8, DummyMenuAction}, + {gUnknown_Debug_083C28F1, DummyMenuAction}, + {gUnknown_Debug_083C2909, DummyMenuAction}, + {gUnknown_Debug_083C2920, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2980[] = _("FEーCYCLEー01ーP01ーP01ーC103ーR0201"); +static const u8 gUnknown_Debug_083C299F[] = _("FEーSCOOPー01ーP01ーFIELDーR115"); +static const u8 gUnknown_Debug_083C29BA[] = _("FEーROPEー01ーP01ーFIELDーR114"); +static const u8 gUnknown_Debug_083C29D4[] = _("FEーKAMAー01ーP01ーFIELDーR119"); +static const u8 gUnknown_Debug_083C29EE[] = _("FEーZYOUROーGET"); +static const u8 gUnknown_Debug_083C29FC[] = _("FEーCUBECASEーGET"); +static const u8 gUnknown_Debug_083C2A0C[] = _("FEーBORONOTURIZAOーGET"); +static const u8 gUnknown_Debug_083C2A21[] = _("FEーIITURIZAOーGET"); +static const u8 gUnknown_Debug_083C2A32[] = _("FEーSUGOITURIZAOーGET"); + +static const struct MenuAction gUnknown_Debug_083C2A48[] = { + {gUnknown_Debug_083C2980, DummyMenuAction}, + {gUnknown_Debug_083C299F, DummyMenuAction}, + {gUnknown_Debug_083C29BA, DummyMenuAction}, + {gUnknown_Debug_083C29D4, DummyMenuAction}, + {gUnknown_Debug_083C29EE, DummyMenuAction}, + {gUnknown_Debug_083C29FC, DummyMenuAction}, + {gUnknown_Debug_083C2A0C, DummyMenuAction}, + {gUnknown_Debug_083C2A21, DummyMenuAction}, + {gUnknown_Debug_083C2A32, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2A90[] = _("FEーBOSSー01ーCAVEーD0701"); +static const u8 gUnknown_Debug_083C2AA6[] = _("FEーTANTIKIーRETURN"); +static const u8 gUnknown_Debug_083C2AB8[] = _("FEーPOKE1ー01ーCAVEーD1111"); +static const u8 gUnknown_Debug_083C2ACF[] = _("FEーPOKE1ー01ーCAVEーD1206"); +static const u8 gUnknown_Debug_083C2AE6[] = _("FEーSHOPー01ーC104ーFS01"); +static const u8 gUnknown_Debug_083C2AFB[] = _("FEーHUNENOTIKETTーGET"); +static const u8 gUnknown_Debug_083C2B0F[] = _("FEーKAKUREー01ーFIELDーC105"); +static const u8 gUnknown_Debug_083C2B27[] = _("FEーKASEKIーRETURN"); +static const u8 gUnknown_Debug_083C2B38[] = _("FEーWINー01ーSPーSHIP01"); + +static const struct MenuAction gUnknown_Debug_083C2B4C[] = { + {gUnknown_Debug_083C2A90, DummyMenuAction}, + {gUnknown_Debug_083C2AA6, DummyMenuAction}, + {gUnknown_Debug_083C2AB8, DummyMenuAction}, + {gUnknown_Debug_083C2ACF, DummyMenuAction}, + {gUnknown_Debug_083C2AE6, DummyMenuAction}, + {gUnknown_Debug_083C2AFB, DummyMenuAction}, + {gUnknown_Debug_083C2B0F, DummyMenuAction}, + {gUnknown_Debug_083C2B27, DummyMenuAction}, + {gUnknown_Debug_083C2B38, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2B94[] = _("FEーMITSURUー01ーT106ーR0201"); +static const u8 gUnknown_Debug_083C2BAD[] = _("FEーMITSURUー01ーCAVEーD1301"); +static const u8 gUnknown_Debug_083C2BC6[] = _("FEーMITSURUー02ーFIELDーC103"); +static const u8 gUnknown_Debug_083C2BDF[] = _("FEーMITSURUー02ーT106ーR0201"); +static const u8 gUnknown_Debug_083C2BF8[] = _("FEーMITSURUー01ーFIELDーC103"); +static const u8 gUnknown_Debug_083C2C11[] = _("FEーDOORーOPENー01ーCAVEーD1712"); +static const u8 gUnknown_Debug_083C2C2C[] = _("FEーDOORーOPENー02ーCAVEーD1712"); +static const u8 gUnknown_Debug_083C2C47[] = _("FEーDOORーOPENー04ーCAVEーD1712"); +static const u8 gUnknown_Debug_083C2C62[] = _("FEーDOORーOPENー06ーCAVEーD1712"); + +static const struct MenuAction gUnknown_Debug_083C2C80[] = { + {gUnknown_Debug_083C2B94, DummyMenuAction}, + {gUnknown_Debug_083C2BAD, DummyMenuAction}, + {gUnknown_Debug_083C2BC6, DummyMenuAction}, + {gUnknown_Debug_083C2BDF, DummyMenuAction}, + {gUnknown_Debug_083C2BF8, DummyMenuAction}, + {gUnknown_Debug_083C2C11, DummyMenuAction}, + {gUnknown_Debug_083C2C2C, DummyMenuAction}, + {gUnknown_Debug_083C2C47, DummyMenuAction}, + {gUnknown_Debug_083C2C62, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2CC8[] = _("FEーKARAKURI10ーSWITCHー01"); +static const u8 gUnknown_Debug_083C2CE0[] = _("FEーKARAKURI10ーSWITCHー02"); +static const u8 gUnknown_Debug_083C2CF8[] = _("FEーKARAKURI10ーSWITCHー03"); +static const u8 gUnknown_Debug_083C2D10[] = _("FEーKARAKURI10ーSWITCHー04"); +static const u8 gUnknown_Debug_083C2D28[] = _("FEーKARAKURI10ーSWITCHー05"); +static const u8 gUnknown_Debug_083C2D40[] = _("FEーGYM07ーSWITCHー01"); +static const u8 gUnknown_Debug_083C2D53[] = _("FEーGYM07ーSWITCHー02"); +static const u8 gUnknown_Debug_083C2D66[] = _("FEーGYM07ーSWITCHー03"); +static const u8 gUnknown_Debug_083C2D79[] = _("FEーGYM07ーSWITCHー04"); + +static const struct MenuAction gUnknown_Debug_083C2D8C[] = { + {gUnknown_Debug_083C2CC8, DummyMenuAction}, + {gUnknown_Debug_083C2CE0, DummyMenuAction}, + {gUnknown_Debug_083C2CF8, DummyMenuAction}, + {gUnknown_Debug_083C2D10, DummyMenuAction}, + {gUnknown_Debug_083C2D28, DummyMenuAction}, + {gUnknown_Debug_083C2D40, DummyMenuAction}, + {gUnknown_Debug_083C2D53, DummyMenuAction}, + {gUnknown_Debug_083C2D66, DummyMenuAction}, + {gUnknown_Debug_083C2D79, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2DD4[] = _("FEーSUPPORTー01ーFIELDーR103"); +static const u8 gUnknown_Debug_083C2DED[] = _("FEーSUPPORTー01ーFIELDーC106"); +static const u8 gUnknown_Debug_083C2E06[] = _("FEーSUPPORTー01ーFIELDーR104"); +static const u8 gUnknown_Debug_083C2E1F[] = _("FEーSUPPORTー02ーFIELDーC106"); +static const u8 gUnknown_Debug_083C2E38[] = _("FEーSUPPORTー01ーT101ーR0202"); +static const u8 gUnknown_Debug_083C2E51[] = _("FEーMAMAー01ーP01ーT101ーR0101"); +static const u8 gUnknown_Debug_083C2E6B[] = _("FEーCLOCKーSET"); +static const u8 gUnknown_Debug_083C2E78[] = _("FEーODAMAKIー01ーP01ーT101ーR03"); +static const u8 gUnknown_Debug_083C2E93[] = _("FEーPAPAー01ーP01ーC101ーR0201"); + +static const struct MenuAction gUnknown_Debug_083C2EB0[] = { + {gUnknown_Debug_083C2DD4, DummyMenuAction}, + {gUnknown_Debug_083C2DED, DummyMenuAction}, + {gUnknown_Debug_083C2E06, DummyMenuAction}, + {gUnknown_Debug_083C2E1F, DummyMenuAction}, + {gUnknown_Debug_083C2E38, DummyMenuAction}, + {gUnknown_Debug_083C2E51, DummyMenuAction}, + {gUnknown_Debug_083C2E6B, DummyMenuAction}, + {gUnknown_Debug_083C2E78, DummyMenuAction}, + {gUnknown_Debug_083C2E93, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2EF8[] = _("FEーDAISUKIーGOODSーFLAG01"); +static const u8 gUnknown_Debug_083C2F10[] = _("FEーDAISUKIーGOODSーFLAG02"); +static const u8 gUnknown_Debug_083C2F28[] = _("FEーDAISUKIーGOODSーFLAG03"); +static const u8 gUnknown_Debug_083C2F40[] = _("FEーDAISUKIーGOODSーFLAG04"); +static const u8 gUnknown_Debug_083C2F58[] = _("FEーDAISUKIーGOODSーFLAG05"); +static const u8 gUnknown_Debug_083C2F70[] = _("FEーBASHAー01ーP01ーFIELDーC101ー"); +static const u8 gUnknown_Debug_083C2F8C[] = _("FEーBASHAー01ーP02ーFIELDーC101ー"); +static const u8 gUnknown_Debug_083C2FA8[] = _("FEーBALLー01ーP01ーSPーCONTEST"); +static const u8 gUnknown_Debug_083C2FC2[] = _("FEーWOMAN2ー01ーP01ーT101ーR0201"); + +static const struct MenuAction gUnknown_Debug_083C2FE0[] = { + {gUnknown_Debug_083C2EF8, DummyMenuAction}, + {gUnknown_Debug_083C2F10, DummyMenuAction}, + {gUnknown_Debug_083C2F28, DummyMenuAction}, + {gUnknown_Debug_083C2F40, DummyMenuAction}, + {gUnknown_Debug_083C2F58, DummyMenuAction}, + {gUnknown_Debug_083C2F70, DummyMenuAction}, + {gUnknown_Debug_083C2F8C, DummyMenuAction}, + {gUnknown_Debug_083C2FA8, DummyMenuAction}, + {gUnknown_Debug_083C2FC2, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C3028[] = _("FEーSOUKOーOPENーCAVEーD1704"); +static const u8 gUnknown_Debug_083C3041[] = _("FEーSORAISIー01ーCAVEーD0101"); +static const u8 gUnknown_Debug_083C305A[] = _("FEーMAYUMIー01ーーR114ーR0201"); +static const u8 gUnknown_Debug_083C3073[] = _("FEーKUSUNOKIー01ーC102ーR0601"); +static const u8 gUnknown_Debug_083C308D[] = _("FEーOLDWOMAN1ー01ーCAVEーD0808"); +static const u8 gUnknown_Debug_083C30A8[] = _("FEーTRAINERM1ー01ーC109ーR0206"); +static const u8 gUnknown_Debug_083C30C3[] = _("FEーSOONANOーTAMAGOーGET"); +static const u8 gUnknown_Debug_083C30D9[] = _("FEーDASHーSHOESーGET"); +static const u8 gUnknown_Debug_083C30EB[] = _("FEーDEBONSUKOOPUーGET"); + +static const struct MenuAction gUnknown_Debug_083C3100[] = { + {gUnknown_Debug_083C3028, DummyMenuAction}, + {gUnknown_Debug_083C3041, DummyMenuAction}, + {gUnknown_Debug_083C305A, DummyMenuAction}, + {gUnknown_Debug_083C3073, DummyMenuAction}, + {gUnknown_Debug_083C308D, DummyMenuAction}, + {gUnknown_Debug_083C30A8, DummyMenuAction}, + {gUnknown_Debug_083C30C3, DummyMenuAction}, + {gUnknown_Debug_083C30D9, DummyMenuAction}, + {gUnknown_Debug_083C30EB, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C3148[] = _("FEーSTUDYM1ー01ーP01ーT101R0301"); +static const u8 gUnknown_Debug_083C3164[] = _("FEーWORKERM1ー01ーC103ーR0201"); +static const u8 gUnknown_Debug_083C317E[] = _("FEーHIMITSUーGET"); +static const u8 gUnknown_Debug_083C318D[] = _(""); +static const u8 gUnknown_Debug_083C318E[] = _(""); +static const u8 gUnknown_Debug_083C318F[] = _(""); +static const u8 gUnknown_Debug_083C3190[] = _(""); +static const u8 gUnknown_Debug_083C3191[] = _(""); +static const u8 gUnknown_Debug_083C3192[] = _(""); + +static const struct MenuAction gUnknown_Debug_083C3194[] = { + {gUnknown_Debug_083C3148, DummyMenuAction}, + {gUnknown_Debug_083C3164, DummyMenuAction}, + {gUnknown_Debug_083C317E, DummyMenuAction}, + {gUnknown_Debug_083C318D, DummyMenuAction}, + {gUnknown_Debug_083C318E, DummyMenuAction}, + {gUnknown_Debug_083C318F, DummyMenuAction}, + {gUnknown_Debug_083C3190, DummyMenuAction}, + {gUnknown_Debug_083C3191, DummyMenuAction}, + {gUnknown_Debug_083C3192, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C31DC[] = {9, 9, 9, 9, 9, 9, 9, 9, 3}; + +static const u16 gUnknown_Debug_83C31E6[][9] = { + {FLAG_RECEIVED_HM01, FLAG_RECEIVED_HM02, FLAG_RECEIVED_HM03, FLAG_RECEIVED_HM04, FLAG_RECEIVED_HM05, FLAG_RECEIVED_HM06, FLAG_RETURNED_DEVON_GOODS, FLAG_DEVON_GOODS_STOLEN, FLAG_RECOVERED_DEVON_GOODS}, + {FLAG_RECEIVED_BIKE, 0x05B, 0x05C, 0x05D, FLAG_RECEIVED_WAILMER_PAIL, FLAG_RECEIVED_POKEBLOCK_CASE, FLAG_RECEIVED_OLD_ROD, FLAG_RECEIVED_GOOD_ROD, FLAG_RECEIVED_SUPER_ROD}, + {FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, FLAG_EXCHANGED_SCANNER, FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN, FLAG_LEGENDARY_BATTLE_COMPLETED, FLAG_RECEIVED_REPEAT_BALL, FLAG_RECEIVED_SS_TICKET, FLAG_KECLEON_FLED_FORTREE, FLAG_RECEIVED_FOSSIL_MON, FLAG_DEFEATED_SS_TIDAL_TRAINERS}, + {0x06C, FLAG_DEFEATED_WALLY_VICTORY_ROAD, FLAG_DEFEATED_WALLY_MAUVILLE, FLAG_WALLY_SPEECH, FLAG_DECLINED_WALLY_BATTLE_MAUVILLE, FLAG_USED_ROOM_1_KEY, FLAG_USED_ROOM_2_KEY, FLAG_USED_ROOM_4_KEY, FLAG_USED_ROOM_6_KEY}, + {FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, FLAG_MOSSDEEP_GYM_SWITCH_1, FLAG_MOSSDEEP_GYM_SWITCH_2, FLAG_MOSSDEEP_GYM_SWITCH_3, FLAG_MOSSDEEP_GYM_SWITCH_4}, + {FLAG_DEFEATED_RIVAL_ROUTE103, FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, FLAG_MET_RIVAL_RUSTBORO, FLAG_MET_RIVAL_LILYCOVE, FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE, 0x050, FLAG_SET_WALL_CLOCK, FLAG_RESCUED_BIRCH, 0x055}, + {FLAG_RECEIVED_RED_SCARF, FLAG_RECEIVED_BLUE_SCARF, FLAG_RECEIVED_PINK_SCARF, FLAG_RECEIVED_GREEN_SCARF, FLAG_RECEIVED_YELLOW_SCARF, 0x053, 0x054, FLAG_LINK_CONTEST_ROOM_POKEBALL, FLAG_MET_RIVAL_MOM}, + {FLAG_USED_STORAGE_KEY, FLAG_MET_PROF_COSMO, FLAG_RECEIVED_DOLL_LANETTE, FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE, FLAG_RETURNED_RED_OR_BLUE_ORB, FLAG_ENTERED_ELITE_FOUR, FLAG_RECEIVED_LAVARIDGE_EGG, FLAG_RECEIVED_RUNNING_SHOES, FLAG_RECEIVED_DEVON_SCOPE}, + {FLAG_BIRCH_AIDE_MET, FLAG_DECLINED_BIKE, FLAG_RECEIVED_SECRET_POWER} +}; + +static const u8 gUnknown_Debug_083C3288[] = _("CYCLEかんれん"); +static const u8 gUnknown_Debug_083C3292[] = _("おおきさくらべ"); +static const u8 gUnknown_Debug_083C329A[] = _("カウンタ"); +static const u8 gUnknown_Debug_083C329F[] = _("そのた1"); +static const u8 gUnknown_Debug_083C32A4[] = _("そのた2"); + +static const struct MenuAction gUnknown_Debug_083C32AC[] = { + {gUnknown_Debug_083C3288, debug_sub_808E400}, + {gUnknown_Debug_083C3292, debug_sub_808E458}, + {gUnknown_Debug_083C329A, debug_sub_808E4B0}, + {gUnknown_Debug_083C329F, debug_sub_808E508}, + {gUnknown_Debug_083C32A4, debug_sub_808E560} +}; + +static const u8 gUnknown_Debug_083C32D4[] = _("WKーCYCLEーROADーHIT"); +static const u8 gUnknown_Debug_083C32E6[] = _("WKーCYCLEーROADーTIMエ1"); +static const u8 gUnknown_Debug_083C32FA[] = _("WKーCYCLEーROADーTIMエ2"); + +static const u8 gUnknown_Debug_083C330E[] = _("WKーSIZEーKINOKOKOーOYAJI"); +static const u8 gUnknown_Debug_083C3325[] = _("WKーSIZEーNAMAZOーOYAJI"); + +static const u8 gUnknown_Debug_083C333A[] = _("WKーSPRAYーCOUNT"); +static const u8 gUnknown_Debug_083C3349[] = _("WKーICEーCOUNT"); +static const u8 gUnknown_Debug_083C3356[] = _("WKーASHーGATHERーCOUNT"); +static const u8 gUnknown_Debug_083C336A[] = _("WKーCRUISEーCOUNT"); +static const u8 gUnknown_Debug_083C337A[] = _("WKーFRIENDLYーSTEPーCOUNT"); +static const u8 gUnknown_Debug_083C3391[] = _("WKーPOISONーSTEPーCOUNT"); + +static const u8 gUnknown_Debug_083C33A6[] = _("WKRECYCLEーGOODS"); +static const u8 gUnknown_Debug_083C33B6[] = _("WKーFIRSTーPOKE"); +static const u8 gUnknown_Debug_083C33C4[] = _("WKーMABOROSIRNDーH"); +static const u8 gUnknown_Debug_083C33D5[] = _("WKーMABOROSIRNDーL"); +static const u8 gUnknown_Debug_083C33E6[] = _("EVーONEーDAYーWORK"); +static const u8 gUnknown_Debug_083C33F6[] = _("EVーFANWORK"); +static const u8 gUnknown_Debug_083C3401[] = _("EVーFANTIME"); +static const u8 gUnknown_Debug_083C340C[] = _("WKーKARAKURIーLEVEL"); +static const u8 gUnknown_Debug_083C341E[] = _("WKーPOKELOTーPRIZE"); + +static const u8 gUnknown_Debug_083C342F[] = _("WKーSPECIALーZUKN"); +static const u8 gUnknown_Debug_083C343F[] = _("WKーHYOUKAーDAYS"); +static const u8 gUnknown_Debug_083C344E[] = _("WKーPOKELOTーRND1"); +static const u8 gUnknown_Debug_083C345E[] = _("WKーPOKELOTーRND2"); +static const u8 gUnknown_Debug_083C346E[] = _("WKーBASEーMAPNO"); + +static const struct MenuAction gUnknown_Debug_083C347C[] = { + {gUnknown_Debug_083C32D4, DummyMenuAction}, + {gUnknown_Debug_083C32E6, DummyMenuAction}, + {gUnknown_Debug_083C32FA, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_083C3494[] = { + {gUnknown_Debug_083C330E, DummyMenuAction}, + {gUnknown_Debug_083C3325, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_083C34A4[] = { + {gUnknown_Debug_083C333A, DummyMenuAction}, + {gUnknown_Debug_083C3349, DummyMenuAction}, + {gUnknown_Debug_083C3356, DummyMenuAction}, + {gUnknown_Debug_083C336A, DummyMenuAction}, + {gUnknown_Debug_083C337A, DummyMenuAction}, + {gUnknown_Debug_083C3391, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_083C34D4[] = { + {gUnknown_Debug_083C33A6, DummyMenuAction}, + {gUnknown_Debug_083C33B6, DummyMenuAction}, + {gUnknown_Debug_083C33C4, DummyMenuAction}, + {gUnknown_Debug_083C33D5, DummyMenuAction}, + {gUnknown_Debug_083C33E6, DummyMenuAction}, + {gUnknown_Debug_083C33F6, DummyMenuAction}, + {gUnknown_Debug_083C3401, DummyMenuAction}, + {gUnknown_Debug_083C340C, DummyMenuAction}, + {gUnknown_Debug_083C341E, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_083C351C[] = { + {gUnknown_Debug_083C342F, DummyMenuAction}, + {gUnknown_Debug_083C343F, DummyMenuAction}, + {gUnknown_Debug_083C344E, DummyMenuAction}, + {gUnknown_Debug_083C345E, DummyMenuAction}, + {gUnknown_Debug_083C346E, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C3544[] = {3, 2, 6, 9, 5}; + +static const u16 gUnknown_Debug_083C354A[][9] = { + {VAR_CYCLING_ROAD_RECORD_COLLISIONS, VAR_CYCLING_ROAD_RECORD_TIME_L, VAR_CYCLING_ROAD_RECORD_TIME_H}, + {VAR_SHROOMISH_SIZE_RECORD, VAR_BARBOACH_SIZE_RECORD}, + {VAR_REPEL_STEP_COUNT, VAR_ICE_STEP_COUNT, VAR_ASH_GATHER_COUNT, VAR_CRUISE_STEP_COUNT, VAR_HAPPINESS_STEP_COUNTER, VAR_POISON_STEP_COUNTER}, + {VAR_RECYCLE_GOODS, VAR_STARTER_MON, VAR_MIRAGE_RND_H, VAR_MIRAGE_RND_L, VAR_DAYS, VAR_FANCLUB_UNKNOWN_1, VAR_FANCLUB_UNKNOWN_2, VAR_TRICK_HOUSE_ROOMS_COMPLETED, VAR_LOTTERY_PRIZE}, + {VAR_NATIONAL_DEX, VAR_BIRCH_STATE, VAR_LOTTERY_RND_L, VAR_LOTTERY_RND_H, VAR_SECRET_BASE_MAP} +}; + +static const u8 gUnknown_Debug_083C35A4[] = _("OBJCHRWORK0ー8"); +static const u8 gUnknown_Debug_083C35B2[] = _("OBJCHRWORK9ー15"); + +static const struct MenuAction gUnknown_Debug_083C35C4[] = { + {gUnknown_Debug_083C35A4, debug_sub_808E9A0}, + {gUnknown_Debug_083C35B2, debug_sub_808E9F8} +}; + +static const u8 gUnknown_Debug_083C35D4[] = _("OBJCHRWORK1"); +static const u8 gUnknown_Debug_083C35E0[] = _("OBJCHRWORK2"); +static const u8 gUnknown_Debug_083C35EC[] = _("OBJCHRWORK3"); +static const u8 gUnknown_Debug_083C35F8[] = _("OBJCHRWORK4"); +static const u8 gUnknown_Debug_083C3604[] = _("OBJCHRWORK5"); +static const u8 gUnknown_Debug_083C3610[] = _("OBJCHRWORK6"); +static const u8 gUnknown_Debug_083C361C[] = _("OBJCHRWORK7"); +static const u8 gUnknown_Debug_083C3628[] = _("OBJCHRWORK8"); +static const u8 gUnknown_Debug_083C3634[] = _("OBJCHRWORK9"); + +static const u8 gUnknown_Debug_083C3640[] = _("OBJCHRWORK10"); +static const u8 gUnknown_Debug_083C364D[] = _("OBJCHRWORK11"); +static const u8 gUnknown_Debug_083C365A[] = _("OBJCHRWORK12"); +static const u8 gUnknown_Debug_083C3667[] = _("OBJCHRWORK13"); +static const u8 gUnknown_Debug_083C3674[] = _("OBJCHRWORK14"); +static const u8 gUnknown_Debug_083C3681[] = _("OBJCHRWORK15"); +static const u8 gUnknown_Debug_083C368E[] = _("OBJCHRWORK16"); + +static const struct MenuAction gUnknown_Debug_083C369C[] = { + {gUnknown_Debug_083C35D4, DummyMenuAction}, + {gUnknown_Debug_083C35E0, DummyMenuAction}, + {gUnknown_Debug_083C35EC, DummyMenuAction}, + {gUnknown_Debug_083C35F8, DummyMenuAction}, + {gUnknown_Debug_083C3604, DummyMenuAction}, + {gUnknown_Debug_083C3610, DummyMenuAction}, + {gUnknown_Debug_083C361C, DummyMenuAction}, + {gUnknown_Debug_083C3628, DummyMenuAction}, + {gUnknown_Debug_083C3634, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_083C36E4[] = { + {gUnknown_Debug_083C3640, DummyMenuAction}, + {gUnknown_Debug_083C364D, DummyMenuAction}, + {gUnknown_Debug_083C365A, DummyMenuAction}, + {gUnknown_Debug_083C3667, DummyMenuAction}, + {gUnknown_Debug_083C3674, DummyMenuAction}, + {gUnknown_Debug_083C3681, DummyMenuAction}, + {gUnknown_Debug_083C368E, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C371C[] = {9, 7}; + +static const u16 gUnknown_Debug_083C371E[][9] = { + {VAR_OBJ_GFX_ID_0, VAR_OBJ_GFX_ID_1, VAR_OBJ_GFX_ID_2, VAR_OBJ_GFX_ID_3, VAR_OBJ_GFX_ID_4, VAR_OBJ_GFX_ID_5, VAR_OBJ_GFX_ID_6, VAR_OBJ_GFX_ID_7, VAR_OBJ_GFX_ID_8}, + {VAR_OBJ_GFX_ID_9, VAR_OBJ_GFX_ID_A, VAR_OBJ_GFX_ID_B, VAR_OBJ_GFX_ID_C, VAR_OBJ_GFX_ID_D, VAR_OBJ_GFX_ID_E, VAR_OBJ_GFX_ID_F} +}; + +static const u8 gUnknown_Debug_083C3742[] = _("SP"); +static const u8 gUnknown_Debug_083C3745[] = _("ルーム R110 PART1/カラクリ"); +static const u8 gUnknown_Debug_083C3759[] = _("ルーム R110 PART2"); +static const u8 gUnknown_Debug_083C3768[] = _("ルーム ロード"); +static const u8 gUnknown_Debug_083C3770[] = _("ソノタ1"); +static const u8 gUnknown_Debug_083C3775[] = _("ソノタ2"); + +static const struct MenuAction sMenuActions_ControlWorks_SaveWorkPart2[] = { + {gUnknown_Debug_083C3742, ControlWorks_SaveWorkPart2_SP_InitSubsubmenu}, + {gUnknown_Debug_083C3745, ControlWorks_SaveWorkPart2_RoomR110Part1TrickHouse_InitSubsubmenu}, + {gUnknown_Debug_083C3759, ControlWorks_SaveWorkPart2_RoomR110Part2_InitSubsubmenu}, + {gUnknown_Debug_083C3768, ControlWorks_SaveWorkPart2_RoomLoad_InitSubsubmenu}, + {gUnknown_Debug_083C3770, debug_sub_808E1B4}, + {gUnknown_Debug_083C3775, debug_sub_808E20C} +}; + +static const u8 gUnknown_Debug_083C37AC[] = _("WKーSCENEーSPーCONTEST"); +static const u8 gUnknown_Debug_083C37C0[] = _("WKーSCENEーSPーPC"); +static const u8 gUnknown_Debug_083C37CF[] = _("WKーSCENEーSPーCONTEST03"); +static const u8 gUnknown_Debug_083C37E5[] = _("WKーSCENEーSPーCONTESTITEM"); +static const u8 gUnknown_Debug_083C37FD[] = _("WKーSCENEーSPーOPENING"); +static const u8 gUnknown_Debug_083C3811[] = _("WKーSCENEーSPーSHIP01"); +static const u8 gUnknown_Debug_083C3824[] = _(""); +static const u8 gUnknown_Debug_083C3825[] = _(""); +static const u8 gUnknown_Debug_083C3826[] = _(""); + +static const u8 gUnknown_Debug_083C3827[] = _("WKーSCENEーR110ーR0101"); +static const u8 gUnknown_Debug_083C383B[] = _("WKーSCENEーR110ーR0102"); +static const u8 gUnknown_Debug_083C384F[] = _("WKーSCENEーR110ーR0103"); +static const u8 gUnknown_Debug_083C3863[] = _("WKーKARAKURIーDAIOU"); +static const u8 gUnknown_Debug_083C3875[] = _("WKーSCENEーSHISEN"); +static const u8 gUnknown_Debug_083C3885[] = _(""); +static const u8 gUnknown_Debug_083C3886[] = _(""); +static const u8 gUnknown_Debug_083C3887[] = _(""); +static const u8 gUnknown_Debug_083C3888[] = _(""); + +static const u8 gUnknown_Debug_083C3889[] = _("WKーSCENEーR110ーR0104"); +static const u8 gUnknown_Debug_083C389D[] = _("WKーSCENEーR110ーR0105"); +static const u8 gUnknown_Debug_083C38B1[] = _("WKーSCENEーR110ーR0106"); +static const u8 gUnknown_Debug_083C38C5[] = _("WKーSCENEーR110ーR0107"); +static const u8 gUnknown_Debug_083C38D9[] = _("WKーSCENEーR110ーR0108"); +static const u8 gUnknown_Debug_083C38ED[] = _("WKーSCENEーR110ーR0109"); +static const u8 gUnknown_Debug_083C3901[] = _("WKーSCENEーR110ーR0110"); +static const u8 gUnknown_Debug_083C3915[] = _("WKーSCENEーR110ーR0111"); +static const u8 gUnknown_Debug_083C3929[] = _("WKーSCENEー02ーR110ーR0110"); + +static const u8 gUnknown_Debug_083C3940[] = _("WKーSCENEーR104ーR0101"); +static const u8 gUnknown_Debug_083C3954[] = _("WKーSCENEーR113ーR0101"); +static const u8 gUnknown_Debug_083C3968[] = _(""); +static const u8 gUnknown_Debug_083C3969[] = _(""); +static const u8 gUnknown_Debug_083C396A[] = _(""); +static const u8 gUnknown_Debug_083C396B[] = _(""); +static const u8 gUnknown_Debug_083C396C[] = _(""); +static const u8 gUnknown_Debug_083C396D[] = _(""); +static const u8 gUnknown_Debug_083C396E[] = _(""); + +static const u8 gUnknown_Debug_083C396F[] = _("WKーSCENEーBASEーGDOODS"); +static const u8 gUnknown_Debug_083C3984[] = _("WKーSCENEーHAGIーFUNE"); +static const u8 gUnknown_Debug_083C3997[] = _("WKーSCENEーFUNEーPOS"); +static const u8 gUnknown_Debug_083C39A9[] = _("WKーSCENEーBASEーMAKE"); +static const u8 gUnknown_Debug_083C39BC[] = _("WKーSCENEーARTISTーC106ーR"); +static const u8 gUnknown_Debug_083C39D3[] = _("WKーSCENEーPOKEーLEAGUE"); +static const u8 gUnknown_Debug_083C39E8[] = _("WKーSCENEーROPEWAY"); +static const u8 gUnknown_Debug_083C39F9[] = _("WKーSCENEーSAFARIーZONE"); +static const u8 gUnknown_Debug_083C3A0E[] = _("WKーSCENEーCYCLEーROAD"); + +static const u8 gUnknown_Debug_083C3A22[] = _("WKーSCENEーR119ーTENKI"); +static const u8 gUnknown_Debug_083C3A36[] = _("WKーSCENEー01ーC102ーR0401"); +static const u8 gUnknown_Debug_083C3A4D[] = _("WKーFUTAGOー01ーFIELDーR104"); +static const u8 gUnknown_Debug_083C3A65[] = _("WKーSCENEーBATTLEーTOWER"); +static const u8 gUnknown_Debug_083C3A7B[] = _("WKーSCENEーTRーHOUSE"); +static const u8 gUnknown_Debug_083C3A8D[] = _("WKーKASEKIーTYPE"); +static const u8 gUnknown_Debug_083C3A9C[] = _(""); +static const u8 gUnknown_Debug_083C3A9D[] = _(""); +static const u8 gUnknown_Debug_083C3A9E[] = _(""); + +static const struct MenuAction gUnknown_Debug_083C3AA0[] = { + {gUnknown_Debug_083C37AC, DummyMenuAction}, + {gUnknown_Debug_083C37C0, DummyMenuAction}, + {gUnknown_Debug_083C37CF, DummyMenuAction}, + {gUnknown_Debug_083C37E5, DummyMenuAction}, + {gUnknown_Debug_083C37FD, DummyMenuAction}, + {gUnknown_Debug_083C3811, DummyMenuAction}, + {gUnknown_Debug_083C3824, DummyMenuAction}, + {gUnknown_Debug_083C3825, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_83C3AE0[] = { + {gUnknown_Debug_083C3827, DummyMenuAction}, + {gUnknown_Debug_083C383B, DummyMenuAction}, + {gUnknown_Debug_083C384F, DummyMenuAction}, + {gUnknown_Debug_083C3863, DummyMenuAction}, + {gUnknown_Debug_083C3875, DummyMenuAction}, + {gUnknown_Debug_083C3885, DummyMenuAction}, + {gUnknown_Debug_083C3886, DummyMenuAction}, + {gUnknown_Debug_083C3887, DummyMenuAction}, + {gUnknown_Debug_083C3888, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_83C3B28[] = { + {gUnknown_Debug_083C3889, DummyMenuAction}, + {gUnknown_Debug_083C389D, DummyMenuAction}, + {gUnknown_Debug_083C38B1, DummyMenuAction}, + {gUnknown_Debug_083C38C5, DummyMenuAction}, + {gUnknown_Debug_083C38D9, DummyMenuAction}, + {gUnknown_Debug_083C38ED, DummyMenuAction}, + {gUnknown_Debug_083C3901, DummyMenuAction}, + {gUnknown_Debug_083C3915, DummyMenuAction}, + {gUnknown_Debug_083C3929, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_83C3B70[] = { + {gUnknown_Debug_083C3940, DummyMenuAction}, + {gUnknown_Debug_083C3954, DummyMenuAction}, + {gUnknown_Debug_083C3968, DummyMenuAction}, + {gUnknown_Debug_083C3969, DummyMenuAction}, + {gUnknown_Debug_083C396A, DummyMenuAction}, + {gUnknown_Debug_083C396B, DummyMenuAction}, + {gUnknown_Debug_083C396C, DummyMenuAction}, + {gUnknown_Debug_083C396D, DummyMenuAction}, + {gUnknown_Debug_083C396E, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_83C3BB8[] = { + {gUnknown_Debug_083C396F, DummyMenuAction}, + {gUnknown_Debug_083C3984, DummyMenuAction}, + {gUnknown_Debug_083C3997, DummyMenuAction}, + {gUnknown_Debug_083C39A9, DummyMenuAction}, + {gUnknown_Debug_083C39BC, DummyMenuAction}, + {gUnknown_Debug_083C39D3, DummyMenuAction}, + {gUnknown_Debug_083C39E8, DummyMenuAction}, + {gUnknown_Debug_083C39F9, DummyMenuAction}, + {gUnknown_Debug_083C3A0E, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_83C3C00[] = { + {gUnknown_Debug_083C3A22, DummyMenuAction}, + {gUnknown_Debug_083C3A36, DummyMenuAction}, + {gUnknown_Debug_083C3A4D, DummyMenuAction}, + {gUnknown_Debug_083C3A65, DummyMenuAction}, + {gUnknown_Debug_083C3A7B, DummyMenuAction}, + {gUnknown_Debug_083C3A8D, DummyMenuAction}, + {gUnknown_Debug_083C3A9C, DummyMenuAction}, + {gUnknown_Debug_083C3A9D, DummyMenuAction}, + {gUnknown_Debug_083C3A9E, DummyMenuAction} +}; + +static const u8 sControlWorks_SaveWork_CountsArray[] = {6, 5, 9, 2, 9, 6}; + +static const u16 sControlWorks_SaveWork_ItemArrays[][9] = { + {VAR_LINK_CONTEST_ROOM_STATE, VAR_CABLE_CLUB_STATE, VAR_CONTEST_LOCATION, VAR_CONTEST_PRIZE_PICKUP, VAR_LITTLEROOT_INTRO_STATE, VAR_PORTHOLE_STATE}, + {VAR_TRICK_HOUSE_ENTRANCE_STATE_2, VAR_TRICK_HOUSE_PRIZE_PICKUP, VAR_TRICK_HOUSE_STATE, VAR_TRICK_HOUSE_ENTRANCE_STATE_3, VAR_TRICK_HOUSE_ENTRANCE_STATE}, + {VAR_TRICK_HOUSE_PUZZLE_1_STATE, VAR_TRICK_HOUSE_PUZZLE_2_STATE, VAR_TRICK_HOUSE_PUZZLE_3_STATE, VAR_TRICK_HOUSE_PUZZLE_4_STATE, VAR_TRICK_HOUSE_PUZZLE_5_STATE, VAR_TRICK_HOUSE_PUZZLE_6_STATE, VAR_TRICK_HOUSE_PUZZLE_7_STATE, VAR_TRICK_HOUSE_PUZZLE_8_STATE, VAR_TRICK_HOUSE_PUZZLE_7_STATE_2}, + {VAR_BRINEY_HOUSE_STATE, VAR_GLASS_WORKSHOP_STATE}, + {VAR_0x4089, VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, VAR_BRINEY_LOCATION, VAR_0x4097, VAR_LILYCOVE_CONTEST_LOBBY_STATE, VAR_ELITE_4_STATE, VAR_CABLE_CAR_STATION_STATE, VAR_SAFARI_ZONE_STATE, VAR_CYCLING_CHALLENGE_STATE}, + {VAR_WEATHER_INSTITUTE_STATE, VAR_SLATEPORT_FAN_CLUB_STATE, 0x40BB, VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, VAR_GAME_CORNER_STATE, VAR_WHICH_FOSSIL_REVIVED} +}; + +static const u8 sString_Town[] = _("タウン"); +static const u8 sString_City[] = _("シティ"); +static const u8 sString_Route_101_to_109[] = _("ロード101ー109"); +static const u8 sString_Route_110_to_118[] = _("ロード110ー118"); +static const u8 sString_Route_119_to_127[] = _("ロード119ー127"); +static const u8 sString_Route_128_to_134[] = _("ロード128ー134"); +static const u8 sString_Room_Town[] = _("ルーム タウン"); +static const u8 sString_Room_City[] = _("ルーム シティ"); +static const u8 sString_Dungeon_nai[] = _("ダンジョンない"); + +static const struct MenuAction sMenuAction_ControlWorks_SaveWork[] = { + {sString_Town, ControlWorks_SaveWork_Town_InitSubsubmenu}, + {sString_City, ControlWorks_SaveWork_City_InitSubsubmenu}, + {sString_Route_101_to_109, ControlWorks_SaveWork_Route101To109_InitSubsubmenu}, + {sString_Route_110_to_118, ControlWorks_SaveWork_Route110To118_InitSubsubmenu}, + {sString_Route_119_to_127, ControlWorks_SaveWork_Route119To127_InitSubsubmenu}, + {sString_Route_128_to_134, ControlWorks_SaveWork_Route128To134_InitSubsubmenu}, + {sString_Room_Town, ControlWorks_SaveWork_RoomTown_InitSubsubmenu}, + {sString_Room_City, ControlWorks_SaveWork_RoomCity_InitSubsubmenu}, + {sString_Dungeon_nai, ControlWorks_SaveWork_Dungeon_InitSubsubmenu} +}; + +static const u8 sString_WK_SCENE_FIELD_T101[] = _("WKーSCENEーFIELDーT101"); +static const u8 sString_WK_SCENE_FIELD_T102[] = _("WKーSCENEーFIELDーT102"); +static const u8 sString_WK_SCENE_FIELD_T103[] = _("WKーSCENEーFIELDーT103"); +static const u8 sString_WK_SCENE_FIELD_T104[] = _("WKーSCENEーFIELDーT104"); +static const u8 sString_WK_BASE_POSNO[] = _("WKーBASEーPOSNO"); +static const u8 sString_WK_SCENE_FIELD_T106[] = _("WKーSCENEーFIELDーT106"); +static const u8 sString_WK_SCENE_FIELD_T107[] = _("WKーSCENEーFIELDーT107"); +static const u8 sString_WK_SCENE_2_FIELD_T102[] = _("WKーSCENEー02ーFIELDーT102"); + +static const u8 sString_WK_SCENE_FIELD_C101[] = _("WKーSCENEーFIELDーC101"); +static const u8 sString_WK_SCENE_FIELD_C102[] = _("WKーSCENEーFIELDーC102"); +static const u8 sString_WK_SCENE_FIELD_C103[] = _("WKーSCENEーFIELDーC103"); +static const u8 sString_WK_SCENE_FIELD_C104[] = _("WKーSCENEーFIELDーC104"); +static const u8 sString_WK_SCENE_FIELD_C105[] = _("WKーSCENEーFIELDーC105"); +static const u8 sString_WK_SCENE_FIELD_C106[] = _("WKーSCENEーFIELDーC106"); +static const u8 sString_WK_SCENE_FIELD_C107[] = _("WKーSCENEーFIELDーC107"); +static const u8 sString_WK_SCENE_FIELD_C108[] = _("WKーSCENEーFIELDーC108"); +static const u8 sString_WK_SCENE_FIELD_C109[] = _("WKーSCENEーFIELDーC109"); + +static const u8 sString_WK_SCENE_FIELD_R101[] = _("WKーSCENEーFIELDーR101"); +static const u8 sString_WK_SCENE_FIELD_R102[] = _("WKーSCENEーFIELDーR102"); +static const u8 sString_WK_SCENE_FIELD_R103[] = _("WKーSCENEーFIELDーR103"); +static const u8 sString_WK_SCENE_FIELD_R104[] = _("WKーSCENEーFIELDーR104"); +static const u8 sString_WK_SCENE_FIELD_R105[] = _("WKーSCENEーFIELDーR105"); +static const u8 sString_WK_SCENE_FIELD_R106[] = _("WKーSCENEーFIELDーR106"); +static const u8 sString_WK_SCENE_FIELD_R107[] = _("WKーSCENEーFIELDーR107"); +static const u8 sString_WK_SCENE_FIELD_R108[] = _("WKーSCENEーFIELDーR108"); +static const u8 sString_WK_SCENE_FIELD_R109[] = _("WKーSCENEーFIELDーR109"); + +static const u8 sString_WK_SCENE_FIELD_R110[] = _("WKーSCENEーFIELDーR110"); +static const u8 sString_WK_SCENE_FIELD_R111[] = _("WKーSCENEーFIELDーR111"); +static const u8 sString_WK_SCENE_FIELD_R112[] = _("WKーSCENEーFIELDーR112"); +static const u8 sString_WK_SCENE_FIELD_R113[] = _("WKーSCENEーFIELDーR113"); +static const u8 sString_WK_SCENE_FIELD_R114[] = _("WKーSCENEーFIELDーR114"); +static const u8 sString_WK_SCENE_FIELD_R115[] = _("WKーSCENEーFIELDーR115"); +static const u8 sString_WK_SCENE_FIELD_R116[] = _("WKーSCENEーFIELDーR116"); +static const u8 sString_WK_SCENE_FIELD_R117[] = _("WKーSCENEーFIELDーR117"); +static const u8 sString_WK_SCENE_FIELD_R118[] = _("WKーSCENEーFIELDーR118"); + +static const u8 sString_WK_SCENE_FIELD_R119[] = _("WKーSCENEーFIELDーR119"); +static const u8 sString_WK_SCENE_FIELD_R120[] = _("WKーSCENEーFIELDーR120"); +static const u8 sString_WK_SCENE_FIELD_R121[] = _("WKーSCENEーFIELDーR121"); +static const u8 sString_WK_SCENE_FIELD_R122[] = _("WKーSCENEーFIELDーR122"); +static const u8 sString_WK_SCENE_FIELD_R123[] = _("WKーSCENEーFIELDーR123"); +static const u8 sString_WK_SCENE_FIELD_R124[] = _("WKーSCENEーFIELDーR124"); +static const u8 sString_WK_SCENE_FIELD_R125[] = _("WKーSCENEーFIELDーR125"); +static const u8 sString_WK_SCENE_FIELD_R126[] = _("WKーSCENEーFIELDーR126"); +static const u8 sString_WK_SCENE_FIELD_R127[] = _("WKーSCENEーFIELDーR127"); + +static const u8 sString_WK_SCENE_FIELD_R128[] = _("WKーSCENEーFIELDーR128"); +static const u8 sString_WK_SCENE_FIELD_R129[] = _("WKーSCENEーFIELDーR129"); +static const u8 sString_WK_SCENE_FIELD_R130[] = _("WKーSCENEーFIELDーR130"); +static const u8 sString_WK_SCENE_FIELD_R131[] = _("WKーSCENEーFIELDーR131"); +static const u8 sString_WK_SCENE_FIELD_R132[] = _("WKーSCENEーFIELDーR132"); +static const u8 sString_WK_SCENE_FIELD_R133[] = _("WKーSCENEーFIELDーR133"); +static const u8 sString_WK_SCENE_FIELD_R134[] = _("WKーSCENEーFIELDーR134"); + +static const u8 sString_WK_SCENE_T101_R0101[] = _("WKーSCENEーT101ーR0101"); +static const u8 sString_WK_SCENE_T101_R0102[] = _("WKーSCENEーT101ーR0102"); +static const u8 sString_WK_SCENE_T101_R0301[] = _("WKーSCENEーT101ーR0301"); +static const u8 sString_WK_SCENE_T101_R0201[] = _("WKーSCENEーT101ーR0201"); +static const u8 sString_WK_SCENE_T101_R0202[] = _("WKーSCENEーT101ーR0202"); +static const u8 sString_WK_SCENE_T107_R0201[] = _("WKーSCENEーT107ーR0201"); // unused string + +static const u8 sString_WK_SCENE_C101_R0201[] = _("WKーSCENEーC101ーR0201"); +static const u8 sString_WK_SCENE_C104_R0103[] = _("WKーSCENEーC104ーR0103"); +static const u8 sString_WK_SCENE_C103_R0101[] = _("WKーSCENEーC103ーR0101"); +static const u8 sString_WK_SCENE_C106_R0202[] = _("WKーSCENEーC106ーR0202"); +static const u8 sString_WK_SCENE_C106_R0401[] = _("WKーSCENEーC106ーR0401"); +static const u8 sString_WK_SCENE_C101_R0601[] = _("WKーSCENEーC102ーR0601"); +static const u8 sString_WK_SCENE_C102_R0501[] = _("WKーSCENEーC102ーR0501"); +static const u8 sString_WK_SCENE_C104_R0102[] = _("WKーSCENEーC104ーR0102"); +static const u8 sString_WK_SCENE_C107_R0501[] = _("WKーSCENEーC107ーR0501"); + +static const u8 sString_WK_SCENE_CAVE_D0601[] = _("WKーSCENEーCAVEーD0601"); +static const u8 sString_WK_SCENE_CAVE_D0201[] = _("WKーSCENEーCAVEーD0201"); +static const u8 sString_WK_SCENE_CAVE_D1206[] = _("WKーSCENEーCAVEーD1206"); +static const u8 sString_WK_SCENE_CAVE_D1111[] = _("WKーSCENEーCAVEーD1111"); +static const u8 sString_WK_SCENE_CAVE_D0701[] = _("WKーSCENEーCAVEーD0701"); +static const u8 sString_WK_SCENE_CAVE_D0808[] = _("WKーSCENEーCAVEーD0808"); +static const u8 sString_WK_SCENE_CAVE_D1602[] = _("WKーSCENEーCAVEーD1602"); +static const u8 sString_WK_SCENE_CAVE_D0101[] = _("WKーSCENEーCAVEーD0101"); +static const u8 sString_WK_SCENE_CAVE_D1301[] = _("WKーSCENEーCAVEーD1301"); + +static const struct MenuAction sMenuActions_SaveWork_Town[] = { + {sString_WK_SCENE_FIELD_T101, DummyMenuAction}, + {sString_WK_SCENE_FIELD_T102, DummyMenuAction}, + {sString_WK_SCENE_FIELD_T103, DummyMenuAction}, + {sString_WK_SCENE_FIELD_T104, DummyMenuAction}, + {sString_WK_BASE_POSNO, DummyMenuAction}, + {sString_WK_SCENE_FIELD_T106, DummyMenuAction}, + {sString_WK_SCENE_FIELD_T107, DummyMenuAction}, + {sString_WK_SCENE_2_FIELD_T102, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_City[] = { + {sString_WK_SCENE_FIELD_C101, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C102, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C103, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C104, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C105, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C106, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C107, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C108, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C109, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_Route101To109[] = { + {sString_WK_SCENE_FIELD_R101, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R102, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R103, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R104, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R105, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R106, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R107, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R108, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R109, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_Route110To118[] = { + {sString_WK_SCENE_FIELD_R110, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R111, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R112, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R113, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R114, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R115, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R116, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R117, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R118, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_Route119To127[] = { + {sString_WK_SCENE_FIELD_R119, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R120, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R121, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R122, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R123, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R124, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R125, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R126, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R127, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_Route128To134[] = { + {sString_WK_SCENE_FIELD_R128, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R129, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R130, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R131, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R132, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R133, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R134, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_RoomTown[] = { + {sString_WK_SCENE_T101_R0101, DummyMenuAction}, + {sString_WK_SCENE_T101_R0102, DummyMenuAction}, + {sString_WK_SCENE_T101_R0301, DummyMenuAction}, + {sString_WK_SCENE_T101_R0201, DummyMenuAction}, + {sString_WK_SCENE_T101_R0202, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_RoomCity[] = { + {sString_WK_SCENE_C101_R0201, DummyMenuAction}, + {sString_WK_SCENE_C104_R0103, DummyMenuAction}, + {sString_WK_SCENE_C103_R0101, DummyMenuAction}, + {sString_WK_SCENE_C106_R0202, DummyMenuAction}, + {sString_WK_SCENE_C106_R0401, DummyMenuAction}, + {sString_WK_SCENE_C101_R0601, DummyMenuAction}, + {sString_WK_SCENE_C102_R0501, DummyMenuAction}, + {sString_WK_SCENE_C104_R0102, DummyMenuAction}, + {sString_WK_SCENE_C107_R0501, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_Dungeon[] = { + {sString_WK_SCENE_CAVE_D0601, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D0201, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D1206, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D1111, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D0701, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D0808, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D1602, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D0101, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D1301, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C457C[] = {8, 9, 9, 9, 9, 7, 6, 9, 9}; + +static const u16 gUnknown_Debug_083C4586[][9] = { + {VAR_LITTLEROOT_STATE, VAR_ROUTE102_ACCESSIBLE, 0x4052, VAR_LAVARIDGE_RIVAL_STATE, VAR_CURRENT_SECRET_BASE, 0x4055, 0x4056, VAR_OLDALE_STATE}, + {VAR_PETALBURG_STATE, VAR_SLATEPORT_STATE, 0x4059, VAR_RUSTBORO_STATE, 0x405B, 0x405C, 0x405D, VAR_SOOTOPOLIS_STATE, 0x405F}, + {VAR_ROUTE101_STATE, 0x4061, VAR_ROUTE103_STATE, 0x4063, 0x4064, 0x4065, 0x4066, 0x4067, 0x4068}, + {VAR_ROUTE110_STATE, 0x406A, 0x406B, 0x406C, 0x406D, 0x406E, VAR_ROUTE116_STATE, 0x4070, VAR_ROUTE118_STATE}, + {VAR_ROUTE119_STATE, 0x4073, VAR_ROUTE121_STATE, 0x4075, 0x4076, 0x4077, 0x4078, 0x4079, 0x407A}, + {VAR_ROUTE128_STATE, 0x407C, 0x407D, 0x407E, 0x407F, 0x4080, 0x4081}, + {VAR_LITTLEROOT_HOUSES_STATE, 0x4083, VAR_BIRCH_LAB_STATE, VAR_LITTLEROOT_HOUSES_STATE_2, VAR_LITTLEROOT_RIVAL_STATE, VAR_PACIFIDLOG_TM_RECEIVED_DAY}, + {VAR_PETALBURG_GYM_STATE, VAR_DEVON_CORP_3F_STATE, VAR_MAUVILLE_GYM_STATE, VAR_LILYCOVE_MUSEUM_2F_STATE, VAR_LILYCOVE_FAN_CLUB_STATE, VAR_SLATEPORT_HARBOR_STATE, VAR_SLATEPORT_MUSEUM_1F_STATE, VAR_FOSSIL_RESURRECTION_STATE, VAR_STEVENS_HOUSE_STATE}, + {VAR_PETALBURG_WOODS_STATE, VAR_RUSTURF_TUNNEL_STATE, VAR_CAVE_OF_ORIGIN_B4F_STATE, VAR_SEAFLOOR_CAVERN_STATE, 0x40A8, VAR_MT_PYRE_STATE, VAR_NEW_MAUVILLE_STATE, VAR_METEOR_FALLS_STATE, VAR_VICTORY_ROAD_1F_STATE} +}; + +static const u8 gUnknown_Debug_083C4628[] = _("LOCALWORK0ー8"); +static const u8 gUnknown_Debug_083C4635[] = _("LOCALWORK9ー15"); + +static const struct MenuAction gUnknown_Debug_083C4644[] = { + {gUnknown_Debug_083C4628, debug_sub_808E754}, + {gUnknown_Debug_083C4635, debug_sub_808E7AC} +}; + +static const u8 gUnknown_Debug_083C4654[] = _("LOCALWORK0"); +static const u8 gUnknown_Debug_083C465F[] = _("LOCALWORK1"); +static const u8 gUnknown_Debug_083C466A[] = _("LOCALWORK2"); +static const u8 gUnknown_Debug_083C4675[] = _("LOCALWORK3"); +static const u8 gUnknown_Debug_083C4680[] = _("LOCALWORK4"); +static const u8 gUnknown_Debug_083C468B[] = _("LOCALWORK5"); +static const u8 gUnknown_Debug_083C4696[] = _("LOCALWORK6"); +static const u8 gUnknown_Debug_083C46A1[] = _("LOCALWORK7"); +static const u8 gUnknown_Debug_083C46AC[] = _("LOCALWORK8"); + +static const u8 gUnknown_Debug_083C46B7[] = _("LOCALWORK9"); +static const u8 gUnknown_Debug_083C46C2[] = _("LOCALWORK10"); +static const u8 gUnknown_Debug_083C46CE[] = _("LOCALWORK11"); +static const u8 gUnknown_Debug_083C46DA[] = _("LOCALWORK12"); +static const u8 gUnknown_Debug_083C46E6[] = _("LOCALWORK13"); +static const u8 gUnknown_Debug_083C46F2[] = _("LOCALWORK14"); +static const u8 gUnknown_Debug_083C46FE[] = _("LOCALWORK15"); + +static const struct MenuAction gUnknown_Debug_083C470C[] = { + {gUnknown_Debug_083C4654, DummyMenuAction}, + {gUnknown_Debug_083C465F, DummyMenuAction}, + {gUnknown_Debug_083C466A, DummyMenuAction}, + {gUnknown_Debug_083C4675, DummyMenuAction}, + {gUnknown_Debug_083C4680, DummyMenuAction}, + {gUnknown_Debug_083C468B, DummyMenuAction}, + {gUnknown_Debug_083C4696, DummyMenuAction}, + {gUnknown_Debug_083C46A1, DummyMenuAction}, + {gUnknown_Debug_083C46AC, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_083C4754C[] = { + {gUnknown_Debug_083C46B7, DummyMenuAction}, + {gUnknown_Debug_083C46C2, DummyMenuAction}, + {gUnknown_Debug_083C46CE, DummyMenuAction}, + {gUnknown_Debug_083C46DA, DummyMenuAction}, + {gUnknown_Debug_083C46E6, DummyMenuAction}, + {gUnknown_Debug_083C46F2, DummyMenuAction}, + {gUnknown_Debug_083C46FE, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C478C[] = {9, 7}; + +static const u16 gUnknown_Debug_083C478E[][9] = { + {VAR_TEMP_0, VAR_TEMP_1, VAR_TEMP_2, VAR_TEMP_3, VAR_TEMP_4, VAR_TEMP_5, VAR_TEMP_6, VAR_TEMP_7, VAR_TEMP_8}, + {VAR_TEMP_9, VAR_TEMP_A, VAR_TEMP_B, VAR_TEMP_C, VAR_TEMP_D, VAR_TEMP_E, VAR_TEMP_F} +}; + +static const u8 gUnknown_Debug_083C47B2[] = _("Level"); +static const u8 gUnknown_Debug_083C47B8[] = _("Scene1"); +static const u8 gUnknown_Debug_083C47BF[] = _("Scene2"); +static const u8 gUnknown_Debug_083C47C6[] = _("Scene3"); +static const u8 gUnknown_Debug_083C47CD[] = _("Scene4"); +static const u8 gUnknown_Debug_083C47D4[] = _("Scene5"); +static const u8 gUnknown_Debug_083C47DB[] = _("Scene6"); +static const u8 gUnknown_Debug_083C47E2[] = _("Scene7"); +static const u8 gUnknown_Debug_083C47E9[] = _("Scene8"); + +static const struct MenuAction gUnknown_Debug_083C47F0[] = { + {gUnknown_Debug_083C47B8, DummyMenuAction}, + {gUnknown_Debug_083C47BF, DummyMenuAction}, + {gUnknown_Debug_083C47C6, DummyMenuAction}, + {gUnknown_Debug_083C47CD, DummyMenuAction}, + {gUnknown_Debug_083C47D4, DummyMenuAction}, + {gUnknown_Debug_083C47DB, DummyMenuAction}, + {gUnknown_Debug_083C47E2, DummyMenuAction}, + {gUnknown_Debug_083C47E9, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C4830[] = _("Trick Master"); + +static const u8 gUnknown_Debug_083C483D[] = _("Hidden MASTER"); +static const u8 gUnknown_Debug_083C484B[] = _("Inside the HOUSE"); +static const u8 gUnknown_Debug_083C485C[] = _("Pass a reward"); +static const u8 gUnknown_Debug_083C486A[] = _("Rig a trick"); +static const u8 gUnknown_Debug_083C4876[] = _("MASTER is gone"); + +static const struct MenuAction gUnknown_Debug_083C4888[] = { + {gUnknown_Debug_083C483D, DummyMenuAction}, + {gUnknown_Debug_083C484B, DummyMenuAction}, + {gUnknown_Debug_083C485C, DummyMenuAction}, + {gUnknown_Debug_083C486A, DummyMenuAction}, + {gUnknown_Debug_083C4876, DummyMenuAction} +}; + +static const u8 sDummyNickname[] = _("PMNICKNAME"); +static const u8 sDummyTrainerName[] = _("BREEDER"); + +bool8 InitTomomichiDebugWindow(void) +{ + InitDebugWindow(); + return FALSE; +} + +static void debug_sub_808B868(void) +{ + c2_exit_to_overworld_1_continue_scripts_restart_music(); +} + +static bool8 InitDebugWindow(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 13, 15); + Menu_PrintItems(1, 1, ARRAY_COUNT(sMenuActions_TopMenu), sMenuActions_TopMenu); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_TopMenu), sTopMenuCursorPos, 12); + gMenuCallback = TopMenu_HandleInput; + return FALSE; +} + +static bool8 TopMenu_HandleInput(void) +{ + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + sTopMenuCursorPos = Menu_MoveCursor(-1); + } + if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + sTopMenuCursorPos = Menu_MoveCursor(+1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + return sMenuActions_TopMenu[sTopMenuCursorPos].func(); + } + if (gMain.newKeys & (B_BUTTON | START_BUTTON)) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static bool8 ContestGraphics(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 20, 11); + Menu_PrintText(sString_ContestMenuTitle, 1, 1); + Menu_PrintItems(2, 3, ARRAY_COUNT(sMenuActions_ContestPicTest), sMenuActions_ContestPicTest); + InitMenu(0, 1, 3, ARRAY_COUNT(sMenuActions_ContestPicTest), 0, 19); + gMenuCallback = ContestGraphics_HandleInput; + sPicTest_Species = SPECIES_BULBASAUR; + sPicTest_OTID = 28467; + sPicTest_Personality = 0; + sPicTest_ContestType = 1; + return FALSE; +} + +static bool8 ArtMusGraphics(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 20, 11); + Menu_PrintText(sString_Contest_ArtMuseumTitle, 1, 1); + Menu_PrintItems(2, 3, ARRAY_COUNT(sMenuActions_ArtMuseumPicTest), sMenuActions_ArtMuseumPicTest); + InitMenu(0, 1, 3, ARRAY_COUNT(sMenuActions_ArtMuseumPicTest), 0, 19); + gMenuCallback = ArtMusGraphics_HandleInput; + sPicTest_Species = SPECIES_BULBASAUR; + sPicTest_OTID = 28467; + sPicTest_Personality = 0; + sPicTest_MuseumArtTitleType = 1; + return FALSE; +} + +static bool8 PreviewData(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 20, 11); + Menu_PrintText(sString_Contest_PreviewTitle, 1, 1); + Menu_PrintItems(2, 3, ARRAY_COUNT(sMenuActions_PreviewPicTest), sMenuActions_PreviewPicTest); + InitMenu(0, 1, 3, ARRAY_COUNT(sMenuActions_PreviewPicTest), 0, 19); + gMenuCallback = PreviewData_HandleInput; + sPicTest_Species = SPECIES_BULBASAUR; + sPicTest_OTID = 28467; + sPicTest_Personality = 0; + sPicTest_PreviewType = 1; + return FALSE; +} + +static bool8 TrickHouse(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 7); + Menu_PrintText(sString_TrickRelated, 1, 1); + Menu_PrintItems(2, 3, ARRAY_COUNT(sMenuActions_TrickRelated), sMenuActions_TrickRelated); + InitMenu(0, 1, 3, ARRAY_COUNT(sMenuActions_TrickRelated), sTrickRelatedMenuCursorPos, 23); + gMenuCallback = TrickHouse_HandleInput; + return FALSE; +} + +static bool8 ControlEvents(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 5); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlEvents), sMenuActions_ControlEvents); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlEvents), sControlEventsCursorPos, 23); + gMenuCallback = ControlEvents_HandleInput; + return FALSE; +} + +static bool8 ControlFlags(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 15); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlFlags), sMenuActions_ControlFlags); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlFlags), sControlFlagsCursorPos, 23); + gMenuCallback = ControlFlags_HandleInput; + return FALSE; +} + +static bool8 ControlWorks(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 13); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlWorks), sMenuActions_ControlWorks); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlWorks), sControlWORKCursorPos, 23); + gMenuCallback = ControlWorks_HandleInput; + return FALSE; +} + +static bool8 ContestGraphics_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + switch (cursorPos) + { + case 0: + PicTest_SelectPokemon(); + break; + case 1: + PicTest_SelectPersonality(); + break; + case 2: + ContestPicTest_SelectContestType(); + break; + } + PicTest_Redraw(0); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + if (input == 3) + { + gMenuCallback = sMenuActions_ContestPicTest[3].func; + return FALSE; + } + return FALSE; +} + +static bool8 ArtMusGraphics_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + switch (cursorPos) + { + case 0: + PicTest_SelectPokemon(); + break; + case 1: + PicTest_SelectPersonality(); + break; + case 2: + MuseumArtPicTest_SelectTitleType(); + break; + } + PicTest_Redraw(1); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + if (input == 3) + { + gMenuCallback = sMenuActions_ArtMuseumPicTest[3].func; + return FALSE; + } + return FALSE; +} + +static bool8 PreviewData_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + switch (cursorPos) + { + case 0: + PicTest_SelectPokemon(); + break; + case 1: + PicTest_SelectPersonality(); + break; + case 2: + PreviewPicTest_SelectType(); + break; + } + PicTest_Redraw(2); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + if (input == 3) + { + gMenuCallback = sMenuActions_PreviewPicTest[3].func; + return FALSE; + } + return FALSE; +} + +static bool8 TrickHouse_HandleInput(void) +{ + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + sTrickRelatedMenuCursorPos = Menu_MoveCursor(-1); + } + if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + sTrickRelatedMenuCursorPos = Menu_MoveCursor(+1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + return sMenuActions_TrickRelated[sTrickRelatedMenuCursorPos].func(); + } + if (gMain.newKeys & (B_BUTTON | START_BUTTON)) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static bool8 ControlEvents_HandleInput(void) +{ + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + sControlEventsCursorPos = Menu_MoveCursor(-1); + } + if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + sControlEventsCursorPos = Menu_MoveCursor(+1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + return sMenuActions_ControlEvents[sControlEventsCursorPos].func(); + } + if (gMain.newKeys & (B_BUTTON | START_BUTTON)) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static bool8 ControlFlags_HandleInput(void) +{ + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + sControlFlagsCursorPos = Menu_MoveCursor(-1); + } + if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + sControlFlagsCursorPos = Menu_MoveCursor(+1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + return sMenuActions_ControlFlags[sControlFlagsCursorPos].func(); + } + if (gMain.newKeys & (B_BUTTON | START_BUTTON)) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static bool8 ControlWorks_HandleInput(void) +{ + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + sControlWORKCursorPos = Menu_MoveCursor(-1); + } + if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + sControlWORKCursorPos = Menu_MoveCursor(+1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + return sMenuActions_ControlWorks[sControlWORKCursorPos].func(); + } + if (gMain.newKeys & (B_BUTTON | START_BUTTON)) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static bool8 ControlEvents_InitSubmenu1(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 19); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlEvents_Events1), sMenuActions_ControlEvents_Events1); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlEvents_Events1), 0, 27); + gMenuCallback = ControlEvents_Events1_HandleInput; + return FALSE; +} + +static bool8 ControlEvents_InitSubmenu2(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 13); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlEvents_Events2), sMenuActions_ControlEvents_Events2); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlEvents_Events2), 0, 27); + gMenuCallback = ControlEvents_Events2_HandleInput; + return FALSE; +} + +static bool8 ControlEvents_Events1_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = sMenuActions_ControlEvents_Events1[input].func; + return FALSE; +} + +static bool8 ControlEvents_Events2_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = sMenuActions_ControlEvents_Events2[input].func; + return FALSE; +} + +static bool8 CallScript_DoHallOfFame(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1CFE); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveCoinCaseIfNotAlreadyOwned(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1D07); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_SetOldaleStateAfterRoute103Rival(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1D1E); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_OpenNewMauville(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1D24); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveSSTicketAndDoHallOfFame(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1D2A); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveKyogreEgg(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1D35); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveAllItems(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1D46); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveAllDecorations(void) +{ + ScriptContext1_SetupScript(DebugScript_081C221F); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveAllCoins(void) +{ + ScriptContext1_SetupScript(DebugScript_081C23E2); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_OpenSootopolisGym(void) +{ + ScriptContext1_SetupScript(DebugScript_081C23E6); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_SetMoneyTo0(void) +{ + ScriptContext1_SetupScript(DebugScript_081C23F6); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_FillPartyWithBarboach(void) +{ + ScriptContext1_SetupScript(DebugScript_081C2482); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_FillPartyWithShroomish(void) +{ + ScriptContext1_SetupScript(DebugScript_081C23FD); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveBarboachEgg(void) +{ + ScriptContext1_SetupScript(DebugScript_081C2518); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveShroomishEgg(void) +{ + ScriptContext1_SetupScript(DebugScript_081C2507); + CloseMenu(); + return TRUE; +} + +static bool8 ContestGraphics_Show(void) +{ + BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0); + gMenuCallback = debug_sub_808C280; + return FALSE; +} + +static bool8 debug_sub_808C280(void) +{ + if (!UpdatePaletteFade()) + { + CloseMenu(); + PrepareDebugOverlayBeforeShowingContestPainting(0); + SetMainCallback2(CB2_ContestPainting); + gMain.savedCallback = debug_sub_808B868; + return TRUE; + } + return FALSE; +} + +static bool8 MuseumGraphics_Show(void) +{ + BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0); + gMenuCallback = debug_sub_808C2E4; + return FALSE; +} + +static bool8 debug_sub_808C2E4(void) +{ + if (!UpdatePaletteFade()) + { + CloseMenu(); + PrepareDebugOverlayBeforeShowingContestPainting(1); + SetMainCallback2(CB2_ContestPainting); + gMain.savedCallback = debug_sub_808B868; + return TRUE; + } + return FALSE; +} + +static bool8 ControlFlags_EventFlag_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 19); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2828), gUnknown_Debug_083C2828); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2828), 0, 27); + gMenuCallback = debug_sub_808C36C; + return FALSE; +} + +static bool8 debug_sub_808C36C(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C2828[input].func; + return FALSE; +} + +static bool8 debug_sub_808C3B0(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2938) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2938), gUnknown_Debug_083C2938); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2938), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C408(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2A48) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2A48), gUnknown_Debug_083C2A48); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2A48), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C460(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2B4C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2B4C), gUnknown_Debug_083C2B4C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2B4C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C4B8(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2C80) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2C80), gUnknown_Debug_083C2C80); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2C80), 0, 28); + sFlagAndVarTest_WhichSubmenu = 3; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C510(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2D8C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2D8C), gUnknown_Debug_083C2D8C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2D8C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 4; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C568(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2EB0) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2EB0), gUnknown_Debug_083C2EB0); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2EB0), 0, 28); + sFlagAndVarTest_WhichSubmenu = 5; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C5C0(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2FE0) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2FE0), gUnknown_Debug_083C2FE0); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2FE0), 0, 28); + sFlagAndVarTest_WhichSubmenu = 6; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C618(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C3100) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C3100), gUnknown_Debug_083C3100); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C3100), 0, 28); + sFlagAndVarTest_WhichSubmenu = 7; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C670(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 3 + 1); + Menu_PrintItems(2, 1, 3, gUnknown_Debug_083C3194); + InitMenu(0, 1, 1, 3, 0, 28); + sFlagAndVarTest_WhichSubmenu = 8; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C6C8(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808C714(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808C764(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808C714(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_83C31E6[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_83C31E6[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_83C31E6[whichMenu][cursorPos]); + } +} + +static void debug_sub_808C764(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C31DC[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(gUnknown_Debug_83C31E6[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlFlags_VanishFlag_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 19); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1CE8), gUnknown_Debug_083C1CE8); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1CE8), 0, 27); + gMenuCallback = debug_sub_808C818; + return FALSE; +} + +static bool8 debug_sub_808C818(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C1CE8[input].func; + return FALSE; +} + +static bool8 debug_sub_808C85C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1E0C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1E0C), gUnknown_Debug_083C1E0C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1E0C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808C8B4(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1F38) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1F38), gUnknown_Debug_083C1F38); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1F38), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808C90C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C206C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C206C), gUnknown_Debug_083C206C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C206C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808C964(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2190) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2190), gUnknown_Debug_083C2190); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2190), 0, 28); + sFlagAndVarTest_WhichSubmenu = 3; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808C9BC(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2264) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2264), gUnknown_Debug_083C2264); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2264), 0, 28); + sFlagAndVarTest_WhichSubmenu = 4; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808CA14(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2370) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2370), gUnknown_Debug_083C2370); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2370), 0, 28); + sFlagAndVarTest_WhichSubmenu = 5; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808CA6C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C248C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C248C), gUnknown_Debug_083C248C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C248C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 6; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808CAC4(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C259C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C259C), gUnknown_Debug_083C259C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C259C), 0, 27); + sFlagAndVarTest_WhichSubmenu = 7; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808CB1C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C26C8) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C26C8), gUnknown_Debug_083C26C8); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C26C8), 0, 28); + sFlagAndVarTest_WhichSubmenu = 8; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808CB74(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808CBC0(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808CC10(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808CBC0(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_083C271A[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_083C271A[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_083C271A[whichMenu][cursorPos]); + } +} + +static void debug_sub_808CC10(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C2710[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C271A[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlFlags_TrainerFlag_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 2 * ARRAY_COUNT(gUnknown_Debug_083C1ADC) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1ADC), gUnknown_Debug_083C1ADC); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1ADC), 0, 27); + gMenuCallback = debug_sub_808CCC4; + return FALSE; +} + +static bool8 debug_sub_808CCC4(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C1ADC[input].func; + return FALSE; +} + +static bool8 debug_sub_808CD08(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1B7C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1B7C), gUnknown_Debug_083C1B7C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1B7C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808CE10; + return FALSE; +} + +static bool8 debug_sub_808CD60(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1BF0) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1BF0), gUnknown_Debug_083C1BF0); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1BF0), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808CE10; + return FALSE; +} + +static bool8 debug_sub_808CDB8(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1C2C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1C2C), gUnknown_Debug_083C1C2C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1C2C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = debug_sub_808CE10; + return FALSE; +} + +static bool8 debug_sub_808CE10(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808CE5C(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808CEAC(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808CE5C(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_083C1C38[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_083C1C38[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_083C1C38[whichMenu][cursorPos]); + } +} + +static void debug_sub_808CEAC(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C1C34[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C1C38[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlFlags_SysFlag_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 2 * ARRAY_COUNT(gUnknown_Debug_083C1330) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1330), gUnknown_Debug_083C1330); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1330), 0, 27); + gMenuCallback = debug_sub_808CF60; + return FALSE; +} + +static bool8 debug_sub_808CF60(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C1330[input].func; + return FALSE; +} + +static bool8 debug_sub_808CFA4(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C13D8) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C13D8), gUnknown_Debug_083C13D8); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C13D8), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808CFFC(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1465) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1465), gUnknown_Debug_083C1465); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1465), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D054(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1503) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1503), gUnknown_Debug_083C1503); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1503), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D0AC(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C158A) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C158A), gUnknown_Debug_083C158A); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C158A), 0, 28); + sFlagAndVarTest_WhichSubmenu = 3; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D104(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1647) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1647), gUnknown_Debug_083C1647); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1647), 0, 28); + sFlagAndVarTest_WhichSubmenu = 4; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D15C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1712) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1712), gUnknown_Debug_083C1712); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1712), 0, 28); + sFlagAndVarTest_WhichSubmenu = 5; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D1B4(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C17F8) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C17F8), gUnknown_Debug_083C17F8); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C17F8), 0, 28); + sFlagAndVarTest_WhichSubmenu = 6; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D20C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 7 + 1); + Menu_PrintItems(2, 1, 7, gUnknown_Debug_083C18B8); + InitMenu(0, 1, 1, 7, 0, 28); + sFlagAndVarTest_WhichSubmenu = 7; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D264(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 5 + 1); + Menu_PrintItems(2, 1, 5, gDebug_0x83C1974); + InitMenu(0, 1, 1, 5, 0, 28); + sFlagAndVarTest_WhichSubmenu = 8; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D2BC(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808D308(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808D358(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808D308(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_083C19C6[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_083C19C6[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_083C19C6[whichMenu][cursorPos]); + } +} + +static void debug_sub_808D358(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C19BC[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C19C6[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlFlags_FH_OBJ_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 2 * ARRAY_COUNT(sMenuActions_ControlFlags_FH_OBJ) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlFlags_FH_OBJ), sMenuActions_ControlFlags_FH_OBJ); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlFlags_FH_OBJ), 0, 27); + gMenuCallback = ControlFlags_FH_OBJ_HandleInput; + return FALSE; +} + +static bool8 ControlFlags_FH_OBJ_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = sMenuActions_ControlFlags_FH_OBJ[input].func; + return FALSE; +} + +static bool8 ControlFlags_FH_OBJ00_08_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_ControlFlags_FH_OBJ00_08) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlFlags_FH_OBJ00_08), sMenuActions_ControlFlags_FH_OBJ00_08); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlFlags_FH_OBJ00_08), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = ControlFlags_FH_OBJ_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlFlags_FH_OBJ09_15_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 7 + 1); + Menu_PrintItems(2, 1, 7, sMenuActions_ControlFlags_FH_OBJ09_15); + InitMenu(0, 1, 1, 7, 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = ControlFlags_FH_OBJ_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlFlags_FH_OBJ_Subsubmenu_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + ControlFlags_FH_OBJ_FlagToggle(sFlagAndVarTest_WhichSubmenu, cursorPos); + ControlFlags_FH_OBJ_UpdateDisplay(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void ControlFlags_FH_OBJ_FlagToggle(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(sControlFlags_FH_OBJ_FlagsArrays[whichMenu][cursorPos])) + FlagSet(sControlFlags_FH_OBJ_FlagsArrays[whichMenu][cursorPos]); + else + FlagClear(sControlFlags_FH_OBJ_FlagsArrays[whichMenu][cursorPos]); + } +} + +static void ControlFlags_FH_OBJ_UpdateDisplay(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < sControlFlags_FH_OBJ_CountsArray[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(sControlFlags_FH_OBJ_FlagsArrays[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlFlags_FH_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 2 * ARRAY_COUNT(gUnknown_Debug_083C11CC) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C11CC), gUnknown_Debug_083C11CC); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C11CC), 0, 27); + gMenuCallback = debug_sub_808D650; + return FALSE; +} + +static bool8 debug_sub_808D650(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C11CC[input].func; + return FALSE; +} + +static bool8 debug_sub_808D694(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1212) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1212), gUnknown_Debug_083C1212); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1212), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808D744; + return FALSE; +} + +static bool8 debug_sub_808D6EC(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 7 + 1); + Menu_PrintItems(2, 1, 7, gUnknown_Debug_083C1288); + InitMenu(0, 1, 1, 7, 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808D744; + return FALSE; +} + +static bool8 debug_sub_808D744(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808D790(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808D7E0(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808D790(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_083C12D2[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_083C12D2[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_083C12D2[whichMenu][cursorPos]); + } +} + +static void debug_sub_808D7E0(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C12D0[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C12D2[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlFlags_BallVanishFlag_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 2 * ARRAY_COUNT(gUnknown_Debug_083C1A78) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1A78), gUnknown_Debug_083C1A78); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1A78), 0, 27); + gMenuCallback = debug_sub_808D894; + return FALSE; +} + +static bool8 debug_sub_808D894(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C1A78[input].func; + return FALSE; +} + +static bool8 debug_sub_808D8D8(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1A9C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1A9C), gUnknown_Debug_083C1A9C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1A9C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808D930; + return FALSE; +} + +static bool8 debug_sub_808D930(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808D97C(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808D9CC(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808D97C(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_083C1AAE[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_083C1AAE[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_083C1AAE[whichMenu][cursorPos]); + } +} + +static void debug_sub_808D9CC(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C1AAC[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C1AAE[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlWorks_AnsWork_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_ControlEvents_AnsWork) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlEvents_AnsWork), sMenuActions_ControlEvents_AnsWork); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlEvents_AnsWork), 0, 28); + gMenuCallback = ControlWorks_AnsWork_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_AnsWork_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + /*s8 cursorPos = */Menu_GetCursorPos(); + + ControlWorks_AnsWork_AdjustRESULT(); + ControlWorks_AnsWork_PrintRESULT(); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void ControlWorks_AnsWork_PrintRESULT(void) +{ + PrintUnsignedShort(24, 1, gSpecialVar_Result); +} + +static void ControlWorks_AnsWork_AdjustRESULT(void) +{ + u16 delta; + + if (gMain.newKeys & R_BUTTON) + { + delta = +1; + } + else if (gMain.newKeys & L_BUTTON) + { + delta = -1; + } + else + return; + gSpecialVar_Result += delta; +} + +static bool8 ControlWorks_SaveWork_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 2 * ARRAY_COUNT(sMenuAction_ControlWorks_SaveWork) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuAction_ControlWorks_SaveWork), sMenuAction_ControlWorks_SaveWork); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuAction_ControlWorks_SaveWork), 0, 23); + gMenuCallback = ControlWorks_SaveWork_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = sMenuAction_ControlWorks_SaveWork[input].func; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Town_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_Town) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_Town), sMenuActions_SaveWork_Town); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_Town), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_City_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_City) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_City), sMenuActions_SaveWork_City); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_City), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Route101To109_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_Route101To109) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route101To109), sMenuActions_SaveWork_Route101To109); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route101To109), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Route110To118_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_Route110To118) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route110To118), sMenuActions_SaveWork_Route110To118); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route110To118), 0, 28); + sFlagAndVarTest_WhichSubmenu = 3; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Route119To127_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_Route119To127) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route119To127), sMenuActions_SaveWork_Route119To127); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route119To127), 0, 28); + sFlagAndVarTest_WhichSubmenu = 4; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Route128To134_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_Route128To134) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route128To134), sMenuActions_SaveWork_Route128To134); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route128To134), 0, 28); + sFlagAndVarTest_WhichSubmenu = 5; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_RoomTown_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 6 + 1); + Menu_PrintItems(2, 1, 6, sMenuActions_SaveWork_RoomTown); // overflows into the next menu + InitMenu(0, 1, 1, 6, 0, 28); + sFlagAndVarTest_WhichSubmenu = 6; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_RoomCity_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_RoomCity) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_RoomCity), sMenuActions_SaveWork_RoomCity); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_RoomCity), 0, 28); + sFlagAndVarTest_WhichSubmenu = 7; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Dungeon_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_Dungeon) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_Dungeon), sMenuActions_SaveWork_Dungeon); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_Dungeon), 0, 28); + sFlagAndVarTest_WhichSubmenu = 8; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Subsubmenu_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808DF64(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808DF04(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808DF04(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C457C[whichMenu]; i++) + { + PrintUnsignedShort(24, 2 * i + 1, VarGet(gUnknown_Debug_083C4586[whichMenu][i])); + } +} + +static void debug_sub_808DF64(u8 whichMenu, u8 cursorPos) +{ + u16 delta; + + if (gMain.newKeys & R_BUTTON) + delta = +1; + else if (gMain.newKeys & L_BUTTON) + delta = -1; + else + return; + VarSet(gUnknown_Debug_083C4586[whichMenu][cursorPos], VarGet(gUnknown_Debug_083C4586[whichMenu][cursorPos]) + delta); +} + +static bool8 ControlWorks_SaveWorkPart2_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 2 * ARRAY_COUNT(sMenuActions_ControlWorks_SaveWorkPart2) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlWorks_SaveWorkPart2), sMenuActions_ControlWorks_SaveWorkPart2); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlWorks_SaveWorkPart2), 0, 23); + gMenuCallback = ControlWorks_SaveWorkPart2_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWorkPart2_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = sMenuActions_ControlWorks_SaveWorkPart2[input].func; + return FALSE; +} + +static bool8 ControlWorks_SaveWorkPart2_SP_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 6 + 1); + Menu_PrintItems(2, 1, 6, gUnknown_Debug_083C3AA0); + InitMenu(0, 1, 1, 6, 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808E264; + return FALSE; +} + +static bool8 ControlWorks_SaveWorkPart2_RoomR110Part1TrickHouse_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 5 + 1); + Menu_PrintItems(2, 1, 5, gUnknown_Debug_83C3AE0); + InitMenu(0, 1, 1, 5, 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808E264; + return FALSE; +} + +static bool8 ControlWorks_SaveWorkPart2_RoomR110Part2_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_83C3B28) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_83C3B28), gUnknown_Debug_83C3B28); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_83C3B28), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = debug_sub_808E264; + return FALSE; +} + +static bool8 ControlWorks_SaveWorkPart2_RoomLoad_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 2 + 1); + Menu_PrintItems(2, 1, 2, gUnknown_Debug_83C3B70); + InitMenu(0, 1, 1, 2, 0, 28); + sFlagAndVarTest_WhichSubmenu = 3; + gMenuCallback = debug_sub_808E264; + return FALSE; +} + +static bool8 debug_sub_808E1B4(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_83C3BB8) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_83C3BB8), gUnknown_Debug_83C3BB8); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_83C3BB8), 0, 28); + sFlagAndVarTest_WhichSubmenu = 4; + gMenuCallback = debug_sub_808E264; + return FALSE; +} + +static bool8 debug_sub_808E20C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 6 + 1); + Menu_PrintItems(2, 1, 6, gUnknown_Debug_83C3C00); + InitMenu(0, 1, 1, 6, 0, 28); + sFlagAndVarTest_WhichSubmenu = 5; + gMenuCallback = debug_sub_808E264; + return FALSE; +} + +static bool8 debug_sub_808E264(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808E310(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808E2B0(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808E2B0(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < sControlWorks_SaveWork_CountsArray[whichMenu]; i++) + { + PrintUnsignedShort(24, 2 * i + 1, VarGet(sControlWorks_SaveWork_ItemArrays[whichMenu][i])); + } +} + +static void debug_sub_808E310(u8 whichMenu, u8 cursorPos) +{ + u16 delta; + + if (gMain.newKeys & R_BUTTON) + delta = +1; + else if (gMain.newKeys & L_BUTTON) + delta = -1; + else + return; + VarSet(sControlWorks_SaveWork_ItemArrays[whichMenu][cursorPos], VarGet(sControlWorks_SaveWork_ItemArrays[whichMenu][cursorPos]) + delta); +} + +static bool8 ControlWorks_SysWork_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 2 * ARRAY_COUNT(gUnknown_Debug_083C32AC) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C32AC), gUnknown_Debug_083C32AC); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C32AC), 0, 23); + gMenuCallback = debug_sub_808E3BC; + return FALSE; +} + +static bool8 debug_sub_808E3BC(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C32AC[input].func; + return FALSE; +} + +static bool8 debug_sub_808E400(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C347C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C347C), gUnknown_Debug_083C347C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C347C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808E5B8; + return FALSE; +} + +static bool8 debug_sub_808E458(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C3494) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C3494), gUnknown_Debug_083C3494); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C3494), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808E5B8; + return FALSE; +} + +static bool8 debug_sub_808E4B0(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C34A4) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C34A4), gUnknown_Debug_083C34A4); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C34A4), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = debug_sub_808E5B8; + return FALSE; +} + +static bool8 debug_sub_808E508(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C34D4) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C34D4), gUnknown_Debug_083C34D4); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C34D4), 0, 28); + sFlagAndVarTest_WhichSubmenu = 3; + gMenuCallback = debug_sub_808E5B8; + return FALSE; +} + +static bool8 debug_sub_808E560(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C351C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C351C), gUnknown_Debug_083C351C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C351C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 4; + gMenuCallback = debug_sub_808E5B8; + return FALSE; +} + +static bool8 debug_sub_808E5B8(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808E604(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808E660(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808E604(u8 whichMenu, u8 cursorPos) +{ + u16 delta; + + if (gMain.newAndRepeatedKeys & R_BUTTON) + delta = +1; + else if (gMain.newAndRepeatedKeys & L_BUTTON) + delta = -1; + else + return; + VarSet(gUnknown_Debug_083C354A[whichMenu][cursorPos], VarGet(gUnknown_Debug_083C354A[whichMenu][cursorPos]) + delta); +} + +static void debug_sub_808E660(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C3544[whichMenu]; i++) + { + PrintUnsignedShort(24, 2 * i + 1, VarGet(gUnknown_Debug_083C354A[whichMenu][i])); + } +} + +static bool8 ControlWorks_LocalWork_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 2 * ARRAY_COUNT(gUnknown_Debug_083C4644) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C4644), gUnknown_Debug_083C4644); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C4644), 0, 23); + gMenuCallback = debug_sub_808E710; + return FALSE; +} + +static bool8 debug_sub_808E710(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C4644[input].func; + return FALSE; +} + +static bool8 debug_sub_808E754(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C470C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C470C), gUnknown_Debug_083C470C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C470C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808E804; + return FALSE; +} + +static bool8 debug_sub_808E7AC(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C4754C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C4754C), gUnknown_Debug_083C4754C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C4754C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808E804; + return FALSE; +} + +static bool8 debug_sub_808E804(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808E850(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808E8AC(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808E850(u8 whichMenu, u8 cursorPos) +{ + u16 delta; + + if (gMain.newKeys & R_BUTTON) + delta = +1; + else if (gMain.newKeys & L_BUTTON) + delta = -1; + else + return; + VarSet(gUnknown_Debug_083C478E[whichMenu][cursorPos], VarGet(gUnknown_Debug_083C478E[whichMenu][cursorPos]) + delta); +} + +static void debug_sub_808E8AC(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C478C[whichMenu]; i++) + { + PrintUnsignedShort(24, 2 * i + 1, VarGet(gUnknown_Debug_083C478E[whichMenu][i])); + } +} + +static bool8 ControlWorks_ObjWork_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 2 * ARRAY_COUNT(gUnknown_Debug_083C35C4) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C35C4), gUnknown_Debug_083C35C4); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C35C4), 0, 23); + gMenuCallback = debug_sub_808E95C; + return FALSE; +} + +static bool8 debug_sub_808E95C(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C35C4[input].func; + return FALSE; +} + +static bool8 debug_sub_808E9A0(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C369C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C369C), gUnknown_Debug_083C369C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C369C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808EA50; + return FALSE; +} + +static bool8 debug_sub_808E9F8(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C36E4) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C36E4), gUnknown_Debug_083C36E4); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C36E4), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808EA50; + return FALSE; +} + +static bool8 debug_sub_808EA50(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808EAFC(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808EA9C(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808EA9C(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C371C[whichMenu]; i++) + { + PrintUnsignedShort(24, 2 * i + 1, VarGet(gUnknown_Debug_083C371E[whichMenu][i])); + } +} + +static void debug_sub_808EAFC(u8 whichMenu, u8 cursorPos) +{ + u16 delta; + + if (gMain.newKeys & R_BUTTON) + delta = +1; + else if (gMain.newKeys & L_BUTTON) + delta = -1; + else + return; + VarSet(gUnknown_Debug_083C371E[whichMenu][cursorPos], VarGet(gUnknown_Debug_083C371E[whichMenu][cursorPos]) + delta); +} + +static bool8 TrickRelated_Level_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 12, 2 * ARRAY_COUNT(gUnknown_Debug_083C47F0) + 3); + Menu_PrintText(gUnknown_Debug_083C47B2, 1, 1); + Menu_PrintItems(2, 3, ARRAY_COUNT(gUnknown_Debug_083C47F0), gUnknown_Debug_083C47F0); + InitMenu(0, 1, 3, ARRAY_COUNT(gUnknown_Debug_083C47F0), 0, 11); + gMenuCallback = debug_sub_808EC10; + return FALSE; +} + +static bool8 TrickRelated_TrickMaster_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 13, 2 * ARRAY_COUNT(gUnknown_Debug_083C4888) + 3); + Menu_PrintText(gUnknown_Debug_083C4830, 1, 1); + Menu_PrintItems(2, 3, ARRAY_COUNT(gUnknown_Debug_083C4888), gUnknown_Debug_083C4888); + InitMenu(0, 1, 3, ARRAY_COUNT(gUnknown_Debug_083C4888), 0, 12); + gMenuCallback = debug_sub_808EC5C; + return FALSE; +} + +static bool8 debug_sub_808EC10(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + if (input == -2) + { + return FALSE; + } + if (input == -1) + { + return FALSE; + } + gSaveBlock1.vars[VAR_TRICK_HOUSE_ROOMS_COMPLETED - VARS_START] = cursorPos; + CloseMenu(); + return TRUE; +} + +static bool8 debug_sub_808EC5C(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + if (input == -2) + { + return FALSE; + } + if (input == -1) + { + return FALSE; + } + VarSet(VAR_TRICK_HOUSE_ENTRANCE_STATE_3, cursorPos); + CloseMenu(); + return TRUE; +} + +static bool8 PreviewGraphics_Show(void) +{ + BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0); + gMenuCallback = debug_sub_808ECD0; + return FALSE; +} + +static bool8 debug_sub_808ECD0(void) +{ + if (!UpdatePaletteFade()) + { + CloseMenu(); + PrepareDebugOverlayBeforeShowingContestPainting(2); + SetMainCallback2(CB2_ContestPainting); + gMain.savedCallback = debug_sub_808B868; + return TRUE; + } + return FALSE; +} + +static bool8 DummyMenuAction(void) +{ + return FALSE; +} + +static void PicTest_SelectPokemon(void) +{ + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (sPicTest_Species != SPECIES_BULBASAUR) + sPicTest_Species--; + } + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (sPicTest_Species != SPECIES_CHIMECHO) + sPicTest_Species++; + } + if (gMain.newAndRepeatedKeys & L_BUTTON) + { + if (sPicTest_Species >= SPECIES_BULBASAUR + 10) + sPicTest_Species -= 10; + else + sPicTest_Species = SPECIES_BULBASAUR; + } + if (gMain.newAndRepeatedKeys & R_BUTTON) + { + if (sPicTest_Species <= SPECIES_CHIMECHO - 10) + sPicTest_Species += 10; + else + sPicTest_Species = SPECIES_CHIMECHO; + } +} + +static void PicTest_SelectPersonality(void) +{ + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (sPicTest_Personality != 0) + sPicTest_Personality--; + } + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (sPicTest_Personality != UINT32_MAX) + sPicTest_Personality++; + } + if (gMain.newAndRepeatedKeys & L_BUTTON) + { + if (sPicTest_Personality >= 0x10) + sPicTest_Personality -= 0x10; + else + sPicTest_Personality = 0; + } + if (gMain.newAndRepeatedKeys & R_BUTTON) + { + if (sPicTest_Personality <= UINT32_MAX - 0x10) + sPicTest_Personality += 0x10; + else + sPicTest_Personality = UINT32_MAX; + } + if ((gMain.newKeys & (L_BUTTON | R_BUTTON)) == (L_BUTTON | R_BUTTON)) + { + sPicTest_Personality = UINT32_MAX; + } +} + +static void ContestPicTest_SelectContestType(void) +{ + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (sPicTest_ContestType != CONTEST_COOL + 1) + sPicTest_ContestType--; + } + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (sPicTest_ContestType != CONTEST_TOUGH + 1) + sPicTest_ContestType++; + } + if (gMain.newAndRepeatedKeys & L_BUTTON) + sPicTest_ContestType = CONTEST_COOL + 1; + if (gMain.newAndRepeatedKeys & R_BUTTON) + sPicTest_ContestType = CONTEST_TOUGH + 1; +} + +static void MuseumArtPicTest_SelectTitleType(void) +{ + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (sPicTest_MuseumArtTitleType != 1) + sPicTest_MuseumArtTitleType--; + } + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (sPicTest_MuseumArtTitleType != 15) + sPicTest_MuseumArtTitleType++; + } + if (gMain.newAndRepeatedKeys & L_BUTTON) + { + if (sPicTest_MuseumArtTitleType >= 11) + sPicTest_MuseumArtTitleType -= 10; + else + sPicTest_MuseumArtTitleType = 0; // Causes underflow when pressing left on the dpad shortly thereafter. + } + if (gMain.newAndRepeatedKeys & R_BUTTON) + { + if (sPicTest_MuseumArtTitleType <= 5) + sPicTest_MuseumArtTitleType += 10; + else + sPicTest_MuseumArtTitleType = 15; + } +} + +static void PreviewPicTest_SelectType(void) +{ + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (sPicTest_PreviewType != 1) + sPicTest_PreviewType--; + } + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (sPicTest_PreviewType != 15) + sPicTest_PreviewType++; + } + if (gMain.newAndRepeatedKeys & L_BUTTON) + { + if (sPicTest_PreviewType >= 11) + sPicTest_PreviewType -= 10; + else + sPicTest_PreviewType = 0; // Causes underflow when pressing left on the dpad shortly thereafter. + } + if (gMain.newAndRepeatedKeys & R_BUTTON) + { + if (sPicTest_PreviewType <= 5) + sPicTest_PreviewType += 10; + else + sPicTest_PreviewType = 15; + } +} + +#ifdef NONMATCHING +static void PicTest_Redraw(u8 a0) +{ + u8 i; + u8 digit; + u16 species; + + switch (a0) + { + case 0: + case 1: + case 2: + for (i = 0; i < 8; i++) + { + digit = (sPicTest_Personality >> (4 * (7 - i))) & 0xf; + if (digit < 10) + sPicTest_StringBuffer[i] = digit + CHAR_0; + else + sPicTest_StringBuffer[i] = digit + CHAR_A - 10; + } + sPicTest_StringBuffer[i] = EOS; + Menu_PrintText(sPicTest_StringBuffer, 12, 5); + break; + } + for (i = 0; i < POKEMON_NAME_LENGTH; i++) + { + sPicTest_StringBuffer[i + 1] = CHAR_SPACE; + } + + for (i = 0, species = sPicTest_Species; gSpeciesNames[species][i] != EOS && i < POKEMON_NAME_LENGTH; i++) + { + sPicTest_StringBuffer[i + 1] = gSpeciesNames[species][i]; + } + + sPicTest_StringBuffer[0] = 0xB1; + sPicTest_StringBuffer[POKEMON_NAME_LENGTH + 1] = 0xB2; + sPicTest_StringBuffer[POKEMON_NAME_LENGTH + 2] = EOS; + switch (a0) + { + case 0: + case 1: + case 2: + Menu_PrintText(sPicTest_StringBuffer, 8, 1); + break; + default: + Menu_PrintText(sPicTest_StringBuffer, 12, 1); + break; + } + sPicTest_StringBuffer[3] = EOS; + sPicTest_StringBuffer[0] = sPicTest_Species / 100 + CHAR_0; + sPicTest_StringBuffer[1] = (sPicTest_Species % 100) / 10 + CHAR_0; + sPicTest_StringBuffer[2] = sPicTest_Species % 10 + CHAR_0; + Menu_PrintText(sPicTest_StringBuffer, 12, 3); + + switch (a0) + { + case 0: + sPicTest_StringBuffer[0] = sPicTest_ContestType / 100 + CHAR_0; + sPicTest_StringBuffer[1] = (sPicTest_ContestType % 100) / 10 + CHAR_0; + sPicTest_StringBuffer[2] = sPicTest_ContestType % 10 + CHAR_0; + Menu_PrintText(sPicTest_StringBuffer, 12, 7); + break; + case 1: + sPicTest_StringBuffer[0] = sPicTest_MuseumArtTitleType / 100 + CHAR_0; + sPicTest_StringBuffer[1] = (sPicTest_MuseumArtTitleType % 100) / 10 + CHAR_0; + sPicTest_StringBuffer[2] = sPicTest_MuseumArtTitleType % 10 + CHAR_0; + Menu_PrintText(sPicTest_StringBuffer, 12, 7); + break; + case 2: + sPicTest_StringBuffer[0] = sPicTest_PreviewType / 100 + CHAR_0; + sPicTest_StringBuffer[1] = (sPicTest_PreviewType % 100) / 10 + CHAR_0; + sPicTest_StringBuffer[2] = sPicTest_PreviewType % 10 + CHAR_0; + Menu_PrintText(sPicTest_StringBuffer, 12, 7); + break; + } +} +#else +__attribute__((naked)) void PicTest_Redraw(u8 a0) +{ + asm("\tpush\t{r4, r5, r6, r7, lr}\n" + "\tmov\tr7, r8\n" + "\tpush\t{r7}\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr6, r0, #0x18\n" + "\tcmp\tr6, #0x2\n" + "\tbgt\t._653\t@cond_branch\n" + "\tcmp\tr6, #0\n" + "\tblt\t._653\t@cond_branch\n" + "\tmov\tr3, #0x0\n" + "\tldr\tr0, ._656 @ sPicTest_Personality\n" + "\tmov\tr8, r0\n" + "\tldr\tr4, ._656 + 4 @ sPicTest_StringBuffer\n" + "\tmov\tr7, #0x7\n" + "\tmov\tr5, #0xf\n" + "._658:\n" + "\tsub\tr0, r7, r3\n" + "\tlsl\tr0, r0, #0x2\n" + "\tmov\tr1, r8\n" + "\tldr\tr2, [r1]\n" + "\tLSR\tr2, r0\n" + "\tand\tr2, r2, r5\n" + "\tcmp\tr2, #0x9\n" + "\tbhi\t._654\t@cond_branch\n" + "\tadd\tr1, r3, r4\n" + "\tadd\tr0, r2, #0\n" + "\tadd\tr0, r0, #0xa1\n" + "\tb\t._655\n" + "._657:\n" + "\t.align\t2, 0\n" + "._656:\n" + "\t.word\tsPicTest_Personality\n" + "\t.word\tsPicTest_StringBuffer\n" + "._654:\n" + "\tadd\tr1, r3, r4\n" + "\tadd\tr0, r2, #0\n" + "\tsub\tr0, r0, #0x4f\n" + "._655:\n" + "\tstrb\tr0, [r1]\n" + "\tadd\tr0, r3, #1\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr3, r0, #0x18\n" + "\tcmp\tr3, #0x7\n" + "\tbls\t._658\t@cond_branch\n" + "\tldr\tr0, ._666 @ sPicTest_StringBuffer\n" + "\tmov\tr1, #0xff\n" + "\tstrb\tr1, [r0, #0x8]\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x5\n" + "\tbl\tMenu_PrintText\n" + "._653:\n" + "\tmov\tr3, #0x0\n" + "\tldr\tr7, ._666 @ sPicTest_StringBuffer\n" + "\tldr\tr5, ._666 + 4 @ sPicTest_Species\n" + "\tldr\tr2, ._666 + 8 @ gSpeciesNames\n" + "\tmov\tr8, r2\n" + "\tadd\tr4, r7, #0\n" + "\tmov\tr2, #0x0\n" + "._659:\n" + "\tadd\tr1, r3, #1\n" + "\tadd\tr0, r1, r4\n" + "\tstrb\tr2, [r0]\n" + "\tlsl\tr1, r1, #0x18\n" + "\tlsr\tr3, r1, #0x18\n" + "\tcmp\tr3, #0x9\n" + "\tbls\t._659\t@cond_branch\n" + "\tmov\tr3, #0x0\n" + "\tldrh\tr2, [r5]\n" + "\tmov\tr0, #0xb\n" + "\tadd\tr1, r2, #0\n" + "\tmul\tr1, r1, r0\n" + "\tmov\tr2, r8\n" + "\tadd\tr0, r1, r2\n" + "\tldrb\tr0, [r0]\n" + "\tcmp\tr0, #0xff\n" + "\tbeq\t._661\t@cond_branch\n" + "\tldr\tr0, ._666 @ sPicTest_StringBuffer\n" + "\tmov\tip, r0\n" + "\tmov\tr5, r8\n" + "\tadd\tr4, r1, #0\n" + "._662:\n" + "\tadd\tr1, r3, #1\n" + "\tmov\tr0, ip\n" + "\tadd\tr2, r1, r0\n" + "\tadd\tr0, r3, r4\n" + "\tadd\tr0, r0, r5\n" + "\tldrb\tr0, [r0]\n" + "\tstrb\tr0, [r2]\n" + "\tlsl\tr1, r1, #0x18\n" + "\tlsr\tr3, r1, #0x18\n" + "\tadd\tr0, r3, r4\n" + "\tadd\tr0, r0, r5\n" + "\tldrb\tr0, [r0]\n" + "\tcmp\tr0, #0xff\n" + "\tbeq\t._661\t@cond_branch\n" + "\tcmp\tr3, #0x9\n" + "\tbls\t._662\t@cond_branch\n" + "._661:\n" + "\tmov\tr0, #0xb1\n" + "\tstrb\tr0, [r7]\n" + "\tmov\tr0, #0xb2\n" + "\tstrb\tr0, [r7, #0xb]\n" + "\tmov\tr0, #0xff\n" + "\tstrb\tr0, [r7, #0xc]\n" + "\tcmp\tr6, #0x2\n" + "\tbgt\t._664\t@cond_branch\n" + "\tcmp\tr6, #0\n" + "\tblt\t._664\t@cond_branch\n" + "\tadd\tr0, r7, #0\n" + "\tmov\tr1, #0x8\n" + "\tmov\tr2, #0x1\n" + "\tbl\tMenu_PrintText\n" + "\tb\t._665\n" + "._667:\n" + "\t.align\t2, 0\n" + "._666:\n" + "\t.word\tsPicTest_StringBuffer\n" + "\t.word\tsPicTest_Species\n" + "\t.word\tgSpeciesNames\n" + "._664:\n" + "\tldr\tr0, ._672 @ sPicTest_StringBuffer\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x1\n" + "\tbl\tMenu_PrintText\n" + "._665:\n" + "\tldr\tr5, ._672 @ sPicTest_StringBuffer\n" + "\tmov\tr0, #0xff\n" + "\tstrb\tr0, [r5, #0x3]\n" + "\tldr\tr4, ._672 + 4 @ sPicTest_Species\n" + "\tldrh\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5]\n" + "\tldrh\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__umodsi3\n" + "\tlsl\tr0, r0, #0x10\n" + "\tlsr\tr0, r0, #0x10\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x1]\n" + "\tldrh\tr0, [r4]\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__umodsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x2]\n" + "\tadd\tr0, r5, #0\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x3\n" + "\tbl\tMenu_PrintText\n" + "\tcmp\tr6, #0x1\n" + "\tbeq\t._668\t@cond_branch\n" + "\tcmp\tr6, #0x1\n" + "\tbgt\t._669\t@cond_branch\n" + "\tcmp\tr6, #0\n" + "\tbeq\t._670\t@cond_branch\n" + "\tb\t._679\n" + "._673:\n" + "\t.align\t2, 0\n" + "._672:\n" + "\t.word\tsPicTest_StringBuffer\n" + "\t.word\tsPicTest_Species\n" + "._669:\n" + "\tcmp\tr6, #0x2\n" + "\tbeq\t._674\t@cond_branch\n" + "\tb\t._679\n" + "._670:\n" + "\tldr\tr4, ._677 @ sPicTest_ContestType\n" + "\tb\t._676\n" + "._678:\n" + "\t.align\t2, 0\n" + "._677:\n" + "\t.word\tsPicTest_ContestType\n" + "._668:\n" + "\tldr\tr4, ._680 @ sPicTest_MuseumArtTitleType\n" + "._676:\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5]\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__umodsi3\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr0, r0, #0x18\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x1]\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__umodsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x2]\n" + "\tadd\tr0, r5, #0\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x7\n" + "\tbl\tMenu_PrintText\n" + "\tb\t._679\n" + "._681:\n" + "\t.align\t2, 0\n" + "._680:\n" + "\t.word\tsPicTest_MuseumArtTitleType\n" + "._674:\n" + "\tldr\tr4, ._682 @ sPicTest_PreviewType\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5]\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__umodsi3\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr0, r0, #0x18\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x1]\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__umodsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x2]\n" + "\tadd\tr0, r5, #0\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x7\n" + "\tbl\tMenu_PrintText\n" + "._679:\n" + "\tpop\t{r3}\n" + "\tmov\tr8, r3\n" + "\tpop\t{r4, r5, r6, r7}\n" + "\tpop\t{r0}\n" + "\tbx\tr0\n" + "._683:\n" + "\t.align\t2, 0\n" + "._682:\n" + "\t.word\tsPicTest_PreviewType"); +} +#endif // NONMATCHING + +static void PrepareDebugOverlayBeforeShowingContestPainting(u8 a0) +{ + struct ContestEntry *contestEntry = &ewram15DE0; + contestEntry->species = sPicTest_Species; + contestEntry->otId = sPicTest_OTID; + contestEntry->personality = sPicTest_Personality; + switch (a0) + { + case 0: + ewram15DDF = 0; + ewram15DDE = 0; + contestEntry->contestType = sPicTest_ContestType - 1; + StringCopy(contestEntry->trainer_name, sDummyTrainerName); + StringCopy(contestEntry->pokemon_name, sDummyNickname); + break; + case 1: + ewram15DDF = 0; + ewram15DDE = 8; + contestEntry->contestType = sPicTest_MuseumArtTitleType - 1; + StringCopy(contestEntry->pokemon_name, sDummyNickname); + break; + case 2: + ewram15DDF = 1; + ewram15DDE = 8; + contestEntry->contestType = sPicTest_PreviewType - 1; + break; + case 3: + ewram15DDF = 0; + ewram15DDE = 8; + contestEntry->contestType = 0; + StringCopy(contestEntry->pokemon_name, sDummyNickname); + break; + case 4: + ewram15DDF = 0; + ewram15DDE = 8; + contestEntry->contestType = 3; + StringCopy(contestEntry->pokemon_name, sDummyNickname); + break; + case 5: + ewram15DDF = 0; + ewram15DDE = 8; + contestEntry->contestType = 9; + StringCopy(contestEntry->pokemon_name, sDummyNickname); + break; + } +} + +static void PrintBool(u8 a0, u8 a1, bool8 a2) +{ + if (a2 == FALSE) + sPicTest_StringBuffer[0] = CHAR_0; + else + sPicTest_StringBuffer[0] = CHAR_0 + 1; + sPicTest_StringBuffer[1] = EOS; + Menu_PrintText(sPicTest_StringBuffer, a0, a1); +} + +static void PrintUnsignedShort(u8 a0, u8 a1, u16 a2) +{ + sPicTest_StringBuffer[0] = a2 / 10000 + CHAR_0; + sPicTest_StringBuffer[1] = (a2 % 10000) / 1000 + CHAR_0; + sPicTest_StringBuffer[2] = (a2 % 1000) / 100 + CHAR_0; + sPicTest_StringBuffer[3] = (a2 % 100) / 10 + CHAR_0; + sPicTest_StringBuffer[4] = a2 % 10 + CHAR_0; + sPicTest_StringBuffer[5] = EOS; + Menu_PrintText(sPicTest_StringBuffer, a0, a1); +} + +void debug_nullsub_66(void) +{ +// This function likely serves as the entry point into this file. +} + +#endif // DEBUG diff --git a/src/engine/decompress.c b/src/decompress.c index 69edf01aa..69edf01aa 100644 --- a/src/engine/decompress.c +++ b/src/decompress.c diff --git a/src/field/decoration.c b/src/decoration.c index 0e7fa5f41..477414993 100644 --- a/src/field/decoration.c +++ b/src/decoration.c @@ -622,7 +622,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[] = { @@ -1392,7 +1392,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[] = { diff --git a/src/field/decoration_inventory.c b/src/decoration_inventory.c index 8f7f5eb92..8f7f5eb92 100644 --- a/src/field/decoration_inventory.c +++ b/src/decoration_inventory.c diff --git a/src/field/dewford_trend.c b/src/dewford_trend.c index 9afb7a16d..9afb7a16d 100644 --- a/src/field/dewford_trend.c +++ b/src/dewford_trend.c diff --git a/src/field/diploma.c b/src/diploma.c index b31fc7dec..b31fc7dec 100644 --- a/src/field/diploma.c +++ b/src/diploma.c diff --git a/src/scene/egg_hatch.c b/src/egg_hatch.c index 282ad31fb..282ad31fb 100644 --- a/src/scene/egg_hatch.c +++ b/src/egg_hatch.c diff --git a/src/field/event_data.c b/src/event_data.c index 9d6d2372b..9d6d2372b 100644 --- a/src/field/event_data.c +++ b/src/event_data.c diff --git a/src/field/event_object_movement.c b/src/event_object_movement.c index 7a5f62456..155ce33f5 100644 --- a/src/field/event_object_movement.c +++ b/src/event_object_movement.c @@ -1578,13 +1578,13 @@ void (*const gUnknown_0836DA88[])(struct Sprite *) = const u8 gUnknown_0836DBBC[] = {0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; const u8 gUnknown_0836DC09[] = {DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_WEST, DIR_NORTH, DIR_NORTH, DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST, DIR_NORTH, DIR_WEST, DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_EAST, DIR_NORTH, DIR_WEST, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH}; -#include "../data/field_map_obj/map_object_graphics_info_pointers.h" -#include "../data/field_map_obj/field_effect_object_template_pointers.h" -#include "../data/field_map_obj/map_object_pic_tables.h" -#include "../data/field_map_obj/map_object_anims.h" -#include "../data/field_map_obj/base_oam.h" -#include "../data/field_map_obj/map_object_subsprites.h" -#include "../data/field_map_obj/map_object_graphics_info.h" +#include "data/field_map_obj/map_object_graphics_info_pointers.h" +#include "data/field_map_obj/field_effect_object_template_pointers.h" +#include "data/field_map_obj/map_object_pic_tables.h" +#include "data/field_map_obj/map_object_anims.h" +#include "data/field_map_obj/base_oam.h" +#include "data/field_map_obj/map_object_subsprites.h" +#include "data/field_map_obj/map_object_graphics_info.h" const struct SpritePalette gUnknown_0837377C[] = { {gMapObjectPalette0, 0x1103}, @@ -1790,14 +1790,14 @@ const u16 *const gUnknown_0837399C[] = { Unknown_8373988 }; -#include "../data/field_map_obj/berry_tree_graphics_tables.h" -#include "../data/field_map_obj/field_effect_objects.h" +#include "data/field_map_obj/berry_tree_graphics_tables.h" +#include "data/field_map_obj/field_effect_objects.h" const s16 gUnknown_0837520C[] = {0x20, 0x40, 0x60, 0x80}; const s16 gUnknown_08375204[] = {0x20, 0x40, 0x80, 0xc0}; const s16 gUnknown_0837521C[] = {0x20, 0x30, 0x40, 0x50}; -#include "../data/field_map_obj/callback_subroutine_pointers.h" +#include "data/field_map_obj/callback_subroutine_pointers.h" const u8 gUnknown_083755F4[] = {0x00, 0x00, 0x01, 0x02, 0x03, 0x00, 0x00, 0x01, 0x01}; const u8 gUnknown_083755FD[] = {0x04, 0x04, 0x05, 0x06, 0x07, 0x04, 0x04, 0x05, 0x05}; @@ -1886,7 +1886,7 @@ const u8 gUnknown_08375767[][4] = { {3, 4, 2, 1} }; -#include "../data/field_map_obj/anim_func_ptrs.h" +#include "data/field_map_obj/anim_func_ptrs.h" // text diff --git a/src/scene/evolution_graphics.c b/src/evolution_graphics.c index b9ef5b402..b9ef5b402 100644 --- a/src/scene/evolution_graphics.c +++ b/src/evolution_graphics.c diff --git a/src/scene/evolution_scene.c b/src/evolution_scene.c index 3ba325574..3ba325574 100644 --- a/src/scene/evolution_scene.c +++ b/src/evolution_scene.c diff --git a/src/field/field_camera.c b/src/field_camera.c index 8384ad8d1..8384ad8d1 100644 --- a/src/field/field_camera.c +++ b/src/field_camera.c diff --git a/src/field/field_control_avatar.c b/src/field_control_avatar.c index 3ae422512..3ae422512 100644 --- a/src/field/field_control_avatar.c +++ b/src/field_control_avatar.c diff --git a/src/field/field_door.c b/src/field_door.c index 89dae725c..89dae725c 100644 --- a/src/field/field_door.c +++ b/src/field_door.c diff --git a/src/field/field_effect.c b/src/field_effect.c index f85bc520e..f85bc520e 100644 --- a/src/field/field_effect.c +++ b/src/field_effect.c diff --git a/src/field/field_effect_helpers.c b/src/field_effect_helpers.c index bc4a1770e..bc4a1770e 100644 --- a/src/field/field_effect_helpers.c +++ b/src/field_effect_helpers.c diff --git a/src/field/field_fadetransition.c b/src/field_fadetransition.c index 35ea3952a..35ea3952a 100644 --- a/src/field/field_fadetransition.c +++ b/src/field_fadetransition.c diff --git a/src/field/field_message_box.c b/src/field_message_box.c index 5eec7a14b..5eec7a14b 100644 --- a/src/field/field_message_box.c +++ b/src/field_message_box.c diff --git a/src/field/field_player_avatar.c b/src/field_player_avatar.c index 1552381b2..1552381b2 100644 --- a/src/field/field_player_avatar.c +++ b/src/field_player_avatar.c diff --git a/src/field/field_poison.c b/src/field_poison.c index 8365351f9..8365351f9 100644 --- a/src/field/field_poison.c +++ b/src/field_poison.c diff --git a/src/field/field_region_map.c b/src/field_region_map.c index 54091459f..54091459f 100644 --- a/src/field/field_region_map.c +++ b/src/field_region_map.c diff --git a/src/field/field_screen_effect.c b/src/field_screen_effect.c index 61301c5a9..61301c5a9 100644 --- a/src/field/field_screen_effect.c +++ b/src/field_screen_effect.c diff --git a/src/field/field_special_scene.c b/src/field_special_scene.c index 2010ebcf4..2010ebcf4 100644 --- a/src/field/field_special_scene.c +++ b/src/field_special_scene.c diff --git a/src/field/field_specials.c b/src/field_specials.c index 715086f00..715086f00 100644 --- a/src/field/field_specials.c +++ b/src/field_specials.c diff --git a/src/field/field_tasks.c b/src/field_tasks.c index ce5fc6c0e..ce5fc6c0e 100644 --- a/src/field/field_tasks.c +++ b/src/field_tasks.c diff --git a/src/field/field_weather.c b/src/field_weather.c index 5857145ef..5857145ef 100644 --- a/src/field/field_weather.c +++ b/src/field_weather.c diff --git a/src/field/field_weather_effects.c b/src/field_weather_effects.c index 386925531..da3314aa1 100644 --- a/src/field/field_weather_effects.c +++ b/src/field_weather_effects.c @@ -2292,13 +2292,12 @@ void unc_0807DAB4(struct Sprite *sprite) //------------------------------------------------------------------------------ -u8 TranslateWeatherNum(u8); -void UpdateRainCounter(u8, u8); +static u8 TranslateWeatherNum(u8); +static void UpdateRainCounter(u8, u8); void SetSav1Weather(u32 weather) { u8 oldWeather = gSaveBlock1.weather; - gSaveBlock1.weather = TranslateWeatherNum(weather); UpdateRainCounter(gSaveBlock1.weather, oldWeather); } @@ -2311,7 +2310,6 @@ u8 GetSav1Weather(void) void SetSav1WeatherFromCurrMapHeader(void) { u8 oldWeather = gSaveBlock1.weather; - gSaveBlock1.weather = TranslateWeatherNum(gMapHeader.weather); UpdateRainCounter(gSaveBlock1.weather, oldWeather); } @@ -2338,42 +2336,54 @@ void sub_8080750(void) sub_807C988(GetSav1Weather()); } -static const u8 sWeatherCycle1[] = {2, 3, 5, 3}; -static const u8 sWeatherCycle2[] = {2, 2, 3, 2}; +static const u8 sWeatherCycleRoute119[] = +{ + WEATHER_SUNNY, + WEATHER_RAIN_LIGHT, + WEATHER_RAIN_MED, + WEATHER_RAIN_LIGHT, +}; +static const u8 sWeatherCycleRoute123[] = +{ + WEATHER_SUNNY, + WEATHER_SUNNY, + WEATHER_RAIN_LIGHT, + WEATHER_SUNNY, +}; -u8 TranslateWeatherNum(u8 weather) +static u8 TranslateWeatherNum(u8 weather) { switch (weather) { - case 0: return 0; - case 1: return 1; - case 2: return 2; - case 3: return 3; - case 4: return 4; - case 5: return 5; - case 6: return 6; - case 7: return 7; - case 8: return 8; - case 9: return 9; - case 10: return 10; - case 11: return 11; - case 12: return 12; - case 13: return 13; - case 14: return 14; - case 20: return sWeatherCycle1[gSaveBlock1.filler_2F]; - case 21: return sWeatherCycle2[gSaveBlock1.filler_2F]; - default: return 0; + case WEATHER_NONE: return WEATHER_NONE; + case WEATHER_CLOUDS: return WEATHER_CLOUDS; + case WEATHER_SUNNY: return WEATHER_SUNNY; + case WEATHER_RAIN_LIGHT: return WEATHER_RAIN_LIGHT; + case WEATHER_SNOW: return WEATHER_SNOW; + case WEATHER_RAIN_MED: return WEATHER_RAIN_MED; + case WEATHER_FOG_1: return WEATHER_FOG_1; + case WEATHER_ASH: return WEATHER_ASH; + case WEATHER_SANDSTORM: return WEATHER_SANDSTORM; + case WEATHER_FOG_2: return WEATHER_FOG_2; + case WEATHER_FOG_3: return WEATHER_FOG_3; + case WEATHER_SHADE: return WEATHER_SHADE; + case WEATHER_DROUGHT: return WEATHER_DROUGHT; + case WEATHER_RAIN_HEAVY: return WEATHER_RAIN_HEAVY; + case WEATHER_BUBBLES: return WEATHER_BUBBLES; + case WEATHER_ROUTE119_CYCLE: return sWeatherCycleRoute119[gSaveBlock1.weatherCycleStage]; + case WEATHER_ROUTE123_CYCLE: return sWeatherCycleRoute123[gSaveBlock1.weatherCycleStage]; + default: return WEATHER_NONE; } } void UpdateWeatherPerDay(u16 increment) { - u16 weatherStage = gSaveBlock1.filler_2F + increment; + u16 weatherStage = gSaveBlock1.weatherCycleStage + increment; weatherStage %= 4; - gSaveBlock1.filler_2F = weatherStage; + gSaveBlock1.weatherCycleStage = weatherStage; } -void UpdateRainCounter(u8 newWeather, u8 oldWeather) +static void UpdateRainCounter(u8 newWeather, u8 oldWeather) { if (newWeather != oldWeather && (newWeather == WEATHER_RAIN_LIGHT || newWeather == WEATHER_RAIN_MED)) diff --git a/src/field/fieldmap.c b/src/fieldmap.c index 7383bb174..7383bb174 100644 --- a/src/field/fieldmap.c +++ b/src/fieldmap.c diff --git a/src/field/fldeff_berrytree.c b/src/fldeff_berrytree.c index 6b03e9952..6b03e9952 100644 --- a/src/field/fldeff_berrytree.c +++ b/src/fldeff_berrytree.c diff --git a/src/field/fldeff_cut.c b/src/fldeff_cut.c index c8f942fe5..c8f942fe5 100644 --- a/src/field/fldeff_cut.c +++ b/src/fldeff_cut.c diff --git a/src/field/fldeff_decoration.c b/src/fldeff_decoration.c index 1859fc00b..1859fc00b 100644 --- a/src/field/fldeff_decoration.c +++ b/src/fldeff_decoration.c diff --git a/src/field/fldeff_escalator.c b/src/fldeff_escalator.c index 981233480..981233480 100644 --- a/src/field/fldeff_escalator.c +++ b/src/fldeff_escalator.c diff --git a/src/field/fldeff_flash.c b/src/fldeff_flash.c index 30ddd0f6c..30ddd0f6c 100644 --- a/src/field/fldeff_flash.c +++ b/src/fldeff_flash.c diff --git a/src/field/fldeff_poison.c b/src/fldeff_poison.c index 52afc2516..52afc2516 100644 --- a/src/field/fldeff_poison.c +++ b/src/fldeff_poison.c diff --git a/src/field/fldeff_recordmixing.c b/src/fldeff_recordmixing.c index 716447f9c..716447f9c 100644 --- a/src/field/fldeff_recordmixing.c +++ b/src/fldeff_recordmixing.c diff --git a/src/field/fldeff_secret_base_pc.c b/src/fldeff_secret_base_pc.c index 394c4bc56..394c4bc56 100644 --- a/src/field/fldeff_secret_base_pc.c +++ b/src/fldeff_secret_base_pc.c diff --git a/src/field/fldeff_secretpower.c b/src/fldeff_secretpower.c index d1df03d84..d1df03d84 100644 --- a/src/field/fldeff_secretpower.c +++ b/src/fldeff_secretpower.c diff --git a/src/field/fldeff_softboiled.c b/src/fldeff_softboiled.c index 3c64ec520..3c64ec520 100644 --- a/src/field/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c diff --git a/src/field/fldeff_strength.c b/src/fldeff_strength.c index 9f9cd4013..9f9cd4013 100644 --- a/src/field/fldeff_strength.c +++ b/src/fldeff_strength.c diff --git a/src/field/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index b9dbf619d..b9dbf619d 100644 --- a/src/field/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c diff --git a/src/field/fldeff_teleport.c b/src/fldeff_teleport.c index af48fb414..af48fb414 100644 --- a/src/field/fldeff_teleport.c +++ b/src/fldeff_teleport.c diff --git a/src/scene/hall_of_fame.c b/src/hall_of_fame.c index 2b790e97d..2b790e97d 100644 --- a/src/scene/hall_of_fame.c +++ b/src/hall_of_fame.c diff --git a/src/field/heal_location.c b/src/heal_location.c index a10c7a7b8..a10c7a7b8 100644 --- a/src/field/heal_location.c +++ b/src/heal_location.c diff --git a/src/field/hof_pc.c b/src/hof_pc.c index 267ed4274..267ed4274 100644 --- a/src/field/hof_pc.c +++ b/src/hof_pc.c diff --git a/src/scene/intro.c b/src/intro.c index 5c0e7a67d..5c0e7a67d 100644 --- a/src/scene/intro.c +++ b/src/intro.c diff --git a/src/scene/intro_credits_graphics.c b/src/intro_credits_graphics.c index 73210c5d9..73210c5d9 100644 --- a/src/scene/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c diff --git a/src/field/item.c b/src/item.c index af05c0a21..41cbb7a1e 100644 --- a/src/field/item.c +++ b/src/item.c @@ -50,11 +50,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/field/item_menu.c b/src/item_menu.c index 32b14e021..32b14e021 100644 --- a/src/field/item_menu.c +++ b/src/item_menu.c diff --git a/src/field/item_use.c b/src/item_use.c index a0fbb13b2..a0fbb13b2 100644 --- a/src/field/item_use.c +++ b/src/item_use.c diff --git a/src/field/landmark.c b/src/landmark.c index 476821ec6..476821ec6 100644 --- a/src/field/landmark.c +++ b/src/landmark.c diff --git a/src/pokemon/learn_move.c b/src/learn_move.c index 356a31b00..356a31b00 100644 --- a/src/pokemon/learn_move.c +++ b/src/learn_move.c diff --git a/src/engine/link.c b/src/link.c index 45807830a..45807830a 100644 --- a/src/engine/link.c +++ b/src/link.c diff --git a/src/engine/load_save.c b/src/load_save.c index 8424b1121..8424b1121 100644 --- a/src/engine/load_save.c +++ b/src/load_save.c diff --git a/src/field/lottery_corner.c b/src/lottery_corner.c index 03de26054..03de26054 100644 --- a/src/field/lottery_corner.c +++ b/src/lottery_corner.c diff --git a/src/pokemon/mail.c b/src/mail.c index 4497c98fb..4497c98fb 100644 --- a/src/pokemon/mail.c +++ b/src/mail.c diff --git a/src/pokemon/mail_data.c b/src/mail_data.c index 4249b9f48..4249b9f48 100644 --- a/src/pokemon/mail_data.c +++ b/src/mail_data.c diff --git a/src/engine/main.c b/src/main.c index 54a443e80..54a443e80 100644 --- a/src/engine/main.c +++ b/src/main.c diff --git a/src/engine/main_menu.c b/src/main_menu.c index 5a3f55b29..5a3f55b29 100644 --- a/src/engine/main_menu.c +++ b/src/main_menu.c diff --git a/src/field/map_name_popup.c b/src/map_name_popup.c index 49a470cc1..49a470cc1 100644 --- a/src/field/map_name_popup.c +++ b/src/map_name_popup.c diff --git a/src/field/map_obj_lock.c b/src/map_obj_lock.c index 3bd25dbdf..3bd25dbdf 100644 --- a/src/field/map_obj_lock.c +++ b/src/map_obj_lock.c diff --git a/src/field/mauville_man.c b/src/mauville_man.c index a68d5071d..a68d5071d 100644 --- a/src/field/mauville_man.c +++ b/src/mauville_man.c diff --git a/src/engine/menu.c b/src/menu.c index 86e20d0eb..86e20d0eb 100644 --- a/src/engine/menu.c +++ b/src/menu.c diff --git a/src/engine/menu_cursor.c b/src/menu_cursor.c index 35116d40b..f2eb31f16 100644 --- a/src/engine/menu_cursor.c +++ b/src/menu_cursor.c @@ -12,9 +12,9 @@ EWRAM_DATA static u8 gUnknown_0203A3D3 = 0; EWRAM_DATA static u8 gUnknown_0203A3D4 = 0; #if ENGLISH -#include "../src/data/menu_cursor_en.h" +#include "data/menu_cursor_en.h" #elif GERMAN -#include "../src/data/menu_cursor_de.h" +#include "data/menu_cursor_de.h" #endif // ENGLISH/GERMAN void sub_814A590(void) diff --git a/src/field/menu_helpers.c b/src/menu_helpers.c index 388d98ec7..388d98ec7 100644 --- a/src/field/menu_helpers.c +++ b/src/menu_helpers.c diff --git a/src/field/metatile_behavior.c b/src/metatile_behavior.c index d05ba0b89..d05ba0b89 100644 --- a/src/field/metatile_behavior.c +++ b/src/metatile_behavior.c diff --git a/src/pokemon/mon_markings.c b/src/mon_markings.c index dcdc54434..dcdc54434 100644 --- a/src/pokemon/mon_markings.c +++ b/src/mon_markings.c diff --git a/src/field/money.c b/src/money.c index 3b7268dbc..3b7268dbc 100644 --- a/src/field/money.c +++ b/src/money.c diff --git a/src/engine/mystery_event_menu.c b/src/mystery_event_menu.c index 56801ff53..56801ff53 100644 --- a/src/engine/mystery_event_menu.c +++ b/src/mystery_event_menu.c diff --git a/src/engine/mystery_event_msg.c b/src/mystery_event_msg.c index 03ef22727..03ef22727 100644 --- a/src/engine/mystery_event_msg.c +++ b/src/mystery_event_msg.c diff --git a/src/engine/mystery_event_script.c b/src/mystery_event_script.c index 6fcad66ac..6fcad66ac 100644 --- a/src/engine/mystery_event_script.c +++ b/src/mystery_event_script.c diff --git a/src/engine/name_string_util.c b/src/name_string_util.c index 32e9358e1..32e9358e1 100644 --- a/src/engine/name_string_util.c +++ b/src/name_string_util.c diff --git a/src/engine/naming_screen.c b/src/naming_screen.c index 59b9b4d84..59b9b4d84 100644 --- a/src/engine/naming_screen.c +++ b/src/naming_screen.c diff --git a/src/scene/new_game.c b/src/new_game.c index e64dc91e3..f8a5524f5 100644 --- a/src/scene/new_game.c +++ b/src/new_game.c @@ -136,7 +136,7 @@ void debug_sub_8052E04() void WarpToTruck(void) { - Overworld_SetWarpDestination(25, 40, -1, -1, -1); // inside of truck + Overworld_SetWarpDestination(MAP_GROUP(INSIDE_OF_TRUCK), MAP_NUM(INSIDE_OF_TRUCK), -1, -1, -1); warp_in(); } diff --git a/src/engine/option_menu.c b/src/option_menu.c index a2d32ffb6..a2d32ffb6 100644 --- a/src/engine/option_menu.c +++ b/src/option_menu.c diff --git a/src/field/overworld.c b/src/overworld.c index 6376aa1af..6376aa1af 100644 --- a/src/field/overworld.c +++ b/src/overworld.c diff --git a/src/engine/palette.c b/src/palette.c index 2a6602503..2a6602503 100644 --- a/src/engine/palette.c +++ b/src/palette.c diff --git a/src/field/party_menu.c b/src/party_menu.c index 9caaa05b9..9caaa05b9 100644 --- a/src/field/party_menu.c +++ b/src/party_menu.c diff --git a/src/field/pc_screen_effect.c b/src/pc_screen_effect.c index dcc3bc9c9..dcc3bc9c9 100644 --- a/src/field/pc_screen_effect.c +++ b/src/pc_screen_effect.c diff --git a/src/engine/play_time.c b/src/play_time.c index 9882c9c4b..9882c9c4b 100644 --- a/src/engine/play_time.c +++ b/src/play_time.c diff --git a/src/field/player_pc.c b/src/player_pc.c index 27427ecaa..27427ecaa 100644 --- a/src/field/player_pc.c +++ b/src/player_pc.c diff --git a/src/field/pokeblock.c b/src/pokeblock.c index 6804f55d6..6804f55d6 100644 --- a/src/field/pokeblock.c +++ b/src/pokeblock.c diff --git a/src/pokemon/pokeblock_feed.c b/src/pokeblock_feed.c index 2f2ce2f8f..2f2ce2f8f 100644 --- a/src/pokemon/pokeblock_feed.c +++ b/src/pokeblock_feed.c diff --git a/src/pokemon/pokedex.c b/src/pokedex.c index 090873f9d..711dc69fa 100644 --- a/src/pokemon/pokedex.c +++ b/src/pokedex.c @@ -185,7 +185,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 +514,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[] = diff --git a/src/field/pokedex_area_screen.c b/src/pokedex_area_screen.c index 67ca276c4..67ca276c4 100644 --- a/src/field/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c diff --git a/src/pokemon/pokedex_cry_screen.c b/src/pokedex_cry_screen.c index 912b9aabd..912b9aabd 100644 --- a/src/pokemon/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c diff --git a/src/pokemon/pokemon_1.c b/src/pokemon_1.c index 80d245b52..a23bb3324 100644 --- a/src/pokemon/pokemon_1.c +++ b/src/pokemon_1.c @@ -41,7 +41,7 @@ const struct SpindaSpot gSpindaSpotGraphics[] = {34, 33, INCBIN_U16("graphics/spinda_spots/spot_3.bin")} }; -#include "../data/pokemon/item_effects.h" +#include "data/pokemon/item_effects.h" const s8 gNatureStatTable[][5] = { @@ -73,14 +73,14 @@ const s8 gNatureStatTable[][5] = { 0, 0, 0, 0, 0} // Quirky }; -#include "../data/pokemon/tmhm_learnsets.h" -#include "../data/pokemon/trainer_class_lookups.h" -#include "../data/pokemon/cry_ids.h" -#include "../data/pokemon/experience_tables.h" -#include "../data/pokemon/base_stats.h" -#include "../data/pokemon/level_up_learnsets.h" -#include "../data/pokemon/evolution.h" -#include "../data/pokemon/level_up_learnset_pointers.h" +#include "data/pokemon/tmhm_learnsets.h" +#include "data/pokemon/trainer_class_lookups.h" +#include "data/pokemon/cry_ids.h" +#include "data/pokemon/experience_tables.h" +#include "data/pokemon/base_stats.h" +#include "data/pokemon/level_up_learnsets.h" +#include "data/pokemon/evolution.h" +#include "data/pokemon/level_up_learnset_pointers.h" void ZeroBoxMonData(struct BoxPokemon *boxMon) { diff --git a/src/pokemon/pokemon_2.c b/src/pokemon_2.c index 7fd1aa7b2..7fd1aa7b2 100644 --- a/src/pokemon/pokemon_2.c +++ b/src/pokemon_2.c diff --git a/src/pokemon/pokemon_3.c b/src/pokemon_3.c index 9346031a6..9346031a6 100644 --- a/src/pokemon/pokemon_3.c +++ b/src/pokemon_3.c diff --git a/src/pokemon/pokemon_icon.c b/src/pokemon_icon.c index b1b462761..b1b462761 100644 --- a/src/pokemon/pokemon_icon.c +++ b/src/pokemon_icon.c diff --git a/src/pokemon/pokemon_item_effect.c b/src/pokemon_item_effect.c index 4ebece3b3..4ebece3b3 100644 --- a/src/pokemon/pokemon_item_effect.c +++ b/src/pokemon_item_effect.c diff --git a/src/pokemon/pokemon_menu.c b/src/pokemon_menu.c index 532340ce4..532340ce4 100644 --- a/src/pokemon/pokemon_menu.c +++ b/src/pokemon_menu.c diff --git a/src/pokemon/pokemon_size_record.c b/src/pokemon_size_record.c index f92a95bfb..f92a95bfb 100644 --- a/src/pokemon/pokemon_size_record.c +++ b/src/pokemon_size_record.c diff --git a/src/pokemon/pokemon_storage_system.c b/src/pokemon_storage_system.c index 1ea8bc205..1ea8bc205 100644 --- a/src/pokemon/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c diff --git a/src/pokemon/pokemon_storage_system_2.c b/src/pokemon_storage_system_2.c index 0331abf3e..0331abf3e 100644 --- a/src/pokemon/pokemon_storage_system_2.c +++ b/src/pokemon_storage_system_2.c diff --git a/src/pokemon/pokemon_storage_system_3.c b/src/pokemon_storage_system_3.c index da26c6fc5..da26c6fc5 100644 --- a/src/pokemon/pokemon_storage_system_3.c +++ b/src/pokemon_storage_system_3.c diff --git a/src/pokemon/pokemon_storage_system_4.c b/src/pokemon_storage_system_4.c index 2f9f79a54..2f9f79a54 100644 --- a/src/pokemon/pokemon_storage_system_4.c +++ b/src/pokemon_storage_system_4.c diff --git a/src/pokemon/pokemon_storage_system_5.c b/src/pokemon_storage_system_5.c index b7c3d42f5..b7c3d42f5 100644 --- a/src/pokemon/pokemon_storage_system_5.c +++ b/src/pokemon_storage_system_5.c diff --git a/src/pokemon/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 0acf465f6..75ddb52d0 100644 --- a/src/pokemon/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -158,11 +158,11 @@ EWRAM_DATA u8 gUnknown_020384F0 = 0; EWRAM_DATA struct Sprite *gUnknown_020384F4 = NULL; #if ENGLISH -#include "../data/text/move_descriptions_en.h" -#include "../data/text/nature_names_en.h" +#include "data/text/move_descriptions_en.h" +#include "data/text/nature_names_en.h" #elif GERMAN -#include "../data/text/move_descriptions_de.h" -#include "../data/text/nature_names_de.h" +#include "data/text/move_descriptions_de.h" +#include "data/text/nature_names_de.h" #endif static const u8 * const sPageHeaderTexts[] = { diff --git a/src/field/pokenav.c b/src/pokenav.c index f57a98df6..f57a98df6 100644 --- a/src/field/pokenav.c +++ b/src/pokenav.c diff --git a/src/engine/random.c b/src/random.c index 8f82b722f..8f82b722f 100644 --- a/src/engine/random.c +++ b/src/random.c diff --git a/src/engine/record_mixing.c b/src/record_mixing.c index a2660bf82..a2660bf82 100644 --- a/src/engine/record_mixing.c +++ b/src/record_mixing.c diff --git a/src/field/region_map.c b/src/region_map.c index 6d50701d6..e40fb7752 100644 --- a/src/field/region_map.c +++ b/src/region_map.c @@ -141,12 +141,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/engine/reset_rtc_screen.c b/src/reset_rtc_screen.c index 8c2c23569..8c2c23569 100644 --- a/src/engine/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c diff --git a/src/field/roamer.c b/src/roamer.c index 6ed5b6c89..6ed5b6c89 100644 --- a/src/field/roamer.c +++ b/src/roamer.c diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c index 395736d03..9d864fec3 100644 --- a/src/rom_8077ABC.c +++ b/src/rom_8077ABC.c @@ -551,7 +551,10 @@ void sub_8078278(struct Sprite *sprite) } } -void sub_80782D8(struct Sprite *sprite) +// Simply waits until the sprite's data[0] hits zero. +// This is used to let sprite anims or affine anims to run for a designated +// duration. +void WaitAnimForDuration(struct Sprite *sprite) { if (sprite->data[0] > 0) sprite->data[0]--; @@ -562,7 +565,7 @@ void sub_80782D8(struct Sprite *sprite) void sub_80782F8(struct Sprite *sprite) { sub_8078314(sprite); - sprite->callback = sub_8078364; + sprite->callback = TranslateSpriteOverDuration; sprite->callback(sprite); } @@ -580,7 +583,7 @@ void sub_8078314(struct Sprite *sprite) sprite->data[1] = old; } -void sub_8078364(struct Sprite *sprite) +void TranslateSpriteOverDuration(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -764,7 +767,7 @@ void sub_807867C(struct Sprite *sprite, s16 a2) } } -void sub_80786EC(struct Sprite *sprite) +void InitAnimSpriteTranslationOverDuration(struct Sprite *sprite) { sprite->data[1] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; @@ -1163,13 +1166,13 @@ bool8 sub_8078E38() return FALSE; } -void sub_8078E70(u8 sprite, u8 a2) +void sub_8078E70(u8 sprite, u8 objMode) { u8 r7 = gSprites[sprite].data[0]; if (IsContest() || IsAnimBankSpriteVisible(r7)) gSprites[sprite].invisible = FALSE; - gSprites[sprite].oam.objMode = a2; + gSprites[sprite].oam.objMode = objMode; gSprites[sprite].affineAnimPaused = TRUE; if (!IsContest() && !gSprites[sprite].oam.affineMode) gSprites[sprite].oam.matrixNum = ewram17810[r7].unk6; @@ -1234,7 +1237,7 @@ static u16 ArcTan2_(s16 a, s16 b) return ArcTan2(a, b); } -u16 sub_80790F0(s16 a, s16 b) +u16 ArcTan2Neg(s16 a, s16 b) { u16 var = ArcTan2_(a, b); return -var; @@ -1437,7 +1440,7 @@ void sub_80794A8(struct Sprite *sprite) sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; - sub_80786EC(sprite); + InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_8079518; } @@ -1561,20 +1564,26 @@ void sub_80796F8(u8 taskId) } } -void sub_8079790(u8 task) +// Linearly blends a mon's sprite colors with a target color with increasing +// strength, and then blends out to the original color. +// arg 0: anim bank +// arg 1: blend color +// arg 2: target blend coefficient +// arg 3: initial delay +// arg 4: number of times to blend in and out +void AnimTask_BlendMonInAndOut(u8 task) { - u8 sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]); - - if (sprite == 0xff) + u8 spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]); + if (spriteId == 0xff) { DestroyAnimVisualTask(task); return; } - gTasks[task].data[0] = (gSprites[sprite].oam.paletteNum * 0x10) + 0x101; - sub_80797EC(&gTasks[task]); + gTasks[task].data[0] = (gSprites[spriteId].oam.paletteNum * 0x10) + 0x101; + AnimTask_BlendMonInAndOutSetup(&gTasks[task]); } -void sub_80797EC(struct Task *task) +void AnimTask_BlendMonInAndOutSetup(struct Task *task) { task->data[1] = gBattleAnimArgs[1]; task->data[2] = 0; @@ -1583,10 +1592,10 @@ void sub_80797EC(struct Task *task) task->data[5] = gBattleAnimArgs[3]; task->data[6] = 0; task->data[7] = gBattleAnimArgs[4]; - task->func = sub_8079814; + task->func = AnimTask_BlendMonInAndOutStep; } -void sub_8079814(u8 taskId) +void AnimTask_BlendMonInAndOutStep(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1596,14 +1605,14 @@ void sub_8079814(u8 taskId) if (!task->data[6]) { task->data[2]++; - BlendPalette(task->data[0], 0xf, task->data[2], task->data[1]); + BlendPalette(task->data[0], 15, task->data[2], task->data[1]); if (task->data[2] == task->data[3]) task->data[6] = 1; } else { task->data[2]--; - BlendPalette(task->data[0], 0xf, task->data[2], task->data[1]); + BlendPalette(task->data[0], 15, task->data[2], task->data[1]); if (!task->data[2]) { if (--task->data[7]) @@ -1631,7 +1640,7 @@ void sub_80798AC(u8 task) return; } gTasks[task].data[0] = (palette * 0x10) + 0x101; - sub_80797EC(&gTasks[task]); + AnimTask_BlendMonInAndOutSetup(&gTasks[task]); } void sub_80798F4(struct Task *task, u8 a2, const void *a3) @@ -1873,26 +1882,26 @@ void sub_8079E24() } } -u8 sub_8079E90(u8 slot) +u8 sub_8079E90(u8 bank) { - u8 status; + u8 identity; u8 ret; if (IsContest()) { - if (slot == 2) + if (bank == ANIM_BANK_ATK_PARTNER) return 30; else return 40; } else { - status = GetBankIdentity(slot); - if (status == 0) + identity = GetBankIdentity(bank); + if (identity == IDENTITY_PLAYER_MON1) ret = 30; - else if (status == 2) + else if (identity == IDENTITY_PLAYER_MON2) ret = 20; - else if (status == 1) + else if (identity == IDENTITY_OPPONENT_MON1) ret = 40; else ret = 50; diff --git a/src/field/rotating_gate.c b/src/rotating_gate.c index 69f655a65..69f655a65 100644 --- a/src/field/rotating_gate.c +++ b/src/rotating_gate.c diff --git a/src/engine/rtc.c b/src/rtc.c index 5462298ed..5462298ed 100644 --- a/src/engine/rtc.c +++ b/src/rtc.c diff --git a/src/field/safari_zone.c b/src/safari_zone.c index f371b08b3..f371b08b3 100644 --- a/src/field/safari_zone.c +++ b/src/safari_zone.c diff --git a/src/engine/save.c b/src/save.c index 0b7a3dd79..0b7a3dd79 100644 --- a/src/engine/save.c +++ b/src/save.c diff --git a/src/engine/save_failed_screen.c b/src/save_failed_screen.c index f57315d09..f57315d09 100644 --- a/src/engine/save_failed_screen.c +++ b/src/save_failed_screen.c diff --git a/src/engine/save_menu_util.c b/src/save_menu_util.c index ccf4d9f6f..ccf4d9f6f 100644 --- a/src/engine/save_menu_util.c +++ b/src/save_menu_util.c diff --git a/src/field/scrcmd.c b/src/scrcmd.c index e5272bc9c..e5272bc9c 100644 --- a/src/field/scrcmd.c +++ b/src/scrcmd.c diff --git a/src/engine/script.c b/src/script.c index 8625cfdc2..8625cfdc2 100644 --- a/src/engine/script.c +++ b/src/script.c diff --git a/src/field/script_menu.c b/src/script_menu.c index 9d901a03c..9d901a03c 100644 --- a/src/field/script_menu.c +++ b/src/script_menu.c diff --git a/src/field/script_movement.c b/src/script_movement.c index 653dffcbf..653dffcbf 100644 --- a/src/field/script_movement.c +++ b/src/script_movement.c diff --git a/src/field/secret_base.c b/src/secret_base.c index 210d49835..210d49835 100644 --- a/src/field/secret_base.c +++ b/src/secret_base.c diff --git a/src/field/shop.c b/src/shop.c index 87dbbeb97..87dbbeb97 100644 --- a/src/field/shop.c +++ b/src/shop.c diff --git a/src/field/slot_machine.c b/src/slot_machine.c index 8075f24e4..8075f24e4 100644 --- a/src/field/slot_machine.c +++ b/src/slot_machine.c diff --git a/src/engine/sound.c b/src/sound.c index 159ad3f70..159ad3f70 100644 --- a/src/engine/sound.c +++ b/src/sound.c diff --git a/src/engine/sprite.c b/src/sprite.c index a9d84e01a..a9d84e01a 100644 --- a/src/engine/sprite.c +++ b/src/sprite.c diff --git a/src/field/start_menu.c b/src/start_menu.c index f2d53eb7f..f2d53eb7f 100644 --- a/src/field/start_menu.c +++ b/src/start_menu.c diff --git a/src/field/starter_choose.c b/src/starter_choose.c index 418488774..418488774 100644 --- a/src/field/starter_choose.c +++ b/src/starter_choose.c diff --git a/src/engine/string_util.c b/src/string_util.c index 7316f533a..7316f533a 100644 --- a/src/engine/string_util.c +++ b/src/string_util.c diff --git a/src/engine/task.c b/src/task.c index 3e8a5588c..3e8a5588c 100644 --- a/src/engine/task.c +++ b/src/task.c diff --git a/src/engine/text.c b/src/text.c index fe18a6d79..234e6085d 100644 --- a/src/engine/text.c +++ b/src/text.c @@ -234,12 +234,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/engine/text_window.c b/src/text_window.c index ade349f4e..ade349f4e 100644 --- a/src/engine/text_window.c +++ b/src/text_window.c diff --git a/src/engine/tileset_anim.c b/src/tileset_anim.c index abd38edad..abd38edad 100644 --- a/src/engine/tileset_anim.c +++ b/src/tileset_anim.c diff --git a/src/engine/time_events.c b/src/time_events.c index 4bd732788..4bd732788 100644 --- a/src/engine/time_events.c +++ b/src/time_events.c diff --git a/src/scene/title_screen.c b/src/title_screen.c index a1c8e081d..a1c8e081d 100644 --- a/src/scene/title_screen.c +++ b/src/title_screen.c diff --git a/src/engine/trade.c b/src/trade.c index 36e6fc757..36e6fc757 100644 --- a/src/engine/trade.c +++ b/src/trade.c diff --git a/src/field/trader.c b/src/trader.c index 885557d5a..885557d5a 100644 --- a/src/field/trader.c +++ b/src/trader.c diff --git a/src/engine/trainer_card.c b/src/trainer_card.c index 8d16aa9bf..8d16aa9bf 100644 --- a/src/engine/trainer_card.c +++ b/src/trainer_card.c diff --git a/src/field/trainer_see.c b/src/trainer_see.c index 2913a0a5a..2913a0a5a 100644 --- a/src/field/trainer_see.c +++ b/src/trainer_see.c diff --git a/src/engine/trig.c b/src/trig.c index e16a69e63..e16a69e63 100644 --- a/src/engine/trig.c +++ b/src/trig.c diff --git a/src/field/tv.c b/src/tv.c index 6c24170ae..6c24170ae 100644 --- a/src/field/tv.c +++ b/src/tv.c diff --git a/src/field/use_pokeblock.c b/src/use_pokeblock.c index 8ea93aab8..8ea93aab8 100644 --- a/src/field/use_pokeblock.c +++ b/src/use_pokeblock.c diff --git a/src/engine/util.c b/src/util.c index 582b9f806..582b9f806 100644 --- a/src/engine/util.c +++ b/src/util.c diff --git a/src/field/wallclock.c b/src/wallclock.c index 1f743a61a..1f743a61a 100644 --- a/src/field/wallclock.c +++ b/src/wallclock.c diff --git a/src/field/wild_encounter.c b/src/wild_encounter.c index 19778e29b..19778e29b 100644 --- a/src/field/wild_encounter.c +++ b/src/wild_encounter.c |