diff options
author | Diegoisawesome <diego@domoreaweso.me> | 2018-09-08 02:43:19 -0500 |
---|---|---|
committer | Diegoisawesome <diego@domoreaweso.me> | 2018-09-08 02:43:19 -0500 |
commit | eb8b0ff0f7dc48caa9c74469d28a7d73f79a8556 (patch) | |
tree | d1f19cb69ee1b998a91bfab73790c7bcb4c21889 | |
parent | 12521fb1a828bcfc6d648c8cab5cc97b0f777698 (diff) | |
parent | cf8f73bde1fc1cf34e98a3f3e1231dbe260abb27 (diff) |
Merge branch 'master' of github.com:pret/pokeemerald
-rw-r--r-- | data/battle_pyramid_bag.s | 40 | ||||
-rw-r--r-- | data/berries.inc | 689 | ||||
-rw-r--r-- | data/field_player_avatar.s | 103 | ||||
-rw-r--r-- | data/starter_choose.s | 159 | ||||
-rw-r--r-- | ld_script.txt | 4 | ||||
-rw-r--r-- | src/battle_pyramid_bag.c | 64 | ||||
-rw-r--r-- | src/field_player_avatar.c | 190 | ||||
-rw-r--r-- | src/starter_choose.c | 345 |
8 files changed, 559 insertions, 1035 deletions
diff --git a/data/battle_pyramid_bag.s b/data/battle_pyramid_bag.s deleted file mode 100644 index de459075f..000000000 --- a/data/battle_pyramid_bag.s +++ /dev/null @@ -1,40 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - - .align 2 -gOamData_861F378:: @ 861F378 - .2byte 0x0100, 0xc000, 0x0400, 0x0000 - - .align 2 -gSpriteAnim_861F380:: @ 861F380 - .2byte 0x0000, 0x0004, 0xffff, 0x0000 - - .align 2 -gSpriteAnimTable_861F388:: @ 861F388 - .4byte gSpriteAnim_861F380 - - .align 2 -gSpriteAffineAnim_861F38C:: @ 861F38C - .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gSpriteAffineAnim_861F39C:: @ 861F39C - .2byte 0x0000, 0x0000, 0x02fe, 0x0000, 0x0000, 0x0000, 0x0402, 0x0000, 0x0000, 0x0000, 0x04fe, 0x0000, 0x0000, 0x0000, 0x0202, 0x0000 - .2byte 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gSpriteAffineAnimTable_861F3C4:: @ 861F3C4 - .4byte gSpriteAffineAnim_861F38C - .4byte gSpriteAffineAnim_861F39C - - .align 2 -gUnknown_0861F3CC:: @ 861F3CC - obj_tiles gBattleFrontierGfx_PyramidBag, 0x0800, 0x1024 - - .align 2 -gUnknown_0861F3D4:: @ 861F3D4 - spr_template 0x1024, 0x1024, gOamData_861F378, gSpriteAnimTable_861F388, NULL, gSpriteAffineAnimTable_861F3C4, SpriteCallbackDummy - diff --git a/data/berries.inc b/data/berries.inc deleted file mode 100644 index f06c32a1a..000000000 --- a/data/berries.inc +++ /dev/null @@ -1,689 +0,0 @@ - .align 2 -gBerries:: @ 858A670 - .string "CHERI$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 20 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Cheri - .4byte gBerryDescriptionPart2_Cheri - .byte 3 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "CHESTO$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 80 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Chesto - .4byte gBerryDescriptionPart2_Chesto - .byte 3 @ stage duration (in hours) - .byte 0 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "PECHA$", 7 - .byte BERRY_FIRMNESS_VERY_SOFT - .2byte 40 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Pecha - .4byte gBerryDescriptionPart2_Pecha - .byte 3 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "RAWST$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 32 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Rawst - .4byte gBerryDescriptionPart2_Rawst - .byte 3 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "ASPEAR$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 50 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Aspear - .4byte gBerryDescriptionPart2_Aspear - .byte 3 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 10 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "LEPPA$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 28 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Leppa - .4byte gBerryDescriptionPart2_Leppa - .byte 4 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "ORAN$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 35 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Oran - .4byte gBerryDescriptionPart2_Oran - .byte 3 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "PERSIM$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 47 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Persim - .4byte gBerryDescriptionPart2_Persim - .byte 3 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "LUM$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 34 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Lum - .4byte gBerryDescriptionPart2_Lum - .byte 12 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "SITRUS$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 95 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Sitrus - .4byte gBerryDescriptionPart2_Sitrus - .byte 6 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "FIGY$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 100 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Figy - .4byte gBerryDescriptionPart2_Figy - .byte 6 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "WIKI$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 115 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Wiki - .4byte gBerryDescriptionPart2_Wiki - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "MAGO$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 126 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Mago - .4byte gBerryDescriptionPart2_Mago - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "AGUAV$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 64 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Aguav - .4byte gBerryDescriptionPart2_Aguav - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "IAPAPA$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 223 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Iapapa - .4byte gBerryDescriptionPart2_Iapapa - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 10 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "RAZZ$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 120 @ size (in millimeters) - .byte 6 @ max yield - .byte 3 @ min yield - .4byte gBerryDescriptionPart1_Razz - .4byte gBerryDescriptionPart2_Razz - .byte 1 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "BLUK$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 108 @ size (in millimeters) - .byte 6 @ max yield - .byte 3 @ min yield - .4byte gBerryDescriptionPart1_Bluk - .4byte gBerryDescriptionPart2_Bluk - .byte 1 @ stage duration (in hours) - .byte 0 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "NANAB$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 77 @ size (in millimeters) - .byte 6 @ max yield - .byte 3 @ min yield - .4byte gBerryDescriptionPart1_Nanab - .4byte gBerryDescriptionPart2_Nanab - .byte 1 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "WEPEAR$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 74 @ size (in millimeters) - .byte 6 @ max yield - .byte 3 @ min yield - .4byte gBerryDescriptionPart1_Wepear - .4byte gBerryDescriptionPart2_Wepear - .byte 1 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "PINAP$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 80 @ size (in millimeters) - .byte 6 @ max yield - .byte 3 @ min yield - .4byte gBerryDescriptionPart1_Pinap - .4byte gBerryDescriptionPart2_Pinap - .byte 1 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "POMEG$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 135 @ size (in millimeters) - .byte 6 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Pomeg - .4byte gBerryDescriptionPart2_Pomeg - .byte 3 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "KELPSY$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 150 @ size (in millimeters) - .byte 6 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Kelpsy - .4byte gBerryDescriptionPart2_Kelpsy - .byte 3 @ stage duration (in hours) - .byte 0 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "QUALOT$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 110 @ size (in millimeters) - .byte 6 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Qualot - .4byte gBerryDescriptionPart2_Qualot - .byte 3 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "HONDEW$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 162 @ size (in millimeters) - .byte 6 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Hondew - .4byte gBerryDescriptionPart2_Hondew - .byte 3 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "GREPA$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 149 @ size (in millimeters) - .byte 6 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Grepa - .4byte gBerryDescriptionPart2_Grepa - .byte 3 @ stage duration (in hours) - .byte 0 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "TAMATO$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 200 @ size (in millimeters) - .byte 4 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Tamato - .4byte gBerryDescriptionPart2_Tamato - .byte 6 @ stage duration (in hours) - .byte 20 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "CORNN$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 75 @ size (in millimeters) - .byte 4 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Cornn - .4byte gBerryDescriptionPart2_Cornn - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 20 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "MAGOST$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 140 @ size (in millimeters) - .byte 4 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Magost - .4byte gBerryDescriptionPart2_Magost - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 20 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "RABUTA$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 226 @ size (in millimeters) - .byte 4 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Rabuta - .4byte gBerryDescriptionPart2_Rabuta - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 20 @ bitter - .byte 10 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "NOMEL$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 285 @ size (in millimeters) - .byte 4 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Nomel - .4byte gBerryDescriptionPart2_Nomel - .byte 6 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 20 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "SPELON$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 133 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Spelon - .4byte gBerryDescriptionPart2_Spelon - .byte 18 @ stage duration (in hours) - .byte 40 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 70 @ smoothness - .byte 0 @ padding - - .string "PAMTRE$", 7 - .byte BERRY_FIRMNESS_VERY_SOFT - .2byte 244 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Pamtre - .4byte gBerryDescriptionPart2_Pamtre - .byte 18 @ stage duration (in hours) - .byte 0 @ spicy - .byte 40 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 70 @ smoothness - .byte 0 @ padding - - .string "WATMEL$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 250 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Watmel - .4byte gBerryDescriptionPart2_Watmel - .byte 18 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 40 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 70 @ smoothness - .byte 0 @ padding - - .string "DURIN$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 280 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Durin - .4byte gBerryDescriptionPart2_Durin - .byte 18 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 40 @ bitter - .byte 10 @ sour - .byte 70 @ smoothness - .byte 0 @ padding - - .string "BELUE$", 7 - .byte BERRY_FIRMNESS_VERY_SOFT - .2byte 300 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Belue - .4byte gBerryDescriptionPart2_Belue - .byte 18 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 40 @ sour - .byte 70 @ smoothness - .byte 0 @ padding - - .string "LIECHI$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 111 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Liechi - .4byte gBerryDescriptionPart2_Liechi - .byte 24 @ stage duration (in hours) - .byte 40 @ spicy - .byte 0 @ dry - .byte 40 @ sweet - .byte 0 @ bitter - .byte 10 @ sour - .byte 80 @ smoothness - .byte 0 @ padding - - .string "GANLON$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 33 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Ganlon - .4byte gBerryDescriptionPart2_Ganlon - .byte 24 @ stage duration (in hours) - .byte 0 @ spicy - .byte 40 @ dry - .byte 0 @ sweet - .byte 40 @ bitter - .byte 0 @ sour - .byte 80 @ smoothness - .byte 0 @ padding - - .string "SALAC$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 95 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Salac - .4byte gBerryDescriptionPart2_Salac - .byte 24 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 40 @ sweet - .byte 0 @ bitter - .byte 40 @ sour - .byte 80 @ smoothness - .byte 0 @ padding - - .string "PETAYA$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 237 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Petaya - .4byte gBerryDescriptionPart2_Petaya - .byte 24 @ stage duration (in hours) - .byte 40 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 40 @ bitter - .byte 0 @ sour - .byte 80 @ smoothness - .byte 0 @ padding - - .string "APICOT$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 75 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Apicot - .4byte gBerryDescriptionPart2_Apicot - .byte 24 @ stage duration (in hours) - .byte 0 @ spicy - .byte 40 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 40 @ sour - .byte 80 @ smoothness - .byte 0 @ padding - - .string "LANSAT$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 97 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Lansat - .4byte gBerryDescriptionPart2_Lansat - .byte 24 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "STARF$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 153 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Starf - .4byte gBerryDescriptionPart2_Starf - .byte 24 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "ENIGMA$", 7 - .byte BERRY_FIRMNESS_UNKNOWN - .2byte 0 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Enigma - .4byte gBerryDescriptionPart2_Enigma - .byte 24 @ stage duration (in hours) - .byte 40 @ spicy - .byte 40 @ dry - .byte 40 @ sweet - .byte 40 @ bitter - .byte 40 @ sour - .byte 40 @ smoothness - .byte 0 @ padding diff --git a/data/field_player_avatar.s b/data/field_player_avatar.s deleted file mode 100644 index cc3ff2447..000000000 --- a/data/field_player_avatar.s +++ /dev/null @@ -1,103 +0,0 @@ -@ the third big chunk of data - - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gUnknown_084974B8:: @ 84974B8 - .4byte PlayerAvatarTransition_Normal - .4byte PlayerAvatarTransition_MachBike - .4byte PlayerAvatarTransition_AcroBike - .4byte PlayerAvatarTransition_Surfing - .4byte PlayerAvatarTransition_Underwater - .4byte PlayerAvatarTransition_ReturnToField - .4byte PlayerAvatarTransition_Dummy - .4byte PlayerAvatarTransition_Dummy - -gUnknown_084974D8:: @ 84974D8 - .4byte MetatileBehavior_IsSouthArrowWarp - .4byte MetatileBehavior_IsNorthArrowWarp - .4byte MetatileBehavior_IsWestArrowWarp - .4byte MetatileBehavior_IsEastArrowWarp - -gUnknown_084974E8:: @ 84974E8 - .byte 0x64, 0x69, 0x65, 0x6a, 0x66, 0x6b, 0x67, 0x6c, 0x6f, 0x70, 0x68, 0x6d, 0x89, 0x8a, 0xbf, 0xc0 - -gUnknown_084974F8:: @ 84974F8 - .byte 0x00, 0x59, 0x01, 0x5a, 0x3f, 0x5b, 0x02, 0x5c, 0x6f, 0x70, 0x03, 0x5d, 0x89, 0x8a, 0xbf, 0xc0 - -gUnknown_08497508:: @ 8497508 - .byte 0xe6, 0xe7 - -gUnknown_0849750A:: @ 849750A - .byte 0xeb, 0xec - -gUnknown_0849750C:: @ 849750C - .byte 0x00, 0x01, 0x01, 0x02, 0x3f, 0x04, 0x02, 0x08, 0x6f, 0x10, 0x59, 0x01, 0x5a, 0x02, 0x5b, 0x04, 0x5c, 0x08, 0x70, 0x10 - -gUnknown_08497520:: @ 8497520 - .4byte MetatileBehavior_IsSouthArrowWarp - .4byte MetatileBehavior_IsNorthArrowWarp - .4byte MetatileBehavior_IsWestArrowWarp - .4byte MetatileBehavior_IsEastArrowWarp - -gUnknown_08497530:: @ 8497530 - .4byte sub_808C3A4 - .4byte do_boulder_dust - .4byte sub_808C484 - -gUnknown_0849753C:: @ 849753C - .4byte sub_808C544 - -gUnknown_08497540:: @ 8497540 - .4byte sub_808C61C - .4byte sub_808C644 - .4byte sub_808C6BC - .4byte sub_808C6FC - -gUnknown_08497550:: @ 8497550 - .byte 3, 4, 2, 1 - -gUnknown_08497554:: @ 8497554 - .byte 16, 16, 17, 18, 19 - - .align 2 -gUnknown_0849755C:: @ 849755C - .4byte fish0 - .4byte fish1 - .4byte fish2 - .4byte fish3 - .4byte fish4 - .4byte fish5 - .4byte fish6 - .4byte fish7 - .4byte fish8 - .4byte fish9 - .4byte fishA_wait_for_a_pressed - .4byte fishB - .4byte fishC - .4byte fishD - .4byte fishE - .4byte fishF - -gUnknown_0849759C:: @ 849759C - .2byte 1, 1, 1 - -gUnknown_084975A2:: @ 84975A2 - .2byte 1, 3, 6 - -gUnknown_084975A8:: @ 84975A8 - .string "·$" - -gUnknown_084975AA:: @ 84975AA - .2byte 36, 33, 30 - -gUnknown_084975B0:: @ 84975B0 - .2byte 0, 0 - .2byte 0x28, 10 - .2byte 0x46, 30 - -gUnknown_084975BC:: @ 84975BC - .byte 0x01, 0x03, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00 diff --git a/data/starter_choose.s b/data/starter_choose.s deleted file mode 100644 index 92b95d80c..000000000 --- a/data/starter_choose.s +++ /dev/null @@ -1,159 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .include "include/constants/species.h" - - .section .rodata - - .align 2 -gBirchBagGrassPal:: @ 85B0A00 - .incbin "graphics/misc/birch_bag.gbapal" - .incbin "graphics/misc/birch_grass.gbapal" - - .align 2 -gBirchBallarrow_Pal:: @ 85B0A40 - .incbin "graphics/misc/birch_ballarrow.gbapal" - - .align 2 -gBirchCircle_Pal:: @ 85B0A60 - .incbin "graphics/misc/birch_circle.gbapal" - - .align 2 -gBirchBagTilemap:: @ 85B0A80 - .incbin "graphics/misc/birch_bag_map.bin.lz" - - .align 2 -gBirchGrassTilemap:: @ 85B0C0C - .incbin "graphics/misc/birch_grass_map.bin.lz" - - .align 2 -gBirchHelpGfx:: @ 85B0E04 - .incbin "graphics/misc/birch_help.4bpp.lz" - - .align 2 -gUnknown_085B18AC:: @ 85B18AC - .incbin "graphics/misc/birch_ballarrow.4bpp.lz" - - .align 2 -gUnknown_085B1BCC:: @ 85B1BCC - .incbin "graphics/misc/birch_circle.4bpp.lz" - - .align 2 -gUnknown_085B1DCC:: @ 85B1DCC - window_template 0x00, 0x03, 0x0f, 0x18, 0x04, 0x0e, 0x0200 - null_window_template - - .align 2 -gUnknown_085B1DDC:: @ 85B1DDC - window_template 0x00, 0x18, 0x09, 0x05, 0x04, 0x0e, 0x0260 - - .align 2 -gUnknown_085B1DE4:: @ 85B1DE4 - window_template 0x00, 0x00, 0x00, 0x0d, 0x04, 0x0e, 0x0274 - -sPokeballCoords:: @ 85B1DEC - .byte 0x3c, 0x40, 0x78, 0x58, 0xb4, 0x40 - -gStarterChoose_LabelCoords:: @ 85B1DF2 - .byte 0x00, 0x09, 0x10, 0x0a, 0x08, 0x04 - -sStarterMon:: @ 85B1DF8 - .2byte SPECIES_TREECKO - .2byte SPECIES_TORCHIC - .2byte SPECIES_MUDKIP - - .align 2 -gUnknown_085B1E00:: @ 85B1E00 - .4byte 0x000001f8, 0x00003072, 0x00001063 - -gUnknown_085B1E0C:: @ 85B1E0C - .byte 0x00, 0x01, 0x03 - - .align 2 -gOamData_85B1E10:: @ 85B1E10 - .2byte 0x00a0, 0x8000, 0x0400, 0x0000 - - .align 2 -gOamData_85B1E18:: @ 85B1E18 - .2byte 0x00a0, 0x8000, 0x0400, 0x0000 - - .align 2 -gOamData_85B1E20:: @ 85B1E20 - .2byte 0x03a0, 0xc000, 0x0400, 0x0000 - -gUnknown_085B1E28:: @ 85B1E28 - .byte 0x3c, 0x20, 0x78, 0x38, 0xb4, 0x20, 0x00, 0x00 - - .align 2 -gSpriteAnim_85B1E30:: @ 85B1E30 - .2byte 0x0030, 0x001e, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_85B1E38:: @ 85B1E38 - .2byte 0x0000, 0x001e, 0xffff, 0x0000 - - .align 2 -gSpriteAnim_85B1E40:: @ 85B1E40 - .2byte 0x0010, 0x0004, 0x0000, 0x0004, 0x0020, 0x0004, 0x0000, 0x0004, 0x0010, 0x0004, 0x0000, 0x0004, 0x0020, 0x0004, 0x0000, 0x0004 - .2byte 0x0000, 0x0020, 0x0010, 0x0008, 0x0000, 0x0008, 0x0020, 0x0008, 0x0000, 0x0008, 0x0010, 0x0008, 0x0000, 0x0008, 0x0020, 0x0008 - .2byte 0x0000, 0x0008, 0xfffe, 0x0000 - - .align 2 -gSpriteAnim_85B1E88:: @ 85B1E88 - .2byte 0x0000, 0x0008, 0xffff, 0x0000 - - .align 2 -gSpriteAnimTable_85B1E90:: @ 85B1E90 - .4byte gSpriteAnim_85B1E30 - - .align 2 -gSpriteAnimTable_85B1E94:: @ 85B1E94 - .4byte gSpriteAnim_85B1E38 - .4byte gSpriteAnim_85B1E40 - - .align 2 -gSpriteAnimTable_85B1E9C:: @ 85B1E9C - .4byte gSpriteAnim_85B1E88 - - .align 2 -gSpriteAffineAnim_85B1EA0:: @ 85B1EA0 - .2byte 0x0010, 0x0010, 0x0000, 0x0000, 0x0010, 0x0010, 0x0f00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gSpriteAffineAnim_85B1EB8:: @ 85B1EB8 - .2byte 0x0014, 0x0014, 0x0000, 0x0000, 0x0014, 0x0014, 0x0f00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 - - .align 2 -gUnknown_085B1ED0:: @ 85B1ED0 - .4byte gSpriteAffineAnim_85B1EA0 - - .align 2 -gSpriteAffineAnimTable_85B1ED4:: @ 85B1ED4 - .4byte gSpriteAffineAnim_85B1EB8 - - .align 2 -gUnknown_085B1ED8:: @ 85B1ED8 - obj_tiles gUnknown_085B18AC, 0x0800, 0x1000 - null_obj_tiles - - .align 2 -gUnknown_085B1EE8:: @ 85B1EE8 - obj_tiles gUnknown_085B1BCC, 0x0800, 0x1001 - null_obj_tiles - - .align 2 -gUnknown_085B1EF8:: @ 85B1EF8 - obj_pal gBirchBallarrow_Pal, 0x1000 - obj_pal gBirchCircle_Pal, 0x1001 - null_obj_pal - - .align 2 -sSpriteTemplate_Hand:: @ 85B1F10 - spr_template 0x1000, 0x1000, gOamData_85B1E10, gSpriteAnimTable_85B1E90, NULL, gDummySpriteAffineAnimTable, sub_81346DC - - .align 2 -sSpriteTemplate_PokeBall:: @ 85B1F28 - spr_template 0x1000, 0x1000, gOamData_85B1E18, gSpriteAnimTable_85B1E94, NULL, gDummySpriteAffineAnimTable, sub_813473C - - .align 2 -gUnknown_085B1F40:: @ 85B1F40 - spr_template 0x1001, 0x1001, gOamData_85B1E20, gSpriteAnimTable_85B1E9C, NULL, gSpriteAffineAnimTable_85B1ED4, StarterPokemonSpriteCallback diff --git a/ld_script.txt b/ld_script.txt index 1a8361706..f64e2083a 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -409,7 +409,6 @@ SECTIONS { src/metatile_behavior.o(.rodata); src/field_door.o(.rodata); src/field_player_avatar.o(.rodata); - data/field_player_avatar.o(.rodata); src/event_object_movement.o(.rodata); src/text_window.o(.rodata); src/scrcmd.o(.rodata); @@ -475,7 +474,7 @@ SECTIONS { data/contest_painting.o(.rodata); src/battle_ai_script_commands.o(.rodata); src/trader.o(.rodata); - data/starter_choose.o(.rodata); + src/starter_choose.o(.rodata); src/wallclock.o(.rodata); src/pokeblock.o(.rodata); src/fldeff_flash.o(.rodata); @@ -545,7 +544,6 @@ SECTIONS { src/pokemon_summary_screen.o(.rodata); src/unk_pokedex_area_screen_helper.o(.rodata); src/battle_pyramid_bag.o(.rodata); - data/battle_pyramid_bag.o(.rodata); data/pokenav.o(.rodata); src/match_call.o(.rodata); data/pokenav.o(.rodata.after.match.call); diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 6629e6a0a..bc2821d16 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -42,6 +42,7 @@ extern const u8 gUnknown_08D9ADD0[]; extern const u8 gUnknown_08D9AE04[]; extern const u8 gUnknown_08D9AF44[]; extern const u16 gUnknown_0860F074[]; +extern const u8 gBattleFrontierGfx_PyramidBag[]; // This file's functions. static void Task_HandlePyramidBagInput(u8 taskId); @@ -281,8 +282,67 @@ static const struct WindowTemplate gUnknown_0861F350[] = }, }; -extern const struct CompressedSpriteSheet gUnknown_0861F3CC; -extern const struct SpriteTemplate gUnknown_0861F3D4; +static const struct OamData gOamData_861F378 = +{ + .y = 0, + .affineMode = 1, + .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_861F380[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +static const union AnimCmd * const gSpriteAnimTable_861F388[] = +{ + gSpriteAnim_861F380, +}; + +static const union AffineAnimCmd gSpriteAffineAnim_861F38C[] = +{ + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gSpriteAffineAnim_861F39C[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 254, 2), + AFFINEANIMCMD_FRAME(0, 0, 2, 4), + AFFINEANIMCMD_FRAME(0, 0, 254, 4), + AFFINEANIMCMD_FRAME(0, 0, 2, 2), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd * const gSpriteAffineAnimTable_861F3C4[] = +{ + gSpriteAffineAnim_861F38C, + gSpriteAffineAnim_861F39C, +}; + +static const struct CompressedSpriteSheet gUnknown_0861F3CC = {gBattleFrontierGfx_PyramidBag, 0x0800, 0x1024}; + +static const struct SpriteTemplate gUnknown_0861F3D4 = +{ + .tileTag = 0x1024, + .paletteTag = 0x1024, + .oam = &gOamData_861F378, + .anims = gSpriteAnimTable_861F388, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_861F3C4, + .callback = SpriteCallbackDummy +}; // code void sub_81C4EEC(void) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 6ab721643..38845beb8 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1,17 +1,19 @@ #include "global.h" -#include "global.fieldmap.h" -#include "sprite.h" -#include "event_object_movement.h" #include "bike.h" -#include "metatile_behavior.h" -#include "metatile_behaviors.h" -#include "constants/flags.h" #include "event_data.h" +#include "event_object_movement.h" +#include "field_player_avatar.h" #include "fieldmap.h" +#include "global.fieldmap.h" +#include "metatile_behavior.h" +#include "metatile_behaviors.h" #include "overworld.h" #include "rotating_gate.h" +#include "sprite.h" +#include "task.h" +#include "constants/event_objects.h" #include "constants/event_object_movement_constants.h" -#include "field_player_avatar.h" +#include "constants/flags.h" extern void task_add_bump_boulder(u8, u8); static bool8 ShouldJumpLedge(s16, s16, u8); @@ -42,6 +44,42 @@ static void PlayerNotOnBikeTurningInPlace(u8, u16); static void PlayerNotOnBikeMoving(u8, u16); extern void sub_808C750(u8); +extern void PlayerAvatarTransition_Normal(struct EventObject *a); +extern void PlayerAvatarTransition_MachBike(struct EventObject *a); +extern void PlayerAvatarTransition_AcroBike(struct EventObject *a); +extern void PlayerAvatarTransition_Surfing(struct EventObject *a); +extern void PlayerAvatarTransition_Underwater(struct EventObject *a); +extern void PlayerAvatarTransition_ReturnToField(struct EventObject *a); +extern void PlayerAvatarTransition_Dummy(struct EventObject *a); + +extern u8 sub_808C3A4(struct Task *task, struct EventObject *playerObject, struct EventObject *strengthObject); +extern u8 do_boulder_dust(struct Task *task, struct EventObject *playerObject, struct EventObject *strengthObject); +extern u8 sub_808C484(struct Task *task, struct EventObject *playerObject, struct EventObject *strengthObject); + +extern u8 sub_808C544(struct Task *task, struct EventObject *eventObject); + +extern u8 sub_808C61C(struct Task *task, struct EventObject *eventObject); +extern u8 sub_808C644(struct Task *task, struct EventObject *eventObject); +extern u8 sub_808C6BC(struct Task *task, struct EventObject *eventObject); +extern u8 sub_808C6FC(struct Task *task, struct EventObject *eventObject); + +extern u8 fish0(struct Task *task); +extern u8 fish1(struct Task *task); +extern u8 fish2(struct Task *task); +extern u8 fish3(struct Task *task); +extern u8 fish4(struct Task *task); +extern u8 fish5(struct Task *task); +extern u8 fish6(struct Task *task); +extern u8 fish7(struct Task *task); +extern u8 fish8(struct Task *task); +extern u8 fish9(struct Task *task); +extern u8 fishA_wait_for_a_pressed(struct Task *task); +extern u8 fishB(struct Task *task); +extern u8 fishC(struct Task *task); +extern u8 fishD(struct Task *task); +extern u8 fishE(struct Task *task); +extern u8 fishF(struct Task *task); + static bool8 (*const gUnknown_084973FC[])(u8) = { MetatileBehavior_IsTrickHouseSlipperyFloor, @@ -105,6 +143,144 @@ static bool8 (*const gUnknown_0849749C[])(u8) = static const u8 gUnknown_084974B0[] = {9, 10, 11, 12, 13, 0, 0, 0}; +void (*const gUnknown_084974B8[])(struct EventObject *) = +{ + PlayerAvatarTransition_Normal, + PlayerAvatarTransition_MachBike, + PlayerAvatarTransition_AcroBike, + PlayerAvatarTransition_Surfing, + PlayerAvatarTransition_Underwater, + PlayerAvatarTransition_ReturnToField, + PlayerAvatarTransition_Dummy, + PlayerAvatarTransition_Dummy, +}; + +bool8 (*const gUnknown_084974D8[])(u8) = +{ + MetatileBehavior_IsSouthArrowWarp, + MetatileBehavior_IsNorthArrowWarp, + MetatileBehavior_IsWestArrowWarp, + MetatileBehavior_IsEastArrowWarp, +}; + +const u8 gUnknown_084974E8[][2] = +{ + {EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL}, + {EVENT_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE, EVENT_OBJ_GFX_RIVAL_MAY_MACH_BIKE}, + {EVENT_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE, EVENT_OBJ_GFX_RIVAL_MAY_ACRO_BIKE}, + {EVENT_OBJ_GFX_RIVAL_BRENDAN_SURFING, EVENT_OBJ_GFX_RIVAL_MAY_SURFING}, + {EVENT_OBJ_GFX_BRENDAN_UNDERWATER, EVENT_OBJ_GFX_MAY_UNDERWATER}, + {EVENT_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE, EVENT_OBJ_GFX_RIVAL_MAY_FIELD_MOVE}, + {EVENT_OBJ_GFX_BRENDAN_FISHING, EVENT_OBJ_GFX_MAY_FISHING}, + {EVENT_OBJ_GFX_BRENDAN_WATERING, EVENT_OBJ_GFX_MAY_WATERING} +}; + +const u8 gUnknown_084974F8[][2] = +{ + {EVENT_OBJ_GFX_BRENDAN_NORMAL, EVENT_OBJ_GFX_MAY_NORMAL}, + {EVENT_OBJ_GFX_BRENDAN_MACH_BIKE, EVENT_OBJ_GFX_MAY_MACH_BIKE}, + {EVENT_OBJ_GFX_BRENDAN_ACRO_BIKE, EVENT_OBJ_GFX_MAY_ACRO_BIKE}, + {EVENT_OBJ_GFX_BRENDAN_SURFING, EVENT_OBJ_GFX_MAY_SURFING}, + {EVENT_OBJ_GFX_BRENDAN_UNDERWATER, EVENT_OBJ_GFX_MAY_UNDERWATER}, + {EVENT_OBJ_GFX_BRENDAN_FIELD_MOVE, EVENT_OBJ_GFX_MAY_FIELD_MOVE}, + {EVENT_OBJ_GFX_BRENDAN_FISHING, EVENT_OBJ_GFX_MAY_FISHING}, + {EVENT_OBJ_GFX_BRENDAN_WATERING, EVENT_OBJ_GFX_MAY_WATERING}, +}; + +const u8 gUnknown_08497508[] = {EVENT_OBJ_GFX_RED, EVENT_OBJ_GFX_LEAF}; + +const u8 gUnknown_0849750A[] = {EVENT_OBJ_GFX_LINK_RS_BRENDAN, EVENT_OBJ_GFX_LINK_RS_MAY}; + +const u8 gUnknown_0849750C[2][5][2] = +{ + //male + { + {EVENT_OBJ_GFX_BRENDAN_NORMAL, 1}, + {EVENT_OBJ_GFX_BRENDAN_MACH_BIKE, 2}, + {EVENT_OBJ_GFX_BRENDAN_ACRO_BIKE, 4}, + {EVENT_OBJ_GFX_BRENDAN_SURFING, 8}, + {EVENT_OBJ_GFX_BRENDAN_UNDERWATER, 16}, + }, + //female + { + {EVENT_OBJ_GFX_MAY_NORMAL, 1}, + {EVENT_OBJ_GFX_MAY_MACH_BIKE, 2}, + {EVENT_OBJ_GFX_MAY_ACRO_BIKE, 4}, + {EVENT_OBJ_GFX_MAY_SURFING, 8}, + {EVENT_OBJ_GFX_MAY_UNDERWATER, 16}, + } +}; + +bool8 (*const gUnknown_08497520[])(u8) = //Duplicate of sArrowWarpMetatileBehaviorChecks +{ + MetatileBehavior_IsSouthArrowWarp, + MetatileBehavior_IsNorthArrowWarp, + MetatileBehavior_IsWestArrowWarp, + MetatileBehavior_IsEastArrowWarp, +}; + +u8 (*const gUnknown_08497530[])(struct Task *, struct EventObject *, struct EventObject *) = +{ + sub_808C3A4, + do_boulder_dust, + sub_808C484, +}; + +u8 (*const gUnknown_0849753C[])(struct Task *, struct EventObject *) = +{ + sub_808C544, +}; + +u8 (*const gUnknown_08497540[])(struct Task *, struct EventObject *) = +{ + sub_808C61C, + sub_808C644, + sub_808C6BC, + sub_808C6FC, +}; + +const u8 gUnknown_08497550[] = {3, 4, 2, 1}; + +const u8 gUnknown_08497554[] = {16, 16, 17, 18, 19}; + +u8 (*const gUnknown_0849755C[])(struct Task *) = +{ + fish0, + fish1, + fish2, + fish3, + fish4, + fish5, + fish6, + fish7, + fish8, + fish9, + fishA_wait_for_a_pressed, + fishB, + fishC, + fishD, + fishE, + fishF, +}; + +const u16 gUnknown_0849759C[] = {1, 1, 1}; + +const u16 gUnknown_084975A2[] = {1, 3, 6}; + +const u8 gUnknown_084975A8[] = _("·"); + +const u16 gUnknown_084975AA[] = {36, 33, 30}; + +const u16 gUnknown_084975B0[] = +{ + 0, 0, + 0x28, 10, + 0x46, 30, +}; + +const u8 gUnknown_084975BC[] = {0x01, 0x03, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00}; + +// .text void MovementType_Player(struct Sprite *sprite) { UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, EventObjectCB2_NoMovement2); diff --git a/src/starter_choose.c b/src/starter_choose.c index c1e7eea40..71784b016 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -1,26 +1,27 @@ #include "global.h" -#include "starter_choose.h" -#include "palette.h" -#include "sprite.h" -#include "pokemon.h" -#include "task.h" #include "bg.h" +#include "data2.h" +#include "decompress.h" +#include "event_data.h" #include "gpu_regs.h" +#include "international_string_util.h" #include "main.h" -#include "window.h" -#include "text.h" -#include "text_window.h" -#include "decompress.h" #include "menu.h" -#include "sound.h" -#include "constants/songs.h" -#include "event_data.h" +#include "palette.h" #include "pokedex.h" -#include "data2.h" -#include "international_string_util.h" -#include "trig.h" +#include "pokemon.h" #include "scanline_effect.h" +#include "sound.h" +#include "sprite.h" +#include "starter_choose.h" +#include "task.h" +#include "text.h" +#include "text_window.h" #include "trainer_pokemon_sprites.h" +#include "trig.h" +#include "window.h" +#include "constants/songs.h" +#include "constants/species.h" #define STARTER_MON_COUNT 3 @@ -32,23 +33,6 @@ extern const u8 gText_BirchInTrouble[]; extern const u8 gText_ConfirmStarterChoice[]; -extern const u16 sStarterMon[STARTER_MON_COUNT]; -extern const struct BgTemplate gUnknown_085B1E00[3]; -extern const struct WindowTemplate gUnknown_085B1DCC[]; -extern const struct WindowTemplate gUnknown_085B1DDC; -extern const struct CompressedSpriteSheet gUnknown_085B1ED8[]; -extern const struct CompressedSpriteSheet gUnknown_085B1EE8[]; -extern const struct SpritePalette gUnknown_085B1EF8[]; -extern const struct SpriteTemplate sSpriteTemplate_PokeBall; -extern const struct SpriteTemplate sSpriteTemplate_Hand; -extern const struct SpriteTemplate gUnknown_085B1F40; -extern const union AffineAnimCmd *const gUnknown_085B1ED0; -extern const u8 sPokeballCoords[STARTER_MON_COUNT][2]; -extern const struct WindowTemplate gUnknown_085B1DE4; -extern const u8 gStarterChoose_LabelCoords[][2]; -extern const u8 gUnknown_085B1E0C[]; -extern const u8 gUnknown_085B1E28[][2]; - // this file's functions static void MainCallback2_StarterChoose(void); static void sub_8134604(void); @@ -62,10 +46,307 @@ static void Task_MoveStarterChooseCursor(u8 taskId); static void sub_8134668(u8 taskId); static void CreateStarterPokemonLabel(u8 selection); static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y); +void sub_81346DC(struct Sprite *sprite); +void sub_813473C(struct Sprite *sprite); void StarterPokemonSpriteCallback(struct Sprite *sprite); static IWRAM_DATA u16 sStarterChooseWindowId; +// .rodata +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"); + +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 gUnknown_085B18AC[] = INCBIN_U8("graphics/misc/birch_ballarrow.4bpp.lz"); + +const u8 gUnknown_085B1BCC[] = INCBIN_U8("graphics/misc/birch_circle.4bpp.lz"); + +static const struct WindowTemplate gUnknown_085B1DCC[] = +{ + { + .priority = 0, + .tilemapLeft = 3, + .tilemapTop = 15, + .width = 24, + .height = 4, + .paletteNum = 14, + .baseBlock = 0x0200 + }, + DUMMY_WIN_TEMPLATE, +}; + +static const struct WindowTemplate gUnknown_085B1DDC = +{ + .priority = 0, + .tilemapLeft = 24, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 14, + .baseBlock = 0x0260 +}; + +static const struct WindowTemplate gUnknown_085B1DE4 = +{ + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 13, + .height = 4, + .paletteNum = 14, + .baseBlock = 0x0274 +}; + +static const u8 sPokeballCoords[STARTER_MON_COUNT][2] = +{ + {0x3c, 0x40}, + {0x78, 0x58}, + {0xb4, 0x40}, +}; + +static const u8 gStarterChoose_LabelCoords[][2] = +{ + {0x00, 0x09}, + {0x10, 0x0a}, + {0x08, 0x04}, +}; + +static const u16 sStarterMon[STARTER_MON_COUNT] = +{ + SPECIES_TREECKO, + SPECIES_TORCHIC, + SPECIES_MUDKIP, +}; + +static const struct BgTemplate gUnknown_085B1E00[3] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 7, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 6, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, +}; + +static const u8 gUnknown_085B1E0C[] = {0x00, 0x01, 0x03}; + +static const struct OamData gOamData_85B1E10 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gOamData_85B1E18 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gOamData_85B1E20 = +{ + .y = 160, + .affineMode = 3, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const u8 gUnknown_085B1E28[][2] = +{ + {0x3c, 0x20}, + {0x78, 0x38}, + {0xb4, 0x20}, +}; + +static const union AnimCmd gSpriteAnim_85B1E30[] = +{ + ANIMCMD_FRAME(48, 30), + ANIMCMD_END, +}; + +static const union AnimCmd gSpriteAnim_85B1E38[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd gSpriteAnim_85B1E40[] = +{ + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(0, 32), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gSpriteAnim_85B1E88[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd * const gSpriteAnimTable_85B1E90[] = +{ + gSpriteAnim_85B1E30, +}; + +static const union AnimCmd * const gSpriteAnimTable_85B1E94[] = +{ + gSpriteAnim_85B1E38, + gSpriteAnim_85B1E40, +}; + +static const union AnimCmd * const gSpriteAnimTable_85B1E9C[] = +{ + gSpriteAnim_85B1E88, +}; + +static const union AffineAnimCmd gSpriteAffineAnim_85B1EA0[] = +{ + AFFINEANIMCMD_FRAME(16, 16, 0, 0), + AFFINEANIMCMD_FRAME(16, 16, 0, 15), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gSpriteAffineAnim_85B1EB8[] = +{ + AFFINEANIMCMD_FRAME(20, 20, 0, 0), + AFFINEANIMCMD_FRAME(20, 20, 0, 15), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd * const gUnknown_085B1ED0 = {gSpriteAffineAnim_85B1EA0}; +static const union AffineAnimCmd * const gSpriteAffineAnimTable_85B1ED4[] = {gSpriteAffineAnim_85B1EB8}; + +static const struct CompressedSpriteSheet gUnknown_085B1ED8[] = +{ + gUnknown_085B18AC, 0x0800, 0x1000, + NULL, +}; + +static const struct CompressedSpriteSheet gUnknown_085B1EE8[] = +{ + gUnknown_085B1BCC, 0x0800, 0x1001, + NULL, +}; + +static const struct SpritePalette gUnknown_085B1EF8[] = +{ + gBirchBallarrow_Pal, 0x1000, + gBirchCircle_Pal, 0x1001, + NULL, +}; + +static const struct SpriteTemplate sSpriteTemplate_Hand = +{ + .tileTag = 0x1000, + .paletteTag = 0x1000, + .oam = &gOamData_85B1E10, + .anims = gSpriteAnimTable_85B1E90, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81346DC +}; + +static const struct SpriteTemplate sSpriteTemplate_PokeBall = +{ + .tileTag = 0x1000, + .paletteTag = 0x1000, + .oam = &gOamData_85B1E18, + .anims = gSpriteAnimTable_85B1E94, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813473C +}; + +static const struct SpriteTemplate gUnknown_085B1F40 = +{ + .tileTag = 0x1001, + .paletteTag = 0x1001, + .oam = &gOamData_85B1E20, + .anims = gSpriteAnimTable_85B1E9C, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_85B1ED4, + .callback = StarterPokemonSpriteCallback +}; + +// .text u16 GetStarterPokemon(u16 chosenStarterId) { if (chosenStarterId > STARTER_MON_COUNT) |