diff options
author | Cameron Hall <camthesaxman@users.noreply.github.com> | 2017-01-27 13:06:20 -0500 |
---|---|---|
committer | YamaArashi <YamaArashi@users.noreply.github.com> | 2017-01-27 10:06:20 -0800 |
commit | b9ff56bd89ac11a9b40b34f834dcf7a5be4d90a6 (patch) | |
tree | 4ee0f20cf1c2dc523108c424bb435cbd0bd43542 | |
parent | 72bc8f23d37c6efd68ad4a0f86ba87b6cd3db4d2 (diff) |
define more data in C (#219)
* define some graphics data in C
* define wild pokemon in C
* use less #ifdefs
* define data in berry.c
-rw-r--r-- | data/berries.inc | 689 | ||||
-rw-r--r-- | data/berry.s | 14 | ||||
-rw-r--r-- | data/clock_hand_coords.inc | 361 | ||||
-rw-r--r-- | data/credits.s | 6 | ||||
-rw-r--r-- | data/intro.s | 402 | ||||
-rw-r--r-- | data/starter_choose.s | 144 | ||||
-rw-r--r-- | data/text/berry_descriptions.inc | 257 | ||||
-rw-r--r-- | data/wallclock.s | 86 | ||||
-rw-r--r-- | data/wild_mons.inc | 3101 | ||||
-rw-r--r-- | graphics/intro/unknown1.pal | 19 | ||||
-rw-r--r-- | graphics/intro/unknown2.pal | 19 | ||||
-rw-r--r-- | include/berry.h | 12 | ||||
-rw-r--r-- | include/global.berry.h | 6 | ||||
-rw-r--r-- | include/sprite.h | 30 | ||||
-rw-r--r-- | include/wallclock.h | 5 | ||||
-rw-r--r-- | ld_script.txt | 8 | ||||
-rw-r--r-- | src/berry.c | 791 | ||||
-rw-r--r-- | src/berry_tag_screen.c | 4 | ||||
-rw-r--r-- | src/credits.c | 8 | ||||
-rw-r--r-- | src/intro.c | 567 | ||||
-rw-r--r-- | src/main_menu.c | 4 | ||||
-rw-r--r-- | src/pokemon_2.c | 12 | ||||
-rw-r--r-- | src/sprite.c | 116 | ||||
-rw-r--r-- | src/starter_choose.c | 166 | ||||
-rw-r--r-- | src/wallclock.c | 689 | ||||
-rw-r--r-- | src/wild_encounter.c | 2889 |
26 files changed, 5110 insertions, 5295 deletions
diff --git a/data/berries.inc b/data/berries.inc deleted file mode 100644 index 7d7d3edd1..000000000 --- a/data/berries.inc +++ /dev/null @@ -1,689 +0,0 @@ - .align 2 -gBerries:: @ 83CD2CC - .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/berry.s b/data/berry.s deleted file mode 100644 index 091af4105..000000000 --- a/data/berry.s +++ /dev/null @@ -1,14 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -@ 83CC740 - .include "data/text/berry_descriptions.inc" - -@ 83CD2CC - .include "data/berries.inc" - - .align 2 -gBlankBerryTree:: @ 83CD780 - .4byte 0, 0 diff --git a/data/clock_hand_coords.inc b/data/clock_hand_coords.inc deleted file mode 100644 index 476ffb788..000000000 --- a/data/clock_hand_coords.inc +++ /dev/null @@ -1,361 +0,0 @@ -gClockHandCoords:: @ 83F7B58 - .byte 0, -24 @ 0 - .byte 1, -25 @ 1 - .byte 1, -25 @ 2 - .byte 2, -25 @ 3 - .byte 2, -25 @ 4 - .byte 2, -25 @ 5 - .byte 3, -24 @ 6 - .byte 3, -25 @ 7 - .byte 4, -25 @ 8 - .byte 4, -25 @ 9 - .byte 4, -25 @ 10 - .byte 5, -25 @ 11 - .byte 5, -25 @ 12 - .byte 6, -24 @ 13 - .byte 6, -24 @ 14 - .byte 6, -24 @ 15 - .byte 7, -24 @ 16 - .byte 7, -24 @ 17 - .byte 7, -24 @ 18 - .byte 8, -24 @ 19 - .byte 8, -24 @ 20 - .byte 9, -24 @ 21 - .byte 9, -24 @ 22 - .byte 10, -23 @ 23 - .byte 10, -23 @ 24 - .byte 11, -22 @ 25 - .byte 11, -22 @ 26 - .byte 11, -22 @ 27 - .byte 12, -22 @ 28 - .byte 12, -21 @ 29 - .byte 13, -21 @ 30 - .byte 13, -21 @ 31 - .byte 13, -21 @ 32 - .byte 14, -21 @ 33 - .byte 14, -21 @ 34 - .byte 14, -20 @ 35 - .byte 14, -20 @ 36 - .byte 15, -20 @ 37 - .byte 15, -19 @ 38 - .byte 16, -19 @ 39 - .byte 16, -19 @ 40 - .byte 16, -19 @ 41 - .byte 16, -18 @ 42 - .byte 16, -18 @ 43 - .byte 17, -18 @ 44 - .byte 17, -17 @ 45 - .byte 17, -17 @ 46 - .byte 18, -17 @ 47 - .byte 18, -17 @ 48 - .byte 18, -16 @ 49 - .byte 18, -16 @ 50 - .byte 19, -16 @ 51 - .byte 19, -15 @ 52 - .byte 19, -15 @ 53 - .byte 20, -15 @ 54 - .byte 20, -14 @ 55 - .byte 20, -14 @ 56 - .byte 20, -13 @ 57 - .byte 20, -13 @ 58 - .byte 21, -13 @ 59 - .byte 21, -13 @ 60 - .byte 21, -12 @ 61 - .byte 22, -12 @ 62 - .byte 22, -12 @ 63 - .byte 22, -11 @ 64 - .byte 22, -11 @ 65 - .byte 22, -10 @ 66 - .byte 23, -10 @ 67 - .byte 23, -9 @ 68 - .byte 23, -9 @ 69 - .byte 23, -9 @ 70 - .byte 23, -9 @ 71 - .byte 23, -8 @ 72 - .byte 23, -8 @ 73 - .byte 23, -7 @ 74 - .byte 23, -7 @ 75 - .byte 23, -6 @ 76 - .byte 24, -6 @ 77 - .byte 24, -6 @ 78 - .byte 25, -5 @ 79 - .byte 25, -5 @ 80 - .byte 24, -4 @ 81 - .byte 25, -4 @ 82 - .byte 24, -3 @ 83 - .byte 25, -3 @ 84 - .byte 25, -3 @ 85 - .byte 25, -2 @ 86 - .byte 25, -2 @ 87 - .byte 24, -1 @ 88 - .byte 25, -1 @ 89 - .byte 24, 0 @ 90 - .byte 24, 0 @ 91 - .byte 24, 0 @ 92 - .byte 24, 1 @ 93 - .byte 24, 1 @ 94 - .byte 25, 2 @ 95 - .byte 24, 2 @ 96 - .byte 25, 2 @ 97 - .byte 24, 3 @ 98 - .byte 24, 3 @ 99 - .byte 25, 4 @ 100 - .byte 24, 4 @ 101 - .byte 24, 5 @ 102 - .byte 24, 5 @ 103 - .byte 24, 5 @ 104 - .byte 24, 6 @ 105 - .byte 23, 6 @ 106 - .byte 23, 6 @ 107 - .byte 23, 7 @ 108 - .byte 23, 8 @ 109 - .byte 23, 8 @ 110 - .byte 23, 8 @ 111 - .byte 23, 9 @ 112 - .byte 23, 9 @ 113 - .byte 23, 10 @ 114 - .byte 22, 10 @ 115 - .byte 22, 10 @ 116 - .byte 22, 11 @ 117 - .byte 22, 11 @ 118 - .byte 22, 11 @ 119 - .byte 22, 12 @ 120 - .byte 21, 12 @ 121 - .byte 21, 12 @ 122 - .byte 21, 13 @ 123 - .byte 20, 13 @ 124 - .byte 20, 13 @ 125 - .byte 19, 13 @ 126 - .byte 19, 13 @ 127 - .byte 19, 14 @ 128 - .byte 19, 14 @ 129 - .byte 19, 15 @ 130 - .byte 19, 15 @ 131 - .byte 18, 15 @ 132 - .byte 18, 16 @ 133 - .byte 17, 16 @ 134 - .byte 17, 16 @ 135 - .byte 17, 17 @ 136 - .byte 17, 17 @ 137 - .byte 16, 17 @ 138 - .byte 16, 18 @ 139 - .byte 16, 18 @ 140 - .byte 15, 18 @ 141 - .byte 14, 18 @ 142 - .byte 15, 19 @ 143 - .byte 14, 19 @ 144 - .byte 14, 19 @ 145 - .byte 13, 19 @ 146 - .byte 13, 20 @ 147 - .byte 13, 20 @ 148 - .byte 13, 20 @ 149 - .byte 12, 20 @ 150 - .byte 12, 20 @ 151 - .byte 12, 21 @ 152 - .byte 11, 21 @ 153 - .byte 11, 21 @ 154 - .byte 11, 21 @ 155 - .byte 10, 21 @ 156 - .byte 10, 22 @ 157 - .byte 10, 22 @ 158 - .byte 9, 22 @ 159 - .byte 9, 22 @ 160 - .byte 8, 22 @ 161 - .byte 7, 22 @ 162 - .byte 7, 23 @ 163 - .byte 7, 23 @ 164 - .byte 6, 23 @ 165 - .byte 6, 23 @ 166 - .byte 5, 23 @ 167 - .byte 5, 23 @ 168 - .byte 5, 24 @ 169 - .byte 4, 24 @ 170 - .byte 4, 24 @ 171 - .byte 4, 24 @ 172 - .byte 3, 24 @ 173 - .byte 2, 24 @ 174 - .byte 2, 24 @ 175 - .byte 1, 24 @ 176 - .byte 1, 24 @ 177 - .byte 0, 24 @ 178 - .byte 0, 24 @ 179 - .byte -1, 23 @ 180 - .byte 0, 24 @ 181 - .byte 0, 24 @ 182 - .byte -1, 24 @ 183 - .byte -1, 24 @ 184 - .byte -2, 24 @ 185 - .byte -2, 24 @ 186 - .byte -3, 24 @ 187 - .byte -3, 24 @ 188 - .byte -4, 24 @ 189 - .byte -4, 24 @ 190 - .byte -5, 24 @ 191 - .byte -5, 23 @ 192 - .byte -5, 23 @ 193 - .byte -6, 23 @ 194 - .byte -6, 23 @ 195 - .byte -7, 23 @ 196 - .byte -7, 23 @ 197 - .byte -7, 23 @ 198 - .byte -8, 23 @ 199 - .byte -8, 22 @ 200 - .byte -9, 22 @ 201 - .byte -9, 22 @ 202 - .byte -10, 22 @ 203 - .byte -10, 22 @ 204 - .byte -10, 21 @ 205 - .byte -11, 21 @ 206 - .byte -11, 21 @ 207 - .byte -11, 21 @ 208 - .byte -11, 20 @ 209 - .byte -12, 20 @ 210 - .byte -12, 20 @ 211 - .byte -13, 20 @ 212 - .byte -13, 20 @ 213 - .byte -13, 19 @ 214 - .byte -14, 19 @ 215 - .byte -14, 19 @ 216 - .byte -14, 19 @ 217 - .byte -14, 18 @ 218 - .byte -15, 18 @ 219 - .byte -15, 18 @ 220 - .byte -15, 17 @ 221 - .byte -16, 17 @ 222 - .byte -16, 17 @ 223 - .byte -17, 17 @ 224 - .byte -17, 16 @ 225 - .byte -17, 16 @ 226 - .byte -18, 16 @ 227 - .byte -17, 15 @ 228 - .byte -18, 15 @ 229 - .byte -18, 15 @ 230 - .byte -19, 15 @ 231 - .byte -19, 14 @ 232 - .byte -19, 14 @ 233 - .byte -19, 13 @ 234 - .byte -19, 13 @ 235 - .byte -20, 13 @ 236 - .byte -20, 12 @ 237 - .byte -20, 12 @ 238 - .byte -21, 12 @ 239 - .byte -21, 12 @ 240 - .byte -21, 11 @ 241 - .byte -21, 11 @ 242 - .byte -21, 10 @ 243 - .byte -21, 10 @ 244 - .byte -21, 9 @ 245 - .byte -22, 9 @ 246 - .byte -22, 9 @ 247 - .byte -22, 8 @ 248 - .byte -22, 8 @ 249 - .byte -22, 7 @ 250 - .byte -23, 7 @ 251 - .byte -23, 7 @ 252 - .byte -23, 6 @ 253 - .byte -23, 6 @ 254 - .byte -23, 5 @ 255 - .byte -24, 5 @ 256 - .byte -23, 4 @ 257 - .byte -23, 4 @ 258 - .byte -24, 4 @ 259 - .byte -24, 4 @ 260 - .byte -24, 3 @ 261 - .byte -24, 3 @ 262 - .byte -24, 2 @ 263 - .byte -24, 2 @ 264 - .byte -24, 1 @ 265 - .byte -24, 1 @ 266 - .byte -24, 1 @ 267 - .byte -24, 0 @ 268 - .byte -25, 0 @ 269 - .byte -24, -1 @ 270 - .byte -25, -1 @ 271 - .byte -24, -1 @ 272 - .byte -24, -2 @ 273 - .byte -24, -2 @ 274 - .byte -24, -3 @ 275 - .byte -24, -3 @ 276 - .byte -24, -4 @ 277 - .byte -24, -4 @ 278 - .byte -24, -4 @ 279 - .byte -24, -5 @ 280 - .byte -24, -5 @ 281 - .byte -24, -6 @ 282 - .byte -24, -6 @ 283 - .byte -23, -6 @ 284 - .byte -23, -7 @ 285 - .byte -23, -7 @ 286 - .byte -23, -8 @ 287 - .byte -23, -8 @ 288 - .byte -23, -9 @ 289 - .byte -23, -9 @ 290 - .byte -22, -9 @ 291 - .byte -22, -9 @ 292 - .byte -22, -10 @ 293 - .byte -22, -10 @ 294 - .byte -21, -10 @ 295 - .byte -21, -11 @ 296 - .byte -22, -11 @ 297 - .byte -22, -12 @ 298 - .byte -21, -12 @ 299 - .byte -21, -13 @ 300 - .byte -21, -13 @ 301 - .byte -20, -13 @ 302 - .byte -21, -14 @ 303 - .byte -20, -14 @ 304 - .byte -20, -14 @ 305 - .byte -19, -14 @ 306 - .byte -19, -15 @ 307 - .byte -19, -15 @ 308 - .byte -18, -16 @ 309 - .byte -18, -16 @ 310 - .byte -18, -16 @ 311 - .byte -18, -17 @ 312 - .byte -18, -17 @ 313 - .byte -17, -17 @ 314 - .byte -17, -18 @ 315 - .byte -17, -18 @ 316 - .byte -16, -18 @ 317 - .byte -16, -18 @ 318 - .byte -16, -19 @ 319 - .byte -16, -19 @ 320 - .byte -15, -19 @ 321 - .byte -15, -19 @ 322 - .byte -15, -20 @ 323 - .byte -14, -20 @ 324 - .byte -14, -20 @ 325 - .byte -14, -21 @ 326 - .byte -13, -21 @ 327 - .byte -13, -21 @ 328 - .byte -13, -21 @ 329 - .byte -12, -21 @ 330 - .byte -12, -22 @ 331 - .byte -11, -22 @ 332 - .byte -11, -22 @ 333 - .byte -11, -22 @ 334 - .byte -10, -22 @ 335 - .byte -10, -22 @ 336 - .byte -9, -22 @ 337 - .byte -9, -23 @ 338 - .byte -9, -23 @ 339 - .byte -8, -23 @ 340 - .byte -8, -23 @ 341 - .byte -7, -23 @ 342 - .byte -7, -23 @ 343 - .byte -7, -24 @ 344 - .byte -6, -24 @ 345 - .byte -6, -24 @ 346 - .byte -5, -24 @ 347 - .byte -5, -24 @ 348 - .byte -4, -24 @ 349 - .byte -4, -24 @ 350 - .byte -4, -24 @ 351 - .byte -4, -25 @ 352 - .byte -3, -25 @ 353 - .byte -2, -25 @ 354 - .byte -2, -24 @ 355 - .byte -2, -24 @ 356 - .byte -1, -25 @ 357 - .byte -1, -25 @ 358 - .byte 0, -25 @ 359 diff --git a/data/credits.s b/data/credits.s index 72fbde4f2..e5f5188d3 100644 --- a/data/credits.s +++ b/data/credits.s @@ -3,12 +3,6 @@ .section .rodata -gUnknown_0840B7BC:: @ 840B7BC - .incbin "graphics/credits/palette_1.gbapal" - -gUnknown_0840B7FC:: @ 840B7FC - .incbin "graphics/credits/ampersand.4bpp" - gUnknown_0840B83C:: @ 840B83C .incbin "baserom.gba", 0x0040b83c, 0xf diff --git a/data/intro.s b/data/intro.s index 11cf7d2e5..ed5daf33a 100644 --- a/data/intro.s +++ b/data/intro.s @@ -4,408 +4,6 @@ .section .rodata .align 2 -Palette_406340:: @ 8406340 - .incbin "baserom.gba", 0x406340, 0x20 - - .align 2 -Palette_406360:: @ 8406360 - .incbin "baserom.gba", 0x406360, 0x20 - - .align 2 -gIntroTiles:: - .incbin "graphics/intro/intro.4bpp.lz" - - .align 2 -gIntro1BGPals:: @ 8406974 - .incbin "graphics/intro/intro1_bgpal1.gbapal" - .incbin "graphics/intro/intro1_bgpal2.gbapal" - .incbin "graphics/intro/intro1_bgpal3.gbapal" - .incbin "graphics/intro/intro1_bgpal4.gbapal" - .incbin "graphics/intro/intro1_bgpal5.gbapal" - .incbin "graphics/intro/intro1_bgpal6.gbapal" - .incbin "graphics/intro/intro1_bgpal7.gbapal" - .incbin "graphics/intro/intro1_bgpal8.gbapal" - .incbin "graphics/intro/intro1_bgpal9.gbapal" - .incbin "graphics/intro/intro1_bgpal10.gbapal" - .incbin "graphics/intro/intro1_bgpal11.gbapal" - .incbin "graphics/intro/intro1_bgpal12.gbapal" - .incbin "graphics/intro/intro1_bgpal13.gbapal" - .incbin "graphics/intro/intro1_bgpal14.gbapal" - .incbin "graphics/intro/intro1_bgpal15.gbapal" - .incbin "graphics/intro/intro1_bgpal16.gbapal" - - .align 2 -gIntro1BG0_Tilemap:: @ 8406B74 - .incbin "graphics/intro/intro1_bg0_map.bin.lz" - - .align 2 -gIntro1BG1_Tilemap:: @ 8406F28 - .incbin "graphics/intro/intro1_bg1_map.bin.lz" - - .align 2 -gIntro1BG2_Tilemap:: @ 840725C - .incbin "graphics/intro/intro1_bg2_map.bin.lz" - - .align 2 -gIntro1BG3_Tilemap:: @ 840754C - .incbin "graphics/intro/intro1_bg3_map.bin.lz" - - .align 2 -gIntro1BGLeavesGfx:: @ 8407764 - .incbin "graphics/intro/introgfx.4bpp.lz" - - .align 2 -gIntro3PokeballPal:: @ 84098D4 - .incbin "graphics/intro/intro3_pokeball.gbapal" - - .align 2 -gIntro3Pokeball_Tilemap:: @ 8409AD4 - .incbin "graphics/intro/intro3_pokeball_map.bin.lz" - - .align 2 -gIntro3Pokeball_Gfx:: @ 8409C04 - .incbin "graphics/intro/intro3_pokeball.8bpp.lz" - - .align 2 -gIntro3Streaks_Pal:: @ 840A758 - .incbin "graphics/intro/intro3_streaks.gbapal" - - .align 2 -gIntro3Streaks_Gfx:: @ 840A778 - .incbin "graphics/intro/intro3_streaks.4bpp.lz" - - .align 2 -gIntro3Streaks_Tilemap:: @ 840A7E4 - .incbin "graphics/intro/intro3_streaks_map.bin.lz" - - .align 2 -gIntro3Misc1Palette:: - .incbin "graphics/intro/intro3_misc1.gbapal" - - .align 2 -gIntro3Misc2Palette:: - .incbin "graphics/intro/intro3_misc2.gbapal" - - .align 2 -gIntro3MiscTiles:: - .incbin "graphics/intro/intro3_misc.4bpp.lz" - - .align 2 -gIntro1EonPalette:: - .incbin "graphics/intro/intro1_eon.gbapal" - - .align 2 -gIntro1EonTiles:: - .incbin "graphics/intro/intro1_eon.4bpp.lz" - - .align 2 -gOamData_840ADE8:: @ 840ADE8 - .2byte 0x00A0 - .2byte 0x8000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_840ADF0:: @ 840ADF0 - obj_image_anim_frame 16, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840ADF8:: @ 840ADF8 - obj_image_anim_frame 24, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AE00:: @ 840AE00 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AE08:: @ 840AE08 - obj_image_anim_frame 48, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840AE10:: @ 840AE10 - .4byte gSpriteAnim_840ADF0 - .4byte gSpriteAnim_840ADF8 - .4byte gSpriteAnim_840AE00 - .4byte gSpriteAnim_840AE08 - - .align 2 -gSpriteTemplate_840AE20:: @ 840AE20 - spr_template 2000, 2000, gOamData_840ADE8, gSpriteAnimTable_840AE10, NULL, gDummySpriteAffineAnimTable, sub_813D208 - - .align 2 -Unknown_40AE38: @ 840AE38 - .incbin "baserom.gba", 0x40ae38, 0x14 - - .align 2 -Unknown_40AE4C: @ 840AE4C - .incbin "baserom.gba", 0x40ae4c, 0x14 - - .align 2 -Unknown_40AE60: @ 840AE60 - .incbin "baserom.gba", 0x40ae60, 0x10 - - .align 2 -Unknown_40AE70: @ 840AE70 - .incbin "baserom.gba", 0x40ae70, 0x10 - - .align 2 -gUnknown_0840AE80:: @ 840AE80 - .4byte Unknown_40AE38 - .4byte Unknown_40AE4C - .4byte Unknown_40AE60 - .4byte Unknown_40AE70 - - .align 2 -gOamData_840AE90:: @ 840AE90 - .2byte 0x00A0 - .2byte 0x4000 - .2byte 0x0000 - - .align 2 -gOamData_840AE98:: @ 840AE98 - .2byte 0x00A0 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gOamData_840AEA0:: @ 840AEA0 - .2byte 0x80A0 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_840AEA8:: @ 840AEA8 - obj_image_anim_frame 80, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEB0:: @ 840AEB0 - obj_image_anim_frame 84, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEB8:: @ 840AEB8 - obj_image_anim_frame 88, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEC0:: @ 840AEC0 - obj_image_anim_frame 92, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEC8:: @ 840AEC8 - obj_image_anim_frame 96, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AED0:: @ 840AED0 - obj_image_anim_frame 100, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AED8:: @ 840AED8 - obj_image_anim_frame 104, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEE0:: @ 840AEE0 - obj_image_anim_frame 112, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEE8:: @ 840AEE8 - obj_image_anim_frame 113, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEF0:: @ 840AEF0 - obj_image_anim_frame 114, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEF8:: @ 840AEF8 - obj_image_anim_frame 115, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AF00:: @ 840AF00 - obj_image_anim_frame 116, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AF08:: @ 840AF08 - obj_image_anim_frame 117, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AF10:: @ 840AF10 - obj_image_anim_frame 128, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840AF18:: @ 840AF18 - .4byte gSpriteAnim_840AEA8 - .4byte gSpriteAnim_840AEB0 - .4byte gSpriteAnim_840AEB8 - .4byte gSpriteAnim_840AEC0 - .4byte gSpriteAnim_840AEC8 - .4byte gSpriteAnim_840AED0 - .4byte gSpriteAnim_840AED8 - - .align 2 -gSpriteAnimTable_840AF34:: @ 840AF34 - .4byte gSpriteAnim_840AEE0 - .4byte gSpriteAnim_840AEE8 - .4byte gSpriteAnim_840AEF0 - .4byte gSpriteAnim_840AEF8 - .4byte gSpriteAnim_840AF00 - .4byte gSpriteAnim_840AF08 - - .align 2 -gSpriteAnimTable_840AF4C:: @ 840AF4C - .4byte gSpriteAnim_840AF10 - -gUnknown_0840AF50:: @ 840AF50 - .incbin "baserom.gba", 0x0040af50, 0x24 - -gUnknown_0840AF74:: @ 840AF74 - .incbin "baserom.gba", 0x0040af74, 0x20 - - .align 2 -gSpriteTemplate_840AF94:: @ 840AF94 - spr_template 2000, 2001, gOamData_840AE90, gSpriteAnimTable_840AF18, NULL, gDummySpriteAffineAnimTable, sub_813D908 - - .align 2 -gSpriteTemplate_840AFAC:: @ 840AFAC - spr_template 2000, 2001, gOamData_840AE98, gSpriteAnimTable_840AF34, NULL, gDummySpriteAffineAnimTable, sub_813D908 - - .align 2 -gSpriteTemplate_840AFC4:: @ 840AFC4 - spr_template 2000, 2001, gOamData_840AEA0, gSpriteAnimTable_840AF4C, NULL, gDummySpriteAffineAnimTable, sub_813D908 - - .align 2 -gOamData_840AFDC:: @ 840AFDC - .2byte 0x40A0 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_840AFE4:: @ 840AFE4 - obj_image_anim_frame 0, 10 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_840AFEC:: @ 840AFEC - .4byte gSpriteAnim_840AFE4 - - .align 2 -gSpriteTemplate_840AFF0:: @ 840AFF0 - spr_template 2002, 2002, gOamData_840AFDC, gSpriteAnimTable_840AFEC, NULL, gDummySpriteAffineAnimTable, sub_813DA64 - - .align 2 -gUnknown_0840B008:: @ 840B008 - obj_tiles gIntroTiles, 0x1400, 2000 - .space 8 - - .align 2 -gUnknown_0840B018:: @ 840B018 - obj_tiles gIntro1EonTiles, 0x400, 2002 - .space 8 - - .align 2 -gUnknown_0840B028:: @ 840B028 - obj_pal Palette_406340, 2000 - obj_pal Palette_406360, 2001 - obj_pal gIntro1EonPalette, 2002 - .space 8 - -gUnknown_0840B048:: @ 840B048 - .incbin "baserom.gba", 0x40b048, 0x8 - -gUnknown_0840B050:: @ 840B050 - .incbin "baserom.gba", 0x40b050, 0x8 - -gUnknown_0840B058:: @ 840B058 - .incbin "baserom.gba", 0x40b058, 0xc - - .align 2 -gUnknown_0840B064:: @ 840B064 - .4byte gUnknown_0840B048 - .4byte gUnknown_0840B050 - .4byte gUnknown_0840B058 - - .align 2 -gOamData_840B070:: @ 840B070 - .2byte 0x00A0 - .2byte 0x4000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_840B078:: @ 840B078 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840B080:: @ 840B080 - .4byte gSpriteAnim_840B078 - - .align 2 -gSpriteTemplate_840B084:: @ 840B084 - spr_template 2002, 2002, gOamData_840B070, gSpriteAnimTable_840B080, NULL, gDummySpriteAffineAnimTable, sub_813E30C - - .align 2 -gOamData_840B09C:: @ 840B09C - .2byte 0x00A0 - .2byte 0x0000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_840B0A4:: @ 840B0A4 - obj_image_anim_frame 1, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840B0AC:: @ 840B0AC - .4byte gSpriteAnim_840B0A4 - - .align 2 -gSpriteTemplate_840B0B0:: @ 840B0B0 - spr_template 2003, 2003, gOamData_840B09C, gSpriteAnimTable_840B0AC, NULL, gDummySpriteAffineAnimTable, sub_813E4B8 - - .align 2 -gOamData_840B0C8:: @ 840B0C8 - .2byte 0x00A0 - .2byte 0x0000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_840B0D0:: @ 840B0D0 - obj_image_anim_frame 14, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840B0D8:: @ 840B0D8 - .4byte gSpriteAnim_840B0D0 - - .align 2 -gSpriteTemplate_840B0DC:: @ 840B0DC - spr_template 2003, 2004, gOamData_840B0C8, gSpriteAnimTable_840B0D8, NULL, gDummySpriteAffineAnimTable, sub_813E5E0 - - .align 2 -gSpriteTemplate_840B0F4:: @ 840B0F4 - spr_template 2003, 2004, gOamData_840B0C8, gSpriteAnimTable_840B0D8, NULL, gDummySpriteAffineAnimTable, sub_813E6C0 - - .align 2 -gOamData_840B10C:: @ 840B10C - .2byte 0x00A0 - .2byte 0x4000 - .2byte 0x0400 - - .align 2 gSpriteAnim_840B114:: @ 840B114 obj_image_anim_frame 6, 8 obj_image_anim_frame 6, 8, OBJ_IMAGE_ANIM_H_FLIP diff --git a/data/starter_choose.s b/data/starter_choose.s index 4c549b449..123d1e5fe 100644 --- a/data/starter_choose.s +++ b/data/starter_choose.s @@ -3,150 +3,6 @@ .section .rodata - .align 2 -gBirchBagGrassPal:: @ 83F62EC - .incbin "graphics/misc/birch_bag.gbapal" - .incbin "graphics/misc/birch_grass.gbapal" - - .align 2 -gBirchBallarrow_Pal:: - .incbin "graphics/misc/birch_ballarrow.gbapal" - - .align 2 -gBirchCircle_Pal:: - .incbin "graphics/misc/birch_circle.gbapal" - - .align 2 -gBirchBagTilemap:: @ 83F636C - .incbin "graphics/misc/birch_bag_map.bin.lz" - - .align 2 -gBirchGrassTilemap:: @ 83F64F8 - .incbin "graphics/misc/birch_grass_map.bin.lz" - - .align 2 -gBirchHelpGfx:: @ 83F66F0 - .incbin "graphics/misc/birch_help.4bpp.lz" - - .align 2 -gBirchBallarrow_Gfx:: - .incbin "graphics/misc/birch_ballarrow.4bpp.lz" - - .align 2 -gBirchCircle_Gfx:: - .incbin "graphics/misc/birch_circle.4bpp.lz" - -gStarterChoose_PokeballCoords:: @ 83F76B8 - .byte 60, 64 - .byte 120, 88 - .byte 180, 64 - -gStarterChoose_LabelCoords:: @ 83F76BE - .byte 0, 9 - .byte 16, 10 - .byte 8, 4 - - .align 1 -gStarterMons:: @ 83F76C4 - .2byte SPECIES_TREECKO - .2byte SPECIES_TORCHIC - .2byte SPECIES_MUDKIP - .2byte 0 - - .align 2 -gOamData_83F76CC:: @ 83F76CC - .2byte 0x00A0 - .2byte 0x8000 - .2byte 0x0400 - - .align 2 -gOamData_83F76D4:: @ 83F76D4 - .2byte 0x00A0 - .2byte 0x8000 - .2byte 0x0400 - - .align 2 -gOamData_83F76DC:: @ 83F76DC - .2byte 0x03A0 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gUnknown_083F76E4:: @ 83F76E4 - .byte 60, 32 - .byte 120, 56 - .byte 180, 32 - .byte 0, 0 - - .align 2 -gSpriteAnim_83F76EC:: @ 83F76EC - obj_image_anim_frame 48, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83F76F4:: @ 83F76F4 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83F76FC:: @ 83F76FC - obj_image_anim_frame 16, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 32, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 16, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 32, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 0, 32 - obj_image_anim_frame 16, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 32, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 16, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 32, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_83F7744:: @ 83F7744 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83F774C:: @ 83F774C - .4byte gSpriteAnim_83F76EC - - .align 2 -gSpriteAnimTable_83F7750:: @ 83F7750 - .4byte gSpriteAnim_83F76F4 - .4byte gSpriteAnim_83F76FC - - .align 2 -gSpriteAnimTable_83F7758:: @ 83F7758 - .4byte gSpriteAnim_83F7744 - - .align 2 -gSpriteAffineAnim_83F775C:: @ 83F775C - obj_rot_scal_anim_frame 0x10, 0x10, 0, 0 - obj_rot_scal_anim_frame 0x10, 0x10, 0, 15 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83F7774:: @ 83F7774 - obj_rot_scal_anim_frame 0x14, 0x14, 0, 0 - obj_rot_scal_anim_frame 0x14, 0x14, 0, 15 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83F778C:: @ 83F778C - .4byte gSpriteAffineAnim_83F775C - - .align 2 -gSpriteAffineAnimTable_83F7790:: @ 83F7790 - .4byte gSpriteAffineAnim_83F7774 - gUnknown_083F7794:: @ 83F7794 obj_tiles gBirchBallarrow_Gfx, 0x0800, 0x1000 .space 8 diff --git a/data/text/berry_descriptions.inc b/data/text/berry_descriptions.inc deleted file mode 100644 index ace0cff17..000000000 --- a/data/text/berry_descriptions.inc +++ /dev/null @@ -1,257 +0,0 @@ -gBerryDescriptionPart1_Cheri: @ 83CC740 - .string "Blooms with delicate pretty flowers.$" - -gBerryDescriptionPart2_Cheri: @ 83CC765 - .string "The bright red BERRY is very spicy.$" - -gBerryDescriptionPart1_Chesto: @ 83CC789 - .string "The BERRY’s thick skin and fruit are$" - -gBerryDescriptionPart2_Chesto: @ 83CC7AE - .string "very tough. It is dry-tasting all over.$" - -gBerryDescriptionPart1_Pecha: @ 83CC7D6 - .string "Very sweet and delicious.$" - -gBerryDescriptionPart2_Pecha: @ 83CC7F0 - .string "Also very tender - handle with care.$" - -gBerryDescriptionPart1_Rawst: @ 83CC815 - .string "If the leaves grow long and curly,$" - -gBerryDescriptionPart2_Rawst: @ 83CC838 - .string "the BERRY seems to grow very bitter.$" - -gBerryDescriptionPart1_Aspear: @ 83CC85D - .string "The hard BERRY is dense with a rich$" - -gBerryDescriptionPart2_Aspear: @ 83CC881 - .string "juice. It is quite sour.$" - -gBerryDescriptionPart1_Leppa: @ 83CC89A - .string "Grows slower than CHERI and others.$" - -gBerryDescriptionPart2_Leppa: @ 83CC8BE - .string "The smaller the BERRY, the tastier.$" - -gBerryDescriptionPart1_Oran: @ 83CC8E2 - .string "A peculiar BERRY with a mix of flavors.$" - -gBerryDescriptionPart2_Oran: @ 83CC90A - .string "BERRIES grow in half a day.$" - -gBerryDescriptionPart1_Persim: @ 83CC926 - .string "Loves sunlight. The BERRY’s color$" - -gBerryDescriptionPart2_Persim: @ 83CC948 - .string "grows vivid when exposed to the sun.$" - -gBerryDescriptionPart1_Lum: @ 83CC96D - .string "Slow to grow. If raised with loving$" - -gBerryDescriptionPart2_Lum: @ 83CC991 - .string "care, it may grow two BERRIES.$" - -gBerryDescriptionPart1_Sitrus: @ 83CC9B0 - .string "Closely related to ORAN. The large$" - -gBerryDescriptionPart2_Sitrus: @ 83CC9D3 - .string "BERRY has a well-rounded flavor.$" - -gBerryDescriptionPart1_Figy: @ 83CC9F4 - .string "The BERRY, which looks chewed up,$" - -gBerryDescriptionPart2_Figy: @ 83CCA16 - .string "brims with spicy substances.$" - -gBerryDescriptionPart1_Wiki: @ 83CCA33 - .string "The BERRY is said to have grown lumpy$" - -gBerryDescriptionPart2_Wiki: @ 83CCA59 - .string "to help POKéMON grip it.$" - -gBerryDescriptionPart1_Mago: @ 83CCA72 - .string "The BERRY turns curvy as it grows.$" - -gBerryDescriptionPart2_Mago: @ 83CCA95 - .string "The curvier, the sweeter and tastier.$" - -gBerryDescriptionPart1_Aguav: @ 83CCABB - .string "The flower is dainty. It is rare in its$" - -gBerryDescriptionPart2_Aguav: @ 83CCAE3 - .string "ability to grow without light.$" - -gBerryDescriptionPart1_Iapapa: @ 83CCB02 - .string "The BERRY is very big and sour.$" - -gBerryDescriptionPart2_Iapapa: @ 83CCB22 - .string "It takes at least a day to grow.$" - -gBerryDescriptionPart1_Razz: @ 83CCB43 - .string "The red BERRY tastes slightly spicy.$" - -gBerryDescriptionPart2_Razz: @ 83CCB68 - .string "It grows quickly in just four hours.$" - -gBerryDescriptionPart1_Bluk: @ 83CCB8D - .string "The BERRY is blue on the outside, but$" - -gBerryDescriptionPart2_Bluk: @ 83CCBB3 - .string "it blackens the mouth when eaten.$" - -gBerryDescriptionPart1_Nanab: @ 83CCBD5 - .string "This BERRY was the seventh$" - -gBerryDescriptionPart2_Nanab: @ 83CCBF0 - .string "discovered in the world. It is sweet.$" - -gBerryDescriptionPart1_Wepear: @ 83CCC16 - .string "The flower is small and white. It has a$" - -gBerryDescriptionPart2_Wepear: @ 83CCC3E - .string "delicate balance of bitter and sour.$" - -gBerryDescriptionPart1_Pinap: @ 83CCC63 - .string "Weak against wind and cold.$" - -gBerryDescriptionPart2_Pinap: @ 83CCC7F - .string "The fruit is spicy and the skin, sour.$" - -gBerryDescriptionPart1_Pomeg: @ 83CCCA6 - .string "However much it is watered,$" - -gBerryDescriptionPart2_Pomeg: @ 83CCCC2 - .string "it only grows up to six BERRIES.$" - -gBerryDescriptionPart1_Kelpsy: @ 83CCCE3 - .string "A rare variety shaped like a root.$" - -gBerryDescriptionPart2_Kelpsy: @ 83CCD06 - .string "Grows a very large flower.$" - -gBerryDescriptionPart1_Qualot: @ 83CCD21 - .string "Loves water. Grows strong even in$" - -gBerryDescriptionPart2_Qualot: @ 83CCD43 - .string "locations with constant rainfall.$" - -gBerryDescriptionPart1_Hondew: @ 83CCD65 - .string "A BERRY that is very valuable and$" - -gBerryDescriptionPart2_Hondew: @ 83CCD87 - .string "rarely seen. It is very delicious.$" - -gBerryDescriptionPart1_Grepa: @ 83CCDAA - .string "Despite its tenderness and round$" - -gBerryDescriptionPart2_Grepa: @ 83CCDCB - .string "shape, the BERRY is unimaginably sour.$" - -gBerryDescriptionPart1_Tamato: @ 83CCDF2 - .string "The BERRY is lip-bendingly spicy.$" - -gBerryDescriptionPart2_Tamato: @ 83CCE14 - .string "It takes time to grow.$" - -gBerryDescriptionPart1_Cornn: @ 83CCE2B - .string "A BERRY from an ancient era. May not$" - -gBerryDescriptionPart2_Cornn: @ 83CCE50 - .string "grow unless planted in quantity.$" - -gBerryDescriptionPart1_Magost: @ 83CCE71 - .string "A BERRY that is widely said to have$" - -gBerryDescriptionPart2_Magost: @ 83CCE95 - .string "a finely balanced flavor.$" - -gBerryDescriptionPart1_Rabuta: @ 83CCEAF - .string "A rare variety that is overgrown with$" - -gBerryDescriptionPart2_Rabuta: @ 83CCED5 - .string "hair. It is quite bitter.$" - -gBerryDescriptionPart1_Nomel: @ 83CCEEF - .string "Quite sour. Just one bite makes it$" - -gBerryDescriptionPart2_Nomel: @ 83CCF12 - .string "impossible to taste for three days.$" - -gBerryDescriptionPart1_Spelon: @ 83CCF36 - .string "The vividly red BERRY is very spicy.$" - -gBerryDescriptionPart2_Spelon: @ 83CCF5B - .string "Its warts secrete a spicy substance.$" - -gBerryDescriptionPart1_Pamtre: @ 83CCF80 - .string "Drifts on the sea from somewhere.$" - -gBerryDescriptionPart2_Pamtre: @ 83CCFA2 - .string "It is thought to grow elsewhere.$" - -gBerryDescriptionPart1_Watmel: @ 83CCFC3 - .string "A huge BERRY, with some over 20$" - -gBerryDescriptionPart2_Watmel: @ 83CCFE3 - .string "inches discovered. Exceedingly sweet.$" - -gBerryDescriptionPart1_Durin: @ 83CD009 - .string "Bitter to even look at. It is so$" - -gBerryDescriptionPart2_Durin: @ 83CD02A - .string "bitter, no one has ever eaten it as is.$" - -gBerryDescriptionPart1_Belue: @ 83CD052 - .string "It is glossy and looks delicious, but$" - -gBerryDescriptionPart2_Belue: @ 83CD078 - .string "it is awfully sour. Takes time to grow.$" - -gBerryDescriptionPart1_Liechi: @ 83CD0A0 - .string "A mysterious BERRY. It is rumored to$" - -gBerryDescriptionPart2_Liechi: @ 83CD0C5 - .string "contain the power of the sea.$" - -gBerryDescriptionPart1_Ganlon: @ 83CD0E3 - .string "A mysterious BERRY. It is rumored to$" - -gBerryDescriptionPart2_Ganlon: @ 83CD108 - .string "contain the power of the land.$" - -gBerryDescriptionPart1_Salac: @ 83CD127 - .string "A mysterious BERRY. It is rumored to$" - -gBerryDescriptionPart2_Salac: @ 83CD14C - .string "contain the power of the sky.$" - -gBerryDescriptionPart1_Petaya: @ 83CD16A - .string "A mysterious BERRY. It is rumored to$" - -gBerryDescriptionPart2_Petaya: @ 83CD18F - .string "contain the power of all living things.$" - -gBerryDescriptionPart1_Apicot: @ 83CD1B7 - .string "A very mystifying BERRY. No telling$" - -gBerryDescriptionPart2_Apicot: @ 83CD1DB - .string "what may happen or how it can be used.$" - -gBerryDescriptionPart1_Lansat: @ 83CD202 - .string "Said to be a legendary BERRY.$" - -gBerryDescriptionPart2_Lansat: @ 83CD220 - .string "Holding it supposedly brings joy.$" - -gBerryDescriptionPart1_Starf: @ 83CD242 - .string "So strong, it was abandoned at the$" - -gBerryDescriptionPart2_Starf: @ 83CD265 - .string "world’s edge. Considered a mirage.$" - -gBerryDescriptionPart1_Enigma: @ 83CD288 - .string "A completely enigmatic BERRY.$" - -gBerryDescriptionPart2_Enigma: @ 83CD2A6 - .string "Appears to have the power of stars.$" diff --git a/data/wallclock.s b/data/wallclock.s deleted file mode 100644 index 15ab36097..000000000 --- a/data/wallclock.s +++ /dev/null @@ -1,86 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -ClockGfx_Misc: @ 83F7814 - .incbin "graphics/misc/clock_misc.4bpp.lz" - - .align 2 -gUnknown_083F7A90:: @ 83F7A90 - obj_tiles ClockGfx_Misc, 0x2000, 0x1000 - .space 8 - - .align 2 -gUnknown_083F7AA0:: @ 83F7AA0 - obj_pal gMiscClockMale_Pal, 0x1000 - obj_pal gMiscClockFemale_Pal, 0x1001 - .space 8 - - .align 2 -gOamData_83F7AB8:: @ 83F7AB8 - .2byte 0x00A0 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_83F7AC0:: @ 83F7AC0 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83F7AC8:: @ 83F7AC8 - obj_image_anim_frame 64, 30 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83F7AD0:: @ 83F7AD0 - .4byte gSpriteAnim_83F7AC0 - - .align 2 -gSpriteAnimTable_83F7AD4:: @ 83F7AD4 - .4byte gSpriteAnim_83F7AC8 - - .align 2 -gSpriteTemplate_83F7AD8:: @ 83F7AD8 - spr_template 4096, 4096, gOamData_83F7AB8, gSpriteAnimTable_83F7AD0, NULL, gDummySpriteAffineAnimTable, sub_810B05C - - .align 2 -gSpriteTemplate_83F7AF0:: @ 83F7AF0 - spr_template 4096, 4096, gOamData_83F7AB8, gSpriteAnimTable_83F7AD4, NULL, gDummySpriteAffineAnimTable, sub_810B0F4 - - .align 2 -gOamData_83F7B08:: @ 83F7B08 - .2byte 0x00A0 - .2byte 0x4000 - .2byte 0x0800 - - .align 2 -gSpriteAnim_83F7B10:: @ 83F7B10 - obj_image_anim_frame 132, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83F7B18:: @ 83F7B18 - obj_image_anim_frame 128, 30 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83F7B20:: @ 83F7B20 - .4byte gSpriteAnim_83F7B10 - - .align 2 -gSpriteAnimTable_83F7B24:: @ 83F7B24 - .4byte gSpriteAnim_83F7B18 - - .align 2 -gSpriteTemplate_83F7B28:: @ 83F7B28 - spr_template 4096, 4096, gOamData_83F7B08, gSpriteAnimTable_83F7B20, NULL, gDummySpriteAffineAnimTable, sub_810B18C - - .align 2 -gSpriteTemplate_83F7B40:: @ 83F7B40 - spr_template 4096, 4096, gOamData_83F7B08, gSpriteAnimTable_83F7B24, NULL, gDummySpriteAffineAnimTable, sub_810B230 - -@ 83F7B58 - .include "data/clock_hand_coords.inc" diff --git a/data/wild_mons.inc b/data/wild_mons.inc index b30bc847d..01ebd8a16 100644 --- a/data/wild_mons.inc +++ b/data/wild_mons.inc @@ -1,3104 +1,3 @@ - .macro wild_mon_difference species1, species2 - .ifdef SAPPHIRE - .equiv SPECIES_\species1\()_\species2, SPECIES_\species2 - .equiv SPECIES_\species2\()_\species1, SPECIES_\species1 - .else - .equiv SPECIES_\species1\()_\species2, SPECIES_\species1 - .equiv SPECIES_\species2\()_\species1, SPECIES_\species2 - .endif - .endm - - wild_mon_difference SEEDOT, LOTAD - wild_mon_difference NUZLEAF, LOMBRE - wild_mon_difference MAWILE, SABLEYE - wild_mon_difference ZANGOOSE, SEVIPER - wild_mon_difference SOLROCK, LUNATONE - wild_mon_difference DUSKULL, SHUPPET - wild_mon_difference DUSCLOPS, BANETTE - wild_mon_difference KOFFING, GRIMER - wild_mon_difference MINUN, PLUSLE - wild_mon_difference ILLUMISE, VOLBEAT - - .align 2 -PetalburgCity_WaterMons: - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon MARILL, 5, 10 - - .align 2 -PetalburgCity_WaterMonsInfo: - .4byte 1 @ encounter rate - .4byte PetalburgCity_WaterMons - - .align 2 -PetalburgCity_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon CORPHISH, 10, 30 - wild_mon CORPHISH, 25, 30 - wild_mon CORPHISH, 30, 35 - wild_mon CORPHISH, 20, 25 - wild_mon CORPHISH, 35, 40 - wild_mon CORPHISH, 40, 45 - - .align 2 -PetalburgCity_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte PetalburgCity_FishingMons - - .align 2 -SlateportCity_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -SlateportCity_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte SlateportCity_WaterMons - - .align 2 -SlateportCity_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -SlateportCity_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte SlateportCity_FishingMons - - .align 2 -LilycoveCity_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -LilycoveCity_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte LilycoveCity_WaterMons - - .align 2 -LilycoveCity_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon STARYU, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -LilycoveCity_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte LilycoveCity_FishingMons - - .align 2 -MossdeepCity_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -MossdeepCity_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte MossdeepCity_WaterMons - - .align 2 -MossdeepCity_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -MossdeepCity_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte MossdeepCity_FishingMons - - .align 2 -SootopolisCity_WaterMons: - wild_mon MAGIKARP, 5, 35 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 15, 25 - wild_mon MAGIKARP, 25, 30 - wild_mon MAGIKARP, 25, 30 - - .align 2 -SootopolisCity_WaterMonsInfo: - .4byte 1 @ encounter rate - .4byte SootopolisCity_WaterMons - - .align 2 -SootopolisCity_FishingMons: - wild_mon MAGIKARP, 5, 10 - .ifdef SAPPHIRE - wild_mon TENTACOOL, 5, 10 - .else - wild_mon MAGIKARP, 10, 15 - .endif - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 30, 35 - wild_mon MAGIKARP, 30, 35 - wild_mon GYARADOS, 35, 40 - wild_mon GYARADOS, 35, 45 - wild_mon GYARADOS, 5, 45 - - .align 2 -SootopolisCity_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte SootopolisCity_FishingMons - - .align 2 -EverGrandeCity_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -EverGrandeCity_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte EverGrandeCity_WaterMons - - .align 2 -EverGrandeCity_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon LUVDISC, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon LUVDISC, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon CORSOLA, 30, 35 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -EverGrandeCity_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte EverGrandeCity_FishingMons - - .align 2 -MeteorFalls_1F_1R_LandMons: - wild_mon ZUBAT, 16 - wild_mon ZUBAT, 17 - wild_mon ZUBAT, 18 - wild_mon ZUBAT, 15 - wild_mon ZUBAT, 14 - wild_mon SOLROCK_LUNATONE, 16 - wild_mon SOLROCK_LUNATONE, 18 - wild_mon SOLROCK_LUNATONE, 14 - wild_mon ZUBAT, 19 - wild_mon ZUBAT, 20 - wild_mon ZUBAT, 19 - wild_mon ZUBAT, 20 - - .align 2 -MeteorFalls_1F_1R_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MeteorFalls_1F_1R_LandMons - - .align 2 -MeteorFalls_1F_1R_WaterMons: - wild_mon ZUBAT, 5, 35 - wild_mon ZUBAT, 30, 35 - wild_mon SOLROCK_LUNATONE, 25, 35 - wild_mon SOLROCK_LUNATONE, 15, 25 - wild_mon SOLROCK_LUNATONE, 5, 15 - - .align 2 -MeteorFalls_1F_1R_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte MeteorFalls_1F_1R_WaterMons - - .align 2 -MeteorFalls_1F_1R_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon BARBOACH, 20, 25 - wild_mon BARBOACH, 35, 40 - wild_mon BARBOACH, 40, 45 - - .align 2 -MeteorFalls_1F_1R_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte MeteorFalls_1F_1R_FishingMons - - .align 2 -MeteorFalls_1F_2R_LandMons: - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon SOLROCK_LUNATONE, 35 - wild_mon SOLROCK_LUNATONE, 33 - wild_mon SOLROCK_LUNATONE, 37 - wild_mon GOLBAT, 35 - wild_mon SOLROCK_LUNATONE, 39 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - - .align 2 -MeteorFalls_1F_2R_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MeteorFalls_1F_2R_LandMons - - .align 2 -MeteorFalls_1F_2R_WaterMons: - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon SOLROCK_LUNATONE, 25, 35 - wild_mon SOLROCK_LUNATONE, 15, 25 - wild_mon SOLROCK_LUNATONE, 5, 15 - - .align 2 -MeteorFalls_1F_2R_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte MeteorFalls_1F_2R_WaterMons - - .align 2 -MeteorFalls_1F_2R_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon WHISCASH, 30, 35 - wild_mon WHISCASH, 35, 40 - wild_mon WHISCASH, 40, 45 - - .align 2 -MeteorFalls_1F_2R_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte MeteorFalls_1F_2R_FishingMons - - .align 2 -MeteorFalls_B1F_1R_LandMons: - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon SOLROCK_LUNATONE, 35 - wild_mon SOLROCK_LUNATONE, 33 - wild_mon SOLROCK_LUNATONE, 37 - wild_mon GOLBAT, 35 - wild_mon SOLROCK_LUNATONE, 39 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - - .align 2 -MeteorFalls_B1F_1R_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MeteorFalls_B1F_1R_LandMons - - .align 2 -MeteorFalls_B1F_1R_WaterMons: - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon SOLROCK_LUNATONE, 25, 35 - wild_mon SOLROCK_LUNATONE, 15, 25 - wild_mon SOLROCK_LUNATONE, 5, 15 - - .align 2 -MeteorFalls_B1F_1R_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte MeteorFalls_B1F_1R_WaterMons - - .align 2 -MeteorFalls_B1F_1R_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon WHISCASH, 30, 35 - wild_mon WHISCASH, 35, 40 - wild_mon WHISCASH, 40, 45 - - .align 2 -MeteorFalls_B1F_1R_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte MeteorFalls_B1F_1R_FishingMons - - .align 2 -MeteorFalls_B1F_2R_LandMons: - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 35 - wild_mon BAGON, 30 - wild_mon SOLROCK_LUNATONE, 35 - wild_mon BAGON, 35 - wild_mon SOLROCK_LUNATONE, 37 - wild_mon BAGON, 25 - wild_mon SOLROCK_LUNATONE, 39 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - - .align 2 -MeteorFalls_B1F_2R_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MeteorFalls_B1F_2R_LandMons - - .align 2 -MeteorFalls_B1F_2R_WaterMons: - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon SOLROCK_LUNATONE, 25, 35 - wild_mon SOLROCK_LUNATONE, 15, 25 - wild_mon SOLROCK_LUNATONE, 5, 15 - - .align 2 -MeteorFalls_B1F_2R_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte MeteorFalls_B1F_2R_WaterMons - - .align 2 -MeteorFalls_B1F_2R_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon WHISCASH, 30, 35 - wild_mon WHISCASH, 35, 40 - wild_mon WHISCASH, 40, 45 - - .align 2 -MeteorFalls_B1F_2R_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte MeteorFalls_B1F_2R_FishingMons - - .align 2 -RusturfTunnel_LandMons: - wild_mon WHISMUR, 6 - wild_mon WHISMUR, 7 - wild_mon WHISMUR, 6 - wild_mon WHISMUR, 6 - wild_mon WHISMUR, 7 - wild_mon WHISMUR, 7 - wild_mon WHISMUR, 5 - wild_mon WHISMUR, 8 - wild_mon WHISMUR, 5 - wild_mon WHISMUR, 8 - wild_mon WHISMUR, 5 - wild_mon WHISMUR, 8 - - .align 2 -RusturfTunnel_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte RusturfTunnel_LandMons - - .align 2 -GraniteCave_1F_LandMons: - wild_mon ZUBAT, 7 - wild_mon MAKUHITA, 8 - wild_mon MAKUHITA, 7 - wild_mon ZUBAT, 8 - wild_mon MAKUHITA, 9 - wild_mon ABRA, 8 - wild_mon MAKUHITA, 10 - wild_mon MAKUHITA, 6 - wild_mon GEODUDE, 7 - wild_mon GEODUDE, 8 - wild_mon GEODUDE, 6 - wild_mon GEODUDE, 9 - - .align 2 -GraniteCave_1F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte GraniteCave_1F_LandMons - - .align 2 -GraniteCave_B1F_LandMons: - wild_mon ZUBAT, 9 - wild_mon ARON, 10 - wild_mon ARON, 9 - wild_mon ARON, 11 - wild_mon ZUBAT, 10 - wild_mon ABRA, 9 - wild_mon MAKUHITA, 10 - wild_mon MAKUHITA, 11 - wild_mon MAWILE_SABLEYE, 10 - wild_mon MAWILE_SABLEYE, 10 - wild_mon MAWILE_SABLEYE, 9 - wild_mon MAWILE_SABLEYE, 11 - - .align 2 -GraniteCave_B1F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte GraniteCave_B1F_LandMons - - .align 2 -GraniteCave_B2F_LandMons: - wild_mon ZUBAT, 10 - wild_mon ARON, 11 - wild_mon ARON, 10 - wild_mon ZUBAT, 11 - wild_mon ARON, 12 - wild_mon ABRA, 10 - wild_mon MAWILE_SABLEYE, 10 - wild_mon MAWILE_SABLEYE, 11 - wild_mon MAWILE_SABLEYE, 12 - wild_mon MAWILE_SABLEYE, 10 - wild_mon MAWILE_SABLEYE, 12 - wild_mon MAWILE_SABLEYE, 10 - - .align 2 -GraniteCave_B2F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte GraniteCave_B2F_LandMons - - .align 2 -GraniteCave_B2F_RockSmashMons: - wild_mon GEODUDE, 10, 15 - wild_mon NOSEPASS, 10, 20 - wild_mon GEODUDE, 5, 10 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 - - .align 2 -GraniteCave_B2F_RockSmashMonsInfo: - .4byte 20 @ encounter rate - .4byte GraniteCave_B2F_RockSmashMons - - .align 2 -GraniteCave_StevensRoom_LandMons: - wild_mon ZUBAT, 7 - wild_mon MAKUHITA, 8 - wild_mon MAKUHITA, 7 - wild_mon ZUBAT, 8 - wild_mon MAKUHITA, 9 - wild_mon ABRA, 8 - wild_mon MAKUHITA, 10 - wild_mon MAKUHITA, 6 - wild_mon ARON, 7 - wild_mon ARON, 8 - wild_mon ARON, 7 - wild_mon ARON, 8 - - .align 2 -GraniteCave_StevensRoom_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte GraniteCave_StevensRoom_LandMons - - .align 2 -PetalburgWoods_LandMons: - wild_mon ZIGZAGOON, 5 - wild_mon WURMPLE, 5 - wild_mon SHROOMISH, 5 - wild_mon ZIGZAGOON, 6 - wild_mon SILCOON, 5 - wild_mon CASCOON, 5 - wild_mon WURMPLE, 6 - wild_mon SHROOMISH, 6 - wild_mon TAILLOW, 5 - wild_mon SLAKOTH, 5 - wild_mon TAILLOW, 6 - wild_mon SLAKOTH, 6 - - .align 2 -PetalburgWoods_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte PetalburgWoods_LandMons - - .ifdef SAPPHIRE - .equiv JAGGED_PASS_LEVEL_DIFF, 2 - .else - .equiv JAGGED_PASS_LEVEL_DIFF, 0 - .endif - - .align 2 -JaggedPass_LandMons: - wild_mon NUMEL, 19 + JAGGED_PASS_LEVEL_DIFF - wild_mon NUMEL, 19 + JAGGED_PASS_LEVEL_DIFF - wild_mon MACHOP, 19 + JAGGED_PASS_LEVEL_DIFF - wild_mon NUMEL, 18 + JAGGED_PASS_LEVEL_DIFF - wild_mon SPOINK, 18 + JAGGED_PASS_LEVEL_DIFF - wild_mon MACHOP, 18 + JAGGED_PASS_LEVEL_DIFF - wild_mon SPOINK, 19 + JAGGED_PASS_LEVEL_DIFF - wild_mon MACHOP, 20 + JAGGED_PASS_LEVEL_DIFF - wild_mon NUMEL, 20 + JAGGED_PASS_LEVEL_DIFF - wild_mon SPOINK, 20 + JAGGED_PASS_LEVEL_DIFF - wild_mon NUMEL, 20 + JAGGED_PASS_LEVEL_DIFF - wild_mon SPOINK, 20 + JAGGED_PASS_LEVEL_DIFF - - .align 2 -JaggedPass_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte JaggedPass_LandMons - - .align 2 -FieryPath_LandMons: - wild_mon NUMEL, 15 - wild_mon KOFFING_GRIMER, 15 - wild_mon NUMEL, 16 - wild_mon MACHOP, 15 - wild_mon TORKOAL, 15 - wild_mon SLUGMA, 15 - wild_mon KOFFING_GRIMER, 16 - wild_mon MACHOP, 16 - wild_mon TORKOAL, 14 - wild_mon TORKOAL, 16 - wild_mon GRIMER_KOFFING, 14 - wild_mon GRIMER_KOFFING, 14 - - .align 2 -FieryPath_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte FieryPath_LandMons - - .align 2 -MtPyre_1F_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 23 - wild_mon DUSKULL_SHUPPET, 22 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - - .align 2 -MtPyre_1F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_1F_LandMons - - .align 2 -MtPyre_2F_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 23 - wild_mon DUSKULL_SHUPPET, 22 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - - .align 2 -MtPyre_2F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_2F_LandMons - - .align 2 -MtPyre_3F_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 23 - wild_mon DUSKULL_SHUPPET, 22 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - - .align 2 -MtPyre_3F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_3F_LandMons - - .align 2 -MtPyre_4F_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 23 - wild_mon DUSKULL_SHUPPET, 22 - wild_mon SHUPPET_DUSKULL, 27 - wild_mon SHUPPET_DUSKULL, 27 - wild_mon SHUPPET_DUSKULL, 25 - wild_mon SHUPPET_DUSKULL, 29 - - .align 2 -MtPyre_4F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_4F_LandMons - - .align 2 -MtPyre_5F_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 23 - wild_mon DUSKULL_SHUPPET, 22 - wild_mon SHUPPET_DUSKULL, 27 - wild_mon SHUPPET_DUSKULL, 27 - wild_mon SHUPPET_DUSKULL, 25 - wild_mon SHUPPET_DUSKULL, 29 - - .align 2 -MtPyre_5F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_5F_LandMons - - .align 2 -MtPyre_6F_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 23 - wild_mon DUSKULL_SHUPPET, 22 - wild_mon SHUPPET_DUSKULL, 27 - wild_mon SHUPPET_DUSKULL, 27 - wild_mon SHUPPET_DUSKULL, 25 - wild_mon SHUPPET_DUSKULL, 29 - - .align 2 -MtPyre_6F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_6F_LandMons - - .align 2 -MtPyre_Exterior_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon MEDITITE, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon MEDITITE, 29 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon VULPIX, 27 - wild_mon VULPIX, 29 - wild_mon VULPIX, 25 - wild_mon WINGULL, 27 - wild_mon WINGULL, 27 - wild_mon WINGULL, 26 - wild_mon WINGULL, 28 - - .align 2 -MtPyre_Exterior_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_Exterior_LandMons - - .align 2 -MtPyre_Summit_LandMons: - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 30 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon SHUPPET_DUSKULL, 28 - wild_mon SHUPPET_DUSKULL, 26 - wild_mon SHUPPET_DUSKULL, 30 - wild_mon CHIMECHO, 28 - wild_mon CHIMECHO, 28 - - .align 2 -MtPyre_Summit_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_Summit_LandMons - - .align 2 -SeafloorCavern_Entrance_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon ZUBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - - .align 2 -SeafloorCavern_Entrance_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Entrance_WaterMons - - .align 2 -SeafloorCavern_Entrance_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -SeafloorCavern_Entrance_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte SeafloorCavern_Entrance_FishingMons - - .align 2 -SeafloorCavern_Room1_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room1_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room1_LandMons - - .align 2 -SeafloorCavern_Room2_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room2_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room2_LandMons - - .align 2 -SeafloorCavern_Room3_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room3_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room3_LandMons - - .align 2 -SeafloorCavern_Room4_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room4_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room4_LandMons - - .align 2 -SeafloorCavern_Room5_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room5_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room5_LandMons - - .align 2 -SeafloorCavern_Room6_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room6_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room6_LandMons - - .align 2 -SeafloorCavern_Room6_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon ZUBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - - .align 2 -SeafloorCavern_Room6_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room6_WaterMons - - .align 2 -SeafloorCavern_Room6_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -SeafloorCavern_Room6_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte SeafloorCavern_Room6_FishingMons - - .align 2 -SeafloorCavern_Room7_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room7_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room7_LandMons - - .align 2 -SeafloorCavern_Room7_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon ZUBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - - .align 2 -SeafloorCavern_Room7_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room7_WaterMons - - .align 2 -SeafloorCavern_Room7_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -SeafloorCavern_Room7_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte SeafloorCavern_Room7_FishingMons - - .align 2 -SeafloorCavern_Room8_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room8_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room8_LandMons - - .align 2 -CaveOfOrigin_Entrance_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -CaveOfOrigin_Entrance_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte CaveOfOrigin_Entrance_LandMons - - .align 2 -CaveOfOrigin_1F_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon MAWILE_SABLEYE, 30 - wild_mon MAWILE_SABLEYE, 32 - wild_mon MAWILE_SABLEYE, 34 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 34 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -CaveOfOrigin_1F_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte CaveOfOrigin_1F_LandMons - - .align 2 -CaveOfOrigin_B1F_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon MAWILE_SABLEYE, 30 - wild_mon MAWILE_SABLEYE, 32 - wild_mon MAWILE_SABLEYE, 34 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 34 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -CaveOfOrigin_B1F_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte CaveOfOrigin_B1F_LandMons - - .align 2 -CaveOfOrigin_B2F_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon MAWILE_SABLEYE, 30 - wild_mon MAWILE_SABLEYE, 32 - wild_mon MAWILE_SABLEYE, 34 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 34 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -CaveOfOrigin_B2F_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte CaveOfOrigin_B2F_LandMons - - .align 2 -CaveOfOrigin_B3F_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon MAWILE_SABLEYE, 30 - wild_mon MAWILE_SABLEYE, 32 - wild_mon MAWILE_SABLEYE, 34 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 34 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -CaveOfOrigin_B3F_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte CaveOfOrigin_B3F_LandMons - - .align 2 -VictoryRoad_1F_LandMons: - wild_mon GOLBAT, 40 - wild_mon HARIYAMA, 40 - wild_mon LAIRON, 40 - wild_mon LOUDRED, 40 - wild_mon ZUBAT, 36 - wild_mon MAKUHITA, 36 - wild_mon GOLBAT, 38 - wild_mon HARIYAMA, 38 - wild_mon ARON, 36 - wild_mon WHISMUR, 36 - wild_mon ARON, 36 - wild_mon WHISMUR, 36 - - .align 2 -VictoryRoad_1F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte VictoryRoad_1F_LandMons - - .align 2 -VictoryRoad_B1F_LandMons: - wild_mon GOLBAT, 40 - wild_mon HARIYAMA, 40 - wild_mon LAIRON, 40 - wild_mon MEDICHAM, 40 - wild_mon GOLBAT, 38 - wild_mon HARIYAMA, 38 - wild_mon GOLBAT, 42 - wild_mon HARIYAMA, 42 - wild_mon LAIRON, 42 - wild_mon MEDITITE, 38 - wild_mon LAIRON, 42 - wild_mon MEDITITE, 38 - - .align 2 -VictoryRoad_B1F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte VictoryRoad_B1F_LandMons - - .align 2 -VictoryRoad_B1F_RockSmashMons: - wild_mon GRAVELER, 30, 40 - wild_mon GEODUDE, 30, 40 - wild_mon GRAVELER, 35, 40 - wild_mon GRAVELER, 35, 40 - wild_mon GRAVELER, 35, 40 - - .align 2 -VictoryRoad_B1F_RockSmashMonsInfo: - .4byte 20 @ encounter rate - .4byte VictoryRoad_B1F_RockSmashMons - - .align 2 -VictoryRoad_B2F_LandMons: - wild_mon GOLBAT, 40 - wild_mon MAWILE_SABLEYE, 40 - wild_mon LAIRON, 40 - wild_mon MEDICHAM, 40 - wild_mon GOLBAT, 42 - wild_mon MAWILE_SABLEYE, 42 - wild_mon GOLBAT, 44 - wild_mon MAWILE_SABLEYE, 44 - wild_mon LAIRON, 42 - wild_mon MEDICHAM, 42 - wild_mon LAIRON, 44 - wild_mon MEDICHAM, 44 - - .align 2 -VictoryRoad_B2F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte VictoryRoad_B2F_LandMons - - .align 2 -VictoryRoad_B2F_WaterMons: - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 25, 30 - wild_mon GOLBAT, 35, 40 - wild_mon GOLBAT, 35, 40 - wild_mon GOLBAT, 35, 40 - - .align 2 -VictoryRoad_B2F_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte VictoryRoad_B2F_WaterMons - - .align 2 -VictoryRoad_B2F_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon WHISCASH, 30, 35 - wild_mon WHISCASH, 35, 40 - wild_mon WHISCASH, 40, 45 - - .align 2 -VictoryRoad_B2F_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte VictoryRoad_B2F_FishingMons - - .align 2 -ShoalCave_LowTideEntranceRoom_LandMons: - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon ZUBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - - .align 2 -ShoalCave_LowTideEntranceRoom_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideEntranceRoom_LandMons - - .align 2 -ShoalCave_LowTideEntranceRoom_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon SPHEAL, 25, 30 - wild_mon SPHEAL, 25, 30 - wild_mon SPHEAL, 25, 35 - - .align 2 -ShoalCave_LowTideEntranceRoom_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte ShoalCave_LowTideEntranceRoom_WaterMons - - .align 2 -ShoalCave_LowTideEntranceRoom_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -ShoalCave_LowTideEntranceRoom_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideEntranceRoom_FishingMons - - .align 2 -ShoalCave_LowTideInnerRoom_LandMons: - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon ZUBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - - .align 2 -ShoalCave_LowTideInnerRoom_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideInnerRoom_LandMons - - .align 2 -ShoalCave_LowTideInnerRoom_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon SPHEAL, 25, 30 - wild_mon SPHEAL, 25, 30 - wild_mon SPHEAL, 25, 35 - - .align 2 -ShoalCave_LowTideInnerRoom_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte ShoalCave_LowTideInnerRoom_WaterMons - - .align 2 -ShoalCave_LowTideInnerRoom_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -ShoalCave_LowTideInnerRoom_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideInnerRoom_FishingMons - - .align 2 -ShoalCave_LowTideStairsRoom_LandMons: - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon ZUBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - - .align 2 -ShoalCave_LowTideStairsRoom_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideStairsRoom_LandMons - - .align 2 -ShoalCave_LowTideLowerRoom_LandMons: - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon ZUBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - - .align 2 -ShoalCave_LowTideLowerRoom_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideLowerRoom_LandMons - - .align 2 -ShoalCave_LowTideIceRoom_LandMons: - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon SNORUNT, 26 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 30 - wild_mon SNORUNT, 28 - wild_mon GOLBAT, 32 - wild_mon SNORUNT, 30 - - .align 2 -ShoalCave_LowTideIceRoom_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideIceRoom_LandMons - - .align 2 -NewMauville_Entrance_LandMons: - wild_mon VOLTORB, 24 - wild_mon MAGNEMITE, 24 - wild_mon VOLTORB, 25 - wild_mon MAGNEMITE, 25 - wild_mon VOLTORB, 23 - wild_mon MAGNEMITE, 23 - wild_mon VOLTORB, 26 - wild_mon MAGNEMITE, 26 - wild_mon VOLTORB, 22 - wild_mon MAGNEMITE, 22 - wild_mon VOLTORB, 22 - wild_mon MAGNEMITE, 22 - - .align 2 -NewMauville_Entrance_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte NewMauville_Entrance_LandMons - - .align 2 -NewMauville_Inside_LandMons: - wild_mon VOLTORB, 24 - wild_mon MAGNEMITE, 24 - wild_mon VOLTORB, 25 - wild_mon MAGNEMITE, 25 - wild_mon VOLTORB, 23 - wild_mon MAGNEMITE, 23 - wild_mon VOLTORB, 26 - wild_mon MAGNEMITE, 26 - wild_mon VOLTORB, 22 - wild_mon MAGNEMITE, 22 - wild_mon ELECTRODE, 26 - wild_mon MAGNETON, 26 - - .align 2 -NewMauville_Inside_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte NewMauville_Inside_LandMons - - .align 2 -AbandonedShip_Rooms_B1F_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACRUEL, 30, 35 - - .align 2 -AbandonedShip_Rooms_B1F_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte AbandonedShip_Rooms_B1F_WaterMons - - .align 2 -AbandonedShip_Rooms_B1F_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon TENTACOOL, 25, 30 - wild_mon TENTACOOL, 30, 35 - wild_mon TENTACRUEL, 30, 35 - wild_mon TENTACRUEL, 25, 30 - wild_mon TENTACRUEL, 20, 25 - - .align 2 -AbandonedShip_Rooms_B1F_FishingMonsInfo: - .4byte 20 @ encounter rate - .4byte AbandonedShip_Rooms_B1F_FishingMons - - .align 2 -AbandonedShip_HiddenFloorCorridors_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACRUEL, 30, 35 - - .align 2 -AbandonedShip_HiddenFloorCorridors_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte AbandonedShip_HiddenFloorCorridors_WaterMons - - .align 2 -AbandonedShip_HiddenFloorCorridors_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon TENTACOOL, 25, 30 - wild_mon TENTACOOL, 30, 35 - wild_mon TENTACRUEL, 30, 35 - wild_mon TENTACRUEL, 25, 30 - wild_mon TENTACRUEL, 20, 25 - - .align 2 -AbandonedShip_HiddenFloorCorridors_FishingMonsInfo: - .4byte 20 @ encounter rate - .4byte AbandonedShip_HiddenFloorCorridors_FishingMons - - .align 2 -SkyPillar_1F_LandMons: - wild_mon MAWILE_SABLEYE, 48 - wild_mon GOLBAT, 48 - wild_mon GOLBAT, 50 - wild_mon MAWILE_SABLEYE, 50 - wild_mon CLAYDOL, 48 - wild_mon DUSCLOPS_BANETTE, 48 - wild_mon DUSCLOPS_BANETTE, 50 - wild_mon CLAYDOL, 49 - wild_mon CLAYDOL, 47 - wild_mon CLAYDOL, 50 - wild_mon CLAYDOL, 47 - wild_mon CLAYDOL, 50 - - .align 2 -SkyPillar_1F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte SkyPillar_1F_LandMons - - .align 2 -SkyPillar_3F_LandMons: - wild_mon MAWILE_SABLEYE, 51 - wild_mon GOLBAT, 51 - wild_mon GOLBAT, 53 - wild_mon MAWILE_SABLEYE, 53 - wild_mon CLAYDOL, 51 - wild_mon DUSCLOPS_BANETTE, 51 - wild_mon DUSCLOPS_BANETTE, 53 - wild_mon CLAYDOL, 52 - wild_mon CLAYDOL, 50 - wild_mon CLAYDOL, 53 - wild_mon CLAYDOL, 50 - wild_mon CLAYDOL, 53 - - .align 2 -SkyPillar_3F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte SkyPillar_3F_LandMons - - .align 2 -SkyPillar_5F_LandMons: - wild_mon MAWILE_SABLEYE, 54 - wild_mon GOLBAT, 54 - wild_mon GOLBAT, 56 - wild_mon MAWILE_SABLEYE, 56 - wild_mon CLAYDOL, 54 - wild_mon DUSCLOPS_BANETTE, 54 - wild_mon DUSCLOPS_BANETTE, 56 - wild_mon CLAYDOL, 55 - wild_mon CLAYDOL, 56 - wild_mon ALTARIA, 57 - wild_mon ALTARIA, 54 - wild_mon ALTARIA, 60 - - .align 2 -SkyPillar_5F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte SkyPillar_5F_LandMons - - .align 2 -Route101_LandMons: - wild_mon WURMPLE, 2 - wild_mon ZIGZAGOON, 2 - wild_mon WURMPLE, 2 - wild_mon WURMPLE, 3 - wild_mon ZIGZAGOON, 3 - wild_mon ZIGZAGOON, 3 - wild_mon WURMPLE, 3 - wild_mon ZIGZAGOON, 3 - wild_mon POOCHYENA, 2 - wild_mon POOCHYENA, 2 - wild_mon POOCHYENA, 3 - wild_mon POOCHYENA, 3 - - .align 2 -Route101_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route101_LandMons - - .align 2 -Route102_LandMons: - wild_mon ZIGZAGOON, 3 - wild_mon WURMPLE, 3 - wild_mon ZIGZAGOON, 4 - wild_mon WURMPLE, 4 - wild_mon SEEDOT_LOTAD, 3 - wild_mon SEEDOT_LOTAD, 4 - wild_mon POOCHYENA, 3 - wild_mon POOCHYENA, 3 - wild_mon POOCHYENA, 4 - wild_mon RALTS, 4 - wild_mon POOCHYENA, 4 - wild_mon SURSKIT, 3 - - .align 2 -Route102_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route102_LandMons - - .align 2 -Route102_WaterMons: - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon SURSKIT, 20, 30 - - .align 2 -Route102_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route102_WaterMons - - .align 2 -Route102_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon CORPHISH, 10, 30 - wild_mon CORPHISH, 25, 30 - wild_mon CORPHISH, 30, 35 - wild_mon CORPHISH, 20, 25 - wild_mon CORPHISH, 35, 40 - wild_mon CORPHISH, 40, 45 - - .align 2 -Route102_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route102_FishingMons - - .align 2 -Route103_LandMons: - wild_mon ZIGZAGOON, 2 - wild_mon ZIGZAGOON, 3 - wild_mon ZIGZAGOON, 3 - wild_mon ZIGZAGOON, 4 - wild_mon POOCHYENA, 2 - wild_mon POOCHYENA, 3 - wild_mon POOCHYENA, 3 - wild_mon POOCHYENA, 4 - wild_mon WINGULL, 3 - wild_mon WINGULL, 3 - wild_mon WINGULL, 2 - wild_mon WINGULL, 4 - - .align 2 -Route103_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route103_LandMons - - .align 2 -Route103_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route103_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route103_WaterMons - - .align 2 -Route103_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route103_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route103_FishingMons - - .align 2 -Route104_LandMons: - wild_mon ZIGZAGOON, 4 - wild_mon WURMPLE, 4 - wild_mon ZIGZAGOON, 5 - wild_mon WURMPLE, 5 - wild_mon ZIGZAGOON, 4 - wild_mon ZIGZAGOON, 5 - wild_mon TAILLOW, 4 - wild_mon TAILLOW, 5 - wild_mon WINGULL, 4 - wild_mon WINGULL, 4 - wild_mon WINGULL, 3 - wild_mon WINGULL, 5 - - .align 2 -Route104_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route104_LandMons - - .align 2 -Route104_WaterMons: - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route104_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route104_WaterMons - - .align 2 -Route104_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon MAGIKARP, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 25, 30 - wild_mon MAGIKARP, 30, 35 - wild_mon MAGIKARP, 20, 25 - wild_mon MAGIKARP, 35, 40 - wild_mon MAGIKARP, 40, 45 - - .align 2 -Route104_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route104_FishingMons - - .align 2 -Route105_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route105_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route105_WaterMons - - .align 2 -Route105_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route105_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route105_FishingMons - - .align 2 -Route106_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route106_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route106_WaterMons - - .align 2 -Route106_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route106_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route106_FishingMons - - .align 2 -Route107_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route107_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route107_WaterMons - - .align 2 -Route107_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route107_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route107_FishingMons - - .align 2 -Route108_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route108_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route108_WaterMons - - .align 2 -Route108_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route108_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route108_FishingMons - - .align 2 -Route109_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route109_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route109_WaterMons - - .align 2 -Route109_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route109_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route109_FishingMons - - .align 2 -Route110_LandMons: - wild_mon ZIGZAGOON, 12 - wild_mon ELECTRIKE, 12 - wild_mon GULPIN, 12 - wild_mon ELECTRIKE, 13 - wild_mon MINUN_PLUSLE, 13 - wild_mon ODDISH, 13 - wild_mon MINUN_PLUSLE, 13 - wild_mon GULPIN, 13 - wild_mon WINGULL, 12 - wild_mon WINGULL, 12 - wild_mon PLUSLE_MINUN, 12 - wild_mon PLUSLE_MINUN, 13 - - .align 2 -Route110_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route110_LandMons - - .align 2 -Route110_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route110_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route110_WaterMons - - .align 2 -Route110_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route110_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route110_FishingMons - - .align 2 -Route111_LandMons: - wild_mon SANDSHREW, 20 - wild_mon TRAPINCH, 20 - wild_mon SANDSHREW, 21 - wild_mon TRAPINCH, 21 - wild_mon CACNEA, 19 - wild_mon CACNEA, 21 - wild_mon SANDSHREW, 19 - wild_mon TRAPINCH, 19 - wild_mon BALTOY, 20 - wild_mon BALTOY, 20 - wild_mon BALTOY, 22 - wild_mon BALTOY, 22 - - .align 2 -Route111_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte Route111_LandMons - - .align 2 -Route111_WaterMons: - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon SURSKIT, 20, 30 - - .align 2 -Route111_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route111_WaterMons - - .align 2 -Route111_RockSmashMons: - wild_mon GEODUDE, 10, 15 - wild_mon GEODUDE, 5, 10 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 - - .align 2 -Route111_RockSmashMonsInfo: - .4byte 20 @ encounter rate - .4byte Route111_RockSmashMons - - .align 2 -Route111_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon BARBOACH, 20, 25 - wild_mon BARBOACH, 35, 40 - wild_mon BARBOACH, 40, 45 - - .align 2 -Route111_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route111_FishingMons - - .align 2 -Route112_LandMons: - wild_mon NUMEL, 15 - wild_mon NUMEL, 15 - wild_mon MACHOP, 15 - wild_mon NUMEL, 14 - wild_mon NUMEL, 14 - wild_mon MACHOP, 14 - wild_mon NUMEL, 16 - wild_mon MACHOP, 16 - wild_mon NUMEL, 16 - wild_mon NUMEL, 16 - wild_mon NUMEL, 16 - wild_mon NUMEL, 16 - - .align 2 -Route112_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route112_LandMons - - .align 2 -Route113_LandMons: - wild_mon SPINDA, 15 - wild_mon SPINDA, 15 - wild_mon SANDSHREW, 15 - wild_mon SPINDA, 14 - wild_mon SPINDA, 14 - wild_mon SANDSHREW, 14 - wild_mon SPINDA, 16 - wild_mon SANDSHREW, 16 - wild_mon SPINDA, 16 - wild_mon SKARMORY, 16 - wild_mon SPINDA, 16 - wild_mon SKARMORY, 16 - - .align 2 -Route113_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route113_LandMons - - .align 2 -Route114_LandMons: - wild_mon SWABLU, 16 - wild_mon SEEDOT_LOTAD, 16 - wild_mon SWABLU, 17 - wild_mon SWABLU, 15 - wild_mon SEEDOT_LOTAD, 15 - wild_mon ZANGOOSE_SEVIPER, 16 - wild_mon NUZLEAF_LOMBRE, 16 - wild_mon NUZLEAF_LOMBRE, 18 - wild_mon ZANGOOSE_SEVIPER, 17 - wild_mon ZANGOOSE_SEVIPER, 15 - wild_mon ZANGOOSE_SEVIPER, 17 - wild_mon SURSKIT, 15 - - .align 2 -Route114_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route114_LandMons - - .align 2 -Route114_WaterMons: - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon SURSKIT, 20, 30 - - .align 2 -Route114_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route114_WaterMons - - .align 2 -Route114_RockSmashMons: - wild_mon GEODUDE, 10, 15 - wild_mon GEODUDE, 5, 10 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 - - .align 2 -Route114_RockSmashMonsInfo: - .4byte 20 @ encounter rate - .4byte Route114_RockSmashMons - - .align 2 -Route114_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon BARBOACH, 20, 25 - wild_mon BARBOACH, 35, 40 - wild_mon BARBOACH, 40, 45 - - .align 2 -Route114_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route114_FishingMons - - .align 2 -Route115_LandMons: - wild_mon SWABLU, 23 - wild_mon TAILLOW, 23 - wild_mon SWABLU, 25 - wild_mon TAILLOW, 24 - wild_mon TAILLOW, 25 - wild_mon SWELLOW, 25 - wild_mon JIGGLYPUFF, 24 - wild_mon JIGGLYPUFF, 25 - wild_mon WINGULL, 24 - wild_mon WINGULL, 24 - wild_mon WINGULL, 26 - wild_mon WINGULL, 25 - - .align 2 -Route115_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route115_LandMons - - .align 2 -Route115_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route115_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route115_WaterMons - - .align 2 -Route115_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route115_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route115_FishingMons - - .align 2 -Route116_LandMons: - wild_mon ZIGZAGOON, 6 - wild_mon WHISMUR, 6 - wild_mon NINCADA, 6 - wild_mon WHISMUR, 7 - wild_mon NINCADA, 7 - wild_mon TAILLOW, 6 - wild_mon TAILLOW, 7 - wild_mon TAILLOW, 8 - wild_mon ZIGZAGOON, 7 - wild_mon ZIGZAGOON, 8 - wild_mon SKITTY, 7 - wild_mon SKITTY, 8 - - .align 2 -Route116_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route116_LandMons - - .align 2 -Route117_LandMons: - wild_mon ZIGZAGOON, 13 - wild_mon ROSELIA, 13 - wild_mon ZIGZAGOON, 14 - wild_mon ROSELIA, 14 - wild_mon MARILL, 13 - wild_mon ODDISH, 13 - wild_mon ILLUMISE_VOLBEAT, 13 - wild_mon ILLUMISE_VOLBEAT, 13 - wild_mon ILLUMISE_VOLBEAT, 14 - wild_mon ILLUMISE_VOLBEAT, 14 - wild_mon VOLBEAT_ILLUMISE, 13 - wild_mon SURSKIT, 13 - - .align 2 -Route117_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route117_LandMons - - .align 2 -Route117_WaterMons: - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon SURSKIT, 20, 30 - - .align 2 -Route117_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route117_WaterMons - - .align 2 -Route117_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon CORPHISH, 10, 30 - wild_mon CORPHISH, 25, 30 - wild_mon CORPHISH, 30, 35 - wild_mon CORPHISH, 20, 25 - wild_mon CORPHISH, 35, 40 - wild_mon CORPHISH, 40, 45 - - .align 2 -Route117_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route117_FishingMons - - .align 2 -Route118_LandMons: - wild_mon ZIGZAGOON, 24 - wild_mon ELECTRIKE, 24 - wild_mon ZIGZAGOON, 26 - wild_mon ELECTRIKE, 26 - wild_mon LINOONE, 26 - wild_mon MANECTRIC, 26 - wild_mon WINGULL, 25 - wild_mon WINGULL, 25 - wild_mon WINGULL, 26 - wild_mon WINGULL, 26 - wild_mon WINGULL, 27 - wild_mon KECLEON, 25 - - .align 2 -Route118_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route118_LandMons - - .align 2 -Route118_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route118_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route118_WaterMons - - .align 2 -Route118_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon CARVANHA, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon CARVANHA, 30, 35 - wild_mon CARVANHA, 20, 25 - wild_mon CARVANHA, 35, 40 - wild_mon CARVANHA, 40, 45 - - .align 2 -Route118_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route118_FishingMons - - .align 2 -Route119_LandMons: - wild_mon ZIGZAGOON, 25 - wild_mon LINOONE, 25 - wild_mon ZIGZAGOON, 27 - wild_mon ODDISH, 25 - wild_mon LINOONE, 27 - wild_mon ODDISH, 26 - wild_mon ODDISH, 27 - wild_mon ODDISH, 24 - wild_mon TROPIUS, 25 - wild_mon TROPIUS, 26 - wild_mon TROPIUS, 27 - wild_mon KECLEON, 25 - - .align 2 -Route119_LandMonsInfo: - .4byte 15 @ encounter rate - .4byte Route119_LandMons - - .align 2 -Route119_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route119_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route119_WaterMons - - .align 2 -Route119_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon CARVANHA, 10, 30 - wild_mon CARVANHA, 25, 30 - wild_mon CARVANHA, 30, 35 - wild_mon CARVANHA, 20, 25 - wild_mon CARVANHA, 35, 40 - wild_mon CARVANHA, 40, 45 - - .align 2 -Route119_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route119_FishingMons - - .align 2 -Route120_LandMons: - wild_mon ZIGZAGOON, 25 - wild_mon LINOONE, 25 - wild_mon LINOONE, 27 - wild_mon ODDISH, 25 - wild_mon MARILL, 25 - wild_mon ODDISH, 26 - wild_mon ODDISH, 27 - wild_mon MARILL, 27 - wild_mon ABSOL, 25 - wild_mon ABSOL, 27 - wild_mon KECLEON, 25 - wild_mon SURSKIT, 25 - - .align 2 -Route120_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route120_LandMons - - .align 2 -Route120_WaterMons: - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon SURSKIT, 20, 30 - - .align 2 -Route120_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route120_WaterMons - - .align 2 -Route120_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon BARBOACH, 20, 25 - wild_mon BARBOACH, 35, 40 - wild_mon BARBOACH, 40, 45 - - .align 2 -Route120_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route120_FishingMons - - .align 2 -Route121_LandMons: - wild_mon ZIGZAGOON, 26 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon LINOONE, 26 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon LINOONE, 28 - wild_mon ODDISH, 26 - wild_mon ODDISH, 28 - wild_mon GLOOM, 28 - wild_mon WINGULL, 26 - wild_mon WINGULL, 27 - wild_mon WINGULL, 28 - wild_mon KECLEON, 25 - - .align 2 -Route121_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route121_LandMons - - .align 2 -Route121_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route121_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route121_WaterMons - - .align 2 -Route121_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route121_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route121_FishingMons - - .align 2 -Route122_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route122_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route122_WaterMons - - .align 2 -Route122_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route122_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route122_FishingMons - - .align 2 -Route123_LandMons: - wild_mon ZIGZAGOON, 26 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon LINOONE, 26 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon LINOONE, 28 - wild_mon ODDISH, 26 - wild_mon ODDISH, 28 - wild_mon GLOOM, 28 - wild_mon WINGULL, 26 - wild_mon WINGULL, 27 - wild_mon WINGULL, 28 - wild_mon KECLEON, 25 - - .align 2 -Route123_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route123_LandMons - - .align 2 -Route123_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route123_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route123_WaterMons - - .align 2 -Route123_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route123_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route123_FishingMons - - .align 2 -Route124_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route124_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route124_WaterMons - - .align 2 -Route124_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route124_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route124_FishingMons - - .align 2 -Route125_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route125_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route125_WaterMons - - .align 2 -Route125_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route125_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route125_FishingMons - - .align 2 -Route126_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route126_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route126_WaterMons - - .align 2 -Route126_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route126_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route126_FishingMons - - .align 2 -Route127_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route127_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route127_WaterMons - - .align 2 -Route127_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route127_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route127_FishingMons - - .align 2 -Route128_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route128_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route128_WaterMons - - .align 2 -Route128_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon LUVDISC, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon LUVDISC, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon CORSOLA, 30, 35 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route128_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route128_FishingMons - - .align 2 -Route129_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - .ifdef SAPPHIRE - wild_mon WAILORD, 25, 30 - .else - wild_mon WAILORD, 35, 40 - .endif - - .align 2 -Route129_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route129_WaterMons - - .align 2 -Route129_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route129_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route129_FishingMons - - .align 2 -Route130_LandMons: - wild_mon WYNAUT, 30 - wild_mon WYNAUT, 35 - wild_mon WYNAUT, 25 - wild_mon WYNAUT, 40 - wild_mon WYNAUT, 20 - wild_mon WYNAUT, 45 - wild_mon WYNAUT, 15 - wild_mon WYNAUT, 50 - wild_mon WYNAUT, 10 - wild_mon WYNAUT, 5 - wild_mon WYNAUT, 10 - wild_mon WYNAUT, 5 - - .align 2 -Route130_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route130_LandMons - - .align 2 -Route130_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route130_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route130_WaterMons - - .align 2 -Route130_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route130_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route130_FishingMons - - .align 2 -Route131_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route131_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route131_WaterMons - - .align 2 -Route131_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route131_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route131_FishingMons - - .align 2 -Route132_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route132_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route132_WaterMons - - .align 2 -Route132_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon HORSEA, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route132_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route132_FishingMons - - .align 2 -Route133_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route133_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route133_WaterMons - - .align 2 -Route133_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon HORSEA, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route133_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route133_FishingMons - - .align 2 -Route134_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route134_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route134_WaterMons - - .align 2 -Route134_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon HORSEA, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route134_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route134_FishingMons - - .align 2 -SafariZone_Northwest_LandMons: - wild_mon RHYHORN, 27 - wild_mon ODDISH, 27 - wild_mon RHYHORN, 29 - wild_mon ODDISH, 29 - wild_mon DODUO, 27 - wild_mon GLOOM, 29 - wild_mon GLOOM, 31 - wild_mon DODUO, 29 - wild_mon DODRIO, 29 - wild_mon PINSIR, 27 - wild_mon DODRIO, 31 - wild_mon PINSIR, 29 - - .align 2 -SafariZone_Northwest_LandMonsInfo: - .4byte 25 @ encounter rate - .4byte SafariZone_Northwest_LandMons - - .align 2 -SafariZone_Northwest_WaterMons: - wild_mon PSYDUCK, 20, 30 - wild_mon PSYDUCK, 20, 30 - wild_mon PSYDUCK, 30, 35 - wild_mon GOLDUCK, 30, 35 - wild_mon GOLDUCK, 25, 40 - - .align 2 -SafariZone_Northwest_WaterMonsInfo: - .4byte 9 @ encounter rate - .4byte SafariZone_Northwest_WaterMons - - .align 2 -SafariZone_Northwest_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 25 - wild_mon GOLDEEN, 10, 30 - wild_mon GOLDEEN, 25, 30 - wild_mon GOLDEEN, 30, 35 - wild_mon SEAKING, 30, 35 - wild_mon SEAKING, 35, 40 - wild_mon SEAKING, 25, 30 - - .align 2 -SafariZone_Northwest_FishingMonsInfo: - .4byte 35 @ encounter rate - .4byte SafariZone_Northwest_FishingMons - - .align 2 -SafariZone_Northeast_LandMons: - wild_mon PHANPY, 27 - wild_mon ODDISH, 27 - wild_mon PHANPY, 29 - wild_mon ODDISH, 29 - wild_mon NATU, 27 - wild_mon GLOOM, 29 - wild_mon GLOOM, 31 - wild_mon NATU, 29 - wild_mon XATU, 29 - wild_mon HERACROSS, 27 - wild_mon XATU, 31 - wild_mon HERACROSS, 29 - - .align 2 -SafariZone_Northeast_LandMonsInfo: - .4byte 25 @ encounter rate - .4byte SafariZone_Northeast_LandMons - - .align 2 -SafariZone_Northeast_RockSmashMons: - wild_mon GEODUDE, 10, 15 - wild_mon GEODUDE, 5, 10 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 20, 25 - wild_mon GEODUDE, 25, 30 - - .align 2 -SafariZone_Northeast_RockSmashMonsInfo: - .4byte 25 @ encounter rate - .4byte SafariZone_Northeast_RockSmashMons - - .align 2 -SafariZone_Southwest_LandMons: - wild_mon ODDISH, 25 - wild_mon ODDISH, 27 - wild_mon GIRAFARIG, 25 - wild_mon GIRAFARIG, 27 - wild_mon NATU, 25 - .ifdef SAPPHIRE - wild_mon DODUO, 27 - .else - wild_mon DODUO, 25 - .endif - wild_mon GLOOM, 25 - wild_mon WOBBUFFET, 27 - wild_mon PIKACHU, 25 - wild_mon WOBBUFFET, 27 - wild_mon PIKACHU, 27 - wild_mon WOBBUFFET, 29 - - .align 2 -SafariZone_Southwest_LandMonsInfo: - .4byte 25 @ encounter rate - .4byte SafariZone_Southwest_LandMons - - .align 2 -SafariZone_Southwest_WaterMons: - wild_mon PSYDUCK, 20, 30 - wild_mon PSYDUCK, 20, 30 - wild_mon PSYDUCK, 30, 35 - wild_mon PSYDUCK, 30, 35 - wild_mon PSYDUCK, 30, 35 - - .align 2 -SafariZone_Southwest_WaterMonsInfo: - .4byte 9 @ encounter rate - .4byte SafariZone_Southwest_WaterMons - - .align 2 -SafariZone_Southwest_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 25 - wild_mon GOLDEEN, 10, 30 - wild_mon GOLDEEN, 25, 30 - wild_mon GOLDEEN, 30, 35 - wild_mon SEAKING, 30, 35 - wild_mon SEAKING, 35, 40 - wild_mon SEAKING, 25, 30 - - .align 2 -SafariZone_Southwest_FishingMonsInfo: - .4byte 35 @ encounter rate - .4byte SafariZone_Southwest_FishingMons - - .align 2 -SafariZone_Southeast_LandMons: - wild_mon ODDISH, 25 - wild_mon ODDISH, 27 - wild_mon GIRAFARIG, 25 - wild_mon GIRAFARIG, 27 - wild_mon NATU, 25 - wild_mon DODUO, 25 - wild_mon GLOOM, 25 - wild_mon WOBBUFFET, 27 - wild_mon PIKACHU, 25 - wild_mon WOBBUFFET, 27 - wild_mon PIKACHU, 27 - wild_mon WOBBUFFET, 29 - - .align 2 -SafariZone_Southeast_LandMonsInfo: - .4byte 25 @ encounter rate - .4byte SafariZone_Southeast_LandMons - - .align 2 -DewfordTown_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -DewfordTown_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte DewfordTown_WaterMons - - .align 2 -DewfordTown_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -DewfordTown_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte DewfordTown_FishingMons - - .align 2 -PacifidlogTown_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -PacifidlogTown_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte PacifidlogTown_WaterMons - - .align 2 -PacifidlogTown_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -PacifidlogTown_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte PacifidlogTown_FishingMons - - .align 2 -Underwater1_WaterMons: - wild_mon CLAMPERL, 20, 30 - wild_mon CHINCHOU, 20, 30 - wild_mon CLAMPERL, 30, 35 - wild_mon RELICANTH, 30, 35 - wild_mon RELICANTH, 30, 35 - - .align 2 -Underwater1_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Underwater1_WaterMons - - .align 2 -Underwater2_WaterMons: - wild_mon CLAMPERL, 20, 30 - wild_mon CHINCHOU, 20, 30 - wild_mon CLAMPERL, 30, 35 - wild_mon RELICANTH, 30, 35 - wild_mon RELICANTH, 30, 35 - - .align 2 -Underwater2_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Underwater2_WaterMons .align 2 gWildMonHeaders:: diff --git a/graphics/intro/unknown1.pal b/graphics/intro/unknown1.pal new file mode 100644 index 000000000..1b8ce3d6e --- /dev/null +++ b/graphics/intro/unknown1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +8 57 8 +32 74 32 +57 98 57 +90 123 90 +115 139 115 +139 164 139 +172 189 172 +197 205 197 +222 230 222 +255 255 255 diff --git a/graphics/intro/unknown2.pal b/graphics/intro/unknown2.pal new file mode 100644 index 000000000..aef9152e4 --- /dev/null +++ b/graphics/intro/unknown2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +156 246 0 +65 90 156 +49 115 255 +82 82 82 +98 98 98 +115 115 115 +131 131 131 +148 148 148 +164 164 164 +180 180 180 +197 197 197 +213 213 213 +230 230 230 +255 255 255 +255 255 255 diff --git a/include/berry.h b/include/berry.h index 152f92e38..f17799870 100644 --- a/include/berry.h +++ b/include/berry.h @@ -1,11 +1,21 @@ #ifndef GUARD_BERRY_H #define GUARD_BERRY_H +enum +{ + BERRY_FIRMNESS_UNKNOWN, + BERRY_FIRMNESS_VERY_SOFT, + BERRY_FIRMNESS_SOFT, + BERRY_FIRMNESS_HARD, + BERRY_FIRMNESS_VERY_HARD, + BERRY_FIRMNESS_SUPER_HARD, +}; + void ClearEnigmaBerries(void); void SetEnigmaBerry(u8 *src); u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry); bool32 IsEnigmaBerryValid(void); -struct Berry *GetBerryInfo(u8 berry); +const struct Berry *GetBerryInfo(u8 berry); struct BerryTree *GetBerryTreeInfo(u8 id); bool32 FieldObjectInteractionWaterBerryTree(void); bool32 IsPlayerFacingPlantedBerryTree(void); diff --git a/include/global.berry.h b/include/global.berry.h index 8b98a5f58..b7938868d 100644 --- a/include/global.berry.h +++ b/include/global.berry.h @@ -3,13 +3,13 @@ struct Berry { - u8 name[7]; + const u8 name[7]; u8 firmness; u16 size; u8 maxYield; u8 minYield; - u8 *description1; - u8 *description2; + const u8 *description1; + const u8 *description2; u8 stageDuration; u8 spicy; u8 dry; diff --git a/include/sprite.h b/include/sprite.h index 721616e9e..7a2dd8494 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -5,7 +5,7 @@ struct SpriteSheet { - u8 *data; + const u8 *data; u16 size; u16 tag; }; @@ -18,7 +18,7 @@ struct SpriteFrameImage struct SpritePalette { - u16 *data; + const u16 *data; u16 tag; }; @@ -53,6 +53,13 @@ union AnimCmd struct AnimJumpCmd jump; }; +#define ANIMCMD_FRAME(_imageValue, _duration) \ + {.frame = {.imageValue = _imageValue, .duration = _duration}} +#define ANIMCMD_JUMP(_target) \ + {.jump = {.type = -2, .target = _target}} +#define ANIMCMD_END \ + {.type = -1} + struct AffineAnimFrameCmd { s16 xScale; @@ -61,6 +68,11 @@ 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; @@ -121,19 +133,19 @@ struct SpriteTemplate { u16 tileTag; u16 paletteTag; - struct OamData *oam; - union AnimCmd **anims; + const struct OamData *oam; + const union AnimCmd *const *anims; struct SpriteFrameImage *images; - union AffineAnimCmd **affineAnims; + const union AffineAnimCmd *const *affineAnims; void (*callback)(struct Sprite *); }; struct Sprite { /*0x00*/ struct OamData oam; - /*0x08*/ union AnimCmd **anims; + /*0x08*/ const union AnimCmd *const *anims; /*0x0C*/ struct SpriteFrameImage *images; - /*0x10*/ union AffineAnimCmd **affineAnims; + /*0x10*/ const union AffineAnimCmd *const *affineAnims; /*0x14*/ const struct SpriteTemplate *template; /*0x18*/ const struct SubspriteTable *subspriteTables; /*0x1C*/ void (*callback)(struct Sprite *); @@ -204,7 +216,7 @@ void SetOamMatrix(u8 matrixNum, u16 a, u16 b, u16 c, u16 d); void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode); void SpriteCallbackDummy(struct Sprite *sprite); void ProcessSpriteCopyRequests(void); -void RequestSpriteCopy(u8 *src, u8 *dest, u16 size); +void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size); void FreeSpriteTiles(struct Sprite *sprite); void FreeSpritePalette(struct Sprite *sprite); void FreeSpriteOamMatrix(struct Sprite *sprite); @@ -249,4 +261,6 @@ void CopyToSprites(u8 *src); void CopyFromSprites(u8 *dest); u8 SpriteTileAllocBitmapOp(u16 bit, u8 op); +extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; + #endif // GUARD_SPRITE_H diff --git a/include/wallclock.h b/include/wallclock.h index c869e3941..794f456be 100644 --- a/include/wallclock.h +++ b/include/wallclock.h @@ -6,9 +6,4 @@ void CB2_StartWallClock(void); void CB2_ViewWallClock(void); -void sub_810B05C(struct Sprite *sprite); -void sub_810B0F4(struct Sprite *sprite); -void sub_810B18C(struct Sprite *sprite); -void sub_810B230(struct Sprite *sprite); - #endif // GUARD_WALLCLOCK_H diff --git a/ld_script.txt b/ld_script.txt index ac8766459..e6dba7e53 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -345,6 +345,7 @@ SECTIONS { data/cable_club.o(.rodata); data/mori_debug_menu.o(.rodata); data/trainer_see.o(.rodata); + src/wild_encounter.o(.rodata); data/wild_encounter.o(.rodata); data/field_effect.o(.rodata); data/pokemon_menu.o(.rodata); @@ -362,7 +363,7 @@ SECTIONS { data/matsuda_debug_menu.o(.rodata); data/contest.o(.rodata); data/shop.o(.rodata); - data/berry.o(.rodata); + src/berry.o(.rodata); data/script_menu.o(.rodata); src/naming_screen.o(.rodata); data/naming_screen.o(.rodata); @@ -394,8 +395,9 @@ SECTIONS { data/contest_painting.o(.rodata); src/battle_ai.o(.rodata); data/trader.o(.rodata); + src/starter_choose.o(.rodata); data/starter_choose.o(.rodata); - data/wallclock.o(.rodata); + src/wallclock.o(.rodata); data/pokeblock.o(.rodata); data/rom_810CBB4.o(.rodata); data/pokedex_area_screen.o(.rodata); @@ -413,9 +415,11 @@ SECTIONS { data/contest_ai.o(.rodata); 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); data/credits.o(.rodata); src/lottery_corner.o(.rodata); data/diploma.o(.rodata); diff --git a/src/berry.c b/src/berry.c index 2a8ce8380..7932fafea 100644 --- a/src/berry.c +++ b/src/berry.c @@ -10,9 +10,788 @@ #define FIRST_BERRY ITEM_CHERI_BERRY #define LAST_BERRY ITEM_ENIGMA_BERRY -extern struct Berry gBerries[]; +const u8 gBerryDescriptionPart1_Cheri[] = _("Blooms with delicate pretty flowers."); +const u8 gBerryDescriptionPart2_Cheri[] = _("The bright red BERRY is very spicy."); +const u8 gBerryDescriptionPart1_Chesto[] = _("The BERRY’s thick skin and fruit are"); +const u8 gBerryDescriptionPart2_Chesto[] = _("very tough. It is dry-tasting all over."); +const u8 gBerryDescriptionPart1_Pecha[] = _("Very sweet and delicious."); +const u8 gBerryDescriptionPart2_Pecha[] = _("Also very tender - handle with care."); +const u8 gBerryDescriptionPart1_Rawst[] = _("If the leaves grow long and curly,"); +const u8 gBerryDescriptionPart2_Rawst[] = _("the BERRY seems to grow very bitter."); +const u8 gBerryDescriptionPart1_Aspear[] = _("The hard BERRY is dense with a rich"); +const u8 gBerryDescriptionPart2_Aspear[] = _("juice. It is quite sour."); +const u8 gBerryDescriptionPart1_Leppa[] = _("Grows slower than CHERI and others."); +const u8 gBerryDescriptionPart2_Leppa[] = _("The smaller the BERRY, the tastier."); +const u8 gBerryDescriptionPart1_Oran[] = _("A peculiar BERRY with a mix of flavors."); +const u8 gBerryDescriptionPart2_Oran[] = _("BERRIES grow in half a day."); +const u8 gBerryDescriptionPart1_Persim[] = _("Loves sunlight. The BERRY’s color"); +const u8 gBerryDescriptionPart2_Persim[] = _("grows vivid when exposed to the sun."); +const u8 gBerryDescriptionPart1_Lum[] = _("Slow to grow. If raised with loving"); +const u8 gBerryDescriptionPart2_Lum[] = _("care, it may grow two BERRIES."); +const u8 gBerryDescriptionPart1_Sitrus[] = _("Closely related to ORAN. The large"); +const u8 gBerryDescriptionPart2_Sitrus[] = _("BERRY has a well-rounded flavor."); +const u8 gBerryDescriptionPart1_Figy[] = _("The BERRY, which looks chewed up,"); +const u8 gBerryDescriptionPart2_Figy[] = _("brims with spicy substances."); +const u8 gBerryDescriptionPart1_Wiki[] = _("The BERRY is said to have grown lumpy"); +const u8 gBerryDescriptionPart2_Wiki[] = _("to help POKéMON grip it."); +const u8 gBerryDescriptionPart1_Mago[] = _("The BERRY turns curvy as it grows."); +const u8 gBerryDescriptionPart2_Mago[] = _("The curvier, the sweeter and tastier."); +const u8 gBerryDescriptionPart1_Aguav[] = _("The flower is dainty. It is rare in its"); +const u8 gBerryDescriptionPart2_Aguav[] = _("ability to grow without light."); +const u8 gBerryDescriptionPart1_Iapapa[] = _("The BERRY is very big and sour."); +const u8 gBerryDescriptionPart2_Iapapa[] = _("It takes at least a day to grow."); +const u8 gBerryDescriptionPart1_Razz[] = _("The red BERRY tastes slightly spicy."); +const u8 gBerryDescriptionPart2_Razz[] = _("It grows quickly in just four hours."); +const u8 gBerryDescriptionPart1_Bluk[] = _("The BERRY is blue on the outside, but"); +const u8 gBerryDescriptionPart2_Bluk[] = _("it blackens the mouth when eaten."); +const u8 gBerryDescriptionPart1_Nanab[] = _("This BERRY was the seventh"); +const u8 gBerryDescriptionPart2_Nanab[] = _("discovered in the world. It is sweet."); +const u8 gBerryDescriptionPart1_Wepear[] = _("The flower is small and white. It has a"); +const u8 gBerryDescriptionPart2_Wepear[] = _("delicate balance of bitter and sour."); +const u8 gBerryDescriptionPart1_Pinap[] = _("Weak against wind and cold."); +const u8 gBerryDescriptionPart2_Pinap[] = _("The fruit is spicy and the skin, sour."); +const u8 gBerryDescriptionPart1_Pomeg[] = _("However much it is watered,"); +const u8 gBerryDescriptionPart2_Pomeg[] = _("it only grows up to six BERRIES."); +const u8 gBerryDescriptionPart1_Kelpsy[] = _("A rare variety shaped like a root."); +const u8 gBerryDescriptionPart2_Kelpsy[] = _("Grows a very large flower."); +const u8 gBerryDescriptionPart1_Qualot[] = _("Loves water. Grows strong even in"); +const u8 gBerryDescriptionPart2_Qualot[] = _("locations with constant rainfall."); +const u8 gBerryDescriptionPart1_Hondew[] = _("A BERRY that is very valuable and"); +const u8 gBerryDescriptionPart2_Hondew[] = _("rarely seen. It is very delicious."); +const u8 gBerryDescriptionPart1_Grepa[] = _("Despite its tenderness and round"); +const u8 gBerryDescriptionPart2_Grepa[] = _("shape, the BERRY is unimaginably sour."); +const u8 gBerryDescriptionPart1_Tamato[] = _("The BERRY is lip-bendingly spicy."); +const u8 gBerryDescriptionPart2_Tamato[] = _("It takes time to grow."); +const u8 gBerryDescriptionPart1_Cornn[] = _("A BERRY from an ancient era. May not"); +const u8 gBerryDescriptionPart2_Cornn[] = _("grow unless planted in quantity."); +const u8 gBerryDescriptionPart1_Magost[] = _("A BERRY that is widely said to have"); +const u8 gBerryDescriptionPart2_Magost[] = _("a finely balanced flavor."); +const u8 gBerryDescriptionPart1_Rabuta[] = _("A rare variety that is overgrown with"); +const u8 gBerryDescriptionPart2_Rabuta[] = _("hair. It is quite bitter."); +const u8 gBerryDescriptionPart1_Nomel[] = _("Quite sour. Just one bite makes it"); +const u8 gBerryDescriptionPart2_Nomel[] = _("impossible to taste for three days."); +const u8 gBerryDescriptionPart1_Spelon[] = _("The vividly red BERRY is very spicy."); +const u8 gBerryDescriptionPart2_Spelon[] = _("Its warts secrete a spicy substance."); +const u8 gBerryDescriptionPart1_Pamtre[] = _("Drifts on the sea from somewhere."); +const u8 gBerryDescriptionPart2_Pamtre[] = _("It is thought to grow elsewhere."); +const u8 gBerryDescriptionPart1_Watmel[] = _("A huge BERRY, with some over 20"); +const u8 gBerryDescriptionPart2_Watmel[] = _("inches discovered. Exceedingly sweet."); +const u8 gBerryDescriptionPart1_Durin[] = _("Bitter to even look at. It is so"); +const u8 gBerryDescriptionPart2_Durin[] = _("bitter, no one has ever eaten it as is."); +const u8 gBerryDescriptionPart1_Belue[] = _("It is glossy and looks delicious, but"); +const u8 gBerryDescriptionPart2_Belue[] = _("it is awfully sour. Takes time to grow."); +const u8 gBerryDescriptionPart1_Liechi[] = _("A mysterious BERRY. It is rumored to"); +const u8 gBerryDescriptionPart2_Liechi[] = _("contain the power of the sea."); +const u8 gBerryDescriptionPart1_Ganlon[] = _("A mysterious BERRY. It is rumored to"); +const u8 gBerryDescriptionPart2_Ganlon[] = _("contain the power of the land."); +const u8 gBerryDescriptionPart1_Salac[] = _("A mysterious BERRY. It is rumored to"); +const u8 gBerryDescriptionPart2_Salac[] = _("contain the power of the sky."); +const u8 gBerryDescriptionPart1_Petaya[] = _("A mysterious BERRY. It is rumored to"); +const u8 gBerryDescriptionPart2_Petaya[] = _("contain the power of all living things."); +const u8 gBerryDescriptionPart1_Apicot[] = _("A very mystifying BERRY. No telling"); +const u8 gBerryDescriptionPart2_Apicot[] = _("what may happen or how it can be used."); +const u8 gBerryDescriptionPart1_Lansat[] = _("Said to be a legendary BERRY."); +const u8 gBerryDescriptionPart2_Lansat[] = _("Holding it supposedly brings joy."); +const u8 gBerryDescriptionPart1_Starf[] = _("So strong, it was abandoned at the"); +const u8 gBerryDescriptionPart2_Starf[] = _("world’s edge. Considered a mirage."); +const u8 gBerryDescriptionPart1_Enigma[] = _("A completely enigmatic BERRY."); +const u8 gBerryDescriptionPart2_Enigma[] = _("Appears to have the power of stars."); + +const struct Berry gBerries[] = +{ + { + .name = _("CHERI"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 20, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Cheri, + .description2 = gBerryDescriptionPart2_Cheri, + .stageDuration = 3, + .spicy = 10, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("CHESTO"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 80, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Chesto, + .description2 = gBerryDescriptionPart2_Chesto, + .stageDuration = 3, + .spicy = 0, + .dry = 10, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("PECHA"), + .firmness = BERRY_FIRMNESS_VERY_SOFT, + .size = 40, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Pecha, + .description2 = gBerryDescriptionPart2_Pecha, + .stageDuration = 3, + .spicy = 0, + .dry = 0, + .sweet = 10, + .bitter = 0, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("RAWST"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 32, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Rawst, + .description2 = gBerryDescriptionPart2_Rawst, + .stageDuration = 3, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 10, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("ASPEAR"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 50, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Aspear, + .description2 = gBerryDescriptionPart2_Aspear, + .stageDuration = 3, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 10, + .smoothness = 25, + }, + { + .name = _("LEPPA"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 28, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Leppa, + .description2 = gBerryDescriptionPart2_Leppa, + .stageDuration = 4, + .spicy = 10, + .dry = 0, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("ORAN"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 35, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Oran, + .description2 = gBerryDescriptionPart2_Oran, + .stageDuration = 3, + .spicy = 10, + .dry = 10, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("PERSIM"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 47, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Persim, + .description2 = gBerryDescriptionPart2_Persim, + .stageDuration = 3, + .spicy = 10, + .dry = 10, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("LUM"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 34, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Lum, + .description2 = gBerryDescriptionPart2_Lum, + .stageDuration = 12, + .spicy = 10, + .dry = 10, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("SITRUS"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 95, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Sitrus, + .description2 = gBerryDescriptionPart2_Sitrus, + .stageDuration = 6, + .spicy = 10, + .dry = 10, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("FIGY"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 100, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Figy, + .description2 = gBerryDescriptionPart2_Figy, + .stageDuration = 6, + .spicy = 10, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("WIKI"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 115, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Wiki, + .description2 = gBerryDescriptionPart2_Wiki, + .stageDuration = 6, + .spicy = 0, + .dry = 10, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("MAGO"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 126, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Mago, + .description2 = gBerryDescriptionPart2_Mago, + .stageDuration = 6, + .spicy = 0, + .dry = 0, + .sweet = 10, + .bitter = 0, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("AGUAV"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 64, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Aguav, + .description2 = gBerryDescriptionPart2_Aguav, + .stageDuration = 6, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 10, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("IAPAPA"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 223, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Iapapa, + .description2 = gBerryDescriptionPart2_Iapapa, + .stageDuration = 6, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 10, + .smoothness = 25, + }, + { + .name = _("RAZZ"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 120, + .maxYield = 6, + .minYield = 3, + .description1 = gBerryDescriptionPart1_Razz, + .description2 = gBerryDescriptionPart2_Razz, + .stageDuration = 1, + .spicy = 10, + .dry = 10, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 20, + }, + { + .name = _("BLUK"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 108, + .maxYield = 6, + .minYield = 3, + .description1 = gBerryDescriptionPart1_Bluk, + .description2 = gBerryDescriptionPart2_Bluk, + .stageDuration = 1, + .spicy = 0, + .dry = 10, + .sweet = 10, + .bitter = 0, + .sour = 0, + .smoothness = 20, + }, + { + .name = _("NANAB"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 77, + .maxYield = 6, + .minYield = 3, + .description1 = gBerryDescriptionPart1_Nanab, + .description2 = gBerryDescriptionPart2_Nanab, + .stageDuration = 1, + .spicy = 0, + .dry = 0, + .sweet = 10, + .bitter = 10, + .sour = 0, + .smoothness = 20, + }, + { + .name = _("WEPEAR"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 74, + .maxYield = 6, + .minYield = 3, + .description1 = gBerryDescriptionPart1_Wepear, + .description2 = gBerryDescriptionPart2_Wepear, + .stageDuration = 1, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("PINAP"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 80, + .maxYield = 6, + .minYield = 3, + .description1 = gBerryDescriptionPart1_Pinap, + .description2 = gBerryDescriptionPart2_Pinap, + .stageDuration = 1, + .spicy = 10, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("POMEG"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 135, + .maxYield = 6, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Pomeg, + .description2 = gBerryDescriptionPart2_Pomeg, + .stageDuration = 3, + .spicy = 10, + .dry = 0, + .sweet = 10, + .bitter = 10, + .sour = 0, + .smoothness = 20, + }, + { + .name = _("KELPSY"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 150, + .maxYield = 6, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Kelpsy, + .description2 = gBerryDescriptionPart2_Kelpsy, + .stageDuration = 3, + .spicy = 0, + .dry = 10, + .sweet = 0, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("QUALOT"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 110, + .maxYield = 6, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Qualot, + .description2 = gBerryDescriptionPart2_Qualot, + .stageDuration = 3, + .spicy = 10, + .dry = 0, + .sweet = 10, + .bitter = 0, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("HONDEW"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 162, + .maxYield = 6, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Hondew, + .description2 = gBerryDescriptionPart2_Hondew, + .stageDuration = 3, + .spicy = 10, + .dry = 10, + .sweet = 0, + .bitter = 10, + .sour = 0, + .smoothness = 20, + }, + { + .name = _("GREPA"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 149, + .maxYield = 6, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Grepa, + .description2 = gBerryDescriptionPart2_Grepa, + .stageDuration = 3, + .spicy = 0, + .dry = 10, + .sweet = 10, + .bitter = 0, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("TAMATO"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 200, + .maxYield = 4, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Tamato, + .description2 = gBerryDescriptionPart2_Tamato, + .stageDuration = 6, + .spicy = 20, + .dry = 10, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 30, + }, + { + .name = _("CORNN"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 75, + .maxYield = 4, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Cornn, + .description2 = gBerryDescriptionPart2_Cornn, + .stageDuration = 6, + .spicy = 0, + .dry = 20, + .sweet = 10, + .bitter = 0, + .sour = 0, + .smoothness = 30, + }, + { + .name = _("MAGOST"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 140, + .maxYield = 4, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Magost, + .description2 = gBerryDescriptionPart2_Magost, + .stageDuration = 6, + .spicy = 0, + .dry = 0, + .sweet = 20, + .bitter = 10, + .sour = 0, + .smoothness = 30, + }, + { + .name = _("RABUTA"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 226, + .maxYield = 4, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Rabuta, + .description2 = gBerryDescriptionPart2_Rabuta, + .stageDuration = 6, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 20, + .sour = 10, + .smoothness = 30, + }, + { + .name = _("NOMEL"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 285, + .maxYield = 4, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Nomel, + .description2 = gBerryDescriptionPart2_Nomel, + .stageDuration = 6, + .spicy = 10, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 20, + .smoothness = 30, + }, + { + .name = _("SPELON"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 133, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Spelon, + .description2 = gBerryDescriptionPart2_Spelon, + .stageDuration = 18, + .spicy = 40, + .dry = 10, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 70, + }, + { + .name = _("PAMTRE"), + .firmness = BERRY_FIRMNESS_VERY_SOFT, + .size = 244, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Pamtre, + .description2 = gBerryDescriptionPart2_Pamtre, + .stageDuration = 18, + .spicy = 0, + .dry = 40, + .sweet = 10, + .bitter = 0, + .sour = 0, + .smoothness = 70, + }, + { + .name = _("WATMEL"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 250, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Watmel, + .description2 = gBerryDescriptionPart2_Watmel, + .stageDuration = 18, + .spicy = 0, + .dry = 0, + .sweet = 40, + .bitter = 10, + .sour = 0, + .smoothness = 70, + }, + { + .name = _("DURIN"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 280, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Durin, + .description2 = gBerryDescriptionPart2_Durin, + .stageDuration = 18, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 40, + .sour = 10, + .smoothness = 70, + }, + { + .name = _("BELUE"), + .firmness = BERRY_FIRMNESS_VERY_SOFT, + .size = 300, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Belue, + .description2 = gBerryDescriptionPart2_Belue, + .stageDuration = 18, + .spicy = 10, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 40, + .smoothness = 70, + }, + { + .name = _("LIECHI"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 111, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Liechi, + .description2 = gBerryDescriptionPart2_Liechi, + .stageDuration = 24, + .spicy = 40, + .dry = 0, + .sweet = 40, + .bitter = 0, + .sour = 10, + .smoothness = 80, + }, + { + .name = _("GANLON"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 33, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Ganlon, + .description2 = gBerryDescriptionPart2_Ganlon, + .stageDuration = 24, + .spicy = 0, + .dry = 40, + .sweet = 0, + .bitter = 40, + .sour = 0, + .smoothness = 80, + }, + { + .name = _("SALAC"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 95, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Salac, + .description2 = gBerryDescriptionPart2_Salac, + .stageDuration = 24, + .spicy = 0, + .dry = 0, + .sweet = 40, + .bitter = 0, + .sour = 40, + .smoothness = 80, + }, + { + .name = _("PETAYA"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 237, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Petaya, + .description2 = gBerryDescriptionPart2_Petaya, + .stageDuration = 24, + .spicy = 40, + .dry = 0, + .sweet = 0, + .bitter = 40, + .sour = 0, + .smoothness = 80, + }, + { + .name = _("APICOT"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 75, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Apicot, + .description2 = gBerryDescriptionPart2_Apicot, + .stageDuration = 24, + .spicy = 0, + .dry = 40, + .sweet = 0, + .bitter = 0, + .sour = 40, + .smoothness = 80, + }, + { + .name = _("LANSAT"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 97, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Lansat, + .description2 = gBerryDescriptionPart2_Lansat, + .stageDuration = 24, + .spicy = 10, + .dry = 10, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 30, + }, + { + .name = _("STARF"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 153, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Starf, + .description2 = gBerryDescriptionPart2_Starf, + .stageDuration = 24, + .spicy = 10, + .dry = 10, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 30, + }, + { + .name = _("ENIGMA"), + .firmness = BERRY_FIRMNESS_UNKNOWN, + .size = 0, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Enigma, + .description2 = gBerryDescriptionPart2_Enigma, + .stageDuration = 24, + .spicy = 40, + .dry = 40, + .sweet = 40, + .bitter = 40, + .sour = 40, + .smoothness = 40, + }, +}; + +const struct BerryTree gBlankBerryTree = {0}; + extern u8 BerryTreeScript; -extern struct BerryTree gBlankBerryTree; extern u16 gScriptItemId; extern u16 gScriptLastTalked; extern u16 gSpecialVar_0x8004; @@ -39,8 +818,8 @@ void SetEnigmaBerry(u8 *src) u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) { - u8 *description1; - u8 *description2; + const u8 *description1; + const u8 *description2; u32 i; u32 checksum; u8 *dest; @@ -74,7 +853,7 @@ bool32 IsEnigmaBerryValid(void) return TRUE; } -struct Berry *GetBerryInfo(u8 berry) +const struct Berry *GetBerryInfo(u8 berry) { if (berry == 0x2B && IsEnigmaBerryValid()) return &gSaveBlock1.enigmaBerry.berry; @@ -319,7 +1098,7 @@ u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water) u8 CalcBerryYield(struct BerryTree *tree) { - struct Berry *berry = GetBerryInfo(tree->berry); + const struct Berry *berry = GetBerryInfo(tree->berry); u8 min = berry->minYield; u8 max = berry->maxYield; diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 040b9acd1..11f6e3ded 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -265,7 +265,7 @@ static void sub_8146480(u8 taskid) static void sub_81464E4(void) { - struct Berry *berryInfo; + const struct Berry *berryInfo; u32 size; s32 sizeMajor; s32 sizeMinor; @@ -306,7 +306,7 @@ static void sub_81464E4(void) static void sub_8146600(u8 berry) { - struct Berry *berryInfo; + const struct Berry *berryInfo; u16 i; berryInfo = GetBerryInfo(berry + 1); diff --git a/src/credits.c b/src/credits.c index eb8f45374..e0e662904 100644 --- a/src/credits.c +++ b/src/credits.c @@ -180,8 +180,8 @@ extern u8 gBirchHelpGfx[]; extern void *gUnknown_0840B5A0[]; // data/credits -extern u16 gUnknown_0840B7BC[32]; -extern u16 gUnknown_0840B7FC[32]; +const u16 gUnknown_0840B7BC[] = INCBIN_U16("graphics/credits/palette_1.gbapal"); +const u8 gUnknown_0840B7FC[] = INCBIN_U8("graphics/credits/ampersand.4bpp"); extern u8 gUnknown_0840B83C[]; extern u8 gUnknown_0840B84B[]; extern u8 gUnknown_0840B85A[]; @@ -191,8 +191,8 @@ extern struct CreditsEntry *gCreditsEntryPointerTable[][5]; extern u8 gUnknown_0840CA00[][2]; extern struct SpriteSheet gUnknown_0840CAA0; extern struct SpritePalette gUnknown_0840CAB0; -extern union AnimCmd *gSpriteAnimTable_0840CA54[]; -extern union AnimCmd *gSpriteAnimTable_0840CA94[]; +extern const union AnimCmd *const gSpriteAnimTable_0840CA54[]; +extern const union AnimCmd *const gSpriteAnimTable_0840CA94[]; extern struct SpriteTemplate gSpriteTemplate_840CAEC; // data/intro_credits_graphics diff --git a/src/intro.c b/src/intro.c index e2fcf3a1c..a2adbe0f5 100644 --- a/src/intro.c +++ b/src/intro.c @@ -46,22 +46,8 @@ extern struct SpriteSheet gTrainerBackPicTable[]; extern struct MonCoords gTrainerBackPicCoords[]; extern struct SpritePalette gTrainerBackPicPaletteTable[]; -extern const u16 gIntro1BGPals[]; -extern const u8 gIntro1BG0_Tilemap[]; -extern const u8 gIntro1BG1_Tilemap[]; -extern const u8 gIntro1BG2_Tilemap[]; -extern const u8 gIntro1BG3_Tilemap[]; -extern const u8 gIntro1BGLeavesGfx[]; -extern const u8 gIntro3PokeballPal[]; -extern const u8 gIntro3Pokeball_Tilemap[]; -extern const u8 gIntro3Pokeball_Gfx[]; -extern const u16 gIntro3Streaks_Pal[]; -extern const u8 gIntro3Streaks_Gfx[]; -extern const u8 gIntro3Streaks_Tilemap[]; -extern union AnimCmd *gUnknown_0840AE80[]; +extern const union AnimCmd *const gUnknown_0840AE80[]; extern const struct SpriteTemplate gSpriteTemplate_840AFF0; -extern const struct SpriteSheet gUnknown_0840B008; -extern const struct SpriteSheet gUnknown_0840B018; extern const struct SpritePalette gUnknown_0840B028[]; extern const struct SpriteTemplate gSpriteTemplate_840B1F4; extern const struct SpriteSheet gIntro3PokeballGfx_Table; @@ -82,12 +68,9 @@ extern const u16 gIntroCopyright_Pal[]; extern const u16 gIntroCopyright_Tilemap[]; extern const u16 gUnknown_08393E64[]; -extern const s16 gUnknown_0840AF50[][2]; -extern const s16 gUnknown_0840AF74[][2]; extern const struct SpriteTemplate gSpriteTemplate_840AF94; extern const struct SpriteTemplate gSpriteTemplate_840AFAC; extern const struct SpriteTemplate gSpriteTemplate_840AFC4; -extern union AnimCmd *gUnknown_0840B064[]; extern const struct SpriteTemplate gSpriteTemplate_840B084; extern const struct SpriteTemplate gSpriteTemplate_840B0B0; extern const struct SpriteTemplate gSpriteTemplate_840B0DC; @@ -100,9 +83,547 @@ extern const u16 gUnknown_0840B188[]; extern const struct SpriteTemplate gSpriteTemplate_840B1B0; extern const struct SpriteTemplate gSpriteTemplate_840B1C8; extern void *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 gIntro1BGPals[][16] = +{ + INCBIN_U16("graphics/intro/intro1_bgpal1.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal2.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal3.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal4.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal5.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal6.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal7.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal8.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal9.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal10.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal11.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal12.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal13.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal14.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal15.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal16.gbapal"), +}; +static const u8 gIntro1BG0_Tilemap[] = INCBIN_U8("graphics/intro/intro1_bg0_map.bin.lz"); +static const u8 gIntro1BG1_Tilemap[] = INCBIN_U8("graphics/intro/intro1_bg1_map.bin.lz"); +static const u8 gIntro1BG2_Tilemap[] = INCBIN_U8("graphics/intro/intro1_bg2_map.bin.lz"); +static const u8 gIntro1BG3_Tilemap[] = INCBIN_U8("graphics/intro/intro1_bg3_map.bin.lz"); +static const u8 gIntro1BGLeavesGfx[] = INCBIN_U8("graphics/intro/introgfx.4bpp.lz"); +static const u16 gIntro3PokeballPal[] = INCBIN_U16("graphics/intro/intro3_pokeball.gbapal"); +static const u8 gIntro3Pokeball_Tilemap[] = INCBIN_U8("graphics/intro/intro3_pokeball_map.bin.lz"); +static const u8 gIntro3Pokeball_Gfx[] = INCBIN_U8("graphics/intro/intro3_pokeball.8bpp.lz"); +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 struct OamData gOamData_840ADE8 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840ADF0[] = +{ + ANIMCMD_FRAME(16, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840ADF8[] = +{ + ANIMCMD_FRAME(24, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AE00[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AE08[] = +{ + ANIMCMD_FRAME(48, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_840AE10[] = +{ + gSpriteAnim_840ADF0, + gSpriteAnim_840ADF8, + gSpriteAnim_840AE00, + gSpriteAnim_840AE08, +}; +static void sub_813D208(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840AE20 = +{ + .tileTag = 2000, + .paletteTag = 2000, + .oam = &gOamData_840ADE8, + .anims = gSpriteAnimTable_840AE10, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813D208, +}; +static const union AnimCmd Unknown_40AE38[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(128, 4), + ANIMCMD_FRAME(192, 4), + ANIMCMD_JUMP(0), +}; +static const union AnimCmd Unknown_40AE4C[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(64, 8), + ANIMCMD_FRAME(128, 8), + ANIMCMD_FRAME(192, 8), + ANIMCMD_JUMP(0), +}; +static const union AnimCmd Unknown_40AE60[] = +{ + ANIMCMD_FRAME(256, 4), + ANIMCMD_FRAME(0x140, 4), + ANIMCMD_FRAME(0x180, 4), + ANIMCMD_END, +}; +static const union AnimCmd Unknown_40AE70[] = +{ + ANIMCMD_FRAME(0x180, 16), + ANIMCMD_FRAME(0x140, 16), + ANIMCMD_FRAME(256, 16), + ANIMCMD_END, +}; +static const union AnimCmd *const gUnknown_0840AE80[] = +{ + Unknown_40AE38, + Unknown_40AE4C, + Unknown_40AE60, + Unknown_40AE70, +}; +const struct OamData gOamData_840AE90 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +const struct OamData gOamData_840AE98 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +const struct OamData gOamData_840AEA0 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 2, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840AEA8[] = +{ + ANIMCMD_FRAME(80, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEB0[] = +{ + ANIMCMD_FRAME(84, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEB8[] = +{ + ANIMCMD_FRAME(88, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEC0[] = +{ + ANIMCMD_FRAME(92, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEC8[] = +{ + ANIMCMD_FRAME(96, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AED0[] = +{ + ANIMCMD_FRAME(100, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AED8[] = +{ + ANIMCMD_FRAME(104, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEE0[] = +{ + ANIMCMD_FRAME(112, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEE8[] = +{ + ANIMCMD_FRAME(113, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEF0[] = +{ + ANIMCMD_FRAME(114, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEF8[] = +{ + ANIMCMD_FRAME(115, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AF00[] = +{ + ANIMCMD_FRAME(116, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AF08[] = +{ + ANIMCMD_FRAME(117, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AF10[] = +{ + ANIMCMD_FRAME(128, 8), + ANIMCMD_END, +}; +const union AnimCmd *const gSpriteAnimTable_840AF18[] = +{ + gSpriteAnim_840AEA8, + gSpriteAnim_840AEB0, + gSpriteAnim_840AEB8, + gSpriteAnim_840AEC0, + gSpriteAnim_840AEC8, + gSpriteAnim_840AED0, + gSpriteAnim_840AED8, +}; +const union AnimCmd *const gSpriteAnimTable_840AF34[] = +{ + gSpriteAnim_840AEE0, + gSpriteAnim_840AEE8, + gSpriteAnim_840AEF0, + gSpriteAnim_840AEF8, + gSpriteAnim_840AF00, + gSpriteAnim_840AF08, +}; +const union AnimCmd *const gSpriteAnimTable_840AF4C[] = +{ + gSpriteAnim_840AF10, +}; +static const s16 gUnknown_0840AF50[][2] = +{ + {0, -72}, + {1, -56}, + {2, -40}, + {3, -24}, + {4, 8}, + {5, 24}, + {3, 40}, + {1, 56}, + {6, 72}, +}; +static const s16 gUnknown_0840AF74[][2] = +{ + {0, -28}, + {1, -20}, + {2, -12}, + {3, -4}, + {2, 4}, + {4, 12}, + {5, 20}, + {3, 28}, +}; +void sub_813D908(struct Sprite *sprite); +const struct SpriteTemplate gSpriteTemplate_840AF94 = +{ + .tileTag = 2000, + .paletteTag = 2001, + .oam = &gOamData_840AE90, + .anims = gSpriteAnimTable_840AF18, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813D908, +}; +const struct SpriteTemplate gSpriteTemplate_840AFAC = +{ + .tileTag = 2000, + .paletteTag = 2001, + .oam = &gOamData_840AE98, + .anims = gSpriteAnimTable_840AF34, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813D908, +}; +const struct SpriteTemplate gSpriteTemplate_840AFC4 = +{ + .tileTag = 2000, + .paletteTag = 2001, + .oam = &gOamData_840AEA0, + .anims = gSpriteAnimTable_840AF4C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813D908, +}; +const struct OamData gOamData_840AFDC = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +const union AnimCmd gSpriteAnim_840AFE4[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_JUMP(0), +}; +const union AnimCmd *const gSpriteAnimTable_840AFEC[] = +{ + gSpriteAnim_840AFE4, +}; +void sub_813DA64(struct Sprite *sprite); +const struct SpriteTemplate gSpriteTemplate_840AFF0 = +{ + .tileTag = 2002, + .paletteTag = 2002, + .oam = &gOamData_840AFDC, + .anims = gSpriteAnimTable_840AFEC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813DA64, +}; +const struct SpriteSheet gUnknown_0840B008[] = +{ + {gIntroTiles, 0x1400, 2000}, + {NULL}, +}; +const struct SpriteSheet gUnknown_0840B018[] = +{ + {gIntro1EonTiles, 0x400, 2002}, + {NULL}, +}; +const struct SpritePalette gUnknown_0840B028[] = +{ + {Palette_406340, 2000}, + {Palette_406360, 2001}, + {gIntro1EonPalette, 2002}, + {NULL}, +}; +const union AnimCmd gUnknown_0840B048[] = +{ + ANIMCMD_FRAME(3, 0), + ANIMCMD_END, +}; +const union AnimCmd gUnknown_0840B050[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; +const union AnimCmd gUnknown_0840B058[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(2, 8), + ANIMCMD_END, +}; +const union AnimCmd *const gUnknown_0840B064[] = +{ + gUnknown_0840B048, + gUnknown_0840B050, + gUnknown_0840B058, +}; +const struct OamData gOamData_840B070 = +{ + .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, +}; +const union AnimCmd gSpriteAnim_840B078[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; +const union AnimCmd *const gSpriteAnimTable_840B080[] = +{ + gSpriteAnim_840B078, +}; +void sub_813E30C(struct Sprite *sprite); +const struct SpriteTemplate gSpriteTemplate_840B084 = +{ + .tileTag = 2002, + .paletteTag = 2002, + .oam = &gOamData_840B070, + .anims = gSpriteAnimTable_840B080, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813E30C, +}; +const struct OamData gOamData_840B09C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +const union AnimCmd gSpriteAnim_840B0A4[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_END, +}; +const union AnimCmd *const gSpriteAnimTable_840B0AC[] = +{ + gSpriteAnim_840B0A4, +}; +void sub_813E4B8(struct Sprite *sprite); +const struct SpriteTemplate gSpriteTemplate_840B0B0 = +{ + .tileTag = 2003, + .paletteTag = 2003, + .oam = &gOamData_840B09C, + .anims = gSpriteAnimTable_840B0AC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813E4B8, +}; +const struct OamData gOamData_840B0C8 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +const union AnimCmd gSpriteAnim_840B0D0[] = +{ + ANIMCMD_FRAME(14, 8), + ANIMCMD_END, +}; +const union AnimCmd *const gSpriteAnimTable_840B0D8[] = +{ + gSpriteAnim_840B0D0, +}; +void sub_813E5E0(struct Sprite *sprite); +const struct SpriteTemplate gSpriteTemplate_840B0DC = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B0C8, + .anims = gSpriteAnimTable_840B0D8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813E5E0, +}; +void sub_813E6C0(struct Sprite *sprite); +const struct SpriteTemplate gSpriteTemplate_840B0F4 = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B0C8, + .anims = gSpriteAnimTable_840B0D8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813E6C0, +}; +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 void MainCB2_EndIntro(void); static void Task_IntroLoadPart1Graphics(u8); static void Task_IntroFadeIn(u8); @@ -288,13 +809,13 @@ static void Task_IntroLoadPart1Graphics(u8 taskId) DmaClear16(3, VRAM + 0xA800, 0x800); LZ77UnCompVram(gIntro1BG3_Tilemap, (void *)(VRAM + 0xB000)); DmaClear16(3, VRAM + 0xB800, 0x800); - LoadPalette(gIntro1BGPals, 0, 0x200); + LoadPalette(gIntro1BGPals, 0, sizeof(gIntro1BGPals)); REG_BG3CNT = 0x9603; REG_BG2CNT = 0x9402; REG_BG1CNT = 0x9201; REG_BG0CNT = 0x9000; - LoadCompressedObjectPic(&gUnknown_0840B008); - LoadCompressedObjectPic(&gUnknown_0840B018); + LoadCompressedObjectPic(&gUnknown_0840B008[0]); + LoadCompressedObjectPic(&gUnknown_0840B018[0]); LoadSpritePalettes(gUnknown_0840B028); CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1F0, 0x20); CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1E1, 0x1E); @@ -1198,7 +1719,7 @@ void sub_813D158(struct Sprite *sprite) } } -void sub_813D208(struct Sprite *sprite) +static void sub_813D208(struct Sprite *sprite) { if (sprite->data0 != 0) sprite->callback = sub_813D220; diff --git a/src/main_menu.c b/src/main_menu.c index c586e2b08..f47b3bb47 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -69,7 +69,7 @@ extern const u8 gUnknown_081E7834[]; extern const u8 gUnknown_081E796C[]; extern const u8 gSystemText_NewPara[]; -extern u8 gSpriteAffineAnimTable_81E79AC[]; +extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E79AC[]; extern u8 unk_2000000[]; @@ -1256,7 +1256,7 @@ static void Task_NewGameSpeech30(u8 taskId) spriteId = gTasks[taskId].data[TD_TRAINER_SPRITE_ID]; gSprites[spriteId].oam.affineMode = 1; - gSprites[spriteId].affineAnims = (union AffineAnimCmd **)gSpriteAffineAnimTable_81E79AC; + gSprites[spriteId].affineAnims = gSpriteAffineAnimTable_81E79AC; InitSpriteAffineAnim(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], 0); gSprites[spriteId].callback = ShrinkPlayerSprite; diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 87d95e1fa..ecdd1af20 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -39,10 +39,11 @@ extern u32 gBitTable[]; extern struct BaseStats gBaseStats[]; extern u8 gSpeciesNames[][11]; extern struct BattleMove gBattleMoves[]; -extern struct SpriteTemplate gSpriteTemplate_8208288[]; -extern union AmimCmd *gSpriteAnimTable_81E7C64[]; -extern union AnimCmd **gUnknown_081EC2A4[]; -extern union AnimCmd **gUnknown_081ECACC[]; +extern const struct SpriteTemplate gSpriteTemplate_8208288[]; +extern const union AmimCmd *const gSpriteAnimTable_81E7C64[]; +//array of pointers to arrays of pointers to union AnimCmd (We probably need to typedef this.) +extern const union AnimCmd *const *const gUnknown_081EC2A4[]; +extern const union AnimCmd *const *const gUnknown_081ECACC[]; extern u8 gTrainerClassToPicIndex[]; extern u8 gTrainerClassToNameIndex[]; extern u8 gSecretBaseTrainerClasses[]; @@ -248,7 +249,8 @@ void GetMonSpriteTemplate_803C56C(u16 species, u8 a2) { gUnknown_02024E8C = gSpriteTemplate_8208288[a2]; gUnknown_02024E8C.paletteTag = species; - gUnknown_02024E8C.anims = (union AnimCmd **)gSpriteAnimTable_81E7C64; + //Don't know why the compiler says this is incompatible + gUnknown_02024E8C.anims = (const union AnimCmd *const *)gSpriteAnimTable_81E7C64; } void GetMonSpriteTemplate_803C5A0(u16 species, u8 a2) diff --git a/src/sprite.c b/src/sprite.c index 8e8833536..987f2a812 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -36,7 +36,7 @@ struct OamMatrix struct SpriteCopyRequest { - u8 *src; + const u8 *src; u8 *dest; u16 size; }; @@ -95,7 +95,7 @@ static void ApplyAffineAnimFrame(u8 matrixNum, struct AffineAnimFrameCmd *frameC static void ResetAffineAnimData(void); static u8 IndexOfSpriteTileTag(u16 tag); static void AllocSpriteTileRange(u16 tag, u16 start, u16 count); -static void DoLoadSpritePalette(u16 *src, u16 paletteOffset); +static void DoLoadSpritePalette(const u16 *src, u16 paletteOffset); typedef void (*AnimFunc)(struct Sprite *); typedef void (*AnimCmdFunc)(struct Sprite *); @@ -171,51 +171,51 @@ static const u8 sCenterToCornerVecTable[3][4][2] = static const struct Sprite sDummySprite = { - DUMMY_OAM_DATA, - (union AnimCmd **)gDummySpriteAnimTable, - NULL, - (union AffineAnimCmd **)gDummySpriteAffineAnimTable, - (struct SpriteTemplate *)&gDummySpriteTemplate, - NULL, - SpriteCallbackDummy, - { 304, 160 }, - { 0, 0 }, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0xFF + .oam = DUMMY_OAM_DATA, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .template = &gDummySpriteTemplate, + .subspriteTables = NULL, + .callback = SpriteCallbackDummy, + .pos1 = { 304, 160 }, + .pos2 = { 0, 0 }, + .centerToCornerVecX = 0, + .centerToCornerVecY = 0, + .animNum = 0, + .animCmdIndex = 0, + .animDelayCounter = 0, + .animPaused = 0, + .affineAnimPaused = 0, + .animLoopCounter = 0, + .data0 = 0, + .data1 = 0, + .data2 = 0, + .data3 = 0, + .data4 = 0, + .data5 = 0, + .data6 = 0, + .data7 = 0, + .inUse = 0, + .coordOffsetEnabled = 0, + .invisible = 0, + .flags_3 = 0, + .flags_4 = 0, + .flags_5 = 0, + .flags_6 = 0, + .flags_7 = 0, + .hFlip = 0, + .vFlip = 0, + .animBeginning = 0, + .affineAnimBeginning = 0, + .animEnded = 0, + .affineAnimEnded = 0, + .usingSheet = 0, + .flags_f = 0, + .sheetTileStart = 0, + .subspriteTableNum = 0, + .subspriteMode = 0, + .subpriority = 0xFF }; const struct OamData gDummyOamData = DUMMY_OAM_DATA; @@ -230,13 +230,13 @@ const union AffineAnimCmd * const gDummySpriteAffineAnimTable[] = { &sDummyAffin const struct SpriteTemplate gDummySpriteTemplate = { - 0, - 0xFFFF, - (struct OamData *)&gDummyOamData, - (union AnimCmd **)gDummySpriteAnimTable, - NULL, - (union AffineAnimCmd **)gDummySpriteAffineAnimTable, - SpriteCallbackDummy + .tileTag = 0, + .paletteTag = 0xFFFF, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; // TODO: Find out what these are used for. @@ -840,7 +840,7 @@ static void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, struct SpriteFra } } -void RequestSpriteCopy(u8 *src, u8 *dest, u16 size) +void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size) { if (gSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS) { @@ -1515,7 +1515,7 @@ void AllocTilesForSpriteSheets(struct SpriteSheet *sheets) void LoadTilesForSpriteSheet(const struct SpriteSheet *sheet) { - u8 *data = sheet->data; + const u8 *data = sheet->data; u16 tileStart = GetSpriteTileStartByTag(sheet->tag); CpuCopy16(data, (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size); } @@ -1601,7 +1601,7 @@ static void AllocSpriteTileRange(u16 tag, u16 start, u16 count) void RequestSpriteSheetCopy(const struct SpriteSheet *sheet) { - u8 *data = sheet->data; + const u8 *data = sheet->data; u16 tileStart = GetSpriteTileStartByTag(sheet->tag); RequestSpriteCopy(data, (u8 *)OBJ_VRAM0 + tileStart * TILE_SIZE_4BPP, sheet->size); } @@ -1659,7 +1659,7 @@ void LoadSpritePalettes(const struct SpritePalette *palettes) break; } -static void DoLoadSpritePalette(u16 *src, u16 paletteOffset) +static void DoLoadSpritePalette(const u16 *src, u16 paletteOffset) { LoadPalette(src, paletteOffset + 0x100, 32); } diff --git a/src/starter_choose.c b/src/starter_choose.c index 4a6fb11eb..29c090fc0 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -8,6 +8,7 @@ #include "pokedex.h" #include "songs.h" #include "sound.h" +#include "species.h" #include "sprite.h" #include "string_util.h" #include "task.h" @@ -18,17 +19,159 @@ struct MonCoords u8 x, y; }; +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 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] = +{ + {60, 64}, + {120, 88}, + {180, 64}, +}; +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 = +{ + .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, +}; +const struct OamData gOamData_83F76D4 = +{ + .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, +}; +const struct OamData gOamData_83F76DC = +{ + .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, +}; +const u8 gUnknown_083F76E4[][2] = +{ + {60, 32}, + {120, 56}, + {180, 32}, + {0, 0}, +}; +const union AnimCmd gSpriteAnim_83F76EC[] = +{ + ANIMCMD_FRAME(48, 30), + ANIMCMD_END, +}; +const union AnimCmd gSpriteAnim_83F76F4[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; +const union AnimCmd gSpriteAnim_83F76FC[] = +{ + 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), +}; +const union AnimCmd gSpriteAnim_83F7744[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; +const union AnimCmd *const gSpriteAnimTable_83F774C[] = +{ + gSpriteAnim_83F76EC, +}; +const union AnimCmd *const gSpriteAnimTable_83F7750[] = +{ + gSpriteAnim_83F76F4, + gSpriteAnim_83F76FC, +}; +const union AnimCmd *const gSpriteAnimTable_83F7758[] = +{ + gSpriteAnim_83F7744, +}; +const union AffineAnimCmd gSpriteAffineAnim_83F775C[] = +{ + AFFINEANIMCMD_FRAME(16, 16, 0, 0), + AFFINEANIMCMD_FRAME(16, 16, 0, 15), + AFFINEANIMCMD_END, +}; +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[] = +{ + gSpriteAffineAnim_83F775C, +}; +const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7790[] = +{ + gSpriteAffineAnim_83F7774, +}; + extern void * const gUnknown_081FAF4C[]; -extern const u8 gStarterChoose_PokeballCoords[][2]; -extern u8 gBirchHelpGfx[]; -extern u8 gBirchBagTilemap[]; -extern u8 gBirchGrassTilemap[]; -extern struct SpriteSheet gUnknown_083F7794; -extern struct SpriteSheet gUnknown_083F77A4; -extern u8 gBirchBagGrassPal[]; -extern const u8 gStarterChoose_LabelCoords[][2]; -extern u16 gStarterMons[]; -extern union AffineAnimCmd *gSpriteAffineAnimTable_83F778C[]; +extern const struct SpriteSheet gUnknown_083F7794; +extern const struct SpriteSheet gUnknown_083F77A4; extern u8 gOtherText_DoYouChoosePoke[]; extern u16 gScriptResult; extern u8 gSpeciesNames[][11]; @@ -36,7 +179,6 @@ extern u8 gOtherText_Poke[]; extern const struct SpriteSheet gMonFrontPicTable[]; extern const struct MonCoords gMonFrontPicCoords[]; extern const struct SpritePalette gMonPaletteTable[]; -extern u8 gUnknown_083F76E4[][2]; extern u8 gOtherText_BirchInTrouble[]; extern struct SpriteTemplate gSpriteTemplate_83F77E4; @@ -116,7 +258,7 @@ void CB2_ChooseStarter(void) ResetSpriteData(); ResetPaletteFade(); FreeAllSpritePalettes(); - LoadPalette(gBirchBagGrassPal, 0, 0x40); + LoadPalette(gBirchBagGrassPal, 0, sizeof(gBirchBagGrassPal)); LoadCompressedObjectPic(&gUnknown_083F7794); LoadCompressedObjectPic(&gUnknown_083F77A4); LoadSpritePalettes(gUnknown_083F77B4); diff --git a/src/wallclock.c b/src/wallclock.c index dc9d871e7..2f4d694a6 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -12,21 +12,142 @@ #include "trig.h" extern u16 gSpecialVar_0x8004; -extern u16 gMiscClockMale_Pal[]; -extern u16 gMiscClockFemale_Pal[]; extern u8 gMiscClock_Gfx[]; -extern struct SpriteSheet gUnknown_083F7A90; -extern struct SpritePalette gUnknown_083F7AA0; extern u8 gUnknown_08E95774[]; extern u8 gUnknown_08E954B0[]; extern u8 gOtherText_CorrectTimePrompt[]; extern const struct MenuAction gMenuYesNoItems[]; -extern s8 gClockHandCoords[][2]; +extern u16 gMiscClockMale_Pal[]; +extern u16 gMiscClockFemale_Pal[]; + +//-------------------------------------------------- +// Graphics Data +//-------------------------------------------------- -extern struct SpriteTemplate gSpriteTemplate_83F7AD8; -extern struct SpriteTemplate gSpriteTemplate_83F7AF0; -extern struct SpriteTemplate gSpriteTemplate_83F7B28; -extern struct SpriteTemplate gSpriteTemplate_83F7B40; +static const u8 ClockGfx_Misc[] = INCBIN_U8("graphics/misc/clock_misc.4bpp.lz"); +static const struct SpriteSheet gUnknown_083F7A90[] = +{ + {ClockGfx_Misc, 0x2000, 0x1000}, + {NULL}, +}; +static const struct SpritePalette gUnknown_083F7AA0[] = +{ + {gMiscClockMale_Pal, 0x1000}, + {gMiscClockFemale_Pal, 0x1001}, + {NULL}, +}; +static const struct OamData gOamData_83F7AB8 = +{ + .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_83F7AC0[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83F7AC8[] = +{ + ANIMCMD_FRAME(64, 30), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_83F7AD0[] = +{ + gSpriteAnim_83F7AC0, +}; +static const union AnimCmd *const gSpriteAnimTable_83F7AD4[] = +{ + gSpriteAnim_83F7AC8, +}; +static void sub_810B05C(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F7AD8 = +{ + .tileTag = 0x1000, + .paletteTag = 0x1000, + .oam = &gOamData_83F7AB8, + .anims = gSpriteAnimTable_83F7AD0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810B05C, +}; +static void sub_810B0F4(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F7AF0 = +{ + .tileTag = 0x1000, + .paletteTag = 0x1000, + .oam = &gOamData_83F7AB8, + .anims = gSpriteAnimTable_83F7AD4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810B0F4, +}; +static const struct OamData gOamData_83F7B08 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_83F7B10[] = +{ + ANIMCMD_FRAME(132, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83F7B18[] = +{ + ANIMCMD_FRAME(128, 30), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_83F7B20[] = +{ + gSpriteAnim_83F7B10, +}; +static const union AnimCmd *const gSpriteAnimTable_83F7B24[] = +{ + gSpriteAnim_83F7B18, +}; +static void sub_810B18C(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F7B28 = +{ + .tileTag = 0x1000, + .paletteTag = 0x1000, + .oam = &gOamData_83F7B08, + .anims = gSpriteAnimTable_83F7B20, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810B18C, +}; +static void sub_810B230(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F7B40 = +{ + .tileTag = 0x1000, + .paletteTag = 0x1000, + .oam = &gOamData_83F7B08, + .anims = gSpriteAnimTable_83F7B24, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810B230, +}; static void WallClockVblankCallback(void); static void LoadWallClockGraphics(void); @@ -48,25 +169,17 @@ static u8 AdvanceClock(u8 taskId, u8 direction); static void UpdateClockPeriod(u8 taskId, u8 direction); static void InitClockWithRtc(u8 taskId); -//Task data -enum { - TD_MHAND_ANGLE, - TD_HHAND_ANGLE, - TD_HOURS, - TD_MINUTES, - TD_SETDIRECTION, //Movement direction when setting the clock - TD_PERIOD, //Whether the time is AM or PM - TD_SETSPEED, //Movement speed when setting the clock -}; - -enum { - AM, - PM +enum +{ + PERIOD_AM, + PERIOD_PM, }; -enum { - BACKWARD = 1, - FORWARD +enum +{ + MVMT_NONE, + MVMT_BACKWARD, + MVMT_FORWARD, }; static void WallClockVblankCallback(void) @@ -122,8 +235,8 @@ static void LoadWallClockGraphics(void) ResetSpriteData(); ResetPaletteFade(); FreeAllSpritePalettes(); - LoadCompressedObjectPic(&gUnknown_083F7A90); - LoadSpritePalettes(&gUnknown_083F7AA0); + LoadCompressedObjectPic(&gUnknown_083F7A90[0]); + LoadSpritePalettes(gUnknown_083F7AA0); SetUpWindowConfig(&gWindowConfig_81E6C3C); InitMenuWindow(&gWindowConfig_81E6CE4); } @@ -149,6 +262,14 @@ static void WallClockInit(void) DISPCNT_BG3_ON | DISPCNT_OBJ_ON; } +#define tMinuteHandAngle data[0] +#define tHourHandAngle data[1] +#define tHours data[2] +#define tMinutes data[3] +#define tMvmtDir data[4] +#define tPeriod data[5] +#define tMvmtSpeed data[6] + //Allow player to set the clock void CB2_StartWallClock(void) { @@ -159,29 +280,29 @@ void CB2_StartWallClock(void) LZ77UnCompVram(&gUnknown_08E954B0, (void *)(VRAM + 0x3800)); taskId = CreateTask(Task_SetClock1, 0); - gTasks[taskId].data[TD_HOURS] = 10; - gTasks[taskId].data[TD_MINUTES] = 0; - gTasks[taskId].data[TD_SETDIRECTION] = 0; - gTasks[taskId].data[TD_PERIOD] = AM; - gTasks[taskId].data[TD_SETSPEED] = 0; - gTasks[taskId].data[TD_MHAND_ANGLE] = 0; - gTasks[taskId].data[TD_HHAND_ANGLE] = 300; - - spriteId = CreateSprite(&gSpriteTemplate_83F7AD8, 0x78, 0x50, 1); + gTasks[taskId].tHours = 10; + gTasks[taskId].tMinutes = 0; + gTasks[taskId].tMvmtDir = MVMT_NONE; + gTasks[taskId].tPeriod = PERIOD_AM; + gTasks[taskId].tMvmtSpeed = 0; + gTasks[taskId].tMinuteHandAngle = 0; + gTasks[taskId].tHourHandAngle = 300; + + spriteId = CreateSprite(&gSpriteTemplate_83F7AD8, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, 1); gSprites[spriteId].data0 = taskId; gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 0; - spriteId = CreateSprite(&gSpriteTemplate_83F7AF0, 0x78, 0x50, 0); + spriteId = CreateSprite(&gSpriteTemplate_83F7AF0, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, 0); gSprites[spriteId].data0 = taskId; gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 1; - spriteId = CreateSprite(&gSpriteTemplate_83F7B28, 0x78, 0x50, 2); + spriteId = CreateSprite(&gSpriteTemplate_83F7B28, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, 2); gSprites[spriteId].data0 = taskId; gSprites[spriteId].data1 = 45; - spriteId = CreateSprite(&gSpriteTemplate_83F7B40, 0x78, 0x50, 2); + spriteId = CreateSprite(&gSpriteTemplate_83F7B40, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, 2); gSprites[spriteId].data0 = taskId; gSprites[spriteId].data1 = 90; @@ -201,7 +322,7 @@ void CB2_ViewWallClock(void) taskId = CreateTask(Task_ViewClock1, 0); InitClockWithRtc(taskId); - if (gTasks[taskId].data[TD_PERIOD] == 0) + if (gTasks[taskId].tPeriod == PERIOD_AM) { angle1 = 45; angle2 = 90; @@ -250,17 +371,17 @@ static void Task_SetClock1(u8 taskId) //Handle keypresses when setting clock static void Task_SetClock2(u8 taskId) { - if (gTasks[taskId].data[TD_MHAND_ANGLE] % 6) + if (gTasks[taskId].tMinuteHandAngle % 6) { - gTasks[taskId].data[TD_MHAND_ANGLE] = CalcNewMinHandAngle( - gTasks[taskId].data[TD_MHAND_ANGLE], - gTasks[taskId].data[TD_SETDIRECTION], - gTasks[taskId].data[TD_SETSPEED]); + gTasks[taskId].tMinuteHandAngle = CalcNewMinHandAngle( + gTasks[taskId].tMinuteHandAngle, + gTasks[taskId].tMvmtDir, + gTasks[taskId].tMvmtSpeed); } else { - gTasks[taskId].data[TD_MHAND_ANGLE] = gTasks[taskId].data[TD_MINUTES] * 6; - gTasks[taskId].data[TD_HHAND_ANGLE] = (gTasks[taskId].data[TD_HOURS] % 12) * 30 + (gTasks[taskId].data[TD_MINUTES] / 10) * 5; + gTasks[taskId].tMinuteHandAngle = gTasks[taskId].tMinutes * 6; + gTasks[taskId].tHourHandAngle = (gTasks[taskId].tHours % 12) * 30 + (gTasks[taskId].tMinutes / 10) * 5; if (gMain.newKeys & A_BUTTON) { gTasks[taskId].func = Task_SetClock3; @@ -268,24 +389,24 @@ static void Task_SetClock2(u8 taskId) } else { - gTasks[taskId].data[TD_SETDIRECTION] = gMain.newKeys & A_BUTTON; + gTasks[taskId].tMvmtDir = gMain.newKeys & A_BUTTON; if (gMain.heldKeys & DPAD_LEFT) - gTasks[taskId].data[TD_SETDIRECTION] = BACKWARD; + gTasks[taskId].tMvmtDir = MVMT_BACKWARD; if (gMain.heldKeys & DPAD_RIGHT) - gTasks[taskId].data[TD_SETDIRECTION] = FORWARD; - if (gTasks[taskId].data[TD_SETDIRECTION]) + gTasks[taskId].tMvmtDir = MVMT_FORWARD; + if (gTasks[taskId].tMvmtDir) { - if (gTasks[taskId].data[TD_SETSPEED] <= 0xFE) - gTasks[taskId].data[TD_SETSPEED]++; - gTasks[taskId].data[TD_MHAND_ANGLE] = CalcNewMinHandAngle( - gTasks[taskId].data[TD_MHAND_ANGLE], - gTasks[taskId].data[TD_SETDIRECTION], - gTasks[taskId].data[TD_SETSPEED]); - AdvanceClock(taskId, gTasks[taskId].data[TD_SETDIRECTION]); + if (gTasks[taskId].tMvmtSpeed < 0xFF) + gTasks[taskId].tMvmtSpeed++; + gTasks[taskId].tMinuteHandAngle = CalcNewMinHandAngle( + gTasks[taskId].tMinuteHandAngle, + gTasks[taskId].tMvmtDir, + gTasks[taskId].tMvmtSpeed); + AdvanceClock(taskId, gTasks[taskId].tMvmtDir); } else { - gTasks[taskId].data[TD_SETSPEED] = 0; + gTasks[taskId].tMvmtSpeed = 0; } } } @@ -324,7 +445,7 @@ static void Task_SetClock4(u8 taskId) //Set the time offset based on the wall clock's time static void Task_SetClock5(u8 taskId) { - RtcInitLocalTimeOffset(gTasks[taskId].data[TD_HOURS], gTasks[taskId].data[TD_MINUTES]); + RtcInitLocalTimeOffset(gTasks[taskId].tHours, gTasks[taskId].tMinutes); BeginNormalPaletteFade(-1, 0, 0, 16, 0); gTasks[taskId].func = Task_SetClock6; } @@ -373,20 +494,20 @@ static u8 CalcMinHandDelta(u16 speed) return 1; } -//Calculates the new position of the minute hand when setting the clock +//Calculates the new angle of the minute hand when setting the clock static u16 CalcNewMinHandAngle(u16 angle, u8 direction, u8 speed) { u8 delta = CalcMinHandDelta(speed); switch (direction) { - case BACKWARD: + case MVMT_BACKWARD: if (angle) angle = angle - delta; else angle = 360 - delta; break; - case FORWARD: + case MVMT_FORWARD: if (angle < 360 - delta) angle = angle + delta; else @@ -401,29 +522,29 @@ static u8 AdvanceClock(u8 taskId, u8 direction) { switch (direction) { - case BACKWARD: - if (gTasks[taskId].data[TD_MINUTES] > 0) - gTasks[taskId].data[TD_MINUTES]--; + case MVMT_BACKWARD: + if (gTasks[taskId].tMinutes > 0) + gTasks[taskId].tMinutes--; else { - gTasks[taskId].data[TD_MINUTES] = 59; - if (gTasks[taskId].data[TD_HOURS] > 0) - gTasks[taskId].data[TD_HOURS]--; + gTasks[taskId].tMinutes = 59; + if (gTasks[taskId].tHours > 0) + gTasks[taskId].tHours--; else - gTasks[taskId].data[TD_HOURS] = 23; + gTasks[taskId].tHours = 23; UpdateClockPeriod(taskId, direction); } break; - case FORWARD: - if (gTasks[taskId].data[TD_MINUTES] <= 58) - gTasks[taskId].data[TD_MINUTES]++; + case MVMT_FORWARD: + if (gTasks[taskId].tMinutes < 59) + gTasks[taskId].tMinutes++; else { - gTasks[taskId].data[TD_MINUTES] = 0; - if (gTasks[taskId].data[TD_HOURS] <= 22) - gTasks[taskId].data[TD_HOURS]++; + gTasks[taskId].tMinutes = 0; + if (gTasks[taskId].tHours < 23) + gTasks[taskId].tHours++; else - gTasks[taskId].data[TD_HOURS] = 0; + gTasks[taskId].tHours = 0; UpdateClockPeriod(taskId, direction); } break; @@ -434,29 +555,29 @@ static u8 AdvanceClock(u8 taskId, u8 direction) //Updates the clock period (AM/PM) if it needs to change static void UpdateClockPeriod(u8 taskId, u8 direction) { - u8 hours = gTasks[taskId].data[TD_HOURS]; + u8 hours = gTasks[taskId].tHours; switch (direction) { - case BACKWARD: + case MVMT_BACKWARD: switch (hours) { case 11: - gTasks[taskId].data[TD_PERIOD] = AM; + gTasks[taskId].tPeriod = PERIOD_AM; break; case 23: - gTasks[taskId].data[TD_PERIOD] = PM; + gTasks[taskId].tPeriod = PERIOD_PM; break; } break; - case FORWARD: + case MVMT_FORWARD: switch (hours) { case 0: - gTasks[taskId].data[TD_PERIOD] = AM; + gTasks[taskId].tPeriod = PERIOD_AM; break; case 12: - gTasks[taskId].data[TD_PERIOD] = PM; + gTasks[taskId].tPeriod = PERIOD_PM; break; } break; @@ -466,17 +587,381 @@ static void UpdateClockPeriod(u8 taskId, u8 direction) static void InitClockWithRtc(u8 taskId) { RtcCalcLocalTime(); - gTasks[taskId].data[TD_HOURS] = gLocalTime.hours; - gTasks[taskId].data[TD_MINUTES] = gLocalTime.minutes; - gTasks[taskId].data[TD_MHAND_ANGLE] = gTasks[taskId].data[TD_MINUTES] * 6; - gTasks[taskId].data[TD_HHAND_ANGLE] = (gTasks[taskId].data[TD_HOURS] % 12) * 30 + (gTasks[taskId].data[TD_MINUTES] / 10) * 5; + gTasks[taskId].tHours = gLocalTime.hours; + gTasks[taskId].tMinutes = gLocalTime.minutes; + gTasks[taskId].tMinuteHandAngle = gTasks[taskId].tMinutes * 6; + gTasks[taskId].tHourHandAngle = (gTasks[taskId].tHours % 12) * 30 + (gTasks[taskId].tMinutes / 10) * 5; if (gLocalTime.hours <= 11) - gTasks[taskId].data[TD_PERIOD] = AM; + gTasks[taskId].tPeriod = PERIOD_AM; else - gTasks[taskId].data[TD_PERIOD] = PM; + gTasks[taskId].tPeriod = PERIOD_PM; } -void sub_810B05C(struct Sprite *sprite) +static const s8 gClockHandCoords[][2] = +{ + { 0, -24}, + { 1, -25}, + { 1, -25}, + { 2, -25}, + { 2, -25}, + { 2, -25}, + { 3, -24}, + { 3, -25}, + { 4, -25}, + { 4, -25}, + { 4, -25}, + { 5, -25}, + { 5, -25}, + { 6, -24}, + { 6, -24}, + { 6, -24}, + { 7, -24}, + { 7, -24}, + { 7, -24}, + { 8, -24}, + { 8, -24}, + { 9, -24}, + { 9, -24}, + { 10, -23}, + { 10, -23}, + { 11, -22}, + { 11, -22}, + { 11, -22}, + { 12, -22}, + { 12, -21}, + { 13, -21}, + { 13, -21}, + { 13, -21}, + { 14, -21}, + { 14, -21}, + { 14, -20}, + { 14, -20}, + { 15, -20}, + { 15, -19}, + { 16, -19}, + { 16, -19}, + { 16, -19}, + { 16, -18}, + { 16, -18}, + { 17, -18}, + { 17, -17}, + { 17, -17}, + { 18, -17}, + { 18, -17}, + { 18, -16}, + { 18, -16}, + { 19, -16}, + { 19, -15}, + { 19, -15}, + { 20, -15}, + { 20, -14}, + { 20, -14}, + { 20, -13}, + { 20, -13}, + { 21, -13}, + { 21, -13}, + { 21, -12}, + { 22, -12}, + { 22, -12}, + { 22, -11}, + { 22, -11}, + { 22, -10}, + { 23, -10}, + { 23, -9}, + { 23, -9}, + { 23, -9}, + { 23, -9}, + { 23, -8}, + { 23, -8}, + { 23, -7}, + { 23, -7}, + { 23, -6}, + { 24, -6}, + { 24, -6}, + { 25, -5}, + { 25, -5}, + { 24, -4}, + { 25, -4}, + { 24, -3}, + { 25, -3}, + { 25, -3}, + { 25, -2}, + { 25, -2}, + { 24, -1}, + { 25, -1}, + { 24, 0}, + { 24, 0}, + { 24, 0}, + { 24, 1}, + { 24, 1}, + { 25, 2}, + { 24, 2}, + { 25, 2}, + { 24, 3}, + { 24, 3}, + { 25, 4}, + { 24, 4}, + { 24, 5}, + { 24, 5}, + { 24, 5}, + { 24, 6}, + { 23, 6}, + { 23, 6}, + { 23, 7}, + { 23, 8}, + { 23, 8}, + { 23, 8}, + { 23, 9}, + { 23, 9}, + { 23, 10}, + { 22, 10}, + { 22, 10}, + { 22, 11}, + { 22, 11}, + { 22, 11}, + { 22, 12}, + { 21, 12}, + { 21, 12}, + { 21, 13}, + { 20, 13}, + { 20, 13}, + { 19, 13}, + { 19, 13}, + { 19, 14}, + { 19, 14}, + { 19, 15}, + { 19, 15}, + { 18, 15}, + { 18, 16}, + { 17, 16}, + { 17, 16}, + { 17, 17}, + { 17, 17}, + { 16, 17}, + { 16, 18}, + { 16, 18}, + { 15, 18}, + { 14, 18}, + { 15, 19}, + { 14, 19}, + { 14, 19}, + { 13, 19}, + { 13, 20}, + { 13, 20}, + { 13, 20}, + { 12, 20}, + { 12, 20}, + { 12, 21}, + { 11, 21}, + { 11, 21}, + { 11, 21}, + { 10, 21}, + { 10, 22}, + { 10, 22}, + { 9, 22}, + { 9, 22}, + { 8, 22}, + { 7, 22}, + { 7, 23}, + { 7, 23}, + { 6, 23}, + { 6, 23}, + { 5, 23}, + { 5, 23}, + { 5, 24}, + { 4, 24}, + { 4, 24}, + { 4, 24}, + { 3, 24}, + { 2, 24}, + { 2, 24}, + { 1, 24}, + { 1, 24}, + { 0, 24}, + { 0, 24}, + { -1, 23}, + { 0, 24}, + { 0, 24}, + { -1, 24}, + { -1, 24}, + { -2, 24}, + { -2, 24}, + { -3, 24}, + { -3, 24}, + { -4, 24}, + { -4, 24}, + { -5, 24}, + { -5, 23}, + { -5, 23}, + { -6, 23}, + { -6, 23}, + { -7, 23}, + { -7, 23}, + { -7, 23}, + { -8, 23}, + { -8, 22}, + { -9, 22}, + { -9, 22}, + {-10, 22}, + {-10, 22}, + {-10, 21}, + {-11, 21}, + {-11, 21}, + {-11, 21}, + {-11, 20}, + {-12, 20}, + {-12, 20}, + {-13, 20}, + {-13, 20}, + {-13, 19}, + {-14, 19}, + {-14, 19}, + {-14, 19}, + {-14, 18}, + {-15, 18}, + {-15, 18}, + {-15, 17}, + {-16, 17}, + {-16, 17}, + {-17, 17}, + {-17, 16}, + {-17, 16}, + {-18, 16}, + {-17, 15}, + {-18, 15}, + {-18, 15}, + {-19, 15}, + {-19, 14}, + {-19, 14}, + {-19, 13}, + {-19, 13}, + {-20, 13}, + {-20, 12}, + {-20, 12}, + {-21, 12}, + {-21, 12}, + {-21, 11}, + {-21, 11}, + {-21, 10}, + {-21, 10}, + {-21, 9}, + {-22, 9}, + {-22, 9}, + {-22, 8}, + {-22, 8}, + {-22, 7}, + {-23, 7}, + {-23, 7}, + {-23, 6}, + {-23, 6}, + {-23, 5}, + {-24, 5}, + {-23, 4}, + {-23, 4}, + {-24, 4}, + {-24, 4}, + {-24, 3}, + {-24, 3}, + {-24, 2}, + {-24, 2}, + {-24, 1}, + {-24, 1}, + {-24, 1}, + {-24, 0}, + {-25, 0}, + {-24, -1}, + {-25, -1}, + {-24, -1}, + {-24, -2}, + {-24, -2}, + {-24, -3}, + {-24, -3}, + {-24, -4}, + {-24, -4}, + {-24, -4}, + {-24, -5}, + {-24, -5}, + {-24, -6}, + {-24, -6}, + {-23, -6}, + {-23, -7}, + {-23, -7}, + {-23, -8}, + {-23, -8}, + {-23, -9}, + {-23, -9}, + {-22, -9}, + {-22, -9}, + {-22, -10}, + {-22, -10}, + {-21, -10}, + {-21, -11}, + {-22, -11}, + {-22, -12}, + {-21, -12}, + {-21, -13}, + {-21, -13}, + {-20, -13}, + {-21, -14}, + {-20, -14}, + {-20, -14}, + {-19, -14}, + {-19, -15}, + {-19, -15}, + {-18, -16}, + {-18, -16}, + {-18, -16}, + {-18, -17}, + {-18, -17}, + {-17, -17}, + {-17, -18}, + {-17, -18}, + {-16, -18}, + {-16, -18}, + {-16, -19}, + {-16, -19}, + {-15, -19}, + {-15, -19}, + {-15, -20}, + {-14, -20}, + {-14, -20}, + {-14, -21}, + {-13, -21}, + {-13, -21}, + {-13, -21}, + {-12, -21}, + {-12, -22}, + {-11, -22}, + {-11, -22}, + {-11, -22}, + {-10, -22}, + {-10, -22}, + { -9, -22}, + { -9, -23}, + { -9, -23}, + { -8, -23}, + { -8, -23}, + { -7, -23}, + { -7, -23}, + { -7, -24}, + { -6, -24}, + { -6, -24}, + { -5, -24}, + { -5, -24}, + { -4, -24}, + { -4, -24}, + { -4, -24}, + { -4, -25}, + { -3, -25}, + { -2, -25}, + { -2, -24}, + { -2, -24}, + { -1, -25}, + { -1, -25}, + { 0, -25}, +}; + +static void sub_810B05C(struct Sprite *sprite) { u16 angle; s16 sin; @@ -484,7 +969,7 @@ void sub_810B05C(struct Sprite *sprite) u16 x; u16 y; - angle = gTasks[sprite->data0].data[TD_MHAND_ANGLE]; + angle = gTasks[sprite->data0].tMinuteHandAngle; sin = Sin2(angle) / 16; cos = Cos2(angle) / 16; SetOamMatrix(0, cos, sin, -sin, cos); @@ -501,7 +986,7 @@ void sub_810B05C(struct Sprite *sprite) sprite->pos2.y = y; } -void sub_810B0F4(struct Sprite *sprite) +static void sub_810B0F4(struct Sprite *sprite) { u16 angle; s16 sin; @@ -509,7 +994,7 @@ void sub_810B0F4(struct Sprite *sprite) u16 x; u16 y; - angle = gTasks[sprite->data0].data[TD_HHAND_ANGLE]; + angle = gTasks[sprite->data0].tHourHandAngle; sin = Sin2(angle) / 16; cos = Cos2(angle) / 16; SetOamMatrix(1, cos, sin, -sin, cos); @@ -526,21 +1011,21 @@ void sub_810B0F4(struct Sprite *sprite) sprite->pos2.y = y; } -void sub_810B18C(struct Sprite *sprite) +static void sub_810B18C(struct Sprite *sprite) { s16 sin; s16 cos; - if (gTasks[sprite->data0].data[TD_PERIOD] != AM) + if (gTasks[sprite->data0].tPeriod != PERIOD_AM) { - if ((u16)(sprite->data1 - 60) <= 29) + if (sprite->data1 >= 60 && sprite->data1 < 90) sprite->data1 += 5; - if (sprite->data1 <= 59) + if (sprite->data1 < 60) sprite->data1++; } else { - if ((u16)(sprite->data1 - 46) <= 29) + if (sprite->data1 > 45 && sprite->data1 <= 75) sprite->data1 -= 5; if (sprite->data1 > 75) sprite->data1--; @@ -551,12 +1036,12 @@ void sub_810B18C(struct Sprite *sprite) sprite->pos2.y = sin * 30 / 4096; } -void sub_810B230(struct Sprite *sprite) +static void sub_810B230(struct Sprite *sprite) { s16 sin; s16 cos; - if (gTasks[sprite->data0].data[TD_PERIOD] != AM) + if (gTasks[sprite->data0].tPeriod != PERIOD_AM) { if (sprite->data1 >= 105 && sprite->data1 < 135) sprite->data1 += 5; diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 820ff34f5..f848873bb 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -10,6 +10,7 @@ #include "rom4.h" #include "safari_zone.h" #include "script.h" +#include "species.h" struct WildPokemon { @@ -21,7 +22,7 @@ struct WildPokemon struct WildPokemonInfo { u8 encounterRate; - struct WildPokemon *wildPokemon; + const struct WildPokemon *wildPokemon; }; struct WildPokemonHeader @@ -34,6 +35,2890 @@ struct WildPokemonHeader struct WildPokemonInfo *fishingMonsInfo; }; + +const struct WildPokemon PetalburgCity_WaterMons [] = +{ + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, +}; +const struct WildPokemonInfo PetalburgCity_WaterMonsInfo = {1, PetalburgCity_WaterMons}; + +const struct WildPokemon PetalburgCity_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_CORPHISH}, + {25, 30, SPECIES_CORPHISH}, + {30, 35, SPECIES_CORPHISH}, + {20, 25, SPECIES_CORPHISH}, + {35, 40, SPECIES_CORPHISH}, + {40, 45, SPECIES_CORPHISH}, +}; +const struct WildPokemonInfo PetalburgCity_FishingMonsInfo = {10, PetalburgCity_FishingMons}; + +const struct WildPokemon SlateportCity_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo SlateportCity_WaterMonsInfo = {4, SlateportCity_WaterMons}; + +const struct WildPokemon SlateportCity_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo SlateportCity_FishingMonsInfo = {10, SlateportCity_FishingMons}; + +const struct WildPokemon LilycoveCity_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo LilycoveCity_WaterMonsInfo = {4, LilycoveCity_WaterMons}; + +const struct WildPokemon LilycoveCity_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_STARYU}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo LilycoveCity_FishingMonsInfo = {10, LilycoveCity_FishingMons}; + +const struct WildPokemon MossdeepCity_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo MossdeepCity_WaterMonsInfo = {4, MossdeepCity_WaterMons}; + +const struct WildPokemon MossdeepCity_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo MossdeepCity_FishingMonsInfo = {10, MossdeepCity_FishingMons}; + +const struct WildPokemon SootopolisCity_WaterMons [] = +{ + {5, 35, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {15, 25, SPECIES_MAGIKARP}, + {25, 30, SPECIES_MAGIKARP}, + {25, 30, SPECIES_MAGIKARP}, +}; +const struct WildPokemonInfo SootopolisCity_WaterMonsInfo = {1, SootopolisCity_WaterMons}; + +const struct WildPokemon SootopolisCity_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, +#ifdef SAPPHIRE + {5, 10, SPECIES_TENTACOOL}, +#else + {10, 15, SPECIES_MAGIKARP}, +#endif + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {30, 35, SPECIES_MAGIKARP}, + {30, 35, SPECIES_MAGIKARP}, + {35, 40, SPECIES_GYARADOS}, + {35, 45, SPECIES_GYARADOS}, + {5, 45, SPECIES_GYARADOS}, +}; +const struct WildPokemonInfo SootopolisCity_FishingMonsInfo = {10, SootopolisCity_FishingMons}; + +const struct WildPokemon EverGrandeCity_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo EverGrandeCity_WaterMonsInfo = {4, EverGrandeCity_WaterMons}; + +const struct WildPokemon EverGrandeCity_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_LUVDISC}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_LUVDISC}, + {30, 35, SPECIES_WAILMER}, + {30, 35, SPECIES_CORSOLA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo EverGrandeCity_FishingMonsInfo = {10, EverGrandeCity_FishingMons}; + +const struct WildPokemon MeteorFalls_1F_1R_LandMons [] = +{ + {16, 16, SPECIES_ZUBAT}, + {17, 17, SPECIES_ZUBAT}, + {18, 18, SPECIES_ZUBAT}, + {15, 15, SPECIES_ZUBAT}, + {14, 14, SPECIES_ZUBAT}, +#ifdef SAPPHIRE + {16, 16, SPECIES_LUNATONE}, + {18, 18, SPECIES_LUNATONE}, + {14, 14, SPECIES_LUNATONE}, +#else + {16, 16, SPECIES_SOLROCK}, + {18, 18, SPECIES_SOLROCK}, + {14, 14, SPECIES_SOLROCK}, +#endif + {19, 19, SPECIES_ZUBAT}, + {20, 20, SPECIES_ZUBAT}, + {19, 19, SPECIES_ZUBAT}, + {20, 20, SPECIES_ZUBAT}, +}; +const struct WildPokemonInfo MeteorFalls_1F_1R_LandMonsInfo = {10, MeteorFalls_1F_1R_LandMons}; + +const struct WildPokemon MeteorFalls_1F_1R_WaterMons [] = +{ + {5, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_ZUBAT}, +#ifdef SAPPHIRE + {25, 35, SPECIES_LUNATONE}, + {15, 25, SPECIES_LUNATONE}, + {5, 15, SPECIES_LUNATONE}, +#else + {25, 35, SPECIES_SOLROCK}, + {15, 25, SPECIES_SOLROCK}, + {5, 15, SPECIES_SOLROCK}, +#endif +}; +const struct WildPokemonInfo MeteorFalls_1F_1R_WaterMonsInfo = {4, MeteorFalls_1F_1R_WaterMons}; + +const struct WildPokemon MeteorFalls_1F_1R_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {20, 25, SPECIES_BARBOACH}, + {35, 40, SPECIES_BARBOACH}, + {40, 45, SPECIES_BARBOACH}, +}; +const struct WildPokemonInfo MeteorFalls_1F_1R_FishingMonsInfo = {30, MeteorFalls_1F_1R_FishingMons}; + +const struct WildPokemon MeteorFalls_1F_2R_LandMons [] = +{ + {33, 33, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {35, 35, SPECIES_LUNATONE}, + {33, 33, SPECIES_LUNATONE}, + {37, 37, SPECIES_LUNATONE}, +#else + {35, 35, SPECIES_SOLROCK}, + {33, 33, SPECIES_SOLROCK}, + {37, 37, SPECIES_SOLROCK}, +#endif + {35, 35, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {39, 39, SPECIES_LUNATONE}, +#else + {39, 39, SPECIES_SOLROCK}, +#endif + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo MeteorFalls_1F_2R_LandMonsInfo = {10, MeteorFalls_1F_2R_LandMons}; + +const struct WildPokemon MeteorFalls_1F_2R_WaterMons [] = +{ + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {25, 35, SPECIES_LUNATONE}, + {15, 25, SPECIES_LUNATONE}, + {5, 15, SPECIES_LUNATONE}, +#else + {25, 35, SPECIES_SOLROCK}, + {15, 25, SPECIES_SOLROCK}, + {5, 15, SPECIES_SOLROCK}, +#endif +}; +const struct WildPokemonInfo MeteorFalls_1F_2R_WaterMonsInfo = {4, MeteorFalls_1F_2R_WaterMons}; + +const struct WildPokemon MeteorFalls_1F_2R_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {30, 35, SPECIES_WHISCASH}, + {35, 40, SPECIES_WHISCASH}, + {40, 45, SPECIES_WHISCASH}, +}; +const struct WildPokemonInfo MeteorFalls_1F_2R_FishingMonsInfo = {30, MeteorFalls_1F_2R_FishingMons}; + +const struct WildPokemon MeteorFalls_B1F_1R_LandMons [] = +{ + {33, 33, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {35, 35, SPECIES_LUNATONE}, + {33, 33, SPECIES_LUNATONE}, + {37, 37, SPECIES_LUNATONE}, +#else + {35, 35, SPECIES_SOLROCK}, + {33, 33, SPECIES_SOLROCK}, + {37, 37, SPECIES_SOLROCK}, +#endif + {35, 35, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {39, 39, SPECIES_LUNATONE}, +#else + {39, 39, SPECIES_SOLROCK}, +#endif + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo MeteorFalls_B1F_1R_LandMonsInfo = {10, MeteorFalls_B1F_1R_LandMons}; + +const struct WildPokemon MeteorFalls_B1F_1R_WaterMons [] = +{ + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {25, 35, SPECIES_LUNATONE}, + {15, 25, SPECIES_LUNATONE}, + {5, 15, SPECIES_LUNATONE}, +#else + {25, 35, SPECIES_SOLROCK}, + {15, 25, SPECIES_SOLROCK}, + {5, 15, SPECIES_SOLROCK}, +#endif +}; +const struct WildPokemonInfo MeteorFalls_B1F_1R_WaterMonsInfo = {4, MeteorFalls_B1F_1R_WaterMons}; + +const struct WildPokemon MeteorFalls_B1F_1R_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {30, 35, SPECIES_WHISCASH}, + {35, 40, SPECIES_WHISCASH}, + {40, 45, SPECIES_WHISCASH}, +}; +const struct WildPokemonInfo MeteorFalls_B1F_1R_FishingMonsInfo = {30, MeteorFalls_B1F_1R_FishingMons}; + +const struct WildPokemon MeteorFalls_B1F_2R_LandMons [] = +{ + {33, 33, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {30, 30, SPECIES_BAGON}, +#ifdef SAPPHIRE + {35, 35, SPECIES_LUNATONE}, +#else + {35, 35, SPECIES_SOLROCK}, +#endif + {35, 35, SPECIES_BAGON}, +#ifdef SAPPHIRE + {37, 37, SPECIES_LUNATONE}, +#else + {37, 37, SPECIES_SOLROCK}, +#endif + {25, 25, SPECIES_BAGON}, +#ifdef SAPPHIRE + {39, 39, SPECIES_LUNATONE}, +#else + {39, 39, SPECIES_SOLROCK}, +#endif + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo MeteorFalls_B1F_2R_LandMonsInfo = {10, MeteorFalls_B1F_2R_LandMons}; + +const struct WildPokemon MeteorFalls_B1F_2R_WaterMons [] = +{ + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {25, 35, SPECIES_LUNATONE}, + {15, 25, SPECIES_LUNATONE}, + {5, 15, SPECIES_LUNATONE}, +#else + {25, 35, SPECIES_SOLROCK}, + {15, 25, SPECIES_SOLROCK}, + {5, 15, SPECIES_SOLROCK}, +#endif +}; +const struct WildPokemonInfo MeteorFalls_B1F_2R_WaterMonsInfo = {4, MeteorFalls_B1F_2R_WaterMons}; + +const struct WildPokemon MeteorFalls_B1F_2R_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {30, 35, SPECIES_WHISCASH}, + {35, 40, SPECIES_WHISCASH}, + {40, 45, SPECIES_WHISCASH}, +}; +const struct WildPokemonInfo MeteorFalls_B1F_2R_FishingMonsInfo = {30, MeteorFalls_B1F_2R_FishingMons}; + +const struct WildPokemon RusturfTunnel_LandMons [] = +{ + {6, 6, SPECIES_WHISMUR}, + {7, 7, SPECIES_WHISMUR}, + {6, 6, SPECIES_WHISMUR}, + {6, 6, SPECIES_WHISMUR}, + {7, 7, SPECIES_WHISMUR}, + {7, 7, SPECIES_WHISMUR}, + {5, 5, SPECIES_WHISMUR}, + {8, 8, SPECIES_WHISMUR}, + {5, 5, SPECIES_WHISMUR}, + {8, 8, SPECIES_WHISMUR}, + {5, 5, SPECIES_WHISMUR}, + {8, 8, SPECIES_WHISMUR}, +}; +const struct WildPokemonInfo RusturfTunnel_LandMonsInfo = {10, RusturfTunnel_LandMons}; + +const struct WildPokemon GraniteCave_1F_LandMons [] = +{ + {7, 7, SPECIES_ZUBAT}, + {8, 8, SPECIES_MAKUHITA}, + {7, 7, SPECIES_MAKUHITA}, + {8, 8, SPECIES_ZUBAT}, + {9, 9, SPECIES_MAKUHITA}, + {8, 8, SPECIES_ABRA}, + {10, 10, SPECIES_MAKUHITA}, + {6, 6, SPECIES_MAKUHITA}, + {7, 7, SPECIES_GEODUDE}, + {8, 8, SPECIES_GEODUDE}, + {6, 6, SPECIES_GEODUDE}, + {9, 9, SPECIES_GEODUDE}, +}; +const struct WildPokemonInfo GraniteCave_1F_LandMonsInfo = {10, GraniteCave_1F_LandMons}; + +const struct WildPokemon GraniteCave_B1F_LandMons [] = +{ + {9, 9, SPECIES_ZUBAT}, + {10, 10, SPECIES_ARON}, + {9, 9, SPECIES_ARON}, + {11, 11, SPECIES_ARON}, + {10, 10, SPECIES_ZUBAT}, + {9, 9, SPECIES_ABRA}, + {10, 10, SPECIES_MAKUHITA}, + {11, 11, SPECIES_MAKUHITA}, +#ifdef SAPPHIRE + {10, 10, SPECIES_SABLEYE}, + {10, 10, SPECIES_SABLEYE}, + {9, 9, SPECIES_SABLEYE}, + {11, 11, SPECIES_SABLEYE}, +#else + {10, 10, SPECIES_MAWILE}, + {10, 10, SPECIES_MAWILE}, + {9, 9, SPECIES_MAWILE}, + {11, 11, SPECIES_MAWILE}, +#endif +}; +const struct WildPokemonInfo GraniteCave_B1F_LandMonsInfo = {10, GraniteCave_B1F_LandMons}; + +const struct WildPokemon GraniteCave_B2F_LandMons [] = +{ + {10, 10, SPECIES_ZUBAT}, + {11, 11, SPECIES_ARON}, + {10, 10, SPECIES_ARON}, + {11, 11, SPECIES_ZUBAT}, + {12, 12, SPECIES_ARON}, + {10, 10, SPECIES_ABRA}, +#ifdef SAPPHIRE + {10, 10, SPECIES_SABLEYE}, + {11, 11, SPECIES_SABLEYE}, + {12, 12, SPECIES_SABLEYE}, + {10, 10, SPECIES_SABLEYE}, + {12, 12, SPECIES_SABLEYE}, + {10, 10, SPECIES_SABLEYE}, +#else + {10, 10, SPECIES_MAWILE}, + {11, 11, SPECIES_MAWILE}, + {12, 12, SPECIES_MAWILE}, + {10, 10, SPECIES_MAWILE}, + {12, 12, SPECIES_MAWILE}, + {10, 10, SPECIES_MAWILE}, +#endif +}; +const struct WildPokemonInfo GraniteCave_B2F_LandMonsInfo = {10, GraniteCave_B2F_LandMons}; + +const struct WildPokemon GraniteCave_B2F_RockSmashMons [] = +{ + {10, 15, SPECIES_GEODUDE}, + {10, 20, SPECIES_NOSEPASS}, + {5, 10, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, +}; +const struct WildPokemonInfo GraniteCave_B2F_RockSmashMonsInfo = {20, GraniteCave_B2F_RockSmashMons}; + +const struct WildPokemon GraniteCave_StevensRoom_LandMons [] = +{ + {7, 7, SPECIES_ZUBAT}, + {8, 8, SPECIES_MAKUHITA}, + {7, 7, SPECIES_MAKUHITA}, + {8, 8, SPECIES_ZUBAT}, + {9, 9, SPECIES_MAKUHITA}, + {8, 8, SPECIES_ABRA}, + {10, 10, SPECIES_MAKUHITA}, + {6, 6, SPECIES_MAKUHITA}, + {7, 7, SPECIES_ARON}, + {8, 8, SPECIES_ARON}, + {7, 7, SPECIES_ARON}, + {8, 8, SPECIES_ARON}, +}; +const struct WildPokemonInfo GraniteCave_StevensRoom_LandMonsInfo = {10, GraniteCave_StevensRoom_LandMons}; + +const struct WildPokemon PetalburgWoods_LandMons [] = +{ + {5, 5, SPECIES_ZIGZAGOON}, + {5, 5, SPECIES_WURMPLE}, + {5, 5, SPECIES_SHROOMISH}, + {6, 6, SPECIES_ZIGZAGOON}, + {5, 5, SPECIES_SILCOON}, + {5, 5, SPECIES_CASCOON}, + {6, 6, SPECIES_WURMPLE}, + {6, 6, SPECIES_SHROOMISH}, + {5, 5, SPECIES_TAILLOW}, + {5, 5, SPECIES_SLAKOTH}, + {6, 6, SPECIES_TAILLOW}, + {6, 6, SPECIES_SLAKOTH}, +}; +const struct WildPokemonInfo PetalburgWoods_LandMonsInfo = {20, PetalburgWoods_LandMons}; + +//Jagged Pass Pokemon are 2 levels higher on Sapphire +#ifdef SAPPHIRE +#define JAGGED_PASS_LEVEL_DIFF 2 +#else +#define JAGGED_PASS_LEVEL_DIFF 0 +#endif + +const struct WildPokemon JaggedPass_LandMons [] = +{ + {19 + JAGGED_PASS_LEVEL_DIFF, 19 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, + {19 + JAGGED_PASS_LEVEL_DIFF, 19 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, + {19 + JAGGED_PASS_LEVEL_DIFF, 19 + JAGGED_PASS_LEVEL_DIFF, SPECIES_MACHOP}, + {18 + JAGGED_PASS_LEVEL_DIFF, 18 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, + {18 + JAGGED_PASS_LEVEL_DIFF, 18 + JAGGED_PASS_LEVEL_DIFF, SPECIES_SPOINK}, + {18 + JAGGED_PASS_LEVEL_DIFF, 18 + JAGGED_PASS_LEVEL_DIFF, SPECIES_MACHOP}, + {19 + JAGGED_PASS_LEVEL_DIFF, 19 + JAGGED_PASS_LEVEL_DIFF, SPECIES_SPOINK}, + {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_MACHOP}, + {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, + {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_SPOINK}, + {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, + {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_SPOINK}, +}; +const struct WildPokemonInfo JaggedPass_LandMonsInfo = {20, JaggedPass_LandMons}; + +const struct WildPokemon FieryPath_LandMons [] = +{ + {15, 15, SPECIES_NUMEL}, +#ifdef SAPPHIRE + {15, 15, SPECIES_GRIMER}, +#else + {15, 15, SPECIES_KOFFING}, +#endif + {16, 16, SPECIES_NUMEL}, + {15, 15, SPECIES_MACHOP}, + {15, 15, SPECIES_TORKOAL}, + {15, 15, SPECIES_SLUGMA}, +#ifdef SAPPHIRE + {16, 16, SPECIES_GRIMER}, +#else + {16, 16, SPECIES_KOFFING}, +#endif + {16, 16, SPECIES_MACHOP}, + {14, 14, SPECIES_TORKOAL}, + {16, 16, SPECIES_TORKOAL}, +#ifdef SAPPHIRE + {14, 14, SPECIES_KOFFING}, + {14, 14, SPECIES_KOFFING}, +#else + {14, 14, SPECIES_GRIMER}, + {14, 14, SPECIES_GRIMER}, +#endif +}; +const struct WildPokemonInfo FieryPath_LandMonsInfo = {10, FieryPath_LandMons}; + +const struct WildPokemon MtPyre_1F_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, +#else + {27, 27, SPECIES_DUSKULL}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {23, 23, SPECIES_DUSKULL}, + {22, 22, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, +#endif +}; +const struct WildPokemonInfo MtPyre_1F_LandMonsInfo = {10, MtPyre_1F_LandMons}; + +const struct WildPokemon MtPyre_2F_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, +#else + {27, 27, SPECIES_DUSKULL}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {23, 23, SPECIES_DUSKULL}, + {22, 22, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, +#endif +}; +const struct WildPokemonInfo MtPyre_2F_LandMonsInfo = {10, MtPyre_2F_LandMons}; + +const struct WildPokemon MtPyre_3F_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, +#else + {27, 27, SPECIES_DUSKULL}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {23, 23, SPECIES_DUSKULL}, + {22, 22, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, +#endif +}; +const struct WildPokemonInfo MtPyre_3F_LandMonsInfo = {10, MtPyre_3F_LandMons}; + +const struct WildPokemon MtPyre_4F_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {27, 27, SPECIES_DUSKULL}, + {27, 27, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, +#else + {27, 27, SPECIES_DUSKULL}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {23, 23, SPECIES_DUSKULL}, + {22, 22, SPECIES_DUSKULL}, + {27, 27, SPECIES_SHUPPET}, + {27, 27, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, +#endif +}; +const struct WildPokemonInfo MtPyre_4F_LandMonsInfo = {10, MtPyre_4F_LandMons}; + +const struct WildPokemon MtPyre_5F_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {27, 27, SPECIES_DUSKULL}, + {27, 27, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, +#else + {27, 27, SPECIES_DUSKULL}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {23, 23, SPECIES_DUSKULL}, + {22, 22, SPECIES_DUSKULL}, + {27, 27, SPECIES_SHUPPET}, + {27, 27, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, +#endif +}; +const struct WildPokemonInfo MtPyre_5F_LandMonsInfo = {10, MtPyre_5F_LandMons}; + +const struct WildPokemon MtPyre_6F_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {27, 27, SPECIES_DUSKULL}, + {27, 27, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, +#else + {27, 27, SPECIES_DUSKULL}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {23, 23, SPECIES_DUSKULL}, + {22, 22, SPECIES_DUSKULL}, + {27, 27, SPECIES_SHUPPET}, + {27, 27, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, +#endif +}; +const struct WildPokemonInfo MtPyre_6F_LandMonsInfo = {10, MtPyre_6F_LandMons}; + +const struct WildPokemon MtPyre_Exterior_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, +#else + {27, 27, SPECIES_DUSKULL}, +#endif + {27, 27, SPECIES_MEDITITE}, +#ifdef SAPPHIRE + {28, 28, SPECIES_SHUPPET}, +#else + {28, 28, SPECIES_DUSKULL}, +#endif + {29, 29, SPECIES_MEDITITE}, +#ifdef SAPPHIRE + {29, 29, SPECIES_SHUPPET}, +#else + {29, 29, SPECIES_DUSKULL}, +#endif + {27, 27, SPECIES_VULPIX}, + {29, 29, SPECIES_VULPIX}, + {25, 25, SPECIES_VULPIX}, + {27, 27, SPECIES_WINGULL}, + {27, 27, SPECIES_WINGULL}, + {26, 26, SPECIES_WINGULL}, + {28, 28, SPECIES_WINGULL}, +}; +const struct WildPokemonInfo MtPyre_Exterior_LandMonsInfo = {10, MtPyre_Exterior_LandMons}; + +const struct WildPokemon MtPyre_Summit_LandMons [] = +{ +#ifdef SAPPHIRE + {28, 28, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {27, 27, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {30, 30, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {30, 30, SPECIES_DUSKULL}, +#else + {28, 28, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {27, 27, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {30, 30, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {30, 30, SPECIES_SHUPPET}, +#endif + {28, 28, SPECIES_CHIMECHO}, + {28, 28, SPECIES_CHIMECHO}, +}; +const struct WildPokemonInfo MtPyre_Summit_LandMonsInfo = {10, MtPyre_Summit_LandMons}; + +const struct WildPokemon SeafloorCavern_Entrance_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Entrance_WaterMonsInfo = {4, SeafloorCavern_Entrance_WaterMons}; + +const struct WildPokemon SeafloorCavern_Entrance_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo SeafloorCavern_Entrance_FishingMonsInfo = {10, SeafloorCavern_Entrance_FishingMons}; + +const struct WildPokemon SeafloorCavern_Room1_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room1_LandMonsInfo = {4, SeafloorCavern_Room1_LandMons}; + +const struct WildPokemon SeafloorCavern_Room2_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room2_LandMonsInfo = {4, SeafloorCavern_Room2_LandMons}; + +const struct WildPokemon SeafloorCavern_Room3_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room3_LandMonsInfo = {4, SeafloorCavern_Room3_LandMons}; + +const struct WildPokemon SeafloorCavern_Room4_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room4_LandMonsInfo = {4, SeafloorCavern_Room4_LandMons}; + +const struct WildPokemon SeafloorCavern_Room5_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room5_LandMonsInfo = {4, SeafloorCavern_Room5_LandMons}; + +const struct WildPokemon SeafloorCavern_Room6_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room6_LandMonsInfo = {4, SeafloorCavern_Room6_LandMons}; + +const struct WildPokemon SeafloorCavern_Room6_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room6_WaterMonsInfo = {4, SeafloorCavern_Room6_WaterMons}; + +const struct WildPokemon SeafloorCavern_Room6_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo SeafloorCavern_Room6_FishingMonsInfo = {10, SeafloorCavern_Room6_FishingMons}; + +const struct WildPokemon SeafloorCavern_Room7_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room7_LandMonsInfo = {4, SeafloorCavern_Room7_LandMons}; + +const struct WildPokemon SeafloorCavern_Room7_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room7_WaterMonsInfo = {4, SeafloorCavern_Room7_WaterMons}; + +const struct WildPokemon SeafloorCavern_Room7_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo SeafloorCavern_Room7_FishingMonsInfo = {10, SeafloorCavern_Room7_FishingMons}; + +const struct WildPokemon SeafloorCavern_Room8_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room8_LandMonsInfo = {4, SeafloorCavern_Room8_LandMons}; + +const struct WildPokemon CaveOfOrigin_Entrance_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo CaveOfOrigin_Entrance_LandMonsInfo = {4, CaveOfOrigin_Entrance_LandMons}; + +const struct WildPokemon CaveOfOrigin_1F_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, +#ifdef SAPPHIRE + {30, 30, SPECIES_SABLEYE}, + {32, 32, SPECIES_SABLEYE}, + {34, 34, SPECIES_SABLEYE}, +#else + {30, 30, SPECIES_MAWILE}, + {32, 32, SPECIES_MAWILE}, + {34, 34, SPECIES_MAWILE}, +#endif + {33, 33, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo CaveOfOrigin_1F_LandMonsInfo = {4, CaveOfOrigin_1F_LandMons}; + +const struct WildPokemon CaveOfOrigin_B1F_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, +#ifdef SAPPHIRE + {30, 30, SPECIES_SABLEYE}, + {32, 32, SPECIES_SABLEYE}, + {34, 34, SPECIES_SABLEYE}, +#else + {30, 30, SPECIES_MAWILE}, + {32, 32, SPECIES_MAWILE}, + {34, 34, SPECIES_MAWILE}, +#endif + {33, 33, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo CaveOfOrigin_B1F_LandMonsInfo = {4, CaveOfOrigin_B1F_LandMons}; + +const struct WildPokemon CaveOfOrigin_B2F_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, +#ifdef SAPPHIRE + {30, 30, SPECIES_SABLEYE}, + {32, 32, SPECIES_SABLEYE}, + {34, 34, SPECIES_SABLEYE}, +#else + {30, 30, SPECIES_MAWILE}, + {32, 32, SPECIES_MAWILE}, + {34, 34, SPECIES_MAWILE}, +#endif + {33, 33, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo CaveOfOrigin_B2F_LandMonsInfo = {4, CaveOfOrigin_B2F_LandMons}; + +const struct WildPokemon CaveOfOrigin_B3F_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, +#ifdef SAPPHIRE + {30, 30, SPECIES_SABLEYE}, + {32, 32, SPECIES_SABLEYE}, + {34, 34, SPECIES_SABLEYE}, +#else + {30, 30, SPECIES_MAWILE}, + {32, 32, SPECIES_MAWILE}, + {34, 34, SPECIES_MAWILE}, +#endif + {33, 33, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo CaveOfOrigin_B3F_LandMonsInfo = {4, CaveOfOrigin_B3F_LandMons}; + +const struct WildPokemon VictoryRoad_1F_LandMons [] = +{ + {40, 40, SPECIES_GOLBAT}, + {40, 40, SPECIES_HARIYAMA}, + {40, 40, SPECIES_LAIRON}, + {40, 40, SPECIES_LOUDRED}, + {36, 36, SPECIES_ZUBAT}, + {36, 36, SPECIES_MAKUHITA}, + {38, 38, SPECIES_GOLBAT}, + {38, 38, SPECIES_HARIYAMA}, + {36, 36, SPECIES_ARON}, + {36, 36, SPECIES_WHISMUR}, + {36, 36, SPECIES_ARON}, + {36, 36, SPECIES_WHISMUR}, +}; +const struct WildPokemonInfo VictoryRoad_1F_LandMonsInfo = {10, VictoryRoad_1F_LandMons}; + +const struct WildPokemon VictoryRoad_B1F_LandMons [] = +{ + {40, 40, SPECIES_GOLBAT}, + {40, 40, SPECIES_HARIYAMA}, + {40, 40, SPECIES_LAIRON}, + {40, 40, SPECIES_MEDICHAM}, + {38, 38, SPECIES_GOLBAT}, + {38, 38, SPECIES_HARIYAMA}, + {42, 42, SPECIES_GOLBAT}, + {42, 42, SPECIES_HARIYAMA}, + {42, 42, SPECIES_LAIRON}, + {38, 38, SPECIES_MEDITITE}, + {42, 42, SPECIES_LAIRON}, + {38, 38, SPECIES_MEDITITE}, +}; +const struct WildPokemonInfo VictoryRoad_B1F_LandMonsInfo = {10, VictoryRoad_B1F_LandMons}; + +const struct WildPokemon VictoryRoad_B1F_RockSmashMons [] = +{ + {30, 40, SPECIES_GRAVELER}, + {30, 40, SPECIES_GEODUDE}, + {35, 40, SPECIES_GRAVELER}, + {35, 40, SPECIES_GRAVELER}, + {35, 40, SPECIES_GRAVELER}, +}; +const struct WildPokemonInfo VictoryRoad_B1F_RockSmashMonsInfo = {20, VictoryRoad_B1F_RockSmashMons}; + +const struct WildPokemon VictoryRoad_B2F_LandMons [] = +{ + {40, 40, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {40, 40, SPECIES_SABLEYE}, +#else + {40, 40, SPECIES_MAWILE}, +#endif + {40, 40, SPECIES_LAIRON}, + {40, 40, SPECIES_MEDICHAM}, + {42, 42, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {42, 42, SPECIES_SABLEYE}, +#else + {42, 42, SPECIES_MAWILE}, +#endif + {44, 44, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {44, 44, SPECIES_SABLEYE}, +#else + {44, 44, SPECIES_MAWILE}, +#endif + {42, 42, SPECIES_LAIRON}, + {42, 42, SPECIES_MEDICHAM}, + {44, 44, SPECIES_LAIRON}, + {44, 44, SPECIES_MEDICHAM}, +}; +const struct WildPokemonInfo VictoryRoad_B2F_LandMonsInfo = {10, VictoryRoad_B2F_LandMons}; + +const struct WildPokemon VictoryRoad_B2F_WaterMons [] = +{ + {30, 35, SPECIES_GOLBAT}, + {25, 30, SPECIES_GOLBAT}, + {35, 40, SPECIES_GOLBAT}, + {35, 40, SPECIES_GOLBAT}, + {35, 40, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo VictoryRoad_B2F_WaterMonsInfo = {4, VictoryRoad_B2F_WaterMons}; + +const struct WildPokemon VictoryRoad_B2F_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {30, 35, SPECIES_WHISCASH}, + {35, 40, SPECIES_WHISCASH}, + {40, 45, SPECIES_WHISCASH}, +}; +const struct WildPokemonInfo VictoryRoad_B2F_FishingMonsInfo = {30, VictoryRoad_B2F_FishingMons}; + +const struct WildPokemon ShoalCave_LowTideEntranceRoom_LandMons [] = +{ + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {32, 32, SPECIES_ZUBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, +}; +const struct WildPokemonInfo ShoalCave_LowTideEntranceRoom_LandMonsInfo = {10, ShoalCave_LowTideEntranceRoom_LandMons}; + +const struct WildPokemon ShoalCave_LowTideEntranceRoom_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {25, 30, SPECIES_SPHEAL}, + {25, 30, SPECIES_SPHEAL}, + {25, 35, SPECIES_SPHEAL}, +}; +const struct WildPokemonInfo ShoalCave_LowTideEntranceRoom_WaterMonsInfo = {4, ShoalCave_LowTideEntranceRoom_WaterMons}; + +const struct WildPokemon ShoalCave_LowTideEntranceRoom_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo ShoalCave_LowTideEntranceRoom_FishingMonsInfo = {10, ShoalCave_LowTideEntranceRoom_FishingMons}; + +const struct WildPokemon ShoalCave_LowTideInnerRoom_LandMons [] = +{ + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {32, 32, SPECIES_ZUBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, +}; +const struct WildPokemonInfo ShoalCave_LowTideInnerRoom_LandMonsInfo = {10, ShoalCave_LowTideInnerRoom_LandMons}; + +const struct WildPokemon ShoalCave_LowTideInnerRoom_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {25, 30, SPECIES_SPHEAL}, + {25, 30, SPECIES_SPHEAL}, + {25, 35, SPECIES_SPHEAL}, +}; +const struct WildPokemonInfo ShoalCave_LowTideInnerRoom_WaterMonsInfo = {4, ShoalCave_LowTideInnerRoom_WaterMons}; + +const struct WildPokemon ShoalCave_LowTideInnerRoom_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo ShoalCave_LowTideInnerRoom_FishingMonsInfo = {10, ShoalCave_LowTideInnerRoom_FishingMons}; + +const struct WildPokemon ShoalCave_LowTideStairsRoom_LandMons [] = +{ + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {32, 32, SPECIES_ZUBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, +}; +const struct WildPokemonInfo ShoalCave_LowTideStairsRoom_LandMonsInfo = {10, ShoalCave_LowTideStairsRoom_LandMons}; + +const struct WildPokemon ShoalCave_LowTideLowerRoom_LandMons [] = +{ + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {32, 32, SPECIES_ZUBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, +}; +const struct WildPokemonInfo ShoalCave_LowTideLowerRoom_LandMonsInfo = {10, ShoalCave_LowTideLowerRoom_LandMons}; + +const struct WildPokemon ShoalCave_LowTideIceRoom_LandMons [] = +{ + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {26, 26, SPECIES_SNORUNT}, + {32, 32, SPECIES_SPHEAL}, + {30, 30, SPECIES_GOLBAT}, + {28, 28, SPECIES_SNORUNT}, + {32, 32, SPECIES_GOLBAT}, + {30, 30, SPECIES_SNORUNT}, +}; +const struct WildPokemonInfo ShoalCave_LowTideIceRoom_LandMonsInfo = {10, ShoalCave_LowTideIceRoom_LandMons}; + +const struct WildPokemon NewMauville_Entrance_LandMons [] = +{ + {24, 24, SPECIES_VOLTORB}, + {24, 24, SPECIES_MAGNEMITE}, + {25, 25, SPECIES_VOLTORB}, + {25, 25, SPECIES_MAGNEMITE}, + {23, 23, SPECIES_VOLTORB}, + {23, 23, SPECIES_MAGNEMITE}, + {26, 26, SPECIES_VOLTORB}, + {26, 26, SPECIES_MAGNEMITE}, + {22, 22, SPECIES_VOLTORB}, + {22, 22, SPECIES_MAGNEMITE}, + {22, 22, SPECIES_VOLTORB}, + {22, 22, SPECIES_MAGNEMITE}, +}; +const struct WildPokemonInfo NewMauville_Entrance_LandMonsInfo = {10, NewMauville_Entrance_LandMons}; + +const struct WildPokemon NewMauville_Inside_LandMons [] = +{ + {24, 24, SPECIES_VOLTORB}, + {24, 24, SPECIES_MAGNEMITE}, + {25, 25, SPECIES_VOLTORB}, + {25, 25, SPECIES_MAGNEMITE}, + {23, 23, SPECIES_VOLTORB}, + {23, 23, SPECIES_MAGNEMITE}, + {26, 26, SPECIES_VOLTORB}, + {26, 26, SPECIES_MAGNEMITE}, + {22, 22, SPECIES_VOLTORB}, + {22, 22, SPECIES_MAGNEMITE}, + {26, 26, SPECIES_ELECTRODE}, + {26, 26, SPECIES_MAGNETON}, +}; +const struct WildPokemonInfo NewMauville_Inside_LandMonsInfo = {10, NewMauville_Inside_LandMons}; + +const struct WildPokemon AbandonedShip_Rooms_B1F_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACRUEL}, +}; +const struct WildPokemonInfo AbandonedShip_Rooms_B1F_WaterMonsInfo = {4, AbandonedShip_Rooms_B1F_WaterMons}; + +const struct WildPokemon AbandonedShip_Rooms_B1F_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_TENTACOOL}, + {25, 30, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACRUEL}, + {25, 30, SPECIES_TENTACRUEL}, + {20, 25, SPECIES_TENTACRUEL}, +}; +const struct WildPokemonInfo AbandonedShip_Rooms_B1F_FishingMonsInfo = {20, AbandonedShip_Rooms_B1F_FishingMons}; + +const struct WildPokemon AbandonedShip_HiddenFloorCorridors_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACRUEL}, +}; +const struct WildPokemonInfo AbandonedShip_HiddenFloorCorridors_WaterMonsInfo = {4, AbandonedShip_HiddenFloorCorridors_WaterMons}; + +const struct WildPokemon AbandonedShip_HiddenFloorCorridors_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_TENTACOOL}, + {25, 30, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACRUEL}, + {25, 30, SPECIES_TENTACRUEL}, + {20, 25, SPECIES_TENTACRUEL}, +}; +const struct WildPokemonInfo AbandonedShip_HiddenFloorCorridors_FishingMonsInfo = {20, AbandonedShip_HiddenFloorCorridors_FishingMons}; + +const struct WildPokemon SkyPillar_1F_LandMons [] = +{ +#ifdef SAPPHIRE + {48, 48, SPECIES_SABLEYE}, +#else + {48, 48, SPECIES_MAWILE}, +#endif + {48, 48, SPECIES_GOLBAT}, + {50, 50, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {50, 50, SPECIES_SABLEYE}, +#else + {50, 50, SPECIES_MAWILE}, +#endif + {48, 48, SPECIES_CLAYDOL}, +#ifdef SAPPHIRE + {48, 48, SPECIES_BANETTE}, + {50, 50, SPECIES_BANETTE}, +#else + {48, 48, SPECIES_DUSCLOPS}, + {50, 50, SPECIES_DUSCLOPS}, +#endif + {49, 49, SPECIES_CLAYDOL}, + {47, 47, SPECIES_CLAYDOL}, + {50, 50, SPECIES_CLAYDOL}, + {47, 47, SPECIES_CLAYDOL}, + {50, 50, SPECIES_CLAYDOL}, +}; +const struct WildPokemonInfo SkyPillar_1F_LandMonsInfo = {10, SkyPillar_1F_LandMons}; + +const struct WildPokemon SkyPillar_3F_LandMons [] = +{ +#ifdef SAPPHIRE + {51, 51, SPECIES_SABLEYE}, +#else + {51, 51, SPECIES_MAWILE}, +#endif + {51, 51, SPECIES_GOLBAT}, + {53, 53, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {53, 53, SPECIES_SABLEYE}, +#else + {53, 53, SPECIES_MAWILE}, +#endif + {51, 51, SPECIES_CLAYDOL}, +#ifdef SAPPHIRE + {51, 51, SPECIES_BANETTE}, + {53, 53, SPECIES_BANETTE}, +#else + {51, 51, SPECIES_DUSCLOPS}, + {53, 53, SPECIES_DUSCLOPS}, +#endif + {52, 52, SPECIES_CLAYDOL}, + {50, 50, SPECIES_CLAYDOL}, + {53, 53, SPECIES_CLAYDOL}, + {50, 50, SPECIES_CLAYDOL}, + {53, 53, SPECIES_CLAYDOL}, +}; +const struct WildPokemonInfo SkyPillar_3F_LandMonsInfo = {10, SkyPillar_3F_LandMons}; + +const struct WildPokemon SkyPillar_5F_LandMons [] = +{ +#ifdef SAPPHIRE + {54, 54, SPECIES_SABLEYE}, +#else + {54, 54, SPECIES_MAWILE}, +#endif + {54, 54, SPECIES_GOLBAT}, + {56, 56, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {56, 56, SPECIES_SABLEYE}, +#else + {56, 56, SPECIES_MAWILE}, +#endif + {54, 54, SPECIES_CLAYDOL}, +#ifdef SAPPHIRE + {54, 54, SPECIES_BANETTE}, + {56, 56, SPECIES_BANETTE}, +#else + {54, 54, SPECIES_DUSCLOPS}, + {56, 56, SPECIES_DUSCLOPS}, +#endif + {55, 55, SPECIES_CLAYDOL}, + {56, 56, SPECIES_CLAYDOL}, + {57, 57, SPECIES_ALTARIA}, + {54, 54, SPECIES_ALTARIA}, + {60, 60, SPECIES_ALTARIA}, +}; +const struct WildPokemonInfo SkyPillar_5F_LandMonsInfo = {10, SkyPillar_5F_LandMons}; + +const struct WildPokemon Route101_LandMons [] = +{ + {2, 2, SPECIES_WURMPLE}, + {2, 2, SPECIES_ZIGZAGOON}, + {2, 2, SPECIES_WURMPLE}, + {3, 3, SPECIES_WURMPLE}, + {3, 3, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_WURMPLE}, + {3, 3, SPECIES_ZIGZAGOON}, + {2, 2, SPECIES_POOCHYENA}, + {2, 2, SPECIES_POOCHYENA}, + {3, 3, SPECIES_POOCHYENA}, + {3, 3, SPECIES_POOCHYENA}, +}; +const struct WildPokemonInfo Route101_LandMonsInfo = {20, Route101_LandMons}; + +const struct WildPokemon Route102_LandMons [] = +{ + {3, 3, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_WURMPLE}, + {4, 4, SPECIES_ZIGZAGOON}, + {4, 4, SPECIES_WURMPLE}, +#ifdef SAPPHIRE + {3, 3, SPECIES_LOTAD}, + {4, 4, SPECIES_LOTAD}, +#else + {3, 3, SPECIES_SEEDOT}, + {4, 4, SPECIES_SEEDOT}, +#endif + {3, 3, SPECIES_POOCHYENA}, + {3, 3, SPECIES_POOCHYENA}, + {4, 4, SPECIES_POOCHYENA}, + {4, 4, SPECIES_RALTS}, + {4, 4, SPECIES_POOCHYENA}, + {3, 3, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route102_LandMonsInfo = {20, Route102_LandMons}; + +const struct WildPokemon Route102_WaterMons [] = +{ + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route102_WaterMonsInfo = {4, Route102_WaterMons}; + +const struct WildPokemon Route102_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_CORPHISH}, + {25, 30, SPECIES_CORPHISH}, + {30, 35, SPECIES_CORPHISH}, + {20, 25, SPECIES_CORPHISH}, + {35, 40, SPECIES_CORPHISH}, + {40, 45, SPECIES_CORPHISH}, +}; +const struct WildPokemonInfo Route102_FishingMonsInfo = {30, Route102_FishingMons}; + +const struct WildPokemon Route103_LandMons [] = +{ + {2, 2, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_ZIGZAGOON}, + {4, 4, SPECIES_ZIGZAGOON}, + {2, 2, SPECIES_POOCHYENA}, + {3, 3, SPECIES_POOCHYENA}, + {3, 3, SPECIES_POOCHYENA}, + {4, 4, SPECIES_POOCHYENA}, + {3, 3, SPECIES_WINGULL}, + {3, 3, SPECIES_WINGULL}, + {2, 2, SPECIES_WINGULL}, + {4, 4, SPECIES_WINGULL}, +}; +const struct WildPokemonInfo Route103_LandMonsInfo = {20, Route103_LandMons}; + +const struct WildPokemon Route103_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route103_WaterMonsInfo = {4, Route103_WaterMons}; + +const struct WildPokemon Route103_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route103_FishingMonsInfo = {30, Route103_FishingMons}; + +const struct WildPokemon Route104_LandMons [] = +{ + {4, 4, SPECIES_ZIGZAGOON}, + {4, 4, SPECIES_WURMPLE}, + {5, 5, SPECIES_ZIGZAGOON}, + {5, 5, SPECIES_WURMPLE}, + {4, 4, SPECIES_ZIGZAGOON}, + {5, 5, SPECIES_ZIGZAGOON}, + {4, 4, SPECIES_TAILLOW}, + {5, 5, SPECIES_TAILLOW}, + {4, 4, SPECIES_WINGULL}, + {4, 4, SPECIES_WINGULL}, + {3, 3, SPECIES_WINGULL}, + {5, 5, SPECIES_WINGULL}, +}; +const struct WildPokemonInfo Route104_LandMonsInfo = {20, Route104_LandMons}; + +const struct WildPokemon Route104_WaterMons [] = +{ + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route104_WaterMonsInfo = {4, Route104_WaterMons}; + +const struct WildPokemon Route104_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {25, 30, SPECIES_MAGIKARP}, + {30, 35, SPECIES_MAGIKARP}, + {20, 25, SPECIES_MAGIKARP}, + {35, 40, SPECIES_MAGIKARP}, + {40, 45, SPECIES_MAGIKARP}, +}; +const struct WildPokemonInfo Route104_FishingMonsInfo = {30, Route104_FishingMons}; + +const struct WildPokemon Route105_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route105_WaterMonsInfo = {4, Route105_WaterMons}; + +const struct WildPokemon Route105_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route105_FishingMonsInfo = {30, Route105_FishingMons}; + +const struct WildPokemon Route106_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route106_WaterMonsInfo = {4, Route106_WaterMons}; + +const struct WildPokemon Route106_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route106_FishingMonsInfo = {30, Route106_FishingMons}; + +const struct WildPokemon Route107_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route107_WaterMonsInfo = {4, Route107_WaterMons}; + +const struct WildPokemon Route107_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route107_FishingMonsInfo = {30, Route107_FishingMons}; + +const struct WildPokemon Route108_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route108_WaterMonsInfo = {4, Route108_WaterMons}; + +const struct WildPokemon Route108_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route108_FishingMonsInfo = {30, Route108_FishingMons}; + +const struct WildPokemon Route109_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route109_WaterMonsInfo = {4, Route109_WaterMons}; + +const struct WildPokemon Route109_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route109_FishingMonsInfo = {30, Route109_FishingMons}; + +const struct WildPokemon Route110_LandMons [] = +{ + {12, 12, SPECIES_ZIGZAGOON}, + {12, 12, SPECIES_ELECTRIKE}, + {12, 12, SPECIES_GULPIN}, + {13, 13, SPECIES_ELECTRIKE}, +#ifdef SAPPHIRE + {13, 13, SPECIES_PLUSLE}, +#else + {13, 13, SPECIES_MINUN}, +#endif + {13, 13, SPECIES_ODDISH}, +#ifdef SAPPHIRE + {13, 13, SPECIES_PLUSLE}, +#else + {13, 13, SPECIES_MINUN}, +#endif + {13, 13, SPECIES_GULPIN}, + {12, 12, SPECIES_WINGULL}, + {12, 12, SPECIES_WINGULL}, +#ifdef SAPPHIRE + {12, 12, SPECIES_MINUN}, + {13, 13, SPECIES_MINUN}, +#else + {12, 12, SPECIES_PLUSLE}, + {13, 13, SPECIES_PLUSLE}, +#endif +}; +const struct WildPokemonInfo Route110_LandMonsInfo = {20, Route110_LandMons}; + +const struct WildPokemon Route110_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route110_WaterMonsInfo = {4, Route110_WaterMons}; + +const struct WildPokemon Route110_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route110_FishingMonsInfo = {30, Route110_FishingMons}; + +const struct WildPokemon Route111_LandMons [] = +{ + {20, 20, SPECIES_SANDSHREW}, + {20, 20, SPECIES_TRAPINCH}, + {21, 21, SPECIES_SANDSHREW}, + {21, 21, SPECIES_TRAPINCH}, + {19, 19, SPECIES_CACNEA}, + {21, 21, SPECIES_CACNEA}, + {19, 19, SPECIES_SANDSHREW}, + {19, 19, SPECIES_TRAPINCH}, + {20, 20, SPECIES_BALTOY}, + {20, 20, SPECIES_BALTOY}, + {22, 22, SPECIES_BALTOY}, + {22, 22, SPECIES_BALTOY}, +}; +const struct WildPokemonInfo Route111_LandMonsInfo = {10, Route111_LandMons}; + +const struct WildPokemon Route111_WaterMons [] = +{ + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route111_WaterMonsInfo = {4, Route111_WaterMons}; + +const struct WildPokemon Route111_RockSmashMons [] = +{ + {10, 15, SPECIES_GEODUDE}, + {5, 10, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, +}; +const struct WildPokemonInfo Route111_RockSmashMonsInfo = {20, Route111_RockSmashMons}; + +const struct WildPokemon Route111_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {20, 25, SPECIES_BARBOACH}, + {35, 40, SPECIES_BARBOACH}, + {40, 45, SPECIES_BARBOACH}, +}; +const struct WildPokemonInfo Route111_FishingMonsInfo = {30, Route111_FishingMons}; + +const struct WildPokemon Route112_LandMons [] = +{ + {15, 15, SPECIES_NUMEL}, + {15, 15, SPECIES_NUMEL}, + {15, 15, SPECIES_MACHOP}, + {14, 14, SPECIES_NUMEL}, + {14, 14, SPECIES_NUMEL}, + {14, 14, SPECIES_MACHOP}, + {16, 16, SPECIES_NUMEL}, + {16, 16, SPECIES_MACHOP}, + {16, 16, SPECIES_NUMEL}, + {16, 16, SPECIES_NUMEL}, + {16, 16, SPECIES_NUMEL}, + {16, 16, SPECIES_NUMEL}, +}; +const struct WildPokemonInfo Route112_LandMonsInfo = {20, Route112_LandMons}; + +const struct WildPokemon Route113_LandMons [] = +{ + {15, 15, SPECIES_SPINDA}, + {15, 15, SPECIES_SPINDA}, + {15, 15, SPECIES_SANDSHREW}, + {14, 14, SPECIES_SPINDA}, + {14, 14, SPECIES_SPINDA}, + {14, 14, SPECIES_SANDSHREW}, + {16, 16, SPECIES_SPINDA}, + {16, 16, SPECIES_SANDSHREW}, + {16, 16, SPECIES_SPINDA}, + {16, 16, SPECIES_SKARMORY}, + {16, 16, SPECIES_SPINDA}, + {16, 16, SPECIES_SKARMORY}, +}; +const struct WildPokemonInfo Route113_LandMonsInfo = {20, Route113_LandMons}; + +const struct WildPokemon Route114_LandMons [] = +{ + {16, 16, SPECIES_SWABLU}, +#ifdef SAPPHIRE + {16, 16, SPECIES_LOTAD}, +#else + {16, 16, SPECIES_SEEDOT}, +#endif + {17, 17, SPECIES_SWABLU}, + {15, 15, SPECIES_SWABLU}, +#ifdef SAPPHIRE + {15, 15, SPECIES_LOTAD}, + {16, 16, SPECIES_SEVIPER}, + {16, 16, SPECIES_LOMBRE}, + {18, 18, SPECIES_LOMBRE}, + {17, 17, SPECIES_SEVIPER}, + {15, 15, SPECIES_SEVIPER}, + {17, 17, SPECIES_SEVIPER}, +#else + {15, 15, SPECIES_SEEDOT}, + {16, 16, SPECIES_ZANGOOSE}, + {16, 16, SPECIES_NUZLEAF}, + {18, 18, SPECIES_NUZLEAF}, + {17, 17, SPECIES_ZANGOOSE}, + {15, 15, SPECIES_ZANGOOSE}, + {17, 17, SPECIES_ZANGOOSE}, +#endif + {15, 15, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route114_LandMonsInfo = {20, Route114_LandMons}; + +const struct WildPokemon Route114_WaterMons [] = +{ + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route114_WaterMonsInfo = {4, Route114_WaterMons}; + +const struct WildPokemon Route114_RockSmashMons [] = +{ + {10, 15, SPECIES_GEODUDE}, + {5, 10, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, +}; +const struct WildPokemonInfo Route114_RockSmashMonsInfo = {20, Route114_RockSmashMons}; + +const struct WildPokemon Route114_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {20, 25, SPECIES_BARBOACH}, + {35, 40, SPECIES_BARBOACH}, + {40, 45, SPECIES_BARBOACH}, +}; +const struct WildPokemonInfo Route114_FishingMonsInfo = {30, Route114_FishingMons}; + +const struct WildPokemon Route115_LandMons [] = +{ + {23, 23, SPECIES_SWABLU}, + {23, 23, SPECIES_TAILLOW}, + {25, 25, SPECIES_SWABLU}, + {24, 24, SPECIES_TAILLOW}, + {25, 25, SPECIES_TAILLOW}, + {25, 25, SPECIES_SWELLOW}, + {24, 24, SPECIES_JIGGLYPUFF}, + {25, 25, SPECIES_JIGGLYPUFF}, + {24, 24, SPECIES_WINGULL}, + {24, 24, SPECIES_WINGULL}, + {26, 26, SPECIES_WINGULL}, + {25, 25, SPECIES_WINGULL}, +}; +const struct WildPokemonInfo Route115_LandMonsInfo = {20, Route115_LandMons}; + +const struct WildPokemon Route115_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route115_WaterMonsInfo = {4, Route115_WaterMons}; + +const struct WildPokemon Route115_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route115_FishingMonsInfo = {30, Route115_FishingMons}; + +const struct WildPokemon Route116_LandMons [] = +{ + {6, 6, SPECIES_ZIGZAGOON}, + {6, 6, SPECIES_WHISMUR}, + {6, 6, SPECIES_NINCADA}, + {7, 7, SPECIES_WHISMUR}, + {7, 7, SPECIES_NINCADA}, + {6, 6, SPECIES_TAILLOW}, + {7, 7, SPECIES_TAILLOW}, + {8, 8, SPECIES_TAILLOW}, + {7, 7, SPECIES_ZIGZAGOON}, + {8, 8, SPECIES_ZIGZAGOON}, + {7, 7, SPECIES_SKITTY}, + {8, 8, SPECIES_SKITTY}, +}; +const struct WildPokemonInfo Route116_LandMonsInfo = {20, Route116_LandMons}; + +const struct WildPokemon Route117_LandMons [] = +{ + {13, 13, SPECIES_ZIGZAGOON}, + {13, 13, SPECIES_ROSELIA}, + {14, 14, SPECIES_ZIGZAGOON}, + {14, 14, SPECIES_ROSELIA}, + {13, 13, SPECIES_MARILL}, + {13, 13, SPECIES_ODDISH}, +#ifdef SAPPHIRE + {13, 13, SPECIES_VOLBEAT}, + {13, 13, SPECIES_VOLBEAT}, + {14, 14, SPECIES_VOLBEAT}, + {14, 14, SPECIES_VOLBEAT}, + {13, 13, SPECIES_ILLUMISE}, +#else + {13, 13, SPECIES_ILLUMISE}, + {13, 13, SPECIES_ILLUMISE}, + {14, 14, SPECIES_ILLUMISE}, + {14, 14, SPECIES_ILLUMISE}, + {13, 13, SPECIES_VOLBEAT}, +#endif + {13, 13, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route117_LandMonsInfo = {20, Route117_LandMons}; + +const struct WildPokemon Route117_WaterMons [] = +{ + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route117_WaterMonsInfo = {4, Route117_WaterMons}; + +const struct WildPokemon Route117_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_CORPHISH}, + {25, 30, SPECIES_CORPHISH}, + {30, 35, SPECIES_CORPHISH}, + {20, 25, SPECIES_CORPHISH}, + {35, 40, SPECIES_CORPHISH}, + {40, 45, SPECIES_CORPHISH}, +}; +const struct WildPokemonInfo Route117_FishingMonsInfo = {30, Route117_FishingMons}; + +const struct WildPokemon Route118_LandMons [] = +{ + {24, 24, SPECIES_ZIGZAGOON}, + {24, 24, SPECIES_ELECTRIKE}, + {26, 26, SPECIES_ZIGZAGOON}, + {26, 26, SPECIES_ELECTRIKE}, + {26, 26, SPECIES_LINOONE}, + {26, 26, SPECIES_MANECTRIC}, + {25, 25, SPECIES_WINGULL}, + {25, 25, SPECIES_WINGULL}, + {26, 26, SPECIES_WINGULL}, + {26, 26, SPECIES_WINGULL}, + {27, 27, SPECIES_WINGULL}, + {25, 25, SPECIES_KECLEON}, +}; +const struct WildPokemonInfo Route118_LandMonsInfo = {20, Route118_LandMons}; + +const struct WildPokemon Route118_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route118_WaterMonsInfo = {4, Route118_WaterMons}; + +const struct WildPokemon Route118_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_CARVANHA}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_CARVANHA}, + {20, 25, SPECIES_CARVANHA}, + {35, 40, SPECIES_CARVANHA}, + {40, 45, SPECIES_CARVANHA}, +}; +const struct WildPokemonInfo Route118_FishingMonsInfo = {30, Route118_FishingMons}; + +const struct WildPokemon Route119_LandMons [] = +{ + {25, 25, SPECIES_ZIGZAGOON}, + {25, 25, SPECIES_LINOONE}, + {27, 27, SPECIES_ZIGZAGOON}, + {25, 25, SPECIES_ODDISH}, + {27, 27, SPECIES_LINOONE}, + {26, 26, SPECIES_ODDISH}, + {27, 27, SPECIES_ODDISH}, + {24, 24, SPECIES_ODDISH}, + {25, 25, SPECIES_TROPIUS}, + {26, 26, SPECIES_TROPIUS}, + {27, 27, SPECIES_TROPIUS}, + {25, 25, SPECIES_KECLEON}, +}; +const struct WildPokemonInfo Route119_LandMonsInfo = {15, Route119_LandMons}; + +const struct WildPokemon Route119_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route119_WaterMonsInfo = {4, Route119_WaterMons}; + +const struct WildPokemon Route119_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_CARVANHA}, + {25, 30, SPECIES_CARVANHA}, + {30, 35, SPECIES_CARVANHA}, + {20, 25, SPECIES_CARVANHA}, + {35, 40, SPECIES_CARVANHA}, + {40, 45, SPECIES_CARVANHA}, +}; +const struct WildPokemonInfo Route119_FishingMonsInfo = {30, Route119_FishingMons}; + +const struct WildPokemon Route120_LandMons [] = +{ + {25, 25, SPECIES_ZIGZAGOON}, + {25, 25, SPECIES_LINOONE}, + {27, 27, SPECIES_LINOONE}, + {25, 25, SPECIES_ODDISH}, + {25, 25, SPECIES_MARILL}, + {26, 26, SPECIES_ODDISH}, + {27, 27, SPECIES_ODDISH}, + {27, 27, SPECIES_MARILL}, + {25, 25, SPECIES_ABSOL}, + {27, 27, SPECIES_ABSOL}, + {25, 25, SPECIES_KECLEON}, + {25, 25, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route120_LandMonsInfo = {20, Route120_LandMons}; + +const struct WildPokemon Route120_WaterMons [] = +{ + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route120_WaterMonsInfo = {4, Route120_WaterMons}; + +const struct WildPokemon Route120_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {20, 25, SPECIES_BARBOACH}, + {35, 40, SPECIES_BARBOACH}, + {40, 45, SPECIES_BARBOACH}, +}; +const struct WildPokemonInfo Route120_FishingMonsInfo = {30, Route120_FishingMons}; + +const struct WildPokemon Route121_LandMons [] = +{ + {26, 26, SPECIES_ZIGZAGOON}, +#ifdef SAPPHIRE + {26, 26, SPECIES_SHUPPET}, +#else + {26, 26, SPECIES_DUSKULL}, +#endif + {26, 26, SPECIES_LINOONE}, +#ifdef SAPPHIRE + {28, 28, SPECIES_SHUPPET}, +#else + {28, 28, SPECIES_DUSKULL}, +#endif + {28, 28, SPECIES_LINOONE}, + {26, 26, SPECIES_ODDISH}, + {28, 28, SPECIES_ODDISH}, + {28, 28, SPECIES_GLOOM}, + {26, 26, SPECIES_WINGULL}, + {27, 27, SPECIES_WINGULL}, + {28, 28, SPECIES_WINGULL}, + {25, 25, SPECIES_KECLEON}, +}; +const struct WildPokemonInfo Route121_LandMonsInfo = {20, Route121_LandMons}; + +const struct WildPokemon Route121_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route121_WaterMonsInfo = {4, Route121_WaterMons}; + +const struct WildPokemon Route121_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route121_FishingMonsInfo = {30, Route121_FishingMons}; + +const struct WildPokemon Route122_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route122_WaterMonsInfo = {4, Route122_WaterMons}; + +const struct WildPokemon Route122_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route122_FishingMonsInfo = {30, Route122_FishingMons}; + +const struct WildPokemon Route123_LandMons [] = +{ + {26, 26, SPECIES_ZIGZAGOON}, +#ifdef SAPPHIRE + {26, 26, SPECIES_SHUPPET}, +#else + {26, 26, SPECIES_DUSKULL}, +#endif + {26, 26, SPECIES_LINOONE}, +#ifdef SAPPHIRE + {28, 28, SPECIES_SHUPPET}, +#else + {28, 28, SPECIES_DUSKULL}, +#endif + {28, 28, SPECIES_LINOONE}, + {26, 26, SPECIES_ODDISH}, + {28, 28, SPECIES_ODDISH}, + {28, 28, SPECIES_GLOOM}, + {26, 26, SPECIES_WINGULL}, + {27, 27, SPECIES_WINGULL}, + {28, 28, SPECIES_WINGULL}, + {25, 25, SPECIES_KECLEON}, +}; +const struct WildPokemonInfo Route123_LandMonsInfo = {20, Route123_LandMons}; + +const struct WildPokemon Route123_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route123_WaterMonsInfo = {4, Route123_WaterMons}; + +const struct WildPokemon Route123_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route123_FishingMonsInfo = {30, Route123_FishingMons}; + +const struct WildPokemon Route124_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route124_WaterMonsInfo = {4, Route124_WaterMons}; + +const struct WildPokemon Route124_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route124_FishingMonsInfo = {30, Route124_FishingMons}; + +const struct WildPokemon Route125_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route125_WaterMonsInfo = {4, Route125_WaterMons}; + +const struct WildPokemon Route125_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route125_FishingMonsInfo = {30, Route125_FishingMons}; + +const struct WildPokemon Route126_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route126_WaterMonsInfo = {4, Route126_WaterMons}; + +const struct WildPokemon Route126_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route126_FishingMonsInfo = {30, Route126_FishingMons}; + +const struct WildPokemon Route127_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route127_WaterMonsInfo = {4, Route127_WaterMons}; + +const struct WildPokemon Route127_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route127_FishingMonsInfo = {30, Route127_FishingMons}; + +const struct WildPokemon Route128_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route128_WaterMonsInfo = {4, Route128_WaterMons}; + +const struct WildPokemon Route128_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_LUVDISC}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_LUVDISC}, + {30, 35, SPECIES_WAILMER}, + {30, 35, SPECIES_CORSOLA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route128_FishingMonsInfo = {30, Route128_FishingMons}; + +const struct WildPokemon Route129_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, +#ifdef SAPPHIRE + {25, 30, SPECIES_WAILORD}, +#else + {35, 40, SPECIES_WAILORD}, +#endif +}; +const struct WildPokemonInfo Route129_WaterMonsInfo = {4, Route129_WaterMons}; + +const struct WildPokemon Route129_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route129_FishingMonsInfo = {30, Route129_FishingMons}; + +const struct WildPokemon Route130_LandMons [] = +{ + {30, 30, SPECIES_WYNAUT}, + {35, 35, SPECIES_WYNAUT}, + {25, 25, SPECIES_WYNAUT}, + {40, 40, SPECIES_WYNAUT}, + {20, 20, SPECIES_WYNAUT}, + {45, 45, SPECIES_WYNAUT}, + {15, 15, SPECIES_WYNAUT}, + {50, 50, SPECIES_WYNAUT}, + {10, 10, SPECIES_WYNAUT}, + {5, 5, SPECIES_WYNAUT}, + {10, 10, SPECIES_WYNAUT}, + {5, 5, SPECIES_WYNAUT}, +}; +const struct WildPokemonInfo Route130_LandMonsInfo = {20, Route130_LandMons}; + +const struct WildPokemon Route130_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route130_WaterMonsInfo = {4, Route130_WaterMons}; + +const struct WildPokemon Route130_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route130_FishingMonsInfo = {30, Route130_FishingMons}; + +const struct WildPokemon Route131_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route131_WaterMonsInfo = {4, Route131_WaterMons}; + +const struct WildPokemon Route131_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route131_FishingMonsInfo = {30, Route131_FishingMons}; + +const struct WildPokemon Route132_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route132_WaterMonsInfo = {4, Route132_WaterMons}; + +const struct WildPokemon Route132_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_HORSEA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route132_FishingMonsInfo = {30, Route132_FishingMons}; + +const struct WildPokemon Route133_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route133_WaterMonsInfo = {4, Route133_WaterMons}; + +const struct WildPokemon Route133_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_HORSEA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route133_FishingMonsInfo = {30, Route133_FishingMons}; + +const struct WildPokemon Route134_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route134_WaterMonsInfo = {4, Route134_WaterMons}; + +const struct WildPokemon Route134_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_HORSEA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route134_FishingMonsInfo = {30, Route134_FishingMons}; + +const struct WildPokemon SafariZone_Northwest_LandMons [] = +{ + {27, 27, SPECIES_RHYHORN}, + {27, 27, SPECIES_ODDISH}, + {29, 29, SPECIES_RHYHORN}, + {29, 29, SPECIES_ODDISH}, + {27, 27, SPECIES_DODUO}, + {29, 29, SPECIES_GLOOM}, + {31, 31, SPECIES_GLOOM}, + {29, 29, SPECIES_DODUO}, + {29, 29, SPECIES_DODRIO}, + {27, 27, SPECIES_PINSIR}, + {31, 31, SPECIES_DODRIO}, + {29, 29, SPECIES_PINSIR}, +}; +const struct WildPokemonInfo SafariZone_Northwest_LandMonsInfo = {25, SafariZone_Northwest_LandMons}; + +const struct WildPokemon SafariZone_Northwest_WaterMons [] = +{ + {20, 30, SPECIES_PSYDUCK}, + {20, 30, SPECIES_PSYDUCK}, + {30, 35, SPECIES_PSYDUCK}, + {30, 35, SPECIES_GOLDUCK}, + {25, 40, SPECIES_GOLDUCK}, +}; +const struct WildPokemonInfo SafariZone_Northwest_WaterMonsInfo = {9, SafariZone_Northwest_WaterMons}; + +const struct WildPokemon SafariZone_Northwest_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 25, SPECIES_GOLDEEN}, + {10, 30, SPECIES_GOLDEEN}, + {25, 30, SPECIES_GOLDEEN}, + {30, 35, SPECIES_GOLDEEN}, + {30, 35, SPECIES_SEAKING}, + {35, 40, SPECIES_SEAKING}, + {25, 30, SPECIES_SEAKING}, +}; +const struct WildPokemonInfo SafariZone_Northwest_FishingMonsInfo = {35, SafariZone_Northwest_FishingMons}; + +const struct WildPokemon SafariZone_Northeast_LandMons [] = +{ + {27, 27, SPECIES_PHANPY}, + {27, 27, SPECIES_ODDISH}, + {29, 29, SPECIES_PHANPY}, + {29, 29, SPECIES_ODDISH}, + {27, 27, SPECIES_NATU}, + {29, 29, SPECIES_GLOOM}, + {31, 31, SPECIES_GLOOM}, + {29, 29, SPECIES_NATU}, + {29, 29, SPECIES_XATU}, + {27, 27, SPECIES_HERACROSS}, + {31, 31, SPECIES_XATU}, + {29, 29, SPECIES_HERACROSS}, +}; +const struct WildPokemonInfo SafariZone_Northeast_LandMonsInfo = {25, SafariZone_Northeast_LandMons}; + +const struct WildPokemon SafariZone_Northeast_RockSmashMons [] = +{ + {10, 15, SPECIES_GEODUDE}, + {5, 10, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {20, 25, SPECIES_GEODUDE}, + {25, 30, SPECIES_GEODUDE}, +}; +const struct WildPokemonInfo SafariZone_Northeast_RockSmashMonsInfo = {25, SafariZone_Northeast_RockSmashMons}; + +const struct WildPokemon SafariZone_Southwest_LandMons [] = +{ + {25, 25, SPECIES_ODDISH}, + {27, 27, SPECIES_ODDISH}, + {25, 25, SPECIES_GIRAFARIG}, + {27, 27, SPECIES_GIRAFARIG}, + {25, 25, SPECIES_NATU}, +#ifdef SAPPHIRE + {27, 27, SPECIES_DODUO}, +#else + {25, 25, SPECIES_DODUO}, +#endif + {25, 25, SPECIES_GLOOM}, + {27, 27, SPECIES_WOBBUFFET}, + {25, 25, SPECIES_PIKACHU}, + {27, 27, SPECIES_WOBBUFFET}, + {27, 27, SPECIES_PIKACHU}, + {29, 29, SPECIES_WOBBUFFET}, +}; +const struct WildPokemonInfo SafariZone_Southwest_LandMonsInfo = {25, SafariZone_Southwest_LandMons}; + +const struct WildPokemon SafariZone_Southwest_WaterMons [] = +{ + {20, 30, SPECIES_PSYDUCK}, + {20, 30, SPECIES_PSYDUCK}, + {30, 35, SPECIES_PSYDUCK}, + {30, 35, SPECIES_PSYDUCK}, + {30, 35, SPECIES_PSYDUCK}, +}; +const struct WildPokemonInfo SafariZone_Southwest_WaterMonsInfo = {9, SafariZone_Southwest_WaterMons}; + +const struct WildPokemon SafariZone_Southwest_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 25, SPECIES_GOLDEEN}, + {10, 30, SPECIES_GOLDEEN}, + {25, 30, SPECIES_GOLDEEN}, + {30, 35, SPECIES_GOLDEEN}, + {30, 35, SPECIES_SEAKING}, + {35, 40, SPECIES_SEAKING}, + {25, 30, SPECIES_SEAKING}, +}; +const struct WildPokemonInfo SafariZone_Southwest_FishingMonsInfo = {35, SafariZone_Southwest_FishingMons}; + +const struct WildPokemon SafariZone_Southeast_LandMons [] = +{ + {25, 25, SPECIES_ODDISH}, + {27, 27, SPECIES_ODDISH}, + {25, 25, SPECIES_GIRAFARIG}, + {27, 27, SPECIES_GIRAFARIG}, + {25, 25, SPECIES_NATU}, + {25, 25, SPECIES_DODUO}, + {25, 25, SPECIES_GLOOM}, + {27, 27, SPECIES_WOBBUFFET}, + {25, 25, SPECIES_PIKACHU}, + {27, 27, SPECIES_WOBBUFFET}, + {27, 27, SPECIES_PIKACHU}, + {29, 29, SPECIES_WOBBUFFET}, +}; +const struct WildPokemonInfo SafariZone_Southeast_LandMonsInfo = {25, SafariZone_Southeast_LandMons}; + +const struct WildPokemon DewfordTown_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo DewfordTown_WaterMonsInfo = {4, DewfordTown_WaterMons}; + +const struct WildPokemon DewfordTown_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo DewfordTown_FishingMonsInfo = {10, DewfordTown_FishingMons}; + +const struct WildPokemon PacifidlogTown_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo PacifidlogTown_WaterMonsInfo = {4, PacifidlogTown_WaterMons}; + +const struct WildPokemon PacifidlogTown_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo PacifidlogTown_FishingMonsInfo = {10, PacifidlogTown_FishingMons}; + +const struct WildPokemon Underwater1_WaterMons [] = +{ + {20, 30, SPECIES_CLAMPERL}, + {20, 30, SPECIES_CHINCHOU}, + {30, 35, SPECIES_CLAMPERL}, + {30, 35, SPECIES_RELICANTH}, + {30, 35, SPECIES_RELICANTH}, +}; +const struct WildPokemonInfo Underwater1_WaterMonsInfo = {4, Underwater1_WaterMons}; + +const struct WildPokemon Underwater2_WaterMons [] = +{ + {20, 30, SPECIES_CLAMPERL}, + {20, 30, SPECIES_CHINCHOU}, + {30, 35, SPECIES_CLAMPERL}, + {30, 35, SPECIES_RELICANTH}, + {30, 35, SPECIES_RELICANTH}, +}; +const struct WildPokemonInfo Underwater2_WaterMonsInfo = {4, Underwater2_WaterMons}; + + extern u16 gRoute119WaterTileData[]; extern struct WildPokemonHeader gWildMonHeaders[]; extern struct Pokemon gEnemyParty[6]; @@ -234,7 +3119,7 @@ static u8 ChooseWildMonIndex_Fishing(u8 rod) return wildMonIndex; } -static u8 ChooseWildMonLevel(struct WildPokemon *wildPokemon) +static u8 ChooseWildMonLevel(const struct WildPokemon *wildPokemon) { u8 min; u8 max; |