diff options
author | Cameron Hall <camthesaxman@users.noreply.github.com> | 2017-01-28 01:31:09 -0500 |
---|---|---|
committer | YamaArashi <YamaArashi@users.noreply.github.com> | 2017-01-27 22:31:09 -0800 |
commit | b9f1143d3e9b32120cc62fcc7a822d3bca8ef976 (patch) | |
tree | 0eab82b1e5172ae6491c619a23b728031c00defe | |
parent | 0de796fad05702592c841b692e91506a94428752 (diff) |
define more data in C (#220)
* define more data in C
* correct typo in comments
-rw-r--r-- | constants/map_constants.inc | 1 | ||||
-rw-r--r-- | data/battle_setup.s | 77 | ||||
-rw-r--r-- | data/contest_painting.s | 102 | ||||
-rw-r--r-- | data/heal_location.s | 29 | ||||
-rw-r--r-- | data/intro.s | 112 | ||||
-rw-r--r-- | data/starter_choose.s | 29 | ||||
-rw-r--r-- | data/trainer_eye_trainers.inc | 58 | ||||
-rw-r--r-- | include/map_constants.h | 1098 | ||||
-rw-r--r-- | include/menu.h | 2 | ||||
-rw-r--r-- | include/opponent_constants.h | 702 | ||||
-rw-r--r-- | include/sprite.h | 17 | ||||
-rw-r--r-- | include/starter_choose.h | 4 | ||||
-rw-r--r-- | ld_script.txt | 7 | ||||
-rw-r--r-- | src/battle_setup.c | 398 | ||||
-rw-r--r-- | src/contest_painting.c | 140 | ||||
-rw-r--r-- | src/heal_location.c | 33 | ||||
-rw-r--r-- | src/intro.c | 377 | ||||
-rw-r--r-- | src/starter_choose.c | 192 |
18 files changed, 2709 insertions, 669 deletions
diff --git a/constants/map_constants.inc b/constants/map_constants.inc index d7a8a323e..6d92c5e65 100644 --- a/constants/map_constants.inc +++ b/constants/map_constants.inc @@ -461,3 +461,4 @@ new_map_group map_group Route124_DivingTreasureHuntersHouse @ 33.0 + diff --git a/data/battle_setup.s b/data/battle_setup.s deleted file mode 100644 index eb790edf4..000000000 --- a/data/battle_setup.s +++ /dev/null @@ -1,77 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gBattleTransitionTable_Wild:: @ 839ACF8 - .byte 8, 9, 5, 10, 0, 10, 7, 6 - -gBattleTransitionTable_Trainer:: @ 839AD00 - .byte 4, 11, 2, 3, 0, 10, 1, 6 - - .align 2 -gTrainerBattleSpecs_0:: @ 839AD08 - .4byte gTrainerBattleMode, 0 - .4byte gTrainerBattleOpponent, 1 - .4byte gTrainerMapObjectLocalId, 1 - .4byte gTrainerIntroSpeech, 2 - .4byte gTrainerDefeatSpeech, 2 - .4byte gTrainerVictorySpeech, 5 - .4byte gTrainerCannotBattleSpeech, 5 - .4byte gTrainerBattleEndScript, 5 - .4byte gTrainerBattleScriptReturnAddress, 6 - - .align 2 -gTrainerBattleSpecs_1:: @ 839AD50 - .4byte gTrainerBattleMode, 0 - .4byte gTrainerBattleOpponent, 1 - .4byte gTrainerMapObjectLocalId, 1 - .4byte gTrainerIntroSpeech, 2 - .4byte gTrainerDefeatSpeech, 2 - .4byte gTrainerVictorySpeech, 5 - .4byte gTrainerCannotBattleSpeech, 5 - .4byte gTrainerBattleEndScript, 2 - .4byte gTrainerBattleScriptReturnAddress, 6 - - .align 2 -gTrainerBattleSpecs_2:: @ 839AD98 - .4byte gTrainerBattleMode, 0 - .4byte gTrainerBattleOpponent, 1 - .4byte gTrainerMapObjectLocalId, 1 - .4byte gTrainerIntroSpeech, 2 - .4byte gTrainerDefeatSpeech, 2 - .4byte gTrainerVictorySpeech, 5 - .4byte gTrainerCannotBattleSpeech, 2 - .4byte gTrainerBattleEndScript, 5 - .4byte gTrainerBattleScriptReturnAddress, 6 - - .align 2 -gTrainerBattleSpecs_3:: @ 839ADE0 - .4byte gTrainerBattleMode, 0 - .4byte gTrainerBattleOpponent, 1 - .4byte gTrainerMapObjectLocalId, 1 - .4byte gTrainerIntroSpeech, 5 - .4byte gTrainerDefeatSpeech, 2 - .4byte gTrainerVictorySpeech, 5 - .4byte gTrainerCannotBattleSpeech, 5 - .4byte gTrainerBattleEndScript, 5 - .4byte gTrainerBattleScriptReturnAddress, 6 - - .align 2 -gTrainerBattleSpecs_4:: @ 839AE28 - .4byte gTrainerBattleMode, 0 - .4byte gTrainerBattleOpponent, 1 - .4byte gTrainerMapObjectLocalId, 1 - .4byte gTrainerIntroSpeech, 2 - .4byte gTrainerDefeatSpeech, 2 - .4byte gTrainerVictorySpeech, 5 - .4byte gTrainerCannotBattleSpeech, 2 - .4byte gTrainerBattleEndScript, 2 - .4byte gTrainerBattleScriptReturnAddress, 6 - -@ 839AE70 - .include "data/trainer_eye_trainers.inc" - - .align 2 -gBadgeFlags:: @ 839B1F0 - .2byte 0x0807, 0x0808, 0x0809, 0x080a, 0x080b, 0x080c, 0x080d, 0x080e diff --git a/data/contest_painting.s b/data/contest_painting.s deleted file mode 100644 index 071661cb4..000000000 --- a/data/contest_painting.s +++ /dev/null @@ -1,102 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gPictureFramePalettes:: @ 83EF198 - .incbin "graphics/picture_frame/bg0.gbapal" - .incbin "graphics/picture_frame/bg1.gbapal" - .incbin "graphics/picture_frame/bg2.gbapal" - .incbin "graphics/picture_frame/bg3.gbapal" - .incbin "graphics/picture_frame/bg4.gbapal" - .incbin "graphics/picture_frame/bg5.gbapal" - .space 10 * 32 - - .align 2 -gPictureFrameTiles_0:: @ 83EF398 - .incbin "graphics/picture_frame/frame0.4bpp.rl" - - .align 2 -gPictureFrameTiles_1:: @ 83F041C - .incbin "graphics/picture_frame/frame1.4bpp.rl" - - .align 2 -gPictureFrameTiles_2:: @ 83F104C - .incbin "graphics/picture_frame/frame2.4bpp.rl" - - .align 2 -gPictureFrameTiles_3:: @ 83F1B84 - .incbin "graphics/picture_frame/frame3.4bpp.rl" - - .align 2 -gPictureFrameTiles_4:: @ 83F2B3C - .incbin "graphics/picture_frame/frame4.4bpp.rl" - - .align 2 -gPictureFrameTiles_5:: @ 83F3C6C - .incbin "graphics/picture_frame/frame5.4bpp.rl" - - .align 2 -gPictureFrameTilemap_0:: @ 83F4260 - .incbin "graphics/picture_frame/frame0_map.bin.rl" - - .align 2 -gPictureFrameTilemap_1:: @ 83F476C - .incbin "graphics/picture_frame/frame1_map.bin.rl" - - .align 2 -gPictureFrameTilemap_2:: @ 83F4C78 - .incbin "graphics/picture_frame/frame2_map.bin.rl" - - .align 2 -gPictureFrameTilemap_3:: @ 83F5184 - .incbin "graphics/picture_frame/frame3_map.bin.rl" - - .align 2 -gPictureFrameTilemap_4:: @ 83F5690 - .incbin "graphics/picture_frame/frame4_map.bin.rl" - - .align 2 -gPictureFrameTilemap_5:: @ 83F5B9C - .incbin "graphics/picture_frame/frame5_map.bin.rl" - - .align 2 -gUnknown_083F60AC:: @ 83F60AC - .4byte OtherText_Cool - .4byte OtherText_Beauty2 - .4byte OtherText_Cute - .4byte OtherText_Smart - .4byte OtherText_Tough - - .align 2 -gUnknown_083F60C0:: @ 83F60C0 - .4byte OtherText_NonstopSuperCool, OtherText_Terminator6 - .4byte OtherText_GoodLookingPoke, OtherText_Terminator7 - .4byte OtherText_MarvelousGreat, OtherText_Terminator8 - - .4byte OtherText_CenturyLastVenus, OtherText_Terminator9 - .4byte OtherText_Terminator10, OtherText_DazzlingSlime - .4byte OtherText_PokeCenterIdol, OtherText_Terminator11 - - .4byte OtherText_LovelyAndSweet, OtherText_Terminator12 - .4byte OtherText_ThePretty, OtherText_WinningPortrait - .4byte OtherText_GiveUsWink, OtherText_Terminator13 - - .4byte OtherText_SmartnessMaestro, OtherText_Terminator15 - .4byte OtherText_ChosenPokeAmong, OtherText_Terminator15 - .4byte OtherText_TheExcellent, OtherText_ItsMomentOfElegance - - .4byte OtherText_PowerfullyMuscular, OtherText_Terminator16 - .4byte OtherText_StrongErEst, OtherText_Terminator17 - .4byte OtherText_MightyTough, OtherText_Exclamation - - .align 2 -gOamData_83F6138:: @ 83F6138 - .2byte 0x3000 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gUnknown_083F6140:: @ 83F6140 - .space 4 diff --git a/data/heal_location.s b/data/heal_location.s deleted file mode 100644 index 101bec24f..000000000 --- a/data/heal_location.s +++ /dev/null @@ -1,29 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gHealLocations:: @ 83E5A20 - heal_location LittlerootTown_BrendansHouse_2F, 4, 2 - heal_location LittlerootTown_MaysHouse_2F, 4, 2 - heal_location PetalburgCity, 20, 17 - heal_location SlateportCity, 19, 20 - heal_location MauvilleCity, 22, 6 - heal_location RustboroCity, 16, 39 - heal_location FortreeCity, 5, 7 - heal_location LilycoveCity, 24, 15 - heal_location MossdeepCity, 28, 17 - heal_location SootopolisCity, 43, 32 - heal_location EverGrandeCity, 27, 49 - heal_location LittlerootTown, 5, 9 - heal_location LittlerootTown, 14, 9 - heal_location OldaleTown, 6, 17 - heal_location DewfordTown, 2, 11 - heal_location LavaridgeTown, 9, 7 - heal_location FallarborTown, 14, 8 - heal_location VerdanturfTown, 16, 4 - heal_location PacifidlogTown, 8, 16 - heal_location EverGrandeCity, 18, 6 - heal_location BattleTower_Outside, 14, 9 - heal_location SouthernIsland_Exterior, 15, 20 diff --git a/data/intro.s b/data/intro.s deleted file mode 100644 index ed5daf33a..000000000 --- a/data/intro.s +++ /dev/null @@ -1,112 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gSpriteAnim_840B114:: @ 840B114 - obj_image_anim_frame 6, 8 - obj_image_anim_frame 6, 8, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_840B120:: @ 840B120 - .4byte gSpriteAnim_840B114 - - .align 2 -gSpriteTemplate_840B124:: @ 840B124 - spr_template 2003, 2004, gOamData_840B10C, gSpriteAnimTable_840B120, NULL, gDummySpriteAffineAnimTable, sub_813E804 - - .align 2 -gOamData_840B13C:: @ 840B13C - .2byte 0x00A0 - .2byte 0x4000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_840B144:: @ 840B144 - obj_image_anim_frame 10, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840B14C:: @ 840B14C - .4byte gSpriteAnim_840B144 - - .align 2 -gSpriteTemplate_840B150:: @ 840B150 - spr_template 2003, 2004, gOamData_840B13C, gSpriteAnimTable_840B14C, NULL, gDummySpriteAffineAnimTable, sub_813E980 - -gUnknown_0840B168:: @ 840B168 - .incbin "baserom.gba", 0x0040b168, 0x8 - - .align 2 -gSpriteTemplate_840B170:: @ 840B170 - spr_template 2003, 2004, gOamData_840B13C, gSpriteAnimTable_840B14C, NULL, gDummySpriteAffineAnimTable, sub_813EA60 - -gUnknown_0840B188:: @ 840B188 - .incbin "baserom.gba", 0x0040b188, 0x14 - - .align 2 -gOamData_840B19C:: @ 840B19C - .2byte 0x00A0 - .2byte 0x4000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_840B1A4:: @ 840B1A4 - obj_image_anim_frame 2, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840B1AC:: @ 840B1AC - .4byte gSpriteAnim_840B1A4 - - .align 2 -gSpriteTemplate_840B1B0:: @ 840B1B0 - spr_template 2003, 2004, gOamData_840B19C, gSpriteAnimTable_840B1AC, NULL, gDummySpriteAffineAnimTable, sub_813EBBC - - .align 2 -gSpriteTemplate_840B1C8:: @ 840B1C8 - spr_template 2003, 2004, gOamData_840B19C, gSpriteAnimTable_840B1AC, NULL, gDummySpriteAffineAnimTable, sub_813EC90 - - .align 2 -gOamData_840B1E0:: @ 840B1E0 - .2byte 0x00A0 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_840B1E8:: @ 840B1E8 - obj_image_anim_frame 16, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840B1F0:: @ 840B1F0 - .4byte gSpriteAnim_840B1E8 - - .align 2 -gSpriteTemplate_840B1F4:: @ 840B1F4 - spr_template 2003, 2003, gOamData_840B1E0, gSpriteAnimTable_840B1F0, NULL, gDummySpriteAffineAnimTable, sub_813EDFC - - .align 2 -gIntro3PokeballGfx_Table:: @ 840B20C - obj_tiles gInterfaceGfx_PokeBall, 0x100, 2002 - .space 8 - - .align 2 -gIntro3MiscGfx_Table:: @ 840B21C - obj_tiles gIntro3MiscTiles, 0xa00, 2003 - .space 8 - - .align 2 -gInterfacePokeballPal_Table:: @ 840B22C - obj_pal gInterfacePal_PokeBall, 2002 - .space 8 - - .align 2 -gIntro3MiscPal_Table:: @ 840B23C - obj_pal gIntro3Misc1Palette, 2003 - obj_pal gIntro3Misc2Palette, 2004 - .space 8 - - .incbin "baserom.gba", 0x0040b254, 0x4 diff --git a/data/starter_choose.s b/data/starter_choose.s deleted file mode 100644 index 123d1e5fe..000000000 --- a/data/starter_choose.s +++ /dev/null @@ -1,29 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gUnknown_083F7794:: @ 83F7794 - obj_tiles gBirchBallarrow_Gfx, 0x0800, 0x1000 - .space 8 - -gUnknown_083F77A4:: @ 83F77A4 - obj_tiles gBirchCircle_Gfx, 0x0800, 0x1001 - .space 8 - -gUnknown_083F77B4:: @ 83F77B4 - obj_pal gBirchBallarrow_Pal, 0x1000 - obj_pal gBirchCircle_Pal, 0x1001 - .space 8 - - .align 2 -gSpriteTemplate_83F77CC:: @ 83F77CC - spr_template 4096, 4096, gOamData_83F76CC, gSpriteAnimTable_83F774C, NULL, gDummySpriteAffineAnimTable, sub_810A62C - - .align 2 -gSpriteTemplate_83F77E4:: @ 83F77E4 - spr_template 4096, 4096, gOamData_83F76D4, gSpriteAnimTable_83F7750, NULL, gDummySpriteAffineAnimTable, sub_810A68C - - .align 2 -gSpriteTemplate_83F77FC:: @ 83F77FC - spr_template 4097, 4097, gOamData_83F76DC, gSpriteAnimTable_83F7758, NULL, gSpriteAffineAnimTable_83F7790, StarterPokemonSpriteAnimCallback diff --git a/data/trainer_eye_trainers.inc b/data/trainer_eye_trainers.inc deleted file mode 100644 index 3628ea598..000000000 --- a/data/trainer_eye_trainers.inc +++ /dev/null @@ -1,58 +0,0 @@ - .align 2 -gTrainerEyeTrainers:: @ 839AE70 - trainer_eye_trainer ROSE_1, ROSE_2, ROSE_3, ROSE_4, ROSE_5, Route118 - trainer_eye_trainer DUSTY_1, DUSTY_2, DUSTY_3, DUSTY_4, DUSTY_5, Route111 - trainer_eye_trainer LOLA_1, LOLA_2, LOLA_3, LOLA_4, LOLA_5, Route109 - trainer_eye_trainer RICKY_1, RICKY_2, RICKY_3, RICKY_4, RICKY_5, Route109 - trainer_eye_trainer RITA_AND_SAM_1, RITA_AND_SAM_2, RITA_AND_SAM_3, RITA_AND_SAM_4, RITA_AND_SAM_5, Route124 - trainer_eye_trainer BROOKE_1, BROOKE_2, BROOKE_3, BROOKE_4, BROOKE_5, Route111 - trainer_eye_trainer WILTON_1, WILTON_2, WILTON_3, WILTON_4, WILTON_5, Route111 - trainer_eye_trainer VALERIE_1, VALERIE_2, VALERIE_3, VALERIE_4, VALERIE_5, MtPyre_6F - trainer_eye_trainer CINDY_1, CINDY_3, CINDY_4, CINDY_5, CINDY_6, Route104 - trainer_eye_trainer JESSICA_1, JESSICA_2, JESSICA_3, JESSICA_4, JESSICA_5, Route121 - trainer_eye_trainer WINSTON_1, WINSTON_2, WINSTON_3, WINSTON_4, WINSTON_5, Route104 - trainer_eye_trainer STEVE_1, STEVE_2, STEVE_3, STEVE_4, STEVE_5, Route114 - trainer_eye_trainer TONY_1, TONY_2, TONY_3, TONY_4, TONY_5, Route107 - trainer_eye_trainer NOB_1, NOB_2, NOB_3, NOB_4, NOB_5, Route115 - trainer_eye_trainer DALTON_1, DALTON_2, DALTON_3, DALTON_4, DALTON_5, Route118 - trainer_eye_trainer BERNIE_1, BERNIE_2, BERNIE_3, BERNIE_4, BERNIE_5, Route114 - trainer_eye_trainer ETHAN_1, ETHAN_2, ETHAN_3, ETHAN_4, ETHAN_5, JaggedPass - trainer_eye_trainer JOHN_AND_JAY_1, JOHN_AND_JAY_2, JOHN_AND_JAY_3, JOHN_AND_JAY_4, JOHN_AND_JAY_5, MeteorFalls_1F_2R - trainer_eye_trainer BRANDON_1, BRANDON_2, BRANDON_3, BRANDON_4, BRANDON_5, Route120 - trainer_eye_trainer CAMERON_1, CAMERON_2, CAMERON_3, CAMERON_4, CAMERON_5, Route123 - trainer_eye_trainer JACKI_1, JACKI_2, JACKI_3, JACKI_4, JACKI_5, Route123 - trainer_eye_trainer WALTER_1, WALTER_2, WALTER_3, WALTER_4, WALTER_5, Route121 - trainer_eye_trainer KAREN_1, KAREN_2, KAREN_3, KAREN_4, KAREN_5, Route116 - trainer_eye_trainer JERRY_1, JERRY_2, JERRY_3, JERRY_4, JERRY_5, Route116 - trainer_eye_trainer ANNA_AND_MEG_1, ANNA_AND_MEG_2, ANNA_AND_MEG_3, ANNA_AND_MEG_4, ANNA_AND_MEG_5, Route117 - trainer_eye_trainer ISABEL_1, ISABEL_2, ISABEL_3, ISABEL_4, ISABEL_5, Route110 - trainer_eye_trainer MIGUEL_1, MIGUEL_2, MIGUEL_3, MIGUEL_4, MIGUEL_5, Route103 - trainer_eye_trainer TIMOTHY_1, TIMOTHY_2, TIMOTHY_3, TIMOTHY_4, TIMOTHY_5, Route115 - trainer_eye_trainer SHELBY_1, SHELBY_2, SHELBY_3, SHELBY_4, SHELBY_5, MtChimney - trainer_eye_trainer CALVIN_1, CALVIN_2, CALVIN_3, CALVIN_4, CALVIN_5, Route102 - trainer_eye_trainer ELLIOT_1, ELLIOT_2, ELLIOT_3, ELLIOT_4, ELLIOT_5, Route106 - trainer_eye_trainer ABIGAIL_1, ABIGAIL_2, ABIGAIL_3, ABIGAIL_4, ABIGAIL_5, Route110 - trainer_eye_trainer BENJAMIN_1, BENJAMIN_2, BENJAMIN_3, BENJAMIN_4, BENJAMIN_5, Route110 - trainer_eye_trainer ISAIAH_1, ISAIAH_2, ISAIAH_3, ISAIAH_4, ISAIAH_5, Route128 - trainer_eye_trainer KATELYN_1, KATELYN_2, KATELYN_3, KATELYN_4, KATELYN_5, Route128 - trainer_eye_trainer MARIA_1, MARIA_2, MARIA_3, MARIA_4, MARIA_5, Route117 - trainer_eye_trainer DYLAN_1, DYLAN_2, DYLAN_3, DYLAN_4, DYLAN_5, Route117 - trainer_eye_trainer NICOLAS_1, NICOLAS_2, NICOLAS_3, NICOLAS_4, NICOLAS_5, MeteorFalls_1F_2R - trainer_eye_trainer ROBERT_1, ROBERT_2, ROBERT_3, ROBERT_4, ROBERT_5, Route120 - trainer_eye_trainer LAO_1, LAO_2, LAO_3, LAO_4, LAO_5, Route113 - trainer_eye_trainer CYNDY_1, CYNDY_2, CYNDY_3, CYNDY_4, CYNDY_5, Route115 - trainer_eye_trainer MADELINE_1, MADELINE_2, MADELINE_3, MADELINE_4, MADELINE_5, Route113 - trainer_eye_trainer JENNY_1, JENNY_2, JENNY_3, JENNY_4, JENNY_5, Route124 - trainer_eye_trainer DIANA_1, DIANA_2, DIANA_3, DIANA_4, DIANA_5, JaggedPass - trainer_eye_trainer AMY_AND_LIV_1, AMY_AND_LIV_2, AMY_AND_LIV_4, AMY_AND_LIV_5, AMY_AND_LIV_6, Route103 - trainer_eye_trainer ERNEST_1, ERNEST_2, ERNEST_3, ERNEST_4, ERNEST_5, Route125 - trainer_eye_trainer EDWIN_1, EDWIN_2, EDWIN_3, EDWIN_4, EDWIN_5, Route110 - trainer_eye_trainer LYDIA_1, LYDIA_2, LYDIA_3, LYDIA_4, LYDIA_5, Route117 - trainer_eye_trainer ISAAC_1, ISAAC_2, ISAAC_3, ISAAC_4, ISAAC_5, Route117 - trainer_eye_trainer CATHERINE_1, CATHERINE_2, CATHERINE_3, CATHERINE_4, CATHERINE_5, Route119 - trainer_eye_trainer JACKSON_1, JACKSON_2, JACKSON_3, JACKSON_4, JACKSON_5, Route119 - trainer_eye_trainer HALEY_1, HALEY_2, HALEY_3, HALEY_4, HALEY_5, Route104 - trainer_eye_trainer JAMES_1, JAMES_2, JAMES_3, JAMES_4, JAMES_5, PetalburgWoods - trainer_eye_trainer TRENT_1, TRENT_2, TRENT_3, TRENT_4, TRENT_5, Route112 - trainer_eye_trainer LOIS_AND_HAL_1, LOIS_AND_HAL_2, LOIS_AND_HAL_3, LOIS_AND_HAL_4, LOIS_AND_HAL_5, AbandonedShip_Rooms2_1F - trainer_eye_trainer WALLY_3, WALLY_4, WALLY_5, WALLY_6, NONE, VictoryRoad_1F 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/menu.h b/include/menu.h index 0e4860791..c3dcbc969 100644 --- a/include/menu.h +++ b/include/menu.h @@ -58,7 +58,7 @@ void sub_8072B80(u8 *, u8, u8, u8 *); void sub_8072BD8(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_8072C74(u8 *, const u8 *, u8, u8); u8 sub_8072CA4(u8 *s); u8 sub_8072CBC(void); void sub_8072CD4(u8 *, u8 *, u8 *); 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/sprite.h b/include/sprite.h index 7a2dd8494..2725d0bab 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -45,6 +45,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,8 +56,8 @@ union AnimCmd struct AnimJumpCmd jump; }; -#define ANIMCMD_FRAME(_imageValue, _duration) \ - {.frame = {.imageValue = _imageValue, .duration = _duration}} +#define ANIMCMD_FRAME(...) \ + {.frame = {__VA_ARGS__}} #define ANIMCMD_JUMP(_target) \ {.jump = {.type = -2, .target = _target}} #define ANIMCMD_END \ @@ -68,11 +71,6 @@ struct AffineAnimFrameCmd u8 duration; }; -#define AFFINEANIMCMD_FRAME(_xScale, _yScale, _rotation, _duration) \ - {.frame = {.xScale = _xScale, .yScale = _yScale, .rotation = _rotation, .duration = _duration}} -#define AFFINEANIMCMD_END \ - {.type = 0x7FFF} - struct AffineAnimLoopCmd { s16 type; @@ -93,6 +91,11 @@ union AffineAnimCmd struct AffineAnimJumpCmd jump; }; +#define AFFINEANIMCMD_FRAME(_xScale, _yScale, _rotation, _duration) \ + {.frame = {.xScale = _xScale, .yScale = _yScale, .rotation = _rotation, .duration = _duration}} +#define AFFINEANIMCMD_END \ + {.type = 0x7FFF} + struct AffineAnimState { u8 animNum; diff --git a/include/starter_choose.h b/include/starter_choose.h index 4a7e0514c..008d1b14e 100644 --- a/include/starter_choose.h +++ b/include/starter_choose.h @@ -5,9 +5,5 @@ 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/ld_script.txt b/ld_script.txt index e6dba7e53..063f030d7 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -341,6 +341,7 @@ SECTIONS { data/title_screen.o(.rodata); data/weather.o(.rodata); data/rom_8080874.o(.rodata); + src/battle_setup.o(.rodata); data/battle_setup.o(.rodata); data/cable_club.o(.rodata); data/mori_debug_menu.o(.rodata); @@ -387,16 +388,15 @@ SECTIONS { data/mauville_old_man.o(.rodata); data/mail.o(.rodata); data/menu_helpers.o(.rodata); - data/heal_location.o(.rodata); + src/heal_location.o(.rodata); data/region_map.o(.rodata); data/cute_sketch.o(.rodata); data/decoration.o(.rodata); data/slot_machine.o(.rodata); - data/contest_painting.o(.rodata); + src/contest_painting.o(.rodata); src/battle_ai.o(.rodata); data/trader.o(.rodata); src/starter_choose.o(.rodata); - data/starter_choose.o(.rodata); src/wallclock.o(.rodata); data/pokeblock.o(.rodata); data/rom_810CBB4.o(.rodata); @@ -416,7 +416,6 @@ SECTIONS { data/rom_81258BC.o(.rodata); data/player_pc.o(.rodata); src/intro.o(.rodata); - data/intro.o(.rodata); data/battle_anim_813F0F4.o(.rodata); data/hall_of_fame.o(.rodata); src/credits.o(.rodata); diff --git a/src/battle_setup.c b/src/battle_setup.c index 6d3e6a215..858b6cca1 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -21,6 +21,8 @@ #include "text.h" #include "trainer.h" #include "weather.h" +#include "map_constants.h" +#include "opponent_constants.h" #define NUM_TRAINER_EYE_TRAINERS 56 #define TRAINER_REMATCH_STEPS 255 @@ -92,14 +94,11 @@ EWRAM_DATA u8 *gTrainerCannotBattleSpeech = NULL; EWRAM_DATA u8 *gTrainerBattleScriptReturnAddress = NULL; EWRAM_DATA u8 *gTrainerBattleEndScript = NULL; -extern struct TrainerEyeTrainer gTrainerEyeTrainers[]; - extern u8 gOtherText_CancelWithTerminator[]; extern u16 gBattleTypeFlags; extern u16 gScriptLastTalked; extern u8 gUnknown_02024D26; -extern u16 gBadgeFlags[]; extern struct MapObject gMapObjects[]; @@ -112,14 +111,367 @@ extern u8 gUnknown_0819F8AE[]; extern u8 gUnknown_0819F80B[]; extern u8 gUnknown_081C6C02[]; -extern struct TrainerBattleSpec gTrainerBattleSpecs_0[]; -extern struct TrainerBattleSpec gTrainerBattleSpecs_1[]; -extern struct TrainerBattleSpec gTrainerBattleSpecs_2[]; -extern struct TrainerBattleSpec gTrainerBattleSpecs_3[]; -extern struct TrainerBattleSpec gTrainerBattleSpecs_4[]; -extern u8 gBattleTransitionTable_Wild[][2]; -extern u8 gBattleTransitionTable_Trainer[][2]; +static const u8 gBattleTransitionTable_Wild[][2] = +{ + {8, 9}, + {5, 10}, + {0, 10}, + {7, 6}, +}; +static const u8 gBattleTransitionTable_Trainer[][2] = +{ + {4, 11}, + {2, 3}, + {0, 10}, + {1, 6}, +}; +static const struct TrainerBattleSpec gTrainerBattleSpecs_0[] = +{ + {&gTrainerBattleMode, 0}, + {&gTrainerBattleOpponent, 1}, + {&gTrainerMapObjectLocalId, 1}, + {&gTrainerIntroSpeech, 2}, + {&gTrainerDefeatSpeech, 2}, + {&gTrainerVictorySpeech, 5}, + {&gTrainerCannotBattleSpeech, 5}, + {&gTrainerBattleEndScript, 5}, + {&gTrainerBattleScriptReturnAddress, 6}, +}; +static const struct TrainerBattleSpec gTrainerBattleSpecs_1[] = +{ + {&gTrainerBattleMode, 0}, + {&gTrainerBattleOpponent, 1}, + {&gTrainerMapObjectLocalId, 1}, + {&gTrainerIntroSpeech, 2}, + {&gTrainerDefeatSpeech, 2}, + {&gTrainerVictorySpeech, 5}, + {&gTrainerCannotBattleSpeech, 5}, + {&gTrainerBattleEndScript, 2}, + {&gTrainerBattleScriptReturnAddress, 6}, +}; +static const struct TrainerBattleSpec gTrainerBattleSpecs_2[] = +{ + {&gTrainerBattleMode, 0}, + {&gTrainerBattleOpponent, 1}, + {&gTrainerMapObjectLocalId, 1}, + {&gTrainerIntroSpeech, 2}, + {&gTrainerDefeatSpeech, 2}, + {&gTrainerVictorySpeech, 5}, + {&gTrainerCannotBattleSpeech, 2}, + {&gTrainerBattleEndScript, 5}, + {&gTrainerBattleScriptReturnAddress, 6}, +}; +static const struct TrainerBattleSpec gTrainerBattleSpecs_3[] = +{ + {&gTrainerBattleMode, 0}, + {&gTrainerBattleOpponent, 1}, + {&gTrainerMapObjectLocalId, 1}, + {&gTrainerIntroSpeech, 5}, + {&gTrainerDefeatSpeech, 2}, + {&gTrainerVictorySpeech, 5}, + {&gTrainerCannotBattleSpeech, 5}, + {&gTrainerBattleEndScript, 5}, + {&gTrainerBattleScriptReturnAddress, 6}, +}; +static const struct TrainerBattleSpec gTrainerBattleSpecs_4[] = +{ + {&gTrainerBattleMode, 0}, + {&gTrainerBattleOpponent, 1}, + {&gTrainerMapObjectLocalId, 1}, + {&gTrainerIntroSpeech, 2}, + {&gTrainerDefeatSpeech, 2}, + {&gTrainerVictorySpeech, 5}, + {&gTrainerCannotBattleSpeech, 2}, + {&gTrainerBattleEndScript, 2}, + {&gTrainerBattleScriptReturnAddress, 6}, +}; + +const struct TrainerEyeTrainer gTrainerEyeTrainers[] = +{ + { + {OPPONENT_ROSE_1, OPPONENT_ROSE_2, OPPONENT_ROSE_3, OPPONENT_ROSE_4, OPPONENT_ROSE_5}, + MAP_GROUP_ROUTE118, + MAP_ID_ROUTE118, + }, + { + {OPPONENT_DUSTY_1, OPPONENT_DUSTY_2, OPPONENT_DUSTY_3, OPPONENT_DUSTY_4, OPPONENT_DUSTY_5}, + MAP_GROUP_ROUTE111, + MAP_ID_ROUTE111, + }, + { + {OPPONENT_LOLA_1, OPPONENT_LOLA_2, OPPONENT_LOLA_3, OPPONENT_LOLA_4, OPPONENT_LOLA_5}, + MAP_GROUP_ROUTE109, + MAP_ID_ROUTE109, + }, + { + {OPPONENT_RICKY_1, OPPONENT_RICKY_2, OPPONENT_RICKY_3, OPPONENT_RICKY_4, OPPONENT_RICKY_5}, + MAP_GROUP_ROUTE109, + MAP_ID_ROUTE109, + }, + { + {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}, + MAP_GROUP_ROUTE124, + MAP_ID_ROUTE124, + }, + { + {OPPONENT_BROOKE_1, OPPONENT_BROOKE_2, OPPONENT_BROOKE_3, OPPONENT_BROOKE_4, OPPONENT_BROOKE_5}, + MAP_GROUP_ROUTE111, + MAP_ID_ROUTE111, + }, + { + {OPPONENT_WILTON_1, OPPONENT_WILTON_2, OPPONENT_WILTON_3, OPPONENT_WILTON_4, OPPONENT_WILTON_5}, + MAP_GROUP_ROUTE111, + MAP_ID_ROUTE111, + }, + { + {OPPONENT_VALERIE_1, OPPONENT_VALERIE_2, OPPONENT_VALERIE_3, OPPONENT_VALERIE_4, OPPONENT_VALERIE_5}, + MAP_GROUP_MT_PYRE_6F, + MAP_ID_MT_PYRE_6F, + }, + { + {OPPONENT_CINDY_1, OPPONENT_CINDY_3, OPPONENT_CINDY_4, OPPONENT_CINDY_5, OPPONENT_CINDY_6}, + MAP_GROUP_ROUTE104, + MAP_ID_ROUTE104, + }, + { + {OPPONENT_JESSICA_1, OPPONENT_JESSICA_2, OPPONENT_JESSICA_3, OPPONENT_JESSICA_4, OPPONENT_JESSICA_5}, + MAP_GROUP_ROUTE121, + MAP_ID_ROUTE121, + }, + { + {OPPONENT_WINSTON_1, OPPONENT_WINSTON_2, OPPONENT_WINSTON_3, OPPONENT_WINSTON_4, OPPONENT_WINSTON_5}, + MAP_GROUP_ROUTE104, + MAP_ID_ROUTE104, + }, + { + {OPPONENT_STEVE_1, OPPONENT_STEVE_2, OPPONENT_STEVE_3, OPPONENT_STEVE_4, OPPONENT_STEVE_5}, + MAP_GROUP_ROUTE114, + MAP_ID_ROUTE114, + }, + { + {OPPONENT_TONY_1, OPPONENT_TONY_2, OPPONENT_TONY_3, OPPONENT_TONY_4, OPPONENT_TONY_5}, + MAP_GROUP_ROUTE107, + MAP_ID_ROUTE107, + }, + { + {OPPONENT_NOB_1, OPPONENT_NOB_2, OPPONENT_NOB_3, OPPONENT_NOB_4, OPPONENT_NOB_5}, + MAP_GROUP_ROUTE115, + MAP_ID_ROUTE115, + }, + { + {OPPONENT_DALTON_1, OPPONENT_DALTON_2, OPPONENT_DALTON_3, OPPONENT_DALTON_4, OPPONENT_DALTON_5}, + MAP_GROUP_ROUTE118, + MAP_ID_ROUTE118, + }, + { + {OPPONENT_BERNIE_1, OPPONENT_BERNIE_2, OPPONENT_BERNIE_3, OPPONENT_BERNIE_4, OPPONENT_BERNIE_5}, + MAP_GROUP_ROUTE114, + MAP_ID_ROUTE114, + }, + { + {OPPONENT_ETHAN_1, OPPONENT_ETHAN_2, OPPONENT_ETHAN_3, OPPONENT_ETHAN_4, OPPONENT_ETHAN_5}, + MAP_GROUP_JAGGED_PASS, + MAP_ID_JAGGED_PASS, + }, + { + {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}, + MAP_GROUP_METEOR_FALLS_1F_2R, + MAP_ID_METEOR_FALLS_1F_2R, + }, + { + {OPPONENT_BRANDON_1, OPPONENT_BRANDON_2, OPPONENT_BRANDON_3, OPPONENT_BRANDON_4, OPPONENT_BRANDON_5}, + MAP_GROUP_ROUTE120, + MAP_ID_ROUTE120, + }, + { + {OPPONENT_CAMERON_1, OPPONENT_CAMERON_2, OPPONENT_CAMERON_3, OPPONENT_CAMERON_4, OPPONENT_CAMERON_5}, + MAP_GROUP_ROUTE123, + MAP_ID_ROUTE123, + }, + { + {OPPONENT_JACKI_1, OPPONENT_JACKI_2, OPPONENT_JACKI_3, OPPONENT_JACKI_4, OPPONENT_JACKI_5}, + MAP_GROUP_ROUTE123, + MAP_ID_ROUTE123, + }, + { + {OPPONENT_WALTER_1, OPPONENT_WALTER_2, OPPONENT_WALTER_3, OPPONENT_WALTER_4, OPPONENT_WALTER_5}, + MAP_GROUP_ROUTE121, + MAP_ID_ROUTE121, + }, + { + {OPPONENT_KAREN_1, OPPONENT_KAREN_2, OPPONENT_KAREN_3, OPPONENT_KAREN_4, OPPONENT_KAREN_5}, + MAP_GROUP_ROUTE116, + MAP_ID_ROUTE116, + }, + { + {OPPONENT_JERRY_1, OPPONENT_JERRY_2, OPPONENT_JERRY_3, OPPONENT_JERRY_4, OPPONENT_JERRY_5}, + MAP_GROUP_ROUTE116, + MAP_ID_ROUTE116, + }, + { + {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}, + MAP_GROUP_ROUTE117, + MAP_ID_ROUTE117, + }, + { + {OPPONENT_ISABEL_1, OPPONENT_ISABEL_2, OPPONENT_ISABEL_3, OPPONENT_ISABEL_4, OPPONENT_ISABEL_5}, + MAP_GROUP_ROUTE110, + MAP_ID_ROUTE110, + }, + { + {OPPONENT_MIGUEL_1, OPPONENT_MIGUEL_2, OPPONENT_MIGUEL_3, OPPONENT_MIGUEL_4, OPPONENT_MIGUEL_5}, + MAP_GROUP_ROUTE103, + MAP_ID_ROUTE103, + }, + { + {OPPONENT_TIMOTHY_1, OPPONENT_TIMOTHY_2, OPPONENT_TIMOTHY_3, OPPONENT_TIMOTHY_4, OPPONENT_TIMOTHY_5}, + MAP_GROUP_ROUTE115, + MAP_ID_ROUTE115, + }, + { + {OPPONENT_SHELBY_1, OPPONENT_SHELBY_2, OPPONENT_SHELBY_3, OPPONENT_SHELBY_4, OPPONENT_SHELBY_5}, + MAP_GROUP_MT_CHIMNEY, + MAP_ID_MT_CHIMNEY, + }, + { + {OPPONENT_CALVIN_1, OPPONENT_CALVIN_2, OPPONENT_CALVIN_3, OPPONENT_CALVIN_4, OPPONENT_CALVIN_5}, + MAP_GROUP_ROUTE102, + MAP_ID_ROUTE102, + }, + { + {OPPONENT_ELLIOT_1, OPPONENT_ELLIOT_2, OPPONENT_ELLIOT_3, OPPONENT_ELLIOT_4, OPPONENT_ELLIOT_5}, + MAP_GROUP_ROUTE106, + MAP_ID_ROUTE106, + }, + { + {OPPONENT_ABIGAIL_1, OPPONENT_ABIGAIL_2, OPPONENT_ABIGAIL_3, OPPONENT_ABIGAIL_4, OPPONENT_ABIGAIL_5}, + MAP_GROUP_ROUTE110, + MAP_ID_ROUTE110, + }, + { + {OPPONENT_BENJAMIN_1, OPPONENT_BENJAMIN_2, OPPONENT_BENJAMIN_3, OPPONENT_BENJAMIN_4, OPPONENT_BENJAMIN_5}, + MAP_GROUP_ROUTE110, + MAP_ID_ROUTE110, + }, + { + {OPPONENT_ISAIAH_1, OPPONENT_ISAIAH_2, OPPONENT_ISAIAH_3, OPPONENT_ISAIAH_4, OPPONENT_ISAIAH_5}, + MAP_GROUP_ROUTE128, + MAP_ID_ROUTE128, + }, + { + {OPPONENT_KATELYN_1, OPPONENT_KATELYN_2, OPPONENT_KATELYN_3, OPPONENT_KATELYN_4, OPPONENT_KATELYN_5}, + MAP_GROUP_ROUTE128, + MAP_ID_ROUTE128, + }, + { + {OPPONENT_MARIA_1, OPPONENT_MARIA_2, OPPONENT_MARIA_3, OPPONENT_MARIA_4, OPPONENT_MARIA_5}, + MAP_GROUP_ROUTE117, + MAP_ID_ROUTE117, + }, + { + {OPPONENT_DYLAN_1, OPPONENT_DYLAN_2, OPPONENT_DYLAN_3, OPPONENT_DYLAN_4, OPPONENT_DYLAN_5}, + MAP_GROUP_ROUTE117, + MAP_ID_ROUTE117, + }, + { + {OPPONENT_NICOLAS_1, OPPONENT_NICOLAS_2, OPPONENT_NICOLAS_3, OPPONENT_NICOLAS_4, OPPONENT_NICOLAS_5}, + MAP_GROUP_METEOR_FALLS_1F_2R, + MAP_ID_METEOR_FALLS_1F_2R, + }, + { + {OPPONENT_ROBERT_1, OPPONENT_ROBERT_2, OPPONENT_ROBERT_3, OPPONENT_ROBERT_4, OPPONENT_ROBERT_5}, + MAP_GROUP_ROUTE120, + MAP_ID_ROUTE120, + }, + { + {OPPONENT_LAO_1, OPPONENT_LAO_2, OPPONENT_LAO_3, OPPONENT_LAO_4, OPPONENT_LAO_5}, + MAP_GROUP_ROUTE113, + MAP_ID_ROUTE113, + }, + { + {OPPONENT_CYNDY_1, OPPONENT_CYNDY_2, OPPONENT_CYNDY_3, OPPONENT_CYNDY_4, OPPONENT_CYNDY_5}, + MAP_GROUP_ROUTE115, + MAP_ID_ROUTE115, + }, + { + {OPPONENT_MADELINE_1, OPPONENT_MADELINE_2, OPPONENT_MADELINE_3, OPPONENT_MADELINE_4, OPPONENT_MADELINE_5}, + MAP_GROUP_ROUTE113, + MAP_ID_ROUTE113, + }, + { + {OPPONENT_JENNY_1, OPPONENT_JENNY_2, OPPONENT_JENNY_3, OPPONENT_JENNY_4, OPPONENT_JENNY_5}, + MAP_GROUP_ROUTE124, + MAP_ID_ROUTE124, + }, + { + {OPPONENT_DIANA_1, OPPONENT_DIANA_2, OPPONENT_DIANA_3, OPPONENT_DIANA_4, OPPONENT_DIANA_5}, + MAP_GROUP_JAGGED_PASS, + MAP_ID_JAGGED_PASS, + }, + { + {OPPONENT_AMY_AND_LIV_1, OPPONENT_AMY_AND_LIV_2, OPPONENT_AMY_AND_LIV_4, OPPONENT_AMY_AND_LIV_5, OPPONENT_AMY_AND_LIV_6}, + MAP_GROUP_ROUTE103, + MAP_ID_ROUTE103, + }, + { + {OPPONENT_ERNEST_1, OPPONENT_ERNEST_2, OPPONENT_ERNEST_3, OPPONENT_ERNEST_4, OPPONENT_ERNEST_5}, + MAP_GROUP_ROUTE125, + MAP_ID_ROUTE125, + }, + { + {OPPONENT_EDWIN_1, OPPONENT_EDWIN_2, OPPONENT_EDWIN_3, OPPONENT_EDWIN_4, OPPONENT_EDWIN_5}, + MAP_GROUP_ROUTE110, + MAP_ID_ROUTE110, + }, + { + {OPPONENT_LYDIA_1, OPPONENT_LYDIA_2, OPPONENT_LYDIA_3, OPPONENT_LYDIA_4, OPPONENT_LYDIA_5}, + MAP_GROUP_ROUTE117, + MAP_ID_ROUTE117, + }, + { + {OPPONENT_ISAAC_1, OPPONENT_ISAAC_2, OPPONENT_ISAAC_3, OPPONENT_ISAAC_4, OPPONENT_ISAAC_5}, + MAP_GROUP_ROUTE117, + MAP_ID_ROUTE117, + }, + { + {OPPONENT_CATHERINE_1, OPPONENT_CATHERINE_2, OPPONENT_CATHERINE_3, OPPONENT_CATHERINE_4, OPPONENT_CATHERINE_5}, + MAP_GROUP_ROUTE119, + MAP_ID_ROUTE119, + }, + { + {OPPONENT_JACKSON_1, OPPONENT_JACKSON_2, OPPONENT_JACKSON_3, OPPONENT_JACKSON_4, OPPONENT_JACKSON_5}, + MAP_GROUP_ROUTE119, + MAP_ID_ROUTE119, + }, + { + {OPPONENT_HALEY_1, OPPONENT_HALEY_2, OPPONENT_HALEY_3, OPPONENT_HALEY_4, OPPONENT_HALEY_5}, + MAP_GROUP_ROUTE104, + MAP_ID_ROUTE104, + }, + { + {OPPONENT_JAMES_1, OPPONENT_JAMES_2, OPPONENT_JAMES_3, OPPONENT_JAMES_4, OPPONENT_JAMES_5}, + MAP_GROUP_PETALBURG_WOODS, + MAP_ID_PETALBURG_WOODS, + }, + { + {OPPONENT_TRENT_1, OPPONENT_TRENT_2, OPPONENT_TRENT_3, OPPONENT_TRENT_4, OPPONENT_TRENT_5}, + MAP_GROUP_ROUTE112, + MAP_ID_ROUTE112, + }, + { + {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}, + MAP_GROUP_ABANDONED_SHIP_ROOMS2_1F, + MAP_ID_ABANDONED_SHIP_ROOMS2_1F, + }, + { + {OPPONENT_WALLY_3, OPPONENT_WALLY_4, OPPONENT_WALLY_5, OPPONENT_WALLY_6, OPPONENT_NONE}, + MAP_GROUP_VICTORY_ROAD_1F, + MAP_ID_VICTORY_ROAD_1F, + }, +}; + +static const u16 sBadgeFlags[] = {BADGE01_GET, BADGE02_GET, BADGE03_GET, BADGE04_GET, BADGE05_GET, BADGE06_GET, BADGE07_GET, BADGE08_GET}; void task01_battle_start(u8 taskId) { @@ -592,7 +944,7 @@ void sub_80822BC(void) gTrainerBattleEndScript = 0; } -void TrainerBattleLoadArgs(struct TrainerBattleSpec *specs, u8 *data) +void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, u8 *data) { while (1) { @@ -902,7 +1254,7 @@ u8 *sub_8082880(void) return SanitizeString(gTrainerCannotBattleSpeech); } -s32 sub_8082894(struct TrainerEyeTrainer *trainers, u16 trainerNum) +s32 sub_8082894(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { s32 i; @@ -914,7 +1266,7 @@ s32 sub_8082894(struct TrainerEyeTrainer *trainers, u16 trainerNum) return -1; } -s32 sub_80828B8(struct TrainerEyeTrainer *trainers, u16 trainerNum) +s32 sub_80828B8(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { s32 i; s32 j; @@ -930,7 +1282,7 @@ s32 sub_80828B8(struct TrainerEyeTrainer *trainers, u16 trainerNum) return -1; } -bool32 sub_80828FC(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) +bool32 sub_80828FC(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) { int i; bool32 ret = FALSE; @@ -955,7 +1307,7 @@ bool32 sub_80828FC(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) return ret; } -s32 sub_80829A8(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) +s32 sub_80829A8(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) { s32 i; @@ -967,7 +1319,7 @@ s32 sub_80829A8(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) return 0; } -s32 sub_80829E8(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) +s32 sub_80829E8(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) { s32 i; @@ -979,7 +1331,7 @@ s32 sub_80829E8(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) return 0; } -bool8 sub_8082A18(struct TrainerEyeTrainer *trainers, u16 trainerNum) +bool8 sub_8082A18(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { s32 trainerEyeIndex = sub_8082894(trainers, trainerNum); @@ -989,7 +1341,7 @@ bool8 sub_8082A18(struct TrainerEyeTrainer *trainers, u16 trainerNum) return FALSE; } -bool8 sub_8082A54(struct TrainerEyeTrainer *trainers, u16 trainerNum) +bool8 sub_8082A54(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { s32 trainerEyeIndex = sub_80828B8(trainers, trainerNum); @@ -999,10 +1351,10 @@ bool8 sub_8082A54(struct TrainerEyeTrainer *trainers, u16 trainerNum) return FALSE; } -u16 sub_8082A90(struct TrainerEyeTrainer *trainers, u16 trainerNum) +u16 sub_8082A90(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { int i; - struct TrainerEyeTrainer *trainer; + const struct TrainerEyeTrainer *trainer; s32 trainerEyeIndex = sub_8082894(trainers, trainerNum); if (trainerEyeIndex == -1) @@ -1018,7 +1370,7 @@ u16 sub_8082A90(struct TrainerEyeTrainer *trainers, u16 trainerNum) return trainer->trainerNums[4]; } -void sub_8082AE4(struct TrainerEyeTrainer *trainers, u16 trainerNum) +void sub_8082AE4(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { s32 trainerEyeIndex = sub_80828B8(trainers, trainerNum); @@ -1026,7 +1378,7 @@ void sub_8082AE4(struct TrainerEyeTrainer *trainers, u16 trainerNum) gSaveBlock1.trainerRematches[trainerEyeIndex] = 0; } -bool8 sub_8082B10(struct TrainerEyeTrainer *trainers, u16 trainerNum) +bool8 sub_8082B10(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { s32 trainerEyeIndex = sub_8082894(trainers, trainerNum); @@ -1043,7 +1395,7 @@ bool32 sub_8082B44(void) for (i = 0; i < 8; i++) { - if (FlagGet(gBadgeFlags[i]) == TRUE) + if (FlagGet(sBadgeFlags[i]) == TRUE) { badgeCount++; if (badgeCount >= 5) diff --git a/src/contest_painting.c b/src/contest_painting.c index b77041f41..5dbc50791 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -56,8 +56,8 @@ struct Unk3000756 struct LabelPair { - u8 (*prefix)[]; - u8 (*suffix)[]; + const u8 *prefix; + const u8 *suffix; }; struct Unk03005E20 @@ -97,32 +97,112 @@ extern const struct SpriteSheet gMonFrontPicTable[]; extern const struct MonCoords gMonFrontPicCoords[]; extern const struct SpriteSheet gMonBackPicTable[]; extern const struct MonCoords gMonBackPicCoords[]; - extern void *gUnknown_081FAF4C[]; - -extern u16 gPictureFramePalettes[]; - -extern u8 gPictureFrameTiles_0[]; -extern u8 gPictureFrameTiles_1[]; -extern u8 gPictureFrameTiles_2[]; -extern u8 gPictureFrameTiles_3[]; -extern u8 gPictureFrameTiles_4[]; -extern u8 gPictureFrameTiles_5[]; - -extern u8 gPictureFrameTilemap_0[]; -extern u8 gPictureFrameTilemap_1[]; -extern u8 gPictureFrameTilemap_2[]; -extern u8 gPictureFrameTilemap_3[]; -extern u8 gPictureFrameTilemap_4[]; -extern u8 gPictureFrameTilemap_5[]; - -extern u8 *gUnknown_083F60AC[]; -extern struct LabelPair gUnknown_083F60C0[]; -extern struct OamData gOamData_83F6138; -extern u16 gUnknown_083F6140[]; - -extern u8 gContestText_ContestWinner[]; -extern 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_DazzlingSlime[]; +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 gContestText_ContestWinner[]; +extern const u8 gOtherText_Unknown1[]; + +static const u16 gPictureFramePalettes[][16] = +{ + INCBIN_U16("graphics/picture_frame/bg0.gbapal"), + INCBIN_U16("graphics/picture_frame/bg1.gbapal"), + INCBIN_U16("graphics/picture_frame/bg2.gbapal"), + INCBIN_U16("graphics/picture_frame/bg3.gbapal"), + INCBIN_U16("graphics/picture_frame/bg4.gbapal"), + INCBIN_U16("graphics/picture_frame/bg5.gbapal"), + {0}, + {0}, +}; +const u8 emptySpace[8 * 32] = {0}; +const u8 gPictureFrameTiles_0[] = INCBIN_U8("graphics/picture_frame/frame0.4bpp.rl"); +const u8 gPictureFrameTiles_1[] = INCBIN_U8("graphics/picture_frame/frame1.4bpp.rl"); +const u8 gPictureFrameTiles_2[] = INCBIN_U8("graphics/picture_frame/frame2.4bpp.rl"); +const u8 gPictureFrameTiles_3[] = INCBIN_U8("graphics/picture_frame/frame3.4bpp.rl"); +const u8 gPictureFrameTiles_4[] = INCBIN_U8("graphics/picture_frame/frame4.4bpp.rl"); +const u8 gPictureFrameTiles_5[] = INCBIN_U8("graphics/picture_frame/frame5.4bpp.rl"); +const u8 gPictureFrameTilemap_0[] = INCBIN_U8("graphics/picture_frame/frame0_map.bin.rl"); +const u8 gPictureFrameTilemap_1[] = INCBIN_U8("graphics/picture_frame/frame1_map.bin.rl"); +const u8 gPictureFrameTilemap_2[] = INCBIN_U8("graphics/picture_frame/frame2_map.bin.rl"); +const u8 gPictureFrameTilemap_3[] = INCBIN_U8("graphics/picture_frame/frame3_map.bin.rl"); +const u8 gPictureFrameTilemap_4[] = INCBIN_U8("graphics/picture_frame/frame4_map.bin.rl"); +const u8 gPictureFrameTilemap_5[] = INCBIN_U8("graphics/picture_frame/frame5_map.bin.rl"); +const u8 *const gUnknown_083F60AC[] = +{ + OtherText_Cool, + OtherText_Beauty2, + OtherText_Cute, + OtherText_Smart, + OtherText_Tough, +}; +const struct LabelPair gUnknown_083F60C0[] = +{ + {OtherText_NonstopSuperCool, OtherText_Terminator6}, + {OtherText_GoodLookingPoke, OtherText_Terminator7}, + {OtherText_MarvelousGreat, OtherText_Terminator8}, + {OtherText_CenturyLastVenus, OtherText_Terminator9}, + {OtherText_Terminator10, OtherText_DazzlingSlime}, + {OtherText_PokeCenterIdol, OtherText_Terminator11}, + {OtherText_LovelyAndSweet, OtherText_Terminator12}, + {OtherText_ThePretty, OtherText_WinningPortrait}, + {OtherText_GiveUsWink, OtherText_Terminator13}, + {OtherText_SmartnessMaestro, OtherText_Terminator15}, + {OtherText_ChosenPokeAmong, OtherText_Terminator15}, + {OtherText_TheExcellent, OtherText_ItsMomentOfElegance}, + {OtherText_PowerfullyMuscular, OtherText_Terminator16}, + {OtherText_StrongErEst, OtherText_Terminator17}, + {OtherText_MightyTough, OtherText_Exclamation}, +}; +const struct OamData gOamData_83F6138 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 1, + .bpp = 1, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +const u16 gUnknown_083F6140[] = {0, 0}; static void ShowContestPainting(); static void CB2_HoldContestPainting(void); @@ -312,9 +392,9 @@ static void ContestPaintingPrintCaption(u8 contestType, u8 arg1) } else { - ptr = StringCopy(ptr, *gUnknown_083F60C0[type].prefix); + ptr = StringCopy(ptr, gUnknown_083F60C0[type].prefix); ptr = StringCopy10(ptr, gUnknown_03005E8C->pokemon_name); - ptr = StringCopy(ptr, *gUnknown_083F60C0[type].suffix); + ptr = StringCopy(ptr, gUnknown_083F60C0[type].suffix); xPos = 3; yPos = 14; @@ -656,7 +736,7 @@ static void sub_8106C40(u8 arg0, u8 arg1) { u8 x, y; - LoadPalette(gPictureFramePalettes, 0, 128 * 2); + LoadPalette(gPictureFramePalettes, 0, sizeof(gPictureFramePalettes)); if (arg1 == 1) { switch (gUnknown_03005E8C->contestType / 3) diff --git a/src/heal_location.c b/src/heal_location.c index a780ee470..42bc18567 100644 --- a/src/heal_location.c +++ b/src/heal_location.c @@ -1,9 +1,34 @@ #include "global.h" #include "heal_location.h" +#include "map_constants.h" #define NUM_HEAL_LOCATIONS 22 -extern const struct HealLocation gHealLocations[]; +static const struct HealLocation sHealLocations[] = +{ + {MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 4, 2}, + {MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_2F, MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_2F, 4, 2}, + {MAP_GROUP_PETALBURG_CITY, MAP_ID_PETALBURG_CITY, 20, 17}, + {MAP_GROUP_SLATEPORT_CITY, MAP_ID_SLATEPORT_CITY, 19, 20}, + {MAP_GROUP_MAUVILLE_CITY, MAP_ID_MAUVILLE_CITY, 22, 6}, + {MAP_GROUP_RUSTBORO_CITY, MAP_ID_RUSTBORO_CITY, 16, 39}, + {MAP_GROUP_FORTREE_CITY, MAP_ID_FORTREE_CITY, 5, 7}, + {MAP_GROUP_LILYCOVE_CITY, MAP_ID_LILYCOVE_CITY, 24, 15}, + {MAP_GROUP_MOSSDEEP_CITY, MAP_ID_MOSSDEEP_CITY, 28, 17}, + {MAP_GROUP_SOOTOPOLIS_CITY, MAP_ID_SOOTOPOLIS_CITY, 43, 32}, + {MAP_GROUP_EVER_GRANDE_CITY, MAP_ID_EVER_GRANDE_CITY, 27, 49}, + {MAP_GROUP_LITTLEROOT_TOWN, MAP_ID_LITTLEROOT_TOWN, 5, 9}, + {MAP_GROUP_LITTLEROOT_TOWN, MAP_ID_LITTLEROOT_TOWN, 14, 9}, + {MAP_GROUP_OLDALE_TOWN, MAP_ID_OLDALE_TOWN, 6, 17}, + {MAP_GROUP_DEWFORD_TOWN, MAP_ID_DEWFORD_TOWN, 2, 11}, + {MAP_GROUP_LAVARIDGE_TOWN, MAP_ID_LAVARIDGE_TOWN, 9, 7}, + {MAP_GROUP_FALLARBOR_TOWN, MAP_ID_FALLARBOR_TOWN, 14, 8}, + {MAP_GROUP_VERDANTURF_TOWN, MAP_ID_VERDANTURF_TOWN, 16, 4}, + {MAP_GROUP_PACIFIDLOG_TOWN, MAP_ID_PACIFIDLOG_TOWN, 8, 16}, + {MAP_GROUP_EVER_GRANDE_CITY, MAP_ID_EVER_GRANDE_CITY, 18, 6}, + {MAP_GROUP_BATTLE_TOWER_OUTSIDE, MAP_ID_BATTLE_TOWER_OUTSIDE, 14, 9}, + {MAP_GROUP_SOUTHERN_ISLAND_EXTERIOR, MAP_ID_SOUTHERN_ISLAND_EXTERIOR, 15, 20}, +}; u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum) { @@ -11,7 +36,7 @@ u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum) for (i = 0; i < NUM_HEAL_LOCATIONS; i++) { - if (gHealLocations[i].group == mapGroup && gHealLocations[i].map == mapNum) + if (sHealLocations[i].group == mapGroup && sHealLocations[i].map == mapNum) return i + 1; } return 0; @@ -24,7 +49,7 @@ const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum) if (index == 0) return NULL; else - return &gHealLocations[index - 1]; + return &sHealLocations[index - 1]; } const struct HealLocation *GetHealLocation(u32 index) @@ -34,5 +59,5 @@ const struct HealLocation *GetHealLocation(u32 index) else if (index > NUM_HEAL_LOCATIONS) return NULL; else - return &gHealLocations[index - 1]; + return &sHealLocations[index - 1]; } diff --git a/src/intro.c b/src/intro.c index a2adbe0f5..de4234271 100644 --- a/src/intro.c +++ b/src/intro.c @@ -33,7 +33,6 @@ extern u16 gUnknown_02039318; extern u16 gUnknown_0203931A; extern u16 gUnknown_02039358; extern u16 gUnknown_0203935A; - extern u32 gIntroFrameCounter; extern struct GcmbStruct gUnknown_03005EE0; extern u16 gSaveFileStatus; @@ -45,53 +44,28 @@ extern struct MonCoords gMonBackPicCoords[]; extern struct SpriteSheet gTrainerBackPicTable[]; extern struct MonCoords gTrainerBackPicCoords[]; extern struct SpritePalette gTrainerBackPicPaletteTable[]; - -extern const union AnimCmd *const gUnknown_0840AE80[]; -extern const struct SpriteTemplate gSpriteTemplate_840AFF0; -extern const struct SpritePalette gUnknown_0840B028[]; -extern const struct SpriteTemplate gSpriteTemplate_840B1F4; -extern const struct SpriteSheet gIntro3PokeballGfx_Table; -extern const struct SpriteSheet gIntro3MiscGfx_Table; -extern const struct SpritePalette gInterfacePokeballPal_Table; -extern const struct SpritePalette gIntro3MiscPal_Table[]; +extern const u8 gInterfaceGfx_PokeBall[]; +extern const u16 gInterfacePal_PokeBall[]; extern const struct SpriteSheet gIntro2BrendanSpriteSheet; extern const struct SpriteSheet gIntro2MaySpriteSheet; extern const struct SpriteSheet gIntro2BicycleSpriteSheet; extern const struct SpriteSheet gIntro2LatiosSpriteSheet; extern const struct SpriteSheet gIntro2LatiasSpriteSheet; extern const struct SpritePalette gIntro2SpritePalettes[]; - -extern const struct SpriteTemplate gSpriteTemplate_840AE20; - extern const u8 gIntroCopyright_Gfx[]; extern const u16 gIntroCopyright_Pal[]; extern const u16 gIntroCopyright_Tilemap[]; - extern const u16 gUnknown_08393E64[]; -extern const struct SpriteTemplate gSpriteTemplate_840AF94; -extern const struct SpriteTemplate gSpriteTemplate_840AFAC; -extern const struct SpriteTemplate gSpriteTemplate_840AFC4; -extern const struct SpriteTemplate gSpriteTemplate_840B084; -extern const struct SpriteTemplate gSpriteTemplate_840B0B0; -extern const struct SpriteTemplate gSpriteTemplate_840B0DC; -extern const struct SpriteTemplate gSpriteTemplate_840B0F4; -extern const struct SpriteTemplate gSpriteTemplate_840B124; -extern const struct SpriteTemplate gSpriteTemplate_840B150; -extern const u8 gUnknown_0840B168[]; -extern const struct SpriteTemplate gSpriteTemplate_840B170; -extern const u16 gUnknown_0840B188[]; -extern const struct SpriteTemplate gSpriteTemplate_840B1B0; -extern const struct SpriteTemplate gSpriteTemplate_840B1C8; -extern void *gUnknown_0840B5A0[]; +extern void *const gUnknown_0840B5A0[]; extern const s16 gSineTable[]; //-------------------------------------------------- // Graphics Data //-------------------------------------------------- -const u16 Palette_406340[] = INCBIN_U16("graphics/intro/unknown1.gbapal"); -const u16 Palette_406360[] = INCBIN_U16("graphics/intro/unknown2.gbapal"); -const u8 gIntroTiles[] = INCBIN_U8("graphics/intro/intro.4bpp.lz"); +static const u16 Palette_406340[] = INCBIN_U16("graphics/intro/unknown1.gbapal"); +static const u16 Palette_406360[] = INCBIN_U16("graphics/intro/unknown2.gbapal"); +static const u8 gIntroTiles[] = INCBIN_U8("graphics/intro/intro.4bpp.lz"); static const u16 gIntro1BGPals[][16] = { INCBIN_U16("graphics/intro/intro1_bgpal1.gbapal"), @@ -122,11 +96,11 @@ static const u8 gIntro3Pokeball_Gfx[] = INCBIN_U8("graphics/intro/intro3_pokebal static const u16 gIntro3Streaks_Pal[] = INCBIN_U16("graphics/intro/intro3_streaks.gbapal"); static const u8 gIntro3Streaks_Gfx[] = INCBIN_U8("graphics/intro/intro3_streaks.4bpp.lz"); static const u8 gIntro3Streaks_Tilemap[] = INCBIN_U8("graphics/intro/intro3_streaks_map.bin.lz"); -const u16 gIntro3Misc1Palette[] = INCBIN_U16("graphics/intro/intro3_misc1.gbapal"); -const u16 gIntro3Misc2Palette[] = INCBIN_U16("graphics/intro/intro3_misc2.gbapal"); -const u8 gIntro3MiscTiles[] = INCBIN_U8("graphics/intro/intro3_misc.4bpp.lz"); -const u16 gIntro1EonPalette[] = INCBIN_U16("graphics/intro/intro1_eon.gbapal"); -const u8 gIntro1EonTiles[] = INCBIN_U8("graphics/intro/intro1_eon.4bpp.lz"); +static const u16 gIntro3Misc1Palette[] = INCBIN_U16("graphics/intro/intro3_misc1.gbapal"); +static const u16 gIntro3Misc2Palette[] = INCBIN_U16("graphics/intro/intro3_misc2.gbapal"); +static const u8 gIntro3MiscTiles[] = INCBIN_U8("graphics/intro/intro3_misc.4bpp.lz"); +static const u16 gIntro1EonPalette[] = INCBIN_U16("graphics/intro/intro1_eon.gbapal"); +static const u8 gIntro1EonTiles[] = INCBIN_U8("graphics/intro/intro1_eon.4bpp.lz"); static const struct OamData gOamData_840ADE8 = { .y = 160, @@ -218,7 +192,7 @@ static const union AnimCmd *const gUnknown_0840AE80[] = Unknown_40AE60, Unknown_40AE70, }; -const struct OamData gOamData_840AE90 = +static const struct OamData gOamData_840AE90 = { .y = 160, .affineMode = 0, @@ -234,7 +208,7 @@ const struct OamData gOamData_840AE90 = .paletteNum = 0, .affineParam = 0, }; -const struct OamData gOamData_840AE98 = +static const struct OamData gOamData_840AE98 = { .y = 160, .affineMode = 0, @@ -250,7 +224,7 @@ const struct OamData gOamData_840AE98 = .paletteNum = 0, .affineParam = 0, }; -const struct OamData gOamData_840AEA0 = +static const struct OamData gOamData_840AEA0 = { .y = 160, .affineMode = 0, @@ -336,7 +310,7 @@ static const union AnimCmd gSpriteAnim_840AF10[] = ANIMCMD_FRAME(128, 8), ANIMCMD_END, }; -const union AnimCmd *const gSpriteAnimTable_840AF18[] = +static const union AnimCmd *const gSpriteAnimTable_840AF18[] = { gSpriteAnim_840AEA8, gSpriteAnim_840AEB0, @@ -346,7 +320,7 @@ const union AnimCmd *const gSpriteAnimTable_840AF18[] = gSpriteAnim_840AED0, gSpriteAnim_840AED8, }; -const union AnimCmd *const gSpriteAnimTable_840AF34[] = +static const union AnimCmd *const gSpriteAnimTable_840AF34[] = { gSpriteAnim_840AEE0, gSpriteAnim_840AEE8, @@ -355,7 +329,7 @@ const union AnimCmd *const gSpriteAnimTable_840AF34[] = gSpriteAnim_840AF00, gSpriteAnim_840AF08, }; -const union AnimCmd *const gSpriteAnimTable_840AF4C[] = +static const union AnimCmd *const gSpriteAnimTable_840AF4C[] = { gSpriteAnim_840AF10, }; @@ -382,8 +356,8 @@ static const s16 gUnknown_0840AF74[][2] = {5, 20}, {3, 28}, }; -void sub_813D908(struct Sprite *sprite); -const struct SpriteTemplate gSpriteTemplate_840AF94 = +static void sub_813D908(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840AF94 = { .tileTag = 2000, .paletteTag = 2001, @@ -393,7 +367,7 @@ const struct SpriteTemplate gSpriteTemplate_840AF94 = .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_813D908, }; -const struct SpriteTemplate gSpriteTemplate_840AFAC = +static const struct SpriteTemplate gSpriteTemplate_840AFAC = { .tileTag = 2000, .paletteTag = 2001, @@ -403,7 +377,7 @@ const struct SpriteTemplate gSpriteTemplate_840AFAC = .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_813D908, }; -const struct SpriteTemplate gSpriteTemplate_840AFC4 = +static const struct SpriteTemplate gSpriteTemplate_840AFC4 = { .tileTag = 2000, .paletteTag = 2001, @@ -413,7 +387,7 @@ const struct SpriteTemplate gSpriteTemplate_840AFC4 = .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_813D908, }; -const struct OamData gOamData_840AFDC = +static const struct OamData gOamData_840AFDC = { .y = 160, .affineMode = 0, @@ -429,17 +403,17 @@ const struct OamData gOamData_840AFDC = .paletteNum = 0, .affineParam = 0, }; -const union AnimCmd gSpriteAnim_840AFE4[] = +static const union AnimCmd gSpriteAnim_840AFE4[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_JUMP(0), }; -const union AnimCmd *const gSpriteAnimTable_840AFEC[] = +static const union AnimCmd *const gSpriteAnimTable_840AFEC[] = { gSpriteAnim_840AFE4, }; -void sub_813DA64(struct Sprite *sprite); -const struct SpriteTemplate gSpriteTemplate_840AFF0 = +static void sub_813DA64(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840AFF0 = { .tileTag = 2002, .paletteTag = 2002, @@ -466,29 +440,29 @@ const struct SpritePalette gUnknown_0840B028[] = {gIntro1EonPalette, 2002}, {NULL}, }; -const union AnimCmd gUnknown_0840B048[] = +static const union AnimCmd gUnknown_0840B048[] = { ANIMCMD_FRAME(3, 0), ANIMCMD_END, }; -const union AnimCmd gUnknown_0840B050[] = +static const union AnimCmd gUnknown_0840B050[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; -const union AnimCmd gUnknown_0840B058[] = +static const union AnimCmd gUnknown_0840B058[] = { ANIMCMD_FRAME(1, 8), ANIMCMD_FRAME(2, 8), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_0840B064[] = +static const union AnimCmd *const gUnknown_0840B064[] = { gUnknown_0840B048, gUnknown_0840B050, gUnknown_0840B058, }; -const struct OamData gOamData_840B070 = +static const struct OamData gOamData_840B070 = { .y = 160, .affineMode = 0, @@ -504,17 +478,17 @@ const struct OamData gOamData_840B070 = .paletteNum = 0, .affineParam = 0, }; -const union AnimCmd gSpriteAnim_840B078[] = +static const union AnimCmd gSpriteAnim_840B078[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; -const union AnimCmd *const gSpriteAnimTable_840B080[] = +static const union AnimCmd *const gSpriteAnimTable_840B080[] = { gSpriteAnim_840B078, }; -void sub_813E30C(struct Sprite *sprite); -const struct SpriteTemplate gSpriteTemplate_840B084 = +static void sub_813E30C(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B084 = { .tileTag = 2002, .paletteTag = 2002, @@ -524,7 +498,7 @@ const struct SpriteTemplate gSpriteTemplate_840B084 = .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_813E30C, }; -const struct OamData gOamData_840B09C = +static const struct OamData gOamData_840B09C = { .y = 160, .affineMode = 0, @@ -540,17 +514,17 @@ const struct OamData gOamData_840B09C = .paletteNum = 0, .affineParam = 0, }; -const union AnimCmd gSpriteAnim_840B0A4[] = +static const union AnimCmd gSpriteAnim_840B0A4[] = { ANIMCMD_FRAME(1, 8), ANIMCMD_END, }; -const union AnimCmd *const gSpriteAnimTable_840B0AC[] = +static const union AnimCmd *const gSpriteAnimTable_840B0AC[] = { gSpriteAnim_840B0A4, }; -void sub_813E4B8(struct Sprite *sprite); -const struct SpriteTemplate gSpriteTemplate_840B0B0 = +static void sub_813E4B8(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B0B0 = { .tileTag = 2003, .paletteTag = 2003, @@ -560,7 +534,7 @@ const struct SpriteTemplate gSpriteTemplate_840B0B0 = .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_813E4B8, }; -const struct OamData gOamData_840B0C8 = +static const struct OamData gOamData_840B0C8 = { .y = 160, .affineMode = 0, @@ -576,17 +550,17 @@ const struct OamData gOamData_840B0C8 = .paletteNum = 0, .affineParam = 0, }; -const union AnimCmd gSpriteAnim_840B0D0[] = +static const union AnimCmd gSpriteAnim_840B0D0[] = { ANIMCMD_FRAME(14, 8), ANIMCMD_END, }; -const union AnimCmd *const gSpriteAnimTable_840B0D8[] = +static const union AnimCmd *const gSpriteAnimTable_840B0D8[] = { gSpriteAnim_840B0D0, }; -void sub_813E5E0(struct Sprite *sprite); -const struct SpriteTemplate gSpriteTemplate_840B0DC = +static void sub_813E5E0(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B0DC = { .tileTag = 2003, .paletteTag = 2004, @@ -596,8 +570,8 @@ const struct SpriteTemplate gSpriteTemplate_840B0DC = .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_813E5E0, }; -void sub_813E6C0(struct Sprite *sprite); -const struct SpriteTemplate gSpriteTemplate_840B0F4 = +static void sub_813E6C0(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B0F4 = { .tileTag = 2003, .paletteTag = 2004, @@ -607,7 +581,93 @@ const struct SpriteTemplate gSpriteTemplate_840B0F4 = .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_813E6C0, }; -const struct OamData gOamData_840B10C = +static const struct OamData gOamData_840B10C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840B114[] = +{ + ANIMCMD_FRAME(6, 8), + ANIMCMD_FRAME(6, 8, .hFlip = TRUE), + ANIMCMD_JUMP(0), +}; +static const union AnimCmd *const gSpriteAnimTable_840B120[] = +{ + gSpriteAnim_840B114, +}; +static void sub_813E804(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B124 = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B10C, + .anims = gSpriteAnimTable_840B120, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813E804, +}; +static const struct OamData gOamData_840B13C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840B144[] = +{ + ANIMCMD_FRAME(10, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_840B14C[] = +{ + gSpriteAnim_840B144, +}; +static void sub_813E980(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B150 = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B13C, + .anims = gSpriteAnimTable_840B14C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813E980, +}; +static const u8 gUnknown_0840B168[] = {0xE6, 0xEB, 0xE4, 0xEA, 0xE5, 0xE9, 0xE7, 0xE8}; +static void sub_813EA60(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B170 = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B13C, + .anims = gSpriteAnimTable_840B14C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813EA60, +}; +static const u16 gUnknown_0840B188[] = {0x200, 0x1C0, 0x180, 0x140, 0x100, 0xE0, 0xC0, 0xA0, 0x80, 0x80}; +static const struct OamData gOamData_840B19C = { .y = 160, .affineMode = 0, @@ -623,6 +683,95 @@ const struct OamData gOamData_840B10C = .paletteNum = 0, .affineParam = 0, }; +static const union AnimCmd gSpriteAnim_840B1A4[] = +{ + ANIMCMD_FRAME(2, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_840B1AC[] = +{ + gSpriteAnim_840B1A4, +}; +static void sub_813EBBC(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B1B0 = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B19C, + .anims = gSpriteAnimTable_840B1AC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813EBBC, +}; +static void sub_813EC90(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B1C8 = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B19C, + .anims = gSpriteAnimTable_840B1AC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813EC90, +}; +static const struct OamData gOamData_840B1E0 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840B1E8[] = +{ + ANIMCMD_FRAME(16, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_840B1F0[] = +{ + gSpriteAnim_840B1E8, +}; +static void sub_813EDFC(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B1F4 = +{ + .tileTag = 2003, + .paletteTag = 2003, + .oam = &gOamData_840B1E0, + .anims = gSpriteAnimTable_840B1F0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813EDFC, +}; +const struct SpriteSheet gIntro3PokeballGfx_Table[] = +{ + {gInterfaceGfx_PokeBall, 0x100, 2002}, + {NULL}, +}; +const struct SpriteSheet gIntro3MiscGfx_Table[] = +{ + {gIntro3MiscTiles, 0xa00, 2003}, + {NULL}, +}; +const struct SpritePalette gInterfacePokeballPal_Table[] = +{ + {gInterfacePal_PokeBall, 2002}, + {NULL}, +}; +const struct SpritePalette gIntro3MiscPal_Table[] = +{ + {gIntro3Misc1Palette, 2003}, + {gIntro3Misc2Palette, 2004}, + {NULL}, +}; +const u32 unusedData = 0x02000000; static void MainCB2_EndIntro(void); static void Task_IntroLoadPart1Graphics(u8); @@ -650,18 +799,18 @@ static void sub_813CCE8(u8); static u16 sub_813CE88(u16, s16, s16, u16, u8); static u8 sub_813CFA8(u16, u16, u16, u16); static void sub_813D084(u8); -void sub_813D220(struct Sprite *); -void sub_813D368(struct Sprite *); -void sub_813D414(struct Sprite *); -void SpriteCB_WaterDropFall(struct Sprite *); +static void sub_813D220(struct Sprite *); +static void sub_813D368(struct Sprite *); +static void sub_813D414(struct Sprite *); +static void SpriteCB_WaterDropFall(struct Sprite *); static u8 CreateWaterDrop(s16, s16, u16, u16, u16, u8); -void sub_813D788(struct Sprite *); -void sub_813D880(struct Sprite *); +static void sub_813D788(struct Sprite *); +static void sub_813D880(struct Sprite *); static u8 CreateGameFreakLogo(s16, s16, u8); -void sub_813DB9C(struct Sprite *); -void sub_813DE70(struct Sprite *); -void sub_813E10C(struct Sprite *); -void sub_813E210(struct Sprite *); +static void sub_813DB9C(struct Sprite *); +static void sub_813DE70(struct Sprite *); +static void sub_813E10C(struct Sprite *); +static void sub_813E210(struct Sprite *); static void sub_813E580(u16, u16); static void sub_813E7C0(u8); static void sub_813E930(u8); @@ -1095,9 +1244,9 @@ static void Task_IntroLoadPart3Streaks(u8 taskId) ResetSpriteData(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; - LoadCompressedObjectPic(&gIntro3PokeballGfx_Table); - LoadCompressedObjectPic(&gIntro3MiscGfx_Table); - LoadCompressedObjectPalette(&gInterfacePokeballPal_Table); + LoadCompressedObjectPic(&gIntro3PokeballGfx_Table[0]); + LoadCompressedObjectPic(&gIntro3MiscGfx_Table[0]); + LoadCompressedObjectPalette(&gInterfacePokeballPal_Table[0]); LoadSpritePalettes(gIntro3MiscPal_Table); gTasks[taskId].func = task_intro_14; } @@ -1668,7 +1817,7 @@ static void sub_813D084(u8 a) gPlttBufferFaded[241] = color; } -void sub_813D0CC(struct Sprite *sprite) +static void sub_813D0CC(struct Sprite *sprite) { u8 r0; @@ -1695,7 +1844,7 @@ void sub_813D0CC(struct Sprite *sprite) } } -void sub_813D158(struct Sprite *sprite) +static void sub_813D158(struct Sprite *sprite) { if (gSprites[sprite->data7].data7 != 0) { @@ -1725,7 +1874,7 @@ static void sub_813D208(struct Sprite *sprite) sprite->callback = sub_813D220; } -void sub_813D220(struct Sprite *sprite) +static void sub_813D220(struct Sprite *sprite) { if (sprite->pos1.x <= 116) { @@ -1774,7 +1923,7 @@ void sub_813D220(struct Sprite *sprite) } } -void sub_813D368(struct Sprite *sprite) +static void sub_813D368(struct Sprite *sprite) { SetOamMatrix(sprite->data1, sprite->data6 + 64, 0, 0, sprite->data6 + 64); SetOamMatrix(sprite->data1 + 1, sprite->data6 + 64, 0, 0, sprite->data6 + 64); @@ -1795,7 +1944,7 @@ void sub_813D368(struct Sprite *sprite) } } -void sub_813D414(struct Sprite *sprite) +static void sub_813D414(struct Sprite *sprite) { if (sprite->data0 != 2) { @@ -1812,7 +1961,7 @@ void sub_813D414(struct Sprite *sprite) } } -void SpriteCB_WaterDropFall(struct Sprite *sprite) +static void SpriteCB_WaterDropFall(struct Sprite *sprite) { if (sprite->pos1.y < sprite->data5) { @@ -1835,7 +1984,7 @@ void SpriteCB_WaterDropFall(struct Sprite *sprite) } //Duplicate function -void SpriteCB_WaterDropFall_2(struct Sprite *sprite) +static void SpriteCB_WaterDropFall_2(struct Sprite *sprite) { if (sprite->pos1.y < sprite->data5) { @@ -1904,7 +2053,7 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately) return oldSpriteId; } -void sub_813D788(struct Sprite *sprite) +static void sub_813D788(struct Sprite *sprite) { switch (sprite->data0) { @@ -1956,7 +2105,7 @@ void sub_813D788(struct Sprite *sprite) } } -void sub_813D880(struct Sprite *sprite) +static void sub_813D880(struct Sprite *sprite) { switch (sprite->data0) { @@ -1983,7 +2132,7 @@ void sub_813D880(struct Sprite *sprite) sprite->data1 += 4; } -void sub_813D908(struct Sprite *sprite) +static void sub_813D908(struct Sprite *sprite) { if (gTasks[sprite->data0].data[0] == 0) { @@ -2023,7 +2172,7 @@ static u8 CreateGameFreakLogo(s16 a, s16 b, u8 c) } #ifdef NONMATCHING -void sub_813DA64(struct Sprite *sprite) +static void sub_813DA64(struct Sprite *sprite) { sprite->data7++; @@ -2084,7 +2233,7 @@ void sub_813DA64(struct Sprite *sprite) } #else __attribute__((naked)) -void sub_813DA64(struct Sprite *sprite) +static void sub_813DA64(struct Sprite *sprite) { asm(".syntax unified\n\ push {r4-r6,lr}\n\ @@ -2255,7 +2404,7 @@ _0813DB94:\n\ } #endif -void sub_813DB9C(struct Sprite *sprite) +static void sub_813DB9C(struct Sprite *sprite) { switch (sprite->data0) { @@ -2331,7 +2480,7 @@ void sub_813DB9C(struct Sprite *sprite) } } -void sub_813DD58(struct Sprite *sprite) +static void sub_813DD58(struct Sprite *sprite) { switch (sprite->data0) { @@ -2374,7 +2523,7 @@ void sub_813DD58(struct Sprite *sprite) } } -void sub_813DE70(struct Sprite *sprite) +static void sub_813DE70(struct Sprite *sprite) { switch (sprite->data0) { @@ -2452,7 +2601,7 @@ void sub_813DE70(struct Sprite *sprite) } } -void sub_813E10C(struct Sprite *sprite) +static void sub_813E10C(struct Sprite *sprite) { switch (sprite->data0) { @@ -2520,7 +2669,7 @@ void sub_813E10C(struct Sprite *sprite) } } -void sub_813E210(struct Sprite *sprite) +static void sub_813E210(struct Sprite *sprite) { switch (sprite->data0) { @@ -2588,7 +2737,7 @@ void sub_813E210(struct Sprite *sprite) } } -void sub_813E30C(struct Sprite *sprite) +static void sub_813E30C(struct Sprite *sprite) { u16 r4, r1; @@ -2643,7 +2792,7 @@ void sub_813E30C(struct Sprite *sprite) } } -void sub_813E4B8(struct Sprite *sprite) +static void sub_813E4B8(struct Sprite *sprite) { u16 r4; u16 r2; @@ -2689,7 +2838,7 @@ static void sub_813E580(u16 x, u16 y) } } -void sub_813E5E0(struct Sprite *sprite) +static void sub_813E5E0(struct Sprite *sprite) { if (gUnknown_0203931A != 0) { @@ -2711,7 +2860,7 @@ void sub_813E5E0(struct Sprite *sprite) } } -void sub_813E6C0(struct Sprite *sprite) +static void sub_813E6C0(struct Sprite *sprite) { u8 spriteId; u8 i; @@ -2767,7 +2916,7 @@ static void sub_813E7C0(u8 a) } } -void sub_813E804(struct Sprite *sprite) +static void sub_813E804(struct Sprite *sprite) { if (gUnknown_0203931A != 0) { @@ -2808,7 +2957,7 @@ static void sub_813E930(u8 a) } } -void sub_813E980(struct Sprite *sprite) +static void sub_813E980(struct Sprite *sprite) { if (gUnknown_0203931A != 0) { @@ -2834,7 +2983,7 @@ void sub_813E980(struct Sprite *sprite) } } -void sub_813EA60(struct Sprite *sprite) +static void sub_813EA60(struct Sprite *sprite) { bool32 r6; s16 r1, r2; @@ -2891,7 +3040,7 @@ static void InitIntroTorchicAttackAnim(u8 a) } } -void sub_813EBBC(struct Sprite *sprite) +static void sub_813EBBC(struct Sprite *sprite) { if (gUnknown_0203931A != 0) { @@ -2911,7 +3060,7 @@ void sub_813EBBC(struct Sprite *sprite) } } -void sub_813EC90(struct Sprite *sprite) +static void sub_813EC90(struct Sprite *sprite) { bool32 r6; s16 r1, r2; @@ -2970,7 +3119,7 @@ static void InitIntroMudkipAttackAnim(u8 a) } } -void sub_813EDFC(struct Sprite *sprite) +static void sub_813EDFC(struct Sprite *sprite) { u16 foo; diff --git a/src/starter_choose.c b/src/starter_choose.c index 29c090fc0..f2c53610b 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -19,32 +19,47 @@ struct MonCoords u8 x, y; }; +extern void * const gUnknown_081FAF4C[]; +extern const u8 gOtherText_DoYouChoosePoke[]; +extern u16 gScriptResult; +extern const u8 gSpeciesNames[][11]; +extern const u8 gOtherText_Poke[]; +extern const struct SpriteSheet gMonFrontPicTable[]; +extern const struct MonCoords gMonFrontPicCoords[]; +extern const struct SpritePalette gMonPaletteTable[]; +extern const u8 gOtherText_BirchInTrouble[]; +extern struct SpriteTemplate gUnknown_02024E8C; + +//-------------------------------------------------- +// Graphics Data +//-------------------------------------------------- + const u16 gBirchBagGrassPal[][16] = { INCBIN_U16("graphics/misc/birch_bag.gbapal"), INCBIN_U16("graphics/misc/birch_grass.gbapal"), }; -const u16 gBirchBallarrow_Pal[] = INCBIN_U16("graphics/misc/birch_ballarrow.gbapal"); -const u16 gBirchCircle_Pal[] = INCBIN_U16("graphics/misc/birch_circle.gbapal"); +static const u16 gBirchBallarrow_Pal[] = INCBIN_U16("graphics/misc/birch_ballarrow.gbapal"); +static const u16 gBirchCircle_Pal[] = INCBIN_U16("graphics/misc/birch_circle.gbapal"); const u8 gBirchBagTilemap[] = INCBIN_U8("graphics/misc/birch_bag_map.bin.lz"); const u8 gBirchGrassTilemap[] = INCBIN_U8("graphics/misc/birch_grass_map.bin.lz"); const u8 gBirchHelpGfx[] = INCBIN_U8("graphics/misc/birch_help.4bpp.lz"); -const u8 gBirchBallarrow_Gfx[] = INCBIN_U8("graphics/misc/birch_ballarrow.4bpp.lz"); -const u8 gBirchCircle_Gfx[] = INCBIN_U8("graphics/misc/birch_circle.4bpp.lz"); -const u8 gStarterChoose_PokeballCoords[][2] = +static const u8 gBirchBallarrow_Gfx[] = INCBIN_U8("graphics/misc/birch_ballarrow.4bpp.lz"); +static const u8 gBirchCircle_Gfx[] = INCBIN_U8("graphics/misc/birch_circle.4bpp.lz"); +static const u8 gStarterChoose_PokeballCoords[][2] = { {60, 64}, {120, 88}, {180, 64}, }; -const u8 gStarterChoose_LabelCoords[][2] = +static const u8 gStarterChoose_LabelCoords[][2] = { {0, 9}, {16, 10}, {8, 4}, }; -const u16 gStarterMons[] = {SPECIES_TREECKO, SPECIES_TORCHIC, SPECIES_MUDKIP}; -const struct OamData gOamData_83F76CC = +static const u16 sStarterMons[] = {SPECIES_TREECKO, SPECIES_TORCHIC, SPECIES_MUDKIP}; +static const struct OamData gOamData_83F76CC = { .y = 160, .affineMode = 0, @@ -60,7 +75,7 @@ const struct OamData gOamData_83F76CC = .paletteNum = 0, .affineParam = 0, }; -const struct OamData gOamData_83F76D4 = +static const struct OamData gOamData_83F76D4 = { .y = 160, .affineMode = 0, @@ -76,7 +91,7 @@ const struct OamData gOamData_83F76D4 = .paletteNum = 0, .affineParam = 0, }; -const struct OamData gOamData_83F76DC = +static const struct OamData gOamData_83F76DC = { .y = 160, .affineMode = 3, @@ -92,24 +107,24 @@ const struct OamData gOamData_83F76DC = .paletteNum = 0, .affineParam = 0, }; -const u8 gUnknown_083F76E4[][2] = +static const u8 gUnknown_083F76E4[][2] = { {60, 32}, {120, 56}, {180, 32}, {0, 0}, }; -const union AnimCmd gSpriteAnim_83F76EC[] = +static const union AnimCmd gSpriteAnim_83F76EC[] = { ANIMCMD_FRAME(48, 30), ANIMCMD_END, }; -const union AnimCmd gSpriteAnim_83F76F4[] = +static const union AnimCmd gSpriteAnim_83F76F4[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; -const union AnimCmd gSpriteAnim_83F76FC[] = +static const union AnimCmd gSpriteAnim_83F76FC[] = { ANIMCMD_FRAME(16, 4), ANIMCMD_FRAME(0, 4), @@ -130,62 +145,93 @@ const union AnimCmd gSpriteAnim_83F76FC[] = ANIMCMD_FRAME(0, 8), ANIMCMD_JUMP(0), }; -const union AnimCmd gSpriteAnim_83F7744[] = +static const union AnimCmd gSpriteAnim_83F7744[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; -const union AnimCmd *const gSpriteAnimTable_83F774C[] = +static const union AnimCmd *const gSpriteAnimTable_83F774C[] = { gSpriteAnim_83F76EC, }; -const union AnimCmd *const gSpriteAnimTable_83F7750[] = +static const union AnimCmd *const gSpriteAnimTable_83F7750[] = { gSpriteAnim_83F76F4, gSpriteAnim_83F76FC, }; -const union AnimCmd *const gSpriteAnimTable_83F7758[] = +static const union AnimCmd *const gSpriteAnimTable_83F7758[] = { gSpriteAnim_83F7744, }; -const union AffineAnimCmd gSpriteAffineAnim_83F775C[] = +static const union AffineAnimCmd gSpriteAffineAnim_83F775C[] = { AFFINEANIMCMD_FRAME(16, 16, 0, 0), AFFINEANIMCMD_FRAME(16, 16, 0, 15), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gSpriteAffineAnim_83F7774[] = +static const union AffineAnimCmd gSpriteAffineAnim_83F7774[] = { AFFINEANIMCMD_FRAME(20, 20, 0, 0), AFFINEANIMCMD_FRAME(20, 20, 0, 15), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_83F778C[] = +static const union AffineAnimCmd *const gSpriteAffineAnimTable_83F778C[] = { gSpriteAffineAnim_83F775C, }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7790[] = +static const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7790[] = { gSpriteAffineAnim_83F7774, }; - -extern void * const gUnknown_081FAF4C[]; -extern const struct SpriteSheet gUnknown_083F7794; -extern const struct SpriteSheet gUnknown_083F77A4; -extern u8 gOtherText_DoYouChoosePoke[]; -extern u16 gScriptResult; -extern u8 gSpeciesNames[][11]; -extern u8 gOtherText_Poke[]; -extern const struct SpriteSheet gMonFrontPicTable[]; -extern const struct MonCoords gMonFrontPicCoords[]; -extern const struct SpritePalette gMonPaletteTable[]; -extern u8 gOtherText_BirchInTrouble[]; - -extern struct SpriteTemplate gSpriteTemplate_83F77E4; -extern struct SpriteTemplate gSpriteTemplate_83F77CC; -extern struct SpritePalette gUnknown_083F77B4[]; -extern struct SpriteTemplate gSpriteTemplate_83F77FC; -extern struct SpriteTemplate gUnknown_02024E8C; +static const struct SpriteSheet gUnknown_083F7794[] = +{ + {gBirchBallarrow_Gfx, 0x0800, 0x1000}, + {NULL}, +}; +static const struct SpriteSheet gUnknown_083F77A4[] = +{ + {gBirchCircle_Gfx, 0x0800, 0x1001}, + {NULL}, +}; +const struct SpritePalette gUnknown_083F77B4[] = +{ + {gBirchBallarrow_Pal, 0x1000}, + {gBirchCircle_Pal, 0x1001}, + {NULL}, +}; +static void sub_810A62C(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F77CC = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83F76CC, + .anims = gSpriteAnimTable_83F774C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810A62C, +}; +static void sub_810A68C(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F77E4 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83F76D4, + .anims = gSpriteAnimTable_83F7750, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810A68C, +}; +static void StarterPokemonSpriteAnimCallback(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F77FC = +{ + .tileTag = 4097, + .paletteTag = 4097, + .oam = &gOamData_83F76DC, + .anims = gSpriteAnimTable_83F7758, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83F7790, + .callback = StarterPokemonSpriteAnimCallback, +}; static void MainCallback2(void); static void Task_StarterChoose1(u8 taskId); @@ -202,19 +248,12 @@ static u8 CreatePokemonFrontSprite(u16, u8, u8); #define STARTER_PKMN_POS_X 120 #define STARTER_PKMN_POS_Y 64 -//Task data -enum { - TD_STARTERSELECTION, - TD_PKMN_SPRITE_ID, - TD_CIRCLE_SPRITE_ID, -}; - //Retrieves one of the available starter Pokemon u16 GetStarterPokemon(u16 n) { if (n > 3) n = 0; - return gStarterMons[n]; + return sStarterMons[n]; } static void VblankCallback(void) @@ -224,6 +263,10 @@ static void VblankCallback(void) TransferPlttBuffer(); } +#define tStarterSelection data[0] +#define tPkmnSpriteId data[1] +#define tCircleSpriteId data[2] + void CB2_ChooseStarter(void) { u16 savedIme; @@ -259,8 +302,8 @@ void CB2_ChooseStarter(void) ResetPaletteFade(); FreeAllSpritePalettes(); LoadPalette(gBirchBagGrassPal, 0, sizeof(gBirchBagGrassPal)); - LoadCompressedObjectPic(&gUnknown_083F7794); - LoadCompressedObjectPic(&gUnknown_083F77A4); + LoadCompressedObjectPic(&gUnknown_083F7794[0]); + LoadCompressedObjectPic(&gUnknown_083F77A4[0]); LoadSpritePalettes(gUnknown_083F77B4); SetUpWindowConfig(&gWindowConfig_81E6C3C); InitMenuWindow(&gWindowConfig_81E6CE4); @@ -288,7 +331,7 @@ void CB2_ChooseStarter(void) REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON; taskId = CreateTask(Task_StarterChoose1, 0); - gTasks[taskId].data[TD_STARTERSELECTION] = 1; + gTasks[taskId].tStarterSelection = 1; //Create hand sprite spriteId = CreateSprite(&gSpriteTemplate_83F77CC, 120, 56, 2); @@ -322,7 +365,7 @@ static void MainCallback2(void) static void Task_StarterChoose1(u8 taskId) { - CreateStarterPokemonLabel(0xFF, gTasks[taskId].data[TD_STARTERSELECTION]); + CreateStarterPokemonLabel(0xFF, gTasks[taskId].tStarterSelection); MenuDrawTextWindow(2, 14, 27, 19); MenuPrint(gOtherText_BirchInTrouble, 3, 15); gTasks[taskId].func = Task_StarterChoose2; @@ -330,7 +373,7 @@ static void Task_StarterChoose1(u8 taskId) static void Task_StarterChoose2(u8 taskId) { - u8 selection = gTasks[taskId].data[TD_STARTERSELECTION]; + u8 selection = gTasks[taskId].tStarterSelection; if (gMain.newKeys & A_BUTTON) { @@ -351,16 +394,16 @@ static void Task_StarterChoose2(u8 taskId) gStarterChoose_PokeballCoords[selection][0], gStarterChoose_PokeballCoords[selection][1], 1); - gTasks[taskId].data[TD_CIRCLE_SPRITE_ID] = spriteId; + gTasks[taskId].tCircleSpriteId = spriteId; //Create Pokemon sprite spriteId = CreatePokemonFrontSprite( - GetStarterPokemon(gTasks[taskId].data[TD_STARTERSELECTION]), + GetStarterPokemon(gTasks[taskId].tStarterSelection), gStarterChoose_PokeballCoords[selection][0], gStarterChoose_PokeballCoords[selection][1]); gSprites[spriteId].affineAnims = gSpriteAffineAnimTable_83F778C; gSprites[spriteId].callback = StarterPokemonSpriteAnimCallback; - gTasks[taskId].data[TD_PKMN_SPRITE_ID] = spriteId; + gTasks[taskId].tPkmnSpriteId = spriteId; gTasks[taskId].func = Task_StarterChoose3; } @@ -368,22 +411,22 @@ static void Task_StarterChoose2(u8 taskId) { if ((gMain.newKeys & DPAD_LEFT) && selection > 0) { - gTasks[taskId].data[TD_STARTERSELECTION]--; - CreateStarterPokemonLabel(selection, gTasks[taskId].data[TD_STARTERSELECTION]); + gTasks[taskId].tStarterSelection--; + CreateStarterPokemonLabel(selection, gTasks[taskId].tStarterSelection); } else if ((gMain.newKeys & DPAD_RIGHT) && selection < 2) { - gTasks[taskId].data[TD_STARTERSELECTION]++; - CreateStarterPokemonLabel(selection, gTasks[taskId].data[TD_STARTERSELECTION]); + gTasks[taskId].tStarterSelection++; + CreateStarterPokemonLabel(selection, gTasks[taskId].tStarterSelection); } } } static void Task_StarterChoose3(u8 taskId) { - if (gSprites[gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]].affineAnimEnded && - gSprites[gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]].pos1.x == STARTER_PKMN_POS_X && - gSprites[gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]].pos1.y == STARTER_PKMN_POS_Y) + if (gSprites[gTasks[taskId].tCircleSpriteId].affineAnimEnded && + gSprites[gTasks[taskId].tCircleSpriteId].pos1.x == STARTER_PKMN_POS_X && + gSprites[gTasks[taskId].tCircleSpriteId].pos1.y == STARTER_PKMN_POS_Y) { gTasks[taskId].func = Task_StarterChoose4; } @@ -391,7 +434,7 @@ static void Task_StarterChoose3(u8 taskId) static void Task_StarterChoose4(u8 taskId) { - PlayCry1(GetStarterPokemon(gTasks[taskId].data[TD_STARTERSELECTION]), 0); + PlayCry1(GetStarterPokemon(gTasks[taskId].tStarterSelection), 0); MenuDrawTextWindow(2, 14, 27, 19); //"Do you choose this POKEMON?" MenuPrint(gOtherText_DoYouChoosePoke, 3, 15); @@ -407,7 +450,7 @@ static void Task_StarterChoose5(u8 taskId) { case 0: //YES //Return the starter choice and exit. - gScriptResult = gTasks[taskId].data[TD_STARTERSELECTION]; + gScriptResult = gTasks[taskId].tStarterSelection; SetMainCallback2(gMain.savedCallback); break; case 1: //NO @@ -415,12 +458,12 @@ static void Task_StarterChoose5(u8 taskId) PlaySE(SE_SELECT); MenuZeroFillWindowRect(21, 7, 27, 12); - spriteId = gTasks[taskId].data[TD_PKMN_SPRITE_ID]; + spriteId = gTasks[taskId].tPkmnSpriteId; FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum)); FreeOamMatrix(gSprites[spriteId].oam.matrixNum); DestroySprite(&gSprites[spriteId]); - spriteId = gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]; + spriteId = gTasks[taskId].tCircleSpriteId; FreeOamMatrix(gSprites[spriteId].oam.matrixNum); DestroySprite(&gSprites[spriteId]); gTasks[taskId].func = Task_StarterChoose6; @@ -514,9 +557,8 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) REG_WIN0V = WIN_RANGE(labelTop, labelBottom); } -void nullsub_72(struct Sprite *sprite) +static void nullsub_72(struct Sprite *sprite) { - } static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y) @@ -537,25 +579,25 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y) } //Sprite callback -void sub_810A62C(struct Sprite *sprite) +static void sub_810A62C(struct Sprite *sprite) { - sprite->pos1.x = gUnknown_083F76E4[gTasks[sprite->data0].data[TD_STARTERSELECTION]][0]; - sprite->pos1.y = gUnknown_083F76E4[gTasks[sprite->data0].data[TD_STARTERSELECTION]][1]; + sprite->pos1.x = gUnknown_083F76E4[gTasks[sprite->data0].tStarterSelection][0]; + sprite->pos1.y = gUnknown_083F76E4[gTasks[sprite->data0].tStarterSelection][1]; sprite->pos2.y = Sin(sprite->data1, 8); sprite->data1 = (u8)sprite->data1 + 4; } //Sprite callback -void sub_810A68C(struct Sprite *sprite) +static void sub_810A68C(struct Sprite *sprite) { - if (gTasks[sprite->data0].data[TD_STARTERSELECTION] == sprite->data1) + if (gTasks[sprite->data0].tStarterSelection == sprite->data1) StartSpriteAnimIfDifferent(sprite, 1); else StartSpriteAnimIfDifferent(sprite, 0); } //Sprite callback -void StarterPokemonSpriteAnimCallback(struct Sprite *sprite) +static void StarterPokemonSpriteAnimCallback(struct Sprite *sprite) { //Move sprite to upper center of screen if (sprite->pos1.x > STARTER_PKMN_POS_X) |