summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJaceCearK1 <JaceCearK1@users.noreply.github.com>2017-07-01 21:04:18 +0200
committerGitHub <noreply@github.com>2017-07-01 21:04:18 +0200
commit0dd804a99e5455a0eac8ff6ed87d9de16c7380b7 (patch)
tree7b3567978b63ee6548a7b945e075ea8ba37bef51 /include
parentf1344efd2aff92292f58f7323bd9297a38fe9b02 (diff)
parent8d82578d3a101b06f9d2ced31738021007c4e533 (diff)
Merge pull request #1 from pret/master
Update fork to match main fork.
Diffstat (limited to 'include')
-rw-r--r--include/.clang-format24
-rw-r--r--include/asm.h36
-rw-r--r--include/asm.inc.h501
-rw-r--r--include/asm_fieldmap.h23
-rw-r--r--include/battle.h330
-rw-r--r--include/battle_811DA74.h11
-rw-r--r--include/battle_ai.h32
-rw-r--r--include/battle_anim.h67
-rw-r--r--include/battle_anim_80CA710.h6
-rw-r--r--include/battle_anim_81258BC.h7
-rw-r--r--include/battle_anim_8137220.h6
-rw-r--r--include/battle_anim_813F0F4.h6
-rw-r--r--include/battle_interface.h37
-rw-r--r--include/battle_message.h7
-rw-r--r--include/battle_move_effects.h222
-rw-r--r--include/battle_party_menu.h9
-rw-r--r--include/battle_records.h8
-rw-r--r--include/battle_setup.h172
-rw-r--r--include/battle_tower.h8
-rw-r--r--include/battle_transition.h8
-rw-r--r--include/berry.h28
-rw-r--r--include/berry_blender.h6
-rw-r--r--include/bike.h56
-rw-r--r--include/braille_puzzles.h14
-rw-r--r--include/cable_club.h22
-rw-r--r--include/choose_party.h13
-rw-r--r--include/clock.h8
-rw-r--r--include/config.h39
-rw-r--r--include/contest.h40
-rw-r--r--include/contest_link_80C2020.h13
-rw-r--r--include/contest_link_80C857C.h10
-rw-r--r--include/contest_painting.h66
-rw-r--r--include/coord_event_weather.h6
-rw-r--r--include/cute_sketch.h28
-rwxr-xr-xinclude/data/field_map_obj/anim_func_ptrs.h1519
-rwxr-xr-xinclude/data/field_map_obj/base_oam.h56
-rwxr-xr-xinclude/data/field_map_obj/berry_tree_graphics_tables.h573
-rwxr-xr-xinclude/data/field_map_obj/callback_subroutine_pointers.h442
-rwxr-xr-xinclude/data/field_map_obj/field_effect_object_template_pointers.h84
-rwxr-xr-xinclude/data/field_map_obj/field_effect_objects.h897
-rwxr-xr-xinclude/data/field_map_obj/map_object_anims.h886
-rwxr-xr-xinclude/data/field_map_obj/map_object_graphics_info.h227
-rwxr-xr-xinclude/data/field_map_obj/map_object_graphics_info_pointers.h448
-rwxr-xr-xinclude/data/field_map_obj/map_object_pic_tables.h1879
-rwxr-xr-xinclude/data/field_map_obj/map_object_subsprites.h345
-rw-r--r--include/data2.h47
-rw-r--r--include/daycare.h14
-rw-r--r--include/de_rom_8040FE0.h6
-rw-r--r--include/debug.h7
-rw-r--r--include/decompress.h14
-rw-r--r--include/decoration.h379
-rw-r--r--include/decoration_inventory.h10
-rw-r--r--include/dewford_trend.h11
-rw-r--r--include/diploma.h6
-rw-r--r--include/easy_chat.h48
-rw-r--r--include/event_data.h28
-rw-r--r--include/field_camera.h10
-rw-r--r--include/field_control_avatar.h40
-rw-r--r--include/field_door.h25
-rw-r--r--include/field_effect.h217
-rwxr-xr-xinclude/field_effect_helpers.h30
-rw-r--r--include/field_fadetransition.h31
-rw-r--r--include/field_ground_effect.h27
-rwxr-xr-x[-rw-r--r--]include/field_map_obj.h424
-rw-r--r--include/field_map_obj_helpers.h21
-rw-r--r--include/field_message_box.h8
-rw-r--r--include/field_player_avatar.h162
-rw-r--r--include/field_poison.h6
-rw-r--r--include/field_region_map.h11
-rw-r--r--include/field_screen_effect.h7
-rw-r--r--include/field_special_scene.h (renamed from include/truck_scene.h)6
-rw-r--r--include/field_specials.h37
-rw-r--r--include/field_tasks.h8
-rw-r--r--include/field_weather.h (renamed from include/weather.h)9
-rw-r--r--include/fieldmap.h45
-rw-r--r--include/flag.h11
-rw-r--r--include/flags.h54
-rw-r--r--include/fldeff_80C5CD4.h9
-rw-r--r--include/fldeff_cut.h13
-rw-r--r--include/fldeff_flash.h8
-rw-r--r--include/fldeff_softboiled.h7
-rw-r--r--include/fldeff_teleport.h7
-rw-r--r--include/fonts/.gitignore8
-rw-r--r--include/fonts/font0_widths.h41
-rw-r--r--include/fonts/font1_widths.h37
-rw-r--r--include/fonts/font3_widths.h41
-rw-r--r--include/fonts/font4_widths.h37
-rw-r--r--include/fonts/type1_map.h250
-rw-r--r--include/fonts/type3_map.h131
-rw-r--r--include/gba/flash_internal.h7
-rw-r--r--include/gba/gba.h1
-rw-r--r--include/gba/io_reg.h37
-rw-r--r--include/gba/multiboot.h55
-rw-r--r--include/gba/syscall.h4
-rw-r--r--include/gba/types.h23
-rw-r--r--include/global.berry.h16
-rw-r--r--include/global.fieldmap.h211
-rw-r--r--include/global.h527
-rw-r--r--include/graphics.h2438
-rw-r--r--include/hall_of_fame.h9
-rw-r--r--include/heal_location.h8
-rw-r--r--include/hold_effects.h72
-rw-r--r--include/intro.h5
-rw-r--r--include/intro_credits_graphics.h24
-rw-r--r--include/item.h19
-rw-r--r--include/item_menu.h29
-rw-r--r--include/item_use.h28
-rw-r--r--include/items.h388
-rw-r--r--include/learn_move.h6
-rw-r--r--include/libgncmultiboot.h4
-rw-r--r--include/link.h31
-rw-r--r--include/link/.gitignore2
-rw-r--r--include/load_save.h6
-rw-r--r--include/lottery_corner.h12
-rw-r--r--include/m4a.h1
-rw-r--r--include/mail.h9
-rw-r--r--include/mail_data.h16
-rw-r--r--include/main.h49
-rw-r--r--include/map_constants.h1098
-rw-r--r--include/map_name_popup.h7
-rw-r--r--include/map_obj_lock.h2
-rw-r--r--include/map_object_constants.h239
-rw-r--r--include/matsuda_debug_menu.h11
-rw-r--r--include/mauville_old_man.h11
-rw-r--r--include/menu.h52
-rw-r--r--include/menu_cursor.h2
-rw-r--r--include/menu_helpers.h28
-rw-r--r--include/metatile_behavior.h136
-rw-r--r--include/metatile_behaviors.h173
-rw-r--r--include/moves.h363
-rw-r--r--include/mystery_event_menu.h6
-rw-r--r--include/mystery_event_script.h8
-rw-r--r--include/name_string_util.h7
-rw-r--r--include/naming_screen.h85
-rw-r--r--include/new_game.h10
-rw-r--r--include/opponent_constants.h702
-rw-r--r--include/palette.h32
-rw-r--r--include/party_menu.h151
-rw-r--r--include/player_pc.h107
-rw-r--r--include/pokeball.h11
-rwxr-xr-xinclude/pokeblock.h11
-rw-r--r--include/pokedex.h148
-rw-r--r--include/pokedex_area_screen.h6
-rw-r--r--include/pokedex_cry_screen.h19
-rwxr-xr-x[-rw-r--r--]include/pokemon.h364
-rw-r--r--include/pokemon_icon.h14
-rw-r--r--include/pokemon_item_effect.h6
-rw-r--r--include/pokemon_menu.h14
-rw-r--r--include/pokemon_storage_system.h6
-rw-r--r--include/pokemon_summary_screen.h17
-rw-r--r--include/pokenav.h19
-rw-r--r--include/record_mixing.h20
-rwxr-xr-xinclude/region_map.h13
-rw-r--r--include/reset_rtc_screen.h6
-rw-r--r--include/roamer.h11
-rw-r--r--include/rom3.h65
-rw-r--r--include/rom4.h60
-rw-r--r--include/rom6.h7
-rw-r--r--include/rom_8077ABC.h59
-rw-r--r--include/rom_8094928.h10
-rw-r--r--include/rotating_gate.h8
-rw-r--r--include/safari_zone.h2
-rw-r--r--include/save.h85
-rw-r--r--include/save_failed_screen.h6
-rw-r--r--include/save_menu_util.h4
-rw-r--r--include/script.h3
-rw-r--r--include/script_menu.h33
-rw-r--r--include/script_movement.h8
-rw-r--r--include/script_pokemon_80C4.h17
-rw-r--r--include/script_pokemon_80F9.h17
-rw-r--r--include/secret_base.h15
-rw-r--r--include/shop.h18
-rw-r--r--include/slot_machine.h8
-rw-r--r--include/songs.h148
-rw-r--r--include/sound.h8
-rw-r--r--include/species.h834
-rw-r--r--include/sprite.h102
-rw-r--r--include/start_menu.h12
-rw-r--r--include/starter_choose.h9
-rw-r--r--include/string_util.h5
-rw-r--r--include/strings.h905
-rw-r--r--include/strings2.h322
-rw-r--r--include/task.h12
-rw-r--r--include/text.h70
-rw-r--r--include/text_window.h4
-rw-r--r--include/time_events.h8
-rw-r--r--include/title_screen.h2
-rw-r--r--include/trader.h6
-rw-r--r--include/trainer_card.h48
-rw-r--r--include/trainer_see.h5
-rw-r--r--include/trig.h2
-rw-r--r--include/tv.h111
-rw-r--r--include/unknown_task.h14
-rw-r--r--include/util.h13
-rw-r--r--include/var.h9
-rwxr-xr-x[-rw-r--r--]include/vars.h39
-rw-r--r--include/wallclock.h9
-rw-r--r--include/wild_encounter.h25
198 files changed, 20221 insertions, 2451 deletions
diff --git a/include/.clang-format b/include/.clang-format
new file mode 100644
index 000000000..995d5d96d
--- /dev/null
+++ b/include/.clang-format
@@ -0,0 +1,24 @@
+BasedOnStyle: LLVM
+AllowShortFunctionsOnASingleLine: None
+BreakBeforeBraces: Allman
+ColumnLimit: 100
+UseTab: Never
+IndentWidth: 4
+TabWidth: 4
+AlignAfterOpenBracket: DontAlign
+Cpp11BracedListStyle: false
+BreakStringLiterals: false
+IndentCaseLabels: false
+BinPackArguments: false
+BinPackParameters: false
+IncludeCategories:
+ - Regex: '^"gba/types\.h"$'
+ Priority: -4
+ - Regex: '^"global\.h"$'
+ Priority: -3
+ - Regex: '^"gba/gba\.h"$'
+ Priority: -2
+ - Regex: '^"gba/'
+ Priority: -1
+ - Regex: '.\*'
+ Priority: 1
diff --git a/include/asm.h b/include/asm.h
deleted file mode 100644
index ec0516497..000000000
--- a/include/asm.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef PROJECT_ASM_H
-#define PROJECT_ASM_H
-
-#include "task.h"
-#include "main.h"
-#include "sprite.h"
-#include "asm_fieldmap.h"
-
-struct UnkInputStruct
-{
- u8 input_field_0;
- u8 input_field_1;
- u8 input_field_2;
- u8 input_field_3;
-};
-
-struct UnknownStruct_FPA
-{
- u8 unk0;
- u8 unk1;
- u8 unk2;
- s16 unk4;
- s16 unk6;
- u8 unk8;
- u8 unk9;
- u8 unkA_0:4;
- u8 unkA_4:4;
- u16 unkC;
- u16 unkE;
- u32 unk10;
- u16 unk14;
-};
-
-#include "asm.inc.h"
-
-#endif //PROJECT_ASM_H
diff --git a/include/asm.inc.h b/include/asm.inc.h
deleted file mode 100644
index c9d43c5b9..000000000
--- a/include/asm.inc.h
+++ /dev/null
@@ -1,501 +0,0 @@
-// asm/rom3.o
-void sub_800C35C(void);
-
-// asm/rom_800D42C.o
-void sub_800E7C4(void);
-u8 b_first_side(u8, u8, u8);
-void sub_80157C4(u8 index);
-u8 sub_8015A98(u8, u8, u8);
-u8 sub_8018324(u8, u8, u8, u8, u16);
-void sub_8032AA8(u8 index, int i);
-
-// asm/rom_803D1FC.o
-u16 SpeciesToNationalPokedexNum(u16);
-u32 SpeciesToCryId(u32);
-void DrawSpindaSpots(u16, u32, void *, u8);
-u8 sub_803FC58(u16);
-void AdjustFriendship(struct Pokemon *, u8);
-void sub_80408BC();
-void current_map_music_set__default_for_battle(u16);
-
-// asm/rom_8040EB4.o
-void StoreWordInTwoHalfwords(u16 *, u32);
-void LoadWordFromTwoHalfwords(u16 *, u32 *);
-
-// asm/daycare.o
-u8 daycare_count_pokemon(u8 *);
-void sub_8041324(struct BoxPokemon *, void *);
-void sub_8041790(int i);
-u16 sub_8041870(u16);
-void sub_8041940(void);
-void sub_8041950(void);
-u8 daycare_relationship_score_from_savegame(void);
-
-// asm/rom_804373C.o
-void CreatePokeballSprite(u8 r0, u8 r1, u8 r2, u8 r3, u8 s1, u8 s2, u8 s3, u16 s4);
-
-// asm/berry_blender.o
-void sub_80516C4(u8, u16);
-
-// asm/metatile_behavior.o
-bool8 MetatileBehavior_IsSandOrDeepSand(char);
-bool8 is_tile_x69_2_warp_door(u8);
-u8 MetatileBehavior_IsDoor(u8);
-bool8 MetatileBehavior_IsLadder(u8);
-u8 sub_8056F08(u8);
-bool8 sub_8056F24(u8);
-u8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8);
-bool8 MetatileBehavior_IsEastArrowWarp(u8);
-bool8 MetatileBehavior_IsWestArrowWarp(u8);
-bool8 MetatileBehavior_IsNorthArrowWarp(u8);
-bool8 MetatileBehavior_IsSouthArrowWarp(u8);
-bool8 MetatileBehavior_IsTallGrass(char);
-bool8 MetatileBehavior_IsLongGrass(char);
-u8 MetatileBehavior_IsBridge(u8);
-u8 sub_8057450(u8);
-u8 MetatileBehavior_IsLandWildEncounter(u8);
-u8 MetatileBehavior_IsWaterWildEncounter(u8);
-bool8 sub_80574C4(char);
-bool8 sub_80574D8(char);
-bool8 sub_8057568(char);
-bool8 sub_805759C(u8);
-bool8 MetatileBehavior_IsSurfableFishableWater(u8);
-
-// src/field_door.o
-void FieldSetDoorOpened(u32, u32);
-void FieldSetDoorClosed(u32, u32);
-s8 FieldAnimateDoorClose(u32, u32);
-s8 FieldAnimateDoorOpen(u32, u32);
-bool8 FieldIsDoorAnimationRunning(void);
-u32 sub_8058790(u32 x, u32 y);
-
-// asm/field_map_obj.o
-void sub_805AA98();
-u8 sub_805AB54(void);
-u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8);
-bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *);
-u8 GetFieldObjectIdByXY(s16, s16);
-void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8);
-u8 SpawnSpecialFieldObject(struct UnknownStruct_FPA *);
-u8 show_sprite(u8, u8, u8);
-u8 AddPseudoFieldObject(u8 val, void (*player)(struct Sprite *), int i, int i1, int i2);
-u8 sub_805B410(u8, u8, s16, s16, u8, u8);
-void sub_805B55C(int i, int i1);
-void sub_805B710(int i, int i1);
-void sub_805B980(struct MapObject *, u8);
-void FieldObjectTurn(struct MapObject *, u8);
-void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
-struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8);
-void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
-void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *);
-void sub_805BCF0(u8, u8, u8, u8);
-void sub_805BD48(u8, u8, u8);
-void sub_805BD90(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
-void gpu_pal_allocator_reset__manage_upper_four(void);
-void npc_coords_shift(struct MapObject *pObject, s16 x, s16 y);
-void sub_805C0F8(u8, u8, u8, s16, s16);
-void npc_coords_shift_still(struct MapObject *pObject);
-u8 GetFieldObjectIdByXYZ(u16, u16, int);
-void UpdateFieldObjectsForCameraUpdate(s16, s16);
-u8 AddCameraObject(u8);
-u8 * GetFieldObjectScriptPointerByFieldObjectId(u8);
-u8 FieldObjectGetBerryTreeId(u8);
-void sub_805C754(struct MapObject *pObject);
-void sub_805C774(struct MapObject *, u8 );
-void sub_805C78C(u8, u8, u8);
-void sub_805C7C4(int i);
-u8 FieldObjectDirectionToImageAnimId(u8);
-u8 get_go_image_anim_num(u8 unk_19);
-u8 sub_805FD98(u8);
-u8 sub_805FDE8(u8);
-u8 sub_805FDF8(u8);
-u8 sub_805FE08(u8);
-void npc_set_running_behaviour_etc(struct MapObject *, u8);
-u8 npc_running_behaviour_by_direction(u8);
-u8 npc_block_way(struct MapObject *, s16, s16, u8);
-u8 sub_8060024(struct MapObject *, s16, s16, u8);
-u8 sub_8060234(u8, u8, u8);
-void sub_8060288(u8, u8, u8);
-void sub_80603CC(s16 x, s16 y, s16 *pInt, s16 *pInt1);
-void FieldObjectMoveDestCoords(struct MapObject *pObject, u8 unk_19, s16 *pInt, s16 *pInt1);
-bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *);
-void FieldObjectSetSpecialAnim(struct MapObject *, u8);
-void FieldObjectForceSetSpecialAnim(struct MapObject *pObject, u8 a);
-void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *);
-void FieldObjectClearAnim(struct MapObject *);
-bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *);
-u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
-u8 FieldObjectGetSpecialAnim(struct MapObject *);
-u8 GetFaceDirectionAnimId(u8);
-u8 GetSimpleGoAnimId(u8);
-u8 GetGoSpeed0AnimId(u8 a);
-u8 sub_8060744(u8 a);
-u8 d2s_08064034(u8 a);
-u8 sub_806079C(u8 a);
-u8 sub_80607F4(u8 a);
-u8 GetJumpLedgeAnimId(u8 a);
-u8 sub_806084C(u8);
-u8 sub_8060878(u8);
-u8 sub_80608D0(u8);
-u8 GetStepInPlaceDelay32AnimId(u8 a);
-u8 GetStepInPlaceDelay16AnimId(u8);
-u8 GetStepInPlaceDelay8AnimId(u8 a);
-u8 FieldObjectFaceOppositeDirection(void *, u8);
-u8 sub_80609D8(u8);
-u8 sub_8060A04(u8);
-u8 sub_8060A30(u8);
-u8 sub_8060A5C(u8);
-u8 sub_8060A88(u8);
-u8 sub_8060AB4(u8);
-u8 sub_8060AE0(u8);
-u8 sub_8060B0C(u8);
-u8 sub_8060B38(u8);
-u8 sub_8060B64(u8);
-u8 GetOppositeDirection(u8);
-
-// asm/field_ground_effect.o
-u8 GetLedgeJumpDirection(s16, s16, u8);
-u8 ZCoordToPriority(u8);
-void FieldObjectUpdateZCoord(struct MapObject *pObject);
-void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
-
-// src/map_obj_80643A4.o
-bool8 sub_80643A4(struct MapObject *);
-void player_bitmagic(void);
-void sub_8064470(u8);
-void sub_806451C(void);
-void sub_806487C(struct Sprite *sprite, bool8 invisible);
-void sub_8064990(u8, u8);
-
-// asm/rom_8065394.o
-void sub_8067EEC(struct UnkInputStruct *pStruct);
-void process_overworld_input(struct UnkInputStruct *pStruct, u16 keys, u16 heldKeys);
-int sub_8068024(struct UnkInputStruct *pStruct);
-u8 *sub_80682A8(void *, u8, u8);
-void overworld_poison_timer_set(void);
-void prev_quest_postbuffer_cursor_backup_reset(void);
-u8 *sub_8068E24(struct UnkStruct_8054FF8_Substruct *);
-u8 *GetFieldObjectScriptPointerForComparison();
-void sub_8069030(void);
-void sub_806906C(void);
-bool32 IsNationalPokedex(void);
-bool32 IsMysteryGiftAvailable(void);
-int sub_80691DC(void);
-
-// asm/rom_806936C.o
-void overworld_ensure_per_step_coros_running();
-void activate_per_step_callback(u8);
-void wild_encounter_reset_coro_args(void);
-void DoTimeBasedEvents(void);
-
-// asm/reset_rtc_screen.o
-void CB2_InitResetRtcScreen(void);
-
-// asm/rom_806D7F8.o
-void GetMonNickname(struct Pokemon *mon, u8 *nickname);
-bool8 pokemon_has_move(struct Pokemon *, u16);
-
-// asm/rom_8074BAC.o
-u8 battle_side_get_owner(u8);
-u8 battle_get_per_side_status(u8);
-u8 battle_get_side_with_given_state(u8);
-
-// asm/rom_8080874.o
-void pal_fill_black();
-void sub_8080990(void);
-void sub_80809B0(void);
-void sub_8080A3C(void);
-void sub_8080AC4(void);
-void mapldr_default();
-void sub_8080B60(void);
-void atk17_seteffectuser(void);
-void sub_8080E44(void);
-void sub_8080E88(void);
-void sp13E_warp_to_last_warp(void);
-void sub_8080EF0(void);
-void sp13F_fall_to_last_warp(void);
-void sub_8080F68(void);
-void sub_8081594(u8);
-void sub_80815E0(u8 val);
-
-// asm/cable_club.o
-u8 sub_8083664(void);
-void sub_8083A84(TaskFunc);
-s32 sub_8083BF4(u8 id);
-
-// src/fldeff_emotion.o
-void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3);
-void objc_exclamation_mark_probably(struct Sprite *sprite);
-
-// asm/rom_80859BC.o
-u8 CreateTrainerSprite_BirchSpeech(u8, u16, u16, u8, void *);
-void LoadTrainerGfx_TrainerCard(u8 gender, int, void *);
-u8 CreateBirchSprite(u8, u8, u8);
-void remove_some_task(void);
-void dp12_8087EA4(void);
-void sub_80895F8(u32 i, u32 i1, u32 i2);
-void sub_8089668(void);
-void sub_8089944(int i, int i1, int i2, int i3, int i4, int i5, int i6);
-void sub_8089A70(void);
-void sub_808AB90(void);
-
-// asm/rom_8094928.o
-void sub_80961D8(void);
-u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4);
-u16 sub_809D4A8(u16);
-void sub_809D510(struct Sprite *);
-void sub_809D580(u16);
-void sub_809D608(u16);
-u8 pokemon_ailments_get_primary(u32);
-u8 exec_movement(u8, u8, u8, void *);
-bool8 sub_80A212C(u8, u8, u8);
-void sub_80A2178(void);
-void sub_80A2B18(void);
-u16 sub_80A2D64(u16, u8 *);
-void AddMapNamePopUpWindowTask(void);
-void HideMapNamePopUpWindow();
-
-// asm/item_menu.o
-void sub_80A3684(void);
-void sub_80A3714(void);
-void sub_80A53F8(void);
-void sub_80A5B40(void);
-void sub_80A68CC();
-u8 sub_80A7D8C(u8 berry, int i, int i1);
-void sub_80A7DD4(void);
-u8 sub_80A7E5C(u8);
-
-// src/matsuda_debug_menu.o
-void sub_80AA280(u8);
-void sub_80AA5E8(u8);
-void sub_80AA658(u8);
-
-// asm/contest.o
-void sub_80AB1B0(void);
-void sub_80AE098(u8);
-void sub_80AE398(u8, u8);
-u32 sub_80AE770(u8, u8);
-void sub_80AE82C(u8);
-void sub_80AF668(void);
-void sub_80B0F28(u8);
-void sub_80B2D1C(void);
-
-// asm/shop.o
-void CreatePokemartMenu(void *);
-void CreateDecorationShop1Menu(void *);
-void CreateDecorationShop2Menu(void *);
-
-// asm/script_menu.o
-bool8 sub_80B5054(u8, u8, u8, u8);
-bool8 sub_80B50B0(u8, u8, u8, u8, u8);
-bool8 Multichoice(u8, u8, u8, u8);
-bool8 yes_no_box(u8, u8);
-bool8 sub_80B5578(u8, u8, u8, u8, u8);
-bool8 sub_80B58C4(u16, u8, u8);
-void *picbox_close(void);
-
-// asm/naming_screen.o
-void DoNamingScreen(u8 r0, struct SaveBlock2 *r1, u16 r2, u16 r3, u8 s0, MainCallback s4);
-
-// asm/secret_base.o
-void sub_80BB5B4(void);
-u8 sub_80BBB24(void);
-void sub_80BBCCC(u8);
-u8 *sub_80BCCE8(void);
-void sub_80BD674(void *, u32, u8);
-
-// asm/tv.o
-void sub_80BD7A8(void);
-void UpdateTVScreensOnMap(u32, u32);
-void sub_80BDAB4(void);
-void sub_80BE97C(u8);
-void sub_80BEA50(u16);
-bool8 GetPriceReduction(u8);
-u8 sub_80BF0B8(u32);
-void sub_80BFD44(void *, u32, u8);
-void sub_80C0514(void *, u32, u8);
-
-// asm/contest_link_80C2020.o
-void sub_80C2358(void);
-void sub_80C48C8(void);
-void sub_80C4940(void);
-void sub_80C4980(u8);
-u8 sub_80C4B34(u8 *);
-
-// asm/script_pokemon_util_80C4BF0.o
-u8 sub_80C4D50(void);
-void ShowContestWinner(void);
-void HealPlayerParty();
-u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8);
-u8 ScriptGiveEgg(u16);
-void ScriptWildBattle(u16, u8, u16);
-void ScriptSetMonMoveSlot(u8, u16, u8);
-
-// asm/fldeff_80C5CD4.o
-void DoFieldPoisonEffect(void);
-bool32 FieldPoisonEffectIsRunning(void);
-void CreateRecordMixingSprite(void);
-void DestroyRecordMixingSprite(void);
-
-// asm/rotating_gate.o
-void RotatingGatePuzzleCameraUpdate(s16, s16);
-void sub_80C8080();
-u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16);
-
-// asm/contest_link_80C857C.o
-void sub_80C8734(u8);
-void sub_80C88AC(u8);
-void sub_80C8E1C(u8);
-void sub_80C8EBC(u8);
-void sub_80C8F34(u8);
-
-// asm/bike.o
-void MovePlayerOnBike(u8, u16, u16);
-void sub_80E5B38(u16 i, u16 c);
-u8 sub_80E5DEC(u8);
-bool8 player_should_look_direction_be_enforced_upon_movement(void);
-void sub_80E5FCC(int i, int i1);
-void sub_80E6010(int i);
-s16 sub_80E6034(void);
-void sub_80E6084();
-
-// asm/easy_chat.o
-void sub_80E6764(void);
-void sub_80EB3FC(u8 *, u16);
-u8 ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16);
-u16 sub_80EB72C(u16);
-
-// asm/pokenav.o
-void sub_80EBA5C(void);
-
-// asm/mauville_old_man.o
-void sub_80F7AA4(void);
-void sub_80F7F30(void);
-
-// asm/menu_helpers.o
-bool8 sub_80F9344(void);
-void sub_80F9368(void);
-void sub_80F9438(void);
-
-// asm/script_pokemon_util_80F99CC.o
-void sub_80F99CC(void);
-
-// src/dewford_trend.o
-void sub_80FA17C(void);
-void sub_80FA46C(struct EasyChatPair *, u16, u8);
-void sub_80FA4E4(struct EasyChatPair *, u32, u8);
-bool8 sub_80FA670(struct EasyChatPair *, struct EasyChatPair *, u8);
-void sub_80FA740(struct EasyChatPair *);
-bool8 SB1ContainsWords(u16 *);
-bool8 IsEasyChatPairEqual(u16 *, u16 *);
-
-// asm/region_map.o
-void CopyMapName();
-
-// asm/slot_machine.o
-void PlaySlotMachine(u8, void *);
-
-// asm/contest_painting.o
-void sub_8106630(u32);
-
-// asm/rom6.o
-bool8 npc_before_player_of_type(u8);
-u8 oei_task_add(void);
-void sub_810C994(void);
-void sub_810CA6C(s32);
-s16 sub_810CAE4(u8, struct Pokeblock *);
-void sub_810CC80(void);
-u8 sub_810D32C(void);
-void ResetCyclingRoadChallengeData(void);
-void ScriptAddElevatorMenuItem(u8, u8, u8, u8);
-void ScriptShowElevatorMenu(void);
-u8 GetLeadMonIndex(void);
-void sub_810FA54(void);
-
-// asm/battle_records.o
-void InitLinkBattleRecords(void);
-
-// asm/battle_transition.o
-void sub_811AABC(u8);
-void sub_811AAD8(u8);
-u8 sub_811AAE8(void);
-
-// asm/mystery_event_script.o
-void sub_8126160(u8);
-u16 sub_8126338(void);
-
-// asm/field_effect_helpers.o
-u8 sub_8126B54(void);
-void objid_set_invisible(u8);
-void sub_8126BC4(u8 unk_1B, u8 r6, s16 x, s16 y);
-void sub_8127ED0(u8, u8);
-void sub_8127F28(u8, u8, s16);
-u8 sub_8128124(u8 id);
-
-// asm/rom_81258BC.o
-void sub_8132670(void);
-void sub_8133F80(void);
-u8 sub_8133FE4(u8);
-u8 IsThereStorageSpaceForDecoration(u8);
-u8 sub_8134074(u8);
-s8 sub_81340A8(u8);
-void sub_81341F8(void);
-void sub_813420C(void);
-void mapnumbers_history_shift_sav1_0_2_4_out(void);
-void sub_8134348(void);
-void sub_8134394();
-u8 sub_81344CC(void);
-void sub_8134AC0(void *);
-
-// asm/player_pc.o
-void NewGameInitPCItems(void);
-
-// asm/rom_813BA94.o
-void sub_813CAF4(u8);
-void intro_reset_and_hide_bgs(void);
-void sub_813CCE8(u8);
-void sub_813CE30(u16, u16, u16, u16);
-u8 sub_813CE88(/*TODO: arg types*/);
-u8 sub_813CFA8(/*TODO: arg types*/);
-void sub_813D084(/*TODO: arg types*/);
-u8 sub_813D584(/*TODO: arg types*/);
-void sub_813D788(struct Sprite *);
-void sub_813D880(struct Sprite *);
-void sub_813D954(/*TODO: arg types*/);
-void sub_813DB9C(struct Sprite *);
-void sub_813DE70(struct Sprite *);
-void sub_813E10C(struct Sprite *);
-void sub_813E210(struct Sprite *);
-void sub_813E7C0(u8);
-void sub_813E930(/*TODO: arg types*/);
-void sub_813EB4C(u8);
-void sub_813EDBC(/*TODO: arg types*/);
-
-// asm/mystery_event_menu.o
-void CB2_InitMysteryEventMenu(void);
-
-// asm/save_failed_screen.o
-void fullscreen_save_activate(u8);
-
-// asm/rom_81473B8.o
-bool8 sub_81474C8(void);
-void sub_8147514(void);
-
-// asm/rom_8148B8C.o
-void load_intro_part2_graphics(/*TODO: arg types*/);
-void sub_8148C78(/*TODO: arg types*/);
-u8 sub_8148EC0(/*TODO: arg types*/);
-void sub_8149020(/*TODO: arg types*/);
-u8 intro_create_brendan_sprite(/*TODO: arg types*/);
-u8 intro_create_may_sprite(/*TODO: arg types*/);
-u8 intro_create_latios_sprite(/*TODO: arg types*/);
-u8 intro_create_latias_sprite(/*TODO: arg types*/);
-void sub_814A568(u8*);
-
-// src/agb_flash.o
-u16 ReadFlashId(void);
-u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void));
-void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size);
-u32 ProgramFlashSectorAndVerify();
-u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n);
-u16 IdentifyFlash(void);
diff --git a/include/asm_fieldmap.h b/include/asm_fieldmap.h
deleted file mode 100644
index afc1fac7c..000000000
--- a/include/asm_fieldmap.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef GUARD_FIELDMAP_H
-#define GUARD_FIELDMAP_H
-
-void not_trainer_hill_battle_pyramid(void);
-void sub_8055FC0(void);
-u8 MapGridGetZCoordAt();
-bool8 MapGridIsImpassableAt(s16, s16);
-int MapGridGetMetatileIdAt(int, int);
-int MapGridGetMetatileBehaviorAt(int x, int y); // return: (u8|u16|int) args: (int|s16|s32)
-u8 MapGridGetMetatileLayerTypeAt(/*TODO: arg types*/);
-void MapGridSetMetatileIdAt(u32, u32, u16);
-void save_serialize_map(void);
-int CameraMove(int, int);
-void sub_8056C50(u16, u16);
-void sav1_camera_get_focus_coords(s16 *x, s16 *y);
-void GetCameraCoords(s16*, s16*);
-void sub_8056D28(struct MapData *pData);
-void sub_8056D38(struct MapData *pData);
-void apply_map_tileset2_palette(struct MapData *pData);
-void copy_map_tileset1_tileset2_to_vram(/*TODO: arg types*/);
-void apply_map_tileset1_tileset2_palette(/*TODO: arg types*/);
-
-#endif // GUARD_FIELDMAP_H
diff --git a/include/battle.h b/include/battle.h
index 06daeb081..d93860094 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -1,19 +1,327 @@
#ifndef GUARD_BATTLE_H
#define GUARD_BATTLE_H
+#include "sprite.h"
+
+#define BATTLE_TYPE_DOUBLE 0x0001
+#define BATTLE_TYPE_LINK 0x0002
+#define BATTLE_TYPE_WILD 0x0004
+#define BATTLE_TYPE_TRAINER 0x0008
+#define BATTLE_TYPE_FIRST_BATTLE 0x0010
+#define BATTLE_TYPE_20 0x0020
+#define BATTLE_TYPE_MULTI 0x0040
+#define BATTLE_TYPE_SAFARI 0x0080
+#define BATTLE_TYPE_BATTLE_TOWER 0x0100
+#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200
+#define BATTLE_TYPE_ROAMER 0x0400
+#define BATTLE_TYPE_EREADER_TRAINER 0x0800
+#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
+#define BATTLE_TYPE_LEGENDARY 0x2000
+#define BATTLE_TYPE_REGI 0x4000
+
+#define AI_ACTION_DONE 0x0001
+#define AI_ACTION_FLEE 0x0002
+#define AI_ACTION_WATCH 0x0004
+#define AI_ACTION_DO_NOT_ATTACK 0x0008
+#define AI_ACTION_UNK5 0x0010
+#define AI_ACTION_UNK6 0x0020
+#define AI_ACTION_UNK7 0x0040
+#define AI_ACTION_UNK8 0x0080
+
+#define MAX_TRAINER_ITEMS 4
+#define MAX_MON_MOVES 4
+
+// needed to match the hack that is get_item, thanks cam, someone else clean this up later.
+extern u8 unk_2000000[];
+
+enum
+{
+ WEATHER_SUN,
+ WEATHER_RAIN,
+ WEATHER_SANDSTORM,
+ WEATHER_HAIL,
+};
+
struct Trainer
{
- /*0x00*/ u8 partyFlags;
- /*0x01*/ u8 trainerClass;
- /*0x02*/ u8 encounterMusic:7;
- /*0x02*/ u8 gender:1;
- /*0x03*/ u8 trainerPic;
- /*0x04*/ u8 trainerName[12];
- /*0x10*/ u16 items[4];
- /*0x18*/ bool8 doubleBattle;
- /*0x1C*/ u32 aiFlags;
- /*0x20*/ u8 partySize;
- /*0x24*/ void *party;
+ /*0x00*/ u8 partyFlags;
+ /*0x01*/ u8 trainerClass;
+ /*0x02*/ u8 encounterMusic_gender;
+ /*0x03*/ u8 trainerPic;
+ /*0x04*/ u8 trainerName[12];
+ /*0x10*/ u16 items[4];
+ /*0x18*/ bool8 doubleBattle;
+ /*0x1C*/ u32 aiFlags;
+ /*0x20*/ u8 partySize;
+ /*0x24*/ void *party;
+};
+
+struct UnkBattleStruct1 // AI_Opponent_Info?
+{
+ /*0x00*/ u16 movesUsed[2][8]; // 0xFFFF means move not used (confuse self hit, etc)
+ /*0x20*/ u8 unk20[2];
+ /*0x22*/ u8 unk22[2];
+ /*0x24*/ u16 items[4];
+ /*0x2C*/ u8 numOfItems;
+};
+
+struct AI_Stack
+{
+ u8 *ptr[8];
+ u8 size;
};
+struct AI_ThinkingStruct /* 0x2016800 */
+{
+/* 0x00 */ u8 aiState;
+/* 0x01 */ u8 movesetIndex;
+/* 0x02 */ u16 moveConsidered;
+/* 0x04 */ s8 score[4]; // score?
+/* 0x08 */ u32 funcResult;
+/* 0x0C */ u32 aiFlags;
+/* 0x10 */ u8 aiAction;
+/* 0x11 */ u8 aiLogicId;
+/* 0x12 */ u8 filler12[6];
+/* 0x18 */ u8 simulatedRNG[4];
+};
+
+struct SmallBattleStruct1
+{
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+ // unknown size
+};
+
+struct SmallItemStruct
+{
+ u8 itemLocal[2][3];
+};
+
+struct BattleStruct /* 0x2000000 */
+{
+ u8 filler0[0x15DDE];
+ /*0x15DDE*/ u8 unk15DDE;
+ /*0x15DDF*/ u8 unk15DDF;
+ /*0x15DE0*/ u8 filler15DE0[0x23C]; // 0xAF off?
+ struct SmallBattleStruct1 unk;
+ u8 filler1[0x68];
+ /* 0x16089 */ u8 safariFleeRate;
+ u8 filler1_2[0x42];
+ /* 0x160CB */ u8 linkPlayerIndex;
+ /* 0x160CC */ struct SmallItemStruct item;
+ u8 filler2[0x72E];
+ /* 0x16800 */ struct AI_ThinkingStruct ai; /* 0x2016800 */
+ u8 filler1681C[0x1E4];
+ /* 0x16A00 */ struct UnkBattleStruct1 unk_2016A00_2;
+};
+
+struct UnkBattleStruct4
+{
+ /*0x00*/ u8 filler0[0x3];
+ /*0x04*/ u16 unk4;
+ /*0x06*/ u16 unk6;
+ /*0x08*/ u8 unk8;
+ /*0x09*/ u8 unk9;
+ /*0x0A*/ u8 unkA;
+ u8 fillerB[4];
+ u8 unkF_0:4;
+ u8 unkF_4:4;
+ u8 filler10[3];
+ /*0x13*/ u8 taunt:4;
+ /*0x13*/ u8 unkC:4;
+ /*0x14*/ u8 unk14;
+ /*0x15*/ u8 unk15;
+ /*0x16*/ u8 unk16;
+ /*0x17*/ u8 filler17[0x4];
+};
+
+struct Struct30042E0
+{
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+ u8 unk5_0:1;
+ u8 unk5_1:1;
+ u16 unk6;
+ u8 unk8[10];
+ u8 unk12;
+ u8 unk13;
+ u8 unk14[10];
+ u8 filler1E[2];
+ u16 unk20;
+ u16 unk22;
+ u16 unk24;
+ u16 unk26;
+ u16 unk28;
+ u8 unk2A[10];
+ u8 filler34[2];
+ u8 unk36[10];
+};
+
+struct Struct2017800
+{
+ u8 unk0_0:1;
+ u8 unk0_1:1;
+ u8 unk0_2:1;
+ u8 unk0_3:1;
+ u8 unk0_4:1;
+ u16 unk2;
+};
+
+struct Struct2017810
+{
+ u8 unk0_0:1;
+ u8 unk0_1:1;
+ u8 unk0_2:1;
+ u8 unk0_3:1;
+ u8 unk0_4:1;
+ u8 unk0_5:1;
+ u8 unk0_6:1;
+ u8 unk0_7:1;
+ u8 unk1_0:1;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+ u8 unk7;
+ u8 unk8;
+ u8 unk9;
+ u8 fillerA[2];
+};
+
+struct Struct2017840
+{
+ u16 unk0;
+ u8 filler2[6];
+ u8 unk8;
+ u8 unk9_0:1;
+};
+
+struct Struct20238C8
+{
+ u8 unk0_0:7;
+ u8 unk0_7:1;
+};
+
+extern struct UnkBattleStruct1 unk_2016A00;
+extern struct UnkBattleStruct4 gDisableStructs[];
+extern struct AI_ThinkingStruct gAIThinkingSpace;
+extern struct Struct20238C8 gUnknown_020238C8;
+
+// TODO: move ewram to global.h
+extern u8 ewram[];
+
+#define BATTLE_STRUCT ((struct BattleStruct *) (ewram + 0x00000))
+#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(ewram + 0x16800))
+#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *) (ewram + 0x16A00))
+#define AI_STACK ((struct AI_Stack *) (ewram + 0x16C00))
+#define AI_ARRAY_160CC ((struct SmallItemStruct *) (ewram + 0x160CC))
+#define ewram17800 ((struct Struct2017800 *) (ewram + 0x17800))
+#define ewram17810 ((struct Struct2017810 *) (ewram + 0x17810))
+#define ewram17840 (*(struct Struct2017840 *) (ewram + 0x17840))
+
+// asm/battle_1.o
+void sub_800D6D4();
+void sub_800D74C();
+void sub_800D7B8(void);
+void sub_800DAB8();
+void sub_800DE30(u8);
+void sub_800E23C();
+
+// src/battle_2.o
+void sub_800E7C4(void);
+void InitBattle(void);
+void sub_800EC9C(void);
+void sub_800F104(void);
+void sub_800F298(void);
+void sub_800F808(void);
+void sub_800F838(struct Sprite *);
+u8 CreateNPCTrainerParty(struct Pokemon *, u16);
+void sub_800FCFC(void);
+void c2_8011A1C(void);
+void sub_80101B8(void);
+void c2_081284E0(void);
+void sub_8010278(struct Sprite *);
+void sub_80102AC(struct Sprite *);
+void nullsub_37(struct Sprite *);
+void sub_8010320(struct Sprite *);
+void sub_8010494(struct Sprite *);
+void sub_801053C(struct Sprite *);
+void oac_poke_ally_(struct Sprite *);
+void nullsub_86(struct Sprite *);
+void objc_dp11b_pingpong(struct Sprite *);
+void nullsub_41(void);
+void sub_8010800(void);
+void sub_8010824(void);
+void sub_8010874(void);
+void bc_8012FAC(void);
+void bc_load_battlefield(void);
+void sub_8011384(void);
+void bc_801333C(void);
+void bc_battle_begin_message(void);
+void bc_8013568(void);
+void sub_8011800(void);
+void sub_8011834(void);
+void bc_801362C(void);
+void sub_8011970(void);
+void sub_80119B4(void);
+void BattleBeginFirstTurn(void);
+void BattleTurnPassed(void);
+
+// asm/battle_2.o
+void sub_8012324(void);
+void sub_8012FBC(u8, u8);
+u8 b_first_side(u8, u8, u8);
+void TurnValuesCleanUp(u8);
+void SpecialStatusesClear(void);
+void sub_80138F0(void);
+void MarkBufferBankForExecution();
+void sub_80155A4();
+void CancelMultiTurnMoves(u8);
+void PrepareStringBattle();
+void sub_80156DC();
+void sub_80157C4(u8 index);
+
+// asm/battle_3.o
+u8 sub_8015A98(u8, u8, u8);
+u8 UpdateTurnCounters();
+u8 TurnBasedEffects();
+u8 sub_80170DC();
+u8 sub_80173A4();
+u8 AbilityBattleEffects(u8, u8, u8, u8, u16);
+u8 sub_801A02C();
+
+// asm/battle_4.o
+void sub_801CAF8(u8, u8);
+void move_effectiveness_something(u16, u8, u8);
+
+// asm/battle_5.o
+void nullsub_91(void);
+void SetBankFuncToPlayerBufferRunCommand(void);
+void sub_802C098();
+void c3_0802FDF4(u8);
+void sub_802E3E4(u8, int);
+void nullsub_8(u8);
+void sub_802E414(void);
+
+// asm/battle_7.o
+void move_anim_start_t4(u8 a, u8 b, u8 c, u8 d);
+void nullsub_9(u16);
+void nullsub_10(int);
+void load_gfxc_health_bar();
+u8 battle_load_something();
+void sub_8031F88(u8);
+void sub_80324F8(struct Pokemon *, u8);
+void sub_8032638();
+void sub_8032AA8(u8, u8);
+void SetBankFuncToOpponentBufferRunCommand(void);
+
+// asm/battle_9.o
+void SetBankFuncToLinkOpponentBufferRunCommand(void);
+
#endif // GUARD_BATTLE_H
diff --git a/include/battle_811DA74.h b/include/battle_811DA74.h
new file mode 100644
index 000000000..750c3fe2b
--- /dev/null
+++ b/include/battle_811DA74.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_BATTLE_811DA74_H
+#define GUARD_BATTLE_811DA74_H
+
+void SetBankFuncToLinkPartnerBufferRunCommand(void);
+void LinkPartnerBufferRunCommand(void);
+void sub_811E0A0(void);
+void LinkPartnerBufferExecCompleted(void);
+u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *b);
+void sub_811EC68(u8);
+
+#endif // GUARD_BATTLE_811DA74_H
diff --git a/include/battle_ai.h b/include/battle_ai.h
new file mode 100644
index 000000000..028da2c27
--- /dev/null
+++ b/include/battle_ai.h
@@ -0,0 +1,32 @@
+#ifndef GUARD_BATTLEAI_H
+#define GUARD_BATTLEAI_H
+
+#define AIScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
+#define AIScriptRead16(ptr) ((ptr)[0] | (ptr)[1] << 8)
+#define AIScriptRead8(ptr) ((ptr)[0])
+#define AIScriptReadPtr(ptr) (u8*) AIScriptRead32(ptr)
+
+enum
+{
+ TARGET,
+ USER
+};
+
+// AI states
+enum
+{
+ AIState_SettingUp,
+ AIState_Processing,
+ AIState_FinishedProcessing,
+ AIState_DoNotProcess
+};
+
+// battle_ai
+void BattleAI_SetupAIData(void);
+void BattleAI_DoAIProcessing(void);
+void sub_810745C(void);
+void AIStackPushVar(u8 *);
+u8 AIStackPop(void);
+void BattleAI_HandleItemUseBeforeAISetup(void);
+
+#endif
diff --git a/include/battle_anim.h b/include/battle_anim.h
new file mode 100644
index 000000000..48ceece21
--- /dev/null
+++ b/include/battle_anim.h
@@ -0,0 +1,67 @@
+#ifndef GUARD_BATTLEANIM_H
+#define GUARD_BATTLEANIM_H
+
+#include "sprite.h"
+
+#define SCRIPT_READ_8(ptr) ((ptr)[0])
+#define SCRIPT_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
+#define SCRIPT_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
+
+#define REG_BGnCNT_BITFIELD(n) (*(struct BGCntrlBitfield *)REG_ADDR_BG##n##CNT)
+#define REG_BG1CNT_BITFIELD REG_BGnCNT_BITFIELD(1)
+#define REG_BG2CNT_BITFIELD REG_BGnCNT_BITFIELD(2)
+
+#define EWRAM_14800 ((u16 *)(unk_2000000 + 0x14800))
+#define EWRAM_17800 ((struct UnknownStruct1 *)(unk_2000000 + 0x17800))
+#define EWRAM_17810 ((struct UnknownStruct3 *)(unk_2000000 + 0x17810))
+#define EWRAM_18000 ((u16 *)(unk_2000000 + 0x18000))
+#define EWRAM_19348 (*(u16 *)(unk_2000000 + 0x19348))
+
+struct BGCntrlBitfield
+{
+ volatile u16 priority:2;
+ volatile u16 charBaseBlock:2;
+ volatile u16 field_0_2:4;
+ volatile u16 field_1_0:5;
+ volatile u16 areaOverflowMode:1;
+ volatile u16 screenSize:2;
+};
+
+struct BattleAnimBackground
+{
+ void *image;
+ void *palette;
+ void *tilemap;
+};
+
+struct UnknownStruct1
+{
+ u8 unk0;
+};
+
+struct UnknownStruct2
+{
+ void *unk0;
+ u16 *unk4;
+ u8 unk8;
+};
+
+struct UnknownStruct3
+{
+ u8 unk0;
+ u8 filler1[0xB];
+};
+
+void DoMoveAnim(const u8 *const moveAnims[], u16 b, u8 c);
+bool8 b_side_obj__get_some_boolean(u8 a);
+void sub_8076034(u8, u8);
+bool8 IsContest(void);
+void battle_anim_clear_some_data(void);
+void move_anim_8072740(struct Sprite *sprite);
+void DestroyAnimVisualTask(u8 task);
+void DestroyAnimVisualTask(u8 task);
+bool8 b_side_obj__get_some_boolean(u8);
+u8 IsContest();
+
+
+#endif
diff --git a/include/battle_anim_80CA710.h b/include/battle_anim_80CA710.h
new file mode 100644
index 000000000..fbbe23b97
--- /dev/null
+++ b/include/battle_anim_80CA710.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BATTLE_ANIM_80CA710_H
+#define GUARD_BATTLE_ANIM_80CA710_H
+
+void sub_80E4EF8(int, int, int, int, u16, u8, int);
+
+#endif // GUARD_BATTLE_ANIM_80CA710_H
diff --git a/include/battle_anim_81258BC.h b/include/battle_anim_81258BC.h
new file mode 100644
index 000000000..45ef4b8cc
--- /dev/null
+++ b/include/battle_anim_81258BC.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_BATTLE_ANIM_81258BC_H
+#define GUARD_BATTLE_ANIM_81258BC_H
+
+void SetBankFuncToSafariBufferRunCommand(void);
+void bx_battle_menu_t6_2(void);
+
+#endif // GUARD_BATTLE_ANIM_81258BC_H
diff --git a/include/battle_anim_8137220.h b/include/battle_anim_8137220.h
new file mode 100644
index 000000000..73bf0d883
--- /dev/null
+++ b/include/battle_anim_8137220.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BATTLE_ANIM_8137220_H
+#define GUARD_BATTLE_ANIM_8137220_H
+
+void SetBankFuncToWallyBufferRunCommand(void);
+
+#endif // GUARD_BATTLE_ANIM_8137220_H
diff --git a/include/battle_anim_813F0F4.h b/include/battle_anim_813F0F4.h
new file mode 100644
index 000000000..230a04dbb
--- /dev/null
+++ b/include/battle_anim_813F0F4.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BATTLE_ANIM_813F0F4_H
+#define GUARD_BATTLE_ANIM_813F0F4_H
+
+void sub_8141828();
+
+#endif // GUARD_BATTLE_ANIM_813F0F4_H
diff --git a/include/battle_interface.h b/include/battle_interface.h
new file mode 100644
index 000000000..8230c7502
--- /dev/null
+++ b/include/battle_interface.h
@@ -0,0 +1,37 @@
+#ifndef GUARD_BATTLE_INTERFACE_H
+#define GUARD_BATTLE_INTERFACE_H
+
+struct BattleInterfaceStruct1
+{
+ s32 unk0;
+ s32 unk4;
+ s32 unk8;
+ u32 unkC_0:5;
+ u32 unk10;
+};
+
+struct BattleInterfaceStruct2
+{
+ u16 unk0;
+ u32 unk4;
+};
+
+u8 battle_make_oam_normal_battle(u8);
+u8 battle_make_oam_safari_battle(void);
+void sub_8043D84(u8, u8, u32, u32, u32);
+void sub_8043DB0(u8);
+void sub_8043DFC(u8);
+void nullsub_11();
+void sub_8043EB4(u8);
+void sub_8043F44(u8);
+void sub_804454C(void);
+u8 sub_8044804(u8, const struct BattleInterfaceStruct2 *, u8, u8);
+void sub_8044CA0(u8);
+void sub_8045A5C(u8, struct Pokemon *, u8);
+s32 sub_8045C78(u8, u8, u8, u8);
+s16 sub_80460C8(struct BattleInterfaceStruct1 *, int *, void *, int);
+u8 GetScaledHPFraction(s16, s16, u8);
+u8 GetHPBarLevel(s16, s16);
+void sub_80440EC(u8 a, s16 b, u8 c);
+
+#endif // GUARD_BATTLE_INTERFACE_H
diff --git a/include/battle_message.h b/include/battle_message.h
new file mode 100644
index 000000000..da57333a5
--- /dev/null
+++ b/include/battle_message.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_BATTLE_MESSAGE_H
+#define GUARD_BATTLE_MESSAGE_H
+
+void StrCpyDecodeToDisplayedStringBattle(const u8 *);
+void StrCpyDecodeBattle(const u8 *, u8 *);
+
+#endif // GUARD_BATTLE_MESSAGE_H
diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h
new file mode 100644
index 000000000..4a9415379
--- /dev/null
+++ b/include/battle_move_effects.h
@@ -0,0 +1,222 @@
+#ifndef GUARD_BATTLE_MOVE_EFFECTS_H
+#define GUARD_BATTLE_MOVE_EFFECTS_H
+
+enum
+{
+ EFFECT_HIT,
+ EFFECT_SLEEP,
+ EFFECT_POISON_HIT,
+ EFFECT_ABSORB,
+ EFFECT_BURN_HIT,
+ EFFECT_FREEZE_HIT,
+ EFFECT_PARALYZE_HIT,
+ EFFECT_EXPLOSION,
+ EFFECT_DREAM_EATER,
+ EFFECT_MIRROR_MOVE,
+ EFFECT_ATTACK_UP,
+ EFFECT_DEFENSE_UP,
+ EFFECT_SPEED_UP,
+ EFFECT_SPECIAL_ATTACK_UP,
+ EFFECT_SPECIAL_DEFENSE_UP,
+ EFFECT_ACCURACY_UP,
+ EFFECT_EVASION_UP,
+ EFFECT_ALWAYS_HIT,
+ EFFECT_ATTACK_DOWN,
+ EFFECT_DEFENSE_DOWN,
+ EFFECT_SPEED_DOWN,
+ EFFECT_SPECIAL_ATTACK_DOWN, // unused
+ EFFECT_SPECIAL_DEFENSE_DOWN, // unused
+ EFFECT_ACCURACY_DOWN,
+ EFFECT_EVASION_DOWN,
+ EFFECT_HAZE,
+ EFFECT_BIDE,
+ EFFECT_RAMPAGE,
+ EFFECT_ROAR,
+ EFFECT_MULTI_HIT,
+ EFFECT_CONVERSION,
+ EFFECT_FLINCH_HIT,
+ EFFECT_RESTORE_HP,
+ EFFECT_TOXIC,
+ EFFECT_PAY_DAY,
+ EFFECT_LIGHT_SCREEN,
+ EFFECT_TRI_ATTACK,
+ EFFECT_REST,
+ EFFECT_OHKO,
+ EFFECT_RAZOR_WIND,
+ EFFECT_SUPER_FANG,
+ EFFECT_DRAGON_RAGE,
+ EFFECT_TRAP,
+ EFFECT_HIGH_CRITICAL,
+ EFFECT_DOUBLE_HIT,
+ EFFECT_RECOIL_IF_MISS,
+ EFFECT_MIST,
+ EFFECT_FOCUS_ENERGY,
+ EFFECT_RECOIL,
+ EFFECT_CONFUSE,
+ EFFECT_ATTACK_UP_2,
+ EFFECT_DEFENSE_UP_2,
+ EFFECT_SPEED_UP_2,
+ EFFECT_SPECIAL_ATTACK_UP_2,
+ EFFECT_SPECIAL_DEFENSE_UP_2,
+ EFFECT_ACCURACY_UP_2,
+ EFFECT_EVASION_UP_2,
+ EFFECT_TRANSFORM,
+ EFFECT_ATTACK_DOWN_2,
+ EFFECT_DEFENSE_DOWN_2,
+ EFFECT_SPEED_DOWN_2,
+ EFFECT_SPECIAL_ATTACK_DOWN_2,
+ EFFECT_SPECIAL_DEFENSE_DOWN_2,
+ EFFECT_ACCURACY_DOWN_2,
+ EFFECT_EVASION_DOWN_2,
+ EFFECT_REFLECT,
+ EFFECT_POISON,
+ EFFECT_PARALYZE,
+ EFFECT_ATTACK_DOWN_HIT,
+ EFFECT_DEFENSE_DOWN_HIT,
+ EFFECT_SPEED_DOWN_HIT,
+ EFFECT_SPECIAL_ATTACK_DOWN_HIT,
+ EFFECT_SPECIAL_DEFENSE_DOWN_HIT,
+ EFFECT_ACCURACY_DOWN_HIT,
+ EFFECT_EVASION_DOWN_HIT,
+ EFFECT_SKY_ATTACK,
+ EFFECT_CONFUSE_HIT,
+ EFFECT_TWINEEDLE,
+ EFFECT_VITAL_THROW,
+ EFFECT_SUBSTITUTE,
+ EFFECT_RECHARGE,
+ EFFECT_RAGE,
+ EFFECT_MIMIC,
+ EFFECT_METRONOME,
+ EFFECT_LEECH_SEED,
+ EFFECT_SPLASH,
+ EFFECT_DISABLE,
+ EFFECT_LEVEL_DAMAGE,
+ EFFECT_PSYWAVE,
+ EFFECT_COUNTER,
+ EFFECT_ENCORE,
+ EFFECT_PAIN_SPLIT,
+ EFFECT_SNORE,
+ EFFECT_CONVERSION_2,
+ EFFECT_LOCK_ON,
+ EFFECT_SKETCH,
+ EFFECT_UNUSED_60, // thaw
+ EFFECT_SLEEP_TALK,
+ EFFECT_DESTINY_BOND,
+ EFFECT_FLAIL,
+ EFFECT_SPITE,
+ EFFECT_FALSE_SWIPE,
+ EFFECT_HEAL_BELL,
+ EFFECT_QUICK_ATTACK,
+ EFFECT_TRIPLE_KICK,
+ EFFECT_THIEF,
+ EFFECT_MEAN_LOOK,
+ EFFECT_NIGHTMARE,
+ EFFECT_MINIMIZE,
+ EFFECT_CURSE,
+ EFFECT_UNUSED_6E,
+ EFFECT_PROTECT,
+ EFFECT_SPIKES,
+ EFFECT_FORESIGHT,
+ EFFECT_PERISH_SONG,
+ EFFECT_SANDSTORM,
+ EFFECT_ENDURE,
+ EFFECT_ROLLOUT,
+ EFFECT_SWAGGER,
+ EFFECT_FURY_CUTTER,
+ EFFECT_ATTRACT,
+ EFFECT_RETURN,
+ EFFECT_PRESENT,
+ EFFECT_FRUSTRATION,
+ EFFECT_SAFEGUARD,
+ EFFECT_THAW_HIT,
+ EFFECT_MAGNITUDE,
+ EFFECT_BATON_PASS,
+ EFFECT_PURSUIT,
+ EFFECT_RAPID_SPIN,
+ EFFECT_SONICBOOM,
+ EFFECT_UNUSED_83,
+ EFFECT_MORNING_SUN,
+ EFFECT_SYNTHESIS,
+ EFFECT_MOONLIGHT,
+ EFFECT_HIDDEN_POWER,
+ EFFECT_RAIN_DANCE,
+ EFFECT_SUNNY_DAY,
+ EFFECT_DEFENSE_UP_HIT,
+ EFFECT_ATTACK_UP_HIT,
+ EFFECT_ALL_STATS_UP_HIT,
+ EFFECT_UNUSED_8D, // incomplete fake out in gen 2
+ EFFECT_BELLY_DRUM,
+ EFFECT_PSYCH_UP,
+ EFFECT_MIRROR_COAT,
+ EFFECT_SKULL_BASH,
+ EFFECT_TWISTER,
+ EFFECT_EARTHQUAKE,
+ EFFECT_FUTURE_SIGHT,
+ EFFECT_GUST,
+ EFFECT_FLINCH_HIT_2, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
+ EFFECT_SOLARBEAM,
+ EFFECT_THUNDER,
+ EFFECT_TELEPORT,
+ EFFECT_BEAT_UP,
+ EFFECT_FLY,
+ EFFECT_DEFENSE_CURL,
+ EFFECT_SOFTBOILED,
+ EFFECT_FAKE_OUT,
+ EFFECT_UPROAR,
+ EFFECT_STOCKPILE,
+ EFFECT_SPIT_UP,
+ EFFECT_SWALLOW,
+ EFFECT_UNUSED_A3,
+ EFFECT_HAIL,
+ EFFECT_TORMENT,
+ EFFECT_FLATTER,
+ EFFECT_WILL_O_WISP,
+ EFFECT_MEMENTO,
+ EFFECT_FACADE,
+ EFFECT_FOCUS_PUNCH,
+ EFFECT_SMELLINGSALT,
+ EFFECT_FOLLOW_ME,
+ EFFECT_NATURE_POWER,
+ EFFECT_CHARGE,
+ EFFECT_TAUNT,
+ EFFECT_HELPING_HAND,
+ EFFECT_TRICK,
+ EFFECT_ROLE_PLAY,
+ EFFECT_WISH,
+ EFFECT_ASSIST,
+ EFFECT_INGRAIN,
+ EFFECT_SUPERPOWER,
+ EFFECT_MAGIC_COAT,
+ EFFECT_RECYCLE,
+ EFFECT_REVENGE,
+ EFFECT_BRICK_BREAK,
+ EFFECT_YAWN,
+ EFFECT_KNOCK_OFF,
+ EFFECT_ENDEAVOR,
+ EFFECT_ERUPTION,
+ EFFECT_SKILL_SWAP,
+ EFFECT_IMPRISON,
+ EFFECT_REFRESH,
+ EFFECT_GRUDGE,
+ EFFECT_SNATCH,
+ EFFECT_LOW_KICK,
+ EFFECT_SECRET_POWER,
+ EFFECT_DOUBLE_EDGE,
+ EFFECT_TEETER_DANCE,
+ EFFECT_BLAZE_KICK,
+ EFFECT_MUD_SPORT,
+ EFFECT_POISON_FANG,
+ EFFECT_WEATHER_BALL,
+ EFFECT_OVERHEAT,
+ EFFECT_TICKLE,
+ EFFECT_COSMIC_POWER,
+ EFFECT_SKY_UPPERCUT,
+ EFFECT_BULK_UP,
+ EFFECT_POISON_TAIL,
+ EFFECT_WATER_SPORT,
+ EFFECT_CALM_MIND,
+ EFFECT_DRAGON_DANCE,
+ EFFECT_CAMOUFLAGE,
+};
+
+#endif // GUARD_BATTLE_MOVE_EFFECTS_H
diff --git a/include/battle_party_menu.h b/include/battle_party_menu.h
new file mode 100644
index 000000000..71bd2cf51
--- /dev/null
+++ b/include/battle_party_menu.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_BATTLE_PARTY_MENU_H
+#define GUARD_BATTLE_PARTY_MENU_H
+
+extern u8 unk_2000000[];
+#define EWRAM_1609D unk_2000000[0x1609D]
+
+void SetUpBattlePokemonMenu(u8);
+
+#endif
diff --git a/include/battle_records.h b/include/battle_records.h
new file mode 100644
index 000000000..f0c1a101b
--- /dev/null
+++ b/include/battle_records.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_BATTLE_RECORDS_H
+#define GUARD_BATTLE_RECORDS_H
+
+void InitLinkBattleRecords(void);
+void PrintLinkBattleWinsLossesDraws(void *);
+void PrintLinkBattleRecord(void *, u8);
+
+#endif // GUARD_BATTLE_RECORDS_H
diff --git a/include/battle_setup.h b/include/battle_setup.h
index aee1f6820..e88aefe6d 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -1,84 +1,136 @@
#ifndef GUARD_BATTLE_SETUP_H
#define GUARD_BATTLE_SETUP_H
-// task01_battle_start
-// task_add_01_battle_start
+#define NUM_TRAINER_EYE_TRAINERS 56
+#define TRAINER_REMATCH_STEPS 255
+
+// IV + LEVEL + SPECIES
+struct TrainerPartyMember0
+{
+ u16 iv;
+ u8 level;
+ u16 species;
+};
+
+// IV + LEVEL + SPECIES + MOVES
+struct TrainerPartyMember1
+{
+ u16 iv;
+ u8 level;
+ u16 species;
+ u16 moves[4];
+};
+
+// IV + LEVEL + SPECIES + ITEMS
+struct TrainerPartyMember2
+{
+ u16 iv;
+ u8 level;
+ u16 species;
+ u16 heldItem;
+};
+
+// IV + LEVEL + SPECIES + ITEMS + MOVES
+struct TrainerPartyMember3
+{
+ u16 iv;
+ u8 level;
+ u16 species;
+ u16 heldItem;
+ u16 moves[4];
+};
+
+struct TrainerBattleSpec
+{
+ void *ptr;
+ u8 ptrType;
+};
+
+struct TrainerEyeTrainer
+{
+ u16 trainerNums[5];
+ u16 mapGroup;
+ u16 mapNum;
+};
+
+//void task01_battle_start(u8 taskId);
+//void task_add_01_battle_start(u8 transition, u16 song);
void CheckForSafariZoneAndProceed(void);
-void sub_8081A18(void);
-void sub_8081A5C(void);
-void sub_8081AA4(void);
-// task_add_01_battle_start_with_music_and_stats
-// sub_8081AFC
-void sub_8081B3C(void);
-// sub_8081B78
-// sub_8081BB8
-// sub_8081BF8
-// sub_8081C50
-void sub_8081C8C(void);
-void sub_8081CEC(void);
-// sub_8081D3C
-// sub_8081E90
-// GetSumOfPartyMonLevel
-// GetSumOfEnemyPartyLevel
+void StartBattle_StandardWild(void);
+void StartBattle_Roamer(void);
+void StartBattle_Safari(void);
+//void task_add_01_battle_start_with_music_and_stats(void);
+//void StartBattle_WallyTutorial(void);
+void StartBattle_ScriptedWild(void);
+//void StartBattle_SouthernIsland(void);
+//void StartBattle_Rayquaza(void);
+//void StartBattle_GroudonKyogre(void);
+//void StartBattle_Regi(void);
+void HandleWildBattleEnd(void);
+void HandleScriptedWildBattleEnd(void);
+s8 GetBattleTerrain(void);
+//s8 GetBattleTransitionTypeByMap(void);
+//u16 GetSumOfPartyMonLevel(u8 numMons);
+//u8 GetSumOfEnemyPartyLevel(u16 trainerNum, u8 numMons);
u8 GetWildBattleTransition(void);
u8 GetTrainerBattleTransition(void);
-// GetBattleTowerBattleTransition
-// sub_8082168
-void sub_8082188(void);
-void sub_80821D8(void);
-void sub_8082228(void);
-// TrainerBattleLoadArg32
-// TrainerBattleLoadArg16
-// TrainerBattleLoadArg8
-// trainerflag_opponent
+u8 GetBattleTowerBattleTransition(void);
+//void ChooseStarter(void);
+void CB2_GiveStarter(void);
+void CB2_StartFirstBattle(void);
+void HandleFirstBattleEnd(void);
+//u32 TrainerBattleLoadArg32(u8 *ptr);
+//u16 TrainerBattleLoadArg16(u8 *ptr);
+//u8 TrainerBattleLoadArg8(u8 *ptr);
+//u16 trainerflag_opponent(void);
bool32 battle_exit_is_player_defeat(u32 a1);
-// sub_80822BC
-// TrainerBattleLoadArgs
-// battle_80801F0
+//void sub_80822BC(void);
+//void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, u8 *data);
+//void battle_80801F0(void);
u8 *TrainerBattleConfigure(u8 *data);
void TrainerWantsBattle(u8, u8 *);
bool32 GetTrainerFlagFromScriptPointer(u8 *data);
-// sub_8082524
-// sub_8082558
-// sub_8082564
-// sub_808257C
-// unref_sub_8082590
+//void sub_8082524(void);
+//u8 sub_8082558(void);
+//u8 sub_8082564(void);
+//void sub_808257C(void);
+//void unref_sub_8082590(void); // unused
u8 trainer_flag_check(u16);
void trainer_flag_set(u16);
void trainer_flag_clear(u16);
void sub_80825E4(void);
void sub_808260C(void);
-// do_choose_name_or_words_screen
-// sub_80826B0
-// sub_80826D8
+void do_choose_name_or_words_screen(void);
+//void sub_80826B0(void);
+//void sub_80826D8(void);
u8 *sub_80826E8(void);
u8 *sub_8082700(void);
-// sub_8082718
-// PlayTrainerEncounterMusic
-// SanitizeString
+//void sub_8082718(void);
+//void PlayTrainerEncounterMusic(void);
+//u8 *SanitizeString(u8 *str);
u8 *sub_808281C(void);
-// sub_8082830
-// unref_sub_808286C
+u8 *sub_8082830(void);
+//u8 *unref_sub_808286C(void);
u8 *sub_8082880(void);
-// sub_8082894
-// sub_80828B8
-// sub_80828FC
-// sub_80829A8
-// sub_80829E8
-// sub_8082A18
-// sub_8082A54
-// sub_8082A90
-// sub_8082AE4
-// sub_8082B10
-// sub_8082B44
-// sub_8082B78
-// sub_8082BA4
+//s32 sub_8082894(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
+//s32 sub_80828B8(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
+//bool32 sub_80828FC(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum);
+//s32 sub_80829A8(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum);
+//s32 sub_80829E8(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum);
+//bool8 sub_8082A18(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
+//bool8 sub_8082A54(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
+//u16 sub_8082A90(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
+//void sub_8082AE4(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
+//bool8 sub_8082B10(const struct TrainerEyeTrainer *trainers, u16 trainerNum);
+//bool32 sub_8082B44(void);
+void sub_8082B78(void);
+//bool32 sub_8082BA4(void);
void sub_8082BD0(u16, u16);
-// sub_8082C0C
-// unref_sub_8082C2C
+s32 sub_8082C0C(u16 mapGroup, u16 mapNum);
+s32 unref_sub_8082C2C(u16 mapGroup, u16 mapNum);
u16 sub_8082C4C(u16 a1);
-// sub_8082C68
-// sub_8082C9C
+//s32 sub_8082C68(void);
+//u8 sub_8082C9C(void);
void sub_8082CB8(void);
#endif // GUARD_BATTLE_SETUP_H
diff --git a/include/battle_tower.h b/include/battle_tower.h
new file mode 100644
index 000000000..75ea405ab
--- /dev/null
+++ b/include/battle_tower.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_BATTLE_TOWER_H
+#define GUARD_BATTLE_TOWER_H
+
+void sub_8134AC0(void *);
+u16 sub_8135D3C(u8);
+void sub_8135FF4(u8*);
+
+#endif // GUARD_BATTLE_TOWER_H
diff --git a/include/battle_transition.h b/include/battle_transition.h
new file mode 100644
index 000000000..b01378505
--- /dev/null
+++ b/include/battle_transition.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_BATTLE_TRANSITION_H
+#define GUARD_BATTLE_TRANSITION_H
+
+void sub_811AABC(u8);
+void sub_811AAD8(u8);
+u8 sub_811AAE8(void);
+
+#endif // GUARD_BATTLE_TRANSITION_H
diff --git a/include/berry.h b/include/berry.h
index 2b2933412..f0acbe0ad 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -1,18 +1,28 @@
#ifndef GUARD_BERRY_H
#define GUARD_BERRY_H
-void unref_sub_80B4884(void);
-void sub_80B48A8(u8 *src);
-u32 sub_80B48F8(struct EnigmaBerry *enigmaBerry);
-bool32 sub_80B4940(void);
-struct Berry *GetBerryInfo(u8 berry);
+enum
+{
+ BERRY_FIRMNESS_UNKNOWN,
+ BERRY_FIRMNESS_VERY_SOFT,
+ BERRY_FIRMNESS_SOFT,
+ BERRY_FIRMNESS_HARD,
+ BERRY_FIRMNESS_VERY_HARD,
+ BERRY_FIRMNESS_SUPER_HARD,
+};
+
+void ClearEnigmaBerries(void);
+void SetEnigmaBerry(u8 *src);
+u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry);
+bool32 IsEnigmaBerryValid(void);
+const struct Berry *GetBerryInfo(u8 berry);
struct BerryTree *GetBerryTreeInfo(u8 id);
bool32 FieldObjectInteractionWaterBerryTree(void);
-bool32 IsPlayerFacingPlantedBerryTree(void);
-u8 WaterBerryTree(void);
-void sub_80B4A90(void);
+bool8 IsPlayerFacingPlantedBerryTree(void);
+bool8 TryToWaterBerryTree(void);
+void ClearBerryTrees(void);
bool32 BerryTreeGrow(struct BerryTree *tree);
-void BerryTreeTimeUpdate(int time);
+void BerryTreeTimeUpdate(s32 minutes);
void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle);
void RemoveBerryTree(u8 id);
u8 GetBerryTypeByBerryTreeId(u8 id);
diff --git a/include/berry_blender.h b/include/berry_blender.h
new file mode 100644
index 000000000..924b24b00
--- /dev/null
+++ b/include/berry_blender.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BERRY_BLENDER_H
+#define GUARD_BERRY_BLENDER_H
+
+void sub_80516C4(u8, u16);
+
+#endif // GUARD_BERRY_BLENDER_H
diff --git a/include/bike.h b/include/bike.h
new file mode 100644
index 000000000..decbd1d49
--- /dev/null
+++ b/include/bike.h
@@ -0,0 +1,56 @@
+#ifndef GUARD_BIKE_H
+#define GUARD_BIKE_H
+
+struct UnknownStruct1
+{
+ u32 unk0;
+ u32 unk4;
+ u32 unk8;
+ u32 unkC;
+ const u8 *unk10;
+ const u8 *unk14;
+ u32 unk18;
+};
+
+// Player speeds
+enum
+{
+ SPEED_STANDING,
+ SPEED_NORMAL,
+ SPEED_FAST,
+ SPEED_FASTER,
+ SPEED_FASTEST,
+};
+
+//Acro bike states
+enum
+{
+ ACRO_STATE_NORMAL,
+ ACRO_STATE_TURNING,
+ ACRO_STATE_WHEELIE_STANDING,
+ ACRO_STATE_BUNNY_HOP,
+ ACRO_STATE_WHEELIE_MOVING,
+ ACRO_STATE_5,
+ ACRO_STATE_6,
+};
+
+//Acro bike transitions
+enum
+{
+ ACRO_TRANS_FACE_DIRECTION,
+ ACRO_TRANS_NORMAL_TO_WHEELIE = 3,
+ ACRO_TRANS_WHEELIE_TO_NORMAL,
+};
+
+void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys);
+void sub_80E5B38(u16 a, u16 b);
+bool8 IsRunningDisallowed(u8 tile);
+bool8 IsBikingDisallowedByPlayer(void);
+bool8 player_should_look_direction_be_enforced_upon_movement(void);
+void GetOnOffBike(u8 var);
+void BikeClearState(int var1, int var2);
+void sub_80E6010(u8 var);
+s16 GetPlayerSpeed(void);
+void sub_80E6084(void);
+
+#endif
diff --git a/include/braille_puzzles.h b/include/braille_puzzles.h
new file mode 100644
index 000000000..2b0e2bb96
--- /dev/null
+++ b/include/braille_puzzles.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_BRAILLEPUZZLES_H
+#define GUARD_BRAILLEPUZZLES_H
+
+bool8 ShouldDoBrailleStrengthEffect(void);
+void DoBrailleStrengthEffect(void);
+void UseFlyAncientTomb_Callback(void);
+void UseFlyAncientTomb_Finish(void);
+void Task_BrailleWait(u8 taskId);
+bool32 BrailleWait_CheckButtonPress(void);
+void SealedChamberShakingEffect(u8 taskId);
+bool8 ShouldDoBrailleDigEffect(void);
+void DoBrailleDigEffect(void);
+
+#endif
diff --git a/include/cable_club.h b/include/cable_club.h
new file mode 100644
index 000000000..9e6a703e3
--- /dev/null
+++ b/include/cable_club.h
@@ -0,0 +1,22 @@
+#ifndef GUARD_CABLE_CLUB_H
+#define GUARD_CABLE_CLUB_H
+
+#include "task.h"
+
+void sub_8082D4C();
+void sub_8082D60(u8, u8);
+u16 sub_8082D9C(u8, u8);
+u32 sub_8082DF4(u8);
+u32 sub_8082E28(u8);
+u32 sub_8082EB8(u8);
+void sub_8082FEC(u8 taskId);
+void sub_80833C4(u8 taskId);
+void sub_8083418(u8 taskId);
+u8 sub_8083444(u8 taskId);
+u8 sub_8083664(void);
+void sub_8083A84(TaskFunc);
+s32 sub_8083BF4(u8 id);
+void sub_8083C50(u8);
+void sub_8083188(u8 taskId);
+
+#endif // GUARD_CABLE_CLUB_H
diff --git a/include/choose_party.h b/include/choose_party.h
new file mode 100644
index 000000000..e31aa3c02
--- /dev/null
+++ b/include/choose_party.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_CHOOSE_PARTY_H
+#define GUARD_CHOOSE_PARTY_H
+
+void sub_8121E10(void);
+void sub_8121E34(void);
+bool8 sub_8121E78(void);
+void sub_81222B0(u8 taskId);
+bool8 sub_8122854(void);
+void sub_8122A48(u8 taskId);
+void sub_8122E0C(u8 taskId);
+void sub_8123138(u8 taskId);
+
+#endif // GUARD_CHOOSE_PARTY_H
diff --git a/include/clock.h b/include/clock.h
new file mode 100644
index 000000000..4e6560c91
--- /dev/null
+++ b/include/clock.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_CLOCK_H
+#define GUARD_CLOCK_H
+
+// TODO: time of day and seconds in a day defines
+
+void DoTimeBasedEvents(void);
+
+#endif
diff --git a/include/config.h b/include/config.h
new file mode 100644
index 000000000..6a77c4c74
--- /dev/null
+++ b/include/config.h
@@ -0,0 +1,39 @@
+#ifndef GUARD_CONFIG_H
+#define GUARD_CONFIG_H
+
+#ifndef REVISION
+#define REVISION 0
+#endif
+
+#if (ENGLISH && REVISION == 2) || (GERMAN && REVISION == 1)
+#define BUGFIX_BERRY
+#endif
+
+#if (ENGLISH && REVISION >= 1) || GERMAN
+#define BUGFIX_GLYPHWIDTH
+#define BUGFIX_SAVEFAILEDSCREEN1
+#endif
+
+#if GERMAN
+#define BUGFIX_SAVEFAILEDSCREEN2
+#endif
+
+// European editions of Ruby/Sapphire and all editions of Emerald have this fix.
+#if GERMAN
+#define BUGFIX_TRAINERAPPROACH
+#endif
+
+#if (ENGLISH && REVISION >= 1) || GERMAN
+#define BUGFIX_EVO_NAME
+#endif
+
+#ifdef ENGLISH
+#define UNITS_IMPERIAL
+#elif GERMAN
+#define UNITS_METRIC
+#endif
+
+// Fixed in Emerald.
+// #define BUGFIX_SETMONIVS
+
+#endif // GUARD_CONFIG_H
diff --git a/include/contest.h b/include/contest.h
new file mode 100644
index 000000000..983f9bc6a
--- /dev/null
+++ b/include/contest.h
@@ -0,0 +1,40 @@
+#ifndef GUARD_CONTEST_H
+#define GUARD_CONTEST_H
+
+struct ContestPokemon
+{
+ /* 0x00 */ u16 species;
+ /* 0x02 */ u8 nickname[POKEMON_NAME_LENGTH];
+ /* 0x0D */ u8 trainerName[8];
+ /* 0x15 */ u8 unk15;
+ /* 0x16 */ u8 unk16;
+ /* 0x17 */ u8 filler17[7];
+ /* 0x1E */ u16 moves[4]; // moves
+ /* 0x26 */ u8 cool; // cool
+ /* 0x27 */ u8 beauty; // beauty
+ /* 0x28 */ u8 cute; // cute
+ /* 0x29 */ u8 smart; // smart
+ /* 0x2A */ u8 tough; // tough
+ /* 0x2B */ u8 sheen; // sheen
+ /* 0x2C */ u8 filler2C[12];
+ /* 0x38 */ u32 unk38;
+ /* 0x3C */ u32 unk3C;
+}; // wow
+
+extern struct ContestPokemon gContestMons[];
+void ResetLinkContestBoolean(void);
+void sub_80AB2AC(void);
+void sub_80AB47C(void);
+void sub_80AE098(u8);
+void sub_80AE398(u8, u8);
+u8 sub_80AE47C(struct Pokemon *party);
+u32 sub_80AE770(u8, u8);
+void sub_80AE82C(u8);
+u8 sub_80AEB1C();
+void sub_80AF668(void);
+void sub_80B0F28(u8);
+int sub_80B2A7C(u8); //Don't know return type size
+u8 sub_80B2C4C(u8, u8);
+void sub_80B2D1C(void);
+
+#endif // GUARD_CONTEST_H
diff --git a/include/contest_link_80C2020.h b/include/contest_link_80C2020.h
new file mode 100644
index 000000000..0b49d188c
--- /dev/null
+++ b/include/contest_link_80C2020.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_CONTEST_LINK_80C2020_H
+#define GUARD_CONTEST_LINK_80C2020_H
+
+void sub_80C2358(void);
+void sub_80C46EC(void);
+void sub_80C4740(void);
+void sub_80C48C8(void);
+void sub_80C48F4(void);
+void sub_80C4940(void);
+void sub_80C4980(u8);
+u8 sub_80C4B34(u8 *);
+
+#endif // GUARD_CONTEST_LINK_80C2020_H
diff --git a/include/contest_link_80C857C.h b/include/contest_link_80C857C.h
new file mode 100644
index 000000000..9135ba2e7
--- /dev/null
+++ b/include/contest_link_80C857C.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_CONTEST_LINK_80C857C_H
+#define GUARD_CONTEST_LINK_80C857C_H
+
+void sub_80C8734(u8);
+void sub_80C88AC(u8);
+void sub_80C8E1C(u8);
+void sub_80C8EBC(u8);
+void sub_80C8F34(u8);
+
+#endif // GUARD_CONTEST_LINK_80C857C_H
diff --git a/include/contest_painting.h b/include/contest_painting.h
new file mode 100644
index 000000000..ad1cecfed
--- /dev/null
+++ b/include/contest_painting.h
@@ -0,0 +1,66 @@
+#ifndef GUARD_CONTESTPAINTING_H
+#define GUARD_CONTESTPAINTING_H
+
+#define MOSAIC_BIT_BG_HSIZE (0)
+#define MOSAIC_BIT_BG_VSIZE (4)
+#define MOSAIC_BIT_OBJ_HSIZE (8)
+#define MOSAIC_BIT_OBJ_VSIZE (12)
+
+enum
+{
+ NORMAL_RANK,
+ SUPER_RANK,
+ HYPER_RANK,
+ MASTER_RANK,
+};
+
+enum
+{
+ CONTEST_COOL,
+ CONTEST_BEAUTY,
+ CONTEST_CUTE,
+ CONTEST_SMART,
+ CONTEST_TOUGH,
+};
+
+enum
+{
+ CONTESTRESULT_COOL = 9,
+ CONTESTRESULT_BEAUTY = 13,
+ CONTESTRESULT_CUTE = 2,
+ CONTESTRESULT_SMART = 36,
+ CONTESTRESULT_TOUGH = 6,
+};
+
+struct Unk2015E00
+{
+ u16 unk2015e00[128][32];
+ u16 unk2017e00[0];
+};
+
+struct ContestEntry
+{
+ /*0x00*/ u8 var0;
+ /*0x04*/ u32 var4;
+ /*0x08*/ u16 var8;
+ /*0x0A*/ u8 contestType;
+ /*0x0B*/ u8 pokemon_name[POKEMON_NAME_LENGTH];
+ /*0x15*/ u8 pad15;
+ /*0x16*/ u8 trainer_name[OT_NAME_LENGTH];
+};
+
+struct Unk3000756
+{
+ /*0x00*/ u8 var_0;
+};
+
+struct LabelPair
+{
+ const u8 *prefix;
+ const u8 *suffix;
+};
+
+void sub_8106630(u32);
+void CB2_ContestPainting(void);
+
+#endif
diff --git a/include/coord_event_weather.h b/include/coord_event_weather.h
new file mode 100644
index 000000000..86fb48793
--- /dev/null
+++ b/include/coord_event_weather.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_COORD_EVENT_WEATHER_H
+#define GUARD_COORD_EVENT_WEATHER_H
+
+void DoCoordEventWeather(u8);
+
+#endif // GUARD_COORD_EVENT_WEATHER_H
diff --git a/include/cute_sketch.h b/include/cute_sketch.h
new file mode 100644
index 000000000..1fa3c90fb
--- /dev/null
+++ b/include/cute_sketch.h
@@ -0,0 +1,28 @@
+#ifndef GUARD_CUTE_SKETCH_H
+#define GUARD_CUTE_SKETCH_H
+
+struct Unk03005E20
+{
+ u8 var_0;
+ u8 pad1[3];
+ u16 (*var_4)[][32];
+ u16 (*var_8)[];
+ u8 pad0C[4];
+ u32 var_10;
+ u16 var_14;
+ u16 var_16;
+ u8 var_18;
+ u8 var_19;
+ u8 var_1A;
+ u8 var_1B;
+ u8 var_1C;
+ u8 var_1D;
+ u8 var_1E;
+ u8 var_1F;
+};
+
+void sub_80FC7A0(struct Unk03005E20 *);
+void sub_80FD8CC(struct Unk03005E20 *);
+void sub_80FDA18(struct Unk03005E20 *);
+
+#endif // GUARD_CUTE_SKETCH_H
diff --git a/include/data/field_map_obj/anim_func_ptrs.h b/include/data/field_map_obj/anim_func_ptrs.h
new file mode 100755
index 000000000..63575727d
--- /dev/null
+++ b/include/data/field_map_obj/anim_func_ptrs.h
@@ -0,0 +1,1519 @@
+//
+// Created by scott on 6/18/2017.
+//
+
+#ifndef POKERUBY_ANIM_FUNC_PTRS_H
+#define POKERUBY_ANIM_FUNC_PTRS_H
+
+u8 sub_8060CE0(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8060CF0(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8060D00(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8060D10(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8060F3C(struct MapObject *, struct Sprite *);
+u8 sub_8060F5C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8060F7C(struct MapObject *, struct Sprite *);
+u8 sub_8060F9C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8060FBC(struct MapObject *, struct Sprite *);
+u8 sub_8060FDC(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8060FFC(struct MapObject *, struct Sprite *);
+u8 sub_806101C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_806103C(struct MapObject *, struct Sprite *);
+u8 sub_806105C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_806107C(struct MapObject *, struct Sprite *);
+u8 sub_806109C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80610BC(struct MapObject *, struct Sprite *);
+u8 sub_80610DC(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80610FC(struct MapObject *, struct Sprite *);
+u8 sub_806111C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80613A8(struct MapObject *, struct Sprite *);
+u8 sub_80613D4(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061400(struct MapObject *, struct Sprite *);
+u8 sub_806142C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061458(struct MapObject *, struct Sprite *);
+u8 sub_8061484(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80614B0(struct MapObject *, struct Sprite *);
+u8 sub_80614DC(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_806152C(struct MapObject *, struct Sprite *);
+u8 sub_8061510(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_806154C(struct MapObject *, struct Sprite *);
+u8 sub_8061510(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_806156C(struct MapObject *, struct Sprite *);
+u8 sub_8061510(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_806158C(struct MapObject *, struct Sprite *);
+u8 sub_8061510(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_80615AC(struct MapObject *, struct Sprite *);
+u8 sub_8061510(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_80615CC(struct MapObject *, struct Sprite *);
+u8 sub_80615EC(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_806160C(struct MapObject *, struct Sprite *);
+u8 sub_806162C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_806164C(struct MapObject *, struct Sprite *);
+u8 sub_806166C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_806168C(struct MapObject *, struct Sprite *);
+u8 sub_80616AC(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061778(struct MapObject *, struct Sprite *);
+u8 sub_806173C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80617B0(struct MapObject *, struct Sprite *);
+u8 sub_806173C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80617E8(struct MapObject *, struct Sprite *);
+u8 sub_806173C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061820(struct MapObject *, struct Sprite *);
+u8 sub_806173C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061858(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061890(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80618C8(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061900(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061938(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061970(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80619A8(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80619E0(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061A18(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061A50(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061A88(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061AC0(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061AF8(struct MapObject *, struct Sprite *);
+u8 sub_8061B18(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061B38(struct MapObject *, struct Sprite *);
+u8 sub_8061B58(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061B78(struct MapObject *, struct Sprite *);
+u8 sub_8061B98(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061BB8(struct MapObject *, struct Sprite *);
+u8 sub_8061BD8(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061BF8(struct MapObject *, struct Sprite *);
+u8 sub_8061C18(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061C38(struct MapObject *, struct Sprite *);
+u8 sub_8061C58(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061C78(struct MapObject *, struct Sprite *);
+u8 sub_8061C98(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061CB8(struct MapObject *, struct Sprite *);
+u8 sub_8061CD8(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061CF8(struct MapObject *, struct Sprite *);
+u8 sub_8061D18(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061D38(struct MapObject *, struct Sprite *);
+u8 sub_8061D58(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061D78(struct MapObject *, struct Sprite *);
+u8 sub_8061D98(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061DB8(struct MapObject *, struct Sprite *);
+u8 sub_8061DD8(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 do_run_south_anim(struct MapObject *, struct Sprite *);
+u8 sub_8061E18(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 do_run_north_anim(struct MapObject *, struct Sprite *);
+u8 sub_8061E58(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 do_run_west_anim(struct MapObject *, struct Sprite *);
+u8 sub_8061E98(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 do_run_east_anim(struct MapObject *, struct Sprite *);
+u8 sub_8061ED8(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061F24(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061F90(struct MapObject *, struct Sprite *);
+u8 sub_8061FB0(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8061FD8(struct MapObject *, struct Sprite *);
+u8 sub_8061FF8(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062020(struct MapObject *, struct Sprite *);
+u8 sub_8062040(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062068(struct MapObject *, struct Sprite *);
+u8 sub_8062088(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80620B0(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_806210C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062170(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062180(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062190(struct MapObject *, struct Sprite *);
+u8 sub_80621BC(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80621E8(struct MapObject *, struct Sprite *);
+u8 sub_8062214(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062240(struct MapObject *, struct Sprite *);
+u8 sub_806226C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062298(struct MapObject *, struct Sprite *);
+u8 sub_80622C4(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80622F0(struct MapObject *, struct Sprite *);
+u8 sub_806231C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062348(struct MapObject *, struct Sprite *);
+u8 sub_8062374(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80623A0(struct MapObject *, struct Sprite *);
+u8 sub_80623CC(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80623F8(struct MapObject *, struct Sprite *);
+u8 sub_8062424(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062450(struct MapObject *, struct Sprite *);
+u8 sub_806247C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80624A8(struct MapObject *, struct Sprite *);
+u8 sub_80624D4(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062500(struct MapObject *, struct Sprite *);
+u8 sub_806252C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062558(struct MapObject *, struct Sprite *);
+u8 sub_8062584(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80625B0(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80625C8(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80625D8(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_80625E8(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_80625F8(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_8062608(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_8062634(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_8062644(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 do_exclamation_mark_bubble_1(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 do_exclamation_mark_bubble_2(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 do_heart_bubble(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_80626C0(struct MapObject *, struct Sprite *);
+u8 sub_8062704(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_8062724(struct MapObject *, struct Sprite *);
+u8 sub_8062740(struct MapObject *, struct Sprite *);
+u8 sub_8062764(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_80627A0(struct MapObject *, struct Sprite *);
+u8 sub_80627BC(struct MapObject *, struct Sprite *);
+u8 sub_80627E0(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_806281C(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_806282C(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_806283C(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_806286C(struct MapObject *, struct Sprite *);
+u8 sub_8063470(struct MapObject *, struct Sprite *);
+u8 sub_806289C(struct MapObject *, struct Sprite *);
+u8 sub_80628D0(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80628FC(struct MapObject *, struct Sprite *);
+u8 sub_8062930(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_806299C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80629AC(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80629BC(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80629CC(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80629DC(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062A00(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062A24(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062A48(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062A6C(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062A90(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062AB4(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062AD8(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062AFC(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062B20(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062B44(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062B68(struct MapObject *, struct Sprite *);
+u8 sub_8061F3C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062BD0(struct MapObject *, struct Sprite *);
+u8 sub_8062BFC(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062C28(struct MapObject *, struct Sprite *);
+u8 sub_8062C54(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062C80(struct MapObject *, struct Sprite *);
+u8 sub_8062CAC(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062CD8(struct MapObject *, struct Sprite *);
+u8 sub_8062D04(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062D30(struct MapObject *, struct Sprite *);
+u8 sub_8062D5C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062D88(struct MapObject *, struct Sprite *);
+u8 sub_8062DB4(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062DE0(struct MapObject *, struct Sprite *);
+u8 sub_8062E0C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062E38(struct MapObject *, struct Sprite *);
+u8 sub_8062E64(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062E90(struct MapObject *, struct Sprite *);
+u8 sub_8062EBC(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062EE8(struct MapObject *, struct Sprite *);
+u8 sub_8062F14(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062F40(struct MapObject *, struct Sprite *);
+u8 sub_8062F6C(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062F98(struct MapObject *, struct Sprite *);
+u8 sub_8062FC4(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8062FF0(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8063028(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8063060(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8063098(struct MapObject *, struct Sprite *);
+u8 sub_8061714(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8063108(struct MapObject *, struct Sprite *);
+u8 sub_8063128(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8063148(struct MapObject *, struct Sprite *);
+u8 sub_8063168(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8063188(struct MapObject *, struct Sprite *);
+u8 sub_80631A8(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80631C8(struct MapObject *, struct Sprite *);
+u8 sub_80631E8(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8063238(struct MapObject *, struct Sprite *);
+u8 sub_8063258(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8063278(struct MapObject *, struct Sprite *);
+u8 sub_8063298(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80632B8(struct MapObject *, struct Sprite *);
+u8 sub_80632D8(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80632F8(struct MapObject *, struct Sprite *);
+u8 sub_8063318(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8063370(struct MapObject *, struct Sprite *);
+u8 sub_8063390(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80633B0(struct MapObject *, struct Sprite *);
+u8 sub_80633D0(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_80633F0(struct MapObject *, struct Sprite *);
+u8 sub_8063410(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+u8 sub_8063430(struct MapObject *, struct Sprite *);
+u8 sub_8063450(struct MapObject *, struct Sprite *);
+u8 sub_8063474(struct MapObject *, struct Sprite *);
+
+u8 (*const Unknown_83759A0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_83759A8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_83759B0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_83759B8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_83759D4[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_83759E0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_83759EC[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_83759F8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375A04[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375A10[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375A1C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375A28[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375A40[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375A4C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375A58[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375A64[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375A70[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375A7C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375A88[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375A94[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375AA0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375AAC[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375AB8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375AC4[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375AD0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375ADC[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375AE8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375AF4[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B00[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B0C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B18[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B24[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B30[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B3C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B48[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B54[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B60[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B6C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B78[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B84[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B90[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375B9C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375BA8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375BB4[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375BC0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375BCC[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375BD8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375BE4[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375BF0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375BFC[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375C08[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375C14[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375C20[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375C2C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375C38[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375C44[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375C50[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375C5C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375C68[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375C74[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375C80[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375C8C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375C98[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375CA0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375CA8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375CB0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375CB8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375CC4[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375CD0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375CDC[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375CE8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375CF4[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D00[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D0C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D18[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D24[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D30[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D3C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D48[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D50[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D5C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D64[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D6C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D74[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D7C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D84[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D8C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D94[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375D9C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375DA4[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375DB0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375DC0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375DD0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375DD8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375DE0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375DE8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375DF0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375DFC[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375E08[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375E10[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375E18[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375E20[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375E28[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375E34[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375E40[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375E4C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375E58[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375E64[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375E70[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375E7C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375EB8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375EC4[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375ED0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375EDC[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375EE8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375EF4[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F00[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F0C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F18[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F24[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F30[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F3C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F48[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F54[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F60[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F6C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F78[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F84[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F90[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375F9C[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375FA8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375FB4[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375FC0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375FCC[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375FD8[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375FE4[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375FF0[])(struct MapObject *, struct Sprite *);
+u8 (*const Unknown_8375FFC[])(struct MapObject *, struct Sprite *);
+
+u8 (*const *const gUnknown_08375778[])(struct MapObject *, struct Sprite *) = {
+ Unknown_83759A0,
+ Unknown_83759A8,
+ Unknown_83759B0,
+ Unknown_83759B8,
+ Unknown_83759D4,
+ Unknown_83759E0,
+ Unknown_83759EC,
+ Unknown_83759F8,
+ Unknown_8375A04,
+ Unknown_8375A10,
+ Unknown_8375A1C,
+ Unknown_8375A28,
+ Unknown_8375A40,
+ Unknown_8375A4C,
+ Unknown_8375A58,
+ Unknown_8375A64,
+ Unknown_8375A70,
+ Unknown_8375A7C,
+ Unknown_8375A88,
+ Unknown_8375A94,
+ Unknown_8375AA0,
+ Unknown_8375AAC,
+ Unknown_8375AB8,
+ Unknown_8375AC4,
+ Unknown_8375AD0,
+ Unknown_8375ADC,
+ Unknown_8375AE8,
+ Unknown_8375AF4,
+ Unknown_8375B00,
+ Unknown_8375B0C,
+ Unknown_8375B18,
+ Unknown_8375B24,
+ Unknown_8375B30,
+ Unknown_8375B3C,
+ Unknown_8375B48,
+ Unknown_8375B54,
+ Unknown_8375B60,
+ Unknown_8375B6C,
+ Unknown_8375B78,
+ Unknown_8375B84,
+ Unknown_8375B90,
+ Unknown_8375B9C,
+ Unknown_8375BA8,
+ Unknown_8375BB4,
+ Unknown_8375BC0,
+ Unknown_8375BCC,
+ Unknown_8375BD8,
+ Unknown_8375BE4,
+ Unknown_8375BF0,
+ Unknown_8375BFC,
+ Unknown_8375C08,
+ Unknown_8375C14,
+ Unknown_8375C20,
+ Unknown_8375C2C,
+ Unknown_8375C38,
+ Unknown_8375C44,
+ Unknown_8375C50,
+ Unknown_8375C5C,
+ Unknown_8375C68,
+ Unknown_8375C74,
+ Unknown_8375C80,
+ Unknown_8375C8C,
+ Unknown_8375C98,
+ Unknown_8375CA0,
+ Unknown_8375CA8,
+ Unknown_8375CB0,
+ Unknown_8375CB8,
+ Unknown_8375CC4,
+ Unknown_8375CD0,
+ Unknown_8375CDC,
+ Unknown_8375CE8,
+ Unknown_8375CF4,
+ Unknown_8375D00,
+ Unknown_8375D0C,
+ Unknown_8375D18,
+ Unknown_8375D24,
+ Unknown_8375D30,
+ Unknown_8375D3C,
+ Unknown_8375D48,
+ Unknown_8375D50,
+ Unknown_8375D5C,
+ Unknown_8375D64,
+ Unknown_8375D6C,
+ Unknown_8375D74,
+ Unknown_8375D7C,
+ Unknown_8375D84,
+ Unknown_8375D8C,
+ Unknown_8375D94,
+ Unknown_8375D9C,
+ Unknown_8375DA4,
+ Unknown_8375DB0,
+ Unknown_8375DC0,
+ Unknown_8375DD0,
+ Unknown_8375DD8,
+ Unknown_8375DE0,
+ Unknown_8375DE8,
+ Unknown_8375DF0,
+ Unknown_8375DFC,
+ Unknown_8375E08,
+ Unknown_8375E10,
+ Unknown_8375E18,
+ Unknown_8375E20,
+ Unknown_8375E28,
+ Unknown_8375E34,
+ Unknown_8375E40,
+ Unknown_8375E4C,
+ Unknown_8375E58,
+ Unknown_8375E64,
+ Unknown_8375E70,
+ Unknown_8375E7C,
+ Unknown_8375EB8,
+ Unknown_8375EC4,
+ Unknown_8375ED0,
+ Unknown_8375EDC,
+ Unknown_8375EE8,
+ Unknown_8375EF4,
+ Unknown_8375F00,
+ Unknown_8375F0C,
+ Unknown_8375F18,
+ Unknown_8375F24,
+ Unknown_8375F30,
+ Unknown_8375F3C,
+ Unknown_8375F48,
+ Unknown_8375F54,
+ Unknown_8375F60,
+ Unknown_8375F6C,
+ Unknown_8375F78,
+ Unknown_8375F84,
+ Unknown_8375F90,
+ Unknown_8375F9C,
+ Unknown_8375FA8,
+ Unknown_8375FB4,
+ Unknown_8375FC0,
+ Unknown_8375FCC,
+ Unknown_8375FD8,
+ Unknown_8375FE4,
+ Unknown_8375FF0,
+ Unknown_8375FFC
+};
+
+
+u8 (*const Unknown_83759A0[])(struct MapObject *, struct Sprite *) = {
+ sub_8060CE0,
+ sub_8063474
+};
+
+u8 (*const Unknown_83759A8[])(struct MapObject *, struct Sprite *) = {
+ sub_8060CF0,
+ sub_8063474
+};
+
+u8 (*const Unknown_83759B0[])(struct MapObject *, struct Sprite *) = {
+ sub_8060D00,
+ sub_8063474
+};
+
+u8 (*const Unknown_83759B8[])(struct MapObject *, struct Sprite *) = {
+ sub_8060D10,
+ sub_8063474
+};
+
+u8 (*const gUnknown_083759C0[])(u8) = {
+ get_go_image_anim_num,
+ get_go_fast_image_anim_num,
+ get_go_fast_image_anim_num,
+ get_go_faster_image_anim_num,
+ sub_805FD78
+};
+
+u8 (*const Unknown_83759D4[])(struct MapObject *, struct Sprite *) = {
+ sub_8060F3C,
+ sub_8060F5C,
+ sub_8063474
+};
+
+u8 (*const Unknown_83759E0[])(struct MapObject *, struct Sprite *) = {
+ sub_8060F7C,
+ sub_8060F9C,
+ sub_8063474
+};
+
+u8 (*const Unknown_83759EC[])(struct MapObject *, struct Sprite *) = {
+ sub_8060FBC,
+ sub_8060FDC,
+ sub_8063474
+};
+
+u8 (*const Unknown_83759F8[])(struct MapObject *, struct Sprite *) = {
+ sub_8060FFC,
+ sub_806101C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375A04[])(struct MapObject *, struct Sprite *) = {
+ sub_806103C,
+ sub_806105C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375A10[])(struct MapObject *, struct Sprite *) = {
+ sub_806107C,
+ sub_806109C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375A1C[])(struct MapObject *, struct Sprite *) = {
+ sub_80610BC,
+ sub_80610DC,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375A28[])(struct MapObject *, struct Sprite *) = {
+ sub_80610FC,
+ sub_806111C,
+ sub_8063474
+};
+
+const s16 gUnknown_08375A34[] = {0, 1, 1};
+const s16 gUnknown_08375A3A[] = {0, 0, 1};
+
+u8 (*const Unknown_8375A40[])(struct MapObject *, struct Sprite *) = {
+ sub_80613A8,
+ sub_80613D4,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375A4C[])(struct MapObject *, struct Sprite *) = {
+ sub_8061400,
+ sub_806142C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375A58[])(struct MapObject *, struct Sprite *) = {
+ sub_8061458,
+ sub_8061484,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375A64[])(struct MapObject *, struct Sprite *) = {
+ sub_80614B0,
+ sub_80614DC,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375A70[])(struct MapObject *, struct Sprite *) = {
+ sub_806152C,
+ sub_8061510,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375A7C[])(struct MapObject *, struct Sprite *) = {
+ sub_806154C,
+ sub_8061510,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375A88[])(struct MapObject *, struct Sprite *) = {
+ sub_806156C,
+ sub_8061510,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375A94[])(struct MapObject *, struct Sprite *) = {
+ sub_806158C,
+ sub_8061510,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375AA0[])(struct MapObject *, struct Sprite *) = {
+ sub_80615AC,
+ sub_8061510,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375AAC[])(struct MapObject *, struct Sprite *) = {
+ sub_80615CC,
+ sub_80615EC,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375AB8[])(struct MapObject *, struct Sprite *) = {
+ sub_806160C,
+ sub_806162C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375AC4[])(struct MapObject *, struct Sprite *) = {
+ sub_806164C,
+ sub_806166C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375AD0[])(struct MapObject *, struct Sprite *) = {
+ sub_806168C,
+ sub_80616AC,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375ADC[])(struct MapObject *, struct Sprite *) = {
+ sub_8061778,
+ sub_806173C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375AE8[])(struct MapObject *, struct Sprite *) = {
+ sub_80617B0,
+ sub_806173C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375AF4[])(struct MapObject *, struct Sprite *) = {
+ sub_80617E8,
+ sub_806173C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B00[])(struct MapObject *, struct Sprite *) = {
+ sub_8061820,
+ sub_806173C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B0C[])(struct MapObject *, struct Sprite *) = {
+ sub_8061858,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B18[])(struct MapObject *, struct Sprite *) = {
+ sub_8061890,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B24[])(struct MapObject *, struct Sprite *) = {
+ sub_80618C8,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B30[])(struct MapObject *, struct Sprite *) = {
+ sub_8061900,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B3C[])(struct MapObject *, struct Sprite *) = {
+ sub_8061938,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B48[])(struct MapObject *, struct Sprite *) = {
+ sub_8061970,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B54[])(struct MapObject *, struct Sprite *) = {
+ sub_80619A8,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B60[])(struct MapObject *, struct Sprite *) = {
+ sub_80619E0,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B6C[])(struct MapObject *, struct Sprite *) = {
+ sub_8061A18,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B78[])(struct MapObject *, struct Sprite *) = {
+ sub_8061A50,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B84[])(struct MapObject *, struct Sprite *) = {
+ sub_8061A88,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B90[])(struct MapObject *, struct Sprite *) = {
+ sub_8061AC0,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375B9C[])(struct MapObject *, struct Sprite *) = {
+ sub_8061AF8,
+ sub_8061B18,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375BA8[])(struct MapObject *, struct Sprite *) = {
+ sub_8061B38,
+ sub_8061B58,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375BB4[])(struct MapObject *, struct Sprite *) = {
+ sub_8061B78,
+ sub_8061B98,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375BC0[])(struct MapObject *, struct Sprite *) = {
+ sub_8061BB8,
+ sub_8061BD8,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375BCC[])(struct MapObject *, struct Sprite *) = {
+ sub_8061BF8,
+ sub_8061C18,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375BD8[])(struct MapObject *, struct Sprite *) = {
+ sub_8061C38,
+ sub_8061C58,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375BE4[])(struct MapObject *, struct Sprite *) = {
+ sub_8061C78,
+ sub_8061C98,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375BF0[])(struct MapObject *, struct Sprite *) = {
+ sub_8061CB8,
+ sub_8061CD8,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375BFC[])(struct MapObject *, struct Sprite *) = {
+ sub_8061CF8,
+ sub_8061D18,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375C08[])(struct MapObject *, struct Sprite *) = {
+ sub_8061D38,
+ sub_8061D58,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375C14[])(struct MapObject *, struct Sprite *) = {
+ sub_8061D78,
+ sub_8061D98,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375C20[])(struct MapObject *, struct Sprite *) = {
+ sub_8061DB8,
+ sub_8061DD8,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375C2C[])(struct MapObject *, struct Sprite *) = {
+ do_run_south_anim,
+ sub_8061E18,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375C38[])(struct MapObject *, struct Sprite *) = {
+ do_run_north_anim,
+ sub_8061E58,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375C44[])(struct MapObject *, struct Sprite *) = {
+ do_run_west_anim,
+ sub_8061E98,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375C50[])(struct MapObject *, struct Sprite *) = {
+ do_run_east_anim,
+ sub_8061ED8,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375C5C[])(struct MapObject *, struct Sprite *) = {
+ sub_8061F24,
+ sub_8061F3C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375C68[])(struct MapObject *, struct Sprite *) = {
+ sub_8061F90,
+ sub_8061FB0,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375C74[])(struct MapObject *, struct Sprite *) = {
+ sub_8061FD8,
+ sub_8061FF8,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375C80[])(struct MapObject *, struct Sprite *) = {
+ sub_8062020,
+ sub_8062040,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375C8C[])(struct MapObject *, struct Sprite *) = {
+ sub_8062068,
+ sub_8062088,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375C98[])(struct MapObject *, struct Sprite *) = {
+ sub_80620B0,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375CA0[])(struct MapObject *, struct Sprite *) = {
+ sub_806210C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375CA8[])(struct MapObject *, struct Sprite *) = {
+ sub_8062170,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375CB0[])(struct MapObject *, struct Sprite *) = {
+ sub_8062180,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375CB8[])(struct MapObject *, struct Sprite *) = {
+ sub_8062190,
+ sub_80621BC,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375CC4[])(struct MapObject *, struct Sprite *) = {
+ sub_80621E8,
+ sub_8062214,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375CD0[])(struct MapObject *, struct Sprite *) = {
+ sub_8062240,
+ sub_806226C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375CDC[])(struct MapObject *, struct Sprite *) = {
+ sub_8062298,
+ sub_80622C4,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375CE8[])(struct MapObject *, struct Sprite *) = {
+ sub_80622F0,
+ sub_806231C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375CF4[])(struct MapObject *, struct Sprite *) = {
+ sub_8062348,
+ sub_8062374,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375D00[])(struct MapObject *, struct Sprite *) = {
+ sub_80623A0,
+ sub_80623CC,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375D0C[])(struct MapObject *, struct Sprite *) = {
+ sub_80623F8,
+ sub_8062424,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375D18[])(struct MapObject *, struct Sprite *) = {
+ sub_8062450,
+ sub_806247C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375D24[])(struct MapObject *, struct Sprite *) = {
+ sub_80624A8,
+ sub_80624D4,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375D30[])(struct MapObject *, struct Sprite *) = {
+ sub_8062500,
+ sub_806252C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375D3C[])(struct MapObject *, struct Sprite *) = {
+ sub_8062558,
+ sub_8062584,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375D48[])(struct MapObject *, struct Sprite *) = {
+ sub_80625B0,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375D50[])(struct MapObject *, struct Sprite *) = {
+ sub_80625C8,
+ sub_8061F3C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375D5C[])(struct MapObject *, struct Sprite *) = {
+ sub_80625D8,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375D64[])(struct MapObject *, struct Sprite *) = {
+ sub_80625E8,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375D6C[])(struct MapObject *, struct Sprite *) = {
+ sub_80625F8,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375D74[])(struct MapObject *, struct Sprite *) = {
+ sub_8062608,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375D7C[])(struct MapObject *, struct Sprite *) = {
+ sub_8062634,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375D84[])(struct MapObject *, struct Sprite *) = {
+ sub_8062644,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375D8C[])(struct MapObject *, struct Sprite *) = {
+ do_exclamation_mark_bubble_1,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375D94[])(struct MapObject *, struct Sprite *) = {
+ do_exclamation_mark_bubble_2,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375D9C[])(struct MapObject *, struct Sprite *) = {
+ do_heart_bubble,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375DA4[])(struct MapObject *, struct Sprite *) = {
+ sub_80626C0,
+ sub_8062704,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375DB0[])(struct MapObject *, struct Sprite *) = {
+ sub_8062724,
+ sub_8062740,
+ sub_8062764,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375DC0[])(struct MapObject *, struct Sprite *) = {
+ sub_80627A0,
+ sub_80627BC,
+ sub_80627E0,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375DD0[])(struct MapObject *, struct Sprite *) = {
+ sub_806281C,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375DD8[])(struct MapObject *, struct Sprite *) = {
+ sub_806282C,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375DE0[])(struct MapObject *, struct Sprite *) = {
+ sub_806283C,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375DE8[])(struct MapObject *, struct Sprite *) = {
+ sub_806286C,
+ sub_8063470
+};
+
+u8 (*const Unknown_8375DF0[])(struct MapObject *, struct Sprite *) = {
+ sub_806289C,
+ sub_80628D0,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375DFC[])(struct MapObject *, struct Sprite *) = {
+ sub_80628FC,
+ sub_8062930,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375E08[])(struct MapObject *, struct Sprite *) = {
+ sub_806299C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375E10[])(struct MapObject *, struct Sprite *) = {
+ sub_80629AC,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375E18[])(struct MapObject *, struct Sprite *) = {
+ sub_80629BC,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375E20[])(struct MapObject *, struct Sprite *) = {
+ sub_80629CC,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375E28[])(struct MapObject *, struct Sprite *) = {
+ sub_80629DC,
+ sub_8061F3C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375E34[])(struct MapObject *, struct Sprite *) = {
+ sub_8062A00,
+ sub_8061F3C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375E40[])(struct MapObject *, struct Sprite *) = {
+ sub_8062A24,
+ sub_8061F3C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375E4C[])(struct MapObject *, struct Sprite *) = {
+ sub_8062A48,
+ sub_8061F3C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375E58[])(struct MapObject *, struct Sprite *) = {
+ sub_8062A6C,
+ sub_8061F3C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375E64[])(struct MapObject *, struct Sprite *) = {
+ sub_8062A90,
+ sub_8061F3C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375E70[])(struct MapObject *, struct Sprite *) = {
+ sub_8062AB4,
+ sub_8061F3C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375E7C[])(struct MapObject *, struct Sprite *) = {
+ sub_8062AD8,
+ sub_8061F3C,
+ sub_8063474,
+ sub_8062AFC,
+ sub_8061F3C,
+ sub_8063474,
+ sub_8062B20,
+ sub_8061F3C,
+ sub_8063474,
+ sub_8062B44,
+ sub_8061F3C,
+ sub_8063474,
+ sub_8062B68,
+ sub_8061F3C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375EB8[])(struct MapObject *, struct Sprite *) = {
+ sub_8062BD0,
+ sub_8062BFC,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375EC4[])(struct MapObject *, struct Sprite *) = {
+ sub_8062C28,
+ sub_8062C54,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375ED0[])(struct MapObject *, struct Sprite *) = {
+ sub_8062C80,
+ sub_8062CAC,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375EDC[])(struct MapObject *, struct Sprite *) = {
+ sub_8062CD8,
+ sub_8062D04,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375EE8[])(struct MapObject *, struct Sprite *) = {
+ sub_8062D30,
+ sub_8062D5C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375EF4[])(struct MapObject *, struct Sprite *) = {
+ sub_8062D88,
+ sub_8062DB4,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F00[])(struct MapObject *, struct Sprite *) = {
+ sub_8062DE0,
+ sub_8062E0C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F0C[])(struct MapObject *, struct Sprite *) = {
+ sub_8062E38,
+ sub_8062E64,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F18[])(struct MapObject *, struct Sprite *) = {
+ sub_8062E90,
+ sub_8062EBC,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F24[])(struct MapObject *, struct Sprite *) = {
+ sub_8062EE8,
+ sub_8062F14,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F30[])(struct MapObject *, struct Sprite *) = {
+ sub_8062F40,
+ sub_8062F6C,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F3C[])(struct MapObject *, struct Sprite *) = {
+ sub_8062F98,
+ sub_8062FC4,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F48[])(struct MapObject *, struct Sprite *) = {
+ sub_8062FF0,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F54[])(struct MapObject *, struct Sprite *) = {
+ sub_8063028,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F60[])(struct MapObject *, struct Sprite *) = {
+ sub_8063060,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F6C[])(struct MapObject *, struct Sprite *) = {
+ sub_8063098,
+ sub_8061714,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F78[])(struct MapObject *, struct Sprite *) = {
+ sub_8063108,
+ sub_8063128,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F84[])(struct MapObject *, struct Sprite *) = {
+ sub_8063148,
+ sub_8063168,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F90[])(struct MapObject *, struct Sprite *) = {
+ sub_8063188,
+ sub_80631A8,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375F9C[])(struct MapObject *, struct Sprite *) = {
+ sub_80631C8,
+ sub_80631E8,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375FA8[])(struct MapObject *, struct Sprite *) = {
+ sub_8063238,
+ sub_8063258,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375FB4[])(struct MapObject *, struct Sprite *) = {
+ sub_8063278,
+ sub_8063298,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375FC0[])(struct MapObject *, struct Sprite *) = {
+ sub_80632B8,
+ sub_80632D8,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375FCC[])(struct MapObject *, struct Sprite *) = {
+ sub_80632F8,
+ sub_8063318,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375FD8[])(struct MapObject *, struct Sprite *) = {
+ sub_8063370,
+ sub_8063390,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375FE4[])(struct MapObject *, struct Sprite *) = {
+ sub_80633B0,
+ sub_80633D0,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375FF0[])(struct MapObject *, struct Sprite *) = {
+ sub_80633F0,
+ sub_8063410,
+ sub_8063474
+};
+
+u8 (*const Unknown_8375FFC[])(struct MapObject *, struct Sprite *) = {
+ sub_8063430,
+ sub_8063450,
+ sub_8063474
+};
+
+#endif //POKERUBY_ANIM_FUNC_PTRS_H
diff --git a/include/data/field_map_obj/base_oam.h b/include/data/field_map_obj/base_oam.h
new file mode 100755
index 000000000..8595f97e7
--- /dev/null
+++ b/include/data/field_map_obj/base_oam.h
@@ -0,0 +1,56 @@
+//
+// Created by scott on 6/17/2017.
+//
+
+#ifndef POKERUBY_BASE_OAM_H
+#define POKERUBY_BASE_OAM_H
+
+const struct OamData gFieldOamData_8x8 = {
+ .shape = 0,
+ .size = 0,
+ .priority = 2
+};
+
+const struct OamData gFieldOamData_16x8 = {
+ .shape = 1,
+ .size = 0,
+ .priority = 2
+};
+
+const struct OamData gFieldOamData_16x16 = {
+ .shape = 0,
+ .size = 1,
+ .priority = 2
+};
+
+const struct OamData gFieldOamData_32x8 = {
+ .shape = 1,
+ .size = 1,
+ .priority = 2
+};
+
+const struct OamData gFieldOamData_64x32 = {
+ .shape = 1,
+ .size = 3,
+ .priority = 2
+};
+
+const struct OamData gFieldOamData_16x32 = {
+ .shape = 2,
+ .size = 2,
+ .priority = 2
+};
+
+const struct OamData gFieldOamData_32x32 = {
+ .shape = 0,
+ .size = 2,
+ .priority = 2
+};
+
+const struct OamData gFieldOamData_64x64 = {
+ .shape = 0,
+ .size = 3,
+ .priority = 2
+};
+
+#endif //POKERUBY_BASE_OAM_H
diff --git a/include/data/field_map_obj/berry_tree_graphics_tables.h b/include/data/field_map_obj/berry_tree_graphics_tables.h
new file mode 100755
index 000000000..53a0fd482
--- /dev/null
+++ b/include/data/field_map_obj/berry_tree_graphics_tables.h
@@ -0,0 +1,573 @@
+//
+// Created by scott on 6/17/2017.
+//
+
+#ifndef POKERUBY_BERRY_TREE_GRAPHICS_TABLES_H
+#define POKERUBY_BERRY_TREE_GRAPHICS_TABLES_H
+
+const struct SpriteFrameImage gMapObjectPicTable_PechaBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_PechaBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_PechaBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_PechaBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_PechaBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_PechaBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_PechaBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Pecha[] = {3, 4, 4, 4, 4};
+
+const struct SpriteFrameImage gMapObjectPicTable_KelpsyBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Kelpsy[] = {3, 4, 2, 2, 2};
+
+const struct SpriteFrameImage gMapObjectPicTable_WepearBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_WepearBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_WepearBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_WepearBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_WepearBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_WepearBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_WepearBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Wepear[] = {3, 4, 2, 2, 2};
+
+const struct SpriteFrameImage gMapObjectPicTable_IapapaBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_IapapaBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_IapapaBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_IapapaBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_IapapaBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_IapapaBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_IapapaBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Iapapa[] = {3, 4, 3, 3, 3};
+
+const struct SpriteFrameImage gMapObjectPicTable_CheriBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_CheriBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_CheriBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_CheriBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_CheriBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_CheriBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_CheriBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Cheri[] = {3, 4, 4, 4, 4};
+
+const struct SpriteFrameImage gMapObjectPicTable_FigyBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_FigyBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_FigyBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_FigyBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_FigyBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_FigyBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_FigyBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Figy[] = {3, 4, 3, 3, 3};
+
+const struct SpriteFrameImage gMapObjectPicTable_MagoBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_MagoBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_MagoBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_MagoBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_MagoBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_MagoBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_MagoBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Mago[] = {3, 4, 3, 3, 3};
+
+const struct SpriteFrameImage gMapObjectPicTable_LumBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_LumBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_LumBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_LumBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_LumBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_LumBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_LumBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Lum[] = {3, 4, 4, 4, 4};
+
+const struct SpriteFrameImage gMapObjectPicTable_RazzBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_RazzBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_RazzBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_RazzBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_RazzBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_RazzBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_RazzBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Razz[] = {3, 4, 4, 4, 4};
+
+const struct SpriteFrameImage gMapObjectPicTable_GrepaBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_GrepaBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_GrepaBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_GrepaBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_GrepaBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_GrepaBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_GrepaBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Grepa[] = {3, 4, 3, 3, 3};
+
+const struct SpriteFrameImage gMapObjectPicTable_RabutaBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_RabutaBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_RabutaBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_RabutaBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_RabutaBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_RabutaBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_RabutaBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Rabuta[] = {3, 4, 4, 4, 4};
+
+const struct SpriteFrameImage gMapObjectPicTable_NomelBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_NomelBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_NomelBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_NomelBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_NomelBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_NomelBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_NomelBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Nomel[] = {3, 4, 3, 3, 3};
+
+const struct SpriteFrameImage gMapObjectPicTable_LeppaBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_LeppaBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_LeppaBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_LeppaBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_LeppaBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_LeppaBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_LeppaBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Leppa[] = {3, 4, 3, 3, 3};
+
+const struct SpriteFrameImage gMapObjectPicTable_LiechiBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_LiechiBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_LiechiBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_LiechiBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_LiechiBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_LiechiBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_LiechiBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Liechi[] = {3, 4, 4, 4, 4};
+
+const struct SpriteFrameImage gMapObjectPicTable_HondewBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_HondewBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_HondewBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_HondewBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_HondewBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_HondewBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_HondewBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Hondew[] = {3, 4, 5, 5, 5};
+
+const struct SpriteFrameImage gMapObjectPicTable_AguavBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_AguavBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_AguavBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_AguavBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_AguavBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_AguavBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_AguavBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Aguav[] = {3, 4, 4, 4, 4};
+
+const struct SpriteFrameImage gMapObjectPicTable_WikiBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_WikiBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_WikiBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_WikiBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_WikiBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_WikiBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_WikiBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Wiki[] = {3, 4, 3, 3, 3};
+
+const struct SpriteFrameImage gMapObjectPicTable_PomegBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_PomegBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_PomegBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_PomegBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_PomegBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_PomegBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_PomegBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Pomeg[] = {3, 4, 3, 3, 3};
+
+const struct SpriteFrameImage gMapObjectPicTable_RawstBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_RawstBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_RawstBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_RawstBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_RawstBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_RawstBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_RawstBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Rawst[] = {3, 4, 4, 4, 4};
+
+const struct SpriteFrameImage gMapObjectPicTable_SpelonBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_SpelonBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_SpelonBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_SpelonBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_SpelonBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_SpelonBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_SpelonBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Spelon[] = {3, 4, 3, 3, 3};
+
+const struct SpriteFrameImage gMapObjectPicTable_ChestoBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_ChestoBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_ChestoBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_ChestoBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_ChestoBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_ChestoBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_ChestoBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Chesto[] = {3, 4, 2, 2, 2};
+
+const struct SpriteFrameImage gMapObjectPicTable_OranBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_OranBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_OranBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_OranBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_OranBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_OranBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_OranBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Oran[] = {3, 4, 2, 2, 2};
+
+const struct SpriteFrameImage gMapObjectPicTable_PersimBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_PersimBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_PersimBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_PersimBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_PersimBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_PersimBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_PersimBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Persim[] = {3, 4, 2, 2, 2};
+
+const struct SpriteFrameImage gMapObjectPicTable_SitrusBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_SitrusBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_SitrusBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_SitrusBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_SitrusBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_SitrusBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_SitrusBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Sitrus[] = {3, 4, 4, 4, 4};
+
+const struct SpriteFrameImage gMapObjectPicTable_AspearBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_AspearBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_AspearBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_AspearBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_AspearBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_AspearBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_AspearBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Aspear[] = {3, 4, 3, 3, 3};
+
+const struct SpriteFrameImage gMapObjectPicTable_PamtreBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_PamtreBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_PamtreBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_PamtreBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_PamtreBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_PamtreBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_PamtreBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Pamtre[] = {3, 4, 2, 2, 2};
+
+const struct SpriteFrameImage gMapObjectPicTable_CornnBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_CornnBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_CornnBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_CornnBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_CornnBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_CornnBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_CornnBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Cornn[] = {3, 4, 2, 2, 2};
+
+const struct SpriteFrameImage gMapObjectPicTable_LansatBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_LansatBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_LansatBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_LansatBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_LansatBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_LansatBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_LansatBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Lansat[] = {3, 4, 2, 2, 2};
+
+const struct SpriteFrameImage gMapObjectPicTable_DurinBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_DurinBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_DurinBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_DurinBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_DurinBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_DurinBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_DurinBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Durin[] = {3, 4, 4, 4, 4};
+
+const struct SpriteFrameImage gMapObjectPicTable_TamatoBerryTree[] = {
+ obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0),
+ obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1),
+ obj_frame_tiles(gMapObjectPic_TamatoBerryTree_0),
+ obj_frame_tiles(gMapObjectPic_TamatoBerryTree_1),
+ obj_frame_tiles(gMapObjectPic_TamatoBerryTree_2),
+ obj_frame_tiles(gMapObjectPic_TamatoBerryTree_3),
+ obj_frame_tiles(gMapObjectPic_TamatoBerryTree_4),
+ obj_frame_tiles(gMapObjectPic_TamatoBerryTree_5)
+};
+
+const u8 gBerryTreePaletteSlotTable_Tamato[] = {3, 4, 2, 2, 2};
+
+const u8 gDeadBerryTreeGraphicsIdTable[] = {MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES};
+
+const u8 gBerryTreeGraphicsIdTable[] = {MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES, MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES, MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES};
+
+const struct SpriteFrameImage *const gBerryTreePicTablePointers[] = {
+ gMapObjectPicTable_CheriBerryTree,
+ gMapObjectPicTable_ChestoBerryTree,
+ gMapObjectPicTable_PechaBerryTree,
+ gMapObjectPicTable_RawstBerryTree,
+ gMapObjectPicTable_AspearBerryTree,
+ gMapObjectPicTable_LeppaBerryTree,
+ gMapObjectPicTable_OranBerryTree,
+ gMapObjectPicTable_PersimBerryTree,
+ gMapObjectPicTable_LumBerryTree,
+ gMapObjectPicTable_SitrusBerryTree,
+ gMapObjectPicTable_FigyBerryTree,
+ gMapObjectPicTable_WikiBerryTree,
+ gMapObjectPicTable_MagoBerryTree,
+ gMapObjectPicTable_AguavBerryTree,
+ gMapObjectPicTable_IapapaBerryTree,
+ gMapObjectPicTable_RazzBerryTree,
+ gMapObjectPicTable_RazzBerryTree,
+ gMapObjectPicTable_MagoBerryTree,
+ gMapObjectPicTable_WepearBerryTree,
+ gMapObjectPicTable_IapapaBerryTree,
+ gMapObjectPicTable_PomegBerryTree,
+ gMapObjectPicTable_KelpsyBerryTree,
+ gMapObjectPicTable_WepearBerryTree,
+ gMapObjectPicTable_HondewBerryTree,
+ gMapObjectPicTable_GrepaBerryTree,
+ gMapObjectPicTable_TamatoBerryTree,
+ gMapObjectPicTable_CornnBerryTree,
+ gMapObjectPicTable_PomegBerryTree,
+ gMapObjectPicTable_RabutaBerryTree,
+ gMapObjectPicTable_NomelBerryTree,
+ gMapObjectPicTable_SpelonBerryTree,
+ gMapObjectPicTable_PamtreBerryTree,
+ gMapObjectPicTable_RabutaBerryTree,
+ gMapObjectPicTable_DurinBerryTree,
+ gMapObjectPicTable_HondewBerryTree,
+ gMapObjectPicTable_LiechiBerryTree,
+ gMapObjectPicTable_HondewBerryTree,
+ gMapObjectPicTable_AguavBerryTree,
+ gMapObjectPicTable_PomegBerryTree,
+ gMapObjectPicTable_GrepaBerryTree,
+ gMapObjectPicTable_LansatBerryTree,
+ gMapObjectPicTable_CornnBerryTree,
+ gMapObjectPicTable_DurinBerryTree
+};
+
+const u8 *const gBerryTreePaletteSlotTablePointers[] = {
+ gBerryTreePaletteSlotTable_Cheri,
+ gBerryTreePaletteSlotTable_Chesto,
+ gBerryTreePaletteSlotTable_Pecha,
+ gBerryTreePaletteSlotTable_Rawst,
+ gBerryTreePaletteSlotTable_Aspear,
+ gBerryTreePaletteSlotTable_Leppa,
+ gBerryTreePaletteSlotTable_Oran,
+ gBerryTreePaletteSlotTable_Persim,
+ gBerryTreePaletteSlotTable_Lum,
+ gBerryTreePaletteSlotTable_Sitrus,
+ gBerryTreePaletteSlotTable_Figy,
+ gBerryTreePaletteSlotTable_Wiki,
+ gBerryTreePaletteSlotTable_Mago,
+ gBerryTreePaletteSlotTable_Aguav,
+ gBerryTreePaletteSlotTable_Iapapa,
+ gBerryTreePaletteSlotTable_Razz,
+ gBerryTreePaletteSlotTable_Razz,
+ gBerryTreePaletteSlotTable_Mago,
+ gBerryTreePaletteSlotTable_Wepear,
+ gBerryTreePaletteSlotTable_Iapapa,
+ gBerryTreePaletteSlotTable_Pomeg,
+ gBerryTreePaletteSlotTable_Kelpsy,
+ gBerryTreePaletteSlotTable_Wepear,
+ gBerryTreePaletteSlotTable_Hondew,
+ gBerryTreePaletteSlotTable_Grepa,
+ gBerryTreePaletteSlotTable_Tamato,
+ gBerryTreePaletteSlotTable_Cornn,
+ gBerryTreePaletteSlotTable_Pomeg,
+ gBerryTreePaletteSlotTable_Rabuta,
+ gBerryTreePaletteSlotTable_Nomel,
+ gBerryTreePaletteSlotTable_Spelon,
+ gBerryTreePaletteSlotTable_Pamtre,
+ gBerryTreePaletteSlotTable_Rabuta,
+ gBerryTreePaletteSlotTable_Durin,
+ gBerryTreePaletteSlotTable_Hondew,
+ gBerryTreePaletteSlotTable_Liechi,
+ gBerryTreePaletteSlotTable_Hondew,
+ gBerryTreePaletteSlotTable_Aguav,
+ gBerryTreePaletteSlotTable_Pomeg,
+ gBerryTreePaletteSlotTable_Grepa,
+ gBerryTreePaletteSlotTable_Lansat,
+ gBerryTreePaletteSlotTable_Cornn,
+ gBerryTreePaletteSlotTable_Durin
+};
+
+const u8 *const gBerryTreeGraphicsIdTablePointers[] = {
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable,
+ gBerryTreeGraphicsIdTable
+};
+
+#endif //POKERUBY_BERRY_TREE_GRAPHICS_TABLES_H
diff --git a/include/data/field_map_obj/callback_subroutine_pointers.h b/include/data/field_map_obj/callback_subroutine_pointers.h
new file mode 100755
index 000000000..d24a47184
--- /dev/null
+++ b/include/data/field_map_obj/callback_subroutine_pointers.h
@@ -0,0 +1,442 @@
+//
+// Created by scott on 6/18/2017.
+//
+
+#ifndef POKERUBY_CALLBACK_SUBROUTINE_POINTERS_H
+#define POKERUBY_CALLBACK_SUBROUTINE_POINTERS_H
+
+
+u8 (*const gUnknown_08375224[])(struct MapObject *, struct Sprite *) = {
+ sub_805C8F0,
+ sub_805C904,
+ sub_805C930,
+ sub_805C96C,
+ sub_805C98C,
+ sub_805C9D8,
+ sub_805CA08
+};
+
+const u8 gUnknown_08375240[] = {DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST};
+
+u8 (*const gUnknown_08375244[])(s16, s16, s16, s16) = {
+ sub_805CAAC,
+ sub_805CADC,
+ sub_805CAEC,
+ sub_805CB00,
+ sub_805CB5C,
+ sub_805CBB8,
+ sub_805CC14,
+ sub_805CC70,
+ sub_805CCAC,
+ sub_805CCE8,
+ sub_805CD24
+};
+
+u8 (*const gUnknown_08375270[])(struct MapObject *, struct Sprite *) = {
+ sub_805CE2C,
+ sub_805CE40,
+ sub_805CE6C,
+ sub_805CEB0,
+ sub_805CEE0
+};
+
+u8 (*const gUnknown_08375284[])(struct MapObject *, struct Sprite *) = {
+ sub_805CF6C,
+ sub_805CF80,
+ sub_805CFAC,
+ sub_805CFE8,
+ sub_805D008,
+ sub_805D054,
+ sub_805D084
+};
+
+const u8 gUnknown_083752A0[] = {DIR_SOUTH, DIR_NORTH};
+
+u8 (*const gUnknown_083752A4[])(struct MapObject *, struct Sprite *) = {
+ sub_805D0F0,
+ sub_805D104,
+ sub_805D130,
+ sub_805D16C,
+ sub_805D18C,
+ sub_805D1D8,
+ sub_805D208
+};
+
+const u8 gUnknown_083752C0[] = {DIR_WEST, DIR_EAST};
+
+u8 (*const gUnknown_083752C4[])(struct MapObject *, struct Sprite *) = {
+ sub_805D274,
+ sub_805D2A0,
+ sub_805D2C0
+};
+
+u8 (*const gUnknown_083752D0[])(struct MapObject *, struct Sprite *) = {
+ do_berry_tree_growth_sparkle_1,
+ sub_805D3EC,
+ do_berry_tree_growth_sparkle_2,
+ sub_805D458,
+ sub_805D4A8
+};
+
+u8 (*const gUnknown_083752E4[])(struct MapObject *, struct Sprite *) = {
+ sub_805D538,
+ sub_805D54C,
+ sub_805D578,
+ sub_805D5BC,
+ sub_805D5EC
+};
+
+u8 (*const gUnknown_083752F8[])(struct MapObject *, struct Sprite *) = {
+ sub_805D678,
+ sub_805D68C,
+ sub_805D6B8,
+ sub_805D6FC,
+ sub_805D72C
+};
+
+u8 (*const gUnknown_0837530C[])(struct MapObject *, struct Sprite *) = {
+ sub_805D7B8,
+ sub_805D7CC,
+ sub_805D7F8,
+ sub_805D83C,
+ sub_805D86C
+};
+
+const u8 gUnknown_08375320[] = {DIR_NORTH, DIR_WEST};
+
+u8 (*const gUnknown_08375324[])(struct MapObject *, struct Sprite *) = {
+ sub_805D8F8,
+ sub_805D90C,
+ sub_805D938,
+ sub_805D97C,
+ sub_805D9AC
+};
+
+const u8 gUnknown_08375338[] = {DIR_NORTH, DIR_EAST};
+
+u8 (*const gUnknown_0837533C[])(struct MapObject *, struct Sprite *) = {
+ sub_805DA38,
+ sub_805DA4C,
+ sub_805DA78,
+ sub_805DABC,
+ sub_805DAEC
+};
+
+const u8 gUnknown_08375350[] = {DIR_SOUTH, DIR_WEST};
+
+u8 (*const gUnknown_08375354[])(struct MapObject *, struct Sprite *) = {
+ sub_805DB78,
+ sub_805DB8C,
+ sub_805DBB8,
+ sub_805DBFC,
+ sub_805DC2C
+};
+
+const u8 gUnknown_08375368[] = {DIR_SOUTH, DIR_EAST};
+
+u8 (*const gUnknown_0837536C[])(struct MapObject *, struct Sprite *) = {
+ sub_805DCB8,
+ sub_805DCCC,
+ sub_805DCF8,
+ sub_805DD3C,
+ sub_805DD6C
+};
+
+const u8 gUnknown_08375380[] = {DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_SOUTH};
+
+u8 (*const gUnknown_08375384[])(struct MapObject *, struct Sprite *) = {
+ sub_805DDF8,
+ sub_805DE0C,
+ sub_805DE38,
+ sub_805DE7C,
+ sub_805DEAC
+};
+
+const u8 gUnknown_08375398[] = {DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_SOUTH};
+
+u8 (*const gUnknown_0837539C[])(struct MapObject *, struct Sprite *) = {
+ sub_805DF38,
+ sub_805DF4C,
+ sub_805DF78,
+ sub_805DFBC,
+ sub_805DFEC
+};
+
+const u8 gUnknown_083753B0[] = {DIR_NORTH, DIR_WEST, DIR_EAST, DIR_NORTH};
+
+u8 (*const gUnknown_083753B4[])(struct MapObject *, struct Sprite *) = {
+ sub_805E078,
+ sub_805E08C,
+ sub_805E0B8,
+ sub_805E0FC,
+ sub_805E12C
+};
+
+const u8 gUnknown_083753C8[] = {DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH};
+
+u8 (*const gUnknown_083753CC[])(struct MapObject *, struct Sprite *) = {
+ sub_805E1B8,
+ sub_805E1E4,
+ sub_805E208,
+ sub_805E234
+};
+
+const u8 gUnknown_083753DC[] = {DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_SOUTH, DIR_NORTH};
+
+u8 (*const gUnknown_083753E4[])(struct MapObject *, struct Sprite *) = {
+ sub_805E2BC,
+ sub_805E2E8,
+ sub_805E30C,
+ sub_805E338
+};
+
+const u8 gUnknown_083753F4[] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH};
+
+u8 (*const gUnknown_083753FC[])(struct MapObject *, struct Sprite *) = {
+ sub_805E3C0,
+ sub_805E3D4,
+ sub_805E40C,
+ sub_805E4C4
+};
+
+u8 (*const gUnknown_0837540C[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805E620,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375418[] = {DIR_NORTH, DIR_EAST, DIR_WEST, DIR_SOUTH};
+
+u8 (*const gUnknown_0837541C[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805E6AC,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375428[] = {DIR_EAST, DIR_WEST, DIR_SOUTH, DIR_NORTH};
+u8 (*const gUnknown_0837542C[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805E738,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375438[] = {DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_WEST};
+
+u8 (*const gUnknown_0837543C[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805E7C4,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375448[] = {DIR_WEST, DIR_SOUTH, DIR_NORTH, DIR_EAST};
+
+u8 (*const gUnknown_0837544C[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805E850,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375458[] = {DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH};
+
+u8 (*const gUnknown_0837545C[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805E8DC,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375468[] = {DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_NORTH};
+
+u8 (*const gUnknown_0837546C[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805E968,
+ sub_805E5B4
+};
+
+u8 (*const gUnknown_08375478[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805E9F4,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375484[] = {DIR_EAST, DIR_SOUTH, DIR_NORTH, DIR_WEST};
+
+u8 (*const gUnknown_08375488[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805EA80,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375494[] = {DIR_WEST, DIR_NORTH, DIR_SOUTH, DIR_EAST};
+
+u8 (*const gUnknown_08375498[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805EB0C,
+ sub_805E5B4
+};
+
+const u8 gUnknown_083754A4[] = {DIR_NORTH, DIR_SOUTH, DIR_EAST, DIR_WEST};
+
+u8 (*const gUnknown_083754A8[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805EB98,
+ sub_805E5B4
+};
+
+const u8 gUnknown_083754B4[] = {DIR_EAST, DIR_WEST, DIR_NORTH, DIR_SOUTH};
+
+u8 (*const gUnknown_083754B8[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805EC24,
+ sub_805E5B4
+};
+
+const u8 gUnknown_083754C4[] = {DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_NORTH};
+
+u8 (*const gUnknown_083754C8[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805ECB0,
+ sub_805E5B4
+};
+
+const u8 gUnknown_083754D4[] = {DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST};
+
+u8 (*const gUnknown_083754D8[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805ED3C,
+ sub_805E5B4
+};
+
+const u8 gUnknown_083754E4[] = {DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST};
+
+u8 (*const gUnknown_083754E8[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805EDC8,
+ sub_805E5B4
+};
+
+const u8 gUnknown_083754F4[] = {DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH};
+
+u8 (*const gUnknown_083754F8[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805EE54,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375504[] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH};
+
+u8 (*const gUnknown_08375508[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805EEE0,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375514[] = {DIR_NORTH, DIR_WEST, DIR_SOUTH, DIR_EAST};
+
+u8 (*const gUnknown_08375518[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805EF6C,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375524[] = {DIR_SOUTH, DIR_EAST, DIR_NORTH, DIR_WEST};
+
+u8 (*const gUnknown_08375528[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805EFF8,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375534[] = {DIR_WEST, DIR_SOUTH, DIR_EAST, DIR_NORTH};
+
+u8 (*const gUnknown_08375538[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805F084,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375544[] = {DIR_EAST, DIR_NORTH, DIR_WEST, DIR_SOUTH};
+
+u8 (*const gUnknown_08375548[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805F110,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375554[] = {DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST};
+
+u8 (*const gUnknown_08375558[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805F19C,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375564[] = {DIR_SOUTH, DIR_WEST, DIR_NORTH, DIR_EAST};
+
+u8 (*const gUnknown_08375568[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805F228,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375574[] = {DIR_WEST, DIR_NORTH, DIR_EAST, DIR_SOUTH};
+
+u8 (*const gUnknown_08375578[])(struct MapObject *, struct Sprite *) = {
+ sub_805E4EC,
+ sub_805F2B4,
+ sub_805E5B4
+};
+
+const u8 gUnknown_08375584[] = {DIR_EAST, DIR_SOUTH, DIR_WEST, DIR_NORTH};
+
+u8 (*const gUnknown_08375588[])(struct MapObject *, struct Sprite *) = {
+ mss_npc_reset_oampriv3_1_unk2_unk3,
+ sub_805F364,
+ sub_805F3C4
+};
+
+u8 (*const gUnknown_08375594[])(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)) = {
+ sub_805F3EC,
+ sub_805F3F0,
+ sub_805F438,
+ sub_805F4F0,
+ sub_805F5A8,
+ sub_805F660,
+ cph_IM_DIFFERENT,
+ sub_805F760,
+ oac_hopping,
+ sub_805F3EC,
+ sub_805F3EC
+};
+
+u8 (*const gUnknown_083755C0[])(struct MapObject *, struct Sprite *) = {
+ mss_npc_reset_oampriv3_1_unk2_unk3,
+ mss_08062EA4,
+ sub_805F3C4
+};
+
+u8 (*const gUnknown_083755CC[])(struct MapObject *, struct Sprite *) = {
+ sub_805FAF8
+};
+
+u8 (*const gUnknown_083755D0[])(struct MapObject *, struct Sprite *) = {
+ sub_805FB64,
+ sub_805FB04
+};
+
+u8 (*const gUnknown_083755D8[])(struct MapObject *, struct Sprite *) = {
+ sub_805FBD4,
+ sub_805FB04
+};
+
+u8 (*const gUnknown_083755E0[])(struct MapObject *, struct Sprite *) = {
+ sub_805FC44,
+ sub_805FB04
+};
+
+u8 (*const gUnknown_083755E8[])(struct MapObject *, struct Sprite *) = {
+ sub_805FCB4,
+ sub_805FCE8,
+ sub_805FD08
+};
+
+#endif //POKERUBY_CALLBACK_SUBROUTINE_POINTERS_H
diff --git a/include/data/field_map_obj/field_effect_object_template_pointers.h b/include/data/field_map_obj/field_effect_object_template_pointers.h
new file mode 100755
index 000000000..8e19747ce
--- /dev/null
+++ b/include/data/field_map_obj/field_effect_object_template_pointers.h
@@ -0,0 +1,84 @@
+//
+// Created by scott on 6/17/2017.
+//
+
+#ifndef POKERUBY_FIELD_EFFECT_OBJECT_TEMPLATE_POINTERS_H
+#define POKERUBY_FIELD_EFFECT_OBJECT_TEMPLATE_POINTERS_H
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowSmall;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowMedium;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowLarge;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowExtraLarge;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_TallGrass;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Ripple;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Ash;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_SurfBlob;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Arrow;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Dust;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpTallGrass;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_SandFootprints;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpBigSplash;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Splash;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpSmallSplash;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_LongGrass;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpLongGrass;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown17;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown18;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown19;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown20;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown21;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_BerryTreeGrowthSparkle;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_DeepSandFootprints;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_TreeDisguise;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_MountainDisguise;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Bird;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_BikeTireTracks;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_SandDisguise;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_SandPile;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_ShortGrass;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_HotSpringsWater;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_PopOutOfAsh;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_LavaridgeGymWarp;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Bubbles;
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Sparkle;
+
+const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = {
+ &gFieldEffectSpriteTemplate_ShadowSmall,
+ &gFieldEffectSpriteTemplate_ShadowMedium,
+ &gFieldEffectSpriteTemplate_ShadowLarge,
+ &gFieldEffectSpriteTemplate_ShadowExtraLarge,
+ &gFieldEffectSpriteTemplate_TallGrass,
+ &gFieldEffectSpriteTemplate_Ripple,
+ &gFieldEffectSpriteTemplate_Ash,
+ &gFieldEffectSpriteTemplate_SurfBlob,
+ &gFieldEffectSpriteTemplate_Arrow,
+ &gFieldEffectSpriteTemplate_Dust,
+ &gFieldEffectSpriteTemplate_JumpTallGrass,
+ &gFieldEffectSpriteTemplate_SandFootprints,
+ &gFieldEffectSpriteTemplate_JumpBigSplash,
+ &gFieldEffectSpriteTemplate_Splash,
+ &gFieldEffectSpriteTemplate_JumpSmallSplash,
+ &gFieldEffectSpriteTemplate_LongGrass,
+ &gFieldEffectSpriteTemplate_JumpLongGrass,
+ &gFieldEffectSpriteTemplate_Unknown17,
+ &gFieldEffectSpriteTemplate_Unknown18,
+ &gFieldEffectSpriteTemplate_Unknown19,
+ &gFieldEffectSpriteTemplate_Unknown20,
+ &gFieldEffectSpriteTemplate_Unknown21,
+ &gFieldEffectSpriteTemplate_BerryTreeGrowthSparkle,
+ &gFieldEffectSpriteTemplate_DeepSandFootprints,
+ &gFieldEffectSpriteTemplate_TreeDisguise,
+ &gFieldEffectSpriteTemplate_MountainDisguise,
+ &gFieldEffectSpriteTemplate_Bird,
+ &gFieldEffectSpriteTemplate_BikeTireTracks,
+ &gFieldEffectSpriteTemplate_SandDisguise,
+ &gFieldEffectSpriteTemplate_SandPile,
+ &gFieldEffectSpriteTemplate_ShortGrass,
+ &gFieldEffectSpriteTemplate_HotSpringsWater,
+ &gFieldEffectSpriteTemplate_PopOutOfAsh,
+ &gFieldEffectSpriteTemplate_LavaridgeGymWarp,
+ &gFieldEffectSpriteTemplate_Bubbles,
+ &gFieldEffectSpriteTemplate_Sparkle
+};
+
+#endif //POKERUBY_FIELD_EFFECT_OBJECT_TEMPLATE_POINTERS_H
diff --git a/include/data/field_map_obj/field_effect_objects.h b/include/data/field_map_obj/field_effect_objects.h
new file mode 100755
index 000000000..dc8a38542
--- /dev/null
+++ b/include/data/field_map_obj/field_effect_objects.h
@@ -0,0 +1,897 @@
+//
+// Created by scott on 6/17/2017.
+//
+
+#ifndef POKERUBY_FIELD_EFFECT_OBJECTS_H
+#define POKERUBY_FIELD_EFFECT_OBJECTS_H
+
+const struct SpritePalette gFieldEffectObjectPaletteInfo0 = {gFieldEffectObjectPalette0, 0x1004};
+
+const struct SpritePalette gFieldEffectObjectPaletteInfo1 = {gFieldEffectObjectPalette1, 0x1005};
+
+const union AnimCmd gFieldEffectAnim_8374534[] = {
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_Shadow[] = {
+ gFieldEffectAnim_8374534
+};
+
+const struct SpriteFrameImage gFieldEffectPicTable_ShadowSmall[] = {
+ obj_frame_tiles(gFieldEffectPic_ShadowSmall)
+};
+
+const struct SpriteFrameImage gFieldEffectPicTable_ShadowMedium[] = {
+ obj_frame_tiles(gFieldEffectPic_ShadowMedium)
+};
+
+const struct SpriteFrameImage gFieldEffectPicTable_ShadowLarge[] = {
+ obj_frame_tiles(gFieldEffectPic_ShadowLarge)
+};
+
+const struct SpriteFrameImage gFieldEffectPicTable_ShadowExtraLarge[] = {
+ obj_frame_tiles(gFieldEffectPic_ShadowExtraLarge)
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowSmall = {0xFFFF, 0xFFFF, &gFieldOamData_8x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowSmall, gDummySpriteAffineAnimTable, oamc_shadow};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowMedium = {0xFFFF, 0xFFFF, &gFieldOamData_16x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowMedium, gDummySpriteAffineAnimTable, oamc_shadow};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowLarge = {0xFFFF, 0xFFFF, &gFieldOamData_32x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowLarge, gDummySpriteAffineAnimTable, oamc_shadow};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowExtraLarge = {0xFFFF, 0xFFFF, &gFieldOamData_64x32, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowExtraLarge, gDummySpriteAffineAnimTable, oamc_shadow};
+
+const struct SpriteFrameImage gFieldEffectPicTable_TallGrass[] = {
+ obj_frame_tiles(gFieldEffectPic_TallGrass_0),
+ obj_frame_tiles(gFieldEffectPic_TallGrass_1),
+ obj_frame_tiles(gFieldEffectPic_TallGrass_2),
+ obj_frame_tiles(gFieldEffectPic_TallGrass_3),
+ obj_frame_tiles(gFieldEffectPic_TallGrass_4)
+};
+
+const union AnimCmd gFieldEffectAnim_83745E8[] = {
+ ANIMCMD_FRAME(1, 10),
+ ANIMCMD_FRAME(2, 10),
+ ANIMCMD_FRAME(3, 10),
+ ANIMCMD_FRAME(4, 10),
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_TallGrass[] = {
+ gFieldEffectAnim_83745E8
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_TallGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_TallGrass, gFieldEffectPicTable_TallGrass, gDummySpriteAffineAnimTable, unc_grass_normal};
+
+const struct SpriteFrameImage gFieldEffectPicTable_Ripple[] = {
+ obj_frame_tiles(gFieldEffectPic_Ripple_0),
+ obj_frame_tiles(gFieldEffectPic_Ripple_1),
+ obj_frame_tiles(gFieldEffectPic_Ripple_2),
+ obj_frame_tiles(gFieldEffectPic_Ripple_3),
+ obj_frame_tiles(gFieldEffectPic_Ripple_4)
+};
+
+const union AnimCmd gFieldEffectAnim_8374644[] = {
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(1, 9),
+ ANIMCMD_FRAME(2, 9),
+ ANIMCMD_FRAME(3, 9),
+ ANIMCMD_FRAME(0, 9),
+ ANIMCMD_FRAME(1, 9),
+ ANIMCMD_FRAME(2, 11),
+ ANIMCMD_FRAME(4, 11),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_Ripple[] = {
+ gFieldEffectAnim_8374644
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Ripple = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Ripple, gFieldEffectPicTable_Ripple, gDummySpriteAffineAnimTable, sub_8128800};
+
+const struct SpriteFrameImage gFieldEffectPicTable_Ash[] = {
+ obj_frame_tiles(gFieldEffectPic_Ash_0),
+ obj_frame_tiles(gFieldEffectPic_Ash_1),
+ obj_frame_tiles(gFieldEffectPic_Ash_2),
+ obj_frame_tiles(gFieldEffectPic_Ash_3),
+ obj_frame_tiles(gFieldEffectPic_Ash_4)
+};
+
+const union AnimCmd gFieldEffectAnim_83746AC[] = {
+ ANIMCMD_FRAME(0, 12),
+ ANIMCMD_FRAME(1, 12),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 12),
+ ANIMCMD_FRAME(4, 12),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_Ash[] = {
+ gFieldEffectAnim_83746AC
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Ash = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Ash, gFieldEffectPicTable_Ash, gDummySpriteAffineAnimTable, sub_8127D84};
+
+const struct SpriteFrameImage gFieldEffectPicTable_SurfBlob[] = {
+ obj_frame_tiles(gFieldEffectPic_SurfBlob_0),
+ obj_frame_tiles(gFieldEffectPic_SurfBlob_1),
+ obj_frame_tiles(gFieldEffectPic_SurfBlob_2)
+};
+
+const union AnimCmd gFieldEffectAnim_83746F8[] = {
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gFieldEffectAnim_8374700[] = {
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gFieldEffectAnim_8374708[] = {
+ ANIMCMD_FRAME(2, 1),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gFieldEffectAnim_8374710[] = {
+ ANIMCMD_FRAME(2, 1, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_SurfBlob[] = {
+ gFieldEffectAnim_83746F8,
+ gFieldEffectAnim_8374700,
+ gFieldEffectAnim_8374708,
+ gFieldEffectAnim_8374710
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_SurfBlob = {0xFFFF, 0xFFFF, &gFieldOamData_32x32, gFieldEffectAnimTable_SurfBlob, gFieldEffectPicTable_SurfBlob, gDummySpriteAffineAnimTable, sub_8127F7C};
+
+const struct SpriteFrameImage gFieldEffectPicTable_Arrow[] = {
+ obj_frame_tiles(gFieldEffectPic_Arrow_0),
+ obj_frame_tiles(gFieldEffectPic_Arrow_1),
+ obj_frame_tiles(gFieldEffectPic_Arrow_2),
+ obj_frame_tiles(gFieldEffectPic_Arrow_3),
+ obj_frame_tiles(gFieldEffectPic_Arrow_4),
+ obj_frame_tiles(gFieldEffectPic_Arrow_5),
+ obj_frame_tiles(gFieldEffectPic_Arrow_6),
+ obj_frame_tiles(gFieldEffectPic_Arrow_7)
+};
+
+const union AnimCmd gFieldEffectAnim_8374780[] = {
+ ANIMCMD_FRAME(3, 32),
+ ANIMCMD_FRAME(7, 32),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gFieldEffectAnim_837478C[] = {
+ ANIMCMD_FRAME(0, 32),
+ ANIMCMD_FRAME(4, 32),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gFieldEffectAnim_8374798[] = {
+ ANIMCMD_FRAME(1, 32),
+ ANIMCMD_FRAME(5, 32),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gFieldEffectAnim_83747A4[] = {
+ ANIMCMD_FRAME(2, 32),
+ ANIMCMD_FRAME(6, 32),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_Arrow[] = {
+ gFieldEffectAnim_8374780,
+ gFieldEffectAnim_837478C,
+ gFieldEffectAnim_8374798,
+ gFieldEffectAnim_83747A4
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Arrow = {0xFFFF, 0xFFFF, &gFieldOamData_16x16, gFieldEffectAnimTable_Arrow, gFieldEffectPicTable_Arrow, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
+
+const struct SpriteFrameImage gFieldEffectPicTable_Dust[] = {
+ obj_frame_tiles(gFieldEffectPic_Dust_0),
+ obj_frame_tiles(gFieldEffectPic_Dust_1),
+ obj_frame_tiles(gFieldEffectPic_Dust_2)
+};
+
+const union AnimCmd gFieldEffectAnim_83747F0[] = {
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_Dust[] = {
+ gFieldEffectAnim_83747F0
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Dust = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_Dust, gFieldEffectPicTable_Dust, gDummySpriteAffineAnimTable, sub_81287C4};
+
+const struct SpriteFrameImage gFieldEffectPicTable_JumpTallGrass[] = {
+ obj_frame_tiles(gFieldEffectPic_JumpTallGrass_0),
+ obj_frame_tiles(gFieldEffectPic_JumpTallGrass_1),
+ obj_frame_tiles(gFieldEffectPic_JumpTallGrass_2),
+ obj_frame_tiles(gFieldEffectPic_JumpTallGrass_3)
+};
+
+const union AnimCmd gFieldEffectAnim_837483C[] = {
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_JumpTallGrass[] = {
+ gFieldEffectAnim_837483C
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpTallGrass = {0xFFFF, 0x1005, &gFieldOamData_16x8, gFieldEffectAnimTable_JumpTallGrass, gFieldEffectPicTable_JumpTallGrass, gDummySpriteAffineAnimTable, sub_81287C4};
+
+const struct SpriteFrameImage gFieldEffectPicTable_SandFootprints[] = {
+ obj_frame_tiles(gFieldEffectPic_SandFootprints_0),
+ obj_frame_tiles(gFieldEffectPic_SandFootprints_1)
+};
+
+const union AnimCmd gFieldEffectAnim_837487C[] = {
+ ANIMCMD_FRAME(0, 1, .vFlip = TRUE),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_8374884[] = {
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_837488C[] = {
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_8374894[] = {
+ ANIMCMD_FRAME(1, 1, .hFlip = TRUE),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_SandFootprints[] = {
+ gFieldEffectAnim_837487C,
+ gFieldEffectAnim_837487C,
+ gFieldEffectAnim_8374884,
+ gFieldEffectAnim_837488C,
+ gFieldEffectAnim_8374894
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_SandFootprints = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_SandFootprints, gFieldEffectPicTable_SandFootprints, gDummySpriteAffineAnimTable, sub_8127584};
+
+const struct SpriteFrameImage gFieldEffectPicTable_DeepSandFootprints[] = {
+ obj_frame_tiles(gFieldEffectPic_DeepSandFootprints_0),
+ obj_frame_tiles(gFieldEffectPic_DeepSandFootprints_1)
+};
+
+const union AnimCmd gFieldEffectAnim_83748D8[] = {
+ ANIMCMD_FRAME(0, 1, .vFlip = TRUE),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_83748E0[] = {
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_83748E8[] = {
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_83748F0[] = {
+ ANIMCMD_FRAME(1, 1, .hFlip = TRUE),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_DeepSandFootprints[] = {
+ gFieldEffectAnim_83748D8,
+ gFieldEffectAnim_83748D8,
+ gFieldEffectAnim_83748E0,
+ gFieldEffectAnim_83748E8,
+ gFieldEffectAnim_83748F0
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_DeepSandFootprints = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_DeepSandFootprints, gFieldEffectPicTable_DeepSandFootprints, gDummySpriteAffineAnimTable, sub_8127584};
+
+const struct SpriteFrameImage gFieldEffectPicTable_BikeTireTracks[] = {
+ obj_frame_tiles(gFieldEffectPic_BikeTireTracks_0),
+ obj_frame_tiles(gFieldEffectPic_BikeTireTracks_1),
+ obj_frame_tiles(gFieldEffectPic_BikeTireTracks_2),
+ obj_frame_tiles(gFieldEffectPic_BikeTireTracks_3)
+};
+
+const union AnimCmd gFieldEffectAnim_8374944[] = {
+ ANIMCMD_FRAME(2, 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_837494C[] = {
+ ANIMCMD_FRAME(2, 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_8374954[] = {
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_837495C[] = {
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_8374964[] = {
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_837496C[] = {
+ ANIMCMD_FRAME(0, 1, .hFlip = TRUE),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_8374974[] = {
+ ANIMCMD_FRAME(3, 1, .hFlip = TRUE),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_837497C[] = {
+ ANIMCMD_FRAME(3, 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_BikeTireTracks[] = {
+ gFieldEffectAnim_8374944,
+ gFieldEffectAnim_8374944,
+ gFieldEffectAnim_837494C,
+ gFieldEffectAnim_8374954,
+ gFieldEffectAnim_837495C,
+ gFieldEffectAnim_8374964,
+ gFieldEffectAnim_837496C,
+ gFieldEffectAnim_8374974,
+ gFieldEffectAnim_837497C
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_BikeTireTracks = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_BikeTireTracks, gFieldEffectPicTable_BikeTireTracks, gDummySpriteAffineAnimTable, sub_8127584};
+
+const struct SpriteFrameImage gFieldEffectPicTable_JumpBigSplash[] = {
+ obj_frame_tiles(gFieldEffectPic_JumpBigSplash_0),
+ obj_frame_tiles(gFieldEffectPic_JumpBigSplash_1),
+ obj_frame_tiles(gFieldEffectPic_JumpBigSplash_2),
+ obj_frame_tiles(gFieldEffectPic_JumpBigSplash_3)
+};
+
+const union AnimCmd gFieldEffectAnim_83749E0[] = {
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_JumpBigSplash[] = {
+ gFieldEffectAnim_83749E0
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpBigSplash = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_JumpBigSplash, gFieldEffectPicTable_JumpBigSplash, gDummySpriteAffineAnimTable, sub_81287C4};
+
+const struct SpriteFrameImage gFieldEffectPicTable_Splash[] = {
+ obj_frame_tiles(gFieldEffectPic_Splash_0),
+ obj_frame_tiles(gFieldEffectPic_Splash_1)
+};
+
+const union AnimCmd gFieldEffectAnim_8374A20[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_8374A2C[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(0, 6),
+ ANIMCMD_FRAME(1, 6),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(0, 6),
+ ANIMCMD_FRAME(1, 6),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_Splash[] = {
+ gFieldEffectAnim_8374A20,
+ gFieldEffectAnim_8374A2C
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Splash = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_Splash, gFieldEffectPicTable_Splash, gDummySpriteAffineAnimTable, sub_81276B4};
+
+const struct SpriteFrameImage gFieldEffectPicTable_JumpSmallSplash[] = {
+ obj_frame_tiles(gFieldEffectPic_JumpSmallSplash_0),
+ obj_frame_tiles(gFieldEffectPic_JumpSmallSplash_1),
+ obj_frame_tiles(gFieldEffectPic_JumpSmallSplash_2)
+};
+
+const union AnimCmd gFieldEffectAnim_8374A88[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_JumpSmallSplash[] = {
+ gFieldEffectAnim_8374A88
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpSmallSplash = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_JumpSmallSplash, gFieldEffectPicTable_JumpSmallSplash, gDummySpriteAffineAnimTable, sub_81287C4};
+
+const struct SpriteFrameImage gFieldEffectPicTable_LongGrass[] = {
+ obj_frame_tiles(gFieldEffectPic_LongGrass_0),
+ obj_frame_tiles(gFieldEffectPic_LongGrass_1),
+ obj_frame_tiles(gFieldEffectPic_LongGrass_2),
+ obj_frame_tiles(gFieldEffectPic_LongGrass_3)
+};
+
+const union AnimCmd gFieldEffectAnim_8374AD4[] = {
+ ANIMCMD_FRAME(1, 3),
+ ANIMCMD_FRAME(2, 3),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_LongGrass[] = {
+ gFieldEffectAnim_8374AD4
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_LongGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_LongGrass, gFieldEffectPicTable_LongGrass, gDummySpriteAffineAnimTable, unc_grass_tall};
+
+const struct SpriteFrameImage gFieldEffectPicTable_JumpLongGrass[] = {
+ obj_frame_tiles(gFieldEffectPic_JumpLongGrass_0),
+ obj_frame_tiles(gFieldEffectPic_JumpLongGrass_1),
+ obj_frame_tiles(gFieldEffectPic_JumpLongGrass_2),
+ obj_frame_tiles(gFieldEffectPic_JumpLongGrass_3),
+ obj_frame_tiles(gFieldEffectPic_JumpLongGrass_4),
+ obj_frame_tiles(gFieldEffectPic_JumpLongGrass_5)
+};
+
+const union AnimCmd gFieldEffectAnim_8374B40[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_FRAME(5, 8),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_JumpLongGrass[] = {
+ gFieldEffectAnim_8374B40
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpLongGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_JumpLongGrass, gFieldEffectPicTable_JumpLongGrass, gDummySpriteAffineAnimTable, sub_81287C4};
+
+const struct SpriteFrameImage gFieldEffectPicTable_Unknown17[] = {
+ obj_frame_tiles(gFieldEffectPic_JumpLongGrass_5),
+ obj_frame_tiles(gFieldEffectPic_Unknown17_0),
+ obj_frame_tiles(gFieldEffectPic_Unknown17_1),
+ obj_frame_tiles(gFieldEffectPic_Unknown17_2),
+ obj_frame_tiles(gFieldEffectPic_Unknown17_3),
+ obj_frame_tiles(gFieldEffectPic_Unknown17_4),
+ obj_frame_tiles(gFieldEffectPic_Unknown17_5),
+ obj_frame_tiles(gFieldEffectPic_Unknown17_6),
+ obj_frame_tiles(gFieldEffectPic_Unknown17_7)
+};
+
+const union AnimCmd gFieldEffectAnim_8374BC0[] = {
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(5, 4),
+ ANIMCMD_FRAME(6, 4),
+ ANIMCMD_FRAME(7, 4),
+ ANIMCMD_FRAME(8, 4),
+ ANIMCMD_JUMP(7)
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_Unknown17[] = {
+ gFieldEffectAnim_8374BC0
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown17 = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown17, gFieldEffectPicTable_Unknown17, gDummySpriteAffineAnimTable, sub_8128800};
+
+const struct SpriteFrameImage gFieldEffectPicTable_Unknown18[] = {
+ obj_frame_tiles(gFieldEffectPic_Unknown18_0),
+ obj_frame_tiles(gFieldEffectPic_Unknown18_1),
+ obj_frame_tiles(gFieldEffectPic_Unknown18_2),
+ obj_frame_tiles(gFieldEffectPic_Unknown18_3)
+};
+
+const union AnimCmd gFieldEffectAnim_8374C24[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_Unknown18[] = {
+ gFieldEffectAnim_8374C24
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown18 = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown18, gFieldEffectPicTable_Unknown18, gDummySpriteAffineAnimTable, sub_8128800};
+
+const struct SpriteFrameImage gFieldEffectPicTable_Unknown19[] = {
+ obj_frame_tiles(gFieldEffectPic_Unknown19_0),
+ obj_frame_tiles(gFieldEffectPic_Unknown19_1),
+ obj_frame_tiles(gFieldEffectPic_Unknown19_2),
+ obj_frame_tiles(gFieldEffectPic_Unknown19_3)
+};
+
+const union AnimCmd gFieldEffectAnim_8374C7C[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_Unknown19[] = {
+ gFieldEffectAnim_8374C7C
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown19 = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown19, gFieldEffectPicTable_Unknown19, gDummySpriteAffineAnimTable, sub_8128800};
+
+const struct SpriteFrameImage gFieldEffectPicTable_SandPile[] = {
+ obj_frame_tiles(gFieldEffectPic_SandPile_0),
+ obj_frame_tiles(gFieldEffectPic_SandPile_1),
+ obj_frame_tiles(gFieldEffectPic_SandPile_2)
+};
+
+const union AnimCmd gFieldEffectAnim_8374CC4[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_SandPile[] = {
+ gFieldEffectAnim_8374CC4
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_SandPile = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_SandPile, gFieldEffectPicTable_SandPile, gDummySpriteAffineAnimTable, sub_81282E0};
+
+const struct SpriteFrameImage gFieldEffectPicTable_Unknown20[] = {
+ obj_frame_tiles(gFieldEffectPic_Unknown20_0),
+ obj_frame_tiles(gFieldEffectPic_Unknown20_1),
+ obj_frame_tiles(gFieldEffectPic_Unknown20_2),
+ obj_frame_tiles(gFieldEffectPic_Unknown20_3)
+};
+
+const union AnimCmd gFieldEffectAnim_8374D10[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_Unknown20[] = {
+ gFieldEffectAnim_8374D10
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown20 = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown20, gFieldEffectPicTable_Unknown20, gDummySpriteAffineAnimTable, sub_8128800};
+
+const union AffineAnimCmd gFieldEffectAffineAnim_8374D48[] = {
+ AFFINEANIMCMD_FRAME(0xFF00, 0x100, -128, 0),
+ AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
+ AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
+ AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
+ AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
+ AFFINEANIMCMD_JUMP(1)
+};
+
+const union AffineAnimCmd gFieldEffectAffineAnim_8374D98[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, -128, 0),
+ AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
+ AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
+ AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
+ AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
+ AFFINEANIMCMD_JUMP(1)
+};
+
+const union AffineAnimCmd *const gFieldEffectAffineAnimTable_Unknown21[] = {
+ gFieldEffectAffineAnim_8374D48,
+ gFieldEffectAffineAnim_8374D98
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown21 = {0x0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gFieldEffectAffineAnimTable_Unknown21, SpriteCallbackDummy};
+
+const struct SpriteFrameImage gFieldEffectPicTable_BerryTreeGrowthSparkle[] = {
+ obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_0),
+ obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_1),
+ obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_2),
+ obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_3),
+ obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_4),
+ obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_5)
+};
+
+const union AnimCmd gFieldEffectAnim_8374E38[] = {
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_FRAME(5, 8),
+ ANIMCMD_LOOP(0),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(5, 4),
+ ANIMCMD_LOOP(3),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_FRAME(5, 8),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_BerryTreeGrowthSparkle[] = {
+ gFieldEffectAnim_8374E38
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_BerryTreeGrowthSparkle = {0xFFFF, 0xFFFF, &gFieldOamData_16x16, gFieldEffectAnimTable_BerryTreeGrowthSparkle, gFieldEffectPicTable_BerryTreeGrowthSparkle, gDummySpriteAffineAnimTable, sub_8128800};
+
+const struct SpriteFrameImage gFieldEffectPicTable_TreeDisguise[] = {
+ obj_frame_tiles(gFieldEffectPic_TreeDisguise_0),
+ obj_frame_tiles(gFieldEffectPic_TreeDisguise_1),
+ obj_frame_tiles(gFieldEffectPic_TreeDisguise_2),
+ obj_frame_tiles(gFieldEffectPic_TreeDisguise_3),
+ obj_frame_tiles(gFieldEffectPic_TreeDisguise_4),
+ obj_frame_tiles(gFieldEffectPic_TreeDisguise_5),
+ obj_frame_tiles(gFieldEffectPic_TreeDisguise_6)
+};
+
+const union AnimCmd gFieldEffectAnim_8374EE0[] = {
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_8374EE8[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(5, 4),
+ ANIMCMD_FRAME(6, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_TreeDisguise[] = {
+ gFieldEffectAnim_8374EE0,
+ gFieldEffectAnim_8374EE8
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_TreeDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_TreeDisguise, gFieldEffectPicTable_TreeDisguise, gDummySpriteAffineAnimTable, sub_81285AC};
+
+const struct SpriteFrameImage gFieldEffectPicTable_MountainDisguise[] = {
+ obj_frame_tiles(gFieldEffectPic_MountainDisguise_0),
+ obj_frame_tiles(gFieldEffectPic_MountainDisguise_1),
+ obj_frame_tiles(gFieldEffectPic_MountainDisguise_2),
+ obj_frame_tiles(gFieldEffectPic_MountainDisguise_3),
+ obj_frame_tiles(gFieldEffectPic_MountainDisguise_4),
+ obj_frame_tiles(gFieldEffectPic_MountainDisguise_5),
+ obj_frame_tiles(gFieldEffectPic_MountainDisguise_6)
+};
+
+const union AnimCmd gFieldEffectAnim_8374F60[] = {
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_END
+};
+
+const union AnimCmd gFieldEffectAnim_8374F68[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(5, 4),
+ ANIMCMD_FRAME(6, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_MountainDisguise[] = {
+ gFieldEffectAnim_8374F60,
+ gFieldEffectAnim_8374F68
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_MountainDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_MountainDisguise, gFieldEffectPicTable_MountainDisguise, gDummySpriteAffineAnimTable, sub_81285AC};
+
+const struct SpriteFrameImage gFieldEffectPicTable_SandDisguise[] = {
+ obj_frame_tiles(gFieldEffectPic_SandDisguise_0),
+ obj_frame_tiles(gFieldEffectPic_SandDisguise_1),
+ obj_frame_tiles(gFieldEffectPic_SandDisguise_2),
+ obj_frame_tiles(gFieldEffectPic_SandDisguise_3),
+ obj_frame_tiles(gFieldEffectPic_SandDisguise_4),
+ obj_frame_tiles(gFieldEffectPic_SandDisguise_5),
+ obj_frame_tiles(gFieldEffectPic_SandDisguise_6)
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_SandDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_TreeDisguise, gFieldEffectPicTable_SandDisguise, gDummySpriteAffineAnimTable, sub_81285AC};
+
+const struct SpriteFrameImage gFieldEffectPicTable_Bird[] = {
+ obj_frame_tiles(gFieldEffectPic_Bird)
+};
+
+const union AnimCmd gFieldEffectAnim_8375000[] = {
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_Bird[] = {
+ gFieldEffectAnim_8375000
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Bird = {0xFFFF, 0xFFFF, &gFieldOamData_32x32, gFieldEffectAnimTable_Bird, gFieldEffectPicTable_Bird, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
+
+const struct SpriteFrameImage gFieldEffectPicTable_ShortGrass[] = {
+ obj_frame_tiles(gFieldEffectPic_ShortGrass_0),
+ obj_frame_tiles(gFieldEffectPic_ShortGrass_1)
+};
+
+const union AnimCmd gFieldEffectAnim_8375034[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_ShortGrass[] = {
+ gFieldEffectAnim_8375034
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_ShortGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_ShortGrass, gFieldEffectPicTable_ShortGrass, gDummySpriteAffineAnimTable, sub_8127334};
+
+const struct SpriteFrameImage gFieldEffectPicTable_HotSpringsWater[] = {
+ obj_frame_tiles(gFieldEffectPic_HotSpringsWater)
+};
+
+const union AnimCmd gFieldEffectAnim_8375064[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_HotSpringsWater[] = {
+ gFieldEffectAnim_8375064
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_HotSpringsWater = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_HotSpringsWater, gFieldEffectPicTable_HotSpringsWater, gDummySpriteAffineAnimTable, sub_8127A7C};
+
+const struct SpriteFrameImage gFieldEffectPicTable_PopOutOfAsh[] = {
+ obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_0),
+ obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_1),
+ obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_2),
+ obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_3),
+ obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_4)
+};
+
+const union AnimCmd gFieldEffectAnim_83750B0[] = {
+ ANIMCMD_FRAME(0, 6),
+ ANIMCMD_FRAME(1, 6),
+ ANIMCMD_FRAME(2, 6),
+ ANIMCMD_FRAME(3, 6),
+ ANIMCMD_FRAME(4, 6),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_PopOutOfAsh[] = {
+ gFieldEffectAnim_83750B0
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_PopOutOfAsh = {0xFFFF, 0x100D, &gFieldOamData_16x16, gFieldEffectAnimTable_PopOutOfAsh, gFieldEffectPicTable_PopOutOfAsh, gDummySpriteAffineAnimTable, sub_808788C};
+
+const struct SpritePalette gFieldEffectObjectPaletteInfo2 = {gFieldEffectObjectPalette2, 0x100D};
+
+const struct SpriteFrameImage gFieldEffectPicTable_LavaridgeGymWarp[] = {
+ obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_0),
+ obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_1),
+ obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_2),
+ obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_3),
+ obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_4)
+};
+
+const union AnimCmd gFieldEffectAnim_8375114[] = {
+ ANIMCMD_FRAME(0, 6),
+ ANIMCMD_FRAME(1, 6),
+ ANIMCMD_FRAME(2, 6),
+ ANIMCMD_FRAME(3, 6),
+ ANIMCMD_FRAME(4, 6),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_LavaridgeGymWarp[] = {
+ gFieldEffectAnim_8375114
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_LavaridgeGymWarp = {0xFFFF, 0x100D, &gFieldOamData_16x16, gFieldEffectAnimTable_LavaridgeGymWarp, gFieldEffectPicTable_LavaridgeGymWarp, gDummySpriteAffineAnimTable, sub_8087638};
+
+const struct SpriteFrameImage gFieldEffectPicTable_Bubbles[] = {
+ obj_frame_tiles(gFieldEffectPic_Bubbles_0),
+ obj_frame_tiles(gFieldEffectPic_Bubbles_1),
+ obj_frame_tiles(gFieldEffectPic_Bubbles_2),
+ obj_frame_tiles(gFieldEffectPic_Bubbles_3),
+ obj_frame_tiles(gFieldEffectPic_Bubbles_4),
+ obj_frame_tiles(gFieldEffectPic_Bubbles_5),
+ obj_frame_tiles(gFieldEffectPic_Bubbles_6),
+ obj_frame_tiles(gFieldEffectPic_Bubbles_7)
+};
+
+const union AnimCmd gFieldEffectAnim_8375188[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(3, 6),
+ ANIMCMD_FRAME(4, 6),
+ ANIMCMD_FRAME(5, 4),
+ ANIMCMD_FRAME(6, 4),
+ ANIMCMD_FRAME(7, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_Bubbles[] = {
+ gFieldEffectAnim_8375188
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Bubbles = {0xFFFF, 0x1004, &gFieldOamData_16x32, gFieldEffectAnimTable_Bubbles, gFieldEffectPicTable_Bubbles, gDummySpriteAffineAnimTable, sub_8128410};
+
+const struct SpriteFrameImage gFieldEffectPicTable_Sparkle[] = {
+ obj_frame_tiles(gFieldEffectPic_Sparkle_0),
+ obj_frame_tiles(gFieldEffectPic_Sparkle_1)
+};
+
+const union AnimCmd gFieldEffectAnim_83751D8[] = {
+ ANIMCMD_FRAME(0, 3),
+ ANIMCMD_FRAME(1, 5),
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gFieldEffectAnimTable_Sparkle[] = {
+ gFieldEffectAnim_83751D8
+};
+
+const struct SpriteTemplate gFieldEffectSpriteTemplate_Sparkle = {0xFFFF, 0x100F, &gFieldOamData_16x16, gFieldEffectAnimTable_Sparkle, gFieldEffectPicTable_Sparkle, gDummySpriteAffineAnimTable, sub_8128774};
+
+const struct SpritePalette gFieldEffectObjectPaletteInfo3 = {gFieldEffectObjectPalette3, 0x100F};
+
+#endif //POKERUBY_FIELD_EFFECT_OBJECTS_H
diff --git a/include/data/field_map_obj/map_object_anims.h b/include/data/field_map_obj/map_object_anims.h
new file mode 100755
index 000000000..0d6e299ee
--- /dev/null
+++ b/include/data/field_map_obj/map_object_anims.h
@@ -0,0 +1,886 @@
+//
+// Created by scott on 6/17/2017.
+//
+
+#ifndef POKERUBY_MAP_OBJECT_ANIMS_H
+#define POKERUBY_MAP_OBJECT_ANIMS_H
+
+
+const union AnimCmd gMapObjectImageAnim_83708C8[] = {
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_83708DC[] = {
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_83708E4[] = {
+ ANIMCMD_FRAME(1, 16),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_83708EC[] = {
+ ANIMCMD_FRAME(2, 16),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_83708F4[] = {
+ ANIMCMD_FRAME(2, 16, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_83708FC[] = {
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(3, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370910[] = {
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(4, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370924[] = {
+ ANIMCMD_FRAME(5, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(6, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370938[] = {
+ ANIMCMD_FRAME(5, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(6, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 8, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_837094C[] = {
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(3, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370960[] = {
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(4, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370974[] = {
+ ANIMCMD_FRAME(5, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(6, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370988[] = {
+ ANIMCMD_FRAME(5, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(6, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_837099C[] = {
+ ANIMCMD_FRAME(3, 2),
+ ANIMCMD_FRAME(0, 2),
+ ANIMCMD_FRAME(3, 2, .hFlip = TRUE),
+ ANIMCMD_FRAME(0, 2),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_83709B0[] = {
+ ANIMCMD_FRAME(4, 2),
+ ANIMCMD_FRAME(1, 2),
+ ANIMCMD_FRAME(4, 2, .hFlip = TRUE),
+ ANIMCMD_FRAME(1, 2),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_83709C4[] = {
+ ANIMCMD_FRAME(5, 2),
+ ANIMCMD_FRAME(2, 2),
+ ANIMCMD_FRAME(6, 2),
+ ANIMCMD_FRAME(2, 2),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_83709D8[] = {
+ ANIMCMD_FRAME(5, 2, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 2, .hFlip = TRUE),
+ ANIMCMD_FRAME(6, 2, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 2, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_83709EC[] = {
+ ANIMCMD_FRAME(3, 1),
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_FRAME(3, 1, .hFlip = TRUE),
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370A00[] = {
+ ANIMCMD_FRAME(4, 1),
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_FRAME(4, 1, .hFlip = TRUE),
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370A14[] = {
+ ANIMCMD_FRAME(5, 1),
+ ANIMCMD_FRAME(2, 1),
+ ANIMCMD_FRAME(6, 1),
+ ANIMCMD_FRAME(2, 1),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370A28[] = {
+ ANIMCMD_FRAME(5, 1, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 1, .hFlip = TRUE),
+ ANIMCMD_FRAME(6, 1, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 1, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370A3C[] = {
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370A44[] = {
+ ANIMCMD_FRAME(1, 16),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370A4C[] = {
+ ANIMCMD_FRAME(2, 16),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370A54[] = {
+ ANIMCMD_FRAME(2, 16, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370A5C[] = {
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370A70[] = {
+ ANIMCMD_FRAME(5, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(6, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370A84[] = {
+ ANIMCMD_FRAME(7, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(8, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370A98[] = {
+ ANIMCMD_FRAME(7, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(8, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 8, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370AAC[] = {
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370AC0[] = {
+ ANIMCMD_FRAME(5, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(6, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370AD4[] = {
+ ANIMCMD_FRAME(7, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(8, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370AE8[] = {
+ ANIMCMD_FRAME(7, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(8, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370AFC[] = {
+ ANIMCMD_FRAME(3, 2),
+ ANIMCMD_FRAME(0, 2),
+ ANIMCMD_FRAME(4, 2),
+ ANIMCMD_FRAME(0, 2),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370B10[] = {
+ ANIMCMD_FRAME(5, 2),
+ ANIMCMD_FRAME(1, 2),
+ ANIMCMD_FRAME(6, 2),
+ ANIMCMD_FRAME(1, 2),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370B24[] = {
+ ANIMCMD_FRAME(7, 2),
+ ANIMCMD_FRAME(2, 2),
+ ANIMCMD_FRAME(8, 2),
+ ANIMCMD_FRAME(2, 2),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370B38[] = {
+ ANIMCMD_FRAME(7, 2, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 2, .hFlip = TRUE),
+ ANIMCMD_FRAME(8, 2, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 2, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370B4C[] = {
+ ANIMCMD_FRAME(3, 1),
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_FRAME(4, 1),
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370B60[] = {
+ ANIMCMD_FRAME(5, 1),
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_FRAME(6, 1),
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370B74[] = {
+ ANIMCMD_FRAME(7, 1),
+ ANIMCMD_FRAME(2, 1),
+ ANIMCMD_FRAME(8, 1),
+ ANIMCMD_FRAME(2, 1),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370B88[] = {
+ ANIMCMD_FRAME(7, 1, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 1, .hFlip = TRUE),
+ ANIMCMD_FRAME(8, 1, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 1, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370B9C[] = {
+ ANIMCMD_FRAME(12, 5),
+ ANIMCMD_FRAME(9, 3),
+ ANIMCMD_FRAME(13, 5),
+ ANIMCMD_FRAME(9, 3),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370BB0[] = {
+ ANIMCMD_FRAME(14, 5),
+ ANIMCMD_FRAME(10, 3),
+ ANIMCMD_FRAME(15, 5),
+ ANIMCMD_FRAME(10, 3),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370BC4[] = {
+ ANIMCMD_FRAME(16, 5),
+ ANIMCMD_FRAME(11, 3),
+ ANIMCMD_FRAME(17, 5),
+ ANIMCMD_FRAME(11, 3),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370BD8[] = {
+ ANIMCMD_FRAME(16, 5, .hFlip = TRUE),
+ ANIMCMD_FRAME(11, 3, .hFlip = TRUE),
+ ANIMCMD_FRAME(17, 5, .hFlip = TRUE),
+ ANIMCMD_FRAME(11, 3, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370BEC[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C04[] = {
+ ANIMCMD_FRAME(9, 32),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C0C[] = {
+ ANIMCMD_FRAME(10, 32),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C14[] = {
+ ANIMCMD_FRAME(11, 32),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C1C[] = {
+ ANIMCMD_FRAME(11, 32, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C24[] = {
+ ANIMCMD_FRAME(9, 4),
+ ANIMCMD_FRAME(10, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C30[] = {
+ ANIMCMD_FRAME(13, 4),
+ ANIMCMD_FRAME(14, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C3C[] = {
+ ANIMCMD_FRAME(17, 4),
+ ANIMCMD_FRAME(18, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C48[] = {
+ ANIMCMD_FRAME(17, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(18, 4, .hFlip = TRUE),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C54[] = {
+ ANIMCMD_FRAME(11, 4),
+ ANIMCMD_FRAME(12, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C60[] = {
+ ANIMCMD_FRAME(15, 4),
+ ANIMCMD_FRAME(16, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C6C[] = {
+ ANIMCMD_FRAME(19, 4),
+ ANIMCMD_FRAME(20, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C78[] = {
+ ANIMCMD_FRAME(19, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(20, 4, .hFlip = TRUE),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C84[] = {
+ ANIMCMD_FRAME(9, 4),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C90[] = {
+ ANIMCMD_FRAME(13, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370C9C[] = {
+ ANIMCMD_FRAME(17, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370CA8[] = {
+ ANIMCMD_FRAME(17, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370CB4[] = {
+ ANIMCMD_FRAME(11, 4),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370CC0[] = {
+ ANIMCMD_FRAME(15, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370CCC[] = {
+ ANIMCMD_FRAME(19, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370CD8[] = {
+ ANIMCMD_FRAME(19, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370CE4[] = {
+ ANIMCMD_FRAME(21, 4),
+ ANIMCMD_FRAME(10, 4),
+ ANIMCMD_FRAME(22, 4),
+ ANIMCMD_FRAME(10, 4),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370CF8[] = {
+ ANIMCMD_FRAME(23, 4),
+ ANIMCMD_FRAME(14, 4),
+ ANIMCMD_FRAME(24, 4),
+ ANIMCMD_FRAME(14, 4),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370D0C[] = {
+ ANIMCMD_FRAME(25, 4),
+ ANIMCMD_FRAME(18, 4),
+ ANIMCMD_FRAME(26, 4),
+ ANIMCMD_FRAME(18, 4),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370D20[] = {
+ ANIMCMD_FRAME(25, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(18, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(26, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(18, 4, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370D34[] = {
+ ANIMCMD_FRAME(0, 32),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370D3C[] = {
+ ANIMCMD_FRAME(1, 32),
+ ANIMCMD_FRAME(2, 32),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370D48[] = {
+ ANIMCMD_FRAME(3, 48),
+ ANIMCMD_FRAME(4, 48),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370D54[] = {
+ ANIMCMD_FRAME(5, 32),
+ ANIMCMD_FRAME(5, 32),
+ ANIMCMD_FRAME(6, 32),
+ ANIMCMD_FRAME(6, 32),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370D68[] = {
+ ANIMCMD_FRAME(7, 48),
+ ANIMCMD_FRAME(7, 48),
+ ANIMCMD_FRAME(8, 48),
+ ANIMCMD_FRAME(8, 48),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370D7C[] = {
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(9, 32),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370D8C[] = {
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370DA0[] = {
+ ANIMCMD_FRAME(0, 6),
+ ANIMCMD_FRAME(1, 6),
+ ANIMCMD_FRAME(2, 6),
+ ANIMCMD_FRAME(3, 6),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370DB4[] = {
+ ANIMCMD_FRAME(8, 4),
+ ANIMCMD_FRAME(9, 4),
+ ANIMCMD_FRAME(10, 4),
+ ANIMCMD_FRAME(11, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370DC8[] = {
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(5, 4),
+ ANIMCMD_FRAME(6, 4),
+ ANIMCMD_FRAME(7, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370DDC[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370DF0[] = {
+ ANIMCMD_FRAME(0, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(1, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(3, 4, .hFlip = TRUE),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370E04[] = {
+ ANIMCMD_FRAME(11, 4),
+ ANIMCMD_FRAME(10, 6),
+ ANIMCMD_FRAME(9, 6),
+ ANIMCMD_FRAME(8, 6),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370E18[] = {
+ ANIMCMD_FRAME(7, 4),
+ ANIMCMD_FRAME(6, 6),
+ ANIMCMD_FRAME(5, 6),
+ ANIMCMD_FRAME(4, 6),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370E2C[] = {
+ ANIMCMD_FRAME(3, 4),
+ ANIMCMD_FRAME(2, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370E40[] = {
+ ANIMCMD_FRAME(3, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(1, 4, .hFlip = TRUE),
+ ANIMCMD_FRAME(0, 4, .hFlip = TRUE),
+ ANIMCMD_END
+};
+
+const union AnimCmd gMapObjectImageAnim_8370E54[] = {
+ ANIMCMD_FRAME(10, 6),
+ ANIMCMD_FRAME(11, 6),
+ ANIMCMD_LOOP(1),
+ ANIMCMD_FRAME(11, 30),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370E68[] = {
+ ANIMCMD_FRAME(6, 6),
+ ANIMCMD_FRAME(7, 6),
+ ANIMCMD_LOOP(1),
+ ANIMCMD_FRAME(7, 30),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370E7C[] = {
+ ANIMCMD_FRAME(2, 6),
+ ANIMCMD_FRAME(3, 6),
+ ANIMCMD_LOOP(1),
+ ANIMCMD_FRAME(3, 30),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gMapObjectImageAnim_8370E90[] = {
+ ANIMCMD_FRAME(2, 6, .hFlip = TRUE),
+ ANIMCMD_FRAME(3, 6, .hFlip = TRUE),
+ ANIMCMD_LOOP(1),
+ ANIMCMD_FRAME(3, 30, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+const union AffineAnimCmd gMapObjectRotScalAnim_8370EA4[] = {
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 1),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1),
+ AFFINEANIMCMD_LOOP(7),
+ AFFINEANIMCMD_JUMP(0)
+};
+
+const union AffineAnimCmd gMapObjectRotScalAnim_8370ED4[] = {
+ AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 1),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1),
+ AFFINEANIMCMD_LOOP(15),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 1),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1),
+ AFFINEANIMCMD_LOOP(15),
+ AFFINEANIMCMD_JUMP(0)
+};
+
+const union AnimCmd *const gMapObjectImageAnimTable_Inanimate[] = {
+ gMapObjectImageAnim_83708C8
+};
+
+const union AnimCmd *const gMapObjectImageAnimTable_QuintyPlump[] = {
+ gMapObjectImageAnim_83708DC,
+ gMapObjectImageAnim_83708E4,
+ gMapObjectImageAnim_83708EC,
+ gMapObjectImageAnim_83708F4,
+ gMapObjectImageAnim_83708FC,
+ gMapObjectImageAnim_8370910,
+ gMapObjectImageAnim_8370924,
+ gMapObjectImageAnim_8370938,
+ gMapObjectImageAnim_837094C,
+ gMapObjectImageAnim_8370960,
+ gMapObjectImageAnim_8370974,
+ gMapObjectImageAnim_8370988,
+ gMapObjectImageAnim_837099C,
+ gMapObjectImageAnim_83709B0,
+ gMapObjectImageAnim_83709C4,
+ gMapObjectImageAnim_83709D8,
+ gMapObjectImageAnim_83709EC,
+ gMapObjectImageAnim_8370A00,
+ gMapObjectImageAnim_8370A14,
+ gMapObjectImageAnim_8370A28
+};
+
+const union AnimCmd *const gMapObjectImageAnimTable_Standard[] = {
+ gMapObjectImageAnim_8370A3C,
+ gMapObjectImageAnim_8370A44,
+ gMapObjectImageAnim_8370A4C,
+ gMapObjectImageAnim_8370A54,
+ gMapObjectImageAnim_8370A5C,
+ gMapObjectImageAnim_8370A70,
+ gMapObjectImageAnim_8370A84,
+ gMapObjectImageAnim_8370A98,
+ gMapObjectImageAnim_8370AAC,
+ gMapObjectImageAnim_8370AC0,
+ gMapObjectImageAnim_8370AD4,
+ gMapObjectImageAnim_8370AE8,
+ gMapObjectImageAnim_8370AFC,
+ gMapObjectImageAnim_8370B10,
+ gMapObjectImageAnim_8370B24,
+ gMapObjectImageAnim_8370B38,
+ gMapObjectImageAnim_8370B4C,
+ gMapObjectImageAnim_8370B60,
+ gMapObjectImageAnim_8370B74,
+ gMapObjectImageAnim_8370B88
+};
+
+const union AnimCmd *const gMapObjectImageAnimTable_BrendanMayNormal[] = {
+ gMapObjectImageAnim_8370A3C,
+ gMapObjectImageAnim_8370A44,
+ gMapObjectImageAnim_8370A4C,
+ gMapObjectImageAnim_8370A54,
+ gMapObjectImageAnim_8370A5C,
+ gMapObjectImageAnim_8370A70,
+ gMapObjectImageAnim_8370A84,
+ gMapObjectImageAnim_8370A98,
+ gMapObjectImageAnim_8370AAC,
+ gMapObjectImageAnim_8370AC0,
+ gMapObjectImageAnim_8370AD4,
+ gMapObjectImageAnim_8370AE8,
+ gMapObjectImageAnim_8370AFC,
+ gMapObjectImageAnim_8370B10,
+ gMapObjectImageAnim_8370B24,
+ gMapObjectImageAnim_8370B38,
+ gMapObjectImageAnim_8370B4C,
+ gMapObjectImageAnim_8370B60,
+ gMapObjectImageAnim_8370B74,
+ gMapObjectImageAnim_8370B88,
+ gMapObjectImageAnim_8370B9C,
+ gMapObjectImageAnim_8370BB0,
+ gMapObjectImageAnim_8370BC4,
+ gMapObjectImageAnim_8370BD8
+};
+
+const union AnimCmd *const gMapObjectImageAnimTable_AcroBike[] = {
+ gMapObjectImageAnim_8370A3C,
+ gMapObjectImageAnim_8370A44,
+ gMapObjectImageAnim_8370A4C,
+ gMapObjectImageAnim_8370A54,
+ gMapObjectImageAnim_8370A5C,
+ gMapObjectImageAnim_8370A70,
+ gMapObjectImageAnim_8370A84,
+ gMapObjectImageAnim_8370A98,
+ gMapObjectImageAnim_8370AAC,
+ gMapObjectImageAnim_8370AC0,
+ gMapObjectImageAnim_8370AD4,
+ gMapObjectImageAnim_8370AE8,
+ gMapObjectImageAnim_8370AFC,
+ gMapObjectImageAnim_8370B10,
+ gMapObjectImageAnim_8370B24,
+ gMapObjectImageAnim_8370B38,
+ gMapObjectImageAnim_8370B4C,
+ gMapObjectImageAnim_8370B60,
+ gMapObjectImageAnim_8370B74,
+ gMapObjectImageAnim_8370B88,
+ gMapObjectImageAnim_8370C24,
+ gMapObjectImageAnim_8370C30,
+ gMapObjectImageAnim_8370C3C,
+ gMapObjectImageAnim_8370C48,
+ gMapObjectImageAnim_8370C54,
+ gMapObjectImageAnim_8370C60,
+ gMapObjectImageAnim_8370C6C,
+ gMapObjectImageAnim_8370C78,
+ gMapObjectImageAnim_8370C84,
+ gMapObjectImageAnim_8370C90,
+ gMapObjectImageAnim_8370C9C,
+ gMapObjectImageAnim_8370CA8,
+ gMapObjectImageAnim_8370CB4,
+ gMapObjectImageAnim_8370CC0,
+ gMapObjectImageAnim_8370CCC,
+ gMapObjectImageAnim_8370CD8,
+ gMapObjectImageAnim_8370CE4,
+ gMapObjectImageAnim_8370CF8,
+ gMapObjectImageAnim_8370D0C,
+ gMapObjectImageAnim_8370D20
+};
+
+const union AnimCmd *const gMapObjectImageAnimTable_Surfing[] = {
+ gMapObjectImageAnim_8370A3C,
+ gMapObjectImageAnim_8370A44,
+ gMapObjectImageAnim_8370A4C,
+ gMapObjectImageAnim_8370A54,
+ gMapObjectImageAnim_8370A5C,
+ gMapObjectImageAnim_8370A70,
+ gMapObjectImageAnim_8370A84,
+ gMapObjectImageAnim_8370A98,
+ gMapObjectImageAnim_8370AAC,
+ gMapObjectImageAnim_8370AC0,
+ gMapObjectImageAnim_8370AD4,
+ gMapObjectImageAnim_8370AE8,
+ gMapObjectImageAnim_8370AFC,
+ gMapObjectImageAnim_8370B10,
+ gMapObjectImageAnim_8370B24,
+ gMapObjectImageAnim_8370B38,
+ gMapObjectImageAnim_8370B4C,
+ gMapObjectImageAnim_8370B60,
+ gMapObjectImageAnim_8370B74,
+ gMapObjectImageAnim_8370B88,
+ gMapObjectImageAnim_8370C04,
+ gMapObjectImageAnim_8370C0C,
+ gMapObjectImageAnim_8370C14,
+ gMapObjectImageAnim_8370C1C
+};
+
+const union AnimCmd *const gMapObjectImageAnimTable_Nurse[] = {
+ gMapObjectImageAnim_8370A3C,
+ gMapObjectImageAnim_8370A44,
+ gMapObjectImageAnim_8370A4C,
+ gMapObjectImageAnim_8370A54,
+ gMapObjectImageAnim_8370A5C,
+ gMapObjectImageAnim_8370A70,
+ gMapObjectImageAnim_8370A84,
+ gMapObjectImageAnim_8370A98,
+ gMapObjectImageAnim_8370AAC,
+ gMapObjectImageAnim_8370AC0,
+ gMapObjectImageAnim_8370AD4,
+ gMapObjectImageAnim_8370AE8,
+ gMapObjectImageAnim_8370AFC,
+ gMapObjectImageAnim_8370B10,
+ gMapObjectImageAnim_8370B24,
+ gMapObjectImageAnim_8370B38,
+ gMapObjectImageAnim_8370B4C,
+ gMapObjectImageAnim_8370B60,
+ gMapObjectImageAnim_8370B74,
+ gMapObjectImageAnim_8370B88,
+ gMapObjectImageAnim_8370D7C
+};
+
+const union AnimCmd *const gMapObjectImageAnimTable_FieldMove[] = {
+ gMapObjectImageAnim_8370BEC
+};
+
+const union AnimCmd *const gMapObjectImageAnimTable_BerryTree[] = {
+ gMapObjectImageAnim_8370D34,
+ gMapObjectImageAnim_8370D3C,
+ gMapObjectImageAnim_8370D48,
+ gMapObjectImageAnim_8370D54,
+ gMapObjectImageAnim_8370D68
+};
+
+const union AnimCmd *const gMapObjectImageAnimTable_BreakableRock[] = {
+ gMapObjectImageAnim_83708C8,
+ gMapObjectImageAnim_8370D8C
+};
+
+const union AnimCmd *const gMapObjectImageAnimTable_CuttableTree[] = {
+ gMapObjectImageAnim_83708C8,
+ gMapObjectImageAnim_8370DA0
+};
+
+const union AnimCmd *const gMapObjectImageAnimTable_Fishing[] = {
+ gMapObjectImageAnim_8370DB4,
+ gMapObjectImageAnim_8370DC8,
+ gMapObjectImageAnim_8370DDC,
+ gMapObjectImageAnim_8370DF0,
+ gMapObjectImageAnim_8370E04,
+ gMapObjectImageAnim_8370E18,
+ gMapObjectImageAnim_8370E2C,
+ gMapObjectImageAnim_8370E40,
+ gMapObjectImageAnim_8370E54,
+ gMapObjectImageAnim_8370E68,
+ gMapObjectImageAnim_8370E7C,
+ gMapObjectImageAnim_8370E90
+};
+
+const union AffineAnimCmd *const gMapObjectRotScalAnimTable_KyogreGroudon[] = {
+ gMapObjectRotScalAnim_8370EA4,
+ gMapObjectRotScalAnim_8370ED4
+};
+
+#endif //POKERUBY_MAP_OBJECT_ANIMS_H
diff --git a/include/data/field_map_obj/map_object_graphics_info.h b/include/data/field_map_obj/map_object_graphics_info.h
new file mode 100755
index 000000000..818c5b90c
--- /dev/null
+++ b/include/data/field_map_obj/map_object_graphics_info.h
@@ -0,0 +1,227 @@
+//
+// Created by scott on 6/17/2017.
+//
+
+#ifndef POKERUBY_MAP_OBJECT_GRAPHICS_INFO_H
+#define POKERUBY_MAP_OBJECT_GRAPHICS_INFO_H
+
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanNormal = {0xffff, 0x1100, 0x1102, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanMachBike = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BrendanMachBike, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanAcroBike = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanSurfing = {0xffff, 0x1100, 0x11ff, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Surfing, gMapObjectPicTable_BrendanSurfing, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanFieldMove = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_FieldMove, gMapObjectPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_QuintyPlump = {0xffff, 0x110b, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_L, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_QuintyPlump, gMapObjectPicTable_QuintyPlump, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy1 = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleBoy1, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleGirl1 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleGirl1, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy1 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy1, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl1 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Girl1, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy2 = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy2, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl2 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Girl2, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy2 = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleBoy2, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleGirl2 = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleGirl2, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy3 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy3, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl3 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Girl3, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy4 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy4, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman1 = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman1, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_FatMan = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_FatMan, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman2 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman2, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man1 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man1, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman3 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman3, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldMan1 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_OldMan1, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldWoman1 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_OldWoman1, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man2 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man2, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman4 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman4, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man3 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man3, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman5 = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman5, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Cook = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Cook, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman6 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman6, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldMan2 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_OldMan2, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldWoman2 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_OldWoman2, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Camper = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Camper, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Picnicker = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Picnicker, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man4 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man4, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman7 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman7, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Youngster = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Youngster, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BugCatcher = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BugCatcher, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PsychicM = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_PsychicM, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SchoolKidM = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SchoolKidM, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Maniac = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Maniac, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_HexManiac = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_HexManiac, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman8 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman8, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwimmerM = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SwimmerM, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwimmerF = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SwimmerF, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BlackBelt = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BlackBelt, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Beauty = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Beauty, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Scientist1 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Scientist1, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Lass = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Lass, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Gentleman = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Gentleman, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Sailor = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Sailor, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Fisherman = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Fisherman, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RunningTriathleteM = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_RunningTriathleteM, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RunningTriathleteF = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_RunningTriathleteF, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberF = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_TuberF, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberM = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_TuberM, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Hiker = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Hiker, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyclingTriathleteM = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_CyclingTriathleteM, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyclingTriathleteF = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_CyclingTriathleteF, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Nurse = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Nurse, gMapObjectPicTable_Nurse, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ItemBall = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_ItemBall, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTree = {0xffff, 0x1103, 0x11ff, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, NULL, gMapObjectImageAnimTable_BerryTree, gMapObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTreeEarlyStages = {0xffff, 0x1103, 0x11ff, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_BerryTree, gMapObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTreeLateStages = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BerryTree, gMapObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ProfBirch = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_ProfBirch, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man5 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man5, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man6 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man6, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ReporterM = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_ReporterM, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ReporterF = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_ReporterF, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Bard = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Hipster = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Trader = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Storyteller = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Giddy = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMauvilleOldMan1 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMauvilleOldMan2 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedNatuDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedNatuDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMagnemiteDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedMagnemiteDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedSquirtleDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedSquirtleDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedWooperDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedWooperDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedPikachuDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedPikachuDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedPorygon2Doll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedPorygon2Doll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CuttableTree = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_CuttableTree, gMapObjectPicTable_CuttableTree, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MartEmployee = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MartEmployee, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RooftopSaleWoman = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_RooftopSaleWoman, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Teala = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Teala, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BreakableRock = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_BreakableRock, gMapObjectPicTable_BreakableRock, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PushableBoulder = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_PushableBoulder, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MrBrineysBoat = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MrBrineysBoat, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayNormal = {0xffff, 0x1110, 0x1102, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_MayNormal, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayMachBike = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MayMachBike, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayAcroBike = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_MayAcroBike, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MaySurfing = {0xffff, 0x1110, 0x11ff, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Surfing, gMapObjectPicTable_MaySurfing, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayFieldMove = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_FieldMove, gMapObjectPicTable_MayFieldMove, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Truck = {0xffff, 0x110d, 0x11ff, 1152, 48, 48, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_Truck, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_Truck, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MachokeCarryingBox = {0xffff, 0x110e, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MachokeCarryingBox, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MachokeFacingAway = {0xffff, 0x110e, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MachokeFacingAway, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BirchsBag = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BirchsBag, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Poochyena = {0xffff, 0x110f, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Poochyena, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Artist = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Artist, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanNormal = {0xffff, 0x1100, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanMachBike = {0xffff, 0x1100, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BrendanMachBike, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanAcroBike = {0xffff, 0x1100, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanSurfing = {0xffff, 0x1100, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Surfing, gMapObjectPicTable_BrendanSurfing, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanFieldMove = {0xffff, 0x1100, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_FieldMove, gMapObjectPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayNormal = {0xffff, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_MayNormal, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayMachBike = {0xffff, 0x1110, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MayMachBike, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayAcroBike = {0xffff, 0x1110, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_MayAcroBike, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMaySurfing = {0xffff, 0x1110, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Surfing, gMapObjectPicTable_MaySurfing, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayFieldMove = {0xffff, 0x1110, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_FieldMove, gMapObjectPicTable_MayFieldMove, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Cameraman = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Cameraman, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanUnderwater = {0xffff, 0x1115, 0x11ff, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BrendanUnderwater, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayUnderwater = {0xffff, 0x1115, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MayUnderwater, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MovingBox = {0xffff, 0x1112, 0x11ff, 128, 16, 16, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MovingBox, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CableCar = {0xffff, 0x1113, 0x11ff, 2048, 64, 64, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_64x64, gMapObjectSubspriteTables_CableCar, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_CableCar, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Scientist2 = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Scientist2, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man7 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man7, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AquaMemberM = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_AquaMemberM, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AquaMemberF = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_AquaMemberF, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MagmaMemberM = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MagmaMemberM, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MagmaMemberF = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MagmaMemberF, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Sidney = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Sidney, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Phoebe = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Phoebe, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Glacia = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Glacia, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Drake = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Drake, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Roxanne = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Roxanne, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Brawly = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Brawly, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wattson = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Wattson, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Flannery = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Flannery, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Norman = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Norman, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Winona = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Winona, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Liza = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Liza, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Tate = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Tate, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wallace = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Wallace, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Steven = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Steven, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wally = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Wally, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy3 = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleBoy3, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanFishing = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Fishing, gMapObjectPicTable_BrendanFishing, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayFishing = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Fishing, gMapObjectPicTable_MayFishing, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_HotSpringsOldWoman = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_HotSpringsOldWoman, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SSTidal = {0xffff, 0x1114, 0x11ff, 1920, 96, 40, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_8x8, gMapObjectSubspriteTables_SSTidal, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SSTidal, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SubmarineShadow = {0xffff, 0x111a, 0x11ff, 1408, 88, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_8x8, gMapObjectSubspriteTables_SubmarineShadow, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SubmarineShadow, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PichuDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_PichuDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PikachuDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_PikachuDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MarillDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MarillDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TogepiDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_TogepiDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyndaquilDoll = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_CyndaquilDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ChikoritaDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_ChikoritaDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TotodileDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_TotodileDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_JigglypuffDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_JigglypuffDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MeowthDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MeowthDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ClefairyDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_ClefairyDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DittoDoll = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_DittoDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SmoochumDoll = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SmoochumDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TreeckoDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_TreeckoDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TorchicDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_TorchicDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MudkipDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MudkipDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DuskullDoll = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_DuskullDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_WynautDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_WynautDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BaltoyDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BaltoyDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_KecleonDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_KecleonDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AzurillDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_AzurillDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SkittyDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SkittyDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwabluDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SwabluDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_GulpinDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_GulpinDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LotadDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_LotadDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SeedotDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SeedotDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PikaCushion = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_PikaCushion, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RoundCushion = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_RoundCushion, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_KissCushion = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_KissCushion, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ZigzagCushion = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_ZigzagCushion, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SpinCushion = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SpinCushion, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DiamondCushion = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_DiamondCushion, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BallCushion = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BallCushion, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_GrassCushion = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_GrassCushion, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_FireCushion = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_FireCushion, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_WaterCushion = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_WaterCushion, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigSnorlaxDoll = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigSnorlaxDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRhydonDoll = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigRhydonDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigLaprasDoll = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigLaprasDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigVenusaurDoll = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigVenusaurDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigCharizardDoll = {0xffff, 0x1104, 0x11ff, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigCharizardDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigBlastoiseDoll = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigBlastoiseDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigWailmerDoll = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigWailmerDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegirockDoll = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigRegirockDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegiceDoll = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigRegiceDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegisteelDoll = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigRegisteelDoll, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Latias = {0xffff, 0x1104, 0x11ff, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LatiasLatios, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Latios = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LatiasLatios, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy5 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy5, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ContestJudge = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_ContestJudge, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanWatering = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BrendanWatering, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayWatering = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MayWatering, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanDecorating = {0xffff, 0x1100, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BrendanDecorating, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayDecorating = {0xffff, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MayDecorating, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Archie = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Archie, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Maxie = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Maxie, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kyogre1 = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Kyogre, gMapObjectRotScalAnimTable_KyogreGroudon};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Groudon1 = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Groudon, gMapObjectRotScalAnimTable_KyogreGroudon};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Fossil = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_Fossil, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Regirock = {0xffff, 0x1104, 0x11ff, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Regi, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Regice = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Regi, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Registeel = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Regi, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Skitty = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Skitty, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kecleon1 = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Kecleon, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kyogre2 = {0xffff, 0x1116, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Kyogre, gMapObjectRotScalAnimTable_KyogreGroudon};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Groudon2 = {0xffff, 0x1118, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Groudon, gMapObjectRotScalAnimTable_KyogreGroudon};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Rayquaza = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Rayquaza, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Zigzagoon = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Zigzagoon, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Pikachu = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Pikachu, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Azumarill = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Azumarill, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wingull = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Wingull, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kecleon2 = {0xffff, 0x1105, 0x1102, 128, 16, 16, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Kecleon, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberMSwimming = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_TuberMSwimming, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Azurill = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Azurill, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Mom = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Mom, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LinkBrendan = {0xffff, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LinkMay = {0xffff, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_MayNormal, gDummySpriteAffineAnimTable};
+
+#endif //POKERUBY_MAP_OBJECT_GRAPHICS_INFO_H
diff --git a/include/data/field_map_obj/map_object_graphics_info_pointers.h b/include/data/field_map_obj/map_object_graphics_info_pointers.h
new file mode 100755
index 000000000..c36827709
--- /dev/null
+++ b/include/data/field_map_obj/map_object_graphics_info_pointers.h
@@ -0,0 +1,448 @@
+//
+// Created by scott on 6/17/2017.
+//
+
+#ifndef POKERUBY_MAP_OBJECT_GRAPHICS_INFO_POINTERS_H
+#define POKERUBY_MAP_OBJECT_GRAPHICS_INFO_POINTERS_H
+
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanNormal;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanMachBike;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanSurfing;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanFieldMove;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_QuintyPlump;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy1;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleGirl1;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy1;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl1;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy2;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl2;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy2;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleGirl2;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy3;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl3;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy4;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman1;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_FatMan;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman2;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man1;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman3;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldMan1;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldWoman1;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man2;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman4;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man3;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman5;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Cook;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman6;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldMan2;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldWoman2;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Camper;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Picnicker;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man4;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman7;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Youngster;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BugCatcher;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PsychicM;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SchoolKidM;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Maniac;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_HexManiac;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman8;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwimmerM;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwimmerF;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BlackBelt;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Beauty;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Scientist1;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Lass;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Gentleman;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Sailor;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Fisherman;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RunningTriathleteM;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RunningTriathleteF;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberF;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberM;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Hiker;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyclingTriathleteM;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyclingTriathleteF;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Nurse;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ItemBall;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTree;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTreeEarlyStages;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTreeLateStages;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanAcroBike;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ProfBirch;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man5;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man6;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ReporterM;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ReporterF;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Bard;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Hipster;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Trader;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Storyteller;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Giddy;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMauvilleOldMan1;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMauvilleOldMan2;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedNatuDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMagnemiteDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedSquirtleDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedWooperDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedPikachuDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedPorygon2Doll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CuttableTree;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MartEmployee;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RooftopSaleWoman;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Teala;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BreakableRock;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PushableBoulder;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MrBrineysBoat;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayNormal;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayMachBike;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayAcroBike;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MaySurfing;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayFieldMove;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Truck;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MachokeCarryingBox;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MachokeFacingAway;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BirchsBag;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Poochyena;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Artist;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanNormal;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanMachBike;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanAcroBike;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanSurfing;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanFieldMove;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayNormal;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayMachBike;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayAcroBike;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMaySurfing;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayFieldMove;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Cameraman;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanUnderwater;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayUnderwater;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MovingBox;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CableCar;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Scientist2;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man7;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AquaMemberM;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AquaMemberF;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MagmaMemberM;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MagmaMemberF;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Sidney;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Phoebe;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Glacia;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Drake;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Roxanne;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Brawly;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wattson;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Flannery;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Norman;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Winona;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Liza;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Tate;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wallace;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Steven;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wally;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy3;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanFishing;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayFishing;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_HotSpringsOldWoman;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SSTidal;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SubmarineShadow;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PichuDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PikachuDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MarillDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TogepiDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyndaquilDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ChikoritaDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TotodileDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_JigglypuffDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MeowthDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ClefairyDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DittoDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SmoochumDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TreeckoDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TorchicDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MudkipDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DuskullDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_WynautDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BaltoyDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_KecleonDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AzurillDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SkittyDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwabluDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_GulpinDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LotadDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SeedotDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PikaCushion;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RoundCushion;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_KissCushion;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ZigzagCushion;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SpinCushion;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DiamondCushion;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BallCushion;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_GrassCushion;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_FireCushion;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_WaterCushion;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigSnorlaxDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRhydonDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigLaprasDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigVenusaurDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigCharizardDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigBlastoiseDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigWailmerDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegirockDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegiceDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegisteelDoll;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Latias;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Latios;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy5;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ContestJudge;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanWatering;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayWatering;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanDecorating;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayDecorating;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Archie;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Maxie;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kyogre1;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Groudon1;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Fossil;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Regirock;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Regice;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Registeel;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Skitty;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kecleon1;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kyogre2;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Groudon2;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Rayquaza;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Zigzagoon;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Pikachu;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Azumarill;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wingull;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kecleon2;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberMSwimming;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Azurill;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Mom;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LinkBrendan;
+const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LinkMay;
+
+const struct MapObjectGraphicsInfo *const gMapObjectGraphicsInfoPointers[] = {
+ &gMapObjectGraphicsInfo_BrendanNormal,
+ &gMapObjectGraphicsInfo_BrendanMachBike,
+ &gMapObjectGraphicsInfo_BrendanSurfing,
+ &gMapObjectGraphicsInfo_BrendanFieldMove,
+ &gMapObjectGraphicsInfo_QuintyPlump,
+ &gMapObjectGraphicsInfo_LittleBoy1,
+ &gMapObjectGraphicsInfo_LittleGirl1,
+ &gMapObjectGraphicsInfo_Boy1,
+ &gMapObjectGraphicsInfo_Girl1,
+ &gMapObjectGraphicsInfo_Boy2,
+ &gMapObjectGraphicsInfo_Girl2,
+ &gMapObjectGraphicsInfo_LittleBoy2,
+ &gMapObjectGraphicsInfo_LittleGirl2,
+ &gMapObjectGraphicsInfo_Boy3,
+ &gMapObjectGraphicsInfo_Girl3,
+ &gMapObjectGraphicsInfo_Boy4,
+ &gMapObjectGraphicsInfo_Woman1,
+ &gMapObjectGraphicsInfo_FatMan,
+ &gMapObjectGraphicsInfo_Woman2,
+ &gMapObjectGraphicsInfo_Man1,
+ &gMapObjectGraphicsInfo_Woman3,
+ &gMapObjectGraphicsInfo_OldMan1,
+ &gMapObjectGraphicsInfo_OldWoman1,
+ &gMapObjectGraphicsInfo_Man2,
+ &gMapObjectGraphicsInfo_Woman4,
+ &gMapObjectGraphicsInfo_Man3,
+ &gMapObjectGraphicsInfo_Woman5,
+ &gMapObjectGraphicsInfo_Cook,
+ &gMapObjectGraphicsInfo_Woman6,
+ &gMapObjectGraphicsInfo_OldMan2,
+ &gMapObjectGraphicsInfo_OldWoman2,
+ &gMapObjectGraphicsInfo_Camper,
+ &gMapObjectGraphicsInfo_Picnicker,
+ &gMapObjectGraphicsInfo_Man4,
+ &gMapObjectGraphicsInfo_Woman7,
+ &gMapObjectGraphicsInfo_Youngster,
+ &gMapObjectGraphicsInfo_BugCatcher,
+ &gMapObjectGraphicsInfo_PsychicM,
+ &gMapObjectGraphicsInfo_SchoolKidM,
+ &gMapObjectGraphicsInfo_Maniac,
+ &gMapObjectGraphicsInfo_HexManiac,
+ &gMapObjectGraphicsInfo_Woman8,
+ &gMapObjectGraphicsInfo_SwimmerM,
+ &gMapObjectGraphicsInfo_SwimmerF,
+ &gMapObjectGraphicsInfo_BlackBelt,
+ &gMapObjectGraphicsInfo_Beauty,
+ &gMapObjectGraphicsInfo_Scientist1,
+ &gMapObjectGraphicsInfo_Lass,
+ &gMapObjectGraphicsInfo_Gentleman,
+ &gMapObjectGraphicsInfo_Sailor,
+ &gMapObjectGraphicsInfo_Fisherman,
+ &gMapObjectGraphicsInfo_RunningTriathleteM,
+ &gMapObjectGraphicsInfo_RunningTriathleteF,
+ &gMapObjectGraphicsInfo_TuberF,
+ &gMapObjectGraphicsInfo_TuberM,
+ &gMapObjectGraphicsInfo_Hiker,
+ &gMapObjectGraphicsInfo_CyclingTriathleteM,
+ &gMapObjectGraphicsInfo_CyclingTriathleteF,
+ &gMapObjectGraphicsInfo_Nurse,
+ &gMapObjectGraphicsInfo_ItemBall,
+ &gMapObjectGraphicsInfo_BerryTree,
+ &gMapObjectGraphicsInfo_BerryTreeEarlyStages,
+ &gMapObjectGraphicsInfo_BerryTreeLateStages,
+ &gMapObjectGraphicsInfo_BrendanAcroBike,
+ &gMapObjectGraphicsInfo_ProfBirch,
+ &gMapObjectGraphicsInfo_Man5,
+ &gMapObjectGraphicsInfo_Man6,
+ &gMapObjectGraphicsInfo_ReporterM,
+ &gMapObjectGraphicsInfo_ReporterF,
+ &gMapObjectGraphicsInfo_Bard,
+ &gMapObjectGraphicsInfo_Hipster,
+ &gMapObjectGraphicsInfo_Trader,
+ &gMapObjectGraphicsInfo_Storyteller,
+ &gMapObjectGraphicsInfo_Giddy,
+ &gMapObjectGraphicsInfo_UnusedMauvilleOldMan1,
+ &gMapObjectGraphicsInfo_UnusedMauvilleOldMan2,
+ &gMapObjectGraphicsInfo_UnusedNatuDoll,
+ &gMapObjectGraphicsInfo_UnusedMagnemiteDoll,
+ &gMapObjectGraphicsInfo_UnusedSquirtleDoll,
+ &gMapObjectGraphicsInfo_UnusedWooperDoll,
+ &gMapObjectGraphicsInfo_UnusedPikachuDoll,
+ &gMapObjectGraphicsInfo_UnusedPorygon2Doll,
+ &gMapObjectGraphicsInfo_CuttableTree,
+ &gMapObjectGraphicsInfo_MartEmployee,
+ &gMapObjectGraphicsInfo_RooftopSaleWoman,
+ &gMapObjectGraphicsInfo_Teala,
+ &gMapObjectGraphicsInfo_BreakableRock,
+ &gMapObjectGraphicsInfo_PushableBoulder,
+ &gMapObjectGraphicsInfo_MrBrineysBoat,
+ &gMapObjectGraphicsInfo_MayNormal,
+ &gMapObjectGraphicsInfo_MayMachBike,
+ &gMapObjectGraphicsInfo_MayAcroBike,
+ &gMapObjectGraphicsInfo_MaySurfing,
+ &gMapObjectGraphicsInfo_MayFieldMove,
+ &gMapObjectGraphicsInfo_Truck,
+ &gMapObjectGraphicsInfo_MachokeCarryingBox,
+ &gMapObjectGraphicsInfo_MachokeFacingAway,
+ &gMapObjectGraphicsInfo_BirchsBag,
+ &gMapObjectGraphicsInfo_Poochyena,
+ &gMapObjectGraphicsInfo_Artist,
+ &gMapObjectGraphicsInfo_RivalBrendanNormal,
+ &gMapObjectGraphicsInfo_RivalBrendanMachBike,
+ &gMapObjectGraphicsInfo_RivalBrendanAcroBike,
+ &gMapObjectGraphicsInfo_RivalBrendanSurfing,
+ &gMapObjectGraphicsInfo_RivalBrendanFieldMove,
+ &gMapObjectGraphicsInfo_RivalMayNormal,
+ &gMapObjectGraphicsInfo_RivalMayMachBike,
+ &gMapObjectGraphicsInfo_RivalMayAcroBike,
+ &gMapObjectGraphicsInfo_RivalMaySurfing,
+ &gMapObjectGraphicsInfo_RivalMayFieldMove,
+ &gMapObjectGraphicsInfo_Cameraman,
+ &gMapObjectGraphicsInfo_BrendanUnderwater,
+ &gMapObjectGraphicsInfo_MayUnderwater,
+ &gMapObjectGraphicsInfo_MovingBox,
+ &gMapObjectGraphicsInfo_CableCar,
+ &gMapObjectGraphicsInfo_Scientist2,
+ &gMapObjectGraphicsInfo_Man7,
+ &gMapObjectGraphicsInfo_AquaMemberM,
+ &gMapObjectGraphicsInfo_AquaMemberF,
+ &gMapObjectGraphicsInfo_MagmaMemberM,
+ &gMapObjectGraphicsInfo_MagmaMemberF,
+ &gMapObjectGraphicsInfo_Sidney,
+ &gMapObjectGraphicsInfo_Phoebe,
+ &gMapObjectGraphicsInfo_Glacia,
+ &gMapObjectGraphicsInfo_Drake,
+ &gMapObjectGraphicsInfo_Roxanne,
+ &gMapObjectGraphicsInfo_Brawly,
+ &gMapObjectGraphicsInfo_Wattson,
+ &gMapObjectGraphicsInfo_Flannery,
+ &gMapObjectGraphicsInfo_Norman,
+ &gMapObjectGraphicsInfo_Winona,
+ &gMapObjectGraphicsInfo_Liza,
+ &gMapObjectGraphicsInfo_Tate,
+ &gMapObjectGraphicsInfo_Wallace,
+ &gMapObjectGraphicsInfo_Steven,
+ &gMapObjectGraphicsInfo_Wally,
+ &gMapObjectGraphicsInfo_LittleBoy3,
+ &gMapObjectGraphicsInfo_BrendanFishing,
+ &gMapObjectGraphicsInfo_MayFishing,
+ &gMapObjectGraphicsInfo_HotSpringsOldWoman,
+ &gMapObjectGraphicsInfo_SSTidal,
+ &gMapObjectGraphicsInfo_SubmarineShadow,
+ &gMapObjectGraphicsInfo_PichuDoll,
+ &gMapObjectGraphicsInfo_PikachuDoll,
+ &gMapObjectGraphicsInfo_MarillDoll,
+ &gMapObjectGraphicsInfo_TogepiDoll,
+ &gMapObjectGraphicsInfo_CyndaquilDoll,
+ &gMapObjectGraphicsInfo_ChikoritaDoll,
+ &gMapObjectGraphicsInfo_TotodileDoll,
+ &gMapObjectGraphicsInfo_JigglypuffDoll,
+ &gMapObjectGraphicsInfo_MeowthDoll,
+ &gMapObjectGraphicsInfo_ClefairyDoll,
+ &gMapObjectGraphicsInfo_DittoDoll,
+ &gMapObjectGraphicsInfo_SmoochumDoll,
+ &gMapObjectGraphicsInfo_TreeckoDoll,
+ &gMapObjectGraphicsInfo_TorchicDoll,
+ &gMapObjectGraphicsInfo_MudkipDoll,
+ &gMapObjectGraphicsInfo_DuskullDoll,
+ &gMapObjectGraphicsInfo_WynautDoll,
+ &gMapObjectGraphicsInfo_BaltoyDoll,
+ &gMapObjectGraphicsInfo_KecleonDoll,
+ &gMapObjectGraphicsInfo_AzurillDoll,
+ &gMapObjectGraphicsInfo_SkittyDoll,
+ &gMapObjectGraphicsInfo_SwabluDoll,
+ &gMapObjectGraphicsInfo_GulpinDoll,
+ &gMapObjectGraphicsInfo_LotadDoll,
+ &gMapObjectGraphicsInfo_SeedotDoll,
+ &gMapObjectGraphicsInfo_PikaCushion,
+ &gMapObjectGraphicsInfo_RoundCushion,
+ &gMapObjectGraphicsInfo_KissCushion,
+ &gMapObjectGraphicsInfo_ZigzagCushion,
+ &gMapObjectGraphicsInfo_SpinCushion,
+ &gMapObjectGraphicsInfo_DiamondCushion,
+ &gMapObjectGraphicsInfo_BallCushion,
+ &gMapObjectGraphicsInfo_GrassCushion,
+ &gMapObjectGraphicsInfo_FireCushion,
+ &gMapObjectGraphicsInfo_WaterCushion,
+ &gMapObjectGraphicsInfo_BigSnorlaxDoll,
+ &gMapObjectGraphicsInfo_BigRhydonDoll,
+ &gMapObjectGraphicsInfo_BigLaprasDoll,
+ &gMapObjectGraphicsInfo_BigVenusaurDoll,
+ &gMapObjectGraphicsInfo_BigCharizardDoll,
+ &gMapObjectGraphicsInfo_BigBlastoiseDoll,
+ &gMapObjectGraphicsInfo_BigWailmerDoll,
+ &gMapObjectGraphicsInfo_BigRegirockDoll,
+ &gMapObjectGraphicsInfo_BigRegiceDoll,
+ &gMapObjectGraphicsInfo_BigRegisteelDoll,
+ &gMapObjectGraphicsInfo_Latias,
+ &gMapObjectGraphicsInfo_Latios,
+ &gMapObjectGraphicsInfo_Boy5,
+ &gMapObjectGraphicsInfo_ContestJudge,
+ &gMapObjectGraphicsInfo_BrendanWatering,
+ &gMapObjectGraphicsInfo_MayWatering,
+ &gMapObjectGraphicsInfo_BrendanDecorating,
+ &gMapObjectGraphicsInfo_MayDecorating,
+ &gMapObjectGraphicsInfo_Archie,
+ &gMapObjectGraphicsInfo_Maxie,
+ &gMapObjectGraphicsInfo_Kyogre1,
+ &gMapObjectGraphicsInfo_Groudon1,
+ &gMapObjectGraphicsInfo_Fossil,
+ &gMapObjectGraphicsInfo_Regirock,
+ &gMapObjectGraphicsInfo_Regice,
+ &gMapObjectGraphicsInfo_Registeel,
+ &gMapObjectGraphicsInfo_Skitty,
+ &gMapObjectGraphicsInfo_Kecleon1,
+ &gMapObjectGraphicsInfo_Kyogre2,
+ &gMapObjectGraphicsInfo_Groudon2,
+ &gMapObjectGraphicsInfo_Rayquaza,
+ &gMapObjectGraphicsInfo_Zigzagoon,
+ &gMapObjectGraphicsInfo_Pikachu,
+ &gMapObjectGraphicsInfo_Azumarill,
+ &gMapObjectGraphicsInfo_Wingull,
+ &gMapObjectGraphicsInfo_Kecleon2,
+ &gMapObjectGraphicsInfo_TuberMSwimming,
+ &gMapObjectGraphicsInfo_Azurill,
+ &gMapObjectGraphicsInfo_Mom,
+ &gMapObjectGraphicsInfo_LinkBrendan,
+ &gMapObjectGraphicsInfo_LinkMay
+};
+
+#endif //POKERUBY_MAP_OBJECT_GRAPHICS_INFO_POINTERS_H
diff --git a/include/data/field_map_obj/map_object_pic_tables.h b/include/data/field_map_obj/map_object_pic_tables.h
new file mode 100755
index 000000000..37d579512
--- /dev/null
+++ b/include/data/field_map_obj/map_object_pic_tables.h
@@ -0,0 +1,1879 @@
+//
+// Created by scott on 6/17/2017.
+//
+
+#ifndef POKERUBY_MAP_OBJECT_PIC_TABLES_H
+#define POKERUBY_MAP_OBJECT_PIC_TABLES_H
+
+const struct SpriteFrameImage gMapObjectPicTable_BrendanNormal[] = {
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_0),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_1),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_2),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_3),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_4),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_5),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_6),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_7),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_8),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_9),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_10),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_11),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_12),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_13),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_14),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_15),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_16),
+ obj_frame_tiles(gMapObjectPic_BrendanNormal_17)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BrendanMachBike[] = {
+ obj_frame_tiles(gMapObjectPic_BrendanMachBike_0),
+ obj_frame_tiles(gMapObjectPic_BrendanMachBike_1),
+ obj_frame_tiles(gMapObjectPic_BrendanMachBike_2),
+ obj_frame_tiles(gMapObjectPic_BrendanMachBike_3),
+ obj_frame_tiles(gMapObjectPic_BrendanMachBike_4),
+ obj_frame_tiles(gMapObjectPic_BrendanMachBike_5),
+ obj_frame_tiles(gMapObjectPic_BrendanMachBike_6),
+ obj_frame_tiles(gMapObjectPic_BrendanMachBike_7),
+ obj_frame_tiles(gMapObjectPic_BrendanMachBike_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BrendanAcroBike[] = {
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_0),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_1),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_2),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_3),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_4),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_5),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_6),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_7),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_8),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_9),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_10),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_11),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_12),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_13),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_14),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_15),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_16),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_17),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_18),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_19),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_20),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_21),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_22),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_23),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_24),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_25),
+ obj_frame_tiles(gMapObjectPic_BrendanAcroBike_26)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BrendanSurfing[] = {
+ obj_frame_tiles(gMapObjectPic_BrendanSurfing_0),
+ obj_frame_tiles(gMapObjectPic_BrendanSurfing_1),
+ obj_frame_tiles(gMapObjectPic_BrendanSurfing_2),
+ obj_frame_tiles(gMapObjectPic_BrendanSurfing_0),
+ obj_frame_tiles(gMapObjectPic_BrendanSurfing_0),
+ obj_frame_tiles(gMapObjectPic_BrendanSurfing_1),
+ obj_frame_tiles(gMapObjectPic_BrendanSurfing_1),
+ obj_frame_tiles(gMapObjectPic_BrendanSurfing_2),
+ obj_frame_tiles(gMapObjectPic_BrendanSurfing_2),
+ obj_frame_tiles(gMapObjectPic_BrendanSurfing_3),
+ obj_frame_tiles(gMapObjectPic_BrendanSurfing_4),
+ obj_frame_tiles(gMapObjectPic_BrendanSurfing_5)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BrendanUnderwater[] = {
+ obj_frame_tiles(gMapObjectPic_BrendanUnderwater_0),
+ obj_frame_tiles(gMapObjectPic_BrendanUnderwater_1),
+ obj_frame_tiles(gMapObjectPic_BrendanUnderwater_2),
+ obj_frame_tiles(gMapObjectPic_BrendanUnderwater_0),
+ obj_frame_tiles(gMapObjectPic_BrendanUnderwater_0),
+ obj_frame_tiles(gMapObjectPic_BrendanUnderwater_1),
+ obj_frame_tiles(gMapObjectPic_BrendanUnderwater_1),
+ obj_frame_tiles(gMapObjectPic_BrendanUnderwater_2),
+ obj_frame_tiles(gMapObjectPic_BrendanUnderwater_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BrendanFieldMove[] = {
+ obj_frame_tiles(gMapObjectPic_BrendanFieldMove_0),
+ obj_frame_tiles(gMapObjectPic_BrendanFieldMove_1),
+ obj_frame_tiles(gMapObjectPic_BrendanFieldMove_2),
+ obj_frame_tiles(gMapObjectPic_BrendanFieldMove_3),
+ obj_frame_tiles(gMapObjectPic_BrendanFieldMove_4)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_QuintyPlump[] = {
+ obj_frame_tiles(gMapObjectPic_QuintyPlump_0),
+ obj_frame_tiles(gMapObjectPic_QuintyPlump_1),
+ obj_frame_tiles(gMapObjectPic_QuintyPlump_2),
+ obj_frame_tiles(gMapObjectPic_QuintyPlump_3),
+ obj_frame_tiles(gMapObjectPic_QuintyPlump_4),
+ obj_frame_tiles(gMapObjectPic_QuintyPlump_5),
+ obj_frame_tiles(gMapObjectPic_QuintyPlump_6)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_LittleBoy1[] = {
+ obj_frame_tiles(gMapObjectPic_LittleBoy1_0),
+ obj_frame_tiles(gMapObjectPic_LittleBoy1_1),
+ obj_frame_tiles(gMapObjectPic_LittleBoy1_2),
+ obj_frame_tiles(gMapObjectPic_LittleBoy1_3),
+ obj_frame_tiles(gMapObjectPic_LittleBoy1_4),
+ obj_frame_tiles(gMapObjectPic_LittleBoy1_5),
+ obj_frame_tiles(gMapObjectPic_LittleBoy1_6),
+ obj_frame_tiles(gMapObjectPic_LittleBoy1_7),
+ obj_frame_tiles(gMapObjectPic_LittleBoy1_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_LittleGirl1[] = {
+ obj_frame_tiles(gMapObjectPic_LittleGirl1_0),
+ obj_frame_tiles(gMapObjectPic_LittleGirl1_1),
+ obj_frame_tiles(gMapObjectPic_LittleGirl1_2),
+ obj_frame_tiles(gMapObjectPic_LittleGirl1_3),
+ obj_frame_tiles(gMapObjectPic_LittleGirl1_4),
+ obj_frame_tiles(gMapObjectPic_LittleGirl1_5),
+ obj_frame_tiles(gMapObjectPic_LittleGirl1_6),
+ obj_frame_tiles(gMapObjectPic_LittleGirl1_7),
+ obj_frame_tiles(gMapObjectPic_LittleGirl1_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Boy1[] = {
+ obj_frame_tiles(gMapObjectPic_Boy1_0),
+ obj_frame_tiles(gMapObjectPic_Boy1_1),
+ obj_frame_tiles(gMapObjectPic_Boy1_2),
+ obj_frame_tiles(gMapObjectPic_Boy1_3),
+ obj_frame_tiles(gMapObjectPic_Boy1_4),
+ obj_frame_tiles(gMapObjectPic_Boy1_5),
+ obj_frame_tiles(gMapObjectPic_Boy1_6),
+ obj_frame_tiles(gMapObjectPic_Boy1_7),
+ obj_frame_tiles(gMapObjectPic_Boy1_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Girl1[] = {
+ obj_frame_tiles(gMapObjectPic_Girl1_0),
+ obj_frame_tiles(gMapObjectPic_Girl1_1),
+ obj_frame_tiles(gMapObjectPic_Girl1_2),
+ obj_frame_tiles(gMapObjectPic_Girl1_3),
+ obj_frame_tiles(gMapObjectPic_Girl1_4),
+ obj_frame_tiles(gMapObjectPic_Girl1_5),
+ obj_frame_tiles(gMapObjectPic_Girl1_6),
+ obj_frame_tiles(gMapObjectPic_Girl1_7),
+ obj_frame_tiles(gMapObjectPic_Girl1_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Boy2[] = {
+ obj_frame_tiles(gMapObjectPic_Boy2_0),
+ obj_frame_tiles(gMapObjectPic_Boy2_1),
+ obj_frame_tiles(gMapObjectPic_Boy2_2),
+ obj_frame_tiles(gMapObjectPic_Boy2_3),
+ obj_frame_tiles(gMapObjectPic_Boy2_4),
+ obj_frame_tiles(gMapObjectPic_Boy2_5),
+ obj_frame_tiles(gMapObjectPic_Boy2_6),
+ obj_frame_tiles(gMapObjectPic_Boy2_7),
+ obj_frame_tiles(gMapObjectPic_Boy2_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Girl2[] = {
+ obj_frame_tiles(gMapObjectPic_Girl2_0),
+ obj_frame_tiles(gMapObjectPic_Girl2_1),
+ obj_frame_tiles(gMapObjectPic_Girl2_2),
+ obj_frame_tiles(gMapObjectPic_Girl2_3),
+ obj_frame_tiles(gMapObjectPic_Girl2_4),
+ obj_frame_tiles(gMapObjectPic_Girl2_5),
+ obj_frame_tiles(gMapObjectPic_Girl2_6),
+ obj_frame_tiles(gMapObjectPic_Girl2_7),
+ obj_frame_tiles(gMapObjectPic_Girl2_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_LittleBoy2[] = {
+ obj_frame_tiles(gMapObjectPic_LittleBoy2_0),
+ obj_frame_tiles(gMapObjectPic_LittleBoy2_1),
+ obj_frame_tiles(gMapObjectPic_LittleBoy2_2),
+ obj_frame_tiles(gMapObjectPic_LittleBoy2_3),
+ obj_frame_tiles(gMapObjectPic_LittleBoy2_4),
+ obj_frame_tiles(gMapObjectPic_LittleBoy2_5),
+ obj_frame_tiles(gMapObjectPic_LittleBoy2_6),
+ obj_frame_tiles(gMapObjectPic_LittleBoy2_7),
+ obj_frame_tiles(gMapObjectPic_LittleBoy2_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_LittleGirl2[] = {
+ obj_frame_tiles(gMapObjectPic_LittleGirl2_0),
+ obj_frame_tiles(gMapObjectPic_LittleGirl2_1),
+ obj_frame_tiles(gMapObjectPic_LittleGirl2_2),
+ obj_frame_tiles(gMapObjectPic_LittleGirl2_3),
+ obj_frame_tiles(gMapObjectPic_LittleGirl2_4),
+ obj_frame_tiles(gMapObjectPic_LittleGirl2_5),
+ obj_frame_tiles(gMapObjectPic_LittleGirl2_6),
+ obj_frame_tiles(gMapObjectPic_LittleGirl2_7),
+ obj_frame_tiles(gMapObjectPic_LittleGirl2_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Boy3[] = {
+ obj_frame_tiles(gMapObjectPic_Boy3_0),
+ obj_frame_tiles(gMapObjectPic_Boy3_1),
+ obj_frame_tiles(gMapObjectPic_Boy3_2),
+ obj_frame_tiles(gMapObjectPic_Boy3_3),
+ obj_frame_tiles(gMapObjectPic_Boy3_4),
+ obj_frame_tiles(gMapObjectPic_Boy3_5),
+ obj_frame_tiles(gMapObjectPic_Boy3_6),
+ obj_frame_tiles(gMapObjectPic_Boy3_7),
+ obj_frame_tiles(gMapObjectPic_Boy3_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Girl3[] = {
+ obj_frame_tiles(gMapObjectPic_Girl3_0),
+ obj_frame_tiles(gMapObjectPic_Girl3_1),
+ obj_frame_tiles(gMapObjectPic_Girl3_2),
+ obj_frame_tiles(gMapObjectPic_Girl3_3),
+ obj_frame_tiles(gMapObjectPic_Girl3_4),
+ obj_frame_tiles(gMapObjectPic_Girl3_5),
+ obj_frame_tiles(gMapObjectPic_Girl3_6),
+ obj_frame_tiles(gMapObjectPic_Girl3_7),
+ obj_frame_tiles(gMapObjectPic_Girl3_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Boy4[] = {
+ obj_frame_tiles(gMapObjectPic_Boy4_0),
+ obj_frame_tiles(gMapObjectPic_Boy4_1),
+ obj_frame_tiles(gMapObjectPic_Boy4_2),
+ obj_frame_tiles(gMapObjectPic_Boy4_3),
+ obj_frame_tiles(gMapObjectPic_Boy4_4),
+ obj_frame_tiles(gMapObjectPic_Boy4_5),
+ obj_frame_tiles(gMapObjectPic_Boy4_6),
+ obj_frame_tiles(gMapObjectPic_Boy4_7),
+ obj_frame_tiles(gMapObjectPic_Boy4_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Woman1[] = {
+ obj_frame_tiles(gMapObjectPic_Woman1_0),
+ obj_frame_tiles(gMapObjectPic_Woman1_1),
+ obj_frame_tiles(gMapObjectPic_Woman1_2),
+ obj_frame_tiles(gMapObjectPic_Woman1_3),
+ obj_frame_tiles(gMapObjectPic_Woman1_4),
+ obj_frame_tiles(gMapObjectPic_Woman1_5),
+ obj_frame_tiles(gMapObjectPic_Woman1_6),
+ obj_frame_tiles(gMapObjectPic_Woman1_7),
+ obj_frame_tiles(gMapObjectPic_Woman1_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_FatMan[] = {
+ obj_frame_tiles(gMapObjectPic_FatMan_0),
+ obj_frame_tiles(gMapObjectPic_FatMan_1),
+ obj_frame_tiles(gMapObjectPic_FatMan_2),
+ obj_frame_tiles(gMapObjectPic_FatMan_3),
+ obj_frame_tiles(gMapObjectPic_FatMan_4),
+ obj_frame_tiles(gMapObjectPic_FatMan_5),
+ obj_frame_tiles(gMapObjectPic_FatMan_6),
+ obj_frame_tiles(gMapObjectPic_FatMan_7),
+ obj_frame_tiles(gMapObjectPic_FatMan_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Woman2[] = {
+ obj_frame_tiles(gMapObjectPic_Woman2_0),
+ obj_frame_tiles(gMapObjectPic_Woman2_1),
+ obj_frame_tiles(gMapObjectPic_Woman2_2),
+ obj_frame_tiles(gMapObjectPic_Woman2_3),
+ obj_frame_tiles(gMapObjectPic_Woman2_4),
+ obj_frame_tiles(gMapObjectPic_Woman2_5),
+ obj_frame_tiles(gMapObjectPic_Woman2_6),
+ obj_frame_tiles(gMapObjectPic_Woman2_7),
+ obj_frame_tiles(gMapObjectPic_Woman2_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Man1[] = {
+ obj_frame_tiles(gMapObjectPic_Man1_0),
+ obj_frame_tiles(gMapObjectPic_Man1_1),
+ obj_frame_tiles(gMapObjectPic_Man1_2),
+ obj_frame_tiles(gMapObjectPic_Man1_3),
+ obj_frame_tiles(gMapObjectPic_Man1_4),
+ obj_frame_tiles(gMapObjectPic_Man1_5),
+ obj_frame_tiles(gMapObjectPic_Man1_6),
+ obj_frame_tiles(gMapObjectPic_Man1_7),
+ obj_frame_tiles(gMapObjectPic_Man1_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Woman3[] = {
+ obj_frame_tiles(gMapObjectPic_Woman3_0),
+ obj_frame_tiles(gMapObjectPic_Woman3_1),
+ obj_frame_tiles(gMapObjectPic_Woman3_2),
+ obj_frame_tiles(gMapObjectPic_Woman3_3),
+ obj_frame_tiles(gMapObjectPic_Woman3_4),
+ obj_frame_tiles(gMapObjectPic_Woman3_5),
+ obj_frame_tiles(gMapObjectPic_Woman3_6),
+ obj_frame_tiles(gMapObjectPic_Woman3_7),
+ obj_frame_tiles(gMapObjectPic_Woman3_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_OldMan1[] = {
+ obj_frame_tiles(gMapObjectPic_OldMan1_0),
+ obj_frame_tiles(gMapObjectPic_OldMan1_1),
+ obj_frame_tiles(gMapObjectPic_OldMan1_2),
+ obj_frame_tiles(gMapObjectPic_OldMan1_3),
+ obj_frame_tiles(gMapObjectPic_OldMan1_4),
+ obj_frame_tiles(gMapObjectPic_OldMan1_5),
+ obj_frame_tiles(gMapObjectPic_OldMan1_6),
+ obj_frame_tiles(gMapObjectPic_OldMan1_7),
+ obj_frame_tiles(gMapObjectPic_OldMan1_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_OldWoman1[] = {
+ obj_frame_tiles(gMapObjectPic_OldWoman1_0),
+ obj_frame_tiles(gMapObjectPic_OldWoman1_1),
+ obj_frame_tiles(gMapObjectPic_OldWoman1_2),
+ obj_frame_tiles(gMapObjectPic_OldWoman1_3),
+ obj_frame_tiles(gMapObjectPic_OldWoman1_4),
+ obj_frame_tiles(gMapObjectPic_OldWoman1_5),
+ obj_frame_tiles(gMapObjectPic_OldWoman1_6),
+ obj_frame_tiles(gMapObjectPic_OldWoman1_7),
+ obj_frame_tiles(gMapObjectPic_OldWoman1_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Man2[] = {
+ obj_frame_tiles(gMapObjectPic_Man2_0),
+ obj_frame_tiles(gMapObjectPic_Man2_1),
+ obj_frame_tiles(gMapObjectPic_Man2_2),
+ obj_frame_tiles(gMapObjectPic_Man2_3),
+ obj_frame_tiles(gMapObjectPic_Man2_4),
+ obj_frame_tiles(gMapObjectPic_Man2_5),
+ obj_frame_tiles(gMapObjectPic_Man2_6),
+ obj_frame_tiles(gMapObjectPic_Man2_7),
+ obj_frame_tiles(gMapObjectPic_Man2_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Woman4[] = {
+ obj_frame_tiles(gMapObjectPic_Woman4_0),
+ obj_frame_tiles(gMapObjectPic_Woman4_1),
+ obj_frame_tiles(gMapObjectPic_Woman4_2),
+ obj_frame_tiles(gMapObjectPic_Woman4_3),
+ obj_frame_tiles(gMapObjectPic_Woman4_4),
+ obj_frame_tiles(gMapObjectPic_Woman4_5),
+ obj_frame_tiles(gMapObjectPic_Woman4_6),
+ obj_frame_tiles(gMapObjectPic_Woman4_7),
+ obj_frame_tiles(gMapObjectPic_Woman4_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Man3[] = {
+ obj_frame_tiles(gMapObjectPic_Man3_0),
+ obj_frame_tiles(gMapObjectPic_Man3_1),
+ obj_frame_tiles(gMapObjectPic_Man3_2),
+ obj_frame_tiles(gMapObjectPic_Man3_3),
+ obj_frame_tiles(gMapObjectPic_Man3_4),
+ obj_frame_tiles(gMapObjectPic_Man3_5),
+ obj_frame_tiles(gMapObjectPic_Man3_6),
+ obj_frame_tiles(gMapObjectPic_Man3_7),
+ obj_frame_tiles(gMapObjectPic_Man3_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Woman5[] = {
+ obj_frame_tiles(gMapObjectPic_Woman5_0),
+ obj_frame_tiles(gMapObjectPic_Woman5_1),
+ obj_frame_tiles(gMapObjectPic_Woman5_2),
+ obj_frame_tiles(gMapObjectPic_Woman5_3),
+ obj_frame_tiles(gMapObjectPic_Woman5_4),
+ obj_frame_tiles(gMapObjectPic_Woman5_5),
+ obj_frame_tiles(gMapObjectPic_Woman5_6),
+ obj_frame_tiles(gMapObjectPic_Woman5_7),
+ obj_frame_tiles(gMapObjectPic_Woman5_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Cook[] = {
+ obj_frame_tiles(gMapObjectPic_Cook_0),
+ obj_frame_tiles(gMapObjectPic_Cook_1),
+ obj_frame_tiles(gMapObjectPic_Cook_2),
+ obj_frame_tiles(gMapObjectPic_Cook_0),
+ obj_frame_tiles(gMapObjectPic_Cook_0),
+ obj_frame_tiles(gMapObjectPic_Cook_1),
+ obj_frame_tiles(gMapObjectPic_Cook_1),
+ obj_frame_tiles(gMapObjectPic_Cook_2),
+ obj_frame_tiles(gMapObjectPic_Cook_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Woman6[] = {
+ obj_frame_tiles(gMapObjectPic_Woman6_0),
+ obj_frame_tiles(gMapObjectPic_Woman6_1),
+ obj_frame_tiles(gMapObjectPic_Woman6_2),
+ obj_frame_tiles(gMapObjectPic_Woman6_3),
+ obj_frame_tiles(gMapObjectPic_Woman6_4),
+ obj_frame_tiles(gMapObjectPic_Woman6_5),
+ obj_frame_tiles(gMapObjectPic_Woman6_6),
+ obj_frame_tiles(gMapObjectPic_Woman6_7),
+ obj_frame_tiles(gMapObjectPic_Woman6_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_OldMan2[] = {
+ obj_frame_tiles(gMapObjectPic_OldMan2_0),
+ obj_frame_tiles(gMapObjectPic_OldMan2_1),
+ obj_frame_tiles(gMapObjectPic_OldMan2_2),
+ obj_frame_tiles(gMapObjectPic_OldMan2_0),
+ obj_frame_tiles(gMapObjectPic_OldMan2_0),
+ obj_frame_tiles(gMapObjectPic_OldMan2_1),
+ obj_frame_tiles(gMapObjectPic_OldMan2_1),
+ obj_frame_tiles(gMapObjectPic_OldMan2_2),
+ obj_frame_tiles(gMapObjectPic_OldMan2_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_OldWoman2[] = {
+ obj_frame_tiles(gMapObjectPic_OldWoman2_0),
+ obj_frame_tiles(gMapObjectPic_OldWoman2_1),
+ obj_frame_tiles(gMapObjectPic_OldWoman2_2),
+ obj_frame_tiles(gMapObjectPic_OldWoman2_0),
+ obj_frame_tiles(gMapObjectPic_OldWoman2_0),
+ obj_frame_tiles(gMapObjectPic_OldWoman2_1),
+ obj_frame_tiles(gMapObjectPic_OldWoman2_1),
+ obj_frame_tiles(gMapObjectPic_OldWoman2_2),
+ obj_frame_tiles(gMapObjectPic_OldWoman2_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Camper[] = {
+ obj_frame_tiles(gMapObjectPic_Camper_0),
+ obj_frame_tiles(gMapObjectPic_Camper_1),
+ obj_frame_tiles(gMapObjectPic_Camper_2),
+ obj_frame_tiles(gMapObjectPic_Camper_3),
+ obj_frame_tiles(gMapObjectPic_Camper_4),
+ obj_frame_tiles(gMapObjectPic_Camper_5),
+ obj_frame_tiles(gMapObjectPic_Camper_6),
+ obj_frame_tiles(gMapObjectPic_Camper_7),
+ obj_frame_tiles(gMapObjectPic_Camper_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Picnicker[] = {
+ obj_frame_tiles(gMapObjectPic_Picnicker_0),
+ obj_frame_tiles(gMapObjectPic_Picnicker_1),
+ obj_frame_tiles(gMapObjectPic_Picnicker_2),
+ obj_frame_tiles(gMapObjectPic_Picnicker_3),
+ obj_frame_tiles(gMapObjectPic_Picnicker_4),
+ obj_frame_tiles(gMapObjectPic_Picnicker_5),
+ obj_frame_tiles(gMapObjectPic_Picnicker_6),
+ obj_frame_tiles(gMapObjectPic_Picnicker_7),
+ obj_frame_tiles(gMapObjectPic_Picnicker_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Man4[] = {
+ obj_frame_tiles(gMapObjectPic_Man4_0),
+ obj_frame_tiles(gMapObjectPic_Man4_1),
+ obj_frame_tiles(gMapObjectPic_Man4_2),
+ obj_frame_tiles(gMapObjectPic_Man4_3),
+ obj_frame_tiles(gMapObjectPic_Man4_4),
+ obj_frame_tiles(gMapObjectPic_Man4_5),
+ obj_frame_tiles(gMapObjectPic_Man4_6),
+ obj_frame_tiles(gMapObjectPic_Man4_7),
+ obj_frame_tiles(gMapObjectPic_Man4_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Woman7[] = {
+ obj_frame_tiles(gMapObjectPic_Woman7_0),
+ obj_frame_tiles(gMapObjectPic_Woman7_1),
+ obj_frame_tiles(gMapObjectPic_Woman7_2),
+ obj_frame_tiles(gMapObjectPic_Woman7_3),
+ obj_frame_tiles(gMapObjectPic_Woman7_4),
+ obj_frame_tiles(gMapObjectPic_Woman7_5),
+ obj_frame_tiles(gMapObjectPic_Woman7_6),
+ obj_frame_tiles(gMapObjectPic_Woman7_7),
+ obj_frame_tiles(gMapObjectPic_Woman7_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Youngster[] = {
+ obj_frame_tiles(gMapObjectPic_Youngster_0),
+ obj_frame_tiles(gMapObjectPic_Youngster_1),
+ obj_frame_tiles(gMapObjectPic_Youngster_2),
+ obj_frame_tiles(gMapObjectPic_Youngster_3),
+ obj_frame_tiles(gMapObjectPic_Youngster_4),
+ obj_frame_tiles(gMapObjectPic_Youngster_5),
+ obj_frame_tiles(gMapObjectPic_Youngster_6),
+ obj_frame_tiles(gMapObjectPic_Youngster_7),
+ obj_frame_tiles(gMapObjectPic_Youngster_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BugCatcher[] = {
+ obj_frame_tiles(gMapObjectPic_BugCatcher_0),
+ obj_frame_tiles(gMapObjectPic_BugCatcher_1),
+ obj_frame_tiles(gMapObjectPic_BugCatcher_2),
+ obj_frame_tiles(gMapObjectPic_BugCatcher_3),
+ obj_frame_tiles(gMapObjectPic_BugCatcher_4),
+ obj_frame_tiles(gMapObjectPic_BugCatcher_5),
+ obj_frame_tiles(gMapObjectPic_BugCatcher_6),
+ obj_frame_tiles(gMapObjectPic_BugCatcher_7),
+ obj_frame_tiles(gMapObjectPic_BugCatcher_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_PsychicM[] = {
+ obj_frame_tiles(gMapObjectPic_PsychicM_0),
+ obj_frame_tiles(gMapObjectPic_PsychicM_1),
+ obj_frame_tiles(gMapObjectPic_PsychicM_2),
+ obj_frame_tiles(gMapObjectPic_PsychicM_3),
+ obj_frame_tiles(gMapObjectPic_PsychicM_4),
+ obj_frame_tiles(gMapObjectPic_PsychicM_5),
+ obj_frame_tiles(gMapObjectPic_PsychicM_6),
+ obj_frame_tiles(gMapObjectPic_PsychicM_7),
+ obj_frame_tiles(gMapObjectPic_PsychicM_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_SchoolKidM[] = {
+ obj_frame_tiles(gMapObjectPic_SchoolKidM_0),
+ obj_frame_tiles(gMapObjectPic_SchoolKidM_1),
+ obj_frame_tiles(gMapObjectPic_SchoolKidM_2),
+ obj_frame_tiles(gMapObjectPic_SchoolKidM_3),
+ obj_frame_tiles(gMapObjectPic_SchoolKidM_4),
+ obj_frame_tiles(gMapObjectPic_SchoolKidM_5),
+ obj_frame_tiles(gMapObjectPic_SchoolKidM_6),
+ obj_frame_tiles(gMapObjectPic_SchoolKidM_7),
+ obj_frame_tiles(gMapObjectPic_SchoolKidM_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Maniac[] = {
+ obj_frame_tiles(gMapObjectPic_Maniac_0),
+ obj_frame_tiles(gMapObjectPic_Maniac_1),
+ obj_frame_tiles(gMapObjectPic_Maniac_2),
+ obj_frame_tiles(gMapObjectPic_Maniac_3),
+ obj_frame_tiles(gMapObjectPic_Maniac_4),
+ obj_frame_tiles(gMapObjectPic_Maniac_5),
+ obj_frame_tiles(gMapObjectPic_Maniac_6),
+ obj_frame_tiles(gMapObjectPic_Maniac_7),
+ obj_frame_tiles(gMapObjectPic_Maniac_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_HexManiac[] = {
+ obj_frame_tiles(gMapObjectPic_HexManiac_0),
+ obj_frame_tiles(gMapObjectPic_HexManiac_1),
+ obj_frame_tiles(gMapObjectPic_HexManiac_2),
+ obj_frame_tiles(gMapObjectPic_HexManiac_3),
+ obj_frame_tiles(gMapObjectPic_HexManiac_4),
+ obj_frame_tiles(gMapObjectPic_HexManiac_5),
+ obj_frame_tiles(gMapObjectPic_HexManiac_6),
+ obj_frame_tiles(gMapObjectPic_HexManiac_7),
+ obj_frame_tiles(gMapObjectPic_HexManiac_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Woman8[] = {
+ obj_frame_tiles(gMapObjectPic_Woman8_0),
+ obj_frame_tiles(gMapObjectPic_Woman8_1),
+ obj_frame_tiles(gMapObjectPic_Woman8_2),
+ obj_frame_tiles(gMapObjectPic_Woman8_3),
+ obj_frame_tiles(gMapObjectPic_Woman8_4),
+ obj_frame_tiles(gMapObjectPic_Woman8_5),
+ obj_frame_tiles(gMapObjectPic_Woman8_6),
+ obj_frame_tiles(gMapObjectPic_Woman8_7),
+ obj_frame_tiles(gMapObjectPic_Woman8_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_SwimmerM[] = {
+ obj_frame_tiles(gMapObjectPic_SwimmerM_0),
+ obj_frame_tiles(gMapObjectPic_SwimmerM_1),
+ obj_frame_tiles(gMapObjectPic_SwimmerM_2),
+ obj_frame_tiles(gMapObjectPic_SwimmerM_3),
+ obj_frame_tiles(gMapObjectPic_SwimmerM_4),
+ obj_frame_tiles(gMapObjectPic_SwimmerM_5),
+ obj_frame_tiles(gMapObjectPic_SwimmerM_6),
+ obj_frame_tiles(gMapObjectPic_SwimmerM_7),
+ obj_frame_tiles(gMapObjectPic_SwimmerM_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_SwimmerF[] = {
+ obj_frame_tiles(gMapObjectPic_SwimmerF_0),
+ obj_frame_tiles(gMapObjectPic_SwimmerF_1),
+ obj_frame_tiles(gMapObjectPic_SwimmerF_2),
+ obj_frame_tiles(gMapObjectPic_SwimmerF_3),
+ obj_frame_tiles(gMapObjectPic_SwimmerF_4),
+ obj_frame_tiles(gMapObjectPic_SwimmerF_5),
+ obj_frame_tiles(gMapObjectPic_SwimmerF_6),
+ obj_frame_tiles(gMapObjectPic_SwimmerF_7),
+ obj_frame_tiles(gMapObjectPic_SwimmerF_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BlackBelt[] = {
+ obj_frame_tiles(gMapObjectPic_BlackBelt_0),
+ obj_frame_tiles(gMapObjectPic_BlackBelt_1),
+ obj_frame_tiles(gMapObjectPic_BlackBelt_2),
+ obj_frame_tiles(gMapObjectPic_BlackBelt_3),
+ obj_frame_tiles(gMapObjectPic_BlackBelt_4),
+ obj_frame_tiles(gMapObjectPic_BlackBelt_5),
+ obj_frame_tiles(gMapObjectPic_BlackBelt_6),
+ obj_frame_tiles(gMapObjectPic_BlackBelt_7),
+ obj_frame_tiles(gMapObjectPic_BlackBelt_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Beauty[] = {
+ obj_frame_tiles(gMapObjectPic_Beauty_0),
+ obj_frame_tiles(gMapObjectPic_Beauty_1),
+ obj_frame_tiles(gMapObjectPic_Beauty_2),
+ obj_frame_tiles(gMapObjectPic_Beauty_3),
+ obj_frame_tiles(gMapObjectPic_Beauty_4),
+ obj_frame_tiles(gMapObjectPic_Beauty_5),
+ obj_frame_tiles(gMapObjectPic_Beauty_6),
+ obj_frame_tiles(gMapObjectPic_Beauty_7),
+ obj_frame_tiles(gMapObjectPic_Beauty_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Scientist1[] = {
+ obj_frame_tiles(gMapObjectPic_Scientist1_0),
+ obj_frame_tiles(gMapObjectPic_Scientist1_1),
+ obj_frame_tiles(gMapObjectPic_Scientist1_2),
+ obj_frame_tiles(gMapObjectPic_Scientist1_3),
+ obj_frame_tiles(gMapObjectPic_Scientist1_4),
+ obj_frame_tiles(gMapObjectPic_Scientist1_5),
+ obj_frame_tiles(gMapObjectPic_Scientist1_6),
+ obj_frame_tiles(gMapObjectPic_Scientist1_7),
+ obj_frame_tiles(gMapObjectPic_Scientist1_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Lass[] = {
+ obj_frame_tiles(gMapObjectPic_Lass_0),
+ obj_frame_tiles(gMapObjectPic_Lass_1),
+ obj_frame_tiles(gMapObjectPic_Lass_2),
+ obj_frame_tiles(gMapObjectPic_Lass_3),
+ obj_frame_tiles(gMapObjectPic_Lass_4),
+ obj_frame_tiles(gMapObjectPic_Lass_5),
+ obj_frame_tiles(gMapObjectPic_Lass_6),
+ obj_frame_tiles(gMapObjectPic_Lass_7),
+ obj_frame_tiles(gMapObjectPic_Lass_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Gentleman[] = {
+ obj_frame_tiles(gMapObjectPic_Gentleman_0),
+ obj_frame_tiles(gMapObjectPic_Gentleman_1),
+ obj_frame_tiles(gMapObjectPic_Gentleman_2),
+ obj_frame_tiles(gMapObjectPic_Gentleman_3),
+ obj_frame_tiles(gMapObjectPic_Gentleman_4),
+ obj_frame_tiles(gMapObjectPic_Gentleman_5),
+ obj_frame_tiles(gMapObjectPic_Gentleman_6),
+ obj_frame_tiles(gMapObjectPic_Gentleman_7),
+ obj_frame_tiles(gMapObjectPic_Gentleman_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Sailor[] = {
+ obj_frame_tiles(gMapObjectPic_Sailor_0),
+ obj_frame_tiles(gMapObjectPic_Sailor_1),
+ obj_frame_tiles(gMapObjectPic_Sailor_2),
+ obj_frame_tiles(gMapObjectPic_Sailor_3),
+ obj_frame_tiles(gMapObjectPic_Sailor_4),
+ obj_frame_tiles(gMapObjectPic_Sailor_5),
+ obj_frame_tiles(gMapObjectPic_Sailor_6),
+ obj_frame_tiles(gMapObjectPic_Sailor_7),
+ obj_frame_tiles(gMapObjectPic_Sailor_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Fisherman[] = {
+ obj_frame_tiles(gMapObjectPic_Fisherman_0),
+ obj_frame_tiles(gMapObjectPic_Fisherman_1),
+ obj_frame_tiles(gMapObjectPic_Fisherman_2),
+ obj_frame_tiles(gMapObjectPic_Fisherman_3),
+ obj_frame_tiles(gMapObjectPic_Fisherman_4),
+ obj_frame_tiles(gMapObjectPic_Fisherman_5),
+ obj_frame_tiles(gMapObjectPic_Fisherman_6),
+ obj_frame_tiles(gMapObjectPic_Fisherman_7),
+ obj_frame_tiles(gMapObjectPic_Fisherman_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_RunningTriathleteM[] = {
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteM_0),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteM_1),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteM_2),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteM_3),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteM_4),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteM_5),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteM_6),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteM_7),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteM_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_RunningTriathleteF[] = {
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteF_0),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteF_1),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteF_2),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteF_3),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteF_4),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteF_5),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteF_6),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteF_7),
+ obj_frame_tiles(gMapObjectPic_RunningTriathleteF_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_TuberF[] = {
+ obj_frame_tiles(gMapObjectPic_TuberF_0),
+ obj_frame_tiles(gMapObjectPic_TuberF_1),
+ obj_frame_tiles(gMapObjectPic_TuberF_2),
+ obj_frame_tiles(gMapObjectPic_TuberF_3),
+ obj_frame_tiles(gMapObjectPic_TuberF_4),
+ obj_frame_tiles(gMapObjectPic_TuberF_5),
+ obj_frame_tiles(gMapObjectPic_TuberF_6),
+ obj_frame_tiles(gMapObjectPic_TuberF_7),
+ obj_frame_tiles(gMapObjectPic_TuberF_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_TuberM[] = {
+ obj_frame_tiles(gMapObjectPic_TuberM_0),
+ obj_frame_tiles(gMapObjectPic_TuberM_1),
+ obj_frame_tiles(gMapObjectPic_TuberM_2),
+ obj_frame_tiles(gMapObjectPic_TuberM_3),
+ obj_frame_tiles(gMapObjectPic_TuberM_4),
+ obj_frame_tiles(gMapObjectPic_TuberM_5),
+ obj_frame_tiles(gMapObjectPic_TuberM_6),
+ obj_frame_tiles(gMapObjectPic_TuberM_7),
+ obj_frame_tiles(gMapObjectPic_TuberM_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Hiker[] = {
+ obj_frame_tiles(gMapObjectPic_Hiker_0),
+ obj_frame_tiles(gMapObjectPic_Hiker_1),
+ obj_frame_tiles(gMapObjectPic_Hiker_2),
+ obj_frame_tiles(gMapObjectPic_Hiker_3),
+ obj_frame_tiles(gMapObjectPic_Hiker_4),
+ obj_frame_tiles(gMapObjectPic_Hiker_5),
+ obj_frame_tiles(gMapObjectPic_Hiker_6),
+ obj_frame_tiles(gMapObjectPic_Hiker_7),
+ obj_frame_tiles(gMapObjectPic_Hiker_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_CyclingTriathleteM[] = {
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_0),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_1),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_2),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_3),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_4),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_5),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_6),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_7),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_CyclingTriathleteF[] = {
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_0),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_1),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_2),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_3),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_4),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_5),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_6),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_7),
+ obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Nurse[] = {
+ obj_frame_tiles(gMapObjectPic_Nurse_0),
+ obj_frame_tiles(gMapObjectPic_Nurse_1),
+ obj_frame_tiles(gMapObjectPic_Nurse_2),
+ obj_frame_tiles(gMapObjectPic_Nurse_3),
+ obj_frame_tiles(gMapObjectPic_Nurse_4),
+ obj_frame_tiles(gMapObjectPic_Nurse_5),
+ obj_frame_tiles(gMapObjectPic_Nurse_6),
+ obj_frame_tiles(gMapObjectPic_Nurse_7),
+ obj_frame_tiles(gMapObjectPic_Nurse_8),
+ obj_frame_tiles(gMapObjectPic_Nurse_9)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_ItemBall[] = {
+ obj_frame_tiles(gMapObjectPic_ItemBall)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_ProfBirch[] = {
+ obj_frame_tiles(gMapObjectPic_ProfBirch_0),
+ obj_frame_tiles(gMapObjectPic_ProfBirch_1),
+ obj_frame_tiles(gMapObjectPic_ProfBirch_2),
+ obj_frame_tiles(gMapObjectPic_ProfBirch_3),
+ obj_frame_tiles(gMapObjectPic_ProfBirch_4),
+ obj_frame_tiles(gMapObjectPic_ProfBirch_5),
+ obj_frame_tiles(gMapObjectPic_ProfBirch_6),
+ obj_frame_tiles(gMapObjectPic_ProfBirch_7),
+ obj_frame_tiles(gMapObjectPic_ProfBirch_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Man5[] = {
+ obj_frame_tiles(gMapObjectPic_Man5_0),
+ obj_frame_tiles(gMapObjectPic_Man5_1),
+ obj_frame_tiles(gMapObjectPic_Man5_2),
+ obj_frame_tiles(gMapObjectPic_Man5_3),
+ obj_frame_tiles(gMapObjectPic_Man5_4),
+ obj_frame_tiles(gMapObjectPic_Man5_5),
+ obj_frame_tiles(gMapObjectPic_Man5_6),
+ obj_frame_tiles(gMapObjectPic_Man5_7),
+ obj_frame_tiles(gMapObjectPic_Man5_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Man6[] = {
+ obj_frame_tiles(gMapObjectPic_Man6_0),
+ obj_frame_tiles(gMapObjectPic_Man6_1),
+ obj_frame_tiles(gMapObjectPic_Man6_2),
+ obj_frame_tiles(gMapObjectPic_Man6_3),
+ obj_frame_tiles(gMapObjectPic_Man6_4),
+ obj_frame_tiles(gMapObjectPic_Man6_5),
+ obj_frame_tiles(gMapObjectPic_Man6_6),
+ obj_frame_tiles(gMapObjectPic_Man6_7),
+ obj_frame_tiles(gMapObjectPic_Man6_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_ReporterM[] = {
+ obj_frame_tiles(gMapObjectPic_ReporterM_0),
+ obj_frame_tiles(gMapObjectPic_ReporterM_1),
+ obj_frame_tiles(gMapObjectPic_ReporterM_2),
+ obj_frame_tiles(gMapObjectPic_ReporterM_3),
+ obj_frame_tiles(gMapObjectPic_ReporterM_4),
+ obj_frame_tiles(gMapObjectPic_ReporterM_5),
+ obj_frame_tiles(gMapObjectPic_ReporterM_6),
+ obj_frame_tiles(gMapObjectPic_ReporterM_7),
+ obj_frame_tiles(gMapObjectPic_ReporterM_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_ReporterF[] = {
+ obj_frame_tiles(gMapObjectPic_ReporterF_0),
+ obj_frame_tiles(gMapObjectPic_ReporterF_1),
+ obj_frame_tiles(gMapObjectPic_ReporterF_2),
+ obj_frame_tiles(gMapObjectPic_ReporterF_3),
+ obj_frame_tiles(gMapObjectPic_ReporterF_4),
+ obj_frame_tiles(gMapObjectPic_ReporterF_5),
+ obj_frame_tiles(gMapObjectPic_ReporterF_6),
+ obj_frame_tiles(gMapObjectPic_ReporterF_7),
+ obj_frame_tiles(gMapObjectPic_ReporterF_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MauvilleOldMan1[] = {
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_0),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_1),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_2),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_3),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_4),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_5),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_6),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_7),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MauvilleOldMan2[] = {
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_0),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_1),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_2),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_3),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_4),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_5),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_6),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_7),
+ obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_UnusedNatuDoll[] = {
+ obj_frame_tiles(gMapObjectPic_UnusedNatuDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_UnusedMagnemiteDoll[] = {
+ obj_frame_tiles(gMapObjectPic_UnusedMagnemiteDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_UnusedSquirtleDoll[] = {
+ obj_frame_tiles(gMapObjectPic_UnusedSquirtleDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_UnusedWooperDoll[] = {
+ obj_frame_tiles(gMapObjectPic_UnusedWooperDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_UnusedPikachuDoll[] = {
+ obj_frame_tiles(gMapObjectPic_UnusedPikachuDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_UnusedPorygon2Doll[] = {
+ obj_frame_tiles(gMapObjectPic_UnusedPorygon2Doll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_CuttableTree[] = {
+ obj_frame_tiles(gMapObjectPic_CuttableTree_0),
+ obj_frame_tiles(gMapObjectPic_CuttableTree_1),
+ obj_frame_tiles(gMapObjectPic_CuttableTree_2),
+ obj_frame_tiles(gMapObjectPic_CuttableTree_3)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MartEmployee[] = {
+ obj_frame_tiles(gMapObjectPic_MartEmployee_0),
+ obj_frame_tiles(gMapObjectPic_MartEmployee_1),
+ obj_frame_tiles(gMapObjectPic_MartEmployee_2),
+ obj_frame_tiles(gMapObjectPic_MartEmployee_3),
+ obj_frame_tiles(gMapObjectPic_MartEmployee_4),
+ obj_frame_tiles(gMapObjectPic_MartEmployee_5),
+ obj_frame_tiles(gMapObjectPic_MartEmployee_6),
+ obj_frame_tiles(gMapObjectPic_MartEmployee_7),
+ obj_frame_tiles(gMapObjectPic_MartEmployee_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_RooftopSaleWoman[] = {
+ obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_0),
+ obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_1),
+ obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_2),
+ obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_3),
+ obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_4),
+ obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_5),
+ obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_6),
+ obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_7),
+ obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Teala[] = {
+ obj_frame_tiles(gMapObjectPic_Teala_0),
+ obj_frame_tiles(gMapObjectPic_Teala_1),
+ obj_frame_tiles(gMapObjectPic_Teala_2),
+ obj_frame_tiles(gMapObjectPic_Teala_3),
+ obj_frame_tiles(gMapObjectPic_Teala_4),
+ obj_frame_tiles(gMapObjectPic_Teala_5),
+ obj_frame_tiles(gMapObjectPic_Teala_6),
+ obj_frame_tiles(gMapObjectPic_Teala_7),
+ obj_frame_tiles(gMapObjectPic_Teala_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BreakableRock[] = {
+ obj_frame_tiles(gMapObjectPic_BreakableRock_0),
+ obj_frame_tiles(gMapObjectPic_BreakableRock_1),
+ obj_frame_tiles(gMapObjectPic_BreakableRock_2),
+ obj_frame_tiles(gMapObjectPic_BreakableRock_3)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_PushableBoulder[] = {
+ obj_frame_tiles(gMapObjectPic_PushableBoulder)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MrBrineysBoat[] = {
+ obj_frame_tiles(gMapObjectPic_MrBrineysBoat_0),
+ obj_frame_tiles(gMapObjectPic_MrBrineysBoat_1),
+ obj_frame_tiles(gMapObjectPic_MrBrineysBoat_2),
+ obj_frame_tiles(gMapObjectPic_MrBrineysBoat_0),
+ obj_frame_tiles(gMapObjectPic_MrBrineysBoat_0),
+ obj_frame_tiles(gMapObjectPic_MrBrineysBoat_1),
+ obj_frame_tiles(gMapObjectPic_MrBrineysBoat_1),
+ obj_frame_tiles(gMapObjectPic_MrBrineysBoat_2),
+ obj_frame_tiles(gMapObjectPic_MrBrineysBoat_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Truck[] = {
+ obj_frame_tiles(gMapObjectPic_Truck)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MachokeCarryingBox[] = {
+ obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_0),
+ obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_0),
+ obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_0),
+ obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_1),
+ obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_2),
+ obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_1),
+ obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_2),
+ obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_1),
+ obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MachokeFacingAway[] = {
+ obj_frame_tiles(gMapObjectPic_MachokeFacingAway_0),
+ obj_frame_tiles(gMapObjectPic_MachokeFacingAway_0),
+ obj_frame_tiles(gMapObjectPic_MachokeFacingAway_0),
+ obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1),
+ obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1),
+ obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1),
+ obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1),
+ obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1),
+ obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BirchsBag[] = {
+ obj_frame_tiles(gMapObjectPic_BirchsBag)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Poochyena[] = {
+ obj_frame_tiles(gMapObjectPic_Poochyena_0),
+ obj_frame_tiles(gMapObjectPic_Poochyena_1),
+ obj_frame_tiles(gMapObjectPic_Poochyena_2),
+ obj_frame_tiles(gMapObjectPic_Poochyena_3),
+ obj_frame_tiles(gMapObjectPic_Poochyena_4),
+ obj_frame_tiles(gMapObjectPic_Poochyena_5),
+ obj_frame_tiles(gMapObjectPic_Poochyena_6),
+ obj_frame_tiles(gMapObjectPic_Poochyena_7),
+ obj_frame_tiles(gMapObjectPic_Poochyena_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Artist[] = {
+ obj_frame_tiles(gMapObjectPic_Artist_0),
+ obj_frame_tiles(gMapObjectPic_Artist_1),
+ obj_frame_tiles(gMapObjectPic_Artist_2),
+ obj_frame_tiles(gMapObjectPic_Artist_3),
+ obj_frame_tiles(gMapObjectPic_Artist_4),
+ obj_frame_tiles(gMapObjectPic_Artist_5),
+ obj_frame_tiles(gMapObjectPic_Artist_6),
+ obj_frame_tiles(gMapObjectPic_Artist_7),
+ obj_frame_tiles(gMapObjectPic_Artist_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MayNormal[] = {
+ obj_frame_tiles(gMapObjectPic_MayNormal_0),
+ obj_frame_tiles(gMapObjectPic_MayNormal_1),
+ obj_frame_tiles(gMapObjectPic_MayNormal_2),
+ obj_frame_tiles(gMapObjectPic_MayNormal_3),
+ obj_frame_tiles(gMapObjectPic_MayNormal_4),
+ obj_frame_tiles(gMapObjectPic_MayNormal_5),
+ obj_frame_tiles(gMapObjectPic_MayNormal_6),
+ obj_frame_tiles(gMapObjectPic_MayNormal_7),
+ obj_frame_tiles(gMapObjectPic_MayNormal_8),
+ obj_frame_tiles(gMapObjectPic_MayNormal_9),
+ obj_frame_tiles(gMapObjectPic_MayNormal_10),
+ obj_frame_tiles(gMapObjectPic_MayNormal_11),
+ obj_frame_tiles(gMapObjectPic_MayNormal_12),
+ obj_frame_tiles(gMapObjectPic_MayNormal_13),
+ obj_frame_tiles(gMapObjectPic_MayNormal_14),
+ obj_frame_tiles(gMapObjectPic_MayNormal_15),
+ obj_frame_tiles(gMapObjectPic_MayNormal_16),
+ obj_frame_tiles(gMapObjectPic_MayNormal_17)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MayMachBike[] = {
+ obj_frame_tiles(gMapObjectPic_MayMachBike_0),
+ obj_frame_tiles(gMapObjectPic_MayMachBike_1),
+ obj_frame_tiles(gMapObjectPic_MayMachBike_2),
+ obj_frame_tiles(gMapObjectPic_MayMachBike_3),
+ obj_frame_tiles(gMapObjectPic_MayMachBike_4),
+ obj_frame_tiles(gMapObjectPic_MayMachBike_5),
+ obj_frame_tiles(gMapObjectPic_MayMachBike_6),
+ obj_frame_tiles(gMapObjectPic_MayMachBike_7),
+ obj_frame_tiles(gMapObjectPic_MayMachBike_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MayAcroBike[] = {
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_0),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_1),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_2),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_3),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_4),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_5),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_6),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_7),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_8),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_9),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_10),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_11),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_12),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_13),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_14),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_15),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_16),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_17),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_18),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_19),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_20),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_21),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_22),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_23),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_24),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_25),
+ obj_frame_tiles(gMapObjectPic_MayAcroBike_26)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MaySurfing[] = {
+ obj_frame_tiles(gMapObjectPic_MaySurfing_0),
+ obj_frame_tiles(gMapObjectPic_MaySurfing_1),
+ obj_frame_tiles(gMapObjectPic_MaySurfing_2),
+ obj_frame_tiles(gMapObjectPic_MaySurfing_0),
+ obj_frame_tiles(gMapObjectPic_MaySurfing_0),
+ obj_frame_tiles(gMapObjectPic_MaySurfing_1),
+ obj_frame_tiles(gMapObjectPic_MaySurfing_1),
+ obj_frame_tiles(gMapObjectPic_MaySurfing_2),
+ obj_frame_tiles(gMapObjectPic_MaySurfing_2),
+ obj_frame_tiles(gMapObjectPic_MaySurfing_3),
+ obj_frame_tiles(gMapObjectPic_MaySurfing_4),
+ obj_frame_tiles(gMapObjectPic_MaySurfing_5)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MayUnderwater[] = {
+ obj_frame_tiles(gMapObjectPic_MayUnderwater_0),
+ obj_frame_tiles(gMapObjectPic_MayUnderwater_1),
+ obj_frame_tiles(gMapObjectPic_MayUnderwater_2),
+ obj_frame_tiles(gMapObjectPic_MayUnderwater_0),
+ obj_frame_tiles(gMapObjectPic_MayUnderwater_0),
+ obj_frame_tiles(gMapObjectPic_MayUnderwater_1),
+ obj_frame_tiles(gMapObjectPic_MayUnderwater_1),
+ obj_frame_tiles(gMapObjectPic_MayUnderwater_2),
+ obj_frame_tiles(gMapObjectPic_MayUnderwater_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MayFieldMove[] = {
+ obj_frame_tiles(gMapObjectPic_MayFieldMove_0),
+ obj_frame_tiles(gMapObjectPic_MayFieldMove_1),
+ obj_frame_tiles(gMapObjectPic_MayFieldMove_2),
+ obj_frame_tiles(gMapObjectPic_MayFieldMove_3),
+ obj_frame_tiles(gMapObjectPic_MayFieldMove_4)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Cameraman[] = {
+ obj_frame_tiles(gMapObjectPic_Cameraman_0),
+ obj_frame_tiles(gMapObjectPic_Cameraman_1),
+ obj_frame_tiles(gMapObjectPic_Cameraman_2),
+ obj_frame_tiles(gMapObjectPic_Cameraman_3),
+ obj_frame_tiles(gMapObjectPic_Cameraman_4),
+ obj_frame_tiles(gMapObjectPic_Cameraman_5),
+ obj_frame_tiles(gMapObjectPic_Cameraman_6),
+ obj_frame_tiles(gMapObjectPic_Cameraman_7),
+ obj_frame_tiles(gMapObjectPic_Cameraman_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MovingBox[] = {
+ obj_frame_tiles(gMapObjectPic_MovingBox)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_CableCar[] = {
+ obj_frame_tiles(gMapObjectPic_CableCar)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Scientist2[] = {
+ obj_frame_tiles(gMapObjectPic_Scientist2_0),
+ obj_frame_tiles(gMapObjectPic_Scientist2_1),
+ obj_frame_tiles(gMapObjectPic_Scientist2_2),
+ obj_frame_tiles(gMapObjectPic_Scientist2_3),
+ obj_frame_tiles(gMapObjectPic_Scientist2_4),
+ obj_frame_tiles(gMapObjectPic_Scientist2_5),
+ obj_frame_tiles(gMapObjectPic_Scientist2_6),
+ obj_frame_tiles(gMapObjectPic_Scientist2_7),
+ obj_frame_tiles(gMapObjectPic_Scientist2_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Man7[] = {
+ obj_frame_tiles(gMapObjectPic_Man7_0),
+ obj_frame_tiles(gMapObjectPic_Man7_1),
+ obj_frame_tiles(gMapObjectPic_Man7_2),
+ obj_frame_tiles(gMapObjectPic_Man7_3),
+ obj_frame_tiles(gMapObjectPic_Man7_4),
+ obj_frame_tiles(gMapObjectPic_Man7_5),
+ obj_frame_tiles(gMapObjectPic_Man7_6),
+ obj_frame_tiles(gMapObjectPic_Man7_7),
+ obj_frame_tiles(gMapObjectPic_Man7_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_AquaMemberM[] = {
+ obj_frame_tiles(gMapObjectPic_AquaMemberM_0),
+ obj_frame_tiles(gMapObjectPic_AquaMemberM_1),
+ obj_frame_tiles(gMapObjectPic_AquaMemberM_2),
+ obj_frame_tiles(gMapObjectPic_AquaMemberM_3),
+ obj_frame_tiles(gMapObjectPic_AquaMemberM_4),
+ obj_frame_tiles(gMapObjectPic_AquaMemberM_5),
+ obj_frame_tiles(gMapObjectPic_AquaMemberM_6),
+ obj_frame_tiles(gMapObjectPic_AquaMemberM_7),
+ obj_frame_tiles(gMapObjectPic_AquaMemberM_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_AquaMemberF[] = {
+ obj_frame_tiles(gMapObjectPic_AquaMemberF_0),
+ obj_frame_tiles(gMapObjectPic_AquaMemberF_1),
+ obj_frame_tiles(gMapObjectPic_AquaMemberF_2),
+ obj_frame_tiles(gMapObjectPic_AquaMemberF_3),
+ obj_frame_tiles(gMapObjectPic_AquaMemberF_4),
+ obj_frame_tiles(gMapObjectPic_AquaMemberF_5),
+ obj_frame_tiles(gMapObjectPic_AquaMemberF_6),
+ obj_frame_tiles(gMapObjectPic_AquaMemberF_7),
+ obj_frame_tiles(gMapObjectPic_AquaMemberF_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MagmaMemberM[] = {
+ obj_frame_tiles(gMapObjectPic_MagmaMemberM_0),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberM_1),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberM_2),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberM_3),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberM_4),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberM_5),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberM_6),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberM_7),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberM_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MagmaMemberF[] = {
+ obj_frame_tiles(gMapObjectPic_MagmaMemberF_0),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberF_1),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberF_2),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberF_3),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberF_4),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberF_5),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberF_6),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberF_7),
+ obj_frame_tiles(gMapObjectPic_MagmaMemberF_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Sidney[] = {
+ obj_frame_tiles(gMapObjectPic_Sidney_0),
+ obj_frame_tiles(gMapObjectPic_Sidney_1),
+ obj_frame_tiles(gMapObjectPic_Sidney_2),
+ obj_frame_tiles(gMapObjectPic_Sidney_0),
+ obj_frame_tiles(gMapObjectPic_Sidney_0),
+ obj_frame_tiles(gMapObjectPic_Sidney_1),
+ obj_frame_tiles(gMapObjectPic_Sidney_1),
+ obj_frame_tiles(gMapObjectPic_Sidney_2),
+ obj_frame_tiles(gMapObjectPic_Sidney_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Phoebe[] = {
+ obj_frame_tiles(gMapObjectPic_Phoebe_0),
+ obj_frame_tiles(gMapObjectPic_Phoebe_1),
+ obj_frame_tiles(gMapObjectPic_Phoebe_2),
+ obj_frame_tiles(gMapObjectPic_Phoebe_0),
+ obj_frame_tiles(gMapObjectPic_Phoebe_0),
+ obj_frame_tiles(gMapObjectPic_Phoebe_1),
+ obj_frame_tiles(gMapObjectPic_Phoebe_1),
+ obj_frame_tiles(gMapObjectPic_Phoebe_2),
+ obj_frame_tiles(gMapObjectPic_Phoebe_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Glacia[] = {
+ obj_frame_tiles(gMapObjectPic_Glacia_0),
+ obj_frame_tiles(gMapObjectPic_Glacia_1),
+ obj_frame_tiles(gMapObjectPic_Glacia_2),
+ obj_frame_tiles(gMapObjectPic_Glacia_0),
+ obj_frame_tiles(gMapObjectPic_Glacia_0),
+ obj_frame_tiles(gMapObjectPic_Glacia_1),
+ obj_frame_tiles(gMapObjectPic_Glacia_1),
+ obj_frame_tiles(gMapObjectPic_Glacia_2),
+ obj_frame_tiles(gMapObjectPic_Glacia_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Drake[] = {
+ obj_frame_tiles(gMapObjectPic_Drake_0),
+ obj_frame_tiles(gMapObjectPic_Drake_1),
+ obj_frame_tiles(gMapObjectPic_Drake_2),
+ obj_frame_tiles(gMapObjectPic_Drake_0),
+ obj_frame_tiles(gMapObjectPic_Drake_0),
+ obj_frame_tiles(gMapObjectPic_Drake_1),
+ obj_frame_tiles(gMapObjectPic_Drake_1),
+ obj_frame_tiles(gMapObjectPic_Drake_2),
+ obj_frame_tiles(gMapObjectPic_Drake_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Roxanne[] = {
+ obj_frame_tiles(gMapObjectPic_Roxanne_0),
+ obj_frame_tiles(gMapObjectPic_Roxanne_1),
+ obj_frame_tiles(gMapObjectPic_Roxanne_2),
+ obj_frame_tiles(gMapObjectPic_Roxanne_0),
+ obj_frame_tiles(gMapObjectPic_Roxanne_0),
+ obj_frame_tiles(gMapObjectPic_Roxanne_1),
+ obj_frame_tiles(gMapObjectPic_Roxanne_1),
+ obj_frame_tiles(gMapObjectPic_Roxanne_2),
+ obj_frame_tiles(gMapObjectPic_Roxanne_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Brawly[] = {
+ obj_frame_tiles(gMapObjectPic_Brawly_0),
+ obj_frame_tiles(gMapObjectPic_Brawly_1),
+ obj_frame_tiles(gMapObjectPic_Brawly_2),
+ obj_frame_tiles(gMapObjectPic_Brawly_0),
+ obj_frame_tiles(gMapObjectPic_Brawly_0),
+ obj_frame_tiles(gMapObjectPic_Brawly_1),
+ obj_frame_tiles(gMapObjectPic_Brawly_1),
+ obj_frame_tiles(gMapObjectPic_Brawly_2),
+ obj_frame_tiles(gMapObjectPic_Brawly_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Wattson[] = {
+ obj_frame_tiles(gMapObjectPic_Wattson_0),
+ obj_frame_tiles(gMapObjectPic_Wattson_1),
+ obj_frame_tiles(gMapObjectPic_Wattson_2),
+ obj_frame_tiles(gMapObjectPic_Wattson_0),
+ obj_frame_tiles(gMapObjectPic_Wattson_0),
+ obj_frame_tiles(gMapObjectPic_Wattson_1),
+ obj_frame_tiles(gMapObjectPic_Wattson_1),
+ obj_frame_tiles(gMapObjectPic_Wattson_2),
+ obj_frame_tiles(gMapObjectPic_Wattson_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Flannery[] = {
+ obj_frame_tiles(gMapObjectPic_Flannery_0),
+ obj_frame_tiles(gMapObjectPic_Flannery_1),
+ obj_frame_tiles(gMapObjectPic_Flannery_2),
+ obj_frame_tiles(gMapObjectPic_Flannery_0),
+ obj_frame_tiles(gMapObjectPic_Flannery_0),
+ obj_frame_tiles(gMapObjectPic_Flannery_1),
+ obj_frame_tiles(gMapObjectPic_Flannery_1),
+ obj_frame_tiles(gMapObjectPic_Flannery_2),
+ obj_frame_tiles(gMapObjectPic_Flannery_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Norman[] = {
+ obj_frame_tiles(gMapObjectPic_Norman_0),
+ obj_frame_tiles(gMapObjectPic_Norman_1),
+ obj_frame_tiles(gMapObjectPic_Norman_2),
+ obj_frame_tiles(gMapObjectPic_Norman_3),
+ obj_frame_tiles(gMapObjectPic_Norman_4),
+ obj_frame_tiles(gMapObjectPic_Norman_5),
+ obj_frame_tiles(gMapObjectPic_Norman_6),
+ obj_frame_tiles(gMapObjectPic_Norman_7),
+ obj_frame_tiles(gMapObjectPic_Norman_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Winona[] = {
+ obj_frame_tiles(gMapObjectPic_Winona_0),
+ obj_frame_tiles(gMapObjectPic_Winona_1),
+ obj_frame_tiles(gMapObjectPic_Winona_2),
+ obj_frame_tiles(gMapObjectPic_Winona_0),
+ obj_frame_tiles(gMapObjectPic_Winona_0),
+ obj_frame_tiles(gMapObjectPic_Winona_1),
+ obj_frame_tiles(gMapObjectPic_Winona_1),
+ obj_frame_tiles(gMapObjectPic_Winona_2),
+ obj_frame_tiles(gMapObjectPic_Winona_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Liza[] = {
+ obj_frame_tiles(gMapObjectPic_Liza_0),
+ obj_frame_tiles(gMapObjectPic_Liza_1),
+ obj_frame_tiles(gMapObjectPic_Liza_2),
+ obj_frame_tiles(gMapObjectPic_Liza_0),
+ obj_frame_tiles(gMapObjectPic_Liza_0),
+ obj_frame_tiles(gMapObjectPic_Liza_1),
+ obj_frame_tiles(gMapObjectPic_Liza_1),
+ obj_frame_tiles(gMapObjectPic_Liza_2),
+ obj_frame_tiles(gMapObjectPic_Liza_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Tate[] = {
+ obj_frame_tiles(gMapObjectPic_Tate_0),
+ obj_frame_tiles(gMapObjectPic_Tate_1),
+ obj_frame_tiles(gMapObjectPic_Tate_2),
+ obj_frame_tiles(gMapObjectPic_Tate_0),
+ obj_frame_tiles(gMapObjectPic_Tate_0),
+ obj_frame_tiles(gMapObjectPic_Tate_1),
+ obj_frame_tiles(gMapObjectPic_Tate_1),
+ obj_frame_tiles(gMapObjectPic_Tate_2),
+ obj_frame_tiles(gMapObjectPic_Tate_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Wallace[] = {
+ obj_frame_tiles(gMapObjectPic_Wallace_0),
+ obj_frame_tiles(gMapObjectPic_Wallace_1),
+ obj_frame_tiles(gMapObjectPic_Wallace_2),
+ obj_frame_tiles(gMapObjectPic_Wallace_3),
+ obj_frame_tiles(gMapObjectPic_Wallace_4),
+ obj_frame_tiles(gMapObjectPic_Wallace_5),
+ obj_frame_tiles(gMapObjectPic_Wallace_6),
+ obj_frame_tiles(gMapObjectPic_Wallace_7),
+ obj_frame_tiles(gMapObjectPic_Wallace_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Steven[] = {
+ obj_frame_tiles(gMapObjectPic_Steven_0),
+ obj_frame_tiles(gMapObjectPic_Steven_1),
+ obj_frame_tiles(gMapObjectPic_Steven_2),
+ obj_frame_tiles(gMapObjectPic_Steven_3),
+ obj_frame_tiles(gMapObjectPic_Steven_4),
+ obj_frame_tiles(gMapObjectPic_Steven_5),
+ obj_frame_tiles(gMapObjectPic_Steven_6),
+ obj_frame_tiles(gMapObjectPic_Steven_7),
+ obj_frame_tiles(gMapObjectPic_Steven_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Wally[] = {
+ obj_frame_tiles(gMapObjectPic_Wally_0),
+ obj_frame_tiles(gMapObjectPic_Wally_1),
+ obj_frame_tiles(gMapObjectPic_Wally_2),
+ obj_frame_tiles(gMapObjectPic_Wally_3),
+ obj_frame_tiles(gMapObjectPic_Wally_4),
+ obj_frame_tiles(gMapObjectPic_Wally_5),
+ obj_frame_tiles(gMapObjectPic_Wally_6),
+ obj_frame_tiles(gMapObjectPic_Wally_7),
+ obj_frame_tiles(gMapObjectPic_Wally_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_LittleBoy3[] = {
+ obj_frame_tiles(gMapObjectPic_LittleBoy3_0),
+ obj_frame_tiles(gMapObjectPic_LittleBoy3_1),
+ obj_frame_tiles(gMapObjectPic_LittleBoy3_2),
+ obj_frame_tiles(gMapObjectPic_LittleBoy3_3),
+ obj_frame_tiles(gMapObjectPic_LittleBoy3_4),
+ obj_frame_tiles(gMapObjectPic_LittleBoy3_5),
+ obj_frame_tiles(gMapObjectPic_LittleBoy3_6),
+ obj_frame_tiles(gMapObjectPic_LittleBoy3_7),
+ obj_frame_tiles(gMapObjectPic_LittleBoy3_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BrendanFishing[] = {
+ obj_frame_tiles(gMapObjectPic_BrendanFishing_0),
+ obj_frame_tiles(gMapObjectPic_BrendanFishing_1),
+ obj_frame_tiles(gMapObjectPic_BrendanFishing_2),
+ obj_frame_tiles(gMapObjectPic_BrendanFishing_3),
+ obj_frame_tiles(gMapObjectPic_BrendanFishing_4),
+ obj_frame_tiles(gMapObjectPic_BrendanFishing_5),
+ obj_frame_tiles(gMapObjectPic_BrendanFishing_6),
+ obj_frame_tiles(gMapObjectPic_BrendanFishing_7),
+ obj_frame_tiles(gMapObjectPic_BrendanFishing_8),
+ obj_frame_tiles(gMapObjectPic_BrendanFishing_9),
+ obj_frame_tiles(gMapObjectPic_BrendanFishing_10),
+ obj_frame_tiles(gMapObjectPic_BrendanFishing_11)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MayFishing[] = {
+ obj_frame_tiles(gMapObjectPic_MayFishing_0),
+ obj_frame_tiles(gMapObjectPic_MayFishing_1),
+ obj_frame_tiles(gMapObjectPic_MayFishing_2),
+ obj_frame_tiles(gMapObjectPic_MayFishing_3),
+ obj_frame_tiles(gMapObjectPic_MayFishing_4),
+ obj_frame_tiles(gMapObjectPic_MayFishing_5),
+ obj_frame_tiles(gMapObjectPic_MayFishing_6),
+ obj_frame_tiles(gMapObjectPic_MayFishing_7),
+ obj_frame_tiles(gMapObjectPic_MayFishing_8),
+ obj_frame_tiles(gMapObjectPic_MayFishing_9),
+ obj_frame_tiles(gMapObjectPic_MayFishing_10),
+ obj_frame_tiles(gMapObjectPic_MayFishing_11)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_HotSpringsOldWoman[] = {
+ obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_0),
+ obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_1),
+ obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_2),
+ obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_3),
+ obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_4),
+ obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_5),
+ obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_6),
+ obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_7),
+ obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_SSTidal[] = {
+ obj_frame_tiles(gMapObjectPic_SSTidal),
+ obj_frame_tiles(gMapObjectPic_SSTidal),
+ obj_frame_tiles(gMapObjectPic_SSTidal),
+ obj_frame_tiles(gMapObjectPic_SSTidal),
+ obj_frame_tiles(gMapObjectPic_SSTidal),
+ obj_frame_tiles(gMapObjectPic_SSTidal),
+ obj_frame_tiles(gMapObjectPic_SSTidal),
+ obj_frame_tiles(gMapObjectPic_SSTidal),
+ obj_frame_tiles(gMapObjectPic_SSTidal)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_SubmarineShadow[] = {
+ obj_frame_tiles(gMapObjectPic_SubmarineShadow),
+ obj_frame_tiles(gMapObjectPic_SubmarineShadow),
+ obj_frame_tiles(gMapObjectPic_SubmarineShadow),
+ obj_frame_tiles(gMapObjectPic_SubmarineShadow),
+ obj_frame_tiles(gMapObjectPic_SubmarineShadow),
+ obj_frame_tiles(gMapObjectPic_SubmarineShadow),
+ obj_frame_tiles(gMapObjectPic_SubmarineShadow),
+ obj_frame_tiles(gMapObjectPic_SubmarineShadow),
+ obj_frame_tiles(gMapObjectPic_SubmarineShadow)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_PichuDoll[] = {
+ obj_frame_tiles(gMapObjectPic_PichuDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_PikachuDoll[] = {
+ obj_frame_tiles(gMapObjectPic_PikachuDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MarillDoll[] = {
+ obj_frame_tiles(gMapObjectPic_MarillDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_TogepiDoll[] = {
+ obj_frame_tiles(gMapObjectPic_TogepiDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_CyndaquilDoll[] = {
+ obj_frame_tiles(gMapObjectPic_CyndaquilDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_ChikoritaDoll[] = {
+ obj_frame_tiles(gMapObjectPic_ChikoritaDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_TotodileDoll[] = {
+ obj_frame_tiles(gMapObjectPic_TotodileDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_JigglypuffDoll[] = {
+ obj_frame_tiles(gMapObjectPic_JigglypuffDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MeowthDoll[] = {
+ obj_frame_tiles(gMapObjectPic_MeowthDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_ClefairyDoll[] = {
+ obj_frame_tiles(gMapObjectPic_ClefairyDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_DittoDoll[] = {
+ obj_frame_tiles(gMapObjectPic_DittoDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_SmoochumDoll[] = {
+ obj_frame_tiles(gMapObjectPic_SmoochumDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_TreeckoDoll[] = {
+ obj_frame_tiles(gMapObjectPic_TreeckoDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_TorchicDoll[] = {
+ obj_frame_tiles(gMapObjectPic_TorchicDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MudkipDoll[] = {
+ obj_frame_tiles(gMapObjectPic_MudkipDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_DuskullDoll[] = {
+ obj_frame_tiles(gMapObjectPic_DuskullDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_WynautDoll[] = {
+ obj_frame_tiles(gMapObjectPic_WynautDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BaltoyDoll[] = {
+ obj_frame_tiles(gMapObjectPic_BaltoyDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_KecleonDoll[] = {
+ obj_frame_tiles(gMapObjectPic_KecleonDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_AzurillDoll[] = {
+ obj_frame_tiles(gMapObjectPic_AzurillDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_SkittyDoll[] = {
+ obj_frame_tiles(gMapObjectPic_SkittyDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_SwabluDoll[] = {
+ obj_frame_tiles(gMapObjectPic_SwabluDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_GulpinDoll[] = {
+ obj_frame_tiles(gMapObjectPic_GulpinDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_LotadDoll[] = {
+ obj_frame_tiles(gMapObjectPic_LotadDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_SeedotDoll[] = {
+ obj_frame_tiles(gMapObjectPic_SeedotDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_PikaCushion[] = {
+ obj_frame_tiles(gMapObjectPic_PikaCushion)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_RoundCushion[] = {
+ obj_frame_tiles(gMapObjectPic_RoundCushion)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_KissCushion[] = {
+ obj_frame_tiles(gMapObjectPic_KissCushion)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_ZigzagCushion[] = {
+ obj_frame_tiles(gMapObjectPic_ZigzagCushion)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_SpinCushion[] = {
+ obj_frame_tiles(gMapObjectPic_SpinCushion)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_DiamondCushion[] = {
+ obj_frame_tiles(gMapObjectPic_DiamondCushion)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BallCushion[] = {
+ obj_frame_tiles(gMapObjectPic_BallCushion)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_GrassCushion[] = {
+ obj_frame_tiles(gMapObjectPic_GrassCushion)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_FireCushion[] = {
+ obj_frame_tiles(gMapObjectPic_FireCushion)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_WaterCushion[] = {
+ obj_frame_tiles(gMapObjectPic_WaterCushion)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BigSnorlaxDoll[] = {
+ obj_frame_tiles(gMapObjectPic_BigSnorlaxDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BigRhydonDoll[] = {
+ obj_frame_tiles(gMapObjectPic_BigRhydonDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BigLaprasDoll[] = {
+ obj_frame_tiles(gMapObjectPic_BigLaprasDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BigVenusaurDoll[] = {
+ obj_frame_tiles(gMapObjectPic_BigVenusaurDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BigCharizardDoll[] = {
+ obj_frame_tiles(gMapObjectPic_BigCharizardDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BigBlastoiseDoll[] = {
+ obj_frame_tiles(gMapObjectPic_BigBlastoiseDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BigWailmerDoll[] = {
+ obj_frame_tiles(gMapObjectPic_BigWailmerDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BigRegirockDoll[] = {
+ obj_frame_tiles(gMapObjectPic_BigRegirockDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BigRegiceDoll[] = {
+ obj_frame_tiles(gMapObjectPic_BigRegiceDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BigRegisteelDoll[] = {
+ obj_frame_tiles(gMapObjectPic_BigRegisteelDoll)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_LatiasLatios[] = {
+ obj_frame_tiles(gMapObjectPic_LatiasLatios_0),
+ obj_frame_tiles(gMapObjectPic_LatiasLatios_0),
+ obj_frame_tiles(gMapObjectPic_LatiasLatios_0),
+ obj_frame_tiles(gMapObjectPic_LatiasLatios_1),
+ obj_frame_tiles(gMapObjectPic_LatiasLatios_2),
+ obj_frame_tiles(gMapObjectPic_LatiasLatios_1),
+ obj_frame_tiles(gMapObjectPic_LatiasLatios_2),
+ obj_frame_tiles(gMapObjectPic_LatiasLatios_1),
+ obj_frame_tiles(gMapObjectPic_LatiasLatios_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Boy5[] = {
+ obj_frame_tiles(gMapObjectPic_Boy5_0),
+ obj_frame_tiles(gMapObjectPic_Boy5_1),
+ obj_frame_tiles(gMapObjectPic_Boy5_2),
+ obj_frame_tiles(gMapObjectPic_Boy5_0),
+ obj_frame_tiles(gMapObjectPic_Boy5_0),
+ obj_frame_tiles(gMapObjectPic_Boy5_1),
+ obj_frame_tiles(gMapObjectPic_Boy5_1),
+ obj_frame_tiles(gMapObjectPic_Boy5_2),
+ obj_frame_tiles(gMapObjectPic_Boy5_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_ContestJudge[] = {
+ obj_frame_tiles(gMapObjectPic_ContestJudge_0),
+ obj_frame_tiles(gMapObjectPic_ContestJudge_1),
+ obj_frame_tiles(gMapObjectPic_ContestJudge_2),
+ obj_frame_tiles(gMapObjectPic_ContestJudge_3),
+ obj_frame_tiles(gMapObjectPic_ContestJudge_4),
+ obj_frame_tiles(gMapObjectPic_ContestJudge_5),
+ obj_frame_tiles(gMapObjectPic_ContestJudge_6),
+ obj_frame_tiles(gMapObjectPic_ContestJudge_7),
+ obj_frame_tiles(gMapObjectPic_ContestJudge_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BrendanWatering[] = {
+ obj_frame_tiles(gMapObjectPic_BrendanWatering_0),
+ obj_frame_tiles(gMapObjectPic_BrendanWatering_1),
+ obj_frame_tiles(gMapObjectPic_BrendanWatering_2),
+ obj_frame_tiles(gMapObjectPic_BrendanWatering_3),
+ obj_frame_tiles(gMapObjectPic_BrendanWatering_3),
+ obj_frame_tiles(gMapObjectPic_BrendanWatering_4),
+ obj_frame_tiles(gMapObjectPic_BrendanWatering_4),
+ obj_frame_tiles(gMapObjectPic_BrendanWatering_5),
+ obj_frame_tiles(gMapObjectPic_BrendanWatering_5)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MayWatering[] = {
+ obj_frame_tiles(gMapObjectPic_MayWatering_0),
+ obj_frame_tiles(gMapObjectPic_MayWatering_1),
+ obj_frame_tiles(gMapObjectPic_MayWatering_2),
+ obj_frame_tiles(gMapObjectPic_MayWatering_3),
+ obj_frame_tiles(gMapObjectPic_MayWatering_3),
+ obj_frame_tiles(gMapObjectPic_MayWatering_4),
+ obj_frame_tiles(gMapObjectPic_MayWatering_4),
+ obj_frame_tiles(gMapObjectPic_MayWatering_5),
+ obj_frame_tiles(gMapObjectPic_MayWatering_5)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_BrendanDecorating[] = {
+ obj_frame_tiles(gMapObjectPic_BrendanDecorating)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_MayDecorating[] = {
+ obj_frame_tiles(gMapObjectPic_MayDecorating)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Archie[] = {
+ obj_frame_tiles(gMapObjectPic_Archie_0),
+ obj_frame_tiles(gMapObjectPic_Archie_1),
+ obj_frame_tiles(gMapObjectPic_Archie_2),
+ obj_frame_tiles(gMapObjectPic_Archie_3),
+ obj_frame_tiles(gMapObjectPic_Archie_4),
+ obj_frame_tiles(gMapObjectPic_Archie_5),
+ obj_frame_tiles(gMapObjectPic_Archie_6),
+ obj_frame_tiles(gMapObjectPic_Archie_7),
+ obj_frame_tiles(gMapObjectPic_Archie_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Maxie[] = {
+ obj_frame_tiles(gMapObjectPic_Maxie_0),
+ obj_frame_tiles(gMapObjectPic_Maxie_1),
+ obj_frame_tiles(gMapObjectPic_Maxie_2),
+ obj_frame_tiles(gMapObjectPic_Maxie_3),
+ obj_frame_tiles(gMapObjectPic_Maxie_4),
+ obj_frame_tiles(gMapObjectPic_Maxie_5),
+ obj_frame_tiles(gMapObjectPic_Maxie_6),
+ obj_frame_tiles(gMapObjectPic_Maxie_7),
+ obj_frame_tiles(gMapObjectPic_Maxie_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Kyogre[] = {
+ obj_frame_tiles(gMapObjectPic_Kyogre_0),
+ obj_frame_tiles(gMapObjectPic_Kyogre_0),
+ obj_frame_tiles(gMapObjectPic_Kyogre_0),
+ obj_frame_tiles(gMapObjectPic_Kyogre_1),
+ obj_frame_tiles(gMapObjectPic_Kyogre_1),
+ obj_frame_tiles(gMapObjectPic_Kyogre_1),
+ obj_frame_tiles(gMapObjectPic_Kyogre_1),
+ obj_frame_tiles(gMapObjectPic_Kyogre_1),
+ obj_frame_tiles(gMapObjectPic_Kyogre_1)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Groudon[] = {
+ obj_frame_tiles(gMapObjectPic_Groudon_0),
+ obj_frame_tiles(gMapObjectPic_Groudon_0),
+ obj_frame_tiles(gMapObjectPic_Groudon_0),
+ obj_frame_tiles(gMapObjectPic_Groudon_1),
+ obj_frame_tiles(gMapObjectPic_Groudon_1),
+ obj_frame_tiles(gMapObjectPic_Groudon_1),
+ obj_frame_tiles(gMapObjectPic_Groudon_1),
+ obj_frame_tiles(gMapObjectPic_Groudon_1),
+ obj_frame_tiles(gMapObjectPic_Groudon_1)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Fossil[] = {
+ obj_frame_tiles(gMapObjectPic_Fossil)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Regi[] = {
+ obj_frame_tiles(gMapObjectPic_Regi),
+ obj_frame_tiles(gMapObjectPic_Regi),
+ obj_frame_tiles(gMapObjectPic_Regi),
+ obj_frame_tiles(gMapObjectPic_Regi),
+ obj_frame_tiles(gMapObjectPic_Regi),
+ obj_frame_tiles(gMapObjectPic_Regi),
+ obj_frame_tiles(gMapObjectPic_Regi),
+ obj_frame_tiles(gMapObjectPic_Regi),
+ obj_frame_tiles(gMapObjectPic_Regi)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Skitty[] = {
+ obj_frame_tiles(gMapObjectPic_Skitty_0),
+ obj_frame_tiles(gMapObjectPic_Skitty_1),
+ obj_frame_tiles(gMapObjectPic_Skitty_2),
+ obj_frame_tiles(gMapObjectPic_Skitty_0),
+ obj_frame_tiles(gMapObjectPic_Skitty_0),
+ obj_frame_tiles(gMapObjectPic_Skitty_1),
+ obj_frame_tiles(gMapObjectPic_Skitty_1),
+ obj_frame_tiles(gMapObjectPic_Skitty_2),
+ obj_frame_tiles(gMapObjectPic_Skitty_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Kecleon[] = {
+ obj_frame_tiles(gMapObjectPic_Kecleon_0),
+ obj_frame_tiles(gMapObjectPic_Kecleon_1),
+ obj_frame_tiles(gMapObjectPic_Kecleon_2),
+ obj_frame_tiles(gMapObjectPic_Kecleon_0),
+ obj_frame_tiles(gMapObjectPic_Kecleon_0),
+ obj_frame_tiles(gMapObjectPic_Kecleon_1),
+ obj_frame_tiles(gMapObjectPic_Kecleon_1),
+ obj_frame_tiles(gMapObjectPic_Kecleon_2),
+ obj_frame_tiles(gMapObjectPic_Kecleon_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Rayquaza[] = {
+ obj_frame_tiles(gMapObjectPic_Rayquaza_0),
+ obj_frame_tiles(gMapObjectPic_Rayquaza_0),
+ obj_frame_tiles(gMapObjectPic_Rayquaza_0),
+ obj_frame_tiles(gMapObjectPic_Rayquaza_1),
+ obj_frame_tiles(gMapObjectPic_Rayquaza_1),
+ obj_frame_tiles(gMapObjectPic_Rayquaza_1),
+ obj_frame_tiles(gMapObjectPic_Rayquaza_1),
+ obj_frame_tiles(gMapObjectPic_Rayquaza_1),
+ obj_frame_tiles(gMapObjectPic_Rayquaza_1)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Zigzagoon[] = {
+ obj_frame_tiles(gMapObjectPic_Zigzagoon_0),
+ obj_frame_tiles(gMapObjectPic_Zigzagoon_1),
+ obj_frame_tiles(gMapObjectPic_Zigzagoon_2),
+ obj_frame_tiles(gMapObjectPic_Zigzagoon_0),
+ obj_frame_tiles(gMapObjectPic_Zigzagoon_0),
+ obj_frame_tiles(gMapObjectPic_Zigzagoon_1),
+ obj_frame_tiles(gMapObjectPic_Zigzagoon_1),
+ obj_frame_tiles(gMapObjectPic_Zigzagoon_2),
+ obj_frame_tiles(gMapObjectPic_Zigzagoon_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Pikachu[] = {
+ obj_frame_tiles(gMapObjectPic_Pikachu_0),
+ obj_frame_tiles(gMapObjectPic_Pikachu_1),
+ obj_frame_tiles(gMapObjectPic_Pikachu_2),
+ obj_frame_tiles(gMapObjectPic_Pikachu_0),
+ obj_frame_tiles(gMapObjectPic_Pikachu_0),
+ obj_frame_tiles(gMapObjectPic_Pikachu_1),
+ obj_frame_tiles(gMapObjectPic_Pikachu_1),
+ obj_frame_tiles(gMapObjectPic_Pikachu_2),
+ obj_frame_tiles(gMapObjectPic_Pikachu_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Azumarill[] = {
+ obj_frame_tiles(gMapObjectPic_Azumarill_0),
+ obj_frame_tiles(gMapObjectPic_Azumarill_1),
+ obj_frame_tiles(gMapObjectPic_Azumarill_2),
+ obj_frame_tiles(gMapObjectPic_Azumarill_0),
+ obj_frame_tiles(gMapObjectPic_Azumarill_0),
+ obj_frame_tiles(gMapObjectPic_Azumarill_1),
+ obj_frame_tiles(gMapObjectPic_Azumarill_1),
+ obj_frame_tiles(gMapObjectPic_Azumarill_2),
+ obj_frame_tiles(gMapObjectPic_Azumarill_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Wingull[] = {
+ obj_frame_tiles(gMapObjectPic_Wingull_0),
+ obj_frame_tiles(gMapObjectPic_Wingull_1),
+ obj_frame_tiles(gMapObjectPic_Wingull_2),
+ obj_frame_tiles(gMapObjectPic_Wingull_3),
+ obj_frame_tiles(gMapObjectPic_Wingull_3),
+ obj_frame_tiles(gMapObjectPic_Wingull_4),
+ obj_frame_tiles(gMapObjectPic_Wingull_4),
+ obj_frame_tiles(gMapObjectPic_Wingull_5),
+ obj_frame_tiles(gMapObjectPic_Wingull_5)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_TuberMSwimming[] = {
+ obj_frame_tiles(gMapObjectPic_TuberMSwimming_0),
+ obj_frame_tiles(gMapObjectPic_TuberMSwimming_1),
+ obj_frame_tiles(gMapObjectPic_TuberMSwimming_2),
+ obj_frame_tiles(gMapObjectPic_TuberMSwimming_3),
+ obj_frame_tiles(gMapObjectPic_TuberMSwimming_4),
+ obj_frame_tiles(gMapObjectPic_TuberMSwimming_5),
+ obj_frame_tiles(gMapObjectPic_TuberMSwimming_6),
+ obj_frame_tiles(gMapObjectPic_TuberMSwimming_7),
+ obj_frame_tiles(gMapObjectPic_TuberMSwimming_8)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Azurill[] = {
+ obj_frame_tiles(gMapObjectPic_Azurill_0),
+ obj_frame_tiles(gMapObjectPic_Azurill_1),
+ obj_frame_tiles(gMapObjectPic_Azurill_2),
+ obj_frame_tiles(gMapObjectPic_Azurill_0),
+ obj_frame_tiles(gMapObjectPic_Azurill_0),
+ obj_frame_tiles(gMapObjectPic_Azurill_1),
+ obj_frame_tiles(gMapObjectPic_Azurill_1),
+ obj_frame_tiles(gMapObjectPic_Azurill_2),
+ obj_frame_tiles(gMapObjectPic_Azurill_2)
+};
+
+const struct SpriteFrameImage gMapObjectPicTable_Mom[] = {
+ obj_frame_tiles(gMapObjectPic_Mom_0),
+ obj_frame_tiles(gMapObjectPic_Mom_1),
+ obj_frame_tiles(gMapObjectPic_Mom_2),
+ obj_frame_tiles(gMapObjectPic_Mom_3),
+ obj_frame_tiles(gMapObjectPic_Mom_4),
+ obj_frame_tiles(gMapObjectPic_Mom_5),
+ obj_frame_tiles(gMapObjectPic_Mom_6),
+ obj_frame_tiles(gMapObjectPic_Mom_7),
+ obj_frame_tiles(gMapObjectPic_Mom_8),
+};
+
+#endif //POKERUBY_MAP_OBJECT_PIC_TABLES_H
diff --git a/include/data/field_map_obj/map_object_subsprites.h b/include/data/field_map_obj/map_object_subsprites.h
new file mode 100755
index 000000000..f928db88a
--- /dev/null
+++ b/include/data/field_map_obj/map_object_subsprites.h
@@ -0,0 +1,345 @@
+//
+// Created by scott on 6/17/2017.
+//
+
+#ifndef POKERUBY_MAP_OBJECT_SUBSPRITES_H
+#define POKERUBY_MAP_OBJECT_SUBSPRITES_H
+
+const struct Subsprite gMapObjectSubspriteTable_16x16_0[] = {
+ { -8, -8, 0, 1, 0, 2}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_16x16_1[] = {
+ { -8, -8, 0, 1, 0, 1}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_16x16_2[] = {
+ { -8, -8, 1, 0, 0, 2},
+ { -8, 0, 1, 0, 2, 3}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_16x16_3[] = {
+ { -8, -8, 0, 1, 0, 2},
+ { -8, -8, 0, 1, 0, 3}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_16x16_4[] = {
+ { -8, -8, 0, 1, 0, 1},
+ { -8, -8, 0, 1, 0, 3}
+};
+
+const struct SubspriteTable gMapObjectSubspriteTables_16x16[] = {
+ {0, NULL},
+ {1, gMapObjectSubspriteTable_16x16_0},
+ {1, gMapObjectSubspriteTable_16x16_1},
+ {2, gMapObjectSubspriteTable_16x16_2},
+ {2, gMapObjectSubspriteTable_16x16_3},
+ {2, gMapObjectSubspriteTable_16x16_4}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_16x32_0[] = {
+ { -8, -16, 2, 2, 0, 2}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_16x32_1[] = {
+ { -8, -16, 2, 2, 0, 1}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_16x32_2[] = {
+ { -8, -16, 0, 1, 0, 2},
+ { -8, 0, 1, 0, 4, 2},
+ { -8, 8, 1, 0, 6, 3}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_16x32_3[] = {
+ { -8, -16, 0, 1, 0, 2},
+ { -8, 0, 0, 1, 4, 3}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_16x32_4[] = {
+ { -8, -16, 0, 1, 0, 1},
+ { -8, 0, 0, 1, 4, 3}
+};
+
+const struct SubspriteTable gMapObjectSubspriteTables_16x32[] = {
+ {0, NULL},
+ {1, gMapObjectSubspriteTable_16x32_0},
+ {1, gMapObjectSubspriteTable_16x32_1},
+ {3, gMapObjectSubspriteTable_16x32_2},
+ {2, gMapObjectSubspriteTable_16x32_3},
+ {2, gMapObjectSubspriteTable_16x32_4}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_32x32_0[] = {
+ {-16, -16, 0, 2, 0, 2}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_32x32_1[] = {
+ {-16, -16, 0, 2, 0, 1}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_32x32_2[] = {
+ {-16, -16, 1, 2, 0, 2},
+ {-16, 0, 1, 1, 8, 2},
+ {-16, 8, 1, 1, 12, 3}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_32x32_3[] = {
+ {-16, -16, 1, 2, 0, 2},
+ {-16, 0, 1, 2, 8, 3}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_32x32_4[] = {
+ {-16, -16, 1, 2, 0, 1},
+ {-16, 0, 1, 2, 8, 3}
+};
+
+const struct SubspriteTable gMapObjectSubspriteTables_32x32[] = {
+ {0, NULL},
+ {1, gMapObjectSubspriteTable_32x32_0},
+ {1, gMapObjectSubspriteTable_32x32_1},
+ {3, gMapObjectSubspriteTable_32x32_2},
+ {2, gMapObjectSubspriteTable_32x32_3},
+ {2, gMapObjectSubspriteTable_32x32_4}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_Truck_0[] = {
+ {-24, -24, 1, 1, 0, 2},
+ { 8, -24, 1, 0, 4, 2},
+ {-24, -16, 1, 1, 6, 2},
+ { 8, -16, 1, 0, 10, 2},
+ {-24, -8, 1, 1, 12, 2},
+ { 8, -8, 1, 0, 16, 2},
+ {-24, 0, 1, 1, 18, 2},
+ { 8, 0, 1, 0, 22, 2},
+ {-24, 8, 1, 1, 24, 2},
+ { 8, 8, 1, 0, 28, 2},
+ {-24, 16, 1, 1, 30, 2},
+ { 8, 16, 1, 0, 34, 2}
+};
+
+const struct SubspriteTable gMapObjectSubspriteTables_Truck[] = {
+ {12, gMapObjectSubspriteTable_Truck_0},
+ {12, gMapObjectSubspriteTable_Truck_0},
+ {12, gMapObjectSubspriteTable_Truck_0},
+ {12, gMapObjectSubspriteTable_Truck_0},
+ {12, gMapObjectSubspriteTable_Truck_0},
+ {12, gMapObjectSubspriteTable_Truck_0}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_Unused_0[] = {
+ {-32, -16, 1, 3, 0, 2}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_Unused_1[] = {
+ {-32, -16, 1, 3, 0, 1}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_Unused_2[] = {
+ {-32, -16, 1, 3, 0, 2}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_Unused_3[] = {
+ {-32, -16, 1, 3, 0, 2}
+};
+
+const struct SubspriteTable gMapObjectSubspriteTables_Unused[] = {
+ {0, NULL},
+ {1, gMapObjectSubspriteTable_Unused_0},
+ {1, gMapObjectSubspriteTable_Unused_1},
+ {1, gMapObjectSubspriteTable_Unused_2},
+ {1, gMapObjectSubspriteTable_Unused_3},
+ {1, gMapObjectSubspriteTable_Unused_3}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_CableCar_0[] = {
+ {-32, -32, 0, 3, 0, 2}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_CableCar_1[] = {
+ {-32, -32, 0, 3, 0, 1}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_CableCar_2[] = {
+ {-32, -32, 0, 3, 0, 2}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_CableCar_3[] = {
+ {-32, -32, 0, 3, 0, 2}
+};
+
+const struct SubspriteTable gMapObjectSubspriteTables_CableCar[] = {
+ {0, NULL},
+ {1, gMapObjectSubspriteTable_CableCar_0},
+ {1, gMapObjectSubspriteTable_CableCar_1},
+ {1, gMapObjectSubspriteTable_CableCar_2},
+ {1, gMapObjectSubspriteTable_CableCar_3},
+ {1, gMapObjectSubspriteTable_CableCar_3}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_SSTidal_0[] = {
+ {-48, -20, 1, 1, 0, 2},
+ {-16, -20, 1, 1, 4, 2},
+ { 16, -20, 1, 1, 8, 2},
+ {-48, -12, 1, 1, 12, 2},
+ {-16, -12, 1, 1, 16, 2},
+ { 16, -12, 1, 1, 20, 2},
+ {-48, -4, 1, 1, 24, 2},
+ {-16, -4, 1, 1, 28, 2},
+ { 16, -4, 1, 1, 32, 2},
+ {-48, 4, 1, 1, 36, 2},
+ {-16, 4, 1, 1, 40, 2},
+ { 16, 4, 1, 1, 44, 2},
+ {-48, 12, 1, 1, 48, 2},
+ {-16, 12, 1, 1, 52, 2},
+ { 16, 12, 1, 1, 56, 2}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_SSTidal_1[] = {
+ {-48, -20, 1, 1, 0, 1},
+ {-16, -20, 1, 1, 4, 1},
+ { 16, -20, 1, 1, 8, 1},
+ {-48, -12, 1, 1, 12, 1},
+ {-16, -12, 1, 1, 16, 1},
+ { 16, -12, 1, 1, 20, 1},
+ {-48, -4, 1, 1, 24, 1},
+ {-16, -4, 1, 1, 28, 1},
+ { 16, -4, 1, 1, 32, 1},
+ {-48, 4, 1, 1, 36, 1},
+ {-16, 4, 1, 1, 40, 1},
+ { 16, 4, 1, 1, 44, 1},
+ {-48, 12, 1, 1, 48, 1},
+ {-16, 12, 1, 1, 52, 1},
+ { 16, 12, 1, 1, 56, 1}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_SSTidal_2[] = {
+ {-48, -20, 1, 1, 0, 2},
+ {-16, -20, 1, 1, 4, 2},
+ { 16, -20, 1, 1, 8, 2},
+ {-48, -12, 1, 1, 12, 2},
+ {-16, -12, 1, 1, 16, 2},
+ { 16, -12, 1, 1, 20, 2},
+ {-48, -4, 1, 1, 24, 2},
+ {-16, -4, 1, 1, 28, 2},
+ { 16, -4, 1, 1, 32, 2},
+ {-48, 4, 1, 1, 36, 2},
+ {-16, 4, 1, 1, 40, 2},
+ { 16, 4, 1, 1, 44, 2},
+ {-48, 12, 1, 1, 48, 2},
+ {-16, 12, 1, 1, 52, 2},
+ { 16, 12, 1, 1, 56, 2}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_SSTidal_3[] = {
+ {-48, -20, 1, 1, 0, 1},
+ {-16, -20, 1, 1, 4, 1},
+ { 16, -20, 1, 1, 8, 1},
+ {-48, -12, 1, 1, 12, 1},
+ {-16, -12, 1, 1, 16, 1},
+ { 16, -12, 1, 1, 20, 1},
+ {-48, -4, 1, 1, 24, 2},
+ {-16, -4, 1, 1, 28, 2},
+ { 16, -4, 1, 1, 32, 2},
+ {-48, 4, 1, 1, 36, 2},
+ {-16, 4, 1, 1, 40, 2},
+ { 16, 4, 1, 1, 44, 2},
+ {-48, 12, 1, 1, 48, 2},
+ {-16, 12, 1, 1, 52, 2},
+ { 16, 12, 1, 1, 56, 2}
+};
+
+const struct SubspriteTable gMapObjectSubspriteTables_SSTidal[] = {
+ {15, gMapObjectSubspriteTable_SSTidal_0},
+ {15, gMapObjectSubspriteTable_SSTidal_0},
+ {15, gMapObjectSubspriteTable_SSTidal_1},
+ {15, gMapObjectSubspriteTable_SSTidal_2},
+ {15, gMapObjectSubspriteTable_SSTidal_3},
+ {15, gMapObjectSubspriteTable_SSTidal_3}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_SubmarineShadow_0[] = {
+ {-48, -20, 1, 1, 0, 2},
+ {-16, -20, 1, 1, 4, 2},
+ { 16, -20, 1, 0, 8, 2},
+ { 32, -20, 0, 0, 10, 2},
+ {-48, -12, 1, 1, 11, 2},
+ {-16, -12, 1, 1, 15, 2},
+ { 16, -12, 1, 0, 19, 2},
+ { 32, -12, 0, 0, 21, 2},
+ {-48, -4, 1, 1, 22, 2},
+ {-16, -4, 1, 1, 26, 2},
+ { 16, -4, 1, 0, 30, 2},
+ { 32, -4, 0, 0, 32, 2},
+ {-48, 4, 1, 1, 33, 2},
+ {-16, 4, 1, 1, 37, 2},
+ { 16, 4, 1, 0, 41, 2},
+ { 32, 4, 0, 0, 43, 2}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_SubmarineShadow_1[] = {
+ {-48, -20, 1, 1, 0, 1},
+ {-16, -20, 1, 1, 4, 1},
+ { 16, -20, 1, 0, 8, 1},
+ { 32, -20, 0, 0, 10, 1},
+ {-48, -12, 1, 1, 11, 1},
+ {-16, -12, 1, 1, 15, 1},
+ { 16, -12, 1, 0, 19, 1},
+ { 32, -12, 0, 0, 21, 1},
+ {-48, -4, 1, 1, 22, 1},
+ {-16, -4, 1, 1, 26, 1},
+ { 16, -4, 1, 0, 30, 1},
+ { 32, -4, 0, 0, 32, 1},
+ {-48, 4, 1, 1, 33, 1},
+ {-16, 4, 1, 1, 37, 1},
+ { 16, 4, 1, 0, 41, 1},
+ { 32, 4, 0, 0, 43, 1}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_SubmarineShadow_2[] = {
+ {-48, -20, 1, 1, 0, 2},
+ {-16, -20, 1, 1, 4, 2},
+ { 16, -20, 1, 0, 8, 2},
+ { 32, -20, 0, 0, 10, 2},
+ {-48, -12, 1, 1, 11, 2},
+ {-16, -12, 1, 1, 15, 2},
+ { 16, -12, 1, 0, 19, 2},
+ { 32, -12, 0, 0, 21, 2},
+ {-48, -4, 1, 1, 22, 2},
+ {-16, -4, 1, 1, 26, 2},
+ { 16, -4, 1, 0, 30, 2},
+ { 32, -4, 0, 0, 32, 2},
+ {-48, 4, 1, 1, 33, 2},
+ {-16, 4, 1, 1, 37, 2},
+ { 16, 4, 1, 0, 41, 2},
+ { 32, 4, 0, 0, 43, 2}
+};
+
+const struct Subsprite gMapObjectSubspriteTable_SubmarineShadow_3[] = {
+ {-48, -20, 1, 1, 0, 1},
+ {-16, -20, 1, 1, 4, 1},
+ { 16, -20, 1, 0, 8, 1},
+ { 32, -20, 0, 0, 10, 1},
+ {-48, -12, 1, 1, 11, 1},
+ {-16, -12, 1, 1, 15, 1},
+ { 16, -12, 1, 0, 19, 1},
+ { 32, -12, 0, 0, 21, 1},
+ {-48, -4, 1, 1, 22, 2},
+ {-16, -4, 1, 1, 26, 2},
+ { 16, -4, 1, 0, 30, 2},
+ { 32, -4, 0, 0, 32, 2},
+ {-48, 4, 1, 1, 33, 2},
+ {-16, 4, 1, 1, 37, 2},
+ { 16, 4, 1, 0, 41, 2},
+ { 32, 4, 0, 0, 43, 2}
+};
+
+const struct SubspriteTable gMapObjectSubspriteTables_SubmarineShadow[] = {
+ {16, gMapObjectSubspriteTable_SubmarineShadow_0},
+ {16, gMapObjectSubspriteTable_SubmarineShadow_0},
+ {16, gMapObjectSubspriteTable_SubmarineShadow_1},
+ {16, gMapObjectSubspriteTable_SubmarineShadow_2},
+ {16, gMapObjectSubspriteTable_SubmarineShadow_3},
+ {16, gMapObjectSubspriteTable_SubmarineShadow_3}
+};
+#endif //POKERUBY_MAP_OBJECT_SUBSPRITES_H
diff --git a/include/data2.h b/include/data2.h
new file mode 100644
index 000000000..f292472ef
--- /dev/null
+++ b/include/data2.h
@@ -0,0 +1,47 @@
+#ifndef GUARD_DATA2_H
+#define GUARD_DATA2_H
+
+#include "sprite.h"
+
+struct UnknownStructD2
+{
+ u32 unk0;
+ u32 unk4;
+ u32 unk8;
+};
+
+struct MonCoords
+{
+ // This would use a bitfield, but sub_8079F44
+ // uses it as a u8 and casting won't match.
+ u8 coords; // u8 x:4, y:4;
+ u8 y_offset;
+};
+
+extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7C18;
+extern const union AnimCmd *const gSpriteAnimTable_81E7C64[];
+extern struct MonCoords gMonFrontPicCoords[];
+extern struct MonCoords gMonBackPicCoords[];
+extern struct CompressedSpriteSheet gMonFrontPicTable[];
+extern struct CompressedSpriteSheet gMonBackPicTable[];
+extern const struct CompressedSpritePalette gMonPaletteTable[];
+extern const struct CompressedSpritePalette gMonShinyPaletteTable[];
+extern const union AnimCmd *const *const gUnknown_081EC2A4[];
+extern const union AnimCmd *const *const gUnknown_081ECACC[];
+extern struct MonCoords gTrainerBackPicCoords[];
+extern struct CompressedSpriteSheet gTrainerBackPicTable[];
+extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
+extern u8 gEnemyMonElevation[];
+extern const u8 gTrainerClassNames[][13];
+extern const struct Trainer gTrainers[];
+extern u8 gSpeciesNames[][11];
+extern u8 gMoveNames[][13];
+extern const struct UnknownStructD2 gUnknown_081F9674;
+extern const u8 gUnknown_081F96C8[];
+extern struct CompressedSpriteSheet gUnknown_081FAEA4;
+extern struct CompressedSpritePalette gUnknown_081FAEAC;
+extern const struct SpriteTemplate gSpriteTemplate_81FAF0C;
+extern void *const gUnknown_081FAF4C[];
+extern struct BattleMove gBattleMoves[];
+
+#endif // GUARD_DATA2_H
diff --git a/include/daycare.h b/include/daycare.h
new file mode 100644
index 000000000..b90c50610
--- /dev/null
+++ b/include/daycare.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_DAYCARE_H
+#define GUARD_DAYCARE_H
+
+u8 Daycare_CountPokemon(struct BoxPokemon *);
+void sub_8041324(struct BoxPokemon *, struct RecordMixing_UnknownStruct *);
+void sub_8041790(int i);
+u16 sub_8041870(u16);
+void sub_8041940(void);
+void sub_8041950(void);
+void sub_8042044(struct Pokemon *mon, u16, u8);
+u8 sub_80422A0(void);
+u8 daycare_relationship_score_from_savegame(void);
+
+#endif // GUARD_DAYCARE_H
diff --git a/include/de_rom_8040FE0.h b/include/de_rom_8040FE0.h
new file mode 100644
index 000000000..1ec4ba28c
--- /dev/null
+++ b/include/de_rom_8040FE0.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_DE_ROM_8040FE0
+#define GUARD_DE_ROM_8040FE0
+
+u8 *de_sub_8041024(s32 arg0, u32 arg1);
+
+#endif // GUARD_DE_ROM_8040FE0
diff --git a/include/debug.h b/include/debug.h
new file mode 100644
index 000000000..f3ad8c401
--- /dev/null
+++ b/include/debug.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_DEBUG_H
+#define GUARD_DEBUG_H
+
+// matsuda_debug_menu
+void sub_80AAF30(void);
+
+#endif // GUARD_DEBUG_H
diff --git a/include/decompress.h b/include/decompress.h
index a9bdd341b..07d69301f 100644
--- a/include/decompress.h
+++ b/include/decompress.h
@@ -5,13 +5,13 @@
void sub_800D238(const void *src, void *dest);
void LZDecompressVram(const void *src, void *dest);
-void LoadCompressedObjectPic(const struct SpriteSheet *a);
-void LoadCompressedObjectPicOverrideBuffer(const struct SpriteSheet *a, void *buffer);
-void LoadCompressedObjectPalette(const struct SpritePalette *a);
-void LoadCompressedObjectPaletteOverrideBuffer(const struct SpritePalette *a, void *buffer);
-void DecompressPicFromTable_2(const struct SpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 f);
-void sub_800D334(const struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g);
-void sub_800D378(const struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g, u32 h);
+void LoadCompressedObjectPic(const struct CompressedSpriteSheet *a);
+void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *a, void *buffer);
+void LoadCompressedObjectPalette(const struct CompressedSpritePalette *a);
+void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer);
+void DecompressPicFromTable_2(const struct CompressedSpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 f);
+void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g);
+void LoadSpecialPokePic(const struct CompressedSpriteSheet *spriteSheet, u32 b, u32 c, u32 d, void *dest, s32 species, u32 g, u32 h);
void Unused_LZDecompressWramIndirect(const void **src, void *dest);
#endif // GUARD_DECOMPRESS_H
diff --git a/include/decoration.h b/include/decoration.h
index 4bad93d1f..2595d491a 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -1,16 +1,379 @@
#ifndef GUARD_DECORATION_H
#define GUARD_DECORATION_H
+#include "task.h"
+
+enum DecoId {
+ /*000*/ DECOR_NONE,
+ /*001*/ DECOR_SMALL_DESK,
+ /*002*/ DECOR_POKEMON_DESK,
+ /*003*/ DECOR_HEAVY_DESK,
+ /*004*/ DECOR_RAGGED_DESK,
+ /*005*/ DECOR_COMFORT_DESK,
+ /*006*/ DECOR_PRETTY_DESK,
+ /*007*/ DECOR_BRICK_DESK,
+ /*008*/ DECOR_CAMP_DESK,
+ /*009*/ DECOR_HARD_DESK,
+ /*010*/ DECOR_SMALL_CHAIR,
+ /*011*/ DECOR_POKEMON_CHAIR,
+ /*012*/ DECOR_HEAVY_CHAIR,
+ /*013*/ DECOR_PRETTY_CHAIR,
+ /*014*/ DECOR_COMFORT_CHAIR,
+ /*015*/ DECOR_RAGGED_CHAIR,
+ /*016*/ DECOR_BRICK_CHAIR,
+ /*017*/ DECOR_CAMP_CHAIR,
+ /*018*/ DECOR_HARD_CHAIR,
+ /*019*/ DECOR_RED_PLANT,
+ /*020*/ DECOR_TROPICAL_PLANT,
+ /*021*/ DECOR_PRETTY_FLOWERS,
+ /*022*/ DECOR_COLORFUL_PLANT,
+ /*023*/ DECOR_BIG_PLANT,
+ /*024*/ DECOR_GORGEOUS_PLANT,
+ /*025*/ DECOR_RED_BRICK,
+ /*026*/ DECOR_YELLOW_BRICK,
+ /*027*/ DECOR_BLUE_BRICK,
+ /*028*/ DECOR_RED_BALLOON,
+ /*029*/ DECOR_BLUE_BALLOON,
+ /*030*/ DECOR_YELLOW_BALLOON,
+ /*031*/ DECOR_RED_TENT,
+ /*032*/ DECOR_BLUE_TENT,
+ /*033*/ DECOR_SOLID_BOARD,
+ /*034*/ DECOR_SLIDE,
+ /*035*/ DECOR_FENCE_LENGTH,
+ /*036*/ DECOR_FENCE_WIDTH,
+ /*037*/ DECOR_TIRE,
+ /*038*/ DECOR_STAND,
+ /*039*/ DECOR_MUD_BALL,
+ /*040*/ DECOR_BREAKABLE_DOOR,
+ /*041*/ DECOR_SAND_ORNAMENT,
+ /*042*/ DECOR_SILVER_SHIELD,
+ /*043*/ DECOR_GOLD_SHIELD,
+ /*044*/ DECOR_GLASS_ORNAMENT,
+ /*045*/ DECOR_TV,
+ /*046*/ DECOR_ROUND_TV,
+ /*047*/ DECOR_CUTE_TV,
+ /*048*/ DECOR_GLITTER_MAT,
+ /*049*/ DECOR_JUMP_MAT,
+ /*050*/ DECOR_SPIN_MAT,
+ /*051*/ DECOR_C_LOW_NOTE_MAT,
+ /*052*/ DECOR_D_NOTE_MAT,
+ /*053*/ DECOR_E_NOTE_MAT,
+ /*054*/ DECOR_F_NOTE_MAT,
+ /*055*/ DECOR_G_NOTE_MAT,
+ /*056*/ DECOR_A_NOTE_MAT,
+ /*057*/ DECOR_B_NOTE_MAT,
+ /*058*/ DECOR_C_HIGH_NOTE_MAT,
+ /*059*/ DECOR_SURF_MAT,
+ /*060*/ DECOR_THUNDER_MAT,
+ /*061*/ DECOR_FIRE_BLAST_MAT,
+ /*062*/ DECOR_POWDER_SNOW_MAT,
+ /*063*/ DECOR_ATTRACT_MAT,
+ /*064*/ DECOR_FISSURE_MAT,
+ /*065*/ DECOR_SPIKES_MAT,
+ /*066*/ DECOR_BALL_POSTER,
+ /*067*/ DECOR_GREEN_POSTER,
+ /*068*/ DECOR_RED_POSTER,
+ /*069*/ DECOR_BLUE_POSTER,
+ /*070*/ DECOR_CUTE_POSTER,
+ /*071*/ DECOR_PIKA_POSTER,
+ /*072*/ DECOR_LONG_POSTER,
+ /*073*/ DECOR_SEA_POSTER,
+ /*074*/ DECOR_SKY_POSTER,
+ /*075*/ DECOR_KISS_POSTER,
+ /*076*/ DECOR_PICHU_DOLL,
+ /*077*/ DECOR_PIKACHU_DOLL,
+ /*078*/ DECOR_MARILL_DOLL,
+ /*079*/ DECOR_TOGEPI_DOLL,
+ /*080*/ DECOR_CYNDAQUIL_DOLL,
+ /*081*/ DECOR_CHIKORITA_DOLL,
+ /*082*/ DECOR_TOTODILE_DOLL,
+ /*083*/ DECOR_JIGGLYPUFF_DOLL,
+ /*084*/ DECOR_MEOWTH_DOLL,
+ /*085*/ DECOR_CLEFAIRY_DOLL,
+ /*086*/ DECOR_DITTO_DOLL,
+ /*087*/ DECOR_SMOOCHUM_DOLL,
+ /*088*/ DECOR_TREECKO_DOLL,
+ /*089*/ DECOR_TORCHIC_DOLL,
+ /*090*/ DECOR_MUDKIP_DOLL,
+ /*091*/ DECOR_DUSKULL_DOLL,
+ /*092*/ DECOR_WYNAUT_DOLL,
+ /*093*/ DECOR_BALTOY_DOLL,
+ /*094*/ DECOR_KECLEON_DOLL,
+ /*095*/ DECOR_AZURILL_DOLL,
+ /*096*/ DECOR_SKITTY_DOLL,
+ /*097*/ DECOR_SWABLU_DOLL,
+ /*098*/ DECOR_GULPIN_DOLL,
+ /*099*/ DECOR_LOTAD_DOLL,
+ /*100*/ DECOR_SEEDOT_DOLL,
+ /*101*/ DECOR_PIKA_CUSHION,
+ /*102*/ DECOR_ROUND_CUSHION,
+ /*103*/ DECOR_KISS_CUSHION,
+ /*104*/ DECOR_ZIGZAG_CUSHION,
+ /*105*/ DECOR_SPIN_CUSHION,
+ /*106*/ DECOR_DIAMOND_CUSHION,
+ /*107*/ DECOR_BALL_CUSHION,
+ /*108*/ DECOR_GRASS_CUSHION,
+ /*109*/ DECOR_FIRE_CUSHION,
+ /*110*/ DECOR_WATER_CUSHION,
+ /*111*/ DECOR_SNORLAX_DOLL,
+ /*112*/ DECOR_RHYDON_DOLL,
+ /*113*/ DECOR_LAPRAS_DOLL,
+ /*114*/ DECOR_VENUSAUR_DOLL,
+ /*115*/ DECOR_CHARIZARD_DOLL,
+ /*116*/ DECOR_BLASTOISE_DOLL,
+ /*117*/ DECOR_WAILMER_DOLL,
+ /*118*/ DECOR_REGIROCK_DOLL,
+ /*119*/ DECOR_REGICE_DOLL,
+ /*120*/ DECOR_REGISTEEL_DOLL
+};
+
+enum DecorPerm {
+ /*
+ * The nomenclature here describes collision and placement permissions, in that order.
+ */
+ DECORPERM_SOLID_FLOOR,
+ DECORPERM_PASS_FLOOR,
+ DECORPERM_BEHIND_FLOOR,
+ DECORPERM_NA_WALL,
+ DECORPERM_SOLID_MAT
+};
+
+enum DecorShape {
+ /*
+ * Width-x-height
+ */
+ DECORSHAPE_1x1,
+ DECORSHAPE_2x1,
+ DECORSHAPE_3x1, // unused
+ DECORSHAPE_4x2,
+ DECORSHAPE_2x2,
+ DECORSHAPE_1x2,
+ DECORSHAPE_1x3, // unused
+ DECORSHAPE_2x4,
+ DECORSHAPE_3x3,
+ DECORSHAPE_3x2
+};
+
+enum DecoCat {
+ /*
+ * In which category you can find the decoration in the PC.
+ */
+ /*0*/ DECORCAT_DESK,
+ /*1*/ DECORCAT_CHAIR,
+ /*2*/ DECORCAT_PLANT,
+ /*3*/ DECORCAT_ORNAMENT,
+ /*4*/ DECORCAT_MAT,
+ /*5*/ DECORCAT_POSTER,
+ /*6*/ DECORCAT_DOLL,
+ /*7*/ DECORCAT_CUSHION
+};
+
struct Decoration
{
- u8 id;
- u8 name[16];
- u8 decor_field_11;
- u8 decor_field_12;
- u8 decor_field_13;
- u16 price;
- u8 *description;
- void *tiles;
+ /*0x00*/ u8 id;
+ /*0x01*/ u8 name[16];
+ /*0x11*/ u8 permission;
+ /*0x12*/ u8 shape;
+ /*0x13*/ u8 category;
+ /*0x14*/ u16 price;
+ /*0x18*/ const u8 *description;
+ /*0x1c*/ const u16 *tiles;
};
+struct DecoPCPointers
+{
+ /* 0x00 */ u8 *items;
+ /* 0x04 */ u8 *pos;
+ /* 0x08 */ u8 size;
+ /* 0x09 */ u8 isPlayerRoom;
+};
+
+struct DecorationInventory
+{
+ u8 *items;
+ u8 size;
+};
+
+struct UnkStruct_803EC860
+{
+ const u8 *tiles;
+ const u8 *y;
+ const u8 *x;
+ u8 size;
+};
+
+extern const struct UnkStruct_803EC860 gUnknown_083EC860[];
+
+extern u8 ewram[];
+#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000))
+
+struct UnkStruct_02038900
+{
+ /*0x000; 0x02038900*/ const struct Decoration *decoration;
+ /*0x004; 0x02038904*/ u16 tiles[0x40];
+ /*0x084; 0x02038984*/ u8 image[0x800];
+ /*0x884; 0x02039184*/ u16 palette[16];
+};
+
+struct UnkStruct_083EC900
+{
+ u8 shape;
+ u8 size;
+ u8 x;
+ u8 y;
+};
+
+struct UnkStruct_020391B4
+{
+ u8 decorId;
+ u8 width;
+ u8 height;
+ u16 flagId;
+};
+
+extern const struct UnkStruct_083EC900 gUnknown_083EC900[];
+extern const struct SpritePalette gUnknown_083EC954;
+extern const struct SpritePalette gUnknown_083ECA5C;
+extern const struct SpritePalette gUnknown_083ECA64;
+extern const struct SpriteTemplate gSpriteTemplate_83EC93C;
+extern const struct SpriteTemplate gSpriteTemplate_83ECA88;
+
+extern const struct Decoration gDecorations[];
+extern struct UnkStruct_02038900 gUnknown_02038900;
+extern u8 *gUnknown_020388D0;
+extern u8 gUnknown_081A2F7B[];
+extern u8 gUnknown_081A2F8A[];
+extern struct OamData gUnknown_020391AC;
+
+extern u8 gUnknown_020388D4;
+extern u8 gUnknown_020388D5;
+extern u8 gUnknown_020388F2;
+extern u8 gUnknown_020388F3;
+extern u8 gUnknown_020388F4;
+extern u8 gUnknown_020388F5;
+extern u8 gUnknown_020388F6;
+extern u8 gUnknown_020388D6[16];
+extern u8 gUnknown_020388E6[12];
+extern u16 gSpecialVar_0x8004;
+extern u16 gSpecialVar_0x8005;
+extern u16 gSpecialVar_0x8006;
+extern u16 gSpecialVar_0x8007;
+extern u16 gUnknown_020391A4;
+extern u16 gUnknown_020391A6;
+extern u8 gUnknown_020391A8;
+extern u8 gUnknown_020391A9;
+extern u8 gUnknown_020391AA;
+extern u8 gUnknown_02039234;
+extern void (*gFieldCallback)(void);
+extern const struct YesNoFuncTable gUnknown_083EC96C[];
+extern struct UnkStruct_020391B4 gUnknown_020391B4[16];
+
+extern const u16 gUnknown_083EC654[3];
+extern const struct DecorationInventory gDecorationInventories[];
+extern const u8 *const gUnknown_083EC5E4[];
+extern const u8 *const gUnknown_083EC624[];
+extern u8 gUnknown_020388F7[];
+extern const struct MenuAction2 gUnknown_083EC604[];
+extern const struct MenuAction3 gUnknown_083EC634[];
+extern const u8 gUnknown_083EC65A[];
+extern const u8 gUnknown_083EC97C[];
+extern const u8 gUnknown_083EC984[];
+extern void sub_80B3068(u8); // src/shop
+extern const struct YesNoFuncTable gUnknown_083EC95C;
+extern const struct YesNoFuncTable gUnknown_083EC964;
+extern const struct YesNoFuncTable gUnknown_083EC9CC;
+extern const struct YesNoFuncTable gUnknown_083EC9D4;
+extern const struct YesNoFuncTable gUnknown_083ECAA0;
+
+extern u8 sub_8134194(u8); // src/decoration_inventory
+extern bool8 sub_81341D4(void); // src/decoration_inventory
+extern void sub_8134104(u8); // src/decoration_inventory
+extern bool8 sub_807D770(void);
+extern void sub_80F944C(void); // src/menu_helpers
+extern void sub_80F9480(u8 *, u8); // src/menu_helpers
+extern void sub_80F94A4(u8, u8 *, u8, s16); // src/menu_helpers
+extern void sub_80F94F8(u8 *); // src/menu_helpers
+extern void sub_80F9520(u8 *, u8); // src/menu_helpers
+extern void DestroyVerticalScrollIndicator(u8); // src/menu_helpers
+extern void CreateVerticalScrollIndicators(u8, u8, u8); // src/menu_helpers
+extern void LoadScrollIndicatorPalette(void); // src/menu_helpers
+extern void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); // src/menu_helpers
+extern void BuyMenuFreeMemory(void); // src/menu_helpers
+extern void sub_8109DAC(u8); // src/trader
+extern void ReshowPlayerPC(u8); // src/player_pc
+
+void sub_80FE2B4(void);
+void Task_DecorationPCProcessMenuInput(u8);
+void sub_80FE394(void);
+void gpu_pal_decompress_alloc_tag_and_upload(u8);
+void sub_80FE5AC(u8);
+void sub_80FE604(u8);
+void sub_80FE728(u8);
+void sub_80FE758(u8);
+void sub_80FE868(u8);
+void sub_80FE948(u8);
+void sub_80FEABC(u8, u8);
+void sub_80FEC94(u8);
+void sub_80FECB8(u8);
+void sub_80FECE0(u8);
+void sub_80FEF50(u8);
+void sub_80FF394(u16, u16, u16);
+void sub_80FF6AC(u8);
+void sub_80FF960(u8);
+void AddDecorationIconObjectFromFieldObject(struct UnkStruct_02038900 *, u8);
+void SetUpPlacingDecorationPlayerAvatar(u8, struct UnkStruct_02038900 *);
+void sub_8100038(u8);
+void sub_81000A0(u8);
+void sub_8100174(u8);
+void sub_8100248(u8);
+void sub_810028C(u8);
+void c1_overworld_prev_quest(u8);
+void sub_8100364(void);
+void sub_810045C(void);
+void sub_810065C(u8);
+void sub_81006A8(u8);
+void sub_81006D0(struct UnkStruct_02038900 *);
+void sub_810070C(u16 *, u16);
+void sub_8100874(struct UnkStruct_02038900 *);
+void sub_81008BC(struct UnkStruct_02038900 *);
+void sub_8100930(u8);
+void sub_81009A8(struct Sprite *);
+void sub_81009C0(struct Sprite *);
+bool8 sub_8100D38(u8);
+void sub_8100E70(u8);
+void sub_8100EEC(u8);
+void sub_8101024(u8);
+void sub_81010F0(u8);
+void sub_8101460(u8);
+void sub_8101518(u8);
+void sub_81015B0(u8);
+void sub_81015E0(u8);
+void sub_810156C(u8);
+void sub_8101678(void);
+void sub_8101698(struct Sprite *);
+void sub_81016C8(void);
+void sub_81016F4(void);
+void sub_8101824(u8);
+void sub_8109A30(u8);
+
+void sub_80FF160(u8);
+void sub_80FF5BC(u8);
+void sub_80FF058(u8);
+void sub_8100A0C(u8);
+void sub_8101700(u8);
+void sub_81017A0(u8);
+void sub_8109D04(u8);
+
+void sub_80FED3C(u8);
+void sub_80FFAB0(u8);
+void sub_80FFB08(u8);
+void sub_81000C4(u8);
+void sub_810026C(u8);
+void sub_8100F88(u8);
+void sub_8100FB4(u8);
+void sub_810153C(u8);
+void sub_8101590(u8);
+void sub_8101848(u8);
+void DoPlayerPCDecoration(u8);
+
#endif // GUARD_DECORATION_H
diff --git a/include/decoration_inventory.h b/include/decoration_inventory.h
new file mode 100644
index 000000000..afc354237
--- /dev/null
+++ b/include/decoration_inventory.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_DECORATION_INVENTORY_H
+#define GUARD_DECORATION_INVENTORY_H
+
+void ClearDecorationInventories(void);
+u8 sub_8133FE4(u8);
+u8 IsThereStorageSpaceForDecoration(u8);
+u8 sub_8134074(u8);
+s8 sub_81340A8(u8);
+
+#endif // GUARD_DECORATION_INVENTORY_H
diff --git a/include/dewford_trend.h b/include/dewford_trend.h
new file mode 100644
index 000000000..26075d633
--- /dev/null
+++ b/include/dewford_trend.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_DEWFORDTREND_H
+#define GUARD_DEWFORDTREND_H
+
+#define ARRAY_2007800 ((struct EasyChatPair *)(unk_2000000 + 0x7800))
+#define ARRAY_2007900 ((struct EasyChatPair *)(unk_2000000 + 0x7900))
+
+void InitDewfordTrend(void);
+void sub_80FA4E4(void *, u32, u8);
+void UpdateDewfordTrendPerDay(u16);
+
+#endif
diff --git a/include/diploma.h b/include/diploma.h
new file mode 100644
index 000000000..81e9e3bb2
--- /dev/null
+++ b/include/diploma.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_DIPLOMA_H
+#define GUARD_DIPLOMA_H
+
+void sub_8145D88(void);
+
+#endif // GUARD_DIPLOMA_H
diff --git a/include/easy_chat.h b/include/easy_chat.h
new file mode 100644
index 000000000..03e9bb737
--- /dev/null
+++ b/include/easy_chat.h
@@ -0,0 +1,48 @@
+#ifndef GUARD_EASYCHAT_H
+#define GUARD_EASYCHAT_H
+
+enum {
+ EC_GROUP_POKEMON,
+ EC_GROUP_TRAINER,
+ EC_GROUP_STATUS,
+ EC_GROUP_BATTLE,
+ EC_GROUP_GREETINGS,
+ EC_GROUP_PEOPLE,
+ EC_GROUP_VOICES,
+ EC_GROUP_SPEECH,
+ EC_GROUP_ENDINGS,
+ EC_GROUP_FEELINGS,
+ EC_GROUP_CONDITIONS,
+ EC_GROUP_ACTIONS,
+ EC_GROUP_LIFESTYLE,
+ EC_GROUP_HOBBIES,
+ EC_GROUP_TIME,
+ EC_GROUP_MISC,
+ EC_GROUP_ADJECTIVES,
+ EC_GROUP_EVENTS,
+ EC_GROUP_MOVE_1,
+ EC_GROUP_MOVE_2,
+ EC_GROUP_TRENDY_SAYING,
+ EC_GROUP_POKEMON_2,
+};
+
+
+u16 sub_80EB72C(u16 group);
+void sub_80EB6FC(u16 *, u16);
+void InitEasyChatPhrases(void);
+u8 sub_80EAD7C(u8 group);
+u16 sub_80EAE88(u8);
+u8 sub_80EB37C(u16);
+u8* sub_80EB3FC(u8 *, u16);
+u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16);
+u16 sub_80EB784(u16 group);
+u8 sub_80EB868(u8);
+void sub_80EB890(u8);
+u8 sub_80EB8C0(void);
+u16 sub_80EB8EC(void);
+
+#if GERMAN
+u32 de_sub_80EB748(u32, u32);
+#endif
+
+#endif // GUARD_EASYCHAT_H
diff --git a/include/event_data.h b/include/event_data.h
new file mode 100644
index 000000000..5cac27cc8
--- /dev/null
+++ b/include/event_data.h
@@ -0,0 +1,28 @@
+#ifndef GUARD_EVENT_DATA_H
+#define GUARD_EVENT_DATA_H
+
+#include "flags.h"
+#include "vars.h"
+
+void InitEventData(void);
+void ClearTempFieldEventData(void);
+void ClearUpperFlags(void);
+void DisableNationalPokedex(void);
+void EnableNationalPokedex(void);
+bool32 IsNationalPokedexEnabled(void);
+void DisableMysteryGift(void);
+void EnableMysteryGift(void);
+bool32 IsMysteryGiftEnabled(void);
+void DisableResetRTC(void);
+void EnableResetRTC(void);
+bool32 CanResetRTC(void);
+u16 *GetVarPointer(u16 id);
+u16 VarGet(u16 id);
+bool8 VarSet(u16 id, u16 value);
+u8 VarGetFieldObjectGraphicsId(u8 id);
+u8 *GetFlagPointer(u16 id);
+u8 FlagSet(u16 id);
+u8 FlagReset(u16 id);
+bool8 FlagGet(u16 id);
+
+#endif // GUARD_EVENT_DATA_H
diff --git a/include/field_camera.h b/include/field_camera.h
index 51c370d0a..9021b579e 100644
--- a/include/field_camera.h
+++ b/include/field_camera.h
@@ -1,6 +1,16 @@
#ifndef GUARD_FIELD_CAMERA_H
#define GUARD_FIELD_CAMERA_H
+struct CameraSomething
+{
+ void (*callback)(struct CameraSomething *);
+ u32 unk4;
+ s32 unk8;
+ s32 unkC;
+ s32 unk10;
+ s32 unk14;
+};
+
void move_tilemap_camera_to_upper_left_corner(void);
void sub_8057A58(void);
void sub_8057B14(u16 *a, u16 *b);
diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h
new file mode 100644
index 000000000..a85e02132
--- /dev/null
+++ b/include/field_control_avatar.h
@@ -0,0 +1,40 @@
+#ifndef GUARD_FIELDCONTROLAVATAR_H
+#define GUARD_FIELDCONTROLAVATAR_H
+
+struct FieldInput
+{
+ u8 pressedAButton:1;
+ u8 input_field_0_1:1;
+ u8 pressedStartButton:1;
+ u8 pressedSelectButton:1;
+ u8 input_field_0_4:1;
+ u8 input_field_0_5:1;
+ u8 input_field_0_6:1;
+ u8 pressedBButton:1;
+ u8 input_field_1_0:1;
+ u8 input_field_1_1:1;
+ u8 input_field_1_2:1;
+ u8 input_field_1_3:1;
+ u8 input_field_1_4:1;
+ u8 input_field_1_5:1;
+ u8 input_field_1_6:1;
+ u8 input_field_1_7:1;
+ u8 dpadDirection;
+ u8 input_field_3;
+};
+
+void FieldClearPlayerInput(struct FieldInput *pStruct);
+void FieldGetPlayerInput(struct FieldInput *pStruct, u16 keys, u16 heldKeys);
+int sub_8068024(struct FieldInput *pStruct);
+u8 *sub_80682A8(struct MapPosition *, u8, u8);
+void overworld_poison_timer_set(void);
+void prev_quest_postbuffer_cursor_backup_reset(void);
+u8 *sub_8068E24(struct MapPosition *);
+u8 *GetFieldObjectScriptPointerForComparison();
+bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *);
+bool8 sub_8068870(u16 a);
+bool8 sub_8068894(void);
+bool8 sub_8068A64(struct MapPosition *, u16);
+u8 sub_8068F18(void);
+
+#endif
diff --git a/include/field_door.h b/include/field_door.h
new file mode 100644
index 000000000..1759e0dc1
--- /dev/null
+++ b/include/field_door.h
@@ -0,0 +1,25 @@
+#ifndef GUARD_FIELDDOOR_H
+#define GUARD_FIELDDOOR_H
+
+struct DoorGraphics
+{
+ u16 metatileNum;
+ u8 unk2;
+ void *tiles;
+ void *palette;
+};
+
+struct DoorAnimFrame
+{
+ u8 time;
+ u16 offset;
+};
+
+void FieldSetDoorOpened(u32, u32);
+void FieldSetDoorClosed(u32, u32);
+s8 FieldAnimateDoorClose(u32, u32);
+s8 FieldAnimateDoorOpen(u32, u32);
+bool8 FieldIsDoorAnimationRunning(void);
+u32 sub_8058790(u32 x, u32 y);
+
+#endif
diff --git a/include/field_effect.h b/include/field_effect.h
index a46c048cb..cd84652b1 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -2,6 +2,84 @@
#define GUARD_FIELD_EFFECT_H
#include "sprite.h"
+#include "task.h"
+
+enum FieldEffectScriptIdx
+{
+ FLDEFF_EXCLAMATION_MARK_ICON_1,
+ FLDEFF_USE_CUT_ON_GRASS,
+ FLDEFF_USE_CUT_ON_TREE,
+ FLDEFF_SHADOW,
+ FLDEFF_TALL_GRASS,
+ FLDEFF_RIPPLE,
+ FLDEFF_FIELD_MOVE_SHOW_MON,
+ FLDEFF_ASH,
+ FLDEFF_SURF_BLOB,
+ FLDEFF_USE_SURF,
+ FLDEFF_DUST,
+ FLDEFF_USE_SECRET_POWER_CAVE,
+ FLDEFF_JUMP_TALL_GRASS,
+ FLDEFF_SAND_FOOTPRINTS,
+ FLDEFF_JUMP_BIG_SPLASH,
+ FLDEFF_SPLASH,
+ FLDEFF_JUMP_SMALL_SPLASH,
+ FLDEFF_LONG_GRASS,
+ FLDEFF_JUMP_LONG_GRASS,
+ FLDEFF_UNKNOWN_19,
+ FLDEFF_UNKNOWN_20,
+ FLDEFF_UNKNOWN_21,
+ FLDEFF_UNKNOWN_22,
+ FLDEFF_BERRY_TREE_GROWTH_SPARKLE,
+ FLDEFF_DEEP_SAND_FOOTPRINTS,
+ FLDEFF_POKECENTER_HEAL,
+ FLDEFF_USE_SECRET_POWER_TREE,
+ FLDEFF_USE_SECRET_POWER_SHRUB,
+ FLDEFF_TREE_DISGUISE,
+ FLDEFF_MOUNTAIN_DISGUISE,
+ FLDEFF_NPCFLY_OUT,
+ FLDEFF_USE_FLY,
+ FLDEFF_FLY_IN,
+ FLDEFF_EXCLAMATION_MARK_ICON_2,
+ FLDEFF_FEET_IN_FLOWING_WATER,
+ FLDEFF_BIKE_TIRE_TRACKS,
+ FLDEFF_SAND_DISGUISE,
+ FLDEFF_USE_ROCK_SMASH,
+ FLDEFF_USE_DIG,
+ FLDEFF_SAND_PILE,
+ FLDEFF_USE_STRENGTH,
+ FLDEFF_SHORT_GRASS,
+ FLDEFF_HOT_SPRINGS_WATER,
+ FLDEFF_USE_WATERFALL,
+ FLDEFF_USE_DIVE,
+ FLDEFF_POKEBALL,
+ FLDEFF_HEART_ICON,
+ FLDEFF_NOP_47,
+ FLDEFF_NOP_48,
+ FLDEFF_POP_OUT_OF_ASH,
+ FLDEFF_LAVARIDGE_GYM_WARP,
+ FLDEFF_SWEET_SCENT,
+ FLDEFF_SAND_PILLAR,
+ FLDEFF_BUBBLES,
+ FLDEFF_SPARKLE,
+ FLDEFF_SECRET_POWER_CAVE,
+ FLDEFF_SECRET_POWER_TREE,
+ FLDEFF_SECRET_POWER_SHRUB,
+ FLDEFF_CUT_GRASS,
+ FLDEFF_FIELD_MOVE_SHOW_MON_INIT,
+ FLDEFF_USE_FLY_ANCIENT_TOMB,
+ FLDEFF_PCTURN_ON,
+ FLDEFF_HALL_OF_FAME_RECORD,
+ FLDEFF_USE_TELEPORT
+};
+
+extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[2];
+extern const struct SpritePalette gUnknown_0839F114;
+extern const struct CompressedSpriteSheet gTrainerFrontPicTable[2];
+extern const struct SpriteTemplate gSpriteTemplate_839F128;
+extern const struct OamData gOamData_839F0F4;
+extern struct SpriteTemplate gUnknown_02024E8C;
+
+extern u8 gLastFieldPokeMenuOpened;
u32 FieldEffectStart(u8 id);
bool8 FieldEffectCmd_loadtiles(u8 **script, u32 *val);
@@ -25,5 +103,144 @@ void FieldEffectActiveListClear(void);
void FieldEffectActiveListAdd(u8 id);
void FieldEffectActiveListRemove(u8 id);
bool8 FieldEffectActiveListContains(u8 id);
+void sub_807DE38(u8 index);
+
+void SpriteCB_PokeballGlow(struct Sprite *);
+void SpriteCB_PokecenterMonitor(struct Sprite *);
+void SpriteCB_HallOfFameMonitor(struct Sprite *);
+
+void PokecenterHealEffect_0(struct Task *);
+void PokecenterHealEffect_1(struct Task *);
+void PokecenterHealEffect_2(struct Task *);
+void PokecenterHealEffect_3(struct Task *);
+
+void HallOfFameRecordEffect_0(struct Task *);
+void HallOfFameRecordEffect_1(struct Task *);
+void HallOfFameRecordEffect_2(struct Task *);
+void HallOfFameRecordEffect_3(struct Task *);
+
+void PokeballGlowEffect_0(struct Sprite *);
+void PokeballGlowEffect_1(struct Sprite *);
+void PokeballGlowEffect_2(struct Sprite *);
+void PokeballGlowEffect_3(struct Sprite *);
+void PokeballGlowEffect_4(struct Sprite *);
+void PokeballGlowEffect_5(struct Sprite *);
+void PokeballGlowEffect_6(struct Sprite *);
+void PokeballGlowEffect_7(struct Sprite *);
+
+bool8 sub_80867AC(struct Task *);
+bool8 sub_8086854(struct Task *);
+bool8 sub_8086870(struct Task *);
+bool8 sub_80868E4(struct Task *);
+bool8 sub_808699C(struct Task *);
+bool8 sub_80869B8(struct Task *);
+bool8 sub_80869F8(struct Task *);
+
+bool8 sub_8086AA0(struct Task *);
+bool8 sub_8086AC0(struct Task *);
+bool8 sub_8086B30(struct Task *);
+bool8 sub_8086B54(struct Task *);
+bool8 sub_8086B64(struct Task *);
+bool8 sub_8086B88(struct Task *);
+
+bool8 sub_8086CF4(struct Task *);
+bool8 sub_8086D70(struct Task *);
+bool8 sub_8086DB0(struct Task *);
+bool8 sub_8086E10(struct Task *);
+bool8 sub_8086E50(struct Task *);
+bool8 sub_8086EB0(struct Task *);
+bool8 sub_8086ED4(struct Task *);
+
+bool8 sub_8086FB0(struct Task *, struct MapObject *);
+bool8 waterfall_1_do_anim_probably(struct Task *, struct MapObject *);
+bool8 waterfall_2_wait_anim_finish_probably(struct Task *, struct MapObject *);
+bool8 sub_8087030(struct Task *, struct MapObject *);
+bool8 sub_8087058(struct Task *, struct MapObject *);
+
+bool8 sub_8087124(struct Task *);
+bool8 dive_2_unknown(struct Task *);
+bool8 dive_3_unknown(struct Task *);
+
+bool8 sub_808722C(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_8087264(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_8087298(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80872E4(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80873D8(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80873F4(struct Task *, struct MapObject *, struct Sprite *);
+
+bool8 sub_80874CC(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80874FC(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_8087548(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_808759C(struct Task *, struct MapObject *, struct Sprite *);
+
+bool8 sub_80876C8(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80876F8(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_8087774(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80877AC(struct Task *, struct MapObject *, struct Sprite *);
+bool8 sub_80877D4(struct Task *, struct MapObject *, struct Sprite *);
+
+void sub_80878F4(struct Task *);
+void sub_8087914(struct Task *);
+
+void sub_8087AA4(struct Task *);
+void sub_8087AC8(struct Task *);
+
+void sub_8087BEC(struct Task *);
+void sub_8087C14(struct Task *);
+void sub_8087CA4(struct Task *);
+void sub_8087D78(struct Task *);
+
+void sub_8087E4C(struct Task *);
+void sub_8087ED8(struct Task *);
+void sub_8087FDC(struct Task *);
+
+void sub_8088150(struct Task *);
+void sub_80881C0(struct Task *);
+void sub_8088228(struct Task *);
+void sub_80882B4(struct Task *);
+void sub_80882E4(struct Task *);
+void sub_8088338(struct Task *);
+void sub_8088380(struct Task *);
+
+void sub_80884AC(struct Task *);
+void sub_80884E8(struct Task *);
+void sub_8088554(struct Task *);
+void sub_80885A8(struct Task *);
+void sub_80885D8(struct Task *);
+void sub_808860C(struct Task *);
+void sub_808862C(struct Task *);
+
+void sub_8088984(struct Task *);
+void sub_80889E4(struct Task *);
+void sub_8088A30(struct Task *);
+void sub_8088A78(struct Task *);
+void sub_8088AF4(struct Task *);
+
+void sub_8088CA0(struct Task *);
+void sub_8088CF8(struct Task *);
+void sub_8088D3C(struct Task *);
+void sub_8088D94(struct Task *);
+void sub_8088DD8(struct Task *);
+void sub_8088E2C(struct Task *);
+void sub_8088EB4(struct Task *);
+void sub_8088F10(struct Task *);
+void sub_8088F30(struct Task *);
+
+void sub_80892A0(struct Task *);
+void sub_8089354(struct Task *);
+void sub_80893C0(struct Task *);
+void sub_8089414(struct Task *);
+void sub_808948C(struct Task *);
+void sub_80894C4(struct Task *);
+void fishE(struct Task *);
+
+u8 CreateTrainerSprite_BirchSpeech(u8 gender, s16 x, s16 y, u8 subpriority, u8 *buffer);
+void LoadTrainerGfx_TrainerCard(u8 gender, u16 palOffset, u8 *dest);
+u8 CreateBirchSprite(s16 x, s16 y, u8 subpriority);
+u8 CreateMonSprite_PicBox(u16, s16, s16, u8);
+void FreeResourcesAndDestroySprite(struct Sprite *sprite);
+void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8);
+void sub_80878A8(void);
+void sub_8087BA8(void);
#endif // GUARD_FIELD_EFFECT_H
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
new file mode 100755
index 000000000..32438a9ad
--- /dev/null
+++ b/include/field_effect_helpers.h
@@ -0,0 +1,30 @@
+#ifndef GUARD_FIELD_EFFECT_HELPERS_H
+#define GUARD_FIELD_EFFECT_HELPERS_H
+
+void sub_812869C(struct MapObject *);
+bool8 sub_81286C4(struct MapObject *);
+void oamc_shadow(struct Sprite *);
+void sub_8087638(struct Sprite *);
+void sub_808788C(struct Sprite *);
+void sub_8127334(struct Sprite *);
+void sub_8127584(struct Sprite *);
+void sub_81276B4(struct Sprite *);
+void sub_8127A7C(struct Sprite *);
+void sub_8127D84(struct Sprite *);
+void sub_8127F7C(struct Sprite *);
+void sub_81282E0(struct Sprite *);
+void sub_8128410(struct Sprite *);
+void sub_81285AC(struct Sprite *);
+void sub_8128774(struct Sprite *);
+void sub_81287C4(struct Sprite *);
+void sub_8128800(struct Sprite *);
+void unc_grass_normal(struct Sprite *);
+void unc_grass_tall(struct Sprite *);
+u8 sub_8126B54(void);
+void objid_set_invisible(u8);
+void sub_8126BC4(u8 unk_1B, u8 r6, s16 x, s16 y);
+void sub_8127ED0(u8, u8);
+void sub_8127F28(u8, u8, s16);
+u8 sub_8128124(u8 id);
+
+#endif // GUARD_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
new file mode 100644
index 000000000..764adfc9a
--- /dev/null
+++ b/include/field_fadetransition.h
@@ -0,0 +1,31 @@
+#ifndef GUARD_FIELD_FADETRANSITION_H
+#define GUARD_FIELD_FADETRANSITION_H
+
+void palette_bg_fill_white(void);
+void palette_bg_fill_black(void);
+void pal_fill_black(void);
+void pal_fill_black();
+void pal_fill_black(void);
+void task0A_asap_script_env_2_enable_and_set_ctx_running(u8);
+void sub_8080990(void);
+void sub_80809B0(void);
+void sub_8080A3C(void);
+void sub_8080AC4(void);
+void mapldr_default();
+void sub_8080B60(void);
+void atk17_seteffectuser(void);
+void sub_8080E28(void);
+void sub_8080E44(void);
+int sub_8080E70(void);
+void sub_8080E88(void);
+void sub_8080E88();
+void sp13E_warp_to_last_warp(void);
+void sub_8080EF0(void);
+void sp13F_fall_to_last_warp(void);
+void sub_8080F2C(u8);
+void sub_8080F48(void);
+void sub_8080F58(void);
+void sub_8080F68(void);
+void sub_8080F9C(void);
+
+#endif // GUARD_FIELD_FADETRANSITION_H
diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h
new file mode 100644
index 000000000..19d43c916
--- /dev/null
+++ b/include/field_ground_effect.h
@@ -0,0 +1,27 @@
+#ifndef GUARD_FIELD_GROUND_EFFECT_H
+#define GUARD_FIELD_GROUND_EFFECT_H
+
+bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y);
+bool8 AreZCoordsCompatible(u8 z1, u8 z2);
+void FieldObjectUpdateMetatileBehaviors(struct MapObject *);
+void GetGroundEffectFlags_Reflection(struct MapObject *, u32 *);
+void GetGroundEffectFlags_TallGrassOnSpawn(struct MapObject *, u32 *);
+void GetGroundEffectFlags_TallGrassOnBeginStep(struct MapObject *, u32 *);
+void GetGroundEffectFlags_LongGrassOnSpawn(struct MapObject *, u32 *);
+void GetGroundEffectFlags_LongGrassOnBeginStep(struct MapObject *, u32 *);
+void GetGroundEffectFlags_Tracks(struct MapObject *, u32 *);
+void GetGroundEffectFlags_SandPile(struct MapObject *, u32 *);
+void GetGroundEffectFlags_ShallowFlowingWater(struct MapObject *, u32 *);
+void GetGroundEffectFlags_Puddle(struct MapObject *, u32 *);
+void GetGroundEffectFlags_Ripple(struct MapObject *, u32 *);
+void GetGroundEffectFlags_ShortGrass(struct MapObject *, u32 *);
+void GetGroundEffectFlags_HotSprings(struct MapObject *, u32 *);
+void GetGroundEffectFlags_Seaweed(struct MapObject *, u32 *);
+void GetGroundEffectFlags_JumpLanding(struct MapObject *, u32 *);
+u8 FieldObjectCheckForReflectiveSurface(struct MapObject *);
+u8 GetLedgeJumpDirection(s16, s16, u8);
+u8 ZCoordToPriority(u8);
+void FieldObjectUpdateZCoord(struct MapObject *pObject);
+void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
+
+#endif // GUARD_FIELD_GROUND_EFFECT_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index c31b0fc2a..6595a51ca 100644..100755
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -3,9 +3,431 @@
#include "sprite.h"
+#define fieldmap_object_cb(setup, callback, table) \
+static u8 callback(struct MapObject *, struct Sprite *);\
+void setup(struct Sprite *sprite)\
+{\
+ meta_step(&gMapObjects[sprite->data0], sprite, callback);\
+}\
+static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\
+{\
+ return table[sprite->data1](mapObject, sprite);\
+}
+
+#define fieldmap_object_null_cb(setup, callback) \
+static u8 callback(struct MapObject *, struct Sprite *);\
+void setup(struct Sprite *sprite)\
+{\
+ meta_step(&gMapObjects[sprite->data0], sprite, callback);\
+}\
+static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\
+{\
+ return 0;\
+}
+
+struct PairedPalettes
+{
+ u16 tag;
+ const u16 *data;
+};
+
+extern const u16 gMapObjectPalette19[];
+
+extern const u32 gMapObjectPic_MovingBox[32];
+extern const struct SpriteFrameImage gMapObjectPicTable_PechaBerryTree[];
+
void sub_805C058(struct MapObject *mapObject, s16 a, s16 b);
void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18);
void MoveCoords(u8 direction, s16 *x, s16 *y);
-void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u32 (*d8)(void));
+void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u8 (*d8)(struct MapObject *, struct Sprite *));
+void npc_reset(struct MapObject *mapObject, struct Sprite *sprite);
+
+u8 sub_805CAAC(s16 a0, s16 a1, s16 a2, s16 a3);
+u8 sub_805CADC(s16 a0, s16 a1, s16 a2, s16 a3);
+u8 sub_805CAEC(s16 a0, s16 a1, s16 a2, s16 a3);
+u8 sub_805CB00(s16 a0, s16 a1, s16 a2, s16 a3);
+u8 sub_805CB5C(s16 a0, s16 a1, s16 a2, s16 a3);
+u8 sub_805CBB8(s16 a0, s16 a1, s16 a2, s16 a3);
+u8 sub_805CC14(s16 a0, s16 a1, s16 a2, s16 a3);
+u8 sub_805CC70(s16 a0, s16 a1, s16 a2, s16 a3);
+u8 sub_805CCAC(s16 a0, s16 a1, s16 a2, s16 a3);
+u8 sub_805CCE8(s16 a0, s16 a1, s16 a2, s16 a3);
+u8 sub_805CD24(s16 a0, s16 a1, s16 a2, s16 a3);
+
+u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+u8 sub_805F3F0(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+u8 sub_805F438(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+u8 sub_805F4F0(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+u8 sub_805F5A8(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+u8 sub_805F660(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+u8 cph_IM_DIFFERENT(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+u8 sub_805F760(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+
+extern struct CameraSomething gUnknown_03004880;
+extern u16 gUnknown_03004898;
+extern u16 gUnknown_0300489C;
+
+extern u32 gUnknown_0202FF84[];
+
+extern const struct Coords16 gDirectionToVector[];
+
+void FieldObjectCB_BerryTree(struct Sprite *);
+void FieldObjectCB_Hidden1(struct Sprite *);
+void FieldObjectCB_MountainDisguise(struct Sprite *);
+void FieldObjectCB_TreeDisguise(struct Sprite *);
+void sub_80587B4(struct Sprite *);
+void sub_805C884(struct Sprite *);
+void sub_805C8AC(struct Sprite *);
+void sub_805CDE8(struct Sprite *);
+void sub_805CF28(struct Sprite *);
+void sub_805D0AC(struct Sprite *);
+void sub_805D230(struct Sprite *);
+void sub_805D4F4(struct Sprite *);
+void sub_805D634(struct Sprite *);
+void sub_805D774(struct Sprite *);
+void sub_805D8B4(struct Sprite *);
+void sub_805D9F4(struct Sprite *);
+void sub_805DB34(struct Sprite *);
+void sub_805DC74(struct Sprite *);
+void sub_805DDB4(struct Sprite *);
+void sub_805DEF4(struct Sprite *);
+void sub_805E034(struct Sprite *);
+void sub_805E174(struct Sprite *);
+void sub_805E278(struct Sprite *);
+void sub_805E37C(struct Sprite *);
+void sub_805E5DC(struct Sprite *);
+void sub_805E668(struct Sprite *);
+void sub_805E6F4(struct Sprite *);
+void sub_805E780(struct Sprite *);
+void sub_805E80C(struct Sprite *);
+void sub_805E898(struct Sprite *);
+void sub_805E924(struct Sprite *);
+void sub_805E9B0(struct Sprite *);
+void sub_805EA3C(struct Sprite *);
+void sub_805EAC8(struct Sprite *);
+void sub_805EB54(struct Sprite *);
+void sub_805EBE0(struct Sprite *);
+void sub_805EC6C(struct Sprite *);
+void sub_805ECF8(struct Sprite *);
+void sub_805ED84(struct Sprite *);
+void sub_805EE10(struct Sprite *);
+void sub_805EE9C(struct Sprite *);
+void sub_805EF28(struct Sprite *);
+void sub_805EFB4(struct Sprite *);
+void sub_805F040(struct Sprite *);
+void sub_805F0CC(struct Sprite *);
+void sub_805F158(struct Sprite *);
+void sub_805F1E4(struct Sprite *);
+void sub_805F270(struct Sprite *);
+void sub_805F2FC(struct Sprite *);
+void sub_805F8E0(struct Sprite *);
+void sub_805FB20(struct Sprite *);
+void sub_805FB90(struct Sprite *);
+void sub_805FC00(struct Sprite *);
+void sub_805FC70(struct Sprite *);
+
+u8 sub_805C8F0(struct MapObject *, struct Sprite *);
+u8 sub_805C904(struct MapObject *, struct Sprite *);
+u8 sub_805C930(struct MapObject *, struct Sprite *);
+u8 sub_805C96C(struct MapObject *, struct Sprite *);
+u8 sub_805C98C(struct MapObject *, struct Sprite *);
+u8 sub_805C9D8(struct MapObject *, struct Sprite *);
+u8 sub_805CA08(struct MapObject *, struct Sprite *);
+u8 sub_805CE2C(struct MapObject *, struct Sprite *);
+u8 sub_805CE40(struct MapObject *, struct Sprite *);
+u8 sub_805CE6C(struct MapObject *, struct Sprite *);
+u8 sub_805CEB0(struct MapObject *, struct Sprite *);
+u8 sub_805CEE0(struct MapObject *, struct Sprite *);
+u8 sub_805CF6C(struct MapObject *, struct Sprite *);
+u8 sub_805CF80(struct MapObject *, struct Sprite *);
+u8 sub_805CFAC(struct MapObject *, struct Sprite *);
+u8 sub_805CFE8(struct MapObject *, struct Sprite *);
+u8 sub_805D008(struct MapObject *, struct Sprite *);
+u8 sub_805D054(struct MapObject *, struct Sprite *);
+u8 sub_805D084(struct MapObject *, struct Sprite *);
+u8 sub_805D0F0(struct MapObject *, struct Sprite *);
+u8 sub_805D104(struct MapObject *, struct Sprite *);
+u8 sub_805D130(struct MapObject *, struct Sprite *);
+u8 sub_805D16C(struct MapObject *, struct Sprite *);
+u8 sub_805D18C(struct MapObject *, struct Sprite *);
+u8 sub_805D1D8(struct MapObject *, struct Sprite *);
+u8 sub_805D208(struct MapObject *, struct Sprite *);
+u8 sub_805D274(struct MapObject *, struct Sprite *);
+u8 sub_805D2A0(struct MapObject *, struct Sprite *);
+u8 sub_805D2C0(struct MapObject *, struct Sprite *);
+u8 do_berry_tree_growth_sparkle_1(struct MapObject *, struct Sprite *);
+u8 sub_805D3EC(struct MapObject *, struct Sprite *);
+u8 do_berry_tree_growth_sparkle_2(struct MapObject *, struct Sprite *);
+u8 sub_805D458(struct MapObject *, struct Sprite *);
+u8 sub_805D4A8(struct MapObject *, struct Sprite *);
+u8 sub_805D538(struct MapObject *, struct Sprite *);
+u8 sub_805D54C(struct MapObject *, struct Sprite *);
+u8 sub_805D578(struct MapObject *, struct Sprite *);
+u8 sub_805D5BC(struct MapObject *, struct Sprite *);
+u8 sub_805D5EC(struct MapObject *, struct Sprite *);
+u8 sub_805D678(struct MapObject *, struct Sprite *);
+u8 sub_805D68C(struct MapObject *, struct Sprite *);
+u8 sub_805D6B8(struct MapObject *, struct Sprite *);
+u8 sub_805D6FC(struct MapObject *, struct Sprite *);
+u8 sub_805D72C(struct MapObject *, struct Sprite *);
+u8 sub_805D7B8(struct MapObject *, struct Sprite *);
+u8 sub_805D7CC(struct MapObject *, struct Sprite *);
+u8 sub_805D7F8(struct MapObject *, struct Sprite *);
+u8 sub_805D83C(struct MapObject *, struct Sprite *);
+u8 sub_805D86C(struct MapObject *, struct Sprite *);
+u8 sub_805D8F8(struct MapObject *, struct Sprite *);
+u8 sub_805D90C(struct MapObject *, struct Sprite *);
+u8 sub_805D938(struct MapObject *, struct Sprite *);
+u8 sub_805D97C(struct MapObject *, struct Sprite *);
+u8 sub_805D9AC(struct MapObject *, struct Sprite *);
+u8 sub_805DA38(struct MapObject *, struct Sprite *);
+u8 sub_805DA4C(struct MapObject *, struct Sprite *);
+u8 sub_805DA78(struct MapObject *, struct Sprite *);
+u8 sub_805DABC(struct MapObject *, struct Sprite *);
+u8 sub_805DAEC(struct MapObject *, struct Sprite *);
+u8 sub_805DB78(struct MapObject *, struct Sprite *);
+u8 sub_805DB8C(struct MapObject *, struct Sprite *);
+u8 sub_805DBB8(struct MapObject *, struct Sprite *);
+u8 sub_805DBFC(struct MapObject *, struct Sprite *);
+u8 sub_805DC2C(struct MapObject *, struct Sprite *);
+u8 sub_805DCB8(struct MapObject *, struct Sprite *);
+u8 sub_805DCCC(struct MapObject *, struct Sprite *);
+u8 sub_805DCF8(struct MapObject *, struct Sprite *);
+u8 sub_805DD3C(struct MapObject *, struct Sprite *);
+u8 sub_805DD6C(struct MapObject *, struct Sprite *);
+u8 sub_805DDF8(struct MapObject *, struct Sprite *);
+u8 sub_805DE0C(struct MapObject *, struct Sprite *);
+u8 sub_805DE38(struct MapObject *, struct Sprite *);
+u8 sub_805DE7C(struct MapObject *, struct Sprite *);
+u8 sub_805DEAC(struct MapObject *, struct Sprite *);
+u8 sub_805DF38(struct MapObject *, struct Sprite *);
+u8 sub_805DF4C(struct MapObject *, struct Sprite *);
+u8 sub_805DF78(struct MapObject *, struct Sprite *);
+u8 sub_805DFBC(struct MapObject *, struct Sprite *);
+u8 sub_805DFEC(struct MapObject *, struct Sprite *);
+u8 sub_805E078(struct MapObject *, struct Sprite *);
+u8 sub_805E08C(struct MapObject *, struct Sprite *);
+u8 sub_805E0B8(struct MapObject *, struct Sprite *);
+u8 sub_805E0FC(struct MapObject *, struct Sprite *);
+u8 sub_805E12C(struct MapObject *, struct Sprite *);
+u8 sub_805E1B8(struct MapObject *, struct Sprite *);
+u8 sub_805E1E4(struct MapObject *, struct Sprite *);
+u8 sub_805E208(struct MapObject *, struct Sprite *);
+u8 sub_805E234(struct MapObject *, struct Sprite *);
+u8 sub_805E2BC(struct MapObject *, struct Sprite *);
+u8 sub_805E2E8(struct MapObject *, struct Sprite *);
+u8 sub_805E30C(struct MapObject *, struct Sprite *);
+u8 sub_805E338(struct MapObject *, struct Sprite *);
+u8 sub_805E3C0(struct MapObject *, struct Sprite *);
+u8 sub_805E3D4(struct MapObject *, struct Sprite *);
+u8 sub_805E40C(struct MapObject *, struct Sprite *);
+u8 sub_805E4C4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805E620(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805E6AC(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805E738(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805E7C4(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805E850(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805E8DC(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805E968(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805E9F4(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805EA80(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805EB0C(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805EB98(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805EC24(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805ECB0(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805ED3C(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805EDC8(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805EE54(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805EEE0(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805EF6C(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805EFF8(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805F084(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805F110(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805F19C(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805F228(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 sub_805E4EC(struct MapObject *, struct Sprite *);
+u8 sub_805F2B4(struct MapObject *, struct Sprite *);
+u8 sub_805E5B4(struct MapObject *, struct Sprite *);
+u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *, struct Sprite *);
+u8 sub_805F364(struct MapObject *, struct Sprite *);
+u8 sub_805F3C4(struct MapObject *, struct Sprite *);
+u8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *, struct Sprite *);
+u8 mss_08062EA4(struct MapObject *, struct Sprite *);
+u8 sub_805F3C4(struct MapObject *, struct Sprite *);
+u8 sub_805FAF8(struct MapObject *, struct Sprite *);
+u8 sub_805FB64(struct MapObject *, struct Sprite *);
+u8 sub_805FB04(struct MapObject *, struct Sprite *);
+u8 sub_805FBD4(struct MapObject *, struct Sprite *);
+u8 sub_805FB04(struct MapObject *, struct Sprite *);
+u8 sub_805FC44(struct MapObject *, struct Sprite *);
+u8 sub_805FB04(struct MapObject *, struct Sprite *);
+u8 sub_805FCB4(struct MapObject *, struct Sprite *);
+u8 sub_805FCE8(struct MapObject *, struct Sprite *);
+u8 sub_805FD08(struct MapObject *, struct Sprite *);
+
+u8 get_go_image_anim_num(u8);
+u8 get_go_fast_image_anim_num(u8);
+u8 get_go_fast_image_anim_num(u8);
+u8 get_go_faster_image_anim_num(u8);
+u8 sub_805FD78(u8);
+
+int state_to_direction(u8, u8, u8);
+
+void sub_805AA98();
+void sub_805AAB0(void);
+u8 sub_805AB54(void);
+u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8);
+bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *);
+u8 GetFieldObjectIdByXY(s16, s16);
+u8 GetFieldObjectIdByLocalIdAndMapInternal(u8, u8, u8);
+u8 GetFieldObjectIdByLocalId(u8);
+u8 GetAvailableFieldObjectSlot(u16, u8, u8, u8 *);
+void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8);
+void RemoveFieldObjectInternal(struct MapObject *);
+u8 SpawnSpecialFieldObject(struct MapObjectTemplate *);
+u8 show_sprite(u8, u8, u8);
+void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, const struct SubspriteTable **subspriteTables);
+u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority);
+u8 sub_805B410(u8, u8, s16, s16, u8, u8);
+void sub_805B55C(s16 a, s16 b);
+void sub_805B710(u16 i, u16 i1);
+void sub_805B980(struct MapObject *, u8);
+void FieldObjectTurn(struct MapObject *, u8);
+void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
+const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8);
+void FieldObjectHandleDynamicGraphicsId(struct MapObject *);
+void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
+void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *);
+void sub_805BCC0(s16 x, s16 y);
+void sub_805BCF0(u8, u8, u8, u8);
+void sub_805BD48(u8, u8, u8);
+void sub_805BD90(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
+void gpu_pal_allocator_reset__manage_upper_four(void);
+void sub_805BDF8(u16);
+u8 sub_805BE58(const struct SpritePalette *);
+void pal_patch_for_npc(u16, u16);
+u8 FindFieldObjectPaletteIndexByTag(u16);
+void npc_load_two_palettes__no_record(u16, u8);
+void npc_load_two_palettes__and_record(u16, u8);
+void npc_coords_shift(struct MapObject *pObject, s16 x, s16 y);
+void sub_805C0F8(u8, u8, u8, s16, s16);
+void npc_coords_shift_still(struct MapObject *pObject);
+u8 GetFieldObjectIdByXYZ(u16, u16, u8);
+void UpdateFieldObjectsForCameraUpdate(s16, s16);
+u8 AddCameraObject(u8);
+void CameraObjectReset1(void);
+u8 * GetFieldObjectScriptPointerByFieldObjectId(u8);
+u16 GetFieldObjectFlagIdByFieldObjectId(u8);
+u8 FieldObjectGetBerryTreeId(u8);
+struct MapObjectTemplate *GetFieldObjectTemplateByLocalIdAndMap(u8, u8, u8);
+void sub_805C754(struct MapObject *pObject);
+void sub_805C774(struct MapObject *, u8);
+void sub_805C78C(u8, u8, u8);
+void sub_805C7C4(u8 i);
+u8 FieldObjectDirectionToImageAnimId(u8);
+u8 get_go_image_anim_num(u8 unk_19);
+u8 sub_805FD98(u8);
+u8 sub_805FDE8(u8);
+u8 sub_805FDF8(u8);
+u8 sub_805FE08(u8);
+void npc_set_running_behaviour_etc(struct MapObject *, u8);
+u8 npc_running_behaviour_by_direction(u8);
+u8 npc_block_way(struct MapObject *, s16, s16, u8);
+u8 sub_8060024(struct MapObject *, s16, s16, u8);
+u8 sub_8060234(u8, u8, u8);
+void sub_8060288(u8, u8, u8);
+void sub_8060388(s16, s16, s16 *, s16 *);
+void sub_80603CC(s16 x, s16 y, s16 *pInt, s16 *pInt1);
+void GetFieldObjectMovingCameraOffset(s16 *, s16 *);
+void FieldObjectMoveDestCoords(struct MapObject *pObject, u8 unk_19, s16 *pInt, s16 *pInt1);
+bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *);
+bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
+bool8 FieldObjectSetSpecialAnim(struct MapObject *, u8);
+void FieldObjectForceSetSpecialAnim(struct MapObject *pObject, u8 a);
+void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *);
+void FieldObjectClearAnim(struct MapObject *);
+bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *);
+u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
+u8 FieldObjectGetSpecialAnim(struct MapObject *);
+u8 GetFaceDirectionAnimId(u8);
+u8 GetSimpleGoAnimId(u8);
+u8 GetGoSpeed0AnimId(u8 a);
+u8 sub_8060744(u8 a);
+u8 d2s_08064034(u8 a);
+u8 sub_806079C(u8 a);
+u8 sub_80607F4(u8 a);
+u8 GetJumpLedgeAnimId(u8 a);
+u8 sub_806084C(u8);
+u8 sub_8060878(u8);
+u8 sub_80608D0(u8);
+u8 GetStepInPlaceDelay32AnimId(u8 a);
+u8 GetStepInPlaceDelay16AnimId(u8);
+u8 GetStepInPlaceDelay8AnimId(u8 a);
+u8 GetStepInPlaceDelay4AnimId(u8 a);
+u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8);
+u8 sub_80609D8(u8);
+u8 sub_8060A04(u8);
+u8 sub_8060A30(u8);
+u8 sub_8060A5C(u8);
+u8 sub_8060A88(u8);
+u8 sub_8060AB4(u8);
+u8 sub_8060AE0(u8);
+u8 sub_8060B0C(u8);
+u8 sub_8060B38(u8);
+u8 sub_8060B64(u8);
+u8 GetOppositeDirection(u8);
+void sub_80634D0(struct MapObject *, struct Sprite *);
+u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8);
+void CameraObjectSetFollowedObjectId(u8);
+u8 sub_805ADDC(u8);
#endif // GUARD_FIELD_MAP_OBJ_H
diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h
new file mode 100644
index 000000000..fd29a9a7f
--- /dev/null
+++ b/include/field_map_obj_helpers.h
@@ -0,0 +1,21 @@
+#ifndef GUARD_FIELDMAPOBJHELP_H
+#define GUARD_FIELDMAPOBJHELP_H
+
+#include "sprite.h"
+
+bool8 FreezeMapObject(struct MapObject *);
+void FreezeMapObjects(void);
+void FreezeMapObjectsExceptOne(u8);
+void UnfreezeMapObjects(void);
+void sub_806487C(struct Sprite *sprite, bool8 invisible);
+void sub_8064990(u8, u8);
+void UnfreezeMapObject(struct MapObject *mapObject);
+void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3);
+void sub_806467C(struct Sprite *sprite, u8 direction);
+bool8 sub_806468C(struct Sprite *sprite);
+void sub_80646E4(struct Sprite *sprite, u8 a2, u8 a3, u8 a4);
+void DoShadowFieldEffect(struct MapObject *mapObject);
+u8 sub_8064704(struct Sprite *);
+u8 sub_806478C(struct Sprite *);
+void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3);
+#endif
diff --git a/include/field_message_box.h b/include/field_message_box.h
index 50d96ccd1..c35aaf595 100644
--- a/include/field_message_box.h
+++ b/include/field_message_box.h
@@ -10,10 +10,10 @@ enum
};
void InitFieldMessageBox(void);
-bool8 ShowFieldMessage(u8 *message);
-bool8 ShowFieldAutoScrollMessage(u8 *message);
-bool8 unref_sub_8064BB8(u8 *message);
-bool8 unref_sub_8064BD0(u8 *message);
+bool8 ShowFieldMessage(const u8 *message);
+bool8 ShowFieldAutoScrollMessage(const u8 *message);
+bool8 unref_sub_8064BB8(const u8 *message);
+bool8 unref_sub_8064BD0(const u8 *message);
void HideFieldMessageBox(void);
u8 GetFieldMessageBoxMode(void);
bool8 IsFieldMessageBoxHidden(void);
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 9e2e7a489..86b1af3fb 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -1,112 +1,114 @@
#ifndef GUARD_FIELD_PLAYER_AVATAR_H
#define GUARD_FIELD_PLAYER_AVATAR_H
+#include "task.h"
+
// sub_80587B4
void player_step(u8 a, u16 b, u16 c);
-// ForcedMovement_None
-// ForcedMovement_Slip
-// sub_8058AAC
-// sub_8058AC4
-// sub_8058ADC
-// sub_8058AF4
-// sub_8058B0C
-// sub_8058B24
-// sub_8058B3C
-// sub_8058B54
-// ForcedMovement_SlideSouth
-// ForcedMovement_SlideNorth
-// ForcedMovement_SlideWest
-// ForcedMovement_SlideEast
-// sub_8058C04
-// sub_8058C10
-// ForcedMovement_MuddySlope
-// PlayerNotOnBikeNotMoving
-// PlayerNotOnBikeTurningInPlace
-// sub_8058D0C
+u8 ForcedMovement_None(void);
+u8 ForcedMovement_Slip(void);
+u8 sub_8058AAC(void);
+u8 sub_8058AC4(void);
+u8 sub_8058ADC(void);
+u8 sub_8058AF4(void);
+u8 sub_8058B0C(void);
+u8 sub_8058B24(void);
+u8 sub_8058B3C(void);
+u8 sub_8058B54(void);
+u8 ForcedMovement_SlideSouth(void);
+u8 ForcedMovement_SlideNorth(void);
+u8 ForcedMovement_SlideWest(void);
+u8 ForcedMovement_SlideEast(void);
+u8 sub_8058C04(void);
+u8 sub_8058C10(void);
+u8 ForcedMovement_MuddySlope(void);
+void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys);
+void PlayerNotOnBikeTurningInPlace(u8 direction, u16 heldKeys);
+void sub_8058D0C(u8 direction, u16 heldKeys);
u8 CheckForFieldObjectCollision(struct MapObject *a, s16 b, s16 c, u8 d, u8 e);
void SetPlayerAvatarTransitionFlags(u16 a);
-// nullsub_49
-// PlayerAvatarTransition_Normal
-// PlayerAvatarTransition_MachBike
-// PlayerAvatarTransition_AcroBike
-// PlayerAvatarTransition_Surfing
-// PlayerAvatarTransition_Underwater
-// sub_80591F4
+void nullsub_49(struct MapObject *a);
+void PlayerAvatarTransition_Normal(struct MapObject *a);
+void PlayerAvatarTransition_MachBike(struct MapObject *a);
+void PlayerAvatarTransition_AcroBike(struct MapObject *a);
+void PlayerAvatarTransition_Surfing(struct MapObject *a);
+void PlayerAvatarTransition_Underwater(struct MapObject *a);
+void sub_80591F4(struct MapObject *a);
void sub_8059204(void);
-// player_get_x22
-// player_npc_set_state_and_x22_etc
+u8 player_get_x22(void);
+void PlayerSetAnimId(u8 a, u8 b);
void PlayerGoSpeed0(u8 a);
void sub_80593C4(u8 a);
void npc_use_some_d2s(u8 a);
-// sub_80593F4
+void sub_80593F4(u8 a);
void sub_805940C(u8 a);
-// PlayerOnBikeCollide
+void PlayerOnBikeCollide(u8);
void PlayerFaceDirection(u8 a);
void PlayerTurnInPlace(u8 a);
void PlayerJumpLedge(u8 a);
void sub_80594C0(void);
-// sub_8059504
-// sub_805951C
-// sub_8059534
-// sub_805954C
-// sub_8059570
-// sub_8059594
-// sub_80595B8
-// sub_80595DC
-// sub_8059600
-// sub_8059618
-// sub_8059630
+void sub_8059504(u8 a);
+void PlayerStartWheelie(u8 a);
+void sub_8059534(u8 a);
+void sub_805954C(u8 a);
+void sub_8059570(u8 a);
+void sub_8059594(u8 a);
+void sub_80595B8(u8 a);
+void sub_80595DC(u8 a);
+void sub_8059600(u8 a);
+void sub_8059618(u8 a);
+void sub_8059630(u8 a);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *x, s16 *y);
void PlayerGetDestCoords(s16 *, s16 *);
u8 player_get_direction_lower_nybble(void);
u8 player_get_direction_upper_nybble(void);
-// PlayerGetZCoord
+u8 PlayerGetZCoord(void);
u8 TestPlayerAvatarFlags(u8);
// sub_80597D0
-// GetPlayerAvatarObjectId
+u8 GetPlayerAvatarObjectId(void);
void sub_80597E8(void);
void sub_80597F4(void);
-u8 sub_805983C(u8 a, u8 b);
+u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 a, u8 b);
u8 GetPlayerAvatarGraphicsIdByStateId(u8 a);
-// GetPlayerAvatarGenderByGraphicsId
-// PartyHasMonWithSurf
-// IsPlayerSurfingNorth
-// IsPlayerFacingSurfableFishableWater
-// ClearPlayerAvatarInfo
+u8 GetPlayerAvatarGenderByGraphicsId(u8 gfxId);
+bool8 PartyHasMonWithSurf(void);
+bool8 IsPlayerSurfingNorth(void);
+bool8 IsPlayerFacingSurfableFishableWater(void);
+void ClearPlayerAvatarInfo(void);
void SetPlayerAvatarStateMask(u8 a);
-// GetPlayerAvatarGraphicsIdByCurrentState
-// SetPlayerAvatarExtraStateTransition
+u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
+void SetPlayerAvatarExtraStateTransition(u8 a, u8 b);
void InitPlayerAvatar(s16 a, s16 b, u8 c, u8 d);
-// sub_8059B88
-// sub_8059BF4
+void sub_8059B88(u8);
+void sub_8059BF4(void);
// sub_8059C3C
-// sub_8059C94
+void sub_8059C94(u8);
// sub_8059D08
-// sub_8059E84
-// sub_8059EA4
-// sub_8059F40
-// sub_805A000
-// sub_805A0D8
-// sub_805A100
-// sub_805A178
-// sub_805A1B8
+u8 sub_8059E84(struct Task *task, struct MapObject *b, struct MapObject *c);
+u8 sub_8059EA4(struct Task *task, struct MapObject *b, struct MapObject *c);
+u8 sub_8059F40(struct Task *task, struct MapObject *b, struct MapObject *c);
+u8 sub_805A000(struct Task *task, struct MapObject *mapObject);
+u8 sub_805A0D8(struct Task *task, struct MapObject *mapObject);
+u8 sub_805A100(struct Task *task, struct MapObject *mapObject);
+u8 sub_805A178(struct Task *task, struct MapObject *mapObject);
+u8 sub_805A1B8(struct Task *task, struct MapObject *mapObject);
void sub_805A20C(u8 a);
-// StartFishing
-// Fishing1
-// Fishing2
-// Fishing3
-// Fishing4
-// Fishing5
-// Fishing6
-// Fishing7
-// Fishing8
-// Fishing9
-// Fishing10
-// Fishing11
-// Fishing12
-// Fishing13
-// Fishing14
-// Fishing15
-// Fishing16
+void StartFishing(u8 a);
+u8 Fishing1(struct Task *task);
+u8 Fishing2(struct Task *task);
+u8 Fishing3(struct Task *task);
+u8 Fishing4(struct Task *task);
+u8 Fishing5(struct Task *task);
+u8 Fishing6(struct Task *task);
+u8 Fishing7(struct Task *task);
+u8 Fishing8(struct Task *task);
+u8 Fishing9(struct Task *task);
+u8 Fishing10(struct Task *task);
+u8 Fishing11(struct Task *task);
+u8 Fishing12(struct Task *task);
+u8 Fishing13(struct Task *task);
+u8 Fishing14(struct Task *task);
+u8 Fishing15(struct Task *task);
+u8 Fishing16(struct Task *task);
#endif
diff --git a/include/field_poison.h b/include/field_poison.h
new file mode 100644
index 000000000..8e8e2746f
--- /dev/null
+++ b/include/field_poison.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_FIELD_POISON_H
+#define GUARD_FIELD_POISON_H
+
+s32 overworld_poison(void);
+
+#endif // GUARD_FIELD_POISON_H
diff --git a/include/field_region_map.h b/include/field_region_map.h
new file mode 100644
index 000000000..a7e81b418
--- /dev/null
+++ b/include/field_region_map.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_FIELD_REGION_MAP_H
+#define GUARD_FIELD_REGION_MAP_H
+
+void FieldInitRegionMap(void(void));
+void CB2_FieldInitRegionMap(void);
+void VBlankCB_FieldRegionMap(void);
+void CB2_FieldRegionMap(void);
+void sub_813EFDC(void);
+void sub_813F0C8(void);
+
+#endif // GUARD_FIELD_REGION_MAP_H
diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h
new file mode 100644
index 000000000..d86109282
--- /dev/null
+++ b/include/field_screen_effect.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_FIELD_SCREEN_EFFECT_H
+#define GUARD_FIELD_SCREEN_EFFECT_H
+
+void sub_8081594(u8);
+void sub_80815E0(u8 val);
+
+#endif // GUARD_FIELD_SCREEN_EFFECT_H
diff --git a/include/truck_scene.h b/include/field_special_scene.h
index f55a4ced7..5841d6bce 100644
--- a/include/truck_scene.h
+++ b/include/field_special_scene.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_TRUCK_SCENE_H
-#define GUARD_TRUCK_SCENE_H
+#ifndef GUARD_FIELD_SPECIAL_SCENE_H
+#define GUARD_FIELD_SPECIAL_SCENE_H
s32 GetTruckCameraBobbingY(int a1);
s32 GetTruckBoxMovement(int a1);
@@ -10,4 +10,4 @@ void Task_HandleTruckSequence(u8 taskId);
void ExecuteTruckSequence(void);
void EndTruckSequence(void);
-#endif // GUARD_TRUCK_SCENE_H
+#endif // GUARD_FIELD_SPECIAL_SCENE_H
diff --git a/include/field_specials.h b/include/field_specials.h
new file mode 100644
index 000000000..710f0a2a0
--- /dev/null
+++ b/include/field_specials.h
@@ -0,0 +1,37 @@
+#ifndef GUARD_FIELD_SPECIALS_H
+#define GUARD_FIELD_SPECIALS_H
+
+struct ElevatorMenu {
+ u8 var0;
+ s8 var1;
+ s8 var2;
+ u8 var3;
+};
+
+extern struct ElevatorMenu gUnknown_03000760[20];
+extern struct WarpData gUnknown_020297F0;
+extern u8 gBattleOutcome;
+
+extern u16 gScriptResult;
+extern u8 gUnknown_02039250;
+extern u8 gUnknown_02039251;
+extern u32 gUnknown_02039254;
+extern u8 gUnknown_02039258;
+extern u8 gUnknown_02039259;
+extern u8 gUnknown_0203925A;
+extern u8 gUnknown_0203925B;
+extern u8 gUnknown_0203925C;
+
+extern u16 gSpecialVar_0x8004;
+extern u16 gSpecialVar_0x8005;
+
+void ResetCyclingRoadChallengeData(void);
+bool32 CountSSTidalStep(u16);
+u8 GetSSTidalLocation(s8 *, s8 *, s16 *, s16 *);
+void ScriptAddElevatorMenuItem(u8, u8, u8, u8);
+void ScriptShowElevatorMenu(void);
+void SetShoalItemFlag(u16);
+u8 GetLeadMonIndex(void);
+void ResetFanClub(void);
+
+#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/field_tasks.h b/include/field_tasks.h
new file mode 100644
index 000000000..53e704395
--- /dev/null
+++ b/include/field_tasks.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_FIELD_TASKS_H
+#define GUARD_FIELD_TASKS_H
+
+void SetUpFieldTasks();
+void ActivatePerStepCallback(u8);
+void ResetFieldTasksArgs(void);
+
+#endif // GUARD_FIELD_TASKS_H
diff --git a/include/weather.h b/include/field_weather.h
index a24a6d51f..409f76028 100644
--- a/include/weather.h
+++ b/include/field_weather.h
@@ -31,13 +31,20 @@ void sub_807D874(u8);
// ...
void sub_807DB64(u8, u8);
// ...
+void sub_807DE68(void);
+// ...
void PlayRainSoundEffect(void);
// ...
void SetSav1Weather(u32);
u8 GetSav1Weather(void);
void sub_80806E4(void);
// ...
-void sub_808073C(void);
+void DoCurrentWeather(void);
void sub_8080750();
+u8 sub_807D770(void);
+bool8 sub_807DDFC(void);
+void SetWeather(u32);
+void UpdateWeatherPerDay(u16);
+
#endif // GUARD_WEATHER_H
diff --git a/include/fieldmap.h b/include/fieldmap.h
new file mode 100644
index 000000000..67b85fa62
--- /dev/null
+++ b/include/fieldmap.h
@@ -0,0 +1,45 @@
+#ifndef GUARD_FIELDMAP2_H
+#define GUARD_FIELDMAP2_H
+#include "field_map_obj.h"
+
+extern struct BackupMapData gUnknown_03004870;
+struct MapHeader *mapconnection_get_mapheader(struct MapConnection *connection);
+int GetMapBorderIdAt(int x, int y);
+extern bool8 IsMetatileDirectionallyImpassable(struct MapObject *mapObject, s16 x, s16 y, u8 direction);
+int CanCameraMoveInDirection(int direction);
+u32 GetBehaviorByMetatileId(u16 metatile);
+void MapGridSetMetatileEntryAt(int, int, u16);
+
+void not_trainer_hill_battle_pyramid(void);
+void sub_8055FC0(void);
+void mapheader_copy_mapdata_with_padding(struct MapHeader *mapHeader);
+void map_copy_with_padding(u16 *map, u16 width, u16 height);
+void sub_80560AC(struct MapHeader *);
+void fillSouthConnection(struct MapHeader *, struct MapHeader *, s32);
+void fillNorthConnection(struct MapHeader *, struct MapHeader *, s32);
+void fillWestConnection(struct MapHeader *, struct MapHeader *, s32);
+void fillEastConnection(struct MapHeader *, struct MapHeader *, s32);
+u8 MapGridGetZCoordAt(int s, int y);
+u8 MapGridIsImpassableAt(int, int);
+u32 MapGridGetMetatileIdAt(int, int);
+u32 MapGridGetMetatileBehaviorAt(int x, int y); // return: (u8|u16|int) args: (int|s16|s32)
+u8 MapGridGetMetatileLayerTypeAt(int, int);
+void MapGridSetMetatileIdAt(int, int, u16);
+u32 GetBehaviorByMetatileId(u16 metatile);
+void save_serialize_map(void);
+void sub_8056670();
+bool8 CameraMove(int, int);
+struct MapConnection *sub_8056A64(u8 direction, int x, int y);
+bool8 sub_8056ABC(u8 direction, int x, int y, struct MapConnection *connection);
+bool8 sub_8056B20(int x, int src_width, int dest_width, int offset);
+struct MapConnection *sub_8056BA0(s16 x, s16 y); // fieldmap.c
+void sub_8056C50(u16, u16);
+void sav1_camera_get_focus_coords(u16 *x, u16 *y);
+void GetCameraCoords(u16*, u16*);
+void sub_8056D28(struct MapData *pData);
+void sub_8056D38(struct MapData *pData);
+void apply_map_tileset2_palette(struct MapData *pData);
+void copy_map_tileset1_tileset2_to_vram(/*TODO: arg types*/);
+void apply_map_tileset1_tileset2_palette(/*TODO: arg types*/);
+
+#endif
diff --git a/include/flag.h b/include/flag.h
deleted file mode 100644
index 8f4c01b02..000000000
--- a/include/flag.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef GUARD_FLAG_H
-#define GUARD_FLAG_H
-
-#include "flags.h"
-
-u8 *GetFlagPointer(u16 id);
-u8 FlagSet(u16 id);
-u8 FlagReset(u16 id);
-bool8 FlagGet(u16 id);
-
-#endif // GUARD_FLAG_H
diff --git a/include/flags.h b/include/flags.h
index a6b672d15..0e408a833 100644
--- a/include/flags.h
+++ b/include/flags.h
@@ -5,9 +5,12 @@
// SYSTEM FLAGS
-#define SYS_POKEMON_GET 0x800
-#define SYS_POKEDEX_GET 0x801
-#define SYS_POKENAV_GET 0x802
+#define SYS_POKEMON_GET 0x800
+#define SYS_POKEDEX_GET 0x801
+#define SYS_POKENAV_GET 0x802
+#define SYS_GAME_CLEAR 0x804
+#define SYS_CHAT_USED 0x805
+#define SYS_HIPSTER_MEET 0x806
// badges
#define BADGE01_GET 0x807
@@ -19,25 +22,46 @@
#define BADGE07_GET 0x80D
#define BADGE08_GET 0x80E
-#define SYS_USE_FLASH 0x828
-#define SYS_USE_STRENGTH 0x829
-#define SYS_WEATHER_CTRL 0x82A
-#define SYS_CYCLING_ROAD 0x82B
-#define SYS_SAFARI_MODE 0x82C
-#define SYS_CRUISE_MODE 0x82D
+#define SYS_USE_FLASH 0x828
+#define SYS_USE_STRENGTH 0x829
+#define SYS_WEATHER_CTRL 0x82A
+#define SYS_CYCLING_ROAD 0x82B
+#define SYS_SAFARI_MODE 0x82C
+#define SYS_CRUISE_MODE 0x82D
-#define SYS_POPWORD_INPUT 0x833
-#define SYS_MIX_RECORD 0x834
+#define SYS_TV_HOME 0x830
+#define SYS_TV_WATCH 0x831
+#define SYS_TV_START 0x832
+#define SYS_POPWORD_INPUT 0x833
+#define SYS_MIX_RECORD 0x834
+#define SYS_CLOCK_SET 0x835
+#define SYS_NATIONAL_DEX 0x836
+#define SYS_CAVE_SHIP 0x837
+#define SYS_CAVE_WONDER 0x838
+#define SYS_CAVE_BATTLE 0x839
+#define SYS_SHOAL_TIDE 0x83A
+#define SYS_RIBBON_GET 0x83B
-#define SYS_RIBBON_GET 0x83B
+#define SYS_PC_LANETTE 0x84B
+#define SYS_EXDATA_ENABLE 0x84C
+#define SYS_ENC_UP_ITEM 0x84D
+#define SYS_ENC_DOWN_ITEM 0x84E
+#define SYS_BRAILLE_DIG 0x84F
+#define SYS_BRAILLE_STRENGTH 0x850
+#define SYS_BRAILLE_WAIT 0x851
+#define SYS_BRAILLE_FLY 0x852
-#define SYS_ENC_UP_ITEM 0x84D
-#define SYS_ENC_DOWN_ITEM 0x84E
+#define SYS_TV_LATI 0x85D
-#define SYS_B_DASH 0x860 // got Running Shoes
+#define SYS_SHOAL_ITEM 0x85F
+#define SYS_B_DASH 0x860 // got Running Shoes
+#define SYS_CTRL_OBJ_DELETE 0x861
+#define SYS_RESET_RTC_ENABLE 0x862
// SPECIAL FLAGS (unknown purpose)
#define SPECIAL_FLAG_1 0x4001
#endif // GUARD_FLAGS_H
+
+bool8 FlagGet(u16 flag);
diff --git a/include/fldeff_80C5CD4.h b/include/fldeff_80C5CD4.h
new file mode 100644
index 000000000..413e8ad96
--- /dev/null
+++ b/include/fldeff_80C5CD4.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_FLDEFF_80C5CD4_H
+#define GUARD_FLDEFF_80C5CD4_H
+
+void DoFieldPoisonEffect(void);
+bool32 FieldPoisonEffectIsRunning(void);
+void CreateRecordMixingSprite(void);
+void DestroyRecordMixingSprite(void);
+
+#endif // GUARD_FLDEFF_80C5CD4_H
diff --git a/include/fldeff_cut.h b/include/fldeff_cut.h
new file mode 100644
index 000000000..0a5261468
--- /dev/null
+++ b/include/fldeff_cut.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_FLDEFF_CUT_H
+#define GUARD_FLDEFF_CUT_H
+
+void sub_80A25E8(void);
+void sub_80A2634(void);
+void sub_80A2684(void);
+void sub_80A27A8(s16, s16);
+void sub_80A28F4(s16, s16);
+void objc_8097BBC(struct Sprite *sprite);
+void sub_80A2AB8(void);
+void sub_80A2B00(void); // unknown args
+
+#endif // GUARD_FLDEFF_CUT_H
diff --git a/include/fldeff_flash.h b/include/fldeff_flash.h
new file mode 100644
index 000000000..546a7f5dc
--- /dev/null
+++ b/include/fldeff_flash.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_FLDEFF_FLASH_H
+#define GUARD_FLDEFF_FLASH_H
+
+void sub_810CC80(void);
+u8 sub_810CDB8(u8, u8);
+u8 fade_type_for_given_maplight_pair(u8, u8);
+
+#endif // GUARD_FLDEFF_FLASH_H
diff --git a/include/fldeff_softboiled.h b/include/fldeff_softboiled.h
new file mode 100644
index 000000000..97c65be08
--- /dev/null
+++ b/include/fldeff_softboiled.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_FLDEFF_SOFTBOILED_H
+#define GUARD_FLDEFF_SOFTBOILED_H
+
+bool8 SetUpFieldMove_SoftBoiled(void);
+void sub_8133D28(u8 taskid);
+
+#endif // GUARD_FLDEFF_SOFTBOILED_H
diff --git a/include/fldeff_teleport.h b/include/fldeff_teleport.h
new file mode 100644
index 000000000..e447f5132
--- /dev/null
+++ b/include/fldeff_teleport.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_FLDEFF_TELEPORT_H
+#define GUARD_FLDEFF_TELEPORT_H
+
+void hm_teleport_run_dp02scr(void);
+void sub_814A404(void);
+
+#endif // GUARD_FLDEFF_TELEPORT_H
diff --git a/include/fonts/.gitignore b/include/fonts/.gitignore
deleted file mode 100644
index 6e5bdcae2..000000000
--- a/include/fonts/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-font0_lat_glyphs.h
-font1_lat_glyphs.h
-font0_jpn_glyphs.h
-font1_jpn_glyphs.h
-braille_glyphs.h
-down_arrow_tiles.h
-unknown_palette_81E6692.h
-default_palette.h
diff --git a/include/fonts/font0_widths.h b/include/fonts/font0_widths.h
deleted file mode 100644
index 77fcff3ee..000000000
--- a/include/fonts/font0_widths.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#if REVISION >= 1
-static const u8 sFont0Widths[] =
-{
- 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6, 4, 8,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 8,
- 8, 8, 8, 8, 8, 8, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 7, 6, 4, 8, 8, 8, 7, 8, 8, 4, 6, 6, 4, 4, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 6, 7, 8, 7, 7, 8, 8, 4,
- 7, 8, 8, 8, 8, 8, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7,
- 7, 7, 7, 7, 5, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 6, 3, 5, 3,
- 6, 6, 6, 3, 3, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 5, 6,
- 3, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7,
- 3, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 1, 1,
-};
-#else
-static const u8 sFont0Widths[] =
-{
- 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6, 5, 8,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8,
- 7, 7, 7, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 7, 6, 3, 8, 8, 8, 7, 8, 8, 4, 6, 6, 4, 4, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 7, 7, 8, 8, 6,
- 7, 8, 8, 8, 8, 8, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7,
- 7, 7, 7, 7, 7, 7, 7, 8, 6, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 6, 3, 5, 3,
- 6, 6, 6, 3, 3, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 5, 6,
- 3, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7,
- 3, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 1, 1,
-};
-#endif
diff --git a/include/fonts/font1_widths.h b/include/fonts/font1_widths.h
deleted file mode 100644
index 454bbfaca..000000000
--- a/include/fonts/font1_widths.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#if REVISION >= 1
-static const u8 sFont1Widths[] =
-{
- 5, 3, 8, 8, 8, 8, 8, 8, 8, 4, 5, 4, 4, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 5, 8, 8, 8, 8, 8, 4, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 5, 5, 5,
- 6, 5, 5, 5, 5, 5, 5, 5, 5, 4, 8, 4, 4, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 8, 4, 5, 5, 5, 5, 4, 8,
- 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 8, 5, 6, 6,
- 8, 7, 3, 5, 3, 3, 5, 4, 3, 6, 6, 6, 7, 7, 8, 5,
- 5, 5, 3, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 4, 4, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 6, 6, 7, 7, 7, 7, 6, 7, 6, 6, 7, 6,
- 7, 7, 7, 6, 7, 6, 7, 6, 7, 6, 6, 7, 6, 6, 3, 3,
- 5, 5, 5, 5, 3, 3, 5, 5, 5, 5, 5, 5,
-};
-#else
-static const u8 sFont1Widths[] =
-{
- 5, 3, 8, 8, 8, 8, 8, 8, 8, 4, 5, 4, 4, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 5, 8, 8, 8, 8, 8, 4, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 6, 6, 5,
- 6, 5, 5, 5, 5, 5, 5, 5, 5, 4, 8, 4, 4, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 8, 4, 5, 5, 5, 5, 4, 8,
- 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6,
- 8, 7, 6, 5, 3, 3, 5, 4, 3, 6, 6, 6, 7, 7, 8, 5,
- 5, 5, 3, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 4, 4, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 6, 6, 7, 7, 7, 7, 6, 7, 6, 6, 7, 6,
- 7, 7, 7, 6, 7, 6, 7, 6, 7, 6, 6, 7, 6, 6, 3, 3,
- 5, 5, 5, 5, 3, 3, 5, 5, 5, 5, 5, 5,
-};
-#endif
diff --git a/include/fonts/font3_widths.h b/include/fonts/font3_widths.h
deleted file mode 100644
index 45dc69c06..000000000
--- a/include/fonts/font3_widths.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#if REVISION >= 1
-static const u8 sFont3Widths[] =
-{
- 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6, 4, 8,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 8,
- 8, 8, 8, 8, 8, 8, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 7, 6, 4, 8, 8, 8, 7, 8, 8, 4, 6, 6, 4, 4, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 6, 7, 8, 7, 7, 8, 8, 4,
- 7, 8, 8, 8, 8, 8, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7,
- 7, 7, 7, 7, 5, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 6, 3, 5, 3,
- 6, 6, 6, 3, 3, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 5, 6,
- 3, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7,
- 3, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 1, 1,
-};
-#else
-static const u8 sFont3Widths[] =
-{
- 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6, 4, 8,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 7, 6, 4, 8, 8, 8, 7, 8, 8, 4, 6, 6, 4, 4, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 6, 7, 8, 7, 7, 8, 8, 4,
- 7, 8, 8, 8, 8, 8, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7,
- 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 6, 3, 5, 3,
- 6, 6, 6, 3, 3, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 5, 6,
- 3, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7,
- 3, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 1, 1,
-};
-#endif
diff --git a/include/fonts/font4_widths.h b/include/fonts/font4_widths.h
deleted file mode 100644
index 63adf4921..000000000
--- a/include/fonts/font4_widths.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#if REVISION >= 1
-static const u8 sFont4Widths[] =
-{
- 5, 3, 8, 8, 8, 8, 8, 8, 8, 4, 5, 4, 4, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 5, 8, 8, 8, 8, 8, 4, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 5, 5, 5,
- 6, 5, 5, 5, 5, 5, 5, 5, 5, 4, 8, 4, 4, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 8, 4, 5, 5, 5, 5, 4, 8,
- 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 8, 5, 6, 6,
- 8, 7, 3, 5, 3, 3, 5, 4, 3, 6, 6, 6, 7, 7, 8, 5,
- 5, 5, 3, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 4, 4, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 6, 6, 7, 7, 7, 7, 6, 7, 6, 6, 7, 6,
- 7, 7, 7, 6, 7, 6, 7, 6, 7, 6, 6, 7, 6, 6, 3, 3,
- 5, 5, 5, 5, 3, 3, 5, 5, 5, 5, 5, 5,
-};
-#else
-static const u8 sFont4Widths[] =
-{
- 5, 3, 8, 8, 8, 8, 8, 8, 8, 4, 5, 4, 4, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 5, 8, 8, 8, 8, 8, 4, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 6, 6, 5,
- 6, 5, 5, 5, 5, 5, 5, 5, 5, 4, 8, 4, 4, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 8, 4, 5, 5, 5, 5, 4, 8,
- 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6,
- 8, 7, 6, 5, 3, 3, 5, 4, 3, 6, 6, 6, 7, 7, 8, 5,
- 5, 5, 3, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 4, 4, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 6, 6, 7, 7, 7, 7, 6, 7, 6, 6, 7, 6,
- 7, 7, 7, 6, 7, 6, 7, 6, 7, 6, 6, 7, 6, 6, 3, 3,
- 5, 5, 5, 5, 3, 3, 5, 5, 5, 5, 5, 5,
-};
-#endif
diff --git a/include/fonts/type1_map.h b/include/fonts/type1_map.h
deleted file mode 100644
index 45e42f62c..000000000
--- a/include/fonts/type1_map.h
+++ /dev/null
@@ -1,250 +0,0 @@
-static const u8 sFontType1Map[] =
-{
- 0xD4, 0xD4,
- 0xD4, 0x31,
- 0xD4, 0x32,
- 0xD4, 0x33,
- 0xD4, 0x34,
- 0xD4, 0x35,
- 0xD4, 0x36,
- 0xD4, 0x37,
- 0xD4, 0x38,
- 0xD4, 0x39,
- 0xD4, 0x3A,
- 0xD4, 0x3B,
- 0xD4, 0x3C,
- 0xD4, 0x3D,
- 0xD4, 0x3E,
- 0xD4, 0x3F,
- 0xD4, 0x40,
- 0xD4, 0x41,
- 0xD4, 0x42,
- 0xD4, 0x43,
- 0xD4, 0x44,
- 0xD4, 0x45,
- 0xD4, 0x46,
- 0xD4, 0x47,
- 0xD4, 0x48,
- 0xD4, 0x49,
- 0xD4, 0x4A,
- 0xD4, 0x4B,
- 0xD4, 0x4C,
- 0xD4, 0x4D,
- 0xD4, 0x4E,
- 0xD4, 0x4F,
- 0xD4, 0x50,
- 0xD4, 0x51,
- 0xD4, 0x52,
- 0xD4, 0x53,
- 0xD4, 0x54,
- 0xD4, 0x55,
- 0xD4, 0x56,
- 0xD4, 0x57,
- 0xD4, 0x58,
- 0xD4, 0x59,
- 0xD4, 0x5A,
- 0xD4, 0x5B,
- 0xD4, 0x5C,
- 0xD4, 0x5D,
- 0xD4, 0x5E,
- 0xD4, 0x31,
- 0xD4, 0x32,
- 0xD4, 0x33,
- 0xD4, 0x34,
- 0xD4, 0x35,
- 0xD4, 0x60,
- 0xD4, 0x61,
- 0xD4, 0x62,
- 0x65, 0x36,
- 0x65, 0x37,
- 0x65, 0x38,
- 0x65, 0x39,
- 0x65, 0x3A,
- 0x65, 0x3B,
- 0x65, 0x3C,
- 0x65, 0x3D,
- 0x65, 0x3E,
- 0x65, 0x3F,
- 0x65, 0x40,
- 0x65, 0x41,
- 0x65, 0x42,
- 0x65, 0x43,
- 0x65, 0x44,
- 0x65, 0x4A,
- 0x65, 0x4B,
- 0x65, 0x4C,
- 0x65, 0x4D,
- 0x65, 0x4E,
- 0x64, 0x4A,
- 0x64, 0x4B,
- 0x64, 0x4C,
- 0x64, 0x4D,
- 0x64, 0x4E,
- 0xD4, 0x5F,
- 0xD4, 0x00,
- 0xD4, 0x01,
- 0xD4, 0x02,
- 0xD4, 0x03,
- 0xD4, 0x04,
- 0xD4, 0x05,
- 0xD4, 0x06,
- 0xD4, 0x07,
- 0xD4, 0x08,
- 0xD4, 0x09,
- 0xD4, 0x0A,
- 0xD4, 0x0B,
- 0xD4, 0x0C,
- 0xD4, 0x0D,
- 0xD4, 0x0E,
- 0xD4, 0x0F,
- 0xD4, 0x10,
- 0xD4, 0x11,
- 0xD4, 0x12,
- 0xD4, 0x13,
- 0xD4, 0x14,
- 0xD4, 0x15,
- 0xD4, 0x16,
- 0xD4, 0x17,
- 0xD4, 0x18,
- 0xD4, 0x19,
- 0xD4, 0x1A,
- 0xD4, 0x1B,
- 0xD4, 0x4D,
- 0xD4, 0x1C,
- 0xD4, 0x1D,
- 0xD4, 0x1E,
- 0xD4, 0x1F,
- 0xD4, 0x20,
- 0xD4, 0x21,
- 0xD4, 0x22,
- 0xD4, 0x23,
- 0xD4, 0x24,
- 0xD4, 0x25,
- 0xD4, 0x58,
- 0xD4, 0x26,
- 0xD4, 0x27,
- 0xD4, 0x28,
- 0xD4, 0x29,
- 0xD4, 0x2A,
- 0xD4, 0x2B,
- 0xD4, 0x69,
- 0xD4, 0x30,
- 0xD4, 0x6A,
- 0xD4, 0x6B,
- 0xD4, 0x74,
- 0xD4, 0x2D,
- 0xD4, 0x2E,
- 0xD4, 0x2F,
- 0x65, 0x05,
- 0x65, 0x06,
- 0x65, 0x07,
- 0x65, 0x08,
- 0x65, 0x09,
- 0x65, 0x0A,
- 0x65, 0x0B,
- 0x65, 0x0C,
- 0x65, 0x0D,
- 0x65, 0x0E,
- 0x65, 0x0F,
- 0x65, 0x10,
- 0x65, 0x11,
- 0x65, 0x12,
- 0x65, 0x13,
- 0x65, 0x19,
- 0x65, 0x1A,
- 0x65, 0x1B,
- 0x65, 0x4D,
- 0x65, 0x1C,
- 0x64, 0x19,
- 0x64, 0x1A,
- 0x64, 0x1B,
- 0x64, 0x4D,
- 0x64, 0x1C,
- 0xD4, 0x2C,
- 0xD4, 0x76,
- 0xD4, 0x77,
- 0xD4, 0x78,
- 0xD4, 0x79,
- 0xD4, 0x7A,
- 0xD4, 0x7B,
- 0xD4, 0x7C,
- 0xD4, 0x7D,
- 0xD4, 0x7E,
- 0xD4, 0x7F,
- 0xD4, 0x67,
- 0xD4, 0x66,
- 0xD4, 0x68,
- 0xD4, 0x63,
- 0xD4, 0xD2,
- 0xD4, 0xD3,
- 0xD4, 0xD0,
- 0xD4, 0xD1,
- 0xD4, 0xCE,
- 0xD4, 0xCF,
- 0xD4, 0x6F,
- 0xD4, 0x75,
- 0xD4, 0x70,
- 0xD4, 0x72,
- 0xD4, 0x71,
- 0xD4, 0x73,
- 0xD4, 0x80,
- 0xD4, 0x81,
- 0xD4, 0x82,
- 0xD4, 0x83,
- 0xD4, 0x84,
- 0xD4, 0x85,
- 0xD4, 0x86,
- 0xD4, 0x87,
- 0xD4, 0x88,
- 0xD4, 0x89,
- 0xD4, 0x8A,
- 0xD4, 0x8B,
- 0xD4, 0x8C,
- 0xD4, 0x8D,
- 0xD4, 0x8E,
- 0xD4, 0x8F,
- 0xD4, 0x90,
- 0xD4, 0x91,
- 0xD4, 0x92,
- 0xD4, 0x93,
- 0xD4, 0x94,
- 0xD4, 0x95,
- 0xD4, 0x96,
- 0xD4, 0x97,
- 0xD4, 0x98,
- 0xD4, 0x99,
- 0xD4, 0x9A,
- 0xD4, 0x9B,
- 0xD4, 0x9C,
- 0xD4, 0x9D,
- 0xD4, 0x9E,
- 0xD4, 0x9F,
- 0xD4, 0xA0,
- 0xD4, 0xA1,
- 0xD4, 0xA2,
- 0xD4, 0xA3,
- 0xD4, 0xA4,
- 0xD4, 0xA5,
- 0xD4, 0xA6,
- 0xD4, 0xA7,
- 0xD4, 0xA8,
- 0xD4, 0xA9,
- 0xD4, 0xAA,
- 0xD4, 0xAB,
- 0xD4, 0xAC,
- 0xD4, 0xAD,
- 0xD4, 0xAE,
- 0xD4, 0xAF,
- 0xD4, 0xB0,
- 0xD4, 0xB1,
- 0xD4, 0xB2,
- 0xD4, 0xB3,
- 0xD4, 0x6D,
- 0xD4, 0xD5,
- 0xD4, 0xD6,
- 0xD4, 0xD7,
- 0xD4, 0xD8,
- 0xD4, 0xD9,
- 0xD4, 0xDA,
- 0xD4, 0xDB,
-};
diff --git a/include/fonts/type3_map.h b/include/fonts/type3_map.h
deleted file mode 100644
index 48219423b..000000000
--- a/include/fonts/type3_map.h
+++ /dev/null
@@ -1,131 +0,0 @@
-static const u8 sFontType3Map[] =
-{
- 0x00, 0x10,
- 0x01, 0x10,
- 0x02, 0x10,
- 0x03, 0x10,
- 0x04, 0x11,
- 0x05, 0x11,
- 0x06, 0x11,
- 0x07, 0x11,
- 0x08, 0x12,
- 0x09, 0x12,
- 0x0A, 0x12,
- 0x0B, 0x12,
- 0x0C, 0x13,
- 0x0D, 0x13,
- 0x0E, 0x13,
- 0x0F, 0x13,
- 0x00, 0x14,
- 0x01, 0x14,
- 0x02, 0x14,
- 0x03, 0x14,
- 0x04, 0x15,
- 0x05, 0x15,
- 0x06, 0x15,
- 0x07, 0x15,
- 0x08, 0x16,
- 0x09, 0x16,
- 0x0A, 0x16,
- 0x0B, 0x16,
- 0x0C, 0x17,
- 0x0D, 0x17,
- 0x0E, 0x17,
- 0x0F, 0x17,
- 0x00, 0x18,
- 0x01, 0x18,
- 0x02, 0x18,
- 0x03, 0x18,
- 0x04, 0x19,
- 0x05, 0x19,
- 0x06, 0x19,
- 0x07, 0x19,
- 0x08, 0x1A,
- 0x09, 0x1A,
- 0x0A, 0x1A,
- 0x0B, 0x1A,
- 0x0C, 0x1B,
- 0x0D, 0x1B,
- 0x0E, 0x1B,
- 0x0F, 0x1B,
- 0x00, 0x1C,
- 0x01, 0x1C,
- 0x02, 0x1C,
- 0x03, 0x1C,
- 0x04, 0x1D,
- 0x05, 0x1D,
- 0x06, 0x1D,
- 0x07, 0x1D,
- 0x08, 0x1E,
- 0x09, 0x1E,
- 0x0A, 0x1E,
- 0x0B, 0x1E,
- 0x0C, 0x1F,
- 0x0D, 0x1F,
- 0x0E, 0x1F,
- 0x0F, 0x1F,
- 0x20, 0x24,
- 0x20, 0x24,
- 0x21, 0x24,
- 0x21, 0x24,
- 0x20, 0x24,
- 0x20, 0x24,
- 0x21, 0x24,
- 0x21, 0x24,
- 0x22, 0x25,
- 0x22, 0x25,
- 0x23, 0x25,
- 0x23, 0x25,
- 0x22, 0x25,
- 0x22, 0x25,
- 0x23, 0x25,
- 0x23, 0x25,
- 0x20, 0x24,
- 0x20, 0x24,
- 0x21, 0x24,
- 0x21, 0x24,
- 0x20, 0x24,
- 0x20, 0x24,
- 0x21, 0x24,
- 0x21, 0x24,
- 0x22, 0x25,
- 0x22, 0x25,
- 0x23, 0x25,
- 0x23, 0x25,
- 0x22, 0x25,
- 0x22, 0x25,
- 0x23, 0x25,
- 0x23, 0x25,
- 0x20, 0x26,
- 0x20, 0x26,
- 0x21, 0x26,
- 0x21, 0x26,
- 0x20, 0x26,
- 0x20, 0x26,
- 0x21, 0x26,
- 0x21, 0x26,
- 0x22, 0x27,
- 0x22, 0x27,
- 0x23, 0x27,
- 0x23, 0x27,
- 0x22, 0x27,
- 0x22, 0x27,
- 0x23, 0x27,
- 0x23, 0x27,
- 0x20, 0x26,
- 0x20, 0x26,
- 0x21, 0x26,
- 0x21, 0x26,
- 0x20, 0x26,
- 0x20, 0x26,
- 0x21, 0x26,
- 0x21, 0x26,
- 0x22, 0x27,
- 0x22, 0x27,
- 0x23, 0x27,
- 0x23, 0x27,
- 0x22, 0x27,
- 0x22, 0x27,
- 0x23, 0x27,
- 0x23, 0x27,
-};
diff --git a/include/gba/flash_internal.h b/include/gba/flash_internal.h
index 6156b6c14..cbcfb5466 100644
--- a/include/gba/flash_internal.h
+++ b/include/gba/flash_internal.h
@@ -65,6 +65,10 @@ u16 ReadFlashId(void);
void StartFlashTimer(u8 phase);
void SetReadFlash1(u16 *dest);
void StopFlashTimer(void);
+u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void));
+u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src);
+void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size);
+u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n);
u16 WaitForFlashWrite_Common(u8 phase, u8 *addr, u8 lastData);
@@ -73,4 +77,7 @@ u16 EraseFlashSector_MX(u16 sectorNum);
u16 ProgramFlashByte_MX(u16 sectorNum, u32 offset, u8 data);
u16 ProgramFlashSector_MX(u16 sectorNum, u8 *src);
+// agb_flash_1m
+u16 IdentifyFlash(void);
+
#endif // GUARD_GBA_FLASH_INTERNAL_H
diff --git a/include/gba/gba.h b/include/gba/gba.h
index 26342cf88..42ae3cdde 100644
--- a/include/gba/gba.h
+++ b/include/gba/gba.h
@@ -4,6 +4,7 @@
#include "gba/defines.h"
#include "gba/io_reg.h"
#include "gba/types.h"
+#include "gba/multiboot.h"
#include "gba/syscall.h"
#include "gba/macro.h"
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index 0be92fa60..d483d4ddc 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -495,12 +495,12 @@
// I/O register fields
// DISPCNT
-#define DISPCNT_MODE_0 0x0000
-#define DISPCNT_MODE_1 0x0001
-#define DISPCNT_MODE_2 0x0002
-#define DISPCNT_MODE_3 0x0003
-#define DISPCNT_MODE_4 0x0004
-#define DISPCNT_MODE_5 0x0005
+#define DISPCNT_MODE_0 0x0000 // BG0: text, BG1: text, BG2: text, BG3: text
+#define DISPCNT_MODE_1 0x0001 // BG0: text, BG1: text, BG2: affine, BG3: off
+#define DISPCNT_MODE_2 0x0002 // BG0: off, BG1: off, BG2: affine, BG3: affine
+#define DISPCNT_MODE_3 0x0003 // Bitmap mode, 240x160, BGR555 color
+#define DISPCNT_MODE_4 0x0004 // Bitmap mode, 240x160, 256 color palette
+#define DISPCNT_MODE_5 0x0005 // Bitmap mode, 160x128, BGR555 color
#define DISPCNT_OBJ_1D_MAP 0x0040
#define DISPCNT_FORCED_BLANK 0x0080
#define DISPCNT_BG0_ON 0x0100
@@ -521,6 +521,26 @@
#define DISPSTAT_HBLANK_INTR 0x0010 // H-Blank interrupt enabled
#define DISPSTAT_VCOUNT_INTR 0x0020 // V-Count interrupt enabled
+// BGCNT
+#define BGCNT_PRIORITY(n) (n) // Values 0 - 3. Lower priority BGs will be drawn on top of higher priority BGs.
+#define BGCNT_CHARBASE(n) ((n) << 2) // Values 0 - 3. Base block for tile pixel data.
+#define BGCNT_MOSAIC 0x0040
+#define BGCNT_16COLOR 0x0000 // 4 bits per pixel
+#define BGCNT_256COLOR 0x0080 // 8 bits per pixel
+#define BGCNT_SCREENBASE(n) ((n) << 8) // Values 0 - 31. Base block for tile map.
+#define BGCNT_WRAP 0x2000 // Only affects affine BGs. Text BGs wrap by default.
+#define BGCNT_TXT256x256 0x0000 // Internal screen size size of text mode BG in pixels.
+#define BGCNT_TXT512x256 0x4000
+#define BGCNT_TXT256x512 0x8000
+#define BGCNT_TXT512x512 0xC000
+#define BGCNT_AFF128x128 0x0000 // Internal screen size size of affine mode BG in pixels.
+#define BGCNT_AFF256x256 0x4000
+#define BGCNT_AFF512x512 0x8000
+#define BGCNT_AFF1024x1024 0xC000
+
+// BLDCNT
+
+
// SOUNDCNT_H
#define SOUND_CGB_MIX_QUARTER 0x0000
#define SOUND_CGB_MIX_HALF 0x0001
@@ -577,6 +597,8 @@
#define TIMER_ENABLE 0x80
// serial
+#define SIO_ID 0x0030 // Communication ID
+
#define SIO_8BIT_MODE 0x0000 // Normal 8-bit communication mode
#define SIO_32BIT_MODE 0x1000 // Normal 32-bit communication mode
#define SIO_MULTI_MODE 0x2000 // Multi-player communication mode
@@ -589,6 +611,7 @@
#define SIO_MULTI_SI 0x0004 // Multi-player communication SI terminal
#define SIO_MULTI_SD 0x0008 // SD terminal
+#define SIO_MULTI_BUSY 0x0080
#define SIO_ERROR 0x0040 // Detect error
#define SIO_START 0x0080 // Start transfer
@@ -616,6 +639,8 @@
#define KEY_INTR_ENABLE 0x0400
#define KEY_OR_INTR 0x0000
#define KEY_AND_INTR 0x8000
+#define DPAD_ANY 0x00F0
+#define JOY_EXCL_DPAD 0x030F
// interrupt flags
#define INTR_FLAG_VBLANK (1 << 0)
diff --git a/include/gba/multiboot.h b/include/gba/multiboot.h
new file mode 100644
index 000000000..e88b43a19
--- /dev/null
+++ b/include/gba/multiboot.h
@@ -0,0 +1,55 @@
+#ifndef GUARD_GBA_MULTIBOOT_H
+#define GUARD_GBA_MULTIBOOT_H
+
+#define MULTIBOOT_NCHILD 3 // Maximum number of slaves
+#define MULTIBOOT_HEADER_SIZE 0xc0 // Header size
+#define MULTIBOOT_SEND_SIZE_MIN 0x100 // Minimum transmission size
+#define MULTIBOOT_SEND_SIZE_MAX 0x40000 // Maximum transmission size
+
+struct MultiBootParam
+{
+ u32 system_work[5];
+ u8 handshake_data;
+ u8 padding;
+ u16 handshake_timeout;
+ u8 probe_count;
+ u8 client_data[MULTIBOOT_NCHILD];
+ u8 palette_data;
+ u8 response_bit;
+ u8 client_bit;
+ u8 reserved1;
+ u8 *boot_srcp;
+ u8 *boot_endp;
+ u8 *masterp;
+ u8 *reserved2[MULTIBOOT_NCHILD];
+ u32 system_work2[4];
+ u8 sendflag;
+ u8 probe_target_bit;
+ u8 check_wait;
+ u8 server_type;
+};
+
+#define MULTIBOOT_ERROR_04 0x04
+#define MULTIBOOT_ERROR_08 0x08
+#define MULTIBOOT_ERROR_0c 0x0c
+#define MULTIBOOT_ERROR_40 0x40
+#define MULTIBOOT_ERROR_44 0x44
+#define MULTIBOOT_ERROR_48 0x48
+#define MULTIBOOT_ERROR_4c 0x4c
+#define MULTIBOOT_ERROR_80 0x80
+#define MULTIBOOT_ERROR_84 0x84
+#define MULTIBOOT_ERROR_88 0x88
+#define MULTIBOOT_ERROR_8c 0x8c
+#define MULTIBOOT_ERROR_NO_PROBE_TARGET 0x50
+#define MULTIBOOT_ERROR_NO_DLREADY 0x60
+#define MULTIBOOT_ERROR_BOOT_FAILURE 0x70
+#define MULTIBOOT_ERROR_HANDSHAKE_FAILURE 0x71
+
+#define MULTIBOOT_CONNECTION_CHECK_WAIT 15
+
+#define MULTIBOOT_SERVER_TYPE_NORMAL 0
+#define MULTIBOOT_SERVER_TYPE_QUICK 1
+
+#define MULTIBOOT_HANDSHAKE_TIMEOUT 400
+
+#endif // GUARD_GBA_MULTIBOOT_H
diff --git a/include/gba/syscall.h b/include/gba/syscall.h
index 9576f7e99..deddec5ba 100644
--- a/include/gba/syscall.h
+++ b/include/gba/syscall.h
@@ -31,6 +31,8 @@ void CpuSet(const void *src, void *dest, u32 control);
void CpuFastSet(const void *src, void *dest, u32 control);
+void BgAffineSet(struct BgAffineSrcData *src, struct BgAffineDstData *dest, s32 count);
+
void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset);
void LZ77UnCompWram(const void *src, void *dest);
@@ -41,4 +43,6 @@ void RLUnCompWram(const void *src, void *dest);
void RLUnCompVram(const void *src, void *dest);
+int MultiBoot(struct MultiBootParam *mp);
+
#endif // GUARD_GBA_SYSCALL_H
diff --git a/include/gba/types.h b/include/gba/types.h
index be7390d5a..96e057ab7 100644
--- a/include/gba/types.h
+++ b/include/gba/types.h
@@ -34,7 +34,7 @@ struct PlttData
u16 g:5; // green
u16 b:5; // blue
u16 unused_15:1;
-};
+} /*__attribute__((packed))*/;
struct OamData
{
@@ -74,6 +74,27 @@ struct OamData
#define ST_OAM_H_RECTANGLE 1
#define ST_OAM_V_RECTANGLE 2
+struct BgAffineSrcData
+{
+ s32 texX;
+ s32 texY;
+ s16 scrX;
+ s16 scrY;
+ s16 sx;
+ s16 sy;
+ u16 alpha;
+};
+
+struct BgAffineDstData
+{
+ s16 pa;
+ s16 pb;
+ s16 pc;
+ s16 pd;
+ s32 dx;
+ s32 dy;
+};
+
struct ObjAffineSrcData
{
s16 xScale;
diff --git a/include/global.berry.h b/include/global.berry.h
index 8b98a5f58..6632e55e2 100644
--- a/include/global.berry.h
+++ b/include/global.berry.h
@@ -3,13 +3,13 @@
struct Berry
{
- u8 name[7];
+ const u8 name[7];
u8 firmness;
u16 size;
u8 maxYield;
u8 minYield;
- u8 *description1;
- u8 *description2;
+ const u8 *description1;
+ const u8 *description2;
u8 stageDuration;
u8 spicy;
u8 dry;
@@ -34,10 +34,10 @@ struct EnigmaBerry
struct BattleEnigmaBerry
{
- u8 name[7];
- u8 holdEffect;
- u8 itemEffect[18];
- u8 holdEffectParam;
+ /*0x00*/ u8 name[7];
+ /*0x07*/ u8 holdEffect;
+ /*0x08*/ u8 itemEffect[18];
+ /*0x1A*/ u8 holdEffectParam;
};
struct BerryTree
@@ -45,7 +45,7 @@ struct BerryTree
u8 berry;
u8 stage:7;
u8 growthSparkle:1;
- u16 secondsUntilNextStage;
+ u16 minutesUntilNextStage;
u8 berryYield;
u8 regrowthCount:4;
u8 watered1:1;
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 9bcd9c3e7..7589de029 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -11,54 +11,98 @@ enum
CONNECTION_EMERGE
};
+// map types
+enum
+{
+ MAP_TYPE_0,
+ MAP_TYPE_TOWN,
+ MAP_TYPE_CITY,
+ MAP_TYPE_ROUTE,
+ MAP_TYPE_UNDERGROUND,
+ MAP_TYPE_UNDERWATER,
+ MAP_TYPE_6,
+ MAP_TYPE_7,
+ MAP_TYPE_INDOOR,
+ MAP_TYPE_SECRET_BASE
+};
+
+// map battle scenes
+enum
+{
+ MAP_BATTLE_SCENE_NORMAL, // 0
+ MAP_BATTLE_SCENE_GYM, // 1
+ MAP_BATTLE_SCENE_MAGMA, // 2
+ MAP_BATTLE_SCENE_AQUA, // 3
+ MAP_BATTLE_SCENE_SIDNEY, // 4
+ MAP_BATTLE_SCENE_PHOEBE, // 5
+ MAP_BATTLE_SCENE_GLACIA, // 6
+ MAP_BATTLE_SCENE_DRAKE, // 7
+ MAP_BATTLE_SCENE_BATTLE_TOWER, // 8
+};
+
typedef void (*TilesetCB)(void);
struct Tileset
{
- bool8 isCompressed;
- bool8 isSecondary;
- void *tiles;
- void *palettes;
- void *metatiles;
- void *metatileAttributes;
- TilesetCB callback;
+ /*0x00*/ bool8 isCompressed;
+ /*0x01*/ bool8 isSecondary;
+ /*0x04*/ void *tiles;
+ /*0x08*/ void *palettes;
+ /*0x0c*/ void *metatiles;
+ /*0x10*/ void *metatileAttributes;
+ /*0x14*/ TilesetCB callback;
};
struct MapData
{
+ /*0x00*/ s32 width;
+ /*0x04*/ s32 height;
+ /*0x08*/ u16 *border;
+ /*0x0c*/ u16 *map;
+ /*0x10*/ struct Tileset *primaryTileset;
+ /*0x14*/ struct Tileset *secondaryTileset;
+};
+
+struct BackupMapData
+{
s32 width;
s32 height;
- u16 *border;
u16 *map;
- struct Tileset *primaryTileset;
- struct Tileset *secondaryTileset;
};
struct MapObjectTemplate
{
/*0x00*/ u8 localId;
- /*0x01*/ u8 filler_1[0x3];
+ /*0x01*/ u8 graphicsId;
+ /*0x02*/ u8 unk2;
/*0x04*/ s16 x;
/*0x06*/ s16 y;
/*0x08*/ u8 elevation;
/*0x09*/ u8 movementType;
- /*0x0A*/ u8 filler_A[0x6];
+ /*0x0A*/ u8 unkA_0:4;
+ u8 unkA_4:4;
+ ///*0x0B*/ u8 fillerB[1];
+ /*0x0C*/ u16 unkC;
+ /*0x0E*/ u16 unkE;
/*0x10*/ u8 *script;
- /*0x14*/ u8 filler_14[0x4];
+ /*0x14*/ u16 flagId;
+ /*0x16*/ u8 filler_16[2];
}; /*size = 0x18*/
struct WarpEvent
{
s16 x, y;
s8 warpId;
- s8 mapGroup;
- s8 mapNum;
+ u8 mapGroup;
+ u8 mapNum;
+ u8 unk7;
};
struct CoordEvent
{
s16 x, y;
- u8 filler_4[0x2];
+ u8 unk4;
+ u8 filler_5;
u16 trigger;
u16 index;
u8 filler_A[0x2];
@@ -67,11 +111,24 @@ struct CoordEvent
struct BgEvent
{
- s16 x, y;
- u8 filler_4;
+ u16 x, y;
+ u8 unk4;
u8 kind;
- s16 filler_6;
- u8 *script;
+ // 0x2 padding for the union beginning.
+ union { // carried over from diego's FR/LG work, seems to be the same struct
+ // in gen 3, "kind" (0x3 in BgEvent struct) determines the method to read the union.
+ u8 *script;
+
+ // hidden item type probably
+ struct {
+ u8 filler6[0x2];
+ u16 hiddenItemId; // flag offset to determine flag lookup
+ } hiddenItem;
+
+ // secret base type
+ u32 secretBaseId;
+
+ } bgUnion;
};
struct MapEvents
@@ -89,10 +146,10 @@ struct MapEvents
struct MapConnection
{
- u8 direction;
- u32 offset;
- u8 mapGroup;
- u8 mapNum;
+ /*0x00*/ u8 direction;
+ /*0x01*/ u32 offset;
+ /*0x05*/ u8 mapGroup;
+ /*0x06*/ u8 mapNum;
};
struct MapConnections
@@ -103,20 +160,20 @@ struct MapConnections
struct MapHeader
{
- struct MapData *mapData;
- struct MapEvents *events;
- u8 *mapScripts;
- struct MapConnections *connections;
- u16 music;
- u16 mapDataId;
- u8 name;
- u8 cave;
- u8 weather;
- /* 0x17 */ u8 light;
- u8 filler_18;
- u8 escapeRope;
- u8 flags;
- u8 battleType;
+ /* 0x00 */ struct MapData *mapData;
+ /* 0x04 */ struct MapEvents *events;
+ /* 0x08 */ u8 *mapScripts;
+ /* 0x0C */ struct MapConnections *connections;
+ /* 0x10 */ u16 music;
+ /* 0x12 */ u16 mapDataId;
+ /* 0x14 */ u8 name;
+ /* 0x15 */ u8 cave;
+ /* 0x16 */ u8 weather;
+ /* 0x17 */ u8 mapType;
+ /* 0x18 */ u8 filler_18;
+ /* 0x19 */ u8 escapeRope;
+ /* 0x1A */ u8 flags;
+ /* 0x1B */ u8 battleType;
};
struct MapObject
@@ -165,7 +222,7 @@ struct MapObject
/*0x0C*/ struct Coords16 coords1;
/*0x10*/ struct Coords16 coords2;
/*0x14*/ struct Coords16 coords3;
- /*0x18*/ u8 mapobj_unk_18:4;
+ /*0x18*/ u8 mapobj_unk_18:4; //current direction?
/*0x18*/ u8 placeholder18:4;
/*0x19*/ u8 mapobj_unk_19;
/*0x1A*/ u8 mapobj_unk_1A;
@@ -176,7 +233,7 @@ struct MapObject
/*0x1F*/ u8 mapobj_unk_1F;
/*0x20*/ u8 mapobj_unk_20;
/*0x21*/ u8 mapobj_unk_21;
- /*0x22*/ u8 mapobj_unk_22;
+ /*0x22*/ u8 animId;
/*size = 0x24*/
};
@@ -244,22 +301,22 @@ struct MapObject2
struct MapObjectGraphicsInfo
{
- u16 tileTag;
- u16 paletteTag1;
- u16 paletteTag2;
- u16 size;
- s16 width;
- s16 height;
- u8 paletteSlot:4;
- u8 shadowSize:2;
- u8 inanimate:1;
- u8 disableReflectionPaletteLoad:1;
- u8 tracks;
- struct OamData *oam;
- struct SubspriteTable *subspriteTables;
- union AnimCmd **anims;
- struct SpriteFrameImage *images;
- union AffineAnimCmd **affineAnims;
+ /*0x00*/ u16 tileTag;
+ /*0x02*/ u16 paletteTag1;
+ /*0x04*/ u16 paletteTag2;
+ /*0x06*/ u16 size;
+ /*0x08*/ s16 width;
+ /*0x0A*/ s16 height;
+ /*0x0C*/ u8 paletteSlot:4;
+ u8 shadowSize:2;
+ u8 inanimate:1;
+ u8 disableReflectionPaletteLoad:1;
+ /*0x0D*/ u8 tracks;
+ /*0x10*/ const struct OamData *oam;
+ /*0x14*/ const struct SubspriteTable *subspriteTables;
+ /*0x18*/ const union AnimCmd *const *anims;
+ /*0x1C*/ const struct SpriteFrameImage *images;
+ /*0x20*/ const union AffineAnimCmd *const *affineAnims;
};
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0)
@@ -271,7 +328,32 @@ struct MapObjectGraphicsInfo
#define PLAYER_AVATAR_FLAG_6 (1 << 6)
#define PLAYER_AVATAR_FLAG_DASH (1 << 7)
-struct PlayerAvatar
+enum
+{
+ ACRO_BIKE_NORMAL,
+ ACRO_BIKE_TURNING,
+ ACRO_BIKE_WHEELIE_STANDING,
+ ACRO_BIKE_BUNNY_HOP,
+ ACRO_BIKE_WHEELIE_MOVING,
+ ACRO_BIKE_STATE5,
+ ACRO_BIKE_STATE6,
+};
+
+enum
+{
+ DIR_NONE,
+ DIR_SOUTH,
+ DIR_NORTH,
+ DIR_WEST,
+ DIR_EAST,
+};
+
+enum
+{
+ COLLISION_LEDGE_JUMP = 6
+};
+
+struct PlayerAvatar /* 0x202E858 */
{
/*0x00*/ u8 flags;
/*0x01*/ u8 bike;
@@ -281,9 +363,24 @@ struct PlayerAvatar
/*0x05*/ u8 mapObjectId;
/*0x06*/ u8 unk6;
/*0x07*/ u8 gender;
+ u8 acroBikeState;
+ u8 unk9;
+ u8 bikeFrameCounter;
+ u8 unkB;
+ u32 unkC;
+ u32 unk10;
+ u8 unk14[8];
+ u8 unk1C[8];
// TODO: rest of struct
};
+struct Camera
+{
+ bool8 field_0:1;
+ s32 x;
+ s32 y;
+};
+
extern struct MapObject gMapObjects[];
extern u8 gSelectedMapObject;
extern struct MapHeader gMapHeader;
diff --git a/include/global.h b/include/global.h
index be35f1299..e90fcdd0f 100644
--- a/include/global.h
+++ b/include/global.h
@@ -2,9 +2,21 @@
#define GUARD_GLOBAL_H
#include "gba/gba.h"
-
-#ifndef REVISION
-#define REVISION 0
+#include "config.h"
+
+// IDE support
+#ifdef __APPLE__
+#define _(x) x
+#define __(x) x
+#define INCBIN_U8 {0}
+#define INCBIN_U16 {0}
+#define INCBIN_U32 {0}
+#define INCBIN_S8 {0}
+#define INCBIN_S16 {0}
+#define INCBIN_S32 {0}
+void * memcpy (void *, const void *, size_t);
+void * memset (void *, int, size_t);
+int strcmp (const char *, const char *);
#endif
// Prevent cross-jump optimization.
@@ -13,22 +25,44 @@
// to help in decompiling
#define asm_comment(x) asm volatile("@ -- " x " -- ")
+#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided\n")
+
+#define nonmatching(fndec, x) {\
+__attribute__((naked))\
+fndec\
+{\
+ asm_unified(x);\
+}\
+}
+
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
#define POKEMON_NAME_LENGTH 10
#define OT_NAME_LENGTH 7
-extern u8 gStringVar1[];
-extern u8 gStringVar2[];
-extern u8 gStringVar3[];
-extern u8 gStringVar4[];
+#define min(a, b) (a >= b ? a : b)
+#define max(a, b) (a <= b ? a : b)
enum
{
VERSION_SAPPHIRE = 1,
VERSION_RUBY = 2,
+ VERSION_EMERALD = 3,
+};
+
+enum LanguageId
+{
+ LANGUAGE_JAPANESE = 1,
+ LANGUAGE_ENGLISH = 2,
+ LANGUAGE_GERMAN = 5,
};
+#if defined(ENGLISH)
+#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
+#elif defined(GERMAN)
+#define GAME_LANGUAGE (LANGUAGE_GERMAN)
+#endif
+
enum
{
MALE,
@@ -61,6 +95,20 @@ enum
OPTIONS_BATTLE_STYLE_SET
};
+enum
+{
+ BAG_ITEMS = 1,
+ BAG_POKEBALLS,
+ BAG_TMsHMs,
+ BAG_BERRIES,
+ BAG_KEYITEMS
+};
+
+struct TextStruct
+{
+ const u8 *text;
+};
+
struct Coords16
{
s16 x;
@@ -75,23 +123,24 @@ struct UCoords16
struct SecretBaseRecord
{
- u8 sbr_field_0; // ID?
- u8 sbr_field_1_0:4;
- u8 gender:1;
- u8 sbr_field_1_5:1;
- u8 sbr_field_2[7]; // 0xFF bytes?
- u8 trainerId[4]; // byte 0 is used for determining trainer class
- u16 sbr_field_e;
- u8 sbr_field_10;
- u8 sbr_field_11;
- u8 decorations[16];
- u8 sbr_field_22[16];
- u32 partyPersonality[6];
- u16 partyMoves[6 * 4];
- u16 partySpecies[6];
- u16 partyHeldItems[6];
- u8 partyLevels[6];
- u8 partyEVs[6];
+ /*ID?*/ /*0x1A08*/ u8 sbr_field_0;
+ /*0x1A09*/ u8 sbr_field_1_0:4;
+ /*0x1A09*/ u8 gender:1;
+ /*0x1A09*/ u8 sbr_field_1_5:1;
+ /*0x1A09*/ u8 sbr_field_1_6:2;
+ /*0x1A0A*/ u8 sbr_field_2[7]; // 0xFF bytes?
+ /*0x1A12*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
+ /*0x1A16*/ u16 sbr_field_e;
+ /*0x1A18*/ u8 sbr_field_10;
+ /*0x1A19*/ u8 sbr_field_11;
+ /*0x1A1A*/ u8 decorations[16];
+ /*0x1A2A*/ u8 decorationPos[16];
+ /*0x1A3A*/ u32 partyPersonality[6];
+ /*0x1A54*/ u16 partyMoves[6 * 4];
+ /*0x1A84*/ u16 partySpecies[6];
+ /*0x1A90*/ u16 partyHeldItems[6];
+ /*0x1A9C*/ u8 partyLevels[6];
+ /*0x1AA2*/ u8 partyEVs[6];
};
#include "game_stat.h"
@@ -137,7 +186,8 @@ struct Roamer
/*0x10*/ u8 cute;
/*0x11*/ u8 smart;
/*0x12*/ u8 tough;
- /*0x13*/ u8 active;
+ /*0x13*/ bool8 active;
+ /*0x14*/ u8 filler[0x8];
};
struct RamScriptData
@@ -157,7 +207,8 @@ struct RamScript
struct SB1_2EFC_Struct
{
- u8 unknown[0x20];
+ u16 var;
+ u8 unknown[0x1E];
};
struct EasyChatPair
@@ -169,12 +220,317 @@ struct EasyChatPair
u16 words[2];
}; /*size = 0x8*/
-struct SaveBlock1_2B4C_Struct
-{
- u8 filler[0x24];
+struct TVShowCommon
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u8 pad02[20];
+ /*0x16*/ u16 var16[3];
+ /*0x1C*/ u8 srcTrainerId3Lo;
+ /*0x1D*/ u8 srcTrainerId3Hi;
+ /*0x1E*/ u8 srcTrainerId2Lo;
+ /*0x1F*/ u8 srcTrainerId2Hi;
+ /*0x20*/ u8 srcTrainerIdLo;
+ /*0x21*/ u8 srcTrainerIdHi;
+ /*0x22*/ u8 trainerIdLo;
+ /*0x23*/ u8 trainerIdHi;
+};
+
+struct TVShowFanClubLetter
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u16 species;
+ /*0x04*/ u16 pad04[6];
+ /*0x10*/ u8 playerName[8];
+ /*0x18*/ u8 language;
+};
+
+struct TVShowRecentHappenings
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u16 var02;
+ /*0x04*/ u16 var04[6];
+ /*0x10*/ u8 playerName[8];
+ /*0x18*/ u8 language;
+ /*0x19*/ u8 pad19[10];
+};
+
+struct TVShowFanclubOpinions
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u16 var02;
+ /*0x04*/ u8 var04A:4;
+ /*0x04*/ u8 var04B:4;
+ /*0x05*/ u8 playerName[8];
+ /*0x0D*/ u8 language;
+ /*0x0E*/ u8 var0E;
+ /*0x0F*/ u8 var0F;
+ /*0x10*/ u8 var10[8];
+ /*0x18*/ u16 var18[2];
+ /*0x1C*/ u16 var1C[4];
+};
+
+struct TVShowUnknownType04
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u8 pad02[4];
+ /*0x06*/ u16 var06;
+};
+
+struct TVShowNameRaterShow
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u16 species;
+ /*0x04*/ u8 pokemonName[11];
+ /*0x0F*/ u8 trainerName[11];
+ /*0x1A*/ u8 random;
+ /*0x1B*/ u8 random2;
+ /*0x1C*/ u16 var1C;
+ /*0x1E*/ u8 language;
+ /*0x1F*/ u8 pokemonNameLanguage;
+};
+
+struct TVShowBravoTrainerPokemonProfiles
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u16 species;
+ /*0x04*/ u16 var04[2];
+ /*0x08*/ u8 pokemonNickname[11];
+ /*0x13*/ u8 contestCategory:3;
+ /*0x13*/ u8 contestRank:2;
+ /*0x13*/ u8 contestResult:2;
+ /*0x13*/ u8 var13_7:1;
+ /*0x14*/ u16 var14;
+ /*0x16*/ u8 playerName[8];
+ /*0x1E*/ u8 language;
+ /*0x1F*/ u8 var1f;
+};
+
+struct TVShowBravoTrainerBattleTowerSpotlight
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u8 trainerName[8];
+ /*0x0A*/ u16 species;
+ /*0x0C*/ u8 pokemonName[8];
+ /*0x14*/ u16 defeatedSpecies;
+ /*0x16*/ u16 var16;
+ /*0x18*/ u16 var18[1];
+ /*0x1A*/ u8 btLevel;
+ /*0x1B*/ u8 var1b;
+ /*0x1C*/ u8 var1c;
+ /*0x1D*/ u8 language;
+};
+
+struct TVShowPokemonToday
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u8 language;
+ /*0x03*/ u8 language2;
+ /*0x04*/ u8 nickname[11];
+ /*0x0F*/ u8 ball;
+ /*0x10*/ u16 species;
+ /*0x12*/ u8 var12;
+ /*0x13*/ u8 playerName[8];
+};
+
+struct TVShowSmartShopper
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u8 priceReduced;
+ /*0x03*/ u8 language;
+ /*0x04*/ u8 pad04[2];
+ /*0x06*/ u16 itemIds[3];
+ /*0x0C*/ u16 itemAmounts[3];
+ /*0x12*/ u8 shopLocation;
+ /*0x13*/ u8 playerName[8];
+};
+
+struct TVShowPokemonTodayFailed
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u8 language;
+ /*0x03*/ u8 pad03[9];
+ /*0x0c*/ u16 species;
+ /*0x0e*/ u16 species2;
+ /*0x10*/ u8 var10;
+ /*0x11*/ u8 var11;
+ /*0x12*/ u8 var12;
+ /*0x13*/ u8 playerName[8];
+};
+
+struct TVShowPokemonAngler
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u8 var02;
+ /*0x03*/ u8 var03;
+ /*0x04*/ u16 var04;
+ /*0x06*/ u8 language;
+ u8 pad07[12];
+ /*0x13*/ u8 playerName[8];
+};
+
+struct TVShowWorldOfMasters
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u16 var02;
+ /*0x04*/ u16 var04;
+ /*0x06*/ u16 var06;
+ /*0x08*/ u16 var08;
+ /*0x0a*/ u8 var0a;
+ /*0x0b*/ u8 language;
+ u8 pad0c[7];
+ /*0x13*/ u8 playerName[8];
+};
+
+struct TVShowMassOutbreak
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u8 var02;
+ /*0x03*/ u8 var03;
+ /*0x04*/ u16 moves[4];
+ /*0x0C*/ u16 species;
+ /*0x0E*/ u16 var0E;
+ /*0x10*/ u8 locationMapNum;
+ /*0x11*/ u8 locationMapGroup;
+ /*0x12*/ u8 var12;
+ /*0x13*/ u8 probability;
+ /*0x14*/ u8 level;
+ /*0x15*/ u8 var15;
+ /*0x16*/ u16 var16;
+ /*0x18*/ u8 language;
+ u8 pad19[11];
+};
+
+typedef union TVShow
+{
+ struct TVShowCommon common;
+ struct TVShowFanClubLetter fanclubLetter;
+ struct TVShowRecentHappenings recentHappenings;
+ struct TVShowFanclubOpinions fanclubOpinions;
+ struct TVShowUnknownType04 unkShow04;
+ struct TVShowNameRaterShow nameRaterShow;
+ struct TVShowBravoTrainerPokemonProfiles bravoTrainer;
+ struct TVShowBravoTrainerBattleTowerSpotlight bravoTrainerTower;
+ struct TVShowPokemonToday pokemonToday;
+ struct TVShowSmartShopper smartshopperShow;
+ struct TVShowPokemonTodayFailed pokemonTodayFailed;
+ struct TVShowPokemonAngler pokemonAngler;
+ struct TVShowWorldOfMasters worldOfMasters;
+ struct TVShowMassOutbreak massOutbreak;
+} TVShow;
+
+struct MailStruct
+{
+ /*0x00*/ u16 words[9];
+ /*0x12*/ u8 playerName[8];
+ /*0x1A*/ u8 trainerId[4];
+ /*0x1E*/ u16 species;
+ /*0x20*/ u16 itemId;
+};
+
+struct UnkMauvilleOldManStruct
+{
+ u8 unk_2D94;
+ u8 unk_2D95;
+ /*0x2D96*/ u16 mauvilleOldMan_ecArray[6];
+ /*0x2DA2*/ u16 mauvilleOldMan_ecArray2[6];
+ /*0x2DAE*/ u8 playerName[8];
+ /*0x2DB6*/ u8 filler_2DB6[0x3];
+ /*0x2DB9*/ u8 playerTrainerId[4];
+ u8 unk_2DBD;
+}; /*size = 0x2C*/
+
+struct UnkMauvilleOldManStruct2
+{
+ u8 filler0;
+ u8 unk1;
+ u8 unk2;
+ u16 mauvilleOldMan_ecArray[10];
+ u8 mauvilleOldMan_ecArray2[12];
+ u8 fillerF[0x2];
+}; /*size = 0x2C*/
+
+typedef union OldMan
+{
+ struct UnkMauvilleOldManStruct oldMan1;
+ struct UnkMauvilleOldManStruct2 oldMan2;
+} OldMan;
+
+struct Unk_SB_Access_Struct1
+{
+ u8 filler0[0xF8];
+ struct SB1_2EFC_Struct sb1_2EFC_struct[5];
+};
+
+struct Unk_SB_Access_Struct2
+{
+ /*0x0000*/ struct SB1_2EFC_Struct sb1_2EFC_struct2[12]; // each is 0x20
+ /*0x2F84*/ u8 filler[0x18];
+};
+
+/*0x2E04*/
+typedef union SB_Struct
+{
+ struct Unk_SB_Access_Struct1 unkSB1;
+ struct Unk_SB_Access_Struct2 unkSB2;
+} SB_Struct;
+// size is 0x198
+
+struct UnknownSaveStruct2ABC
+{
+ u8 val0;
+ u8 val1;
+ u16 val2;
+};
+
+struct GabbyAndTyData
+{
+ /*2b10*/ u16 mon1;
+ /*2b12*/ u16 mon2;
+ /*2b14*/ u16 lastMove;
+ /*2b16*/ u16 quote;
+ /*2b18*/ u8 mapnum;
+ /*2b19*/ u8 battleNum;
+ /*2b1a*/ u8 valA_0:1;
+ /*2b1a*/ u8 valA_1:1;
+ /*2b1a*/ u8 valA_2:1;
+ /*2b1a*/ u8 valA_3:1;
+ /*2b1a*/ u8 valA_4:1;
+ /*2b1a*/ u8 valA_5:3;
+ /*2b1b*/ u8 valB_0:1;
+ /*2b1b*/ u8 valB_1:1;
+ /*2b1b*/ u8 valB_2:1;
+ /*2b1b*/ u8 valB_3:1;
+ /*2b1b*/ u8 valB_4:1;
+ /*2b1b*/ u8 valB_5:3;
+};
+
+struct RecordMixing_UnknownStructSub
+{
+ u8 data[0x38];
+};
+
+struct RecordMixing_UnknownStruct
+{
+ struct RecordMixing_UnknownStructSub data[2];
+ u32 unk70;
+ u16 unk74[0x2];
};
-struct SaveBlock1
+struct SaveBlock1 /* 0x02025734 */
{
/*0x00*/ struct Coords16 pos;
/*0x04*/ struct WarpData location;
@@ -223,33 +579,41 @@ struct SaveBlock1
/*0x2704*/ u8 decorDoll[40];
/*0x272C*/ u8 decorCushion[10];
/*0x2736*/ u8 padding_2736[2];
- /*0x2738*/ u8 tvShows[24][36]; // TODO: TV show struct
- /*0x2A98*/ u8 filler_2A98[0x64];
+ /*0x2738*/ TVShow tvShows[25];
+ /*0x2ABC*/ struct UnknownSaveStruct2ABC unknown_2ABC[16];
/*0x2AFC*/ u16 outbreakPokemonSpecies;
/*0x2AFE*/ u8 outbreakLocationMapNum;
/*0x2AFF*/ u8 outbreakLocationMapGroup;
/*0x2B00*/ u8 outbreakPokemonLevel;
- /*0x2B01*/ u8 filler_2B01[3];
+ /*0x2B01*/ u8 outbreakUnk1;
+ /*0x2B02*/ u16 outbreakUnk2;
/*0x2B04*/ u16 outbreakPokemonMoves[4];
- /*0x2B0C*/ u8 unk2B0C;
+ /*0x2B0C*/ u8 outbreakUnk4;
/*0x2B0D*/ u8 outbreakPokemonProbability;
- /*0x2B0E*/ u8 filler_2B0E[0xE];
- /*0x2B1C*/ u16 unk2B1C[4];
- /*0x2B24*/ u8 filler_2B24[0x28];
- /*0x2B4C*/ struct SaveBlock1_2B4C_Struct unkSave[16];
- /*0x2D8C*/ u8 filler_2D8C[0x48];
+ /*0x2B0E*/ u16 outbreakUnk5;
+ /*0x2B10*/ struct GabbyAndTyData gabbyAndTyData;
+ /*0x2B1C*/ u16 unk2B1C[6];
+ /*0x2B28*/ u16 unk2B28[6];
+ /*0x2B34*/ u16 unk2B34[6];
+ /*0x2B40*/ u16 unk2B40[6];
+ /*0x2B4C*/ struct MailStruct mail[16];
+ /*0x2D8C*/ u8 unk2D8C[4];
+ /*0x2D90*/ u8 filler_2D90[0x4];
+ /*0x2D94*/ OldMan oldMan;
+ /*0x2DC0*/ u8 unk_2DC0[0x14];
/*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
- /*0x2DFC*/ u8 filler_2DFC[0x100];
- /*0x2EFC*/ struct SB1_2EFC_Struct sb1_2EFC_struct[5];
- /*0x2F9C*/ u8 filler_2F9C[0xA0];
- /*0x303C*/ u8 filler_303C[0x38];
- /*0x3074*/ u8 filler_3074[0x42];
+ /*0x2DFC*/ u8 filler_2DFC[0x8];
+ /*0x2E04*/ SB_Struct sbStruct;
+ /*0x2F9C*/ struct BoxPokemon daycareData[2];
+ /*0x303C*/ struct RecordMixing_UnknownStruct filler_303C;
+ /*0x30AC*/ u8 filler_30B4[0x2];
/*0x30B6*/ u8 filler_30B6;
- /*0x30B7*/ u8 filler_30B7[0x59];
+ /*0x30B7*/ u8 filler_30B7[1];
+ /*0x30B8*/ u8 linkBattleRecords[5][16];
+ /*0x3108*/ u8 filler_3108[8];
/*0x3110*/ u8 giftRibbons[7];
/*0x3117*/ u8 filler_311B[0x2D];
/*0x3144*/ struct Roamer roamer;
- /*0x3158*/ u8 filler_3158[0x8];
/*0x3160*/ struct EnigmaBerry enigmaBerry;
/*0x3690*/ struct RamScript ramScript;
/*0x3A7C*/ u8 filler_3A7C[0x10];
@@ -260,10 +624,10 @@ extern struct SaveBlock1 gSaveBlock1;
struct Time
{
- s16 days;
- s8 hours;
- s8 minutes;
- s8 seconds;
+ /*0x00*/ s16 days;
+ /*0x02*/ s8 hours;
+ /*0x03*/ s8 minutes;
+ /*0x04*/ s8 seconds;
};
struct Pokedex
@@ -281,13 +645,27 @@ struct Pokedex
struct SaveBlock2_Sub
{
- /*0x0000, 0x00A8*/ u8 filler_000[0x4C8];
- /*0x04C8, 0x0570*/ u16 var_4C8;
- /*0x04CA, 0x0572*/ u16 var_4CA;
- /*0x04CC, 0x0574*/ u8 filler_4CC[0x31C];
+ /*0x0000, 0x00A8*/ u8 filler_000[0x3D8];
+ /*0x03D8, 0x0480*/ u16 var_480;
+ /*0x03DA, 0x0482*/ u16 var_482;
+ /*0x03DC, 0x0484*/ u8 filler_3DC[0xD0];
+ /*0x04AC, 0x0554*/ u8 var_4AC;
+ /*0x04AD, 0x0555*/ u8 var_4AD;
+ /*0x04AE, 0x0556*/ u8 var_4AE;
+ /*0x04AF, 0x0557*/ u8 var_4AF;
+ /*0x04B0, 0x0558*/ u16 var_4B0;
+ /*0x04B2, 0x055A*/ u16 var_4B2;
+ /*0x04B4, 0x055C*/ u16 var_4B4;
+ /*0x04B6, 0x055E*/ u16 var_4B6;
+ /*0x04B8, 0x0560*/ u8 filler_4B8[0x10];
+ /*0x04C8, 0x0570*/ u16 var_4C8;
+ /*0x04CA, 0x0572*/ u16 var_4CA;
+ /*0x04CC, 0x0574*/ u8 filler_4CC[4];
+ /*0x04D0, 0x0578*/ u8 var_4D0;
+ /*0x04D1, 0x0579*/ u8 filler_4D1[0x317];
};
-struct SaveBlock2
+struct SaveBlock2 /* 0x02024EA4 */
{
/*0x00*/ u8 playerName[8];
/*0x08*/ u8 playerGender; // MALE, FEMALE
@@ -297,13 +675,13 @@ struct SaveBlock2
/*0x10*/ u8 playTimeMinutes;
/*0x11*/ u8 playTimeSeconds;
/*0x12*/ u8 playTimeVBlanks;
- /*0x13*/ u8 optionsButtonMode; // OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A]
- u16 optionsTextSpeed:3; // OPTIONS_TEXT_SPEED_[SLOW/MID/FAST]
+ /*0x13*/ u8 optionsButtonMode; // OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A]
+ /*0x14*/ u16 optionsTextSpeed:3; // OPTIONS_TEXT_SPEED_[SLOW/MID/FAST]
u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes
- u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO]
- u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET]
- u16 optionsBattleSceneOff:1; // whether battle animations are disabled
- u16 regionMapZoom:1; // whether the map is zoomed in
+ u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO]
+ u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET]
+ u16 optionsBattleSceneOff:1; // whether battle animations are disabled
+ u16 regionMapZoom:1; // whether the map is zoomed in
/*0x18*/ struct Pokedex pokedex;
/*0x90*/ u8 filler_90[0x8];
/*0x98*/ struct Time localTimeOffset;
@@ -311,23 +689,30 @@ struct SaveBlock2
/*0xA8*/ struct SaveBlock2_Sub filler_A8;
};
-struct UnkStruct_8054FF8_Substruct
+struct MapPosition
{
- s16 x;
- s16 y;
- u8 field_8;
+ s16 x;
+ s16 y;
+ u8 height;
};
struct UnkStruct_8054FF8
{
- u8 a;
- u8 b;
- u8 c;
- u8 d;
- struct UnkStruct_8054FF8_Substruct sub;
- u16 field_C;
+ u8 a;
+ u8 b;
+ u8 c;
+ u8 d;
+ struct MapPosition sub;
+ u16 field_C;
+};
+
+// wasnt defined so I had to define it
+struct HallOfFame
+{
+ u8 filler[0x1F00];
};
+extern struct HallOfFame gHallOfFame;
extern struct SaveBlock2 gSaveBlock2;
#endif // GUARD_GLOBAL_H
diff --git a/include/graphics.h b/include/graphics.h
new file mode 100644
index 000000000..c3fe20996
--- /dev/null
+++ b/include/graphics.h
@@ -0,0 +1,2438 @@
+#ifndef GUARD_GRAPHICS_H
+#define GUARD_GRAPHICS_H
+
+// data/graphics.s
+extern const u8 gInterfaceGfx_PokeBall[];
+extern const u8 gInterfacePal_PokeBall[];
+extern const u8 gInterfaceGfx_GreatBall[];
+extern const u8 gInterfacePal_GreatBall[];
+extern const u8 gInterfaceGfx_SafariBall[];
+extern const u8 gInterfacePal_SafariBall[];
+extern const u8 gInterfaceGfx_UltraBall[];
+extern const u8 gInterfacePal_UltraBall[];
+extern const u8 gInterfaceGfx_MasterBall[];
+extern const u8 gInterfacePal_MasterBall[];
+extern const u8 gInterfaceGfx_NetBall[];
+extern const u8 gInterfacePal_NetBall[];
+extern const u8 gInterfaceGfx_DiveBall[];
+extern const u8 gInterfacePal_DiveBall[];
+extern const u8 gInterfaceGfx_NestBall[];
+extern const u8 gInterfacePal_NestBall[];
+extern const u8 gInterfaceGfx_RepeatBall[];
+extern const u8 gInterfacePal_RepeatBall[];
+extern const u8 gInterfaceGfx_TimerBall[];
+extern const u8 gInterfacePal_TimerBall[];
+extern const u8 gInterfaceGfx_LuxuryBall[];
+extern const u8 gInterfacePal_LuxuryBall[];
+extern const u8 gInterfaceGfx_PremierBall[];
+extern const u8 gInterfacePal_PremierBall[];
+extern const u8 gUnknown_08D030D0[];
+
+extern const u8 gMonFootprint_QuestionMark[];
+
+// data/graphics/pokemon/graphics.inc
+extern const u8 gMonFrontPic_Bulbasaur[];
+extern const u8 gMonPalette_Bulbasaur[];
+extern const u8 gMonBackPic_Bulbasaur[];
+extern const u8 gMonShinyPalette_Bulbasaur[];
+extern const u8 gMonIcon_Bulbasaur[];
+extern const u8 gMonFootprint_Bulbasaur[];
+extern const u8 gMonFrontPic_Ivysaur[];
+extern const u8 gMonPalette_Ivysaur[];
+extern const u8 gMonBackPic_Ivysaur[];
+extern const u8 gMonShinyPalette_Ivysaur[];
+extern const u8 gMonIcon_Ivysaur[];
+extern const u8 gMonFootprint_Ivysaur[];
+extern const u8 gMonFrontPic_Venusaur[];
+extern const u8 gMonPalette_Venusaur[];
+extern const u8 gMonBackPic_Venusaur[];
+extern const u8 gMonShinyPalette_Venusaur[];
+extern const u8 gMonIcon_Venusaur[];
+extern const u8 gMonFootprint_Venusaur[];
+extern const u8 gMonFrontPic_Charmander[];
+extern const u8 gMonPalette_Charmander[];
+extern const u8 gMonBackPic_Charmander[];
+extern const u8 gMonShinyPalette_Charmander[];
+extern const u8 gMonIcon_Charmander[];
+extern const u8 gMonFootprint_Charmander[];
+extern const u8 gMonFrontPic_Charmeleon[];
+extern const u8 gMonPalette_Charmeleon[];
+extern const u8 gMonBackPic_Charmeleon[];
+extern const u8 gMonShinyPalette_Charmeleon[];
+extern const u8 gMonIcon_Charmeleon[];
+extern const u8 gMonFootprint_Charmeleon[];
+extern const u8 gMonFrontPic_Charizard[];
+extern const u8 gMonPalette_Charizard[];
+extern const u8 gMonBackPic_Charizard[];
+extern const u8 gMonShinyPalette_Charizard[];
+extern const u8 gMonIcon_Charizard[];
+extern const u8 gMonFootprint_Charizard[];
+extern const u8 gMonFrontPic_Squirtle[];
+extern const u8 gMonPalette_Squirtle[];
+extern const u8 gMonBackPic_Squirtle[];
+extern const u8 gMonShinyPalette_Squirtle[];
+extern const u8 gMonIcon_Squirtle[];
+extern const u8 gMonFootprint_Squirtle[];
+extern const u8 gMonFrontPic_Wartortle[];
+extern const u8 gMonPalette_Wartortle[];
+extern const u8 gMonBackPic_Wartortle[];
+extern const u8 gMonShinyPalette_Wartortle[];
+extern const u8 gMonIcon_Wartortle[];
+extern const u8 gMonFootprint_Wartortle[];
+extern const u8 gMonFrontPic_Blastoise[];
+extern const u8 gMonPalette_Blastoise[];
+extern const u8 gMonBackPic_Blastoise[];
+extern const u8 gMonShinyPalette_Blastoise[];
+extern const u8 gMonIcon_Blastoise[];
+extern const u8 gMonFootprint_Blastoise[];
+extern const u8 gMonFrontPic_Caterpie[];
+extern const u8 gMonPalette_Caterpie[];
+extern const u8 gMonBackPic_Caterpie[];
+extern const u8 gMonShinyPalette_Caterpie[];
+extern const u8 gMonIcon_Caterpie[];
+extern const u8 gMonFootprint_Caterpie[];
+extern const u8 gMonFrontPic_Metapod[];
+extern const u8 gMonPalette_Metapod[];
+extern const u8 gMonBackPic_Metapod[];
+extern const u8 gMonShinyPalette_Metapod[];
+extern const u8 gMonIcon_Metapod[];
+extern const u8 gMonFootprint_Metapod[];
+extern const u8 gMonFrontPic_Butterfree[];
+extern const u8 gMonPalette_Butterfree[];
+extern const u8 gMonBackPic_Butterfree[];
+extern const u8 gMonShinyPalette_Butterfree[];
+extern const u8 gMonIcon_Butterfree[];
+extern const u8 gMonFootprint_Butterfree[];
+extern const u8 gMonFrontPic_Weedle[];
+extern const u8 gMonPalette_Weedle[];
+extern const u8 gMonBackPic_Weedle[];
+extern const u8 gMonShinyPalette_Weedle[];
+extern const u8 gMonIcon_Weedle[];
+extern const u8 gMonFootprint_Weedle[];
+extern const u8 gMonFrontPic_Kakuna[];
+extern const u8 gMonPalette_Kakuna[];
+extern const u8 gMonBackPic_Kakuna[];
+extern const u8 gMonShinyPalette_Kakuna[];
+extern const u8 gMonIcon_Kakuna[];
+extern const u8 gMonFootprint_Kakuna[];
+extern const u8 gMonFrontPic_Beedrill[];
+extern const u8 gMonPalette_Beedrill[];
+extern const u8 gMonBackPic_Beedrill[];
+extern const u8 gMonShinyPalette_Beedrill[];
+extern const u8 gMonIcon_Beedrill[];
+extern const u8 gMonFootprint_Beedrill[];
+extern const u8 gMonFrontPic_Pidgey[];
+extern const u8 gMonPalette_Pidgey[];
+extern const u8 gMonBackPic_Pidgey[];
+extern const u8 gMonShinyPalette_Pidgey[];
+extern const u8 gMonIcon_Pidgey[];
+extern const u8 gMonFootprint_Pidgey[];
+extern const u8 gMonFrontPic_Pidgeotto[];
+extern const u8 gMonPalette_Pidgeotto[];
+extern const u8 gMonBackPic_Pidgeotto[];
+extern const u8 gMonShinyPalette_Pidgeotto[];
+extern const u8 gMonIcon_Pidgeotto[];
+extern const u8 gMonFootprint_Pidgeotto[];
+extern const u8 gMonFrontPic_Pidgeot[];
+extern const u8 gMonPalette_Pidgeot[];
+extern const u8 gMonBackPic_Pidgeot[];
+extern const u8 gMonShinyPalette_Pidgeot[];
+extern const u8 gMonIcon_Pidgeot[];
+extern const u8 gMonFootprint_Pidgeot[];
+extern const u8 gMonFrontPic_Rattata[];
+extern const u8 gMonPalette_Rattata[];
+extern const u8 gMonBackPic_Rattata[];
+extern const u8 gMonShinyPalette_Rattata[];
+extern const u8 gMonIcon_Rattata[];
+extern const u8 gMonFootprint_Rattata[];
+extern const u8 gMonFrontPic_Raticate[];
+extern const u8 gMonPalette_Raticate[];
+extern const u8 gMonBackPic_Raticate[];
+extern const u8 gMonShinyPalette_Raticate[];
+extern const u8 gMonIcon_Raticate[];
+extern const u8 gMonFootprint_Raticate[];
+extern const u8 gMonFrontPic_Spearow[];
+extern const u8 gMonPalette_Spearow[];
+extern const u8 gMonBackPic_Spearow[];
+extern const u8 gMonShinyPalette_Spearow[];
+extern const u8 gMonIcon_Spearow[];
+extern const u8 gMonFootprint_Spearow[];
+extern const u8 gMonFrontPic_Fearow[];
+extern const u8 gMonPalette_Fearow[];
+extern const u8 gMonBackPic_Fearow[];
+extern const u8 gMonShinyPalette_Fearow[];
+extern const u8 gMonIcon_Fearow[];
+extern const u8 gMonFootprint_Fearow[];
+extern const u8 gMonFrontPic_Ekans[];
+extern const u8 gMonPalette_Ekans[];
+extern const u8 gMonBackPic_Ekans[];
+extern const u8 gMonShinyPalette_Ekans[];
+extern const u8 gMonIcon_Ekans[];
+extern const u8 gMonFootprint_Ekans[];
+extern const u8 gMonFrontPic_Arbok[];
+extern const u8 gMonPalette_Arbok[];
+extern const u8 gMonBackPic_Arbok[];
+extern const u8 gMonShinyPalette_Arbok[];
+extern const u8 gMonIcon_Arbok[];
+extern const u8 gMonFootprint_Arbok[];
+extern const u8 gMonFrontPic_Pikachu[];
+extern const u8 gMonPalette_Pikachu[];
+extern const u8 gMonBackPic_Pikachu[];
+extern const u8 gMonShinyPalette_Pikachu[];
+extern const u8 gMonIcon_Pikachu[];
+extern const u8 gMonFootprint_Pikachu[];
+extern const u8 gMonFrontPic_Raichu[];
+extern const u8 gMonPalette_Raichu[];
+extern const u8 gMonBackPic_Raichu[];
+extern const u8 gMonShinyPalette_Raichu[];
+extern const u8 gMonIcon_Raichu[];
+extern const u8 gMonFootprint_Raichu[];
+extern const u8 gMonFrontPic_Sandshrew[];
+extern const u8 gMonPalette_Sandshrew[];
+extern const u8 gMonBackPic_Sandshrew[];
+extern const u8 gMonShinyPalette_Sandshrew[];
+extern const u8 gMonIcon_Sandshrew[];
+extern const u8 gMonFootprint_Sandshrew[];
+extern const u8 gMonFrontPic_Sandslash[];
+extern const u8 gMonPalette_Sandslash[];
+extern const u8 gMonBackPic_Sandslash[];
+extern const u8 gMonShinyPalette_Sandslash[];
+extern const u8 gMonIcon_Sandslash[];
+extern const u8 gMonFootprint_Sandslash[];
+extern const u8 gMonFrontPic_NidoranF[];
+extern const u8 gMonPalette_NidoranF[];
+extern const u8 gMonBackPic_NidoranF[];
+extern const u8 gMonShinyPalette_NidoranF[];
+extern const u8 gMonIcon_NidoranF[];
+extern const u8 gMonFootprint_NidoranF[];
+extern const u8 gMonFrontPic_Nidorina[];
+extern const u8 gMonPalette_Nidorina[];
+extern const u8 gMonBackPic_Nidorina[];
+extern const u8 gMonShinyPalette_Nidorina[];
+extern const u8 gMonIcon_Nidorina[];
+extern const u8 gMonFootprint_Nidorina[];
+extern const u8 gMonFrontPic_Nidoqueen[];
+extern const u8 gMonPalette_Nidoqueen[];
+extern const u8 gMonBackPic_Nidoqueen[];
+extern const u8 gMonShinyPalette_Nidoqueen[];
+extern const u8 gMonIcon_Nidoqueen[];
+extern const u8 gMonFootprint_Nidoqueen[];
+extern const u8 gMonFrontPic_NidoranM[];
+extern const u8 gMonPalette_NidoranM[];
+extern const u8 gMonBackPic_NidoranM[];
+extern const u8 gMonShinyPalette_NidoranM[];
+extern const u8 gMonIcon_NidoranM[];
+extern const u8 gMonFootprint_NidoranM[];
+extern const u8 gMonFrontPic_Nidorino[];
+extern const u8 gMonPalette_Nidorino[];
+extern const u8 gMonBackPic_Nidorino[];
+extern const u8 gMonShinyPalette_Nidorino[];
+extern const u8 gMonIcon_Nidorino[];
+extern const u8 gMonFootprint_Nidorino[];
+extern const u8 gMonFrontPic_Nidoking[];
+extern const u8 gMonPalette_Nidoking[];
+extern const u8 gMonBackPic_Nidoking[];
+extern const u8 gMonShinyPalette_Nidoking[];
+extern const u8 gMonIcon_Nidoking[];
+extern const u8 gMonFootprint_Nidoking[];
+extern const u8 gMonFrontPic_Clefairy[];
+extern const u8 gMonPalette_Clefairy[];
+extern const u8 gMonBackPic_Clefairy[];
+extern const u8 gMonShinyPalette_Clefairy[];
+extern const u8 gMonIcon_Clefairy[];
+extern const u8 gMonFootprint_Clefairy[];
+extern const u8 gMonFrontPic_Clefable[];
+extern const u8 gMonPalette_Clefable[];
+extern const u8 gMonBackPic_Clefable[];
+extern const u8 gMonShinyPalette_Clefable[];
+extern const u8 gMonIcon_Clefable[];
+extern const u8 gMonFootprint_Clefable[];
+extern const u8 gMonFrontPic_Vulpix[];
+extern const u8 gMonPalette_Vulpix[];
+extern const u8 gMonBackPic_Vulpix[];
+extern const u8 gMonShinyPalette_Vulpix[];
+extern const u8 gMonIcon_Vulpix[];
+extern const u8 gMonFootprint_Vulpix[];
+extern const u8 gMonFrontPic_Ninetales[];
+extern const u8 gMonPalette_Ninetales[];
+extern const u8 gMonBackPic_Ninetales[];
+extern const u8 gMonShinyPalette_Ninetales[];
+extern const u8 gMonIcon_Ninetales[];
+extern const u8 gMonFootprint_Ninetales[];
+extern const u8 gMonFrontPic_Jigglypuff[];
+extern const u8 gMonPalette_Jigglypuff[];
+extern const u8 gMonBackPic_Jigglypuff[];
+extern const u8 gMonShinyPalette_Jigglypuff[];
+extern const u8 gMonIcon_Jigglypuff[];
+extern const u8 gMonFootprint_Jigglypuff[];
+extern const u8 gMonFrontPic_Wigglytuff[];
+extern const u8 gMonPalette_Wigglytuff[];
+extern const u8 gMonBackPic_Wigglytuff[];
+extern const u8 gMonShinyPalette_Wigglytuff[];
+extern const u8 gMonIcon_Wigglytuff[];
+extern const u8 gMonFootprint_Wigglytuff[];
+extern const u8 gMonFrontPic_Zubat[];
+extern const u8 gMonPalette_Zubat[];
+extern const u8 gMonBackPic_Zubat[];
+extern const u8 gMonShinyPalette_Zubat[];
+extern const u8 gMonIcon_Zubat[];
+extern const u8 gMonFootprint_Zubat[];
+extern const u8 gMonFrontPic_Golbat[];
+extern const u8 gMonPalette_Golbat[];
+extern const u8 gMonBackPic_Golbat[];
+extern const u8 gMonShinyPalette_Golbat[];
+extern const u8 gMonIcon_Golbat[];
+extern const u8 gMonFootprint_Golbat[];
+extern const u8 gMonFrontPic_Oddish[];
+extern const u8 gMonPalette_Oddish[];
+extern const u8 gMonBackPic_Oddish[];
+extern const u8 gMonShinyPalette_Oddish[];
+extern const u8 gMonIcon_Oddish[];
+extern const u8 gMonFootprint_Oddish[];
+extern const u8 gMonFrontPic_Gloom[];
+extern const u8 gMonPalette_Gloom[];
+extern const u8 gMonBackPic_Gloom[];
+extern const u8 gMonShinyPalette_Gloom[];
+extern const u8 gMonIcon_Gloom[];
+extern const u8 gMonFootprint_Gloom[];
+extern const u8 gMonFrontPic_Vileplume[];
+extern const u8 gMonPalette_Vileplume[];
+extern const u8 gMonBackPic_Vileplume[];
+extern const u8 gMonShinyPalette_Vileplume[];
+extern const u8 gMonIcon_Vileplume[];
+extern const u8 gMonFootprint_Vileplume[];
+extern const u8 gMonFrontPic_Paras[];
+extern const u8 gMonPalette_Paras[];
+extern const u8 gMonBackPic_Paras[];
+extern const u8 gMonShinyPalette_Paras[];
+extern const u8 gMonIcon_Paras[];
+extern const u8 gMonFootprint_Paras[];
+extern const u8 gMonFrontPic_Parasect[];
+extern const u8 gMonPalette_Parasect[];
+extern const u8 gMonBackPic_Parasect[];
+extern const u8 gMonShinyPalette_Parasect[];
+extern const u8 gMonIcon_Parasect[];
+extern const u8 gMonFootprint_Parasect[];
+extern const u8 gMonFrontPic_Venonat[];
+extern const u8 gMonPalette_Venonat[];
+extern const u8 gMonBackPic_Venonat[];
+extern const u8 gMonShinyPalette_Venonat[];
+extern const u8 gMonIcon_Venonat[];
+extern const u8 gMonFootprint_Venonat[];
+extern const u8 gMonFrontPic_Venomoth[];
+extern const u8 gMonPalette_Venomoth[];
+extern const u8 gMonBackPic_Venomoth[];
+extern const u8 gMonShinyPalette_Venomoth[];
+extern const u8 gMonIcon_Venomoth[];
+extern const u8 gMonFootprint_Venomoth[];
+extern const u8 gMonFrontPic_Diglett[];
+extern const u8 gMonPalette_Diglett[];
+extern const u8 gMonBackPic_Diglett[];
+extern const u8 gMonShinyPalette_Diglett[];
+extern const u8 gMonIcon_Diglett[];
+extern const u8 gMonFootprint_Diglett[];
+extern const u8 gMonFrontPic_Dugtrio[];
+extern const u8 gMonPalette_Dugtrio[];
+extern const u8 gMonBackPic_Dugtrio[];
+extern const u8 gMonShinyPalette_Dugtrio[];
+extern const u8 gMonIcon_Dugtrio[];
+extern const u8 gMonFootprint_Dugtrio[];
+extern const u8 gMonFrontPic_Meowth[];
+extern const u8 gMonPalette_Meowth[];
+extern const u8 gMonBackPic_Meowth[];
+extern const u8 gMonShinyPalette_Meowth[];
+extern const u8 gMonIcon_Meowth[];
+extern const u8 gMonFootprint_Meowth[];
+extern const u8 gMonFrontPic_Persian[];
+extern const u8 gMonPalette_Persian[];
+extern const u8 gMonBackPic_Persian[];
+extern const u8 gMonShinyPalette_Persian[];
+extern const u8 gMonIcon_Persian[];
+extern const u8 gMonFootprint_Persian[];
+extern const u8 gMonFrontPic_Psyduck[];
+extern const u8 gMonPalette_Psyduck[];
+extern const u8 gMonBackPic_Psyduck[];
+extern const u8 gMonShinyPalette_Psyduck[];
+extern const u8 gMonIcon_Psyduck[];
+extern const u8 gMonFootprint_Psyduck[];
+extern const u8 gMonFrontPic_Golduck[];
+extern const u8 gMonPalette_Golduck[];
+extern const u8 gMonBackPic_Golduck[];
+extern const u8 gMonShinyPalette_Golduck[];
+extern const u8 gMonIcon_Golduck[];
+extern const u8 gMonFootprint_Golduck[];
+extern const u8 gMonFrontPic_Mankey[];
+extern const u8 gMonPalette_Mankey[];
+extern const u8 gMonBackPic_Mankey[];
+extern const u8 gMonShinyPalette_Mankey[];
+extern const u8 gMonIcon_Mankey[];
+extern const u8 gMonFootprint_Mankey[];
+extern const u8 gMonFrontPic_Primeape[];
+extern const u8 gMonPalette_Primeape[];
+extern const u8 gMonBackPic_Primeape[];
+extern const u8 gMonShinyPalette_Primeape[];
+extern const u8 gMonIcon_Primeape[];
+extern const u8 gMonFootprint_Primeape[];
+extern const u8 gMonFrontPic_Growlithe[];
+extern const u8 gMonPalette_Growlithe[];
+extern const u8 gMonBackPic_Growlithe[];
+extern const u8 gMonShinyPalette_Growlithe[];
+extern const u8 gMonIcon_Growlithe[];
+extern const u8 gMonFootprint_Growlithe[];
+extern const u8 gMonFrontPic_Arcanine[];
+extern const u8 gMonPalette_Arcanine[];
+extern const u8 gMonBackPic_Arcanine[];
+extern const u8 gMonShinyPalette_Arcanine[];
+extern const u8 gMonIcon_Arcanine[];
+extern const u8 gMonFootprint_Arcanine[];
+extern const u8 gMonFrontPic_Poliwag[];
+extern const u8 gMonPalette_Poliwag[];
+extern const u8 gMonBackPic_Poliwag[];
+extern const u8 gMonShinyPalette_Poliwag[];
+extern const u8 gMonIcon_Poliwag[];
+extern const u8 gMonFootprint_Poliwag[];
+extern const u8 gMonFrontPic_Poliwhirl[];
+extern const u8 gMonPalette_Poliwhirl[];
+extern const u8 gMonBackPic_Poliwhirl[];
+extern const u8 gMonShinyPalette_Poliwhirl[];
+extern const u8 gMonIcon_Poliwhirl[];
+extern const u8 gMonFootprint_Poliwhirl[];
+extern const u8 gMonFrontPic_Poliwrath[];
+extern const u8 gMonPalette_Poliwrath[];
+extern const u8 gMonBackPic_Poliwrath[];
+extern const u8 gMonShinyPalette_Poliwrath[];
+extern const u8 gMonIcon_Poliwrath[];
+extern const u8 gMonFootprint_Poliwrath[];
+extern const u8 gMonFrontPic_Abra[];
+extern const u8 gMonPalette_Abra[];
+extern const u8 gMonBackPic_Abra[];
+extern const u8 gMonShinyPalette_Abra[];
+extern const u8 gMonIcon_Abra[];
+extern const u8 gMonFootprint_Abra[];
+extern const u8 gMonFrontPic_Kadabra[];
+extern const u8 gMonPalette_Kadabra[];
+extern const u8 gMonBackPic_Kadabra[];
+extern const u8 gMonShinyPalette_Kadabra[];
+extern const u8 gMonIcon_Kadabra[];
+extern const u8 gMonFootprint_Kadabra[];
+extern const u8 gMonFrontPic_Alakazam[];
+extern const u8 gMonPalette_Alakazam[];
+extern const u8 gMonBackPic_Alakazam[];
+extern const u8 gMonShinyPalette_Alakazam[];
+extern const u8 gMonIcon_Alakazam[];
+extern const u8 gMonFootprint_Alakazam[];
+extern const u8 gMonFrontPic_Machop[];
+extern const u8 gMonPalette_Machop[];
+extern const u8 gMonBackPic_Machop[];
+extern const u8 gMonShinyPalette_Machop[];
+extern const u8 gMonIcon_Machop[];
+extern const u8 gMonFootprint_Machop[];
+extern const u8 gMonFrontPic_Machoke[];
+extern const u8 gMonPalette_Machoke[];
+extern const u8 gMonBackPic_Machoke[];
+extern const u8 gMonShinyPalette_Machoke[];
+extern const u8 gMonIcon_Machoke[];
+extern const u8 gMonFootprint_Machoke[];
+extern const u8 gMonFrontPic_Machamp[];
+extern const u8 gMonPalette_Machamp[];
+extern const u8 gMonBackPic_Machamp[];
+extern const u8 gMonShinyPalette_Machamp[];
+extern const u8 gMonIcon_Machamp[];
+extern const u8 gMonFootprint_Machamp[];
+extern const u8 gMonFrontPic_Bellsprout[];
+extern const u8 gMonPalette_Bellsprout[];
+extern const u8 gMonBackPic_Bellsprout[];
+extern const u8 gMonShinyPalette_Bellsprout[];
+extern const u8 gMonIcon_Bellsprout[];
+extern const u8 gMonFootprint_Bellsprout[];
+extern const u8 gMonFrontPic_Weepinbell[];
+extern const u8 gMonPalette_Weepinbell[];
+extern const u8 gMonBackPic_Weepinbell[];
+extern const u8 gMonShinyPalette_Weepinbell[];
+extern const u8 gMonIcon_Weepinbell[];
+extern const u8 gMonFootprint_Weepinbell[];
+extern const u8 gMonFrontPic_Victreebel[];
+extern const u8 gMonPalette_Victreebel[];
+extern const u8 gMonBackPic_Victreebel[];
+extern const u8 gMonShinyPalette_Victreebel[];
+extern const u8 gMonIcon_Victreebel[];
+extern const u8 gMonFootprint_Victreebel[];
+extern const u8 gMonFrontPic_Tentacool[];
+extern const u8 gMonPalette_Tentacool[];
+extern const u8 gMonBackPic_Tentacool[];
+extern const u8 gMonShinyPalette_Tentacool[];
+extern const u8 gMonIcon_Tentacool[];
+extern const u8 gMonFootprint_Tentacool[];
+extern const u8 gMonFrontPic_Tentacruel[];
+extern const u8 gMonPalette_Tentacruel[];
+extern const u8 gMonBackPic_Tentacruel[];
+extern const u8 gMonShinyPalette_Tentacruel[];
+extern const u8 gMonIcon_Tentacruel[];
+extern const u8 gMonFootprint_Tentacruel[];
+extern const u8 gMonFrontPic_Geodude[];
+extern const u8 gMonPalette_Geodude[];
+extern const u8 gMonBackPic_Geodude[];
+extern const u8 gMonShinyPalette_Geodude[];
+extern const u8 gMonIcon_Geodude[];
+extern const u8 gMonFootprint_Geodude[];
+extern const u8 gMonFrontPic_Graveler[];
+extern const u8 gMonPalette_Graveler[];
+extern const u8 gMonBackPic_Graveler[];
+extern const u8 gMonShinyPalette_Graveler[];
+extern const u8 gMonIcon_Graveler[];
+extern const u8 gMonFootprint_Graveler[];
+extern const u8 gMonFrontPic_Golem[];
+extern const u8 gMonPalette_Golem[];
+extern const u8 gMonBackPic_Golem[];
+extern const u8 gMonShinyPalette_Golem[];
+extern const u8 gMonIcon_Golem[];
+extern const u8 gMonFootprint_Golem[];
+extern const u8 gMonFrontPic_Ponyta[];
+extern const u8 gMonPalette_Ponyta[];
+extern const u8 gMonBackPic_Ponyta[];
+extern const u8 gMonShinyPalette_Ponyta[];
+extern const u8 gMonIcon_Ponyta[];
+extern const u8 gMonFootprint_Ponyta[];
+extern const u8 gMonFrontPic_Rapidash[];
+extern const u8 gMonPalette_Rapidash[];
+extern const u8 gMonBackPic_Rapidash[];
+extern const u8 gMonShinyPalette_Rapidash[];
+extern const u8 gMonIcon_Rapidash[];
+extern const u8 gMonFootprint_Rapidash[];
+extern const u8 gMonFrontPic_Slowpoke[];
+extern const u8 gMonPalette_Slowpoke[];
+extern const u8 gMonBackPic_Slowpoke[];
+extern const u8 gMonShinyPalette_Slowpoke[];
+extern const u8 gMonIcon_Slowpoke[];
+extern const u8 gMonFootprint_Slowpoke[];
+extern const u8 gMonFrontPic_Slowbro[];
+extern const u8 gMonPalette_Slowbro[];
+extern const u8 gMonBackPic_Slowbro[];
+extern const u8 gMonShinyPalette_Slowbro[];
+extern const u8 gMonIcon_Slowbro[];
+extern const u8 gMonFootprint_Slowbro[];
+extern const u8 gMonFrontPic_Magnemite[];
+extern const u8 gMonPalette_Magnemite[];
+extern const u8 gMonBackPic_Magnemite[];
+extern const u8 gMonShinyPalette_Magnemite[];
+extern const u8 gMonIcon_Magnemite[];
+extern const u8 gMonFootprint_Magnemite[];
+extern const u8 gMonFrontPic_Magneton[];
+extern const u8 gMonPalette_Magneton[];
+extern const u8 gMonBackPic_Magneton[];
+extern const u8 gMonShinyPalette_Magneton[];
+extern const u8 gMonIcon_Magneton[];
+extern const u8 gMonFootprint_Magneton[];
+extern const u8 gMonFrontPic_Farfetchd[];
+extern const u8 gMonPalette_Farfetchd[];
+extern const u8 gMonBackPic_Farfetchd[];
+extern const u8 gMonShinyPalette_Farfetchd[];
+extern const u8 gMonIcon_Farfetchd[];
+extern const u8 gMonFootprint_Farfetchd[];
+extern const u8 gMonFrontPic_Doduo[];
+extern const u8 gMonPalette_Doduo[];
+extern const u8 gMonBackPic_Doduo[];
+extern const u8 gMonShinyPalette_Doduo[];
+extern const u8 gMonIcon_Doduo[];
+extern const u8 gMonFootprint_Doduo[];
+extern const u8 gMonFrontPic_Dodrio[];
+extern const u8 gMonPalette_Dodrio[];
+extern const u8 gMonBackPic_Dodrio[];
+extern const u8 gMonShinyPalette_Dodrio[];
+extern const u8 gMonIcon_Dodrio[];
+extern const u8 gMonFootprint_Dodrio[];
+extern const u8 gMonFrontPic_Seel[];
+extern const u8 gMonPalette_Seel[];
+extern const u8 gMonBackPic_Seel[];
+extern const u8 gMonShinyPalette_Seel[];
+extern const u8 gMonIcon_Seel[];
+extern const u8 gMonFootprint_Seel[];
+extern const u8 gMonFrontPic_Dewgong[];
+extern const u8 gMonPalette_Dewgong[];
+extern const u8 gMonBackPic_Dewgong[];
+extern const u8 gMonShinyPalette_Dewgong[];
+extern const u8 gMonIcon_Dewgong[];
+extern const u8 gMonFootprint_Dewgong[];
+extern const u8 gMonFrontPic_Grimer[];
+extern const u8 gMonPalette_Grimer[];
+extern const u8 gMonBackPic_Grimer[];
+extern const u8 gMonShinyPalette_Grimer[];
+extern const u8 gMonIcon_Grimer[];
+extern const u8 gMonFootprint_Grimer[];
+extern const u8 gMonFrontPic_Muk[];
+extern const u8 gMonPalette_Muk[];
+extern const u8 gMonBackPic_Muk[];
+extern const u8 gMonShinyPalette_Muk[];
+extern const u8 gMonIcon_Muk[];
+extern const u8 gMonFootprint_Muk[];
+extern const u8 gMonFrontPic_Shellder[];
+extern const u8 gMonPalette_Shellder[];
+extern const u8 gMonBackPic_Shellder[];
+extern const u8 gMonShinyPalette_Shellder[];
+extern const u8 gMonIcon_Shellder[];
+extern const u8 gMonFootprint_Shellder[];
+extern const u8 gMonFrontPic_Cloyster[];
+extern const u8 gMonPalette_Cloyster[];
+extern const u8 gMonBackPic_Cloyster[];
+extern const u8 gMonShinyPalette_Cloyster[];
+extern const u8 gMonIcon_Cloyster[];
+extern const u8 gMonFootprint_Cloyster[];
+extern const u8 gMonFrontPic_Gastly[];
+extern const u8 gMonPalette_Gastly[];
+extern const u8 gMonBackPic_Gastly[];
+extern const u8 gMonShinyPalette_Gastly[];
+extern const u8 gMonIcon_Gastly[];
+extern const u8 gMonFootprint_Gastly[];
+extern const u8 gMonFrontPic_Haunter[];
+extern const u8 gMonPalette_Haunter[];
+extern const u8 gMonBackPic_Haunter[];
+extern const u8 gMonShinyPalette_Haunter[];
+extern const u8 gMonIcon_Haunter[];
+extern const u8 gMonFootprint_Haunter[];
+extern const u8 gMonFrontPic_Gengar[];
+extern const u8 gMonPalette_Gengar[];
+extern const u8 gMonBackPic_Gengar[];
+extern const u8 gMonShinyPalette_Gengar[];
+extern const u8 gMonIcon_Gengar[];
+extern const u8 gMonFootprint_Gengar[];
+extern const u8 gMonFrontPic_Onix[];
+extern const u8 gMonPalette_Onix[];
+extern const u8 gMonBackPic_Onix[];
+extern const u8 gMonShinyPalette_Onix[];
+extern const u8 gMonIcon_Onix[];
+extern const u8 gMonFootprint_Onix[];
+extern const u8 gMonFrontPic_Drowzee[];
+extern const u8 gMonPalette_Drowzee[];
+extern const u8 gMonBackPic_Drowzee[];
+extern const u8 gMonShinyPalette_Drowzee[];
+extern const u8 gMonIcon_Drowzee[];
+extern const u8 gMonFootprint_Drowzee[];
+extern const u8 gMonFrontPic_Hypno[];
+extern const u8 gMonPalette_Hypno[];
+extern const u8 gMonBackPic_Hypno[];
+extern const u8 gMonShinyPalette_Hypno[];
+extern const u8 gMonIcon_Hypno[];
+extern const u8 gMonFootprint_Hypno[];
+extern const u8 gMonFrontPic_Krabby[];
+extern const u8 gMonPalette_Krabby[];
+extern const u8 gMonBackPic_Krabby[];
+extern const u8 gMonShinyPalette_Krabby[];
+extern const u8 gMonIcon_Krabby[];
+extern const u8 gMonFootprint_Krabby[];
+extern const u8 gMonFrontPic_Kingler[];
+extern const u8 gMonPalette_Kingler[];
+extern const u8 gMonBackPic_Kingler[];
+extern const u8 gMonShinyPalette_Kingler[];
+extern const u8 gMonIcon_Kingler[];
+extern const u8 gMonFootprint_Kingler[];
+extern const u8 gMonFrontPic_Voltorb[];
+extern const u8 gMonPalette_Voltorb[];
+extern const u8 gMonBackPic_Voltorb[];
+extern const u8 gMonShinyPalette_Voltorb[];
+extern const u8 gMonIcon_Voltorb[];
+extern const u8 gMonFootprint_Voltorb[];
+extern const u8 gMonFrontPic_Electrode[];
+extern const u8 gMonPalette_Electrode[];
+extern const u8 gMonBackPic_Electrode[];
+extern const u8 gMonShinyPalette_Electrode[];
+extern const u8 gMonIcon_Electrode[];
+extern const u8 gMonFootprint_Electrode[];
+extern const u8 gMonFrontPic_Exeggcute[];
+extern const u8 gMonPalette_Exeggcute[];
+extern const u8 gMonBackPic_Exeggcute[];
+extern const u8 gMonShinyPalette_Exeggcute[];
+extern const u8 gMonIcon_Exeggcute[];
+extern const u8 gMonFootprint_Exeggcute[];
+extern const u8 gMonFrontPic_Exeggutor[];
+extern const u8 gMonPalette_Exeggutor[];
+extern const u8 gMonBackPic_Exeggutor[];
+extern const u8 gMonShinyPalette_Exeggutor[];
+extern const u8 gMonIcon_Exeggutor[];
+extern const u8 gMonFootprint_Exeggutor[];
+extern const u8 gMonFrontPic_Cubone[];
+extern const u8 gMonPalette_Cubone[];
+extern const u8 gMonBackPic_Cubone[];
+extern const u8 gMonShinyPalette_Cubone[];
+extern const u8 gMonIcon_Cubone[];
+extern const u8 gMonFootprint_Cubone[];
+extern const u8 gMonFrontPic_Marowak[];
+extern const u8 gMonPalette_Marowak[];
+extern const u8 gMonBackPic_Marowak[];
+extern const u8 gMonShinyPalette_Marowak[];
+extern const u8 gMonIcon_Marowak[];
+extern const u8 gMonFootprint_Marowak[];
+extern const u8 gMonFrontPic_Hitmonlee[];
+extern const u8 gMonPalette_Hitmonlee[];
+extern const u8 gMonBackPic_Hitmonlee[];
+extern const u8 gMonShinyPalette_Hitmonlee[];
+extern const u8 gMonIcon_Hitmonlee[];
+extern const u8 gMonFootprint_Hitmonlee[];
+extern const u8 gMonFrontPic_Hitmonchan[];
+extern const u8 gMonPalette_Hitmonchan[];
+extern const u8 gMonBackPic_Hitmonchan[];
+extern const u8 gMonShinyPalette_Hitmonchan[];
+extern const u8 gMonIcon_Hitmonchan[];
+extern const u8 gMonFootprint_Hitmonchan[];
+extern const u8 gMonFrontPic_Lickitung[];
+extern const u8 gMonPalette_Lickitung[];
+extern const u8 gMonBackPic_Lickitung[];
+extern const u8 gMonShinyPalette_Lickitung[];
+extern const u8 gMonIcon_Lickitung[];
+extern const u8 gMonFootprint_Lickitung[];
+extern const u8 gMonFrontPic_Koffing[];
+extern const u8 gMonPalette_Koffing[];
+extern const u8 gMonBackPic_Koffing[];
+extern const u8 gMonShinyPalette_Koffing[];
+extern const u8 gMonIcon_Koffing[];
+extern const u8 gMonFootprint_Koffing[];
+extern const u8 gMonFrontPic_Weezing[];
+extern const u8 gMonPalette_Weezing[];
+extern const u8 gMonBackPic_Weezing[];
+extern const u8 gMonShinyPalette_Weezing[];
+extern const u8 gMonIcon_Weezing[];
+extern const u8 gMonFootprint_Weezing[];
+extern const u8 gMonFrontPic_Rhyhorn[];
+extern const u8 gMonPalette_Rhyhorn[];
+extern const u8 gMonBackPic_Rhyhorn[];
+extern const u8 gMonShinyPalette_Rhyhorn[];
+extern const u8 gMonIcon_Rhyhorn[];
+extern const u8 gMonFootprint_Rhyhorn[];
+extern const u8 gMonFrontPic_Rhydon[];
+extern const u8 gMonPalette_Rhydon[];
+extern const u8 gMonBackPic_Rhydon[];
+extern const u8 gMonShinyPalette_Rhydon[];
+extern const u8 gMonIcon_Rhydon[];
+extern const u8 gMonFootprint_Rhydon[];
+extern const u8 gMonFrontPic_Chansey[];
+extern const u8 gMonPalette_Chansey[];
+extern const u8 gMonBackPic_Chansey[];
+extern const u8 gMonShinyPalette_Chansey[];
+extern const u8 gMonIcon_Chansey[];
+extern const u8 gMonFootprint_Chansey[];
+extern const u8 gMonFrontPic_Tangela[];
+extern const u8 gMonPalette_Tangela[];
+extern const u8 gMonBackPic_Tangela[];
+extern const u8 gMonShinyPalette_Tangela[];
+extern const u8 gMonIcon_Tangela[];
+extern const u8 gMonFootprint_Tangela[];
+extern const u8 gMonFrontPic_Kangaskhan[];
+extern const u8 gMonPalette_Kangaskhan[];
+extern const u8 gMonBackPic_Kangaskhan[];
+extern const u8 gMonShinyPalette_Kangaskhan[];
+extern const u8 gMonIcon_Kangaskhan[];
+extern const u8 gMonFootprint_Kangaskhan[];
+extern const u8 gMonFrontPic_Horsea[];
+extern const u8 gMonPalette_Horsea[];
+extern const u8 gMonBackPic_Horsea[];
+extern const u8 gMonShinyPalette_Horsea[];
+extern const u8 gMonIcon_Horsea[];
+extern const u8 gMonFootprint_Horsea[];
+extern const u8 gMonFrontPic_Seadra[];
+extern const u8 gMonPalette_Seadra[];
+extern const u8 gMonBackPic_Seadra[];
+extern const u8 gMonShinyPalette_Seadra[];
+extern const u8 gMonIcon_Seadra[];
+extern const u8 gMonFootprint_Seadra[];
+extern const u8 gMonFrontPic_Goldeen[];
+extern const u8 gMonPalette_Goldeen[];
+extern const u8 gMonBackPic_Goldeen[];
+extern const u8 gMonShinyPalette_Goldeen[];
+extern const u8 gMonIcon_Goldeen[];
+extern const u8 gMonFootprint_Goldeen[];
+extern const u8 gMonFrontPic_Seaking[];
+extern const u8 gMonPalette_Seaking[];
+extern const u8 gMonBackPic_Seaking[];
+extern const u8 gMonShinyPalette_Seaking[];
+extern const u8 gMonIcon_Seaking[];
+extern const u8 gMonFootprint_Seaking[];
+extern const u8 gMonFrontPic_Staryu[];
+extern const u8 gMonPalette_Staryu[];
+extern const u8 gMonBackPic_Staryu[];
+extern const u8 gMonShinyPalette_Staryu[];
+extern const u8 gMonIcon_Staryu[];
+extern const u8 gMonFootprint_Staryu[];
+extern const u8 gMonFrontPic_Starmie[];
+extern const u8 gMonPalette_Starmie[];
+extern const u8 gMonBackPic_Starmie[];
+extern const u8 gMonShinyPalette_Starmie[];
+extern const u8 gMonIcon_Starmie[];
+extern const u8 gMonFootprint_Starmie[];
+extern const u8 gMonFrontPic_Mrmime[];
+extern const u8 gMonPalette_Mrmime[];
+extern const u8 gMonBackPic_Mrmime[];
+extern const u8 gMonShinyPalette_Mrmime[];
+extern const u8 gMonIcon_Mrmime[];
+extern const u8 gMonFootprint_Mrmime[];
+extern const u8 gMonFrontPic_Scyther[];
+extern const u8 gMonPalette_Scyther[];
+extern const u8 gMonBackPic_Scyther[];
+extern const u8 gMonShinyPalette_Scyther[];
+extern const u8 gMonIcon_Scyther[];
+extern const u8 gMonFootprint_Scyther[];
+extern const u8 gMonFrontPic_Jynx[];
+extern const u8 gMonPalette_Jynx[];
+extern const u8 gMonBackPic_Jynx[];
+extern const u8 gMonShinyPalette_Jynx[];
+extern const u8 gMonIcon_Jynx[];
+extern const u8 gMonFootprint_Jynx[];
+extern const u8 gMonFrontPic_Electabuzz[];
+extern const u8 gMonPalette_Electabuzz[];
+extern const u8 gMonBackPic_Electabuzz[];
+extern const u8 gMonShinyPalette_Electabuzz[];
+extern const u8 gMonIcon_Electabuzz[];
+extern const u8 gMonFootprint_Electabuzz[];
+extern const u8 gMonFrontPic_Magmar[];
+extern const u8 gMonPalette_Magmar[];
+extern const u8 gMonBackPic_Magmar[];
+extern const u8 gMonShinyPalette_Magmar[];
+extern const u8 gMonIcon_Magmar[];
+extern const u8 gMonFootprint_Magmar[];
+extern const u8 gMonFrontPic_Pinsir[];
+extern const u8 gMonPalette_Pinsir[];
+extern const u8 gMonBackPic_Pinsir[];
+extern const u8 gMonShinyPalette_Pinsir[];
+extern const u8 gMonIcon_Pinsir[];
+extern const u8 gMonFootprint_Pinsir[];
+extern const u8 gMonFrontPic_Tauros[];
+extern const u8 gMonPalette_Tauros[];
+extern const u8 gMonBackPic_Tauros[];
+extern const u8 gMonShinyPalette_Tauros[];
+extern const u8 gMonIcon_Tauros[];
+extern const u8 gMonFootprint_Tauros[];
+extern const u8 gMonFrontPic_Magikarp[];
+extern const u8 gMonPalette_Magikarp[];
+extern const u8 gMonBackPic_Magikarp[];
+extern const u8 gMonShinyPalette_Magikarp[];
+extern const u8 gMonIcon_Magikarp[];
+extern const u8 gMonFootprint_Magikarp[];
+extern const u8 gMonFrontPic_Gyarados[];
+extern const u8 gMonPalette_Gyarados[];
+extern const u8 gMonBackPic_Gyarados[];
+extern const u8 gMonShinyPalette_Gyarados[];
+extern const u8 gMonIcon_Gyarados[];
+extern const u8 gMonFootprint_Gyarados[];
+extern const u8 gMonFrontPic_Lapras[];
+extern const u8 gMonPalette_Lapras[];
+extern const u8 gMonBackPic_Lapras[];
+extern const u8 gMonShinyPalette_Lapras[];
+extern const u8 gMonIcon_Lapras[];
+extern const u8 gMonFootprint_Lapras[];
+extern const u8 gMonFrontPic_Ditto[];
+extern const u8 gMonPalette_Ditto[];
+extern const u8 gMonBackPic_Ditto[];
+extern const u8 gMonShinyPalette_Ditto[];
+extern const u8 gMonIcon_Ditto[];
+extern const u8 gMonFootprint_Ditto[];
+extern const u8 gMonFrontPic_Eevee[];
+extern const u8 gMonPalette_Eevee[];
+extern const u8 gMonBackPic_Eevee[];
+extern const u8 gMonShinyPalette_Eevee[];
+extern const u8 gMonIcon_Eevee[];
+extern const u8 gMonFootprint_Eevee[];
+extern const u8 gMonFrontPic_Vaporeon[];
+extern const u8 gMonPalette_Vaporeon[];
+extern const u8 gMonBackPic_Vaporeon[];
+extern const u8 gMonShinyPalette_Vaporeon[];
+extern const u8 gMonIcon_Vaporeon[];
+extern const u8 gMonFootprint_Vaporeon[];
+extern const u8 gMonFrontPic_Jolteon[];
+extern const u8 gMonPalette_Jolteon[];
+extern const u8 gMonBackPic_Jolteon[];
+extern const u8 gMonShinyPalette_Jolteon[];
+extern const u8 gMonIcon_Jolteon[];
+extern const u8 gMonFootprint_Jolteon[];
+extern const u8 gMonFrontPic_Flareon[];
+extern const u8 gMonPalette_Flareon[];
+extern const u8 gMonBackPic_Flareon[];
+extern const u8 gMonShinyPalette_Flareon[];
+extern const u8 gMonIcon_Flareon[];
+extern const u8 gMonFootprint_Flareon[];
+extern const u8 gMonFrontPic_Porygon[];
+extern const u8 gMonPalette_Porygon[];
+extern const u8 gMonBackPic_Porygon[];
+extern const u8 gMonShinyPalette_Porygon[];
+extern const u8 gMonIcon_Porygon[];
+extern const u8 gMonFootprint_Porygon[];
+extern const u8 gMonFrontPic_Omanyte[];
+extern const u8 gMonPalette_Omanyte[];
+extern const u8 gMonBackPic_Omanyte[];
+extern const u8 gMonShinyPalette_Omanyte[];
+extern const u8 gMonIcon_Omanyte[];
+extern const u8 gMonFootprint_Omanyte[];
+extern const u8 gMonFrontPic_Omastar[];
+extern const u8 gMonPalette_Omastar[];
+extern const u8 gMonBackPic_Omastar[];
+extern const u8 gMonShinyPalette_Omastar[];
+extern const u8 gMonIcon_Omastar[];
+extern const u8 gMonFootprint_Omastar[];
+extern const u8 gMonFrontPic_Kabuto[];
+extern const u8 gMonPalette_Kabuto[];
+extern const u8 gMonBackPic_Kabuto[];
+extern const u8 gMonShinyPalette_Kabuto[];
+extern const u8 gMonIcon_Kabuto[];
+extern const u8 gMonFootprint_Kabuto[];
+extern const u8 gMonFrontPic_Kabutops[];
+extern const u8 gMonPalette_Kabutops[];
+extern const u8 gMonBackPic_Kabutops[];
+extern const u8 gMonShinyPalette_Kabutops[];
+extern const u8 gMonIcon_Kabutops[];
+extern const u8 gMonFootprint_Kabutops[];
+extern const u8 gMonFrontPic_Aerodactyl[];
+extern const u8 gMonPalette_Aerodactyl[];
+extern const u8 gMonBackPic_Aerodactyl[];
+extern const u8 gMonShinyPalette_Aerodactyl[];
+extern const u8 gMonIcon_Aerodactyl[];
+extern const u8 gMonFootprint_Aerodactyl[];
+extern const u8 gMonFrontPic_Snorlax[];
+extern const u8 gMonPalette_Snorlax[];
+extern const u8 gMonBackPic_Snorlax[];
+extern const u8 gMonShinyPalette_Snorlax[];
+extern const u8 gMonIcon_Snorlax[];
+extern const u8 gMonFootprint_Snorlax[];
+extern const u8 gMonFrontPic_Articuno[];
+extern const u8 gMonPalette_Articuno[];
+extern const u8 gMonBackPic_Articuno[];
+extern const u8 gMonShinyPalette_Articuno[];
+extern const u8 gMonIcon_Articuno[];
+extern const u8 gMonFootprint_Articuno[];
+extern const u8 gMonFrontPic_Zapdos[];
+extern const u8 gMonPalette_Zapdos[];
+extern const u8 gMonBackPic_Zapdos[];
+extern const u8 gMonShinyPalette_Zapdos[];
+extern const u8 gMonIcon_Zapdos[];
+extern const u8 gMonFootprint_Zapdos[];
+extern const u8 gMonFrontPic_Moltres[];
+extern const u8 gMonPalette_Moltres[];
+extern const u8 gMonBackPic_Moltres[];
+extern const u8 gMonShinyPalette_Moltres[];
+extern const u8 gMonIcon_Moltres[];
+extern const u8 gMonFootprint_Moltres[];
+extern const u8 gMonFrontPic_Dratini[];
+extern const u8 gMonPalette_Dratini[];
+extern const u8 gMonBackPic_Dratini[];
+extern const u8 gMonShinyPalette_Dratini[];
+extern const u8 gMonIcon_Dratini[];
+extern const u8 gMonFootprint_Dratini[];
+extern const u8 gMonFrontPic_Dragonair[];
+extern const u8 gMonPalette_Dragonair[];
+extern const u8 gMonBackPic_Dragonair[];
+extern const u8 gMonShinyPalette_Dragonair[];
+extern const u8 gMonIcon_Dragonair[];
+extern const u8 gMonFootprint_Dragonair[];
+extern const u8 gMonFrontPic_Dragonite[];
+extern const u8 gMonPalette_Dragonite[];
+extern const u8 gMonBackPic_Dragonite[];
+extern const u8 gMonShinyPalette_Dragonite[];
+extern const u8 gMonIcon_Dragonite[];
+extern const u8 gMonFootprint_Dragonite[];
+extern const u8 gMonFrontPic_Mewtwo[];
+extern const u8 gMonPalette_Mewtwo[];
+extern const u8 gMonBackPic_Mewtwo[];
+extern const u8 gMonShinyPalette_Mewtwo[];
+extern const u8 gMonIcon_Mewtwo[];
+extern const u8 gMonFootprint_Mewtwo[];
+extern const u8 gMonFrontPic_Mew[];
+extern const u8 gMonPalette_Mew[];
+extern const u8 gMonBackPic_Mew[];
+extern const u8 gMonShinyPalette_Mew[];
+extern const u8 gMonIcon_Mew[];
+extern const u8 gMonFootprint_Mew[];
+extern const u8 gMonFrontPic_Chikorita[];
+extern const u8 gMonPalette_Chikorita[];
+extern const u8 gMonBackPic_Chikorita[];
+extern const u8 gMonShinyPalette_Chikorita[];
+extern const u8 gMonIcon_Chikorita[];
+extern const u8 gMonFootprint_Chikorita[];
+extern const u8 gMonFrontPic_Bayleef[];
+extern const u8 gMonPalette_Bayleef[];
+extern const u8 gMonBackPic_Bayleef[];
+extern const u8 gMonShinyPalette_Bayleef[];
+extern const u8 gMonIcon_Bayleef[];
+extern const u8 gMonFootprint_Bayleef[];
+extern const u8 gMonFrontPic_Meganium[];
+extern const u8 gMonPalette_Meganium[];
+extern const u8 gMonBackPic_Meganium[];
+extern const u8 gMonShinyPalette_Meganium[];
+extern const u8 gMonIcon_Meganium[];
+extern const u8 gMonFootprint_Meganium[];
+extern const u8 gMonFrontPic_Cyndaquil[];
+extern const u8 gMonPalette_Cyndaquil[];
+extern const u8 gMonBackPic_Cyndaquil[];
+extern const u8 gMonShinyPalette_Cyndaquil[];
+extern const u8 gMonIcon_Cyndaquil[];
+extern const u8 gMonFootprint_Cyndaquil[];
+extern const u8 gMonFrontPic_Quilava[];
+extern const u8 gMonPalette_Quilava[];
+extern const u8 gMonBackPic_Quilava[];
+extern const u8 gMonShinyPalette_Quilava[];
+extern const u8 gMonIcon_Quilava[];
+extern const u8 gMonFootprint_Quilava[];
+extern const u8 gMonFrontPic_Typhlosion[];
+extern const u8 gMonPalette_Typhlosion[];
+extern const u8 gMonBackPic_Typhlosion[];
+extern const u8 gMonShinyPalette_Typhlosion[];
+extern const u8 gMonIcon_Typhlosion[];
+extern const u8 gMonFootprint_Typhlosion[];
+extern const u8 gMonFrontPic_Totodile[];
+extern const u8 gMonPalette_Totodile[];
+extern const u8 gMonBackPic_Totodile[];
+extern const u8 gMonShinyPalette_Totodile[];
+extern const u8 gMonIcon_Totodile[];
+extern const u8 gMonFootprint_Totodile[];
+extern const u8 gMonFrontPic_Croconaw[];
+extern const u8 gMonPalette_Croconaw[];
+extern const u8 gMonBackPic_Croconaw[];
+extern const u8 gMonShinyPalette_Croconaw[];
+extern const u8 gMonIcon_Croconaw[];
+extern const u8 gMonFootprint_Croconaw[];
+extern const u8 gMonFrontPic_Feraligatr[];
+extern const u8 gMonPalette_Feraligatr[];
+extern const u8 gMonBackPic_Feraligatr[];
+extern const u8 gMonShinyPalette_Feraligatr[];
+extern const u8 gMonIcon_Feraligatr[];
+extern const u8 gMonFootprint_Feraligatr[];
+extern const u8 gMonFrontPic_Sentret[];
+extern const u8 gMonPalette_Sentret[];
+extern const u8 gMonBackPic_Sentret[];
+extern const u8 gMonShinyPalette_Sentret[];
+extern const u8 gMonIcon_Sentret[];
+extern const u8 gMonFootprint_Sentret[];
+extern const u8 gMonFrontPic_Furret[];
+extern const u8 gMonPalette_Furret[];
+extern const u8 gMonBackPic_Furret[];
+extern const u8 gMonShinyPalette_Furret[];
+extern const u8 gMonIcon_Furret[];
+extern const u8 gMonFootprint_Furret[];
+extern const u8 gMonFrontPic_Hoothoot[];
+extern const u8 gMonPalette_Hoothoot[];
+extern const u8 gMonBackPic_Hoothoot[];
+extern const u8 gMonShinyPalette_Hoothoot[];
+extern const u8 gMonIcon_Hoothoot[];
+extern const u8 gMonFootprint_Hoothoot[];
+extern const u8 gMonFrontPic_Noctowl[];
+extern const u8 gMonPalette_Noctowl[];
+extern const u8 gMonBackPic_Noctowl[];
+extern const u8 gMonShinyPalette_Noctowl[];
+extern const u8 gMonIcon_Noctowl[];
+extern const u8 gMonFootprint_Noctowl[];
+extern const u8 gMonFrontPic_Ledyba[];
+extern const u8 gMonPalette_Ledyba[];
+extern const u8 gMonBackPic_Ledyba[];
+extern const u8 gMonShinyPalette_Ledyba[];
+extern const u8 gMonIcon_Ledyba[];
+extern const u8 gMonFootprint_Ledyba[];
+extern const u8 gMonFrontPic_Ledian[];
+extern const u8 gMonPalette_Ledian[];
+extern const u8 gMonBackPic_Ledian[];
+extern const u8 gMonShinyPalette_Ledian[];
+extern const u8 gMonIcon_Ledian[];
+extern const u8 gMonFootprint_Ledian[];
+extern const u8 gMonFrontPic_Spinarak[];
+extern const u8 gMonPalette_Spinarak[];
+extern const u8 gMonBackPic_Spinarak[];
+extern const u8 gMonShinyPalette_Spinarak[];
+extern const u8 gMonIcon_Spinarak[];
+extern const u8 gMonFootprint_Spinarak[];
+extern const u8 gMonFrontPic_Ariados[];
+extern const u8 gMonPalette_Ariados[];
+extern const u8 gMonBackPic_Ariados[];
+extern const u8 gMonShinyPalette_Ariados[];
+extern const u8 gMonIcon_Ariados[];
+extern const u8 gMonFootprint_Ariados[];
+extern const u8 gMonFrontPic_Crobat[];
+extern const u8 gMonPalette_Crobat[];
+extern const u8 gMonBackPic_Crobat[];
+extern const u8 gMonShinyPalette_Crobat[];
+extern const u8 gMonIcon_Crobat[];
+extern const u8 gMonFootprint_Crobat[];
+extern const u8 gMonFrontPic_Chinchou[];
+extern const u8 gMonPalette_Chinchou[];
+extern const u8 gMonBackPic_Chinchou[];
+extern const u8 gMonShinyPalette_Chinchou[];
+extern const u8 gMonIcon_Chinchou[];
+extern const u8 gMonFootprint_Chinchou[];
+extern const u8 gMonFrontPic_Lanturn[];
+extern const u8 gMonPalette_Lanturn[];
+extern const u8 gMonBackPic_Lanturn[];
+extern const u8 gMonShinyPalette_Lanturn[];
+extern const u8 gMonIcon_Lanturn[];
+extern const u8 gMonFootprint_Lanturn[];
+extern const u8 gMonFrontPic_Pichu[];
+extern const u8 gMonPalette_Pichu[];
+extern const u8 gMonBackPic_Pichu[];
+extern const u8 gMonShinyPalette_Pichu[];
+extern const u8 gMonIcon_Pichu[];
+extern const u8 gMonFootprint_Pichu[];
+extern const u8 gMonFrontPic_Cleffa[];
+extern const u8 gMonPalette_Cleffa[];
+extern const u8 gMonBackPic_Cleffa[];
+extern const u8 gMonShinyPalette_Cleffa[];
+extern const u8 gMonIcon_Cleffa[];
+extern const u8 gMonFootprint_Cleffa[];
+extern const u8 gMonFrontPic_Igglybuff[];
+extern const u8 gMonPalette_Igglybuff[];
+extern const u8 gMonBackPic_Igglybuff[];
+extern const u8 gMonShinyPalette_Igglybuff[];
+extern const u8 gMonIcon_Igglybuff[];
+extern const u8 gMonFootprint_Igglybuff[];
+extern const u8 gMonFrontPic_Togepi[];
+extern const u8 gMonPalette_Togepi[];
+extern const u8 gMonBackPic_Togepi[];
+extern const u8 gMonShinyPalette_Togepi[];
+extern const u8 gMonIcon_Togepi[];
+extern const u8 gMonFootprint_Togepi[];
+extern const u8 gMonFrontPic_Togetic[];
+extern const u8 gMonPalette_Togetic[];
+extern const u8 gMonBackPic_Togetic[];
+extern const u8 gMonShinyPalette_Togetic[];
+extern const u8 gMonIcon_Togetic[];
+extern const u8 gMonFootprint_Togetic[];
+extern const u8 gMonFrontPic_Natu[];
+extern const u8 gMonPalette_Natu[];
+extern const u8 gMonBackPic_Natu[];
+extern const u8 gMonShinyPalette_Natu[];
+extern const u8 gMonIcon_Natu[];
+extern const u8 gMonFootprint_Natu[];
+extern const u8 gMonFrontPic_Xatu[];
+extern const u8 gMonPalette_Xatu[];
+extern const u8 gMonBackPic_Xatu[];
+extern const u8 gMonShinyPalette_Xatu[];
+extern const u8 gMonIcon_Xatu[];
+extern const u8 gMonFootprint_Xatu[];
+extern const u8 gMonFrontPic_Mareep[];
+extern const u8 gMonPalette_Mareep[];
+extern const u8 gMonBackPic_Mareep[];
+extern const u8 gMonShinyPalette_Mareep[];
+extern const u8 gMonIcon_Mareep[];
+extern const u8 gMonFootprint_Mareep[];
+extern const u8 gMonFrontPic_Flaaffy[];
+extern const u8 gMonPalette_Flaaffy[];
+extern const u8 gMonBackPic_Flaaffy[];
+extern const u8 gMonShinyPalette_Flaaffy[];
+extern const u8 gMonIcon_Flaaffy[];
+extern const u8 gMonFootprint_Flaaffy[];
+extern const u8 gMonFrontPic_Ampharos[];
+extern const u8 gMonPalette_Ampharos[];
+extern const u8 gMonBackPic_Ampharos[];
+extern const u8 gMonShinyPalette_Ampharos[];
+extern const u8 gMonIcon_Ampharos[];
+extern const u8 gMonFootprint_Ampharos[];
+extern const u8 gMonFrontPic_Bellossom[];
+extern const u8 gMonPalette_Bellossom[];
+extern const u8 gMonBackPic_Bellossom[];
+extern const u8 gMonShinyPalette_Bellossom[];
+extern const u8 gMonIcon_Bellossom[];
+extern const u8 gMonFootprint_Bellossom[];
+extern const u8 gMonFrontPic_Marill[];
+extern const u8 gMonPalette_Marill[];
+extern const u8 gMonBackPic_Marill[];
+extern const u8 gMonShinyPalette_Marill[];
+extern const u8 gMonIcon_Marill[];
+extern const u8 gMonFootprint_Marill[];
+extern const u8 gMonFrontPic_Azumarill[];
+extern const u8 gMonPalette_Azumarill[];
+extern const u8 gMonBackPic_Azumarill[];
+extern const u8 gMonShinyPalette_Azumarill[];
+extern const u8 gMonIcon_Azumarill[];
+extern const u8 gMonFootprint_Azumarill[];
+extern const u8 gMonFrontPic_Sudowoodo[];
+extern const u8 gMonPalette_Sudowoodo[];
+extern const u8 gMonBackPic_Sudowoodo[];
+extern const u8 gMonShinyPalette_Sudowoodo[];
+extern const u8 gMonIcon_Sudowoodo[];
+extern const u8 gMonFootprint_Sudowoodo[];
+extern const u8 gMonFrontPic_Politoed[];
+extern const u8 gMonPalette_Politoed[];
+extern const u8 gMonBackPic_Politoed[];
+extern const u8 gMonShinyPalette_Politoed[];
+extern const u8 gMonIcon_Politoed[];
+extern const u8 gMonFootprint_Politoed[];
+extern const u8 gMonFrontPic_Hoppip[];
+extern const u8 gMonPalette_Hoppip[];
+extern const u8 gMonBackPic_Hoppip[];
+extern const u8 gMonShinyPalette_Hoppip[];
+extern const u8 gMonIcon_Hoppip[];
+extern const u8 gMonFootprint_Hoppip[];
+extern const u8 gMonFrontPic_Skiploom[];
+extern const u8 gMonPalette_Skiploom[];
+extern const u8 gMonBackPic_Skiploom[];
+extern const u8 gMonShinyPalette_Skiploom[];
+extern const u8 gMonIcon_Skiploom[];
+extern const u8 gMonFootprint_Skiploom[];
+extern const u8 gMonFrontPic_Jumpluff[];
+extern const u8 gMonPalette_Jumpluff[];
+extern const u8 gMonBackPic_Jumpluff[];
+extern const u8 gMonShinyPalette_Jumpluff[];
+extern const u8 gMonIcon_Jumpluff[];
+extern const u8 gMonFootprint_Jumpluff[];
+extern const u8 gMonFrontPic_Aipom[];
+extern const u8 gMonPalette_Aipom[];
+extern const u8 gMonBackPic_Aipom[];
+extern const u8 gMonShinyPalette_Aipom[];
+extern const u8 gMonIcon_Aipom[];
+extern const u8 gMonFootprint_Aipom[];
+extern const u8 gMonFrontPic_Sunkern[];
+extern const u8 gMonPalette_Sunkern[];
+extern const u8 gMonBackPic_Sunkern[];
+extern const u8 gMonShinyPalette_Sunkern[];
+extern const u8 gMonIcon_Sunkern[];
+extern const u8 gMonFootprint_Sunkern[];
+extern const u8 gMonFrontPic_Sunflora[];
+extern const u8 gMonPalette_Sunflora[];
+extern const u8 gMonBackPic_Sunflora[];
+extern const u8 gMonShinyPalette_Sunflora[];
+extern const u8 gMonIcon_Sunflora[];
+extern const u8 gMonFootprint_Sunflora[];
+extern const u8 gMonFrontPic_Yanma[];
+extern const u8 gMonPalette_Yanma[];
+extern const u8 gMonBackPic_Yanma[];
+extern const u8 gMonShinyPalette_Yanma[];
+extern const u8 gMonIcon_Yanma[];
+extern const u8 gMonFootprint_Yanma[];
+extern const u8 gMonFrontPic_Wooper[];
+extern const u8 gMonPalette_Wooper[];
+extern const u8 gMonBackPic_Wooper[];
+extern const u8 gMonShinyPalette_Wooper[];
+extern const u8 gMonIcon_Wooper[];
+extern const u8 gMonFootprint_Wooper[];
+extern const u8 gMonFrontPic_Quagsire[];
+extern const u8 gMonPalette_Quagsire[];
+extern const u8 gMonBackPic_Quagsire[];
+extern const u8 gMonShinyPalette_Quagsire[];
+extern const u8 gMonIcon_Quagsire[];
+extern const u8 gMonFootprint_Quagsire[];
+extern const u8 gMonFrontPic_Espeon[];
+extern const u8 gMonPalette_Espeon[];
+extern const u8 gMonBackPic_Espeon[];
+extern const u8 gMonShinyPalette_Espeon[];
+extern const u8 gMonIcon_Espeon[];
+extern const u8 gMonFootprint_Espeon[];
+extern const u8 gMonFrontPic_Umbreon[];
+extern const u8 gMonPalette_Umbreon[];
+extern const u8 gMonBackPic_Umbreon[];
+extern const u8 gMonShinyPalette_Umbreon[];
+extern const u8 gMonIcon_Umbreon[];
+extern const u8 gMonFootprint_Umbreon[];
+extern const u8 gMonFrontPic_Murkrow[];
+extern const u8 gMonPalette_Murkrow[];
+extern const u8 gMonBackPic_Murkrow[];
+extern const u8 gMonShinyPalette_Murkrow[];
+extern const u8 gMonIcon_Murkrow[];
+extern const u8 gMonFootprint_Murkrow[];
+extern const u8 gMonFrontPic_Slowking[];
+extern const u8 gMonPalette_Slowking[];
+extern const u8 gMonBackPic_Slowking[];
+extern const u8 gMonShinyPalette_Slowking[];
+extern const u8 gMonIcon_Slowking[];
+extern const u8 gMonFootprint_Slowking[];
+extern const u8 gMonFrontPic_Misdreavus[];
+extern const u8 gMonPalette_Misdreavus[];
+extern const u8 gMonBackPic_Misdreavus[];
+extern const u8 gMonShinyPalette_Misdreavus[];
+extern const u8 gMonIcon_Misdreavus[];
+extern const u8 gMonFootprint_Misdreavus[];
+extern const u8 gMonFrontPic_UnownA[];
+extern const u8 gMonPalette_Unown[];
+extern const u8 gMonBackPic_UnownA[];
+extern const u8 gMonShinyPalette_Unown[];
+extern const u8 gMonIcon_UnownA[];
+extern const u8 gMonFootprint_Unown[];
+extern const u8 gMonFrontPic_Wobbuffet[];
+extern const u8 gMonPalette_Wobbuffet[];
+extern const u8 gMonBackPic_Wobbuffet[];
+extern const u8 gMonShinyPalette_Wobbuffet[];
+extern const u8 gMonIcon_Wobbuffet[];
+extern const u8 gMonFootprint_Wobbuffet[];
+extern const u8 gMonFrontPic_Girafarig[];
+extern const u8 gMonPalette_Girafarig[];
+extern const u8 gMonBackPic_Girafarig[];
+extern const u8 gMonShinyPalette_Girafarig[];
+extern const u8 gMonIcon_Girafarig[];
+extern const u8 gMonFootprint_Girafarig[];
+extern const u8 gMonFrontPic_Pineco[];
+extern const u8 gMonPalette_Pineco[];
+extern const u8 gMonBackPic_Pineco[];
+extern const u8 gMonShinyPalette_Pineco[];
+extern const u8 gMonIcon_Pineco[];
+extern const u8 gMonFootprint_Pineco[];
+extern const u8 gMonFrontPic_Forretress[];
+extern const u8 gMonPalette_Forretress[];
+extern const u8 gMonBackPic_Forretress[];
+extern const u8 gMonShinyPalette_Forretress[];
+extern const u8 gMonIcon_Forretress[];
+extern const u8 gMonFootprint_Forretress[];
+extern const u8 gMonFrontPic_Dunsparce[];
+extern const u8 gMonPalette_Dunsparce[];
+extern const u8 gMonBackPic_Dunsparce[];
+extern const u8 gMonShinyPalette_Dunsparce[];
+extern const u8 gMonIcon_Dunsparce[];
+extern const u8 gMonFootprint_Dunsparce[];
+extern const u8 gMonFrontPic_Gligar[];
+extern const u8 gMonPalette_Gligar[];
+extern const u8 gMonBackPic_Gligar[];
+extern const u8 gMonShinyPalette_Gligar[];
+extern const u8 gMonIcon_Gligar[];
+extern const u8 gMonFootprint_Gligar[];
+extern const u8 gMonFrontPic_Steelix[];
+extern const u8 gMonPalette_Steelix[];
+extern const u8 gMonBackPic_Steelix[];
+extern const u8 gMonShinyPalette_Steelix[];
+extern const u8 gMonIcon_Steelix[];
+extern const u8 gMonFootprint_Steelix[];
+extern const u8 gMonFrontPic_Snubbull[];
+extern const u8 gMonPalette_Snubbull[];
+extern const u8 gMonBackPic_Snubbull[];
+extern const u8 gMonShinyPalette_Snubbull[];
+extern const u8 gMonIcon_Snubbull[];
+extern const u8 gMonFootprint_Snubbull[];
+extern const u8 gMonFrontPic_Granbull[];
+extern const u8 gMonPalette_Granbull[];
+extern const u8 gMonBackPic_Granbull[];
+extern const u8 gMonShinyPalette_Granbull[];
+extern const u8 gMonIcon_Granbull[];
+extern const u8 gMonFootprint_Granbull[];
+extern const u8 gMonFrontPic_Qwilfish[];
+extern const u8 gMonPalette_Qwilfish[];
+extern const u8 gMonBackPic_Qwilfish[];
+extern const u8 gMonShinyPalette_Qwilfish[];
+extern const u8 gMonIcon_Qwilfish[];
+extern const u8 gMonFootprint_Qwilfish[];
+extern const u8 gMonFrontPic_Scizor[];
+extern const u8 gMonPalette_Scizor[];
+extern const u8 gMonBackPic_Scizor[];
+extern const u8 gMonShinyPalette_Scizor[];
+extern const u8 gMonIcon_Scizor[];
+extern const u8 gMonFootprint_Scizor[];
+extern const u8 gMonFrontPic_Shuckle[];
+extern const u8 gMonPalette_Shuckle[];
+extern const u8 gMonBackPic_Shuckle[];
+extern const u8 gMonShinyPalette_Shuckle[];
+extern const u8 gMonIcon_Shuckle[];
+extern const u8 gMonFootprint_Shuckle[];
+extern const u8 gMonFrontPic_Heracross[];
+extern const u8 gMonPalette_Heracross[];
+extern const u8 gMonBackPic_Heracross[];
+extern const u8 gMonShinyPalette_Heracross[];
+extern const u8 gMonIcon_Heracross[];
+extern const u8 gMonFootprint_Heracross[];
+extern const u8 gMonFrontPic_Sneasel[];
+extern const u8 gMonPalette_Sneasel[];
+extern const u8 gMonBackPic_Sneasel[];
+extern const u8 gMonShinyPalette_Sneasel[];
+extern const u8 gMonIcon_Sneasel[];
+extern const u8 gMonFootprint_Sneasel[];
+extern const u8 gMonFrontPic_Teddiursa[];
+extern const u8 gMonPalette_Teddiursa[];
+extern const u8 gMonBackPic_Teddiursa[];
+extern const u8 gMonShinyPalette_Teddiursa[];
+extern const u8 gMonIcon_Teddiursa[];
+extern const u8 gMonFootprint_Teddiursa[];
+extern const u8 gMonFrontPic_Ursaring[];
+extern const u8 gMonPalette_Ursaring[];
+extern const u8 gMonBackPic_Ursaring[];
+extern const u8 gMonShinyPalette_Ursaring[];
+extern const u8 gMonIcon_Ursaring[];
+extern const u8 gMonFootprint_Ursaring[];
+extern const u8 gMonFrontPic_Slugma[];
+extern const u8 gMonPalette_Slugma[];
+extern const u8 gMonBackPic_Slugma[];
+extern const u8 gMonShinyPalette_Slugma[];
+extern const u8 gMonIcon_Slugma[];
+extern const u8 gMonFootprint_Slugma[];
+extern const u8 gMonFrontPic_Magcargo[];
+extern const u8 gMonPalette_Magcargo[];
+extern const u8 gMonBackPic_Magcargo[];
+extern const u8 gMonShinyPalette_Magcargo[];
+extern const u8 gMonIcon_Magcargo[];
+extern const u8 gMonFootprint_Magcargo[];
+extern const u8 gMonFrontPic_Swinub[];
+extern const u8 gMonPalette_Swinub[];
+extern const u8 gMonBackPic_Swinub[];
+extern const u8 gMonShinyPalette_Swinub[];
+extern const u8 gMonIcon_Swinub[];
+extern const u8 gMonFootprint_Swinub[];
+extern const u8 gMonFrontPic_Piloswine[];
+extern const u8 gMonPalette_Piloswine[];
+extern const u8 gMonBackPic_Piloswine[];
+extern const u8 gMonShinyPalette_Piloswine[];
+extern const u8 gMonIcon_Piloswine[];
+extern const u8 gMonFootprint_Piloswine[];
+extern const u8 gMonFrontPic_Corsola[];
+extern const u8 gMonPalette_Corsola[];
+extern const u8 gMonBackPic_Corsola[];
+extern const u8 gMonShinyPalette_Corsola[];
+extern const u8 gMonIcon_Corsola[];
+extern const u8 gMonFootprint_Corsola[];
+extern const u8 gMonFrontPic_Remoraid[];
+extern const u8 gMonPalette_Remoraid[];
+extern const u8 gMonBackPic_Remoraid[];
+extern const u8 gMonShinyPalette_Remoraid[];
+extern const u8 gMonIcon_Remoraid[];
+extern const u8 gMonFootprint_Remoraid[];
+extern const u8 gMonFrontPic_Octillery[];
+extern const u8 gMonPalette_Octillery[];
+extern const u8 gMonBackPic_Octillery[];
+extern const u8 gMonShinyPalette_Octillery[];
+extern const u8 gMonIcon_Octillery[];
+extern const u8 gMonFootprint_Octillery[];
+extern const u8 gMonFrontPic_Delibird[];
+extern const u8 gMonPalette_Delibird[];
+extern const u8 gMonBackPic_Delibird[];
+extern const u8 gMonShinyPalette_Delibird[];
+extern const u8 gMonIcon_Delibird[];
+extern const u8 gMonFootprint_Delibird[];
+extern const u8 gMonFrontPic_Mantine[];
+extern const u8 gMonPalette_Mantine[];
+extern const u8 gMonBackPic_Mantine[];
+extern const u8 gMonShinyPalette_Mantine[];
+extern const u8 gMonIcon_Mantine[];
+extern const u8 gMonFootprint_Mantine[];
+extern const u8 gMonFrontPic_Skarmory[];
+extern const u8 gMonPalette_Skarmory[];
+extern const u8 gMonBackPic_Skarmory[];
+extern const u8 gMonShinyPalette_Skarmory[];
+extern const u8 gMonIcon_Skarmory[];
+extern const u8 gMonFootprint_Skarmory[];
+extern const u8 gMonFrontPic_Houndour[];
+extern const u8 gMonPalette_Houndour[];
+extern const u8 gMonBackPic_Houndour[];
+extern const u8 gMonShinyPalette_Houndour[];
+extern const u8 gMonIcon_Houndour[];
+extern const u8 gMonFootprint_Houndour[];
+extern const u8 gMonFrontPic_Houndoom[];
+extern const u8 gMonPalette_Houndoom[];
+extern const u8 gMonBackPic_Houndoom[];
+extern const u8 gMonShinyPalette_Houndoom[];
+extern const u8 gMonIcon_Houndoom[];
+extern const u8 gMonFootprint_Houndoom[];
+extern const u8 gMonFrontPic_Kingdra[];
+extern const u8 gMonPalette_Kingdra[];
+extern const u8 gMonBackPic_Kingdra[];
+extern const u8 gMonShinyPalette_Kingdra[];
+extern const u8 gMonIcon_Kingdra[];
+extern const u8 gMonFootprint_Kingdra[];
+extern const u8 gMonFrontPic_Phanpy[];
+extern const u8 gMonPalette_Phanpy[];
+extern const u8 gMonBackPic_Phanpy[];
+extern const u8 gMonShinyPalette_Phanpy[];
+extern const u8 gMonIcon_Phanpy[];
+extern const u8 gMonFootprint_Phanpy[];
+extern const u8 gMonFrontPic_Donphan[];
+extern const u8 gMonPalette_Donphan[];
+extern const u8 gMonBackPic_Donphan[];
+extern const u8 gMonShinyPalette_Donphan[];
+extern const u8 gMonIcon_Donphan[];
+extern const u8 gMonFootprint_Donphan[];
+extern const u8 gMonFrontPic_Porygon2[];
+extern const u8 gMonPalette_Porygon2[];
+extern const u8 gMonBackPic_Porygon2[];
+extern const u8 gMonShinyPalette_Porygon2[];
+extern const u8 gMonIcon_Porygon2[];
+extern const u8 gMonFootprint_Porygon2[];
+extern const u8 gMonFrontPic_Stantler[];
+extern const u8 gMonPalette_Stantler[];
+extern const u8 gMonBackPic_Stantler[];
+extern const u8 gMonShinyPalette_Stantler[];
+extern const u8 gMonIcon_Stantler[];
+extern const u8 gMonFootprint_Stantler[];
+extern const u8 gMonFrontPic_Smeargle[];
+extern const u8 gMonPalette_Smeargle[];
+extern const u8 gMonBackPic_Smeargle[];
+extern const u8 gMonShinyPalette_Smeargle[];
+extern const u8 gMonIcon_Smeargle[];
+extern const u8 gMonFootprint_Smeargle[];
+extern const u8 gMonFrontPic_Tyrogue[];
+extern const u8 gMonPalette_Tyrogue[];
+extern const u8 gMonBackPic_Tyrogue[];
+extern const u8 gMonShinyPalette_Tyrogue[];
+extern const u8 gMonIcon_Tyrogue[];
+extern const u8 gMonFootprint_Tyrogue[];
+extern const u8 gMonFrontPic_Hitmontop[];
+extern const u8 gMonPalette_Hitmontop[];
+extern const u8 gMonBackPic_Hitmontop[];
+extern const u8 gMonShinyPalette_Hitmontop[];
+extern const u8 gMonIcon_Hitmontop[];
+extern const u8 gMonFootprint_Hitmontop[];
+extern const u8 gMonFrontPic_Smoochum[];
+extern const u8 gMonPalette_Smoochum[];
+extern const u8 gMonBackPic_Smoochum[];
+extern const u8 gMonShinyPalette_Smoochum[];
+extern const u8 gMonIcon_Smoochum[];
+extern const u8 gMonFootprint_Smoochum[];
+extern const u8 gMonFrontPic_Elekid[];
+extern const u8 gMonPalette_Elekid[];
+extern const u8 gMonBackPic_Elekid[];
+extern const u8 gMonShinyPalette_Elekid[];
+extern const u8 gMonIcon_Elekid[];
+extern const u8 gMonFootprint_Elekid[];
+extern const u8 gMonFrontPic_Magby[];
+extern const u8 gMonPalette_Magby[];
+extern const u8 gMonBackPic_Magby[];
+extern const u8 gMonShinyPalette_Magby[];
+extern const u8 gMonIcon_Magby[];
+extern const u8 gMonFootprint_Magby[];
+extern const u8 gMonFrontPic_Miltank[];
+extern const u8 gMonPalette_Miltank[];
+extern const u8 gMonBackPic_Miltank[];
+extern const u8 gMonShinyPalette_Miltank[];
+extern const u8 gMonIcon_Miltank[];
+extern const u8 gMonFootprint_Miltank[];
+extern const u8 gMonFrontPic_Blissey[];
+extern const u8 gMonPalette_Blissey[];
+extern const u8 gMonBackPic_Blissey[];
+extern const u8 gMonShinyPalette_Blissey[];
+extern const u8 gMonIcon_Blissey[];
+extern const u8 gMonFootprint_Blissey[];
+extern const u8 gMonFrontPic_Raikou[];
+extern const u8 gMonPalette_Raikou[];
+extern const u8 gMonBackPic_Raikou[];
+extern const u8 gMonShinyPalette_Raikou[];
+extern const u8 gMonIcon_Raikou[];
+extern const u8 gMonFootprint_Raikou[];
+extern const u8 gMonFrontPic_Entei[];
+extern const u8 gMonPalette_Entei[];
+extern const u8 gMonBackPic_Entei[];
+extern const u8 gMonShinyPalette_Entei[];
+extern const u8 gMonIcon_Entei[];
+extern const u8 gMonFootprint_Entei[];
+extern const u8 gMonFrontPic_Suicune[];
+extern const u8 gMonPalette_Suicune[];
+extern const u8 gMonBackPic_Suicune[];
+extern const u8 gMonShinyPalette_Suicune[];
+extern const u8 gMonIcon_Suicune[];
+extern const u8 gMonFootprint_Suicune[];
+extern const u8 gMonFrontPic_Larvitar[];
+extern const u8 gMonPalette_Larvitar[];
+extern const u8 gMonBackPic_Larvitar[];
+extern const u8 gMonShinyPalette_Larvitar[];
+extern const u8 gMonIcon_Larvitar[];
+extern const u8 gMonFootprint_Larvitar[];
+extern const u8 gMonFrontPic_Pupitar[];
+extern const u8 gMonPalette_Pupitar[];
+extern const u8 gMonBackPic_Pupitar[];
+extern const u8 gMonShinyPalette_Pupitar[];
+extern const u8 gMonIcon_Pupitar[];
+extern const u8 gMonFootprint_Pupitar[];
+extern const u8 gMonFrontPic_Tyranitar[];
+extern const u8 gMonPalette_Tyranitar[];
+extern const u8 gMonBackPic_Tyranitar[];
+extern const u8 gMonShinyPalette_Tyranitar[];
+extern const u8 gMonIcon_Tyranitar[];
+extern const u8 gMonFootprint_Tyranitar[];
+extern const u8 gMonFrontPic_Lugia[];
+extern const u8 gMonPalette_Lugia[];
+extern const u8 gMonBackPic_Lugia[];
+extern const u8 gMonShinyPalette_Lugia[];
+extern const u8 gMonIcon_Lugia[];
+extern const u8 gMonFootprint_Lugia[];
+extern const u8 gMonFrontPic_HoOh[];
+extern const u8 gMonPalette_HoOh[];
+extern const u8 gMonBackPic_HoOh[];
+extern const u8 gMonShinyPalette_HoOh[];
+extern const u8 gMonIcon_HoOh[];
+extern const u8 gMonFootprint_HoOh[];
+extern const u8 gMonFrontPic_Celebi[];
+extern const u8 gMonPalette_Celebi[];
+extern const u8 gMonBackPic_Celebi[];
+extern const u8 gMonShinyPalette_Celebi[];
+extern const u8 gMonIcon_Celebi[];
+extern const u8 gMonFootprint_Celebi[];
+extern const u8 gMonFrontPic_QuestionMark[];
+extern const u8 gMonPalette_QuestionMark[];
+extern const u8 gMonBackPic_QuestionMark[];
+extern const u8 gMonShinyPalette_QuestionMark[];
+extern const u8 gMonFrontPic_Treecko[];
+extern const u8 gMonPalette_Treecko[];
+extern const u8 gMonBackPic_Treecko[];
+extern const u8 gMonShinyPalette_Treecko[];
+extern const u8 gMonIcon_Treecko[];
+extern const u8 gMonFootprint_Treecko[];
+extern const u8 gMonFrontPic_Grovyle[];
+extern const u8 gMonPalette_Grovyle[];
+extern const u8 gMonBackPic_Grovyle[];
+extern const u8 gMonShinyPalette_Grovyle[];
+extern const u8 gMonIcon_Grovyle[];
+extern const u8 gMonFootprint_Grovyle[];
+extern const u8 gMonFrontPic_Sceptile[];
+extern const u8 gMonPalette_Sceptile[];
+extern const u8 gMonBackPic_Sceptile[];
+extern const u8 gMonShinyPalette_Sceptile[];
+extern const u8 gMonIcon_Sceptile[];
+extern const u8 gMonFootprint_Sceptile[];
+extern const u8 gMonFrontPic_Torchic[];
+extern const u8 gMonPalette_Torchic[];
+extern const u8 gMonBackPic_Torchic[];
+extern const u8 gMonShinyPalette_Torchic[];
+extern const u8 gMonIcon_Torchic[];
+extern const u8 gMonFootprint_Torchic[];
+extern const u8 gMonFrontPic_Combusken[];
+extern const u8 gMonPalette_Combusken[];
+extern const u8 gMonBackPic_Combusken[];
+extern const u8 gMonShinyPalette_Combusken[];
+extern const u8 gMonIcon_Combusken[];
+extern const u8 gMonFootprint_Combusken[];
+extern const u8 gMonFrontPic_Blaziken[];
+extern const u8 gMonPalette_Blaziken[];
+extern const u8 gMonBackPic_Blaziken[];
+extern const u8 gMonShinyPalette_Blaziken[];
+extern const u8 gMonIcon_Blaziken[];
+extern const u8 gMonFootprint_Blaziken[];
+extern const u8 gMonFrontPic_Mudkip[];
+extern const u8 gMonPalette_Mudkip[];
+extern const u8 gMonBackPic_Mudkip[];
+extern const u8 gMonShinyPalette_Mudkip[];
+extern const u8 gMonIcon_Mudkip[];
+extern const u8 gMonFootprint_Mudkip[];
+extern const u8 gMonFrontPic_Marshtomp[];
+extern const u8 gMonPalette_Marshtomp[];
+extern const u8 gMonBackPic_Marshtomp[];
+extern const u8 gMonShinyPalette_Marshtomp[];
+extern const u8 gMonIcon_Marshtomp[];
+extern const u8 gMonFootprint_Marshtomp[];
+extern const u8 gMonFrontPic_Swampert[];
+extern const u8 gMonPalette_Swampert[];
+extern const u8 gMonBackPic_Swampert[];
+extern const u8 gMonShinyPalette_Swampert[];
+extern const u8 gMonIcon_Swampert[];
+extern const u8 gMonFootprint_Swampert[];
+extern const u8 gMonFrontPic_Poochyena[];
+extern const u8 gMonPalette_Poochyena[];
+extern const u8 gMonBackPic_Poochyena[];
+extern const u8 gMonShinyPalette_Poochyena[];
+extern const u8 gMonIcon_Poochyena[];
+extern const u8 gMonFootprint_Poochyena[];
+extern const u8 gMonFrontPic_Mightyena[];
+extern const u8 gMonPalette_Mightyena[];
+extern const u8 gMonBackPic_Mightyena[];
+extern const u8 gMonShinyPalette_Mightyena[];
+extern const u8 gMonIcon_Mightyena[];
+extern const u8 gMonFootprint_Mightyena[];
+extern const u8 gMonFrontPic_Zigzagoon[];
+extern const u8 gMonPalette_Zigzagoon[];
+extern const u8 gMonBackPic_Zigzagoon[];
+extern const u8 gMonShinyPalette_Zigzagoon[];
+extern const u8 gMonIcon_Zigzagoon[];
+extern const u8 gMonFootprint_Zigzagoon[];
+extern const u8 gMonFrontPic_Linoone[];
+extern const u8 gMonPalette_Linoone[];
+extern const u8 gMonBackPic_Linoone[];
+extern const u8 gMonShinyPalette_Linoone[];
+extern const u8 gMonIcon_Linoone[];
+extern const u8 gMonFootprint_Linoone[];
+extern const u8 gMonFrontPic_Wurmple[];
+extern const u8 gMonPalette_Wurmple[];
+extern const u8 gMonBackPic_Wurmple[];
+extern const u8 gMonShinyPalette_Wurmple[];
+extern const u8 gMonIcon_Wurmple[];
+extern const u8 gMonFootprint_Wurmple[];
+extern const u8 gMonFrontPic_Silcoon[];
+extern const u8 gMonPalette_Silcoon[];
+extern const u8 gMonBackPic_Silcoon[];
+extern const u8 gMonShinyPalette_Silcoon[];
+extern const u8 gMonIcon_Silcoon[];
+extern const u8 gMonFootprint_Silcoon[];
+extern const u8 gMonFrontPic_Beautifly[];
+extern const u8 gMonPalette_Beautifly[];
+extern const u8 gMonBackPic_Beautifly[];
+extern const u8 gMonShinyPalette_Beautifly[];
+extern const u8 gMonIcon_Beautifly[];
+extern const u8 gMonFootprint_Beautifly[];
+extern const u8 gMonFrontPic_Cascoon[];
+extern const u8 gMonPalette_Cascoon[];
+extern const u8 gMonBackPic_Cascoon[];
+extern const u8 gMonShinyPalette_Cascoon[];
+extern const u8 gMonIcon_Cascoon[];
+extern const u8 gMonFootprint_Cascoon[];
+extern const u8 gMonFrontPic_Dustox[];
+extern const u8 gMonPalette_Dustox[];
+extern const u8 gMonBackPic_Dustox[];
+extern const u8 gMonShinyPalette_Dustox[];
+extern const u8 gMonIcon_Dustox[];
+extern const u8 gMonFootprint_Dustox[];
+extern const u8 gMonFrontPic_Lotad[];
+extern const u8 gMonPalette_Lotad[];
+extern const u8 gMonBackPic_Lotad[];
+extern const u8 gMonShinyPalette_Lotad[];
+extern const u8 gMonIcon_Lotad[];
+extern const u8 gMonFootprint_Lotad[];
+extern const u8 gMonFrontPic_Lombre[];
+extern const u8 gMonPalette_Lombre[];
+extern const u8 gMonBackPic_Lombre[];
+extern const u8 gMonShinyPalette_Lombre[];
+extern const u8 gMonIcon_Lombre[];
+extern const u8 gMonFootprint_Lombre[];
+extern const u8 gMonFrontPic_Ludicolo[];
+extern const u8 gMonPalette_Ludicolo[];
+extern const u8 gMonBackPic_Ludicolo[];
+extern const u8 gMonShinyPalette_Ludicolo[];
+extern const u8 gMonIcon_Ludicolo[];
+extern const u8 gMonFootprint_Ludicolo[];
+extern const u8 gMonFrontPic_Seedot[];
+extern const u8 gMonPalette_Seedot[];
+extern const u8 gMonBackPic_Seedot[];
+extern const u8 gMonShinyPalette_Seedot[];
+extern const u8 gMonIcon_Seedot[];
+extern const u8 gMonFootprint_Seedot[];
+extern const u8 gMonFrontPic_Nuzleaf[];
+extern const u8 gMonPalette_Nuzleaf[];
+extern const u8 gMonBackPic_Nuzleaf[];
+extern const u8 gMonShinyPalette_Nuzleaf[];
+extern const u8 gMonIcon_Nuzleaf[];
+extern const u8 gMonFootprint_Nuzleaf[];
+extern const u8 gMonFrontPic_Shiftry[];
+extern const u8 gMonPalette_Shiftry[];
+extern const u8 gMonBackPic_Shiftry[];
+extern const u8 gMonShinyPalette_Shiftry[];
+extern const u8 gMonIcon_Shiftry[];
+extern const u8 gMonFootprint_Shiftry[];
+extern const u8 gMonFrontPic_Nincada[];
+extern const u8 gMonPalette_Nincada[];
+extern const u8 gMonBackPic_Nincada[];
+extern const u8 gMonShinyPalette_Nincada[];
+extern const u8 gMonIcon_Nincada[];
+extern const u8 gMonFootprint_Nincada[];
+extern const u8 gMonFrontPic_Ninjask[];
+extern const u8 gMonPalette_Ninjask[];
+extern const u8 gMonBackPic_Ninjask[];
+extern const u8 gMonShinyPalette_Ninjask[];
+extern const u8 gMonIcon_Ninjask[];
+extern const u8 gMonFootprint_Ninjask[];
+extern const u8 gMonFrontPic_Shedinja[];
+extern const u8 gMonPalette_Shedinja[];
+extern const u8 gMonBackPic_Shedinja[];
+extern const u8 gMonShinyPalette_Shedinja[];
+extern const u8 gMonIcon_Shedinja[];
+extern const u8 gMonFootprint_Shedinja[];
+extern const u8 gMonFrontPic_Taillow[];
+extern const u8 gMonPalette_Taillow[];
+extern const u8 gMonBackPic_Taillow[];
+extern const u8 gMonShinyPalette_Taillow[];
+extern const u8 gMonIcon_Taillow[];
+extern const u8 gMonFootprint_Taillow[];
+extern const u8 gMonFrontPic_Swellow[];
+extern const u8 gMonPalette_Swellow[];
+extern const u8 gMonBackPic_Swellow[];
+extern const u8 gMonShinyPalette_Swellow[];
+extern const u8 gMonIcon_Swellow[];
+extern const u8 gMonFootprint_Swellow[];
+extern const u8 gMonFrontPic_Shroomish[];
+extern const u8 gMonPalette_Shroomish[];
+extern const u8 gMonBackPic_Shroomish[];
+extern const u8 gMonShinyPalette_Shroomish[];
+extern const u8 gMonIcon_Shroomish[];
+extern const u8 gMonFootprint_Shroomish[];
+extern const u8 gMonFrontPic_Breloom[];
+extern const u8 gMonPalette_Breloom[];
+extern const u8 gMonBackPic_Breloom[];
+extern const u8 gMonShinyPalette_Breloom[];
+extern const u8 gMonIcon_Breloom[];
+extern const u8 gMonFootprint_Breloom[];
+extern const u8 gMonFrontPic_Spinda[];
+extern const u8 gMonPalette_Spinda[];
+extern const u8 gMonBackPic_Spinda[];
+extern const u8 gMonShinyPalette_Spinda[];
+extern const u8 gMonIcon_Spinda[];
+extern const u8 gMonFootprint_Spinda[];
+extern const u8 gMonFrontPic_Wingull[];
+extern const u8 gMonPalette_Wingull[];
+extern const u8 gMonBackPic_Wingull[];
+extern const u8 gMonShinyPalette_Wingull[];
+extern const u8 gMonIcon_Wingull[];
+extern const u8 gMonFootprint_Wingull[];
+extern const u8 gMonFrontPic_Pelipper[];
+extern const u8 gMonPalette_Pelipper[];
+extern const u8 gMonBackPic_Pelipper[];
+extern const u8 gMonShinyPalette_Pelipper[];
+extern const u8 gMonIcon_Pelipper[];
+extern const u8 gMonFootprint_Pelipper[];
+extern const u8 gMonFrontPic_Surskit[];
+extern const u8 gMonPalette_Surskit[];
+extern const u8 gMonBackPic_Surskit[];
+extern const u8 gMonShinyPalette_Surskit[];
+extern const u8 gMonIcon_Surskit[];
+extern const u8 gMonFootprint_Surskit[];
+extern const u8 gMonFrontPic_Masquerain[];
+extern const u8 gMonPalette_Masquerain[];
+extern const u8 gMonBackPic_Masquerain[];
+extern const u8 gMonShinyPalette_Masquerain[];
+extern const u8 gMonIcon_Masquerain[];
+extern const u8 gMonFootprint_Masquerain[];
+extern const u8 gMonFrontPic_Wailmer[];
+extern const u8 gMonPalette_Wailmer[];
+extern const u8 gMonBackPic_Wailmer[];
+extern const u8 gMonShinyPalette_Wailmer[];
+extern const u8 gMonIcon_Wailmer[];
+extern const u8 gMonFootprint_Wailmer[];
+extern const u8 gMonFrontPic_Wailord[];
+extern const u8 gMonPalette_Wailord[];
+extern const u8 gMonBackPic_Wailord[];
+extern const u8 gMonShinyPalette_Wailord[];
+extern const u8 gMonIcon_Wailord[];
+extern const u8 gMonFootprint_Wailord[];
+extern const u8 gMonFrontPic_Skitty[];
+extern const u8 gMonPalette_Skitty[];
+extern const u8 gMonBackPic_Skitty[];
+extern const u8 gMonShinyPalette_Skitty[];
+extern const u8 gMonIcon_Skitty[];
+extern const u8 gMonFootprint_Skitty[];
+extern const u8 gMonFrontPic_Delcatty[];
+extern const u8 gMonPalette_Delcatty[];
+extern const u8 gMonBackPic_Delcatty[];
+extern const u8 gMonShinyPalette_Delcatty[];
+extern const u8 gMonIcon_Delcatty[];
+extern const u8 gMonFootprint_Delcatty[];
+extern const u8 gMonFrontPic_Kecleon[];
+extern const u8 gMonPalette_Kecleon[];
+extern const u8 gMonBackPic_Kecleon[];
+extern const u8 gMonShinyPalette_Kecleon[];
+extern const u8 gMonIcon_Kecleon[];
+extern const u8 gMonFootprint_Kecleon[];
+extern const u8 gMonFrontPic_Baltoy[];
+extern const u8 gMonPalette_Baltoy[];
+extern const u8 gMonBackPic_Baltoy[];
+extern const u8 gMonShinyPalette_Baltoy[];
+extern const u8 gMonIcon_Baltoy[];
+extern const u8 gMonFootprint_Baltoy[];
+extern const u8 gMonFrontPic_Claydol[];
+extern const u8 gMonPalette_Claydol[];
+extern const u8 gMonBackPic_Claydol[];
+extern const u8 gMonShinyPalette_Claydol[];
+extern const u8 gMonIcon_Claydol[];
+extern const u8 gMonFootprint_Claydol[];
+extern const u8 gMonFrontPic_Nosepass[];
+extern const u8 gMonPalette_Nosepass[];
+extern const u8 gMonBackPic_Nosepass[];
+extern const u8 gMonShinyPalette_Nosepass[];
+extern const u8 gMonIcon_Nosepass[];
+extern const u8 gMonFootprint_Nosepass[];
+extern const u8 gMonFrontPic_Torkoal[];
+extern const u8 gMonPalette_Torkoal[];
+extern const u8 gMonBackPic_Torkoal[];
+extern const u8 gMonShinyPalette_Torkoal[];
+extern const u8 gMonIcon_Torkoal[];
+extern const u8 gMonFootprint_Torkoal[];
+extern const u8 gMonFrontPic_Sableye[];
+extern const u8 gMonPalette_Sableye[];
+extern const u8 gMonBackPic_Sableye[];
+extern const u8 gMonShinyPalette_Sableye[];
+extern const u8 gMonIcon_Sableye[];
+extern const u8 gMonFootprint_Sableye[];
+extern const u8 gMonFrontPic_Barboach[];
+extern const u8 gMonPalette_Barboach[];
+extern const u8 gMonBackPic_Barboach[];
+extern const u8 gMonShinyPalette_Barboach[];
+extern const u8 gMonIcon_Barboach[];
+extern const u8 gMonFootprint_Barboach[];
+extern const u8 gMonFrontPic_Whiscash[];
+extern const u8 gMonPalette_Whiscash[];
+extern const u8 gMonBackPic_Whiscash[];
+extern const u8 gMonShinyPalette_Whiscash[];
+extern const u8 gMonIcon_Whiscash[];
+extern const u8 gMonFootprint_Whiscash[];
+extern const u8 gMonFrontPic_Luvdisc[];
+extern const u8 gMonPalette_Luvdisc[];
+extern const u8 gMonBackPic_Luvdisc[];
+extern const u8 gMonShinyPalette_Luvdisc[];
+extern const u8 gMonIcon_Luvdisc[];
+extern const u8 gMonFootprint_Luvdisc[];
+extern const u8 gMonFrontPic_Corphish[];
+extern const u8 gMonPalette_Corphish[];
+extern const u8 gMonBackPic_Corphish[];
+extern const u8 gMonShinyPalette_Corphish[];
+extern const u8 gMonIcon_Corphish[];
+extern const u8 gMonFootprint_Corphish[];
+extern const u8 gMonFrontPic_Crawdaunt[];
+extern const u8 gMonPalette_Crawdaunt[];
+extern const u8 gMonBackPic_Crawdaunt[];
+extern const u8 gMonShinyPalette_Crawdaunt[];
+extern const u8 gMonIcon_Crawdaunt[];
+extern const u8 gMonFootprint_Crawdaunt[];
+extern const u8 gMonFrontPic_Feebas[];
+extern const u8 gMonPalette_Feebas[];
+extern const u8 gMonBackPic_Feebas[];
+extern const u8 gMonShinyPalette_Feebas[];
+extern const u8 gMonIcon_Feebas[];
+extern const u8 gMonFootprint_Feebas[];
+extern const u8 gMonFrontPic_Milotic[];
+extern const u8 gMonPalette_Milotic[];
+extern const u8 gMonBackPic_Milotic[];
+extern const u8 gMonShinyPalette_Milotic[];
+extern const u8 gMonIcon_Milotic[];
+extern const u8 gMonFootprint_Milotic[];
+extern const u8 gMonFrontPic_Carvanha[];
+extern const u8 gMonPalette_Carvanha[];
+extern const u8 gMonBackPic_Carvanha[];
+extern const u8 gMonShinyPalette_Carvanha[];
+extern const u8 gMonIcon_Carvanha[];
+extern const u8 gMonFootprint_Carvanha[];
+extern const u8 gMonFrontPic_Sharpedo[];
+extern const u8 gMonPalette_Sharpedo[];
+extern const u8 gMonBackPic_Sharpedo[];
+extern const u8 gMonShinyPalette_Sharpedo[];
+extern const u8 gMonIcon_Sharpedo[];
+extern const u8 gMonFootprint_Sharpedo[];
+extern const u8 gMonFrontPic_Trapinch[];
+extern const u8 gMonPalette_Trapinch[];
+extern const u8 gMonBackPic_Trapinch[];
+extern const u8 gMonShinyPalette_Trapinch[];
+extern const u8 gMonIcon_Trapinch[];
+extern const u8 gMonFootprint_Trapinch[];
+extern const u8 gMonFrontPic_Vibrava[];
+extern const u8 gMonPalette_Vibrava[];
+extern const u8 gMonBackPic_Vibrava[];
+extern const u8 gMonShinyPalette_Vibrava[];
+extern const u8 gMonIcon_Vibrava[];
+extern const u8 gMonFootprint_Vibrava[];
+extern const u8 gMonFrontPic_Flygon[];
+extern const u8 gMonPalette_Flygon[];
+extern const u8 gMonBackPic_Flygon[];
+extern const u8 gMonShinyPalette_Flygon[];
+extern const u8 gMonIcon_Flygon[];
+extern const u8 gMonFootprint_Flygon[];
+extern const u8 gMonFrontPic_Makuhita[];
+extern const u8 gMonPalette_Makuhita[];
+extern const u8 gMonBackPic_Makuhita[];
+extern const u8 gMonShinyPalette_Makuhita[];
+extern const u8 gMonIcon_Makuhita[];
+extern const u8 gMonFootprint_Makuhita[];
+extern const u8 gMonFrontPic_Hariyama[];
+extern const u8 gMonPalette_Hariyama[];
+extern const u8 gMonBackPic_Hariyama[];
+extern const u8 gMonShinyPalette_Hariyama[];
+extern const u8 gMonIcon_Hariyama[];
+extern const u8 gMonFootprint_Hariyama[];
+extern const u8 gMonFrontPic_Electrike[];
+extern const u8 gMonPalette_Electrike[];
+extern const u8 gMonBackPic_Electrike[];
+extern const u8 gMonShinyPalette_Electrike[];
+extern const u8 gMonIcon_Electrike[];
+extern const u8 gMonFootprint_Electrike[];
+extern const u8 gMonFrontPic_Manectric[];
+extern const u8 gMonPalette_Manectric[];
+extern const u8 gMonBackPic_Manectric[];
+extern const u8 gMonShinyPalette_Manectric[];
+extern const u8 gMonIcon_Manectric[];
+extern const u8 gMonFootprint_Manectric[];
+extern const u8 gMonFrontPic_Numel[];
+extern const u8 gMonPalette_Numel[];
+extern const u8 gMonBackPic_Numel[];
+extern const u8 gMonShinyPalette_Numel[];
+extern const u8 gMonIcon_Numel[];
+extern const u8 gMonFootprint_Numel[];
+extern const u8 gMonFrontPic_Camerupt[];
+extern const u8 gMonPalette_Camerupt[];
+extern const u8 gMonBackPic_Camerupt[];
+extern const u8 gMonShinyPalette_Camerupt[];
+extern const u8 gMonIcon_Camerupt[];
+extern const u8 gMonFootprint_Camerupt[];
+extern const u8 gMonFrontPic_Spheal[];
+extern const u8 gMonPalette_Spheal[];
+extern const u8 gMonBackPic_Spheal[];
+extern const u8 gMonShinyPalette_Spheal[];
+extern const u8 gMonIcon_Spheal[];
+extern const u8 gMonFootprint_Spheal[];
+extern const u8 gMonFrontPic_Sealeo[];
+extern const u8 gMonPalette_Sealeo[];
+extern const u8 gMonBackPic_Sealeo[];
+extern const u8 gMonShinyPalette_Sealeo[];
+extern const u8 gMonIcon_Sealeo[];
+extern const u8 gMonFootprint_Sealeo[];
+extern const u8 gMonFrontPic_Walrein[];
+extern const u8 gMonPalette_Walrein[];
+extern const u8 gMonBackPic_Walrein[];
+extern const u8 gMonShinyPalette_Walrein[];
+extern const u8 gMonIcon_Walrein[];
+extern const u8 gMonFootprint_Walrein[];
+extern const u8 gMonFrontPic_Cacnea[];
+extern const u8 gMonPalette_Cacnea[];
+extern const u8 gMonBackPic_Cacnea[];
+extern const u8 gMonShinyPalette_Cacnea[];
+extern const u8 gMonIcon_Cacnea[];
+extern const u8 gMonFootprint_Cacnea[];
+extern const u8 gMonFrontPic_Cacturne[];
+extern const u8 gMonPalette_Cacturne[];
+extern const u8 gMonBackPic_Cacturne[];
+extern const u8 gMonShinyPalette_Cacturne[];
+extern const u8 gMonIcon_Cacturne[];
+extern const u8 gMonFootprint_Cacturne[];
+extern const u8 gMonFrontPic_Snorunt[];
+extern const u8 gMonPalette_Snorunt[];
+extern const u8 gMonBackPic_Snorunt[];
+extern const u8 gMonShinyPalette_Snorunt[];
+extern const u8 gMonIcon_Snorunt[];
+extern const u8 gMonFootprint_Snorunt[];
+extern const u8 gMonFrontPic_Glalie[];
+extern const u8 gMonPalette_Glalie[];
+extern const u8 gMonBackPic_Glalie[];
+extern const u8 gMonShinyPalette_Glalie[];
+extern const u8 gMonIcon_Glalie[];
+extern const u8 gMonFootprint_Glalie[];
+extern const u8 gMonFrontPic_Lunatone[];
+extern const u8 gMonPalette_Lunatone[];
+extern const u8 gMonBackPic_Lunatone[];
+extern const u8 gMonShinyPalette_Lunatone[];
+extern const u8 gMonIcon_Lunatone[];
+extern const u8 gMonFootprint_Lunatone[];
+extern const u8 gMonFrontPic_Solrock[];
+extern const u8 gMonPalette_Solrock[];
+extern const u8 gMonBackPic_Solrock[];
+extern const u8 gMonShinyPalette_Solrock[];
+extern const u8 gMonIcon_Solrock[];
+extern const u8 gMonFootprint_Solrock[];
+extern const u8 gMonFrontPic_Azurill[];
+extern const u8 gMonPalette_Azurill[];
+extern const u8 gMonBackPic_Azurill[];
+extern const u8 gMonShinyPalette_Azurill[];
+extern const u8 gMonIcon_Azurill[];
+extern const u8 gMonFootprint_Azurill[];
+extern const u8 gMonFrontPic_Spoink[];
+extern const u8 gMonPalette_Spoink[];
+extern const u8 gMonBackPic_Spoink[];
+extern const u8 gMonShinyPalette_Spoink[];
+extern const u8 gMonIcon_Spoink[];
+extern const u8 gMonFootprint_Spoink[];
+extern const u8 gMonFrontPic_Grumpig[];
+extern const u8 gMonPalette_Grumpig[];
+extern const u8 gMonBackPic_Grumpig[];
+extern const u8 gMonShinyPalette_Grumpig[];
+extern const u8 gMonIcon_Grumpig[];
+extern const u8 gMonFootprint_Grumpig[];
+extern const u8 gMonFrontPic_Plusle[];
+extern const u8 gMonPalette_Plusle[];
+extern const u8 gMonBackPic_Plusle[];
+extern const u8 gMonShinyPalette_Plusle[];
+extern const u8 gMonIcon_Plusle[];
+extern const u8 gMonFootprint_Plusle[];
+extern const u8 gMonFrontPic_Minun[];
+extern const u8 gMonPalette_Minun[];
+extern const u8 gMonBackPic_Minun[];
+extern const u8 gMonShinyPalette_Minun[];
+extern const u8 gMonIcon_Minun[];
+extern const u8 gMonFootprint_Minun[];
+extern const u8 gMonFrontPic_Mawile[];
+extern const u8 gMonPalette_Mawile[];
+extern const u8 gMonBackPic_Mawile[];
+extern const u8 gMonShinyPalette_Mawile[];
+extern const u8 gMonIcon_Mawile[];
+extern const u8 gMonFootprint_Mawile[];
+extern const u8 gMonFrontPic_Meditite[];
+extern const u8 gMonPalette_Meditite[];
+extern const u8 gMonBackPic_Meditite[];
+extern const u8 gMonShinyPalette_Meditite[];
+extern const u8 gMonIcon_Meditite[];
+extern const u8 gMonFootprint_Meditite[];
+extern const u8 gMonFrontPic_Medicham[];
+extern const u8 gMonPalette_Medicham[];
+extern const u8 gMonBackPic_Medicham[];
+extern const u8 gMonShinyPalette_Medicham[];
+extern const u8 gMonIcon_Medicham[];
+extern const u8 gMonFootprint_Medicham[];
+extern const u8 gMonFrontPic_Swablu[];
+extern const u8 gMonPalette_Swablu[];
+extern const u8 gMonBackPic_Swablu[];
+extern const u8 gMonShinyPalette_Swablu[];
+extern const u8 gMonIcon_Swablu[];
+extern const u8 gMonFootprint_Swablu[];
+extern const u8 gMonFrontPic_Altaria[];
+extern const u8 gMonPalette_Altaria[];
+extern const u8 gMonBackPic_Altaria[];
+extern const u8 gMonShinyPalette_Altaria[];
+extern const u8 gMonIcon_Altaria[];
+extern const u8 gMonFootprint_Altaria[];
+extern const u8 gMonFrontPic_Wynaut[];
+extern const u8 gMonPalette_Wynaut[];
+extern const u8 gMonBackPic_Wynaut[];
+extern const u8 gMonShinyPalette_Wynaut[];
+extern const u8 gMonIcon_Wynaut[];
+extern const u8 gMonFootprint_Wynaut[];
+extern const u8 gMonFrontPic_Duskull[];
+extern const u8 gMonPalette_Duskull[];
+extern const u8 gMonBackPic_Duskull[];
+extern const u8 gMonShinyPalette_Duskull[];
+extern const u8 gMonIcon_Duskull[];
+extern const u8 gMonFootprint_Duskull[];
+extern const u8 gMonFrontPic_Dusclops[];
+extern const u8 gMonPalette_Dusclops[];
+extern const u8 gMonBackPic_Dusclops[];
+extern const u8 gMonShinyPalette_Dusclops[];
+extern const u8 gMonIcon_Dusclops[];
+extern const u8 gMonFootprint_Dusclops[];
+extern const u8 gMonFrontPic_Roselia[];
+extern const u8 gMonPalette_Roselia[];
+extern const u8 gMonBackPic_Roselia[];
+extern const u8 gMonShinyPalette_Roselia[];
+extern const u8 gMonIcon_Roselia[];
+extern const u8 gMonFootprint_Roselia[];
+extern const u8 gMonFrontPic_Slakoth[];
+extern const u8 gMonPalette_Slakoth[];
+extern const u8 gMonBackPic_Slakoth[];
+extern const u8 gMonShinyPalette_Slakoth[];
+extern const u8 gMonIcon_Slakoth[];
+extern const u8 gMonFootprint_Slakoth[];
+extern const u8 gMonFrontPic_Vigoroth[];
+extern const u8 gMonPalette_Vigoroth[];
+extern const u8 gMonBackPic_Vigoroth[];
+extern const u8 gMonShinyPalette_Vigoroth[];
+extern const u8 gMonIcon_Vigoroth[];
+extern const u8 gMonFootprint_Vigoroth[];
+extern const u8 gMonFrontPic_Slaking[];
+extern const u8 gMonPalette_Slaking[];
+extern const u8 gMonBackPic_Slaking[];
+extern const u8 gMonShinyPalette_Slaking[];
+extern const u8 gMonIcon_Slaking[];
+extern const u8 gMonFootprint_Slaking[];
+extern const u8 gMonFrontPic_Gulpin[];
+extern const u8 gMonPalette_Gulpin[];
+extern const u8 gMonBackPic_Gulpin[];
+extern const u8 gMonShinyPalette_Gulpin[];
+extern const u8 gMonIcon_Gulpin[];
+extern const u8 gMonFootprint_Gulpin[];
+extern const u8 gMonFrontPic_Swalot[];
+extern const u8 gMonPalette_Swalot[];
+extern const u8 gMonBackPic_Swalot[];
+extern const u8 gMonShinyPalette_Swalot[];
+extern const u8 gMonIcon_Swalot[];
+extern const u8 gMonFootprint_Swalot[];
+extern const u8 gMonFrontPic_Tropius[];
+extern const u8 gMonPalette_Tropius[];
+extern const u8 gMonBackPic_Tropius[];
+extern const u8 gMonShinyPalette_Tropius[];
+extern const u8 gMonIcon_Tropius[];
+extern const u8 gMonFootprint_Tropius[];
+extern const u8 gMonFrontPic_Whismur[];
+extern const u8 gMonPalette_Whismur[];
+extern const u8 gMonBackPic_Whismur[];
+extern const u8 gMonShinyPalette_Whismur[];
+extern const u8 gMonIcon_Whismur[];
+extern const u8 gMonFootprint_Whismur[];
+extern const u8 gMonFrontPic_Loudred[];
+extern const u8 gMonPalette_Loudred[];
+extern const u8 gMonBackPic_Loudred[];
+extern const u8 gMonShinyPalette_Loudred[];
+extern const u8 gMonIcon_Loudred[];
+extern const u8 gMonFootprint_Loudred[];
+extern const u8 gMonFrontPic_Exploud[];
+extern const u8 gMonPalette_Exploud[];
+extern const u8 gMonBackPic_Exploud[];
+extern const u8 gMonShinyPalette_Exploud[];
+extern const u8 gMonIcon_Exploud[];
+extern const u8 gMonFootprint_Exploud[];
+extern const u8 gMonFrontPic_Clamperl[];
+extern const u8 gMonPalette_Clamperl[];
+extern const u8 gMonBackPic_Clamperl[];
+extern const u8 gMonShinyPalette_Clamperl[];
+extern const u8 gMonIcon_Clamperl[];
+extern const u8 gMonFootprint_Clamperl[];
+extern const u8 gMonFrontPic_Huntail[];
+extern const u8 gMonPalette_Huntail[];
+extern const u8 gMonBackPic_Huntail[];
+extern const u8 gMonShinyPalette_Huntail[];
+extern const u8 gMonIcon_Huntail[];
+extern const u8 gMonFootprint_Huntail[];
+extern const u8 gMonFrontPic_Gorebyss[];
+extern const u8 gMonPalette_Gorebyss[];
+extern const u8 gMonBackPic_Gorebyss[];
+extern const u8 gMonShinyPalette_Gorebyss[];
+extern const u8 gMonIcon_Gorebyss[];
+extern const u8 gMonFootprint_Gorebyss[];
+extern const u8 gMonFrontPic_Absol[];
+extern const u8 gMonPalette_Absol[];
+extern const u8 gMonBackPic_Absol[];
+extern const u8 gMonShinyPalette_Absol[];
+extern const u8 gMonIcon_Absol[];
+extern const u8 gMonFootprint_Absol[];
+extern const u8 gMonFrontPic_Shuppet[];
+extern const u8 gMonPalette_Shuppet[];
+extern const u8 gMonBackPic_Shuppet[];
+extern const u8 gMonShinyPalette_Shuppet[];
+extern const u8 gMonIcon_Shuppet[];
+extern const u8 gMonFootprint_Shuppet[];
+extern const u8 gMonFrontPic_Banette[];
+extern const u8 gMonPalette_Banette[];
+extern const u8 gMonBackPic_Banette[];
+extern const u8 gMonShinyPalette_Banette[];
+extern const u8 gMonIcon_Banette[];
+extern const u8 gMonFootprint_Banette[];
+extern const u8 gMonFrontPic_Seviper[];
+extern const u8 gMonPalette_Seviper[];
+extern const u8 gMonBackPic_Seviper[];
+extern const u8 gMonShinyPalette_Seviper[];
+extern const u8 gMonIcon_Seviper[];
+extern const u8 gMonFootprint_Seviper[];
+extern const u8 gMonFrontPic_Zangoose[];
+extern const u8 gMonPalette_Zangoose[];
+extern const u8 gMonBackPic_Zangoose[];
+extern const u8 gMonShinyPalette_Zangoose[];
+extern const u8 gMonIcon_Zangoose[];
+extern const u8 gMonFootprint_Zangoose[];
+extern const u8 gMonFrontPic_Relicanth[];
+extern const u8 gMonPalette_Relicanth[];
+extern const u8 gMonBackPic_Relicanth[];
+extern const u8 gMonShinyPalette_Relicanth[];
+extern const u8 gMonIcon_Relicanth[];
+extern const u8 gMonFootprint_Relicanth[];
+extern const u8 gMonFrontPic_Aron[];
+extern const u8 gMonPalette_Aron[];
+extern const u8 gMonBackPic_Aron[];
+extern const u8 gMonShinyPalette_Aron[];
+extern const u8 gMonIcon_Aron[];
+extern const u8 gMonFootprint_Aron[];
+extern const u8 gMonFrontPic_Lairon[];
+extern const u8 gMonPalette_Lairon[];
+extern const u8 gMonBackPic_Lairon[];
+extern const u8 gMonShinyPalette_Lairon[];
+extern const u8 gMonIcon_Lairon[];
+extern const u8 gMonFootprint_Lairon[];
+extern const u8 gMonFrontPic_Aggron[];
+extern const u8 gMonPalette_Aggron[];
+extern const u8 gMonBackPic_Aggron[];
+extern const u8 gMonShinyPalette_Aggron[];
+extern const u8 gMonIcon_Aggron[];
+extern const u8 gMonFootprint_Aggron[];
+extern const u8 gMonFrontPic_Castform[];
+extern const u8 gMonPalette_Castform[];
+extern const u8 gMonBackPic_Castform[];
+extern const u8 gMonShinyPalette_Castform[];
+extern const u8 gMonIcon_Castform[];
+extern const u8 gMonFootprint_Castform[];
+extern const u8 gMonFrontPic_Volbeat[];
+extern const u8 gMonPalette_Volbeat[];
+extern const u8 gMonBackPic_Volbeat[];
+extern const u8 gMonShinyPalette_Volbeat[];
+extern const u8 gMonIcon_Volbeat[];
+extern const u8 gMonFootprint_Volbeat[];
+extern const u8 gMonFrontPic_Illumise[];
+extern const u8 gMonPalette_Illumise[];
+extern const u8 gMonBackPic_Illumise[];
+extern const u8 gMonShinyPalette_Illumise[];
+extern const u8 gMonIcon_Illumise[];
+extern const u8 gMonFootprint_Illumise[];
+extern const u8 gMonFrontPic_Lileep[];
+extern const u8 gMonPalette_Lileep[];
+extern const u8 gMonBackPic_Lileep[];
+extern const u8 gMonShinyPalette_Lileep[];
+extern const u8 gMonIcon_Lileep[];
+extern const u8 gMonFootprint_Lileep[];
+extern const u8 gMonFrontPic_Cradily[];
+extern const u8 gMonPalette_Cradily[];
+extern const u8 gMonBackPic_Cradily[];
+extern const u8 gMonShinyPalette_Cradily[];
+extern const u8 gMonIcon_Cradily[];
+extern const u8 gMonFootprint_Cradily[];
+extern const u8 gMonFrontPic_Anorith[];
+extern const u8 gMonPalette_Anorith[];
+extern const u8 gMonBackPic_Anorith[];
+extern const u8 gMonShinyPalette_Anorith[];
+extern const u8 gMonIcon_Anorith[];
+extern const u8 gMonFootprint_Anorith[];
+extern const u8 gMonFrontPic_Armaldo[];
+extern const u8 gMonPalette_Armaldo[];
+extern const u8 gMonBackPic_Armaldo[];
+extern const u8 gMonShinyPalette_Armaldo[];
+extern const u8 gMonIcon_Armaldo[];
+extern const u8 gMonFootprint_Armaldo[];
+extern const u8 gMonFrontPic_Ralts[];
+extern const u8 gMonPalette_Ralts[];
+extern const u8 gMonBackPic_Ralts[];
+extern const u8 gMonShinyPalette_Ralts[];
+extern const u8 gMonIcon_Ralts[];
+extern const u8 gMonFootprint_Ralts[];
+extern const u8 gMonFrontPic_Kirlia[];
+extern const u8 gMonPalette_Kirlia[];
+extern const u8 gMonBackPic_Kirlia[];
+extern const u8 gMonShinyPalette_Kirlia[];
+extern const u8 gMonIcon_Kirlia[];
+extern const u8 gMonFootprint_Kirlia[];
+extern const u8 gMonFrontPic_Gardevoir[];
+extern const u8 gMonPalette_Gardevoir[];
+extern const u8 gMonBackPic_Gardevoir[];
+extern const u8 gMonShinyPalette_Gardevoir[];
+extern const u8 gMonIcon_Gardevoir[];
+extern const u8 gMonFootprint_Gardevoir[];
+extern const u8 gMonFrontPic_Bagon[];
+extern const u8 gMonPalette_Bagon[];
+extern const u8 gMonBackPic_Bagon[];
+extern const u8 gMonShinyPalette_Bagon[];
+extern const u8 gMonIcon_Bagon[];
+extern const u8 gMonFootprint_Bagon[];
+extern const u8 gMonFrontPic_Shelgon[];
+extern const u8 gMonPalette_Shelgon[];
+extern const u8 gMonBackPic_Shelgon[];
+extern const u8 gMonShinyPalette_Shelgon[];
+extern const u8 gMonIcon_Shelgon[];
+extern const u8 gMonFootprint_Shelgon[];
+extern const u8 gMonFrontPic_Salamence[];
+extern const u8 gMonPalette_Salamence[];
+extern const u8 gMonBackPic_Salamence[];
+extern const u8 gMonShinyPalette_Salamence[];
+extern const u8 gMonIcon_Salamence[];
+extern const u8 gMonFootprint_Salamence[];
+extern const u8 gMonFrontPic_Beldum[];
+extern const u8 gMonPalette_Beldum[];
+extern const u8 gMonBackPic_Beldum[];
+extern const u8 gMonShinyPalette_Beldum[];
+extern const u8 gMonIcon_Beldum[];
+extern const u8 gMonFootprint_Beldum[];
+extern const u8 gMonFrontPic_Metang[];
+extern const u8 gMonPalette_Metang[];
+extern const u8 gMonBackPic_Metang[];
+extern const u8 gMonShinyPalette_Metang[];
+extern const u8 gMonIcon_Metang[];
+extern const u8 gMonFootprint_Metang[];
+extern const u8 gMonFrontPic_Metagross[];
+extern const u8 gMonPalette_Metagross[];
+extern const u8 gMonBackPic_Metagross[];
+extern const u8 gMonShinyPalette_Metagross[];
+extern const u8 gMonIcon_Metagross[];
+extern const u8 gMonFootprint_Metagross[];
+extern const u8 gMonFrontPic_Regirock[];
+extern const u8 gMonPalette_Regirock[];
+extern const u8 gMonBackPic_Regirock[];
+extern const u8 gMonShinyPalette_Regirock[];
+extern const u8 gMonIcon_Regirock[];
+extern const u8 gMonFootprint_Regirock[];
+extern const u8 gMonFrontPic_Regice[];
+extern const u8 gMonPalette_Regice[];
+extern const u8 gMonBackPic_Regice[];
+extern const u8 gMonShinyPalette_Regice[];
+extern const u8 gMonIcon_Regice[];
+extern const u8 gMonFootprint_Regice[];
+extern const u8 gMonFrontPic_Registeel[];
+extern const u8 gMonPalette_Registeel[];
+extern const u8 gMonBackPic_Registeel[];
+extern const u8 gMonShinyPalette_Registeel[];
+extern const u8 gMonIcon_Registeel[];
+extern const u8 gMonFootprint_Registeel[];
+extern const u8 gMonFrontPic_Kyogre[];
+extern const u8 gMonPalette_Kyogre[];
+extern const u8 gMonBackPic_Kyogre[];
+extern const u8 gMonShinyPalette_Kyogre[];
+extern const u8 gMonIcon_Kyogre[];
+extern const u8 gMonFootprint_Kyogre[];
+extern const u8 gMonFrontPic_Groudon[];
+extern const u8 gMonPalette_Groudon[];
+extern const u8 gMonBackPic_Groudon[];
+extern const u8 gMonShinyPalette_Groudon[];
+extern const u8 gMonIcon_Groudon[];
+extern const u8 gMonFootprint_Groudon[];
+extern const u8 gMonFrontPic_Rayquaza[];
+extern const u8 gMonPalette_Rayquaza[];
+extern const u8 gMonBackPic_Rayquaza[];
+extern const u8 gMonShinyPalette_Rayquaza[];
+extern const u8 gMonIcon_Rayquaza[];
+extern const u8 gMonFootprint_Rayquaza[];
+extern const u8 gMonFrontPic_Latias[];
+extern const u8 gMonPalette_Latias[];
+extern const u8 gMonBackPic_Latias[];
+extern const u8 gMonShinyPalette_Latias[];
+extern const u8 gMonIcon_Latias[];
+extern const u8 gMonFootprint_Latias[];
+extern const u8 gMonFrontPic_Latios[];
+extern const u8 gMonPalette_Latios[];
+extern const u8 gMonBackPic_Latios[];
+extern const u8 gMonShinyPalette_Latios[];
+extern const u8 gMonIcon_Latios[];
+extern const u8 gMonFootprint_Latios[];
+extern const u8 gMonFrontPic_Jirachi[];
+extern const u8 gMonPalette_Jirachi[];
+extern const u8 gMonBackPic_Jirachi[];
+extern const u8 gMonShinyPalette_Jirachi[];
+extern const u8 gMonIcon_Jirachi[];
+extern const u8 gMonFootprint_Jirachi[];
+extern const u8 gMonFrontPic_Deoxys[];
+extern const u8 gMonPalette_Deoxys[];
+extern const u8 gMonBackPic_Deoxys[];
+extern const u8 gMonShinyPalette_Deoxys[];
+extern const u8 gMonIcon_Deoxys[];
+extern const u8 gMonFootprint_Deoxys[];
+extern const u8 gMonFrontPic_Chimecho[];
+extern const u8 gMonPalette_Chimecho[];
+extern const u8 gMonBackPic_Chimecho[];
+extern const u8 gMonShinyPalette_Chimecho[];
+extern const u8 gMonIcon_Chimecho[];
+extern const u8 gMonFootprint_Chimecho[];
+extern const u8 gMonPic_Egg[];
+extern const u8 gMonPalette_Egg[];
+extern const u8 gMonFrontPic_UnownB[];
+extern const u8 gMonBackPic_UnownB[];
+extern const u8 gMonIcon_UnownB[];
+extern const u8 gMonFrontPic_UnownC[];
+extern const u8 gMonBackPic_UnownC[];
+extern const u8 gMonIcon_UnownC[];
+extern const u8 gMonFrontPic_UnownD[];
+extern const u8 gMonBackPic_UnownD[];
+extern const u8 gMonIcon_UnownD[];
+extern const u8 gMonFrontPic_UnownE[];
+extern const u8 gMonBackPic_UnownE[];
+extern const u8 gMonIcon_UnownE[];
+extern const u8 gMonFrontPic_UnownF[];
+extern const u8 gMonBackPic_UnownF[];
+extern const u8 gMonIcon_UnownF[];
+extern const u8 gMonFrontPic_UnownG[];
+extern const u8 gMonBackPic_UnownG[];
+extern const u8 gMonIcon_UnownG[];
+extern const u8 gMonFrontPic_UnownH[];
+extern const u8 gMonBackPic_UnownH[];
+extern const u8 gMonIcon_UnownH[];
+extern const u8 gMonFrontPic_UnownI[];
+extern const u8 gMonBackPic_UnownI[];
+extern const u8 gMonIcon_UnownI[];
+extern const u8 gMonFrontPic_UnownJ[];
+extern const u8 gMonBackPic_UnownJ[];
+extern const u8 gMonIcon_UnownJ[];
+extern const u8 gMonFrontPic_UnownK[];
+extern const u8 gMonBackPic_UnownK[];
+extern const u8 gMonIcon_UnownK[];
+extern const u8 gMonFrontPic_UnownL[];
+extern const u8 gMonBackPic_UnownL[];
+extern const u8 gMonIcon_UnownL[];
+extern const u8 gMonFrontPic_UnownM[];
+extern const u8 gMonBackPic_UnownM[];
+extern const u8 gMonIcon_UnownM[];
+extern const u8 gMonFrontPic_UnownN[];
+extern const u8 gMonBackPic_UnownN[];
+extern const u8 gMonIcon_UnownN[];
+extern const u8 gMonFrontPic_UnownO[];
+extern const u8 gMonBackPic_UnownO[];
+extern const u8 gMonIcon_UnownO[];
+extern const u8 gMonFrontPic_UnownP[];
+extern const u8 gMonBackPic_UnownP[];
+extern const u8 gMonIcon_UnownP[];
+extern const u8 gMonFrontPic_UnownQ[];
+extern const u8 gMonBackPic_UnownQ[];
+extern const u8 gMonIcon_UnownQ[];
+extern const u8 gMonFrontPic_UnownR[];
+extern const u8 gMonBackPic_UnownR[];
+extern const u8 gMonIcon_UnownR[];
+extern const u8 gMonFrontPic_UnownS[];
+extern const u8 gMonBackPic_UnownS[];
+extern const u8 gMonIcon_UnownS[];
+extern const u8 gMonFrontPic_UnownT[];
+extern const u8 gMonBackPic_UnownT[];
+extern const u8 gMonIcon_UnownT[];
+extern const u8 gMonFrontPic_UnownU[];
+extern const u8 gMonBackPic_UnownU[];
+extern const u8 gMonIcon_UnownU[];
+extern const u8 gMonFrontPic_UnownV[];
+extern const u8 gMonBackPic_UnownV[];
+extern const u8 gMonIcon_UnownV[];
+extern const u8 gMonFrontPic_UnownW[];
+extern const u8 gMonBackPic_UnownW[];
+extern const u8 gMonIcon_UnownW[];
+extern const u8 gMonFrontPic_UnownX[];
+extern const u8 gMonBackPic_UnownX[];
+extern const u8 gMonIcon_UnownX[];
+extern const u8 gMonFrontPic_UnownY[];
+extern const u8 gMonBackPic_UnownY[];
+extern const u8 gMonIcon_UnownY[];
+extern const u8 gMonFrontPic_UnownZ[];
+extern const u8 gMonBackPic_UnownZ[];
+extern const u8 gMonIcon_UnownZ[];
+extern const u8 gMonFrontPic_UnownExclamationMark[];
+extern const u8 gMonBackPic_UnownExclamationMark[];
+extern const u8 gMonIcon_UnownExclamationMark[];
+extern const u8 gMonFrontPic_UnownQuestionMark[];
+extern const u8 gMonBackPic_UnownQuestionMark[];
+extern const u8 gMonIcon_UnownQuestionMark[];
+
+#endif // GUARD_GRAPHICS_H
diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h
new file mode 100644
index 000000000..62e84c39e
--- /dev/null
+++ b/include/hall_of_fame.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_HALL_OF_FAME_H
+#define GUARD_HALL_OF_FAME_H
+
+void sub_8141F90(void);
+void sub_8143648(u16 paletteTag, u8 arg1);
+void sub_81428CC(void);
+void sub_8143680(int, u8);
+
+#endif // GUARD_HALL_OF_FAME_H
diff --git a/include/heal_location.h b/include/heal_location.h
index 785918bd6..94dac2417 100644
--- a/include/heal_location.h
+++ b/include/heal_location.h
@@ -5,10 +5,10 @@
struct HealLocation
{
- s8 group;
- s8 map;
- u16 x;
- u16 y;
+ s8 group;
+ s8 map;
+ u16 x;
+ u16 y;
};
u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum);
diff --git a/include/hold_effects.h b/include/hold_effects.h
new file mode 100644
index 000000000..b653f5a92
--- /dev/null
+++ b/include/hold_effects.h
@@ -0,0 +1,72 @@
+#ifndef GUARD_HOLD_EFFECTS_H
+#define GUARD_HOLD_EFFECTS_H
+
+#define HOLD_EFFECT_NONE 0
+#define HOLD_EFFECT_RESTORE_HP 1
+#define HOLD_EFFECT_CURE_PAR 2
+#define HOLD_EFFECT_CURE_SLP 3
+#define HOLD_EFFECT_CURE_PSN 4
+#define HOLD_EFFECT_CURE_BRN 5
+#define HOLD_EFFECT_CURE_FRZ 6
+#define HOLD_EFFECT_RESTORE_PP 7
+#define HOLD_EFFECT_CURE_CONFUSION 8
+#define HOLD_EFFECT_CURE_STATUS 9
+#define HOLD_EFFECT_CONFUSE_SPICY 10
+#define HOLD_EFFECT_CONFUSE_DRY 11
+#define HOLD_EFFECT_CONFUSE_SWEET 12
+#define HOLD_EFFECT_CONFUSE_BITTER 13
+#define HOLD_EFFECT_CONFUSE_SOUR 14
+#define HOLD_EFFECT_ATTACK_UP 15
+#define HOLD_EFFECT_DEFENSE_UP 16
+#define HOLD_EFFECT_SPEED_UP 17
+#define HOLD_EFFECT_SP_ATTACK_UP 18
+#define HOLD_EFFECT_SP_DEFENSE_UP 19
+#define HOLD_EFFECT_CRITICAL_UP 20
+#define HOLD_EFFECT_RANDOM_STAT_UP 21
+#define HOLD_EFFECT_EVASION_UP 22
+#define HOLD_EFFECT_RESTORE_STATS 23
+#define HOLD_EFFECT_MACHO_BRACE 24
+#define HOLD_EFFECT_EXP_SHARE 25
+#define HOLD_EFFECT_QUICK_CLAW 26
+#define HOLD_EFFECT_HAPPINESS_UP 27
+#define HOLD_EFFECT_CURE_ATTRACT 28
+#define HOLD_EFFECT_CHOICE_BAND 29
+#define HOLD_EFFECT_FLINCH 30
+#define HOLD_EFFECT_BUG_POWER 31
+#define HOLD_EFFECT_DOUBLE_PRIZE 32
+#define HOLD_EFFECT_REPEL 33
+#define HOLD_EFFECT_SOUL_DEW 34
+#define HOLD_EFFECT_DEEP_SEA_TOOTH 35
+#define HOLD_EFFECT_DEEP_SEA_SCALE 36
+#define HOLD_EFFECT_CAN_ALWAYS_RUN 37
+#define HOLD_EFFECT_PREVENT_EVOLVE 38
+#define HOLD_EFFECT_FOCUS_BAND 39
+#define HOLD_EFFECT_LUCKY_EGG 40
+#define HOLD_EFFECT_SCOPE_LENS 41
+#define HOLD_EFFECT_STEEL_POWER 42
+#define HOLD_EFFECT_LEFTOVERS 43
+#define HOLD_EFFECT_DRAGON_SCALE 44
+#define HOLD_EFFECT_LIGHT_BALL 45
+#define HOLD_EFFECT_GROUND_POWER 46
+#define HOLD_EFFECT_ROCK_POWER 47
+#define HOLD_EFFECT_GRASS_POWER 48
+#define HOLD_EFFECT_DARK_POWER 49
+#define HOLD_EFFECT_FIGHTING_POWER 50
+#define HOLD_EFFECT_ELECTRIC_POWER 51
+#define HOLD_EFFECT_WATER_POWER 52
+#define HOLD_EFFECT_FLYING_POWER 53
+#define HOLD_EFFECT_POISON_POWER 54
+#define HOLD_EFFECT_ICE_POWER 55
+#define HOLD_EFFECT_GHOST_POWER 56
+#define HOLD_EFFECT_PSYCHIC_POWER 57
+#define HOLD_EFFECT_FIRE_POWER 58
+#define HOLD_EFFECT_DRAGON_POWER 59
+#define HOLD_EFFECT_NORMAL_POWER 60
+#define HOLD_EFFECT_UP_GRADE 61
+#define HOLD_EFFECT_SHELL_BELL 62
+#define HOLD_EFFECT_LUCKY_PUNCH 63
+#define HOLD_EFFECT_METAL_POWDER 64
+#define HOLD_EFFECT_THICK_CLUB 65
+#define HOLD_EFFECT_STICK 66
+
+#endif // GUARD_HOLD_EFFECTS_H
diff --git a/include/intro.h b/include/intro.h
index a859a9ce4..6d4d2daf3 100644
--- a/include/intro.h
+++ b/include/intro.h
@@ -1,7 +1,8 @@
#ifndef GUARD_INTRO_H
#define GUARD_INTRO_H
-void c2_copyright_1(void);
-void CB2_InitCopyrightScreen(void);
+void CB2_InitCopyrightScreenAfterBootup(void);
+void CB2_InitCopyrightScreenAfterTitleScreen(void);
+void sub_813CE30(u16, u16, u16, u16);
#endif // GUARD_INTRO_H
diff --git a/include/intro_credits_graphics.h b/include/intro_credits_graphics.h
new file mode 100644
index 000000000..5abb2381b
--- /dev/null
+++ b/include/intro_credits_graphics.h
@@ -0,0 +1,24 @@
+#ifndef GUARD_INTRO_CREDITS_GRAPHICS_H
+#define GUARD_INTRO_CREDITS_GRAPHICS_H
+
+extern const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet;
+extern const struct CompressedSpriteSheet gIntro2MaySpriteSheet;
+extern const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet;
+extern const struct CompressedSpriteSheet gIntro2LatiosSpriteSheet;
+extern const struct CompressedSpriteSheet gIntro2LatiasSpriteSheet;
+extern const struct SpritePalette gIntro2SpritePalettes[];
+extern const struct CompressedSpriteSheet gUnknown_08416E24;
+extern const struct CompressedSpriteSheet gUnknown_08416E34;
+
+void load_intro_part2_graphics(/*TODO: arg types*/);
+void sub_8148C78(/*TODO: arg types*/);
+void sub_8148CB0(u8);
+void sub_8148E90(u8);
+u8 sub_8148EC0(/*TODO: arg types*/);
+void sub_8149020(/*TODO: arg types*/);
+u8 intro_create_brendan_sprite(/*TODO: arg types*/);
+u8 intro_create_may_sprite(/*TODO: arg types*/);
+u8 intro_create_latios_sprite(/*TODO: arg types*/);
+u8 intro_create_latias_sprite(/*TODO: arg types*/);
+
+#endif // GUARD_INTRO_CREDITS_GRAPHICS_H
diff --git a/include/item.h b/include/item.h
index cc917dbc8..47af11940 100644
--- a/include/item.h
+++ b/include/item.h
@@ -1,8 +1,27 @@
#ifndef GUARD_ITEM_H
#define GUARD_ITEM_H
+
typedef void (*ItemUseFunc)(u8);
+struct Item
+{
+ u8 name[14];
+ u16 itemId;
+ u16 price;
+ u8 holdEffect;
+ u8 holdEffectParam;
+ u8 *description;
+ u8 importance;
+ u8 unk19;
+ u8 pocket;
+ u8 type;
+ ItemUseFunc fieldUseFunc;
+ u8 battleUsage;
+ ItemUseFunc battleUseFunc;
+ u8 secondaryId;
+};
+
void CopyItemName(u16 itemId, u8 *string);
bool8 IsBagPocketNonEmpty(u8 pocket);
bool8 CheckBagHasItem(u16 itemId, u16 count);
diff --git a/include/item_menu.h b/include/item_menu.h
new file mode 100644
index 000000000..301836ac8
--- /dev/null
+++ b/include/item_menu.h
@@ -0,0 +1,29 @@
+#ifndef GUARD_ITEM_MENU_H
+#define GUARD_ITEM_MENU_H
+
+#include "string_util.h"
+
+void sub_80A3684(void);
+void ClearBag(void);
+void sub_80A3E0C(void);
+void sub_80A3FA0(u16 *, u32, u32, u32, u32, u32);
+void sub_80A4164(u8 *, u16, enum StringConvertMode, u8);
+void sub_80A418C(u16, enum StringConvertMode, int, int, int);
+void sub_80A53F8(void);
+void HandleItemMenuPaletteFade(u8);
+void sub_80A5B40(void);
+void CleanUpItemMenuMessage(u8);
+void CleanUpOverworldMessage(u8);
+void ExecuteItemUseFromBlackPalette(void);
+void sub_80A5D04(void);
+void sub_80A6300(void);
+void sub_80A68CC();
+void sub_80A6A30(void);
+int sub_80A6D1C(void);
+void sub_80A6DCC(void);
+void sub_80A7094(u8);
+u8 sub_80A7D8C(u8 berry, int i, int i1);
+void sub_80A7DD4(void);
+u8 sub_80A7E5C(u8);
+
+#endif // GUARD_ITEM_MENU_H
diff --git a/include/item_use.h b/include/item_use.h
new file mode 100644
index 000000000..b35389ee8
--- /dev/null
+++ b/include/item_use.h
@@ -0,0 +1,28 @@
+#ifndef GUARD_ITEM_USE_H
+#define GUARD_ITEM_USE_H
+
+void ItemUseOnFieldCB_Bike(u8);
+void ItemUseOnFieldCB_Rod(u8);
+void ItemUseOnFieldCB_Itemfinder(u8);
+void RunItemfinderResults(u8);
+void ExitItemfinder(u8);
+bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, u8 taskId);
+void sub_80C9720(u8);
+void sub_80C9838(u8, s16, s16);
+u8 GetPlayerDirectionTowardsHiddenItem(s16, s16);
+void SetPlayerDirectionTowardsItem(u8);
+void DisplayItemRespondingMessageAndExitItemfinder(u8);
+void RotatePlayerAndExitItemfinder(u8);
+void sub_80C9D00(u8);
+void sub_80C9D74(u8);
+void ItemUseOutOfBattle_TMHM(u8);
+void sub_80C9EE4(u8);
+void sub_80C9F10(u8);
+void sub_80C9F80(u8);
+void sub_80C9FC0(u8);
+void task08_080A1C44(u8);
+u8 sub_80CA1C8(void);
+void ItemUseOutOfBattle_EvolutionStone(u8);
+void ItemUseOutOfBattle_CannotUse(u8);
+
+#endif // GUARD_ITEM_USE_H
diff --git a/include/items.h b/include/items.h
new file mode 100644
index 000000000..f3c506b43
--- /dev/null
+++ b/include/items.h
@@ -0,0 +1,388 @@
+#ifndef GUARD_ITEMS_H
+#define GUARD_ITEMS_H
+
+enum {
+ ITEM_NONE, // 0x000
+ ITEM_MASTER_BALL, // 0x001
+ ITEM_ULTRA_BALL, // 0x002
+ ITEM_GREAT_BALL, // 0x003
+ ITEM_POKE_BALL, // 0x004
+ ITEM_SAFARI_BALL, // 0x005
+ ITEM_NET_BALL, // 0x006
+ ITEM_DIVE_BALL, // 0x007
+ ITEM_NEST_BALL, // 0x008
+ ITEM_REPEAT_BALL, // 0x009
+ ITEM_TIMER_BALL, // 0x00a
+ ITEM_LUXURY_BALL, // 0x00b
+ ITEM_PREMIER_BALL, // 0x00c
+ ITEM_POTION, // 0x00d
+ ITEM_ANTIDOTE, // 0x00e
+ ITEM_BURN_HEAL, // 0x00f
+ ITEM_ICE_HEAL, // 0x010
+ ITEM_AWAKENING, // 0x011
+ ITEM_PARALYZE_HEAL, // 0x012
+ ITEM_FULL_RESTORE, // 0x013
+ ITEM_MAX_POTION, // 0x014
+ ITEM_HYPER_POTION, // 0x015
+ ITEM_SUPER_POTION, // 0x016
+ ITEM_FULL_HEAL, // 0x017
+ ITEM_REVIVE, // 0x018
+ ITEM_MAX_REVIVE, // 0x019
+ ITEM_FRESH_WATER, // 0x01a
+ ITEM_SODA_POP, // 0x01b
+ ITEM_LEMONADE, // 0x01c
+ ITEM_MOOMOO_MILK, // 0x01d
+ ITEM_ENERGY_POWDER, // 0x01e
+ ITEM_ENERGY_ROOT, // 0x01f
+ ITEM_HEAL_POWDER, // 0x020
+ ITEM_REVIVAL_HERB, // 0x021
+ ITEM_ETHER, // 0x022
+ ITEM_MAX_ETHER, // 0x023
+ ITEM_ELIXIR, // 0x024
+ ITEM_MAX_ELIXIR, // 0x025
+ ITEM_LAVA_COOKIE, // 0x026
+ ITEM_BLUE_FLUTE, // 0x027
+ ITEM_YELLOW_FLUTE, // 0x028
+ ITEM_RED_FLUTE, // 0x029
+ ITEM_BLACK_FLUTE, // 0x02a
+ ITEM_WHITE_FLUTE, // 0x02b
+ ITEM_BERRY_JUICE, // 0x02c
+ ITEM_SACRED_ASH, // 0x02d
+ ITEM_SHOAL_SALT, // 0x02e
+ ITEM_SHOAL_SHELL, // 0x02f
+ ITEM_RED_SHARD, // 0x030
+ ITEM_BLUE_SHARD, // 0x031
+ ITEM_YELLOW_SHARD, // 0x032
+ ITEM_GREEN_SHARD, // 0x033
+ ITEM_034,
+ ITEM_035,
+ ITEM_036,
+ ITEM_037,
+ ITEM_038,
+ ITEM_039,
+ ITEM_03A,
+ ITEM_03B,
+ ITEM_03C,
+ ITEM_03D,
+ ITEM_03E,
+ ITEM_HP_UP, // 0x03f
+ ITEM_PROTEIN, // 0x040
+ ITEM_IRON, // 0x041
+ ITEM_CARBOS, // 0x042
+ ITEM_CALCIUM, // 0x043
+ ITEM_RARE_CANDY, // 0x044
+ ITEM_PP_UP, // 0x045
+ ITEM_ZINC, // 0x046
+ ITEM_PP_MAX, // 0x047
+ ITEM_048,
+ ITEM_GUARD_SPEC, // 0x049
+ ITEM_DIRE_HIT, // 0x04a
+ ITEM_X_ATTACK, // 0x04b
+ ITEM_X_DEFEND, // 0x04c
+ ITEM_X_SPEED, // 0x04d
+ ITEM_X_ACCURACY, // 0x04e
+ ITEM_X_SPECIAL, // 0x04f
+ ITEM_POKE_DOLL, // 0x050
+ ITEM_FLUFFY_TAIL, // 0x051
+ ITEM_052,
+ ITEM_SUPER_REPEL, // 0x053
+ ITEM_MAX_REPEL, // 0x054
+ ITEM_ESCAPE_ROPE, // 0x055
+ ITEM_REPEL, // 0x056
+ ITEM_057,
+ ITEM_058,
+ ITEM_059,
+ ITEM_05A,
+ ITEM_05B,
+ ITEM_05C,
+ ITEM_SUN_STONE, // 0x05d
+ ITEM_MOON_STONE, // 0x05e
+ ITEM_FIRE_STONE, // 0x05f
+ ITEM_THUNDER_STONE, // 0x060
+ ITEM_WATER_STONE, // 0x061
+ ITEM_LEAF_STONE, // 0x062
+ ITEM_063,
+ ITEM_064,
+ ITEM_065,
+ ITEM_066,
+ ITEM_TINY_MUSHROOM, // 0x067
+ ITEM_BIG_MUSHROOM, // 0x068
+ ITEM_069,
+ ITEM_PEARL, // 0x06a
+ ITEM_BIG_PEARL, // 0x06b
+ ITEM_STARDUST, // 0x06c
+ ITEM_STAR_PIECE, // 0x06d
+ ITEM_NUGGET, // 0x06e
+ ITEM_HEART_SCALE, // 0x06f
+ ITEM_070,
+ ITEM_071,
+ ITEM_072,
+ ITEM_073,
+ ITEM_074,
+ ITEM_075,
+ ITEM_076,
+ ITEM_077,
+ ITEM_078,
+ ITEM_ORANGE_MAIL, // 0x079
+ ITEM_HARBOR_MAIL, // 0x07a
+ ITEM_GLITTER_MAIL, // 0x07b
+ ITEM_MECH_MAIL, // 0x07c
+ ITEM_WOOD_MAIL, // 0x07d
+ ITEM_WAVE_MAIL, // 0x07e
+ ITEM_BEAD_MAIL, // 0x07f
+ ITEM_SHADOW_MAIL, // 0x080
+ ITEM_TROPIC_MAIL, // 0x081
+ ITEM_DREAM_MAIL, // 0x082
+ ITEM_FAB_MAIL, // 0x083
+ ITEM_RETRO_MAIL, // 0x084
+ ITEM_CHERI_BERRY, // 0x085
+ ITEM_CHESTO_BERRY, // 0x086
+ ITEM_PECHA_BERRY, // 0x087
+ ITEM_RAWST_BERRY, // 0x088
+ ITEM_ASPEAR_BERRY, // 0x089
+ ITEM_LEPPA_BERRY, // 0x08a
+ ITEM_ORAN_BERRY, // 0x08b
+ ITEM_PERSIM_BERRY, // 0x08c
+ ITEM_LUM_BERRY, // 0x08d
+ ITEM_SITRUS_BERRY, // 0x08e
+ ITEM_FIGY_BERRY, // 0x08f
+ ITEM_WIKI_BERRY, // 0x090
+ ITEM_MAGO_BERRY, // 0x091
+ ITEM_AGUAV_BERRY, // 0x092
+ ITEM_IAPAPA_BERRY, // 0x093
+ ITEM_RAZZ_BERRY, // 0x094
+ ITEM_BLUK_BERRY, // 0x095
+ ITEM_NANAB_BERRY, // 0x096
+ ITEM_WEPEAR_BERRY, // 0x097
+ ITEM_PINAP_BERRY, // 0x098
+ ITEM_POMEG_BERRY, // 0x099
+ ITEM_KELPSY_BERRY, // 0x09a
+ ITEM_QUALOT_BERRY, // 0x09b
+ ITEM_HONDEW_BERRY, // 0x09c
+ ITEM_GREPA_BERRY, // 0x09d
+ ITEM_TAMATO_BERRY, // 0x09e
+ ITEM_CORNN_BERRY, // 0x09f
+ ITEM_MAGOST_BERRY, // 0x0a0
+ ITEM_RABUTA_BERRY, // 0x0a1
+ ITEM_NOMEL_BERRY, // 0x0a2
+ ITEM_SPELON_BERRY, // 0x0a3
+ ITEM_PAMTRE_BERRY, // 0x0a4
+ ITEM_WATMEL_BERRY, // 0x0a5
+ ITEM_DURIN_BERRY, // 0x0a6
+ ITEM_BELUE_BERRY, // 0x0a7
+ ITEM_LIECHI_BERRY, // 0x0a8
+ ITEM_GANLON_BERRY, // 0x0a9
+ ITEM_SALAC_BERRY, // 0x0aa
+ ITEM_PETAYA_BERRY, // 0x0ab
+ ITEM_APICOT_BERRY, // 0x0ac
+ ITEM_LANSAT_BERRY, // 0x0ad
+ ITEM_STARF_BERRY, // 0x0ae
+ ITEM_ENIGMA_BERRY, // 0x0af
+ ITEM_0B0,
+ ITEM_0B1,
+ ITEM_0B2,
+ ITEM_BRIGHT_POWDER, // 0x0b3
+ ITEM_WHITE_HERB, // 0x0b4
+ ITEM_MACHO_BRACE, // 0x0b5
+ ITEM_EXP_SHARE, // 0x0b6
+ ITEM_QUICK_CLAW, // 0x0b7
+ ITEM_SOOTHE_BELL, // 0x0b8
+ ITEM_MENTAL_HERB, // 0x0b9
+ ITEM_CHOICE_BAND, // 0x0ba
+ ITEM_KINGS_ROCK, // 0x0bb
+ ITEM_SILVER_POWDER, // 0x0bc
+ ITEM_AMULET_COIN, // 0x0bd
+ ITEM_CLEANSE_TAG, // 0x0be
+ ITEM_SOUL_DEW, // 0x0bf
+ ITEM_DEEP_SEA_TOOTH, // 0x0c0
+ ITEM_DEEP_SEA_SCALE, // 0x0c1
+ ITEM_SMOKE_BALL, // 0x0c2
+ ITEM_EVERSTONE, // 0x0c3
+ ITEM_FOCUS_BAND, // 0x0c4
+ ITEM_LUCKY_EGG, // 0x0c5
+ ITEM_SCOPE_LENS, // 0x0c6
+ ITEM_METAL_COAT, // 0x0c7
+ ITEM_LEFTOVERS, // 0x0c8
+ ITEM_DRAGON_SCALE, // 0x0c9
+ ITEM_LIGHT_BALL, // 0x0ca
+ ITEM_SOFT_SAND, // 0x0cb
+ ITEM_HARD_STONE, // 0x0cc
+ ITEM_MIRACLE_SEED, // 0x0cd
+ ITEM_BLACK_GLASSES, // 0x0ce
+ ITEM_BLACK_BELT, // 0x0cf
+ ITEM_MAGNET, // 0x0d0
+ ITEM_MYSTIC_WATER, // 0x0d1
+ ITEM_SHARP_BEAK, // 0x0d2
+ ITEM_POISON_BARB, // 0x0d3
+ ITEM_NEVER_MELT_ICE, // 0x0d4
+ ITEM_SPELL_TAG, // 0x0d5
+ ITEM_TWISTED_SPOON, // 0x0d6
+ ITEM_CHARCOAL, // 0x0d7
+ ITEM_DRAGON_FANG, // 0x0d8
+ ITEM_SILK_SCARF, // 0x0d9
+ ITEM_UP_GRADE, // 0x0da
+ ITEM_SHELL_BELL, // 0x0db
+ ITEM_SEA_INCENSE, // 0x0dc
+ ITEM_LAX_INCENSE, // 0x0dd
+ ITEM_LUCKY_PUNCH, // 0x0de
+ ITEM_METAL_POWDER, // 0x0df
+ ITEM_THICK_CLUB, // 0x0e0
+ ITEM_STICK, // 0x0e1
+ ITEM_0E2,
+ ITEM_0E3,
+ ITEM_0E4,
+ ITEM_0E5,
+ ITEM_0E6,
+ ITEM_0E7,
+ ITEM_0E8,
+ ITEM_0E9,
+ ITEM_0EA,
+ ITEM_0EB,
+ ITEM_0EC,
+ ITEM_0ED,
+ ITEM_0EE,
+ ITEM_0EF,
+ ITEM_0F0,
+ ITEM_0F1,
+ ITEM_0F2,
+ ITEM_0F3,
+ ITEM_0F4,
+ ITEM_0F5,
+ ITEM_0F6,
+ ITEM_0F7,
+ ITEM_0F8,
+ ITEM_0F9,
+ ITEM_0FA,
+ ITEM_0FB,
+ ITEM_0FC,
+ ITEM_0FD,
+ ITEM_RED_SCARF, // 0x0fe
+ ITEM_BLUE_SCARF, // 0x0ff
+ ITEM_PINK_SCARF, // 0x100
+ ITEM_GREEN_SCARF, // 0x101
+ ITEM_YELLOW_SCARF, // 0x102
+ ITEM_MACH_BIKE, // 0x103
+ ITEM_COIN_CASE, // 0x104
+ ITEM_ITEMFINDER, // 0x105
+ ITEM_OLD_ROD, // 0x106
+ ITEM_GOOD_ROD, // 0x107
+ ITEM_SUPER_ROD, // 0x108
+ ITEM_SS_TICKET, // 0x109
+ ITEM_CONTEST_PASS, // 0x10a
+ ITEM_10B,
+ ITEM_WAILMER_PAIL, // 0x10c
+ ITEM_DEVON_GOODS, // 0x10d
+ ITEM_SOOT_SACK, // 0x10e
+ ITEM_BASEMENT_KEY, // 0x10f
+ ITEM_ACRO_BIKE, // 0x110
+ ITEM_POKEBLOCK_CASE, // 0x111
+ ITEM_LETTER, // 0x112
+ ITEM_EON_TICKET, // 0x113
+ ITEM_RED_ORB, // 0x114
+ ITEM_BLUE_ORB, // 0x115
+ ITEM_SCANNER, // 0x116
+ ITEM_GO_GOGGLES, // 0x117
+ ITEM_METEORITE, // 0x118
+ ITEM_ROOM_1_KEY, // 0x119
+ ITEM_ROOM_2_KEY, // 0x11a
+ ITEM_ROOM_4_KEY, // 0x11b
+ ITEM_ROOM_6_KEY, // 0x11c
+ ITEM_STORAGE_KEY, // 0x11d
+ ITEM_ROOT_FOSSIL, // 0x11e
+ ITEM_CLAW_FOSSIL, // 0x11f
+ ITEM_DEVON_SCOPE, // 0x120
+ ITEM_TM01, // 0x121
+ ITEM_TM02, // 0x122
+ ITEM_TM03, // 0x123
+ ITEM_TM04, // 0x124
+ ITEM_TM05, // 0x125
+ ITEM_TM06, // 0x126
+ ITEM_TM07, // 0x127
+ ITEM_TM08, // 0x128
+ ITEM_TM09, // 0x129
+ ITEM_TM10, // 0x12a
+ ITEM_TM11, // 0x12b
+ ITEM_TM12, // 0x12c
+ ITEM_TM13, // 0x12d
+ ITEM_TM14, // 0x12e
+ ITEM_TM15, // 0x12f
+ ITEM_TM16, // 0x130
+ ITEM_TM17, // 0x131
+ ITEM_TM18, // 0x132
+ ITEM_TM19, // 0x133
+ ITEM_TM20, // 0x134
+ ITEM_TM21, // 0x135
+ ITEM_TM22, // 0x136
+ ITEM_TM23, // 0x137
+ ITEM_TM24, // 0x138
+ ITEM_TM25, // 0x139
+ ITEM_TM26, // 0x13a
+ ITEM_TM27, // 0x13b
+ ITEM_TM28, // 0x13c
+ ITEM_TM29, // 0x13d
+ ITEM_TM30, // 0x13e
+ ITEM_TM31, // 0x13f
+ ITEM_TM32, // 0x140
+ ITEM_TM33, // 0x141
+ ITEM_TM34, // 0x142
+ ITEM_TM35, // 0x143
+ ITEM_TM36, // 0x144
+ ITEM_TM37, // 0x145
+ ITEM_TM38, // 0x146
+ ITEM_TM39, // 0x147
+ ITEM_TM40, // 0x148
+ ITEM_TM41, // 0x149
+ ITEM_TM42, // 0x14a
+ ITEM_TM43, // 0x14b
+ ITEM_TM44, // 0x14c
+ ITEM_TM45, // 0x14d
+ ITEM_TM46, // 0x14e
+ ITEM_TM47, // 0x14f
+ ITEM_TM48, // 0x150
+ ITEM_TM49, // 0x151
+ ITEM_TM50, // 0x152
+ ITEM_HM01, // 0x153
+ ITEM_HM02, // 0x154
+ ITEM_HM03, // 0x155
+ ITEM_HM04, // 0x156
+ ITEM_HM05, // 0x157
+ ITEM_HM06, // 0x158
+ ITEM_HM07, // 0x159
+ ITEM_HM08, // 0x15a
+ ITEM_15B,
+ ITEM_15C,
+
+ // FireRed/LeafGreen
+ ITEM_OAKS_PARCEL, // 0x15d
+ ITEM_POKE_FLUTE, // 0x15e
+ ITEM_SECRET_KEY, // 0x15f
+ ITEM_BIKE_VOUCHER, // 0x160
+ ITEM_GOLD_TEETH, // 0x161
+ ITEM_OLD_AMBER, // 0x162
+ ITEM_CARD_KEY, // 0x163
+ ITEM_LIFT_KEY, // 0x164
+ ITEM_HELIX_FOSSIL, // 0x165
+ ITEM_DOME_FOSSIL, // 0x166
+ ITEM_SILPH_SCOPE, // 0x167
+ ITEM_BICYCLE, // 0x168
+ ITEM_TOWN_MAP, // 0x169
+ ITEM_VS_SEEKER, // 0x16a
+ ITEM_FAME_CHECKER, // 0x16b
+ ITEM_TM_CASE, // 0x16c
+ ITEM_BERRY_POUCH, // 0x16d
+ ITEM_TEACHY_TV, // 0x16e
+ ITEM_TRI_PASS, // 0x16f
+ ITEM_RAINBOW_PASS, // 0x170
+ ITEM_TEA, // 0x171
+ ITEM_MYSTIC_TICKET, // 0x172
+ ITEM_AURORA_TICKET, // 0x173
+ ITEM_POWDER_JAR, // 0x174
+ ITEM_RUBY, // 0x175
+ ITEM_SAPPHIRE, // 0x176
+
+ // Emerald
+ ITEM_MAGMA_EMBLEM, // 0x177
+ ITEM_OLD_SEA_MAP, // 0x178
+};
+
+#endif // GUARD_ITEMS_H
diff --git a/include/learn_move.h b/include/learn_move.h
new file mode 100644
index 000000000..85fbf046e
--- /dev/null
+++ b/include/learn_move.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_LEARN_MOVE_H
+#define GUARD_LEARN_MOVE_H
+
+void sub_8132670(void);
+
+#endif // GUARD_LEARN_MOVE_H
diff --git a/include/libgncmultiboot.h b/include/libgncmultiboot.h
index b4d1cd231..33c9f6bfa 100644
--- a/include/libgncmultiboot.h
+++ b/include/libgncmultiboot.h
@@ -3,8 +3,8 @@
struct GcmbStruct
{
- u16 gcmb_field_0;
- u8 gcmb_field_2;
+ u16 gcmb_field_0;
+ u8 gcmb_field_2;
};
void GameCubeMultiBoot_Main(struct GcmbStruct *pStruct);
diff --git a/include/link.h b/include/link.h
index 694339164..f80f2bc58 100644
--- a/include/link.h
+++ b/include/link.h
@@ -62,14 +62,14 @@ enum
struct LinkPlayer
{
- u16 version;
- u16 lp_field_2;
- u32 trainerId;
- u8 name[11];
- u8 gender;
- u32 linkType;
- u16 lp_field_18;
- u16 language;
+ /* 0x00 */ u16 version;
+ /* 0x02 */ u16 lp_field_2;
+ /* 0x04 */ u32 trainerId;
+ /* 0x08 */ u8 name[11];
+ /* 0x13 */ u8 gender;
+ /* 0x14 */ u32 linkType;
+ /* 0x18 */ u16 lp_field_18;
+ /* 0x1A */ u16 language;
};
struct LinkPlayerBlock
@@ -122,13 +122,28 @@ struct Link
struct RecvQueue recvQueue;
};
+struct BlockRequest {
+ void * address;
+ u32 size;
+};
+
+extern const struct BlockRequest sBlockRequestLookupTable[5];
+
extern struct Link gLink;
extern u16 gRecvCmds[CMD_LENGTH][MAX_LINK_PLAYERS];
+extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
+extern u16 gLinkType;
extern u32 gLinkStatus;
+extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
extern u16 gSendCmd[CMD_LENGTH];
extern u8 gShouldAdvanceLinkState;
+#if GERMAN
+extern u8 deUnkValue1;
+extern u8 deUnkValue2;
+#endif
extern struct LinkPlayer gLinkPlayers[];
extern u16 word_3002910[];
+extern bool8 gReceivedRemoteLinkPlayers;
void Task_DestroySelf(u8);
void sub_8007270(u8);
diff --git a/include/link/.gitignore b/include/link/.gitignore
deleted file mode 100644
index 266afbe6e..000000000
--- a/include/link/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-digit_tiles.h
-digit_palette.h
diff --git a/include/load_save.h b/include/load_save.h
index 5ca52a2fc..0abc9985d 100644
--- a/include/load_save.h
+++ b/include/load_save.h
@@ -1,6 +1,8 @@
#ifndef GUARD_LOAD_SAVE_H
#define GUARD_LOAD_SAVE_H
+extern bool32 gFlashMemoryPresent;
+
void CheckForFlashMemory(void);
bool32 GetSecretBase2Field_9(void);
void ClearSecretBase2Field_9(void);
@@ -11,7 +13,7 @@ void SavePlayerParty(void);
void LoadPlayerParty(void);
void SaveSerializedGame(void);
void LoadSerializedGame(void);
-void LoadPlayerData(void);
-void SavePlayerData(void);
+void LoadPlayerBag(void);
+void SavePlayerBag(void);
#endif // GUARD_LOAD_SAVE_H
diff --git a/include/lottery_corner.h b/include/lottery_corner.h
index 06f38a5c9..5e2346d37 100644
--- a/include/lottery_corner.h
+++ b/include/lottery_corner.h
@@ -1,12 +1,12 @@
#ifndef GUARD_LOTTERY_CORNER_H
#define GUARD_LOTTERY_CORNER_H
-void sub_8145A78(void);
-void sub_8145AA4(u16 a);
-void sub_8145AEC(void);
+void ResetLotteryCorner(void);
+void SetRandomLotteryNumber(u16 i);
+void RetrieveLotteryNumber(void);
void PickLotteryCornerTicket(void);
-void sub_8145D14(u32 a);
-u32 sub_8145D3C(void);
-void unref_sub_8145D64(u16 a);
+void SetLotteryNumber(u32 lotteryNum);
+u32 GetLotteryNumber(void);
+void SetLotteryNumber16_Unused(u16 lotteryNum);
#endif // GUARD_LOTTERY_CORNER_H
diff --git a/include/m4a.h b/include/m4a.h
index 949403885..b6c8f9072 100644
--- a/include/m4a.h
+++ b/include/m4a.h
@@ -9,6 +9,7 @@ void m4aSoundInit(void);
void m4aSoundMain(void);
void m4aSongNumStart(u16);
void m4aSongNumStop(u16 n);
+void m4aMPlayAllStop(void);
void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo);
void m4aMPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed);
void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed);
diff --git a/include/mail.h b/include/mail.h
index a579dc458..693b0b2dc 100644
--- a/include/mail.h
+++ b/include/mail.h
@@ -3,13 +3,6 @@
#include "main.h"
-struct MailStruct {
- /* 0x00 */ u16 words[9];
- /* 0x12 */ u8 var12[12];
- /* 0x1E */ u16 var1E;
- /* 0x20 */ u16 var20;
-};
-
-void sub_80F890C(struct MailStruct *arg0, MainCallback arg1, bool8 arg2);
+void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2);
#endif // GUARD_MAIL_H
diff --git a/include/mail_data.h b/include/mail_data.h
new file mode 100644
index 000000000..df4b385a1
--- /dev/null
+++ b/include/mail_data.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_MAIL_DATA_H
+#define GUARD_MAIL_DATA_H
+
+void ClearMailData(void);
+void ClearMailStruct(struct MailStruct *);
+void ClearMailStruct(struct MailStruct *);
+u8 GiveMailToMon(struct Pokemon *, u16);
+u16 SpeciesToMailSpecies(u16, u32);
+u16 MailSpeciesToSpecies(u16, u16 *);
+u8 GiveMailToMon2(struct Pokemon *, struct MailStruct *);
+void TakeMailFromMon(struct Pokemon *);
+u8 TakeMailFromMon2(struct Pokemon *);
+bool8 ItemIsMail(u16);
+bool8 ItemIsMail(u16);
+
+#endif // GUARD_MAIL_DATA_H
diff --git a/include/main.h b/include/main.h
index 054bba901..e0cb09370 100644
--- a/include/main.h
+++ b/include/main.h
@@ -9,42 +9,43 @@ typedef void (*IntrFunc)(void);
struct Main
{
- MainCallback callback1;
- MainCallback callback2;
+ /*0x000*/ MainCallback callback1;
+ /*0x004*/ MainCallback callback2;
- MainCallback field_8;
+ /*0x008*/ MainCallback savedCallback;
- IntrCallback vblankCallback;
- IntrCallback hblankCallback;
- IntrCallback vcountCallback;
- IntrCallback serialCallback;
+ /*0x00C*/ IntrCallback vblankCallback;
+ /*0x010*/ IntrCallback hblankCallback;
+ /*0x014*/ IntrCallback vcountCallback;
+ /*0x018*/ IntrCallback serialCallback;
- vu16 intrCheck;
+ /*0x01C*/ vu16 intrCheck;
- u32 vblankCounter1;
- u32 vblankCounter2;
+ /*0x020*/ u32 vblankCounter1;
+ /*0x024*/ u32 vblankCounter2;
- u16 heldKeysRaw; // held keys without L=A remapping
- u16 newKeysRaw; // newly pressed keys without L=A remapping
- u16 heldKeys; // held keys with L=A remapping
- u16 newKeys; // newly pressed keys with L=A remapping
- u16 newAndRepeatedKeys; // newly pressed keys plus key repeat
- u16 keyRepeatCounter; // counts down to 0, triggering key repeat
- bool16 watchedKeysPressed; // whether one of the watched keys was pressed
- u16 watchedKeysMask; // bit mask for watched keys
+ /*0x028*/ u16 heldKeysRaw; // held keys without L=A remapping
+ /*0x02A*/ u16 newKeysRaw; // newly pressed keys without L=A remapping
+ /*0x02C*/ u16 heldKeys; // held keys with L=A remapping
+ /*0x02E*/ u16 newKeys; // newly pressed keys with L=A remapping
+ /*0x030*/ u16 newAndRepeatedKeys; // newly pressed keys plus key repeat
+ /*0x032*/ u16 keyRepeatCounter; // counts down to 0, triggering key repeat
+ /*0x034*/ bool16 watchedKeysPressed; // whether one of the watched keys was pressed
+ /*0x036*/ u16 watchedKeysMask; // bit mask for watched keys
- u8 objCount;
+ /*0x038*/ u8 objCount;
- struct OamData oamBuffer[128];
+ /*0x03C*/ struct OamData oamBuffer[128];
- u8 state;
+ /*0x43C*/ u8 state;
- u8 oamLoadDisabled:1;
+ /*0x43D*/ u8 oamLoadDisabled:1;
+ /*0x43D*/ u8 inBattle:1;
};
-extern u8 gUnknown_3001764;
+extern u8 gLinkTransferringData;
extern struct Main gMain;
-extern u8 gUnknown_3001BB4;
+extern bool8 gSoftResetDisabled;
extern bool8 gLinkVSyncDisabled;
extern const u8 gGameVersion;
diff --git a/include/map_constants.h b/include/map_constants.h
new file mode 100644
index 000000000..f525f43a3
--- /dev/null
+++ b/include/map_constants.h
@@ -0,0 +1,1098 @@
+#ifndef GUARD_MAP_CONSTANTS_H
+#define GUARD_MAP_CONSTANTS_H
+
+//--------------------------------------------------
+// Map Group 0
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_PETALBURG_CITY,
+ MAP_ID_SLATEPORT_CITY,
+ MAP_ID_MAUVILLE_CITY,
+ MAP_ID_RUSTBORO_CITY,
+ MAP_ID_FORTREE_CITY,
+ MAP_ID_LILYCOVE_CITY,
+ MAP_ID_MOSSDEEP_CITY,
+ MAP_ID_SOOTOPOLIS_CITY,
+ MAP_ID_EVER_GRANDE_CITY,
+ MAP_ID_LITTLEROOT_TOWN,
+ MAP_ID_OLDALE_TOWN,
+ MAP_ID_DEWFORD_TOWN,
+ MAP_ID_LAVARIDGE_TOWN,
+ MAP_ID_FALLARBOR_TOWN,
+ MAP_ID_VERDANTURF_TOWN,
+ MAP_ID_PACIFIDLOG_TOWN,
+ MAP_ID_ROUTE101,
+ MAP_ID_ROUTE102,
+ MAP_ID_ROUTE103,
+ MAP_ID_ROUTE104,
+ MAP_ID_ROUTE105,
+ MAP_ID_ROUTE106,
+ MAP_ID_ROUTE107,
+ MAP_ID_ROUTE108,
+ MAP_ID_ROUTE109,
+ MAP_ID_ROUTE110,
+ MAP_ID_ROUTE111,
+ MAP_ID_ROUTE112,
+ MAP_ID_ROUTE113,
+ MAP_ID_ROUTE114,
+ MAP_ID_ROUTE115,
+ MAP_ID_ROUTE116,
+ MAP_ID_ROUTE117,
+ MAP_ID_ROUTE118,
+ MAP_ID_ROUTE119,
+ MAP_ID_ROUTE120,
+ MAP_ID_ROUTE121,
+ MAP_ID_ROUTE122,
+ MAP_ID_ROUTE123,
+ MAP_ID_ROUTE124,
+ MAP_ID_ROUTE125,
+ MAP_ID_ROUTE126,
+ MAP_ID_ROUTE127,
+ MAP_ID_ROUTE128,
+ MAP_ID_ROUTE129,
+ MAP_ID_ROUTE130,
+ MAP_ID_ROUTE131,
+ MAP_ID_ROUTE132,
+ MAP_ID_ROUTE133,
+ MAP_ID_ROUTE134,
+ MAP_ID_UNDERWATER1,
+ MAP_ID_UNDERWATER2,
+ MAP_ID_UNDERWATER3,
+ MAP_ID_UNDERWATER4,
+};
+
+#define MAP_GROUP_PETALBURG_CITY 0
+#define MAP_GROUP_SLATEPORT_CITY 0
+#define MAP_GROUP_MAUVILLE_CITY 0
+#define MAP_GROUP_RUSTBORO_CITY 0
+#define MAP_GROUP_FORTREE_CITY 0
+#define MAP_GROUP_LILYCOVE_CITY 0
+#define MAP_GROUP_MOSSDEEP_CITY 0
+#define MAP_GROUP_SOOTOPOLIS_CITY 0
+#define MAP_GROUP_EVER_GRANDE_CITY 0
+#define MAP_GROUP_LITTLEROOT_TOWN 0
+#define MAP_GROUP_OLDALE_TOWN 0
+#define MAP_GROUP_DEWFORD_TOWN 0
+#define MAP_GROUP_LAVARIDGE_TOWN 0
+#define MAP_GROUP_FALLARBOR_TOWN 0
+#define MAP_GROUP_VERDANTURF_TOWN 0
+#define MAP_GROUP_PACIFIDLOG_TOWN 0
+#define MAP_GROUP_ROUTE101 0
+#define MAP_GROUP_ROUTE102 0
+#define MAP_GROUP_ROUTE103 0
+#define MAP_GROUP_ROUTE104 0
+#define MAP_GROUP_ROUTE105 0
+#define MAP_GROUP_ROUTE106 0
+#define MAP_GROUP_ROUTE107 0
+#define MAP_GROUP_ROUTE108 0
+#define MAP_GROUP_ROUTE109 0
+#define MAP_GROUP_ROUTE110 0
+#define MAP_GROUP_ROUTE111 0
+#define MAP_GROUP_ROUTE112 0
+#define MAP_GROUP_ROUTE113 0
+#define MAP_GROUP_ROUTE114 0
+#define MAP_GROUP_ROUTE115 0
+#define MAP_GROUP_ROUTE116 0
+#define MAP_GROUP_ROUTE117 0
+#define MAP_GROUP_ROUTE118 0
+#define MAP_GROUP_ROUTE119 0
+#define MAP_GROUP_ROUTE120 0
+#define MAP_GROUP_ROUTE121 0
+#define MAP_GROUP_ROUTE122 0
+#define MAP_GROUP_ROUTE123 0
+#define MAP_GROUP_ROUTE124 0
+#define MAP_GROUP_ROUTE125 0
+#define MAP_GROUP_ROUTE126 0
+#define MAP_GROUP_ROUTE127 0
+#define MAP_GROUP_ROUTE128 0
+#define MAP_GROUP_ROUTE129 0
+#define MAP_GROUP_ROUTE130 0
+#define MAP_GROUP_ROUTE131 0
+#define MAP_GROUP_ROUTE132 0
+#define MAP_GROUP_ROUTE133 0
+#define MAP_GROUP_ROUTE134 0
+#define MAP_GROUP_UNDERWATER1 0
+#define MAP_GROUP_UNDERWATER2 0
+#define MAP_GROUP_UNDERWATER3 0
+#define MAP_GROUP_UNDERWATER4 0
+
+//--------------------------------------------------
+// Map Group 1
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F,
+ MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F,
+ MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F,
+ MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_2F,
+ MAP_ID_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB,
+};
+
+#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 1
+#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1
+#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_1F 1
+#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_2F 1
+#define MAP_GROUP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 1
+
+//--------------------------------------------------
+// Map Group 2
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_OLDALE_TOWN_HOUSE1,
+ MAP_ID_OLDALE_TOWN_HOUSE2,
+ MAP_ID_OLDALE_TOWN_POKEMON_CENTER_1F,
+ MAP_ID_OLDALE_TOWN_POKEMON_CENTER_2F,
+ MAP_ID_OLDALE_TOWN_MART,
+};
+
+#define MAP_GROUP_OLDALE_TOWN_HOUSE1 2
+#define MAP_GROUP_OLDALE_TOWN_HOUSE2 2
+#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_1F 2
+#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_2F 2
+#define MAP_GROUP_OLDALE_TOWN_MART 2
+
+//--------------------------------------------------
+// Map Group 3
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_DEWFORD_TOWN_HOUSE1,
+ MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_1F,
+ MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_2F,
+ MAP_ID_DEWFORD_TOWN_GYM,
+ MAP_ID_DEWFORD_TOWN_HALL,
+ MAP_ID_DEWFORD_TOWN_HOUSE2,
+};
+
+#define MAP_GROUP_DEWFORD_TOWN_HOUSE1 3
+#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_1F 3
+#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_2F 3
+#define MAP_GROUP_DEWFORD_TOWN_GYM 3
+#define MAP_GROUP_DEWFORD_TOWN_HALL 3
+#define MAP_GROUP_DEWFORD_TOWN_HOUSE2 3
+
+//--------------------------------------------------
+// Map Group 4
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_LAVARIDGE_TOWN_HERB_SHOP,
+ MAP_ID_LAVARIDGE_TOWN_GYM_1F,
+ MAP_ID_LAVARIDGE_TOWN_GYM_B1F,
+ MAP_ID_LAVARIDGE_TOWN_HOUSE,
+ MAP_ID_LAVARIDGE_TOWN_MART,
+ MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_1F,
+ MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_2F,
+};
+
+#define MAP_GROUP_LAVARIDGE_TOWN_HERB_SHOP 4
+#define MAP_GROUP_LAVARIDGE_TOWN_GYM_1F 4
+#define MAP_GROUP_LAVARIDGE_TOWN_GYM_B1F 4
+#define MAP_GROUP_LAVARIDGE_TOWN_HOUSE 4
+#define MAP_GROUP_LAVARIDGE_TOWN_MART 4
+#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_1F 4
+#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_2F 4
+
+//--------------------------------------------------
+// Map Group 5
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_FALLARBOR_TOWN_MART,
+ MAP_ID_FALLARBOR_TOWN_CONTEST_LOBBY,
+ MAP_ID_FALLARBOR_TOWN_CONTEST_HALL,
+ MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_1F,
+ MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_2F,
+ MAP_ID_FALLARBOR_TOWN_HOUSE1,
+ MAP_ID_FALLARBOR_TOWN_HOUSE2,
+};
+
+#define MAP_GROUP_FALLARBOR_TOWN_MART 5
+#define MAP_GROUP_FALLARBOR_TOWN_CONTEST_LOBBY 5
+#define MAP_GROUP_FALLARBOR_TOWN_CONTEST_HALL 5
+#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_1F 5
+#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_2F 5
+#define MAP_GROUP_FALLARBOR_TOWN_HOUSE1 5
+#define MAP_GROUP_FALLARBOR_TOWN_HOUSE2 5
+
+//--------------------------------------------------
+// Map Group 6
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_VERDANTURF_TOWN_CONTEST_LOBBY,
+ MAP_ID_VERDANTURF_TOWN_CONTEST_HALL,
+ MAP_ID_VERDANTURF_TOWN_MART,
+ MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_1F,
+ MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_2F,
+ MAP_ID_VERDANTURF_TOWN_WANDAS_HOUSE,
+ MAP_ID_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE,
+ MAP_ID_VERDANTURF_TOWN_HOUSE,
+};
+
+#define MAP_GROUP_VERDANTURF_TOWN_CONTEST_LOBBY 6
+#define MAP_GROUP_VERDANTURF_TOWN_CONTEST_HALL 6
+#define MAP_GROUP_VERDANTURF_TOWN_MART 6
+#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_1F 6
+#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_2F 6
+#define MAP_GROUP_VERDANTURF_TOWN_WANDAS_HOUSE 6
+#define MAP_GROUP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE 6
+#define MAP_GROUP_VERDANTURF_TOWN_HOUSE 6
+
+//--------------------------------------------------
+// Map Group 7
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_1F,
+ MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_2F,
+ MAP_ID_PACIFIDLOG_TOWN_HOUSE1,
+ MAP_ID_PACIFIDLOG_TOWN_HOUSE2,
+ MAP_ID_PACIFIDLOG_TOWN_HOUSE3,
+ MAP_ID_PACIFIDLOG_TOWN_HOUSE4,
+ MAP_ID_PACIFIDLOG_TOWN_HOUSE5,
+};
+
+#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F 7
+#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F 7
+#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE1 7
+#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE2 7
+#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE3 7
+#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE4 7
+#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE5 7
+
+//--------------------------------------------------
+// Map Group 8
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_PETALBURG_CITY_WALLYS_HOUSE,
+ MAP_ID_PETALBURG_CITY_GYM,
+ MAP_ID_PETALBURG_CITY_HOUSE1,
+ MAP_ID_PETALBURG_CITY_HOUSE2,
+ MAP_ID_PETALBURG_CITY_POKEMON_CENTER_1F,
+ MAP_ID_PETALBURG_CITY_POKEMON_CENTER_2F,
+ MAP_ID_PETALBURG_CITY_MART,
+};
+
+#define MAP_GROUP_PETALBURG_CITY_WALLYS_HOUSE 8
+#define MAP_GROUP_PETALBURG_CITY_GYM 8
+#define MAP_GROUP_PETALBURG_CITY_HOUSE1 8
+#define MAP_GROUP_PETALBURG_CITY_HOUSE2 8
+#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_1F 8
+#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_2F 8
+#define MAP_GROUP_PETALBURG_CITY_MART 8
+
+//--------------------------------------------------
+// Map Group 9
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_1F,
+ MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_2F,
+ MAP_ID_SLATEPORT_CITY_CONTEST_LOBBY,
+ MAP_ID_SLATEPORT_CITY_CONTEST_HALL,
+ MAP_ID_SLATEPORT_CITY_HOUSE1,
+ MAP_ID_SLATEPORT_CITY_POKEMON_FAN_CLUB,
+ MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_1F,
+ MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_2F,
+ MAP_ID_SLATEPORT_CITY_HARBOR,
+ MAP_ID_SLATEPORT_CITY_HOUSE2,
+ MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_1F,
+ MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_2F,
+ MAP_ID_SLATEPORT_CITY_MART,
+};
+
+#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_1F 9
+#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_2F 9
+#define MAP_GROUP_SLATEPORT_CITY_CONTEST_LOBBY 9
+#define MAP_GROUP_SLATEPORT_CITY_CONTEST_HALL 9
+#define MAP_GROUP_SLATEPORT_CITY_HOUSE1 9
+#define MAP_GROUP_SLATEPORT_CITY_POKEMON_FAN_CLUB 9
+#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 9
+#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 9
+#define MAP_GROUP_SLATEPORT_CITY_HARBOR 9
+#define MAP_GROUP_SLATEPORT_CITY_HOUSE2 9
+#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_1F 9
+#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_2F 9
+#define MAP_GROUP_SLATEPORT_CITY_MART 9
+
+//--------------------------------------------------
+// Map Group 10
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_MAUVILLE_CITY_GYM,
+ MAP_ID_MAUVILLE_CITY_BIKE_SHOP,
+ MAP_ID_MAUVILLE_CITY_HOUSE1,
+ MAP_ID_MAUVILLE_CITY_GAME_CORNER,
+ MAP_ID_MAUVILLE_CITY_HOUSE2,
+ MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_1F,
+ MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_2F,
+ MAP_ID_MAUVILLE_CITY_MART,
+};
+
+#define MAP_GROUP_MAUVILLE_CITY_GYM 10
+#define MAP_GROUP_MAUVILLE_CITY_BIKE_SHOP 10
+#define MAP_GROUP_MAUVILLE_CITY_HOUSE1 10
+#define MAP_GROUP_MAUVILLE_CITY_GAME_CORNER 10
+#define MAP_GROUP_MAUVILLE_CITY_HOUSE2 10
+#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_1F 10
+#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_2F 10
+#define MAP_GROUP_MAUVILLE_CITY_MART 10
+
+//--------------------------------------------------
+// Map Group 11
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_RUSTBORO_CITY_DEVON_CORP_1F,
+ MAP_ID_RUSTBORO_CITY_DEVON_CORP_2F,
+ MAP_ID_RUSTBORO_CITY_DEVON_CORP_3F,
+ MAP_ID_RUSTBORO_CITY_GYM,
+ MAP_ID_RUSTBORO_CITY_POKEMON_SCHOOL,
+ MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_1F,
+ MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_2F,
+ MAP_ID_RUSTBORO_CITY_MART,
+ MAP_ID_RUSTBORO_CITY_FLAT1_1F,
+ MAP_ID_RUSTBORO_CITY_FLAT1_2F,
+ MAP_ID_RUSTBORO_CITY_HOUSE1,
+ MAP_ID_RUSTBORO_CITY_CUTTERS_HOUSE,
+ MAP_ID_RUSTBORO_CITY_HOUSE2,
+ MAP_ID_RUSTBORO_CITY_FLAT2_1F,
+ MAP_ID_RUSTBORO_CITY_FLAT2_2F,
+ MAP_ID_RUSTBORO_CITY_FLAT2_3F,
+ MAP_ID_RUSTBORO_CITY_HOUSE3,
+};
+
+#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_1F 11
+#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_2F 11
+#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_3F 11
+#define MAP_GROUP_RUSTBORO_CITY_GYM 11
+#define MAP_GROUP_RUSTBORO_CITY_POKEMON_SCHOOL 11
+#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_1F 11
+#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_2F 11
+#define MAP_GROUP_RUSTBORO_CITY_MART 11
+#define MAP_GROUP_RUSTBORO_CITY_FLAT1_1F 11
+#define MAP_GROUP_RUSTBORO_CITY_FLAT1_2F 11
+#define MAP_GROUP_RUSTBORO_CITY_HOUSE1 11
+#define MAP_GROUP_RUSTBORO_CITY_CUTTERS_HOUSE 11
+#define MAP_GROUP_RUSTBORO_CITY_HOUSE2 11
+#define MAP_GROUP_RUSTBORO_CITY_FLAT2_1F 11
+#define MAP_GROUP_RUSTBORO_CITY_FLAT2_2F 11
+#define MAP_GROUP_RUSTBORO_CITY_FLAT2_3F 11
+#define MAP_GROUP_RUSTBORO_CITY_HOUSE3 11
+
+//--------------------------------------------------
+// Map Group 12
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_FORTREE_CITY_HOUSE1,
+ MAP_ID_FORTREE_CITY_GYM,
+ MAP_ID_FORTREE_CITY_POKEMON_CENTER_1F,
+ MAP_ID_FORTREE_CITY_POKEMON_CENTER_2F,
+ MAP_ID_FORTREE_CITY_MART,
+ MAP_ID_FORTREE_CITY_HOUSE2,
+ MAP_ID_FORTREE_CITY_HOUSE3,
+ MAP_ID_FORTREE_CITY_HOUSE4,
+ MAP_ID_FORTREE_CITY_HOUSE5,
+ MAP_ID_FORTREE_CITY_DECORATION_SHOP,
+};
+
+#define MAP_GROUP_FORTREE_CITY_HOUSE1 12
+#define MAP_GROUP_FORTREE_CITY_GYM 12
+#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_1F 12
+#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_2F 12
+#define MAP_GROUP_FORTREE_CITY_MART 12
+#define MAP_GROUP_FORTREE_CITY_HOUSE2 12
+#define MAP_GROUP_FORTREE_CITY_HOUSE3 12
+#define MAP_GROUP_FORTREE_CITY_HOUSE4 12
+#define MAP_GROUP_FORTREE_CITY_HOUSE5 12
+#define MAP_GROUP_FORTREE_CITY_DECORATION_SHOP 12
+
+//--------------------------------------------------
+// Map Group 13
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F,
+ MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_2F,
+ MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F,
+ MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F,
+ MAP_ID_LILYCOVE_CITY_CONTEST_LOBBY,
+ MAP_ID_LILYCOVE_CITY_CONTEST_HALL,
+ MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_1F,
+ MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_2F,
+ MAP_ID_LILYCOVE_CITY_UNUSED_MART,
+ MAP_ID_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB,
+ MAP_ID_LILYCOVE_CITY_HARBOR,
+ MAP_ID_LILYCOVE_CITY_EMPTY_MAP,
+ MAP_ID_LILYCOVE_CITY_MOVE_DELETERS_HOUSE,
+ MAP_ID_LILYCOVE_CITY_HOUSE1,
+ MAP_ID_LILYCOVE_CITY_HOUSE2,
+ MAP_ID_LILYCOVE_CITY_HOUSE3,
+ MAP_ID_LILYCOVE_CITY_HOUSE4,
+ MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_1F,
+ MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_2F,
+ MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_3F,
+ MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_4F,
+ MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_5F,
+ MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP,
+ MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR,
+};
+
+#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 13
+#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 13
+#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 13
+#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 13
+#define MAP_GROUP_LILYCOVE_CITY_CONTEST_LOBBY 13
+#define MAP_GROUP_LILYCOVE_CITY_CONTEST_HALL 13
+#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_1F 13
+#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_2F 13
+#define MAP_GROUP_LILYCOVE_CITY_UNUSED_MART 13
+#define MAP_GROUP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 13
+#define MAP_GROUP_LILYCOVE_CITY_HARBOR 13
+#define MAP_GROUP_LILYCOVE_CITY_EMPTY_MAP 13
+#define MAP_GROUP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE 13
+#define MAP_GROUP_LILYCOVE_CITY_HOUSE1 13
+#define MAP_GROUP_LILYCOVE_CITY_HOUSE2 13
+#define MAP_GROUP_LILYCOVE_CITY_HOUSE3 13
+#define MAP_GROUP_LILYCOVE_CITY_HOUSE4 13
+#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_1F 13
+#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_2F 13
+#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_3F 13
+#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_4F 13
+#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_5F 13
+#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 13
+#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 13
+
+//--------------------------------------------------
+// Map Group 14
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_MOSSDEEP_CITY_GYM,
+ MAP_ID_MOSSDEEP_CITY_HOUSE1,
+ MAP_ID_MOSSDEEP_CITY_HOUSE2,
+ MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_1F,
+ MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_2F,
+ MAP_ID_MOSSDEEP_CITY_MART,
+ MAP_ID_MOSSDEEP_CITY_HOUSE3,
+ MAP_ID_MOSSDEEP_CITY_STEVENS_HOUSE,
+ MAP_ID_MOSSDEEP_CITY_HOUSE4,
+ MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_1F,
+ MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_2F,
+ MAP_ID_MOSSDEEP_CITY_GAME_CORNER_1F,
+ MAP_ID_MOSSDEEP_CITY_GAME_CORNER_B1F,
+};
+
+#define MAP_GROUP_MOSSDEEP_CITY_GYM 14
+#define MAP_GROUP_MOSSDEEP_CITY_HOUSE1 14
+#define MAP_GROUP_MOSSDEEP_CITY_HOUSE2 14
+#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_1F 14
+#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_2F 14
+#define MAP_GROUP_MOSSDEEP_CITY_MART 14
+#define MAP_GROUP_MOSSDEEP_CITY_HOUSE3 14
+#define MAP_GROUP_MOSSDEEP_CITY_STEVENS_HOUSE 14
+#define MAP_GROUP_MOSSDEEP_CITY_HOUSE4 14
+#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_1F 14
+#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_2F 14
+#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_1F 14
+#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_B1F 14
+
+//--------------------------------------------------
+// Map Group 15
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_SOOTOPOLIS_CITY_GYM_1F,
+ MAP_ID_SOOTOPOLIS_CITY_GYM_B1F,
+ MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_1F,
+ MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_2F,
+ MAP_ID_SOOTOPOLIS_CITY_MART,
+ MAP_ID_SOOTOPOLIS_CITY_HOUSE1,
+ MAP_ID_SOOTOPOLIS_CITY_HOUSE2,
+ MAP_ID_SOOTOPOLIS_CITY_HOUSE3,
+ MAP_ID_SOOTOPOLIS_CITY_HOUSE4,
+ MAP_ID_SOOTOPOLIS_CITY_HOUSE5,
+ MAP_ID_SOOTOPOLIS_CITY_HOUSE6,
+ MAP_ID_SOOTOPOLIS_CITY_HOUSE7,
+ MAP_ID_SOOTOPOLIS_CITY_HOUSE8,
+};
+
+#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_1F 15
+#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_B1F 15
+#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F 15
+#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F 15
+#define MAP_GROUP_SOOTOPOLIS_CITY_MART 15
+#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE1 15
+#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE2 15
+#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE3 15
+#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE4 15
+#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE5 15
+#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE6 15
+#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE7 15
+#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE8 15
+
+//--------------------------------------------------
+// Map Group 16
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_EVER_GRANDE_CITY_SIDNEYS_ROOM,
+ MAP_ID_EVER_GRANDE_CITY_PHOEBES_ROOM,
+ MAP_ID_EVER_GRANDE_CITY_GLACIAS_ROOM,
+ MAP_ID_EVER_GRANDE_CITY_DRAKES_ROOM,
+ MAP_ID_EVER_GRANDE_CITY_CHAMPIONS_ROOM,
+ MAP_ID_EVER_GRANDE_CITY_CORRIDOR1,
+ MAP_ID_EVER_GRANDE_CITY_CORRIDOR2,
+ MAP_ID_EVER_GRANDE_CITY_CORRIDOR3,
+ MAP_ID_EVER_GRANDE_CITY_CORRIDOR4,
+ MAP_ID_EVER_GRANDE_CITY_CORRIDOR5,
+ MAP_ID_EVER_GRANDE_CITY_POKEMON_LEAGUE,
+ MAP_ID_EVER_GRANDE_CITY_HALL_OF_FAME,
+ MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_1F,
+ MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_2F,
+};
+
+#define MAP_GROUP_EVER_GRANDE_CITY_SIDNEYS_ROOM 16
+#define MAP_GROUP_EVER_GRANDE_CITY_PHOEBES_ROOM 16
+#define MAP_GROUP_EVER_GRANDE_CITY_GLACIAS_ROOM 16
+#define MAP_GROUP_EVER_GRANDE_CITY_DRAKES_ROOM 16
+#define MAP_GROUP_EVER_GRANDE_CITY_CHAMPIONS_ROOM 16
+#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR1 16
+#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR2 16
+#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR3 16
+#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR4 16
+#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR5 16
+#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_LEAGUE 16
+#define MAP_GROUP_EVER_GRANDE_CITY_HALL_OF_FAME 16
+#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_1F 16
+#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_2F 16
+
+//--------------------------------------------------
+// Map Group 17
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE104_MR_BRINEYS_HOUSE,
+ MAP_ID_ROUTE104_PRETTY_PETAL_FLOWER_SHOP,
+};
+
+#define MAP_GROUP_ROUTE104_MR_BRINEYS_HOUSE 17
+#define MAP_GROUP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 17
+
+//--------------------------------------------------
+// Map Group 18
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE111_WINSTRATE_FAMILYS_HOUSE,
+ MAP_ID_ROUTE111_OLD_LADYS_REST_STOP,
+};
+
+#define MAP_GROUP_ROUTE111_WINSTRATE_FAMILYS_HOUSE 18
+#define MAP_GROUP_ROUTE111_OLD_LADYS_REST_STOP 18
+
+//--------------------------------------------------
+// Map Group 19
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE112_CABLE_CAR_STATION,
+ MAP_ID_MT_CHIMNEY_CABLE_CAR_STATION,
+};
+
+#define MAP_GROUP_ROUTE112_CABLE_CAR_STATION 19
+#define MAP_GROUP_MT_CHIMNEY_CABLE_CAR_STATION 19
+
+//--------------------------------------------------
+// Map Group 20
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE114_FOSSIL_MANIACS_HOUSE,
+ MAP_ID_ROUTE114_FOSSIL_MANIACS_TUNNEL,
+ MAP_ID_ROUTE114_LANETTES_HOUSE,
+};
+
+#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_HOUSE 20
+#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_TUNNEL 20
+#define MAP_GROUP_ROUTE114_LANETTES_HOUSE 20
+
+//--------------------------------------------------
+// Map Group 21
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE116_TUNNELERS_REST_HOUSE,
+};
+
+#define MAP_GROUP_ROUTE116_TUNNELERS_REST_HOUSE 21
+
+//--------------------------------------------------
+// Map Group 22
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE117_POKEMON_DAY_CARE,
+};
+
+#define MAP_GROUP_ROUTE117_POKEMON_DAY_CARE 22
+
+//--------------------------------------------------
+// Map Group 23
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE121_SAFARI_ZONE_ENTRANCE,
+};
+
+#define MAP_GROUP_ROUTE121_SAFARI_ZONE_ENTRANCE 23
+
+//--------------------------------------------------
+// Map Group 24
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_METEOR_FALLS_1F_1R,
+ MAP_ID_METEOR_FALLS_1F_2R,
+ MAP_ID_METEOR_FALLS_B1F_1R,
+ MAP_ID_METEOR_FALLS_B1F_2R,
+ MAP_ID_RUSTURF_TUNNEL,
+ MAP_ID_UNDERWATER_SOOTOPOLIS_CITY,
+ MAP_ID_DESERT_RUINS,
+ MAP_ID_GRANITE_CAVE_1F,
+ MAP_ID_GRANITE_CAVE_B1F,
+ MAP_ID_GRANITE_CAVE_B2F,
+ MAP_ID_GRANITE_CAVE_STEVENS_ROOM,
+ MAP_ID_PETALBURG_WOODS,
+ MAP_ID_MT_CHIMNEY,
+ MAP_ID_JAGGED_PASS,
+ MAP_ID_FIERY_PATH,
+ MAP_ID_MT_PYRE_1F,
+ MAP_ID_MT_PYRE_2F,
+ MAP_ID_MT_PYRE_3F,
+ MAP_ID_MT_PYRE_4F,
+ MAP_ID_MT_PYRE_5F,
+ MAP_ID_MT_PYRE_6F,
+ MAP_ID_MT_PYRE_EXTERIOR,
+ MAP_ID_MT_PYRE_SUMMIT,
+ MAP_ID_AQUA_HIDEOUT_1F,
+ MAP_ID_AQUA_HIDEOUT_B1F,
+ MAP_ID_AQUA_HIDEOUT_B2F,
+ MAP_ID_UNDERWATER_SEAFLOOR_CAVERN,
+ MAP_ID_SEAFLOOR_CAVERN_ENTRANCE,
+ MAP_ID_SEAFLOOR_CAVERN_ROOM1,
+ MAP_ID_SEAFLOOR_CAVERN_ROOM2,
+ MAP_ID_SEAFLOOR_CAVERN_ROOM3,
+ MAP_ID_SEAFLOOR_CAVERN_ROOM4,
+ MAP_ID_SEAFLOOR_CAVERN_ROOM5,
+ MAP_ID_SEAFLOOR_CAVERN_ROOM6,
+ MAP_ID_SEAFLOOR_CAVERN_ROOM7,
+ MAP_ID_SEAFLOOR_CAVERN_ROOM8,
+ MAP_ID_SEAFLOOR_CAVERN_ROOM9,
+ MAP_ID_CAVE_OF_ORIGIN_ENTRANCE,
+ MAP_ID_CAVE_OF_ORIGIN_1F,
+ MAP_ID_CAVE_OF_ORIGIN_B1F,
+ MAP_ID_CAVE_OF_ORIGIN_B2F,
+ MAP_ID_CAVE_OF_ORIGIN_B3F,
+ MAP_ID_CAVE_OF_ORIGIN_B4F,
+ MAP_ID_VICTORY_ROAD_1F,
+ MAP_ID_VICTORY_ROAD_B1F,
+ MAP_ID_VICTORY_ROAD_B2F,
+ MAP_ID_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM,
+ MAP_ID_SHOAL_CAVE_LOW_TIDE_INNER_ROOM,
+ MAP_ID_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM,
+ MAP_ID_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM,
+ MAP_ID_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM,
+ MAP_ID_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM,
+ MAP_ID_NEW_MAUVILLE_ENTRANCE,
+ MAP_ID_NEW_MAUVILLE_INSIDE,
+ MAP_ID_ABANDONED_SHIP_DECK,
+ MAP_ID_ABANDONED_SHIP_CORRIDORS_1F,
+ MAP_ID_ABANDONED_SHIP_ROOMS_1F,
+ MAP_ID_ABANDONED_SHIP_CORRIDORS_B1F,
+ MAP_ID_ABANDONED_SHIP_ROOMS_B1F,
+ MAP_ID_ABANDONED_SHIP_ROOMS2_B1F,
+ MAP_ID_ABANDONED_SHIP_UNDERWATER1,
+ MAP_ID_ABANDONED_SHIP_ROOM_B1F,
+ MAP_ID_ABANDONED_SHIP_ROOMS2_1F,
+ MAP_ID_ABANDONED_SHIP_CAPTAINS_OFFICE,
+ MAP_ID_ABANDONED_SHIP_UNDERWATER2,
+ MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS,
+ MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS,
+ MAP_ID_ISLAND_CAVE,
+ MAP_ID_ANCIENT_TOMB,
+ MAP_ID_UNDERWATER_ROUTE134,
+ MAP_ID_UNDERWATER_SEALED_CHAMBER,
+ MAP_ID_SEALED_CHAMBER_OUTER_ROOM,
+ MAP_ID_SEALED_CHAMBER_INNER_ROOM,
+ MAP_ID_SCORCHED_SLAB,
+ MAP_ID_MAGMA_HIDEOUT_1F,
+ MAP_ID_MAGMA_HIDEOUT_B1F,
+ MAP_ID_MAGMA_HIDEOUT_B2F,
+ MAP_ID_SKY_PILLAR_ENTRANCE,
+ MAP_ID_SKY_PILLAR_OUTSIDE,
+ MAP_ID_SKY_PILLAR_1F,
+ MAP_ID_SKY_PILLAR_2F,
+ MAP_ID_SKY_PILLAR_3F,
+ MAP_ID_SKY_PILLAR_4F,
+ MAP_ID_SHOAL_CAVE_LOW_TIDE_ICE_ROOM,
+ MAP_ID_SKY_PILLAR_5F,
+ MAP_ID_SKY_PILLAR_TOP,
+};
+
+#define MAP_GROUP_METEOR_FALLS_1F_1R 24
+#define MAP_GROUP_METEOR_FALLS_1F_2R 24
+#define MAP_GROUP_METEOR_FALLS_B1F_1R 24
+#define MAP_GROUP_METEOR_FALLS_B1F_2R 24
+#define MAP_GROUP_RUSTURF_TUNNEL 24
+#define MAP_GROUP_UNDERWATER_SOOTOPOLIS_CITY 24
+#define MAP_GROUP_DESERT_RUINS 24
+#define MAP_GROUP_GRANITE_CAVE_1F 24
+#define MAP_GROUP_GRANITE_CAVE_B1F 24
+#define MAP_GROUP_GRANITE_CAVE_B2F 24
+#define MAP_GROUP_GRANITE_CAVE_STEVENS_ROOM 24
+#define MAP_GROUP_PETALBURG_WOODS 24
+#define MAP_GROUP_MT_CHIMNEY 24
+#define MAP_GROUP_JAGGED_PASS 24
+#define MAP_GROUP_FIERY_PATH 24
+#define MAP_GROUP_MT_PYRE_1F 24
+#define MAP_GROUP_MT_PYRE_2F 24
+#define MAP_GROUP_MT_PYRE_3F 24
+#define MAP_GROUP_MT_PYRE_4F 24
+#define MAP_GROUP_MT_PYRE_5F 24
+#define MAP_GROUP_MT_PYRE_6F 24
+#define MAP_GROUP_MT_PYRE_EXTERIOR 24
+#define MAP_GROUP_MT_PYRE_SUMMIT 24
+#define MAP_GROUP_AQUA_HIDEOUT_1F 24
+#define MAP_GROUP_AQUA_HIDEOUT_B1F 24
+#define MAP_GROUP_AQUA_HIDEOUT_B2F 24
+#define MAP_GROUP_UNDERWATER_SEAFLOOR_CAVERN 24
+#define MAP_GROUP_SEAFLOOR_CAVERN_ENTRANCE 24
+#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM1 24
+#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM2 24
+#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM3 24
+#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM4 24
+#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM5 24
+#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM6 24
+#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM7 24
+#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM8 24
+#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM9 24
+#define MAP_GROUP_CAVE_OF_ORIGIN_ENTRANCE 24
+#define MAP_GROUP_CAVE_OF_ORIGIN_1F 24
+#define MAP_GROUP_CAVE_OF_ORIGIN_B1F 24
+#define MAP_GROUP_CAVE_OF_ORIGIN_B2F 24
+#define MAP_GROUP_CAVE_OF_ORIGIN_B3F 24
+#define MAP_GROUP_CAVE_OF_ORIGIN_B4F 24
+#define MAP_GROUP_VICTORY_ROAD_1F 24
+#define MAP_GROUP_VICTORY_ROAD_B1F 24
+#define MAP_GROUP_VICTORY_ROAD_B2F 24
+#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 24
+#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 24
+#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 24
+#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 24
+#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 24
+#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 24
+#define MAP_GROUP_NEW_MAUVILLE_ENTRANCE 24
+#define MAP_GROUP_NEW_MAUVILLE_INSIDE 24
+#define MAP_GROUP_ABANDONED_SHIP_DECK 24
+#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_1F 24
+#define MAP_GROUP_ABANDONED_SHIP_ROOMS_1F 24
+#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_B1F 24
+#define MAP_GROUP_ABANDONED_SHIP_ROOMS_B1F 24
+#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_B1F 24
+#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER1 24
+#define MAP_GROUP_ABANDONED_SHIP_ROOM_B1F 24
+#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_1F 24
+#define MAP_GROUP_ABANDONED_SHIP_CAPTAINS_OFFICE 24
+#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER2 24
+#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 24
+#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 24
+#define MAP_GROUP_ISLAND_CAVE 24
+#define MAP_GROUP_ANCIENT_TOMB 24
+#define MAP_GROUP_UNDERWATER_ROUTE134 24
+#define MAP_GROUP_UNDERWATER_SEALED_CHAMBER 24
+#define MAP_GROUP_SEALED_CHAMBER_OUTER_ROOM 24
+#define MAP_GROUP_SEALED_CHAMBER_INNER_ROOM 24
+#define MAP_GROUP_SCORCHED_SLAB 24
+#define MAP_GROUP_MAGMA_HIDEOUT_1F 24
+#define MAP_GROUP_MAGMA_HIDEOUT_B1F 24
+#define MAP_GROUP_MAGMA_HIDEOUT_B2F 24
+#define MAP_GROUP_SKY_PILLAR_ENTRANCE 24
+#define MAP_GROUP_SKY_PILLAR_OUTSIDE 24
+#define MAP_GROUP_SKY_PILLAR_1F 24
+#define MAP_GROUP_SKY_PILLAR_2F 24
+#define MAP_GROUP_SKY_PILLAR_3F 24
+#define MAP_GROUP_SKY_PILLAR_4F 24
+#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 24
+#define MAP_GROUP_SKY_PILLAR_5F 24
+#define MAP_GROUP_SKY_PILLAR_TOP 24
+
+//--------------------------------------------------
+// Map Group 25
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_SECRET_BASE_RED_CAVE1,
+ MAP_ID_SECRET_BASE_BROWN_CAVE1,
+ MAP_ID_SECRET_BASE_BLUE_CAVE1,
+ MAP_ID_SECRET_BASE_YELLOW_CAVE1,
+ MAP_ID_SECRET_BASE_TREE1,
+ MAP_ID_SECRET_BASE_SHRUB1,
+ MAP_ID_SECRET_BASE_RED_CAVE2,
+ MAP_ID_SECRET_BASE_BROWN_CAVE2,
+ MAP_ID_SECRET_BASE_BLUE_CAVE2,
+ MAP_ID_SECRET_BASE_YELLOW_CAVE2,
+ MAP_ID_SECRET_BASE_TREE2,
+ MAP_ID_SECRET_BASE_SHRUB2,
+ MAP_ID_SECRET_BASE_RED_CAVE3,
+ MAP_ID_SECRET_BASE_BROWN_CAVE3,
+ MAP_ID_SECRET_BASE_BLUE_CAVE3,
+ MAP_ID_SECRET_BASE_YELLOW_CAVE3,
+ MAP_ID_SECRET_BASE_TREE3,
+ MAP_ID_SECRET_BASE_SHRUB3,
+ MAP_ID_SECRET_BASE_RED_CAVE4,
+ MAP_ID_SECRET_BASE_BROWN_CAVE4,
+ MAP_ID_SECRET_BASE_BLUE_CAVE4,
+ MAP_ID_SECRET_BASE_YELLOW_CAVE4,
+ MAP_ID_SECRET_BASE_TREE4,
+ MAP_ID_SECRET_BASE_SHRUB4,
+ MAP_ID_SINGLE_BATTLE_COLOSSEUM,
+ MAP_ID_TRADE_CENTER,
+ MAP_ID_RECORD_CORNER,
+ MAP_ID_DOUBLE_BATTLE_COLOSSEUM,
+ MAP_ID_LINK_CONTEST_ROOM1,
+ MAP_ID_UNKNOWN_MAP_25_29,
+ MAP_ID_UNKNOWN_MAP_25_30,
+ MAP_ID_UNKNOWN_MAP_25_31,
+ MAP_ID_UNKNOWN_MAP_25_32,
+ MAP_ID_UNKNOWN_MAP_25_33,
+ MAP_ID_UNKNOWN_MAP_25_34,
+ MAP_ID_LINK_CONTEST_ROOM2,
+ MAP_ID_LINK_CONTEST_ROOM3,
+ MAP_ID_LINK_CONTEST_ROOM4,
+ MAP_ID_LINK_CONTEST_ROOM5,
+ MAP_ID_LINK_CONTEST_ROOM6,
+ MAP_ID_INSIDE_OF_TRUCK,
+ MAP_ID_SS_TIDAL_CORRIDOR,
+ MAP_ID_SS_TIDAL_LOWER_DECK,
+ MAP_ID_SS_TIDAL_ROOMS,
+};
+
+#define MAP_GROUP_SECRET_BASE_RED_CAVE1 25
+#define MAP_GROUP_SECRET_BASE_BROWN_CAVE1 25
+#define MAP_GROUP_SECRET_BASE_BLUE_CAVE1 25
+#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE1 25
+#define MAP_GROUP_SECRET_BASE_TREE1 25
+#define MAP_GROUP_SECRET_BASE_SHRUB1 25
+#define MAP_GROUP_SECRET_BASE_RED_CAVE2 25
+#define MAP_GROUP_SECRET_BASE_BROWN_CAVE2 25
+#define MAP_GROUP_SECRET_BASE_BLUE_CAVE2 25
+#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE2 25
+#define MAP_GROUP_SECRET_BASE_TREE2 25
+#define MAP_GROUP_SECRET_BASE_SHRUB2 25
+#define MAP_GROUP_SECRET_BASE_RED_CAVE3 25
+#define MAP_GROUP_SECRET_BASE_BROWN_CAVE3 25
+#define MAP_GROUP_SECRET_BASE_BLUE_CAVE3 25
+#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE3 25
+#define MAP_GROUP_SECRET_BASE_TREE3 25
+#define MAP_GROUP_SECRET_BASE_SHRUB3 25
+#define MAP_GROUP_SECRET_BASE_RED_CAVE4 25
+#define MAP_GROUP_SECRET_BASE_BROWN_CAVE4 25
+#define MAP_GROUP_SECRET_BASE_BLUE_CAVE4 25
+#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE4 25
+#define MAP_GROUP_SECRET_BASE_TREE4 25
+#define MAP_GROUP_SECRET_BASE_SHRUB4 25
+#define MAP_GROUP_SINGLE_BATTLE_COLOSSEUM 25
+#define MAP_GROUP_TRADE_CENTER 25
+#define MAP_GROUP_RECORD_CORNER 25
+#define MAP_GROUP_DOUBLE_BATTLE_COLOSSEUM 25
+#define MAP_GROUP_LINK_CONTEST_ROOM1 25
+#define MAP_GROUP_UNKNOWN_MAP_25_29 25
+#define MAP_GROUP_UNKNOWN_MAP_25_30 25
+#define MAP_GROUP_UNKNOWN_MAP_25_31 25
+#define MAP_GROUP_UNKNOWN_MAP_25_32 25
+#define MAP_GROUP_UNKNOWN_MAP_25_33 25
+#define MAP_GROUP_UNKNOWN_MAP_25_34 25
+#define MAP_GROUP_LINK_CONTEST_ROOM2 25
+#define MAP_GROUP_LINK_CONTEST_ROOM3 25
+#define MAP_GROUP_LINK_CONTEST_ROOM4 25
+#define MAP_GROUP_LINK_CONTEST_ROOM5 25
+#define MAP_GROUP_LINK_CONTEST_ROOM6 25
+#define MAP_GROUP_INSIDE_OF_TRUCK 25
+#define MAP_GROUP_SS_TIDAL_CORRIDOR 25
+#define MAP_GROUP_SS_TIDAL_LOWER_DECK 25
+#define MAP_GROUP_SS_TIDAL_ROOMS 25
+
+//--------------------------------------------------
+// Map Group 26
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_SAFARI_ZONE_NORTHWEST,
+ MAP_ID_SAFARI_ZONE_NORTHEAST,
+ MAP_ID_SAFARI_ZONE_SOUTHWEST,
+ MAP_ID_SAFARI_ZONE_SOUTHEAST,
+ MAP_ID_BATTLE_TOWER_OUTSIDE,
+ MAP_ID_BATTLE_TOWER_LOBBY,
+ MAP_ID_BATTLE_TOWER_ELEVATOR,
+ MAP_ID_BATTLE_TOWER_CORRIDOR,
+ MAP_ID_BATTLE_TOWER_BATTLE_ROOM,
+ MAP_ID_SOUTHERN_ISLAND_EXTERIOR,
+ MAP_ID_SOUTHERN_ISLAND_INTERIOR,
+ MAP_ID_SAFARI_ZONE_REST_HOUSE,
+};
+
+#define MAP_GROUP_SAFARI_ZONE_NORTHWEST 26
+#define MAP_GROUP_SAFARI_ZONE_NORTHEAST 26
+#define MAP_GROUP_SAFARI_ZONE_SOUTHWEST 26
+#define MAP_GROUP_SAFARI_ZONE_SOUTHEAST 26
+#define MAP_GROUP_BATTLE_TOWER_OUTSIDE 26
+#define MAP_GROUP_BATTLE_TOWER_LOBBY 26
+#define MAP_GROUP_BATTLE_TOWER_ELEVATOR 26
+#define MAP_GROUP_BATTLE_TOWER_CORRIDOR 26
+#define MAP_GROUP_BATTLE_TOWER_BATTLE_ROOM 26
+#define MAP_GROUP_SOUTHERN_ISLAND_EXTERIOR 26
+#define MAP_GROUP_SOUTHERN_ISLAND_INTERIOR 26
+#define MAP_GROUP_SAFARI_ZONE_REST_HOUSE 26
+
+//--------------------------------------------------
+// Map Group 27
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE104_PROTOTYPE,
+ MAP_ID_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP,
+};
+
+#define MAP_GROUP_ROUTE104_PROTOTYPE 27
+#define MAP_GROUP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP 27
+
+//--------------------------------------------------
+// Map Group 28
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE109_SEASHORE_HOUSE,
+};
+
+#define MAP_GROUP_ROUTE109_SEASHORE_HOUSE 28
+
+//--------------------------------------------------
+// Map Group 29
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE110_TRICK_HOUSE_ENTRANCE,
+ MAP_ID_ROUTE110_TRICK_HOUSE_END,
+ MAP_ID_ROUTE110_TRICK_HOUSE_CORRIDOR,
+ MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE1,
+ MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE2,
+ MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE3,
+ MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE4,
+ MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE5,
+ MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE6,
+ MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE7,
+ MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE8,
+ MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE,
+ MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE,
+};
+
+#define MAP_GROUP_ROUTE110_TRICK_HOUSE_ENTRANCE 29
+#define MAP_GROUP_ROUTE110_TRICK_HOUSE_END 29
+#define MAP_GROUP_ROUTE110_TRICK_HOUSE_CORRIDOR 29
+#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE1 29
+#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE2 29
+#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE3 29
+#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE4 29
+#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE5 29
+#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE6 29
+#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE7 29
+#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE8 29
+#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE 29
+#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE 29
+
+//--------------------------------------------------
+// Map Group 30
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE113_GLASS_WORKSHOP,
+};
+
+#define MAP_GROUP_ROUTE113_GLASS_WORKSHOP 30
+
+//--------------------------------------------------
+// Map Group 31
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE123_BERRY_MASTERS_HOUSE,
+};
+
+#define MAP_GROUP_ROUTE123_BERRY_MASTERS_HOUSE 31
+
+//--------------------------------------------------
+// Map Group 32
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE119_WEATHER_INSTITUTE_1F,
+ MAP_ID_ROUTE119_WEATHER_INSTITUTE_2F,
+ MAP_ID_ROUTE119_HOUSE,
+};
+
+#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_1F 32
+#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_2F 32
+#define MAP_GROUP_ROUTE119_HOUSE 32
+
+//--------------------------------------------------
+// Map Group 33
+//--------------------------------------------------
+
+enum
+{
+ MAP_ID_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE,
+};
+
+#define MAP_GROUP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 33
+
+#endif // GUARD_MAP_CONSTANTS_H
diff --git a/include/map_name_popup.h b/include/map_name_popup.h
new file mode 100644
index 000000000..aeee7e029
--- /dev/null
+++ b/include/map_name_popup.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_MAP_NAME_POPUP_H
+#define GUARD_MAP_NAME_POPUP_H
+
+void ShowMapNamePopup(void);
+void HideMapNamePopup();
+
+#endif // GUARD_MAP_NAME_POPUP_H
diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h
index 6d677ad8c..f7352be22 100644
--- a/include/map_obj_lock.h
+++ b/include/map_obj_lock.h
@@ -4,7 +4,7 @@
bool8 walkrun_is_standing_still(void);
void sub_8064CDC(u8 taskId);
bool8 sub_8064CFC(void);
-void sub_8064D20(void);
+void ScriptFreezeMapObjects(void);
void sub_8064D38(u8 taskId);
bool8 sub_8064DB4(void);
void sub_8064DD8(void);
diff --git a/include/map_object_constants.h b/include/map_object_constants.h
new file mode 100644
index 000000000..79482b54a
--- /dev/null
+++ b/include/map_object_constants.h
@@ -0,0 +1,239 @@
+#ifndef GUARD_MAP_OBJECT_CONSTANTS_H
+#define GUARD_MAP_OBJECT_CONSTANTS_H
+
+enum
+{
+ MAP_OBJ_GFX_BRENDAN_NORMAL,
+ MAP_OBJ_GFX_BRENDAN_MACH_BIKE,
+ MAP_OBJ_GFX_BRENDAN_SURFING,
+ MAP_OBJ_GFX_BRENDAN_FIELD_MOVE,
+ MAP_OBJ_GFX_QUINTY_PLUMP,
+ MAP_OBJ_GFX_LITTLE_BOY_1,
+ MAP_OBJ_GFX_LITTLE_GIRL_1,
+ MAP_OBJ_GFX_BOY_1,
+ MAP_OBJ_GFX_GIRL_1,
+ MAP_OBJ_GFX_BOY_2,
+ MAP_OBJ_GFX_GIRL_2,
+ MAP_OBJ_GFX_LITTLE_BOY_2,
+ MAP_OBJ_GFX_LITTLE_GIRL_2,
+ MAP_OBJ_GFX_BOY_3,
+ MAP_OBJ_GFX_GIRL_3,
+ MAP_OBJ_GFX_BOY_4,
+ MAP_OBJ_GFX_WOMAN_1,
+ MAP_OBJ_GFX_FAT_MAN,
+ MAP_OBJ_GFX_WOMAN_2,
+ MAP_OBJ_GFX_MAN_1,
+ MAP_OBJ_GFX_WOMAN_3,
+ MAP_OBJ_GFX_OLD_MAN_1,
+ MAP_OBJ_GFX_OLD_WOMAN_1,
+ MAP_OBJ_GFX_MAN_2,
+ MAP_OBJ_GFX_WOMAN_4,
+ MAP_OBJ_GFX_MAN_3,
+ MAP_OBJ_GFX_WOMAN_5,
+ MAP_OBJ_GFX_COOK,
+ MAP_OBJ_GFX_WOMAN_6,
+ MAP_OBJ_GFX_OLD_MAN_2,
+ MAP_OBJ_GFX_OLD_WOMAN_2,
+ MAP_OBJ_GFX_CAMPER,
+ MAP_OBJ_GFX_PICNICKER,
+ MAP_OBJ_GFX_MAN_4,
+ MAP_OBJ_GFX_WOMAN_7,
+ MAP_OBJ_GFX_YOUNGSTER,
+ MAP_OBJ_GFX_BUG_CATCHER,
+ MAP_OBJ_GFX_PSYCHIC_M,
+ MAP_OBJ_GFX_SCHOOL_KID_M,
+ MAP_OBJ_GFX_MANIAC,
+ MAP_OBJ_GFX_HEX_MANIAC,
+ MAP_OBJ_GFX_WOMAN_8,
+ MAP_OBJ_GFX_SWIMMER_M,
+ MAP_OBJ_GFX_SWIMMER_F,
+ MAP_OBJ_GFX_BLACK_BELT,
+ MAP_OBJ_GFX_BEAUTY,
+ MAP_OBJ_GFX_SCIENTIST_1,
+ MAP_OBJ_GFX_LASS,
+ MAP_OBJ_GFX_GENTLEMAN,
+ MAP_OBJ_GFX_SAILOR,
+ MAP_OBJ_GFX_FISHERMAN,
+ MAP_OBJ_GFX_RUNNING_TRIATHLETE_M,
+ MAP_OBJ_GFX_RUNNING_TRIATHLETE_F,
+ MAP_OBJ_GFX_TUBER_F,
+ MAP_OBJ_GFX_TUBER_M,
+ MAP_OBJ_GFX_HIKER,
+ MAP_OBJ_GFX_CYCLING_TRIATHLETE_M,
+ MAP_OBJ_GFX_CYCLING_TRIATHLETE_F,
+ MAP_OBJ_GFX_NURSE,
+ MAP_OBJ_GFX_ITEM_BALL,
+ MAP_OBJ_GFX_BERRY_TREE,
+ MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES,
+ MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES,
+ MAP_OBJ_GFX_BRENDAN_ACRO_BIKE,
+ MAP_OBJ_GFX_PROF_BIRCH,
+ MAP_OBJ_GFX_MAN_5,
+ MAP_OBJ_GFX_MAN_6,
+ MAP_OBJ_GFX_REPORTER_M,
+ MAP_OBJ_GFX_REPORTER_F,
+ MAP_OBJ_GFX_BARD,
+ MAP_OBJ_GFX_HIPSTER,
+ MAP_OBJ_GFX_TRADER,
+ MAP_OBJ_GFX_STORYTELLER,
+ MAP_OBJ_GFX_GIDDY,
+ MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1,
+ MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2,
+ MAP_OBJ_GFX_UNUSED_NATU_DOLL,
+ MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL,
+ MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL,
+ MAP_OBJ_GFX_UNUSED_WOOPER_DOLL,
+ MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL,
+ MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL,
+ MAP_OBJ_GFX_CUTTABLE_TREE,
+ MAP_OBJ_GFX_MART_EMPLOYEE,
+ MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN,
+ MAP_OBJ_GFX_TEALA,
+ MAP_OBJ_GFX_BREAKABLE_ROCK,
+ MAP_OBJ_GFX_PUSHABLE_BOULDER,
+ MAP_OBJ_GFX_MR_BRINEYS_BOAT,
+ MAP_OBJ_GFX_MAY_NORMAL,
+ MAP_OBJ_GFX_MAY_MACH_BIKE,
+ MAP_OBJ_GFX_MAY_ACRO_BIKE,
+ MAP_OBJ_GFX_MAY_SURFING,
+ MAP_OBJ_GFX_MAY_FIELD_MOVE,
+ MAP_OBJ_GFX_TRUCK,
+ MAP_OBJ_GFX_MACHOKE_CARRYING_BOX,
+ MAP_OBJ_GFX_MACHOKE_FACING_AWAY,
+ MAP_OBJ_GFX_BIRCHS_BAG,
+ MAP_OBJ_GFX_POOCHYENA,
+ MAP_OBJ_GFX_ARTIST,
+ MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL,
+ MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE,
+ MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE,
+ MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING,
+ MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE,
+ MAP_OBJ_GFX_RIVAL_MAY_NORMAL,
+ MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE,
+ MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE,
+ MAP_OBJ_GFX_RIVAL_MAY_SURFING,
+ MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE,
+ MAP_OBJ_GFX_CAMERAMAN,
+ MAP_OBJ_GFX_BRENDAN_UNDERWATER,
+ MAP_OBJ_GFX_MAY_UNDERWATER,
+ MAP_OBJ_GFX_MOVING_BOX,
+ MAP_OBJ_GFX_CABLE_CAR,
+ MAP_OBJ_GFX_SCIENTIST_2,
+ MAP_OBJ_GFX_MAN_7,
+ MAP_OBJ_GFX_AQUA_MEMBER_M,
+ MAP_OBJ_GFX_AQUA_MEMBER_F,
+ MAP_OBJ_GFX_MAGMA_MEMBER_M,
+ MAP_OBJ_GFX_MAGMA_MEMBER_F,
+ MAP_OBJ_GFX_SIDNEY,
+ MAP_OBJ_GFX_PHOEBE,
+ MAP_OBJ_GFX_GLACIA,
+ MAP_OBJ_GFX_DRAKE,
+ MAP_OBJ_GFX_ROXANNE,
+ MAP_OBJ_GFX_BRAWLY,
+ MAP_OBJ_GFX_WATTSON,
+ MAP_OBJ_GFX_FLANNERY,
+ MAP_OBJ_GFX_NORMAN,
+ MAP_OBJ_GFX_WINONA,
+ MAP_OBJ_GFX_LIZA,
+ MAP_OBJ_GFX_TATE,
+ MAP_OBJ_GFX_WALLACE,
+ MAP_OBJ_GFX_STEVEN,
+ MAP_OBJ_GFX_WALLY,
+ MAP_OBJ_GFX_LITTLE_BOY_3,
+ MAP_OBJ_GFX_BRENDAN_FISHING,
+ MAP_OBJ_GFX_MAY_FISHING,
+ MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN,
+ MAP_OBJ_GFX_SS_TIDAL,
+ MAP_OBJ_GFX_SUBMARINE_SHADOW,
+ MAP_OBJ_GFX_PICHU_DOLL,
+ MAP_OBJ_GFX_PIKACHU_DOLL,
+ MAP_OBJ_GFX_MARILL_DOLL,
+ MAP_OBJ_GFX_TOGEPI_DOLL,
+ MAP_OBJ_GFX_CYNDAQUIL_DOLL,
+ MAP_OBJ_GFX_CHIKORITA_DOLL,
+ MAP_OBJ_GFX_TOTODILE_DOLL,
+ MAP_OBJ_GFX_JIGGLYPUFF_DOLL,
+ MAP_OBJ_GFX_MEOWTH_DOLL,
+ MAP_OBJ_GFX_CLEFAIRY_DOLL,
+ MAP_OBJ_GFX_DITTO_DOLL,
+ MAP_OBJ_GFX_SMOOCHUM_DOLL,
+ MAP_OBJ_GFX_TREECKO_DOLL,
+ MAP_OBJ_GFX_TORCHIC_DOLL,
+ MAP_OBJ_GFX_MUDKIP_DOLL,
+ MAP_OBJ_GFX_DUSKULL_DOLL,
+ MAP_OBJ_GFX_WYNAUT_DOLL,
+ MAP_OBJ_GFX_BALTOY_DOLL,
+ MAP_OBJ_GFX_KECLEON_DOLL,
+ MAP_OBJ_GFX_AZURILL_DOLL,
+ MAP_OBJ_GFX_SKITTY_DOLL,
+ MAP_OBJ_GFX_SWABLU_DOLL,
+ MAP_OBJ_GFX_GULPIN_DOLL,
+ MAP_OBJ_GFX_LOTAD_DOLL,
+ MAP_OBJ_GFX_SEEDOT_DOLL,
+ MAP_OBJ_GFX_PIKA_CUSHION,
+ MAP_OBJ_GFX_ROUND_CUSHION,
+ MAP_OBJ_GFX_KISS_CUSHION,
+ MAP_OBJ_GFX_ZIGZAG_CUSHION,
+ MAP_OBJ_GFX_SPIN_CUSHION,
+ MAP_OBJ_GFX_DIAMOND_CUSHION,
+ MAP_OBJ_GFX_BALL_CUSHION,
+ MAP_OBJ_GFX_GRASS_CUSHION,
+ MAP_OBJ_GFX_FIRE_CUSHION,
+ MAP_OBJ_GFX_WATER_CUSHION,
+ MAP_OBJ_GFX_BIG_SNORLAX_DOLL,
+ MAP_OBJ_GFX_BIG_RHYDON_DOLL,
+ MAP_OBJ_GFX_BIG_LAPRAS_DOLL,
+ MAP_OBJ_GFX_BIG_VENUSAUR_DOLL,
+ MAP_OBJ_GFX_BIG_CHARIZARD_DOLL,
+ MAP_OBJ_GFX_BIG_BLASTOISE_DOLL,
+ MAP_OBJ_GFX_BIG_WAILMER_DOLL,
+ MAP_OBJ_GFX_BIG_REGIROCK_DOLL,
+ MAP_OBJ_GFX_BIG_REGICE_DOLL,
+ MAP_OBJ_GFX_BIG_REGISTEEL_DOLL,
+ MAP_OBJ_GFX_LATIAS,
+ MAP_OBJ_GFX_LATIOS,
+ MAP_OBJ_GFX_BOY_5,
+ MAP_OBJ_GFX_CONTEST_JUDGE,
+ MAP_OBJ_GFX_BRENDAN_WATERING,
+ MAP_OBJ_GFX_MAY_WATERING,
+ MAP_OBJ_GFX_BRENDAN_DECORATING,
+ MAP_OBJ_GFX_MAY_DECORATING,
+ MAP_OBJ_GFX_ARCHIE,
+ MAP_OBJ_GFX_MAXIE,
+ MAP_OBJ_GFX_KYOGRE_1,
+ MAP_OBJ_GFX_GROUDON_1,
+ MAP_OBJ_GFX_FOSSIL,
+ MAP_OBJ_GFX_REGIROCK,
+ MAP_OBJ_GFX_REGICE,
+ MAP_OBJ_GFX_REGISTEEL,
+ MAP_OBJ_GFX_SKITTY,
+ MAP_OBJ_GFX_KECLEON_1,
+ MAP_OBJ_GFX_KYOGRE_2,
+ MAP_OBJ_GFX_GROUDON_2,
+ MAP_OBJ_GFX_RAYQUAZA,
+ MAP_OBJ_GFX_ZIGZAGOON,
+ MAP_OBJ_GFX_PIKACHU,
+ MAP_OBJ_GFX_AZUMARILL,
+ MAP_OBJ_GFX_WINGULL,
+ MAP_OBJ_GFX_KECLEON_2,
+ MAP_OBJ_GFX_TUBER_M_SWIMMING,
+ MAP_OBJ_GFX_AZURILL,
+ MAP_OBJ_GFX_MOM,
+ MAP_OBJ_GFX_LINK_BRENDAN,
+ MAP_OBJ_GFX_LINK_MAY,
+};
+
+enum {
+ SHADOW_SIZE_S,
+ SHADOW_SIZE_M,
+ SHADOW_SIZE_L,
+ SHADOW_SIZE_XL
+};
+
+enum {
+ TRACKS_NONE,
+ TRACKS_FOOT,
+ TRACKS_BIKE_TIRE
+};
+
+#endif // GUARD_MAP_OBJECT_CONSTANTS_H
diff --git a/include/matsuda_debug_menu.h b/include/matsuda_debug_menu.h
new file mode 100644
index 000000000..5df53d688
--- /dev/null
+++ b/include/matsuda_debug_menu.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_MATSUDADEBUG_H
+#define GUARD_MATSUDADEBUG_H
+
+#define BIT(n) (1 << (n))
+
+void sub_80AB184(void);
+void sub_80AA280(u8);
+void sub_80AA5E8(u8);
+void sub_80AA658(u8);
+
+#endif
diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h
new file mode 100644
index 000000000..473fcf5c8
--- /dev/null
+++ b/include/mauville_old_man.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_MAUVILLE_OLD_MAN_H
+#define GUARD_MAUVILLE_OLD_MAN_H
+
+void SetMauvilleOldMan(void);
+void sub_80F7DC0(void);
+void sub_80F7F30(void);
+void sub_80F7F80(u8);
+void sub_80F83D0(void);
+void sub_80F83F8(void);
+
+#endif // GUARD_MAUVILLE_OLD_MAN_H
diff --git a/include/menu.h b/include/menu.h
index 9592fc291..9eeebce60 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -5,10 +5,32 @@
struct MenuAction
{
- u8 *text;
- u8 (*func)(void);
+ const u8 *text;
+ u8 (*func)();
};
+struct MenuAction2
+{
+ const u8 *text;
+ void (*func)(u8);
+};
+
+struct MenuAction3
+{
+ void (*func1)(u8);
+ void (*func2)(u8);
+};
+
+extern const struct MenuAction gMenuYesNoItems[];
+
+extern struct Window gMenuWindow;
+extern struct Window *gMenuWindowPtr;
+extern u16 gMenuTextTileOffset;
+extern u16 gMenuTextWindowContentTileOffset;
+extern u16 gMenuMessageBoxContentTileOffset;
+
+void CloseMenu(void);
+void AppendToList(u8 *list, u8 *pindex, u32 value);
void InitMenuWindow(const struct WindowConfig *);
void MultistepInitMenuWindowBegin(const struct WindowConfig *);
bool32 MultistepInitMenuWindowContinue(void);
@@ -16,12 +38,12 @@ void unref_sub_8071DA4(struct WindowConfig *, u16);
void MenuLoadTextWindowGraphics_OverrideFrameType(u8);
void MenuLoadTextWindowGraphics(void);
void BasicInitMenuWindow(const struct WindowConfig *);
-void MenuPrint(u8 *, u8, u8);
+void MenuPrint(const u8 *, u8, u8);
void MenuZeroFillWindowRect(u8, u8, u8, u8);
void MenuFillWindowRectWithBlankTile(u8, u8, u8, u8);
void MenuZeroFillScreen(void);
void MenuDrawTextWindow(u8, u8, u8, u8);
-void sub_8071F40(u8 *);
+void sub_8071F40(const u8 *);
void sub_8071F60(u8, u8, u8, u8);
u16 unref_sub_8071F98(u8, u8);
void unref_sub_8071FBC(u16, u8, u8, u8, u8);
@@ -39,7 +61,7 @@ s8 ProcessMenuInput(void);
s8 ProcessMenuInputNoWrap(void);
u8 MoveMenuCursor3(s8);
u8 MoveMenuCursor4(s8);
-void sub_807274C(u8, u8, u8, u8, u8 * const [][2], u8, u32);
+void sub_807274C(u8, u8, u8, u8, const struct MenuAction[], u8, u32);
s8 sub_80727CC(void);
u8 sub_807288C(u8);
void PrintMenuItems(u8, u8, u8, const struct MenuAction[]);
@@ -47,17 +69,17 @@ void PrintMenuItemsReordered(u8, u8, u8, const struct MenuAction[], u8*);
void InitYesNoMenu(u8, u8, u8);
void DisplayYesNoMenu(u8, u8, u32);
s8 ProcessMenuInputNoWrap_(void);
-u8 MenuPrint_PixelCoords(u8 *, u8, u16, u8);
-u8 sub_8072A18(u8 *, u8, u16, u8, u32);
+u8 MenuPrint_PixelCoords(const u8 *, u8, u16, u8);
+u8 sub_8072A18(const u8 *, u8, u16, u8, u32);
u8 unref_sub_8072A5C(u8 *, u8 *, u8, u16, u8, u32);
-int sub_8072AB0(u8 *, u8, u16, u8, u8, u32);
+int sub_8072AB0(const u8 *, u8, u16, u8, u8, u32);
void MenuPrint_RightAligned(u8 *, u8, u8);
-void sub_8072B80(u8 *, u8, u8, u8 *);
-void sub_8072BD8(u8 *, u8, u8, u16);
+void sub_8072B80(const u8 *, u8, u8, const u8 *);
+void sub_8072BD8(const u8 *, u8, u8, u16);
u8 *sub_8072C14(u8 *, s32, u8, u8);
u8 *sub_8072C44(u8 *, s32, u8, u8);
-u8 *sub_8072C74(u8 *, u8 *, u8, u8);
-u8 sub_8072CA4(u8 *s);
+u8 *sub_8072C74(u8 *, const u8 *, u8, u8);
+u8 sub_8072CA4(const u8 *s);
u8 sub_8072CBC(void);
void sub_8072CD4(u8 *, u8 *, u8 *);
u32 MenuUpdateWindowText_OverrideLineLength(u8);
@@ -67,6 +89,10 @@ void RedrawMenuCursor(u8, u8);
void unref_sub_8072DC0(void);
void sub_8072DCC(u8);
void sub_8072DDC(u8);
-void sub_8072DEC(void);
+void HandleDestroyMenuCursors(void);
+
+#if GERMAN
+u8 *de_sub_8073174(u8 *name, const u8 *format);
+#endif
#endif // GUARD_MENU_H
diff --git a/include/menu_cursor.h b/include/menu_cursor.h
index cc6cc16bc..ca82ef244 100644
--- a/include/menu_cursor.h
+++ b/include/menu_cursor.h
@@ -7,7 +7,7 @@ void sub_814A590(void);
u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
u8 sub_814A758(u8 a1, u8 a2, u8 a3, u8 a4);
u8 unref_sub_814A7AC(u8 a1, u16 a2, u8 a3);
-void sub_814A7FC(void);
+void DestroyMenuCursor(void);
void sub_814A880(u8 a1, u8 a2);
void sub_814A904(void);
void sub_814A958(u8 a1);
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
new file mode 100644
index 000000000..0e39a3732
--- /dev/null
+++ b/include/menu_helpers.h
@@ -0,0 +1,28 @@
+#ifndef GUARD_MENU_HELPERS_H
+#define GUARD_MENU_HELPERS_H
+
+#include "task.h"
+
+struct YesNoFuncTable
+{
+ void (*yesFunc)(u8);
+ void (*noFunc)(u8);
+};
+
+void DoYesNoFuncWithChoice(u8, const struct YesNoFuncTable *);
+void sub_80F914C(u8, const struct YesNoFuncTable *);
+void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16);
+bool8 sub_80F9344(void);
+u8 sub_80F9344(void);
+void sub_80F9368(void);
+void sub_80F9438(void);
+void sub_80F944C(void);
+void CreateVerticalScrollIndicators(u8, u8, u8); // include/decoration.h
+void sub_80F979C(u32, u32); // unknown args
+void DestroyVerticalScrollIndicator(u8);
+void BuyMenuFreeMemory(void);
+void sub_80F98DC(int);
+void sub_80F996C(u8);
+void LoadScrollIndicatorPalette(void);
+
+#endif // GUARD_MENU_HELPERS_H
diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h
new file mode 100644
index 000000000..f4250f07b
--- /dev/null
+++ b/include/metatile_behavior.h
@@ -0,0 +1,136 @@
+#ifndef GUARD_METATILE_BEHAVIOR
+#define GUARD_METATILE_BEHAVIOR
+
+bool8 MetatileBehavior_IsATile(u8);
+bool8 MetatileBehavior_IsEncounterTile(u8);
+bool8 MetatileBehavior_IsJumpEast(u8);
+bool8 MetatileBehavior_IsJumpWest(u8);
+bool8 MetatileBehavior_IsJumpNorth(u8);
+bool8 MetatileBehavior_IsJumpSouth(u8);
+bool8 MetatileBehavior_IsPokeGrass(u8);
+bool8 MetatileBehavior_IsSandOrDeepSand(u8);
+bool8 MetatileBehavior_IsDeepSand(u8);
+bool8 MetatileBehavior_IsReflective(u8);
+bool8 MetatileBehavior_IsIce(u8);
+bool8 MetatileBehavior_IsWarpDoor(u8);
+bool8 MetatileBehavior_IsDoor(u8);
+bool8 MetatileBehavior_IsEscalator(u8);
+bool8 unref_sub_8056EE0(u8);
+bool8 MetatileBehavior_IsLadder(u8);
+bool8 MetatileBehavior_IsNonAnimDoor(u8);
+bool8 MetatileBehavior_IsDeepSouthWarp(u8);
+bool8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8);
+bool8 MetatileBehavior_IsEastArrowWarp(u8);
+bool8 MetatileBehavior_IsWestArrowWarp(u8);
+bool8 MetatileBehavior_IsNorthArrowWarp(u8);
+bool8 MetatileBehavior_IsSouthArrowWarp(u8);
+bool8 MetatileBehavior_IsArrowWarp(u8);
+bool8 MetatileBehavior_IsMoveTile(u8);
+bool8 MetatileBehavior_IsIce_2(u8);
+bool8 MetatileBehavior_IsTrickHouseSlipperyFloor(u8);
+bool8 MetatileBehavior_0x05(u8);
+bool8 MetatileBehavior_IsWalkNorth(u8);
+bool8 MetatileBehavior_IsWalkSouth(u8);
+bool8 MetatileBehavior_IsWalkWest(u8);
+bool8 MetatileBehavior_IsWalkEast(u8);
+bool8 MetatileBehavior_IsNorthwardCurrent(u8);
+bool8 MetatileBehavior_IsSouthwardCurrent(u8);
+bool8 MetatileBehavior_IsWestwardCurrent(u8);
+bool8 MetatileBehavior_IsEastwardCurrent(u8);
+bool8 MetatileBehavior_IsSlideNorth(u8);
+bool8 MetatileBehavior_IsSlideSouth(u8);
+bool8 MetatileBehavior_IsSlideWest(u8);
+bool8 MetatileBehavior_IsSlideEast(u8);
+bool8 MetatileBehavior_IsCounter(u8);
+bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8, u8);
+bool8 MetatileBehavior_IsPC(u8);
+bool8 is_tile_x84(u8);
+bool8 sub_80571C0(u8);
+bool8 MetatileBehavior_IsSecretBaseCave(u8);
+bool8 MetatileBehavior_IsSecretBaseTree(u8);
+bool8 MetatileBehavior_IsSecretBaseShrub(u8);
+bool8 MetatileBehavior_IsSecretBasePC(u8);
+bool8 sub_805724C(u8);
+bool8 unref_sub_8057260(u8);
+bool8 sub_8057274(u8);
+bool8 sub_8057288(u8);
+bool8 sub_805729C(u8);
+bool8 sub_80572B0(u8);
+bool8 unref_sub_80572C4(u8);
+bool8 sub_80572D8(u8);
+bool8 sub_80572EC(u8);
+bool8 sub_8057300(u8);
+bool8 sub_8057314(u8);
+bool8 sub_8057328(u8);
+bool8 sub_805733C(u8);
+bool8 sub_8057350(u8);
+bool8 sub_8057364(u8);
+bool8 sub_8057378(u8);
+bool8 sub_805738C(u8);
+bool8 MetatileBehavior_HasRipples(u8);
+bool8 MetatileBehavior_IsPuddle(u8);
+bool8 MetatileBehavior_IsTallGrass(u8);
+bool8 MetatileBehavior_IsLongGrass(u8);
+bool8 MetatileBehavior_IsBerryTreeSoil(u8);
+bool8 MetatileBehavior_IsAshGrass(u8);
+bool8 MetatileBehavior_IsUnusedFootprintMetatile(u8);
+bool8 MetatileBehavior_IsBridge(u8);
+u8 sub_8057450(u8);
+bool8 MetatileBehavior_IsLandWildEncounter(u8);
+bool8 MetatileBehavior_IsWaterWildEncounter(u8);
+bool8 sub_80574C4(u8);
+bool8 sub_80574D8(u8);
+bool8 sub_80574EC(u8);
+bool8 sub_805750C(u8);
+bool8 MetatileBehavior_IsShallowFlowingWater(u8);
+bool8 MetatileBehavior_IsThinIce(u8);
+bool8 MetatileBehavior_IsCrackedIce(u8);
+bool8 sub_8057568(u8);
+bool8 unref_sub_8057584(u8);
+bool8 sub_805759C(u8);
+bool8 MetatileBehavior_IsEastBlocked(u8);
+bool8 MetatileBehavior_IsWestBlocked(u8);
+bool8 MetatileBehavior_IsNorthBlocked(u8);
+bool8 MetatileBehavior_IsSouthBlocked(u8);
+bool8 MetatileBehavior_IsShortGrass(u8);
+bool8 MetatileBehavior_IsHotSprings(u8);
+bool8 MetatileBehavior_IsWaterfall(u8);
+bool8 MetatileBehavior_IsFortreeBridge(u8);
+bool8 sub_80576A0(u8);
+bool8 sub_80576B4(u8);
+bool8 sub_80576C8(u8);
+bool8 sub_80576DC(u8);
+bool8 MetatileBehavior_IsPacifidlogLog(u8);
+bool8 MetatileBehavior_IsTrickHousePuzzleDoor(u8);
+bool8 MetatileBehavior_IsRegionMap(u8);
+bool8 MetatileBehavior_IsClosedSootopolisGymDoor(u8);
+bool8 MetatileBehavior_IsRoulette(u8);
+bool8 MetatileBehavior_IsPokeblockFeeder(u8);
+bool8 MetatileBehavior_0xBB(u8);
+bool8 MetatileBehavior_0xBC(u8);
+bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8);
+bool8 MetatileBehavior_IsLavaridge1FWarp(u8);
+bool8 MetatileBehavior_IsAquaHideoutWarp(u8);
+bool8 MetatileBehavior_IsSurfableFishableWater(u8);
+bool8 MetatileBehavior_IsMtPyreHole(u8);
+bool8 MetatileBehavior_IsCrackedFloorHole(u8);
+bool8 MetatileBehavior_IsCrackedFloor(u8);
+bool8 MetatileBehavior_IsMuddySlope(u8);
+bool8 MetatileBehavior_IsBumpySlope(u8);
+bool8 MetatileBehavior_IsIsolatedVerticalRail(u8);
+bool8 MetatileBehavior_IsIsolatedHorizontalRail(u8);
+bool8 MetatileBehavior_IsVerticalRail(u8);
+bool8 MetatileBehavior_IsHorizontalRail(u8);
+bool8 MetatileBehavior_IsSeaweed(u8);
+bool8 MetatileBehavior_IsRunningDisallowed(u8);
+bool8 MetatileBehavior_IsCuttableGrass(u8);
+bool8 sub_805791C(u8);
+bool8 MetatileBehavior_IsPictureBookShelf(u8);
+bool8 MetatileBehavior_IsBookShelf(u8);
+bool8 MetatileBehavior_IsPokeCenterBookShelf(u8);
+bool8 MetatileBehavior_IsVase(u8);
+bool8 MetatileBehavior_IsTrashCan(u8);
+bool8 MetatileBehavior_IsShopShelf(u8);
+bool8 MetatileBehavior_IsBlueprint(u8);
+
+#endif // GUARD_METATILE_BEHAVIOR
diff --git a/include/metatile_behaviors.h b/include/metatile_behaviors.h
new file mode 100644
index 000000000..1241fbb81
--- /dev/null
+++ b/include/metatile_behaviors.h
@@ -0,0 +1,173 @@
+#ifndef GUARD_METATILE_BEHAVIORS
+#define GUARD_METATILE_BEHAVIORS
+
+#define MB_NORMAL 0x00
+#define MB_TALL_GRASS 0x02
+#define MB_LONG_GRASS 0x03
+#define MB_04 0x04
+#define MB_05 0x05
+#define MB_DEEP_SAND 0x06
+#define MB_SHORT_GRASS 0x07
+#define MB_CAVE 0x08
+#define MB_LONG_GRASS_SOUTH_EDGE 0x09
+#define MB_NO_RUNNING 0x0A
+#define MB_0B 0x0B
+#define MB_MOUNTAIN_TOP 0x0C
+#define MB_BATTLE_PYRAMID_WARP 0x0D
+#define MB_MOSSDEEP_GYM_WARP 0x0E
+#define MB_MT_PYRE_HOLE 0x0F
+#define MB_POND_WATER 0x10
+#define MB_SEMI_DEEP_WATER 0x11
+#define MB_DEEP_WATER 0x12
+#define MB_WATERFALL 0x13
+#define MB_SOOTOPOLIS_DEEP_WATER 0x14
+#define MB_OCEAN_WATER 0x15
+#define MB_PUDDLE 0x16
+#define MB_SHALLOW_WATER 0x17
+#define MB_18 0x18
+#define MB_NO_SURFACING 0x19
+#define MB_1A 0x1A
+#define MB_STAIRS_OUTSIDE_ABANDONED_SHIP 0x1B
+#define MB_SHOAL_CAVE_ENTRANCE 0x1C
+#define MB_ICE 0x20
+#define MB_SAND 0x21
+#define MB_SEAWEED 0x22
+#define MB_ASHGRASS 0x24
+#define MB_25 0x25
+#define MB_THIN_ICE 0x26
+#define MB_CRACKED_ICE 0x27
+#define MB_HOT_SPRINGS 0x28
+#define MB_LAVARIDGE_GYM_B1F_WARP 0x29
+#define MB_SEAWEED_NO_SURFACING 0x2A
+#define MB_REFLECTION_UNDER_BRIDGE 0x2B
+#define MB_IMPASSABLE_EAST 0x30
+#define MB_IMPASSABLE_WEST 0x31
+#define MB_IMPASSABLE_NORTH 0x32
+#define MB_IMPASSABLE_SOUTH 0x33
+#define MB_IMPASSABLE_NORTHEAST 0x34
+#define MB_IMPASSABLE_NORTHWEST 0x35
+#define MB_IMPASSABLE_SOUTHEAST 0x36
+#define MB_IMPASSABLE_SOUTHWEST 0x37
+#define MB_JUMP_EAST 0x38
+#define MB_JUMP_WEST 0x39
+#define MB_JUMP_NORTH 0x3A
+#define MB_JUMP_SOUTH 0x3B
+#define MB_JUMP_SOUTHEAST 0x3E
+#define MB_JUMP_SOUTHWEST 0x3F
+#define MB_WALK_EAST 0x40
+#define MB_WALK_WEST 0x41
+#define MB_WALK_NORTH 0x42
+#define MB_WALK_SOUTH 0x43
+#define MB_SLIDE_EAST 0x44
+#define MB_SLIDE_WEST 0x45
+#define MB_SLIDE_NORTH 0x46
+#define MB_SLIDE_SOUTH 0x47
+#define MB_TRICK_HOUSE_PUZZLE_8_FLOOR 0x48
+#define MB_EASTWARD_CURRENT 0x50
+#define MB_WESTWARD_CURRENT 0x51
+#define MB_NORTHWARD_CURRENT 0x52
+#define MB_SOUTHWARD_CURRENT 0x53
+#define MB_NON_ANIMATED_DOOR 0x60
+#define MB_LADDER 0x61
+#define MB_EAST_ARROW_WARP 0x62
+#define MB_WEST_ARROW_WARP 0x63
+#define MB_NORTH_ARROW_WARP 0x64
+#define MB_SOUTH_ARROW_WARP 0x65
+#define MB_CRACKED_FLOOR_HOLE 0x66
+#define MB_AQUA_HIDEOUT_WARP 0x67
+#define MB_LAVARIDGE_GYM_1F_WARP 0x68
+#define MB_ANIMATED_DOOR 0x69
+#define MB_UP_ESCALATOR 0x6A
+#define MB_DOWN_ESCALATOR 0x6B
+#define MB_WATER_DOOR 0x6C
+#define MB_WATER_SOUTH_ARROW_WARP 0x6D
+#define MB_DEEP_SOUTH_WARP 0x6E
+#define MB_WARP_OR_BRIDGE 0x70
+#define MB_ROUTE120_NORTH_BRIDGE_1 0x72
+#define MB_ROUTE120_NORTH_BRIDGE_2 0x73
+#define MB_PACIFIDLOG_VERTICAL_LOG_1 0x74
+#define MB_PACIFIDLOG_VERTICAL_LOG_2 0x75
+#define MB_PACIFIDLOG_HORIZONTAL_LOG_1 0x76
+#define MB_PACIFIDLOG_HORIZONTAL_LOG_2 0x77
+#define MB_FORTREE_BRIDGE 0x78
+#define MB_ROUTE120_SOUTH_BRIDGE_1 0x7A
+#define MB_ROUTE120_SOUTH_BRIDGE_2 0x7B
+#define MB_ROUTE120_NORTH_BRIDGE_3 0x7C
+#define MB_ROUTE120_NORTH_BRIDGE_4 0x7D
+#define MB_ROUTE110_BRIDGE 0x7F
+#define MB_COUNTER 0x80
+#define MB_PC 0x83
+#define MB_84 0x84
+#define MB_REGION_MAP 0x85
+#define MB_TELEVISION 0x86
+#define MB_POKEBLOCK_FEEDER 0x87
+#define MB_SLOT_MACHINE 0x89
+#define MB_ROULETTE 0x8A
+#define MB_CLOSED_SOOTOPOLIS_GYM_DOOR 0x8B
+#define MB_TRICK_HOUSE_PUZZLE_DOOR 0x8C
+#define MB_8D 0x8D
+#define MB_8E 0x8E
+#define MB_QUESTIONNAIRE 0x8F
+#define MB_SECRET_BASE_SPOT_RED_CAVE 0x90
+#define MB_91 0x91
+#define MB_SECRET_BASE_SPOT_BROWN_CAVE 0x92
+#define MB_93 0x93
+#define MB_SECRET_BASE_SPOT_YELLOW_CAVE 0x94
+#define MB_95 0x95
+#define MB_SECRET_BASE_SPOT_TREE_1 0x96
+#define MB_97 0x97
+#define MB_SECRET_BASE_SPOT_SHRUB 0x98
+#define MB_99 0x99
+#define MB_SECRET_BASE_SPOT_BLUE_CAVE 0x9A
+#define MB_9B 0x9B
+#define MB_SECRET_BASE_SPOT_TREE_2 0x9C
+#define MB_9D 0x9D
+#define MB_BERRY_TREE_SOIL 0xA0
+#define MB_SECRET_BASE_PC 0xB0
+#define MB_B1 0xB1
+#define MB_B2 0xB2
+#define MB_B3 0xB3
+#define MB_B4 0xB4
+#define MB_B5 0xB5
+#define MB_B6 0xB6
+#define MB_B7 0xB7
+#define MB_B8 0xB8
+#define MB_B9 0xB9
+#define MB_BA 0xBA
+#define MB_BB 0xBB
+#define MB_BC 0xBC
+#define MB_BD 0xBD
+#define MB_BE 0xBE
+#define MB_BF 0xBF
+#define MB_BED 0xC0
+#define MB_C1 0xC1
+#define MB_C2 0xC2
+#define MB_C3 0xC3
+#define MB_C4 0xC4
+#define MB_C5 0xC5
+#define MB_C6 0xC6
+#define MB_C7 0xC7
+#define MB_C8 0xC8
+#define MB_C9 0xC9
+#define MB_CA 0xCA
+#define MB_CB 0xCB
+#define MB_CC 0xCC
+#define MB_CD 0xCD
+#define MB_CE 0xCE
+#define MB_CF 0xCF
+#define MB_MUDDY_SLOPE 0xD0
+#define MB_BUMPY_SLOPE 0xD1
+#define MB_CRACKED_FLOOR 0xD2
+#define MB_ISOLATED_VERTICAL_RAIL 0xD3
+#define MB_ISOLATED_HORIZONTAL_RAIL 0xD4
+#define MB_VERTICAL_RAIL 0xD5
+#define MB_HORIZONTAL_RAIL 0xD6
+#define MB_PICTURE_BOOK_SHELF 0xE0
+#define MB_BOOKSHELF 0xE1
+#define MB_POKEMON_CENTER_BOOKSHELF 0xE2
+#define MB_VASE 0xE3
+#define MB_TRASH_CAN 0xE4
+#define MB_SHOP_SHELF 0xE5
+#define MB_BLUEPRINT 0xE6
+
+#endif // GUARD_METATILE_BEHAVIORS
diff --git a/include/moves.h b/include/moves.h
new file mode 100644
index 000000000..e3b6d3113
--- /dev/null
+++ b/include/moves.h
@@ -0,0 +1,363 @@
+#ifndef GUARD_MOVES_H
+#define GUARD_MOVES_H
+
+enum
+{
+ MOVE_NONE,
+ MOVE_POUND,
+ MOVE_KARATE_CHOP,
+ MOVE_DOUBLE_SLAP,
+ MOVE_COMET_PUNCH,
+ MOVE_MEGA_PUNCH,
+ MOVE_PAY_DAY,
+ MOVE_FIRE_PUNCH,
+ MOVE_ICE_PUNCH,
+ MOVE_THUNDER_PUNCH,
+ MOVE_SCRATCH,
+ MOVE_VICE_GRIP,
+ MOVE_GUILLOTINE,
+ MOVE_RAZOR_WIND,
+ MOVE_SWORDS_DANCE,
+ MOVE_CUT,
+ MOVE_GUST,
+ MOVE_WING_ATTACK,
+ MOVE_WHIRLWIND,
+ MOVE_FLY,
+ MOVE_BIND,
+ MOVE_SLAM,
+ MOVE_VINE_WHIP,
+ MOVE_STOMP,
+ MOVE_DOUBLE_KICK,
+ MOVE_MEGA_KICK,
+ MOVE_JUMP_KICK,
+ MOVE_ROLLING_KICK,
+ MOVE_SAND_ATTACK,
+ MOVE_HEADBUTT,
+ MOVE_HORN_ATTACK,
+ MOVE_FURY_ATTACK,
+ MOVE_HORN_DRILL,
+ MOVE_TACKLE,
+ MOVE_BODY_SLAM,
+ MOVE_WRAP,
+ MOVE_TAKE_DOWN,
+ MOVE_THRASH,
+ MOVE_DOUBLE_EDGE,
+ MOVE_TAIL_WHIP,
+ MOVE_POISON_STING,
+ MOVE_TWINEEDLE,
+ MOVE_PIN_MISSILE,
+ MOVE_LEER,
+ MOVE_BITE,
+ MOVE_GROWL,
+ MOVE_ROAR,
+ MOVE_SING,
+ MOVE_SUPERSONIC,
+ MOVE_SONIC_BOOM,
+ MOVE_DISABLE,
+ MOVE_ACID,
+ MOVE_EMBER,
+ MOVE_FLAMETHROWER,
+ MOVE_MIST,
+ MOVE_WATER_GUN,
+ MOVE_HYDRO_PUMP,
+ MOVE_SURF,
+ MOVE_ICE_BEAM,
+ MOVE_BLIZZARD,
+ MOVE_PSYBEAM,
+ MOVE_BUBBLE_BEAM,
+ MOVE_AURORA_BEAM,
+ MOVE_HYPER_BEAM,
+ MOVE_PECK,
+ MOVE_DRILL_PECK,
+ MOVE_SUBMISSION,
+ MOVE_LOW_KICK,
+ MOVE_COUNTER,
+ MOVE_SEISMIC_TOSS,
+ MOVE_STRENGTH,
+ MOVE_ABSORB,
+ MOVE_MEGA_DRAIN,
+ MOVE_LEECH_SEED,
+ MOVE_GROWTH,
+ MOVE_RAZOR_LEAF,
+ MOVE_SOLAR_BEAM,
+ MOVE_POISON_POWDER,
+ MOVE_STUN_SPORE,
+ MOVE_SLEEP_POWDER,
+ MOVE_PETAL_DANCE,
+ MOVE_STRING_SHOT,
+ MOVE_DRAGON_RAGE,
+ MOVE_FIRE_SPIN,
+ MOVE_THUNDER_SHOCK,
+ MOVE_THUNDERBOLT,
+ MOVE_THUNDER_WAVE,
+ MOVE_THUNDER,
+ MOVE_ROCK_THROW,
+ MOVE_EARTHQUAKE,
+ MOVE_FISSURE,
+ MOVE_DIG,
+ MOVE_TOXIC,
+ MOVE_CONFUSION,
+ MOVE_PSYCHIC,
+ MOVE_HYPNOSIS,
+ MOVE_MEDITATE,
+ MOVE_AGILITY,
+ MOVE_QUICK_ATTACK,
+ MOVE_RAGE,
+ MOVE_TELEPORT,
+ MOVE_NIGHT_SHADE,
+ MOVE_MIMIC,
+ MOVE_SCREECH,
+ MOVE_DOUBLE_TEAM,
+ MOVE_RECOVER,
+ MOVE_HARDEN,
+ MOVE_MINIMIZE,
+ MOVE_SMOKESCREEN,
+ MOVE_CONFUSE_RAY,
+ MOVE_WITHDRAW,
+ MOVE_DEFENSE_CURL,
+ MOVE_BARRIER,
+ MOVE_LIGHT_SCREEN,
+ MOVE_HAZE,
+ MOVE_REFLECT,
+ MOVE_FOCUS_ENERGY,
+ MOVE_BIDE,
+ MOVE_METRONOME,
+ MOVE_MIRROR_MOVE,
+ MOVE_SELF_DESTRUCT,
+ MOVE_EGG_BOMB,
+ MOVE_LICK,
+ MOVE_SMOG,
+ MOVE_SLUDGE,
+ MOVE_BONE_CLUB,
+ MOVE_FIRE_BLAST,
+ MOVE_WATERFALL,
+ MOVE_CLAMP,
+ MOVE_SWIFT,
+ MOVE_SKULL_BASH,
+ MOVE_SPIKE_CANNON,
+ MOVE_CONSTRICT,
+ MOVE_AMNESIA,
+ MOVE_KINESIS,
+ MOVE_SOFT_BOILED,
+ MOVE_HI_JUMP_KICK,
+ MOVE_GLARE,
+ MOVE_DREAM_EATER,
+ MOVE_POISON_GAS,
+ MOVE_BARRAGE,
+ MOVE_LEECH_LIFE,
+ MOVE_LOVELY_KISS,
+ MOVE_SKY_ATTACK,
+ MOVE_TRANSFORM,
+ MOVE_BUBBLE,
+ MOVE_DIZZY_PUNCH,
+ MOVE_SPORE,
+ MOVE_FLASH,
+ MOVE_PSYWAVE,
+ MOVE_SPLASH,
+ MOVE_ACID_ARMOR,
+ MOVE_CRABHAMMER,
+ MOVE_EXPLOSION,
+ MOVE_FURY_SWIPES,
+ MOVE_BONEMERANG,
+ MOVE_REST,
+ MOVE_ROCK_SLIDE,
+ MOVE_HYPER_FANG,
+ MOVE_SHARPEN,
+ MOVE_CONVERSION,
+ MOVE_TRI_ATTACK,
+ MOVE_SUPER_FANG,
+ MOVE_SLASH,
+ MOVE_SUBSTITUTE,
+ MOVE_STRUGGLE,
+ MOVE_SKETCH,
+ MOVE_TRIPLE_KICK,
+ MOVE_THIEF,
+ MOVE_SPIDER_WEB,
+ MOVE_MIND_READER,
+ MOVE_NIGHTMARE,
+ MOVE_FLAME_WHEEL,
+ MOVE_SNORE,
+ MOVE_CURSE,
+ MOVE_FLAIL,
+ MOVE_CONVERSION_2,
+ MOVE_AEROBLAST,
+ MOVE_COTTON_SPORE,
+ MOVE_REVERSAL,
+ MOVE_SPITE,
+ MOVE_POWDER_SNOW,
+ MOVE_PROTECT,
+ MOVE_MACH_PUNCH,
+ MOVE_SCARY_FACE,
+ MOVE_FAINT_ATTACK,
+ MOVE_SWEET_KISS,
+ MOVE_BELLY_DRUM,
+ MOVE_SLUDGE_BOMB,
+ MOVE_MUD_SLAP,
+ MOVE_OCTAZOOKA,
+ MOVE_SPIKES,
+ MOVE_ZAP_CANNON,
+ MOVE_FORESIGHT,
+ MOVE_DESTINY_BOND,
+ MOVE_PERISH_SONG,
+ MOVE_ICY_WIND,
+ MOVE_DETECT,
+ MOVE_BONE_RUSH,
+ MOVE_LOCK_ON,
+ MOVE_OUTRAGE,
+ MOVE_SANDSTORM,
+ MOVE_GIGA_DRAIN,
+ MOVE_ENDURE,
+ MOVE_CHARM,
+ MOVE_ROLLOUT,
+ MOVE_FALSE_SWIPE,
+ MOVE_SWAGGER,
+ MOVE_MILK_DRINK,
+ MOVE_SPARK,
+ MOVE_FURY_CUTTER,
+ MOVE_STEEL_WING,
+ MOVE_MEAN_LOOK,
+ MOVE_ATTRACT,
+ MOVE_SLEEP_TALK,
+ MOVE_HEAL_BELL,
+ MOVE_RETURN,
+ MOVE_PRESENT,
+ MOVE_FRUSTRATION,
+ MOVE_SAFEGUARD,
+ MOVE_PAIN_SPLIT,
+ MOVE_SACRED_FIRE,
+ MOVE_MAGNITUDE,
+ MOVE_DYNAMIC_PUNCH,
+ MOVE_MEGAHORN,
+ MOVE_DRAGON_BREATH,
+ MOVE_BATON_PASS,
+ MOVE_ENCORE,
+ MOVE_PURSUIT,
+ MOVE_RAPID_SPIN,
+ MOVE_SWEET_SCENT,
+ MOVE_IRON_TAIL,
+ MOVE_METAL_CLAW,
+ MOVE_VITAL_THROW,
+ MOVE_MORNING_SUN,
+ MOVE_SYNTHESIS,
+ MOVE_MOONLIGHT,
+ MOVE_HIDDEN_POWER,
+ MOVE_CROSS_CHOP,
+ MOVE_TWISTER,
+ MOVE_RAIN_DANCE,
+ MOVE_SUNNY_DAY,
+ MOVE_CRUNCH,
+ MOVE_MIRROR_COAT,
+ MOVE_PSYCH_UP,
+ MOVE_EXTREME_SPEED,
+ MOVE_ANCIENT_POWER,
+ MOVE_SHADOW_BALL,
+ MOVE_FUTURE_SIGHT,
+ MOVE_ROCK_SMASH,
+ MOVE_WHIRLPOOL,
+ MOVE_BEAT_UP,
+ MOVE_FAKE_OUT,
+ MOVE_UPROAR,
+ MOVE_STOCKPILE,
+ MOVE_SPIT_UP,
+ MOVE_SWALLOW,
+ MOVE_HEAT_WAVE,
+ MOVE_HAIL,
+ MOVE_TORMENT,
+ MOVE_FLATTER,
+ MOVE_WILL_O_WISP,
+ MOVE_MEMENTO,
+ MOVE_FACADE,
+ MOVE_FOCUS_PUNCH,
+ MOVE_SMELLING_SALT,
+ MOVE_FOLLOW_ME,
+ MOVE_NATURE_POWER,
+ MOVE_CHARGE,
+ MOVE_TAUNT,
+ MOVE_HELPING_HAND,
+ MOVE_TRICK,
+ MOVE_ROLE_PLAY,
+ MOVE_WISH,
+ MOVE_ASSIST,
+ MOVE_INGRAIN,
+ MOVE_SUPERPOWER,
+ MOVE_MAGIC_COAT,
+ MOVE_RECYCLE,
+ MOVE_REVENGE,
+ MOVE_BRICK_BREAK,
+ MOVE_YAWN,
+ MOVE_KNOCK_OFF,
+ MOVE_ENDEAVOR,
+ MOVE_ERUPTION,
+ MOVE_SKILL_SWAP,
+ MOVE_IMPRISON,
+ MOVE_REFRESH,
+ MOVE_GRUDGE,
+ MOVE_SNATCH,
+ MOVE_SECRET_POWER,
+ MOVE_DIVE,
+ MOVE_ARM_THRUST,
+ MOVE_CAMOUFLAGE,
+ MOVE_TAIL_GLOW,
+ MOVE_LUSTER_PURGE,
+ MOVE_MIST_BALL,
+ MOVE_FEATHER_DANCE,
+ MOVE_TEETER_DANCE,
+ MOVE_BLAZE_KICK,
+ MOVE_MUD_SPORT,
+ MOVE_ICE_BALL,
+ MOVE_NEEDLE_ARM,
+ MOVE_SLACK_OFF,
+ MOVE_HYPER_VOICE,
+ MOVE_POISON_FANG,
+ MOVE_CRUSH_CLAW,
+ MOVE_BLAST_BURN,
+ MOVE_HYDRO_CANNON,
+ MOVE_METEOR_MASH,
+ MOVE_ASTONISH,
+ MOVE_WEATHER_BALL,
+ MOVE_AROMATHERAPY,
+ MOVE_FAKE_TEARS,
+ MOVE_AIR_CUTTER,
+ MOVE_OVERHEAT,
+ MOVE_ODOR_SLEUTH,
+ MOVE_ROCK_TOMB,
+ MOVE_SILVER_WIND,
+ MOVE_METAL_SOUND,
+ MOVE_GRASS_WHISTLE,
+ MOVE_TICKLE,
+ MOVE_COSMIC_POWER,
+ MOVE_WATER_SPOUT,
+ MOVE_SIGNAL_BEAM,
+ MOVE_SHADOW_PUNCH,
+ MOVE_EXTRASENSORY,
+ MOVE_SKY_UPPERCUT,
+ MOVE_SAND_TOMB,
+ MOVE_SHEER_COLD,
+ MOVE_MUDDY_WATER,
+ MOVE_BULLET_SEED,
+ MOVE_AERIAL_ACE,
+ MOVE_ICICLE_SPEAR,
+ MOVE_IRON_DEFENSE,
+ MOVE_BLOCK,
+ MOVE_HOWL,
+ MOVE_DRAGON_CLAW,
+ MOVE_FRENZY_PLANT,
+ MOVE_BULK_UP,
+ MOVE_BOUNCE,
+ MOVE_MUD_SHOT,
+ MOVE_POISON_TAIL,
+ MOVE_COVET,
+ MOVE_VOLT_TACKLE,
+ MOVE_MAGICAL_LEAF,
+ MOVE_WATER_SPORT,
+ MOVE_CALM_MIND,
+ MOVE_LEAF_BLADE,
+ MOVE_DRAGON_DANCE,
+ MOVE_ROCK_BLAST,
+ MOVE_SHOCK_WAVE,
+ MOVE_WATER_PULSE,
+ MOVE_DOOM_DESIRE,
+ MOVE_PSYCHO_BOOST,
+};
+
+#endif // GUARD_MOVES_H \ No newline at end of file
diff --git a/include/mystery_event_menu.h b/include/mystery_event_menu.h
new file mode 100644
index 000000000..8801789d9
--- /dev/null
+++ b/include/mystery_event_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_MYSTERY_EVENT_MENU_H
+#define GUARD_MYSTERY_EVENT_MENU_H
+
+void CB2_InitMysteryEventMenu(void);
+
+#endif // GUARD_MYSTERY_EVENT_MENU_H
diff --git a/include/mystery_event_script.h b/include/mystery_event_script.h
new file mode 100644
index 000000000..766303588
--- /dev/null
+++ b/include/mystery_event_script.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_MYSTERY_EVENT_SCRIPT_H
+#define GUARD_MYSTERY_EVENT_SCRIPT_H
+
+u32 sub_812613C(u8 *);
+void sub_8126160(u32 val);
+u16 sub_8126338(void);
+
+#endif // GUARD_MYSTERY_EVENT_SCRIPT_H
diff --git a/include/name_string_util.h b/include/name_string_util.h
new file mode 100644
index 000000000..110f8cc22
--- /dev/null
+++ b/include/name_string_util.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_NAMESTRINGUTIL_H
+#define GUARD_NAMESTRINGUTIL_H
+
+void PadNameString(u8 *a1, u8 a2);
+void SanitizeNameString(u8 *a1);
+
+#endif
diff --git a/include/naming_screen.h b/include/naming_screen.h
new file mode 100644
index 000000000..d136417ba
--- /dev/null
+++ b/include/naming_screen.h
@@ -0,0 +1,85 @@
+#ifndef GUARD_NAMINGSCREEN_H
+#define GUARD_NAMINGSCREEN_H
+
+#include "main.h"
+
+#define KBEVENT_NONE 0
+#define KBEVENT_PRESSED_A 5
+#define KBEVENT_PRESSED_B 6
+#define KBEVENT_PRESSED_SELECT 8
+#define KBEVENT_PRESSED_START 9
+
+enum
+{
+ NAMING_SCREEN_TEMPLATE_PLAYER_NAME,
+ NAMING_SCREEN_TEMPLATE_BOX_NAME,
+ NAMING_SCREEN_TEMPLATE_MON_NAME,
+};
+
+struct NamingScreenTemplate
+{
+ u8 unk0;
+ u8 maxChars;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4; //mode?
+ u8 unk5;
+ u8 unk6;
+ u8 unk7;
+ const u8 *title;
+};
+
+struct NamingScreenData
+{
+ /*0x00*/ u8 state;
+ /*0x01*/ u8 templateNum;
+ /*0x02*/ u16 unk2;
+ /*0x04*/ u16 bg1vOffset;
+ /*0x06*/ u16 bg2vOffset;
+ /*0x08*/ u16 unk8;
+ /*0x0A*/ u16 unkA;
+ /*0x0C*/ u8 unkC;
+ /*0x0D*/ u8 unkD;
+ /*0x0E*/ u8 currentPage;
+ /*0x0F*/ u8 cursorSpriteId;
+ /*0x10*/ u8 unk10;
+ /*0x11*/ u8 textBuffer[0x10];
+ /*0x21*/ u8 filler21[0x13];
+ const struct NamingScreenTemplate *template;
+ /*0x38*/ u8 *destBuffer;
+ /*0x3C*/ u16 unk3C; //savedKeyRepeatStartDelay
+ /*0x3E*/ u16 unk3E;
+ /*0x40*/ u16 unk40;
+ /*0x42*/ u32 unk42;
+ /*0x46*/ MainCallback returnCallback;
+};
+
+enum
+{
+ PAGE_UPPER,
+ PAGE_LOWER,
+ PAGE_OTHERS,
+};
+
+enum
+{
+ MAIN_STATE_BEGIN_FADE_IN,
+ MAIN_STATE_WAIT_FADE_IN,
+ MAIN_STATE_HANDLE_INPUT,
+ MAIN_STATE_MOVE_TO_OK_BUTTON,
+ MAIN_STATE_START_PAGE_SWAP,
+ MAIN_STATE_WAIT_PAGE_SWAP,
+ MAIN_STATE_6,
+ MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE,
+ MAIN_STATE_BEGIN_FADE_OUT,
+};
+
+enum
+{
+ INPUT_STATE_DISABLED,
+ INPUT_STATE_ENABLED,
+};
+
+void DoNamingScreen(u8 r0, u8 *r1, u16 r2, u16 r3, u32 s0, MainCallback s4);
+
+#endif
diff --git a/include/new_game.h b/include/new_game.h
index dce42bf52..f59154af4 100644
--- a/include/new_game.h
+++ b/include/new_game.h
@@ -1,14 +1,14 @@
#ifndef GUARD_NEW_GAME_H
#define GUARD_NEW_GAME_H
-void write_word_to_mem(u32 a1, u8 *a2);
-void sub_8052D10(u8 *a1, u8 *a2);
-void set_player_trainer_id(void);
+void write_word_to_mem(u32 var, u8 *dataPtr);
+void copy_word_to_mem(u8 *copyTo, u8 *copyFrom);
+void InitPlayerTrainerId(void);
void SetDefaultOptions(void);
-void sub_8052D78(void);
+void ClearPokedexFlags(void);
void sub_8052DA8(void);
void sub_8052DE4(void);
-void sub_8052E04(void);
+void WarpToTruck(void);
void ClearSav2(void);
void sub_8052E4C(void);
void NewGameInitData(void);
diff --git a/include/opponent_constants.h b/include/opponent_constants.h
new file mode 100644
index 000000000..1829facaa
--- /dev/null
+++ b/include/opponent_constants.h
@@ -0,0 +1,702 @@
+#ifndef GUARD_OPPONENT_CONSTANTS_H
+#define GUARD_OPPONENT_CONSTANTS_H
+
+enum
+{
+ OPPONENT_NONE,
+ OPPONENT_ARCHIE_1,
+ OPPONENT_GRUNT_1,
+ OPPONENT_GRUNT_2,
+ OPPONENT_GRUNT_3,
+ OPPONENT_GRUNT_4,
+ OPPONENT_GRUNT_5,
+ OPPONENT_GRUNT_6,
+ OPPONENT_GRUNT_7,
+ OPPONENT_GRUNT_8,
+ OPPONENT_GRUNT_9,
+ OPPONENT_GRUNT_10,
+ OPPONENT_GRUNT_11,
+ OPPONENT_GRUNT_12,
+ OPPONENT_GRUNT_13,
+ OPPONENT_GRUNT_14,
+ OPPONENT_GRUNT_15,
+ OPPONENT_GRUNT_16,
+ OPPONENT_GRUNT_17,
+ OPPONENT_GRUNT_18,
+ OPPONENT_GRUNT_19,
+ OPPONENT_GRUNT_20,
+ OPPONENT_GRUNT_21,
+ OPPONENT_GRUNT_22,
+ OPPONENT_GRUNT_23,
+ OPPONENT_GRUNT_24,
+ OPPONENT_GRUNT_25,
+ OPPONENT_GRUNT_26,
+ OPPONENT_GRUNT_27,
+ OPPONENT_ANONYMOUS_1,
+ OPPONENT_MATT_1,
+ OPPONENT_MATT_2,
+ OPPONENT_SHELLY_1,
+ OPPONENT_SHELLY_2,
+ OPPONENT_ARCHIE_2,
+ OPPONENT_ARCHIE_3,
+ OPPONENT_DAISY,
+ OPPONENT_ROSE_1,
+ OPPONENT_LILY,
+ OPPONENT_VIOLET,
+ OPPONENT_ROSE_2,
+ OPPONENT_ROSE_3,
+ OPPONENT_ROSE_4,
+ OPPONENT_ROSE_5,
+ OPPONENT_DUSTY_1,
+ OPPONENT_CHIP,
+ OPPONENT_FOSTER,
+ OPPONENT_DUSTY_2,
+ OPPONENT_DUSTY_3,
+ OPPONENT_DUSTY_4,
+ OPPONENT_DUSTY_5,
+ OPPONENT_GABBY_AND_TY_1,
+ OPPONENT_GABBY_AND_TY_2,
+ OPPONENT_GABBY_AND_TY_3,
+ OPPONENT_GABBY_AND_TY_4,
+ OPPONENT_GABBY_AND_TY_5,
+ OPPONENT_GABBY_AND_TY_6,
+ OPPONENT_LOLA_1,
+ OPPONENT_CARMEN,
+ OPPONENT_GWEN,
+ OPPONENT_LOLA_2,
+ OPPONENT_LOLA_3,
+ OPPONENT_LOLA_4,
+ OPPONENT_LOLA_5,
+ OPPONENT_RICKY_1,
+ OPPONENT_SIMON,
+ OPPONENT_CHARLIE,
+ OPPONENT_RICKY_2,
+ OPPONENT_RICKY_3,
+ OPPONENT_RICKY_4,
+ OPPONENT_RICKY_5,
+ OPPONENT_RANDALL,
+ OPPONENT_PARKER,
+ OPPONENT_GEORGE,
+ OPPONENT_BERKE,
+ OPPONENT_CLYDE,
+ OPPONENT_VINCENT,
+ OPPONENT_LEROY,
+ OPPONENT_WILTON_1,
+ OPPONENT_EDGAR,
+ OPPONENT_ALBERT,
+ OPPONENT_SAMUEL,
+ OPPONENT_VITO,
+ OPPONENT_OWEN,
+ OPPONENT_WILTON_2,
+ OPPONENT_WILTON_3,
+ OPPONENT_WILTON_4,
+ OPPONENT_WILTON_5,
+ OPPONENT_WARREN,
+ OPPONENT_MARY,
+ OPPONENT_LORI,
+ OPPONENT_JODY,
+ OPPONENT_WENDY,
+ OPPONENT_ELAINE,
+ OPPONENT_BROOKE_1,
+ OPPONENT_JENNIFER,
+ OPPONENT_HOPE,
+ OPPONENT_SHANNON,
+ OPPONENT_MICHELLE,
+ OPPONENT_CAROLINE,
+ OPPONENT_JULIE,
+ OPPONENT_BROOKE_2,
+ OPPONENT_BROOKE_3,
+ OPPONENT_BROOKE_4,
+ OPPONENT_BROOKE_5,
+ OPPONENT_PATRICIA,
+ OPPONENT_KINDRA,
+ OPPONENT_TAMMY,
+ OPPONENT_VALERIE_1,
+ OPPONENT_TASHA,
+ OPPONENT_VALERIE_2,
+ OPPONENT_VALERIE_3,
+ OPPONENT_VALERIE_4,
+ OPPONENT_VALERIE_5,
+ OPPONENT_CINDY_1,
+ OPPONENT_ANONYMOUS_2,
+ OPPONENT_BRIANNA_1,
+ OPPONENT_CINDY_2,
+ OPPONENT_BRIANNA_2,
+ OPPONENT_ANETTE,
+ OPPONENT_CINDY_3,
+ OPPONENT_CINDY_4,
+ OPPONENT_CINDY_5,
+ OPPONENT_CINDY_6,
+ OPPONENT_MELISSA,
+ OPPONENT_SHEILA,
+ OPPONENT_SHIRLEY,
+ OPPONENT_JESSICA_1,
+ OPPONENT_CONNIE,
+ OPPONENT_BRIDGET,
+ OPPONENT_OLIVIA,
+ OPPONENT_TIFFANY,
+ OPPONENT_JESSICA_2,
+ OPPONENT_JESSICA_3,
+ OPPONENT_JESSICA_4,
+ OPPONENT_JESSICA_5,
+ OPPONENT_WINSTON_1,
+ OPPONENT_ANONYMOUS_3,
+ OPPONENT_GARRET,
+ OPPONENT_WINSTON_2,
+ OPPONENT_WINSTON_3,
+ OPPONENT_WINSTON_4,
+ OPPONENT_WINSTON_5,
+ OPPONENT_STEVE_1,
+ OPPONENT_CHRIS,
+ OPPONENT_MARK,
+ OPPONENT_KENN,
+ OPPONENT_STEVE_2,
+ OPPONENT_STEVE_3,
+ OPPONENT_STEVE_4,
+ OPPONENT_STEVE_5,
+ OPPONENT_LUIS,
+ OPPONENT_AUSTIN,
+ OPPONENT_DOUGLAS,
+ OPPONENT_DARRIN,
+ OPPONENT_TONY_1,
+ OPPONENT_JEROME,
+ OPPONENT_MATTHEW,
+ OPPONENT_DAVID,
+ OPPONENT_SPENCER,
+ OPPONENT_ROLAND,
+ OPPONENT_CODY,
+ OPPONENT_STAN,
+ OPPONENT_BARRY,
+ OPPONENT_DEAN,
+ OPPONENT_RODNEY,
+ OPPONENT_RICHARD,
+ OPPONENT_HERMAN,
+ OPPONENT_ANONYMOUS_4,
+ OPPONENT_GILBERT,
+ OPPONENT_FRANKLIN,
+ OPPONENT_DANNY,
+ OPPONENT_JACK,
+ OPPONENT_DUDLEY,
+ OPPONENT_CHAD,
+ OPPONENT_TONY_2,
+ OPPONENT_TONY_3,
+ OPPONENT_TONY_4,
+ OPPONENT_TONY_5,
+ OPPONENT_HIDEKI,
+ OPPONENT_HITOSHI,
+ OPPONENT_KIYO,
+ OPPONENT_KOICHI,
+ OPPONENT_NOB_1,
+ OPPONENT_NOB_2,
+ OPPONENT_NOB_3,
+ OPPONENT_NOB_4,
+ OPPONENT_NOB_5,
+ OPPONENT_YUJI,
+ OPPONENT_DAISUKE,
+ OPPONENT_ATSUSHI,
+ OPPONENT_KIRK,
+ OPPONENT_SCOTT,
+ OPPONENT_HARVEY,
+ OPPONENT_SHAWN,
+ OPPONENT_RANDY,
+ OPPONENT_DALTON_1,
+ OPPONENT_DALTON_2,
+ OPPONENT_DALTON_3,
+ OPPONENT_DALTON_4,
+ OPPONENT_DALTON_5,
+ OPPONENT_COLE,
+ OPPONENT_FLINT,
+ OPPONENT_AXLE,
+ OPPONENT_JAKE,
+ OPPONENT_ANDY,
+ OPPONENT_BERNIE_1,
+ OPPONENT_BERNIE_2,
+ OPPONENT_BERNIE_3,
+ OPPONENT_BERNIE_4,
+ OPPONENT_BERNIE_5,
+ OPPONENT_DREW,
+ OPPONENT_CLIFF,
+ OPPONENT_LARRY,
+ OPPONENT_SHANE,
+ OPPONENT_JUSTIN,
+ OPPONENT_ETHAN_1,
+ OPPONENT_JEFF,
+ OPPONENT_TRAVIS,
+ OPPONENT_ETHAN_2,
+ OPPONENT_ETHAN_3,
+ OPPONENT_ETHAN_4,
+ OPPONENT_ETHAN_5,
+ OPPONENT_BRENT,
+ OPPONENT_DONALD,
+ OPPONENT_TAYLOR,
+ OPPONENT_BRANDON_1,
+ OPPONENT_DEREK,
+ OPPONENT_BRANDON_2,
+ OPPONENT_BRANDON_3,
+ OPPONENT_BRANDON_4,
+ OPPONENT_BRANDON_5,
+ OPPONENT_EDWARD,
+ OPPONENT_PRESTON,
+ OPPONENT_VIRGIL,
+ OPPONENT_FRITZ,
+ OPPONENT_WILLIAM,
+ OPPONENT_JOSHUA,
+ OPPONENT_CAMERON_1,
+ OPPONENT_CAMERON_2,
+ OPPONENT_CAMERON_3,
+ OPPONENT_CAMERON_4,
+ OPPONENT_CAMERON_5,
+ OPPONENT_JACLYN,
+ OPPONENT_HANNAH,
+ OPPONENT_SAMANTHA,
+ OPPONENT_MAURA,
+ OPPONENT_KAYLA,
+ OPPONENT_ALEXIS,
+ OPPONENT_JACKI_1,
+ OPPONENT_JACKI_2,
+ OPPONENT_JACKI_3,
+ OPPONENT_JACKI_4,
+ OPPONENT_JACKI_5,
+ OPPONENT_WALTER_1,
+ OPPONENT_TUCKER,
+ OPPONENT_THOMAS,
+ OPPONENT_WALTER_2,
+ OPPONENT_WALTER_3,
+ OPPONENT_WALTER_4,
+ OPPONENT_WALTER_5,
+ OPPONENT_SIDNEY,
+ OPPONENT_PHOEBE,
+ OPPONENT_GLACIA,
+ OPPONENT_DRAKE,
+ OPPONENT_ROXANNE,
+ OPPONENT_BRAWLY,
+ OPPONENT_WATTSON,
+ OPPONENT_FLANNERY,
+ OPPONENT_NORMAN,
+ OPPONENT_WINONA,
+ OPPONENT_TATE_AND_LIZA,
+ OPPONENT_WALLACE,
+ OPPONENT_JERRY_1,
+ OPPONENT_TED,
+ OPPONENT_PAUL,
+ OPPONENT_JERRY_2,
+ OPPONENT_JERRY_3,
+ OPPONENT_JERRY_4,
+ OPPONENT_JERRY_5,
+ OPPONENT_KAREN_1,
+ OPPONENT_GEORGIA,
+ OPPONENT_KAREN_2,
+ OPPONENT_KAREN_3,
+ OPPONENT_KAREN_4,
+ OPPONENT_KAREN_5,
+ OPPONENT_KATE_AND_JOY,
+ OPPONENT_ANNA_AND_MEG_1,
+ OPPONENT_ANNA_AND_MEG_2,
+ OPPONENT_ANNA_AND_MEG_3,
+ OPPONENT_ANNA_AND_MEG_4,
+ OPPONENT_ANNA_AND_MEG_5,
+ OPPONENT_VICTOR,
+ OPPONENT_MIGUEL_1,
+ OPPONENT_COLTON,
+ OPPONENT_MIGUEL_2,
+ OPPONENT_MIGUEL_3,
+ OPPONENT_MIGUEL_4,
+ OPPONENT_MIGUEL_5,
+ OPPONENT_VICTORIA,
+ OPPONENT_VANESSA,
+ OPPONENT_MARISSA,
+ OPPONENT_ISABEL_1,
+ OPPONENT_ISABEL_2,
+ OPPONENT_ISABEL_3,
+ OPPONENT_ISABEL_4,
+ OPPONENT_ISABEL_5,
+ OPPONENT_TIMOTHY_1,
+ OPPONENT_TIMOTHY_2,
+ OPPONENT_TIMOTHY_3,
+ OPPONENT_TIMOTHY_4,
+ OPPONENT_TIMOTHY_5,
+ OPPONENT_VICKY,
+ OPPONENT_SHELBY_1,
+ OPPONENT_SHELBY_2,
+ OPPONENT_SHELBY_3,
+ OPPONENT_SHELBY_4,
+ OPPONENT_SHELBY_5,
+ OPPONENT_CALVIN_1,
+ OPPONENT_BILLY,
+ OPPONENT_JOSH,
+ OPPONENT_TOMMY,
+ OPPONENT_JOEY,
+ OPPONENT_BEN,
+ OPPONENT_ANONYMOUS_5,
+ OPPONENT_KEVIN,
+ OPPONENT_NEAL,
+ OPPONENT_DILLON,
+ OPPONENT_CALVIN_2,
+ OPPONENT_CALVIN_3,
+ OPPONENT_CALVIN_4,
+ OPPONENT_CALVIN_5,
+ OPPONENT_EDDIE,
+ OPPONENT_ALLEN,
+ OPPONENT_TIMMY,
+ OPPONENT_STEVEN,
+ OPPONENT_ANDREW,
+ OPPONENT_IVAN,
+ OPPONENT_CLAUDE,
+ OPPONENT_ELLIOT_1,
+ OPPONENT_NED,
+ OPPONENT_DALE,
+ OPPONENT_NOLAN,
+ OPPONENT_BARNY,
+ OPPONENT_WADE,
+ OPPONENT_CARTER,
+ OPPONENT_ELLIOT_2,
+ OPPONENT_ELLIOT_3,
+ OPPONENT_ELLIOT_4,
+ OPPONENT_ELLIOT_5,
+ OPPONENT_RONALD,
+ OPPONENT_JACOB,
+ OPPONENT_ANTHONY,
+ OPPONENT_BENJAMIN_1,
+ OPPONENT_BENJAMIN_2,
+ OPPONENT_BENJAMIN_3,
+ OPPONENT_BENJAMIN_4,
+ OPPONENT_BENJAMIN_5,
+ OPPONENT_ABIGAIL_1,
+ OPPONENT_JASMINE,
+ OPPONENT_ABIGAIL_2,
+ OPPONENT_ABIGAIL_3,
+ OPPONENT_ABIGAIL_4,
+ OPPONENT_ABIGAIL_5,
+ OPPONENT_DYLAN_1,
+ OPPONENT_DYLAN_2,
+ OPPONENT_DYLAN_3,
+ OPPONENT_DYLAN_4,
+ OPPONENT_DYLAN_5,
+ OPPONENT_MARIA_1,
+ OPPONENT_MARIA_2,
+ OPPONENT_MARIA_3,
+ OPPONENT_MARIA_4,
+ OPPONENT_MARIA_5,
+ OPPONENT_CALEB,
+ OPPONENT_ANONYMOUS_6,
+ OPPONENT_ISAIAH_1,
+ OPPONENT_ANONYMOUS_7,
+ OPPONENT_CHASE,
+ OPPONENT_ISAIAH_2,
+ OPPONENT_ISAIAH_3,
+ OPPONENT_ISAIAH_4,
+ OPPONENT_ISAIAH_5,
+ OPPONENT_ANONYMOUS_8,
+ OPPONENT_CONNOR,
+ OPPONENT_ANONYMOUS_9,
+ OPPONENT_KATELYN_1,
+ OPPONENT_ALLISON,
+ OPPONENT_KATELYN_2,
+ OPPONENT_KATELYN_3,
+ OPPONENT_KATELYN_4,
+ OPPONENT_KATELYN_5,
+ OPPONENT_NICOLAS_1,
+ OPPONENT_NICOLAS_2,
+ OPPONENT_NICOLAS_3,
+ OPPONENT_NICOLAS_4,
+ OPPONENT_NICOLAS_5,
+ OPPONENT_AARON,
+ OPPONENT_PERRY,
+ OPPONENT_HUGH,
+ OPPONENT_PHIL,
+ OPPONENT_JARED,
+ OPPONENT_ANONYMOUS_10,
+ OPPONENT_TANNER,
+ OPPONENT_WILL,
+ OPPONENT_COLIN,
+ OPPONENT_ROBERT_1,
+ OPPONENT_BENNY,
+ OPPONENT_CHESTER,
+ OPPONENT_ROBERT_2,
+ OPPONENT_ROBERT_3,
+ OPPONENT_ROBERT_4,
+ OPPONENT_ROBERT_5,
+ OPPONENT_ALEX,
+ OPPONENT_BECK,
+ OPPONENT_YASU,
+ OPPONENT_TAKASHI,
+ OPPONENT_MAKOTO,
+ OPPONENT_HIDEO_1,
+ OPPONENT_LAO_1,
+ OPPONENT_LUNG,
+ OPPONENT_LAO_2,
+ OPPONENT_LAO_3,
+ OPPONENT_LAO_4,
+ OPPONENT_LAO_5,
+ OPPONENT_TESSA,
+ OPPONENT_LAURA,
+ OPPONENT_CYNDY_1,
+ OPPONENT_CORA,
+ OPPONENT_JILL,
+ OPPONENT_CYNDY_2,
+ OPPONENT_CYNDY_3,
+ OPPONENT_CYNDY_4,
+ OPPONENT_CYNDY_5,
+ OPPONENT_MADELINE_1,
+ OPPONENT_CLARISSA,
+ OPPONENT_ANGELICA,
+ OPPONENT_MADELINE_2,
+ OPPONENT_MADELINE_3,
+ OPPONENT_MADELINE_4,
+ OPPONENT_MADELINE_5,
+ OPPONENT_BEVERLY,
+ OPPONENT_DAWN,
+ OPPONENT_NICOLE,
+ OPPONENT_DENISE,
+ OPPONENT_BETH,
+ OPPONENT_TARA,
+ OPPONENT_MISSY,
+ OPPONENT_ALICE,
+ OPPONENT_JENNY_1,
+ OPPONENT_GRACE,
+ OPPONENT_TANYA,
+ OPPONENT_SHARON,
+ OPPONENT_NIKKI,
+ OPPONENT_BRENDA,
+ OPPONENT_KATIE,
+ OPPONENT_SUSIE,
+ OPPONENT_KARA,
+ OPPONENT_DANA,
+ OPPONENT_ERIN,
+ OPPONENT_DEBRA,
+ OPPONENT_LINDA,
+ OPPONENT_KAYLEE,
+ OPPONENT_LAUREL,
+ OPPONENT_DARCY,
+ OPPONENT_JENNY_2,
+ OPPONENT_JENNY_3,
+ OPPONENT_JENNY_4,
+ OPPONENT_JENNY_5,
+ OPPONENT_HEIDI,
+ OPPONENT_BECKY,
+ OPPONENT_CAROL,
+ OPPONENT_NANCY,
+ OPPONENT_MARTHA,
+ OPPONENT_DIANA_1,
+ OPPONENT_NINA,
+ OPPONENT_IRENE,
+ OPPONENT_DIANA_2,
+ OPPONENT_DIANA_3,
+ OPPONENT_DIANA_4,
+ OPPONENT_DIANA_5,
+ OPPONENT_AMY_AND_LIV_1,
+ OPPONENT_AMY_AND_LIV_2,
+ OPPONENT_GINA_AND_MIA_1,
+ OPPONENT_MIU_AND_YUKI,
+ OPPONENT_AMY_AND_LIV_3,
+ OPPONENT_GINA_AND_MIA_2,
+ OPPONENT_AMY_AND_LIV_4,
+ OPPONENT_AMY_AND_LIV_5,
+ OPPONENT_AMY_AND_LIV_6,
+ OPPONENT_HUEY,
+ OPPONENT_EDMOND,
+ OPPONENT_ERNEST_1,
+ OPPONENT_DWAYNE,
+ OPPONENT_PHILLIP,
+ OPPONENT_LEONARD,
+ OPPONENT_DUNCAN,
+ OPPONENT_ERNEST_2,
+ OPPONENT_ERNEST_3,
+ OPPONENT_ERNEST_4,
+ OPPONENT_ERNEST_5,
+ OPPONENT_ANONYMOUS_11,
+ OPPONENT_ANONYMOUS_12,
+ OPPONENT_ANONYMOUS_13,
+ OPPONENT_SONNY,
+ OPPONENT_DONOVAN,
+ OPPONENT_GERALD,
+ OPPONENT_KELVIN,
+ OPPONENT_KODY,
+ OPPONENT_TEVIN,
+ OPPONENT_DAMON,
+ OPPONENT_PABLO,
+ OPPONENT_EDWIN_1,
+ OPPONENT_HECTOR_1,
+ OPPONENT_HECTOR_2,
+ OPPONENT_EDWIN_2,
+ OPPONENT_EDWIN_3,
+ OPPONENT_EDWIN_4,
+ OPPONENT_EDWIN_5,
+ OPPONENT_WALLY_1,
+ OPPONENT_BRENDAN_1,
+ OPPONENT_BRENDAN_2,
+ OPPONENT_BRENDAN_3,
+ OPPONENT_BRENDAN_4,
+ OPPONENT_BRENDAN_5,
+ OPPONENT_BRENDAN_6,
+ OPPONENT_BRENDAN_7,
+ OPPONENT_BRENDAN_8,
+ OPPONENT_BRENDAN_9,
+ OPPONENT_MAY_1,
+ OPPONENT_MAY_2,
+ OPPONENT_MAY_3,
+ OPPONENT_MAY_4,
+ OPPONENT_MAY_5,
+ OPPONENT_MAY_6,
+ OPPONENT_MAY_7,
+ OPPONENT_MAY_8,
+ OPPONENT_MAY_9,
+ OPPONENT_ISAAC_1,
+ OPPONENT_RILEY,
+ OPPONENT_AIDAN,
+ OPPONENT_ISAAC_2,
+ OPPONENT_ISAAC_3,
+ OPPONENT_ISAAC_4,
+ OPPONENT_ISAAC_5,
+ OPPONENT_LYDIA_1,
+ OPPONENT_ALEXIA,
+ OPPONENT_DANIELLE,
+ OPPONENT_LYDIA_2,
+ OPPONENT_LYDIA_3,
+ OPPONENT_LYDIA_4,
+ OPPONENT_LYDIA_5,
+ OPPONENT_JACKSON_1,
+ OPPONENT_CARLOS,
+ OPPONENT_SEBASTIAN,
+ OPPONENT_JACKSON_2,
+ OPPONENT_JACKSON_3,
+ OPPONENT_JACKSON_4,
+ OPPONENT_JACKSON_5,
+ OPPONENT_CATHERINE_1,
+ OPPONENT_JENNA,
+ OPPONENT_SOPHIA,
+ OPPONENT_CATHERINE_2,
+ OPPONENT_CATHERINE_3,
+ OPPONENT_CATHERINE_4,
+ OPPONENT_CATHERINE_5,
+ OPPONENT_MAXIE_1,
+ OPPONENT_GRUNT_28,
+ OPPONENT_GRUNT_29,
+ OPPONENT_GRUNT_30,
+ OPPONENT_GRUNT_31,
+ OPPONENT_GRUNT_32,
+ OPPONENT_GRUNT_33,
+ OPPONENT_GRUNT_34,
+ OPPONENT_GRUNT_35,
+ OPPONENT_GRUNT_36,
+ OPPONENT_GRUNT_37,
+ OPPONENT_GRUNT_38,
+ OPPONENT_GRUNT_39,
+ OPPONENT_GRUNT_40,
+ OPPONENT_GRUNT_41,
+ OPPONENT_GRUNT_42,
+ OPPONENT_GRUNT_43,
+ OPPONENT_GRUNT_44,
+ OPPONENT_GRUNT_45,
+ OPPONENT_GRUNT_46,
+ OPPONENT_GRUNT_47,
+ OPPONENT_GRUNT_48,
+ OPPONENT_GRUNT_49,
+ OPPONENT_GRUNT_50,
+ OPPONENT_GRUNT_51,
+ OPPONENT_GRUNT_52,
+ OPPONENT_GRUNT_53,
+ OPPONENT_GRUNT_54,
+ OPPONENT_ANONYMOUS_14,
+ OPPONENT_ANONYMOUS_15,
+ OPPONENT_TABITHA_1,
+ OPPONENT_TABITHA_2,
+ OPPONENT_ANONYMOUS_16,
+ OPPONENT_COURTNEY_1,
+ OPPONENT_COURTNEY_2,
+ OPPONENT_MAXIE_2,
+ OPPONENT_MAXIE_3,
+ OPPONENT_TIANA,
+ OPPONENT_HALEY_1,
+ OPPONENT_JANICE,
+ OPPONENT_VIVI,
+ OPPONENT_HALEY_2,
+ OPPONENT_HALEY_3,
+ OPPONENT_HALEY_4,
+ OPPONENT_HALEY_5,
+ OPPONENT_SALLY,
+ OPPONENT_ROBIN,
+ OPPONENT_ANDREA,
+ OPPONENT_CRISSY,
+ OPPONENT_RICK,
+ OPPONENT_LYLE,
+ OPPONENT_JOSE,
+ OPPONENT_DOUG,
+ OPPONENT_GREG,
+ OPPONENT_KENT,
+ OPPONENT_JAMES_1,
+ OPPONENT_JAMES_2,
+ OPPONENT_JAMES_3,
+ OPPONENT_JAMES_4,
+ OPPONENT_JAMES_5,
+ OPPONENT_BRICE,
+ OPPONENT_TRENT_1,
+ OPPONENT_LENNY,
+ OPPONENT_LUCAS_1,
+ OPPONENT_ALAN,
+ OPPONENT_CLARK,
+ OPPONENT_ERIC,
+ OPPONENT_LUCAS_2,
+ OPPONENT_MIKE_1,
+ OPPONENT_MIKE_2,
+ OPPONENT_TRENT_2,
+ OPPONENT_TRENT_3,
+ OPPONENT_TRENT_4,
+ OPPONENT_TRENT_5,
+ OPPONENT_DEZ_AND_LUKE,
+ OPPONENT_LEA_AND_JED,
+ OPPONENT_LOIS_AND_HAL_1,
+ OPPONENT_LOIS_AND_HAL_2,
+ OPPONENT_LOIS_AND_HAL_3,
+ OPPONENT_LOIS_AND_HAL_4,
+ OPPONENT_LOIS_AND_HAL_5,
+ OPPONENT_JOHANNA,
+ OPPONENT_ZANE,
+ OPPONENT_VIVIAN,
+ OPPONENT_SADIE,
+ OPPONENT_HIDEO_2,
+ OPPONENT_KEIGO,
+ OPPONENT_TSUNAO,
+ OPPONENT_TERRELL,
+ OPPONENT_KYLEE,
+ OPPONENT_WALLY_2,
+ OPPONENT_WALLY_3,
+ OPPONENT_WALLY_4,
+ OPPONENT_WALLY_5,
+ OPPONENT_WALLY_6,
+ OPPONENT_BRENDAN_10,
+ OPPONENT_BRENDAN_11,
+ OPPONENT_BRENDAN_12,
+ OPPONENT_MAY_10,
+ OPPONENT_MAY_11,
+ OPPONENT_MAY_12,
+ OPPONENT_JONAH,
+ OPPONENT_HENRY,
+ OPPONENT_ROGER,
+ OPPONENT_ALEXA,
+ OPPONENT_RUBEN,
+ OPPONENT_KOJI,
+ OPPONENT_WAYNE,
+ OPPONENT_BYRON,
+ OPPONENT_REED,
+ OPPONENT_TISHA,
+ OPPONENT_TORI_AND_TIA,
+ OPPONENT_KIM_AND_IRIS,
+ OPPONENT_TYRA_AND_IVY,
+ OPPONENT_MEL_AND_PAUL,
+ OPPONENT_JOHN_AND_JAY_1,
+ OPPONENT_JOHN_AND_JAY_2,
+ OPPONENT_JOHN_AND_JAY_3,
+ OPPONENT_JOHN_AND_JAY_4,
+ OPPONENT_JOHN_AND_JAY_5,
+ OPPONENT_RELI_AND_IAN,
+ OPPONENT_RITA_AND_SAM_1,
+ OPPONENT_RITA_AND_SAM_2,
+ OPPONENT_RITA_AND_SAM_3,
+ OPPONENT_RITA_AND_SAM_4,
+ OPPONENT_RITA_AND_SAM_5,
+ OPPONENT_LISA_AND_RAY,
+ OPPONENT_EUGENE,
+};
+
+#endif // GUARD_OPPONENT_CONSTANTS_H
diff --git a/include/palette.h b/include/palette.h
index 37fcb4d65..193773d24 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -16,22 +16,22 @@ enum
struct PaletteFadeControl
{
- u32 multipurpose1;
- u8 delayCounter:6;
- u16 y:5; // blend coefficient
- u16 targetY:5; // target blend coefficient
- u16 blendColor:15;
- u16 active:1;
- u16 multipurpose2:6;
- u16 yDec:1; // whether blend coefficient is decreasing
- u16 bufferTransferDisabled:1;
- u16 mode:2;
- u16 shouldResetBlendRegisters:1;
- u16 hardwareFadeFinishing:1;
- u16 softwareFadeFinishingCounter:5;
- u16 softwareFadeFinishing:1;
- u16 objPaletteToggle:1;
- u8 deltaY:4; // rate of change of blend coefficient
+ /*0x00*/ u32 multipurpose1;
+ /*0x04*/ u8 delayCounter:6;
+ /*0x05*/ u16 y:5; // blend coefficient
+ /*0x05-06*/ u16 targetY:5; // target blend coefficient
+ /*0x07*/ u16 blendColor:15;
+ /*0x07*/ u16 active:1;
+ /*0x08*/ u16 multipurpose2:6;
+ /*0x08*/ u16 yDec:1; // whether blend coefficient is decreasing
+ /*0x08*/ u16 bufferTransferDisabled:1;
+ /*0x09*/ u16 mode:2;
+ /*0x09*/ u16 shouldResetBlendRegisters:1;
+ /*0x09*/ u16 hardwareFadeFinishing:1;
+ /*0x09-0a*/ u16 softwareFadeFinishingCounter:5;
+ /*0x0a*/ u16 softwareFadeFinishing:1;
+ /*0x0a*/ u16 objPaletteToggle:1;
+ /*0x0a*/ u8 deltaY:4; // rate of change of blend coefficient
};
extern struct PaletteFadeControl gPaletteFade;
diff --git a/include/party_menu.h b/include/party_menu.h
new file mode 100644
index 000000000..58292081f
--- /dev/null
+++ b/include/party_menu.h
@@ -0,0 +1,151 @@
+#ifndef GUARD_PARTY_MENU_H
+#define GUARD_PARTY_MENU_H
+
+#include "task.h"
+
+struct PartyMenuItem
+{
+ const u8 *text;
+ TaskFunc func;
+};
+
+struct PartyPopupMenu
+{
+ u8 unk0;
+ u8 unk1;
+ const u8 *unk4;
+};
+
+// TODO: Unify these two structs
+
+#define DATA_COUNT (6)
+struct Unk201B000
+{
+ //u8 filler0[0x260];
+ struct Pokemon unk0[6];
+ u8 filler258[1];
+ u8 unk259;
+ u8 filler25A[6];
+ u8 unk260;
+ u8 unk261;
+ u8 unk262;
+ u8 unk263;
+ s16 unk264[DATA_COUNT * 2]; // This may be a union
+ u8 filler27C[2];
+ s16 unk27E;
+ s16 unk280;
+ s16 unk282;
+};
+
+struct Struct201B000
+{
+ u8 filler0[0x259];
+ u8 unk259;
+ u8 filler25A[6];
+ u8 unk260;
+ u8 filler261[1];
+ u8 unk262;
+ s16 unk264;
+ s16 unk266;
+};
+
+extern u8 ewram[];
+#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000))
+#define ewram1B000_alt (*(struct Struct201B000 *)(ewram + 0x1B000))
+#define EWRAM_1B000 ewram1B000_alt
+
+void sub_806AEDC(void);
+void sub_806AF4C();
+void OpenPartyMenu(u8, u8);
+void OpenPartyMenu();
+u8 sub_806B124(void);
+u8 IsLinkDoubleBattle(void);
+u8 sub_806B58C(u8);
+u8 sub_806B58C(u8);
+void sub_806BC3C(u8, u8);
+u8 sub_806BD58(u8, u8);
+u8 sub_806BD58(u8, u8);
+u16 sub_806BD80(); // undefined args in battle_party_menu.c
+void task_pc_turn_off();
+void sub_806BF74();
+void sub_806C994();
+u8 sub_806CA38(u8);
+void sub_806CB74(u8 taskId);
+void sub_806CCE4(void);
+void sub_806CD44(u8 taskId);
+void sub_806D538();
+void sub_806D538();
+void sub_806D538();
+void sub_806D5A4(void);
+void SetMonIconAnim();
+void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *);
+void LoadHeldItemIconGraphics(void);
+void LoadHeldItemIconGraphics(void);
+void CreateHeldItemIcons_806DC34(); // undefined args
+void CreateHeldItemIcons_806DC34();
+u8 GetMonIconSpriteId_maybe();
+void SetHeldItemIconVisibility();
+void TryPrintPartyMenuMonNickname();
+void PrintPartyMenuMonNicknames(void);
+void PrintPartyMenuMonNicknames(void);
+void GetMonNickname(struct Pokemon *mon, u8 *nickname);
+void PartyMenuClearLevelStatusTilemap();
+void PartyMenuPrintMonLevelOrStatus();
+void PartyMenuPrintMonsLevelOrStatus(void);
+void PartyMenuPrintMonsLevelOrStatus(void);
+void PartyMenuDoPrintHP(u8, int, u16, u16);
+void PartyMenuTryPrintMonsHP(void);
+void nullsub_13(void);
+void PartyMenuDrawHPBars(void);
+void sub_806E6F0();
+void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, int);
+void sub_806E7D0(u8, const struct PartyPopupMenu *);
+TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8);
+void sub_8070968();
+void sub_8070A20();
+void Task_RareCandy3(u8);
+void sub_8070C54();
+void DoEvolutionStoneItemEffect(u8, u16, TaskFunc);
+u8 GetItemEffectType();
+u8 sub_806E834(const u8 *message, u8 arg1);
+void sub_806E8D0(u8 taskId, u16 b, TaskFunc c);
+void party_menu_link_mon_held_item_object(u8);
+void Task_ConfirmGiveHeldItem(u8);
+void DisplayGiveHeldItemMessage(u8, u16, u8);
+void DisplayTakeHeldItemMessage(u8, u16, u8);
+void Task_ConfirmTakeHeldMail(u8);
+u16 ItemIdToBattleMoveId(u16);
+bool8 pokemon_has_move(struct Pokemon *, u16);
+void TeachMonTMMove(u8, u16, TaskFunc);
+void Task_TeamMonTMMove(u8);
+void Task_TeamMonTMMove2(u8);
+void Task_TeamMonTMMove3(u8);
+void Task_TeamMonTMMove4(u8);
+void sub_806F358(u8);
+void sub_806F390(u8);
+void sub_806F44C(u8);
+void TMMoveUpdateMoveSlot(u8);
+void StopTryingToTeachMove_806F614(u8);
+void StopTryingToTeachMove_806F67C(u8);
+void StopTryingToTeachMove_806F6B4(u8);
+void sub_806F8AC(u8 taskId);
+void sub_806FA18(u8 taskId);
+void sub_806FB0C(u8 taskId);
+void sub_806FB44(u8);
+void PartyMenuUpdateLevelOrStatus(struct Pokemon *, u8);
+void GetMedicineItemEffectMessage(u16);
+bool8 ExecuteTableBasedItemEffect__(u8, u16, u8);
+void UseMedicine(u8, u16, TaskFunc);
+bool8 IsBlueYellowRedFlute(u16);
+void sub_8070048(u8, u16, TaskFunc);
+void sub_8070088(u8);
+void sub_80701DC(u8 taskId);
+void DoPPRecoveryItemEffect(u8, u16, TaskFunc);
+void DoRecoverPP(u8);
+void DoPPUpItemEffect(u8, u16, TaskFunc);
+void DoRareCandyItemEffect(u8, u16, TaskFunc);
+void Task_RareCandy1(u8);
+void Task_RareCandy2(u8);
+void sub_8070848(u8 taskId);
+
+#endif // GUARD_PARTY_MENU_H
diff --git a/include/player_pc.h b/include/player_pc.h
new file mode 100644
index 000000000..f2446ebdf
--- /dev/null
+++ b/include/player_pc.h
@@ -0,0 +1,107 @@
+#ifndef GUARD_PLAYER_PC_H
+#define GUARD_PLAYER_PC_H
+
+// general task defines
+#define TASK gTasks[taskId]
+#define FUNC func
+
+// local task defines
+#define PAGE_INDEX data[0]
+#define ITEMS_ABOVE_TOP data[1]
+#define NUM_ITEMS data[2]
+#define NUM_QUANTITY_ROLLER data[3]
+#define NUM_PAGE_ITEMS data[4]
+// not used
+#define CURRENT_ITEM_STORAGE_MENU data[6]
+// not used
+#define SWAP_ITEM_INDEX data[8]
+#define SWITCH_MODE_ACTIVE data[9]
+
+#define NEW_GAME_PC_ITEMS(i, type) ((u16)((u16 *)gNewGamePCItems + type)[i * 2])
+
+// defined and used in the above macro
+enum
+{
+ ITEM_ID,
+ QUANTITY
+};
+
+// player PC menu options
+enum
+{
+ PLAYERPC_MENU_ITEMSTORAGE,
+ PLAYERPC_MENU_MAILBOX,
+ PLAYERPC_MENU_DECORATION,
+ PLAYERPC_MENU_TURNOFF
+};
+
+// item storage menus
+enum
+{
+ ITEMPC_MENU_WITHDRAW,
+ ITEMPC_MENU_DEPOSIT,
+ ITEMPC_MENU_TOSS,
+ ITEMPC_MENU_EXIT
+};
+
+// mailbox mail options
+enum
+{
+ MAILBOX_READ,
+ MAILBOX_MOVE_TO_BAG,
+ MAILBOX_GIVE,
+ MAILBOX_CANCEL,
+};
+
+// special item description handlers
+enum
+{
+ ITEMPC_SWITCH_WHICH_ITEM = 0xFFF7,
+ ITEMPC_OKAY_TO_THROW_AWAY,
+ ITEMPC_TOO_IMPORTANT,
+ ITEMPC_NO_MORE_ROOM,
+ ITEMPC_THREW_AWAY_ITEM,
+ ITEMPC_HOW_MANY_TO_TOSS,
+ ITEMPC_WITHDREW_THING,
+ ITEMPC_HOW_MANY_TO_WITHDRAW,
+ ITEMPC_GO_BACK_TO_PREV
+};
+
+struct MailboxStruct
+{
+ /*0x00*/ u8 cursorPos;
+ /*0x01*/ u8 pageItems; // number of items (not including Cancel) on the current page.
+ /*0x02*/ u8 itemsAbove; // number of items above the top item on the page.
+ /*0x03*/ u8 count; // total number of items in mailbox storage.
+};
+
+extern struct MailboxStruct gMailboxInfo;
+
+void ReshowPlayerPC(u8 var);
+void NewGameInitPCItems(void);
+void BedroomPC(void);
+void PlayerPC(void);
+void ItemStorage_ReturnToMenuAfterDeposit(void);
+void Mailbox_ReturnToMailListAfterDeposit(void);
+
+void sub_813A240(u8);
+void sub_813A280(u8);
+void sub_813A468(u8);
+void sub_813A4B4(u8);
+void HandleQuantityRolling(u8);
+void sub_813A6FC(u8);
+void sub_813A794(u8);
+void sub_813A8F0(u8);
+void sub_813A984(u8);
+void sub_813A9EC(u8);
+void sub_813AA30(u8, u8);
+void sub_813ABE8(u8);
+void sub_813AD58(u16);
+void sub_813AE0C(u8);
+void sub_813AE6C(u8, u8);
+u8 sub_813AF3C(void);
+void sub_813AF78(void);
+void sub_813B108(u8);
+void sub_813B174(u8);
+
+#endif // GUARD_PLAYER_PC_H
diff --git a/include/pokeball.h b/include/pokeball.h
new file mode 100644
index 000000000..19f813415
--- /dev/null
+++ b/include/pokeball.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_POKEBALL_H
+#define GUARD_POKEBALL_H
+
+extern const struct SpriteTemplate gBallSpriteTemplates[];
+
+void CreatePokeballSprite(u8 r0, u8 r1, u8 r2, u8 r3, u8 s1, u8 s2, u8 s3, u32 s4);
+void sub_804777C(u8);
+void sub_80478DC(u8);
+void sub_804794C(u8);
+
+#endif // GUARD_POKEBALL_H
diff --git a/include/pokeblock.h b/include/pokeblock.h
new file mode 100755
index 000000000..b925894db
--- /dev/null
+++ b/include/pokeblock.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_POKEBLOCK_H
+#define GUARD_POKEBLOCK_H
+
+void sub_810B96C(void);
+void sub_810BA7C(u8);
+void ClearPokeblocks(void);
+void sub_810CA6C(s32);
+u8 sub_810CB68(u8, u8*);
+s16 sub_810CAE4(u8, struct Pokeblock *);
+
+#endif // GUARD_POKEBLOCK_H
diff --git a/include/pokedex.h b/include/pokedex.h
index 1ac4e8c33..1bc63a4ff 100644
--- a/include/pokedex.h
+++ b/include/pokedex.h
@@ -3,156 +3,16 @@
#include "sprite.h"
-struct PokedexListItem
-{
- u16 dexNum;
- u16 seen:1;
- u16 owned:1;
-};
-
-struct PokedexView
-{
- struct PokedexListItem unk0[386];
- u16 unk608;
- u8 unk60A_1:1;
- u8 unk60A_2:1;
- u8 unk60B;
- u16 unk60C;
- u16 selectedPokemon;
- u16 unk610;
- u16 dexMode; //National or Hoenn
- u16 unk614;
- u16 dexOrder;
- u16 unk618;
- u16 unk61A;
- u16 unk61C;
- u16 unk61E[4];
- u16 unk626; //sprite id of selected Pokemon
- u16 unk628;
- u16 unk62A;
- u8 unk62C;
- u8 unk62D;
- u8 unk62E;
- u8 unk62F;
- s16 unk630;
- s16 unk632;
- u16 unk634;
- u16 unk636;
- u16 unk638;
- u16 unk63A[4];
- u8 filler642[8];
- u8 unk64A;
- u8 unk64B;
- u8 unk64C_1:1;
- u8 selectedScreen;
- u8 unk64E;
- u8 unk64F;
- u8 menuIsOpen; //menuIsOpen
- u8 unk651;
- u16 menuCursorPos; //Menu cursor position
- s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this)
- u8 unk656[8];
- u8 unk65E[8];
-};
-
-void sub_808C02C(void);
+void ResetPokedex(void);
void sub_808C0A0(void);
-void sub_808C0B8(void);
-void ClearPokedexView(struct PokedexView *pokedexView);
void CB2_InitPokedex(void);
-u8 unref_sub_808C540(void (*func)(u8));
-void MainCB(void);
-void Task_PokedexShowMainScreen(u8 taskId);
-void Task_PokedexMainScreen(u8 taskId);
-void sub_808C898(u8 taskId);
-void Task_PokedexMainScreenMenu(u8 taskId);
-void sub_808CA64(u8 taskId);
-void sub_808CAE4(u8 taskId);
-void sub_808CB8C(u8 taskId);
-void Task_ClosePokedex(u8 taskId);
-void sub_808CCC4(u8 taskId);
-void Task_PokedexResultsScreen(u8 taskId);
-void sub_808CEF8(u8 taskId);
-void Task_PokedexResultsScreenMenu(u8 taskId);
-void sub_808D118(u8 taskId);
-void sub_808D198(u8 taskId);
-void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId);
-void Task_PokedexResultsScreenExitPokedex(u8 taskId);
-bool8 sub_808D344(u8 a);
-void sub_808D640(void);
-void SortPokedex(u8 dexMode, u8 sortMode);
-void sub_808DBE8(u8 a, u16 b, u16 c);
-void sub_808DEB0(u16 a, u8 b, u8 c, u16 d);
-void sub_808DF88(u16 a, u8 b, u8 c, u16 d);
-u8 sub_808DFE4(u16 a, u8 b, u8 c);
-void sub_808E090(u8 a, u8 b, u16 c);
-void sub_808E0CC(u16 a, u16 b);
-bool8 sub_808E208(u8 a, u8 b, u8 c);
-void sub_808E398(u8 a, u16 b);
-u16 sub_808E48C(u16 a, u16 b);
-void sub_808E6BC(void);
-u8 sub_808E71C(void);
-u8 sub_808E82C(void);
-u16 sub_808E888(u16 a1);
-u32 sub_808E8C8(u16 a, u16 b, u16 c);
-void sub_808E978(u8 a);
-void nullsub_58(struct Sprite *sprite);
-void sub_808ED94(struct Sprite *sprite);
-void sub_808EDB8(struct Sprite *sprite);
-void sub_808EE28(struct Sprite *sprite);
-void sub_808EF38(struct Sprite *sprite);
-void sub_808EF8C(struct Sprite *sprite);
-void sub_808F08C(struct Sprite *sprite);
-void sub_808F0B4(struct Sprite *sprite);
-void sub_808F168(struct Sprite *sprite);
-u8 sub_808F210(struct PokedexListItem *item, u8 b);
-bool8 sub_808F250(u8 taskId);
-u8 sub_808F284(struct PokedexListItem *item, u8 b);
-void Task_InitPageScreenMultistep(u8 taskId);
-void Task_PageScreenProcessInput(u8 taskId);
-void sub_808F888(u8 taskId);
-void Task_ClosePageScreen(u8 taskId);
-void Task_InitAreaScreenMultistep(u8 taskId);
-void Task_AreaScreenProcessInput(u8 taskId);
-void sub_808FA00(u8 taskId);
-void Task_InitCryScreenMultistep(u8 taskId);
-void Task_CryScreenProcessInput(u8 taskId);
-void sub_808FFBC(u8 taskId);
-void sub_8090040(u8 a);
-void Task_InitSizeScreenMultistep(u8 taskId);
-void Task_SizeScreenProcessInput(u8 taskId);
-void sub_8090498(u8 taskId);
-void sub_80904FC(u16 a);
-void sub_8090540(u16 a);
-void sub_8090584(u8 a, u16 b);
-void sub_8090644(u8 a, u16 b);
u8 sub_809070C(u16 dexNum, u32 b, u32 c);
-
-// ASM
-void sub_8090750(u8);
-void sub_8090A3C(u8);
-
-void sub_8090C68(void);
-u8 *GetPokemonCategory(u16);
-
-bool8 sub_8090D90(u16, u8);
+const u8 *GetPokemonCategory(u16);
+u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
+s8 GetNationalPokedexFlag(u16, u8);
u16 GetNationalPokedexCount(u8);
u16 GetHoennPokedexCount(u8);
bool8 sub_8090FC0(void);
u16 sub_8090FF4(void);
-void sub_8091060(u16);
-void sub_8091154(u16 order, int i, int i1);
-void sub_80911C8(u16 num, int i, int i1);
-void sub_8091260(u16 num, int i, int i1, int i2);
-void sub_8091304(u8 name[12], int i, int i1);
-
-void sub_8091458(u16 height, int i, int i1);
-void sub_8091564(u16 weight, int i, int i1);
-void sub_8091738(u16, u16, u16);
-void sub_80917CC(int i, int i1);
-u16 sub_8091818(u8, u16, u16, u16);
-
-u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d); //Not sure of return type
-u8 sub_8091A4C(u8 gender, int i, int i1, int i2);
#endif // GUARD_POKEDEX_H
diff --git a/include/pokedex_area_screen.h b/include/pokedex_area_screen.h
new file mode 100644
index 000000000..35ea43854
--- /dev/null
+++ b/include/pokedex_area_screen.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_POKEDEX_AREA_SCREEN_H
+#define GUARD_POKEDEX_AREA_SCREEN_H
+
+void ShowPokedexAreaScreen(u16 species, u8 *string);
+
+#endif // GUARD_POKEDEX_AREA_SCREEN_H
diff --git a/include/pokedex_cry_screen.h b/include/pokedex_cry_screen.h
new file mode 100644
index 000000000..ee586a092
--- /dev/null
+++ b/include/pokedex_cry_screen.h
@@ -0,0 +1,19 @@
+#ifndef GUARD_POKEDEX_CRY_SCREEN_H
+#define GUARD_POKEDEX_CRY_SCREEN_H
+
+struct CryRelatedStruct
+{
+ u16 unk0;
+ u8 unk2;
+ u8 paletteNo;
+ u8 xPos;
+ u8 yPos;
+};
+
+u8 ShowPokedexCryScreen(struct CryRelatedStruct *, u8);
+u8 sub_8119E3C(struct CryRelatedStruct *, u8);
+void sub_8119F88(u8 a);
+void sub_811A050(u16 species);
+void DestroyCryMeterNeedleSprite();
+
+#endif // GUARD_POKEDEX_CRY_SCREEN_H
diff --git a/include/pokemon.h b/include/pokemon.h
index dd80e1ea1..46366511d 100644..100755
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -1,6 +1,8 @@
#ifndef GUARD_POKEMON_H
#define GUARD_POKEMON_H
+#include "sprite.h"
+
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
#define MON_DATA_NICKNAME 2
@@ -65,7 +67,7 @@
#define MON_DATA_SPD 61
#define MON_DATA_SPATK 62
#define MON_DATA_SPDEF 63
-#define MON_DATA_64 64
+#define MON_DATA_MAIL 64
#define MON_DATA_SPECIES2 65
#define MON_DATA_IVS 66
#define MON_DATA_CHAMPION_RIBBON 67
@@ -95,6 +97,58 @@
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
+#define TYPE_NORMAL 0x00
+#define TYPE_FIGHTING 0x01
+#define TYPE_FLYING 0x02
+#define TYPE_POISON 0x03
+#define TYPE_GROUND 0x04
+#define TYPE_ROCK 0x05
+#define TYPE_BUG 0x06
+#define TYPE_GHOST 0x07
+#define TYPE_STEEL 0x08
+#define TYPE_MYSTERY 0x09
+#define TYPE_FIRE 0x0a
+#define TYPE_WATER 0x0b
+#define TYPE_GRASS 0x0c
+#define TYPE_ELECTRIC 0x0d
+#define TYPE_PSYCHIC 0x0e
+#define TYPE_ICE 0x0f
+#define TYPE_DRAGON 0x10
+#define TYPE_DARK 0x11
+
+#define PARTY_SIZE 6
+#define MAX_TOTAL_EVS 510
+#define NUM_STATS 6
+#define UNOWN_FORM_COUNT 28
+
+enum {
+ NATURE_HARDY,
+ NATURE_LONELY,
+ NATURE_BRAVE,
+ NATURE_ADAMANT,
+ NATURE_NAUGHTY,
+ NATURE_BOLD,
+ NATURE_DOCILE,
+ NATURE_RELAXED,
+ NATURE_IMPISH,
+ NATURE_LAX,
+ NATURE_TIMID,
+ NATURE_HASTY,
+ NATURE_SERIOUS,
+ NATURE_JOLLY,
+ NATURE_NAIVE,
+ NATURE_MODEST,
+ NATURE_MILD,
+ NATURE_QUIET,
+ NATURE_BASHFUL,
+ NATURE_RASH,
+ NATURE_CALM,
+ NATURE_GENTLE,
+ NATURE_SASSY,
+ NATURE_CAREFUL,
+ NATURE_QUIRKY,
+};
+
struct PokemonSubstruct0
{
u16 species;
@@ -128,41 +182,41 @@ struct PokemonSubstruct2
struct PokemonSubstruct3
{
- /* 0x00 */ u8 pokerus;
- /* 0x01 */ u8 metLocation;
-
- /* 0x02 */ u16 metLevel:7;
- /* 0x02 */ u16 metGame:4;
- /* 0x03 */ u16 pokeball:4;
- /* 0x03 */ u16 otGender:1;
-
- /* 0x04 */ u32 hpIV:5;
- /* 0x04 */ u32 attackIV:5;
- /* 0x05 */ u32 defenseIV:5;
- /* 0x05 */ u32 speedIV:5;
- /* 0x05 */ u32 spAttackIV:5;
- /* 0x06 */ u32 spDefenseIV:5;
- /* 0x07 */ u32 isEgg:1;
- /* 0x07 */ u32 altAbility:1;
-
- /* 0x08 */ u32 coolRibbon:3;
- /* 0x08 */ u32 beautyRibbon:3;
- /* 0x08 */ u32 cuteRibbon:3;
- /* 0x09 */ u32 smartRibbon:3;
- /* 0x09 */ u32 toughRibbon:3;
- /* 0x09 */ u32 championRibbon:1;
- /* 0x0A */ u32 winningRibbon:1;
- /* 0x0A */ u32 victoryRibbon:1;
- /* 0x0A */ u32 artistRibbon:1;
- /* 0x0A */ u32 effortRibbon:1;
- /* 0x0A */ u32 giftRibbon1:1;
- /* 0x0A */ u32 giftRibbon2:1;
- /* 0x0A */ u32 giftRibbon3:1;
- /* 0x0A */ u32 giftRibbon4:1;
- /* 0x0B */ u32 giftRibbon5:1;
- /* 0x0B */ u32 giftRibbon6:1;
- /* 0x0B */ u32 giftRibbon7:1;
- /* 0x0B */ u32 fatefulEncounter:5; // unused in Ruby/Sapphire, but the high bit must be set for Mew/Deoxys to obey in FR/LG/Emerald
+ /*0x00*/ u8 pokerus;
+ /*0x01*/ u8 metLocation;
+
+ /*0x02*/ u16 metLevel:7;
+ /*0x02*/ u16 metGame:4;
+ /*0x03*/ u16 pokeball:4;
+ /*0x03*/ u16 otGender:1;
+
+ /*0x04*/ u32 hpIV:5;
+ /*0x04*/ u32 attackIV:5;
+ /*0x05*/ u32 defenseIV:5;
+ /*0x05*/ u32 speedIV:5;
+ /*0x05*/ u32 spAttackIV:5;
+ /*0x06*/ u32 spDefenseIV:5;
+ /*0x07*/ u32 isEgg:1;
+ /*0x07*/ u32 altAbility:1;
+
+ /*0x08*/ u32 coolRibbon:3;
+ /*0x08*/ u32 beautyRibbon:3;
+ /*0x08*/ u32 cuteRibbon:3;
+ /*0x09*/ u32 smartRibbon:3;
+ /*0x09*/ u32 toughRibbon:3;
+ /*0x09*/ u32 championRibbon:1;
+ /*0x0A*/ u32 winningRibbon:1;
+ /*0x0A*/ u32 victoryRibbon:1;
+ /*0x0A*/ u32 artistRibbon:1;
+ /*0x0A*/ u32 effortRibbon:1;
+ /*0x0A*/ u32 giftRibbon1:1;
+ /*0x0A*/ u32 giftRibbon2:1;
+ /*0x0A*/ u32 giftRibbon3:1;
+ /*0x0A*/ u32 giftRibbon4:1;
+ /*0x0B*/ u32 giftRibbon5:1;
+ /*0x0B*/ u32 giftRibbon6:1;
+ /*0x0B*/ u32 giftRibbon7:1;
+ /*0x0B*/ u32 fatefulEncounter:5; // unused in Ruby/Sapphire, but the high bit must be set for Mew/Deoxys to obey in FR/LG/Emerald
};
union PokemonSubstruct
@@ -176,39 +230,39 @@ union PokemonSubstruct
struct BoxPokemon
{
- u32 personality;
- u32 otId;
- u8 nickname[POKEMON_NAME_LENGTH];
- u8 language;
- u8 isBadEgg:1;
- u8 hasSpecies:1;
- u8 isEgg:1;
- u8 unused:5;
- u8 otName[OT_NAME_LENGTH];
- u8 markings;
- u16 checksum;
- u16 unknown;
+ /*0x00*/ u32 personality;
+ /*0x04*/ u32 otId;
+ /*0x08*/ u8 nickname[POKEMON_NAME_LENGTH];
+ /*0x12*/ u8 language;
+ /*0x13*/ u8 isBadEgg:1;
+ u8 hasSpecies:1;
+ u8 isEgg:1;
+ u8 unused:5;
+ /*0x14*/ u8 otName[OT_NAME_LENGTH];
+ /*0x1B*/ u8 markings;
+ /*0x1C*/ u16 checksum;
+ /*0x1E*/ u16 unknown;
union
{
u32 raw[12];
union PokemonSubstruct substructs[4];
} secure;
-};
+}; /*size = 0x50*/
struct Pokemon
{
- struct BoxPokemon box;
- u32 status;
- u8 level;
- u8 pokerus;
- u16 hp;
- u16 maxHP;
- u16 attack;
- u16 defense;
- u16 speed;
- u16 spAttack;
- u16 spDefense;
+ /*0x00*/ struct BoxPokemon box;
+ /*0x50*/ u32 status;
+ /*0x54*/ u8 level;
+ /*0x55*/ u8 mail;
+ /*0x56*/ u16 hp;
+ /*0x58*/ u16 maxHP;
+ /*0x5A*/ u16 attack;
+ /*0x5C*/ u16 defense;
+ /*0x5E*/ u16 speed;
+ /*0x60*/ u16 spAttack;
+ /*0x62*/ u16 spDefense;
};
struct UnknownPokemonStruct
@@ -240,72 +294,73 @@ struct UnknownPokemonStruct
struct BattlePokemon
{
- /* 0x00 */ u16 species;
- /* 0x02 */ u16 attack;
- /* 0x04 */ u16 defense;
- /* 0x06 */ u16 speed;
- /* 0x08 */ u16 spAttack;
- /* 0x0A */ u16 spDefense;
- /* 0x0C */ u16 moves[4];
- /* 0x14 */ u32 hpIV:5;
- /* 0x14 */ u32 attackIV:5;
- /* 0x15 */ u32 defenseIV:5;
- /* 0x15 */ u32 speedIV:5;
- /* 0x16 */ u32 spAttackIV:5;
- /* 0x17 */ u32 spDefenseIV:5;
- /* 0x17 */ u32 isEgg:1;
- /* 0x17 */ u32 altAbility:1;
- /* 0x18 */ s8 statStages[8];
- /* 0x20 */ u8 ability;
- /* 0x21 */ u8 type1;
- /* 0x22 */ u8 type2;
- /* 0x23 */ u8 unknown;
- /* 0x24 */ u8 pp[4];
- /* 0x28 */ u16 hp;
- /* 0x2A */ u8 level;
- /* 0x2B */ u8 friendship;
- /* 0x2C */ u16 maxHP;
- /* 0x2E */ u16 item;
- /* 0x30 */ u8 nickname[POKEMON_NAME_LENGTH + 1];
- /* 0x3B */ u8 ppBonuses;
- /* 0x3C */ u8 otName[8];
- /* 0x44 */ u32 experience;
- /* 0x48 */ u32 personality;
- /* 0x4C */ u32 status1;
- /* 0x50 */ u32 status2;
- /* 0x54 */ u32 otId;
+ /*0x00*/ u16 species;
+ /*0x02*/ u16 attack;
+ /*0x04*/ u16 defense;
+ /*0x06*/ u16 speed;
+ /*0x08*/ u16 spAttack;
+ /*0x0A*/ u16 spDefense;
+ /*0x0C*/ u16 moves[4];
+ /*0x14*/ u32 hpIV:5;
+ /*0x14*/ u32 attackIV:5;
+ /*0x15*/ u32 defenseIV:5;
+ /*0x15*/ u32 speedIV:5;
+ /*0x16*/ u32 spAttackIV:5;
+ /*0x17*/ u32 spDefenseIV:5;
+ /*0x17*/ u32 isEgg:1;
+ /*0x17*/ u32 altAbility:1;
+ /*0x18*/ s8 statStages[8];
+ /*0x20*/ u8 ability;
+ /*0x21*/ u8 type1;
+ /*0x22*/ u8 type2;
+ /*0x23*/ u8 unknown;
+ /*0x24*/ u8 pp[4];
+ /*0x28*/ u16 hp;
+ /*0x2A*/ u8 level;
+ /*0x2B*/ u8 friendship;
+ /*0x2C*/ u16 maxHP;
+ /*0x2E*/ u16 item;
+ /*0x30*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
+ /*0x3B*/ u8 ppBonuses;
+ /*0x3C*/ u8 otName[8];
+ /*0x44*/ u32 experience;
+ /*0x48*/ u32 personality;
+ /*0x4C*/ u32 status1;
+ /*0x50*/ u32 status2;
+ /*0x54*/ u32 otId;
};
struct BaseStats
{
- /* 0x00 */ u8 baseHP;
- /* 0x01 */ u8 baseAttack;
- /* 0x02 */ u8 baseDefense;
- /* 0x03 */ u8 baseSpeed;
- /* 0x04 */ u8 baseSpAttack;
- /* 0x05 */ u8 baseSpDefense;
- /* 0x06 */ u8 type1;
- /* 0x07 */ u8 type2;
- /* 0x08 */ u8 catchRate;
- /* 0x09 */ u8 expYield;
- /* 0x0A */ u16 evYield_HP:2;
- /* 0x0A */ u16 evYield_Attack:2;
- /* 0x0A */ u16 evYield_Defense:2;
- /* 0x0A */ u16 evYield_Speed:2;
- /* 0x0B */ u16 evYield_SpAttack:2;
- /* 0x0B */ u16 evYield_SpDefense:2;
- /* 0x0C */ u16 item1;
- /* 0x0E */ u16 item2;
- /* 0x10 */ u8 genderRatio;
- /* 0x11 */ u8 eggCycles;
- /* 0x12 */ u8 friendship;
- /* 0x13 */ u8 growthRate;
- /* 0x14 */ u8 eggGroup1;
- /* 0x15 */ u8 eggGroup2;
- /* 0x16 */ u8 ability1;
- /* 0x17 */ u8 ability2;
- /* 0x18 */ u8 safariZoneFleeRate;
- /* 0x19 */ u8 bodyColor;
+ /*0x00*/ u8 baseHP;
+ /*0x01*/ u8 baseAttack;
+ /*0x02*/ u8 baseDefense;
+ /*0x03*/ u8 baseSpeed;
+ /*0x04*/ u8 baseSpAttack;
+ /*0x05*/ u8 baseSpDefense;
+ /*0x06*/ u8 type1;
+ /*0x07*/ u8 type2;
+ /*0x08*/ u8 catchRate;
+ /*0x09*/ u8 expYield;
+ /*0x0A*/ u16 evYield_HP:2;
+ /*0x0A*/ u16 evYield_Attack:2;
+ /*0x0A*/ u16 evYield_Defense:2;
+ /*0x0A*/ u16 evYield_Speed:2;
+ /*0x0B*/ u16 evYield_SpAttack:2;
+ /*0x0B*/ u16 evYield_SpDefense:2;
+ /*0x0C*/ u16 item1;
+ /*0x0E*/ u16 item2;
+ /*0x10*/ u8 genderRatio;
+ /*0x11*/ u8 eggCycles;
+ /*0x12*/ u8 friendship;
+ /*0x13*/ u8 growthRate;
+ /*0x14*/ u8 eggGroup1;
+ /*0x15*/ u8 eggGroup2;
+ /*0x16*/ u8 ability1;
+ /*0x17*/ u8 ability2;
+ /*0x18*/ u8 safariZoneFleeRate;
+ /*0x19*/ u8 bodyColor:7;
+ u8 unk19_7:1;
};
struct BattleMove
@@ -323,12 +378,38 @@ struct BattleMove
struct PokemonStorage
{
- u8 currentBox;
- struct BoxPokemon boxes[14][30];
+ /*0x00*/ u8 currentBox;
+ /*0x01*/ struct BoxPokemon boxes[14][30];
+ u8 boxNames[14][9];
+ u8 unkArray[14];
+};
+
+struct Evolution
+{
+ u16 method;
+ u16 param;
+ u16 targetSpecies;
+};
+
+struct EvolutionData
+{
+ struct Evolution evolutions[5];
};
-extern struct Pokemon gPlayerParty[6];
-extern struct Pokemon gEnemyParty[6];
+extern const u8 *const gItemEffectTable[];
+extern u8 gTrainerClassToPicIndex[];
+extern u8 gTrainerClassToNameIndex[];
+extern const u32 gExperienceTables[8][101];
+extern const struct BaseStats gBaseStats[];
+extern struct EvolutionData gEvolutionTable[];
+extern const u16 *gLevelUpLearnsets[];
+extern u8 gUnknown_08208238[];
+extern u8 gUnknown_0820823C[];
+extern u8 gStatStageRatios[][2];
+
+extern struct Pokemon gPlayerParty[PARTY_SIZE];
+extern struct Pokemon gEnemyParty[PARTY_SIZE];
+extern struct PokemonStorage gPokemonStorage;
void ZeroBoxMonData(struct BoxPokemon *boxMon);
void ZeroMonData(struct Pokemon *mon);
@@ -360,7 +441,7 @@ u16 sub_803B7C8(struct Pokemon *mon, u8 a2);
void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move);
void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
-u8 sub_803C348(u8 a1);
+u8 CountAliveMons(u8 a1);
u8 sub_803C434(u8 a1);
u8 GetMonGender(struct Pokemon *mon);
u8 GetBoxMonGender(struct BoxPokemon *boxMon);
@@ -404,6 +485,33 @@ u8 GetNatureFromPersonality(u32 personality);
u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex);
-void sub_8040B1C(void *);
+void MonRestorePP(struct Pokemon *);
+
+u8 *sub_803F378(u16 itemId);
+
+u16 NationalPokedexNumToSpecies(u16 nationalNum);
+u16 NationalToHoennOrder(u16);
+u16 SpeciesToNationalPokedexNum(u16);
+u16 HoennToNationalOrder(u16);
+void DrawSpindaSpots(u16, u32, u8 *, u8);
+u8 sub_803FBBC(void);
+u8 sub_803FC58(u16);
+void AdjustFriendship(struct Pokemon *, u8);
+u8 CheckPartyHasHadPokerus(struct Pokemon *, u8);
+void UpdatePartyPokerusTime(u16);
+u32 CanMonLearnTMHM(struct Pokemon *, u8);
+u8 sub_8040574(struct Pokemon *party);
+void ClearBattleMonForms(void);
+void sub_80408BC();
+void current_map_music_set__default_for_battle(u16);
+const u8 *pokemon_get_pal(struct Pokemon *mon);
+const u8 *species_and_otid_get_pal(u16, u32, u32);
+const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32);
+bool8 IsOtherTrainer(u32, u8 *);
+void sub_8040B8C(void);
+void SetWildMonHeldItem(void);
+u8 *sub_8040D08();
+bool32 sub_8040D3C(u16 species, u8 *name, u8 language);
+u16 GetMonEVCount(struct Pokemon *);
#endif // GUARD_POKEMON_H
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
new file mode 100644
index 000000000..98f984564
--- /dev/null
+++ b/include/pokemon_icon.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_POKEMON_ICON_H
+#define GUARD_POKEMON_ICON_H
+
+u8 CreateMonIcon();
+u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4);
+u16 GetUnownLetterByPersonality(u32);
+u16 sub_809D4A8(u16);
+void sub_809D510(struct Sprite *);
+void sub_809D51C(void);
+void sub_809D580(u16);
+void sub_809D608(u16);
+void UpdateMonIconFrame(struct Sprite *sprite);
+
+#endif // GUARD_POKEMON_ICON_H
diff --git a/include/pokemon_item_effect.h b/include/pokemon_item_effect.h
new file mode 100644
index 000000000..c09649aff
--- /dev/null
+++ b/include/pokemon_item_effect.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_POKEMON_ITEM_EFFECT_H
+#define GUARD_POKEMON_ITEM_EFFECT_H
+
+bool8 ExecuteTableBasedItemEffect_(struct Pokemon *mon, u16, u8, u16);
+
+#endif // GUARD_POKEMON_ITEM_EFFECT_H
diff --git a/include/pokemon_menu.h b/include/pokemon_menu.h
new file mode 100644
index 000000000..d22dbb708
--- /dev/null
+++ b/include/pokemon_menu.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_POKEMON_MENU_H
+#define GUARD_POKEMON_MENU_H
+
+void sub_8089A70(void);
+void sub_808A004();
+void sub_808AB90(void);
+void sub_808AB90(void); // unknown args
+void sub_808AB90(void);
+void sub_808B020(void);
+void sub_808B0C0(u8);
+void sub_808B508(u8);
+void sub_808B564();
+
+#endif // GUARD_POKEMON_MENU_H
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
new file mode 100644
index 000000000..bd4e7915b
--- /dev/null
+++ b/include/pokemon_storage_system.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_POKEMON_STORAGE_SYSTEM_H
+#define GUARD_POKEMON_STORAGE_SYSTEM_H
+
+void ResetPokemonStorageSystem(void);
+
+#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h
new file mode 100644
index 000000000..c1b99c367
--- /dev/null
+++ b/include/pokemon_summary_screen.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_POKEMON_SUMMARY_SCREEN_H
+#define GUARD_POKEMON_SUMMARY_SCREEN_H
+
+extern const u8 *const gNatureNames[];
+
+void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(void), int);
+void sub_809D9F0(struct Pokemon *party, u8, u8, void *, u32);
+void sub_809D9F0(struct Pokemon *, u8, u8, void *, u32);
+u8 sub_809FA30(void);
+u8 pokemon_ailments_get_primary(u32);
+u8 GetMonStatusAndPokerus();
+u8 *sub_80A1E9C(u8 *dest, const u8 *src, u8);
+u8 *PokemonSummaryScreen_CopyPokemonLevel(u8 *dest, u8 level);
+u8 PokemonSummaryScreen_CheckOT(struct Pokemon *pokemon);
+bool8 CheckPartyPokerus(struct Pokemon *, u8);
+
+#endif // GUARD_POKEMON_SUMMARY_SCREEN_H
diff --git a/include/pokenav.h b/include/pokenav.h
new file mode 100644
index 000000000..ccea77a57
--- /dev/null
+++ b/include/pokenav.h
@@ -0,0 +1,19 @@
+#ifndef GUARD_POKENAV_H
+#define GUARD_POKENAV_H
+
+struct UnkPokenavStruct_Sub {
+ /*0x0*/ u16 unk0;
+ /*0x2*/ u8 filler2[6];
+};
+
+struct UnkPokenavStruct {
+ /*0x0000*/ u8 filler0000[0xCEE8];
+ /*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[78];
+ /*0xD158*/ u16 unkD158;
+};
+
+extern struct UnkPokenavStruct *gUnknown_083DFEC4;
+
+void sub_80EBA5C(void);
+
+#endif // GUARD_POKENAV_H
diff --git a/include/record_mixing.h b/include/record_mixing.h
index 39cf5bd43..103f5ad64 100644
--- a/include/record_mixing.h
+++ b/include/record_mixing.h
@@ -4,16 +4,16 @@
#include <stddef.h>
void sub_80B929C(void);
-void sub_80B92AC(void);
-void sub_80B93B0(u32 a);
-void sub_80B9450(u8 taskId);
-void sub_80B9484(u8 taskId);
+void RecordMixing_PrepareExchangePacket(void);
+void RecordMixing_ReceiveExchangePacket(u32 a);
+void Task_RecordMixing_SoundEffect(u8 taskId);
+void Task_RecordMixing_Main(u8 taskId);
void sub_80B95F0(u8 taskId);
-void sub_80B97DC(u8 taskId);
-void Task_CopyRecvBuffer(u8 taskId);
+void Task_RecordMixing_SendPacket(u8 taskId);
+void Task_RecordMixing_CopyReceiveBuffer(u8 taskId);
void sub_80B99B4(u8 taskId);
-void sub_80B99E8(u8 taskId);
-void sub_80B9A1C(u8 taskId);
+void Task_RecordMixing_ReceivePacket(u8 taskId);
+void Task_RecordMixing_SendPacket_SwitchToReceive(u8 taskId);
void *LoadPtrFromTaskData(u16 *ptr);
void StorePtrInTaskData(void *ptr, u16 *data);
u8 GetMultiplayerId_(void);
@@ -23,11 +23,11 @@ void sub_80B9A88(u8 *a);
void sub_80B9B1C(u8 *a, size_t size, u8 index);
void sub_80B9B70(u8 *a, size_t size, u8 index);
u8 sub_80B9BBC(u16 *a);
-void sub_80B9BC4(u32 a, u32 b, u32 c, u32 d);
+void sub_80B9BC4(struct RecordMixing_UnknownStruct *, size_t, u8 [][2], u8, u8);
u8 sub_80B9C4C(u8 *a);
// ASM
-void sub_80B9C6C(void *, u32, u8, void *);
+void sub_80B9C6C(struct RecordMixing_UnknownStruct *, u32, u8, void *);
void sub_80B9F3C(void *, u8);
void sub_80BA00C(u8);
diff --git a/include/region_map.h b/include/region_map.h
new file mode 100755
index 000000000..6dfa4dcf0
--- /dev/null
+++ b/include/region_map.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_REGION_MAP_H
+#define GUARD_REGION_MAP_H
+
+void sub_80FA8EC(u32, u8);
+void sub_80FAB10(void);
+u8 sub_80FAB60(void);
+void sub_80FBB3C(u16, u16);
+void sub_80FBCF0(u32, u8);
+void sub_80FBFB4(u8 *str, u16 region, u8);
+void CopyMapName();
+u8 *CopyLocationName(u8 *dest, u8 location);
+
+#endif // GUARD_REGION_MAP_H
diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h
new file mode 100644
index 000000000..5807dec99
--- /dev/null
+++ b/include/reset_rtc_screen.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_RESET_RTC_SCREEN_H
+#define GUARD_RESET_RTC_SCREEN_H
+
+void CB2_InitResetRtcScreen(void);
+
+#endif // GUARD_RESET_RTC_SCREEN_H
diff --git a/include/roamer.h b/include/roamer.h
new file mode 100644
index 000000000..9d5f3c4ed
--- /dev/null
+++ b/include/roamer.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_ROAMER_H
+#define GUARD_ROAMER_H
+
+void ClearRoamerData(void);
+void ClearRoamerLocationData(void);
+void UpdateLocationHistoryForRoamer(void);
+void RoamerMoveToOtherLocationSet(void);
+void RoamerMove();
+u8 TryStartRoamerEncounter(void);
+
+#endif
diff --git a/include/rom3.h b/include/rom3.h
new file mode 100644
index 000000000..a45ec7dc4
--- /dev/null
+++ b/include/rom3.h
@@ -0,0 +1,65 @@
+#ifndef GUARD_ROM3_H
+#define GUARD_ROM3_H
+
+void sub_800B858(void);
+void setup_poochyena_battle();
+void sub_800B950(void);
+void sub_800B9A8(void);
+void sub_800BA78(void);
+void sub_800BD54(void);
+void sub_800BF28(void);
+void dp01_prepare_buffer_wireless_probably(u8 a, u16, u8 *c);
+void sub_800C1A8(u8);
+void sub_800C35C(void);
+void sub_800C47C(u8);
+void EmitGetAttributes(u8 a, u8 b, u8 c);
+void dp01_build_cmdbuf_x01_a_b_0(u8 a, u8 b, u8 c);
+void EmitSetAttributes(u8 a, u8 b, u8 c, u8 d, u8 *e);
+void dp01_build_cmdbuf_x04_4_4_4(u8 a);
+void sub_800C704(u8, u8, u8);
+void dp01_build_cmdbuf_x06_a(u8 a, u8 b);
+void dp01_build_cmdbuf_x07_7_7_7(u8 a);
+void dp01_build_cmdbuf_x08_8_8_8(u8 a);
+void dp01_build_cmdbuf_x09_9_9_9(u8 a);
+void EmitFaintAnimation(u8 a);
+void dp01_build_cmdbuf_x0B_B_B_B(u8 a);
+void dp01_build_cmdbuf_x0C_C_C_C(u8 a);
+void dp01_build_cmdbuf_x0D_a(u8 a, u8 b);
+void EmitMoveAnimation(u8 a, u16 b, u8 c, u16 d, s32 e, u8 f, u8 *g);
+void EmitPrintString(u8 a, u16 b);
+void dp01_build_cmdbuf_x12_a_bb(u8 a, u8 b, u16 c);
+void sub_800CBA4(u8 a, u8 b, u8 c, u8 *d);
+void sub_800CBE0(u8 a, u8 *b);
+void dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f(u8 a, u8 b, u8 c, u8 d, u8 *e);
+void dp01_build_cmdbuf_x17_17_17_17(u8 a);
+void EmitHealthBarUpdate(u8 a, s16 b);
+void EmitExpBarUpdate(u8 a, u8 b, s16 c);
+void EmitStatusIconUpdate(u8 a, u32 b, u32 c);
+void EmitStatusAnimation(u8 a, u8 b, u32 c);
+void EmitStatusXor(u8 a, u8 b);
+void dp01_build_cmdbuf_x1D_1D_numargs_varargs(u8, u16, u8 *);
+void dp01_build_cmdbuf_x21_a_bb(u8 a, u8 b, u16 c);
+void dp01_build_cmdbuf_x22_a_three_bytes(u8 a, u8 b, u8 *c);
+void dp01_build_cmdbuf_x23_aa_0(u8 a, u16 b);
+void dp01_build_cmdbuf_x24_aa_0(u8 a, u16 b);
+void dp01_build_cmdbuf_x25_25_25_25(u8 a);
+void dp01_build_cmdbuf_x26_a(u8 a, u8 b);
+void dp01_build_cmdbuf_x27_27_27_27(u8 a);
+void dp01_build_cmdbuf_x28_28_28_28(u8 a);
+void EmitHitAnimation(u8 a);
+void dp01_build_cmdbuf_x2A_2A_2A_2A(u8 a);
+void EmitEffectivenessSound(u8 a, u16 b);
+void sub_800D074(u8 a, u16 b);
+void EmitFaintingCry(u8 a);
+void EmitBattleIntroSlide(u8 a, u8 b);
+void dp01_build_cmdbuf_x2F_2F_2F_2F(u8 a);
+void dp01_build_cmdbuf_x30_TODO(u8 a, u8 *b, u8 c);
+void dp01_build_cmdbuf_x31_31_31_31(u8 a);
+void dp01_build_cmdbuf_x32_32_32_32(u8 a);
+void EmitSpriteInvisibility(u8 a, u8 b);
+void EmitBattleAnimation(u8 a, u8 b, u16 c);
+void EmitLinkStandbyMsg(u8 a, u8 b);
+void EmitResetActionMoveSelection(u8 a, u8 b);
+void dp01_build_cmdbuf_x37_a(u8 a, u8 b);
+
+#endif // GUARD_ROM3_H
diff --git a/include/rom4.h b/include/rom4.h
index 036f43c36..eac4d29a2 100644
--- a/include/rom4.h
+++ b/include/rom4.h
@@ -9,23 +9,31 @@ struct UnkPlayerStruct
u8 player_field_1;
};
-struct LinkPlayerMapObject {
+struct LinkPlayerMapObject
+{
u8 active;
u8 linkPlayerId;
u8 mapObjId;
u8 mode;
};
+struct UCoords32
+{
+ u32 x, y;
+};
+
+extern struct UCoords32 gUnknown_0821664C[];
+
// sub_8052F5C
-// flag_var_implications_of_teleport_
-// new_game
-// sub_8053014
+void flag_var_implications_of_teleport_(void);
+void new_game(void);
+void sub_8053014(void);
void sub_8053050(void);
// sub_805308C
-void sub_80530AC(void);
-void sav12_xor_increment(u8 index);
-u32 sub_8053108(u8 index);
-// sav12_xor_set
+void ResetGameStats(void);
+void IncrementGameStat(u8 index);
+u32 GetGameStat(u8 index);
+void SetGameStat(u8, u32);
// sub_8053154
// sub_8053198
void update_saveblock1_field_object_coords(u8, s16, s16);
@@ -35,44 +43,44 @@ void update_saveblock1_field_object_movement_behavior(u8, u8);
// warp_shift
// warp_set
// warp_data_is_not_neg_1
-// get_mapheader_by_bank_and_number
-// warp1_get_mapheader
+struct MapHeader * const get_mapheader_by_bank_and_number(u16 mapGroup, u16 mapNum);
+struct MapHeader * const warp1_get_mapheader(void);
// set_current_map_header_from_sav1_save_old_name
// sub_805338C
// sub_80533CC
void warp_in(void);
void warp1_set(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
-// warp1_set_2
-// saved_warp2_set
+void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpId);
+void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId);
void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
-// copy_saved_warp2_bank_and_enter_x_to_warp1
+void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused);
// sub_8053538
void sub_8053570(void);
void sub_8053588(u8);
-// sub_80535C4
+void sub_80535C4(s16 a1, s16 a2);
void sub_805363C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
-// sub_8053678
+void sub_8053678(void);
void sub_8053690(s8, s8, s8, s8, s8);
// warp1_set_to_warp2
void sub_80536E4(s8, s8, s8, s8, s8);
void sub_8053720(s16, s16);
// sub_8053778
// unref_sub_8053790
-// sub_80537CC
+void sub_80537CC(u8);
void gpu_sync_bg_hide();
// sub_8053818
// sub_8053850
-// sub_80538B0
-// sub_80538D0
-// sub_80538F0
+bool8 sub_80538B0(u16 x, u16 y);
+bool8 sub_80538D0(u16 x, u16 y);
+void sub_80538F0(u8 mapGroup, u8 mapNum);
// sub_8053994
void player_avatar_init_params_reset(void);
-// walkrun_find_lowest_active_bit_in_bitfield
+void walkrun_find_lowest_active_bit_in_bitfield(void);
// sub_8053AA8
u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3);
u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8, u16, u8);
u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void);
-bool32 sub_8053C44(void);
+bool32 IsBikingAllowedByMap(void);
void sub_8053C98(void);
void sub_8053CE4(s32 a1);
u8 sav1_get_flash_used_on_map(void);
@@ -83,7 +91,7 @@ void sub_8053D14(u16);
// sav1_map_get_music
// warp1_target_get_music
// call_map_music_set_to_zero
-// sub_8053E90
+void sub_8053E90(void);
void sav1_set_battle_music_maybe(u16);
void sav1_reset_battle_music_maybe(void);
void sub_8053F0C(void);
@@ -99,9 +107,9 @@ void sub_8054164(void);
u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum);
// get_map_light_level_from_warp
u8 sav1_map_get_light_level(void);
-// get_map_light_from_warp0
+u8 get_map_light_from_warp0(void);
bool8 is_light_level_1_2_3_5_or_6(u8 a1);
-// is_light_level_1_2_3_or_6
+bool8 is_light_level_1_2_3_or_6(u8 a1);
u8 is_light_level_8_or_9(u8);
// unref_sub_8054260
u8 sav1_map_get_name();
@@ -117,7 +125,7 @@ void c2_overworld(void);
// sub_80543DC
// sub_80543E8
void CB2_NewGame(void);
-void c2_whiteout(void);
+void CB2_WhiteOut(void);
void CB2_LoadMap(void);
void CB2_LoadMap2(void);
// sub_8054534
@@ -199,7 +207,7 @@ u32 sub_80558AC(void);
u32 sub_8055910(void);
u32 sub_8055940(void);
// ZeroLinkPlayerMapObject
-// strange_npc_table_clear
+void strange_npc_table_clear(void);
// ZeroMapObject
void SpawnLinkPlayerMapObject(u8, s16, s16, u8);
void InitLinkPlayerMapObjectPos(struct MapObject *, s16, s16);
diff --git a/include/rom6.h b/include/rom6.h
new file mode 100644
index 000000000..e7a3ba48e
--- /dev/null
+++ b/include/rom6.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_ROM6_H
+#define GUARD_ROM6_H
+
+bool8 npc_before_player_of_type(u8);
+u8 oei_task_add(void);
+
+#endif
diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h
new file mode 100644
index 000000000..11e94e1f5
--- /dev/null
+++ b/include/rom_8077ABC.h
@@ -0,0 +1,59 @@
+#ifndef GUARD_ROM_8077ABC_H
+#define GUARD_ROM_8077ABC_H
+
+#include "sprite.h"
+#include "task.h"
+
+u8 sub_8077ABC(u8, u8);
+u8 sub_8077E44(u8 slot, u16 species, u8 a3);
+u8 obj_id_for_side_relative_to_move(u8 side);
+void oamt_set_x3A_32(struct Sprite *sprite, void(*callback)(struct Sprite *));
+void sub_8078314(struct Sprite *sprite);
+void sub_8078364(struct Sprite *sprite);
+void sub_8078458(struct Sprite *sprite);
+void sub_80784A8(struct Sprite *sprite);
+u8 GetBankSide(u8);
+u8 GetBankSide(u8);
+u8 GetBankSide(u8 side);
+u8 GetBankSide(u8 slot);
+u8 GetBankSide(u8);
+u8 GetBankIdentity(u8);
+u8 GetBankIdentity(u8 slot);
+u8 GetBankByPlayerAI(u8);
+u8 GetBankByPlayerAI(u8);
+u8 GetBankByPlayerAI(u8 state);
+u8 sub_8078874(u8);
+bool8 sub_8078874(u8);
+bool8 IsDoubleBattle();
+u8 IsDoubleBattle(void);
+bool8 IsDoubleBattle(void);
+void sub_8078914();
+u8 sub_80789BC();
+void sub_8078A5C(struct Sprite *sprite);
+void sub_8078A5C(struct Sprite *sprite);
+void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite);
+bool8 sub_8078B5C(struct Sprite *sprite);
+void sub_8078BB8(struct Sprite *sprite);
+void sub_8078D44(struct Sprite *sprite);
+void obj_id_set_rotscale(u8 sprite, s16, s16, u16);
+bool8 sub_8078E38();
+void sub_8078E70(u8 sprite, u8);
+void sub_8078F40(u8 sprite);
+void sub_8078F9C(u8 sprite);
+void sub_8079518(struct Sprite *sprite);
+void sub_80796F8(u8 task);
+void sub_80797EC(struct Task *task);
+void sub_8079814(u8 taskId);
+void sub_8079A64(u8 sprite);
+u16 sub_8079B10(u8 sprite);
+void sub_8079BF4(s16 *bottom, s16 *top, void *ptr);
+void *sub_8079BFC(s16 bottom, s16 top);
+void sub_8079E24();
+u8 sub_8079E90(u8 slot);
+u8 GetBankIdentity_permutated(u8 slot);
+void sub_807A784(u8 taskId);
+void sub_807A850(struct Task *task, u8 taskId);
+void sub_807A8D4(struct Sprite *sprite);
+void sub_807A960(struct Sprite *sprite);
+
+#endif // GUARD_ROM_8077ABC_H
diff --git a/include/rom_8094928.h b/include/rom_8094928.h
new file mode 100644
index 000000000..fd4e58847
--- /dev/null
+++ b/include/rom_8094928.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_ROM_8094928_H
+#define GUARD_ROM_8094928_H
+
+void sub_8094978(u8, u8);
+u8 sub_8094C20(u8);
+void sub_8094C98(u8, u8);
+u8 pokemon_order_func(u8);
+void sub_8094E4C(void);
+
+#endif // GUARD_ROM_8094928_H
diff --git a/include/rotating_gate.h b/include/rotating_gate.h
new file mode 100644
index 000000000..6f4f38a9a
--- /dev/null
+++ b/include/rotating_gate.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_ROTATING_GATE_H
+#define GUARD_ROTATING_GATE_H
+
+void RotatingGatePuzzleCameraUpdate(s16, s16);
+void sub_80C8080();
+u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16);
+
+#endif // GUARD_ROTATING_GATE_H
diff --git a/include/safari_zone.h b/include/safari_zone.h
index f491be2f1..0bee08a95 100644
--- a/include/safari_zone.h
+++ b/include/safari_zone.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SAFARI_ZONE_H
#define GUARD_SAFARI_ZONE_H
+extern u8 gNumSafariBalls;
+
bool32 GetSafariZoneFlag(void);
void SetSafariZoneFlag(void);
void ResetSafariZoneFlag(void);
diff --git a/include/save.h b/include/save.h
index 976af77c6..3feaa1f3d 100644
--- a/include/save.h
+++ b/include/save.h
@@ -3,47 +3,72 @@
struct SaveSectionLocation
{
- void *data;
- u16 size;
+ void *data;
+ u16 size;
};
struct SaveSection
{
- u8 data[0xFF4];
- u16 id;
- u16 checksum;
- u32 unknown;
- u32 counter;
-};
+ u8 data[0xFF4];
+ u16 id;
+ u16 checksum;
+ u32 security;
+ u32 counter;
+}; // size is 0x1000
+// headless save section?
struct UnkSaveSection
{
- u8 data[0xFF4];
- u32 unknown;
+ u8 data[0xFF4];
+ u32 security;
+}; // size is 0xFF8
+
+// Ruby/Sapphire's save data is Flash 128K, which is 32 save sectors.
+#define NUM_SECTORS 32 // defined in agb_flash but not in a header
+
+#define UNKNOWN_CHECK_VALUE 0x8012025
+
+// SetDamagedSectorBits states
+enum
+{
+ ENABLE,
+ DISABLE,
+ CHECK // unused
+};
+
+// Do save types
+enum
+{
+ NORMAL_SAVE,
+ LINK_SAVE,
+ EREADER_SAVE, // mossdeep event
+ HOF_SAVE,
+ DIFFERENT_FILE_SAVE,
+ HOF_DELETE_SAVE // unused
};
void ClearSaveData(void);
-void sub_81251B8(void);
-bool32 sub_81251D4(u8 op, u8 bit);
-u8 save_write_to_flash(u16 a1, struct SaveSectionLocation *a2);
-u8 sub_81252D8(u16, struct SaveSectionLocation *);
-u8 sub_81253C8(u8 sector, u8 *data, u16 size);
-u8 sub_8125440(u8, u8 *);
-u32 sub_812546C(struct SaveSectionLocation *a1);
-u32 sub_81254C8(struct SaveSectionLocation *a1);
-u8 sub_812550C(u16 a1, struct SaveSectionLocation *a2);
-u8 sub_812556C(u16 a1, struct SaveSectionLocation *a2);
-u8 sub_81255B8(u16, struct SaveSectionLocation *);
-u8 sub_8125758(u16 a1, struct SaveSectionLocation *a2);
-u8 sub_81257F0(u16 a1, struct SaveSectionLocation *a2);
-u8 sub_812587C(u16 a1, struct SaveSectionLocation *a2);
-u8 sub_81258BC(u16, struct SaveSectionLocation *);
-u8 sub_8125974(struct SaveSectionLocation *);
+void ResetSaveCounters(void);
+bool32 ManipulateSectorBits(u8 op, u8 bit);
+u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *a2);
+u8 HandleWriteSector(u16, const struct SaveSectionLocation *);
+u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size);
+u8 TryWriteSector(u8, u8 *);
+u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location);
+u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location);
+u8 sub_812550C(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_812556C(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_81255B8(u16, const struct SaveSectionLocation *location);
+u8 sub_8125758(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_81257F0(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_812587C(u16 a1, const struct SaveSectionLocation *location);
+u8 sub_81258BC(u16, const struct SaveSectionLocation *location);
+u8 GetSaveValidStatus(const struct SaveSectionLocation *location);
u8 sub_8125B88(u8 a1, u8 *data, u16 size);
-u8 sub_8125BF8(u8, struct SaveSection *);
-u16 sub_8125C10(void *, u16);
-u8 sub_8125C3C(u8 a1);
-u8 sub_8125D44(u8 a1);
+u8 DoReadFlashWholeSection(u8, struct SaveSection *);
+u16 CalculateChecksum(void *, u16);
+u8 HandleSavingData(u8 saveType);
+u8 TrySavingData(u8 saveType);
u8 sub_8125D80(void);
bool8 sub_8125DA8(void);
u8 sub_8125DDC(void);
diff --git a/include/save_failed_screen.h b/include/save_failed_screen.h
new file mode 100644
index 000000000..5a097fb3f
--- /dev/null
+++ b/include/save_failed_screen.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_SAVE_FAILED_SCREEN_H
+#define GUARD_SAVE_FAILED_SCREEN_H
+
+void DoSaveFailedScreen(u8);
+
+#endif // GUARD_SAVE_FAILED_SCREEN_H
diff --git a/include/save_menu_util.h b/include/save_menu_util.h
index 560a39d89..cf1d3f929 100644
--- a/include/save_menu_util.h
+++ b/include/save_menu_util.h
@@ -2,8 +2,8 @@
#define GUARD_SAVE_MENU_UTIL_H
void HandleDrawSaveWindowInfo(s16 left, s16 top);
-void sub_80946C8(u16 left, u16 top);
-u8 sub_809473C(void);
+void HandleCloseSaveWindow(u16 left, u16 top);
+u8 IsResizeSaveWindowEnabled(void);
void PrintSavePlayerName(s16 x, s16 y);
void PrintSaveMapName(s16 x, s16 y);
void PrintSaveBadges(s16 x, s16 y);
diff --git a/include/script.h b/include/script.h
index a4c7dd575..5577fcb01 100644
--- a/include/script.h
+++ b/include/script.h
@@ -4,6 +4,7 @@
struct ScriptContext;
typedef bool8 (*ScrCmdFunc)(struct ScriptContext *);
+typedef u8 Script[];
struct ScriptContext
{
@@ -54,5 +55,7 @@ u32 CalculateRamScriptChecksum(void);
void ClearRamScript(void);
bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId);
u8 *GetRamScript(u8 objectId, u8 *script);
+u16 gScriptResult;
+extern u16 gScriptLastTalked;
#endif // GUARD_SCRIPT_H
diff --git a/include/script_menu.h b/include/script_menu.h
new file mode 100644
index 000000000..458aad13d
--- /dev/null
+++ b/include/script_menu.h
@@ -0,0 +1,33 @@
+#ifndef GUARD_SCRIPTMENU_H
+#define GUARD_SCRIPTMENU_H
+
+struct MultichoiceListStruct
+{
+ struct MenuAction *list;
+ u8 count;
+};
+
+extern const struct TextStruct gUnknown_083CE048[];
+
+bool8 sub_80B5054(u8 left, u8 top, u8 var3, u8 var4);
+bool8 sub_80B50B0(u8 left, u8 top, u8 var3, u8 var4, u8 var5);
+u16 GetStringWidthInTilesForScriptMenu(const u8 *str);
+void DrawMultichoiceMenu(u8, u8, u8, struct MenuAction *list, u8, u8);
+void sub_80B5230(u8, u8, u8, u8, u8, u8);
+void sub_80B52B4(u8);
+bool8 Multichoice(u8 var1, u8 var2, u8 var3, u8 var4);
+void sub_80B53B4(u8, u8, u8, struct MenuAction *list, u8);
+bool8 yes_no_box(u8 var1, u8 var2);
+bool8 IsScriptActive(void); // unused
+void task_yes_no_maybe(u8);
+bool8 sub_80B5578(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
+void sub_80B5684(u8);
+bool8 TryCreatePCMenu(void);
+void CreatePCMenu(void);
+void sub_80B5838(void);
+void task_picbox(u8 taskId);
+bool8 sub_80B58C4(u16 var1, u8 var2, u8 var3);
+void *picbox_close(void);
+bool8 sub_80B59AC(void);
+
+#endif
diff --git a/include/script_movement.h b/include/script_movement.h
new file mode 100644
index 000000000..e3cdc25b3
--- /dev/null
+++ b/include/script_movement.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_SCRIPT_MOVEMENT_H
+#define GUARD_SCRIPT_MOVEMENT_H
+
+bool8 exec_movement(u8, u8, u8, u8 *);
+bool8 sub_80A212C(u8, u8, u8);
+void sub_80A2178(void);
+
+#endif // GUARD_SCRIPT_MOVEMENT_H
diff --git a/include/script_pokemon_80C4.h b/include/script_pokemon_80C4.h
new file mode 100644
index 000000000..629980a2d
--- /dev/null
+++ b/include/script_pokemon_80C4.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_SCRIPTPOKE80C4_H
+#define GUARD_SCRIPTPOKE80C4_H
+
+void sub_80C5190(u8);
+void sub_80C5580(void);
+void SetBattleTowerPlayerParty(void);
+void ReducePlayerPartyToThree(void);
+
+u8 sub_80C4D50(void);
+void ShowContestWinner(void);
+void HealPlayerParty();
+u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8);
+u8 ScriptGiveEgg(u16);
+void ScriptWildBattle(u16, u8, u16);
+void ScriptSetMonMoveSlot(u8, u16, u8);
+
+#endif
diff --git a/include/script_pokemon_80F9.h b/include/script_pokemon_80F9.h
new file mode 100644
index 000000000..d65c99c15
--- /dev/null
+++ b/include/script_pokemon_80F9.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_SCRIPTPOKE80F9_H
+#define GUARD_SCRIPTPOKE80F9_H
+
+struct UnknownStruct2018000
+{
+ u8 filler0[0x8];
+ u8 unk8;
+};
+
+extern struct UnknownStruct2018000 unk_2018000;
+
+void sub_80F9A8C(u8);
+void sub_80F9C00(void);
+void sub_80F9E1C(void);
+void sub_80F99CC(void);
+
+#endif
diff --git a/include/secret_base.h b/include/secret_base.h
new file mode 100644
index 000000000..3ca5ab182
--- /dev/null
+++ b/include/secret_base.h
@@ -0,0 +1,15 @@
+#ifndef GUARD_SECRET_BASE_H
+#define GUARD_SECRET_BASE_H
+
+void ResetSecretBases(void);
+void sub_80BB970(struct MapEvents *);
+u8 sub_80BBB24(void);
+void sub_80BBCCC(u8);
+void sub_80BC038();
+u8 sub_80BC050();
+void sub_80BC300();
+const u8 sub_80BCCA4(u8);
+u8 *sub_80BCCE8(void);
+void sub_80BD674(void *, u32, u8);
+
+#endif // GUARD_SECRET_BASE_H
diff --git a/include/shop.h b/include/shop.h
new file mode 100644
index 000000000..cca6091c9
--- /dev/null
+++ b/include/shop.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_SHOP_H
+#define GUARD_SHOP_H
+
+void sub_80B2E38(u8);
+void HandleShopMenuQuit(u8);
+void sub_80B2FA0(u8);
+void BuyMenuDrawGraphics(void);
+void sub_80B3240(void);
+void sub_80B3270(void);
+void BuyMenuDrawMapGraphics(void);
+void sub_80B3764(int, int);
+void sub_80B37EC(void);
+void sub_80B40E8(u8);
+void CreatePokemartMenu(void *);
+void CreateDecorationShop1Menu(void *);
+void CreateDecorationShop2Menu(void *);
+
+#endif // GUARD_SHOP_H
diff --git a/include/slot_machine.h b/include/slot_machine.h
new file mode 100644
index 000000000..c39aa7ca8
--- /dev/null
+++ b/include/slot_machine.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_SLOT_MACHINE_H
+#define GUARD_SLOT_MACHINE_H
+
+void PlaySlotMachine(u8, void *);
+void sub_8104DA4(void);
+u8 sub_8105BB4(u8, u8, s16);
+
+#endif // GUARD_SLOT_MACHINE_H
diff --git a/include/songs.h b/include/songs.h
index c77bad515..a813cc785 100644
--- a/include/songs.h
+++ b/include/songs.h
@@ -3,39 +3,39 @@
enum
{
- SE_STOP,
- SE_KAIFUKU,
- SE_PC_LOGON,
- SE_PC_OFF,
- SE_PC_ON,
- SE_SELECT,
- SE_WIN_OPEN,
- SE_WALL_HIT,
- SE_DOOR,
- SE_KAIDAN,
- SE_DANSA,
- SE_JITENSYA,
- SE_KOUKA_L,
- SE_KOUKA_M,
- SE_KOUKA_H,
- SE_BOWA2,
- SE_POKE_DEAD,
- SE_NIGERU,
- SE_JIDO_DOA,
- SE_NAMINORI,
- SE_BAN,
- SE_PIN,
- SE_BOO,
- SE_BOWA,
- SE_JYUNI,
- SE_A,
- SE_I,
- SE_U,
- SE_E,
- SE_O,
- SE_N,
- SE_SEIKAI,
- SE_HAZURE,
+ /*0x00*/ SE_STOP,
+ /*0x01*/ SE_KAIFUKU,
+ /*0x02*/ SE_PC_LOGON,
+ /*0x03*/ SE_PC_OFF,
+ /*0x04*/ SE_PC_ON,
+ /*0x05*/ SE_SELECT,
+ /*0x06*/ SE_WIN_OPEN,
+ /*0x07*/ SE_WALL_HIT,
+ /*0x08*/ SE_DOOR,
+ /*0x09*/ SE_KAIDAN,
+ /*0x0A*/ SE_DANSA,
+ /*0x0B*/ SE_JITENSYA,
+ /*0x0C*/ SE_KOUKA_L,
+ /*0x0D*/ SE_KOUKA_M,
+ /*0x0E*/ SE_KOUKA_H,
+ /*0x0F*/ SE_BOWA2,
+ /*0x10*/ SE_POKE_DEAD,
+ /*0x11*/ SE_NIGERU,
+ /*0x12*/ SE_JIDO_DOA,
+ /*0x13*/ SE_NAMINORI,
+ /*0x14*/ SE_BAN,
+ /*0x15*/ SE_PIN,
+ /*0x16*/ SE_BOO,
+ /*0x17*/ SE_BOWA,
+ /*0x18*/ SE_JYUNI,
+ /*0x19*/ SE_A,
+ /*0x1A*/ SE_I,
+ /*0x1B*/ SE_U,
+ /*0x1C*/ SE_E,
+ /*0x1D*/ SE_O,
+ /*0x1E*/ SE_N,
+ /*0x1F*/ SE_SEIKAI,
+ /*0x20*/ SE_HAZURE,
SE_EXP,
SE_JITE_PYOKO,
SE_MU_PACHI,
@@ -59,12 +59,12 @@ enum
SE_MOTER,
SE_CARD,
SE_SAVE,
- SE_KON,
- SE_KON2,
- SE_KON3,
- SE_KON4,
- SE_SUIKOMU,
- SE_NAGERU,
+ /*0x38*/ SE_KON,
+ /*0x39*/ SE_KON2,
+ /*0x3A*/ SE_KON3,
+ /*0x3B*/ SE_KON4,
+ /*0x3C*/ SE_SUIKOMU,
+ /*0x3D*/ SE_NAGERU,
SE_TOY_C,
SE_TOY_D,
SE_TOY_E,
@@ -93,7 +93,7 @@ enum
SE_T_KAMI,
SE_T_KAMI2,
SE_ELEBETA,
- SE_HINSI,
+ /*0x5A*/ SE_HINSI,
SE_EXPMAX,
SE_TAMAKORO,
SE_TAMAKORO_E,
@@ -112,25 +112,25 @@ enum
SE_JIHANKI,
SE_TAMA,
SE_Z_SCROLL,
- SE_Z_PAGE,
- SE_PN_ON,
- SE_PN_OFF,
- SE_Z_SEARCH,
- SE_TAMAGO,
- SE_TB_START,
- SE_TB_KON,
- SE_TB_KARA,
- SE_BIDORO,
- SE_W085,
- SE_W085B,
- SE_W231,
- SE_W171,
- SE_W233,
- SE_W233B,
- SE_W145,
- SE_W145B,
- SE_W145C,
- SE_W240,
+ /*0x6D*/ SE_Z_PAGE,
+ /*0x6E*/ SE_PN_ON,
+ /*0x6F*/ SE_PN_OFF,
+ /*0x70*/ SE_Z_SEARCH,
+ /*0x71*/ SE_TAMAGO,
+ /*0x72*/ SE_TB_START,
+ /*0x73*/ SE_TB_KON,
+ /*0x74*/ SE_TB_KARA,
+ /*0x75*/ SE_BIDORO,
+ /*0x76*/ SE_W085,
+ /*0x77*/ SE_W085B,
+ /*0x78*/ SE_W231,
+ /*0x79*/ SE_W171,
+ /*0x7A*/ SE_W233,
+ /*0x7B*/ SE_W233B,
+ /*0x7C*/ SE_W145,
+ /*0x7D*/ SE_W145B,
+ /*0x7E*/ SE_W145C,
+ /*0x7F*/ SE_W240,
SE_W015,
SE_W081,
SE_W081B,
@@ -269,11 +269,11 @@ enum
BGM_GIM,
BGM_NAMINORI,
BGM_DAN01,
- BGM_FANFA1,
- BGM_ME_ASA,
- BGM_ME_BACHI,
- BGM_FANFA4,
- BGM_FANFA5,
+ /*0x16F*/ BGM_FANFA1,
+ /*0x170*/ BGM_ME_ASA,
+ /*0x171*/ BGM_ME_BACHI,
+ /*0x172*/ BGM_FANFA4,
+ /*0x173*/ BGM_FANFA5,
BGM_ME_WAZA,
BGM_BIJYUTU,
BGM_DOORO_X4,
@@ -359,16 +359,16 @@ enum
BGM_DAIGO,
BGM_THANKFOR,
BGM_END,
- BGM_BATTLE27,
- BGM_BATTLE31,
- BGM_BATTLE20,
- BGM_BATTLE32,
- BGM_BATTLE33,
- BGM_BATTLE36,
- BGM_BATTLE34,
- BGM_BATTLE35,
- BGM_BATTLE38,
- BGM_BATTLE30,
+ BGM_BATTLE27, // wild
+ BGM_BATTLE31, // aqua/magma grunt
+ BGM_BATTLE20, // trainer
+ BGM_BATTLE32, // gym leader
+ BGM_BATTLE33, // champion
+ BGM_BATTLE36, // regi
+ BGM_BATTLE34, // weather trio
+ BGM_BATTLE35, // rival
+ BGM_BATTLE38, // elite four
+ BGM_BATTLE30, // aqua/magma leader
};
#endif // GUARD_SONGS_H
diff --git a/include/sound.h b/include/sound.h
index 1a5161ca8..283b2b1f9 100644
--- a/include/sound.h
+++ b/include/sound.h
@@ -35,10 +35,10 @@ bool8 IsCryPlayingOrClearCrySongs(void);
bool8 IsCryPlaying(void);
void PlayBGM(u16 songNum);
void PlaySE(u16 songNum);
-void PlaySE12WithPanning(u16 songNum, u8 pan);
-void PlaySE1WithPanning(u16 songNum, u8 pan);
-void PlaySE2WithPanning(u16 songNum, u8 pan);
-void SE12PanpotControl(u8 pan);
+void PlaySE12WithPanning(u16 songNum, s8 pan);
+void PlaySE1WithPanning(u16 songNum, s8 pan);
+void PlaySE2WithPanning(u16 songNum, s8 pan);
+void SE12PanpotControl(s8 pan);
bool8 IsSEPlaying(void);
bool8 IsBGMPlaying(void);
bool8 IsSpecialSEPlaying(void);
diff --git a/include/species.h b/include/species.h
index 5802f782d..e33481afd 100644
--- a/include/species.h
+++ b/include/species.h
@@ -1,392 +1,452 @@
#ifndef GUARD_SPECIES_H
#define GUARD_SPECIES_H
-#define SPECIES_NONE 0x000
-#define SPECIES_BULBASAUR 0x001
-#define SPECIES_IVYSAUR 0x002
-#define SPECIES_VENUSAUR 0x003
-#define SPECIES_CHARMANDER 0x004
-#define SPECIES_CHARMELEON 0x005
-#define SPECIES_CHARIZARD 0x006
-#define SPECIES_SQUIRTLE 0x007
-#define SPECIES_WARTORTLE 0x008
-#define SPECIES_BLASTOISE 0x009
-#define SPECIES_CATERPIE 0x00a
-#define SPECIES_METAPOD 0x00b
-#define SPECIES_BUTTERFREE 0x00c
-#define SPECIES_WEEDLE 0x00d
-#define SPECIES_KAKUNA 0x00e
-#define SPECIES_BEEDRILL 0x00f
-#define SPECIES_PIDGEY 0x010
-#define SPECIES_PIDGEOTTO 0x011
-#define SPECIES_PIDGEOT 0x012
-#define SPECIES_RATTATA 0x013
-#define SPECIES_RATICATE 0x014
-#define SPECIES_SPEAROW 0x015
-#define SPECIES_FEAROW 0x016
-#define SPECIES_EKANS 0x017
-#define SPECIES_ARBOK 0x018
-#define SPECIES_PIKACHU 0x019
-#define SPECIES_RAICHU 0x01a
-#define SPECIES_SANDSHREW 0x01b
-#define SPECIES_SANDSLASH 0x01c
-#define SPECIES_NIDORAN_F 0x01d
-#define SPECIES_NIDORINA 0x01e
-#define SPECIES_NIDOQUEEN 0x01f
-#define SPECIES_NIDORAN_M 0x020
-#define SPECIES_NIDORINO 0x021
-#define SPECIES_NIDOKING 0x022
-#define SPECIES_CLEFAIRY 0x023
-#define SPECIES_CLEFABLE 0x024
-#define SPECIES_VULPIX 0x025
-#define SPECIES_NINETALES 0x026
-#define SPECIES_JIGGLYPUFF 0x027
-#define SPECIES_WIGGLYTUFF 0x028
-#define SPECIES_ZUBAT 0x029
-#define SPECIES_GOLBAT 0x02a
-#define SPECIES_ODDISH 0x02b
-#define SPECIES_GLOOM 0x02c
-#define SPECIES_VILEPLUME 0x02d
-#define SPECIES_PARAS 0x02e
-#define SPECIES_PARASECT 0x02f
-#define SPECIES_VENONAT 0x030
-#define SPECIES_VENOMOTH 0x031
-#define SPECIES_DIGLETT 0x032
-#define SPECIES_DUGTRIO 0x033
-#define SPECIES_MEOWTH 0x034
-#define SPECIES_PERSIAN 0x035
-#define SPECIES_PSYDUCK 0x036
-#define SPECIES_GOLDUCK 0x037
-#define SPECIES_MANKEY 0x038
-#define SPECIES_PRIMEAPE 0x039
-#define SPECIES_GROWLITHE 0x03a
-#define SPECIES_ARCANINE 0x03b
-#define SPECIES_POLIWAG 0x03c
-#define SPECIES_POLIWHIRL 0x03d
-#define SPECIES_POLIWRATH 0x03e
-#define SPECIES_ABRA 0x03f
-#define SPECIES_KADABRA 0x040
-#define SPECIES_ALAKAZAM 0x041
-#define SPECIES_MACHOP 0x042
-#define SPECIES_MACHOKE 0x043
-#define SPECIES_MACHAMP 0x044
-#define SPECIES_BELLSPROUT 0x045
-#define SPECIES_WEEPINBELL 0x046
-#define SPECIES_VICTREEBEL 0x047
-#define SPECIES_TENTACOOL 0x048
-#define SPECIES_TENTACRUEL 0x049
-#define SPECIES_GEODUDE 0x04a
-#define SPECIES_GRAVELER 0x04b
-#define SPECIES_GOLEM 0x04c
-#define SPECIES_PONYTA 0x04d
-#define SPECIES_RAPIDASH 0x04e
-#define SPECIES_SLOWPOKE 0x04f
-#define SPECIES_SLOWBRO 0x050
-#define SPECIES_MAGNEMITE 0x051
-#define SPECIES_MAGNETON 0x052
-#define SPECIES_FARFETCHD 0x053
-#define SPECIES_DODUO 0x054
-#define SPECIES_DODRIO 0x055
-#define SPECIES_SEEL 0x056
-#define SPECIES_DEWGONG 0x057
-#define SPECIES_GRIMER 0x058
-#define SPECIES_MUK 0x059
-#define SPECIES_SHELLDER 0x05a
-#define SPECIES_CLOYSTER 0x05b
-#define SPECIES_GASTLY 0x05c
-#define SPECIES_HAUNTER 0x05d
-#define SPECIES_GENGAR 0x05e
-#define SPECIES_ONIX 0x05f
-#define SPECIES_DROWZEE 0x060
-#define SPECIES_HYPNO 0x061
-#define SPECIES_KRABBY 0x062
-#define SPECIES_KINGLER 0x063
-#define SPECIES_VOLTORB 0x064
-#define SPECIES_ELECTRODE 0x065
-#define SPECIES_EXEGGCUTE 0x066
-#define SPECIES_EXEGGUTOR 0x067
-#define SPECIES_CUBONE 0x068
-#define SPECIES_MAROWAK 0x069
-#define SPECIES_HITMONLEE 0x06a
-#define SPECIES_HITMONCHAN 0x06b
-#define SPECIES_LICKITUNG 0x06c
-#define SPECIES_KOFFING 0x06d
-#define SPECIES_WEEZING 0x06e
-#define SPECIES_RHYHORN 0x06f
-#define SPECIES_RHYDON 0x070
-#define SPECIES_CHANSEY 0x071
-#define SPECIES_TANGELA 0x072
-#define SPECIES_KANGASKHAN 0x073
-#define SPECIES_HORSEA 0x074
-#define SPECIES_SEADRA 0x075
-#define SPECIES_GOLDEEN 0x076
-#define SPECIES_SEAKING 0x077
-#define SPECIES_STARYU 0x078
-#define SPECIES_STARMIE 0x079
-#define SPECIES_MR_MIME 0x07a
-#define SPECIES_SCYTHER 0x07b
-#define SPECIES_JYNX 0x07c
-#define SPECIES_ELECTABUZZ 0x07d
-#define SPECIES_MAGMAR 0x07e
-#define SPECIES_PINSIR 0x07f
-#define SPECIES_TAUROS 0x080
-#define SPECIES_MAGIKARP 0x081
-#define SPECIES_GYARADOS 0x082
-#define SPECIES_LAPRAS 0x083
-#define SPECIES_DITTO 0x084
-#define SPECIES_EEVEE 0x085
-#define SPECIES_VAPOREON 0x086
-#define SPECIES_JOLTEON 0x087
-#define SPECIES_FLAREON 0x088
-#define SPECIES_PORYGON 0x089
-#define SPECIES_OMANYTE 0x08a
-#define SPECIES_OMASTAR 0x08b
-#define SPECIES_KABUTO 0x08c
-#define SPECIES_KABUTOPS 0x08d
-#define SPECIES_AERODACTYL 0x08e
-#define SPECIES_SNORLAX 0x08f
-#define SPECIES_ARTICUNO 0x090
-#define SPECIES_ZAPDOS 0x091
-#define SPECIES_MOLTRES 0x092
-#define SPECIES_DRATINI 0x093
-#define SPECIES_DRAGONAIR 0x094
-#define SPECIES_DRAGONITE 0x095
-#define SPECIES_MEWTWO 0x096
-#define SPECIES_MEW 0x097
-#define SPECIES_CHIKORITA 0x098
-#define SPECIES_BAYLEEF 0x099
-#define SPECIES_MEGANIUM 0x09a
-#define SPECIES_CYNDAQUIL 0x09b
-#define SPECIES_QUILAVA 0x09c
-#define SPECIES_TYPHLOSION 0x09d
-#define SPECIES_TOTODILE 0x09e
-#define SPECIES_CROCONAW 0x09f
-#define SPECIES_FERALIGATR 0x0a0
-#define SPECIES_SENTRET 0x0a1
-#define SPECIES_FURRET 0x0a2
-#define SPECIES_HOOTHOOT 0x0a3
-#define SPECIES_NOCTOWL 0x0a4
-#define SPECIES_LEDYBA 0x0a5
-#define SPECIES_LEDIAN 0x0a6
-#define SPECIES_SPINARAK 0x0a7
-#define SPECIES_ARIADOS 0x0a8
-#define SPECIES_CROBAT 0x0a9
-#define SPECIES_CHINCHOU 0x0aa
-#define SPECIES_LANTURN 0x0ab
-#define SPECIES_PICHU 0x0ac
-#define SPECIES_CLEFFA 0x0ad
-#define SPECIES_IGGLYBUFF 0x0ae
-#define SPECIES_TOGEPI 0x0af
-#define SPECIES_TOGETIC 0x0b0
-#define SPECIES_NATU 0x0b1
-#define SPECIES_XATU 0x0b2
-#define SPECIES_MAREEP 0x0b3
-#define SPECIES_FLAAFFY 0x0b4
-#define SPECIES_AMPHAROS 0x0b5
-#define SPECIES_BELLOSSOM 0x0b6
-#define SPECIES_MARILL 0x0b7
-#define SPECIES_AZUMARILL 0x0b8
-#define SPECIES_SUDOWOODO 0x0b9
-#define SPECIES_POLITOED 0x0ba
-#define SPECIES_HOPPIP 0x0bb
-#define SPECIES_SKIPLOOM 0x0bc
-#define SPECIES_JUMPLUFF 0x0bd
-#define SPECIES_AIPOM 0x0be
-#define SPECIES_SUNKERN 0x0bf
-#define SPECIES_SUNFLORA 0x0c0
-#define SPECIES_YANMA 0x0c1
-#define SPECIES_WOOPER 0x0c2
-#define SPECIES_QUAGSIRE 0x0c3
-#define SPECIES_ESPEON 0x0c4
-#define SPECIES_UMBREON 0x0c5
-#define SPECIES_MURKROW 0x0c6
-#define SPECIES_SLOWKING 0x0c7
-#define SPECIES_MISDREAVUS 0x0c8
-#define SPECIES_UNOWN 0x0c9
-#define SPECIES_WOBBUFFET 0x0ca
-#define SPECIES_GIRAFARIG 0x0cb
-#define SPECIES_PINECO 0x0cc
-#define SPECIES_FORRETRESS 0x0cd
-#define SPECIES_DUNSPARCE 0x0ce
-#define SPECIES_GLIGAR 0x0cf
-#define SPECIES_STEELIX 0x0d0
-#define SPECIES_SNUBBULL 0x0d1
-#define SPECIES_GRANBULL 0x0d2
-#define SPECIES_QWILFISH 0x0d3
-#define SPECIES_SCIZOR 0x0d4
-#define SPECIES_SHUCKLE 0x0d5
-#define SPECIES_HERACROSS 0x0d6
-#define SPECIES_SNEASEL 0x0d7
-#define SPECIES_TEDDIURSA 0x0d8
-#define SPECIES_URSARING 0x0d9
-#define SPECIES_SLUGMA 0x0da
-#define SPECIES_MAGCARGO 0x0db
-#define SPECIES_SWINUB 0x0dc
-#define SPECIES_PILOSWINE 0x0dd
-#define SPECIES_CORSOLA 0x0de
-#define SPECIES_REMORAID 0x0df
-#define SPECIES_OCTILLERY 0x0e0
-#define SPECIES_DELIBIRD 0x0e1
-#define SPECIES_MANTINE 0x0e2
-#define SPECIES_SKARMORY 0x0e3
-#define SPECIES_HOUNDOUR 0x0e4
-#define SPECIES_HOUNDOOM 0x0e5
-#define SPECIES_KINGDRA 0x0e6
-#define SPECIES_PHANPY 0x0e7
-#define SPECIES_DONPHAN 0x0e8
-#define SPECIES_PORYGON2 0x0e9
-#define SPECIES_STANTLER 0x0ea
-#define SPECIES_SMEARGLE 0x0eb
-#define SPECIES_TYROGUE 0x0ec
-#define SPECIES_HITMONTOP 0x0ed
-#define SPECIES_SMOOCHUM 0x0ee
-#define SPECIES_ELEKID 0x0ef
-#define SPECIES_MAGBY 0x0f0
-#define SPECIES_MILTANK 0x0f1
-#define SPECIES_BLISSEY 0x0f2
-#define SPECIES_RAIKOU 0x0f3
-#define SPECIES_ENTEI 0x0f4
-#define SPECIES_SUICUNE 0x0f5
-#define SPECIES_LARVITAR 0x0f6
-#define SPECIES_PUPITAR 0x0f7
-#define SPECIES_TYRANITAR 0x0f8
-#define SPECIES_LUGIA 0x0f9
-#define SPECIES_HO_OH 0x0fa
-#define SPECIES_CELEBI 0x0fb
-#define SPECIES_TREECKO 0x115
-#define SPECIES_GROVYLE 0x116
-#define SPECIES_SCEPTILE 0x117
-#define SPECIES_TORCHIC 0x118
-#define SPECIES_COMBUSKEN 0x119
-#define SPECIES_BLAZIKEN 0x11a
-#define SPECIES_MUDKIP 0x11b
-#define SPECIES_MARSHTOMP 0x11c
-#define SPECIES_SWAMPERT 0x11d
-#define SPECIES_POOCHYENA 0x11e
-#define SPECIES_MIGHTYENA 0x11f
-#define SPECIES_ZIGZAGOON 0x120
-#define SPECIES_LINOONE 0x121
-#define SPECIES_WURMPLE 0x122
-#define SPECIES_SILCOON 0x123
-#define SPECIES_BEAUTIFLY 0x124
-#define SPECIES_CASCOON 0x125
-#define SPECIES_DUSTOX 0x126
-#define SPECIES_LOTAD 0x127
-#define SPECIES_LOMBRE 0x128
-#define SPECIES_LUDICOLO 0x129
-#define SPECIES_SEEDOT 0x12a
-#define SPECIES_NUZLEAF 0x12b
-#define SPECIES_SHIFTRY 0x12c
-#define SPECIES_NINCADA 0x12d
-#define SPECIES_NINJASK 0x12e
-#define SPECIES_SHEDINJA 0x12f
-#define SPECIES_TAILLOW 0x130
-#define SPECIES_SWELLOW 0x131
-#define SPECIES_SHROOMISH 0x132
-#define SPECIES_BRELOOM 0x133
-#define SPECIES_SPINDA 0x134
-#define SPECIES_WINGULL 0x135
-#define SPECIES_PELIPPER 0x136
-#define SPECIES_SURSKIT 0x137
-#define SPECIES_MASQUERAIN 0x138
-#define SPECIES_WAILMER 0x139
-#define SPECIES_WAILORD 0x13a
-#define SPECIES_SKITTY 0x13b
-#define SPECIES_DELCATTY 0x13c
-#define SPECIES_KECLEON 0x13d
-#define SPECIES_BALTOY 0x13e
-#define SPECIES_CLAYDOL 0x13f
-#define SPECIES_NOSEPASS 0x140
-#define SPECIES_TORKOAL 0x141
-#define SPECIES_SABLEYE 0x142
-#define SPECIES_BARBOACH 0x143
-#define SPECIES_WHISCASH 0x144
-#define SPECIES_LUVDISC 0x145
-#define SPECIES_CORPHISH 0x146
-#define SPECIES_CRAWDAUNT 0x147
-#define SPECIES_FEEBAS 0x148
-#define SPECIES_MILOTIC 0x149
-#define SPECIES_CARVANHA 0x14a
-#define SPECIES_SHARPEDO 0x14b
-#define SPECIES_TRAPINCH 0x14c
-#define SPECIES_VIBRAVA 0x14d
-#define SPECIES_FLYGON 0x14e
-#define SPECIES_MAKUHITA 0x14f
-#define SPECIES_HARIYAMA 0x150
-#define SPECIES_ELECTRIKE 0x151
-#define SPECIES_MANECTRIC 0x152
-#define SPECIES_NUMEL 0x153
-#define SPECIES_CAMERUPT 0x154
-#define SPECIES_SPHEAL 0x155
-#define SPECIES_SEALEO 0x156
-#define SPECIES_WALREIN 0x157
-#define SPECIES_CACNEA 0x158
-#define SPECIES_CACTURNE 0x159
-#define SPECIES_SNORUNT 0x15a
-#define SPECIES_GLALIE 0x15b
-#define SPECIES_LUNATONE 0x15c
-#define SPECIES_SOLROCK 0x15d
-#define SPECIES_AZURILL 0x15e
-#define SPECIES_SPOINK 0x15f
-#define SPECIES_GRUMPIG 0x160
-#define SPECIES_PLUSLE 0x161
-#define SPECIES_MINUN 0x162
-#define SPECIES_MAWILE 0x163
-#define SPECIES_MEDITITE 0x164
-#define SPECIES_MEDICHAM 0x165
-#define SPECIES_SWABLU 0x166
-#define SPECIES_ALTARIA 0x167
-#define SPECIES_WYNAUT 0x168
-#define SPECIES_DUSKULL 0x169
-#define SPECIES_DUSCLOPS 0x16a
-#define SPECIES_ROSELIA 0x16b
-#define SPECIES_SLAKOTH 0x16c
-#define SPECIES_VIGOROTH 0x16d
-#define SPECIES_SLAKING 0x16e
-#define SPECIES_GULPIN 0x16f
-#define SPECIES_SWALOT 0x170
-#define SPECIES_TROPIUS 0x171
-#define SPECIES_WHISMUR 0x172
-#define SPECIES_LOUDRED 0x173
-#define SPECIES_EXPLOUD 0x174
-#define SPECIES_CLAMPERL 0x175
-#define SPECIES_HUNTAIL 0x176
-#define SPECIES_GOREBYSS 0x177
-#define SPECIES_ABSOL 0x178
-#define SPECIES_SHUPPET 0x179
-#define SPECIES_BANETTE 0x17a
-#define SPECIES_SEVIPER 0x17b
-#define SPECIES_ZANGOOSE 0x17c
-#define SPECIES_RELICANTH 0x17d
-#define SPECIES_ARON 0x17e
-#define SPECIES_LAIRON 0x17f
-#define SPECIES_AGGRON 0x180
-#define SPECIES_CASTFORM 0x181
-#define SPECIES_VOLBEAT 0x182
-#define SPECIES_ILLUMISE 0x183
-#define SPECIES_LILEEP 0x184
-#define SPECIES_CRADILY 0x185
-#define SPECIES_ANORITH 0x186
-#define SPECIES_ARMALDO 0x187
-#define SPECIES_RALTS 0x188
-#define SPECIES_KIRLIA 0x189
-#define SPECIES_GARDEVOIR 0x18a
-#define SPECIES_BAGON 0x18b
-#define SPECIES_SHELGON 0x18c
-#define SPECIES_SALAMENCE 0x18d
-#define SPECIES_BELDUM 0x18e
-#define SPECIES_METANG 0x18f
-#define SPECIES_METAGROSS 0x190
-#define SPECIES_REGIROCK 0x191
-#define SPECIES_REGICE 0x192
-#define SPECIES_REGISTEEL 0x193
-#define SPECIES_KYOGRE 0x194
-#define SPECIES_GROUDON 0x195
-#define SPECIES_RAYQUAZA 0x196
-#define SPECIES_LATIAS 0x197
-#define SPECIES_LATIOS 0x198
-#define SPECIES_JIRACHI 0x199
-#define SPECIES_DEOXYS 0x19a
-#define SPECIES_CHIMECHO 0x19b
+enum {
+ SPECIES_NONE, // 0x000
+ SPECIES_BULBASAUR, // 0x001
+ SPECIES_IVYSAUR, // 0x002
+ SPECIES_VENUSAUR, // 0x003
+ SPECIES_CHARMANDER, // 0x004
+ SPECIES_CHARMELEON, // 0x005
+ SPECIES_CHARIZARD, // 0x006
+ SPECIES_SQUIRTLE, // 0x007
+ SPECIES_WARTORTLE, // 0x008
+ SPECIES_BLASTOISE, // 0x009
+ SPECIES_CATERPIE, // 0x00a
+ SPECIES_METAPOD, // 0x00b
+ SPECIES_BUTTERFREE, // 0x00c
+ SPECIES_WEEDLE, // 0x00d
+ SPECIES_KAKUNA, // 0x00e
+ SPECIES_BEEDRILL, // 0x00f
+ SPECIES_PIDGEY, // 0x010
+ SPECIES_PIDGEOTTO, // 0x011
+ SPECIES_PIDGEOT, // 0x012
+ SPECIES_RATTATA, // 0x013
+ SPECIES_RATICATE, // 0x014
+ SPECIES_SPEAROW, // 0x015
+ SPECIES_FEAROW, // 0x016
+ SPECIES_EKANS, // 0x017
+ SPECIES_ARBOK, // 0x018
+ SPECIES_PIKACHU, // 0x019
+ SPECIES_RAICHU, // 0x01a
+ SPECIES_SANDSHREW, // 0x01b
+ SPECIES_SANDSLASH, // 0x01c
+ SPECIES_NIDORAN_F, // 0x01d
+ SPECIES_NIDORINA, // 0x01e
+ SPECIES_NIDOQUEEN, // 0x01f
+ SPECIES_NIDORAN_M, // 0x020
+ SPECIES_NIDORINO, // 0x021
+ SPECIES_NIDOKING, // 0x022
+ SPECIES_CLEFAIRY, // 0x023
+ SPECIES_CLEFABLE, // 0x024
+ SPECIES_VULPIX, // 0x025
+ SPECIES_NINETALES, // 0x026
+ SPECIES_JIGGLYPUFF, // 0x027
+ SPECIES_WIGGLYTUFF, // 0x028
+ SPECIES_ZUBAT, // 0x029
+ SPECIES_GOLBAT, // 0x02a
+ SPECIES_ODDISH, // 0x02b
+ SPECIES_GLOOM, // 0x02c
+ SPECIES_VILEPLUME, // 0x02d
+ SPECIES_PARAS, // 0x02e
+ SPECIES_PARASECT, // 0x02f
+ SPECIES_VENONAT, // 0x030
+ SPECIES_VENOMOTH, // 0x031
+ SPECIES_DIGLETT, // 0x032
+ SPECIES_DUGTRIO, // 0x033
+ SPECIES_MEOWTH, // 0x034
+ SPECIES_PERSIAN, // 0x035
+ SPECIES_PSYDUCK, // 0x036
+ SPECIES_GOLDUCK, // 0x037
+ SPECIES_MANKEY, // 0x038
+ SPECIES_PRIMEAPE, // 0x039
+ SPECIES_GROWLITHE, // 0x03a
+ SPECIES_ARCANINE, // 0x03b
+ SPECIES_POLIWAG, // 0x03c
+ SPECIES_POLIWHIRL, // 0x03d
+ SPECIES_POLIWRATH, // 0x03e
+ SPECIES_ABRA, // 0x03f
+ SPECIES_KADABRA, // 0x040
+ SPECIES_ALAKAZAM, // 0x041
+ SPECIES_MACHOP, // 0x042
+ SPECIES_MACHOKE, // 0x043
+ SPECIES_MACHAMP, // 0x044
+ SPECIES_BELLSPROUT, // 0x045
+ SPECIES_WEEPINBELL, // 0x046
+ SPECIES_VICTREEBEL, // 0x047
+ SPECIES_TENTACOOL, // 0x048
+ SPECIES_TENTACRUEL, // 0x049
+ SPECIES_GEODUDE, // 0x04a
+ SPECIES_GRAVELER, // 0x04b
+ SPECIES_GOLEM, // 0x04c
+ SPECIES_PONYTA, // 0x04d
+ SPECIES_RAPIDASH, // 0x04e
+ SPECIES_SLOWPOKE, // 0x04f
+ SPECIES_SLOWBRO, // 0x050
+ SPECIES_MAGNEMITE, // 0x051
+ SPECIES_MAGNETON, // 0x052
+ SPECIES_FARFETCHD, // 0x053
+ SPECIES_DODUO, // 0x054
+ SPECIES_DODRIO, // 0x055
+ SPECIES_SEEL, // 0x056
+ SPECIES_DEWGONG, // 0x057
+ SPECIES_GRIMER, // 0x058
+ SPECIES_MUK, // 0x059
+ SPECIES_SHELLDER, // 0x05a
+ SPECIES_CLOYSTER, // 0x05b
+ SPECIES_GASTLY, // 0x05c
+ SPECIES_HAUNTER, // 0x05d
+ SPECIES_GENGAR, // 0x05e
+ SPECIES_ONIX, // 0x05f
+ SPECIES_DROWZEE, // 0x060
+ SPECIES_HYPNO, // 0x061
+ SPECIES_KRABBY, // 0x062
+ SPECIES_KINGLER, // 0x063
+ SPECIES_VOLTORB, // 0x064
+ SPECIES_ELECTRODE, // 0x065
+ SPECIES_EXEGGCUTE, // 0x066
+ SPECIES_EXEGGUTOR, // 0x067
+ SPECIES_CUBONE, // 0x068
+ SPECIES_MAROWAK, // 0x069
+ SPECIES_HITMONLEE, // 0x06a
+ SPECIES_HITMONCHAN, // 0x06b
+ SPECIES_LICKITUNG, // 0x06c
+ SPECIES_KOFFING, // 0x06d
+ SPECIES_WEEZING, // 0x06e
+ SPECIES_RHYHORN, // 0x06f
+ SPECIES_RHYDON, // 0x070
+ SPECIES_CHANSEY, // 0x071
+ SPECIES_TANGELA, // 0x072
+ SPECIES_KANGASKHAN, // 0x073
+ SPECIES_HORSEA, // 0x074
+ SPECIES_SEADRA, // 0x075
+ SPECIES_GOLDEEN, // 0x076
+ SPECIES_SEAKING, // 0x077
+ SPECIES_STARYU, // 0x078
+ SPECIES_STARMIE, // 0x079
+ SPECIES_MR_MIME, // 0x07a
+ SPECIES_SCYTHER, // 0x07b
+ SPECIES_JYNX, // 0x07c
+ SPECIES_ELECTABUZZ, // 0x07d
+ SPECIES_MAGMAR, // 0x07e
+ SPECIES_PINSIR, // 0x07f
+ SPECIES_TAUROS, // 0x080
+ SPECIES_MAGIKARP, // 0x081
+ SPECIES_GYARADOS, // 0x082
+ SPECIES_LAPRAS, // 0x083
+ SPECIES_DITTO, // 0x084
+ SPECIES_EEVEE, // 0x085
+ SPECIES_VAPOREON, // 0x086
+ SPECIES_JOLTEON, // 0x087
+ SPECIES_FLAREON, // 0x088
+ SPECIES_PORYGON, // 0x089
+ SPECIES_OMANYTE, // 0x08a
+ SPECIES_OMASTAR, // 0x08b
+ SPECIES_KABUTO, // 0x08c
+ SPECIES_KABUTOPS, // 0x08d
+ SPECIES_AERODACTYL, // 0x08e
+ SPECIES_SNORLAX, // 0x08f
+ SPECIES_ARTICUNO, // 0x090
+ SPECIES_ZAPDOS, // 0x091
+ SPECIES_MOLTRES, // 0x092
+ SPECIES_DRATINI, // 0x093
+ SPECIES_DRAGONAIR, // 0x094
+ SPECIES_DRAGONITE, // 0x095
+ SPECIES_MEWTWO, // 0x096
+ SPECIES_MEW, // 0x097
+ SPECIES_CHIKORITA, // 0x098
+ SPECIES_BAYLEEF, // 0x099
+ SPECIES_MEGANIUM, // 0x09a
+ SPECIES_CYNDAQUIL, // 0x09b
+ SPECIES_QUILAVA, // 0x09c
+ SPECIES_TYPHLOSION, // 0x09d
+ SPECIES_TOTODILE, // 0x09e
+ SPECIES_CROCONAW, // 0x09f
+ SPECIES_FERALIGATR, // 0x0a0
+ SPECIES_SENTRET, // 0x0a1
+ SPECIES_FURRET, // 0x0a2
+ SPECIES_HOOTHOOT, // 0x0a3
+ SPECIES_NOCTOWL, // 0x0a4
+ SPECIES_LEDYBA, // 0x0a5
+ SPECIES_LEDIAN, // 0x0a6
+ SPECIES_SPINARAK, // 0x0a7
+ SPECIES_ARIADOS, // 0x0a8
+ SPECIES_CROBAT, // 0x0a9
+ SPECIES_CHINCHOU, // 0x0aa
+ SPECIES_LANTURN, // 0x0ab
+ SPECIES_PICHU, // 0x0ac
+ SPECIES_CLEFFA, // 0x0ad
+ SPECIES_IGGLYBUFF, // 0x0ae
+ SPECIES_TOGEPI, // 0x0af
+ SPECIES_TOGETIC, // 0x0b0
+ SPECIES_NATU, // 0x0b1
+ SPECIES_XATU, // 0x0b2
+ SPECIES_MAREEP, // 0x0b3
+ SPECIES_FLAAFFY, // 0x0b4
+ SPECIES_AMPHAROS, // 0x0b5
+ SPECIES_BELLOSSOM, // 0x0b6
+ SPECIES_MARILL, // 0x0b7
+ SPECIES_AZUMARILL, // 0x0b8
+ SPECIES_SUDOWOODO, // 0x0b9
+ SPECIES_POLITOED, // 0x0ba
+ SPECIES_HOPPIP, // 0x0bb
+ SPECIES_SKIPLOOM, // 0x0bc
+ SPECIES_JUMPLUFF, // 0x0bd
+ SPECIES_AIPOM, // 0x0be
+ SPECIES_SUNKERN, // 0x0bf
+ SPECIES_SUNFLORA, // 0x0c0
+ SPECIES_YANMA, // 0x0c1
+ SPECIES_WOOPER, // 0x0c2
+ SPECIES_QUAGSIRE, // 0x0c3
+ SPECIES_ESPEON, // 0x0c4
+ SPECIES_UMBREON, // 0x0c5
+ SPECIES_MURKROW, // 0x0c6
+ SPECIES_SLOWKING, // 0x0c7
+ SPECIES_MISDREAVUS, // 0x0c8
+ SPECIES_UNOWN, // 0x0c9
+ SPECIES_WOBBUFFET, // 0x0ca
+ SPECIES_GIRAFARIG, // 0x0cb
+ SPECIES_PINECO, // 0x0cc
+ SPECIES_FORRETRESS, // 0x0cd
+ SPECIES_DUNSPARCE, // 0x0ce
+ SPECIES_GLIGAR, // 0x0cf
+ SPECIES_STEELIX, // 0x0d0
+ SPECIES_SNUBBULL, // 0x0d1
+ SPECIES_GRANBULL, // 0x0d2
+ SPECIES_QWILFISH, // 0x0d3
+ SPECIES_SCIZOR, // 0x0d4
+ SPECIES_SHUCKLE, // 0x0d5
+ SPECIES_HERACROSS, // 0x0d6
+ SPECIES_SNEASEL, // 0x0d7
+ SPECIES_TEDDIURSA, // 0x0d8
+ SPECIES_URSARING, // 0x0d9
+ SPECIES_SLUGMA, // 0x0da
+ SPECIES_MAGCARGO, // 0x0db
+ SPECIES_SWINUB, // 0x0dc
+ SPECIES_PILOSWINE, // 0x0dd
+ SPECIES_CORSOLA, // 0x0de
+ SPECIES_REMORAID, // 0x0df
+ SPECIES_OCTILLERY, // 0x0e0
+ SPECIES_DELIBIRD, // 0x0e1
+ SPECIES_MANTINE, // 0x0e2
+ SPECIES_SKARMORY, // 0x0e3
+ SPECIES_HOUNDOUR, // 0x0e4
+ SPECIES_HOUNDOOM, // 0x0e5
+ SPECIES_KINGDRA, // 0x0e6
+ SPECIES_PHANPY, // 0x0e7
+ SPECIES_DONPHAN, // 0x0e8
+ SPECIES_PORYGON2, // 0x0e9
+ SPECIES_STANTLER, // 0x0ea
+ SPECIES_SMEARGLE, // 0x0eb
+ SPECIES_TYROGUE, // 0x0ec
+ SPECIES_HITMONTOP, // 0x0ed
+ SPECIES_SMOOCHUM, // 0x0ee
+ SPECIES_ELEKID, // 0x0ef
+ SPECIES_MAGBY, // 0x0f0
+ SPECIES_MILTANK, // 0x0f1
+ SPECIES_BLISSEY, // 0x0f2
+ SPECIES_RAIKOU, // 0x0f3
+ SPECIES_ENTEI, // 0x0f4
+ SPECIES_SUICUNE, // 0x0f5
+ SPECIES_LARVITAR, // 0x0f6
+ SPECIES_PUPITAR, // 0x0f7
+ SPECIES_TYRANITAR, // 0x0f8
+ SPECIES_LUGIA, // 0x0f9
+ SPECIES_HO_OH, // 0x0fa
+ SPECIES_CELEBI, // 0x0fb
+
+ SPECIES_OLD_UNOWN_B,
+ SPECIES_OLD_UNOWN_C,
+ SPECIES_OLD_UNOWN_D,
+ SPECIES_OLD_UNOWN_E,
+ SPECIES_OLD_UNOWN_F,
+ SPECIES_OLD_UNOWN_G,
+ SPECIES_OLD_UNOWN_H,
+ SPECIES_OLD_UNOWN_I,
+ SPECIES_OLD_UNOWN_J,
+ SPECIES_OLD_UNOWN_K,
+ SPECIES_OLD_UNOWN_L,
+ SPECIES_OLD_UNOWN_M,
+ SPECIES_OLD_UNOWN_N,
+ SPECIES_OLD_UNOWN_O,
+ SPECIES_OLD_UNOWN_P,
+ SPECIES_OLD_UNOWN_Q,
+ SPECIES_OLD_UNOWN_R,
+ SPECIES_OLD_UNOWN_S,
+ SPECIES_OLD_UNOWN_T,
+ SPECIES_OLD_UNOWN_U,
+ SPECIES_OLD_UNOWN_V,
+ SPECIES_OLD_UNOWN_W,
+ SPECIES_OLD_UNOWN_X,
+ SPECIES_OLD_UNOWN_Y,
+ SPECIES_OLD_UNOWN_Z,
+
+ SPECIES_TREECKO, // 0x115
+ SPECIES_GROVYLE, // 0x116
+ SPECIES_SCEPTILE, // 0x117
+ SPECIES_TORCHIC, // 0x118
+ SPECIES_COMBUSKEN, // 0x119
+ SPECIES_BLAZIKEN, // 0x11a
+ SPECIES_MUDKIP, // 0x11b
+ SPECIES_MARSHTOMP, // 0x11c
+ SPECIES_SWAMPERT, // 0x11d
+ SPECIES_POOCHYENA, // 0x11e
+ SPECIES_MIGHTYENA, // 0x11f
+ SPECIES_ZIGZAGOON, // 0x120
+ SPECIES_LINOONE, // 0x121
+ SPECIES_WURMPLE, // 0x122
+ SPECIES_SILCOON, // 0x123
+ SPECIES_BEAUTIFLY, // 0x124
+ SPECIES_CASCOON, // 0x125
+ SPECIES_DUSTOX, // 0x126
+ SPECIES_LOTAD, // 0x127
+ SPECIES_LOMBRE, // 0x128
+ SPECIES_LUDICOLO, // 0x129
+ SPECIES_SEEDOT, // 0x12a
+ SPECIES_NUZLEAF, // 0x12b
+ SPECIES_SHIFTRY, // 0x12c
+ SPECIES_NINCADA, // 0x12d
+ SPECIES_NINJASK, // 0x12e
+ SPECIES_SHEDINJA, // 0x12f
+ SPECIES_TAILLOW, // 0x130
+ SPECIES_SWELLOW, // 0x131
+ SPECIES_SHROOMISH, // 0x132
+ SPECIES_BRELOOM, // 0x133
+ SPECIES_SPINDA, // 0x134
+ SPECIES_WINGULL, // 0x135
+ SPECIES_PELIPPER, // 0x136
+ SPECIES_SURSKIT, // 0x137
+ SPECIES_MASQUERAIN, // 0x138
+ SPECIES_WAILMER, // 0x139
+ SPECIES_WAILORD, // 0x13a
+ SPECIES_SKITTY, // 0x13b
+ SPECIES_DELCATTY, // 0x13c
+ SPECIES_KECLEON, // 0x13d
+ SPECIES_BALTOY, // 0x13e
+ SPECIES_CLAYDOL, // 0x13f
+ SPECIES_NOSEPASS, // 0x140
+ SPECIES_TORKOAL, // 0x141
+ SPECIES_SABLEYE, // 0x142
+ SPECIES_BARBOACH, // 0x143
+ SPECIES_WHISCASH, // 0x144
+ SPECIES_LUVDISC, // 0x145
+ SPECIES_CORPHISH, // 0x146
+ SPECIES_CRAWDAUNT, // 0x147
+ SPECIES_FEEBAS, // 0x148
+ SPECIES_MILOTIC, // 0x149
+ SPECIES_CARVANHA, // 0x14a
+ SPECIES_SHARPEDO, // 0x14b
+ SPECIES_TRAPINCH, // 0x14c
+ SPECIES_VIBRAVA, // 0x14d
+ SPECIES_FLYGON, // 0x14e
+ SPECIES_MAKUHITA, // 0x14f
+ SPECIES_HARIYAMA, // 0x150
+ SPECIES_ELECTRIKE, // 0x151
+ SPECIES_MANECTRIC, // 0x152
+ SPECIES_NUMEL, // 0x153
+ SPECIES_CAMERUPT, // 0x154
+ SPECIES_SPHEAL, // 0x155
+ SPECIES_SEALEO, // 0x156
+ SPECIES_WALREIN, // 0x157
+ SPECIES_CACNEA, // 0x158
+ SPECIES_CACTURNE, // 0x159
+ SPECIES_SNORUNT, // 0x15a
+ SPECIES_GLALIE, // 0x15b
+ SPECIES_LUNATONE, // 0x15c
+ SPECIES_SOLROCK, // 0x15d
+ SPECIES_AZURILL, // 0x15e
+ SPECIES_SPOINK, // 0x15f
+ SPECIES_GRUMPIG, // 0x160
+ SPECIES_PLUSLE, // 0x161
+ SPECIES_MINUN, // 0x162
+ SPECIES_MAWILE, // 0x163
+ SPECIES_MEDITITE, // 0x164
+ SPECIES_MEDICHAM, // 0x165
+ SPECIES_SWABLU, // 0x166
+ SPECIES_ALTARIA, // 0x167
+ SPECIES_WYNAUT, // 0x168
+ SPECIES_DUSKULL, // 0x169
+ SPECIES_DUSCLOPS, // 0x16a
+ SPECIES_ROSELIA, // 0x16b
+ SPECIES_SLAKOTH, // 0x16c
+ SPECIES_VIGOROTH, // 0x16d
+ SPECIES_SLAKING, // 0x16e
+ SPECIES_GULPIN, // 0x16f
+ SPECIES_SWALOT, // 0x170
+ SPECIES_TROPIUS, // 0x171
+ SPECIES_WHISMUR, // 0x172
+ SPECIES_LOUDRED, // 0x173
+ SPECIES_EXPLOUD, // 0x174
+ SPECIES_CLAMPERL, // 0x175
+ SPECIES_HUNTAIL, // 0x176
+ SPECIES_GOREBYSS, // 0x177
+ SPECIES_ABSOL, // 0x178
+ SPECIES_SHUPPET, // 0x179
+ SPECIES_BANETTE, // 0x17a
+ SPECIES_SEVIPER, // 0x17b
+ SPECIES_ZANGOOSE, // 0x17c
+ SPECIES_RELICANTH, // 0x17d
+ SPECIES_ARON, // 0x17e
+ SPECIES_LAIRON, // 0x17f
+ SPECIES_AGGRON, // 0x180
+ SPECIES_CASTFORM, // 0x181
+ SPECIES_VOLBEAT, // 0x182
+ SPECIES_ILLUMISE, // 0x183
+ SPECIES_LILEEP, // 0x184
+ SPECIES_CRADILY, // 0x185
+ SPECIES_ANORITH, // 0x186
+ SPECIES_ARMALDO, // 0x187
+ SPECIES_RALTS, // 0x188
+ SPECIES_KIRLIA, // 0x189
+ SPECIES_GARDEVOIR, // 0x18a
+ SPECIES_BAGON, // 0x18b
+ SPECIES_SHELGON, // 0x18c
+ SPECIES_SALAMENCE, // 0x18d
+ SPECIES_BELDUM, // 0x18e
+ SPECIES_METANG, // 0x18f
+ SPECIES_METAGROSS, // 0x190
+ SPECIES_REGIROCK, // 0x191
+ SPECIES_REGICE, // 0x192
+ SPECIES_REGISTEEL, // 0x193
+ SPECIES_KYOGRE, // 0x194
+ SPECIES_GROUDON, // 0x195
+ SPECIES_RAYQUAZA, // 0x196
+ SPECIES_LATIAS, // 0x197
+ SPECIES_LATIOS, // 0x198
+ SPECIES_JIRACHI, // 0x199
+ SPECIES_DEOXYS, // 0x19a
+ SPECIES_CHIMECHO, // 0x19b
+ SPECIES_EGG, // 0x19c
+
+ SPECIES_UNOWN_B,
+ SPECIES_UNOWN_C,
+ SPECIES_UNOWN_D,
+ SPECIES_UNOWN_E,
+ SPECIES_UNOWN_F,
+ SPECIES_UNOWN_G,
+ SPECIES_UNOWN_H,
+ SPECIES_UNOWN_I,
+ SPECIES_UNOWN_J,
+ SPECIES_UNOWN_K,
+ SPECIES_UNOWN_L,
+ SPECIES_UNOWN_M,
+ SPECIES_UNOWN_N,
+ SPECIES_UNOWN_O,
+ SPECIES_UNOWN_P,
+ SPECIES_UNOWN_Q,
+ SPECIES_UNOWN_R,
+ SPECIES_UNOWN_S,
+ SPECIES_UNOWN_T,
+ SPECIES_UNOWN_U,
+ SPECIES_UNOWN_V,
+ SPECIES_UNOWN_W,
+ SPECIES_UNOWN_X,
+ SPECIES_UNOWN_Y,
+ SPECIES_UNOWN_Z,
+ SPECIES_UNOWN_EMARK,
+ SPECIES_UNOWN_QMARK,
+};
+
+#define NUM_SPECIES SPECIES_EGG
#endif // GUARD_SPECIES_H
diff --git a/include/sprite.h b/include/sprite.h
index 57926fc68..a65e71bd9 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -5,20 +5,35 @@
struct SpriteSheet
{
- u8 *data;
+ const u8 *data; // Raw uncompressed pixel data
u16 size;
u16 tag;
};
+struct CompressedSpriteSheet
+{
+ const u8 *data; // LZ77 compressed pixel data
+ u16 size; // Uncompressed size of pixel data
+ u16 tag;
+};
+
struct SpriteFrameImage
{
u8 *data;
u16 size;
};
+#define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr}
+
struct SpritePalette
{
- u16 *data;
+ const u16 *data; // Raw uncompressed palette data
+ u16 tag;
+};
+
+struct CompressedSpritePalette
+{
+ const u8 *data; // LZ77 compressed palette data
u16 tag;
};
@@ -45,6 +60,9 @@ struct AnimJumpCmd
u32 target:6;
};
+// The first halfword of this union specifies the type of command.
+// If it -2, then it is a jump command. If it is -1, then it is the end of the script.
+// Otherwise, it is the imageValue for a frame command.
union AnimCmd
{
s16 type;
@@ -53,6 +71,15 @@ union AnimCmd
struct AnimJumpCmd jump;
};
+#define ANIMCMD_FRAME(...) \
+ {.frame = {__VA_ARGS__}}
+#define ANIMCMD_LOOP(_count) \
+ {.loop = {.type = -3, .count = _count}}
+#define ANIMCMD_JUMP(_target) \
+ {.jump = {.type = -2, .target = _target}}
+#define ANIMCMD_END \
+ {.type = -1}
+
struct AffineAnimFrameCmd
{
s16 xScale;
@@ -64,7 +91,7 @@ struct AffineAnimFrameCmd
struct AffineAnimLoopCmd
{
s16 type;
- u16 count;
+ s16 count;
};
struct AffineAnimJumpCmd
@@ -81,6 +108,23 @@ union AffineAnimCmd
struct AffineAnimJumpCmd jump;
};
+#define AFFINEANIMCMDTYPE_LOOP 0x7FFD
+#define AFFINEANIMCMDTYPE_JUMP 0x7FFE
+#define AFFINEANIMCMDTYPE_END 0x7FFF
+
+#define AFFINEANIMCMD_FRAME(_xScale, _yScale, _rotation, _duration) \
+ {.frame = {.xScale = _xScale, .yScale = _yScale, .rotation = _rotation, .duration = _duration}}
+#define AFFINEANIMCMD_LOOP(_count) \
+ {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}}
+#define AFFINEANIMCMD_JUMP(_target) \
+ {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}}
+#define AFFINEANIMCMD_END \
+ {.type = AFFINEANIMCMDTYPE_END}
+#define AFFINEANIMCMD_LOOP(_count) \
+ {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}}
+#define AFFINEANIMCMD_JUMP(_target) \
+ {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}}
+
struct AffineAnimState
{
u8 animNum;
@@ -112,7 +156,7 @@ struct Subsprite
struct SubspriteTable
{
u8 subspriteCount;
- struct Subsprite *subsprites;
+ const struct Subsprite *subsprites;
};
struct Sprite;
@@ -121,22 +165,22 @@ struct SpriteTemplate
{
u16 tileTag;
u16 paletteTag;
- struct OamData *oam;
- union AnimCmd **anims;
- struct SpriteFrameImage *images;
- union AffineAnimCmd **affineAnims;
+ const struct OamData *oam;
+ const union AnimCmd *const *anims;
+ const struct SpriteFrameImage *images;
+ const union AffineAnimCmd *const *affineAnims;
void (*callback)(struct Sprite *);
};
struct Sprite
{
- struct OamData oam;
- union AnimCmd **anims;
- struct SpriteFrameImage *images;
- union AffineAnimCmd **affineAnims;
- const struct SpriteTemplate *template;
- struct SubspriteTable *subspriteTables;
- void (*callback)(struct Sprite *);
+ /*0x00*/ struct OamData oam;
+ /*0x08*/ const union AnimCmd *const *anims;
+ /*0x0C*/ const struct SpriteFrameImage *images;
+ /*0x10*/ const union AffineAnimCmd *const *affineAnims;
+ /*0x14*/ const struct SpriteTemplate *template;
+ /*0x18*/ const struct SubspriteTable *subspriteTables;
+ /*0x1C*/ void (*callback)(struct Sprite *);
/*0x20*/ struct Coords16 pos1;
/*0x24*/ struct Coords16 pos2;
@@ -179,12 +223,16 @@ struct Sprite
/*0x40*/ u16 sheetTileStart;
- u8 subspriteTableNum:6;
- u8 subspriteMode:2;
+ /*0x42*/ u8 subspriteTableNum:6;
+ u8 subspriteMode:2;
- u8 subpriority;
+ /*0x43*/ u8 subpriority;
};
+extern const struct OamData gDummyOamData;
+extern const union AnimCmd *const gDummySpriteAnimTable[];
+extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
+
extern s16 gSpriteCoordOffsetX;
extern s16 gSpriteCoordOffsetY;
@@ -194,7 +242,7 @@ void ResetSpriteData(void);
void AnimateSprites(void);
void BuildOamBuffer(void);
u8 CreateSprite(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
-u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, u16 x, u16 y, u8 subpriority);
+u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
u8 CreateInvisibleSprite(void (*callback)(struct Sprite *));
u8 CreateSpriteAndAnimate(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
void DestroySprite(struct Sprite *sprite);
@@ -204,7 +252,7 @@ void SetOamMatrix(u8 matrixNum, u16 a, u16 b, u16 c, u16 d);
void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode);
void SpriteCallbackDummy(struct Sprite *sprite);
void ProcessSpriteCopyRequests(void);
-void RequestSpriteCopy(u8 *src, u8 *dest, u16 size);
+void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size);
void FreeSpriteTiles(struct Sprite *sprite);
void FreeSpritePalette(struct Sprite *sprite);
void FreeSpriteOamMatrix(struct Sprite *sprite);
@@ -223,18 +271,18 @@ u8 AllocOamMatrix(void);
void FreeOamMatrix(u8 matrixNum);
void InitSpriteAffineAnim(struct Sprite *sprite);
void SetOamMatrixRotationScaling(u8 matrixNum, s16 xScale, s16 yScale, u16 rotation);
-u16 LoadSpriteSheet(struct SpriteSheet *sheet);
-void LoadSpriteSheets(struct SpriteSheet *sheets);
+u16 LoadSpriteSheet(const struct SpriteSheet *sheet);
+void LoadSpriteSheets(const struct SpriteSheet *sheets);
u16 AllocTilesForSpriteSheet(struct SpriteSheet *sheet);
void AllocTilesForSpriteSheets(struct SpriteSheet *sheets);
-void LoadTilesForSpriteSheet(struct SpriteSheet *sheet);
+void LoadTilesForSpriteSheet(const struct SpriteSheet *sheet);
void LoadTilesForSpriteSheets(struct SpriteSheet *sheets);
void FreeSpriteTilesByTag(u16 tag);
void FreeSpriteTileRanges(void);
u16 GetSpriteTileStartByTag(u16 tag);
u16 GetSpriteTileTagByTileStart(u16 start);
-void RequestSpriteSheetCopy(struct SpriteSheet *sheet);
-u16 LoadSpriteSheetDeferred(struct SpriteSheet *sheet);
+void RequestSpriteSheetCopy(const struct SpriteSheet *sheet);
+u16 LoadSpriteSheetDeferred(const struct SpriteSheet *sheet);
void FreeAllSpritePalettes(void);
u8 LoadSpritePalette(const struct SpritePalette *palette);
void LoadSpritePalettes(const struct SpritePalette *palettes);
@@ -242,11 +290,13 @@ u8 AllocSpritePalette(u16 tag);
u8 IndexOfSpritePaletteTag(u16 tag);
u16 GetSpritePaletteTagByPaletteNum(u8 paletteNum);
void FreeSpritePaletteByTag(u16 tag);
-void SetSubspriteTables(struct Sprite *sprite, struct SubspriteTable *subspriteTables);
+void SetSubspriteTables(struct Sprite *sprite, const struct SubspriteTable *subspriteTables);
bool8 AddSpriteToOamBuffer(struct Sprite *object, u8 *oamIndex);
bool8 AddSubspritesToOamBuffer(struct Sprite *sprite, struct OamData *destOam, u8 *oamIndex);
void CopyToSprites(u8 *src);
void CopyFromSprites(u8 *dest);
u8 SpriteTileAllocBitmapOp(u16 bit, u8 op);
+extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
+
#endif // GUARD_SPRITE_H
diff --git a/include/start_menu.h b/include/start_menu.h
index 77bfe5d0e..5169b3bf0 100644
--- a/include/start_menu.h
+++ b/include/start_menu.h
@@ -5,19 +5,7 @@
void CreateStartMenuTask(void (*func)(u8));
void sub_80712B4(u8 taskId);
void sub_8071310(void);
-u8 StartMenu_PokedexCallback(void);
-u8 StartMenu_PokemonCallback(void);
-u8 StartMenu_BagCallback(void);
-u8 StartMenu_PokenavCallback(void);
-u8 StartMenu_PlayerCallback(void);
-u8 StartMenu_SaveCallback(void);
-u8 StartMenu_OptionCallback(void);
-u8 StartMenu_ExitCallback(void);
-u8 StartMenu_RetireCallback(void);
-u8 StartMenu_PlayerLinkCallback(void);
void InitSaveDialog(void);
void sub_8071B28(void);
-void sub_8071C20(void);
-void AppendToList(u8 *list, u8 *pindex, u32 value);
#endif // GUARD_STARTER_CHOOSE_H
diff --git a/include/starter_choose.h b/include/starter_choose.h
index 4a7e0514c..44ca8c34c 100644
--- a/include/starter_choose.h
+++ b/include/starter_choose.h
@@ -3,11 +3,12 @@
#include "sprite.h"
+extern const u16 gBirchBagGrassPal[2][16];
+extern const u8 gBirchBagTilemap[];
+extern const u8 gBirchGrassTilemap[];
+extern const u8 gBirchHelpGfx[];
+
u16 GetStarterPokemon(u16);
void CB2_ChooseStarter(void);
-void nullsub_72(struct Sprite *sprite);
-void sub_810A62C(struct Sprite *sprite);
-void sub_810A68C(struct Sprite *sprite);
-void StarterPokemonSpriteAnimCallback(struct Sprite *sprite);
#endif // GUARD_STARTER_CHOOSE_H
diff --git a/include/string_util.h b/include/string_util.h
index c20965380..7a4bfa4c1 100644
--- a/include/string_util.h
+++ b/include/string_util.h
@@ -8,6 +8,8 @@ enum StringConvertMode
STR_CONV_MODE_LEADING_ZEROS
};
+extern const u8 gEmptyString_81E72B0[];
+
u8 *StringCopy10(u8 *dest, const u8 *src);
u8 *StringGetEnd10(u8 *str);
u8 *StringCopy8(u8 *dest, const u8 *src);
@@ -16,6 +18,9 @@ u8 *StringAppend(u8 *dest, const u8 *src);
u8 *StringCopyN(u8 *dest, const u8 *src, u8 n);
u8 *StringAppendN(u8 *dest, const u8 *src, u8 n);
u16 StringLength(const u8 *str);
+#ifdef GERMAN
+s32 StringLengthN(const u8 *str, s32 n);
+#endif
s32 StringCompare(const u8 *str1, const u8 *str2);
s32 StringCompareN(const u8 *str1, const u8 *str2, u32 n);
u8 *ConvertIntToDecimalStringN(u8 *dest, s32 value, enum StringConvertMode mode, u8 n);
diff --git a/include/strings.h b/include/strings.h
new file mode 100644
index 000000000..89a78e478
--- /dev/null
+++ b/include/strings.h
@@ -0,0 +1,905 @@
+#ifndef GUARD_STRINGS_H
+#define GUARD_STRINGS_H
+
+// placeholder strings
+extern const u8 gExpandedPlaceholder_Empty[];
+extern const u8 gExpandedPlaceholder_Kun[];
+extern const u8 gExpandedPlaceholder_Chan[];
+extern const u8 gExpandedPlaceholder_Sapphire[];
+extern const u8 gExpandedPlaceholder_Ruby[];
+extern const u8 gExpandedPlaceholder_Aqua[];
+extern const u8 gExpandedPlaceholder_Magma[];
+extern const u8 gExpandedPlaceholder_Archie[];
+extern const u8 gExpandedPlaceholder_Maxie[];
+extern const u8 gExpandedPlaceholder_Kyogre[];
+extern const u8 gExpandedPlaceholder_Groudon[];
+extern const u8 gExpandedPlaceholder_Brendan[];
+extern const u8 gExpandedPlaceholder_May[];
+
+// system text
+extern const u8 gSystemText_Egg[];
+extern const u8 gSystemText_Pokemon2[];
+
+// main menu text
+extern const u8 gMainMenuString_NewGame[];
+extern const u8 gMainMenuString_Continue[];
+extern const u8 gMainMenuString_Option[];
+extern const u8 gMainMenuString_MysteryEvents[];
+
+// system text 2
+extern const u8 SystemText_UpdatingSaveExternal[];
+extern const u8 SystemText_SaveUpdated[];
+extern const u8 SystemText_SaveUpdatedExchangeBackup[];
+extern const u8 SystemText_SaveNotUpdated[];
+
+// save file text
+extern const u8 gSaveFileCorruptMessage[];
+extern const u8 gSaveFileDeletedMessage[];
+
+// system text 3
+extern const u8 gBoardNotInstalledMessage[];
+extern const u8 gBatteryDryMessage[];
+
+// main menu text 2
+extern const u8 gMainMenuString_Player[];
+extern const u8 gMainMenuString_Pokedex[];
+extern const u8 gMainMenuString_Time[];
+extern const u8 gMainMenuString_Badges[];
+
+// birch text
+extern const u8 gBirchText_Boy[];
+extern const u8 gBirchText_Girl[];
+extern const u8 gBirchText_NewName[];
+
+extern const u8 gDefaultBoyName1[];
+extern const u8 gDefaultBoyName2[];
+extern const u8 gDefaultBoyName3[];
+extern const u8 gDefaultBoyName4[];
+
+extern const u8 gDefaultGirlName1[];
+extern const u8 gDefaultGirlName2[];
+extern const u8 gDefaultGirlName3[];
+extern const u8 gDefaultGirlName4[];
+
+extern const u8 gSystemText_IntroWeCall[];
+extern const u8 gSystemText_NewPara[];
+
+extern const u8 gDexText_UnknownPoke[];
+extern const u8 gDexText_UnknownHeight[];
+extern const u8 gDexText_UnknownWeight[];
+extern const u8 gDexText_CryOf[];
+extern const u8 gDexText_SizeComparedTo[];
+extern const u8 gDexText_RegisterComplete[];
+extern const u8 gDexText_Searching[];
+extern const u8 gDexText_SearchComplete[];
+extern const u8 gDexText_NoMatching[];
+
+extern const u8 DexText_SearchForPoke[];
+extern const u8 DexText_SwitchDex[];
+extern const u8 DexText_ReturnToDex[];
+extern const u8 DexText_SelectDexMode[];
+extern const u8 DexText_SelectDexList[];
+extern const u8 DexText_ListByABC[];
+extern const u8 DexText_ListByColor[];
+extern const u8 DexText_ListByType[];
+extern const u8 DexText_ExecuteSearchSwitch[];
+extern const u8 DexText_HoennDex[];
+extern const u8 DexText_NationalDex[];
+extern const u8 DexText_NumericalMode[];
+extern const u8 DexText_ABCMode[];
+extern const u8 DexText_HeaviestMode[];
+extern const u8 DexText_LightestMode[];
+extern const u8 DexText_TallestMode[];
+extern const u8 DexText_SmallestMode[];
+extern const u8 DexText_ABC[];
+extern const u8 DexText_DEF[];
+extern const u8 DexText_GHI[];
+extern const u8 DexText_JKL[];
+extern const u8 DexText_MNO[];
+extern const u8 DexText_PQR[];
+extern const u8 DexText_STU[];
+extern const u8 DexText_VWX[];
+extern const u8 DexText_YZ[];
+extern const u8 DexText_Red[];
+extern const u8 DexText_Blue[];
+extern const u8 DexText_Yellow[];
+extern const u8 DexText_Green[];
+extern const u8 DexText_Black[];
+extern const u8 DexText_Brown[];
+extern const u8 DexText_Purple[];
+extern const u8 DexText_Gray[];
+extern const u8 DexText_White[];
+extern const u8 DexText_Pink[];
+extern const u8 DexText_HoennDex2[];
+extern const u8 DexText_NationalDex2[];
+extern const u8 DexText_ListByNumber[];
+extern const u8 DexText_ListByABC2[];
+extern const u8 DexText_ListByHeavyToLightest[];
+extern const u8 DexText_ListByLightToHeaviest[];
+extern const u8 DexText_ListByTallToSmallest[];
+extern const u8 DexText_ListBySmallToTallest[];
+extern const u8 DexText_Terminator5[];
+extern const u8 DexText_DontSpecify[];
+extern const u8 DexText_None[];
+extern const u8 DexText_RightPointingTriangle[];
+extern const u8 DexText_Terminator6[];
+
+extern const u8 gMenuText_WelcomeToHOFAndDexRating[];
+extern const u8 gMenuText_HOFSaving[];
+extern const u8 gMenuText_HOFCorrupt[];
+extern const u8 gMenuText_HOFNumber[];
+extern const u8 gMenuText_HOFCongratulations[];
+
+extern const u8 gOtherText_Number2[];
+extern const u8 gOtherText_Level3[];
+extern const u8 gOtherText_IDNumber[];
+extern const u8 gOtherText_Name[];
+extern const u8 gOtherText_IDNumber2[];
+extern const u8 gOtherText_BirchInTrouble[];
+extern const u8 gOtherText_DoYouChoosePoke[];
+extern const u8 gOtherText_Poke[];
+
+extern const u8 gSystemText_SaveErrorExchangeBackup[];
+extern const u8 gOtherText_FlyToWhere[];
+
+extern const u8 OtherText_Use[];
+extern const u8 OtherText_Toss[];
+extern const u8 OtherText_Register[];
+extern const u8 OtherText_Give2[];
+extern const u8 OtherText_CheckTag[];
+extern const u8 OtherText_Confirm[];
+extern const u8 gOtherText_Walk[];
+
+extern const u8 gUnknownText_Exit[];
+extern const u8 gOtherText_CancelNoTerminator[];
+extern const u8 gOtherText_CancelWithTerminator[];
+
+extern const u8 OtherText_Item[];
+extern const u8 OtherText_Mail[];
+extern const u8 OtherText_Take2[];
+extern const u8 OtherText_Store[];
+
+extern const u8 gOtherText_Check[];
+extern const u8 gOtherText_None[];
+
+extern const u8 gOtherText_ThreeQuestions2[];
+
+extern const u8 gOtherText_FiveQuestionsAndSlash[];
+
+extern const u8 gOtherText_OneDash[];
+extern const u8 gOtherText_TwoDashes[];
+extern const u8 gOtherText_ThreeDashes2[];
+extern const u8 gOtherText_MaleSymbol2[];
+extern const u8 gOtherText_FemaleSymbolAndLv[];
+extern const u8 gOtherText_TallPlusAndRightArrow[];
+extern const u8 gMenuText_GoBackToPrev[];
+extern const u8 gOtherText_WhatWillYouDo[];
+
+extern const u8 gOtherText_xString1[];
+extern const u8 gOtherText_Berry2[];
+extern const u8 gOtherText_Coins2[];
+extern const u8 gOtherText_CloseBag[];
+
+extern const u8 OtherText_TheField3[];
+extern const u8 OtherText_TheBattle[];
+extern const u8 OtherText_ThePokeList[];
+extern const u8 OtherText_TheShop[];
+extern const u8 OtherText_TheField[];
+extern const u8 OtherText_TheField2[];
+extern const u8 OtherText_ThePC[];
+
+extern const struct TextStruct gUnknown_0840E740[];
+
+extern const u8 gOtherText_ReturnTo[];
+extern const u8 gOtherText_WhatWillYouDo2[];
+extern const u8 gOtherText_CantWriteMail[];
+extern const u8 gOtherText_NoPokemon[];
+extern const u8 gOtherText_SwitchWhichItem[];
+extern const u8 gOtherText_CantBeHeld[];
+extern const u8 gOtherText_CantBeHeldHere[];
+extern const u8 gOtherText_HowManyToDeposit[];
+extern const u8 gOtherText_DepositedItems[];
+extern const u8 gOtherText_NoRoomForItems[];
+extern const u8 gOtherText_CantStoreSomeoneItem[];
+extern const u8 gOtherText_TooImportant[];
+extern const u8 gOtherText_HowManyToToss[];
+extern const u8 gOtherText_ThrewAwayItem[];
+extern const u8 gOtherText_OkayToThrowAwayPrompt[];
+extern const u8 gOtherText_DadsAdvice[];
+extern const u8 gOtherText_CantGetOffBike[];
+extern const u8 gOtherText_ItemfinderResponding[];
+extern const u8 gOtherText_ItemfinderItemUnderfoot[];
+extern const u8 gOtherText_NoResponse[];
+extern const u8 gOtherText_Coins3[];
+extern const u8 gOtherText_BootedTM[];
+extern const u8 gOtherText_BootedHM[];
+extern const u8 gOtherText_ContainsMove[];
+extern const u8 gOtherText_UsedItem[];
+extern const u8 gOtherText_RepelLingers[];
+extern const u8 gOtherText_UsedFlute[];
+extern const u8 gOtherText_UsedRepel[];
+extern const u8 gOtherText_BoxIsFull[];
+extern const u8 gOtherText_Size[];
+extern const u8 gOtherText_Firm[];
+
+extern const u8 gContestStatsText_Unknown1[];
+
+extern const u8 ContestStatsText_VerySoft[];
+extern const u8 ContestStatsText_Soft[];
+extern const u8 ContestStatsText_Hard[];
+extern const u8 ContestStatsText_VeryHard[];
+extern const u8 ContestStatsText_SuperHard[];
+
+extern const u8 ContestStatsText_RedPokeBlock[];
+extern const u8 ContestStatsText_BluePokeBlock[];
+extern const u8 ContestStatsText_PinkPokeBlock[];
+extern const u8 ContestStatsText_GreenPokeBlock[];
+extern const u8 ContestStatsText_YellowPokeBlock[];
+extern const u8 ContestStatsText_PurplePokeBlock[];
+extern const u8 ContestStatsText_IndigoPokeBlock[];
+extern const u8 ContestStatsText_BrownPokeBlock[];
+extern const u8 ContestStatsText_LiteBluePokeBlock[];
+extern const u8 ContestStatsText_OlivePokeBlock[];
+extern const u8 ContestStatsText_GrayPokeBlock[];
+extern const u8 ContestStatsText_BlackPokeBlock[];
+extern const u8 ContestStatsText_WhitePokeBlock[];
+extern const u8 ContestStatsText_GoldPokeBlock[];
+
+extern const u8 gContestStatsText_Spicy[];
+extern const u8 gContestStatsText_Dry[];
+extern const u8 gContestStatsText_Sweet[];
+extern const u8 gContestStatsText_Bitter[];
+extern const u8 gContestStatsText_Sour[];
+
+extern const u8 gContestStatsText_StowCase[];
+extern const u8 gContestStatsText_ThrowAwayPrompt[];
+extern const u8 gContestStatsText_WasThrownAway[];
+extern const u8 gContestStatsText_NormallyAte[];
+extern const u8 gContestStatsText_HappilyAte[];
+extern const u8 gContestStatsText_DisdainfullyAte[];
+
+extern const u8 MartText_Buy[];
+extern const u8 MartText_Sell[];
+extern const u8 MartText_Quit2[];
+
+extern const u8 gOtherText_QuitShopping[];
+
+extern const u8 gOtherText_HowManyYouWant[];
+extern const u8 gOtherText_ThatWillBe[];
+extern const u8 gOtherText_ThatWillBe2[];
+extern const u8 gOtherText_ThatWillBe3[];
+extern const u8 gOtherText_HereYouGo[];
+extern const u8 gOtherText_HereYouGo2[];
+extern const u8 gOtherText_HereYouGo3[];
+extern const u8 gOtherText_NotEnoughMoney[];
+extern const u8 gOtherText_NoRoomFor[];
+extern const u8 gOtherText_SpaceForIsFull[];
+extern const u8 gOtherText_AnythingElse[];
+extern const u8 gOtherText_CanIHelpYou[];
+extern const u8 gOtherText_FreePremierBall[];
+extern const u8 gOtherText_CantBuyThat[];
+extern const u8 gOtherText_HowManyToSell[];
+extern const u8 gOtherText_CanPay[];
+extern const u8 gOtherText_SoldItem[];
+
+extern const u8 OtherText_Money[];
+extern const u8 OtherText_Shift[];
+extern const u8 OtherText_SendOut[];
+extern const u8 OtherText_Switch2[];
+extern const u8 OtherText_Summary[];
+extern const u8 OtherText_Moves[];
+extern const u8 OtherText_Enter2[];
+extern const u8 OtherText_NoEntry[];
+extern const u8 OtherText_Take[];
+extern const u8 OtherText_Read2[];
+
+extern const u8 gOtherText_Hp2[];
+extern const u8 gOtherText_SpAtk2[];
+extern const u8 gOtherText_SpDef2[];
+extern const u8 gOtherText_WontHaveAnyEffect[];
+
+extern const u8 gOtherText_CantUseOnPoke[];
+
+extern const u8 gOtherText_CantBeSwitched[];
+extern const u8 gOtherText_AlreadyBattle[];
+extern const u8 gOtherText_AlreadySelected[];
+extern const u8 gOtherText_NoEnergyLeft[];
+extern const u8 gOtherText_CantSwitchPokeWithYours[];
+extern const u8 gOtherText_EGGCantBattle[];
+extern const u8 gOtherText_CantBeUsedBadge[];
+extern const u8 gOtherText_NoMoreThreePoke[];
+extern const u8 gOtherText_SendRemovedMailPrompt[];
+extern const u8 gOtherText_MailWasSent[];
+extern const u8 gOtherText_MailboxIsFull[];
+extern const u8 gOtherText_MailRemovedMessageLost[];
+extern const u8 gOtherText_MailMustBeRemoved[];
+extern const u8 gOtherText_WasGivenToHold[];
+extern const u8 gOtherText_AlreadyHolding[];
+extern const u8 gOtherText_NotHoldingAnything[];
+extern const u8 gOtherText_ReceivedTheThingFrom[];
+extern const u8 gOtherText_MailTaken[];
+extern const u8 gOtherText_TakenAndReplaced[];
+extern const u8 gOtherText_PokeHoldingItemCantMail[];
+extern const u8 gOtherText_MailTransferredMailbox[];
+extern const u8 gOtherText_BagFullCannotRemoveItem[];
+extern const u8 gOtherText_LearnedMove[];
+extern const u8 gOtherText_NotCompatible[];
+extern const u8 gOtherText_WantsToLearn[];
+extern const u8 gOtherText_StopTryingTo[];
+extern const u8 gOtherText_DidNotLearnMove2[];
+extern const u8 gOtherText_WhichMoveToForget2[];
+extern const u8 gOtherText_ForgetMove123_2[];
+extern const u8 gOtherText_AlreadyKnows[];
+extern const u8 gOtherText_HPRestoredBy[];
+extern const u8 gOtherText_CuredPoisoning[];
+extern const u8 gOtherText_CuredParalysis[];
+extern const u8 gOtherText_WokeUp[];
+extern const u8 gOtherText_BurnHealed[];
+extern const u8 gOtherText_ThawedOut[];
+extern const u8 gOtherText_PPRestored[];
+extern const u8 gOtherText_RegainedHealth[];
+extern const u8 gOtherText_BecameHealthy[];
+extern const u8 gOtherText_PPIncreased[];
+extern const u8 gOtherText_ElevatedTo[];
+extern const u8 gOtherText_WasRaised[];
+extern const u8 gOtherText_SnapConfusion[];
+extern const u8 gOtherText_GotOverLove[];
+extern const u8 OtherText_ChoosePoke[];
+extern const u8 OtherText_MovePokeTo[];
+extern const u8 OtherText_TeachWhat[];
+extern const u8 OtherText_UseWhat[];
+extern const u8 OtherText_GiveWhat[];
+extern const u8 OtherText_DoWhat[];
+extern const u8 OtherText_NothingToCut[];
+extern const u8 OtherText_CantSurf[];
+extern const u8 OtherText_AlreadySurfing[];
+extern const u8 OtherText_CantUseThatHere[];
+extern const u8 OtherText_RestoreWhatMove[];
+extern const u8 OtherText_BoostPP[];
+extern const u8 OtherText_DoWhatWithItem[];
+extern const u8 OtherText_NoPokeForBattle[];
+extern const u8 OtherText_ChoosePoke2[];
+extern const u8 OtherText_NotEnoughHP[];
+extern const u8 OtherText_ThreePokeNeeded[];
+extern const u8 OtherText_PokeCantBeSame[];
+extern const u8 OtherText_NoIdenticalHoldItems[];
+extern const u8 OtherText_TeachWhichPoke[];
+extern const u8 gOtherText_Attack[];
+extern const u8 gOtherText_Defense[];
+extern const u8 gOtherText_SpAtk[];
+extern const u8 gOtherText_SpDef[];
+extern const u8 gOtherText_Speed[];
+extern const u8 gOtherText_HP[];
+extern const u8 gOtherText_Terminator18[];
+extern const u8 gOtherText_OriginalTrainer[];
+extern const u8 gOtherText_Type2[];
+extern const u8 gOtherText_Power2[];
+extern const u8 gOtherText_Accuracy2[];
+extern const u8 gOtherText_Appeal2[];
+extern const u8 gOtherText_Jam2[];
+extern const u8 gOtherText_Status[];
+extern const u8 gOtherText_ExpPoints[];
+extern const u8 gOtherText_NextLv[];
+extern const u8 gOtherText_Ribbons00[];
+
+extern const u8 OtherText_Event[];
+extern const u8 OtherText_Switch[];
+extern const u8 OtherText_PokeInfo[];
+extern const u8 OtherText_PokeSkills[];
+extern const u8 OtherText_BattleMoves[];
+extern const u8 OtherText_ContestMoves[];
+extern const u8 OtherText_Info[];
+
+extern const u8 gOtherText_EggLongTime[];
+extern const u8 gOtherText_EggSomeTime[];
+extern const u8 gOtherText_EggSoon[];
+extern const u8 gOtherText_EggAbout[];
+extern const u8 gOtherText_CantForgetHMs[];
+extern const u8 gOtherText_PlayersBase[];
+extern const u8 gOtherText_OkayToDeleteFromRegistry[];
+extern const u8 gOtherText_RegisteredDataDeleted[];
+
+extern const u8 gSecretBaseText_NoRegistry[];
+extern const u8 SecretBaseText_DelRegist[];
+extern const u8 SecretBaseText_Decorate[];
+extern const u8 SecretBaseText_PutAway[];
+extern const u8 SecretBaseText_Toss[];
+extern const u8 SecretBaseText_PutOutDecor[];
+extern const u8 SecretBaseText_StoreChosenDecor[];
+extern const u8 SecretBaseText_ThrowAwayDecor[];
+extern const u8 gSecretBaseText_NoDecors[];
+extern const u8 SecretBaseText_Desk[];
+extern const u8 SecretBaseText_Chair[];
+extern const u8 SecretBaseText_Plant[];
+extern const u8 SecretBaseText_Ornament[];
+extern const u8 SecretBaseText_Mat[];
+extern const u8 SecretBaseText_Poster[];
+extern const u8 SecretBaseText_Doll[];
+extern const u8 SecretBaseText_Cushion[];
+extern const u8 gSecretBaseText_GoldRank[];
+extern const u8 gSecretBaseText_SilverRank[];
+extern const u8 gSecretBaseText_PlaceItHere[];
+extern const u8 gSecretBaseText_CantBePlacedHere[];
+extern const u8 gSecretBaseText_CancelDecorating[];
+extern const u8 gSecretBaseText_InUseAlready[];
+extern const u8 gSecretBaseText_NoMoreDecor[];
+extern const u8 gSecretBaseText_NoMoreDecor2[];
+extern const u8 gSecretBaseText_DecorCantPlace[];
+extern const u8 gSecretBaseText_DecorInUse[];
+extern const u8 gSecretBaseText_WillBeDiscarded[];
+extern const u8 gSecretBaseText_DecorThrownAway[];
+extern const u8 gSecretBaseText_StopPuttingAwayDecor[];
+extern const u8 gSecretBaseText_NoDecor[];
+extern const u8 gSecretBaseText_ReturnDecor[];
+extern const u8 gSecretBaseText_DecorReturned[];
+extern const u8 gSecretBaseText_NoDecorInUse[];
+extern const u8 SecretBaseText_Tristan[];
+extern const u8 SecretBaseText_Philip[];
+extern const u8 SecretBaseText_Dennis[];
+extern const u8 SecretBaseText_Roberto[];
+extern const u8 SecretBaseText_TurnOff[];
+extern const u8 SecretBaseText_Decoration[];
+extern const u8 SecretBaseText_ItemStorage[];
+
+extern const u8 gPCText_Mailbox[];
+extern const u8 PCText_DepositItem[];
+extern const u8 PCText_WithdrawItem[];
+extern const u8 PCText_TossItem[];
+extern const u8 PCText_StoreItems[];
+extern const u8 PCText_TakeOutItems[];
+extern const u8 PCText_ThrowAwayItems[];
+
+extern const u8 gOtherText_NoItems[];
+extern const u8 gOtherText_NoMoreRoom[];
+extern const u8 gOtherText_HowManyToWithdraw[];
+extern const u8 gOtherText_WithdrewThing[];
+extern const u8 OtherText_Read[];
+extern const u8 gOtherText_MoveToBag[];
+extern const u8 OtherText_Give[];
+extern const u8 gOtherText_NoMailHere[];
+extern const u8 gOtherText_WhatWillYouDoMail[];
+extern const u8 gOtherText_MessageWillBeLost[];
+extern const u8 gOtherText_BagIsFull[];
+extern const u8 gOtherText_MailWasReturned[];
+extern const u8 gOtherText_Dad[];
+extern const u8 gOtherText_Mom[];
+extern const u8 gOtherText_Wallace[];
+extern const u8 gOtherText_Steven[];
+extern const u8 gOtherText_Brawly[];
+extern const u8 gOtherText_Winona[];
+extern const u8 gOtherText_Phoebe[];
+extern const u8 gOtherText_Glacia[];
+extern const u8 gContestText_ContestWinner[];
+extern const u8 gOtherText_Unknown1[];
+extern const u8 OtherText_Cool[];
+extern const u8 OtherText_Beauty2[];
+extern const u8 OtherText_Cute[];
+extern const u8 OtherText_Smart[];
+extern const u8 OtherText_Tough[];
+extern const u8 OtherText_NonstopSuperCool[];
+extern const u8 OtherText_Terminator6[];
+extern const u8 OtherText_GoodLookingPoke[];
+extern const u8 OtherText_Terminator7[];
+extern const u8 OtherText_MarvelousGreat[];
+extern const u8 OtherText_Terminator8[];
+extern const u8 OtherText_CenturyLastVenus[];
+extern const u8 OtherText_Terminator9[];
+extern const u8 OtherText_Terminator10[];
+extern const u8 OtherText_DazzlingSmile[];
+extern const u8 OtherText_PokeCenterIdol[];
+extern const u8 OtherText_Terminator11[];
+extern const u8 OtherText_LovelyAndSweet[];
+extern const u8 OtherText_Terminator12[];
+extern const u8 OtherText_ThePretty[];
+extern const u8 OtherText_WinningPortrait[];
+extern const u8 OtherText_GiveUsWink[];
+extern const u8 OtherText_Terminator13[];
+extern const u8 OtherText_SmartnessMaestro[];
+extern const u8 OtherText_Terminator14[];
+extern const u8 OtherText_ChosenPokeAmong[];
+extern const u8 OtherText_Terminator15[];
+extern const u8 OtherText_TheExcellent[];
+extern const u8 OtherText_ItsMomentOfElegance[];
+extern const u8 OtherText_PowerfullyMuscular[];
+extern const u8 OtherText_Terminator16[];
+extern const u8 OtherText_StrongErEst[];
+extern const u8 OtherText_Terminator17[];
+extern const u8 OtherText_MightyTough[];
+extern const u8 OtherText_Exclamation[];
+extern const u8 OtherText_Petalburg[];
+extern const u8 OtherText_Slateport[];
+extern const u8 OtherText_Littleroot[];
+extern const u8 OtherText_Lilycove[];
+extern const u8 OtherText_Dewford[];
+extern const u8 OtherText_Enter[];
+extern const u8 OtherText_Info3[];
+extern const u8 OtherText_WhatsAContest[];
+extern const u8 OtherText_TypesOfContest[];
+extern const u8 OtherText_Ranks[];
+extern const u8 OtherText_Judging[];
+extern const u8 OtherText_CoolContest[];
+extern const u8 OtherText_BeautyContest[];
+extern const u8 OtherText_CuteContest[];
+extern const u8 OtherText_SmartContest[];
+extern const u8 OtherText_ToughContest[];
+extern const u8 OtherText_Decoration[];
+extern const u8 OtherText_PackUp[];
+extern const u8 OtherText_Count[];
+extern const u8 OtherText_Registry[];
+extern const u8 OtherText_Information[];
+extern const u8 OtherText_Mach[];
+extern const u8 OtherText_Acro[];
+extern const u8 OtherText_Poison[];
+extern const u8 OtherText_Paralysis[];
+extern const u8 OtherText_Sleep[];
+extern const u8 OtherText_Burn[];
+extern const u8 OtherText_Frozen[];
+extern const u8 OtherText_Quit[];
+extern const u8 OtherText_SawIt[];
+extern const u8 OtherText_NotYet[];
+extern const u8 OtherText_Yes[];
+extern const u8 OtherText_No[];
+extern const u8 OtherText_Info2[];
+extern const u8 OtherText_SingleBattle[];
+extern const u8 OtherText_DoubleBattle[];
+extern const u8 OtherText_MultiBattle[];
+extern const u8 OtherText_MrBriney[];
+extern const u8 OtherText_MakeAChallenge[];
+extern const u8 OtherText_ObtainInformation[];
+extern const u8 OtherText_Lv50_2[];
+extern const u8 OtherText_Lv100_2[];
+extern const u8 OtherText_Zigzagoon[];
+extern const u8 OtherText_Nincada[];
+extern const u8 OtherText_Poochyena[];
+extern const u8 OtherText_Nincada2[];
+extern const u8 OtherText_Lotad[];
+extern const u8 OtherText_Roselia[];
+extern const u8 OtherText_Shroomish[];
+extern const u8 OtherText_Nincada3[];
+extern const u8 OtherText_Surskit[];
+extern const u8 OtherText_Treecko[];
+extern const u8 OtherText_Torchic[];
+extern const u8 OtherText_Mudkip[];
+extern const u8 OtherText_Seedot[];
+extern const u8 OtherText_Shroomish2[];
+extern const u8 OtherText_Spinda[];
+extern const u8 OtherText_Shroomish3[];
+extern const u8 OtherText_Zigzagoon2[];
+extern const u8 OtherText_Wurmple[];
+extern const u8 OtherText_PokeBall[];
+extern const u8 OtherText_SuperPotion[];
+extern const u8 OtherText_SamePrice[];
+extern const u8 OtherText_Yen135[];
+extern const u8 OtherText_Yen155[];
+extern const u8 OtherText_Yen175[];
+extern const u8 OtherText_CostMore[];
+extern const u8 OtherText_CostLess[];
+extern const u8 OtherText_SamePrice2[];
+extern const u8 OtherText_MaleSymbol[];
+extern const u8 OtherText_FemaleSymbol[];
+extern const u8 OtherText_Neither[];
+extern const u8 OtherText_Males[];
+extern const u8 OtherText_Females[];
+extern const u8 OtherText_SameNumber[];
+extern const u8 OtherText_Male[];
+extern const u8 OtherText_Female[];
+extern const u8 OtherText_ItDepends[];
+extern const u8 OtherText_Six2[];
+extern const u8 OtherText_Eight2[];
+extern const u8 OtherText_Ten[];
+extern const u8 OtherText_One[];
+extern const u8 OtherText_Two[];
+extern const u8 OtherText_Three[];
+extern const u8 OtherText_Six[];
+extern const u8 OtherText_Seven[];
+extern const u8 OtherText_Eight[];
+extern const u8 OtherText_FreshWater[];
+extern const u8 OtherText_SodaPop[];
+extern const u8 OtherText_Lemonade[];
+extern const u8 OtherText_HowToRide[];
+extern const u8 OtherText_HowToTurn[];
+extern const u8 OtherText_SandySlopes[];
+extern const u8 OtherText_Wheelies[];
+extern const u8 OtherText_BunnyHops[];
+extern const u8 OtherText_Jumping[];
+extern const u8 OtherText_Satisfied[];
+extern const u8 OtherText_Dissatisfied[];
+extern const u8 OtherText_Deepseatooth[];
+extern const u8 OtherText_Deepseascale[];
+extern const u8 OtherText_BlueFlute2[];
+extern const u8 OtherText_YellowFlute2[];
+extern const u8 OtherText_RedFlute2[];
+extern const u8 OtherText_WhiteFlute2[];
+extern const u8 OtherText_BlackFlute2[];
+extern const u8 OtherText_GlassChair[];
+extern const u8 OtherText_GlassDesk[];
+extern const u8 OtherText_TreeckoDoll[];
+extern const u8 OtherText_TorchicDoll[];
+extern const u8 OtherText_MudkipDoll[];
+extern const u8 OtherText_50Coins[];
+extern const u8 OtherText_500Coins[];
+extern const u8 OtherText_Excellent[];
+extern const u8 OtherText_NotSoHot[];
+extern const u8 OtherText_RedShard[];
+extern const u8 OtherText_YellowShard[];
+extern const u8 OtherText_BlueShard[];
+extern const u8 OtherText_GreenShard[];
+extern const u8 OtherText_BattleTower[];
+extern const u8 OtherText_Right[];
+extern const u8 OtherText_Left[];
+extern const u8 OtherText_TM32[];
+extern const u8 OtherText_TM29[];
+extern const u8 OtherText_TM35[];
+extern const u8 OtherText_TM24[];
+extern const u8 OtherText_TM13[];
+extern const u8 OtherText_1F_2[];
+extern const u8 OtherText_2F_2[];
+extern const u8 OtherText_3F_2[];
+extern const u8 OtherText_4F_2[];
+extern const u8 OtherText_5F_2[];
+extern const u8 OtherText_Cool2[];
+extern const u8 OtherText_Beauty3[];
+extern const u8 OtherText_Cute2[];
+extern const u8 OtherText_Smart2[];
+extern const u8 OtherText_Tough2[];
+extern const u8 OtherText_Normal[];
+extern const u8 OtherText_Super[];
+extern const u8 OtherText_Hyper[];
+extern const u8 OtherText_Master[];
+extern const u8 OtherText_Cool3[];
+extern const u8 OtherText_Beauty4[];
+extern const u8 OtherText_Cute3[];
+extern const u8 OtherText_Smart3[];
+extern const u8 OtherText_Tough3[];
+extern const u8 OtherText_Items[];
+extern const u8 OtherText_KeyItems[];
+extern const u8 OtherText_Balls[];
+extern const u8 OtherText_TMsHMs[];
+extern const u8 OtherText_Berries[];
+
+extern const u8 gPCText_SomeonesPC[];
+extern const u8 gPCText_LanettesPC[];
+extern const u8 gPCText_PlayersPC[];
+extern const u8 gPCText_HallOfFame[];
+extern const u8 gPCText_LogOff[];
+
+extern const u8 gOtherText_99Times[];
+extern const u8 gOtherText_1Minute[];
+extern const u8 gOtherText_Seconds[];
+extern const u8 gOtherText_Times[];
+extern const u8 gOtherText_BigGuy[];
+extern const u8 gOtherText_BigGirl[];
+extern const u8 gOtherText_Son[];
+extern const u8 gOtherText_Daughter[];
+extern const u8 OtherText_BlueFlute[];
+extern const u8 OtherText_YellowFlute[];
+extern const u8 OtherText_RedFlute[];
+extern const u8 OtherText_WhiteFlute[];
+extern const u8 OtherText_BlackFlute[];
+extern const u8 OtherText_PrettyChair[];
+extern const u8 OtherText_PrettyDesk[];
+extern const u8 OtherText_1F[];
+extern const u8 OtherText_2F[];
+extern const u8 OtherText_3F[];
+extern const u8 OtherText_4F[];
+extern const u8 OtherText_5F[];
+extern const u8 OtherText_6F[];
+extern const u8 OtherText_7F[];
+extern const u8 OtherText_8F[];
+extern const u8 OtherText_9F[];
+extern const u8 OtherText_10F[];
+extern const u8 OtherText_11F[];
+extern const u8 OtherText_B1F[];
+extern const u8 OtherText_B2F[];
+extern const u8 OtherText_B3F[];
+extern const u8 OtherText_B4F[];
+extern const u8 OtherText_Rooftop[];
+
+extern const u8 gOtherText_NowOn[];
+
+extern const u8 gPCText_Cancel[];
+
+extern const u8 PCText_ExitBox[];
+extern const u8 PCText_WhatYouDo[];
+extern const u8 PCText_PickATheme[];
+extern const u8 PCText_PickAWallpaper[];
+extern const u8 PCText_IsSelected[];
+extern const u8 PCText_JumpToWhichBox[];
+extern const u8 PCText_DepositInWhichBox[];
+extern const u8 PCText_WasDeposited[];
+extern const u8 PCText_BoxIsFull[];
+extern const u8 PCText_ReleasePoke[];
+extern const u8 PCText_WasReleased[];
+extern const u8 PCText_ByeBye[];
+extern const u8 PCText_MarkPoke[];
+extern const u8 PCText_LastPoke[];
+extern const u8 PCText_PartyFull[];
+extern const u8 PCText_HoldingPoke[];
+extern const u8 PCText_WhichOneWillTake[];
+extern const u8 PCText_CantReleaseEgg[];
+extern const u8 PCText_ContinueBox[];
+extern const u8 PCText_CameBack[];
+extern const u8 PCText_Worried[];
+extern const u8 PCText_Surprise[];
+extern const u8 PCText_PleaseRemoveMail[];
+extern const u8 PCText_Cancel2[];
+extern const u8 PCText_Deposit[];
+extern const u8 PCText_Withdraw[];
+extern const u8 PCText_Switch[];
+extern const u8 PCText_Move[];
+extern const u8 PCText_Place[];
+extern const u8 PCText_Summary[];
+extern const u8 PCText_Release[];
+extern const u8 PCText_Mark[];
+extern const u8 PCText_Name[];
+extern const u8 PCText_Jump[];
+extern const u8 PCText_Wallpaper[];
+extern const u8 PCText_Scenery1[];
+extern const u8 PCText_Scenery2[];
+extern const u8 PCText_Scenery3[];
+extern const u8 PCText_Etc[];
+extern const u8 PCText_Forest[];
+extern const u8 PCText_City[];
+extern const u8 PCText_Desert[];
+extern const u8 PCText_Savanna[];
+extern const u8 PCText_Crag[];
+extern const u8 PCText_Volcano[];
+extern const u8 PCText_Snow[];
+extern const u8 PCText_Cave[];
+extern const u8 PCText_Beach[];
+extern const u8 PCText_Seafloor[];
+extern const u8 PCText_River[];
+extern const u8 PCText_Sky[];
+extern const u8 PCText_Polka[];
+extern const u8 PCText_PokeCenter[];
+extern const u8 PCText_Machine[];
+extern const u8 PCText_Plain[];
+extern const u8 PCText_WhatDoYouWant[];
+extern const u8 PCText_WithdrawPoke[];
+extern const u8 PCText_DepositPoke[];
+extern const u8 PCText_MovePoke[];
+extern const u8 PCText_SeeYa[];
+extern const u8 PCText_MovePokeToParty[];
+extern const u8 PCText_StorePokeInBox[];
+extern const u8 PCText_OrganizeBoxesParty[];
+extern const u8 PCText_ReturnToPrevMenu[];
+
+extern const u8 gPCText_OnlyOne[];
+extern const u8 gPCText_PartyFull2[];
+extern const u8 gPCText_BOX[];
+
+// pokenav
+extern const u8 PCText_CheckMap[];
+extern const u8 PCText_CheckPoke[];
+extern const u8 PCText_CheckTrainer[];
+extern const u8 PCText_CheckRibbons[];
+extern const u8 PCText_PutAwayNav[];
+extern const u8 PCText_NoRibbonWin[];
+extern const u8 PCText_NoTrainers[];
+extern const u8 PCText_CheckParty[];
+extern const u8 PCText_CheckPokeAll[];
+extern const u8 PCText_ReturnToNav[];
+extern const u8 PCText_FindCool[];
+extern const u8 PCText_FindBeauty[];
+extern const u8 PCText_FindCute[];
+extern const u8 PCText_FindSmart[];
+extern const u8 PCText_FindTough[];
+extern const u8 PCText_ReturnToCondition[];
+
+extern const u8 gOtherText_NumberRegistered[];
+extern const u8 gOtherText_NumberBattles[];
+extern const u8 gOtherText_Strategy[];
+extern const u8 gOtherText_TrainersPokemon[];
+extern const u8 gOtherText_SelfIntroduction[];
+extern const u8 gOtherText_Nature2[];
+extern const u8 gOtherText_InParty[];
+extern const u8 gOtherText_Number[];
+extern const u8 gOtherText_Ribbons[];
+extern const u8 OtherText_MakeProfilePage1[];
+extern const u8 OtherText_MakeProfilePage2[];
+extern const u8 OtherText_MakeMessagePage1[];
+extern const u8 OtherText_MakeMessagePage2[];
+extern const u8 OtherText_DescribeFeelingsPage1[];
+extern const u8 OtherText_DescribeFeelingsPage2[];
+extern const u8 OtherText_WithFourPhrases[];
+extern const u8 OtherText_CombineNinePhrasesPage1[];
+extern const u8 OtherText_CombineNinePhrasesPage2[];
+extern const u8 OtherText_ImproveBardSongPage1[];
+extern const u8 OtherText_ImproveBardSongPage2[];
+extern const u8 OtherText_YourProfile[];
+extern const u8 OtherText_YourFeelingBattle[];
+extern const u8 OtherText_SetWinMessage[];
+extern const u8 OtherText_SetLossMessage[];
+extern const u8 OtherText_TheAnswer[];
+extern const u8 OtherText_MailMessage[];
+extern const u8 OtherText_MailSalutation[];
+extern const u8 OtherText_NewSong[];
+extern const u8 OtherText_CombineTwoPhrasesPage1[];
+extern const u8 OtherText_CombineTwoPhrasesPage2[];
+extern const u8 OtherText_ConfirmTrendyPage1[];
+extern const u8 OtherText_ConfirmTrendyPage2[];
+extern const u8 OtherText_HipsterPage1[];
+extern const u8 OtherText_HipsterPage2[];
+
+extern const u8 gOtherText_TextDeletedConfirmPage1[];
+extern const u8 gOtherText_TextDeletedConfirmPage2[];
+extern const u8 gOtherText_QuitEditing[];
+extern const u8 gOtherText_EditedTextNoSavePage1[];
+extern const u8 gOtherText_EditedTextNoSavePage2[];
+extern const u8 gOtherText_EnterAPhraseOrWord[];
+extern const u8 gOtherText_TextNoDelete[];
+extern const u8 gOtherText_OnlyOnePhrase[];
+extern const u8 gOtherText_OriginalSongRestored[];
+extern const u8 gOtherText_TrendyAlready[];
+extern const u8 gOtherText_CombineTwoPhrases[];
+extern const u8 gOtherText_QuitGivingInfo[];
+extern const u8 gOtherText_StopGivingMail[];
+extern const u8 gOtherText_Profile[];
+extern const u8 gOtherText_AtBattleStart[];
+extern const u8 gOtherText_UponWinningBattle[];
+extern const u8 gOtherText_UponLosingBattle[];
+
+// mauville_old_man?
+extern const u8 gOtherText_TheBardsSong[];
+extern const u8 gOtherText_WhatsHipHappening[];
+extern const u8 gOtherText_Interview[];
+extern const u8 gOtherText_GoodSaying[];
+extern const u8 OtherText_SoPretty[];
+extern const u8 OtherText_SoDarling[];
+extern const u8 OtherText_SoRelaxed[];
+extern const u8 OtherText_SoSunny[];
+extern const u8 OtherText_SoDesirable[];
+extern const u8 OtherText_SoExciting[];
+extern const u8 OtherText_SoAmusing[];
+extern const u8 OtherText_SoMagical[];
+
+extern const u8 gOtherText_Is[];
+extern const u8 gOtherText_DontYouAgree[];
+
+extern const u8 OtherText_WantVacationNicePlace[];
+extern const u8 OtherText_BoughtCrayonsIsNice[];
+extern const u8 OtherText_IfWeCouldFloat[];
+extern const u8 OtherText_SandWashesAwayMakeSad[];
+extern const u8 OtherText_WhatsBottomSeaLike[];
+extern const u8 OtherText_SeeSettingSun[];
+extern const u8 OtherText_LyingInGreenGrass[];
+extern const u8 OtherText_SecretBasesWonderful[];
+
+extern const u8 OtherText_PokeLeague[];
+extern const u8 OtherText_PokeCenter[];
+
+extern const u8 gOtherText_GetsAPokeBlock[];
+
+extern const u8 OtherText_Coolness[];
+extern const u8 OtherText_Beauty[];
+extern const u8 OtherText_Cuteness[];
+extern const u8 OtherText_Smartness[];
+extern const u8 OtherText_Toughness[];
+
+extern const u8 gOtherText_WasEnhanced[];
+extern const u8 gOtherText_NothingChanged[];
+extern const u8 gOtherText_WontEat[];
+
+extern const u8 gSystemText_SaveFailedBackupCheck[];
+extern const u8 gSystemText_BackupDamagedGameContinue[];
+extern const u8 gSystemText_GameplayEnded[];
+extern const u8 gSystemText_CheckCompleteSaveAttempt[];
+extern const u8 gSystemText_SaveCompletedGameEnd[];
+extern const u8 gSystemText_SaveCompletedPressA[];
+
+extern const u8 gOtherText_Ferry[];
+extern const u8 gOtherText_SecretBase[];
+extern const u8 gOtherText_Hideout[];
+
+extern const u8 gSystemText_ResetRTCPrompt[];
+extern const u8 gSystemText_PresentTime[];
+extern const u8 gSystemText_PreviousTime[];
+extern const u8 gSystemText_PleaseResetTime[];
+extern const u8 gSystemText_ClockResetDataSave[];
+extern const u8 gSystemText_SaveCompleted[];
+extern const u8 gSystemText_SaveFailed[];
+extern const u8 gSystemText_NoSaveFileNoTime[];
+extern const u8 gSystemText_ClockAdjustmentUsable[];
+extern const u8 gSystemText_Saving[];
+
+#endif
diff --git a/include/strings2.h b/include/strings2.h
new file mode 100644
index 000000000..600bb2d31
--- /dev/null
+++ b/include/strings2.h
@@ -0,0 +1,322 @@
+#ifndef GUARD_STRINGS2_H
+#define GUARD_STRINGS2_H
+
+// ???
+extern const u8 gOtherText_TopSpeed[];
+
+// berry_blender
+extern const u8 gMultiText_BerryBlenderMaxSpeedRecord[];
+extern const u8 gMultiText_2P3P4P[];
+extern const u8 gMultiText_Saving[];
+
+// link
+extern const u8 gMultiText_LinkError[];
+
+// option_menu
+extern const u8 gSystemText_OptionMenu[];
+extern const u8 gSystemText_TextSpeed[];
+extern const u8 gSystemText_BattleScene[];
+extern const u8 gSystemText_BattleStyle[];
+extern const u8 gSystemText_Sound[];
+extern const u8 gSystemText_Frame[];
+extern const u8 gSystemText_Cancel[];
+extern const u8 gSystemText_ButtonMode[];
+extern const u8 gSystemText_Slow[];
+extern const u8 gSystemText_Mid[];
+extern const u8 gSystemText_Fast[];
+extern const u8 gSystemText_On[];
+extern const u8 gSystemText_Off[];
+extern const u8 gSystemText_Shift[];
+extern const u8 gSystemText_Set[];
+extern const u8 gSystemText_Mono[];
+extern const u8 gSystemText_Stereo[];
+extern const u8 gSystemText_Type[];
+extern const u8 gSystemText_Terminator[];
+extern const u8 gSystemText_Normal[];
+extern const u8 gSystemText_LR[];
+extern const u8 gSystemText_LA[];
+
+// start_menu
+extern const u8 SystemText_Pokedex[];
+extern const u8 SystemText_Pokemon[];
+extern const u8 SystemText_BAG[];
+extern const u8 SystemText_Pokenav[];
+extern const u8 SystemText_Player[];
+extern const u8 SystemText_Save[];
+extern const u8 SystemText_Option[];
+extern const u8 SystemText_Exit[];
+extern const u8 SystemText_Retire[];
+extern const u8 gOtherText_SafariStock[];
+
+// mystery_event_menu
+extern const u8 gSystemText_LinkStandby[];
+extern const u8 gSystemText_LoadEventPressA[];
+extern const u8 gSystemText_LoadingEvent[];
+extern const u8 gSystemText_DontCutLink[];
+extern const u8 gSystemText_EventLoadSuccess[];
+extern const u8 gSystemText_LoadingError[];
+
+// field_region_map
+extern const u8 gOtherText_Hoenn[];
+
+// field_player_avatar
+extern const u8 gOtherText_OhABite[];
+extern const u8 gOtherText_PokeOnHook[];
+extern const u8 gOtherText_NotEvenANibble[];
+extern const u8 gOtherText_ItGotAway[];
+
+// trade
+extern const u8 gTradeText_WillBeSent[];
+extern const u8 gTradeText_ByeBye[];
+extern const u8 gTradeText_SentOverPoke[];
+extern const u8 gTradeText_TakeGoodCare[];
+extern const u8 TradeText_Cancel[];
+extern const u8 TradeText_ChoosePoke[];
+extern const u8 TradeText_Summary1[];
+extern const u8 TradeText_Trade1[];
+extern const u8 TradeText_CancelTradePrompt[];
+extern const u8 TradeText_PressBToExit[];
+extern const u8 TradeText_Summary2[];
+extern const u8 TradeText_Trade2[];
+extern const u8 TradeText_LinkStandby[];
+extern const u8 TradeText_TradeCancelled[];
+extern const u8 TradeText_OnlyPoke[];
+extern const u8 TradeText_NonTradablePoke[];
+extern const u8 TradeText_WaitingForFriend[];
+extern const u8 TradeText_WantToTrade[];
+extern const u8 gTradeText_TradeOkayPrompt[];
+extern const u8 gOtherText_Terminator2[];
+extern const u8 gOtherText_ControlAndMiscText[];
+extern const u8 gOtherText_FourQuestions[];
+
+// easy_chat
+extern const u8 gEasyChatGroupName_Pokemon[];
+extern const u8 gEasyChatGroupName_Trainer[];
+extern const u8 gEasyChatGroupName_Status[];
+extern const u8 gEasyChatGroupName_Battle[];
+extern const u8 gEasyChatGroupName_Greetings[];
+extern const u8 gEasyChatGroupName_People[];
+extern const u8 gEasyChatGroupName_Voices[];
+extern const u8 gEasyChatGroupName_Speech[];
+extern const u8 gEasyChatGroupName_Endings[];
+extern const u8 gEasyChatGroupName_Feelings[];
+extern const u8 gEasyChatGroupName_Conditions[];
+extern const u8 gEasyChatGroupName_Actions[];
+extern const u8 gEasyChatGroupName_Lifestyle[];
+extern const u8 gEasyChatGroupName_Hobbies[];
+extern const u8 gEasyChatGroupName_Time[];
+extern const u8 gEasyChatGroupName_Misc[];
+extern const u8 gEasyChatGroupName_Adjectives[];
+extern const u8 gEasyChatGroupName_Events[];
+extern const u8 gEasyChatGroupName_Move1[];
+extern const u8 gEasyChatGroupName_Move2[];
+extern const u8 gEasyChatGroupName_TrendySaying[];
+extern const u8 gEasyChatGroupName_Pokemon2[];
+extern const u8 gOtherText_ThreeQuestions[];
+
+// mail
+extern const u8 gOtherText_From[];
+
+// record_mixing
+extern const u8 gOtherText_MixingRecordsWithFriend[];
+extern const u8 gOtherText_MixingComplete[];
+
+// trainer_card
+extern const u8 gOtherText_TrainersTrainerCard[];
+extern const u8 gOtherText_FirstHOF[];
+extern const u8 gOtherText_LinkCableBattles[];
+extern const u8 gOtherText_BattleTowerWinRecord[];
+extern const u8 gOtherText_ContestRecord[];
+extern const u8 gOtherText_MixingRecord[];
+extern const u8 gOtherText_TradeRecord[];
+extern const u8 gOtherText_Boy[];
+extern const u8 gOtherText_Girl[];
+
+// save_menu_util
+extern const u8 gOtherText_Player[];
+extern const u8 gOtherText_Badges[];
+extern const u8 gOtherText_Pokedex[];
+extern const u8 gOtherText_PlayTime[];
+
+// naming_screen
+extern const u8 gOtherText_SentToPC[];
+extern const u8 OtherText_YourName[];
+extern const u8 OtherText_BoxName[];
+extern const u8 OtherText_PokeName[];
+
+// pokemon_size_record
+extern const u8 gOtherText_Marco[];
+
+// roulette
+extern const u8 gOtherText_Coins[];
+
+// battle_records
+extern const u8 gOtherText_BattleResults[];
+extern const u8 gOtherText_WinRecord[];
+extern const u8 gOtherText_WinLoseDraw[];
+extern const u8 gOtherText_SevenDashes[];
+extern const u8 gOtherText_FourDashes[];
+extern const u8 gOtherText_BattleTowerResults[];
+extern const u8 gOtherText_Lv50[];
+extern const u8 gOtherText_Lv100[];
+extern const u8 gOtherText_WinStreak[];
+extern const u8 gOtherText_Current[];
+extern const u8 gOtherText_Record[];
+extern const u8 gOtherText_Prev[];
+
+// slot_machine
+extern const u8 gOtherText_QuitGamePrompt[];
+extern const u8 gOtherText_MaxCoins[];
+extern const u8 gOtherText_OutOfCoins[];
+extern const u8 gOtherText_DontHaveThreeCoins[];
+extern const u8 gOtherText_ReelTime[];
+
+// daycare
+extern const u8 DaycareText_GetAlongVeryWell[];
+extern const u8 DaycareText_GetAlong[];
+extern const u8 DaycareText_DontLikeOther[];
+extern const u8 DaycareText_PlayOther[];
+extern const u8 gOtherText_NewLine2[];
+extern const u8 gOtherText_CancelAndLv[];
+
+// pokemon_2
+extern const u8 gEggNickname[];
+
+// egg_hatch
+extern const u8 gOtherText_HatchedFromEgg[];
+extern const u8 gOtherText_NickHatchPrompt[];
+
+// learn_move
+extern const u8 OtherText_Battle[];
+extern const u8 OtherText_Contest[];
+
+// ???
+extern const u8 OtherText_Type[];
+extern const u8 OtherText_PP[];
+
+// learn_move
+extern const u8 OtherText_Power[];
+extern const u8 OtherText_Accuracy[];
+extern const u8 OtherText_Appeal[];
+extern const u8 OtherText_Jam[];
+extern const u8 gOtherText_TeachWhichMove[];
+extern const u8 gOtherText_TeachSpecificMove[];
+extern const u8 gOtherText_PokeLearnedMove[];
+extern const u8 gOtherText_DeleteOlderMove[];
+extern const u8 gOtherText_StopLearningMove[];
+extern const u8 gOtherText_ForgotMove123[];
+extern const u8 gOtherText_ForgotOrDidNotLearnMove[];
+extern const u8 gOtherText_GiveUpTeachingMove[];
+extern const u8 gOtherText_WhichMoveToForget[];
+
+// clear_save_data_menu
+extern const u8 gSystemText_ClearAllSaveDataPrompt[];
+extern const u8 gSystemText_ClearingData[];
+
+// contest_link_80C2020
+extern const u8 gContestText_AnnounceResults[];
+extern const u8 gContestText_PreliminaryResults[];
+extern const u8 gContestText_Round2Results[];
+extern const u8 gContestText_PokeWon[];
+extern const u8 gOtherText_LinkStandby[];
+
+// landmark
+extern const u8 gLandmarkName_FlowerShop[];
+extern const u8 gLandmarkName_PetalburgWoods[];
+extern const u8 gLandmarkName_MrBrineysCottage[];
+extern const u8 gLandmarkName_AbandonedShip[];
+extern const u8 gLandmarkName_SeashoreHouse[];
+extern const u8 gLandmarkName_SlateportBeach[];
+extern const u8 gLandmarkName_CyclingRoad[];
+extern const u8 gLandmarkName_NewMauville[];
+extern const u8 gLandmarkName_TrickHouse[];
+extern const u8 gLandmarkName_OldLadysRestShop[];
+extern const u8 gLandmarkName_Desert[];
+extern const u8 gLandmarkName_WinstrateFamily[];
+extern const u8 gLandmarkName_CableCar[];
+extern const u8 gLandmarkName_GlassWorkshop[];
+extern const u8 gLandmarkName_WeatherInstitute[];
+extern const u8 gLandmarkName_MeteorFalls[];
+extern const u8 gLandmarkName_TunnelersRestHouse[];
+extern const u8 gLandmarkName_RusturfTunnel[];
+extern const u8 gLandmarkName_PokemonDayCare[];
+extern const u8 gLandmarkName_SafariZoneEntrance[];
+extern const u8 gLandmarkName_MtPyre[];
+extern const u8 gLandmarkName_ShoalCave[];
+extern const u8 gLandmarkName_SeafloorCavern[];
+extern const u8 gLandmarkName_GraniteCave[];
+extern const u8 gLandmarkName_OceanCurrent[];
+extern const u8 gLandmarkName_LanettesHouse[];
+extern const u8 gLandmarkName_FieryPath[];
+extern const u8 gLandmarkName_JaggedPass[];
+extern const u8 gLandmarkName_SkyPillar[];
+extern const u8 gLandmarkName_BerryMastersHouse[];
+extern const u8 gLandmarkName_IslandCave[];
+extern const u8 gLandmarkName_DesertRuins[];
+extern const u8 gLandmarkName_ScorchedSlab[];
+extern const u8 gLandmarkName_AncientTomb[];
+extern const u8 gLandmarkName_SealedChamber[];
+extern const u8 gLandmarkName_FossilManiacsHouse[];
+extern const u8 gLandmarkName_HuntersHouse[];
+
+// pokemon_summary_screen
+extern const u8 gOtherText_Terminator4[];
+extern const u8 gOtherText_Nature[];
+extern const u8 gOtherText_Comma[];
+extern const u8 gOtherText_Met[];
+extern const u8 gOtherText_Egg2[];
+extern const u8 gOtherText_ObtainedInTrade[];
+extern const u8 gOtherText_FatefulEncounter[];
+extern const u8 gOtherText_Met2[];
+extern const u8 gOtherText_EggDayCare[];
+extern const u8 gOtherText_EggNicePlace[];
+extern const u8 gOtherText_EggObtainedInTrade[];
+extern const u8 gOtherText_EggHotSprings[];
+
+// evolution_scene, trade
+extern const u8 gOtherText_LinkStandby2[];
+
+// evolution_scene
+extern const u8 gOtherText_YesNoAndPlayer[];
+
+// diploma
+extern const u8 gOtherText_HoennDex[];
+extern const u8 gOtherText_NationalDex[];
+extern const u8 gOtherText_DiplomaCertificationGameFreak[];
+
+// cable_club
+extern const u8 gOtherText_PLink[];
+
+// berry_blender
+extern const u8 gOtherText_YesNoTerminating[];
+extern const u8 gOtherText_LinkNotFound[];
+extern const u8 gOtherText_BlenderChooseBerry[];
+extern const u8 gOtherText_PokeBlockMade[];
+extern const u8 gOtherText_PressAToStart[];
+extern const u8 gOtherText_PleaseWait[];
+extern const u8 gOtherText_LinkStandby3[];
+extern const u8 gOtherText_BlendAnotherBerryPrompt[];
+extern const u8 gOtherText_OutOfBerries[];
+extern const u8 gOtherText_CaseIsFull[];
+extern const u8 gOtherText_NoBerriesForBlend[];
+extern const u8 gOtherText_OtherCaseIsFull[];
+extern const u8 gOtherText_ResultsOfBlending[];
+extern const u8 gOtherText_Berry[];
+extern const u8 gOtherText_RequiredTime[];
+extern const u8 gOtherText_Min[];
+extern const u8 gOtherText_Sec[];
+extern const u8 gOtherText_MaxSpeed[];
+extern const u8 gOtherText_RPM[];
+extern const u8 gOtherText_Ranking[];
+extern const u8 gOtherText_BlockLevelIs[];
+extern const u8 gOtherText_BlockFeelIs[];
+extern const u8 gOtherText_Period[];
+
+// reset_rtc_screen
+extern const u8 gOtherText_Day[];
+extern const u8 gOtherText_OK[];
+
+// wallclock
+extern const u8 gOtherText_CorrectTimePrompt[];
+
+#endif // GUARD_STRINGS2_H
diff --git a/include/task.h b/include/task.h
index d2b2302cf..6c6efdf4f 100644
--- a/include/task.h
+++ b/include/task.h
@@ -5,12 +5,12 @@ typedef void (*TaskFunc)(u8 taskId);
struct Task
{
- TaskFunc func;
- bool8 isActive;
- u8 prev;
- u8 next;
- u8 priority;
- s16 data[16];
+ /*0x00*/ TaskFunc func;
+ /*0x04*/ bool8 isActive;
+ /*0x05*/ u8 prev;
+ /*0x06*/ u8 next;
+ /*0x07*/ u8 priority;
+ /*0x08*/ s16 data[16];
};
extern struct Task gTasks[];
diff --git a/include/text.h b/include/text.h
index 2c66f30dc..6e32de6dd 100644
--- a/include/text.h
+++ b/include/text.h
@@ -2,12 +2,71 @@
#define GUARD_TEXT_H
#define CHAR_SPACE 0x00
+#define CHAR_0 0xA1
#define CHAR_QUESTION_MARK 0xAC
+#define CHAR_PERIOD 0xAD
#define CHAR_HYPHEN 0xAE
+#define CHAR_MALE 0xB5
+#define CHAR_FEMALE 0xB6
+#define CHAR_COMMA 0xB8
#define CHAR_CURRENCY 0xB7
+#define CHAR_SLASH 0xBA
+#define CHAR_A 0xBB
+#define CHAR_B 0xBC
+#define CHAR_C 0xBD
+#define CHAR_D 0xBE
+#define CHAR_E 0xBF
+#define CHAR_F 0xC0
+#define CHAR_G 0xC1
+#define CHAR_H 0xC2
+#define CHAR_I 0xC3
+#define CHAR_J 0xC4
+#define CHAR_K 0xC5
+#define CHAR_L 0xC6
+#define CHAR_M 0xC7
+#define CHAR_N 0xC8
+#define CHAR_O 0xC9
+#define CHAR_P 0xCA
+#define CHAR_Q 0xCB
+#define CHAR_R 0xCC
+#define CHAR_S 0xCD
+#define CHAR_T 0xCE
+#define CHAR_U 0xCF
+#define CHAR_V 0xD0
+#define CHAR_W 0xD1
+#define CHAR_X 0xD2
+#define CHAR_Y 0xD3
+#define CHAR_Z 0xD4
+#define CHAR_a 0xD5
+#define CHAR_b 0xD6
+#define CHAR_c 0xD7
+#define CHAR_d 0xD8
+#define CHAR_e 0xD9
+#define CHAR_f 0xDA
+#define CHAR_g 0xDB
+#define CHAR_h 0xDC
+#define CHAR_i 0xDD
+#define CHAR_j 0xDE
+#define CHAR_k 0xDF
+#define CHAR_l 0xE0
+#define CHAR_m 0xE1
+#define CHAR_n 0xE2
+#define CHAR_o 0xE3
+#define CHAR_p 0xE4
+#define CHAR_q 0xE5
+#define CHAR_r 0xE6
+#define CHAR_s 0xE7
+#define CHAR_t 0xE8
+#define CHAR_u 0xE9
+#define CHAR_v 0xEA
+#define CHAR_w 0xEB
+#define CHAR_x 0xEC
+#define CHAR_y 0xED
+#define CHAR_z 0xEE
#define CHAR_COLON 0xF0
#define EXT_CTRL_CODE_BEGIN 0xFC // extended control code
#define PLACEHOLDER_BEGIN 0xFD // string placeholder
+#define CHAR_NEWLINE 0xFE
#define EOS 0xFF // end of string
struct WindowConfig
@@ -36,7 +95,7 @@ struct Window
{
u8 textMode;
u8 fontNum;
- u8 charset;
+ u8 language;
u8 foregroundColor;
u8 backgroundColor;
u8 shadowColor;
@@ -133,6 +192,13 @@ extern const struct WindowConfig gWindowConfig_81E725C;
extern const struct WindowConfig gWindowConfig_81E7278;
extern const struct WindowConfig gWindowConfig_81E7294;
+extern u16 gBGTilemapBuffers[4][0x400];
+
+extern u8 gStringVar1[];
+extern u8 gStringVar2[];
+extern u8 gStringVar3[];
+extern u8 gStringVar4[];
+
void LoadFontDefaultPalette(const struct WindowConfig *winConfig);
void SetUpWindowConfig(const struct WindowConfig *winConfig);
u16 InitWindowTileData(struct Window *win, u16 startOffset);
@@ -147,7 +213,7 @@ u8 sub_8002F44(struct Window *win);
u8 sub_8003418(struct Window *win);
u8 sub_8003460(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top);
u8 sub_8003490(struct Window *win, u8 c, u16 tileDataStartOffset, u8 left, u8 top);
-void sub_80034D4(u8 *tileData, u8 *text);
+void sub_80034D4(u8 *tileData, const u8 *text);
u8 sub_80034EC(u8 *str);
u8 *sub_8003504(u8 *dest, s32 value, u8 alignAmount, u8 alignType);
u8 *sub_8003558(u8 *dest, const u8 *src, u8 alignAmount, u8 alignType);
diff --git a/include/text_window.h b/include/text_window.h
index 6df3f7d33..afd645540 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -5,8 +5,8 @@
struct FrameGraphics
{
- u8 *tiles;
- u16 *palette;
+ u8 *tiles;
+ u16 *palette;
};
u16 SetTextWindowBaseTileNum(u16 baseTileNum);
diff --git a/include/time_events.h b/include/time_events.h
new file mode 100644
index 000000000..fd6d29f39
--- /dev/null
+++ b/include/time_events.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_TIME_EVENTS_H
+#define GUARD_TIME_EVENTS_H
+
+void UpdateMirageRnd(u16);
+u8 IsMirageIslandPresent(void);
+void UpdateBirchState(u16);
+
+#endif // GUARD_TIME_EVENTS_H
diff --git a/include/title_screen.h b/include/title_screen.h
index 304ec0540..91da38018 100644
--- a/include/title_screen.h
+++ b/include/title_screen.h
@@ -3,6 +3,8 @@
#include "sprite.h"
+extern const u16 gUnknown_08393E64[];
+
void SpriteCallback_VersionBannerLeft(struct Sprite *sprite);
void SpriteCallback_VersionBannerRight(struct Sprite *sprite);
void SpriteCallback_PressStartCopyrightBanner(struct Sprite *sprite);
diff --git a/include/trader.h b/include/trader.h
new file mode 100644
index 000000000..24a9f2a07
--- /dev/null
+++ b/include/trader.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_TRADER_H
+#define GUARD_TRADER_H
+
+void sub_81099CC(void);
+
+#endif // GUARD_TRADER_H
diff --git a/include/trainer_card.h b/include/trainer_card.h
index 7269c0b20..bd0c808dd 100644
--- a/include/trainer_card.h
+++ b/include/trainer_card.h
@@ -2,30 +2,30 @@
#define GUARD_TRAINER_CARD_H
struct TrainerCard {
- /*0x00*/ u8 gender;
- /*0x01*/ u8 stars;
- /*0x02*/ bool8 hasPokedex;
- /*0x03*/ bool8 var_3;
- /*0x04*/ bool8 var_4;
- /*0x05*/ u8 var_5;
- /*0x06*/ u16 firstHallOfFameA;
- /*0x08*/ u16 firstHallOfFameB;
- /*0x0A*/ u16 firstHallOfFameC;
- /*0x0C*/ u16 pokedexSeen;
- /*0x0E*/ u16 trainerId;
- /*0x10*/ u16 playTimeHours;
- /*0x12*/ u16 playTimeMinutes;
- /*0x14*/ u16 linkBattleWins;
- /*0x16*/ u16 linkBattleLosses;
- /*0x18*/ u16 battleTowerWins;
- /*0x1A*/ u16 battleTowerLosses;
- /*0x1C*/ u16 contestsWithFriends;
- /*0x1E*/ u16 pokeblocksWithFriends;
- /*0x20*/ u16 pokemonTrades;
- /*0x22*/ u16 var_22;
- /*0x24*/ u32 money;
- /*0x28*/ u16 var_28[4];
- /*0x30*/ u8 playerName[8];
+ /*0x00*/ u8 gender;
+ /*0x01*/ u8 stars;
+ /*0x02*/ bool8 hasPokedex;
+ /*0x03*/ bool8 var_3;
+ /*0x04*/ bool8 var_4;
+ /*0x05*/ u8 var_5;
+ /*0x06*/ u16 firstHallOfFameA;
+ /*0x08*/ u16 firstHallOfFameB;
+ /*0x0A*/ u16 firstHallOfFameC;
+ /*0x0C*/ u16 pokedexSeen;
+ /*0x0E*/ u16 trainerId;
+ /*0x10*/ u16 playTimeHours;
+ /*0x12*/ u16 playTimeMinutes;
+ /*0x14*/ u16 linkBattleWins;
+ /*0x16*/ u16 linkBattleLosses;
+ /*0x18*/ u16 battleTowerWins;
+ /*0x1A*/ u16 battleTowerLosses;
+ /*0x1C*/ u16 contestsWithFriends;
+ /*0x1E*/ u16 pokeblocksWithFriends;
+ /*0x20*/ u16 pokemonTrades;
+ /*0x22*/ u16 var_22;
+ /*0x24*/ u32 money;
+ /*0x28*/ u16 var_28[4];
+ /*0x30*/ u8 playerName[8];
};
void sub_8093110(void (*)(void));
diff --git a/include/trainer_see.h b/include/trainer_see.h
index e4d1fe270..b80a41641 100644
--- a/include/trainer_see.h
+++ b/include/trainer_see.h
@@ -1,6 +1,7 @@
#ifndef GUARD_TRAINER_SEE_H
#define GUARD_TRAINER_SEE_H
+#include "sprite.h"
#include "task.h"
bool8 CheckTrainers(void);
@@ -27,8 +28,10 @@ s8 sub_80845FC(u8 taskId, struct Task *task, struct MapObject *trainerObj);
s8 sub_8084654(u8 taskId, struct Task *task, struct MapObject *trainerObj);
s8 sub_80846C8(u8 taskId, struct Task *task, struct MapObject *trainerObj);
void sub_80846E4(u8 taskId);
-void sub_8084794(u32 var);
+void sub_8084794(struct MapObject *var);
void sub_80847C8(void);
void sub_80847D8(u8);
+void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3);
+void objc_exclamation_mark_probably(struct Sprite *sprite);
#endif // GUARD_TRAINER_SEE_H
diff --git a/include/trig.h b/include/trig.h
index 5a948e1ef..a2f98a3e6 100644
--- a/include/trig.h
+++ b/include/trig.h
@@ -1,6 +1,8 @@
#ifndef GUARD_TRIG_H
#define GUARD_TRIG_H
+extern const s16 gSineTable[];
+
s16 Sin(s16 index, s16 amplitude);
s16 Cos(s16 index, s16 amplitude);
s16 Sin2(u16 angle);
diff --git a/include/tv.h b/include/tv.h
new file mode 100644
index 000000000..3243fff2c
--- /dev/null
+++ b/include/tv.h
@@ -0,0 +1,111 @@
+#ifndef GUARD_TV_H
+#define GUARD_TV_H
+
+enum
+{
+ TVSHOW_FAN_CLUB_LETTER = 1,
+ TVSHOW_RECENT_HAPPENINGS,
+ TVSHOW_PKMN_FAN_CLUB_OPINIONS,
+ TVSHOW_UNKN_SHOWTYPE_04,
+ TVSHOW_NAME_RATER_SHOW,
+ TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE,
+ TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE,
+ TVSHOW_POKEMON_TODAY_CAUGHT = 21,
+ TVSHOW_SMART_SHOPPER,
+ TVSHOW_POKEMON_TODAY_FAILED,
+ TVSHOW_FISHING_ADVICE,
+ TVSHOW_WORLD_OF_MASTERS,
+ TVSHOW_MASS_OUTBREAK = 41,
+};
+
+extern u8 *const gUnknown_083D1464[3];
+
+void ClearTVShowData(void);
+u8 sub_80BDEAC(u8 *);
+void sub_80BE028(void);
+void sub_80BE074(void);
+void sub_80BE138(TVShow *show);
+void sub_80BE160(TVShow *show);
+void sub_80BE160(TVShow *);
+void sub_80BE188(void);
+void sub_80BE320(void);
+void StartMassOutbreak(void);
+void sub_80BE5FC(void);
+void sub_80BE65C(void);
+void sub_80BE6A0(void);
+void nullsub_21(void);
+void sub_80BE778(void);
+void sub_80BE8EC(u16);
+void UpdateMassOutbreakTimeLeft(u16);
+void sub_80BE97C(u8);
+void sub_80BE9D4();
+void sub_80BEA50(u16);
+void sub_80BEA5C(u16);
+void sub_80BEA88(void);
+void sub_80BEA88(void);
+void sub_80BEB20(void);
+int sub_80BEBC8(struct UnknownSaveStruct2ABC *arg0);
+extern void sub_80BEBF4(void);
+void sub_80BEC10(u8);
+bool8 GetPriceReduction(u8);
+bool8 IsPriceDiscounted(u8);
+bool8 sub_80BEE48(u8);
+void sub_80BEE84(u16);
+size_t sub_80BF0B8(int);
+bool8 sub_80BF1B4(u8);
+void sub_80BF20C(void);
+void sub_80BF334(void);
+void sub_80BF3A4(void);
+void sub_80BF3DC(void);
+void sub_80BF46C(void);
+void sub_80BF478(void);
+void sub_80BF478(void);
+void sub_80BF484(void);
+void sub_80BF4BC(void);
+void sub_80BF55C(TVShow tvShow[], u8 showidx);
+void sub_80BF55C(TVShow tvShow[], u8 showidx);
+void sub_80BF588(TVShow tvShows[]);
+u16 sub_80BF674(u16 species);
+void sub_80BF6D8(void);
+s8 sub_80BF720(TVShow *);
+s8 sub_80BF74C(TVShow tvShow[]);
+bool8 sub_80BF77C(u16);
+bool8 sub_80BF77C(u16);
+u32 GetPlayerTrainerId(void);
+void sub_80BFD44(u8 *, u32, u8);
+u8 sub_80C004C(TVShow *tv1, TVShow *tv2, u8 idx);
+u8 sub_80C00B4(TVShow *tv1, TVShow *tv2, u8 idx);
+u8 sub_80C0134(TVShow *tv1, TVShow *tv2, u8 idx);
+s8 sub_80C019C(TVShow tvShows[]);
+void sub_80C01D4(void);
+void sub_80C03A8(u8 showidx);
+void sub_80C03C8(u16 species, u8 showidx);
+void sub_80C0408(void);
+bool8 sub_80C06E8(struct UnknownSaveStruct2ABC *arg0, struct UnknownSaveStruct2ABC *arg1, s8 arg2);
+void TVShowConvertInternationalString(u8 *, u8 *, u8);
+void DoTVShowTheNameRaterShow(void);
+void DoTVShowPokemonTodaySuccessfulCapture(void);
+void DoTVShowPokemonTodayFailedCapture(void);
+void DoTVShowPokemonFanClubLetter(void);
+void DoTVShowRecentHappenings(void);
+void DoTVShowPokemonFanClubOpinions(void);
+void nullsub_22(void);
+void DoTVShowPokemonNewsMassOutbreak(void);
+void DoTVShowPokemonAngler(void);
+void DoTVShowTheWorldOfMasters(void);
+void TVShowDone(void);
+void UpdateTVScreensOnMap(int, int);
+void ResetGabbyAndTy(void);
+void TakeTVShowInSearchOfTrainersOffTheAir(void);
+extern u8 GabbyAndTyGetBattleNum(void);
+void sub_80C04A0(void);
+void sub_80C0514(void *, u32, u8);
+void DoTVShowBravoTrainerPokemonProfile(void);
+void DoTVShowBravoTrainerBattleTowerProfile(void);
+void DoTVShowTodaysSmartShopper(void);
+void sub_80BE3BC(void);
+void UpdateTVShowsPerDay(u16);
+void sub_80C045C();
+void sub_80BF088(u8, s32);
+
+#endif // GUARD_TV_H
diff --git a/include/unknown_task.h b/include/unknown_task.h
new file mode 100644
index 000000000..dc07767d6
--- /dev/null
+++ b/include/unknown_task.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_UNKNOWN_TASK_H
+#define GUARD_UNKNOWN_TASK_H
+
+void remove_some_task(void);
+void remove_some_task(void);
+void dp12_8087EA4(void);
+void dp12_8087EA4(void);
+void sub_80895F8(u32 i, u32 i1, u32 i2);
+void sub_80895F8();
+void sub_8089668(void);
+void sub_8089668();
+void sub_8089944(int i, int i1, int i2, int i3, int i4, int i5, int i6);
+
+#endif // GUARD_UNKNOWN_TASK_H
diff --git a/include/util.h b/include/util.h
new file mode 100644
index 000000000..1851c2e82
--- /dev/null
+++ b/include/util.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_UTIL_H
+#define GUARD_UTIL_H
+
+#include "sprite.h"
+
+extern const u8 gMiscBlank_Gfx[];
+extern const u32 gBitTable[];
+
+u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *));
+void StoreWordInTwoHalfwords(u16 *, u32);
+void LoadWordFromTwoHalfwords(u16 *, u32 *);
+
+#endif // GUARD_UTIL_H
diff --git a/include/var.h b/include/var.h
deleted file mode 100644
index ada8caf24..000000000
--- a/include/var.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef GUARD_VAR_H
-#define GUARD_VAR_H
-
-u16 *GetVarPointer(u16 id);
-u16 VarGet(u16 id);
-bool8 VarSet(u16 id, u16 value);
-u8 VarGetFieldObjectGraphicsId(u8 id);
-
-#endif // GUARD_VAR_H
diff --git a/include/vars.h b/include/vars.h
index db6f097b7..f31ebde84 100644..100755
--- a/include/vars.h
+++ b/include/vars.h
@@ -1,6 +1,43 @@
#ifndef GUARD_VARS_H
#define GUARD_VARS_H
-#define VAR_REPEL_STEP_COUNT 0x4021
+#define VAR_0x4003 0x4003
+#define VAR_0x401F 0x401F
+#define VAR_RECYCLE_GOODS 0x4020
+#define VAR_REPEL_STEP_COUNT 0x4021
+#define VAR_ICE_STEP_COUNT 0x4022
+#define VAR_FIRST_POKE 0x4023
+#define VAR_MIRAGE_RND_H 0x4024
+#define VAR_MIRAGE_RND_L 0x4025
+#define VAR_SECRET_BASE_MAP 0x4026
+
+#define VAR_HAPPINESS_STEP_COUNTER 0x402A
+#define VAR_POISON_STEP_COUNTER 0x402B
+#define VAR_RESET_RTC_ENABLE 0x402C
+
+#define VAR_DAYS 0x4040
+
+#define VAR_DEPT_STORE_FLOOR 0x4043
+#define VAR_POKELOT_PRIZE 0x4045
+#define VAR_NATIONAL_DEX 0x4046
+#define VAR_SHROOMISH_SIZE_RECORD 0x4047
+#define VAR_ASH_GATHER_COUNT 0x4048
+#define VAR_BIRCH_STATE 0x4049
+#define VAR_CRUISE_STEP_COUNT 0x404A
+#define VAR_POKELOT_RND1 0x404B
+#define VAR_POKELOT_RND2 0x404C
+
+#define VAR_BARBOACH_SIZE_RECORD 0x404F
+
+#define VAR_0x4054 0x4054
+
+#define VAR_0x4089 0x4089
+#define VAR_0x4095 0x4095
+#define VAR_0x4097 0x4097
+#define VAR_0x409a 0x409a
+#define VAR_PORTHOLE 0x40B4
+
+#define VAR_0x40BC 0x40BC
+#define VAR_0x40C2 0x40C2
#endif // GUARD_VARS_H
diff --git a/include/wallclock.h b/include/wallclock.h
index be3111ab1..794f456be 100644
--- a/include/wallclock.h
+++ b/include/wallclock.h
@@ -3,12 +3,7 @@
#include "sprite.h"
-void Cb2_StartWallClock(void);
-void Cb2_ViewWallClock(void);
-
-void sub_810B05C(struct Sprite *sprite);
-void sub_810B0F4(struct Sprite *sprite);
-void sub_810B18C(struct Sprite *sprite);
-void sub_810B230(struct Sprite *sprite);
+void CB2_StartWallClock(void);
+void CB2_ViewWallClock(void);
#endif // GUARD_WALLCLOCK_H
diff --git a/include/wild_encounter.h b/include/wild_encounter.h
index 33b7df7b9..a4485b08d 100644
--- a/include/wild_encounter.h
+++ b/include/wild_encounter.h
@@ -1,6 +1,31 @@
#ifndef GUARD_WILD_ENCOUNTER_H
#define GUARD_WILD_ENCOUNTER_H
+struct WildPokemon
+{
+ u8 minLevel;
+ u8 maxLevel;
+ u16 species;
+};
+
+struct WildPokemonInfo
+{
+ u8 encounterRate;
+ const struct WildPokemon *wildPokemon;
+};
+
+struct WildPokemonHeader
+{
+ u8 mapGroup;
+ u8 mapNum;
+ struct WildPokemonInfo *landMonsInfo;
+ struct WildPokemonInfo *waterMonsInfo;
+ struct WildPokemonInfo *rockSmashMonsInfo;
+ struct WildPokemonInfo *fishingMonsInfo;
+};
+
+extern struct WildPokemonHeader gWildMonHeaders[];
+
void DisableWildEncounters(bool8 disabled);
bool8 StandardWildEncounter(u16 a, u16 b);
void RockSmashWildEncounter(void);