summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--[-rwxr-xr-x]constants/audio_constants.asm2
-rw-r--r--[-rwxr-xr-x]constants/battle_tower_constants.asm0
-rw-r--r--[-rwxr-xr-x]constants/cry_constants.asm0
-rw-r--r--constants/deco_constants.asm16
-rw-r--r--constants/engine_flags.asm2
-rw-r--r--constants/gfx_constants.asm2
-rw-r--r--constants/item_constants.asm2
-rw-r--r--constants/item_data_constants.asm6
-rw-r--r--constants/map_data_constants.asm2
-rw-r--r--constants/map_object_constants.asm8
-rw-r--r--constants/map_setup_constants.asm2
-rw-r--r--constants/menu_constants.asm4
-rw-r--r--[-rwxr-xr-x]constants/printer_constants.asm0
-rw-r--r--constants/radio_constants.asm10
-rw-r--r--[-rwxr-xr-x]constants/scgb_constants.asm4
-rw-r--r--constants/script_constants.asm12
-rw-r--r--constants/sprite_anim_constants.asm2
-rw-r--r--constants/sprite_constants.asm2
-rw-r--r--constants/text_constants.asm2
-rw-r--r--[-rwxr-xr-x]data/battle_anims/framesets.asm0
-rw-r--r--[-rwxr-xr-x]data/battle_anims/oam.asm0
-rw-r--r--[-rwxr-xr-x]data/battle_anims/object_gfx.asm0
-rw-r--r--[-rwxr-xr-x]data/battle_anims/objects.asm0
-rw-r--r--[-rwxr-xr-x]data/battle_tower/unknown.asm0
-rw-r--r--[-rwxr-xr-x]data/sprite_anims/framesets.asm0
-rw-r--r--[-rwxr-xr-x]data/sprites/map_objects.asm0
-rw-r--r--[-rwxr-xr-x]data/trainers/class_names.asm0
-rw-r--r--[-rwxr-xr-x]data/unused_53d84.asm0
-rw-r--r--docs/battle_anim_commands.md2
-rw-r--r--docs/bugs_and_glitches.md34
-rw-r--r--docs/design_flaws.md18
-rw-r--r--docs/event_commands.md2
-rw-r--r--docs/movement_commands.md2
-rw-r--r--[-rwxr-xr-x]engine/battle/ai/move.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle/ai/redundant.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle/ai/switch.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle/anim_hp_bar.asm0
-rw-r--r--engine/battle/check_battle_scene.asm (renamed from engine/battle/checkbattlescene.asm)0
-rw-r--r--engine/battle/consume_held_item.asm (renamed from engine/battle/consumehelditem.asm)0
-rw-r--r--[-rwxr-xr-x]engine/battle/link_result.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle/menu.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle/move_effects/attract.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle/move_effects/present.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle/move_effects/transform.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle/read_trainer_party.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle/sliding_intro.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle/trainer_huds.asm0
-rw-r--r--engine/battle/unreferenced_getgen1trainerclassname.asm (renamed from engine/routines/unreferenced_getgen1trainerclassname.asm)0
-rw-r--r--engine/battle/update_battle_huds.asm (renamed from engine/battle/updatebattlehuds.asm)0
-rw-r--r--[-rwxr-xr-x]engine/battle/used_move_text.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle_anims/core.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle_anims/functions.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle_anims/helpers.asm0
-rw-r--r--[-rwxr-xr-x]engine/battle_anims/pokeball_wobble.asm (renamed from engine/battle_anims/getpokeballwobble.asm)0
-rw-r--r--[-rwxr-xr-x]engine/events/basement_key.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/battle_tower/battle_tower.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/battle_tower/trainer_text.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/bug_contest/contest_2.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/bug_contest/judging.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/card_key.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/celebi.asm0
-rw-r--r--engine/events/checksave.asm (renamed from engine/routines/checksave.asm)0
-rw-r--r--engine/events/checktime.asm (renamed from engine/routines/checktime.asm)0
-rw-r--r--[-rwxr-xr-x]engine/events/daycare.asm0
-rw-r--r--engine/events/diploma.asm (renamed from engine/diploma.asm)0
-rw-r--r--[-rwxr-xr-x]engine/events/elevator.asm0
-rw-r--r--engine/events/engine_flags.asm (renamed from engine/engine_flags.asm)0
-rw-r--r--[-rwxr-xr-x]engine/events/field_moves.asm0
-rw-r--r--engine/events/fishing_gfx.asm (renamed from engine/events/loadfishinggfx.asm)0
-rw-r--r--[-rwxr-xr-x]engine/events/forced_movement.asm0
-rw-r--r--engine/events/haircut.asm82
-rw-r--r--[-rwxr-xr-x]engine/events/halloffame.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/happiness_egg.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/heal_machine_anim.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/itemfinder.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/magnet_train.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/misc_scripts.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/mom_phone.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/money.asm (renamed from engine/money.asm)0
-rw-r--r--[-rwxr-xr-x]engine/events/npc_trade.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/overworld.asm0
-rw-r--r--engine/events/play_slow_cry.asm (renamed from engine/routines/playslowcry.asm)0
-rw-r--r--[-rwxr-xr-x]engine/events/poisonstep.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/pokecenter_pc.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/pokepic.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/print_photo.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/prof_oaks_pc.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/sacred_ash.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/shuckle.asm (renamed from engine/events/specials_2.asm)83
-rw-r--r--[-rwxr-xr-x]engine/events/squirtbottle.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/sweet_scent.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/treemons.asm0
-rw-r--r--[-rwxr-xr-x]engine/events/whiteout.asm0
-rw-r--r--[-rwxr-xr-x]engine/games/card_flip.asm (renamed from engine/card_flip.asm)0
-rw-r--r--[-rwxr-xr-x]engine/games/dummy_game.asm (renamed from engine/dummy_game.asm)0
-rw-r--r--[-rwxr-xr-x]engine/games/slot_machine.asm (renamed from engine/slot_machine.asm)0
-rw-r--r--[-rwxr-xr-x]engine/games/unown_puzzle.asm (renamed from engine/unown_puzzle.asm)0
-rw-r--r--engine/gfx/cgb_layouts.asm (renamed from engine/cgb_layouts.asm)0
-rw-r--r--engine/gfx/color.asm (renamed from engine/color.asm)4
-rw-r--r--[-rwxr-xr-x]engine/gfx/crystal_layouts.asm (renamed from engine/crystal_layouts.asm)2
-rw-r--r--[-rwxr-xr-x]engine/gfx/dma_transfer.asm (renamed from engine/dma_transfer.asm)0
-rw-r--r--engine/gfx/load_font.asm (renamed from engine/load_font.asm)0
-rw-r--r--engine/gfx/load_overworld_font.asm (renamed from engine/routines/loadoverworldfont.asm)0
-rw-r--r--[-rwxr-xr-x]engine/gfx/load_pics.asm (renamed from engine/load_pics.asm)0
-rw-r--r--engine/gfx/load_push_oam.asm (renamed from engine/routines/loadpushoam.asm)0
-rw-r--r--[-rwxr-xr-x]engine/gfx/mon_icons.asm (renamed from engine/mon_icons.asm)0
-rw-r--r--engine/gfx/pic_animation.asm (renamed from engine/pic_animation.asm)0
-rw-r--r--engine/gfx/place_graphic.asm (renamed from engine/routines/placegraphic.asm)0
-rw-r--r--engine/gfx/player_gfx.asm (renamed from engine/player_gfx.asm)0
-rw-r--r--engine/gfx/sgb_layouts.asm (renamed from engine/sgb_layouts.asm)0
-rw-r--r--[-rwxr-xr-x]engine/gfx/sprite_anims.asm (renamed from engine/sprite_anims.asm)0
-rw-r--r--[-rwxr-xr-x]engine/gfx/sprites.asm (renamed from engine/sprites.asm)2
-rw-r--r--engine/gfx/trademon_frontpic.asm (renamed from engine/routines/trademonfrontpic.asm)0
-rw-r--r--[-rwxr-xr-x]engine/items/buy_sell_toss.asm (renamed from engine/buy_sell_toss.asm)0
-rw-r--r--engine/items/item_effects.asm (renamed from engine/item_effects.asm)0
-rw-r--r--[-rwxr-xr-x]engine/items/items.asm (renamed from engine/items.asm)0
-rw-r--r--[-rwxr-xr-x]engine/items/mart.asm (renamed from engine/mart.asm)0
-rw-r--r--engine/items/pack.asm (renamed from engine/pack.asm)0
-rw-r--r--engine/items/pack_kris.asm (renamed from engine/routines/drawkrispackgfx.asm)0
-rw-r--r--engine/items/print_item_description.asm (renamed from engine/routines/printitemdescription.asm)0
-rw-r--r--[-rwxr-xr-x]engine/items/switch_items.asm (renamed from engine/switch_items.asm)0
-rw-r--r--[-rwxr-xr-x]engine/items/tmhm.asm (renamed from engine/tmhm2.asm)0
-rw-r--r--[-rwxr-xr-x]engine/items/tmhm2.asm (renamed from engine/tmhm.asm)0
-rw-r--r--engine/items/update_item_description.asm (renamed from engine/routines/updateitemdescription.asm)0
-rw-r--r--engine/link/init_list.asm (renamed from engine/routines/initlist.asm)0
-rw-r--r--[-rwxr-xr-x]engine/link/link.asm (renamed from engine/link.asm)2
-rw-r--r--engine/link/link_2.asm (renamed from engine/link_2.asm)0
-rw-r--r--[-rwxr-xr-x]engine/link/link_trade.asm (renamed from engine/link_trade.asm)0
-rw-r--r--[-rwxr-xr-x]engine/link/mystery_gift.asm (renamed from engine/mystery_gift.asm)0
-rw-r--r--[-rwxr-xr-x]engine/link/mystery_gift_2.asm (renamed from engine/mystery_gift_2.asm)0
-rw-r--r--engine/link/place_waiting_text.asm (renamed from engine/routines/placewaitingtext.asm)0
-rw-r--r--[-rwxr-xr-x]engine/link/time_capsule.asm (renamed from engine/time_capsule.asm)0
-rw-r--r--engine/link/time_capsule_2.asm (renamed from engine/time_capsule_2.asm)0
-rw-r--r--engine/math/get_square_root.asm (renamed from engine/routines/getsquareroot.asm)0
-rw-r--r--[-rwxr-xr-x]engine/math/math.asm (renamed from engine/math.asm)0
-rw-r--r--[-rwxr-xr-x]engine/math/print_num.asm (renamed from engine/printnum.asm)0
-rw-r--r--[-rwxr-xr-x]engine/math/sine.asm (renamed from engine/routines/sine.asm)0
-rw-r--r--[-rwxr-xr-x]engine/menus/debug.asm (renamed from engine/debug.asm)0
-rw-r--r--engine/menus/delete_save.asm36
-rw-r--r--engine/menus/empty_sram.asm (renamed from engine/routines/emptyallsrambanks.asm)0
-rw-r--r--[-rwxr-xr-x]engine/menus/init_gender.asm (renamed from engine/init_gender.asm)0
-rw-r--r--[-rwxr-xr-x]engine/menus/intro_menu.asm (renamed from engine/intro_menu.asm)0
-rw-r--r--[-rwxr-xr-x]engine/menus/main_menu.asm (renamed from engine/main_menu.asm)0
-rw-r--r--[-rwxr-xr-x]engine/menus/menu.asm (renamed from engine/menu.asm)0
-rw-r--r--engine/menus/menu_2.asm (renamed from engine/menu_2.asm)0
-rw-r--r--[-rwxr-xr-x]engine/menus/naming_screen.asm (renamed from engine/naming_screen.asm)0
-rw-r--r--[-rwxr-xr-x]engine/menus/options_menu.asm (renamed from engine/options_menu.asm)0
-rw-r--r--engine/menus/save.asm (renamed from engine/save.asm)0
-rw-r--r--engine/menus/savemenu_copytilemapatonce.asm (renamed from engine/routines/savemenu_copytilemapatonce.asm)0
-rw-r--r--[-rwxr-xr-x]engine/menus/scrolling_menu.asm (renamed from engine/scrolling_menu.asm)0
-rw-r--r--[-rwxr-xr-x]engine/menus/start_menu.asm (renamed from engine/start_menu.asm)0
-rw-r--r--[-rwxr-xr-x]engine/menus/trainer_card.asm (renamed from engine/trainer_card.asm)0
-rw-r--r--engine/movie/credits.asm (renamed from engine/credits.asm)0
-rw-r--r--[-rwxr-xr-x]engine/movie/crystal_intro.asm (renamed from engine/crystal_intro.asm)0
-rw-r--r--[-rwxr-xr-x]engine/movie/evolution_animation.asm (renamed from engine/evolution_animation.asm)0
-rw-r--r--engine/movie/gbc_only.asm (renamed from engine/gbc_only.asm)0
-rw-r--r--engine/movie/init_hof_credits.asm (renamed from engine/init_hof_credits.asm)0
-rw-r--r--engine/movie/title.asm (renamed from engine/title.asm)0
-rw-r--r--[-rwxr-xr-x]engine/movie/trade_animation.asm (renamed from engine/trade_animation.asm)0
-rw-r--r--engine/movie/unused_title.asm (renamed from engine/unused_title.asm)0
-rw-r--r--[-rwxr-xr-x]engine/overworld/decorations.asm (renamed from engine/decorations.asm)0
-rw-r--r--engine/overworld/events.asm (renamed from engine/events.asm)4
-rw-r--r--engine/overworld/events_2.asm (renamed from engine/events_2.asm)0
-rw-r--r--engine/overworld/init_map.asm (renamed from engine/init_map.asm)0
-rw-r--r--engine/overworld/landmarks.asm (renamed from engine/landmarks.asm)0
-rw-r--r--engine/overworld/load_map_part.asm (renamed from engine/routines/loadmappart.asm)0
-rw-r--r--[-rwxr-xr-x]engine/overworld/map_object_action.asm (renamed from engine/map_object_action.asm)0
-rw-r--r--engine/overworld/map_objects.asm (renamed from engine/map_objects.asm)4
-rw-r--r--engine/overworld/map_objects_2.asm (renamed from engine/map_objects_2.asm)0
-rw-r--r--engine/overworld/map_setup.asm (renamed from engine/map_setup.asm)0
-rw-r--r--engine/overworld/movement.asm (renamed from engine/movement.asm)0
-rw-r--r--[-rwxr-xr-x]engine/overworld/npc_movement.asm (renamed from engine/npc_movement.asm)0
-rw-r--r--[-rwxr-xr-x]engine/overworld/overworld.asm (renamed from engine/overworld.asm)0
-rw-r--r--[-rwxr-xr-x]engine/overworld/player_movement.asm (renamed from engine/player_movement.asm)0
-rw-r--r--[-rwxr-xr-x]engine/overworld/player_object.asm (renamed from engine/player_object.asm)0
-rw-r--r--[-rwxr-xr-x]engine/overworld/player_step.asm (renamed from engine/player_step.asm)0
-rw-r--r--engine/overworld/scripting.asm (renamed from engine/scripting.asm)0
-rw-r--r--[-rwxr-xr-x]engine/overworld/select_menu.asm (renamed from engine/select_menu.asm)0
-rw-r--r--engine/overworld/spawn_points.asm (renamed from engine/spawn_points.asm)0
-rw-r--r--[-rwxr-xr-x]engine/overworld/tile_events.asm (renamed from engine/tile_events.asm)0
-rw-r--r--[-rwxr-xr-x]engine/overworld/time.asm (renamed from engine/time.asm)0
-rw-r--r--[-rwxr-xr-x]engine/overworld/variables.asm (renamed from engine/variables.asm)0
-rw-r--r--[-rwxr-xr-x]engine/overworld/warp_connection.asm (renamed from engine/warp_connection.asm)0
-rw-r--r--[-rwxr-xr-x]engine/overworld/wildmons.asm (renamed from engine/wildmons.asm)0
-rw-r--r--engine/phone/phonering_copytilemapatonce.asm (renamed from engine/routines/phonering_copytilemapatonce.asm)0
-rw-r--r--engine/pokedex/new_pokedex_entry.asm (renamed from engine/pokedex/newpokedexentry.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokedex/unown_dex.asm0
-rw-r--r--[-rwxr-xr-x]engine/pokegear/pokegear.asm (renamed from engine/pokegear.asm)0
-rw-r--r--engine/pokegear/radio.asm (renamed from engine/radio.asm)0
-rw-r--r--engine/pokegear/townmap_convertlinebreakcharacters.asm (renamed from engine/routines/townmap_convertlinebreakcharacters.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/bills_pc.asm (renamed from engine/billspc.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/bills_pc_top.asm (renamed from engine/billspctop.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/breeding.asm (renamed from engine/breeding.asm)0
-rw-r--r--engine/pokemon/breedmon_level_growth.asm (renamed from engine/routines/getbreedmonlevelgrowth.asm)0
-rw-r--r--engine/pokemon/caught_data.asm (renamed from engine/caught_data.asm)0
-rw-r--r--engine/pokemon/check_nick_errors.asm (renamed from engine/routines/checknickerrors.asm)0
-rw-r--r--engine/pokemon/correct_party_errors.asm (renamed from engine/routines/correcterrorsinplayerparty.asm)2
-rw-r--r--engine/pokemon/european_mail.asm (renamed from engine/european_mail.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/evolve.asm (renamed from engine/evolve.asm)0
-rw-r--r--engine/pokemon/experience.asm (renamed from engine/experience.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/health.asm (renamed from engine/health.asm)0
-rw-r--r--engine/pokemon/knows_move.asm (renamed from engine/routines/knowsmove.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/learn.asm (renamed from engine/learn.asm)0
-rw-r--r--engine/pokemon/level_up_happiness.asm (renamed from engine/routines/leveluphappinessmod.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/mail.asm (renamed from engine/mail.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/mail_2.asm (renamed from engine/mail_2.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/mon_menu.asm (renamed from engine/mon_menu.asm)0
-rw-r--r--engine/pokemon/mon_stats.asm (renamed from engine/mon_stats.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/move_mon.asm (renamed from engine/move_mon.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/move_mon_wo_mail.asm (renamed from engine/move_mon_wo_mail.asm)0
-rw-r--r--engine/pokemon/party_menu.asm (renamed from engine/party_menu.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/search.asm (renamed from engine/search.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/search2.asm (renamed from engine/search2.asm)0
-rw-r--r--[-rwxr-xr-x]engine/pokemon/stats_screen.asm (renamed from engine/stats_screen.asm)0
-rw-r--r--engine/pokemon/switchpartymons.asm (renamed from engine/routines/switchpartymons.asm)0
-rw-r--r--engine/pokemon/tempmon.asm (renamed from engine/tempmon.asm)0
-rw-r--r--engine/pokemon/types.asm (renamed from engine/types.asm)0
-rw-r--r--[-rwxr-xr-x]engine/printer/print_party.asm (renamed from engine/print_party.asm)0
-rw-r--r--[-rwxr-xr-x]engine/printer/printer.asm (renamed from engine/printer.asm)2
-rw-r--r--[-rwxr-xr-x]engine/printer/printer_serial.asm (renamed from engine/printer_serial.asm)0
-rw-r--r--engine/rtc/print_hours_mins.asm (renamed from engine/routines/printhoursmins.asm)0
-rw-r--r--[-rwxr-xr-x]engine/rtc/reset_password.asm (renamed from engine/delete_save_change_clock.asm)37
-rw-r--r--[-rwxr-xr-x]engine/rtc/restart_clock.asm (renamed from engine/clock_reset.asm)9
-rw-r--r--[-rwxr-xr-x]engine/rtc/rtc.asm (renamed from engine/rtc.asm)0
-rw-r--r--[-rwxr-xr-x]engine/rtc/timeset.asm (renamed from engine/timeset.asm)0
-rw-r--r--engine/smallflag.asm (renamed from engine/routines/flagpredef.asm)0
-rw-r--r--engine/tilesets/map_palettes.asm (renamed from engine/map_palettes.asm)0
-rw-r--r--engine/tilesets/mapgroup_roofs.asm (renamed from engine/mapgroup_roofs.asm)0
-rw-r--r--engine/tilesets/tileset_anims.asm (renamed from engine/tileset_anims.asm)0
-rw-r--r--engine/tilesets/tileset_palettes.asm (renamed from engine/tileset_palettes.asm)0
-rw-r--r--engine/tilesets/timeofday_pals.asm (renamed from engine/timeofdaypals.asm)0
-rw-r--r--[-rwxr-xr-x]gfx/battle_anims/beam.pngbin541 -> 541 bytes
-rw-r--r--[-rwxr-xr-x]gfx/battle_anims/lightning.pngbin799 -> 799 bytes
-rw-r--r--[-rwxr-xr-x]gfx/battle_anims/misc.pngbin1061 -> 1061 bytes
-rw-r--r--[-rwxr-xr-x]gfx/battle_anims/noise.pngbin505 -> 505 bytes
-rw-r--r--[-rwxr-xr-x]gfx/battle_anims/objects.pngbin684 -> 684 bytes
-rw-r--r--[-rwxr-xr-x]gfx/battle_anims/poison.pngbin166 -> 166 bytes
-rw-r--r--[-rwxr-xr-x]gfx/battle_anims/pokeball.pngbin367 -> 367 bytes
-rw-r--r--[-rwxr-xr-x]gfx/battle_anims/rocks.pngbin648 -> 648 bytes
-rw-r--r--[-rwxr-xr-x]gfx/battle_anims/sand.pngbin363 -> 363 bytes
-rw-r--r--[-rwxr-xr-x]gfx/font.asm0
-rw-r--r--[-rwxr-xr-x]gfx/frames/space.pngbin113 -> 113 bytes
-rw-r--r--[-rwxr-xr-x]gfx/mail/cloud.pngbin199 -> 199 bytes
-rw-r--r--[-rwxr-xr-x]gfx/mail/dragonite.pngbin372 -> 372 bytes
-rw-r--r--[-rwxr-xr-x]gfx/mail/flower_mail_border.pngbin289 -> 289 bytes
-rw-r--r--[-rwxr-xr-x]gfx/mail/large_note.pngbin199 -> 199 bytes
-rw-r--r--[-rwxr-xr-x]gfx/mail/litebluemail_border.pngbin271 -> 271 bytes
-rw-r--r--[-rwxr-xr-x]gfx/mail/morph_mail_corner.pngbin200 -> 200 bytes
-rw-r--r--[-rwxr-xr-x]gfx/mail/surf_mail_border.pngbin266 -> 266 bytes
-rw-r--r--[-rwxr-xr-x]gfx/mobile/electro_ball_nonmatching.pngbin1401 -> 1401 bytes
-rw-r--r--[-rwxr-xr-x]gfx/mobile/mobile_splash.pngbin1660 -> 1660 bytes
-rw-r--r--[-rwxr-xr-x]gfx/splash/logo1.pngbin364 -> 364 bytes
-rw-r--r--[-rwxr-xr-x]gfx/splash/logo2.pngbin172 -> 172 bytes
-rw-r--r--[-rwxr-xr-x]gfx/trade/ball.pngbin279 -> 279 bytes
-rw-r--r--[-rwxr-xr-x]gfx/unknown/16c903.pal0
-rw-r--r--[-rwxr-xr-x]macros/wram.asm0
-rw-r--r--main.asm276
-rw-r--r--[-rwxr-xr-x]mobile/fixed_words.asm0
-rw-r--r--[-rwxr-xr-x]mobile/mobile_12.asm0
-rw-r--r--[-rwxr-xr-x]mobile/mobile_12_2.asm0
-rw-r--r--[-rwxr-xr-x]mobile/mobile_41.asm0
-rw-r--r--[-rwxr-xr-x]mobile/mobile_45_sprite_engine.asm0
-rw-r--r--[-rwxr-xr-x]mobile/mobile_46.asm0
-rw-r--r--[-rwxr-xr-x]mobile/mobile_5b.asm0
-rw-r--r--[-rwxr-xr-x]mobile/mobile_5c.asm0
-rw-r--r--[-rwxr-xr-x]mobile/mobile_menu.asm0
-rwxr-xr-x[-rw-r--r--]tools/toc.py0
268 files changed, 342 insertions, 343 deletions
diff --git a/Makefile b/Makefile
index 4a63a9128..14235ff3b 100644
--- a/Makefile
+++ b/Makefile
@@ -21,8 +21,8 @@ data/maps/map_data.o \
data/pokemon/dex_entries.o \
data/pokemon/egg_moves.o \
data/pokemon/evos_attacks.o \
-engine/credits.o \
-engine/events.o \
+engine/movie/credits.o \
+engine/overworld/events.o \
gfx/pics.o \
gfx/sprites.o \
lib/mobile/main.o
diff --git a/constants/audio_constants.asm b/constants/audio_constants.asm
index 7aa0895a3..288caad91 100755..100644
--- a/constants/audio_constants.asm
+++ b/constants/audio_constants.asm
@@ -17,7 +17,7 @@
const CC ; d (used for pitchoffset)
; channel
-; ChannelPointers indexes (see engine/audio.asm)
+; ChannelPointers indexes (see audio/engine.asm)
const_def
const CHAN1 ; 0
const CHAN2 ; 1
diff --git a/constants/battle_tower_constants.asm b/constants/battle_tower_constants.asm
index 0965d626a..0965d626a 100755..100644
--- a/constants/battle_tower_constants.asm
+++ b/constants/battle_tower_constants.asm
diff --git a/constants/cry_constants.asm b/constants/cry_constants.asm
index 654aac523..654aac523 100755..100644
--- a/constants/cry_constants.asm
+++ b/constants/cry_constants.asm
diff --git a/constants/deco_constants.asm b/constants/deco_constants.asm
index 3b0230965..f385e7cd7 100644
--- a/constants/deco_constants.asm
+++ b/constants/deco_constants.asm
@@ -35,7 +35,7 @@ const_value = 1
const YELLOW_CARPET
const GREEN_CARPET
-; DoDecorationAction2.DecoActions indexes (see engine/decorations.asm)
+; DoDecorationAction2.DecoActions indexes (see engine/overworld/decorations.asm)
const_value = 1
const SET_UP_BED
const PUT_AWAY_BED
@@ -64,41 +64,41 @@ ENDM
; - DecorationIDs (see data/decorations/decorations.asm)
const_value = 1
__enum__ = 0
-; FindOwnedBeds.beds values (see engine/decorations.asm)
+; FindOwnedBeds.beds values (see engine/overworld/decorations.asm)
const BEDS
deco FEATHERY_BED
deco PINK_BED
deco POLKADOT_BED
deco PIKACHU_BED
-; FindOwnedCarpets.carpets values (see engine/decorations.asm)
+; FindOwnedCarpets.carpets values (see engine/overworld/decorations.asm)
const CARPETS
deco RED_CARPET
deco BLUE_CARPET
deco YELLOW_CARPET
deco GREEN_CARPET
-; FindOwnedPlants.plants values (see engine/decorations.asm)
+; FindOwnedPlants.plants values (see engine/overworld/decorations.asm)
const PLANTS
deco MAGNAPLANT
deco TROPICPLANT
deco JUMBOPLANT
-; FindOwnedPosters.posters values (see engine/decorations.asm)
+; FindOwnedPosters.posters values (see engine/overworld/decorations.asm)
const POSTERS
deco TOWN_MAP
deco PIKACHU_POSTER
deco CLEFAIRY_POSTER
deco JIGGLYPUFF_POSTER
-; FindOwnedConsoles.consoles values (see engine/decorations.asm)
+; FindOwnedConsoles.consoles values (see engine/overworld/decorations.asm)
const CONSOLES
deco FAMICOM
deco SNES
deco N64
deco VIRTUAL_BOY
-; FindOwnedBigDolls.big_dolls values (see engine/decorations.asm)
+; FindOwnedBigDolls.big_dolls values (see engine/overworld/decorations.asm)
const BIG_DOLLS
deco BIG_SNORLAX_DOLL
deco BIG_ONIX_DOLL
deco BIG_LAPRAS_DOLL
-; FindOwnedOrnaments.ornaments values (see engine/decorations.asm)
+; FindOwnedOrnaments.ornaments values (see engine/overworld/decorations.asm)
const DOLLS
deco PIKACHU_DOLL
deco SURF_PIKACHU_DOLL
diff --git a/constants/engine_flags.asm b/constants/engine_flags.asm
index 9b2eaaeaf..518edf806 100644
--- a/constants/engine_flags.asm
+++ b/constants/engine_flags.asm
@@ -1,4 +1,4 @@
-; EngineFlags indexes (see engine/engine_flasg.asm)
+; EngineFlags indexes (see engine/engine_flags.asm)
const_def
; wPokegearFlags
const ENGINE_RADIO_CARD
diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm
index d0f8b2b62..515045306 100644
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -41,7 +41,7 @@ SPRITEOAMSTRUCT_LENGTH EQU const_value
NUM_SPRITE_OAM_STRUCTS EQU 40 ; see wVirtualOAM
-; PokeAnims indexes (see engine/pic_animation.asm)
+; PokeAnims indexes (see engine/gfx/pic_animation.asm)
const_def
const ANIM_MON_SLOW
const ANIM_MON_NORMAL
diff --git a/constants/item_constants.asm b/constants/item_constants.asm
index 426f28bd0..ec5f5f211 100644
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -3,7 +3,7 @@
; - ItemNames (see data/items/names.asm)
; - ItemDescriptions (see data/items/descriptions.asm)
; - ItemAttributes (see data/items/attributes.asm)
-; - ItemEffects (see engine/item_effects.asm)
+; - ItemEffects (see engine/items/item_effects.asm)
const_def
const NO_ITEM ; 00
const MASTER_BALL ; 01
diff --git a/constants/item_data_constants.asm b/constants/item_data_constants.asm
index 1af3c47ac..055e24656 100644
--- a/constants/item_data_constants.asm
+++ b/constants/item_data_constants.asm
@@ -17,8 +17,8 @@ ITEMATTR_STRUCT_LENGTH EQU const_value
const TM_HM ; 4
; item menu types
-; UseItem.dw indexes (see engine/pack.asm)
-; UseRegisteredItem.SwitchTo indexes (see engine/select_menu.asm)
+; UseItem.dw indexes (see engine/items/pack.asm)
+; UseRegisteredItem.SwitchTo indexes (see engine/overworld/select_menu.asm)
ITEMMENU_NOUSE EQU 0
ITEMMENU_CURRENT EQU 4
ITEMMENU_PARTY EQU 5
@@ -130,7 +130,7 @@ MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
const HELD_FOCUS_BAND
-; mart types (see engine/mart.asm)
+; mart types (see engine/items/mart.asm)
const_def
const MARTTYPE_STANDARD
const MARTTYPE_BITTER
diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm
index 0178e22b1..9a160a2fa 100644
--- a/constants/map_data_constants.asm
+++ b/constants/map_data_constants.asm
@@ -103,6 +103,6 @@ const_value = -1
NUM_SPAWNS EQU const_value
-; outdoor sprite limits (see engine/overworld.asm)
+; outdoor sprite limits (see engine/overworld/overworld.asm)
MAX_OUTDOOR_SPRITES EQU 23
SPRITE_GFX_LIST_CAPACITY EQU $20
diff --git a/constants/map_object_constants.asm b/constants/map_object_constants.asm
index b752b66e8..73685d4ec 100644
--- a/constants/map_object_constants.asm
+++ b/constants/map_object_constants.asm
@@ -121,7 +121,7 @@ MAPOBJECT_SCREEN_WIDTH EQU 12
NUM_SPRITEMOVEDATA EQU const_value
SPRITEMOVEDATA_FIELDS EQU 6
-; MapObjectMovementPattern.Pointers indexes (see engine/map_objects.asm)
+; MapObjectMovementPattern.Pointers indexes (see engine/overworld/map_objects.asm)
const_def
const SPRITEMOVEFN_00 ; 00
const SPRITEMOVEFN_RANDOM_WALK_Y ; 01
@@ -152,7 +152,7 @@ SPRITEMOVEDATA_FIELDS EQU 6
const SPRITEMOVEFN_BOULDERDUST ; 1a
const SPRITEMOVEFN_GRASS ; 1b
-; StepTypesJumptable indexes (see engine/map_objects.asm)
+; StepTypesJumptable indexes (see engine/overworld/map_objects.asm)
const_def
const STEP_TYPE_00 ; 00
const STEP_TYPE_SLEEP ; 01
@@ -181,7 +181,7 @@ SPRITEMOVEDATA_FIELDS EQU 6
const STEP_TYPE_18 ; 18
const STEP_TYPE_SKYFALL_TOP ; 19
-; ObjectActionPairPointers indexes (see engine/map_object_action.asm)
+; ObjectActionPairPointers indexes (see engine/overworld/map_object_action.asm)
const_def
const OBJECT_ACTION_00 ; 00
const OBJECT_ACTION_STAND ; 01
@@ -237,7 +237,7 @@ SPRITEMOVEDATA_FIELDS EQU 6
const FACING_GRASS_2 ; 1f
-; DoPlayerMovement.DoStep arguments (see engine/player_movement.asm)
+; DoPlayerMovement.DoStep arguments (see engine/overworld/player_movement.asm)
const_def
const STEP_SLOW ; 0
const STEP_WALK ; 1
diff --git a/constants/map_setup_constants.asm b/constants/map_setup_constants.asm
index 9c6164169..426cbb298 100644
--- a/constants/map_setup_constants.asm
+++ b/constants/map_setup_constants.asm
@@ -14,7 +14,7 @@
const MAPSETUP_BADWARP ; fb
const MAPSETUP_FLY ; fc
-; MapSetupCommands indexes (see engine/map_setup.asm)
+; MapSetupCommands indexes (see engine/overworld/map_setup.asm)
; Names taken from Condensation water's scripting compendium
; https://hax.iimarck.us/files/scriptingcodes_eng.htm
const_def
diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm
index f1ca20ae5..46c65474d 100644
--- a/constants/menu_constants.asm
+++ b/constants/menu_constants.asm
@@ -34,7 +34,7 @@
; MonMenuOptions indexes (see data/mon_menu.asm)
-; used by PokemonActionSubmenu (see engine/start_menu.asm)
+; used by PokemonActionSubmenu (see engine/menus/start_menu.asm)
const_def 1
; moves
const MONMENUITEM_CUT ; 1
@@ -83,7 +83,7 @@ HMENURETURN_ASM EQU %11111111
const PARTYMENUACTION_GIVE_MON_FEMALE ; unused
const PARTYMENUACTION_GIVE_ITEM
const PARTYMENUACTION_MOBILE ; mobile
-; PrintPartyMenuActionText arguments (see engine/party_menu.asm)
+; PrintPartyMenuActionText arguments (see engine/pokemon/party_menu.asm)
const_def $f0
const PARTYMENUTEXT_HEAL_PSN
const PARTYMENUTEXT_HEAL_BRN
diff --git a/constants/printer_constants.asm b/constants/printer_constants.asm
index f0b8b4818..f0b8b4818 100755..100644
--- a/constants/printer_constants.asm
+++ b/constants/printer_constants.asm
diff --git a/constants/radio_constants.asm b/constants/radio_constants.asm
index 8903ef005..537b3289e 100644
--- a/constants/radio_constants.asm
+++ b/constants/radio_constants.asm
@@ -1,8 +1,8 @@
; radio channel ids
; indexes for:
; - RadioChannelSongs (see data/radio/channel_music.asm)
-; - PlayRadioShow/RadioJumptable (see engine/radio.asm)
-; - RadioChannels (see engine/radio.asm)
+; - PlayRadioShow/RadioJumptable (see engine/pokegear/radio.asm)
+; - RadioChannels (see engine/pokegear/radio.asm)
const_def
const OAKS_POKEMON_TALK ; 00
const POKEDEX_SHOW ; 01
@@ -94,7 +94,7 @@
const POKEDEX_SHOW_7 ; 56
const POKEDEX_SHOW_8 ; 57
-; PlayRadio.StationPointers indexes (see engine/pokegear.asm)
+; PlayRadio.StationPointers indexes (see engine/pokegear/pokegear.asm)
const_def
const MAPRADIO_POKEMON_CHANNEL
const MAPRADIO_OAKS_POKEMON_TALK
@@ -106,7 +106,7 @@
const MAPRADIO_LETS_ALL_SING
const MAPRADIO_ROCKET
-; These tables in engine/radio.asm are all sized to a power of 2
+; These tables in engine/pokegear/radio.asm are all sized to a power of 2
; so there's no need for a rejection sampling loop
NUM_OAKS_POKEMON_TALK_ADVERBS EQU 16 ; OaksPKMNTalk8.Adverbs
NUM_OAKS_POKEMON_TALK_ADJECTIVES EQU 16 ; OaksPKMNTalk9.Adjectives
@@ -117,7 +117,7 @@ NUM_PNP_PLACES_ADJECTIVES EQU 16 ; PeoplePlaces7.Adjectives
NUM_PASSWORD_CATEGORIES EQU 11
NUM_PASSWORDS_PER_CATEGORY EQU 3
-; GetBuenasPassword.StringFunctionJumpTable indexes (see engine/radio.asm)
+; GetBuenasPassword.StringFunctionJumpTable indexes (see engine/pokegear/radio.asm)
const_def
const BUENA_MON
const BUENA_ITEM
diff --git a/constants/scgb_constants.asm b/constants/scgb_constants.asm
index e31a2139f..e7d987113 100755..100644
--- a/constants/scgb_constants.asm
+++ b/constants/scgb_constants.asm
@@ -1,4 +1,4 @@
-; GetSGBLayout arguments (see engine/cgb_layouts.asm and engine/sgb_layouts.asm)
+; GetSGBLayout arguments (see engine/gfx/cgb_layouts.asm and engine/gfx/sgb_layouts.asm)
const_def
const SCGB_BATTLE_GRAYSCALE
const SCGB_BATTLE_COLORS
@@ -36,7 +36,7 @@ SCGB_PARTY_MENU_HP_PALS EQU -4
SCGB_RAM EQU -1
; PredefPals indexes (see gfx/sgb/predef.pal)
-; GetPredefPal arguments (see engine/color.asm)
+; GetPredefPal arguments (see engine/gfx/color.asm)
const_def
const PREDEFPAL_00
const PREDEFPAL_PALLET
diff --git a/constants/script_constants.asm b/constants/script_constants.asm
index dd086e6b3..e1feaaed9 100644
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -38,7 +38,7 @@ NUM_MEM_BUFFERS EQU const_value
; writecode/checkcode arguments
-; _GetVarAction.VarActionTable indexes (see engine/variables.asm)
+; _GetVarAction.VarActionTable indexes (see engine/overworld/variables.asm)
const_def
const VAR_STRINGBUFFER2 ; 00
const VAR_PARTYCOUNT ; 01
@@ -75,7 +75,7 @@ RETVAR_ADDR_DE EQU (1 << 6)
RETVAR_EXECUTE EQU (2 << 6)
-; PlayerEventScriptPointers indexes (see engine/events.asm)
+; PlayerEventScriptPointers indexes (see engine/overworld/events.asm)
const_def -1
const PLAYEREVENT_MAPSCRIPT
const PLAYEREVENT_NONE
@@ -92,7 +92,7 @@ NUM_PLAYER_EVENTS EQU const_value
; bg_event types
-; TryBGEvent arguments (see engine/events.asm)
+; TryBGEvent arguments (see engine/overworld/events.asm)
const_def
const BGEVENT_READ
const BGEVENT_UP
@@ -105,7 +105,7 @@ NUM_PLAYER_EVENTS EQU const_value
const BGEVENT_COPY
; object_event types
-; TryObjectEvent arguments (see engine/events.asm)
+; TryObjectEvent arguments (see engine/overworld/events.asm)
const_def
const OBJECTTYPE_SCRIPT
const OBJECTTYPE_ITEMBALL
@@ -203,7 +203,7 @@ EMOTE_MEM EQU -1
NUM_FRUIT_TREES EQU const_value + -1
; describedecoration arguments
-; DescribeDecoration.JumpTable indexes (see engine/decorations.asm)
+; DescribeDecoration.JumpTable indexes (see engine/overworld/decorations.asm)
const_def
const DECODESC_POSTER ; 0
const DECODESC_LEFT_DOLL ; 1
@@ -259,7 +259,7 @@ NUM_FRUIT_TREES EQU const_value + -1
const HEALMACHINE_HALL_OF_FAME ; 2
; UnownPuzzle writebyte arguments
-; LoadUnownPuzzlePiecesGFX.LZPointers indexes (see engine/unown_puzzle.asm)
+; LoadUnownPuzzlePiecesGFX.LZPointers indexes (see engine/games/unown_puzzle.asm)
const_def
const UNOWNPUZZLE_KABUTO ; 0
const UNOWNPUZZLE_OMANYTE ; 1
diff --git a/constants/sprite_anim_constants.asm b/constants/sprite_anim_constants.asm
index 8be0f312a..0fbc4d849 100644
--- a/constants/sprite_anim_constants.asm
+++ b/constants/sprite_anim_constants.asm
@@ -67,7 +67,7 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY ; 2b
const SPRITE_ANIM_INDEX_CELEBI ; 2c
-; DoAnimFrame.Jumptable indexes (see engine/sprite_anims.asm)
+; DoAnimFrame.Jumptable indexes (see engine/gfx/sprite_anims.asm)
const_def
const SPRITE_ANIM_SEQ_NULL ; 00
const SPRITE_ANIM_SEQ_PARTY_MON ; 01
diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm
index c23a3b246..0e63cce52 100644
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -144,7 +144,7 @@ SPRITE_POKEMON EQU const_value
const SPRITE_LUGIA ; a1
const SPRITE_HO_OH ; a2
-; special GetMonSprite values (see engine/overworld.asm)
+; special GetMonSprite values (see engine/overworld/overworld.asm)
const_def $e0
const SPRITE_DAY_CARE_MON_1 ; e0
const SPRITE_DAY_CARE_MON_2 ; e1
diff --git a/constants/text_constants.asm b/constants/text_constants.asm
index a64039f64..ee5589561 100644
--- a/constants/text_constants.asm
+++ b/constants/text_constants.asm
@@ -36,7 +36,7 @@ TEXTBOX_INNERY EQU TEXTBOX_Y + 2
const PRINTNUM_RIGHTALIGN_F ; 6
const PRINTNUM_LEADINGZEROS_F ; 7
-; PrintNum arguments (see engine/printnum.asm)
+; PrintNum arguments (see engine/math/print_num.asm)
PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
PRINTNUM_RIGHTALIGN EQU 1 << PRINTNUM_RIGHTALIGN_F
PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
diff --git a/data/battle_anims/framesets.asm b/data/battle_anims/framesets.asm
index 905597cfa..905597cfa 100755..100644
--- a/data/battle_anims/framesets.asm
+++ b/data/battle_anims/framesets.asm
diff --git a/data/battle_anims/oam.asm b/data/battle_anims/oam.asm
index d4b0b6978..d4b0b6978 100755..100644
--- a/data/battle_anims/oam.asm
+++ b/data/battle_anims/oam.asm
diff --git a/data/battle_anims/object_gfx.asm b/data/battle_anims/object_gfx.asm
index 133298d13..133298d13 100755..100644
--- a/data/battle_anims/object_gfx.asm
+++ b/data/battle_anims/object_gfx.asm
diff --git a/data/battle_anims/objects.asm b/data/battle_anims/objects.asm
index 3d46ae2d7..3d46ae2d7 100755..100644
--- a/data/battle_anims/objects.asm
+++ b/data/battle_anims/objects.asm
diff --git a/data/battle_tower/unknown.asm b/data/battle_tower/unknown.asm
index 81c9515fb..81c9515fb 100755..100644
--- a/data/battle_tower/unknown.asm
+++ b/data/battle_tower/unknown.asm
diff --git a/data/sprite_anims/framesets.asm b/data/sprite_anims/framesets.asm
index d768ec21a..d768ec21a 100755..100644
--- a/data/sprite_anims/framesets.asm
+++ b/data/sprite_anims/framesets.asm
diff --git a/data/sprites/map_objects.asm b/data/sprites/map_objects.asm
index 8821f8a1b..8821f8a1b 100755..100644
--- a/data/sprites/map_objects.asm
+++ b/data/sprites/map_objects.asm
diff --git a/data/trainers/class_names.asm b/data/trainers/class_names.asm
index 48d81f910..48d81f910 100755..100644
--- a/data/trainers/class_names.asm
+++ b/data/trainers/class_names.asm
diff --git a/data/unused_53d84.asm b/data/unused_53d84.asm
index 026ec5275..026ec5275 100755..100644
--- a/data/unused_53d84.asm
+++ b/data/unused_53d84.asm
diff --git a/docs/battle_anim_commands.md b/docs/battle_anim_commands.md
index bd40e8a6d..86763b24a 100644
--- a/docs/battle_anim_commands.md
+++ b/docs/battle_anim_commands.md
@@ -88,7 +88,7 @@ Temporarily creates sprites from the top row of the player backpic, so that the
## `$DB`: `anim_checkpokeball`
-Sets `BattleAnimVar` to the result of [GetPokeBallWobble](/engine/battle_anims/getpokeballwobble.asm).
+Sets `BattleAnimVar` to the result of [GetPokeBallWobble](/engine/battle_anims/pokeball_wobble.asm).
## `$DC`: `anim_transform`
diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md
index 0212ed6fc..2c7f83e25 100644
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -490,7 +490,7 @@ This is a bug with `LongAnim_UpdateVariables` in [engine/battle/anim_hp_bar.asm]
([Video](https://www.youtube.com/watch?v=9KyNVIZxJvI))
-This is a bug with `ShortHPBar_CalcPixelFrame` in [engine/anim_hp_bar.asm](/engine/anim_hp_bar.asm):
+This is a bug with `ShortHPBar_CalcPixelFrame` in [engine/battle/anim_hp_bar.asm](/engine/battle/anim_hp_bar.asm):
```asm
ld b, 0
@@ -519,7 +519,7 @@ This is a bug with `ShortHPBar_CalcPixelFrame` in [engine/anim_hp_bar.asm](/engi
This can bring Pokémon straight from level 1 to 100 by gaining just a few experience points.
-This is a bug with `CalcExpAtLevel` in [engine/experience.asm](/engine/experience.asm):
+This is a bug with `CalcExpAtLevel` in [engine/pokemon/experience.asm](/engine/pokemon/experience.asm):
```asm
CalcExpAtLevel: ; 50e47
@@ -589,7 +589,7 @@ Text_StringBuffer2ExpPoints::
## BRN/PSN/PAR do not affect catch rate
-This is a bug with `PokeBallEffect` in [engine/item_effects.asm](/engine/item_effects.asm):
+This is a bug with `PokeBallEffect` in [engine/items/item_effects.asm](/engine/items/item_effects.asm):
```asm
; This routine is buggy. It was intended that SLP and FRZ provide a higher
@@ -713,7 +713,7 @@ This is a bug with `ItemAttributes` in [data/items/attributes.asm](/data/items/a
## Daisy's grooming doesn't always increase happiness
-This is a bug with `HaircutOrGrooming` in [engine/events/specials_2.asm](/engine/events/specials_2.asm):
+This is a bug with `HaircutOrGrooming` in [engine/events/haircut.asm](/engine/events/haircut.asm):
```asm
; Bug: Subtracting $ff from $ff fails to set c.
@@ -923,7 +923,7 @@ This is a bug with `_HallOfFamePC.DisplayMonAndStrings` in [engine/events/hallof
([Video](https://www.youtube.com/watch?v=ojq3xqfRF6I))
-This is a bug with `Slots_PayoutAnim` in [engine/slot_machine.asm](/engine/slot_machine.asm):
+This is a bug with `Slots_PayoutAnim` in [engine/games/slot_machine.asm](/engine/games/slot_machine.asm):
```asm
.okay
@@ -973,7 +973,7 @@ This is a bug with `PlayBattleMusic` in [engine/battle/start_battle.asm](/engine
## No bump noise if standing on tile `$3E`
-This is a bug with `DoPlayerMovement.CheckWarp` in [engine/player_movement.asm](/engine/player_movement.asm):
+This is a bug with `DoPlayerMovement.CheckWarp` in [engine/overworld/player_movement.asm](/engine/overworld/player_movement.asm):
```asm
; Bug: Since no case is made for STANDING here, it will check
@@ -1108,7 +1108,7 @@ In [home/map.asm](/home/map.asm):
This bug is why the Lapras in [maps/UnionCaveB2F.asm](/maps/UnionCaveB2F.asm), which uses `SPRITEMOVEDATA_SWIM_WANDER`, is not restricted by its `1, 1` movement radius.
-In [engine/npc_movement.asm](/engine/npc_movement.asm):
+In [engine/overworld/npc_movement.asm](/engine/overworld/npc_movement.asm):
```asm
ld hl, OBJECT_FLAGS1
@@ -1126,7 +1126,7 @@ In [engine/npc_movement.asm](/engine/npc_movement.asm):
This bug can allow you to talk to Eusine in Celadon City and encounter Ho-Oh with only traded legendary beasts.
-In [engine/search.asm](/engine/search.asm):
+In [engine/pokemon/search.asm](/engine/pokemon/search.asm):
```asm
; check OT
@@ -1157,7 +1157,7 @@ endr
This bug can affect Mew or Pokémon other than Ditto that used Transform via Mirror Move or Sketch.
-This is a bug with `PokeBallEffect` in [engine/item_effects.asm](/engine/item_effects.asm):
+This is a bug with `PokeBallEffect` in [engine/items/item_effects.asm](/engine/items/item_effects.asm):
```asm
ld hl, wEnemySubStatus5
@@ -1229,7 +1229,7 @@ This is a bug with `PokeBallEffect` in [engine/item_effects.asm](/engine/item_ef
([Video](https://www.youtube.com/watch?v=v1ErZdLCIyU))
-This is a bug with `PokeBallEffect` in [engine/item_effects.asm](/engine/item_effects.asm):
+This is a bug with `PokeBallEffect` in [engine/items/item_effects.asm](/engine/items/item_effects.asm):
```asm
.room_in_party
@@ -1254,7 +1254,7 @@ This is a bug with `PokeBallEffect` in [engine/item_effects.asm](/engine/item_ef
## `HELD_CATCH_CHANCE` has no effect
-This is a bug with `PokeBallEffect` in [engine/item_effects.asm](/engine/item_effects.asm):
+This is a bug with `PokeBallEffect` in [engine/items/item_effects.asm](/engine/items/item_effects.asm):
```asm
; BUG: farcall overwrites a, and GetItemHeldEffect takes b anyway.
@@ -1281,7 +1281,7 @@ This is a bug with `PokeBallEffect` in [engine/item_effects.asm](/engine/item_ef
## Only the first three `EvosAttacks` evolution entries can have Stone compatibility reported correctly
-This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` in [engine/party_menu.asm](/engine/party_menu.asm):
+This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` in [engine/pokemon/party_menu.asm](/engine/pokemon/party_menu.asm):
```asm
.DetermineCompatibility: ; 50268
@@ -1304,7 +1304,7 @@ This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` i
## `EVOLVE_STAT` can break Stone compatibility reporting
-This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` in [engine/party_menu.asm](/engine/party_menu.asm):
+This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` in [engine/pokemon/party_menu.asm](/engine/pokemon/party_menu.asm):
```asm
.loop2
@@ -1337,7 +1337,7 @@ This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` i
## `ScriptCall` can overflow `wScriptStack` and crash
-In [engine/scripting.asm](/engine/scripting.asm):
+In [engine/overworld/scripting.asm](/engine/overworld/scripting.asm):
```asm
ScriptCall:
@@ -1377,7 +1377,7 @@ ScriptCall:
## `LoadSpriteGFX` does not limit the capacity of `UsedSprites`
-In [engine/overworld.asm](/engine/overworld.asm):
+In [engine/overworld/overworld.asm](/engine/overworld/overworld.asm):
```asm
LoadSpriteGFX: ; 14306
@@ -1414,7 +1414,7 @@ LoadSpriteGFX: ; 14306
## `ChooseWildEncounter` doesn't really validate the wild Pokémon species
-In [engine/wildmons.asm](/engine/wildmons.asm):
+In [engine/overworld/wildmons.asm](/engine/overworld/wildmons.asm):
```asm
ChooseWildEncounter: ; 2a14f
@@ -1452,7 +1452,7 @@ ValidateTempWildMonSpecies: ; 2a4a0
## `TryObjectEvent` arbitrary code execution
-In [engine/events.asm](/engine/events.asm):
+In [engine/overworld/events.asm](/engine/overworld/events.asm):
```asm
; Bug: If IsInArray returns nc, data at bc will be executed as code.
diff --git a/docs/design_flaws.md b/docs/design_flaws.md
index 20b70cac1..e4a81123b 100644
--- a/docs/design_flaws.md
+++ b/docs/design_flaws.md
@@ -25,7 +25,7 @@ dba_pic: MACRO ; dbw bank, address
ENDM
```
-The offset is translated into a correct bank by `FixPicBank` in [engine/load_pics.asm](/engine/load_pics.asm):
+The offset is translated into a correct bank by `FixPicBank` in [engine/gfx/load_pics.asm](/engine/gfx/load_pics.asm):
```asm
FixPicBank: ; 511c5
@@ -107,7 +107,7 @@ ROMX $49
"Pics 2"
```
-Two routines in [engine/load_pics.asm](/engine/load_pics.asm) make this assumption; `GetFrontpicPointer`:
+Two routines in [engine/gfx/load_pics.asm](/engine/gfx/load_pics.asm) make this assumption; `GetFrontpicPointer`:
```asm
ld a, [wCurPartySpecies]
@@ -295,7 +295,7 @@ Modify `Pokedex_LoadAnyFootprint`:
NUM_TMS = const_value - TM01 - 2 ; discount ITEM_C3 and ITEM_DC
```
-`GetTMHMNumber` and `GetNumberedTMHM` in [engine/items.asm](/engine/items.asm) have to compensate for this:
+`GetTMHMNumber` and `GetNumberedTMHM` in [engine/items/items.asm](/engine/items/items.asm) have to compensate for this:
```asm
GetTMHMNumber:: ; d407
@@ -338,7 +338,7 @@ GetNumberedTMHM: ; d417
Move `ITEM_C3` and `ITEM_DC` above all the TMs in every table of item data.
-Modify engine/items.asm:
+Modify engine/items/items.asm:
```asm
GetTMHMNumber:: ; d407
@@ -399,7 +399,7 @@ GetDexEntryPointer: ; 44333
db BANK(PokedexEntries4)
```
-`GetPokedexEntryBank` in [engine/item_effects.asm](/engine/item_effects.asm):
+`GetPokedexEntryBank` in [engine/items/item_effects.asm](/engine/items/item_effects.asm):
```asm
GetPokedexEntryBank:
@@ -425,7 +425,7 @@ GetPokedexEntryBank:
db BANK(PokedexEntries4)
```
-And `PokedexShow_GetDexEntryBank` in [engine/radio.asm](/engine/radio.asm):
+And `PokedexShow_GetDexEntryBank` in [engine/pokegear/radio.asm](/engine/pokegear/radio.asm):
```asm
PokedexShow_GetDexEntryBank:
@@ -457,7 +457,7 @@ PokedexShow_GetDexEntryBank:
## Identical sine wave code and data is repeated five times
-`_Sine` in [engine/routines/sine.asm](/engine/routines/sine.asm):
+`_Sine` in [engine/math/sine.asm](/engine/math/sine.asm):
```asm
_Sine:: ; 84d9
@@ -466,7 +466,7 @@ _Sine:: ; 84d9
calc_sine_wave
```
-`Sprites_Cosine` and `Sprites_Sine` in [engine/sprites.asm](/engine/sprites.asm):
+`Sprites_Cosine` and `Sprites_Sine` in [engine/gfx/sprites.asm](/engine/gfx/sprites.asm):
```asm
Sprites_Cosine: ; 8e72a
@@ -583,7 +583,7 @@ ENDM
## `GetForestTreeFrame` works, but it's still bad
-In [engine/tileset_anims.asm](/engine/tileset_anims.asm):
+In [engine/tilesets/tileset_anims.asm](/engine/tilesets/tileset_anims.asm):
```asm
GetForestTreeFrame: ; fc54c
diff --git a/docs/event_commands.md b/docs/event_commands.md
index bb6d4def4..5eaf1d778 100644
--- a/docs/event_commands.md
+++ b/docs/event_commands.md
@@ -1,6 +1,6 @@
# Event Commands
-Defined in [macros/scripts/events.asm](/macros/scripts/events.asm) and [engine/scripting.asm:ScriptCommandTable](/engine/scripting.asm).
+Defined in [macros/scripts/events.asm](/macros/scripts/events.asm) and [engine/overworld/scripting.asm:ScriptCommandTable](/engine/overworld/scripting.asm).
Until this document is filled out, the [G/S Scripting Compendium](https://hax.iimarckus.org/files/scriptingcodes_eng.htm) has descriptions for most of these commands. It was written for G/S binary hacking and not Crystal assembly hacking, so it's not 100% accurate for pokecrystal.
diff --git a/docs/movement_commands.md b/docs/movement_commands.md
index 10792c88b..794dd8a98 100644
--- a/docs/movement_commands.md
+++ b/docs/movement_commands.md
@@ -1,6 +1,6 @@
# Movement Commands
-Defined in [macros/scripts/movement.asm](/macros/scripts/movement.asm) and [engine/movement.asm:MovementPointers](/engine/movement.asm).
+Defined in [macros/scripts/movement.asm](/macros/scripts/movement.asm) and [engine/overworld/movement.asm:MovementPointers](/engine/overworld/movement.asm).
## `$00`−`$03`: <code>turn_head <i>direction</i></code>
diff --git a/engine/battle/ai/move.asm b/engine/battle/ai/move.asm
index dd4357fe2..dd4357fe2 100755..100644
--- a/engine/battle/ai/move.asm
+++ b/engine/battle/ai/move.asm
diff --git a/engine/battle/ai/redundant.asm b/engine/battle/ai/redundant.asm
index d09b4da73..d09b4da73 100755..100644
--- a/engine/battle/ai/redundant.asm
+++ b/engine/battle/ai/redundant.asm
diff --git a/engine/battle/ai/switch.asm b/engine/battle/ai/switch.asm
index d397c8d32..d397c8d32 100755..100644
--- a/engine/battle/ai/switch.asm
+++ b/engine/battle/ai/switch.asm
diff --git a/engine/battle/anim_hp_bar.asm b/engine/battle/anim_hp_bar.asm
index 5c453d0ff..5c453d0ff 100755..100644
--- a/engine/battle/anim_hp_bar.asm
+++ b/engine/battle/anim_hp_bar.asm
diff --git a/engine/battle/checkbattlescene.asm b/engine/battle/check_battle_scene.asm
index 577c36e33..577c36e33 100644
--- a/engine/battle/checkbattlescene.asm
+++ b/engine/battle/check_battle_scene.asm
diff --git a/engine/battle/consumehelditem.asm b/engine/battle/consume_held_item.asm
index d727a44e0..d727a44e0 100644
--- a/engine/battle/consumehelditem.asm
+++ b/engine/battle/consume_held_item.asm
diff --git a/engine/battle/link_result.asm b/engine/battle/link_result.asm
index 8f456da9b..8f456da9b 100755..100644
--- a/engine/battle/link_result.asm
+++ b/engine/battle/link_result.asm
diff --git a/engine/battle/menu.asm b/engine/battle/menu.asm
index 705df3729..705df3729 100755..100644
--- a/engine/battle/menu.asm
+++ b/engine/battle/menu.asm
diff --git a/engine/battle/move_effects/attract.asm b/engine/battle/move_effects/attract.asm
index 026176694..026176694 100755..100644
--- a/engine/battle/move_effects/attract.asm
+++ b/engine/battle/move_effects/attract.asm
diff --git a/engine/battle/move_effects/present.asm b/engine/battle/move_effects/present.asm
index a2ef5bc64..a2ef5bc64 100755..100644
--- a/engine/battle/move_effects/present.asm
+++ b/engine/battle/move_effects/present.asm
diff --git a/engine/battle/move_effects/transform.asm b/engine/battle/move_effects/transform.asm
index 5ae7c1511..5ae7c1511 100755..100644
--- a/engine/battle/move_effects/transform.asm
+++ b/engine/battle/move_effects/transform.asm
diff --git a/engine/battle/read_trainer_party.asm b/engine/battle/read_trainer_party.asm
index 3227236c1..3227236c1 100755..100644
--- a/engine/battle/read_trainer_party.asm
+++ b/engine/battle/read_trainer_party.asm
diff --git a/engine/battle/sliding_intro.asm b/engine/battle/sliding_intro.asm
index 667f18191..667f18191 100755..100644
--- a/engine/battle/sliding_intro.asm
+++ b/engine/battle/sliding_intro.asm
diff --git a/engine/battle/trainer_huds.asm b/engine/battle/trainer_huds.asm
index 0a18098ed..0a18098ed 100755..100644
--- a/engine/battle/trainer_huds.asm
+++ b/engine/battle/trainer_huds.asm
diff --git a/engine/routines/unreferenced_getgen1trainerclassname.asm b/engine/battle/unreferenced_getgen1trainerclassname.asm
index da8e98b61..da8e98b61 100644
--- a/engine/routines/unreferenced_getgen1trainerclassname.asm
+++ b/engine/battle/unreferenced_getgen1trainerclassname.asm
diff --git a/engine/battle/updatebattlehuds.asm b/engine/battle/update_battle_huds.asm
index 0c31f1c36..0c31f1c36 100644
--- a/engine/battle/updatebattlehuds.asm
+++ b/engine/battle/update_battle_huds.asm
diff --git a/engine/battle/used_move_text.asm b/engine/battle/used_move_text.asm
index f2182f378..f2182f378 100755..100644
--- a/engine/battle/used_move_text.asm
+++ b/engine/battle/used_move_text.asm
diff --git a/engine/battle_anims/core.asm b/engine/battle_anims/core.asm
index 11578f7f0..11578f7f0 100755..100644
--- a/engine/battle_anims/core.asm
+++ b/engine/battle_anims/core.asm
diff --git a/engine/battle_anims/functions.asm b/engine/battle_anims/functions.asm
index e0eedec86..e0eedec86 100755..100644
--- a/engine/battle_anims/functions.asm
+++ b/engine/battle_anims/functions.asm
diff --git a/engine/battle_anims/helpers.asm b/engine/battle_anims/helpers.asm
index 0a00b65a4..0a00b65a4 100755..100644
--- a/engine/battle_anims/helpers.asm
+++ b/engine/battle_anims/helpers.asm
diff --git a/engine/battle_anims/getpokeballwobble.asm b/engine/battle_anims/pokeball_wobble.asm
index d85240f08..d85240f08 100755..100644
--- a/engine/battle_anims/getpokeballwobble.asm
+++ b/engine/battle_anims/pokeball_wobble.asm
diff --git a/engine/events/basement_key.asm b/engine/events/basement_key.asm
index 879c86a34..879c86a34 100755..100644
--- a/engine/events/basement_key.asm
+++ b/engine/events/basement_key.asm
diff --git a/engine/events/battle_tower/battle_tower.asm b/engine/events/battle_tower/battle_tower.asm
index 9dace59b4..9dace59b4 100755..100644
--- a/engine/events/battle_tower/battle_tower.asm
+++ b/engine/events/battle_tower/battle_tower.asm
diff --git a/engine/events/battle_tower/trainer_text.asm b/engine/events/battle_tower/trainer_text.asm
index c4bcedf64..c4bcedf64 100755..100644
--- a/engine/events/battle_tower/trainer_text.asm
+++ b/engine/events/battle_tower/trainer_text.asm
diff --git a/engine/events/bug_contest/contest_2.asm b/engine/events/bug_contest/contest_2.asm
index 3e3b16b21..3e3b16b21 100755..100644
--- a/engine/events/bug_contest/contest_2.asm
+++ b/engine/events/bug_contest/contest_2.asm
diff --git a/engine/events/bug_contest/judging.asm b/engine/events/bug_contest/judging.asm
index a338e83ec..a338e83ec 100755..100644
--- a/engine/events/bug_contest/judging.asm
+++ b/engine/events/bug_contest/judging.asm
diff --git a/engine/events/card_key.asm b/engine/events/card_key.asm
index f4f36e402..f4f36e402 100755..100644
--- a/engine/events/card_key.asm
+++ b/engine/events/card_key.asm
diff --git a/engine/events/celebi.asm b/engine/events/celebi.asm
index 99c22f49f..99c22f49f 100755..100644
--- a/engine/events/celebi.asm
+++ b/engine/events/celebi.asm
diff --git a/engine/routines/checksave.asm b/engine/events/checksave.asm
index 2280f0e53..2280f0e53 100644
--- a/engine/routines/checksave.asm
+++ b/engine/events/checksave.asm
diff --git a/engine/routines/checktime.asm b/engine/events/checktime.asm
index 4c7d033ff..4c7d033ff 100644
--- a/engine/routines/checktime.asm
+++ b/engine/events/checktime.asm
diff --git a/engine/events/daycare.asm b/engine/events/daycare.asm
index 4b256da28..4b256da28 100755..100644
--- a/engine/events/daycare.asm
+++ b/engine/events/daycare.asm
diff --git a/engine/diploma.asm b/engine/events/diploma.asm
index 5d0482cc4..5d0482cc4 100644
--- a/engine/diploma.asm
+++ b/engine/events/diploma.asm
diff --git a/engine/events/elevator.asm b/engine/events/elevator.asm
index bcad170d4..bcad170d4 100755..100644
--- a/engine/events/elevator.asm
+++ b/engine/events/elevator.asm
diff --git a/engine/engine_flags.asm b/engine/events/engine_flags.asm
index acda9ede7..acda9ede7 100644
--- a/engine/engine_flags.asm
+++ b/engine/events/engine_flags.asm
diff --git a/engine/events/field_moves.asm b/engine/events/field_moves.asm
index 2fc30d25c..2fc30d25c 100755..100644
--- a/engine/events/field_moves.asm
+++ b/engine/events/field_moves.asm
diff --git a/engine/events/loadfishinggfx.asm b/engine/events/fishing_gfx.asm
index 3d3ab0ba0..3d3ab0ba0 100644
--- a/engine/events/loadfishinggfx.asm
+++ b/engine/events/fishing_gfx.asm
diff --git a/engine/events/forced_movement.asm b/engine/events/forced_movement.asm
index 2d03659ff..2d03659ff 100755..100644
--- a/engine/events/forced_movement.asm
+++ b/engine/events/forced_movement.asm
diff --git a/engine/events/haircut.asm b/engine/events/haircut.asm
new file mode 100644
index 000000000..0e4400235
--- /dev/null
+++ b/engine/events/haircut.asm
@@ -0,0 +1,82 @@
+BillsGrandfather: ; 73f7
+ farcall SelectMonFromParty
+ jr c, .cancel
+ ld a, [wCurPartySpecies]
+ ld [wScriptVar], a
+ ld [wNamedObjectIndexBuffer], a
+ call GetPokemonName
+ jp CopyPokemonName_Buffer1_Buffer3
+
+.cancel
+ xor a
+ ld [wScriptVar], a
+ ret
+
+YoungerHaircutBrother: ; 7413
+ ld hl, HappinessData_YoungerHaircutBrother
+ jr HaircutOrGrooming
+
+OlderHaircutBrother: ; 7418
+ ld hl, HappinessData_OlderHaircutBrother
+ jr HaircutOrGrooming
+
+DaisysGrooming: ; 741d
+ ld hl, HappinessData_DaisysGrooming
+ ; fallthrough
+
+HaircutOrGrooming: ; 7420
+ push hl
+ farcall SelectMonFromParty
+ pop hl
+ jr c, .nope
+ ld a, [wCurPartySpecies]
+ cp EGG
+ jr z, .egg
+ push hl
+ call GetCurNick
+ call CopyPokemonName_Buffer1_Buffer3
+ pop hl
+ call Random
+; Bug: Subtracting $ff from $ff fails to set c.
+; This can result in overflow into the next data array.
+; In the case of getting a grooming from Daisy, we bleed
+; into CopyPokemonName_Buffer1_Buffer3, which passes
+; $d0 to ChangeHappiness and returns $73 to the script.
+; The end result is that there is a 0.4% chance your
+; Pokemon's happiness will not change at all.
+.loop
+ sub [hl]
+ jr c, .ok
+ inc hl
+ inc hl
+ inc hl
+ jr .loop
+
+.ok
+ inc hl
+ ld a, [hli]
+ ld [wScriptVar], a
+ ld c, [hl]
+ call ChangeHappiness
+ ret
+
+.nope
+ xor a
+ ld [wScriptVar], a
+ ret
+
+.egg
+ ld a, 1
+ ld [wScriptVar], a
+ ret
+
+INCLUDE "data/events/happiness_probabilities.asm"
+
+CopyPokemonName_Buffer1_Buffer3: ; 746e
+ ld hl, wStringBuffer1
+ ld de, wStringBuffer3
+ ld bc, MON_NAME_LENGTH
+ jp CopyBytes
+
+DummyPredef1: ; 747a
+ ret
diff --git a/engine/events/halloffame.asm b/engine/events/halloffame.asm
index cf3831066..cf3831066 100755..100644
--- a/engine/events/halloffame.asm
+++ b/engine/events/halloffame.asm
diff --git a/engine/events/happiness_egg.asm b/engine/events/happiness_egg.asm
index 998e7e07a..998e7e07a 100755..100644
--- a/engine/events/happiness_egg.asm
+++ b/engine/events/happiness_egg.asm
diff --git a/engine/events/heal_machine_anim.asm b/engine/events/heal_machine_anim.asm
index 955449280..955449280 100755..100644
--- a/engine/events/heal_machine_anim.asm
+++ b/engine/events/heal_machine_anim.asm
diff --git a/engine/events/itemfinder.asm b/engine/events/itemfinder.asm
index 71aaa5b69..71aaa5b69 100755..100644
--- a/engine/events/itemfinder.asm
+++ b/engine/events/itemfinder.asm
diff --git a/engine/events/magnet_train.asm b/engine/events/magnet_train.asm
index 6f2aa2d1f..6f2aa2d1f 100755..100644
--- a/engine/events/magnet_train.asm
+++ b/engine/events/magnet_train.asm
diff --git a/engine/events/misc_scripts.asm b/engine/events/misc_scripts.asm
index b79889f72..b79889f72 100755..100644
--- a/engine/events/misc_scripts.asm
+++ b/engine/events/misc_scripts.asm
diff --git a/engine/events/mom_phone.asm b/engine/events/mom_phone.asm
index de19a3674..de19a3674 100755..100644
--- a/engine/events/mom_phone.asm
+++ b/engine/events/mom_phone.asm
diff --git a/engine/money.asm b/engine/events/money.asm
index 585c85618..585c85618 100755..100644
--- a/engine/money.asm
+++ b/engine/events/money.asm
diff --git a/engine/events/npc_trade.asm b/engine/events/npc_trade.asm
index d3991a28c..d3991a28c 100755..100644
--- a/engine/events/npc_trade.asm
+++ b/engine/events/npc_trade.asm
diff --git a/engine/events/overworld.asm b/engine/events/overworld.asm
index 60ed7cdf9..60ed7cdf9 100755..100644
--- a/engine/events/overworld.asm
+++ b/engine/events/overworld.asm
diff --git a/engine/routines/playslowcry.asm b/engine/events/play_slow_cry.asm
index 1f27a7ca4..1f27a7ca4 100644
--- a/engine/routines/playslowcry.asm
+++ b/engine/events/play_slow_cry.asm
diff --git a/engine/events/poisonstep.asm b/engine/events/poisonstep.asm
index 5ea094db9..5ea094db9 100755..100644
--- a/engine/events/poisonstep.asm
+++ b/engine/events/poisonstep.asm
diff --git a/engine/events/pokecenter_pc.asm b/engine/events/pokecenter_pc.asm
index 42284aeab..42284aeab 100755..100644
--- a/engine/events/pokecenter_pc.asm
+++ b/engine/events/pokecenter_pc.asm
diff --git a/engine/events/pokepic.asm b/engine/events/pokepic.asm
index e11c45f9b..e11c45f9b 100755..100644
--- a/engine/events/pokepic.asm
+++ b/engine/events/pokepic.asm
diff --git a/engine/events/print_photo.asm b/engine/events/print_photo.asm
index d8350a530..d8350a530 100755..100644
--- a/engine/events/print_photo.asm
+++ b/engine/events/print_photo.asm
diff --git a/engine/events/prof_oaks_pc.asm b/engine/events/prof_oaks_pc.asm
index b80efe75b..b80efe75b 100755..100644
--- a/engine/events/prof_oaks_pc.asm
+++ b/engine/events/prof_oaks_pc.asm
diff --git a/engine/events/sacred_ash.asm b/engine/events/sacred_ash.asm
index 2cb5e37a1..2cb5e37a1 100755..100644
--- a/engine/events/sacred_ash.asm
+++ b/engine/events/sacred_ash.asm
diff --git a/engine/events/specials_2.asm b/engine/events/shuckle.asm
index 9a83b982b..99fcd7924 100755..100644
--- a/engine/events/specials_2.asm
+++ b/engine/events/shuckle.asm
@@ -140,86 +140,3 @@ ReturnShuckle: ; 737e
ld a, SHUCKIE_FAINTED
ld [wScriptVar], a
ret
-
-BillsGrandfather: ; 73f7
- farcall SelectMonFromParty
- jr c, .cancel
- ld a, [wCurPartySpecies]
- ld [wScriptVar], a
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- jp CopyPokemonName_Buffer1_Buffer3
-
-.cancel
- xor a
- ld [wScriptVar], a
- ret
-
-YoungerHaircutBrother: ; 7413
- ld hl, HappinessData_YoungerHaircutBrother
- jr HaircutOrGrooming
-
-OlderHaircutBrother: ; 7418
- ld hl, HappinessData_OlderHaircutBrother
- jr HaircutOrGrooming
-
-DaisysGrooming: ; 741d
- ld hl, HappinessData_DaisysGrooming
- ; fallthrough
-
-HaircutOrGrooming: ; 7420
- push hl
- farcall SelectMonFromParty
- pop hl
- jr c, .nope
- ld a, [wCurPartySpecies]
- cp EGG
- jr z, .egg
- push hl
- call GetCurNick
- call CopyPokemonName_Buffer1_Buffer3
- pop hl
- call Random
-; Bug: Subtracting $ff from $ff fails to set c.
-; This can result in overflow into the next data array.
-; In the case of getting a grooming from Daisy, we bleed
-; into CopyPokemonName_Buffer1_Buffer3, which passes
-; $d0 to ChangeHappiness and returns $73 to the script.
-; The end result is that there is a 0.4% chance your
-; Pokemon's happiness will not change at all.
-.loop
- sub [hl]
- jr c, .ok
- inc hl
- inc hl
- inc hl
- jr .loop
-
-.ok
- inc hl
- ld a, [hli]
- ld [wScriptVar], a
- ld c, [hl]
- call ChangeHappiness
- ret
-
-.nope
- xor a
- ld [wScriptVar], a
- ret
-
-.egg
- ld a, 1
- ld [wScriptVar], a
- ret
-
-INCLUDE "data/events/happiness_probabilities.asm"
-
-CopyPokemonName_Buffer1_Buffer3: ; 746e
- ld hl, wStringBuffer1
- ld de, wStringBuffer3
- ld bc, MON_NAME_LENGTH
- jp CopyBytes
-
-DummyPredef1: ; 747a
- ret
diff --git a/engine/events/squirtbottle.asm b/engine/events/squirtbottle.asm
index f6ab00951..f6ab00951 100755..100644
--- a/engine/events/squirtbottle.asm
+++ b/engine/events/squirtbottle.asm
diff --git a/engine/events/sweet_scent.asm b/engine/events/sweet_scent.asm
index 509d9775d..509d9775d 100755..100644
--- a/engine/events/sweet_scent.asm
+++ b/engine/events/sweet_scent.asm
diff --git a/engine/events/treemons.asm b/engine/events/treemons.asm
index 6d55004f4..6d55004f4 100755..100644
--- a/engine/events/treemons.asm
+++ b/engine/events/treemons.asm
diff --git a/engine/events/whiteout.asm b/engine/events/whiteout.asm
index 4bf656055..4bf656055 100755..100644
--- a/engine/events/whiteout.asm
+++ b/engine/events/whiteout.asm
diff --git a/engine/card_flip.asm b/engine/games/card_flip.asm
index fbeb3e3b6..fbeb3e3b6 100755..100644
--- a/engine/card_flip.asm
+++ b/engine/games/card_flip.asm
diff --git a/engine/dummy_game.asm b/engine/games/dummy_game.asm
index 6d7e12196..6d7e12196 100755..100644
--- a/engine/dummy_game.asm
+++ b/engine/games/dummy_game.asm
diff --git a/engine/slot_machine.asm b/engine/games/slot_machine.asm
index 924c78924..924c78924 100755..100644
--- a/engine/slot_machine.asm
+++ b/engine/games/slot_machine.asm
diff --git a/engine/unown_puzzle.asm b/engine/games/unown_puzzle.asm
index 83527ea69..83527ea69 100755..100644
--- a/engine/unown_puzzle.asm
+++ b/engine/games/unown_puzzle.asm
diff --git a/engine/cgb_layouts.asm b/engine/gfx/cgb_layouts.asm
index b36dceeb6..b36dceeb6 100644
--- a/engine/cgb_layouts.asm
+++ b/engine/gfx/cgb_layouts.asm
diff --git a/engine/color.asm b/engine/gfx/color.asm
index b0bc653b0..6cf896ff4 100644
--- a/engine/color.asm
+++ b/engine/gfx/color.asm
@@ -1,4 +1,4 @@
-INCLUDE "engine/sgb_layouts.asm"
+INCLUDE "engine/gfx/sgb_layouts.asm"
SHINY_ATK_BIT EQU 5
SHINY_DEF_VAL EQU 10
@@ -445,7 +445,7 @@ LoadMailPalettes:
.MailPals:
INCLUDE "gfx/mail/mail.pal"
-INCLUDE "engine/cgb_layouts.asm"
+INCLUDE "engine/gfx/cgb_layouts.asm"
Unreferenced_Function95f0:
ld hl, .Palette
diff --git a/engine/crystal_layouts.asm b/engine/gfx/crystal_layouts.asm
index d6b193e9d..71e2e4f56 100755..100644
--- a/engine/crystal_layouts.asm
+++ b/engine/gfx/crystal_layouts.asm
@@ -203,7 +203,7 @@ Function49496: ; 49496
ret
; 494ac
-INCLUDE "engine/tileset_palettes.asm"
+INCLUDE "engine/tilesets/tileset_palettes.asm"
MG_Mobile_Layout02: ; 49706
ld hl, .Palette_49732
diff --git a/engine/dma_transfer.asm b/engine/gfx/dma_transfer.asm
index e22adf69a..e22adf69a 100755..100644
--- a/engine/dma_transfer.asm
+++ b/engine/gfx/dma_transfer.asm
diff --git a/engine/load_font.asm b/engine/gfx/load_font.asm
index 40dbb9c10..40dbb9c10 100644
--- a/engine/load_font.asm
+++ b/engine/gfx/load_font.asm
diff --git a/engine/routines/loadoverworldfont.asm b/engine/gfx/load_overworld_font.asm
index f23f01c4e..f23f01c4e 100644
--- a/engine/routines/loadoverworldfont.asm
+++ b/engine/gfx/load_overworld_font.asm
diff --git a/engine/load_pics.asm b/engine/gfx/load_pics.asm
index b533ee56b..b533ee56b 100755..100644
--- a/engine/load_pics.asm
+++ b/engine/gfx/load_pics.asm
diff --git a/engine/routines/loadpushoam.asm b/engine/gfx/load_push_oam.asm
index 95f67ff73..95f67ff73 100644
--- a/engine/routines/loadpushoam.asm
+++ b/engine/gfx/load_push_oam.asm
diff --git a/engine/mon_icons.asm b/engine/gfx/mon_icons.asm
index 5a26d2d7c..5a26d2d7c 100755..100644
--- a/engine/mon_icons.asm
+++ b/engine/gfx/mon_icons.asm
diff --git a/engine/pic_animation.asm b/engine/gfx/pic_animation.asm
index 8781c2fd0..8781c2fd0 100644
--- a/engine/pic_animation.asm
+++ b/engine/gfx/pic_animation.asm
diff --git a/engine/routines/placegraphic.asm b/engine/gfx/place_graphic.asm
index 21b914950..21b914950 100644
--- a/engine/routines/placegraphic.asm
+++ b/engine/gfx/place_graphic.asm
diff --git a/engine/player_gfx.asm b/engine/gfx/player_gfx.asm
index deb16ad3a..deb16ad3a 100644
--- a/engine/player_gfx.asm
+++ b/engine/gfx/player_gfx.asm
diff --git a/engine/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm
index 24bdc952e..24bdc952e 100644
--- a/engine/sgb_layouts.asm
+++ b/engine/gfx/sgb_layouts.asm
diff --git a/engine/sprite_anims.asm b/engine/gfx/sprite_anims.asm
index 9353b71c9..9353b71c9 100755..100644
--- a/engine/sprite_anims.asm
+++ b/engine/gfx/sprite_anims.asm
diff --git a/engine/sprites.asm b/engine/gfx/sprites.asm
index 99d1d2ae4..63666c624 100755..100644
--- a/engine/sprites.asm
+++ b/engine/gfx/sprites.asm
@@ -552,7 +552,7 @@ Unreferenced_BrokenGetStdGraphics: ; 8d1ac
INCLUDE "data/sprite_anims/sequences.asm"
-INCLUDE "engine/sprite_anims.asm"
+INCLUDE "engine/gfx/sprite_anims.asm"
INCLUDE "data/sprite_anims/framesets.asm"
diff --git a/engine/routines/trademonfrontpic.asm b/engine/gfx/trademon_frontpic.asm
index d5f7b55de..d5f7b55de 100644
--- a/engine/routines/trademonfrontpic.asm
+++ b/engine/gfx/trademon_frontpic.asm
diff --git a/engine/buy_sell_toss.asm b/engine/items/buy_sell_toss.asm
index 84481d030..84481d030 100755..100644
--- a/engine/buy_sell_toss.asm
+++ b/engine/items/buy_sell_toss.asm
diff --git a/engine/item_effects.asm b/engine/items/item_effects.asm
index 0b5285608..0b5285608 100644
--- a/engine/item_effects.asm
+++ b/engine/items/item_effects.asm
diff --git a/engine/items.asm b/engine/items/items.asm
index c07042aed..c07042aed 100755..100644
--- a/engine/items.asm
+++ b/engine/items/items.asm
diff --git a/engine/mart.asm b/engine/items/mart.asm
index 911251f65..911251f65 100755..100644
--- a/engine/mart.asm
+++ b/engine/items/mart.asm
diff --git a/engine/pack.asm b/engine/items/pack.asm
index ea3a051ac..ea3a051ac 100644
--- a/engine/pack.asm
+++ b/engine/items/pack.asm
diff --git a/engine/routines/drawkrispackgfx.asm b/engine/items/pack_kris.asm
index 54a21e447..54a21e447 100644
--- a/engine/routines/drawkrispackgfx.asm
+++ b/engine/items/pack_kris.asm
diff --git a/engine/routines/printitemdescription.asm b/engine/items/print_item_description.asm
index 2a9007b97..2a9007b97 100644
--- a/engine/routines/printitemdescription.asm
+++ b/engine/items/print_item_description.asm
diff --git a/engine/switch_items.asm b/engine/items/switch_items.asm
index 77b635246..77b635246 100755..100644
--- a/engine/switch_items.asm
+++ b/engine/items/switch_items.asm
diff --git a/engine/tmhm2.asm b/engine/items/tmhm.asm
index 442f73cfa..442f73cfa 100755..100644
--- a/engine/tmhm2.asm
+++ b/engine/items/tmhm.asm
diff --git a/engine/tmhm.asm b/engine/items/tmhm2.asm
index 9db3dc291..9db3dc291 100755..100644
--- a/engine/tmhm.asm
+++ b/engine/items/tmhm2.asm
diff --git a/engine/routines/updateitemdescription.asm b/engine/items/update_item_description.asm
index fdb1e864d..fdb1e864d 100644
--- a/engine/routines/updateitemdescription.asm
+++ b/engine/items/update_item_description.asm
diff --git a/engine/routines/initlist.asm b/engine/link/init_list.asm
index 26c77b5bb..26c77b5bb 100644
--- a/engine/routines/initlist.asm
+++ b/engine/link/init_list.asm
diff --git a/engine/link.asm b/engine/link/link.asm
index c693e6919..f6f37619f 100755..100644
--- a/engine/link.asm
+++ b/engine/link/link.asm
@@ -2029,7 +2029,7 @@ Unreferenced_Function28f09: ; 28f09
ret
; 28f24
-INCLUDE "engine/trade_animation.asm"
+INCLUDE "engine/movie/trade_animation.asm"
CheckTimeCapsuleCompatibility: ; 29bfb
; Checks to see if your party is compatible with the Gen 1 games.
diff --git a/engine/link_2.asm b/engine/link/link_2.asm
index e2fe47dc5..e2fe47dc5 100644
--- a/engine/link_2.asm
+++ b/engine/link/link_2.asm
diff --git a/engine/link_trade.asm b/engine/link/link_trade.asm
index 4c2af0842..4c2af0842 100755..100644
--- a/engine/link_trade.asm
+++ b/engine/link/link_trade.asm
diff --git a/engine/mystery_gift.asm b/engine/link/mystery_gift.asm
index c73e4246e..c73e4246e 100755..100644
--- a/engine/mystery_gift.asm
+++ b/engine/link/mystery_gift.asm
diff --git a/engine/mystery_gift_2.asm b/engine/link/mystery_gift_2.asm
index e0e2e88fd..e0e2e88fd 100755..100644
--- a/engine/mystery_gift_2.asm
+++ b/engine/link/mystery_gift_2.asm
diff --git a/engine/routines/placewaitingtext.asm b/engine/link/place_waiting_text.asm
index 9b2260722..9b2260722 100644
--- a/engine/routines/placewaitingtext.asm
+++ b/engine/link/place_waiting_text.asm
diff --git a/engine/time_capsule.asm b/engine/link/time_capsule.asm
index f90b7e249..f90b7e249 100755..100644
--- a/engine/time_capsule.asm
+++ b/engine/link/time_capsule.asm
diff --git a/engine/time_capsule_2.asm b/engine/link/time_capsule_2.asm
index a56e51785..a56e51785 100644
--- a/engine/time_capsule_2.asm
+++ b/engine/link/time_capsule_2.asm
diff --git a/engine/routines/getsquareroot.asm b/engine/math/get_square_root.asm
index 412fd04ff..412fd04ff 100644
--- a/engine/routines/getsquareroot.asm
+++ b/engine/math/get_square_root.asm
diff --git a/engine/math.asm b/engine/math/math.asm
index 0cd6b0b47..0cd6b0b47 100755..100644
--- a/engine/math.asm
+++ b/engine/math/math.asm
diff --git a/engine/printnum.asm b/engine/math/print_num.asm
index fec798d5c..fec798d5c 100755..100644
--- a/engine/printnum.asm
+++ b/engine/math/print_num.asm
diff --git a/engine/routines/sine.asm b/engine/math/sine.asm
index 23e86c015..23e86c015 100755..100644
--- a/engine/routines/sine.asm
+++ b/engine/math/sine.asm
diff --git a/engine/debug.asm b/engine/menus/debug.asm
index 4c3110fe1..4c3110fe1 100755..100644
--- a/engine/debug.asm
+++ b/engine/menus/debug.asm
diff --git a/engine/menus/delete_save.asm b/engine/menus/delete_save.asm
new file mode 100644
index 000000000..a86faf06a
--- /dev/null
+++ b/engine/menus/delete_save.asm
@@ -0,0 +1,36 @@
+_DeleteSaveData: ; 4d54c
+ farcall BlankScreen
+ ld b, SCGB_DIPLOMA
+ call GetSGBLayout
+ call LoadStandardFont
+ call LoadFontsExtra
+ ld de, MUSIC_MAIN_MENU
+ call PlayMusic
+ ld hl, .Text_ClearAllSaveData
+ call PrintText
+ ld hl, .NoYesMenuHeader
+ call CopyMenuHeader
+ call VerticalMenu
+ ret c
+ ld a, [wMenuCursorY]
+ cp $1
+ ret z
+ farcall EmptyAllSRAMBanks
+ ret
+
+.Text_ClearAllSaveData: ; 0x4d580
+ ; Clear all save data?
+ text_jump UnknownText_0x1c564a
+ db "@"
+
+.NoYesMenuHeader: ; 0x4d585
+ db 0 ; flags
+ menu_coords 14, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1
+ dw .MenuData
+ db 1 ; default option
+
+.MenuData: ; 0x4d58d
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
+ db 2 ; items
+ db "NO@"
+ db "YES@"
diff --git a/engine/routines/emptyallsrambanks.asm b/engine/menus/empty_sram.asm
index 8b060f3ef..8b060f3ef 100644
--- a/engine/routines/emptyallsrambanks.asm
+++ b/engine/menus/empty_sram.asm
diff --git a/engine/init_gender.asm b/engine/menus/init_gender.asm
index 8fd95bc85..8fd95bc85 100755..100644
--- a/engine/init_gender.asm
+++ b/engine/menus/init_gender.asm
diff --git a/engine/intro_menu.asm b/engine/menus/intro_menu.asm
index af6e0c09e..af6e0c09e 100755..100644
--- a/engine/intro_menu.asm
+++ b/engine/menus/intro_menu.asm
diff --git a/engine/main_menu.asm b/engine/menus/main_menu.asm
index d83ce873b..d83ce873b 100755..100644
--- a/engine/main_menu.asm
+++ b/engine/menus/main_menu.asm
diff --git a/engine/menu.asm b/engine/menus/menu.asm
index 51de2e1a4..51de2e1a4 100755..100644
--- a/engine/menu.asm
+++ b/engine/menus/menu.asm
diff --git a/engine/menu_2.asm b/engine/menus/menu_2.asm
index 16cce5348..16cce5348 100644
--- a/engine/menu_2.asm
+++ b/engine/menus/menu_2.asm
diff --git a/engine/naming_screen.asm b/engine/menus/naming_screen.asm
index a958e10eb..a958e10eb 100755..100644
--- a/engine/naming_screen.asm
+++ b/engine/menus/naming_screen.asm
diff --git a/engine/options_menu.asm b/engine/menus/options_menu.asm
index c0a255cb0..c0a255cb0 100755..100644
--- a/engine/options_menu.asm
+++ b/engine/menus/options_menu.asm
diff --git a/engine/save.asm b/engine/menus/save.asm
index 7984c1612..7984c1612 100644
--- a/engine/save.asm
+++ b/engine/menus/save.asm
diff --git a/engine/routines/savemenu_copytilemapatonce.asm b/engine/menus/savemenu_copytilemapatonce.asm
index 9b50494a4..9b50494a4 100644
--- a/engine/routines/savemenu_copytilemapatonce.asm
+++ b/engine/menus/savemenu_copytilemapatonce.asm
diff --git a/engine/scrolling_menu.asm b/engine/menus/scrolling_menu.asm
index 3be3d839c..3be3d839c 100755..100644
--- a/engine/scrolling_menu.asm
+++ b/engine/menus/scrolling_menu.asm
diff --git a/engine/start_menu.asm b/engine/menus/start_menu.asm
index 037efd947..037efd947 100755..100644
--- a/engine/start_menu.asm
+++ b/engine/menus/start_menu.asm
diff --git a/engine/trainer_card.asm b/engine/menus/trainer_card.asm
index e84c1c9f3..e84c1c9f3 100755..100644
--- a/engine/trainer_card.asm
+++ b/engine/menus/trainer_card.asm
diff --git a/engine/credits.asm b/engine/movie/credits.asm
index 1aaecf64a..1aaecf64a 100644
--- a/engine/credits.asm
+++ b/engine/movie/credits.asm
diff --git a/engine/crystal_intro.asm b/engine/movie/crystal_intro.asm
index 56bb02750..56bb02750 100755..100644
--- a/engine/crystal_intro.asm
+++ b/engine/movie/crystal_intro.asm
diff --git a/engine/evolution_animation.asm b/engine/movie/evolution_animation.asm
index 978f9e968..978f9e968 100755..100644
--- a/engine/evolution_animation.asm
+++ b/engine/movie/evolution_animation.asm
diff --git a/engine/gbc_only.asm b/engine/movie/gbc_only.asm
index badd953aa..badd953aa 100644
--- a/engine/gbc_only.asm
+++ b/engine/movie/gbc_only.asm
diff --git a/engine/init_hof_credits.asm b/engine/movie/init_hof_credits.asm
index e8e98a0e1..e8e98a0e1 100644
--- a/engine/init_hof_credits.asm
+++ b/engine/movie/init_hof_credits.asm
diff --git a/engine/title.asm b/engine/movie/title.asm
index f311f2342..f311f2342 100644
--- a/engine/title.asm
+++ b/engine/movie/title.asm
diff --git a/engine/trade_animation.asm b/engine/movie/trade_animation.asm
index 04c31df80..04c31df80 100755..100644
--- a/engine/trade_animation.asm
+++ b/engine/movie/trade_animation.asm
diff --git a/engine/unused_title.asm b/engine/movie/unused_title.asm
index 8e52a71bb..8e52a71bb 100644
--- a/engine/unused_title.asm
+++ b/engine/movie/unused_title.asm
diff --git a/engine/decorations.asm b/engine/overworld/decorations.asm
index 33d0ca0cd..33d0ca0cd 100755..100644
--- a/engine/decorations.asm
+++ b/engine/overworld/decorations.asm
diff --git a/engine/events.asm b/engine/overworld/events.asm
index 35a54138b..cc2c8c574 100644
--- a/engine/events.asm
+++ b/engine/overworld/events.asm
@@ -1106,6 +1106,6 @@ ChangeDirectionScript: ; 9
end
; 96c56
-INCLUDE "engine/scripting.asm"
+INCLUDE "engine/overworld/scripting.asm"
-INCLUDE "engine/events_2.asm"
+INCLUDE "engine/overworld/events_2.asm"
diff --git a/engine/events_2.asm b/engine/overworld/events_2.asm
index 6e106541a..6e106541a 100644
--- a/engine/events_2.asm
+++ b/engine/overworld/events_2.asm
diff --git a/engine/init_map.asm b/engine/overworld/init_map.asm
index 2eb4998a6..2eb4998a6 100644
--- a/engine/init_map.asm
+++ b/engine/overworld/init_map.asm
diff --git a/engine/landmarks.asm b/engine/overworld/landmarks.asm
index f16f48e67..f16f48e67 100644
--- a/engine/landmarks.asm
+++ b/engine/overworld/landmarks.asm
diff --git a/engine/routines/loadmappart.asm b/engine/overworld/load_map_part.asm
index 2184ebf7e..2184ebf7e 100644
--- a/engine/routines/loadmappart.asm
+++ b/engine/overworld/load_map_part.asm
diff --git a/engine/map_object_action.asm b/engine/overworld/map_object_action.asm
index c82cd80a2..c82cd80a2 100755..100644
--- a/engine/map_object_action.asm
+++ b/engine/overworld/map_object_action.asm
diff --git a/engine/map_objects.asm b/engine/overworld/map_objects.asm
index 78d9062ef..8d6f4082f 100644
--- a/engine/map_objects.asm
+++ b/engine/overworld/map_objects.asm
@@ -185,7 +185,7 @@ _HandleObjectAction
ret
; 445f
-INCLUDE "engine/map_object_action.asm"
+INCLUDE "engine/overworld/map_object_action.asm"
CopyNextCoordsTileToStandingCoordsTile: ; 4600
ld hl, OBJECT_NEXT_MAP_X
@@ -1990,7 +1990,7 @@ DoMovementFunction: ; 506b
ret
; 5075
-INCLUDE "engine/movement.asm"
+INCLUDE "engine/overworld/movement.asm"
; 54b8
ApplyMovementToFollower: ; 54b8
diff --git a/engine/map_objects_2.asm b/engine/overworld/map_objects_2.asm
index 038e2b49b..038e2b49b 100644
--- a/engine/map_objects_2.asm
+++ b/engine/overworld/map_objects_2.asm
diff --git a/engine/map_setup.asm b/engine/overworld/map_setup.asm
index 268574de0..268574de0 100644
--- a/engine/map_setup.asm
+++ b/engine/overworld/map_setup.asm
diff --git a/engine/movement.asm b/engine/overworld/movement.asm
index 3dbb0b83a..3dbb0b83a 100644
--- a/engine/movement.asm
+++ b/engine/overworld/movement.asm
diff --git a/engine/npc_movement.asm b/engine/overworld/npc_movement.asm
index 5670935e8..5670935e8 100755..100644
--- a/engine/npc_movement.asm
+++ b/engine/overworld/npc_movement.asm
diff --git a/engine/overworld.asm b/engine/overworld/overworld.asm
index 381c2d89f..381c2d89f 100755..100644
--- a/engine/overworld.asm
+++ b/engine/overworld/overworld.asm
diff --git a/engine/player_movement.asm b/engine/overworld/player_movement.asm
index ef9afc7ad..ef9afc7ad 100755..100644
--- a/engine/player_movement.asm
+++ b/engine/overworld/player_movement.asm
diff --git a/engine/player_object.asm b/engine/overworld/player_object.asm
index 7d287dedb..7d287dedb 100755..100644
--- a/engine/player_object.asm
+++ b/engine/overworld/player_object.asm
diff --git a/engine/player_step.asm b/engine/overworld/player_step.asm
index 675c6553b..675c6553b 100755..100644
--- a/engine/player_step.asm
+++ b/engine/overworld/player_step.asm
diff --git a/engine/scripting.asm b/engine/overworld/scripting.asm
index f65f2f9c0..f65f2f9c0 100644
--- a/engine/scripting.asm
+++ b/engine/overworld/scripting.asm
diff --git a/engine/select_menu.asm b/engine/overworld/select_menu.asm
index 9898afda2..9898afda2 100755..100644
--- a/engine/select_menu.asm
+++ b/engine/overworld/select_menu.asm
diff --git a/engine/spawn_points.asm b/engine/overworld/spawn_points.asm
index 1a3d12441..1a3d12441 100644
--- a/engine/spawn_points.asm
+++ b/engine/overworld/spawn_points.asm
diff --git a/engine/tile_events.asm b/engine/overworld/tile_events.asm
index 705c0e427..705c0e427 100755..100644
--- a/engine/tile_events.asm
+++ b/engine/overworld/tile_events.asm
diff --git a/engine/time.asm b/engine/overworld/time.asm
index 0f83447cc..0f83447cc 100755..100644
--- a/engine/time.asm
+++ b/engine/overworld/time.asm
diff --git a/engine/variables.asm b/engine/overworld/variables.asm
index 89026fdba..89026fdba 100755..100644
--- a/engine/variables.asm
+++ b/engine/overworld/variables.asm
diff --git a/engine/warp_connection.asm b/engine/overworld/warp_connection.asm
index 069b72234..069b72234 100755..100644
--- a/engine/warp_connection.asm
+++ b/engine/overworld/warp_connection.asm
diff --git a/engine/wildmons.asm b/engine/overworld/wildmons.asm
index 494e8d2a4..494e8d2a4 100755..100644
--- a/engine/wildmons.asm
+++ b/engine/overworld/wildmons.asm
diff --git a/engine/routines/phonering_copytilemapatonce.asm b/engine/phone/phonering_copytilemapatonce.asm
index b0d4ffa1e..b0d4ffa1e 100644
--- a/engine/routines/phonering_copytilemapatonce.asm
+++ b/engine/phone/phonering_copytilemapatonce.asm
diff --git a/engine/pokedex/newpokedexentry.asm b/engine/pokedex/new_pokedex_entry.asm
index 365cf1b70..365cf1b70 100644
--- a/engine/pokedex/newpokedexentry.asm
+++ b/engine/pokedex/new_pokedex_entry.asm
diff --git a/engine/pokedex/unown_dex.asm b/engine/pokedex/unown_dex.asm
index a35a266b7..a35a266b7 100755..100644
--- a/engine/pokedex/unown_dex.asm
+++ b/engine/pokedex/unown_dex.asm
diff --git a/engine/pokegear.asm b/engine/pokegear/pokegear.asm
index f04276b2d..f04276b2d 100755..100644
--- a/engine/pokegear.asm
+++ b/engine/pokegear/pokegear.asm
diff --git a/engine/radio.asm b/engine/pokegear/radio.asm
index ffaef80f0..ffaef80f0 100644
--- a/engine/radio.asm
+++ b/engine/pokegear/radio.asm
diff --git a/engine/routines/townmap_convertlinebreakcharacters.asm b/engine/pokegear/townmap_convertlinebreakcharacters.asm
index 6ccd79aae..6ccd79aae 100644
--- a/engine/routines/townmap_convertlinebreakcharacters.asm
+++ b/engine/pokegear/townmap_convertlinebreakcharacters.asm
diff --git a/engine/billspc.asm b/engine/pokemon/bills_pc.asm
index 96d6ac310..96d6ac310 100755..100644
--- a/engine/billspc.asm
+++ b/engine/pokemon/bills_pc.asm
diff --git a/engine/billspctop.asm b/engine/pokemon/bills_pc_top.asm
index 1e808c02c..1e808c02c 100755..100644
--- a/engine/billspctop.asm
+++ b/engine/pokemon/bills_pc_top.asm
diff --git a/engine/breeding.asm b/engine/pokemon/breeding.asm
index 58b42953c..58b42953c 100755..100644
--- a/engine/breeding.asm
+++ b/engine/pokemon/breeding.asm
diff --git a/engine/routines/getbreedmonlevelgrowth.asm b/engine/pokemon/breedmon_level_growth.asm
index dc22db798..dc22db798 100644
--- a/engine/routines/getbreedmonlevelgrowth.asm
+++ b/engine/pokemon/breedmon_level_growth.asm
diff --git a/engine/caught_data.asm b/engine/pokemon/caught_data.asm
index 3bfacf539..3bfacf539 100644
--- a/engine/caught_data.asm
+++ b/engine/pokemon/caught_data.asm
diff --git a/engine/routines/checknickerrors.asm b/engine/pokemon/check_nick_errors.asm
index 87ebd6bb3..87ebd6bb3 100644
--- a/engine/routines/checknickerrors.asm
+++ b/engine/pokemon/check_nick_errors.asm
diff --git a/engine/routines/correcterrorsinplayerparty.asm b/engine/pokemon/correct_party_errors.asm
index e815aa4c8..cf60115ee 100644
--- a/engine/routines/correcterrorsinplayerparty.asm
+++ b/engine/pokemon/correct_party_errors.asm
@@ -1,4 +1,4 @@
-Unreferenced_CorrectErrorsInPlayerParty:
+Unreferenced_CorrectPartyErrors:
ld hl, wPartyCount
ld a, [hl]
and a
diff --git a/engine/european_mail.asm b/engine/pokemon/european_mail.asm
index 8f037cc43..8f037cc43 100644
--- a/engine/european_mail.asm
+++ b/engine/pokemon/european_mail.asm
diff --git a/engine/evolve.asm b/engine/pokemon/evolve.asm
index 5a7e75dfa..5a7e75dfa 100755..100644
--- a/engine/evolve.asm
+++ b/engine/pokemon/evolve.asm
diff --git a/engine/experience.asm b/engine/pokemon/experience.asm
index 6b94ed357..6b94ed357 100644
--- a/engine/experience.asm
+++ b/engine/pokemon/experience.asm
diff --git a/engine/health.asm b/engine/pokemon/health.asm
index cc47e8252..cc47e8252 100755..100644
--- a/engine/health.asm
+++ b/engine/pokemon/health.asm
diff --git a/engine/routines/knowsmove.asm b/engine/pokemon/knows_move.asm
index 4ec3da347..4ec3da347 100644
--- a/engine/routines/knowsmove.asm
+++ b/engine/pokemon/knows_move.asm
diff --git a/engine/learn.asm b/engine/pokemon/learn.asm
index fb62289a7..fb62289a7 100755..100644
--- a/engine/learn.asm
+++ b/engine/pokemon/learn.asm
diff --git a/engine/routines/leveluphappinessmod.asm b/engine/pokemon/level_up_happiness.asm
index 8c6dd92fe..8c6dd92fe 100644
--- a/engine/routines/leveluphappinessmod.asm
+++ b/engine/pokemon/level_up_happiness.asm
diff --git a/engine/mail.asm b/engine/pokemon/mail.asm
index b8685c0df..b8685c0df 100755..100644
--- a/engine/mail.asm
+++ b/engine/pokemon/mail.asm
diff --git a/engine/mail_2.asm b/engine/pokemon/mail_2.asm
index 6e326641b..6e326641b 100755..100644
--- a/engine/mail_2.asm
+++ b/engine/pokemon/mail_2.asm
diff --git a/engine/mon_menu.asm b/engine/pokemon/mon_menu.asm
index 088b1b1a3..088b1b1a3 100755..100644
--- a/engine/mon_menu.asm
+++ b/engine/pokemon/mon_menu.asm
diff --git a/engine/mon_stats.asm b/engine/pokemon/mon_stats.asm
index 2b5586c51..2b5586c51 100644
--- a/engine/mon_stats.asm
+++ b/engine/pokemon/mon_stats.asm
diff --git a/engine/move_mon.asm b/engine/pokemon/move_mon.asm
index 8ccf319f0..8ccf319f0 100755..100644
--- a/engine/move_mon.asm
+++ b/engine/pokemon/move_mon.asm
diff --git a/engine/move_mon_wo_mail.asm b/engine/pokemon/move_mon_wo_mail.asm
index 5d81da8a0..5d81da8a0 100755..100644
--- a/engine/move_mon_wo_mail.asm
+++ b/engine/pokemon/move_mon_wo_mail.asm
diff --git a/engine/party_menu.asm b/engine/pokemon/party_menu.asm
index fc1783c71..fc1783c71 100644
--- a/engine/party_menu.asm
+++ b/engine/pokemon/party_menu.asm
diff --git a/engine/search.asm b/engine/pokemon/search.asm
index 57b489a37..57b489a37 100755..100644
--- a/engine/search.asm
+++ b/engine/pokemon/search.asm
diff --git a/engine/search2.asm b/engine/pokemon/search2.asm
index b7112f1f8..b7112f1f8 100755..100644
--- a/engine/search2.asm
+++ b/engine/pokemon/search2.asm
diff --git a/engine/stats_screen.asm b/engine/pokemon/stats_screen.asm
index 59d96999f..59d96999f 100755..100644
--- a/engine/stats_screen.asm
+++ b/engine/pokemon/stats_screen.asm
diff --git a/engine/routines/switchpartymons.asm b/engine/pokemon/switchpartymons.asm
index b01178417..b01178417 100644
--- a/engine/routines/switchpartymons.asm
+++ b/engine/pokemon/switchpartymons.asm
diff --git a/engine/tempmon.asm b/engine/pokemon/tempmon.asm
index 723bfb1dd..723bfb1dd 100644
--- a/engine/tempmon.asm
+++ b/engine/pokemon/tempmon.asm
diff --git a/engine/types.asm b/engine/pokemon/types.asm
index dc0df61ae..dc0df61ae 100644
--- a/engine/types.asm
+++ b/engine/pokemon/types.asm
diff --git a/engine/print_party.asm b/engine/printer/print_party.asm
index 1095ce584..1095ce584 100755..100644
--- a/engine/print_party.asm
+++ b/engine/printer/print_party.asm
diff --git a/engine/printer.asm b/engine/printer/printer.asm
index b9e55ef2a..0264b4f7a 100755..100644
--- a/engine/printer.asm
+++ b/engine/printer/printer.asm
@@ -1,4 +1,4 @@
-INCLUDE "engine/printer_serial.asm"
+INCLUDE "engine/printer/printer_serial.asm"
SendScreenToPrinter: ; 843f0
.loop
diff --git a/engine/printer_serial.asm b/engine/printer/printer_serial.asm
index 4e0d10851..4e0d10851 100755..100644
--- a/engine/printer_serial.asm
+++ b/engine/printer/printer_serial.asm
diff --git a/engine/routines/printhoursmins.asm b/engine/rtc/print_hours_mins.asm
index eb7dc1619..eb7dc1619 100644
--- a/engine/routines/printhoursmins.asm
+++ b/engine/rtc/print_hours_mins.asm
diff --git a/engine/delete_save_change_clock.asm b/engine/rtc/reset_password.asm
index 431dc6034..fd5007ba7 100755..100644
--- a/engine/delete_save_change_clock.asm
+++ b/engine/rtc/reset_password.asm
@@ -257,40 +257,3 @@ ClockResetPassword: ; 4d41e
dec c
jr nz, .ComponentFromString
ret
-
-_DeleteSaveData: ; 4d54c
- farcall BlankScreen
- ld b, SCGB_DIPLOMA
- call GetSGBLayout
- call LoadStandardFont
- call LoadFontsExtra
- ld de, MUSIC_MAIN_MENU
- call PlayMusic
- ld hl, .Text_ClearAllSaveData
- call PrintText
- ld hl, .NoYesMenuHeader
- call CopyMenuHeader
- call VerticalMenu
- ret c
- ld a, [wMenuCursorY]
- cp $1
- ret z
- farcall EmptyAllSRAMBanks
- ret
-
-.Text_ClearAllSaveData: ; 0x4d580
- ; Clear all save data?
- text_jump UnknownText_0x1c564a
- db "@"
-
-.NoYesMenuHeader: ; 0x4d585
- db 0 ; flags
- menu_coords 14, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1
- dw .MenuData
- db 1 ; default option
-
-.MenuData: ; 0x4d58d
- db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
- db 2 ; items
- db "NO@"
- db "YES@"
diff --git a/engine/clock_reset.asm b/engine/rtc/restart_clock.asm
index c05129349..5fbac80dd 100755..100644
--- a/engine/clock_reset.asm
+++ b/engine/rtc/restart_clock.asm
@@ -1,5 +1,4 @@
-
-ResetClock_GetWraparoundTime: ; 20000 (8:4000)
+RestartClock_GetWraparoundTime: ; 20000 (8:4000)
push hl
dec a
ld e, a
@@ -152,7 +151,7 @@ RestartClock: ; 20021 (8:4021)
.pressed_up
ld a, [wBuffer1]
- call ResetClock_GetWraparoundTime
+ call RestartClock_GetWraparoundTime
ld a, [de]
inc a
ld [de], a
@@ -164,7 +163,7 @@ RestartClock: ; 20021 (8:4021)
.pressed_down
ld a, [wBuffer1]
- call ResetClock_GetWraparoundTime
+ call RestartClock_GetWraparoundTime
ld a, [de]
dec a
ld [de], a
@@ -230,7 +229,7 @@ RestartClock: ; 20021 (8:4021)
.PlaceChars: ; 20168 (8:4168)
push de
- call ResetClock_GetWraparoundTime
+ call RestartClock_GetWraparoundTime
ld a, [wBuffer3]
dec a
ld b, a
diff --git a/engine/rtc.asm b/engine/rtc/rtc.asm
index 37e24c1ed..37e24c1ed 100755..100644
--- a/engine/rtc.asm
+++ b/engine/rtc/rtc.asm
diff --git a/engine/timeset.asm b/engine/rtc/timeset.asm
index eda3094e1..eda3094e1 100755..100644
--- a/engine/timeset.asm
+++ b/engine/rtc/timeset.asm
diff --git a/engine/routines/flagpredef.asm b/engine/smallflag.asm
index 2a6d91ee1..2a6d91ee1 100644
--- a/engine/routines/flagpredef.asm
+++ b/engine/smallflag.asm
diff --git a/engine/map_palettes.asm b/engine/tilesets/map_palettes.asm
index a9d2b382f..a9d2b382f 100644
--- a/engine/map_palettes.asm
+++ b/engine/tilesets/map_palettes.asm
diff --git a/engine/mapgroup_roofs.asm b/engine/tilesets/mapgroup_roofs.asm
index 58e5e7cfe..58e5e7cfe 100644
--- a/engine/mapgroup_roofs.asm
+++ b/engine/tilesets/mapgroup_roofs.asm
diff --git a/engine/tileset_anims.asm b/engine/tilesets/tileset_anims.asm
index bf0037e65..bf0037e65 100644
--- a/engine/tileset_anims.asm
+++ b/engine/tilesets/tileset_anims.asm
diff --git a/engine/tileset_palettes.asm b/engine/tilesets/tileset_palettes.asm
index e2c39c0ab..e2c39c0ab 100644
--- a/engine/tileset_palettes.asm
+++ b/engine/tilesets/tileset_palettes.asm
diff --git a/engine/timeofdaypals.asm b/engine/tilesets/timeofday_pals.asm
index b8d43d252..b8d43d252 100644
--- a/engine/timeofdaypals.asm
+++ b/engine/tilesets/timeofday_pals.asm
diff --git a/gfx/battle_anims/beam.png b/gfx/battle_anims/beam.png
index e8bc6cde4..e8bc6cde4 100755..100644
--- a/gfx/battle_anims/beam.png
+++ b/gfx/battle_anims/beam.png
Binary files differ
diff --git a/gfx/battle_anims/lightning.png b/gfx/battle_anims/lightning.png
index fcc9376f9..fcc9376f9 100755..100644
--- a/gfx/battle_anims/lightning.png
+++ b/gfx/battle_anims/lightning.png
Binary files differ
diff --git a/gfx/battle_anims/misc.png b/gfx/battle_anims/misc.png
index 7540508a4..7540508a4 100755..100644
--- a/gfx/battle_anims/misc.png
+++ b/gfx/battle_anims/misc.png
Binary files differ
diff --git a/gfx/battle_anims/noise.png b/gfx/battle_anims/noise.png
index 328d94c99..328d94c99 100755..100644
--- a/gfx/battle_anims/noise.png
+++ b/gfx/battle_anims/noise.png
Binary files differ
diff --git a/gfx/battle_anims/objects.png b/gfx/battle_anims/objects.png
index 80117f18f..80117f18f 100755..100644
--- a/gfx/battle_anims/objects.png
+++ b/gfx/battle_anims/objects.png
Binary files differ
diff --git a/gfx/battle_anims/poison.png b/gfx/battle_anims/poison.png
index ebbbc52be..ebbbc52be 100755..100644
--- a/gfx/battle_anims/poison.png
+++ b/gfx/battle_anims/poison.png
Binary files differ
diff --git a/gfx/battle_anims/pokeball.png b/gfx/battle_anims/pokeball.png
index ff76a3f74..ff76a3f74 100755..100644
--- a/gfx/battle_anims/pokeball.png
+++ b/gfx/battle_anims/pokeball.png
Binary files differ
diff --git a/gfx/battle_anims/rocks.png b/gfx/battle_anims/rocks.png
index 78814028c..78814028c 100755..100644
--- a/gfx/battle_anims/rocks.png
+++ b/gfx/battle_anims/rocks.png
Binary files differ
diff --git a/gfx/battle_anims/sand.png b/gfx/battle_anims/sand.png
index 7ecdeaee3..7ecdeaee3 100755..100644
--- a/gfx/battle_anims/sand.png
+++ b/gfx/battle_anims/sand.png
Binary files differ
diff --git a/gfx/font.asm b/gfx/font.asm
index bf5741074..bf5741074 100755..100644
--- a/gfx/font.asm
+++ b/gfx/font.asm
diff --git a/gfx/frames/space.png b/gfx/frames/space.png
index 577318724..577318724 100755..100644
--- a/gfx/frames/space.png
+++ b/gfx/frames/space.png
Binary files differ
diff --git a/gfx/mail/cloud.png b/gfx/mail/cloud.png
index d152f008e..d152f008e 100755..100644
--- a/gfx/mail/cloud.png
+++ b/gfx/mail/cloud.png
Binary files differ
diff --git a/gfx/mail/dragonite.png b/gfx/mail/dragonite.png
index 560f8f125..560f8f125 100755..100644
--- a/gfx/mail/dragonite.png
+++ b/gfx/mail/dragonite.png
Binary files differ
diff --git a/gfx/mail/flower_mail_border.png b/gfx/mail/flower_mail_border.png
index a84dd8ac6..a84dd8ac6 100755..100644
--- a/gfx/mail/flower_mail_border.png
+++ b/gfx/mail/flower_mail_border.png
Binary files differ
diff --git a/gfx/mail/large_note.png b/gfx/mail/large_note.png
index 8b16f4103..8b16f4103 100755..100644
--- a/gfx/mail/large_note.png
+++ b/gfx/mail/large_note.png
Binary files differ
diff --git a/gfx/mail/litebluemail_border.png b/gfx/mail/litebluemail_border.png
index 4547e194d..4547e194d 100755..100644
--- a/gfx/mail/litebluemail_border.png
+++ b/gfx/mail/litebluemail_border.png
Binary files differ
diff --git a/gfx/mail/morph_mail_corner.png b/gfx/mail/morph_mail_corner.png
index 491e64294..491e64294 100755..100644
--- a/gfx/mail/morph_mail_corner.png
+++ b/gfx/mail/morph_mail_corner.png
Binary files differ
diff --git a/gfx/mail/surf_mail_border.png b/gfx/mail/surf_mail_border.png
index 722fab83f..722fab83f 100755..100644
--- a/gfx/mail/surf_mail_border.png
+++ b/gfx/mail/surf_mail_border.png
Binary files differ
diff --git a/gfx/mobile/electro_ball_nonmatching.png b/gfx/mobile/electro_ball_nonmatching.png
index 52441bd83..52441bd83 100755..100644
--- a/gfx/mobile/electro_ball_nonmatching.png
+++ b/gfx/mobile/electro_ball_nonmatching.png
Binary files differ
diff --git a/gfx/mobile/mobile_splash.png b/gfx/mobile/mobile_splash.png
index 6eb92c5b2..6eb92c5b2 100755..100644
--- a/gfx/mobile/mobile_splash.png
+++ b/gfx/mobile/mobile_splash.png
Binary files differ
diff --git a/gfx/splash/logo1.png b/gfx/splash/logo1.png
index a02eb08f6..a02eb08f6 100755..100644
--- a/gfx/splash/logo1.png
+++ b/gfx/splash/logo1.png
Binary files differ
diff --git a/gfx/splash/logo2.png b/gfx/splash/logo2.png
index 7038efb54..7038efb54 100755..100644
--- a/gfx/splash/logo2.png
+++ b/gfx/splash/logo2.png
Binary files differ
diff --git a/gfx/trade/ball.png b/gfx/trade/ball.png
index 9b56ae758..9b56ae758 100755..100644
--- a/gfx/trade/ball.png
+++ b/gfx/trade/ball.png
Binary files differ
diff --git a/gfx/unknown/16c903.pal b/gfx/unknown/16c903.pal
index a72635167..a72635167 100755..100644
--- a/gfx/unknown/16c903.pal
+++ b/gfx/unknown/16c903.pal
diff --git a/macros/wram.asm b/macros/wram.asm
index 8936bfd14..8936bfd14 100755..100644
--- a/macros/wram.asm
+++ b/macros/wram.asm
diff --git a/main.asm b/main.asm
index 64be1ded4..fac1b8f3f 100644
--- a/main.asm
+++ b/main.asm
@@ -3,60 +3,61 @@ INCLUDE "constants.asm"
SECTION "bank1", ROMX
-INCLUDE "engine/routines/placewaitingtext.asm"
-INCLUDE "engine/routines/loadpushoam.asm"
-INCLUDE "engine/map_objects.asm"
-INCLUDE "engine/intro_menu.asm"
-INCLUDE "engine/init_map.asm"
-INCLUDE "engine/learn.asm"
-INCLUDE "engine/routines/checknickerrors.asm"
-INCLUDE "engine/math.asm"
+INCLUDE "engine/link/place_waiting_text.asm"
+INCLUDE "engine/gfx/load_push_oam.asm"
+INCLUDE "engine/overworld/map_objects.asm"
+INCLUDE "engine/menus/intro_menu.asm"
+INCLUDE "engine/overworld/init_map.asm"
+INCLUDE "engine/pokemon/learn.asm"
+INCLUDE "engine/pokemon/check_nick_errors.asm"
+INCLUDE "engine/math/math.asm"
INCLUDE "data/items/attributes.asm"
-INCLUDE "engine/npc_movement.asm"
+INCLUDE "engine/overworld/npc_movement.asm"
INCLUDE "engine/events/happiness_egg.asm"
-INCLUDE "engine/events/specials_2.asm"
+INCLUDE "engine/events/shuckle.asm"
+INCLUDE "engine/events/haircut.asm"
SECTION "bank2", ROMX
-INCLUDE "engine/player_object.asm"
-INCLUDE "engine/routines/sine.asm"
+INCLUDE "engine/overworld/player_object.asm"
+INCLUDE "engine/math/sine.asm"
INCLUDE "engine/predef.asm"
-INCLUDE "engine/color.asm"
+INCLUDE "engine/gfx/color.asm"
SECTION "bank3", ROMX
-INCLUDE "engine/routines/checktime.asm"
+INCLUDE "engine/events/checktime.asm"
INCLUDE "engine/events/specials.asm"
-INCLUDE "engine/printnum.asm"
-INCLUDE "engine/health.asm"
+INCLUDE "engine/math/print_num.asm"
+INCLUDE "engine/pokemon/health.asm"
INCLUDE "engine/events/overworld.asm"
-INCLUDE "engine/items.asm"
-INCLUDE "engine/player_step.asm"
+INCLUDE "engine/items/items.asm"
+INCLUDE "engine/overworld/player_step.asm"
INCLUDE "engine/battle/anim_hp_bar.asm"
-INCLUDE "engine/move_mon.asm"
-INCLUDE "engine/billspctop.asm"
-INCLUDE "engine/routines/getbreedmonlevelgrowth.asm"
+INCLUDE "engine/pokemon/move_mon.asm"
+INCLUDE "engine/pokemon/bills_pc_top.asm"
+INCLUDE "engine/pokemon/breedmon_level_growth.asm"
INCLUDE "engine/events/bug_contest/caught_mon.asm"
-INCLUDE "engine/item_effects.asm"
-INCLUDE "engine/battle_anims/getpokeballwobble.asm"
-INCLUDE "engine/routines/knowsmove.asm"
+INCLUDE "engine/items/item_effects.asm"
+INCLUDE "engine/battle_anims/pokeball_wobble.asm"
+INCLUDE "engine/pokemon/knows_move.asm"
SECTION "bank4", ROMX
-INCLUDE "engine/pack.asm"
-INCLUDE "engine/time.asm"
-INCLUDE "engine/tmhm.asm"
-INCLUDE "engine/naming_screen.asm"
+INCLUDE "engine/items/pack.asm"
+INCLUDE "engine/overworld/time.asm"
+INCLUDE "engine/items/tmhm2.asm"
+INCLUDE "engine/menus/naming_screen.asm"
INCLUDE "engine/events/misc_scripts.asm"
INCLUDE "engine/events/heal_machine_anim.asm"
INCLUDE "engine/events/whiteout.asm"
INCLUDE "engine/events/forced_movement.asm"
INCLUDE "engine/events/itemfinder.asm"
-INCLUDE "engine/start_menu.asm"
-INCLUDE "engine/select_menu.asm"
+INCLUDE "engine/menus/start_menu.asm"
+INCLUDE "engine/overworld/select_menu.asm"
INCLUDE "engine/events/elevator.asm"
INCLUDE "engine/events/bug_contest/contest.asm"
INCLUDE "engine/events/misc_scripts_2.asm"
@@ -64,61 +65,61 @@ INCLUDE "engine/events/std_collision.asm"
INCLUDE "engine/events/bug_contest/judging.asm"
INCLUDE "engine/events/pokerus/apply_pokerus_tick.asm"
INCLUDE "engine/events/bug_contest/contest_2.asm"
-INCLUDE "engine/routines/correcterrorsinplayerparty.asm"
-INCLUDE "engine/routines/getsquareroot.asm"
+INCLUDE "engine/pokemon/correct_party_errors.asm"
+INCLUDE "engine/math/get_square_root.asm"
SECTION "bank5", ROMX
-INCLUDE "engine/rtc.asm"
-INCLUDE "engine/overworld.asm"
-INCLUDE "engine/tile_events.asm"
-INCLUDE "engine/save.asm"
-INCLUDE "engine/spawn_points.asm"
-INCLUDE "engine/map_setup.asm"
+INCLUDE "engine/rtc/rtc.asm"
+INCLUDE "engine/overworld/overworld.asm"
+INCLUDE "engine/overworld/tile_events.asm"
+INCLUDE "engine/menus/save.asm"
+INCLUDE "engine/overworld/spawn_points.asm"
+INCLUDE "engine/overworld/map_setup.asm"
INCLUDE "engine/events/pokecenter_pc.asm"
-INCLUDE "engine/mart.asm"
-INCLUDE "engine/money.asm"
+INCLUDE "engine/items/mart.asm"
+INCLUDE "engine/events/money.asm"
INCLUDE "data/items/marts.asm"
INCLUDE "engine/events/mom.asm"
INCLUDE "engine/events/daycare.asm"
INCLUDE "engine/events/print_unown.asm"
INCLUDE "engine/events/print_photo.asm"
-INCLUDE "engine/breeding.asm"
+INCLUDE "engine/pokemon/breeding.asm"
INCLUDE "gfx/tilesets.asm"
SECTION "Roofs", ROMX
-INCLUDE "engine/mapgroup_roofs.asm"
+INCLUDE "engine/tilesets/mapgroup_roofs.asm"
SECTION "Clock Reset", ROMX
-INCLUDE "engine/clock_reset.asm"
+INCLUDE "engine/rtc/restart_clock.asm"
SECTION "bank9", ROMX
INCLUDE "data/text_buffers.asm"
-INCLUDE "engine/menu.asm"
-INCLUDE "engine/routines/updateitemdescription.asm"
+INCLUDE "engine/menus/menu.asm"
+INCLUDE "engine/items/update_item_description.asm"
INCLUDE "engine/events/pokepic.asm"
-INCLUDE "engine/map_objects_2.asm"
-INCLUDE "engine/scrolling_menu.asm"
-INCLUDE "engine/switch_items.asm"
-INCLUDE "engine/menu_2.asm"
-INCLUDE "engine/mon_menu.asm"
+INCLUDE "engine/overworld/map_objects_2.asm"
+INCLUDE "engine/menus/scrolling_menu.asm"
+INCLUDE "engine/items/switch_items.asm"
+INCLUDE "engine/menus/menu_2.asm"
+INCLUDE "engine/pokemon/mon_menu.asm"
INCLUDE "engine/battle/menu.asm"
-INCLUDE "engine/buy_sell_toss.asm"
-INCLUDE "engine/trainer_card.asm"
+INCLUDE "engine/items/buy_sell_toss.asm"
+INCLUDE "engine/menus/trainer_card.asm"
INCLUDE "engine/events/prof_oaks_pc.asm"
-INCLUDE "engine/decorations.asm"
-INCLUDE "engine/routines/leveluphappinessmod.asm"
+INCLUDE "engine/overworld/decorations.asm"
+INCLUDE "engine/pokemon/level_up_happiness.asm"
INCLUDE "engine/battle/read_trainer_dvs.asm"
INCLUDE "data/trainers/dvs.asm"
INCLUDE "engine/battle/returntobattle_useball.asm"
-INCLUDE "engine/battle/consumehelditem.asm"
+INCLUDE "engine/battle/consume_held_item.asm"
INCLUDE "data/moves/effects_pointers.asm"
INCLUDE "data/moves/effects.asm"
INCLUDE "engine/events/kurt_selectquantity_interpretjoypad.asm"
@@ -126,8 +127,8 @@ INCLUDE "engine/events/kurt_selectquantity_interpretjoypad.asm"
SECTION "bankA", ROMX
-INCLUDE "engine/link.asm"
-INCLUDE "engine/wildmons.asm"
+INCLUDE "engine/link/link.asm"
+INCLUDE "engine/overworld/wildmons.asm"
INCLUDE "engine/battle/link_result.asm"
ChrisBackpic: ; 2ba1a
@@ -143,12 +144,12 @@ INCLUDE "engine/battle/trainer_huds.asm"
INCLUDE "data/trainers/class_names.asm"
INCLUDE "engine/battle/ai/redundant.asm"
INCLUDE "engine/events/move_deleter.asm"
-INCLUDE "engine/mystery_gift_2.asm"
-INCLUDE "engine/tmhm2.asm"
+INCLUDE "engine/link/mystery_gift_2.asm"
+INCLUDE "engine/items/tmhm.asm"
INCLUDE "data/moves/descriptions.asm"
INCLUDE "engine/events/pokerus/pokerus.asm"
INCLUDE "engine/battle/start_battle.asm"
-INCLUDE "engine/routines/placegraphic.asm"
+INCLUDE "engine/gfx/place_graphic.asm"
SECTION "Effect Commands", ROMX
@@ -177,7 +178,7 @@ SECTION "bank10", ROMX
INCLUDE "engine/pokedex/pokedex.asm"
INCLUDE "data/moves/moves.asm"
-INCLUDE "engine/evolve.asm"
+INCLUDE "engine/pokemon/evolve.asm"
SECTION "bank11", ROMX
@@ -186,34 +187,34 @@ INCLUDE "engine/events/fruit_trees.asm"
INCLUDE "engine/battle/ai/move.asm"
INCLUDE "engine/pokedex/pokedex_2.asm"
INCLUDE "data/pokemon/dex_entry_pointers.asm"
-INCLUDE "engine/mail.asm"
+INCLUDE "engine/pokemon/mail.asm"
SECTION "Crystal Features 1", ROMX
-INCLUDE "engine/init_gender.asm"
-INCLUDE "engine/routines/drawkrispackgfx.asm"
+INCLUDE "engine/menus/init_gender.asm"
+INCLUDE "engine/items/pack_kris.asm"
INCLUDE "engine/events/move_tutor.asm"
-INCLUDE "engine/crystal_layouts.asm"
+INCLUDE "engine/gfx/crystal_layouts.asm"
INCLUDE "engine/events/celebi.asm"
-INCLUDE "engine/main_menu.asm"
+INCLUDE "engine/menus/main_menu.asm"
INCLUDE "mobile/mobile_menu.asm"
-INCLUDE "engine/search.asm"
+INCLUDE "engine/pokemon/search.asm"
INCLUDE "mobile/mobile_12_2.asm"
INCLUDE "engine/events/buena_menu.asm"
SECTION "bank13", ROMX
-INCLUDE "engine/map_palettes.asm"
+INCLUDE "engine/tilesets/map_palettes.asm"
INCLUDE "gfx/tileset_palette_maps.asm"
INCLUDE "data/collision_permissions.asm"
-INCLUDE "engine/routines/emptyallsrambanks.asm"
-INCLUDE "engine/routines/savemenu_copytilemapatonce.asm"
-INCLUDE "engine/routines/checksave.asm"
+INCLUDE "engine/menus/empty_sram.asm"
+INCLUDE "engine/menus/savemenu_copytilemapatonce.asm"
+INCLUDE "engine/events/checksave.asm"
INCLUDE "data/maps/scenes.asm"
-INCLUDE "engine/routines/loadmappart.asm"
-INCLUDE "engine/routines/phonering_copytilemapatonce.asm"
+INCLUDE "engine/overworld/load_map_part.asm"
+INCLUDE "engine/phone/phonering_copytilemapatonce.asm"
Shrink1Pic: ; 4d249
INCBIN "gfx/new_game/shrink1.2bpp.lz"
@@ -221,45 +222,46 @@ INCBIN "gfx/new_game/shrink1.2bpp.lz"
Shrink2Pic: ; 4d2d9
INCBIN "gfx/new_game/shrink2.2bpp.lz"
-INCLUDE "engine/link_2.asm"
-INCLUDE "engine/delete_save_change_clock.asm"
+INCLUDE "engine/link/link_2.asm"
+INCLUDE "engine/rtc/reset_password.asm"
+INCLUDE "engine/menus/delete_save.asm"
INCLUDE "data/tilesets.asm"
-INCLUDE "engine/routines/flagpredef.asm"
-INCLUDE "engine/routines/trademonfrontpic.asm"
+INCLUDE "engine/smallflag.asm"
+INCLUDE "engine/gfx/trademon_frontpic.asm"
INCLUDE "engine/events/pokerus/check_pokerus.asm"
INCLUDE "engine/events/lucky_number.asm"
-INCLUDE "engine/caught_data.asm"
-INCLUDE "engine/search2.asm"
-INCLUDE "engine/stats_screen.asm"
+INCLUDE "engine/pokemon/caught_data.asm"
+INCLUDE "engine/pokemon/search2.asm"
+INCLUDE "engine/pokemon/stats_screen.asm"
INCLUDE "engine/events/catch_tutorial.asm"
-INCLUDE "engine/evolution_animation.asm"
-INCLUDE "engine/init_hof_credits.asm"
+INCLUDE "engine/movie/evolution_animation.asm"
+INCLUDE "engine/movie/init_hof_credits.asm"
INCLUDE "engine/events/battle_tower/get_trainer_class.asm"
INCLUDE "engine/battle/sliding_intro.asm"
INCLUDE "mobile/print_opp_message.asm"
-INCLUDE "engine/battle/checkbattlescene.asm"
-INCLUDE "engine/gbc_only.asm"
+INCLUDE "engine/battle/check_battle_scene.asm"
+INCLUDE "engine/movie/gbc_only.asm"
INCLUDE "engine/events/poke_seer.asm"
SECTION "bank14", ROMX
-INCLUDE "engine/party_menu.asm"
+INCLUDE "engine/pokemon/party_menu.asm"
INCLUDE "engine/events/poisonstep.asm"
INCLUDE "engine/events/sweet_scent.asm"
INCLUDE "engine/events/squirtbottle.asm"
INCLUDE "engine/events/card_key.asm"
INCLUDE "engine/events/basement_key.asm"
INCLUDE "engine/events/sacred_ash.asm"
-INCLUDE "engine/tempmon.asm"
-INCLUDE "engine/types.asm"
-INCLUDE "engine/routines/unreferenced_getgen1trainerclassname.asm"
-INCLUDE "engine/mon_stats.asm"
-INCLUDE "engine/routines/initlist.asm"
-INCLUDE "engine/experience.asm"
-INCLUDE "engine/routines/switchpartymons.asm"
-INCLUDE "engine/load_pics.asm"
-INCLUDE "engine/move_mon_wo_mail.asm"
+INCLUDE "engine/pokemon/tempmon.asm"
+INCLUDE "engine/pokemon/types.asm"
+INCLUDE "engine/battle/unreferenced_getgen1trainerclassname.asm"
+INCLUDE "engine/pokemon/mon_stats.asm"
+INCLUDE "engine/link/init_list.asm"
+INCLUDE "engine/pokemon/experience.asm"
+INCLUDE "engine/pokemon/switchpartymons.asm"
+INCLUDE "engine/gfx/load_pics.asm"
+INCLUDE "engine/pokemon/move_mon_wo_mail.asm"
INCLUDE "data/pokemon/base_stats.asm"
INCLUDE "data/pokemon/names.asm"
INCLUDE "data/unused_53d84.asm"
@@ -276,16 +278,16 @@ INCLUDE "data/phone/text/extra.asm"
SECTION "bank20", ROMX
-INCLUDE "engine/player_movement.asm"
-INCLUDE "engine/engine_flags.asm"
-INCLUDE "engine/variables.asm"
+INCLUDE "engine/overworld/player_movement.asm"
+INCLUDE "engine/events/engine_flags.asm"
+INCLUDE "engine/overworld/variables.asm"
INCLUDE "data/text/battle.asm"
-INCLUDE "engine/debug.asm"
+INCLUDE "engine/menus/debug.asm"
SECTION "bank21", ROMX
-INCLUDE "engine/printer.asm"
+INCLUDE "engine/printer/printer.asm"
INCLUDE "gfx/battle_anims.asm"
INCLUDE "engine/events/halloffame.asm"
@@ -293,7 +295,7 @@ INCLUDE "engine/events/halloffame.asm"
SECTION "Crystal Features 2", ROMX
INCLUDE "engine/events/kurt.asm"
-INCLUDE "engine/player_gfx.asm"
+INCLUDE "engine/gfx/player_gfx.asm"
INCLUDE "mobile/mobile_22.asm"
INCLUDE "engine/events/unown_walls.asm"
INCLUDE "engine/events/buena.asm"
@@ -304,22 +306,22 @@ INCLUDE "mobile/mobile_22_2.asm"
SECTION "bank23", ROMX
-INCLUDE "engine/timeofdaypals.asm"
+INCLUDE "engine/tilesets/timeofday_pals.asm"
INCLUDE "engine/battle/battle_transition.asm"
INCLUDE "engine/events/field_moves.asm"
INCLUDE "engine/events/magnet_train.asm"
INCLUDE "engine/battle/battlestart_copytilemapatonce.asm"
-INCLUDE "engine/sprites.asm"
-INCLUDE "engine/mon_icons.asm"
+INCLUDE "engine/gfx/sprites.asm"
+INCLUDE "engine/gfx/mon_icons.asm"
SECTION "bank24", ROMX
INCLUDE "engine/phone/phone.asm"
-INCLUDE "engine/timeset.asm"
-INCLUDE "engine/pokegear.asm"
+INCLUDE "engine/rtc/timeset.asm"
+INCLUDE "engine/pokegear/pokegear.asm"
INCLUDE "engine/events/fish.asm"
-INCLUDE "engine/slot_machine.asm"
+INCLUDE "engine/games/slot_machine.asm"
SECTION "Phone Engine", ROMX
@@ -355,9 +357,9 @@ SECTION "bank2E", ROMX
INCLUDE "engine/events/map_name_sign.asm"
INCLUDE "engine/events/checkforhiddenitems.asm"
INCLUDE "engine/events/treemons.asm"
-INCLUDE "engine/events/loadfishinggfx.asm"
-INCLUDE "engine/radio.asm"
-INCLUDE "engine/mail_2.asm"
+INCLUDE "engine/events/fishing_gfx.asm"
+INCLUDE "engine/pokegear/radio.asm"
+INCLUDE "engine/pokemon/mail_2.asm"
SECTION "bank2F", ROMX
@@ -393,7 +395,7 @@ INCLUDE "data/battle_anims/object_gfx.asm"
SECTION "Pic Animations 1", ROMX
-INCLUDE "engine/pic_animation.asm"
+INCLUDE "engine/gfx/pic_animation.asm"
INCLUDE "gfx/pokemon/anim_pointers.asm"
INCLUDE "gfx/pokemon/anims.asm"
INCLUDE "gfx/pokemon/idle_pointers.asm"
@@ -430,10 +432,10 @@ INCLUDE "gfx/pokemon/unown_frames.asm"
SECTION "bank38", ROMX
INCLUDE "engine/events/print_unown_2.asm"
-INCLUDE "engine/card_flip.asm"
-INCLUDE "engine/unown_puzzle.asm"
-INCLUDE "engine/dummy_game.asm"
-INCLUDE "engine/billspc.asm"
+INCLUDE "engine/games/card_flip.asm"
+INCLUDE "engine/games/unown_puzzle.asm"
+INCLUDE "engine/games/dummy_game.asm"
+INCLUDE "engine/pokemon/bills_pc.asm"
SECTION "bank39", ROMX
@@ -441,18 +443,18 @@ SECTION "bank39", ROMX
CopyrightGFX:: ; e4000
INCBIN "gfx/splash/copyright.2bpp"
-INCLUDE "engine/options_menu.asm"
-INCLUDE "engine/crystal_intro.asm"
+INCLUDE "engine/menus/options_menu.asm"
+INCLUDE "engine/movie/crystal_intro.asm"
SECTION "bank3E", ROMX
-INCLUDE "engine/load_font.asm"
-INCLUDE "engine/time_capsule.asm"
+INCLUDE "engine/gfx/load_font.asm"
+INCLUDE "engine/link/time_capsule.asm"
INCLUDE "engine/events/name_rater.asm"
-INCLUDE "engine/routines/playslowcry.asm"
-INCLUDE "engine/pokedex/newpokedexentry.asm"
-INCLUDE "engine/time_capsule_2.asm"
+INCLUDE "engine/events/play_slow_cry.asm"
+INCLUDE "engine/pokedex/new_pokedex_entry.asm"
+INCLUDE "engine/link/time_capsule_2.asm"
INCLUDE "engine/pokedex/unown_dex.asm"
INCLUDE "engine/events/magikarp.asm"
INCLUDE "engine/battle/hidden_power.asm"
@@ -461,7 +463,7 @@ INCLUDE "engine/battle/misc.asm"
SECTION "bank3F", ROMX
-INCLUDE "engine/tileset_anims.asm"
+INCLUDE "engine/tilesets/tileset_anims.asm"
INCLUDE "engine/events/npc_trade.asm"
INCLUDE "engine/events/mom_phone.asm"
@@ -471,13 +473,13 @@ INCLUDE "mobile/mobile_40.asm"
SECTION "bank41", ROMX
-INCLUDE "engine/dma_transfer.asm"
+INCLUDE "engine/gfx/dma_transfer.asm"
INCLUDE "gfx/emotes.asm"
-INCLUDE "engine/warp_connection.asm"
-INCLUDE "engine/mystery_gift.asm"
+INCLUDE "engine/overworld/warp_connection.asm"
+INCLUDE "engine/link/mystery_gift.asm"
INCLUDE "engine/battle/used_move_text.asm"
INCLUDE "mobile/mobile_41.asm"
-INCLUDE "engine/routines/loadoverworldfont.asm"
+INCLUDE "engine/gfx/load_overworld_font.asm"
SECTION "Mobile 42", ROMX
@@ -493,8 +495,8 @@ INCBIN "gfx/intro/logo.2bpp.lz"
SECTION "Title", ROMX
-INCLUDE "engine/unused_title.asm"
-INCLUDE "engine/title.asm"
+INCLUDE "engine/movie/unused_title.asm"
+INCLUDE "engine/movie/title.asm"
INCLUDE "mobile/mobile_45.asm"
@@ -511,7 +513,7 @@ INCLUDE "engine/events/battle_tower/trainer_text.asm"
SECTION "bank5B", ROMX
INCLUDE "mobile/mobile_5b.asm"
-INCLUDE "engine/link_trade.asm"
+INCLUDE "engine/link/link_trade.asm"
SECTION "Mobile 5C", ROMX
@@ -526,7 +528,7 @@ INCLUDE "data/phone/text/extra2.asm"
SECTION "UpdateBattleHUDs", ROMX
-INCLUDE "engine/battle/updatebattlehuds.asm"
+INCLUDE "engine/battle/update_battle_huds.asm"
SECTION "Mobile 5E", ROMX
@@ -566,10 +568,10 @@ INCLUDE "data/phone/text/trainers.asm"
SECTION "Miscellaneous Text", ROMX
INCLUDE "data/items/names.asm"
-INCLUDE "engine/routines/printitemdescription.asm"
+INCLUDE "engine/items/print_item_description.asm"
INCLUDE "data/items/descriptions.asm"
INCLUDE "data/moves/names.asm"
-INCLUDE "engine/landmarks.asm"
+INCLUDE "engine/overworld/landmarks.asm"
SECTION "bank77", ROMX
@@ -577,21 +579,21 @@ SECTION "bank77", ROMX
UnownFont: ; 1dc000
INCBIN "gfx/font/unown_font.2bpp"
-INCLUDE "engine/print_party.asm"
+INCLUDE "engine/printer/print_party.asm"
SECTION "bank77_2", ROMX
-INCLUDE "engine/routines/printhoursmins.asm"
-INCLUDE "engine/diploma.asm"
+INCLUDE "engine/rtc/print_hours_mins.asm"
+INCLUDE "engine/events/diploma.asm"
INCLUDE "engine/pokedex/pokedex_3.asm"
INCLUDE "engine/events/catch_tutorial_input.asm"
-INCLUDE "engine/routines/townmap_convertlinebreakcharacters.asm"
+INCLUDE "engine/pokegear/townmap_convertlinebreakcharacters.asm"
PokegearGFX: ; 1de2e4
INCBIN "gfx/pokegear/pokegear.2bpp.lz"
-INCLUDE "engine/european_mail.asm"
+INCLUDE "engine/pokemon/european_mail.asm"
SECTION "Battle Tower Text", ROMX
diff --git a/mobile/fixed_words.asm b/mobile/fixed_words.asm
index 602639b82..602639b82 100755..100644
--- a/mobile/fixed_words.asm
+++ b/mobile/fixed_words.asm
diff --git a/mobile/mobile_12.asm b/mobile/mobile_12.asm
index 9e2e35dec..9e2e35dec 100755..100644
--- a/mobile/mobile_12.asm
+++ b/mobile/mobile_12.asm
diff --git a/mobile/mobile_12_2.asm b/mobile/mobile_12_2.asm
index 47eb2f3bf..47eb2f3bf 100755..100644
--- a/mobile/mobile_12_2.asm
+++ b/mobile/mobile_12_2.asm
diff --git a/mobile/mobile_41.asm b/mobile/mobile_41.asm
index 93c5a6f88..93c5a6f88 100755..100644
--- a/mobile/mobile_41.asm
+++ b/mobile/mobile_41.asm
diff --git a/mobile/mobile_45_sprite_engine.asm b/mobile/mobile_45_sprite_engine.asm
index 1edafb47c..1edafb47c 100755..100644
--- a/mobile/mobile_45_sprite_engine.asm
+++ b/mobile/mobile_45_sprite_engine.asm
diff --git a/mobile/mobile_46.asm b/mobile/mobile_46.asm
index 5ee3ea1e8..5ee3ea1e8 100755..100644
--- a/mobile/mobile_46.asm
+++ b/mobile/mobile_46.asm
diff --git a/mobile/mobile_5b.asm b/mobile/mobile_5b.asm
index 3ebe1736c..3ebe1736c 100755..100644
--- a/mobile/mobile_5b.asm
+++ b/mobile/mobile_5b.asm
diff --git a/mobile/mobile_5c.asm b/mobile/mobile_5c.asm
index 86cb67b71..86cb67b71 100755..100644
--- a/mobile/mobile_5c.asm
+++ b/mobile/mobile_5c.asm
diff --git a/mobile/mobile_menu.asm b/mobile/mobile_menu.asm
index a60091d4c..a60091d4c 100755..100644
--- a/mobile/mobile_menu.asm
+++ b/mobile/mobile_menu.asm
diff --git a/tools/toc.py b/tools/toc.py
index 9bdc8cca6..9bdc8cca6 100644..100755
--- a/tools/toc.py
+++ b/tools/toc.py