diff options
Diffstat (limited to 'include')
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); |