summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCameron Hall <camthesaxman@users.noreply.github.com>2017-01-27 13:06:20 -0500
committerYamaArashi <YamaArashi@users.noreply.github.com>2017-01-27 10:06:20 -0800
commitb9ff56bd89ac11a9b40b34f834dcf7a5be4d90a6 (patch)
tree4ee0f20cf1c2dc523108c424bb435cbd0bd43542
parent72bc8f23d37c6efd68ad4a0f86ba87b6cd3db4d2 (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.inc689
-rw-r--r--data/berry.s14
-rw-r--r--data/clock_hand_coords.inc361
-rw-r--r--data/credits.s6
-rw-r--r--data/intro.s402
-rw-r--r--data/starter_choose.s144
-rw-r--r--data/text/berry_descriptions.inc257
-rw-r--r--data/wallclock.s86
-rw-r--r--data/wild_mons.inc3101
-rw-r--r--graphics/intro/unknown1.pal19
-rw-r--r--graphics/intro/unknown2.pal19
-rw-r--r--include/berry.h12
-rw-r--r--include/global.berry.h6
-rw-r--r--include/sprite.h30
-rw-r--r--include/wallclock.h5
-rw-r--r--ld_script.txt8
-rw-r--r--src/berry.c791
-rw-r--r--src/berry_tag_screen.c4
-rw-r--r--src/credits.c8
-rw-r--r--src/intro.c567
-rw-r--r--src/main_menu.c4
-rw-r--r--src/pokemon_2.c12
-rw-r--r--src/sprite.c116
-rw-r--r--src/starter_choose.c166
-rw-r--r--src/wallclock.c689
-rw-r--r--src/wild_encounter.c2889
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;