summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--asm/battle_10.s4675
-rw-r--r--asm/battle_2.s2
-rw-r--r--asm/battle_3.s6
-rw-r--r--asm/battle_4.s74
-rw-r--r--asm/battle_9.s6
-rw-r--r--asm/field_specials.s4934
-rw-r--r--asm/field_tasks.s1972
-rw-r--r--asm/sound_check_menu.s2444
-rw-r--r--data/base_stats.inc8635
-rw-r--r--data/cry_id_table.inc137
-rw-r--r--data/evolution_table.inc1420
-rw-r--r--data/experience_tables/erratic_growth_rate.inc101
-rw-r--r--data/experience_tables/fast_growth_rate.inc101
-rw-r--r--data/experience_tables/fluctuating_growth_rate.inc101
-rw-r--r--data/experience_tables/medium_fast_growth_rate.inc101
-rw-r--r--data/experience_tables/medium_slow_growth_rate.inc101
-rw-r--r--data/experience_tables/slow_growth_rate.inc101
-rw-r--r--data/experience_tables/tables.inc11
-rw-r--r--data/field_specials.s75
-rw-r--r--data/field_tasks.s66
-rw-r--r--data/item_effects.inc752
-rw-r--r--data/level_up_learnset_pointers.inc414
-rw-r--r--data/level_up_learnsets.inc5206
-rw-r--r--data/nature_stat_table.inc27
-rw-r--r--data/pokemon.s131
-rw-r--r--data/sound_check_menu.s121
-rw-r--r--data/species_id_conversion_tables.inc1241
-rw-r--r--data/spinda_spot_graphics.inc81
-rw-r--r--data/text/song_names.inc1105
-rw-r--r--data/tm_hm_learnsets.inc414
-rw-r--r--data/trainer_class_index_tables.inc157
-rw-r--r--graphics/spinda_spots/spot_0.binbin0 -> 32 bytes
-rw-r--r--graphics/spinda_spots/spot_1.binbin0 -> 32 bytes
-rw-r--r--graphics/spinda_spots/spot_2.binbin0 -> 32 bytes
-rw-r--r--graphics/spinda_spots/spot_3.binbin0 -> 32 bytes
-rw-r--r--include/battle.h439
-rw-r--r--include/battle_tower.h1
-rw-r--r--include/data/pokemon/base_stats.h7823
-rw-r--r--include/data/pokemon/cry_ids.h146
-rw-r--r--include/data/pokemon/dex_order.h15
-rw-r--r--include/data/pokemon/evolution.h608
-rw-r--r--include/data/pokemon/experience_tables.h828
-rw-r--r--include/data/pokemon/item_effects.h824
-rw-r--r--include/data/pokemon/level_up_learnset_pointers.h423
-rw-r--r--include/data/pokemon/level_up_learnsets.h5627
-rw-r--r--include/data/pokemon/nature_stats.h37
-rw-r--r--include/data/pokemon/spinda_spots.h15
-rw-r--r--include/data/pokemon/tmhm_learnsets.h431
-rw-r--r--include/data/pokemon/trainer_class_lookups.h168
-rw-r--r--include/data2.h19
-rw-r--r--include/field_camera.h2
-rw-r--r--include/field_effect_helpers.h1
-rw-r--r--include/field_map_obj.h3
-rw-r--r--include/field_region_map.h1
-rw-r--r--include/field_special_scene.h2
-rw-r--r--include/field_specials.h24
-rw-r--r--include/field_tasks.h6
-rw-r--r--include/global.h11
-rw-r--r--include/menu_helpers.h1
-rw-r--r--include/player_pc.h4
-rwxr-xr-x[-rw-r--r--]include/pokeblock.h1
-rwxr-xr-x[-rw-r--r--]include/pokemon.h86
-rw-r--r--include/pokemon_summary_screen.h1
-rwxr-xr-x[-rw-r--r--]include/region_map.h2
-rw-r--r--include/rom4.h2
-rw-r--r--include/script.h1
-rw-r--r--include/secret_base.h1
-rw-r--r--include/task.h4
-rw-r--r--include/text.h1
-rw-r--r--include/trainer.h227
-rw-r--r--include/tv.h3
-rwxr-xr-x[-rw-r--r--]include/vars.h14
-rw-r--r--ld_script.txt15
-rw-r--r--src/battle_10.c1322
-rw-r--r--src/battle_2.c199
-rw-r--r--src/battle_811DA74.c9
-rw-r--r--src/battle_ai.c283
-rw-r--r--src/calculate_base_damage.c6
-rw-r--r--src/field_map_obj.c4
-rw-r--r--src/field_special_scene.c2
-rwxr-xr-x[-rw-r--r--]src/field_specials.c2213
-rwxr-xr-xsrc/field_tasks.c859
-rw-r--r--src/pokemon_2.c11
-rw-r--r--src/pokemon_3.c38
-rw-r--r--src/pokemon_data.c128
-rwxr-xr-xsrc/sound_check_menu.c2198
-rw-r--r--src/tv.c23
88 files changed, 24747 insertions, 35078 deletions
diff --git a/.gitignore b/.gitignore
index f5c95dbc1..ae9ac207b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,3 +37,4 @@ types_*.taghl
Thumbs.db
build/
.idea/
+*.DS_Store
diff --git a/asm/battle_10.s b/asm/battle_10.s
deleted file mode 100644
index 548c77bce..000000000
--- a/asm/battle_10.s
+++ /dev/null
@@ -1,4675 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start LinkOpponentHandleGetAttributes
-LinkOpponentHandleGetAttributes: @ 803807C
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _080380A8 @ =gBattleBufferA
- ldr r0, _080380AC @ =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080380B4
- ldr r0, _080380B0 @ =gBattlePartyID
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl dp01_getattr_by_ch1_for_player_pokemon__
- adds r6, r0, 0
- b _080380D6
- .align 2, 0
-_080380A8: .4byte gBattleBufferA
-_080380AC: .4byte gActiveBank
-_080380B0: .4byte gBattlePartyID
-_080380B4:
- ldrb r4, [r1]
- movs r5, 0
-_080380B8:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080380CE
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl dp01_getattr_by_ch1_for_player_pokemon__
- adds r6, r0
-_080380CE:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _080380B8
-_080380D6:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl4_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end LinkOpponentHandleGetAttributes
-
- thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__
-dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _08038124 @ =gBattleBufferA
- ldr r3, _08038128 @ =gActiveBank
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0803811A
- bl _08038886
-_0803811A:
- lsls r0, 2
- ldr r1, _0803812C @ =_08038130
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038124: .4byte gBattleBufferA
-_08038128: .4byte gActiveBank
-_0803812C: .4byte _08038130
- .align 2, 0
-_08038130:
- .4byte _08038220
- .4byte _08038444
- .4byte _08038454
- .4byte _08038464
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384E8
- .4byte _08038524
- .4byte _08038524
- .4byte _08038524
- .4byte _08038524
- .4byte _08038886
- .4byte _08038886
- .4byte _08038886
- .4byte _08038886
- .4byte _08038540
- .4byte _08038550
- .4byte _08038580
- .4byte _08038590
- .4byte _080385A0
- .4byte _080385B0
- .4byte _080385C0
- .4byte _080385D0
- .4byte _080385E0
- .4byte _080385F0
- .4byte _08038600
- .4byte _08038610
- .4byte _08038620
- .4byte _08038630
- .4byte _08038640
- .4byte _08038690
- .4byte _080386A0
- .4byte _080386B0
- .4byte _080386C0
- .4byte _080386D0
- .4byte _080386E0
- .4byte _080386F0
- .4byte _08038700
- .4byte _08038710
- .4byte _08038744
- .4byte _08038754
- .4byte _08038764
- .4byte _08038774
- .4byte _08038784
- .4byte _08038794
- .4byte _080387A4
- .4byte _080387B4
- .4byte _080387D4
- .4byte _080387E4
- .4byte _080387F4
- .4byte _08038804
- .4byte _08038814
- .4byte _08038824
- .4byte _08038834
- .4byte _08038844
- .4byte _08038854
- .4byte _08038864
- .4byte _08038874
-_08038220:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038434 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_0803826C:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0803826C
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038434 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _08038438 @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _0803843C @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _08038440 @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_08038424:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _08038424
- b _08038886
- .align 2, 0
-_08038434: .4byte gEnemyParty
-_08038438: .4byte 0xfffffc1f
-_0803843C: .4byte 0xfff07fff
-_08038440: .4byte 0xfffffe0f
-_08038444:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038450 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- b _080387BE
- .align 2, 0
-_08038450: .4byte gEnemyParty
-_08038454:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038460 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- b _080387BE
- .align 2, 0
-_08038460: .4byte gEnemyParty
-_08038464:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080384C8 @ =gEnemyParty
- adds r4, r1, r0
- mov r8, r9
-_0803847A:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _0803847A
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080384C8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_080384B8:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _080384B8
- b _08038886
- .align 2, 0
-_080384C8: .4byte gEnemyParty
-_080384CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080384E4 @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _080387BE
- .align 2, 0
-_080384E4: .4byte gEnemyParty
-_080384E8:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _08038520 @ =gEnemyParty
- mov r8, r2
-_080384F4:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _080384F4
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038520 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _08038886
- .align 2, 0
-_08038520: .4byte gEnemyParty
-_08038524:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803853C @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _0803887E
- .align 2, 0
-_0803853C: .4byte gEnemyParty
-_08038540:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803854C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1
- b _0803855A
- .align 2, 0
-_0803854C: .4byte gEnemyParty
-_08038550:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803857C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x19
-_0803855A:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _08038886
- .align 2, 0
-_0803857C: .4byte gEnemyParty
-_08038580:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803858C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1A
- b _0803887E
- .align 2, 0
-_0803858C: .4byte gEnemyParty
-_08038590:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803859C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1B
- b _0803887E
- .align 2, 0
-_0803859C: .4byte gEnemyParty
-_080385A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385AC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1C
- b _0803887E
- .align 2, 0
-_080385AC: .4byte gEnemyParty
-_080385B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1D
- b _0803887E
- .align 2, 0
-_080385BC: .4byte gEnemyParty
-_080385C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385CC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1E
- b _0803887E
- .align 2, 0
-_080385CC: .4byte gEnemyParty
-_080385D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385DC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1F
- b _0803887E
- .align 2, 0
-_080385DC: .4byte gEnemyParty
-_080385E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385EC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x20
- b _0803887E
- .align 2, 0
-_080385EC: .4byte gEnemyParty
-_080385F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385FC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x22
- b _0803887E
- .align 2, 0
-_080385FC: .4byte gEnemyParty
-_08038600:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803860C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x23
- b _0803887E
- .align 2, 0
-_0803860C: .4byte gEnemyParty
-_08038610:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803861C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x24
- b _0803887E
- .align 2, 0
-_0803861C: .4byte gEnemyParty
-_08038620:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803862C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x25
- b _0803887E
- .align 2, 0
-_0803862C: .4byte gEnemyParty
-_08038630:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803863C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- b _0803887E
- .align 2, 0
-_0803863C: .4byte gEnemyParty
-_08038640:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0803868C @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _08038886
- .align 2, 0
-_0803868C: .4byte gEnemyParty
-_08038690:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803869C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x27
- b _0803887E
- .align 2, 0
-_0803869C: .4byte gEnemyParty
-_080386A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386AC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x28
- b _0803887E
- .align 2, 0
-_080386AC: .4byte gEnemyParty
-_080386B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x29
- b _0803887E
- .align 2, 0
-_080386BC: .4byte gEnemyParty
-_080386C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386CC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2A
- b _0803887E
- .align 2, 0
-_080386CC: .4byte gEnemyParty
-_080386D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386DC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2B
- b _0803887E
- .align 2, 0
-_080386DC: .4byte gEnemyParty
-_080386E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386EC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- b _0803887E
- .align 2, 0
-_080386EC: .4byte gEnemyParty
-_080386F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386FC @ =gEnemyParty
- adds r0, r1
- movs r1, 0
- b _0803871A
- .align 2, 0
-_080386FC: .4byte gEnemyParty
-_08038700:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803870C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x9
- b _080387BE
- .align 2, 0
-_0803870C: .4byte gEnemyParty
-_08038710:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038740 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x37
-_0803871A:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _08038886
- .align 2, 0
-_08038740: .4byte gEnemyParty
-_08038744:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038750 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x38
- b _0803887E
- .align 2, 0
-_08038750: .4byte gEnemyParty
-_08038754:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038760 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- b _080387BE
- .align 2, 0
-_08038760: .4byte gEnemyParty
-_08038764:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038770 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- b _080387BE
- .align 2, 0
-_08038770: .4byte gEnemyParty
-_08038774:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038780 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3B
- b _080387BE
- .align 2, 0
-_08038780: .4byte gEnemyParty
-_08038784:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038790 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3C
- b _080387BE
- .align 2, 0
-_08038790: .4byte gEnemyParty
-_08038794:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387A0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3D
- b _080387BE
- .align 2, 0
-_080387A0: .4byte gEnemyParty
-_080387A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387B0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3E
- b _080387BE
- .align 2, 0
-_080387B0: .4byte gEnemyParty
-_080387B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387D0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3F
-_080387BE:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _08038886
- .align 2, 0
-_080387D0: .4byte gEnemyParty
-_080387D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387E0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x16
- b _0803887E
- .align 2, 0
-_080387E0: .4byte gEnemyParty
-_080387E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387F0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x17
- b _0803887E
- .align 2, 0
-_080387F0: .4byte gEnemyParty
-_080387F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038800 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x18
- b _0803887E
- .align 2, 0
-_08038800: .4byte gEnemyParty
-_08038804:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038810 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x21
- b _0803887E
- .align 2, 0
-_08038810: .4byte gEnemyParty
-_08038814:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038820 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2F
- b _0803887E
- .align 2, 0
-_08038820: .4byte gEnemyParty
-_08038824:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038830 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x30
- b _0803887E
- .align 2, 0
-_08038830: .4byte gEnemyParty
-_08038834:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038840 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x32
- b _0803887E
- .align 2, 0
-_08038840: .4byte gEnemyParty
-_08038844:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038850 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x33
- b _0803887E
- .align 2, 0
-_08038850: .4byte gEnemyParty
-_08038854:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038860 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x34
- b _0803887E
- .align 2, 0
-_08038860: .4byte gEnemyParty
-_08038864:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038870 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x35
- b _0803887E
- .align 2, 0
-_08038870: .4byte gEnemyParty
-_08038874:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038898 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x36
-_0803887E:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_08038886:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08038898: .4byte gEnemyParty
- thumb_func_end dp01_getattr_by_ch1_for_player_pokemon__
-
- thumb_func_start sub_803889C
-sub_803889C: @ 803889C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803889C
-
- thumb_func_start sub_80388A8
-sub_80388A8: @ 80388A8
- push {r4,r5,lr}
- ldr r1, _080388CC @ =gBattleBufferA
- ldr r0, _080388D0 @ =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080388D8
- ldr r0, _080388D4 @ =gBattlePartyID
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8038900
- b _080388F6
- .align 2, 0
-_080388CC: .4byte gBattleBufferA
-_080388D0: .4byte gActiveBank
-_080388D4: .4byte gBattlePartyID
-_080388D8:
- ldrb r4, [r1]
- movs r5, 0
-_080388DC:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080388EA
- adds r0, r5, 0
- bl sub_8038900
-_080388EA:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080388DC
-_080388F6:
- bl dp01_tbl4_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80388A8
-
- thumb_func_start sub_8038900
-sub_8038900: @ 8038900
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r3, _08038938 @ =gActiveBank
- ldrb r0, [r3]
- lsls r0, 9
- ldr r2, _0803893C @ =gUnknown_02023A63
- adds r4, r0, r2
- adds r7, r4, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- adds r3, r2, 0
- cmp r0, 0x3B
- bls _0803892E
- bl _0803920C
-_0803892E:
- lsls r0, 2
- ldr r1, _08038940 @ =_08038944
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038938: .4byte gActiveBank
-_0803893C: .4byte gUnknown_02023A63
-_08038940: .4byte _08038944
- .align 2, 0
-_08038944:
- .4byte _08038A34
- .4byte _08038BCC
- .4byte _08038BE8
- .4byte _08038C04
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C78
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _0803920C
- .4byte _0803920C
- .4byte _0803920C
- .4byte _0803920C
- .4byte _08038D08
- .4byte _08038D24
- .4byte _08038D40
- .4byte _08038D5C
- .4byte _08038D78
- .4byte _08038D94
- .4byte _08038DB0
- .4byte _08038DCC
- .4byte _08038DE8
- .4byte _08038E04
- .4byte _08038E20
- .4byte _08038E3C
- .4byte _08038E58
- .4byte _08038E74
- .4byte _08038E90
- .4byte _08038F04
- .4byte _08038F20
- .4byte _08038F3C
- .4byte _08038F58
- .4byte _08038F74
- .4byte _08038F90
- .4byte _08038FAC
- .4byte _08038FC8
- .4byte _08038FE4
- .4byte _08039000
- .4byte _0803901C
- .4byte _08039038
- .4byte _08039054
- .4byte _08039070
- .4byte _0803908C
- .4byte _080390A8
- .4byte _080390C4
- .4byte _080390E0
- .4byte _080390FC
- .4byte _08039118
- .4byte _08039134
- .4byte _08039150
- .4byte _0803916C
- .4byte _08039188
- .4byte _080391A4
- .4byte _080391C0
- .4byte _080391DC
- .4byte _080391F8
-_08038A34:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038BC8 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r7, 0
- bl SetMonData
- adds r2, r7, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r7
- mov r10, r0
- adds r0, r7, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r7, 0x2
- str r0, [sp, 0x4]
- adds r0, r7, 0x4
- str r0, [sp, 0x8]
- adds r0, r7, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r6, r7, 0
- adds r6, 0x24
- adds r4, r7, 0
- adds r4, 0xC
-_08038A9A:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08038A9A
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038BC8 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r7, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r7, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038BC8: .4byte gEnemyParty
-_08038BCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038BE4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xB
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038BE4: .4byte gEnemyParty
-_08038BE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C00 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038C00: .4byte gEnemyParty
-_08038C04:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r4
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08038C54 @ =gEnemyParty
- adds r7, r1, r0
- adds r6, r4, 0
- adds r6, 0x8
-_08038C1C:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08038C1C
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C54 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038C54: .4byte gEnemyParty
-_08038C58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C70 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08038C74 @ =gBattleBufferA
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _08038CF6
- .align 2, 0
-_08038C70: .4byte gEnemyParty
-_08038C74: .4byte gBattleBufferA
-_08038C78:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038CDC @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x11
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038CDC: .4byte gEnemyParty
-_08038CE0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D00 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08038D04 @ =gBattleBufferA
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_08038CF6:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D00: .4byte gEnemyParty
-_08038D04: .4byte gBattleBufferA
-_08038D08:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D20 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D20: .4byte gEnemyParty
-_08038D24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D3C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x19
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D3C: .4byte gEnemyParty
-_08038D40:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D58 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D58: .4byte gEnemyParty
-_08038D5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D74 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D74: .4byte gEnemyParty
-_08038D78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D90 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D90: .4byte gEnemyParty
-_08038D94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DAC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1D
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DAC: .4byte gEnemyParty
-_08038DB0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DC8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1E
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DC8: .4byte gEnemyParty
-_08038DCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DE4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DE4: .4byte gEnemyParty
-_08038DE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E00 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x20
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E00: .4byte gEnemyParty
-_08038E04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E1C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x22
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E1C: .4byte gEnemyParty
-_08038E20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E38 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x23
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E38: .4byte gEnemyParty
-_08038E3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E54 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x24
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E54: .4byte gEnemyParty
-_08038E58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E70 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x25
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E70: .4byte gEnemyParty
-_08038E74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E8C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x26
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E8C: .4byte gEnemyParty
-_08038E90:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038F00 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x27
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _08038F9E
- .align 2, 0
-_08038F00: .4byte gEnemyParty
-_08038F04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F1C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x27
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F1C: .4byte gEnemyParty
-_08038F20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F38 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x28
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F38: .4byte gEnemyParty
-_08038F3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F54 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x29
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F54: .4byte gEnemyParty
-_08038F58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F70 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F70: .4byte gEnemyParty
-_08038F74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F8C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F8C: .4byte gEnemyParty
-_08038F90:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FA8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
-_08038F9E:
- movs r1, 0x2C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FA8: .4byte gEnemyParty
-_08038FAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FC4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FC4: .4byte gEnemyParty
-_08038FC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FE0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x9
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FE0: .4byte gEnemyParty
-_08038FE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FFC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x37
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FFC: .4byte gEnemyParty
-_08039000:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039018 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x38
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039018: .4byte gEnemyParty
-_0803901C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039034 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x39
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039034: .4byte gEnemyParty
-_08039038:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039050 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039050: .4byte gEnemyParty
-_08039054:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803906C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_0803906C: .4byte gEnemyParty
-_08039070:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039088 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039088: .4byte gEnemyParty
-_0803908C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390A4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3D
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390A4: .4byte gEnemyParty
-_080390A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390C0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3E
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390C0: .4byte gEnemyParty
-_080390C4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390DC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390DC: .4byte gEnemyParty
-_080390E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390F8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x16
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390F8: .4byte gEnemyParty
-_080390FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039114 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x17
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039114: .4byte gEnemyParty
-_08039118:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039130 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x18
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039130: .4byte gEnemyParty
-_08039134:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803914C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x21
- bl SetMonData
- b _0803920C
- .align 2, 0
-_0803914C: .4byte gEnemyParty
-_08039150:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039168 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039168: .4byte gEnemyParty
-_0803916C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039184 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x30
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039184: .4byte gEnemyParty
-_08039188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391A0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x32
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391A0: .4byte gEnemyParty
-_080391A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391BC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x33
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391BC: .4byte gEnemyParty
-_080391C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391D8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x34
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391D8: .4byte gEnemyParty
-_080391DC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391F4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x35
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391F4: .4byte gEnemyParty
-_080391F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803921C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x36
- bl SetMonData
-_0803920C:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803921C: .4byte gEnemyParty
- thumb_func_end sub_8038900
-
- thumb_func_start sub_8039220
-sub_8039220: @ 8039220
- push {r4-r7,lr}
- ldr r1, _08039284 @ =gBattlePartyID
- ldr r7, _08039288 @ =gActiveBank
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _0803928C @ =gBattleBufferA
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _08039290 @ =gEnemyParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _08039278
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_08039256:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _08039256
-_08039278:
- bl dp01_tbl4_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08039284: .4byte gBattlePartyID
-_08039288: .4byte gActiveBank
-_0803928C: .4byte gBattleBufferA
-_08039290: .4byte gEnemyParty
- thumb_func_end sub_8039220
-
- thumb_func_start sub_8039294
-sub_8039294: @ 8039294
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _080393BC @ =gBattlePartyID
- ldr r6, _080393C0 @ =gActiveBank
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x64
- mov r10, r1
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- ldr r1, _080393C4 @ =gEnemyParty
- mov r9, r1
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- bl sub_8031794
- ldrb r0, [r6]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080393C8 @ =gUnknown_02024E8C
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080393CC @ =gObjectBankIDs
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _080393D0 @ =gSprites
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080393D4 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r3, [r6]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080393D8 @ =gBattleMonForms
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldrb r4, [r6]
- lsls r0, r4, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _080393DC @ =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080393E0 @ =sub_8037A74
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080393BC: .4byte gBattlePartyID
-_080393C0: .4byte gActiveBank
-_080393C4: .4byte gEnemyParty
-_080393C8: .4byte gUnknown_02024E8C
-_080393CC: .4byte gObjectBankIDs
-_080393D0: .4byte gSprites
-_080393D4: .4byte 0x0000ff10
-_080393D8: .4byte gBattleMonForms
-_080393DC: .4byte gBattleBankFunc
-_080393E0: .4byte sub_8037A74
- thumb_func_end sub_8039294
-
- thumb_func_start sub_80393E4
-sub_80393E4: @ 80393E4
- push {r4,lr}
- ldr r1, _0803941C @ =gBattlePartyID
- ldr r4, _08039420 @ =gActiveBank
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r1
- ldr r3, _08039424 @ =gBattleBufferA
- lsls r0, 9
- adds r1, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldrb r0, [r4]
- lsls r1, r0, 9
- adds r3, 0x2
- adds r1, r3
- ldrb r1, [r1]
- bl sub_8039430
- ldr r1, _08039428 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803942C @ =sub_8037E30
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803941C: .4byte gBattlePartyID
-_08039420: .4byte gActiveBank
-_08039424: .4byte gBattleBufferA
-_08039428: .4byte gBattleBankFunc
-_0803942C: .4byte sub_8037E30
- thumb_func_end sub_80393E4
-
- thumb_func_start sub_8039430
-sub_8039430: @ 8039430
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _0803958C @ =gBattlePartyID
- lsls r4, r6, 1
- adds r4, r0
- ldr r0, _08039590 @ =gBattleBufferA
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r5, _08039594 @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08039598 @ =sub_80312F0
- bl CreateInvisibleSpriteWithCallback
- ldr r1, _0803959C @ =gUnknown_0300434C
- mov r10, r1
- add r10, r6
- mov r1, r10
- strb r0, [r1]
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r1, r6, 0
- bl sub_8031794
- adds r0, r6, 0
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080395A0 @ =gUnknown_02024E8C
- mov r9, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r9
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080395A4 @ =gObjectBankIDs
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _080395A8 @ =gSprites
- mov r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080395AC @ =gBattleMonForms
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080395B0 @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFE
- bl sub_8046400
- mov r1, r10
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803958C: .4byte gBattlePartyID
-_08039590: .4byte gBattleBufferA
-_08039594: .4byte gEnemyParty
-_08039598: .4byte sub_80312F0
-_0803959C: .4byte gUnknown_0300434C
-_080395A0: .4byte gUnknown_02024E8C
-_080395A4: .4byte gObjectBankIDs
-_080395A8: .4byte gSprites
-_080395AC: .4byte gBattleMonForms
-_080395B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8039430
-
- thumb_func_start sub_80395B4
-sub_80395B4: @ 80395B4
- push {r4-r6,lr}
- ldr r1, _080395E4 @ =gBattleBufferA
- ldr r6, _080395E8 @ =gActiveBank
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _080395F8
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080395EC @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _080395F0 @ =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080395F4 @ =sub_8039648
- str r1, [r0]
- b _08039634
- .align 2, 0
-_080395E4: .4byte gBattleBufferA
-_080395E8: .4byte gActiveBank
-_080395EC: .4byte 0x02017810
-_080395F0: .4byte gBattleBankFunc
-_080395F4: .4byte sub_8039648
-_080395F8:
- ldr r5, _0803963C @ =gObjectBankIDs
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08039640 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _08039644 @ =gHealthboxIDs
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08039634:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803963C: .4byte gObjectBankIDs
-_08039640: .4byte gSprites
-_08039644: .4byte gHealthboxIDs
- thumb_func_end sub_80395B4
-
- thumb_func_start sub_8039648
-sub_8039648: @ 8039648
- push {r4,r5,lr}
- ldr r5, _08039664 @ =gActiveBank
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _08039668 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0803966C
- cmp r0, 0x1
- beq _08039698
- b _080396C0
- .align 2, 0
-_08039664: .4byte gActiveBank
-_08039668: .4byte 0x02017810
-_0803966C:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08039688
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08039688:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _080396C0
-_08039698:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080396C0
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x2
- bl move_anim_start_t4
- ldr r1, _080396C8 @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080396CC @ =sub_8037BBC
- str r1, [r0]
-_080396C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080396C8: .4byte gBattleBankFunc
-_080396CC: .4byte sub_8037BBC
- thumb_func_end sub_8039648
-
- thumb_func_start sub_80396D0
-sub_80396D0: @ 80396D0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _08039704 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08039714
- ldr r6, _08039708 @ =gActiveBank
- ldrb r0, [r6]
- bl GetBankIdentity
- movs r1, 0x2
- ands r1, r0
- movs r5, 0x10
- cmp r1, 0
- beq _080396F8
- ldr r5, _0803970C @ =0x0000fff0
-_080396F8:
- ldr r4, _08039710 @ =gLinkPlayers
- ldrb r0, [r6]
- bl sub_803FC34
- b _08039724
- .align 2, 0
-_08039704: .4byte gBattleTypeFlags
-_08039708: .4byte gActiveBank
-_0803970C: .4byte 0x0000fff0
-_08039710: .4byte gLinkPlayers
-_08039714:
- movs r5, 0
- ldr r4, _0803986C @ =gLinkPlayers
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
-_08039724:
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x13]
- mov r9, r0
- ldr r0, _08039870 @ =gActiveBank
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_8031A6C
- mov r1, r8
- ldrb r0, [r1]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl GetMonSpriteTemplate_803C5A0
- ldr r6, _08039874 @ =gUnknown_02024E8C
- lsls r5, 16
- movs r2, 0xB0
- lsls r2, 16
- adds r5, r2
- asrs r5, 16
- ldr r1, _08039878 @ =gTrainerFrontPicCoords
- mov r2, r9
- lsls r0, r2, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 14
- adds r4, r0
- asrs r4, 16
- mov r1, r8
- ldrb r0, [r1]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _0803987C @ =gObjectBankIDs
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08039880 @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08039884 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldr r0, _08039888 @ =gTrainerFrontPicPaletteTable
- mov r1, r9
- lsls r6, r1, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _0803988C @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08039890 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08039894 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r9
- strh r2, [r0, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08039898 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0803989C @ =gBattleBankFunc
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080398A0 @ =sub_803757C
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803986C: .4byte gLinkPlayers
-_08039870: .4byte gActiveBank
-_08039874: .4byte gUnknown_02024E8C
-_08039878: .4byte gTrainerFrontPicCoords
-_0803987C: .4byte gObjectBankIDs
-_08039880: .4byte gSprites
-_08039884: .4byte 0x0000ff10
-_08039888: .4byte gTrainerFrontPicPaletteTable
-_0803988C: .4byte gTrainerFrontPicTable
-_08039890: .4byte 0x000003ff
-_08039894: .4byte 0xfffffc00
-_08039898: .4byte sub_80313A0
-_0803989C: .4byte gBattleBankFunc
-_080398A0: .4byte sub_803757C
- thumb_func_end sub_80396D0
-
- thumb_func_start sub_80398A4
-sub_80398A4: @ 80398A4
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_80398A4
-
- thumb_func_start sub_80398B0
-sub_80398B0: @ 80398B0
- push {r4-r6,lr}
- ldr r6, _08039940 @ =gObjectBankIDs
- ldr r4, _08039944 @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08039948 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0803994C @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08039950 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldr r1, _08039954 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039958 @ =sub_80375B4
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039940: .4byte gObjectBankIDs
-_08039944: .4byte gActiveBank
-_08039948: .4byte gSprites
-_0803994C: .4byte sub_8078B34
-_08039950: .4byte SpriteCallbackDummy
-_08039954: .4byte gBattleBankFunc
-_08039958: .4byte sub_80375B4
- thumb_func_end sub_80398B0
-
- thumb_func_start sub_803995C
-sub_803995C: @ 803995C
- push {r4,r5,lr}
- ldr r5, _080399A0 @ =gActiveBank
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _080399A4 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _080399A8
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803998E
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0803998E:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _080399E4
- .align 2, 0
-_080399A0: .4byte gActiveBank
-_080399A4: .4byte 0x02017810
-_080399A8:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080399E4
- strb r0, [r3, 0x4]
- movs r0, 0x10
- movs r1, 0x3F
- bl PlaySE12WithPanning
- ldr r2, _080399EC @ =gSprites
- ldr r1, _080399F0 @ =gObjectBankIDs
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080399F4 @ =sub_8010384
- str r1, [r0]
- ldr r1, _080399F8 @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080399FC @ =sub_8037B78
- str r1, [r0]
-_080399E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080399EC: .4byte gSprites
-_080399F0: .4byte gObjectBankIDs
-_080399F4: .4byte sub_8010384
-_080399F8: .4byte gBattleBankFunc
-_080399FC: .4byte sub_8037B78
- thumb_func_end sub_803995C
-
- thumb_func_start sub_8039A00
-sub_8039A00: @ 8039A00
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A00
-
- thumb_func_start sub_8039A0C
-sub_8039A0C: @ 8039A0C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A0C
-
- thumb_func_start sub_8039A18
-sub_8039A18: @ 8039A18
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A18
-
- thumb_func_start sub_8039A24
-sub_8039A24: @ 8039A24
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A24
-
- thumb_func_start sub_8039A30
-sub_8039A30: @ 8039A30
- push {r4-r6,lr}
- ldr r6, _08039B14 @ =gActiveBank
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _08039A42
- b _08039B52
-_08039A42:
- ldr r0, _08039B18 @ =gBattleBufferA
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _08039B1C @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _08039B20 @ =gMovePowerMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _08039B24 @ =gMoveDmgMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _08039B28 @ =gHappinessMoveAnim
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08039B2C @ =gWeatherMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _08039B30 @ =gDisableStructMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _08039B34 @ =gPID_perBank
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08039B38
- bl dp01_tbl4_exec_completed
- b _08039B52
- .align 2, 0
-_08039B14: .4byte gActiveBank
-_08039B18: .4byte gBattleBufferA
-_08039B1C: .4byte gUnknown_0202F7C4
-_08039B20: .4byte gMovePowerMoveAnim
-_08039B24: .4byte gMoveDmgMoveAnim
-_08039B28: .4byte gHappinessMoveAnim
-_08039B2C: .4byte gWeatherMoveAnim
-_08039B30: .4byte gDisableStructMoveAnim
-_08039B34: .4byte gPID_perBank
-_08039B38:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08039B58 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _08039B5C @ =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039B60 @ =sub_8039B64
- str r1, [r0]
-_08039B52:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039B58: .4byte 0x02017810
-_08039B5C: .4byte gBattleBankFunc
-_08039B60: .4byte sub_8039B64
- thumb_func_end sub_8039A30
-
- thumb_func_start sub_8039B64
-sub_8039B64: @ 8039B64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _08039BA8 @ =gBattleBufferA
- ldr r5, _08039BAC @ =gActiveBank
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _08039BB0 @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _08039BF2
- cmp r2, 0x1
- bgt _08039BB4
- cmp r2, 0
- beq _08039BBE
- b _08039CBC
- .align 2, 0
-_08039BA8: .4byte gBattleBufferA
-_08039BAC: .4byte gActiveBank
-_08039BB0: .4byte 0x02017810
-_08039BB4:
- cmp r2, 0x2
- beq _08039C18
- cmp r2, 0x3
- beq _08039C84
- b _08039CBC
-_08039BBE:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _08039BE2
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08039BE2:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08039CBC
-_08039BF2:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08039CBC
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl ExecuteMoveAnim
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08039CBC
-_08039C18:
- ldr r0, _08039C74 @ =gAnimScriptCallback
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08039C78 @ =gAnimScriptActive
- ldrb r0, [r0]
- cmp r0, 0
- bne _08039CBC
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08039C60
- cmp r7, 0x1
- bhi _08039C60
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08039C60:
- ldr r0, _08039C7C @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08039C80 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08039CBC
- .align 2, 0
-_08039C74: .4byte gAnimScriptCallback
-_08039C78: .4byte gAnimScriptActive
-_08039C7C: .4byte gActiveBank
-_08039C80: .4byte 0x02017810
-_08039C84:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08039CBC
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl4_exec_completed
-_08039CBC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8039B64
-
- thumb_func_start sub_8039CC8
-sub_8039CC8: @ 8039CC8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08039D0C @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08039D10 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _08039D14 @ =gActiveBank
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _08039D18 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl BufferStringBattle
- ldr r0, _08039D1C @ =gUnknown_03004210
- ldr r1, _08039D20 @ =gDisplayedStringBattle
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08039D24 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039D28 @ =sub_8037C2C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039D0C: .4byte gUnknown_030042A4
-_08039D10: .4byte gUnknown_030042A0
-_08039D14: .4byte gActiveBank
-_08039D18: .4byte gUnknown_02023A62
-_08039D1C: .4byte gUnknown_03004210
-_08039D20: .4byte gDisplayedStringBattle
-_08039D24: .4byte gBattleBankFunc
-_08039D28: .4byte sub_8037C2C
- thumb_func_end sub_8039CC8
-
- thumb_func_start sub_8039D2C
-sub_8039D2C: @ 8039D2C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D2C
-
- thumb_func_start sub_8039D38
-sub_8039D38: @ 8039D38
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D38
-
- thumb_func_start sub_8039D44
-sub_8039D44: @ 8039D44
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D44
-
- thumb_func_start sub_8039D50
-sub_8039D50: @ 8039D50
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D50
-
- thumb_func_start sub_8039D5C
-sub_8039D5C: @ 8039D5C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D5C
-
- thumb_func_start sub_8039D68
-sub_8039D68: @ 8039D68
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D68
-
- thumb_func_start sub_8039D74
-sub_8039D74: @ 8039D74
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D74
-
- thumb_func_start sub_8039D80
-sub_8039D80: @ 8039D80
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _08039DF8 @ =gBattleBufferA
- ldr r0, _08039DFC @ =gActiveBank
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _08039E00 @ =0x00007fff
- cmp r7, r0
- beq _08039E10
- ldr r6, _08039E04 @ =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08039E08 @ =gEnemyParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08039E0C @ =gHealthboxIDs
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08039E3A
- .align 2, 0
-_08039DF8: .4byte gBattleBufferA
-_08039DFC: .4byte gActiveBank
-_08039E00: .4byte 0x00007fff
-_08039E04: .4byte gBattlePartyID
-_08039E08: .4byte gEnemyParty
-_08039E0C: .4byte gHealthboxIDs
-_08039E10:
- ldr r1, _08039E58 @ =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08039E5C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08039E60 @ =gHealthboxIDs
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
-_08039E3A:
- ldr r1, _08039E64 @ =gBattleBankFunc
- ldr r0, _08039E68 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039E6C @ =sub_8037B24
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08039E58: .4byte gBattlePartyID
-_08039E5C: .4byte gEnemyParty
-_08039E60: .4byte gHealthboxIDs
-_08039E64: .4byte gBattleBankFunc
-_08039E68: .4byte gActiveBank
-_08039E6C: .4byte sub_8037B24
- thumb_func_end sub_8039D80
-
- thumb_func_start sub_8039E70
-sub_8039E70: @ 8039E70
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039E70
-
- thumb_func_start sub_8039E7C
-sub_8039E7C: @ 8039E7C
- push {r4,lr}
- ldr r4, _08039ED4 @ =gActiveBank
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08039ECC
- ldr r0, _08039ED8 @ =gHealthboxIDs
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08039EDC @ =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08039EE0 @ =gEnemyParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08039EE4 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _08039EE8 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039EEC @ =sub_8037FAC
- str r1, [r0]
-_08039ECC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039ED4: .4byte gActiveBank
-_08039ED8: .4byte gHealthboxIDs
-_08039EDC: .4byte gBattlePartyID
-_08039EE0: .4byte gEnemyParty
-_08039EE4: .4byte 0x02017810
-_08039EE8: .4byte gBattleBankFunc
-_08039EEC: .4byte sub_8037FAC
- thumb_func_end sub_8039E7C
-
- thumb_func_start sub_8039EF0
-sub_8039EF0: @ 8039EF0
- push {r4,r5,lr}
- ldr r5, _08039F48 @ =gActiveBank
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08039F40
- ldr r4, _08039F4C @ =gBattleBufferA
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _08039F50 @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039F54 @ =sub_8037FAC
- str r1, [r0]
-_08039F40:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08039F48: .4byte gActiveBank
-_08039F4C: .4byte gBattleBufferA
-_08039F50: .4byte gBattleBankFunc
-_08039F54: .4byte sub_8037FAC
- thumb_func_end sub_8039EF0
-
- thumb_func_start sub_8039F58
-sub_8039F58: @ 8039F58
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F58
-
- thumb_func_start sub_8039F64
-sub_8039F64: @ 8039F64
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F64
-
- thumb_func_start sub_8039F70
-sub_8039F70: @ 8039F70
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F70
-
- thumb_func_start sub_8039F7C
-sub_8039F7C: @ 8039F7C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F7C
-
- thumb_func_start sub_8039F88
-sub_8039F88: @ 8039F88
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F88
-
- thumb_func_start sub_8039F94
-sub_8039F94: @ 8039F94
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F94
-
- thumb_func_start sub_8039FA0
-sub_8039FA0: @ 8039FA0
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FA0
-
- thumb_func_start sub_8039FAC
-sub_8039FAC: @ 8039FAC
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FAC
-
- thumb_func_start sub_8039FB8
-sub_8039FB8: @ 8039FB8
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FB8
-
- thumb_func_start sub_8039FC4
-sub_8039FC4: @ 8039FC4
- push {lr}
- ldr r2, _08039FDC @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08039FDC: .4byte gUnknown_020238C8
- thumb_func_end sub_8039FC4
-
- thumb_func_start sub_8039FE0
-sub_8039FE0: @ 8039FE0
- push {lr}
- ldr r3, _0803A00C @ =gUnknown_020238C8
- ldr r1, _0803A010 @ =gBattleBufferA
- ldr r0, _0803A014 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A00C: .4byte gUnknown_020238C8
-_0803A010: .4byte gBattleBufferA
-_0803A014: .4byte gActiveBank
- thumb_func_end sub_8039FE0
-
- thumb_func_start sub_803A018
-sub_803A018: @ 803A018
- push {lr}
- ldr r2, _0803A02C @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A02C: .4byte gUnknown_020238C8
- thumb_func_end sub_803A018
-
- thumb_func_start sub_803A030
-sub_803A030: @ 803A030
- push {lr}
- ldr r3, _0803A054 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A054: .4byte gUnknown_020238C8
- thumb_func_end sub_803A030
-
- thumb_func_start dp01t_29_4_blink
-dp01t_29_4_blink: @ 803A058
- push {r4,lr}
- ldr r3, _0803A080 @ =gSprites
- ldr r2, _0803A084 @ =gObjectBankIDs
- ldr r4, _0803A088 @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _0803A08C
- bl dp01_tbl4_exec_completed
- b _0803A0B6
- .align 2, 0
-_0803A080: .4byte gSprites
-_0803A084: .4byte gObjectBankIDs
-_0803A088: .4byte gActiveBank
-_0803A08C:
- ldr r1, _0803A0BC @ =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _0803A0C0 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A0C4 @ =dp01t_0F_4_move_anim
- str r1, [r0]
-_0803A0B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A0BC: .4byte gDoingBattleAnim
-_0803A0C0: .4byte gBattleBankFunc
-_0803A0C4: .4byte dp01t_0F_4_move_anim
- thumb_func_end dp01t_29_4_blink
-
- thumb_func_start sub_803A0C8
-sub_803A0C8: @ 803A0C8
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A0C8
-
- thumb_func_start sub_803A0D4
-sub_803A0D4: @ 803A0D4
- push {r4,lr}
- ldr r4, _0803A110 @ =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _0803A0E8
- movs r3, 0xC0
-_0803A0E8:
- ldr r2, _0803A114 @ =gBattleBufferA
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl4_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A110: .4byte gActiveBank
-_0803A114: .4byte gBattleBufferA
- thumb_func_end sub_803A0D4
-
- thumb_func_start sub_803A118
-sub_803A118: @ 803A118
- push {lr}
- ldr r2, _0803A140 @ =gBattleBufferA
- ldr r0, _0803A144 @ =gActiveBank
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A140: .4byte gBattleBufferA
-_0803A144: .4byte gActiveBank
- thumb_func_end sub_803A118
-
- thumb_func_start sub_803A148
-sub_803A148: @ 803A148
- push {lr}
- ldr r1, _0803A178 @ =gBattlePartyID
- ldr r0, _0803A17C @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803A180 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- movs r2, 0x5
- bl PlayCry3
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A178: .4byte gBattlePartyID
-_0803A17C: .4byte gActiveBank
-_0803A180: .4byte gEnemyParty
- thumb_func_end sub_803A148
-
- thumb_func_start dp01t_2E_4_battle_intro
-dp01t_2E_4_battle_intro: @ 803A184
- push {lr}
- ldr r1, _0803A1AC @ =gBattleBufferA
- ldr r0, _0803A1B0 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _0803A1B4 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A1AC: .4byte gBattleBufferA
-_0803A1B0: .4byte gActiveBank
-_0803A1B4: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_4_battle_intro
-
- thumb_func_start sub_803A1B8
-sub_803A1B8: @ 803A1B8
- push {r4-r6,lr}
- ldr r5, _0803A294 @ =gObjectBankIDs
- ldr r6, _0803A298 @ =gActiveBank
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0803A29C @ =gSprites
- adds r0, r4
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0803A2A0 @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0803A2A4 @ =sub_803A3A8
- bl oamt_set_x3A_32
- ldr r0, _0803A2A8 @ =sub_803A2C4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0803A2AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r6]
- strh r0, [r1, 0x8]
- ldrb r3, [r6]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _0803A2B0 @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803A276
- ldr r0, _0803A2B4 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _0803A2B8 @ =sub_8044CA0
- str r1, [r0]
-_0803A276:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _0803A2BC @ =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A2C0 @ =nullsub_47
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A294: .4byte gObjectBankIDs
-_0803A298: .4byte gActiveBank
-_0803A29C: .4byte gSprites
-_0803A2A0: .4byte sub_8078B34
-_0803A2A4: .4byte sub_803A3A8
-_0803A2A8: .4byte sub_803A2C4
-_0803A2AC: .4byte gTasks
-_0803A2B0: .4byte 0x02017810
-_0803A2B4: .4byte gUnknown_02024E68
-_0803A2B8: .4byte sub_8044CA0
-_0803A2BC: .4byte gBattleBankFunc
-_0803A2C0: .4byte nullsub_47
- thumb_func_end sub_803A1B8
-
- thumb_func_start sub_803A2C4
-sub_803A2C4: @ 803A2C4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r7, _0803A31C @ =gActiveBank
- ldrb r0, [r7]
- mov r9, r0
- ldr r1, _0803A320 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strb r0, [r7]
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _0803A2FE
- ldr r0, _0803A324 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803A330
-_0803A2FE:
- ldr r0, _0803A328 @ =gBattleBufferA
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _0803A32C @ =gBattlePartyID
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- b _0803A370
- .align 2, 0
-_0803A31C: .4byte gActiveBank
-_0803A320: .4byte gTasks
-_0803A324: .4byte gBattleTypeFlags
-_0803A328: .4byte gBattleBufferA
-_0803A32C: .4byte gBattlePartyID
-_0803A330:
- ldr r4, _0803A394 @ =gBattleBufferA
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r6, _0803A398 @ =gBattlePartyID
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- ldrb r0, [r7]
- movs r5, 0x2
- eors r0, r5
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- ldrb r0, [r7]
- eors r0, r5
- strb r0, [r7]
-_0803A370:
- ldr r1, _0803A39C @ =gBattleBankFunc
- ldr r2, _0803A3A0 @ =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A3A4 @ =sub_8037840
- str r1, [r0]
- mov r0, r9
- strb r0, [r2]
- mov r0, r8
- bl DestroyTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A394: .4byte gBattleBufferA
-_0803A398: .4byte gBattlePartyID
-_0803A39C: .4byte gBattleBankFunc
-_0803A3A0: .4byte gActiveBank
-_0803A3A4: .4byte sub_8037840
- thumb_func_end sub_803A2C4
-
- thumb_func_start sub_803A3A8
-sub_803A3A8: @ 803A3A8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x6]
- bl sub_8031B74
- ldrh r0, [r4, 0x38]
- ldr r1, _0803A3D4 @ =0x000003ff
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, _0803A3D8 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A3D4: .4byte 0x000003ff
-_0803A3D8: .4byte 0xfffffc00
- thumb_func_end sub_803A3A8
-
- thumb_func_start sub_803A3DC
-sub_803A3DC: @ 803A3DC
- push {r4-r6,lr}
- ldr r1, _0803A404 @ =gBattleBufferA
- ldr r0, _0803A408 @ =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803A40C
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0803A40C
- bl dp01_tbl4_exec_completed
- b _0803A4C6
- .align 2, 0
-_0803A404: .4byte gBattleBufferA
-_0803A408: .4byte gActiveBank
-_0803A40C:
- ldr r3, _0803A45C @ =gActiveBank
- ldrb r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r4, _0803A460 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _0803A464 @ =gBattleBufferA
- ldrb r2, [r3]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- cmp r0, 0
- beq _0803A470
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 26
- lsrs r0, r1, 27
- cmp r0, 0x1
- bhi _0803A468
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- b _0803A4C6
- .align 2, 0
-_0803A45C: .4byte gActiveBank
-_0803A460: .4byte 0x02017810
-_0803A464: .4byte gBattleBufferA
-_0803A468:
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- strb r0, [r3, 0x1]
-_0803A470:
- adds r5, r6, 0
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _0803A4CC @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _0803A4D0 @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0803A4D4 @ =0x02017810
- adds r0, r3
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803A4BA
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_0803A4BA:
- ldr r0, _0803A4D8 @ =gBattleBankFunc
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0803A4DC @ =sub_803A4E0
- str r0, [r1]
-_0803A4C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A4CC: .4byte gUnknown_02023A64
-_0803A4D0: .4byte gUnknown_02024E68
-_0803A4D4: .4byte 0x02017810
-_0803A4D8: .4byte gBattleBankFunc
-_0803A4DC: .4byte sub_803A4E0
- thumb_func_end sub_803A3DC
-
- thumb_func_start sub_803A4E0
-sub_803A4E0: @ 803A4E0
- push {r4,lr}
- ldr r4, _0803A518 @ =gActiveBank
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0803A51C @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _0803A510
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl dp01_tbl4_exec_completed
-_0803A510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A518: .4byte gActiveBank
-_0803A51C: .4byte 0x02017810
- thumb_func_end sub_803A4E0
-
- thumb_func_start sub_803A520
-sub_803A520: @ 803A520
- push {lr}
- ldr r0, _0803A558 @ =gActiveBank
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _0803A55C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803A54E
- ldr r2, _0803A560 @ =gTasks
- ldr r0, _0803A564 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _0803A568 @ =sub_8044CA0
- str r1, [r0]
-_0803A54E:
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A558: .4byte gActiveBank
-_0803A55C: .4byte 0x02017810
-_0803A560: .4byte gTasks
-_0803A564: .4byte gUnknown_02024E68
-_0803A568: .4byte sub_8044CA0
- thumb_func_end sub_803A520
-
- thumb_func_start sub_803A56C
-sub_803A56C: @ 803A56C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A56C
-
- thumb_func_start sub_803A578
-sub_803A578: @ 803A578
- push {r4,lr}
- ldr r4, _0803A5C8 @ =gActiveBank
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _0803A5BE
- ldr r3, _0803A5CC @ =gSprites
- ldr r0, _0803A5D0 @ =gObjectBankIDs
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _0803A5D4 @ =gBattleBufferA
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_0803A5BE:
- bl dp01_tbl4_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A5C8: .4byte gActiveBank
-_0803A5CC: .4byte gSprites
-_0803A5D0: .4byte gObjectBankIDs
-_0803A5D4: .4byte gBattleBufferA
- thumb_func_end sub_803A578
-
- thumb_func_start bx_exec_buffer_A_ch0_tbl4
-bx_exec_buffer_A_ch0_tbl4: @ 803A5D8
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _0803A61C @ =gActiveBank
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0803A630
- ldr r5, _0803A620 @ =gBattleBufferA
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _0803A624
- bl dp01_tbl4_exec_completed
- b _0803A630
- .align 2, 0
-_0803A61C: .4byte gActiveBank
-_0803A620: .4byte gBattleBufferA
-_0803A624:
- ldr r0, _0803A638 @ =gBattleBankFunc
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0803A63C @ =sub_8037FD8
- str r0, [r1]
-_0803A630:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A638: .4byte gBattleBankFunc
-_0803A63C: .4byte sub_8037FD8
- thumb_func_end bx_exec_buffer_A_ch0_tbl4
-
- thumb_func_start sub_803A640
-sub_803A640: @ 803A640
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A640
-
- thumb_func_start sub_803A64C
-sub_803A64C: @ 803A64C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A64C
-
- thumb_func_start sub_803A658
-sub_803A658: @ 803A658
- push {lr}
- ldr r1, _0803A674 @ =gBattleBufferA
- ldr r0, _0803A678 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0x3
- bne _0803A680
- ldr r0, _0803A67C @ =gBattleOutcome
- strb r2, [r0]
- b _0803A688
- .align 2, 0
-_0803A674: .4byte gBattleBufferA
-_0803A678: .4byte gActiveBank
-_0803A67C: .4byte gBattleOutcome
-_0803A680:
- ldr r0, _0803A6AC @ =gBattleOutcome
- movs r1, 0x3
- eors r1, r2
- strb r1, [r0]
-_0803A688:
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl4_exec_completed
- ldr r1, _0803A6B0 @ =gBattleBankFunc
- ldr r0, _0803A6B4 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A6B8 @ =sub_8037F34
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0803A6AC: .4byte gBattleOutcome
-_0803A6B0: .4byte gBattleBankFunc
-_0803A6B4: .4byte gActiveBank
-_0803A6B8: .4byte sub_8037F34
- thumb_func_end sub_803A658
-
- thumb_func_start nullsub_48
-nullsub_48: @ 803A6BC
- bx lr
- thumb_func_end nullsub_48
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_2.s b/asm/battle_2.s
index c1f75dad5..ed4140583 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -4092,7 +4092,7 @@ _08014522:
adds r1, r2
adds r1, 0x20
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r2, _08014568 @ =gSpecialStatuses
ldrb r1, [r4]
lsls r0, r1, 2
diff --git a/asm/battle_3.s b/asm/battle_3.s
index ffe32f27b..8f3097c3d 100644
--- a/asm/battle_3.s
+++ b/asm/battle_3.s
@@ -8590,7 +8590,7 @@ _08019F7C:
beq _08019F92
adds r1, r0, 0
mov r0, r10
- bl sub_81074C4
+ bl RecordAbilityBattle
_08019F92:
mov r0, r9
add sp, 0x28
@@ -9185,7 +9185,7 @@ _0801A4A8:
str r3, [sp, 0xC]
adds r0, r7, 0
adds r1, r5, 0
- bl sub_81074F8
+ bl RecordItemBattle
bl _0801AD5A
.align 2, 0
_0801A4C4: .4byte gBattleMoveDamage
@@ -11475,7 +11475,7 @@ _0801B7C2:
adds r0, 0x20
ldrb r1, [r0]
adds r0, r5, 0
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r1, _0801B804 @ =gSpecialStatuses
lsls r0, r5, 2
adds r0, r5
diff --git a/asm/battle_4.s b/asm/battle_4.s
index 5436d3e55..6747abc6c 100644
--- a/asm/battle_4.s
+++ b/asm/battle_4.s
@@ -291,7 +291,7 @@ _0801BE7E:
mov r2, r8
ldrb r0, [r2]
ldrb r1, [r4]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801BFF4
.align 2, 0
_0801BEB8: .4byte gNoOfAllBanks
@@ -1812,8 +1812,8 @@ _0801CAF0: .4byte gProtectStructs
_0801CAF4: .4byte gBattlescriptCurrInstr
thumb_func_end atk05_damagecalc1
- thumb_func_start sub_801CAF8
-sub_801CAF8: @ 801CAF8
+ thumb_func_start AI_CalcDmg
+AI_CalcDmg: @ 801CAF8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -1923,7 +1923,7 @@ _0801CBDC: .4byte 0x0001601f
_0801CBE0: .4byte gStatuses3
_0801CBE4: .4byte gBattleMoves
_0801CBE8: .4byte gProtectStructs
- thumb_func_end sub_801CAF8
+ thumb_func_end AI_CalcDmg
thumb_func_start battle_attack_damage_modulate_by_effectivity
battle_attack_damage_modulate_by_effectivity: @ 801CBEC
@@ -2143,7 +2143,7 @@ _0801CD44:
strb r2, [r0, 0x6]
ldrb r0, [r4]
ldrb r1, [r3]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801CE58
.align 2, 0
_0801CD94: .4byte gBattleMoves
@@ -2300,7 +2300,7 @@ _0801CE94:
strb r0, [r1, 0x6]
ldrb r0, [r5]
ldrb r1, [r3]
- bl sub_81074C4
+ bl RecordAbilityBattle
_0801CED6:
ldr r0, _0801CF1C @ =gBattleMoveFlags
ldrb r1, [r0]
@@ -2412,7 +2412,7 @@ _0801CF94:
strb r1, [r0, 0x6]
ldrb r0, [r3]
movs r1, 0x1A
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801D1A4
.align 2, 0
_0801CFC8: .4byte gBattleMons
@@ -2657,7 +2657,7 @@ _0801D14E:
mov r1, r8
ldrb r0, [r1]
movs r1, 0x19
- bl sub_81074C4
+ bl RecordAbilityBattle
_0801D1A4:
pop {r3,r4}
mov r8, r3
@@ -2778,8 +2778,8 @@ _0801D27A:
bx r0
thumb_func_end b_attack_effectivity_adapt
- thumb_func_start move_effectiveness_something
-move_effectiveness_something: @ 801D280
+ thumb_func_start TypeCalc
+TypeCalc: @ 801D280
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -3020,7 +3020,7 @@ _0801D44C: .4byte gTypeEffectiveness
_0801D450: .4byte gBattleMons
_0801D454: .4byte gBankTarget
_0801D458: .4byte gBattleMoves
- thumb_func_end move_effectiveness_something
+ thumb_func_end TypeCalc
thumb_func_start ai_rate_move
ai_rate_move: @ 801D45C
@@ -3280,7 +3280,7 @@ _0801D632:
bcs _0801D670
ldrb r0, [r5]
movs r1, 0x27
- bl sub_81074F8
+ bl RecordItemBattle
ldr r2, _0801D6FC @ =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -3484,7 +3484,7 @@ _0801D7E2:
bcs _0801D820
ldrb r0, [r5]
movs r1, 0x27
- bl sub_81074F8
+ bl RecordItemBattle
ldr r2, _0801D890 @ =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -5294,7 +5294,7 @@ _0801E64A:
mov r3, r8
ldrb r0, [r3]
movs r1, 0x11
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r4, _0801E67C @ =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -5417,7 +5417,7 @@ _0801E72E:
mov r3, r8
ldrb r0, [r3]
movs r1, 0x29
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r4, _0801E750 @ =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -5608,7 +5608,7 @@ _0801E8A6:
mov r3, r8
ldrb r0, [r3]
movs r1, 0x7
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r4, _0801E8C8 @ =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -5651,7 +5651,7 @@ _0801E8FE:
mov r1, r8
ldrb r0, [r1]
movs r1, 0x11
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r4, _0801E93C @ =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -6081,7 +6081,7 @@ _0801ECF4:
mov r1, r8
ldrb r0, [r1]
movs r1, 0x27
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r1, _0801ED10 @ =gBattlescriptCurrInstr
ldr r0, _0801ED14 @ =BattleScript_FlinchPrevention
str r0, [r1]
@@ -6712,7 +6712,7 @@ _0801F214:
strb r0, [r1]
ldrb r0, [r7]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801F5FA
.align 2, 0
_0801F254: .4byte gBankAttacker
@@ -7044,7 +7044,7 @@ _0801F500:
str r0, [r1]
ldrb r0, [r5]
movs r1, 0x3C
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801F5FA
.align 2, 0
_0801F534: .4byte gLastUsedAbility
@@ -8058,7 +8058,7 @@ _0801FD5C:
ldrb r1, [r0]
adds r0, r4, 0
_0801FD80:
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r0, _0801FD98 @ =0x02000000
ldr r1, _0801FD9C @ =0x000160f8
adds r0, r1
@@ -12829,7 +12829,7 @@ atk4A_damageflags: @ 80222DC
strb r2, [r0, 0x6]
ldrb r0, [r7]
ldrb r1, [r3]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08022452
.align 2, 0
_08022340: .4byte gBattleMoves
@@ -13030,7 +13030,7 @@ _08022494:
strb r0, [r1, 0x6]
ldrb r0, [r2]
ldrb r1, [r3]
- bl sub_81074C4
+ bl RecordAbilityBattle
_080224CE:
ldr r0, _08022518 @ =gBattleMoveFlags
ldrb r1, [r0]
@@ -13310,7 +13310,7 @@ _080226EA:
ldr r1, [sp, 0x50]
str r1, [r0]
_08022710:
- bl sub_8010B88
+ bl SwitchInClearStructs
ldr r0, _08022778 @ =0x02000000
ldr r3, _08022754 @ =gActiveBank
ldrb r2, [r3]
@@ -17237,7 +17237,7 @@ _08024726:
bcs _08024764
ldrb r0, [r5]
movs r1, 0x27
- bl sub_81074F8
+ bl RecordItemBattle
ldr r2, _080247F0 @ =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -17919,7 +17919,7 @@ atk70_record_ability_usage_of_side: @ 8024CB8
ldrb r0, [r1]
ldr r1, _08024CE8 @ =gLastUsedAbility
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r0, [r4]
adds r0, 0x1
str r0, [r4]
@@ -18739,7 +18739,7 @@ _08025354:
adds r1, r6
adds r1, 0x20
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r1, _08025380 @ =gBattlescriptCurrInstr
ldr r0, _08025384 @ =gUnknown_081D9834
str r0, [r1]
@@ -19746,7 +19746,7 @@ _08025B2C:
str r4, [r5]
ldrb r1, [r2]
adds r0, r3, 0
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08025B56
.align 2, 0
_08025B44: .4byte gBattleMons
@@ -20345,7 +20345,7 @@ _08025FE0:
strb r0, [r1]
ldrb r0, [r2]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r0, _0802602C @ =gActiveBank
ldrb r1, [r0]
lsls r0, r1, 2
@@ -20401,7 +20401,7 @@ _08026040:
strb r0, [r1]
ldrb r0, [r3]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08025F74
.align 2, 0
_08026090: .4byte gActiveBank
@@ -20449,7 +20449,7 @@ _080260CA:
strb r0, [r1]
ldrb r0, [r3]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08025F74
.align 2, 0
_080260FC: .4byte gActiveBank
@@ -21840,7 +21840,7 @@ _08026BCE:
bcs _08026C0C
ldrb r0, [r5]
movs r1, 0x27
- bl sub_81074F8
+ bl RecordItemBattle
ldr r2, _08026C54 @ =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -21880,7 +21880,7 @@ _08026C0C:
ldr r1, _08026C50 @ =gBankTarget
ldrb r0, [r1]
movs r1, 0x5
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08026E40
.align 2, 0
_08026C4C: .4byte gStringBank
@@ -22497,7 +22497,7 @@ _080270F0:
strb r2, [r0]
ldrb r0, [r5]
movs r1, 0xC
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0802721C
.align 2, 0
_0802714C: .4byte gBattlePartyID
@@ -25469,7 +25469,7 @@ _080288C0: .4byte gBattleMons
_080288C4:
ldrb r1, [r1]
adds r0, r3, 0
- bl sub_81074C4
+ bl RecordAbilityBattle
ldrb r0, [r5, 0x5]
movs r1, 0x1
orrs r0, r1
@@ -25532,7 +25532,7 @@ _08028950: .4byte gBattleMons
_08028954:
ldrb r1, [r1]
adds r0, r3, 0
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r1, _080289AC @ =gBattleCommunication
ldrb r0, [r1, 0x5]
orrs r0, r6
@@ -28815,7 +28815,7 @@ _0802A334:
strb r0, [r1]
ldrb r0, [r7]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0802A49A
.align 2, 0
_0802A360: .4byte gBattlescriptCurrInstr
diff --git a/asm/battle_9.s b/asm/battle_9.s
index 887fbd702..fffb56dc9 100644
--- a/asm/battle_9.s
+++ b/asm/battle_9.s
@@ -1847,7 +1847,7 @@ _08036EA4:
ldrb r1, [r0]
adds r0, r4, 0
mov r2, r10
- bl move_effectiveness_something
+ bl TypeCalc
movs r1, 0x2
ands r1, r0
cmp r1, 0
@@ -1976,11 +1976,11 @@ _08036F90:
beq _08036FCC
ldrb r0, [r6]
mov r1, r10
- bl sub_801CAF8
+ bl AI_CalcDmg
ldrb r1, [r6]
adds r0, r4, 0
mov r2, r10
- bl move_effectiveness_something
+ bl TypeCalc
_08036FCC:
mov r2, r8
ldr r0, [r2]
diff --git a/asm/field_specials.s b/asm/field_specials.s
deleted file mode 100644
index 8523e540b..000000000
--- a/asm/field_specials.s
+++ /dev/null
@@ -1,4934 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start SetSSTidalFlag
-SetSSTidalFlag: @ 810D980
- push {lr}
- ldr r0, _0810D998 @ =0x0000082d
- bl FlagSet
- ldr r0, _0810D99C @ =0x0000404a
- bl GetVarPointer
- movs r1, 0
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0810D998: .4byte 0x0000082d
-_0810D99C: .4byte 0x0000404a
- thumb_func_end SetSSTidalFlag
-
- thumb_func_start ResetSSTidalFlag
-ResetSSTidalFlag: @ 810D9A0
- push {lr}
- ldr r0, _0810D9AC @ =0x0000082d
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_0810D9AC: .4byte 0x0000082d
- thumb_func_end ResetSSTidalFlag
-
- thumb_func_start CountSSTidalStep
-CountSSTidalStep: @ 810D9B0
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0810D9DC @ =0x0000082d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810D9D6
- ldr r0, _0810D9E0 @ =0x0000404a
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, r4, r1
- strh r1, [r0]
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0xCC
- bhi _0810D9E4
-_0810D9D6:
- movs r0, 0
- b _0810D9E6
- .align 2, 0
-_0810D9DC: .4byte 0x0000082d
-_0810D9E0: .4byte 0x0000404a
-_0810D9E4:
- movs r0, 0x1
-_0810D9E6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CountSSTidalStep
-
- thumb_func_start GetSSTidalLocation
-GetSSTidalLocation: @ 810D9EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r5, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- ldr r0, _0810DA1C @ =0x0000404a
- bl GetVarPointer
- adds r4, r0, 0
- ldr r0, _0810DA20 @ =0x000040b4
- bl GetVarPointer
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x9
- bhi _0810DAB2
- lsls r0, 2
- ldr r1, _0810DA24 @ =_0810DA28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DA1C: .4byte 0x0000404a
-_0810DA20: .4byte 0x000040b4
-_0810DA24: .4byte _0810DA28
- .align 2, 0
-_0810DA28:
- .4byte _0810DA50
- .4byte _0810DA60
- .4byte _0810DA54
- .4byte _0810DA58
- .4byte _0810DA58
- .4byte _0810DA5C
- .4byte _0810DA88
- .4byte _0810DA50
- .4byte _0810DA54
- .4byte _0810DA5C
-_0810DA50:
- movs r0, 0x1
- b _0810DABE
-_0810DA54:
- movs r0, 0x4
- b _0810DABE
-_0810DA58:
- movs r0, 0x2
- b _0810DABE
-_0810DA5C:
- movs r0, 0x3
- b _0810DABE
-_0810DA60:
- ldrh r0, [r4]
- cmp r0, 0x3B
- bhi _0810DA70
- movs r0, 0x31
- strb r0, [r5]
- ldrh r0, [r4]
- adds r0, 0x13
- b _0810DAB0
-_0810DA70:
- cmp r0, 0x8B
- bhi _0810DA7E
- movs r0, 0x30
- strb r0, [r5]
- ldrh r0, [r4]
- subs r0, 0x3C
- b _0810DAB0
-_0810DA7E:
- movs r0, 0x2F
- strb r0, [r5]
- ldrh r0, [r4]
- subs r0, 0x8C
- b _0810DAB0
-_0810DA88:
- ldrh r0, [r4]
- cmp r0, 0x41
- bhi _0810DA98
- movs r0, 0x2F
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0x41
- b _0810DAAE
-_0810DA98:
- cmp r0, 0x91
- bhi _0810DAA6
- movs r0, 0x30
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0x91
- b _0810DAAE
-_0810DAA6:
- movs r0, 0x31
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0xE0
-_0810DAAE:
- subs r0, r1
-_0810DAB0:
- strh r0, [r6]
-_0810DAB2:
- movs r0, 0
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x14
- strh r0, [r7]
- movs r0, 0
-_0810DABE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetSSTidalLocation
-
- thumb_func_start GetLinkPartnerNames
-GetLinkPartnerNames: @ 810DAC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- bl sub_8008218
- lsls r0, 24
- lsrs r7, r0, 24
- bl sub_800820C
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _0810DB12
- ldr r0, _0810DB20 @ =gUnknown_083D1464
- mov r8, r0
-_0810DAEA:
- cmp r7, r4
- beq _0810DB08
- lsls r0, r6, 2
- add r0, r8
- ldr r0, [r0]
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r2, _0810DB24 @ =gLinkPlayers + 0x8
- adds r1, r2
- bl StringCopy
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0810DB08:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _0810DAEA
-_0810DB12:
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810DB20: .4byte gUnknown_083D1464
-_0810DB24: .4byte gLinkPlayers + 0x8
- thumb_func_end GetLinkPartnerNames
-
- thumb_func_start SpawnBerryBlenderLinkPlayerSprites
-SpawnBerryBlenderLinkPlayerSprites: @ 810DB28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r7, 0
- movs r0, 0
- mov r9, r0
- mov r8, r0
- ldr r1, _0810DB74 @ =gUnknown_083F8358
- add r0, sp, 0x8
- movs r2, 0x4
- bl memcpy
- add r4, sp, 0xC
- ldr r1, _0810DB78 @ =gUnknown_083F835C
- adds r0, r4, 0
- movs r2, 0x8
- bl memcpy
- bl sub_8008218
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x2
- beq _0810DB94
- cmp r0, 0x2
- bgt _0810DB7C
- cmp r0, 0x1
- beq _0810DBC0
- b _0810DBD2
- .align 2, 0
-_0810DB74: .4byte gUnknown_083F8358
-_0810DB78: .4byte gUnknown_083F835C
-_0810DB7C:
- cmp r1, 0x3
- beq _0810DB86
- cmp r1, 0x4
- beq _0810DBA8
- b _0810DBD2
-_0810DB86:
- movs r7, 0x2
- ldr r1, _0810DB90 @ =gSaveBlock1
- ldrh r0, [r1]
- subs r0, 0x1
- b _0810DBAE
- .align 2, 0
-_0810DB90: .4byte gSaveBlock1
-_0810DB94:
- movs r7, 0x1
- ldr r0, _0810DBA4 @ =gSaveBlock1
- ldrh r1, [r0]
- mov r9, r1
- ldrh r0, [r0, 0x2]
- subs r0, 0x1
- b _0810DBCC
- .align 2, 0
-_0810DBA4: .4byte gSaveBlock1
-_0810DBA8:
- ldr r1, _0810DBBC @ =gSaveBlock1
- ldrh r0, [r1]
- adds r0, 0x1
-_0810DBAE:
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldrh r1, [r1, 0x2]
- mov r8, r1
- b _0810DBD2
- .align 2, 0
-_0810DBBC: .4byte gSaveBlock1
-_0810DBC0:
- movs r7, 0x3
- ldr r0, _0810DBD8 @ =gSaveBlock1
- ldrh r4, [r0]
- mov r9, r4
- ldrh r0, [r0, 0x2]
- adds r0, 0x1
-_0810DBCC:
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0810DBD2:
- movs r6, 0
- b _0810DC5C
- .align 2, 0
-_0810DBD8: .4byte gSaveBlock1
-_0810DBDC:
- cmp r10, r6
- beq _0810DC56
- ldr r1, _0810DC74 @ =gLinkPlayers
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x13]
- movs r0, 0
- bl GetRivalAvatarGraphicsIdByStateIdAndGender
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- adds r1, r7
- adds r1, 0x8
- ldrb r1, [r1]
- movs r2, 0xF0
- subs r2, r6
- lsls r2, 24
- lsrs r2, 24
- lsls r5, r7, 1
- mov r3, sp
- adds r3, r5
- adds r3, 0xC
- ldrb r3, [r3]
- lsls r3, 24
- asrs r3, 24
- mov r12, r3
- mov r4, r9
- lsls r3, r4, 16
- asrs r3, 16
- add r3, r12
- adds r3, 0x7
- lsls r3, 16
- asrs r3, 16
- mov r4, sp
- adds r4, 0xD
- adds r4, r5
- ldrb r4, [r4]
- lsls r4, 24
- asrs r4, 24
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 16
- asrs r4, 16
- add r4, r12
- adds r4, 0x7
- lsls r4, 16
- asrs r4, 16
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- bl SpawnSpecialFieldObjectParametrized
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x4
- bne _0810DC56
- movs r7, 0
-_0810DC56:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0810DC5C:
- ldr r0, _0810DC78 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r6, r0
- bcc _0810DBDC
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DC74: .4byte gLinkPlayers
-_0810DC78: .4byte gSpecialVar_0x8004
- thumb_func_end SpawnBerryBlenderLinkPlayerSprites
-
- thumb_func_start MauvilleGymSpecial1
-MauvilleGymSpecial1: @ 810DC7C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0810DC9C @ =gUnknown_083F8364
-_0810DC82:
- ldr r0, _0810DCA0 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r4, r0
- bne _0810DCA8
- lsls r1, r4, 2
- adds r1, r5
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- ldr r2, _0810DCA4 @ =0x00000206
- bl MapGridSetMetatileIdAt
- b _0810DCB6
- .align 2, 0
-_0810DC9C: .4byte gUnknown_083F8364
-_0810DCA0: .4byte gSpecialVar_0x8004
-_0810DCA4: .4byte 0x00000206
-_0810DCA8:
- lsls r1, r4, 2
- adds r1, r5
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- ldr r2, _0810DCC8 @ =0x00000205
- bl MapGridSetMetatileIdAt
-_0810DCB6:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0810DC82
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DCC8: .4byte 0x00000205
- thumb_func_end MauvilleGymSpecial1
-
- thumb_func_start MauvilleGymSpecial2
-MauvilleGymSpecial2: @ 810DCCC
- push {r4-r6,lr}
- movs r5, 0xC
-_0810DCD0:
- movs r4, 0x7
- adds r6, r5, 0x1
-_0810DCD4:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0810DCF0 @ =0xfffffde6
- adds r0, r1
- cmp r0, 0x37
- bls _0810DCE6
- b _0810DEC0
-_0810DCE6:
- lsls r0, 2
- ldr r1, _0810DCF4 @ =_0810DCF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DCF0: .4byte 0xfffffde6
-_0810DCF4: .4byte _0810DCF8
- .align 2, 0
-_0810DCF8:
- .4byte _0810DE7E
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDD8
- .4byte _0810DDDE
- .4byte _0810DE18
- .4byte _0810DE20
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDE8
- .4byte _0810DDEE
- .4byte _0810DE28
- .4byte _0810DE30
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDF8
- .4byte _0810DDFE
- .4byte _0810DE38
- .4byte _0810DE40
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE08
- .4byte _0810DE10
- .4byte _0810DE48
- .4byte _0810DE50
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE58
- .4byte _0810DE68
- .4byte _0810DE78
- .4byte _0810DEA0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE60
- .4byte _0810DE70
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEB6
- .4byte _0810DEA8
-_0810DDD8:
- movs r2, 0x8C
- lsls r2, 2
- b _0810DEAC
-_0810DDDE:
- ldr r2, _0810DDE4 @ =0x00000231
- b _0810DEAC
- .align 2, 0
-_0810DDE4: .4byte 0x00000231
-_0810DDE8:
- movs r2, 0x8E
- lsls r2, 2
- b _0810DEAC
-_0810DDEE:
- ldr r2, _0810DDF4 @ =0x00000239
- b _0810DEAC
- .align 2, 0
-_0810DDF4: .4byte 0x00000239
-_0810DDF8:
- movs r2, 0x88
- lsls r2, 2
- b _0810DEAC
-_0810DDFE:
- ldr r2, _0810DE04 @ =0x00000221
- b _0810DEAC
- .align 2, 0
-_0810DE04: .4byte 0x00000221
-_0810DE08:
- ldr r2, _0810DE0C @ =0x00000e28
- b _0810DEAC
- .align 2, 0
-_0810DE0C: .4byte 0x00000e28
-_0810DE10:
- ldr r2, _0810DE14 @ =0x00000e29
- b _0810DEAC
- .align 2, 0
-_0810DE14: .4byte 0x00000e29
-_0810DE18:
- ldr r2, _0810DE1C @ =0x00000232
- b _0810DEAC
- .align 2, 0
-_0810DE1C: .4byte 0x00000232
-_0810DE20:
- ldr r2, _0810DE24 @ =0x00000233
- b _0810DEAC
- .align 2, 0
-_0810DE24: .4byte 0x00000233
-_0810DE28:
- ldr r2, _0810DE2C @ =0x0000023a
- b _0810DEAC
- .align 2, 0
-_0810DE2C: .4byte 0x0000023a
-_0810DE30:
- ldr r2, _0810DE34 @ =0x0000023b
- b _0810DEAC
- .align 2, 0
-_0810DE34: .4byte 0x0000023b
-_0810DE38:
- ldr r2, _0810DE3C @ =0x00000222
- b _0810DEAC
- .align 2, 0
-_0810DE3C: .4byte 0x00000222
-_0810DE40:
- ldr r2, _0810DE44 @ =0x00000223
- b _0810DEAC
- .align 2, 0
-_0810DE44: .4byte 0x00000223
-_0810DE48:
- ldr r2, _0810DE4C @ =0x00000e2a
- b _0810DEAC
- .align 2, 0
-_0810DE4C: .4byte 0x00000e2a
-_0810DE50:
- ldr r2, _0810DE54 @ =0x00000e2b
- b _0810DEAC
- .align 2, 0
-_0810DE54: .4byte 0x00000e2b
-_0810DE58:
- ldr r2, _0810DE5C @ =0x00000e42
- b _0810DEAC
- .align 2, 0
-_0810DE5C: .4byte 0x00000e42
-_0810DE60:
- ldr r2, _0810DE64 @ =0x0000021a
- b _0810DEAC
- .align 2, 0
-_0810DE64: .4byte 0x0000021a
-_0810DE68:
- ldr r2, _0810DE6C @ =0x00000e43
- b _0810DEAC
- .align 2, 0
-_0810DE6C: .4byte 0x00000e43
-_0810DE70:
- ldr r2, _0810DE74 @ =0x0000021a
- b _0810DEAC
- .align 2, 0
-_0810DE74: .4byte 0x0000021a
-_0810DE78:
- movs r2, 0xE4
- lsls r2, 4
- b _0810DEAC
-_0810DE7E:
- subs r1, r5, 0x1
- adds r0, r4, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x90
- lsls r1, 2
- cmp r0, r1
- bne _0810DE98
- ldr r2, _0810DE94 @ =0x00000e48
- b _0810DEAC
- .align 2, 0
-_0810DE94: .4byte 0x00000e48
-_0810DE98:
- ldr r2, _0810DE9C @ =0x00000e49
- b _0810DEAC
- .align 2, 0
-_0810DE9C: .4byte 0x00000e49
-_0810DEA0:
- ldr r2, _0810DEA4 @ =0x00000e41
- b _0810DEAC
- .align 2, 0
-_0810DEA4: .4byte 0x00000e41
-_0810DEA8:
- movs r2, 0xE5
- lsls r2, 4
-_0810DEAC:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0810DEC0
-_0810DEB6:
- ldr r2, _0810DED8 @ =0x00000251
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0810DEC0:
- adds r4, 0x1
- cmp r4, 0xF
- bgt _0810DEC8
- b _0810DCD4
-_0810DEC8:
- adds r5, r6, 0
- cmp r5, 0x17
- bgt _0810DED0
- b _0810DCD0
-_0810DED0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DED8: .4byte 0x00000251
- thumb_func_end MauvilleGymSpecial2
-
- thumb_func_start MauvilleGymSpecial3
-MauvilleGymSpecial3: @ 810DEDC
- push {r4-r6,lr}
- ldr r4, _0810DF18 @ =gUnknown_083F8364
- movs r5, 0x2
-_0810DEE2:
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- ldr r2, _0810DF1C @ =0x00000206
- bl MapGridSetMetatileIdAt
- adds r4, 0x4
- subs r5, 0x1
- cmp r5, 0
- bge _0810DEE2
- movs r5, 0xC
-_0810DEF6:
- movs r4, 0x7
- adds r6, r5, 0x1
-_0810DEFA:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0810DF20 @ =0xfffffde0
- adds r0, r1
- cmp r0, 0x30
- bls _0810DF0C
- b _0810E056
-_0810DF0C:
- lsls r0, 2
- ldr r1, _0810DF24 @ =_0810DF28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DF18: .4byte gUnknown_083F8364
-_0810DF1C: .4byte 0x00000206
-_0810DF20: .4byte 0xfffffde0
-_0810DF24: .4byte _0810DF28
- .align 2, 0
-_0810DF28:
- .4byte _0810DFEC
- .4byte _0810DFF2
- .4byte _0810E00C
- .4byte _0810E014
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810DFFC
- .4byte _0810E002
- .4byte _0810E01C
- .4byte _0810E024
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E02C
- .4byte _0810E034
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E03C
- .4byte _0810E03C
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E04C
-_0810DFEC:
- movs r2, 0x8C
- lsls r2, 2
- b _0810E03E
-_0810DFF2:
- ldr r2, _0810DFF8 @ =0x00000231
- b _0810E03E
- .align 2, 0
-_0810DFF8: .4byte 0x00000231
-_0810DFFC:
- movs r2, 0x8E
- lsls r2, 2
- b _0810E03E
-_0810E002:
- ldr r2, _0810E008 @ =0x00000239
- b _0810E03E
- .align 2, 0
-_0810E008: .4byte 0x00000239
-_0810E00C:
- ldr r2, _0810E010 @ =0x00000232
- b _0810E03E
- .align 2, 0
-_0810E010: .4byte 0x00000232
-_0810E014:
- ldr r2, _0810E018 @ =0x00000233
- b _0810E03E
- .align 2, 0
-_0810E018: .4byte 0x00000233
-_0810E01C:
- ldr r2, _0810E020 @ =0x0000023a
- b _0810E03E
- .align 2, 0
-_0810E020: .4byte 0x0000023a
-_0810E024:
- ldr r2, _0810E028 @ =0x0000023b
- b _0810E03E
- .align 2, 0
-_0810E028: .4byte 0x0000023b
-_0810E02C:
- ldr r2, _0810E030 @ =0x00000e42
- b _0810E03E
- .align 2, 0
-_0810E030: .4byte 0x00000e42
-_0810E034:
- ldr r2, _0810E038 @ =0x00000e43
- b _0810E03E
- .align 2, 0
-_0810E038: .4byte 0x00000e43
-_0810E03C:
- ldr r2, _0810E048 @ =0x0000021a
-_0810E03E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0810E056
- .align 2, 0
-_0810E048: .4byte 0x0000021a
-_0810E04C:
- ldr r2, _0810E06C @ =0x00000251
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0810E056:
- adds r4, 0x1
- cmp r4, 0xF
- bgt _0810E05E
- b _0810DEFA
-_0810E05E:
- adds r5, r6, 0
- cmp r5, 0x17
- bgt _0810E066
- b _0810DEF6
-_0810E066:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E06C: .4byte 0x00000251
- thumb_func_end MauvilleGymSpecial3
-
- thumb_func_start PetalburgGymSpecial1
-PetalburgGymSpecial1: @ 810E070
- push {lr}
- ldr r0, _0810E090 @ =gUnknown_02039258
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0810E094 @ =gUnknown_02039259
- strb r1, [r0]
- movs r0, 0x2C
- bl PlaySE
- ldr r0, _0810E098 @ =Task_PetalburgGym
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810E090: .4byte gUnknown_02039258
-_0810E094: .4byte gUnknown_02039259
-_0810E098: .4byte Task_PetalburgGym
- thumb_func_end PetalburgGymSpecial1
-
- thumb_func_start Task_PetalburgGym
-Task_PetalburgGym: @ 810E09C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0810E0E4 @ =gUnknown_083F8370
- ldr r5, _0810E0E8 @ =gUnknown_02039259
- ldrb r1, [r5]
- adds r0, r1, r0
- ldr r4, _0810E0EC @ =gUnknown_02039258
- ldrb r2, [r4]
- ldrb r0, [r0]
- cmp r0, r2
- bne _0810E0F8
- ldr r0, _0810E0F0 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- ldr r2, _0810E0F4 @ =gUnknown_083F8376
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- bl PetalburgGymFunc
- movs r0, 0
- strb r0, [r4]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _0810E0FC
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- b _0810E0FC
- .align 2, 0
-_0810E0E4: .4byte gUnknown_083F8370
-_0810E0E8: .4byte gUnknown_02039259
-_0810E0EC: .4byte gUnknown_02039258
-_0810E0F0: .4byte gSpecialVar_0x8004
-_0810E0F4: .4byte gUnknown_083F8376
-_0810E0F8:
- adds r0, r2, 0x1
- strb r0, [r4]
-_0810E0FC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end Task_PetalburgGym
-
- thumb_func_start PetalburgGymFunc
-PetalburgGymFunc: @ 810E104
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r2, r1, 16
- movs r7, 0
- subs r0, 0x1
- cmp r0, 0x7
- bhi _0810E1CC
- lsls r0, 2
- ldr r1, _0810E128 @ =_0810E12C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810E128: .4byte _0810E12C
- .align 2, 0
-_0810E12C:
- .4byte _0810E14C
- .4byte _0810E15E
- .4byte _0810E170
- .4byte _0810E182
- .4byte _0810E190
- .4byte _0810E1A6
- .4byte _0810E1B2
- .4byte _0810E1C0
-_0810E14C:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x68
- b _0810E1A0
-_0810E15E:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x4E
- b _0810E1A0
-_0810E170:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x5B
- b _0810E1A0
-_0810E182:
- movs r7, 0x1
- mov r1, sp
- movs r0, 0x7
- strh r0, [r1]
- add r1, sp, 0x8
- movs r0, 0x27
- b _0810E1CA
-_0810E190:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x34
-_0810E1A0:
- strh r0, [r1]
- strh r0, [r1, 0x2]
- b _0810E1CC
-_0810E1A6:
- movs r7, 0x1
- mov r0, sp
- strh r7, [r0]
- add r1, sp, 0x8
- movs r0, 0x41
- b _0810E1CA
-_0810E1B2:
- movs r7, 0x1
- mov r1, sp
- movs r0, 0x7
- strh r0, [r1]
- add r1, sp, 0x8
- movs r0, 0xD
- b _0810E1CA
-_0810E1C0:
- movs r7, 0x1
- mov r0, sp
- strh r7, [r0]
- add r1, sp, 0x8
- movs r0, 0x1A
-_0810E1CA:
- strh r0, [r1]
-_0810E1CC:
- movs r6, 0
- cmp r6, r7
- bcs _0810E21E
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1, 0
- adds r1, r2, 0
- orrs r1, r0
- lsls r1, 16
- mov r9, r1
- adds r1, r2, 0
- adds r1, 0x8
- orrs r1, r0
- lsls r1, 16
- mov r8, r1
-_0810E1EA:
- lsls r1, r6, 1
- mov r3, sp
- adds r5, r3, r1
- ldrh r0, [r5]
- adds r0, 0x7
- add r4, sp, 0x8
- adds r4, r1
- ldrh r1, [r4]
- adds r1, 0x7
- mov r3, r9
- lsrs r2, r3, 16
- bl MapGridSetMetatileIdAt
- ldrh r0, [r5]
- adds r0, 0x7
- ldrh r1, [r4]
- adds r1, 0x8
- mov r3, r8
- lsrs r2, r3, 16
- bl MapGridSetMetatileIdAt
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r7
- bcc _0810E1EA
-_0810E21E:
- bl DrawWholeMapView
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PetalburgGymFunc
-
- thumb_func_start PetalburgGymSpecial2
-PetalburgGymSpecial2: @ 810E230
- push {lr}
- ldr r0, _0810E244 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- ldr r1, _0810E248 @ =gUnknown_083F8376
- ldrh r1, [r1, 0x8]
- bl PetalburgGymFunc
- pop {r0}
- bx r0
- .align 2, 0
-_0810E244: .4byte gSpecialVar_0x8004
-_0810E248: .4byte gUnknown_083F8376
- thumb_func_end PetalburgGymSpecial2
-
- thumb_func_start ShowFieldMessageStringVar4
-ShowFieldMessageStringVar4: @ 810E24C
- push {lr}
- ldr r0, _0810E258 @ =gStringVar4
- bl ShowFieldMessage
- pop {r0}
- bx r0
- .align 2, 0
-_0810E258: .4byte gStringVar4
- thumb_func_end ShowFieldMessageStringVar4
-
- thumb_func_start StorePlayerCoordsInVars
-StorePlayerCoordsInVars: @ 810E25C
- ldr r1, _0810E26C @ =gSpecialVar_0x8004
- ldr r2, _0810E270 @ =gSaveBlock1
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r1, _0810E274 @ =gSpecialVar_0x8005
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0810E26C: .4byte gSpecialVar_0x8004
-_0810E270: .4byte gSaveBlock1
-_0810E274: .4byte gSpecialVar_0x8005
- thumb_func_end StorePlayerCoordsInVars
-
- thumb_func_start GetPlayerTrainerIdOnesDigit
-GetPlayerTrainerIdOnesDigit: @ 810E278
- push {lr}
- ldr r0, _0810E294 @ =gSaveBlock2
- ldrb r1, [r0, 0xB]
- lsls r1, 8
- ldrb r0, [r0, 0xA]
- orrs r0, r1
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810E294: .4byte gSaveBlock2
- thumb_func_end GetPlayerTrainerIdOnesDigit
-
- thumb_func_start GetPlayerBigGuyGirlString
-GetPlayerBigGuyGirlString: @ 810E298
- push {lr}
- ldr r0, _0810E2AC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810E2B8
- ldr r0, _0810E2B0 @ =gStringVar1
- ldr r1, _0810E2B4 @ =gOtherText_BigGuy
- bl StringCopy
- b _0810E2C0
- .align 2, 0
-_0810E2AC: .4byte gSaveBlock2
-_0810E2B0: .4byte gStringVar1
-_0810E2B4: .4byte gOtherText_BigGuy
-_0810E2B8:
- ldr r0, _0810E2C4 @ =gStringVar1
- ldr r1, _0810E2C8 @ =gOtherText_BigGirl
- bl StringCopy
-_0810E2C0:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E2C4: .4byte gStringVar1
-_0810E2C8: .4byte gOtherText_BigGirl
- thumb_func_end GetPlayerBigGuyGirlString
-
- thumb_func_start GetRivalSonDaughterString
-GetRivalSonDaughterString: @ 810E2CC
- push {lr}
- ldr r0, _0810E2E0 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810E2EC
- ldr r0, _0810E2E4 @ =gStringVar1
- ldr r1, _0810E2E8 @ =gOtherText_Daughter
- bl StringCopy
- b _0810E2F4
- .align 2, 0
-_0810E2E0: .4byte gSaveBlock2
-_0810E2E4: .4byte gStringVar1
-_0810E2E8: .4byte gOtherText_Daughter
-_0810E2EC:
- ldr r0, _0810E2F8 @ =gStringVar1
- ldr r1, _0810E2FC @ =gOtherText_Son
- bl StringCopy
-_0810E2F4:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E2F8: .4byte gStringVar1
-_0810E2FC: .4byte gOtherText_Son
- thumb_func_end GetRivalSonDaughterString
-
- thumb_func_start sub_810E300
-sub_810E300: @ 810E300
- ldr r0, _0810E308 @ =gBattleOutcome
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0810E308: .4byte gBattleOutcome
- thumb_func_end sub_810E300
-
- thumb_func_start CableCarWarp
-CableCarWarp: @ 810E30C
- push {lr}
- sub sp, 0x4
- ldr r0, _0810E32C @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- beq _0810E330
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x4
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r3, 0x6
- bl warp1_set
- b _0810E342
- .align 2, 0
-_0810E32C: .4byte gSpecialVar_0x8004
-_0810E330:
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x4
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0x1
- movs r3, 0x6
- bl warp1_set
-_0810E342:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end CableCarWarp
-
- thumb_func_start SetFlagInVar
-SetFlagInVar: @ 810E348
- push {lr}
- ldr r0, _0810E358 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810E358: .4byte gSpecialVar_0x8004
- thumb_func_end SetFlagInVar
-
- thumb_func_start GetWeekCount
-GetWeekCount: @ 810E35C
- push {lr}
- ldr r0, _0810E37C @ =gLocalTime
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x7
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0810E380 @ =0x0000270f
- cmp r0, r1
- bls _0810E376
- adds r0, r1, 0
-_0810E376:
- pop {r1}
- bx r1
- .align 2, 0
-_0810E37C: .4byte gLocalTime
-_0810E380: .4byte 0x0000270f
- thumb_func_end GetWeekCount
-
- thumb_func_start GetLeadMonFriendshipScore
-GetLeadMonFriendshipScore: @ 810E384
- push {r4,lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _0810E3A8 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xFF
- bne _0810E3AC
- movs r0, 0x6
- b _0810E3FE
- .align 2, 0
-_0810E3A8: .4byte gPlayerParty
-_0810E3AC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xC7
- bls _0810E3BC
- movs r0, 0x5
- b _0810E3FE
-_0810E3BC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x95
- bls _0810E3CC
- movs r0, 0x4
- b _0810E3FE
-_0810E3CC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x63
- bls _0810E3DC
- movs r0, 0x3
- b _0810E3FE
-_0810E3DC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x31
- bls _0810E3EC
- movs r0, 0x2
- b _0810E3FE
-_0810E3EC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0
- bne _0810E3FC
- movs r0, 0
- b _0810E3FE
-_0810E3FC:
- movs r0, 0x1
-_0810E3FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonFriendshipScore
-
- thumb_func_start CB2_FieldShowRegionMap
-CB2_FieldShowRegionMap: @ 810E404
- push {lr}
- ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl FieldInitRegionMap
- pop {r0}
- bx r0
- .align 2, 0
-_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end CB2_FieldShowRegionMap
-
- thumb_func_start FieldShowRegionMap
-FieldShowRegionMap: @ 810E414
- push {lr}
- ldr r0, _0810E420 @ =CB2_FieldShowRegionMap
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810E420: .4byte CB2_FieldShowRegionMap
- thumb_func_end FieldShowRegionMap
-
- thumb_func_start DoPCTurnOnEffect
-DoPCTurnOnEffect: @ 810E424
- push {r4,lr}
- ldr r4, _0810E460 @ =Task_PCTurnOnEffect
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810E458
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810E464 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810E458:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E460: .4byte Task_PCTurnOnEffect
-_0810E464: .4byte gTasks
- thumb_func_end DoPCTurnOnEffect
-
- thumb_func_start Task_PCTurnOnEffect
-Task_PCTurnOnEffect: @ 810E468
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0810E48C @ =gTasks
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0810E486
- adds r0, r1, 0
- bl PCTurnOffEffect_0
-_0810E486:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E48C: .4byte gTasks
- thumb_func_end Task_PCTurnOnEffect
-
- thumb_func_start PCTurnOffEffect_0
-PCTurnOffEffect_0: @ 810E490
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r6, 0
- movs r5, 0
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bne _0810E4FC
- strh r5, [r4, 0xE]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _0810E4C4
- cmp r0, 0x3
- bgt _0810E4BA
- cmp r0, 0x2
- beq _0810E4C0
- b _0810E4CC
-_0810E4BA:
- cmp r1, 0x4
- beq _0810E4C8
- b _0810E4CC
-_0810E4C0:
- movs r6, 0
- b _0810E4CA
-_0810E4C4:
- movs r6, 0xFF
- b _0810E4CA
-_0810E4C8:
- movs r6, 0x1
-_0810E4CA:
- movs r5, 0xFF
-_0810E4CC:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- lsls r1, r6, 24
- asrs r1, 24
- lsls r2, r5, 24
- asrs r2, 24
- bl PCTurnOffEffect_1
- bl DrawWholeMapView
- ldrh r0, [r4, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0810E4FC
- ldrb r0, [r4, 0xA]
- bl DestroyTask
-_0810E4FC:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end PCTurnOffEffect_0
-
- thumb_func_start PCTurnOffEffect_1
-PCTurnOffEffect_1: @ 810E508
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r3, 0
- lsls r0, 16
- cmp r0, 0
- beq _0810E544
- ldr r0, _0810E528 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E52C
- movs r3, 0x4
- b _0810E566
- .align 2, 0
-_0810E528: .4byte gSpecialVar_0x8004
-_0810E52C:
- cmp r0, 0x1
- bne _0810E538
- ldr r3, _0810E534 @ =0x0000025a
- b _0810E566
- .align 2, 0
-_0810E534: .4byte 0x0000025a
-_0810E538:
- cmp r0, 0x2
- bne _0810E566
- ldr r3, _0810E540 @ =0x00000259
- b _0810E566
- .align 2, 0
-_0810E540: .4byte 0x00000259
-_0810E544:
- ldr r0, _0810E550 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E554
- movs r3, 0x5
- b _0810E566
- .align 2, 0
-_0810E550: .4byte gSpecialVar_0x8004
-_0810E554:
- cmp r0, 0x1
- bne _0810E560
- ldr r3, _0810E55C @ =0x0000027f
- b _0810E566
- .align 2, 0
-_0810E55C: .4byte 0x0000027f
-_0810E560:
- cmp r0, 0x2
- bne _0810E566
- ldr r3, _0810E594 @ =0x0000027e
-_0810E566:
- ldr r2, _0810E598 @ =gSaveBlock1
- movs r5, 0
- ldrsh r0, [r2, r5]
- lsls r1, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r5, 0x2
- ldrsh r1, [r2, r5]
- lsls r2, r4, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r4, 0xC0
- lsls r4, 4
- adds r2, r4, 0
- orrs r3, r2
- adds r2, r3, 0
- bl MapGridSetMetatileIdAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E594: .4byte 0x0000027e
-_0810E598: .4byte gSaveBlock1
- thumb_func_end PCTurnOffEffect_1
-
- thumb_func_start DoPCTurnOffEffect
-DoPCTurnOffEffect: @ 810E59C
- push {lr}
- bl PCTurnOffEffect
- pop {r0}
- bx r0
- thumb_func_end DoPCTurnOffEffect
-
- thumb_func_start PCTurnOffEffect
-PCTurnOffEffect: @ 810E5A8
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
- movs r4, 0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _0810E5D2
- cmp r0, 0x3
- bgt _0810E5C8
- cmp r0, 0x2
- beq _0810E5CE
- b _0810E5DA
-_0810E5C8:
- cmp r1, 0x4
- beq _0810E5D6
- b _0810E5DA
-_0810E5CE:
- movs r6, 0
- b _0810E5D8
-_0810E5D2:
- movs r6, 0xFF
- b _0810E5D8
-_0810E5D6:
- movs r6, 0x1
-_0810E5D8:
- movs r5, 0xFF
-_0810E5DA:
- ldr r0, _0810E5E8 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E5EC
- movs r4, 0x4
- b _0810E5FE
- .align 2, 0
-_0810E5E8: .4byte gSpecialVar_0x8004
-_0810E5EC:
- cmp r0, 0x1
- bne _0810E5F8
- ldr r4, _0810E5F4 @ =0x0000025a
- b _0810E5FE
- .align 2, 0
-_0810E5F4: .4byte 0x0000025a
-_0810E5F8:
- cmp r0, 0x2
- bne _0810E5FE
- ldr r4, _0810E630 @ =0x00000259
-_0810E5FE:
- ldr r2, _0810E634 @ =gSaveBlock1
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r6, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- lsls r2, r5, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r3, 0xC0
- lsls r3, 4
- adds r2, r3, 0
- orrs r4, r2
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E630: .4byte 0x00000259
-_0810E634: .4byte gSaveBlock1
- thumb_func_end PCTurnOffEffect
-
- thumb_func_start DoLotteryCornerComputerEffect
-DoLotteryCornerComputerEffect: @ 810E638
- push {r4,lr}
- ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810E66C
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810E678 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810E66C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E674: .4byte Task_LotteryCornerComputerEffect
-_0810E678: .4byte gTasks
- thumb_func_end DoLotteryCornerComputerEffect
-
- thumb_func_start Task_LotteryCornerComputerEffect
-Task_LotteryCornerComputerEffect: @ 810E67C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0810E6A0 @ =gTasks
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0810E69A
- adds r0, r1, 0
- bl LotteryCornerComputerEffect
-_0810E69A:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E6A0: .4byte gTasks
- thumb_func_end Task_LotteryCornerComputerEffect
-
- thumb_func_start LotteryCornerComputerEffect
-LotteryCornerComputerEffect: @ 810E6A4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bne _0810E712
- movs r0, 0
- strh r0, [r4, 0xE]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810E6DC
- ldr r2, _0810E6D4 @ =0x00000e9d
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810E6D8 @ =0x00000ea5
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- b _0810E6F2
- .align 2, 0
-_0810E6D4: .4byte 0x00000e9d
-_0810E6D8: .4byte 0x00000ea5
-_0810E6DC:
- ldr r2, _0810E720 @ =0x00000e58
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0xE6
- lsls r2, 4
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
-_0810E6F2:
- bl DrawWholeMapView
- ldrh r0, [r4, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0810E712
- ldrb r0, [r4, 0xA]
- bl DestroyTask
-_0810E712:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E720: .4byte 0x00000e58
- thumb_func_end LotteryCornerComputerEffect
-
- thumb_func_start EndLotteryCornerComputerEffect
-EndLotteryCornerComputerEffect: @ 810E724
- push {lr}
- ldr r2, _0810E744 @ =0x00000e9d
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810E748 @ =0x00000ea5
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- pop {r0}
- bx r0
- .align 2, 0
-_0810E744: .4byte 0x00000e9d
-_0810E748: .4byte 0x00000ea5
- thumb_func_end EndLotteryCornerComputerEffect
-
- thumb_func_start SetDepartmentStoreFloorVar
-SetDepartmentStoreFloorVar: @ 810E74C
- push {lr}
- ldr r0, _0810E768 @ =gSaveBlock1
- ldrb r0, [r0, 0x15]
- subs r0, 0x11
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x5
- bhi _0810E79C
- lsls r0, 2
- ldr r1, _0810E76C @ =_0810E770
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810E768: .4byte gSaveBlock1
-_0810E76C: .4byte _0810E770
- .align 2, 0
-_0810E770:
- .4byte _0810E79C
- .4byte _0810E788
- .4byte _0810E78C
- .4byte _0810E790
- .4byte _0810E794
- .4byte _0810E798
-_0810E788:
- movs r1, 0x1
- b _0810E79E
-_0810E78C:
- movs r1, 0x2
- b _0810E79E
-_0810E790:
- movs r1, 0x3
- b _0810E79E
-_0810E794:
- movs r1, 0x4
- b _0810E79E
-_0810E798:
- movs r1, 0xF
- b _0810E79E
-_0810E79C:
- movs r1, 0
-_0810E79E:
- ldr r0, _0810E7A8 @ =0x00004043
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810E7A8: .4byte 0x00004043
- thumb_func_end SetDepartmentStoreFloorVar
-
- thumb_func_start ScriptAddElevatorMenuItem
-ScriptAddElevatorMenuItem: @ 810E7AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r12, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- ldr r0, _0810E81C @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- adds r2, r0, 0
- ldr r3, _0810E820 @ =gUnknown_03000760
- cmp r1, 0
- bne _0810E7E8
- movs r1, 0
- adds r5, r3, 0
- movs r4, 0x10
-_0810E7D8:
- lsls r0, r1, 2
- adds r0, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bls _0810E7D8
-_0810E7E8:
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- strb r6, [r0]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- strb r7, [r0, 0x1]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strb r1, [r0, 0x2]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- mov r1, r8
- strb r1, [r0, 0x3]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E81C: .4byte gSpecialVar_0x8004
-_0810E820: .4byte gUnknown_03000760
- thumb_func_end ScriptAddElevatorMenuItem
-
- thumb_func_start ScriptShowElevatorMenu
-ScriptShowElevatorMenu: @ 810E824
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0810E868 @ =gUnknown_0203925A
- strb r4, [r5]
- ldr r0, _0810E86C @ =gUnknown_0203925B
- strb r4, [r0]
- movs r0, 0x10
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl ScriptAddElevatorMenuItem
- ldr r2, _0810E870 @ =gUnknown_03000760
- ldrb r0, [r2]
- cmp r0, 0x10
- beq _0810E85C
- adds r1, r5, 0
-_0810E846:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810E846
-_0810E85C:
- bl sub_810E874
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E868: .4byte gUnknown_0203925A
-_0810E86C: .4byte gUnknown_0203925B
-_0810E870: .4byte gUnknown_03000760
- thumb_func_end ScriptShowElevatorMenu
-
- thumb_func_start sub_810E874
-sub_810E874: @ 810E874
- push {r4-r6,lr}
- sub sp, 0x8
- bl ScriptContext2_Enable
- ldr r4, _0810E8B8 @ =gUnknown_0203925A
- ldrb r0, [r4]
- cmp r0, 0x5
- bls _0810E8C0
- movs r0, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0xB
- bl MenuDrawTextWindow
- movs r4, 0
- str r4, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x5
- bl InitMenu
- ldr r0, _0810E8BC @ =gUnknown_0203925C
- strb r4, [r0]
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- bl sub_810ECD4
- b _0810E8E8
- .align 2, 0
-_0810E8B8: .4byte gUnknown_0203925A
-_0810E8BC: .4byte gUnknown_0203925C
-_0810E8C0:
- ldrb r3, [r4]
- lsls r3, 1
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x8
- bl MenuDrawTextWindow
- ldrb r3, [r4]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl InitMenu
-_0810E8E8:
- movs r4, 0
- ldr r1, _0810E938 @ =gUnknown_03000760
- ldrb r0, [r1]
- cmp r0, 0x10
- beq _0810E924
- ldr r6, _0810E93C @ =gUnknown_083F8380
- adds r5, r1, 0
-_0810E8F6:
- lsls r0, r4, 2
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r2, r4, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bhi _0810E924
- lsls r0, r4, 2
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810E8F6
-_0810E924:
- bl sub_810E944
- ldr r0, _0810E940 @ =sub_810E984
- movs r1, 0x8
- bl CreateTask
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E938: .4byte gUnknown_03000760
-_0810E93C: .4byte gUnknown_083F8380
-_0810E940: .4byte sub_810E984
- thumb_func_end sub_810E874
-
- thumb_func_start sub_810E944
-sub_810E944: @ 810E944
- push {lr}
- movs r0, 0x14
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x5
- bl MenuDrawTextWindow
- ldr r0, _0810E978 @ =gOtherText_NowOn
- movs r1, 0x15
- movs r2, 0x1
- movs r3, 0x40
- bl sub_8072BD8
- ldr r1, _0810E97C @ =gUnknown_083F8380
- ldr r0, _0810E980 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x15
- movs r2, 0x3
- movs r3, 0x40
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_0810E978: .4byte gOtherText_NowOn
-_0810E97C: .4byte gUnknown_083F8380
-_0810E980: .4byte gSpecialVar_0x8005
- thumb_func_end sub_810E944
-
- thumb_func_start sub_810E984
-sub_810E984: @ 810E984
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0810EA44 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0810E9B8
- ldr r1, _0810EA48 @ =gUnknown_0203925B
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810E9B8
- subs r0, 0x1
- strb r0, [r1]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x40
- bl sub_810EAC8
-_0810E9B8:
- ldr r0, _0810EA44 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0810E9E8
- ldr r2, _0810EA48 @ =gUnknown_0203925B
- ldrb r1, [r2]
- ldr r0, _0810EA4C @ =gUnknown_0203925A
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _0810E9E8
- adds r0, r1, 0x1
- strb r0, [r2]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x80
- bl sub_810EAC8
-_0810E9E8:
- ldr r0, _0810EA44 @ =gMain
- ldrh r2, [r0, 0x2E]
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r2
- cmp r1, 0
- beq _0810EA94
- ldr r1, _0810EA50 @ =gUnknown_03000760
- ldr r4, _0810EA48 @ =gUnknown_0203925B
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- movs r1, 0x1
- ldrsb r1, [r0, r1]
- movs r2, 0x2
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0x2
- str r0, [sp]
- str r5, [sp, 0x4]
- movs r0, 0
- bl saved_warp2_set_2
- ldr r1, _0810EA54 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- ldrb r2, [r4]
- cmp r0, r2
- bne _0810EA5C
- ldr r1, _0810EA58 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl sub_810EC9C
- b _0810EABC
- .align 2, 0
-_0810EA44: .4byte gMain
-_0810EA48: .4byte gUnknown_0203925B
-_0810EA4C: .4byte gUnknown_0203925A
-_0810EA50: .4byte gUnknown_03000760
-_0810EA54: .4byte gSpecialVar_0x8005
-_0810EA58: .4byte gScriptResult
-_0810EA5C:
- ldr r0, _0810EA88 @ =gScriptResult
- strh r5, [r0]
- ldrb r0, [r4]
- strh r0, [r1]
- bl sub_810EBEC
- ldr r0, _0810EA8C @ =gScriptLastTalked
- ldrb r0, [r0]
- ldr r2, _0810EA90 @ =gSaveBlock1
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- movs r3, 0x1
- bl FieldObjectTurnByLocalIdAndMap
- bl sub_810EEDC
- bl MenuZeroFillScreen
- adds r0, r6, 0
- bl DestroyTask
- b _0810EABC
- .align 2, 0
-_0810EA88: .4byte gScriptResult
-_0810EA8C: .4byte gScriptLastTalked
-_0810EA90: .4byte gSaveBlock1
-_0810EA94:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0810EABC
- ldr r0, _0810EAC4 @ =gScriptResult
- strh r1, [r0]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl sub_810EC9C
-_0810EABC:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EAC4: .4byte gScriptResult
- thumb_func_end sub_810E984
-
- thumb_func_start sub_810EAC8
-sub_810EAC8: @ 810EAC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- lsls r1, 24
- lsrs r1, 24
- adds r3, r1, 0
- movs r7, 0
- movs r4, 0
- ldr r0, _0810EAEC @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810EAF0
- movs r0, 0
- b _0810EB78
- .align 2, 0
-_0810EAEC: .4byte gUnknown_0203925A
-_0810EAF0:
- cmp r1, 0x40
- bne _0810EB04
- cmp r2, 0
- bne _0810EB18
- ldr r0, _0810EB00 @ =gUnknown_0203925B
- ldrb r4, [r0]
- movs r7, 0x1
- b _0810EB1C
- .align 2, 0
-_0810EB00: .4byte gUnknown_0203925B
-_0810EB04:
- cmp r3, 0x80
- bne _0810EB18
- cmp r5, 0x4
- bne _0810EB18
- ldr r0, _0810EB84 @ =gUnknown_0203925B
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0x1
-_0810EB18:
- cmp r7, 0
- beq _0810EB76
-_0810EB1C:
- adds r0, r4, 0
- movs r1, 0x5
- bl sub_810EB90
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0xA
- bl MenuFillWindowRectWithBlankTile
- movs r5, 0
- ldr r2, _0810EB88 @ =gUnknown_03000760
- lsls r1, r4, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x10
- beq _0810EB76
- ldr r0, _0810EB8C @ =gUnknown_083F8380
- mov r8, r0
- adds r6, r2, 0
-_0810EB44:
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 2
- add r0, r8
- ldr r0, [r0]
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bhi _0810EB76
- lsls r1, r4, 2
- adds r0, r1, r6
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810EB44
-_0810EB76:
- adds r0, r7, 0
-_0810EB78:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810EB84: .4byte gUnknown_0203925B
-_0810EB88: .4byte gUnknown_03000760
-_0810EB8C: .4byte gUnknown_083F8380
- thumb_func_end sub_810EAC8
-
- thumb_func_start sub_810EB90
-sub_810EB90: @ 810EB90
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0
- bne _0810EBB4
- ldr r0, _0810EBB0 @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x2
- eors r1, r2
- strb r1, [r0]
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- b _0810EBB8
- .align 2, 0
-_0810EBB0: .4byte gUnknown_0203925C
-_0810EBB4:
- bl sub_810ECB0
-_0810EBB8:
- adds r1, r4, r5
- ldr r0, _0810EBC8 @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r1, r0
- bge _0810EBCC
- bl sub_810ECD4
- b _0810EBE0
- .align 2, 0
-_0810EBC8: .4byte gUnknown_0203925A
-_0810EBCC:
- cmp r1, r0
- bne _0810EBE0
- ldr r0, _0810EBE8 @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0810EBE0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EBE8: .4byte gUnknown_0203925C
- thumb_func_end sub_810EB90
-
- thumb_func_start sub_810EBEC
-sub_810EBEC: @ 810EBEC
- push {lr}
- ldr r0, _0810EC2C @ =sub_810EC34
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810EC30 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- movs r2, 0x1
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- strh r2, [r1, 0x10]
- movs r0, 0x3
- strh r0, [r1, 0x12]
- movs r0, 0
- bl SetCameraPanningCallback
- bl sub_810ECFC
- movs r0, 0x59
- bl PlaySE
- pop {r0}
- bx r0
- .align 2, 0
-_0810EC2C: .4byte sub_810EC34
-_0810EC30: .4byte gTasks
- thumb_func_end sub_810EBEC
-
- thumb_func_start sub_810EC34
-sub_810EC34: @ 810EC34
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810EC98 @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _0810EC92
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810EC92
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- movs r0, 0
- bl SetCameraPanning
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x17
- bne _0810EC92
- movs r0, 0x49
- bl PlaySE
- adds r0, r5, 0
- bl sub_810EC9C
- bl InstallCameraPanAheadCallback
-_0810EC92:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EC98: .4byte gTasks
- thumb_func_end sub_810EC34
-
- thumb_func_start sub_810EC9C
-sub_810EC9C: @ 810EC9C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_810EC9C
-
- thumb_func_start sub_810ECB0
-sub_810ECB0: @ 810ECB0
- push {lr}
- ldr r2, _0810ECD0 @ =gUnknown_0203925C
- ldrb r1, [r2]
- lsrs r0, r1, 1
- cmp r0, 0x1
- beq _0810ECCC
- movs r0, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- movs r1, 0x24
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
-_0810ECCC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810ECD0: .4byte gUnknown_0203925C
- thumb_func_end sub_810ECB0
-
- thumb_func_start sub_810ECD4
-sub_810ECD4: @ 810ECD4
- push {lr}
- ldr r2, _0810ECF8 @ =gUnknown_0203925C
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810ECF2
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- movs r1, 0x24
- movs r2, 0x48
- bl CreateVerticalScrollIndicators
-_0810ECF2:
- pop {r0}
- bx r0
- .align 2, 0
-_0810ECF8: .4byte gUnknown_0203925C
- thumb_func_end sub_810ECD4
-
- thumb_func_start sub_810ECFC
-sub_810ECFC: @ 810ECFC
- push {r4,lr}
- ldr r4, _0810ED38 @ =sub_810ED40
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810ED30
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810ED3C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810ED30:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810ED38: .4byte sub_810ED40
-_0810ED3C: .4byte gTasks
- thumb_func_end sub_810ECFC
-
- thumb_func_start sub_810ED40
-sub_810ED40: @ 810ED40
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0810ED5C @ =gTasks
- adds r0, r1
- bl sub_810ED60
- pop {r0}
- bx r0
- .align 2, 0
-_0810ED5C: .4byte gTasks
- thumb_func_end sub_810ED40
-
- thumb_func_start sub_810ED60
-sub_810ED60: @ 810ED60
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x8
- beq _0810ED6E
- b _0810EEB2
-_0810ED6E:
- movs r0, 0
- strh r0, [r5, 0xE]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0810EE14
- ldr r2, _0810EDFC @ =0x00000e68
- movs r0, 0x7
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r4, _0810EE00 @ =0x00000e69
- movs r0, 0x8
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE04 @ =0x00000e6a
- movs r0, 0xA
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- movs r2, 0xE7
- lsls r2, 4
- movs r0, 0x7
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE08 @ =0x00000e72
- movs r0, 0xA
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE0C @ =0x00000e78
- movs r0, 0x7
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE10 @ =0x00000e7a
- movs r0, 0xA
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- b _0810EE92
- .align 2, 0
-_0810EDFC: .4byte 0x00000e68
-_0810EE00: .4byte 0x00000e69
-_0810EE04: .4byte 0x00000e6a
-_0810EE08: .4byte 0x00000e72
-_0810EE0C: .4byte 0x00000e78
-_0810EE10: .4byte 0x00000e7a
-_0810EE14:
- ldr r2, _0810EEC0 @ =0x00000e6b
- movs r0, 0x7
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r4, _0810EEC4 @ =0x00000e6c
- movs r0, 0x8
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EEC8 @ =0x00000e6d
- movs r0, 0xA
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EECC @ =0x00000e73
- movs r0, 0x7
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED0 @ =0x00000e75
- movs r0, 0xA
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED4 @ =0x00000e7b
- movs r0, 0x7
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED8 @ =0x00000e7d
- movs r0, 0xA
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
-_0810EE92:
- bl DrawWholeMapView
- ldrh r0, [r5, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x10]
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _0810EEB2
- ldrb r0, [r5, 0xA]
- bl DestroyTask
-_0810EEB2:
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EEC0: .4byte 0x00000e6b
-_0810EEC4: .4byte 0x00000e6c
-_0810EEC8: .4byte 0x00000e6d
-_0810EECC: .4byte 0x00000e73
-_0810EED0: .4byte 0x00000e75
-_0810EED4: .4byte 0x00000e7b
-_0810EED8: .4byte 0x00000e7d
- thumb_func_end sub_810ED60
-
- thumb_func_start sub_810EEDC
-sub_810EEDC: @ 810EEDC
- push {r4,lr}
- ldr r4, _0810EF08 @ =gUnknown_0203925C
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810EEF0
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0810EEF0:
- ldrb r0, [r4]
- lsrs r0, 1
- cmp r0, 0x1
- bne _0810EEFE
- movs r0, 0
- bl DestroyVerticalScrollIndicator
-_0810EEFE:
- bl BuyMenuFreeMemory
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF08: .4byte gUnknown_0203925C
- thumb_func_end sub_810EEDC
-
- thumb_func_start SetTrickHouseEndRoomFlag
-SetTrickHouseEndRoomFlag: @ 810EF0C
- push {lr}
- ldr r1, _0810EF1C @ =gSpecialVar_0x8004
- ldr r0, _0810EF20 @ =0x00000259
- strh r0, [r1]
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF1C: .4byte gSpecialVar_0x8004
-_0810EF20: .4byte 0x00000259
- thumb_func_end SetTrickHouseEndRoomFlag
-
- thumb_func_start ResetTrickHouseEndRoomFlag
-ResetTrickHouseEndRoomFlag: @ 810EF24
- push {lr}
- ldr r1, _0810EF34 @ =gSpecialVar_0x8004
- ldr r0, _0810EF38 @ =0x00000259
- strh r0, [r1]
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF34: .4byte gSpecialVar_0x8004
-_0810EF38: .4byte 0x00000259
- thumb_func_end ResetTrickHouseEndRoomFlag
-
- thumb_func_start CheckLeadMonCool
-CheckLeadMonCool: @ 810EF3C
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EF5C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EF60
- movs r0, 0x1
- b _0810EF62
- .align 2, 0
-_0810EF5C: .4byte gPlayerParty
-_0810EF60:
- movs r0, 0
-_0810EF62:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonCool
-
- thumb_func_start CheckLeadMonBeauty
-CheckLeadMonBeauty: @ 810EF68
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EF88 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EF8C
- movs r0, 0x1
- b _0810EF8E
- .align 2, 0
-_0810EF88: .4byte gPlayerParty
-_0810EF8C:
- movs r0, 0
-_0810EF8E:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonBeauty
-
- thumb_func_start CheckLeadMonCute
-CheckLeadMonCute: @ 810EF94
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EFB4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EFB8
- movs r0, 0x1
- b _0810EFBA
- .align 2, 0
-_0810EFB4: .4byte gPlayerParty
-_0810EFB8:
- movs r0, 0
-_0810EFBA:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonCute
-
- thumb_func_start CheckLeadMonSmart
-CheckLeadMonSmart: @ 810EFC0
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EFE0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EFE4
- movs r0, 0x1
- b _0810EFE6
- .align 2, 0
-_0810EFE0: .4byte gPlayerParty
-_0810EFE4:
- movs r0, 0
-_0810EFE6:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonSmart
-
- thumb_func_start CheckLeadMonTough
-CheckLeadMonTough: @ 810EFEC
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F00C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- bl GetMonData
- cmp r0, 0xC7
- bls _0810F010
- movs r0, 0x1
- b _0810F012
- .align 2, 0
-_0810F00C: .4byte gPlayerParty
-_0810F010:
- movs r0, 0
-_0810F012:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonTough
-
- thumb_func_start IsGrassTypeInParty
-IsGrassTypeInParty: @ 810F018
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _0810F068 @ =gBaseStats
-_0810F01E:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810F06C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _0810F074
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0810F074
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x6]
- cmp r0, 0xC
- beq _0810F060
- ldrb r0, [r1, 0x7]
- cmp r0, 0xC
- bne _0810F074
-_0810F060:
- ldr r1, _0810F070 @ =gScriptResult
- movs r0, 0x1
- b _0810F082
- .align 2, 0
-_0810F068: .4byte gBaseStats
-_0810F06C: .4byte gPlayerParty
-_0810F070: .4byte gScriptResult
-_0810F074:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0810F01E
- ldr r1, _0810F08C @ =gScriptResult
- movs r0, 0
-_0810F082:
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F08C: .4byte gScriptResult
- thumb_func_end IsGrassTypeInParty
-
- thumb_func_start ShowGlassWorkshopMenu
-ShowGlassWorkshopMenu: @ 810F090
- push {r4,r5,lr}
- sub sp, 0x8
- bl ScriptContext2_Enable
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0xB
- bl MenuDrawTextWindow
- movs r4, 0
- str r4, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x5
- bl InitMenu
- ldr r0, _0810F104 @ =gUnknown_0203925C
- strb r4, [r0]
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- bl sub_810F2B4
- ldr r5, _0810F108 @ =gUnknown_083F83C0
-_0810F0CA:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- lsls r2, r4, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0810F0CA
- ldr r1, _0810F10C @ =gUnknown_0203925B
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0810F110 @ =gUnknown_0203925A
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0810F114 @ =sub_810F118
- movs r1, 0x8
- bl CreateTask
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F104: .4byte gUnknown_0203925C
-_0810F108: .4byte gUnknown_083F83C0
-_0810F10C: .4byte gUnknown_0203925B
-_0810F110: .4byte gUnknown_0203925A
-_0810F114: .4byte sub_810F118
- thumb_func_end ShowGlassWorkshopMenu
-
- thumb_func_start sub_810F118
-sub_810F118: @ 810F118
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810F1E4 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0810F14A
- ldr r1, _0810F1E8 @ =gUnknown_0203925B
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810F14A
- subs r0, 0x1
- strb r0, [r1]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x40
- bl sub_810F1F4
-_0810F14A:
- ldr r0, _0810F1E4 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0810F17A
- ldr r2, _0810F1E8 @ =gUnknown_0203925B
- ldrb r1, [r2]
- ldr r0, _0810F1EC @ =gUnknown_0203925A
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _0810F17A
- adds r0, r1, 0x1
- strb r0, [r2]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x80
- bl sub_810F1F4
-_0810F17A:
- ldr r4, _0810F1E4 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810F1AE
- bl HandleDestroyMenuCursors
- ldr r0, _0810F1F0 @ =gScriptResult
- ldr r1, _0810F1E8 @ =gUnknown_0203925B
- ldrb r1, [r1]
- strh r1, [r0]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_810EC9C
-_0810F1AE:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810F1DE
- bl HandleDestroyMenuCursors
- ldr r1, _0810F1F0 @ =gScriptResult
- movs r0, 0x7F
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_810EC9C
-_0810F1DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F1E4: .4byte gMain
-_0810F1E8: .4byte gUnknown_0203925B
-_0810F1EC: .4byte gUnknown_0203925A
-_0810F1F0: .4byte gScriptResult
- thumb_func_end sub_810F118
-
- thumb_func_start sub_810F1F4
-sub_810F1F4: @ 810F1F4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- lsls r1, 24
- lsrs r1, 24
- adds r3, r1, 0
- movs r6, 0
- movs r4, 0
- ldr r0, _0810F214 @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810F218
- movs r0, 0
- b _0810F282
- .align 2, 0
-_0810F214: .4byte gUnknown_0203925A
-_0810F218:
- cmp r1, 0x40
- bne _0810F22C
- cmp r2, 0
- bne _0810F240
- ldr r0, _0810F228 @ =gUnknown_0203925B
- ldrb r4, [r0]
- movs r6, 0x1
- b _0810F244
- .align 2, 0
-_0810F228: .4byte gUnknown_0203925B
-_0810F22C:
- cmp r3, 0x80
- bne _0810F240
- cmp r5, 0x4
- bne _0810F240
- ldr r0, _0810F288 @ =gUnknown_0203925B
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r6, 0x1
-_0810F240:
- cmp r6, 0
- beq _0810F280
-_0810F244:
- adds r0, r4, 0
- movs r1, 0x5
- bl GlassWorkshopUpdateScrollIndicators
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x9
- movs r3, 0xA
- bl MenuFillWindowRectWithBlankTile
- movs r5, 0
- ldr r7, _0810F28C @ =gUnknown_083F83C0
-_0810F25C:
- lsls r0, r4, 2
- adds r0, r7
- ldr r0, [r0]
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _0810F25C
-_0810F280:
- adds r0, r6, 0
-_0810F282:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F288: .4byte gUnknown_0203925B
-_0810F28C: .4byte gUnknown_083F83C0
- thumb_func_end sub_810F1F4
-
- thumb_func_start sub_810F290
-sub_810F290: @ 810F290
- push {lr}
- ldr r2, _0810F2B0 @ =gUnknown_0203925C
- ldrb r1, [r2]
- lsrs r0, r1, 1
- cmp r0, 0x1
- beq _0810F2AC
- movs r0, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- movs r1, 0x2C
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
-_0810F2AC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810F2B0: .4byte gUnknown_0203925C
- thumb_func_end sub_810F290
-
- thumb_func_start sub_810F2B4
-sub_810F2B4: @ 810F2B4
- push {lr}
- ldr r2, _0810F2D8 @ =gUnknown_0203925C
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810F2D2
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- movs r1, 0x2C
- movs r2, 0x58
- bl CreateVerticalScrollIndicators
-_0810F2D2:
- pop {r0}
- bx r0
- .align 2, 0
-_0810F2D8: .4byte gUnknown_0203925C
- thumb_func_end sub_810F2B4
-
- thumb_func_start GlassWorkshopUpdateScrollIndicators
-GlassWorkshopUpdateScrollIndicators: @ 810F2DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0
- bne _0810F300
- ldr r0, _0810F2FC @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x2
- eors r1, r2
- strb r1, [r0]
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- b _0810F304
- .align 2, 0
-_0810F2FC: .4byte gUnknown_0203925C
-_0810F300:
- bl sub_810F290
-_0810F304:
- adds r1, r4, r5
- ldr r0, _0810F314 @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r1, r0
- bge _0810F318
- bl sub_810F2B4
- b _0810F32C
- .align 2, 0
-_0810F314: .4byte gUnknown_0203925A
-_0810F318:
- cmp r1, r0
- bne _0810F32C
- ldr r0, _0810F334 @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0810F32C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F334: .4byte gUnknown_0203925C
- thumb_func_end GlassWorkshopUpdateScrollIndicators
-
- thumb_func_start SpawnCameraDummy
-SpawnCameraDummy: @ 810F338
- push {lr}
- sub sp, 0x8
- ldr r0, _0810F380 @ =gSaveBlock1
- ldrh r3, [r0]
- adds r3, 0x7
- lsls r3, 16
- asrs r3, 16
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- movs r0, 0x7
- movs r1, 0x8
- movs r2, 0x7F
- bl SpawnSpecialFieldObjectParametrized
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810F384 @ =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r1, 0x4]
- bl CameraObjectSetFollowedObjectId
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0810F380: .4byte gSaveBlock1
-_0810F384: .4byte gMapObjects
- thumb_func_end SpawnCameraDummy
-
- thumb_func_start RemoveCameraDummy
-RemoveCameraDummy: @ 810F388
- push {lr}
- bl GetPlayerAvatarObjectId
- lsls r0, 24
- lsrs r0, 24
- bl CameraObjectSetFollowedObjectId
- ldr r0, _0810F3A8 @ =gSaveBlock1
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x7F
- bl RemoveFieldObjectByLocalIdAndMap
- pop {r0}
- bx r0
- .align 2, 0
-_0810F3A8: .4byte gSaveBlock1
- thumb_func_end RemoveCameraDummy
-
- thumb_func_start GetPokeblockNameByMonNature
-GetPokeblockNameByMonNature: @ 810F3AC
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F3D4 @ =gPlayerParty
- adds r0, r1
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810F3D8 @ =gStringVar1
- bl sub_810CB68
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810F3D4: .4byte gPlayerParty
-_0810F3D8: .4byte gStringVar1
- thumb_func_end GetPokeblockNameByMonNature
-
- thumb_func_start GetSecretBaseNearbyMapName
-GetSecretBaseNearbyMapName: @ 810F3DC
- push {r4,lr}
- ldr r4, _0810F3FC @ =gStringVar1
- ldr r0, _0810F400 @ =0x00004026
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_80FBFB4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F3FC: .4byte gStringVar1
-_0810F400: .4byte 0x00004026
- thumb_func_end GetSecretBaseNearbyMapName
-
- thumb_func_start sub_810F404
-sub_810F404: @ 810F404
- push {lr}
- movs r0, 0x20
- bl GetGameStat
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_810F404
-
- thumb_func_start sub_810F414
-sub_810F414: @ 810F414
- push {lr}
- ldr r0, _0810F420 @ =gStringVar1
- bl sub_8135FF4
- pop {r0}
- bx r0
- .align 2, 0
-_0810F420: .4byte gStringVar1
- thumb_func_end sub_810F414
-
- thumb_func_start sub_810F424
-sub_810F424: @ 810F424
- push {r4,r5,lr}
- ldr r2, _0810F458 @ =gSaveBlock1
- ldr r1, _0810F45C @ =0x00002dd4
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 25
- ldr r0, _0810F460 @ =0x00002dd6
- adds r2, r0
- lsrs r1, 25
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _0810F464 @ =gUnknown_083F83E0
- ldr r0, _0810F468 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- adds r5, r1, r0
- movs r0, 0x2
- bl GetPriceReduction
- lsls r0, 24
- cmp r0, 0
- bne _0810F470
- ldr r4, _0810F46C @ =gUnknown_083F83EC
- b _0810F472
- .align 2, 0
-_0810F458: .4byte gSaveBlock1
-_0810F45C: .4byte 0x00002dd4
-_0810F460: .4byte 0x00002dd6
-_0810F464: .4byte gUnknown_083F83E0
-_0810F468: .4byte gSpecialVar_0x8004
-_0810F46C: .4byte gUnknown_083F83EC
-_0810F470:
- ldr r4, _0810F484 @ =gUnknown_083F83F8
-_0810F472:
- adds r0, r5, 0
- movs r1, 0xC
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F484: .4byte gUnknown_083F83F8
- thumb_func_end sub_810F424
-
- thumb_func_start sub_810F488
-sub_810F488: @ 810F488
- push {lr}
- ldr r1, _0810F4A0 @ =gSpecialVar_0x8004
- ldr r0, _0810F4A4 @ =0x00000277
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4A8
- movs r0, 0x1
- b _0810F4AA
- .align 2, 0
-_0810F4A0: .4byte gSpecialVar_0x8004
-_0810F4A4: .4byte 0x00000277
-_0810F4A8:
- movs r0, 0
-_0810F4AA:
- pop {r1}
- bx r1
- thumb_func_end sub_810F488
-
- thumb_func_start sub_810F4B0
-sub_810F4B0: @ 810F4B0
- push {lr}
- ldr r1, _0810F4C8 @ =gSpecialVar_0x8004
- movs r0, 0x9E
- lsls r0, 2
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4CC
- movs r0, 0x1
- b _0810F4CE
- .align 2, 0
-_0810F4C8: .4byte gSpecialVar_0x8004
-_0810F4CC:
- movs r0, 0
-_0810F4CE:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4B0
-
- thumb_func_start sub_810F4D4
-sub_810F4D4: @ 810F4D4
- push {lr}
- ldr r1, _0810F4EC @ =gSpecialVar_0x8004
- ldr r0, _0810F4F0 @ =0x00000279
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4F4
- movs r0, 0x1
- b _0810F4F6
- .align 2, 0
-_0810F4EC: .4byte gSpecialVar_0x8004
-_0810F4F0: .4byte 0x00000279
-_0810F4F4:
- movs r0, 0
-_0810F4F6:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4D4
-
- thumb_func_start sub_810F4FC
-sub_810F4FC: @ 810F4FC
- push {lr}
- ldr r1, _0810F514 @ =gSpecialVar_0x8004
- ldr r0, _0810F518 @ =0x0000027a
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F51C
- movs r0, 0x1
- b _0810F51E
- .align 2, 0
-_0810F514: .4byte gSpecialVar_0x8004
-_0810F518: .4byte 0x0000027a
-_0810F51C:
- movs r0, 0
-_0810F51E:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4FC
-
- thumb_func_start LeadMonHasEffortRibbon
-LeadMonHasEffortRibbon: @ 810F524
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F548 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x47
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810F548: .4byte gPlayerParty
- thumb_func_end LeadMonHasEffortRibbon
-
- thumb_func_start GivLeadMonEffortRibbon
-GivLeadMonEffortRibbon: @ 810F54C
- push {lr}
- sub sp, 0x4
- movs r0, 0x2A
- bl IncrementGameStat
- ldr r0, _0810F580 @ =0x0000083b
- bl FlagSet
- movs r1, 0x1
- mov r0, sp
- strb r1, [r0]
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F584 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x47
- mov r2, sp
- bl SetMonData
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0810F580: .4byte 0x0000083b
-_0810F584: .4byte gPlayerParty
- thumb_func_end GivLeadMonEffortRibbon
-
- thumb_func_start GetLeadMonEVCount
-GetLeadMonEVCount: @ 810F588
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F5AC @ =gPlayerParty
- adds r0, r1
- bl GetMonEVCount
- lsls r0, 16
- ldr r1, _0810F5B0 @ =0x01fd0000
- cmp r0, r1
- bhi _0810F5B4
- movs r0, 0
- b _0810F5B6
- .align 2, 0
-_0810F5AC: .4byte gPlayerParty
-_0810F5B0: .4byte 0x01fd0000
-_0810F5B4:
- movs r0, 0x1
-_0810F5B6:
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonEVCount
-
- thumb_func_start sub_810F5BC
-sub_810F5BC: @ 810F5BC
- push {lr}
- movs r0, 0xC7
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0810F610
- ldr r0, _0810F5E8 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- movs r0, 0x83
- lsls r0, 3
- cmp r1, r0
- bne _0810F610
- subs r0, 0x75
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F5F0
- ldr r0, _0810F5EC @ =0x0000409a
- movs r1, 0x4
- b _0810F602
- .align 2, 0
-_0810F5E8: .4byte gSaveBlock1
-_0810F5EC: .4byte 0x0000409a
-_0810F5F0:
- movs r0, 0xE9
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F610
- ldr r0, _0810F60C @ =0x0000409a
- movs r1, 0x5
-_0810F602:
- bl VarSet
- movs r0, 0x1
- b _0810F612
- .align 2, 0
-_0810F60C: .4byte 0x0000409a
-_0810F610:
- movs r0, 0
-_0810F612:
- pop {r1}
- bx r1
- thumb_func_end sub_810F5BC
-
- thumb_func_start SetShoalItemFlag
-SetShoalItemFlag: @ 810F618
- push {lr}
- ldr r0, _0810F624 @ =0x0000085f
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810F624: .4byte 0x0000085f
- thumb_func_end SetShoalItemFlag
-
- thumb_func_start PutZigzagoonInPlayerParty
-PutZigzagoonInPlayerParty: @ 810F628
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r5, _0810F690 @ =gPlayerParty
- movs r1, 0x90
- lsls r1, 1
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r2, 0x7
- movs r3, 0x20
- bl CreateMon
- movs r1, 0x1
- add r0, sp, 0x10
- strh r1, [r0]
- adds r0, r5, 0
- movs r1, 0x2E
- add r2, sp, 0x10
- bl SetMonData
- add r1, sp, 0x10
- movs r0, 0x21
- strh r0, [r1]
- adds r0, r5, 0
- movs r1, 0xD
- add r2, sp, 0x10
- bl SetMonData
- add r0, sp, 0x10
- strh r4, [r0]
- adds r0, r5, 0
- movs r1, 0xE
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xF
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x10
- add r2, sp, 0x10
- bl SetMonData
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F690: .4byte gPlayerParty
- thumb_func_end PutZigzagoonInPlayerParty
-
- thumb_func_start IsStarterInParty
-IsStarterInParty: @ 810F694
- push {r4-r6,lr}
- ldr r0, _0810F6D0 @ =0x00004023
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl GetStarterPokemon
- lsls r0, 16
- lsrs r6, r0, 16
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _0810F6E2
-_0810F6B6:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0810F6D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, r6
- bne _0810F6D8
- movs r0, 0x1
- b _0810F6E4
- .align 2, 0
-_0810F6D0: .4byte 0x00004023
-_0810F6D4: .4byte gPlayerParty
-_0810F6D8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _0810F6B6
-_0810F6E2:
- movs r0, 0
-_0810F6E4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsStarterInParty
-
- thumb_func_start CheckFreePokemonStorageSpace
-CheckFreePokemonStorageSpace: @ 810F6EC
- push {r4-r6,lr}
- movs r5, 0
-_0810F6F0:
- movs r4, 0
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_0810F6FC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _0810F718 @ =gPokemonStorage + 0x4
- adds r0, r1
- adds r0, r6, r0
- movs r1, 0xB
- movs r2, 0
- bl GetBoxMonData
- cmp r0, 0
- bne _0810F71C
- movs r0, 0x1
- b _0810F732
- .align 2, 0
-_0810F718: .4byte gPokemonStorage + 0x4
-_0810F71C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _0810F6FC
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _0810F6F0
- movs r0, 0
-_0810F732:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CheckFreePokemonStorageSpace
-
- thumb_func_start IsPokerusInParty
-IsPokerusInParty: @ 810F738
- push {lr}
- ldr r0, _0810F74C @ =gPlayerParty
- movs r1, 0x3F
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- beq _0810F750
- movs r0, 0x1
- b _0810F752
- .align 2, 0
-_0810F74C: .4byte gPlayerParty
-_0810F750:
- movs r0, 0
-_0810F752:
- pop {r1}
- bx r1
- thumb_func_end IsPokerusInParty
-
- thumb_func_start sub_810F758
-sub_810F758: @ 810F758
- push {lr}
- ldr r0, _0810F798 @ =sub_810F7A8
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810F79C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0810F7A0 @ =gSpecialVar_0x8005
- ldrh r2, [r0]
- movs r0, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- ldr r0, _0810F7A4 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0xD6
- bl PlaySE
- pop {r0}
- bx r0
- .align 2, 0
-_0810F798: .4byte sub_810F7A8
-_0810F79C: .4byte gTasks
-_0810F7A0: .4byte gSpecialVar_0x8005
-_0810F7A4: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810F758
-
- thumb_func_start sub_810F7A8
-sub_810F7A8: @ 810F7A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810F810 @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _0810F808
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810F808
- ldrh r0, [r4, 0x8]
- negs r0, r0
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- bl SetCameraPanning
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _0810F808
- adds r0, r5, 0
- bl sub_810F814
- bl InstallCameraPanAheadCallback
-_0810F808:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F810: .4byte gTasks
- thumb_func_end sub_810F7A8
-
- thumb_func_start sub_810F814
-sub_810F814: @ 810F814
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_810F814
-
- thumb_func_start sub_810F828
-sub_810F828: @ 810F828
- push {lr}
- movs r0, 0xAE
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_810F828
-
- thumb_func_start SetRoute119Weather
-SetRoute119Weather: @ 810F83C
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810F858
- movs r0, 0x14
- bl SetSav1Weather
-_0810F858:
- pop {r0}
- bx r0
- thumb_func_end SetRoute119Weather
-
- thumb_func_start SetRoute123Weather
-SetRoute123Weather: @ 810F85C
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810F878
- movs r0, 0x15
- bl SetSav1Weather
-_0810F878:
- pop {r0}
- bx r0
- thumb_func_end SetRoute123Weather
-
- thumb_func_start GetLeadMonIndex
-GetLeadMonIndex: @ 810F87C
- push {r4-r6,lr}
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- cmp r5, r6
- bcs _0810F8CA
-_0810F88C:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810F8BC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0810F8C0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0810F8C0
- adds r0, r5, 0
- b _0810F8CC
- .align 2, 0
-_0810F8BC: .4byte gPlayerParty
-_0810F8C0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _0810F88C
-_0810F8CA:
- movs r0, 0
-_0810F8CC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonIndex
-
- thumb_func_start ScriptGetPartyMonSpecies
-ScriptGetPartyMonSpecies: @ 810F8D4
- push {lr}
- ldr r0, _0810F8F4 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0810F8F8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0810F8F4: .4byte gSpecialVar_0x8004
-_0810F8F8: .4byte gPlayerParty
- thumb_func_end ScriptGetPartyMonSpecies
-
- thumb_func_start sub_810F8FC
-sub_810F8FC: @ 810F8FC
- push {lr}
- movs r0, 0x6
- bl sub_805ADDC
- pop {r0}
- bx r0
- thumb_func_end sub_810F8FC
-
- thumb_func_start sub_810F908
-sub_810F908: @ 810F908
- push {r4,lr}
- ldr r0, _0810F928 @ =0x000040c2
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- adds r3, r0, 0
- ldr r2, _0810F92C @ =gLocalTime
- movs r1, 0
- ldrsh r0, [r2, r1]
- subs r0, r3
- cmp r0, 0x6
- ble _0810F930
- movs r0, 0
- b _0810F948
- .align 2, 0
-_0810F928: .4byte 0x000040c2
-_0810F92C: .4byte gLocalTime
-_0810F930:
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0
- blt _0810F946
- subs r1, r3
- movs r0, 0x7
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- b _0810F948
-_0810F946:
- movs r0, 0x8
-_0810F948:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810F908
-
- thumb_func_start sub_810F950
-sub_810F950: @ 810F950
- push {r4,lr}
- ldr r0, _0810F964 @ =0x000040c2
- ldr r4, _0810F968 @ =gLocalTime
- ldrh r1, [r4]
- bl VarSet
- ldrh r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F964: .4byte 0x000040c2
-_0810F968: .4byte gLocalTime
- thumb_func_end sub_810F950
-
- thumb_func_start sub_810F96C
-sub_810F96C: @ 810F96C
- push {r4,lr}
- ldr r0, _0810F994 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0810F998 @ =gPlayerParty
- adds r0, r1
- ldr r4, _0810F99C @ =gStringVar1
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _0810F9A0 @ =gSaveBlock2
- adds r1, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _0810F9A4
- movs r0, 0x1
- b _0810F9A6
- .align 2, 0
-_0810F994: .4byte gSpecialVar_0x8004
-_0810F998: .4byte gPlayerParty
-_0810F99C: .4byte gStringVar1
-_0810F9A0: .4byte gSaveBlock2
-_0810F9A4:
- movs r0, 0
-_0810F9A6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810F96C
-
- thumb_func_start sub_810F9AC
-sub_810F9AC: @ 810F9AC
- push {r4,r5,lr}
- ldr r2, _0810F9C0 @ =gScriptResult
- ldrh r1, [r2]
- ldr r0, _0810F9C4 @ =0x0000270f
- cmp r1, r0
- bls _0810F9C8
- movs r0, 0
- bl sub_80BF088
- b _0810FA4A
- .align 2, 0
-_0810F9C0: .4byte gScriptResult
-_0810F9C4: .4byte 0x0000270f
-_0810F9C8:
- ldr r0, _0810F9D8 @ =0x000003e7
- cmp r1, r0
- bls _0810F9E0
- ldr r4, _0810F9DC @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- adds r4, 0x1
- b _0810FA04
- .align 2, 0
-_0810F9D8: .4byte 0x000003e7
-_0810F9DC: .4byte gStringVar1
-_0810F9E0:
- cmp r1, 0x63
- bls _0810F9F4
- ldr r4, _0810F9F0 @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- adds r4, 0x2
- b _0810FA04
- .align 2, 0
-_0810F9F0: .4byte gStringVar1
-_0810F9F4:
- cmp r1, 0x9
- bls _0810FA24
- ldr r4, _0810FA20 @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- adds r4, 0x3
-_0810FA04:
- ldrh r5, [r2]
- adds r0, r5, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- b _0810FA4A
- .align 2, 0
-_0810FA20: .4byte gStringVar1
-_0810FA24:
- ldr r4, _0810FA50 @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- adds r4, 0x4
- ldrh r5, [r2]
- adds r0, r5, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
-_0810FA4A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FA50: .4byte gStringVar1
- thumb_func_end sub_810F9AC
-
- thumb_func_start ResetFanClub
-ResetFanClub: @ 810FA54
- ldr r0, _0810FA68 @ =gSaveBlock1
- ldr r2, _0810FA6C @ =0x000013c2
- adds r1, r0, r2
- movs r2, 0
- strh r2, [r1]
- ldr r1, _0810FA70 @ =0x000013c4
- adds r0, r1
- strh r2, [r0]
- bx lr
- .align 2, 0
-_0810FA68: .4byte gSaveBlock1
-_0810FA6C: .4byte 0x000013c2
-_0810FA70: .4byte 0x000013c4
- thumb_func_end ResetFanClub
-
- thumb_func_start sub_810FA74
-sub_810FA74: @ 810FA74
- push {lr}
- bl sub_810FF30
- lsls r0, 24
- cmp r0, 0
- beq _0810FA90
- bl sub_810FCE8
- ldr r0, _0810FA94 @ =gSaveBlock1
- ldr r1, _0810FA98 @ =gSaveBlock2
- ldrh r1, [r1, 0xE]
- ldr r2, _0810FA9C @ =0x000013c4
- adds r0, r2
- strh r1, [r0]
-_0810FA90:
- pop {r0}
- bx r0
- .align 2, 0
-_0810FA94: .4byte gSaveBlock1
-_0810FA98: .4byte gSaveBlock2
-_0810FA9C: .4byte 0x000013c4
- thumb_func_end sub_810FA74
-
- thumb_func_start sub_810FAA0
-sub_810FAA0: @ 810FAA0
- push {r4,lr}
- ldr r4, _0810FAF0 @ =gSaveBlock1
- ldr r1, _0810FAF4 @ =0x000013c2
- adds r0, r4, r1
- ldrh r0, [r0]
- lsrs r0, 7
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810FAE8
- bl sub_810FF48
- bl sub_810FD80
- ldr r0, _0810FAF8 @ =gSaveBlock2
- ldrh r1, [r0, 0xE]
- ldr r2, _0810FAFC @ =0x000013c4
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _0810FB00 @ =0x00000315
- bl FlagReset
- ldr r0, _0810FB04 @ =0x00000316
- bl FlagReset
- ldr r0, _0810FB08 @ =0x00000317
- bl FlagReset
- movs r0, 0xC6
- lsls r0, 2
- bl FlagReset
- ldr r0, _0810FB0C @ =0x00004095
- movs r1, 0x1
- bl VarSet
-_0810FAE8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FAF0: .4byte gSaveBlock1
-_0810FAF4: .4byte 0x000013c2
-_0810FAF8: .4byte gSaveBlock2
-_0810FAFC: .4byte 0x000013c4
-_0810FB00: .4byte 0x00000315
-_0810FB04: .4byte 0x00000316
-_0810FB08: .4byte 0x00000317
-_0810FB0C: .4byte 0x00004095
- thumb_func_end sub_810FAA0
-
- thumb_func_start sub_810FB10
-sub_810FB10: @ 810FB10
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810FB54 @ =0x00004095
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0810FB80
- ldr r0, _0810FB58 @ =gSaveBlock1
- ldr r1, _0810FB5C @ =0x000013c2
- adds r4, r0, r1
- ldrh r2, [r4]
- movs r1, 0x7F
- ands r1, r2
- ldr r0, _0810FB60 @ =gUnknown_083F8404
- adds r0, r5, r0
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x13
- ble _0810FB7C
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _0810FB68
- bl sub_810FB9C
- ldrh r1, [r4]
- ldr r0, _0810FB64 @ =0x0000ff80
- ands r0, r1
- b _0810FB7E
- .align 2, 0
-_0810FB54: .4byte 0x00004095
-_0810FB58: .4byte gSaveBlock1
-_0810FB5C: .4byte 0x000013c2
-_0810FB60: .4byte gUnknown_083F8404
-_0810FB64: .4byte 0x0000ff80
-_0810FB68:
- ldrh r0, [r4]
- ldr r1, _0810FB78 @ =0x0000ff80
- ands r1, r0
- movs r0, 0x14
- orrs r1, r0
- strh r1, [r4]
- b _0810FB80
- .align 2, 0
-_0810FB78: .4byte 0x0000ff80
-_0810FB7C:
- adds r0, r2, r0
-_0810FB7E:
- strh r0, [r4]
-_0810FB80:
- ldr r0, _0810FB94 @ =gSaveBlock1
- ldr r1, _0810FB98 @ =0x000013c2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x7F
- ands r0, r1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FB94: .4byte gSaveBlock1
-_0810FB98: .4byte 0x000013c2
- thumb_func_end sub_810FB10
-
- thumb_func_start sub_810FB9C
-sub_810FB9C: @ 810FB9C
- push {r4-r7,lr}
- sub sp, 0x4
- movs r3, 0
- movs r5, 0
- ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2
- movs r6, 0x1
-_0810FBA8:
- ldrh r1, [r7]
- ldr r0, _0810FBDC @ =gUnknown_083F8408
- adds r0, r5, r0
- ldrb r4, [r0]
- asrs r1, r4
- ands r1, r6
- cmp r1, 0
- bne _0810FBE0
- adds r3, r5, 0
- str r3, [sp]
- bl Random
- adds r1, r6, 0
- ands r1, r0
- ldr r3, [sp]
- cmp r1, 0
- beq _0810FBE0
- adds r0, r6, 0
- lsls r0, r4
- ldrh r1, [r7]
- orrs r0, r1
- strh r0, [r7]
- b _0810FC00
- .align 2, 0
-_0810FBD8: .4byte gSaveBlock1 + 0x13C2
-_0810FBDC: .4byte gUnknown_083F8408
-_0810FBE0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0810FBA8
- ldr r2, _0810FC0C @ =gSaveBlock1
- ldr r0, _0810FC10 @ =0x000013c2
- adds r2, r0
- ldr r1, _0810FC14 @ =gUnknown_083F8408
- adds r1, r3, r1
- movs r0, 0x1
- ldrb r1, [r1]
- lsls r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
-_0810FC00:
- adds r0, r3, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FC0C: .4byte gSaveBlock1
-_0810FC10: .4byte 0x000013c2
-_0810FC14: .4byte gUnknown_083F8408
- thumb_func_end sub_810FB9C
-
- thumb_func_start sub_810FC18
-sub_810FC18: @ 810FC18
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r0, 0
- mov r8, r0
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _0810FC3E
- movs r0, 0
- b _0810FC94
-_0810FC34:
- lsls r4, r6
- ldrh r0, [r2]
- eors r4, r0
- strh r4, [r2]
- b _0810FC92
-_0810FC3E:
- movs r5, 0
- ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2
- movs r4, 0x1
-_0810FC44:
- ldrh r1, [r2]
- ldr r7, _0810FCA4 @ =gUnknown_083F8410
- adds r0, r5, r7
- ldrb r6, [r0]
- asrs r1, r6
- ands r1, r4
- cmp r1, 0
- beq _0810FC66
- mov r8, r5
- str r2, [sp]
- bl Random
- adds r1, r4, 0
- ands r1, r0
- ldr r2, [sp]
- cmp r1, 0
- bne _0810FC34
-_0810FC66:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0810FC44
- ldr r0, _0810FCA8 @ =gSaveBlock1
- ldr r1, _0810FCAC @ =0x000013c2
- adds r4, r0, r1
- ldrh r1, [r4]
- mov r2, r8
- adds r0, r2, r7
- ldrb r2, [r0]
- adds r0, r1, 0
- asrs r0, r2
- movs r3, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0810FC92
- adds r0, r3, 0
- lsls r0, r2
- eors r1, r0
- strh r1, [r4]
-_0810FC92:
- mov r0, r8
-_0810FC94:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FCA0: .4byte gSaveBlock1 + 0x13C2
-_0810FCA4: .4byte gUnknown_083F8410
-_0810FCA8: .4byte gSaveBlock1
-_0810FCAC: .4byte 0x000013c2
- thumb_func_end sub_810FC18
-
- thumb_func_start sub_810FCB0
-sub_810FCB0: @ 810FCB0
- push {r4,r5,lr}
- movs r3, 0
- movs r2, 0
- ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2
- ldrh r4, [r0]
- movs r5, 0x1
-_0810FCBC:
- adds r1, r2, 0
- adds r1, 0x8
- adds r0, r4, 0
- asrs r0, r1
- ands r0, r5
- cmp r0, 0
- beq _0810FCD0
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_0810FCD0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _0810FCBC
- adds r0, r3, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FCE4: .4byte gSaveBlock1 + 0x13C2
- thumb_func_end sub_810FCB0
-
- thumb_func_start sub_810FCE8
-sub_810FCE8: @ 810FCE8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r2, _0810FD08 @ =gSaveBlock2
- ldrh r1, [r2, 0xE]
- ldr r0, _0810FD0C @ =0x000003e6
- cmp r1, r0
- bhi _0810FD54
- ldr r7, _0810FD10 @ =gSaveBlock1
- adds r6, r2, 0
- ldr r0, _0810FD14 @ =0x000013c4
- adds r0, r7
- mov r8, r0
- b _0810FD36
- .align 2, 0
-_0810FD08: .4byte gSaveBlock2
-_0810FD0C: .4byte 0x000003e6
-_0810FD10: .4byte gSaveBlock1
-_0810FD14: .4byte 0x000013c4
-_0810FD18:
- ldrh r1, [r6, 0xE]
- ldr r0, _0810FD4C @ =0x000013c4
- adds r4, r7, r0
- ldrh r0, [r4]
- subs r1, r0
- cmp r1, 0xB
- ble _0810FD54
- bl sub_810FC18
- ldrh r0, [r4]
- adds r0, 0xC
- strh r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0810FD36:
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _0810FD50
- ldrh r0, [r6, 0xE]
- mov r1, r8
- strh r0, [r1]
- b _0810FD54
- .align 2, 0
-_0810FD4C: .4byte 0x000013c4
-_0810FD50:
- cmp r5, 0x8
- bne _0810FD18
-_0810FD54:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810FCE8
-
- thumb_func_start sub_810FD60
-sub_810FD60: @ 810FD60
- ldr r0, _0810FD74 @ =gSaveBlock1
- ldr r1, _0810FD78 @ =0x000013c2
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, _0810FD7C @ =gSpecialVar_0x8004
- ldrh r1, [r1]
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_0810FD74: .4byte gSaveBlock1
-_0810FD78: .4byte 0x000013c2
-_0810FD7C: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810FD60
-
- thumb_func_start sub_810FD80
-sub_810FD80: @ 810FD80
- ldr r2, _0810FDA4 @ =gSaveBlock1
- ldr r0, _0810FDA8 @ =0x000013c2
- adds r2, r0
- ldrh r1, [r2]
- movs r3, 0x80
- lsls r3, 6
- adds r0, r3, 0
- orrs r0, r1
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- orrs r0, r1
- movs r3, 0x80
- lsls r3, 3
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0810FDA4: .4byte gSaveBlock1
-_0810FDA8: .4byte 0x000013c2
- thumb_func_end sub_810FD80
-
- thumb_func_start sub_810FDAC
-sub_810FDAC: @ 810FDAC
- push {lr}
- movs r3, 0
- movs r2, 0
- ldr r0, _0810FDC8 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- subs r0, 0x8
- cmp r0, 0x7
- bhi _0810FE0C
- lsls r0, 2
- ldr r1, _0810FDCC @ =_0810FDD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810FDC8: .4byte gSpecialVar_0x8004
-_0810FDCC: .4byte _0810FDD0
- .align 2, 0
-_0810FDD0:
- .4byte _0810FE0C
- .4byte _0810FE0C
- .4byte _0810FDF0
- .4byte _0810FDF6
- .4byte _0810FDFC
- .4byte _0810FE02
- .4byte _0810FE08
- .4byte _0810FE0C
-_0810FDF0:
- movs r3, 0
- movs r2, 0x3
- b _0810FE0C
-_0810FDF6:
- movs r3, 0
- movs r2, 0x1
- b _0810FE0C
-_0810FDFC:
- movs r3, 0x1
- movs r2, 0
- b _0810FE0C
-_0810FE02:
- movs r3, 0
- movs r2, 0x4
- b _0810FE0C
-_0810FE08:
- movs r3, 0x1
- movs r2, 0x5
-_0810FE0C:
- ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8
- adds r1, r3, 0
- bl sub_810FE1C
- pop {r0}
- bx r0
- .align 2, 0
-_0810FE18: .4byte gSaveBlock1 + 0x30B8
- thumb_func_end sub_810FDAC
-
- thumb_func_start sub_810FE1C
-sub_810FE1C: @ 810FE1C
- push {r4,lr}
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsrs r1, 20
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0810FED0
- cmp r2, 0x5
- bhi _0810FEBC
- lsls r0, r2, 2
- ldr r1, _0810FE3C @ =_0810FE40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810FE3C: .4byte _0810FE40
- .align 2, 0
-_0810FE40:
- .4byte _0810FEBC
- .4byte _0810FE58
- .4byte _0810FE6C
- .4byte _0810FE80
- .4byte _0810FE94
- .4byte _0810FEA8
-_0810FE58:
- ldr r0, _0810FE64 @ =gStringVar1
- ldr r1, _0810FE68 @ =gOtherText_Steven
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE64: .4byte gStringVar1
-_0810FE68: .4byte gOtherText_Steven
-_0810FE6C:
- ldr r0, _0810FE78 @ =gStringVar1
- ldr r1, _0810FE7C @ =gOtherText_Brawly
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE78: .4byte gStringVar1
-_0810FE7C: .4byte gOtherText_Brawly
-_0810FE80:
- ldr r0, _0810FE8C @ =gStringVar1
- ldr r1, _0810FE90 @ =gOtherText_Winona
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE8C: .4byte gStringVar1
-_0810FE90: .4byte gOtherText_Winona
-_0810FE94:
- ldr r0, _0810FEA0 @ =gStringVar1
- ldr r1, _0810FEA4 @ =gOtherText_Phoebe
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEA0: .4byte gStringVar1
-_0810FEA4: .4byte gOtherText_Phoebe
-_0810FEA8:
- ldr r0, _0810FEB4 @ =gStringVar1
- ldr r1, _0810FEB8 @ =gOtherText_Glacia
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEB4: .4byte gStringVar1
-_0810FEB8: .4byte gOtherText_Glacia
-_0810FEBC:
- ldr r0, _0810FEC8 @ =gStringVar1
- ldr r1, _0810FECC @ =gOtherText_Wallace
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEC8: .4byte gStringVar1
-_0810FECC: .4byte gOtherText_Wallace
-_0810FED0:
- ldr r4, _0810FEF8 @ =gStringVar1
- adds r0, r4, 0
- movs r2, 0x7
- bl StringCopyN
- movs r0, 0xFF
- strb r0, [r4, 0x7]
- ldrb r0, [r4]
- cmp r0, 0xFC
- bne _0810FEF2
- ldrb r0, [r4, 0x1]
- cmp r0, 0x15
- bne _0810FEF2
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
-_0810FEF2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FEF8: .4byte gStringVar1
- thumb_func_end sub_810FE1C
-
- thumb_func_start sub_810FEFC
-sub_810FEFC: @ 810FEFC
- push {lr}
- ldr r0, _0810FF20 @ =0x00004095
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0810FF2C
- bl sub_810FA74
- ldr r0, _0810FF24 @ =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0810FF28
- bl sub_810FB9C
- b _0810FF2C
- .align 2, 0
-_0810FF20: .4byte 0x00004095
-_0810FF24: .4byte gBattleOutcome
-_0810FF28:
- bl sub_810FC18
-_0810FF2C:
- pop {r0}
- bx r0
- thumb_func_end sub_810FEFC
-
- thumb_func_start sub_810FF30
-sub_810FF30: @ 810FF30
- ldr r0, _0810FF40 @ =gSaveBlock1
- ldr r1, _0810FF44 @ =0x000013c2
- adds r0, r1
- ldrh r0, [r0]
- lsrs r0, 7
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_0810FF40: .4byte gSaveBlock1
-_0810FF44: .4byte 0x000013c2
- thumb_func_end sub_810FF30
-
- thumb_func_start sub_810FF48
-sub_810FF48: @ 810FF48
- ldr r0, _0810FF58 @ =gSaveBlock1
- ldr r1, _0810FF5C @ =0x000013c2
- adds r0, r1
- ldrh r2, [r0]
- movs r1, 0x80
- orrs r1, r2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0810FF58: .4byte gSaveBlock1
-_0810FF5C: .4byte 0x000013c2
- thumb_func_end sub_810FF48
-
- thumb_func_start sub_810FF60
-sub_810FF60: @ 810FF60
- push {lr}
- ldr r0, _0810FF74 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl sub_810FB10
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810FF74: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810FF60
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_tasks.s b/asm/field_tasks.s
deleted file mode 100644
index 5f3e3a03f..000000000
--- a/asm/field_tasks.s
+++ /dev/null
@@ -1,1972 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start Task_RunPerStepCallback
-Task_RunPerStepCallback: @ 806943C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08069460 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x8
- ldrsh r1, [r1, r2]
- ldr r2, _08069464 @ =gUnknown_08376364
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08069460: .4byte gTasks
-_08069464: .4byte gUnknown_08376364
- thumb_func_end Task_RunPerStepCallback
-
- thumb_func_start RunTimeBasedEvents
-RunTimeBasedEvents: @ 8069468
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0806947A
- cmp r0, 0x1
- beq _08069498
- b _080694AC
-_0806947A:
- ldr r0, _08069494 @ =gMain
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _080694AC
- bl DoTimeBasedEvents
- ldrh r0, [r4]
- adds r0, 0x1
- b _080694AA
- .align 2, 0
-_08069494: .4byte gMain
-_08069498:
- ldr r0, _080694B4 @ =gMain
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _080694AC
- ldrh r0, [r4]
- subs r0, 0x1
-_080694AA:
- strh r0, [r4]
-_080694AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080694B4: .4byte gMain
- thumb_func_end RunTimeBasedEvents
-
- thumb_func_start Task_RunTimeBasedEvents
-Task_RunTimeBasedEvents: @ 80694B8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080694E8 @ =gTasks + 0x8
- adds r4, r1, r0
- bl ScriptContext2_IsEnabled
- lsls r0, 24
- cmp r0, 0
- bne _080694E0
- adds r0, r4, 0
- bl RunTimeBasedEvents
- adds r0, r4, 0x2
- adds r1, r4, 0x4
- bl sub_80540D0
-_080694E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080694E8: .4byte gTasks + 0x8
- thumb_func_end Task_RunTimeBasedEvents
-
- thumb_func_start SetUpFieldTasks
-SetUpFieldTasks: @ 80694EC
- push {r4,r5,lr}
- ldr r5, _08069548 @ =Task_RunPerStepCallback
- adds r0, r5, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08069516
- adds r0, r5, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806954C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
-_08069516:
- ldr r4, _08069550 @ =Task_MuddySlope
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _0806952C
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_0806952C:
- ldr r4, _08069554 @ =Task_RunTimeBasedEvents
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08069542
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_08069542:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069548: .4byte Task_RunPerStepCallback
-_0806954C: .4byte gTasks
-_08069550: .4byte Task_MuddySlope
-_08069554: .4byte Task_RunTimeBasedEvents
- thumb_func_end SetUpFieldTasks
-
- thumb_func_start ActivatePerStepCallback
-ActivatePerStepCallback: @ 8069558
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08069590 @ =Task_RunPerStepCallback
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0806959A
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08069594 @ =gTasks + 0x8
- adds r1, r0, r1
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x1E
-_0806957C:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _0806957C
- cmp r4, 0x7
- bls _08069598
- movs r0, 0
- strh r0, [r1]
- b _0806959A
- .align 2, 0
-_08069590: .4byte Task_RunPerStepCallback
-_08069594: .4byte gTasks + 0x8
-_08069598:
- strh r4, [r1]
-_0806959A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ActivatePerStepCallback
-
- thumb_func_start ResetFieldTasksArgs
-ResetFieldTasksArgs: @ 80695A0
- push {lr}
- ldr r0, _080695D0 @ =Task_RunPerStepCallback
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080695D4 @ =Task_RunTimeBasedEvents
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _080695CA
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080695D8 @ =gTasks + 0x8
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2]
- strh r1, [r0, 0x4]
-_080695CA:
- pop {r0}
- bx r0
- .align 2, 0
-_080695D0: .4byte Task_RunPerStepCallback
-_080695D4: .4byte Task_RunTimeBasedEvents
-_080695D8: .4byte gTasks + 0x8
- thumb_func_end ResetFieldTasksArgs
-
- thumb_func_start DummyPerStepCallback
-DummyPerStepCallback: @ 80695DC
- bx lr
- thumb_func_end DummyPerStepCallback
-
- thumb_func_start sub_80695E0
-sub_80695E0: @ 80695E0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _080695F8
- adds r0, r5, 0
- b _08069630
-_080695F8:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _0806960A
- adds r0, r5, 0
- adds r0, 0x8
- b _08069630
-_0806960A:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _0806961C
- adds r0, r5, 0
- adds r0, 0x10
- b _08069630
-_0806961C:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- bne _0806962C
- movs r0, 0
- b _08069630
-_0806962C:
- adds r0, r5, 0
- adds r0, 0x18
-_08069630:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80695E0
-
- thumb_func_start sub_8069638
-sub_8069638: @ 8069638
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- mov r8, r3
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r7, r2, 16
- adds r0, r6, 0
- adds r1, r7, 0
- bl MapGridGetMetatileBehaviorAt
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_80695E0
- adds r4, r0, 0
- adds r5, r4, 0
- cmp r4, 0
- beq _080696B6
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- ldrh r2, [r4, 0x2]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _0806968E
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_0806968E:
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- ldrh r2, [r5, 0x6]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _080696B6
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_080696B6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8069638
-
- thumb_func_start sub_80696C0
-sub_80696C0: @ 80696C0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _080696E0 @ =gUnknown_08376384
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080696E0: .4byte gUnknown_08376384
- thumb_func_end sub_80696C0
-
- thumb_func_start sub_80696E4
-sub_80696E4: @ 80696E4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _08069704 @ =gUnknown_083763A4
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069704: .4byte gUnknown_083763A4
- thumb_func_end sub_80696E4
-
- thumb_func_start sub_8069708
-sub_8069708: @ 8069708
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _08069728 @ =gUnknown_083763C4
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069728: .4byte gUnknown_083763C4
- thumb_func_end sub_8069708
-
- thumb_func_start sub_806972C
-sub_806972C: @ 806972C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r10, r8
- lsls r1, 16
- lsrs r7, r1, 16
- mov r9, r7
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r5, r3, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _08069770
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, r5
- ble _080697B6
-_0806976C:
- movs r0, 0
- b _080697B8
-_08069770:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _08069788
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r5
- bge _080697B6
- b _0806976C
-_08069788:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _080697A0
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- ble _080697B6
- b _0806976C
-_080697A0:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- beq _080697B6
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- blt _0806976C
-_080697B6:
- movs r0, 0x1
-_080697B8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806972C
-
- thumb_func_start sub_80697C8
-sub_80697C8: @ 80697C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- mov r10, r8
- lsls r3, 16
- lsrs r7, r3, 16
- mov r9, r7
- lsls r0, 16
- asrs r6, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _0806980C
- lsls r0, r7, 16
- asrs r0, 16
- cmp r5, r0
- bge _08069852
-_08069808:
- movs r0, 0
- b _08069854
-_0806980C:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _08069824
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r5, r0
- ble _08069852
- b _08069808
-_08069824:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _0806983C
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bge _08069852
- b _08069808
-_0806983C:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- beq _08069852
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bgt _08069808
-_08069852:
- movs r0, 0x1
-_08069854:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80697C8
-
- thumb_func_start PerStepCallback_8069864
-PerStepCallback_8069864: @ 8069864
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069898 @ =gTasks + 0x8
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- adds r6, r5, 0
- cmp r0, 0x1
- beq _080698BE
- cmp r0, 0x1
- bgt _0806989C
- cmp r0, 0
- beq _080698A2
- b _080699CE
- .align 2, 0
-_08069898: .4byte gTasks + 0x8
-_0806989C:
- cmp r0, 0x2
- beq _0806998C
- b _080699CE
-_080698A2:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r2, 0x1
- bl sub_80696E4
- b _080699CA
-_080698BE:
- mov r0, sp
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080698D8
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r7, 0x6
- ldrsh r0, [r4, r7]
- cmp r1, r0
- beq _080699CE
-_080698D8:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r5, 0x6
- ldrsh r3, [r4, r5]
- bl sub_806972C
- cmp r0, 0
- beq _08069920
- movs r7, 0x4
- ldrsh r0, [r4, r7]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_80696C0
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- movs r5, 0x6
- ldrsh r1, [r4, r5]
- movs r2, 0
- bl sub_8069708
- ldrh r0, [r4, 0x4]
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0x6]
- strh r0, [r4, 0xA]
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
- b _0806992A
-_08069920:
- movs r7, 0x1
- negs r7, r7
- adds r0, r7, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
-_0806992A:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r5, r6, 0
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r7, 0x6
- ldrsh r3, [r4, r7]
- bl sub_80697C8
- cmp r0, 0
- beq _0806995E
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_80696C0
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
-_0806995E:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r6]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r5, 0
- ldrsh r1, [r6, r5]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _080699CE
- movs r0, 0x46
- bl PlaySE
- b _080699CE
-_0806998C:
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080699CE
- mov r0, sp
- movs r7, 0
- ldrsh r0, [r0, r7]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_80696E4
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080699CA
- movs r5, 0xA
- ldrsh r0, [r4, r5]
- cmp r0, r1
- beq _080699CA
- movs r7, 0x8
- ldrsh r0, [r4, r7]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_8069708
-_080699CA:
- movs r0, 0x1
- strh r0, [r4, 0x2]
-_080699CE:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PerStepCallback_8069864
-
- thumb_func_start sub_80699D8
-sub_80699D8: @ 80699D8
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08069A32
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _08069A14 @ =0x0000024e
- cmp r1, r0
- beq _08069A18
- adds r0, 0x8
- cmp r1, r0
- beq _08069A28
- b _08069A32
- .align 2, 0
-_08069A14: .4byte 0x0000024e
-_08069A18:
- ldr r2, _08069A24 @ =0x0000024f
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _08069A32
- .align 2, 0
-_08069A24: .4byte 0x0000024f
-_08069A28:
- ldr r2, _08069A38 @ =0x00000257
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_08069A32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069A38: .4byte 0x00000257
- thumb_func_end sub_80699D8
-
- thumb_func_start sub_8069A3C
-sub_8069A3C: @ 8069A3C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08069A96
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _08069A78 @ =0x0000024f
- cmp r1, r0
- beq _08069A7C
- adds r0, 0x8
- cmp r1, r0
- beq _08069A8C
- b _08069A96
- .align 2, 0
-_08069A78: .4byte 0x0000024f
-_08069A7C:
- ldr r2, _08069A88 @ =0x0000024e
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _08069A96
- .align 2, 0
-_08069A88: .4byte 0x0000024e
-_08069A8C:
- ldr r2, _08069A9C @ =0x00000256
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_08069A96:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069A9C: .4byte 0x00000256
- thumb_func_end sub_8069A3C
-
- thumb_func_start PerStepCallback_8069AA0
-PerStepCallback_8069AA0: @ 8069AA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069ADC @ =gTasks + 0x8
- adds r6, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r0, 0x2
- ldrsh r5, [r6, r0]
- mov r9, r4
- cmp r5, 0x1
- beq _08069B34
- cmp r5, 0x1
- bgt _08069AE0
- cmp r5, 0
- beq _08069AE8
- b _08069CA6
- .align 2, 0
-_08069ADC: .4byte gTasks + 0x8
-_08069AE0:
- cmp r5, 0x2
- bne _08069AE6
- b _08069C14
-_08069AE6:
- b _08069CA6
-_08069AE8:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r1, r9
- ldrh r0, [r1]
- strh r0, [r6, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r1, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- cmp r0, 0
- bne _08069B12
- b _08069CA2
-_08069B12:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_80699D8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
- b _08069CA2
-_08069B34:
- ldrh r0, [r6, 0x6]
- mov r8, r0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- ldrh r2, [r6, 0x4]
- mov r10, r2
- movs r3, 0x4
- ldrsh r7, [r6, r3]
- cmp r0, r7
- bne _08069B5C
- mov r0, r9
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- lsls r0, r3, 16
- asrs r0, 16
- cmp r1, r0
- bne _08069B5C
- b _08069CA6
-_08069B5C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r8
- lsls r4, r0, 16
- asrs r1, r4, 16
- adds r0, r7, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r7, r0, 24
- bl PlayerGetZCoord
- movs r1, 0
- ands r5, r0
- lsls r0, r5, 24
- adds r5, r4, 0
- cmp r0, 0
- bne _08069BA4
- movs r1, 0x1
-_08069BA4:
- cmp r1, 0
- beq _08069BB8
- ldr r1, [sp, 0x4]
- cmp r1, 0x1
- beq _08069BB2
- cmp r7, 0x1
- bne _08069BB8
-_08069BB2:
- movs r0, 0x47
- bl PlaySE
-_08069BB8:
- cmp r7, 0
- beq _08069BF4
- mov r2, r10
- lsls r4, r2, 16
- asrs r4, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8069A3C
- adds r0, r4, 0
- adds r1, r5, 0
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_80699D8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
-_08069BF4:
- mov r0, r10
- strh r0, [r6, 0x8]
- mov r1, r8
- strh r1, [r6, 0xA]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r2, r9
- ldrh r0, [r2]
- strh r0, [r6, 0x6]
- cmp r7, 0
- beq _08069CA6
- movs r0, 0x10
- strh r0, [r6, 0xC]
- movs r0, 0x2
- strh r0, [r6, 0x2]
-_08069C14:
- ldrh r0, [r6, 0xC]
- subs r0, 0x1
- strh r0, [r6, 0xC]
- ldrh r3, [r6, 0x8]
- mov r10, r3
- ldrh r0, [r6, 0xA]
- mov r8, r0
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- movs r1, 0x7
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bhi _08069C9A
- lsls r0, 2
- ldr r1, _08069C40 @ =_08069C44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08069C40: .4byte _08069C44
- .align 2, 0
-_08069C44:
- .4byte _08069C64
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C76
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C9A
-_08069C64:
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- mov r3, r8
- lsls r1, r3, 16
- asrs r1, 16
- bl CurrentMapDrawMetatileAt
- b _08069C9A
-_08069C76:
- mov r0, r10
- lsls r5, r0, 16
- asrs r5, 16
- mov r1, r8
- lsls r4, r1, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80699D8
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069A3C
-_08069C9A:
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _08069CA6
-_08069CA2:
- movs r0, 0x1
- strh r0, [r6, 0x2]
-_08069CA6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PerStepCallback_8069AA0
-
- thumb_func_start sub_8069CB8
-sub_8069CB8: @ 8069CB8
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r0, 16
- ldr r2, _08069CE8 @ =0xfffd0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xA
- bhi _08069CF4
- lsls r0, r1, 16
- asrs r1, r0, 16
- ldr r2, _08069CEC @ =0xfffa0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xD
- bhi _08069CF4
- ldr r0, _08069CF0 @ =gUnknown_083763E4
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08069CF4
- movs r0, 0x1
- b _08069CF6
- .align 2, 0
-_08069CE8: .4byte 0xfffd0000
-_08069CEC: .4byte 0xfffa0000
-_08069CF0: .4byte gUnknown_083763E4
-_08069CF4:
- movs r0, 0
-_08069CF6:
- pop {r1}
- bx r1
- thumb_func_end sub_8069CB8
-
- thumb_func_start sub_8069CFC
-sub_8069CFC: @ 8069CFC
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069CB8
- cmp r0, 0
- beq _08069D2A
- ldr r1, _08069D30 @ =gUnknown_083763E4
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl GetVarPointer
- subs r2, r5, 0x3
- movs r1, 0x1
- lsls r1, r2
- ldrh r2, [r0]
- orrs r1, r2
- strh r1, [r0]
-_08069D2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069D30: .4byte gUnknown_083763E4
- thumb_func_end sub_8069CFC
-
- thumb_func_start sub_8069D34
-sub_8069D34: @ 8069D34
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069CB8
- cmp r0, 0
- beq _08069D66
- ldr r1, _08069D6C @ =gUnknown_083763E4
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl VarGet
- lsls r0, 16
- subs r2, r5, 0x3
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r2
- ands r1, r0
- cmp r1, 0
- bne _08069D70
-_08069D66:
- movs r0, 0
- b _08069D72
- .align 2, 0
-_08069D6C: .4byte gUnknown_083763E4
-_08069D70:
- movs r0, 0x1
-_08069D72:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8069D34
-
- thumb_func_start sub_8069D78
-sub_8069D78: @ 8069D78
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08069DCC @ =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0]
- mov r9, r1
- ldr r7, [r0, 0x4]
- movs r5, 0
- cmp r5, r9
- bge _08069DC0
-_08069D90:
- movs r4, 0
- adds r0, r5, 0x1
- mov r8, r0
- cmp r4, r7
- bge _08069DBA
- lsls r6, r5, 16
-_08069D9C:
- lsls r1, r4, 16
- asrs r1, 16
- asrs r0, r6, 16
- bl sub_8069D34
- cmp r0, 0x1
- bne _08069DB4
- adds r1, r4, 0x7
- adds r0, r5, 0x7
- ldr r2, _08069DD0 @ =0x0000020e
- bl MapGridSetMetatileIdAt
-_08069DB4:
- adds r4, 0x1
- cmp r4, r7
- blt _08069D9C
-_08069DBA:
- mov r5, r8
- cmp r5, r9
- blt _08069D90
-_08069DC0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08069DCC: .4byte gMapHeader
-_08069DD0: .4byte 0x0000020e
- thumb_func_end sub_8069D78
-
- thumb_func_start PerStepCallback_8069DD4
-PerStepCallback_8069DD4: @ 8069DD4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069DF8 @ =gTasks + 0x8
- adds r5, r1, r0
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08069E20
- cmp r0, 0x1
- bgt _08069DFC
- cmp r0, 0
- beq _08069E08
- b _08069F56
- .align 2, 0
-_08069DF8: .4byte gTasks + 0x8
-_08069DFC:
- cmp r0, 0x2
- beq _08069EB6
- cmp r0, 0x3
- bne _08069E06
- b _08069F10
-_08069E06:
- b _08069F56
-_08069E08:
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- b _08069F52
-_08069E20:
- mov r7, sp
- adds r7, 0x2
- mov r0, sp
- adds r1, r7, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069E4A
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069E4A
- b _08069F56
-_08069E4A:
- strh r2, [r5, 0x4]
- ldrh r0, [r7]
- strh r0, [r5, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08069E8C @ =0x00004022
- bl GetVarPointer
- adds r6, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsThinIce
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08069E90
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x2
- b _08069EA8
- .align 2, 0
-_08069E8C: .4byte 0x00004022
-_08069E90:
- adds r0, r4, 0
- bl MetatileBehavior_IsCrackedIce
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08069F56
- movs r0, 0
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x3
-_08069EA8:
- strh r0, [r5, 0x2]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x8]
- ldrh r0, [r7]
- strh r0, [r5, 0xA]
- b _08069F56
-_08069EB6:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _08069F1A
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x2A
- bl PlaySE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069F0C @ =0x0000020e
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- asrs r1, 16
- bl sub_8069CFC
- b _08069F52
- .align 2, 0
-_08069F0C: .4byte 0x0000020e
-_08069F10:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _08069F20
-_08069F1A:
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- b _08069F56
-_08069F20:
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x29
- bl PlaySE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069F60 @ =0x00000206
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
-_08069F52:
- movs r0, 0x1
- strh r0, [r5, 0x2]
-_08069F56:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08069F60: .4byte 0x00000206
- thumb_func_end PerStepCallback_8069DD4
-
- thumb_func_start PerStepCallback_8069F64
-PerStepCallback_8069F64: @ 8069F64
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069FE8 @ =gTasks + 0x8
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069F9E
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A02A
-_08069F9E:
- strh r2, [r5, 0x2]
- ldrh r0, [r4]
- strh r0, [r5, 0x4]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsAshGrass
- lsls r0, 24
- cmp r0, 0
- beq _0806A02A
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- ldr r1, _08069FEC @ =0x0000020a
- cmp r0, r1
- bne _08069FF4
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069FF0 @ =0x00000212
- movs r3, 0x4
- bl ash
- b _0806A006
- .align 2, 0
-_08069FE8: .4byte gTasks + 0x8
-_08069FEC: .4byte 0x0000020a
-_08069FF0: .4byte 0x00000212
-_08069FF4:
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _0806A034 @ =0x00000206
- movs r3, 0x4
- bl ash
-_0806A006:
- movs r0, 0x87
- lsls r0, 1
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- cmp r0, 0
- beq _0806A02A
- ldr r0, _0806A038 @ =0x00004048
- bl GetVarPointer
- adds r2, r0, 0
- ldrh r1, [r2]
- ldr r0, _0806A03C @ =0x0000270e
- cmp r1, r0
- bhi _0806A02A
- adds r0, r1, 0x1
- strh r0, [r2]
-_0806A02A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A034: .4byte 0x00000206
-_0806A038: .4byte 0x00004048
-_0806A03C: .4byte 0x0000270e
- thumb_func_end PerStepCallback_8069F64
-
- thumb_func_start sub_806A040
-sub_806A040: @ 806A040
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0806A074 @ =0x0000022f
- ldr r2, _0806A078 @ =0x00000237
- cmp r0, r1
- bne _0806A05C
- subs r2, 0x31
-_0806A05C:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A074: .4byte 0x0000022f
-_0806A078: .4byte 0x00000237
- thumb_func_end sub_806A040
-
- thumb_func_start PerStepCallback_806A07C
-PerStepCallback_806A07C: @ 806A07C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0806A164 @ =gTasks + 0x8
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r6, r0, 16
- ldrh r1, [r5, 0x8]
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- adds r7, r4, 0
- cmp r0, 0
- beq _0806A0CE
- subs r0, r1, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bne _0806A0CE
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl sub_806A040
-_0806A0CE:
- ldrh r1, [r5, 0xE]
- movs r3, 0xE
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0806A0EE
- subs r0, r1, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0806A0EE
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- bl sub_806A040
-_0806A0EE:
- lsls r0, r6, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl MetatileBehavior_IsCrackedFloorHole
- lsls r0, 24
- cmp r0, 0
- beq _0806A106
- ldr r0, _0806A168 @ =0x00004022
- movs r1, 0
- bl VarSet
-_0806A106:
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _0806A122
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A182
-_0806A122:
- strh r2, [r5, 0x4]
- adds r4, r7, 0
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- adds r0, r6, 0
- bl MetatileBehavior_IsCrackedFloor
- lsls r0, 24
- cmp r0, 0
- beq _0806A182
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _0806A14A
- ldr r0, _0806A168 @ =0x00004022
- movs r1, 0
- bl VarSet
-_0806A14A:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0806A16C
- movs r0, 0x3
- strh r0, [r5, 0x8]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0xA]
- ldrh r0, [r4]
- strh r0, [r5, 0xC]
- b _0806A182
- .align 2, 0
-_0806A164: .4byte gTasks + 0x8
-_0806A168: .4byte 0x00004022
-_0806A16C:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _0806A182
- movs r0, 0x3
- strh r0, [r5, 0xE]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x10]
- ldrh r0, [r7]
- strh r0, [r5, 0x12]
-_0806A182:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PerStepCallback_806A07C
-
- thumb_func_start sub_806A18C
-sub_806A18C: @ 806A18C
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- ldrh r0, [r3]
- subs r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- cmp r0, 0
- bne _0806A1A8
- movs r2, 0xE8
- b _0806A1BC
-_0806A1A8:
- ldr r1, _0806A1E4 @ =gUnknown_08376418
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _0806A1B4
- adds r0, 0x7
-_0806A1B4:
- asrs r0, 3
- lsls r0, 1
- adds r0, r1
- ldrh r2, [r0]
-_0806A1BC:
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE8
- bl MapGridSetMetatileIdAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A1E4: .4byte gUnknown_08376418
- thumb_func_end sub_806A18C
-
- thumb_func_start Task_MuddySlope
-Task_MuddySlope: @ 806A1E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0806A230 @ =gTasks + 0x8
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- ldr r0, _0806A234 @ =gSaveBlock1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- lsls r1, 8
- ldrb r0, [r0, 0x5]
- lsls r0, 24
- asrs r0, 24
- orrs r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- mov r8, r5
- cmp r1, 0
- beq _0806A238
- cmp r1, 0x1
- beq _0806A264
- b _0806A2B8
- .align 2, 0
-_0806A230: .4byte gTasks + 0x8
-_0806A234: .4byte gSaveBlock1
-_0806A238:
- strh r7, [r4]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- movs r0, 0x1
- strh r0, [r4, 0x2]
- strh r1, [r4, 0x8]
- strh r1, [r4, 0xE]
- strh r1, [r4, 0x14]
- strh r1, [r4, 0x1A]
- b _0806A2B8
-_0806A252:
- movs r0, 0x20
- strh r0, [r1]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x2]
- mov r2, r8
- ldrh r0, [r2]
- strh r0, [r1, 0x4]
- b _0806A2B8
-_0806A264:
- mov r0, sp
- movs r3, 0x4
- ldrsh r1, [r4, r3]
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bne _0806A280
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r3, 0
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A2B8
-_0806A280:
- strh r2, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsMuddySlope
- lsls r0, 24
- cmp r0, 0
- beq _0806A2B8
- movs r6, 0x4
- adds r1, r4, 0
- adds r1, 0x8
-_0806A2A8:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0806A252
- adds r1, 0x6
- adds r6, 0x3
- cmp r6, 0xD
- ble _0806A2A8
-_0806A2B8:
- ldr r2, _0806A2D4 @ =gUnknown_0202E844
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806A2D8
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r7, r0
- beq _0806A2D8
- strh r7, [r4]
- ldrh r0, [r2, 0x4]
- ldrh r1, [r2, 0x8]
- b _0806A2DC
- .align 2, 0
-_0806A2D4: .4byte gUnknown_0202E844
-_0806A2D8:
- movs r0, 0
- movs r1, 0
-_0806A2DC:
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- lsls r0, r1, 16
- asrs r7, r0, 16
- adds r5, r4, 0
- adds r5, 0x8
- adds r4, r5, 0
- movs r6, 0x9
-_0806A2EE:
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0806A312
- ldrh r0, [r4, 0x2]
- mov r3, r8
- subs r0, r3
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x4]
- subs r0, r7
- strh r0, [r4, 0x4]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- adds r0, r5, 0
- bl sub_806A18C
-_0806A312:
- adds r4, 0x6
- adds r5, 0x6
- subs r6, 0x3
- cmp r6, 0
- bge _0806A2EE
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end Task_MuddySlope
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/sound_check_menu.s b/asm/sound_check_menu.s
deleted file mode 100644
index b47229d2b..000000000
--- a/asm/sound_check_menu.s
+++ /dev/null
@@ -1,2444 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80BA0A8
-sub_80BA0A8: @ 80BA0A8
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80BA0A8
-
- thumb_func_start sub_80BA0C0
-sub_80BA0C0: @ 80BA0C0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r0, _080BA0E8 @ =gUnknown_020387B0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BA0E2
- bl m4aSoundMain
- bl m4aSoundMain
- bl m4aSoundMain
-_080BA0E2:
- pop {r0}
- bx r0
- .align 2, 0
-_080BA0E8: .4byte gUnknown_020387B0
- thumb_func_end sub_80BA0C0
-
- thumb_func_start unref_sub_80BA0EC
-unref_sub_80BA0EC: @ 80BA0EC
- push {r4-r6,lr}
- sub sp, 0xC
- movs r0, 0
- bl SetVBlankCallback
- movs r6, 0x80
- lsls r6, 19
- movs r5, 0
- strh r5, [r6]
- ldr r0, _080BA20C @ =REG_BG2CNT
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x10
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r0, 0x6
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r0, 0x6
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- add r0, sp, 0x4
- strh r5, [r0]
- ldr r1, _080BA210 @ =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA214 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r4, 0
- str r4, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA218 @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r1]
- movs r0, 0xA0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA21C @ =0x81000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl ResetTasks
- bl ResetSpriteData
- ldr r0, _080BA220 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _080BA224 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080BA228 @ =REG_WIN0H
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- subs r0, 0x2
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- ldr r1, _080BA22C @ =REG_WININ
- ldr r2, _080BA230 @ =0x00001111
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x31
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xE1
- strh r0, [r1]
- ldr r0, _080BA234 @ =REG_BLDALPHA
- strh r4, [r0]
- adds r1, 0x4
- movs r0, 0x7
- strh r0, [r1]
- ldr r1, _080BA238 @ =0x04000200
- movs r2, 0x1
- strh r2, [r1]
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- ldr r2, _080BA23C @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _080BA240 @ =sub_80BA0C0
- bl SetVBlankCallback
- ldr r0, _080BA244 @ =sub_80BA0A8
- bl SetMainCallback2
- ldr r1, _080BA248 @ =0x00007140
- adds r0, r1, 0
- strh r0, [r6]
- ldr r0, _080BA24C @ =sub_80BA258
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BA250 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r4, [r1, 0xE]
- ldr r0, _080BA254 @ =gUnknown_020387B0
- strb r5, [r0]
- strh r4, [r1, 0xE]
- bl m4aSoundInit
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA20C: .4byte REG_BG2CNT
-_080BA210: .4byte 0x040000d4
-_080BA214: .4byte 0x8100c000
-_080BA218: .4byte 0x85000100
-_080BA21C: .4byte 0x81000200
-_080BA220: .4byte gWindowConfig_81E6C3C
-_080BA224: .4byte gWindowConfig_81E6CE4
-_080BA228: .4byte REG_WIN0H
-_080BA22C: .4byte REG_WININ
-_080BA230: .4byte 0x00001111
-_080BA234: .4byte REG_BLDALPHA
-_080BA238: .4byte 0x04000200
-_080BA23C: .4byte REG_DISPSTAT
-_080BA240: .4byte sub_80BA0C0
-_080BA244: .4byte sub_80BA0A8
-_080BA248: .4byte 0x00007140
-_080BA24C: .4byte sub_80BA258
-_080BA250: .4byte gTasks
-_080BA254: .4byte gUnknown_020387B0
- thumb_func_end unref_sub_80BA0EC
-
- thumb_func_start sub_80BA258
-sub_80BA258: @ 80BA258
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x40
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080BA354 @ =gDebugText_SoundCheckJap
- mov r0, sp
- movs r2, 0x9
- bl memcpy
- add r7, sp, 0xC
- ldr r1, _080BA358 @ =gDebugText_BGM
- adds r0, r7, 0
- movs r2, 0x4
- bl memcpy
- add r0, sp, 0x10
- mov r8, r0
- ldr r1, _080BA35C @ =gDebugText_SE
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x14
- ldr r1, _080BA360 @ =gUnknown_083D02D9
- adds r0, r5, 0
- movs r2, 0xD
- bl memcpy
- add r4, sp, 0x24
- ldr r1, _080BA364 @ =gDebugText_UpDown
- adds r0, r4, 0
- movs r2, 0xC
- bl memcpy
- add r6, sp, 0x30
- ldr r1, _080BA368 @ =gDebugText_DriverTest
- adds r0, r6, 0
- movs r2, 0xE
- bl memcpy
- ldr r0, _080BA36C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BA344
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x1B
- movs r3, 0x3
- bl MenuDrawTextWindow
- movs r0, 0x2
- movs r1, 0x5
- movs r2, 0x1B
- movs r3, 0xA
- bl MenuDrawTextWindow
- movs r0, 0x2
- movs r1, 0xC
- movs r2, 0x1B
- movs r3, 0x11
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x4
- movs r2, 0x1
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0xE
- movs r2, 0x1
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0x4
- movs r2, 0x6
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0xE
- movs r2, 0x6
- bl MenuPrint
- mov r0, r8
- movs r1, 0x4
- movs r2, 0xD
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0xE
- movs r2, 0xD
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0xE
- movs r2, 0x12
- bl MenuPrint
- ldr r1, _080BA370 @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BA374 @ =sub_80BA384
- str r1, [r0]
- ldr r1, _080BA378 @ =REG_WIN0H
- ldr r2, _080BA37C @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA380 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
-_080BA344:
- add sp, 0x40
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA354: .4byte gDebugText_SoundCheckJap
-_080BA358: .4byte gDebugText_BGM
-_080BA35C: .4byte gDebugText_SE
-_080BA360: .4byte gUnknown_083D02D9
-_080BA364: .4byte gDebugText_UpDown
-_080BA368: .4byte gDebugText_DriverTest
-_080BA36C: .4byte gPaletteFade
-_080BA370: .4byte gTasks
-_080BA374: .4byte sub_80BA384
-_080BA378: .4byte REG_WIN0H
-_080BA37C: .4byte 0x000011df
-_080BA380: .4byte 0x0000011f
- thumb_func_end sub_80BA258
-
- thumb_func_start sub_80BA384
-sub_80BA384: @ 80BA384
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080BA3EC @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrb r0, [r4, 0x8]
- bl sub_80BA6B8
- ldr r1, _080BA3F0 @ =0x0000015d
- adds r0, r1, 0
- ldrh r2, [r4, 0xA]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- movs r2, 0x8
- bl sub_80BA700
- ldr r1, _080BA3F4 @ =gBGMNames
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0x8
- bl sub_80BA79C
- ldrh r0, [r4, 0xC]
- movs r1, 0x7
- movs r2, 0xF
- bl sub_80BA700
- ldr r1, _080BA3F8 @ =gSENames
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0xF
- bl sub_80BA79C
- ldr r0, _080BA3FC @ =sub_80BA65C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA3EC: .4byte gTasks
-_080BA3F0: .4byte 0x0000015d
-_080BA3F4: .4byte gBGMNames
-_080BA3F8: .4byte gSENames
-_080BA3FC: .4byte sub_80BA65C
- thumb_func_end sub_80BA384
-
- thumb_func_start sub_80BA400
-sub_80BA400: @ 80BA400
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080BA428 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BA434
- ldr r0, _080BA42C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA430 @ =sub_80BA800
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA428: .4byte gMain
-_080BA42C: .4byte gTasks
-_080BA430: .4byte sub_80BA800
-_080BA434:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BA458
- ldr r0, _080BA450 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA454 @ =sub_80BAF84
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA450: .4byte gTasks
-_080BA454: .4byte sub_80BAF84
-_080BA458:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080BA478
- ldr r0, _080BA470 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA474 @ =sub_80BB25C
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA470: .4byte gTasks
-_080BA474: .4byte sub_80BB25C
-_080BA478:
- movs r6, 0x1
- movs r5, 0x1
- ands r5, r1
- cmp r5, 0
- beq _080BA538
- ldr r0, _080BA4AC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r5, r1, r0
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080BA4D0
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080BA4BA
- movs r3, 0xC
- ldrsh r4, [r5, r3]
- cmp r4, 0
- beq _080BA4B0
- ldrh r0, [r5, 0x10]
- bl m4aSongNumStop
- b _080BA4C4
- .align 2, 0
-_080BA4AC: .4byte gTasks
-_080BA4B0:
- ldrh r0, [r5, 0x10]
- bl m4aSongNumStop
- strh r4, [r5, 0x10]
- b _080BA64C
-_080BA4BA:
- movs r4, 0xC
- ldrsh r0, [r5, r4]
- cmp r0, 0
- bne _080BA4C4
- b _080BA64C
-_080BA4C4:
- ldrh r0, [r5, 0xC]
- bl m4aSongNumStart
- ldrh r0, [r5, 0xC]
- strh r0, [r5, 0x10]
- b _080BA64C
-_080BA4D0:
- ldrh r1, [r5, 0xE]
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080BA514
- movs r3, 0xA
- ldrsh r4, [r5, r3]
- cmp r4, 0
- beq _080BA500
- ldr r0, _080BA4FC @ =0x0000015d
- adds r4, r0, 0
- adds r0, r1, r4
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStop
- ldrh r1, [r5, 0xA]
- adds r4, r1
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- b _080BA528
- .align 2, 0
-_080BA4FC: .4byte 0x0000015d
-_080BA500:
- ldr r2, _080BA510 @ =0x0000015d
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStop
- strh r4, [r5, 0xE]
- b _080BA64C
- .align 2, 0
-_080BA510: .4byte 0x0000015d
-_080BA514:
- ldrh r1, [r5, 0xA]
- movs r3, 0xA
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _080BA520
- b _080BA64C
-_080BA520:
- ldr r4, _080BA534 @ =0x0000015d
- adds r0, r1, r4
- lsls r0, 16
- lsrs r0, 16
-_080BA528:
- bl m4aSongNumStart
- ldrh r0, [r5, 0xA]
- strh r0, [r5, 0xE]
- b _080BA64C
- .align 2, 0
-_080BA534: .4byte 0x0000015d
-_080BA538:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BA570
- movs r0, 0x5
- bl m4aSongNumStart
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080BA568 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BA56C @ =sub_80BA68C
- str r1, [r0]
- b _080BA64C
- .align 2, 0
-_080BA568: .4byte gTasks
-_080BA56C: .4byte sub_80BA68C
-_080BA570:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080BA582
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BA59C
-_080BA582:
- ldr r0, _080BA598 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- eors r0, r6
- strh r0, [r1, 0x8]
-_080BA592:
- movs r0, 0x1
- b _080BA64E
- .align 2, 0
-_080BA598: .4byte gTasks
-_080BA59C:
- movs r0, 0x10
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080BA5EA
- ldr r0, _080BA5CC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080BA5D6
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _080BA5D0
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080BA592
- .align 2, 0
-_080BA5CC: .4byte gTasks
-_080BA5D0:
- movs r0, 0xF7
- strh r0, [r1, 0xC]
- b _080BA592
-_080BA5D6:
- ldrh r2, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0
- ble _080BA5E4
- subs r0, r2, 0x1
- b _080BA5E6
-_080BA5E4:
- movs r0, 0x75
-_080BA5E6:
- strh r0, [r1, 0xA]
- b _080BA592
-_080BA5EA:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BA630
- ldr r1, _080BA614 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x8
- ldrsh r2, [r1, r0]
- cmp r2, 0
- beq _080BA61C
- ldrh r2, [r1, 0xC]
- movs r4, 0xC
- ldrsh r0, [r1, r4]
- cmp r0, 0xF6
- bgt _080BA618
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080BA592
- .align 2, 0
-_080BA614: .4byte gTasks
-_080BA618:
- strh r3, [r1, 0xC]
- b _080BA592
-_080BA61C:
- ldrh r3, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0x74
- bgt _080BA62C
- adds r0, r3, 0x1
- strh r0, [r1, 0xA]
- b _080BA592
-_080BA62C:
- strh r2, [r1, 0xA]
- b _080BA592
-_080BA630:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080BA648
- ldr r0, _080BA644 @ =gUnknown_020387B0
- strb r6, [r0]
- b _080BA64C
- .align 2, 0
-_080BA644: .4byte gUnknown_020387B0
-_080BA648:
- ldr r0, _080BA658 @ =gUnknown_020387B0
- strb r1, [r0]
-_080BA64C:
- movs r0, 0
-_080BA64E:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080BA658: .4byte gUnknown_020387B0
- thumb_func_end sub_80BA400
-
- thumb_func_start sub_80BA65C
-sub_80BA65C: @ 80BA65C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80BA400
- lsls r0, 24
- cmp r0, 0
- beq _080BA67C
- ldr r0, _080BA684 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA688 @ =sub_80BA384
- str r0, [r1]
-_080BA67C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA684: .4byte gTasks
-_080BA688: .4byte sub_80BA384
- thumb_func_end sub_80BA65C
-
- thumb_func_start sub_80BA68C
-sub_80BA68C: @ 80BA68C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080BA6B0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BA6AA
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080BA6B4 @ =CB2_InitTitleScreen
- bl SetMainCallback2
-_080BA6AA:
- pop {r0}
- bx r0
- .align 2, 0
-_080BA6B0: .4byte gPaletteFade
-_080BA6B4: .4byte CB2_InitTitleScreen
- thumb_func_end sub_80BA68C
-
- thumb_func_start sub_80BA6B8
-sub_80BA6B8: @ 80BA6B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080BA6C6
- cmp r0, 0x1
- beq _080BA6E0
-_080BA6C6:
- ldr r1, _080BA6D4 @ =REG_WIN1H
- ldr r2, _080BA6D8 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA6DC @ =0x00002957
- b _080BA6EC
- .align 2, 0
-_080BA6D4: .4byte REG_WIN1H
-_080BA6D8: .4byte 0x000011df
-_080BA6DC: .4byte 0x00002957
-_080BA6E0:
- ldr r1, _080BA6F4 @ =REG_WIN1H
- ldr r2, _080BA6F8 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA6FC @ =0x0000618f
-_080BA6EC:
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BA6F4: .4byte REG_WIN1H
-_080BA6F8: .4byte 0x000011df
-_080BA6FC: .4byte 0x0000618f
- thumb_func_end sub_80BA6B8
-
- thumb_func_start sub_80BA700
-sub_80BA700: @ 80BA700
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r7, r2, 16
- movs r1, 0
- movs r2, 0
-_080BA714:
- mov r3, sp
- adds r0, r3, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _080BA714
- mov r1, sp
- movs r0, 0xB0
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- movs r4, 0
- adds r0, r5, 0
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080BA748
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1]
- movs r4, 0x1
-_080BA748:
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080BA766
- cmp r4, 0
- beq _080BA76C
-_080BA766:
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1, 0x1]
-_080BA76C:
- mov r4, sp
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r4, 0x2]
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- mov r0, sp
- bl MenuPrint
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA700
-
- thumb_func_start sub_80BA79C
-sub_80BA79C: @ 80BA79C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- movs r3, 0
- movs r1, 0
-_080BA7AE:
- mov r2, sp
- adds r0, r2, r3
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xA
- bls _080BA7AE
- mov r0, sp
- movs r1, 0xFF
- strb r1, [r0, 0xA]
- movs r3, 0
- ldrb r0, [r4]
- lsls r2, r6, 24
- lsls r5, 24
- cmp r0, 0xFF
- beq _080BA7EC
-_080BA7D0:
- mov r0, sp
- adds r1, r0, r3
- adds r0, r4, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080BA7EC
- cmp r3, 0x9
- bls _080BA7D0
-_080BA7EC:
- lsrs r1, r2, 24
- lsrs r2, r5, 24
- mov r0, sp
- bl MenuPrint
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA79C
-
- thumb_func_start sub_80BA800
-sub_80BA800: @ 80BA800
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xCC
- lsls r0, 24
- str r0, [sp, 0xB0]
- lsrs r2, r0, 24
- str r2, [sp, 0xAC]
- ldr r1, _080BA9E8 @ =gUnknown_083D0312
- mov r0, sp
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0xB4]
- ldr r1, _080BA9EC @ =gUnknown_083D031C
- movs r2, 0xB
- bl memcpy
- mov r2, sp
- adds r2, 0x18
- str r2, [sp, 0xB8]
- ldr r1, _080BA9F0 @ =gDebugText_Voice
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0x24
- str r0, [sp, 0xBC]
- ldr r1, _080BA9F4 @ =gDebugText_Volume
- movs r2, 0xA
- bl memcpy
- mov r2, sp
- adds r2, 0x30
- str r2, [sp, 0xC0]
- ldr r1, _080BA9F8 @ =gDebugText_Panpot
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0x3C
- str r0, [sp, 0xC4]
- ldr r1, _080BA9FC @ =gDebugText_Pitch
- movs r2, 0xA
- bl memcpy
- mov r2, sp
- adds r2, 0x48
- str r2, [sp, 0xC8]
- ldr r1, _080BAA00 @ =gDebugText_Length
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- add r4, sp, 0x54
- ldr r1, _080BAA04 @ =gDebugText_Release
- adds r0, r4, 0
- movs r2, 0xA
- bl memcpy
- add r7, sp, 0x60
- ldr r1, _080BAA08 @ =gDebugText_Progress
- adds r0, r7, 0
- movs r2, 0xA
- bl memcpy
- add r0, sp, 0x6C
- mov r10, r0
- ldr r1, _080BAA0C @ =gDebugText_Chorus
- movs r2, 0xA
- bl memcpy
- add r2, sp, 0x78
- mov r9, r2
- ldr r1, _080BAA10 @ =gDebugText_Priority
- mov r0, r9
- movs r2, 0xA
- bl memcpy
- add r0, sp, 0x84
- mov r8, r0
- ldr r1, _080BAA14 @ =gUnknown_083D0381
- movs r2, 0x9
- bl memcpy
- add r6, sp, 0x90
- ldr r1, _080BAA18 @ =gUnknown_083D038A
- adds r0, r6, 0
- movs r2, 0x9
- bl memcpy
- add r5, sp, 0x9C
- ldr r1, _080BAA1C @ =gUnknown_083D0393
- adds r0, r5, 0
- movs r2, 0x9
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x13
- movs r2, 0x4
- bl MenuPrint
- ldr r0, [sp, 0xB4]
- movs r1, 0x13
- movs r2, 0x2
- bl MenuPrint
- ldr r0, [sp, 0xB8]
- movs r1, 0x2
- movs r2, 0x1
- bl MenuPrint
- ldr r0, [sp, 0xBC]
- movs r1, 0x2
- movs r2, 0x3
- bl MenuPrint
- ldr r0, [sp, 0xC0]
- movs r1, 0x2
- movs r2, 0x5
- bl MenuPrint
- ldr r0, [sp, 0xC4]
- movs r1, 0x2
- movs r2, 0x7
- bl MenuPrint
- ldr r0, [sp, 0xC8]
- movs r1, 0x2
- movs r2, 0x9
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xB
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- mov r0, r10
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- mov r0, r9
- movs r1, 0x2
- movs r2, 0x11
- bl MenuPrint
- mov r0, r8
- movs r1, 0x13
- movs r2, 0x10
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x13
- movs r2, 0xE
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x13
- movs r2, 0xC
- bl MenuPrint
- ldr r1, _080BAA20 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, _080BAA24 @ =gUnknown_020387B3
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080BAA28 @ =gUnknown_020387B1
- strb r1, [r0]
- ldr r0, _080BAA2C @ =gUnknown_020387B2
- strb r1, [r0]
- ldr r0, _080BAA30 @ =gUnknown_03005D30
- movs r2, 0
- str r2, [r0]
- ldr r0, _080BAA34 @ =gUnknown_020387D8
- strb r2, [r0]
- ldr r1, _080BAA38 @ =gUnknown_020387D9
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080BAA3C @ =gUnknown_020387B4
- str r2, [r0]
- movs r1, 0x78
- str r1, [r0, 0x4]
- str r2, [r0, 0x8]
- movs r1, 0xF0
- lsls r1, 6
- str r1, [r0, 0xC]
- movs r1, 0xB4
- str r1, [r0, 0x10]
- str r2, [r0, 0x18]
- str r2, [r0, 0x14]
- str r2, [r0, 0x1C]
- movs r1, 0x2
- str r1, [r0, 0x20]
- bl sub_80BAD5C
- movs r0, 0
- movs r1, 0
- bl sub_80BAE10
- ldr r1, _080BAA40 @ =gTasks
- ldr r2, [sp, 0xAC]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BAA44 @ =sub_80BAA48
- str r1, [r0]
- add sp, 0xCC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA9E8: .4byte gUnknown_083D0312
-_080BA9EC: .4byte gUnknown_083D031C
-_080BA9F0: .4byte gDebugText_Voice
-_080BA9F4: .4byte gDebugText_Volume
-_080BA9F8: .4byte gDebugText_Panpot
-_080BA9FC: .4byte gDebugText_Pitch
-_080BAA00: .4byte gDebugText_Length
-_080BAA04: .4byte gDebugText_Release
-_080BAA08: .4byte gDebugText_Progress
-_080BAA0C: .4byte gDebugText_Chorus
-_080BAA10: .4byte gDebugText_Priority
-_080BAA14: .4byte gUnknown_083D0381
-_080BAA18: .4byte gUnknown_083D038A
-_080BAA1C: .4byte gUnknown_083D0393
-_080BAA20: .4byte REG_WIN0H
-_080BAA24: .4byte gUnknown_020387B3
-_080BAA28: .4byte gUnknown_020387B1
-_080BAA2C: .4byte gUnknown_020387B2
-_080BAA30: .4byte gUnknown_03005D30
-_080BAA34: .4byte gUnknown_020387D8
-_080BAA38: .4byte gUnknown_020387D9
-_080BAA3C: .4byte gUnknown_020387B4
-_080BAA40: .4byte gTasks
-_080BAA44: .4byte sub_80BAA48
- thumb_func_end sub_80BA800
-
- thumb_func_start sub_80BAA48
-sub_80BAA48: @ 80BAA48
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080BAA90 @ =gMain
- ldrh r2, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080BAAA8
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BAA94 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BAA98 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BAA9C @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BAAA0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BAAA4 @ =sub_80BA258
- str r1, [r0]
- b _080BACC6
- .align 2, 0
-_080BAA90: .4byte gMain
-_080BAA94: .4byte 0x00007140
-_080BAA98: .4byte 0x000011df
-_080BAA9C: .4byte 0x0000011f
-_080BAAA0: .4byte gTasks
-_080BAAA4: .4byte sub_80BA258
-_080BAAA8:
- ldrh r1, [r1, 0x30]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080BAAD0
- ldr r1, _080BAACC @ =gUnknown_020387B3
- ldrb r2, [r1]
- subs r0, r2, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080BAAEA
- movs r0, 0x8
- strb r0, [r1]
- b _080BAAEA
- .align 2, 0
-_080BAACC: .4byte gUnknown_020387B3
-_080BAAD0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BAAF8
- ldr r1, _080BAAF4 @ =gUnknown_020387B3
- ldrb r2, [r1]
- adds r0, r2, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x8
- ble _080BAAEA
- strb r3, [r1]
-_080BAAEA:
- ldrb r1, [r1]
- adds r0, r2, 0
- bl sub_80BAE10
- b _080BACC6
- .align 2, 0
-_080BAAF4: .4byte gUnknown_020387B3
-_080BAAF8:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080BAB14
- ldr r0, _080BAB10 @ =gUnknown_020387D8
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- bl sub_80BAD5C
- b _080BACC6
- .align 2, 0
-_080BAB10: .4byte gUnknown_020387D8
-_080BAB14:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _080BAB38
- ldr r4, _080BAB34 @ =gUnknown_020387D9
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- bl sub_80BAD5C
- ldrb r0, [r4]
- bl SetPokemonCryStereo
- b _080BACC6
- .align 2, 0
-_080BAB34: .4byte gUnknown_020387D9
-_080BAB38:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BAB46
- movs r0, 0xA
- b _080BAB6E
-_080BAB46:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BAB56
- movs r0, 0xA
- negs r0, r0
- b _080BAB6E
-_080BAB56:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BAB64
- movs r0, 0x1
- negs r0, r0
- b _080BAB6E
-_080BAB64:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080BAB78
- movs r0, 0x1
-_080BAB6E:
- bl sub_80BACDC
- bl sub_80BAD5C
- b _080BACC6
-_080BAB78:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _080BAB82
- b _080BACA2
-_080BAB82:
- ldr r4, _080BABE4 @ =gUnknown_020387B4
- ldrb r0, [r4, 0x4]
- bl SetPokemonCryVolume
- movs r0, 0x8
- ldrsb r0, [r4, r0]
- bl SetPokemonCryPanpot
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- bl SetPokemonCryPitch
- ldrh r0, [r4, 0x10]
- bl SetPokemonCryLength
- ldr r0, [r4, 0x18]
- bl SetPokemonCryProgress
- ldrb r0, [r4, 0x14]
- bl SetPokemonCryRelease
- movs r0, 0x1C
- ldrsb r0, [r4, r0]
- bl SetPokemonCryChorus
- ldr r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bl SetPokemonCryPriority
- ldr r4, [r4]
- adds r0, r4, 0
- cmp r4, 0
- bge _080BABC8
- adds r0, 0x7F
-_080BABC8:
- asrs r2, r0, 7
- lsls r0, r2, 7
- subs r0, r4, r0
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BAC1C
- cmp r0, 0x1
- bgt _080BABE8
- cmp r0, 0
- beq _080BABF2
- b _080BACA2
- .align 2, 0
-_080BABE4: .4byte gUnknown_020387B4
-_080BABE8:
- cmp r0, 0x2
- beq _080BAC48
- cmp r0, 0x3
- beq _080BAC74
- b _080BACA2
-_080BABF2:
- ldr r0, _080BAC04 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC0C
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC08 @ =voicegroup_84537C0
- b _080BAC98
- .align 2, 0
-_080BAC04: .4byte gUnknown_020387D8
-_080BAC08: .4byte voicegroup_84537C0
-_080BAC0C:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC18 @ =voicegroup_8452590
- b _080BAC98
- .align 2, 0
-_080BAC18: .4byte voicegroup_8452590
-_080BAC1C:
- ldr r0, _080BAC30 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC38
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC34 @ =voicegroup_8453DC0
- b _080BAC98
- .align 2, 0
-_080BAC30: .4byte gUnknown_020387D8
-_080BAC34: .4byte voicegroup_8453DC0
-_080BAC38:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC44 @ =voicegroup_8452B90
- b _080BAC98
- .align 2, 0
-_080BAC44: .4byte voicegroup_8452B90
-_080BAC48:
- ldr r0, _080BAC5C @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC64
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC60 @ =voicegroup_84543C0
- b _080BAC98
- .align 2, 0
-_080BAC5C: .4byte gUnknown_020387D8
-_080BAC60: .4byte voicegroup_84543C0
-_080BAC64:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC70 @ =voicegroup_8453190
- b _080BAC98
- .align 2, 0
-_080BAC70: .4byte voicegroup_8453190
-_080BAC74:
- ldr r0, _080BAC88 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC90
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC8C @ =voicegroup_84549C0
- b _080BAC98
- .align 2, 0
-_080BAC88: .4byte gUnknown_020387D8
-_080BAC8C: .4byte voicegroup_84549C0
-_080BAC90:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BACCC @ =voicegroup_8453790
-_080BAC98:
- adds r0, r1
- bl SetPokemonCryTone
- ldr r1, _080BACD0 @ =gUnknown_03005D30
- str r0, [r1]
-_080BACA2:
- ldr r0, _080BACD0 @ =gUnknown_03005D30
- ldr r0, [r0]
- cmp r0, 0
- beq _080BACC6
- ldr r5, _080BACD4 @ =gUnknown_020387B1
- bl IsPokemonCryPlaying
- strb r0, [r5]
- ldr r4, _080BACD8 @ =gUnknown_020387B2
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4]
- cmp r0, r2
- beq _080BACC2
- bl sub_80BAD5C
-_080BACC2:
- ldrb r0, [r5]
- strb r0, [r4]
-_080BACC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BACCC: .4byte voicegroup_8453790
-_080BACD0: .4byte gUnknown_03005D30
-_080BACD4: .4byte gUnknown_020387B1
-_080BACD8: .4byte gUnknown_020387B2
- thumb_func_end sub_80BAA48
-
- thumb_func_start sub_80BACDC
-sub_80BACDC: @ 80BACDC
- push {r4-r6,lr}
- sub sp, 0x40
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080BAD50 @ =gUnknown_083D039C
- mov r0, sp
- movs r2, 0x40
- bl memcpy
- ldr r6, _080BAD54 @ =gUnknown_020387B4
- ldr r5, _080BAD58 @ =gUnknown_020387B3
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r1, 2
- adds r1, r6
- lsls r4, 24
- asrs r4, 24
- ldr r0, [r1]
- adds r0, r4
- str r0, [r1]
- movs r2, 0
- ldrsb r2, [r5, r2]
- lsls r0, r2, 2
- adds r3, r0, r6
- lsls r0, r2, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r1, [r3]
- ldr r0, [r0]
- cmp r1, r0
- ble _080BAD26
- lsls r0, r2, 3
- add r0, sp
- ldr r0, [r0]
- str r0, [r3]
-_080BAD26:
- movs r2, 0
- ldrsb r2, [r5, r2]
- lsls r0, r2, 2
- adds r3, r0, r6
- lsls r0, r2, 3
- add r0, sp
- ldr r1, [r3]
- ldr r0, [r0]
- cmp r1, r0
- bge _080BAD46
- lsls r0, r2, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- str r0, [r3]
-_080BAD46:
- add sp, 0x40
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAD50: .4byte gUnknown_083D039C
-_080BAD54: .4byte gUnknown_020387B4
-_080BAD58: .4byte gUnknown_020387B3
- thumb_func_end sub_80BACDC
-
- thumb_func_start sub_80BAD5C
-sub_80BAD5C: @ 80BAD5C
- push {r4,lr}
- ldr r4, _080BAE00 @ =gUnknown_020387B4
- ldr r0, [r4]
- adds r0, 0x1
- movs r1, 0xB
- movs r2, 0x1
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x4]
- movs r1, 0xB
- movs r2, 0x3
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x8]
- movs r1, 0xB
- movs r2, 0x5
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0xC]
- movs r1, 0xB
- movs r2, 0x7
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x10]
- movs r1, 0xB
- movs r2, 0x9
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x14]
- movs r1, 0xB
- movs r2, 0xB
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x18]
- movs r1, 0xB
- movs r2, 0xD
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x1C]
- movs r1, 0xB
- movs r2, 0xF
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x20]
- movs r1, 0xB
- movs r2, 0x11
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, _080BAE04 @ =gUnknown_020387B1
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0x10
- movs r3, 0x1
- bl sub_80BAE78
- ldr r0, _080BAE08 @ =gUnknown_020387D8
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0xE
- movs r3, 0x1
- bl sub_80BAE78
- ldr r0, _080BAE0C @ =gUnknown_020387D9
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0xC
- movs r3, 0x1
- bl sub_80BAE78
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAE00: .4byte gUnknown_020387B4
-_080BAE04: .4byte gUnknown_020387B1
-_080BAE08: .4byte gUnknown_020387D8
-_080BAE0C: .4byte gUnknown_020387D9
- thumb_func_end sub_80BAD5C
-
- thumb_func_start sub_80BAE10
-sub_80BAE10: @ 80BAE10
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080BAE6C @ =gUnknown_083D03DC
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _080BAE70 @ =gUnknown_083D03DE
- movs r2, 0x2
- bl memcpy
- ldr r6, _080BAE74 @ =gUnknown_083D0300
- lsls r4, 1
- adds r0, r4, r6
- ldrb r1, [r0]
- adds r4, 0x1
- adds r4, r6
- ldrb r2, [r4]
- mov r0, r8
- bl MenuPrint
- lsls r5, 1
- adds r0, r5, r6
- ldrb r1, [r0]
- adds r5, 0x1
- adds r5, r6
- ldrb r2, [r5]
- mov r0, sp
- bl MenuPrint
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAE6C: .4byte gUnknown_083D03DC
-_080BAE70: .4byte gUnknown_083D03DE
-_080BAE74: .4byte gUnknown_083D0300
- thumb_func_end sub_80BAE10
-
- thumb_func_start sub_80BAE78
-sub_80BAE78: @ 80BAE78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- mov r8, r0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- lsrs r7, r3, 24
- mov r1, sp
- ldr r0, _080BAF80 @ =gUnknown_083D03E0
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- movs r5, 0
- add r0, sp, 0x18
- mov r9, r0
- cmp r5, r7
- bgt _080BAEC0
- mov r4, r9
- movs r3, 0
-_080BAEAC:
- lsls r0, r5, 24
- asrs r0, 24
- adds r1, r4, r0
- strb r3, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- asrs r0, 24
- cmp r0, r7
- ble _080BAEAC
-_080BAEC0:
- adds r0, r7, 0x1
- add r0, r9
- movs r1, 0xFF
- strb r1, [r0]
- movs r1, 0
- mov r3, r8
- cmp r3, 0
- bge _080BAED6
- negs r3, r3
- mov r8, r3
- movs r1, 0x1
-_080BAED6:
- movs r4, 0
- mov r10, r4
- cmp r7, 0x1
- bne _080BAEE2
- movs r5, 0x1
- mov r10, r5
-_080BAEE2:
- subs r0, r7, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 24
- lsls r6, 24
- str r6, [sp, 0x24]
- lsls r2, 24
- str r2, [sp, 0x28]
- cmp r0, 0
- blt _080BAF62
- str r1, [sp, 0x20]
-_080BAEF8:
- asrs r6, r0, 24
- lsls r0, r6, 2
- add r0, sp
- ldr r1, [r0]
- mov r0, r8
- bl __divsi3
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r0, 0
- bne _080BAF1A
- mov r0, r10
- cmp r0, 0
- bne _080BAF1A
- lsls r4, r5, 24
- cmp r6, 0
- bne _080BAF46
-_080BAF1A:
- lsls r4, r5, 24
- ldr r3, [sp, 0x20]
- cmp r3, 0
- beq _080BAF34
- mov r5, r10
- cmp r5, 0
- bne _080BAF34
- asrs r0, r4, 24
- subs r0, r7, r0
- subs r0, 0x1
- add r0, r9
- movs r1, 0xAE
- strb r1, [r0]
-_080BAF34:
- asrs r1, r4, 24
- subs r1, r7, r1
- add r1, r9
- lsls r0, r2, 24
- asrs r0, 24
- subs r0, 0x5F
- strb r0, [r1]
- movs r0, 0x1
- mov r10, r0
-_080BAF46:
- asrs r4, 24
- lsls r0, r4, 2
- add r0, sp
- ldr r1, [r0]
- mov r0, r8
- bl __modsi3
- mov r8, r0
- subs r4, 0x1
- lsls r4, 24
- lsrs r5, r4, 24
- lsls r0, r5, 24
- cmp r0, 0
- bge _080BAEF8
-_080BAF62:
- ldr r3, [sp, 0x24]
- lsrs r1, r3, 24
- ldr r4, [sp, 0x28]
- lsrs r2, r4, 24
- mov r0, r9
- bl MenuPrint
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAF80: .4byte gUnknown_083D03E0
- thumb_func_end sub_80BAE78
-
- thumb_func_start sub_80BAF84
-sub_80BAF84: @ 80BAF84
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080BB01C @ =gOtherText_SE
- mov r0, sp
- movs r2, 0x3
- bl memcpy
- add r6, sp, 0x4
- ldr r1, _080BB020 @ =gOtherText_Pan
- adds r0, r6, 0
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _080BB024 @ =gUnknown_083D0381
- adds r0, r5, 0
- movs r2, 0x9
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x3
- movs r2, 0x2
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x3
- movs r2, 0x4
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x8
- bl MenuPrint
- ldr r1, _080BB028 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, _080BB02C @ =gUnknown_020387B4
- movs r0, 0x1
- str r0, [r1]
- movs r0, 0
- str r0, [r1, 0x8]
- str r0, [r1, 0x1C]
- str r0, [r1, 0x18]
- str r0, [r1, 0x14]
- bl sub_80BB1D4
- ldr r1, _080BB030 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB034 @ =sub_80BB038
- str r1, [r0]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB01C: .4byte gOtherText_SE
-_080BB020: .4byte gOtherText_Pan
-_080BB024: .4byte gUnknown_083D0381
-_080BB028: .4byte REG_WIN0H
-_080BB02C: .4byte gUnknown_020387B4
-_080BB030: .4byte gTasks
-_080BB034: .4byte sub_80BB038
- thumb_func_end sub_80BAF84
-
- thumb_func_start sub_80BB038
-sub_80BB038: @ 80BB038
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80BB1D4
- ldr r2, _080BB058 @ =gUnknown_020387B4
- ldr r0, [r2, 0x18]
- cmp r0, 0
- beq _080BB0A2
- ldr r0, [r2, 0x14]
- cmp r0, 0
- beq _080BB05C
- subs r0, 0x1
- str r0, [r2, 0x14]
- b _080BB0A2
- .align 2, 0
-_080BB058: .4byte gUnknown_020387B4
-_080BB05C:
- ldr r0, _080BB088 @ =gUnknown_083D03F8
- ldr r1, [r2, 0x8]
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB08C
- cmp r1, 0x7F
- bne _080BB0A2
- ldr r0, [r2, 0x1C]
- adds r0, 0x2
- str r0, [r2, 0x1C]
- cmp r0, 0x3E
- bgt _080BB0A2
- lsls r0, 24
- asrs r0, 24
- bl SE12PanpotControl
- b _080BB0A2
- .align 2, 0
-_080BB088: .4byte gUnknown_083D03F8
-_080BB08C:
- ldr r0, [r2, 0x1C]
- subs r1, r0, 0x2
- str r1, [r2, 0x1C]
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- ble _080BB0A2
- lsls r0, r1, 24
- asrs r0, 24
- bl SE12PanpotControl
-_080BB0A2:
- ldr r1, _080BB0EC @ =gMain
- ldrh r3, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r3
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, r1, 0
- cmp r4, 0
- beq _080BB104
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BB0F0 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BB0F4 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BB0F8 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BB0FC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB100 @ =sub_80BA258
- str r1, [r0]
- b _080BB1C8
- .align 2, 0
-_080BB0EC: .4byte gMain
-_080BB0F0: .4byte 0x00007140
-_080BB0F4: .4byte 0x000011df
-_080BB0F8: .4byte 0x0000011f
-_080BB0FC: .4byte gTasks
-_080BB100: .4byte sub_80BA258
-_080BB104:
- movs r6, 0x1
- adds r2, r6, 0
- ands r2, r3
- cmp r2, 0
- beq _080BB15E
- ldr r0, _080BB138 @ =gUnknown_083D03F8
- ldr r5, _080BB13C @ =gUnknown_020387B4
- ldr r1, [r5, 0x8]
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB140
- cmp r1, 0x7F
- bne _080BB154
- ldrh r0, [r5]
- movs r4, 0x40
- negs r4, r4
- adds r1, r4, 0
- bl PlaySE12WithPanning
- str r4, [r5, 0x1C]
- b _080BB14C
- .align 2, 0
-_080BB138: .4byte gUnknown_083D03F8
-_080BB13C: .4byte gUnknown_020387B4
-_080BB140:
- ldrh r0, [r5]
- movs r1, 0x3F
- bl PlaySE12WithPanning
- movs r0, 0x3F
- str r0, [r5, 0x1C]
-_080BB14C:
- str r6, [r5, 0x18]
- movs r0, 0x1E
- str r0, [r5, 0x14]
- b _080BB1C8
-_080BB154:
- ldrh r0, [r5]
- bl PlaySE12WithPanning
- str r4, [r5, 0x18]
- b _080BB1C8
-_080BB15E:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r3
- cmp r0, 0
- beq _080BB176
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1, 0x8]
- adds r0, 0x1
- str r0, [r1, 0x8]
- cmp r0, 0x4
- ble _080BB176
- str r2, [r1, 0x8]
-_080BB176:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BB192
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1, 0x8]
- subs r0, 0x1
- str r0, [r1, 0x8]
- cmp r0, 0
- bge _080BB192
- movs r0, 0x4
- str r0, [r1, 0x8]
-_080BB192:
- ldrh r1, [r7, 0x30]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080BB1B0
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0xF7
- ble _080BB1C8
- movs r0, 0
- b _080BB1C6
- .align 2, 0
-_080BB1AC: .4byte gUnknown_020387B4
-_080BB1B0:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BB1C8
- ldr r1, _080BB1D0 @ =gUnknown_020387B4
- ldr r0, [r1]
- subs r0, 0x1
- str r0, [r1]
- cmp r0, 0
- bge _080BB1C8
- movs r0, 0xF7
-_080BB1C6:
- str r0, [r1]
-_080BB1C8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB1D0: .4byte gUnknown_020387B4
- thumb_func_end sub_80BB038
-
- thumb_func_start sub_80BB1D4
-sub_80BB1D4: @ 80BB1D4
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r1, _080BB218 @ =gOtherText_LR
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _080BB21C @ =gOtherText_RL
- adds r0, r5, 0
- movs r2, 0x5
- bl memcpy
- ldr r4, _080BB220 @ =gUnknown_020387B4
- ldr r0, [r4]
- movs r1, 0x7
- movs r2, 0x2
- movs r3, 0x3
- bl sub_80BAE78
- ldr r1, _080BB224 @ =gUnknown_083D03F8
- ldr r0, [r4, 0x8]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB228
- cmp r1, 0x7F
- bne _080BB234
- mov r0, sp
- b _080BB22A
- .align 2, 0
-_080BB218: .4byte gOtherText_LR
-_080BB21C: .4byte gOtherText_RL
-_080BB220: .4byte gUnknown_020387B4
-_080BB224: .4byte gUnknown_083D03F8
-_080BB228:
- adds r0, r5, 0
-_080BB22A:
- movs r1, 0x7
- movs r2, 0x4
- bl MenuPrint
- b _080BB240
-_080BB234:
- adds r0, r1, 0
- movs r1, 0x7
- movs r2, 0x4
- movs r3, 0x3
- bl sub_80BAE78
-_080BB240:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80BAE78
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB1D4
-
- thumb_func_start sub_80BB25C
-sub_80BB25C: @ 80BB25C
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080BB374 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _080BB378 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- ldr r1, _080BB37C @ =gUnknown_03005D34
- movs r0, 0x1
- strh r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _080BB380 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- ldr r1, _080BB384 @ =0xff00ffff
- ands r0, r1
- movs r1, 0xE8
- lsls r1, 13
- orrs r0, r1
- ldr r1, _080BB388 @ =0x00ffffff
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0x4]
- ldr r1, _080BB38C @ =0xffff00ff
- ldr r0, [sp, 0x8]
- ands r0, r1
- movs r1, 0xF0
- lsls r1, 5
- orrs r0, r1
- ldr r1, _080BB390 @ =0xffffff00
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- str r0, [sp, 0x8]
- movs r1, 0
- ldr r0, _080BB394 @ =gUnknown_03005E98
- strb r1, [r0]
- add r4, sp, 0xC
-_080BB2BE:
- add r0, sp, 0x4
- movs r1, 0x3
- bl sub_8119E3C
- lsls r0, 24
- cmp r0, 0
- beq _080BB2BE
- ldr r1, _080BB380 @ =0xffff0000
- ldr r0, [sp, 0xC]
- ands r0, r1
- ldr r1, _080BB384 @ =0xff00ffff
- ands r0, r1
- movs r1, 0xF0
- lsls r1, 12
- orrs r0, r1
- ldr r1, _080BB388 @ =0x00ffffff
- ands r0, r1
- movs r1, 0xD0
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0xC]
- ldr r1, _080BB390 @ =0xffffff00
- ldr r0, [r4, 0x4]
- ands r0, r1
- movs r1, 0xC
- orrs r0, r1
- ldr r1, _080BB38C @ =0xffff00ff
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 4
- orrs r0, r1
- str r0, [r4, 0x4]
- movs r1, 0
- ldr r0, _080BB394 @ =gUnknown_03005E98
- strb r1, [r0]
- lsls r5, r6, 2
-_080BB306:
- adds r0, r4, 0
- movs r1, 0x2
- bl ShowPokedexCryScreen
- lsls r0, 24
- cmp r0, 0
- beq _080BB306
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x5
- movs r3, 0x13
- bl MenuDrawTextWindow
- bl sub_80BB494
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080BB398 @ =REG_BG2HOFS
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r1, _080BB39C @ =REG_BG2CNT
- ldr r2, _080BB3A0 @ =0x00000f01
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080BB3A4 @ =0x00001d03
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- adds r2, 0x3D
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080BB3A8 @ =gMPlay_BGM
- movs r1, 0x2
- bl m4aMPlayFadeOutTemporarily
- ldr r1, _080BB3AC @ =gTasks
- adds r0, r5, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB3B0 @ =sub_80BB3B4
- str r1, [r0]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB374: .4byte gWindowConfig_81E6C3C
-_080BB378: .4byte gWindowConfig_81E6CE4
-_080BB37C: .4byte gUnknown_03005D34
-_080BB380: .4byte 0xffff0000
-_080BB384: .4byte 0xff00ffff
-_080BB388: .4byte 0x00ffffff
-_080BB38C: .4byte 0xffff00ff
-_080BB390: .4byte 0xffffff00
-_080BB394: .4byte gUnknown_03005E98
-_080BB398: .4byte REG_BG2HOFS
-_080BB39C: .4byte REG_BG2CNT
-_080BB3A0: .4byte 0x00000f01
-_080BB3A4: .4byte 0x00001d03
-_080BB3A8: .4byte gMPlay_BGM
-_080BB3AC: .4byte gTasks
-_080BB3B0: .4byte sub_80BB3B4
- thumb_func_end sub_80BB25C
-
- thumb_func_start sub_80BB3B4
-sub_80BB3B4: @ 80BB3B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x3
- bl sub_8119F88
- ldr r4, _080BB478 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BB3D4
- ldr r0, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r0]
- bl sub_811A050
-_080BB3D4:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BB3E4
- bl StopCryAndClearCrySongs
-_080BB3E4:
- ldrh r1, [r4, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080BB408
- ldr r1, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _080BB404
- movs r2, 0xC0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
-_080BB404:
- bl sub_80BB494
-_080BB408:
- ldr r0, _080BB478 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BB42E
- ldr r2, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 17
- cmp r0, r1
- bls _080BB42A
- movs r0, 0x1
- strh r0, [r2]
-_080BB42A:
- bl sub_80BB494
-_080BB42E:
- ldr r0, _080BB478 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BB472
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BB480 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BB484 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BB488 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BB48C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB490 @ =sub_80BA258
- str r1, [r0]
- bl DestroyCryMeterNeedleSprite
-_080BB472:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB478: .4byte gMain
-_080BB47C: .4byte gUnknown_03005D34
-_080BB480: .4byte 0x00007140
-_080BB484: .4byte 0x000011df
-_080BB488: .4byte 0x0000011f
-_080BB48C: .4byte gTasks
-_080BB490: .4byte sub_80BA258
- thumb_func_end sub_80BB3B4
-
- thumb_func_start sub_80BB494
-sub_80BB494: @ 80BB494
- push {lr}
- ldr r0, _080BB4A8 @ =gUnknown_03005D34
- ldrh r0, [r0]
- movs r1, 0x1
- movs r2, 0x11
- movs r3, 0x3
- bl sub_80BAE78
- pop {r0}
- bx r0
- .align 2, 0
-_080BB4A8: .4byte gUnknown_03005D34
- thumb_func_end sub_80BB494
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/base_stats.inc b/data/base_stats.inc
deleted file mode 100644
index 47128c8a6..000000000
--- a/data/base_stats.inc
+++ /dev/null
@@ -1,8635 +0,0 @@
- .align 2
-gBaseStats:: @ 81FEC18
-@ ??????????
- .fill 28, 1, 0
-
-@ Bulbasaur
- base_stats 45, 49, 49, 45, 65, 65
- .byte TYPE_GRASS
- .byte TYPE_POISON
- .byte 45 @ catch rate
- .byte 64 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_GRASS
- .byte ABILITY_OVERGROW
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Ivysaur
- base_stats 60, 62, 63, 60, 80, 80
- .byte TYPE_GRASS
- .byte TYPE_POISON
- .byte 45 @ catch rate
- .byte 141 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_GRASS
- .byte ABILITY_OVERGROW
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Venusaur
- base_stats 80, 82, 83, 80, 100, 100
- .byte TYPE_GRASS
- .byte TYPE_POISON
- .byte 45 @ catch rate
- .byte 208 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_GRASS
- .byte ABILITY_OVERGROW
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Charmander
- base_stats 39, 52, 43, 65, 60, 50
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 45 @ catch rate
- .byte 65 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_BLAZE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Charmeleon
- base_stats 58, 64, 58, 80, 80, 65
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 45 @ catch rate
- .byte 142 @ base exp. yield
- ev_yield 0, 0, 0, 1, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_BLAZE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Charizard
- base_stats 78, 84, 78, 100, 109, 85
- .byte TYPE_FIRE
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 209 @ base exp. yield
- ev_yield 0, 0, 0, 0, 3, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_BLAZE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Squirtle
- base_stats 44, 48, 65, 43, 50, 64
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 66 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_TORRENT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Wartortle
- base_stats 59, 63, 80, 58, 65, 80
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 143 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_TORRENT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Blastoise
- base_stats 79, 83, 100, 78, 85, 105
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 210 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 3
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_TORRENT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Caterpie
- base_stats 45, 30, 35, 45, 20, 20
- .byte TYPE_BUG
- .byte TYPE_BUG
- .byte 255 @ catch rate
- .byte 53 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SHIELD_DUST
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Metapod
- base_stats 50, 20, 55, 30, 25, 25
- .byte TYPE_BUG
- .byte TYPE_BUG
- .byte 120 @ catch rate
- .byte 72 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SHED_SKIN
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Butterfree
- base_stats 60, 45, 50, 70, 80, 80
- .byte TYPE_BUG
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 160 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 1
- .2byte ITEM_NONE
- .2byte ITEM_SILVER_POWDER
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_COMPOUND_EYES
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Weedle
- base_stats 40, 35, 30, 50, 20, 20
- .byte TYPE_BUG
- .byte TYPE_POISON
- .byte 255 @ catch rate
- .byte 52 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SHIELD_DUST
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Kakuna
- base_stats 45, 25, 50, 35, 25, 25
- .byte TYPE_BUG
- .byte TYPE_POISON
- .byte 120 @ catch rate
- .byte 71 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SHED_SKIN
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Beedrill
- base_stats 65, 80, 40, 75, 45, 80
- .byte TYPE_BUG
- .byte TYPE_POISON
- .byte 45 @ catch rate
- .byte 159 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_POISON_BARB
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SWARM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Pidgey
- base_stats 40, 45, 40, 56, 35, 35
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 255 @ catch rate
- .byte 55 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_KEEN_EYE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Pidgeotto
- base_stats 63, 60, 55, 71, 50, 50
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 120 @ catch rate
- .byte 113 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_KEEN_EYE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Pidgeot
- base_stats 83, 80, 75, 91, 70, 70
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 172 @ base exp. yield
- ev_yield 0, 0, 0, 3, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_KEEN_EYE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Rattata
- base_stats 30, 56, 35, 72, 25, 35
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 255 @ catch rate
- .byte 57 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_RUN_AWAY
- .byte ABILITY_GUTS
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Raticate
- base_stats 55, 81, 60, 97, 50, 70
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 127 @ catch rate
- .byte 116 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_RUN_AWAY
- .byte ABILITY_GUTS
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Spearow
- base_stats 40, 60, 30, 70, 31, 31
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 255 @ catch rate
- .byte 58 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_KEEN_EYE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Fearow
- base_stats 65, 90, 65, 100, 61, 61
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 90 @ catch rate
- .byte 162 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_SHARP_BEAK
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_KEEN_EYE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Ekans
- base_stats 35, 60, 44, 55, 40, 54
- .byte TYPE_POISON
- .byte TYPE_POISON
- .byte 255 @ catch rate
- .byte 62 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_INTIMIDATE
- .byte ABILITY_SHED_SKIN
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Arbok
- base_stats 60, 85, 69, 80, 65, 79
- .byte TYPE_POISON
- .byte TYPE_POISON
- .byte 90 @ catch rate
- .byte 147 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_INTIMIDATE
- .byte ABILITY_SHED_SKIN
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Pikachu
- base_stats 35, 55, 30, 90, 50, 40
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 190 @ catch rate
- .byte 82 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_ORAN_BERRY
- .2byte ITEM_LIGHT_BALL
- .byte 127 @ gender
- .byte 10 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_STATIC
- .byte ABILITY_NONE
- .byte 6 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Raichu
- base_stats 60, 90, 55, 100, 90, 80
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 75 @ catch rate
- .byte 122 @ base exp. yield
- ev_yield 0, 0, 0, 3, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_ORAN_BERRY
- .byte 127 @ gender
- .byte 10 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_STATIC
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Sandshrew
- base_stats 50, 75, 85, 40, 20, 30
- .byte TYPE_GROUND
- .byte TYPE_GROUND
- .byte 255 @ catch rate
- .byte 93 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_QUICK_CLAW
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_SAND_VEIL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Sandslash
- base_stats 75, 100, 110, 65, 45, 55
- .byte TYPE_GROUND
- .byte TYPE_GROUND
- .byte 90 @ catch rate
- .byte 163 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_QUICK_CLAW
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_SAND_VEIL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Nidoran♀
- base_stats 55, 47, 52, 41, 40, 40
- .byte TYPE_POISON
- .byte TYPE_POISON
- .byte 235 @ catch rate
- .byte 59 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 254 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_FIELD
- .byte ABILITY_POISON_POINT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Nidorina
- base_stats 70, 62, 67, 56, 55, 55
- .byte TYPE_POISON
- .byte TYPE_POISON
- .byte 120 @ catch rate
- .byte 117 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 254 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_POISON_POINT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Nidoqueen
- base_stats 90, 82, 87, 76, 75, 85
- .byte TYPE_POISON
- .byte TYPE_GROUND
- .byte 45 @ catch rate
- .byte 194 @ base exp. yield
- ev_yield 3, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 254 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_POISON_POINT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Nidoran♂
- base_stats 46, 57, 40, 50, 40, 40
- .byte TYPE_POISON
- .byte TYPE_POISON
- .byte 235 @ catch rate
- .byte 60 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 0 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_FIELD
- .byte ABILITY_POISON_POINT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Nidorino
- base_stats 61, 72, 57, 65, 55, 55
- .byte TYPE_POISON
- .byte TYPE_POISON
- .byte 120 @ catch rate
- .byte 118 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 0 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_FIELD
- .byte ABILITY_POISON_POINT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Nidoking
- base_stats 81, 92, 77, 85, 85, 75
- .byte TYPE_POISON
- .byte TYPE_GROUND
- .byte 45 @ catch rate
- .byte 195 @ base exp. yield
- ev_yield 0, 3, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 0 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_FIELD
- .byte ABILITY_POISON_POINT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Clefairy
- base_stats 70, 45, 48, 35, 60, 65
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 150 @ catch rate
- .byte 68 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_LEPPA_BERRY
- .2byte ITEM_MOON_STONE
- .byte 191 @ gender
- .byte 10 @ egg cycles
- .byte 140 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_CUTE_CHARM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Clefable
- base_stats 95, 70, 73, 60, 85, 90
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 25 @ catch rate
- .byte 129 @ base exp. yield
- ev_yield 3, 0, 0, 0, 0, 0
- .2byte ITEM_LEPPA_BERRY
- .2byte ITEM_MOON_STONE
- .byte 191 @ gender
- .byte 10 @ egg cycles
- .byte 140 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_CUTE_CHARM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Vulpix
- base_stats 38, 41, 40, 65, 50, 65
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 190 @ catch rate
- .byte 63 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_RAWST_BERRY
- .2byte ITEM_RAWST_BERRY
- .byte 191 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_FLASH_FIRE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Ninetales
- base_stats 73, 76, 75, 100, 81, 100
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 75 @ catch rate
- .byte 178 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 1
- .2byte ITEM_RAWST_BERRY
- .2byte ITEM_RAWST_BERRY
- .byte 191 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_FLASH_FIRE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Jigglypuff
- base_stats 115, 45, 20, 20, 45, 25
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 170 @ catch rate
- .byte 76 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 191 @ gender
- .byte 10 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_CUTE_CHARM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Wigglytuff
- base_stats 140, 70, 45, 45, 75, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 50 @ catch rate
- .byte 109 @ base exp. yield
- ev_yield 3, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 191 @ gender
- .byte 10 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_CUTE_CHARM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Zubat
- base_stats 40, 45, 35, 55, 30, 40
- .byte TYPE_POISON
- .byte TYPE_FLYING
- .byte 255 @ catch rate
- .byte 54 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_INNER_FOCUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Golbat
- base_stats 75, 80, 70, 90, 65, 75
- .byte TYPE_POISON
- .byte TYPE_FLYING
- .byte 90 @ catch rate
- .byte 171 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_INNER_FOCUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Oddish
- base_stats 45, 50, 55, 30, 75, 65
- .byte TYPE_GRASS
- .byte TYPE_POISON
- .byte 255 @ catch rate
- .byte 78 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 4 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Gloom
- base_stats 60, 65, 70, 40, 85, 75
- .byte TYPE_GRASS
- .byte TYPE_POISON
- .byte 120 @ catch rate
- .byte 132 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 6 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Vileplume
- base_stats 75, 80, 85, 50, 100, 90
- .byte TYPE_GRASS
- .byte TYPE_POISON
- .byte 45 @ catch rate
- .byte 184 @ base exp. yield
- ev_yield 0, 0, 0, 0, 3, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Paras
- base_stats 35, 70, 55, 25, 45, 55
- .byte TYPE_BUG
- .byte TYPE_GRASS
- .byte 190 @ catch rate
- .byte 70 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_TINY_MUSHROOM
- .2byte ITEM_BIG_MUSHROOM
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_GRASS
- .byte ABILITY_EFFECT_SPORE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Parasect
- base_stats 60, 95, 80, 30, 60, 80
- .byte TYPE_BUG
- .byte TYPE_GRASS
- .byte 75 @ catch rate
- .byte 128 @ base exp. yield
- ev_yield 0, 2, 1, 0, 0, 0
- .2byte ITEM_TINY_MUSHROOM
- .2byte ITEM_BIG_MUSHROOM
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_GRASS
- .byte ABILITY_EFFECT_SPORE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Venonat
- base_stats 60, 55, 50, 45, 40, 55
- .byte TYPE_BUG
- .byte TYPE_POISON
- .byte 190 @ catch rate
- .byte 75 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_COMPOUND_EYES
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Venomoth
- base_stats 70, 65, 60, 90, 90, 75
- .byte TYPE_BUG
- .byte TYPE_POISON
- .byte 75 @ catch rate
- .byte 138 @ base exp. yield
- ev_yield 0, 0, 0, 1, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SHIELD_DUST
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Diglett
- base_stats 10, 55, 25, 95, 35, 45
- .byte TYPE_GROUND
- .byte TYPE_GROUND
- .byte 255 @ catch rate
- .byte 81 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_SAND_VEIL
- .byte ABILITY_ARENA_TRAP
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Dugtrio
- base_stats 35, 80, 50, 120, 50, 70
- .byte TYPE_GROUND
- .byte TYPE_GROUND
- .byte 50 @ catch rate
- .byte 153 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_SAND_VEIL
- .byte ABILITY_ARENA_TRAP
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Meowth
- base_stats 40, 45, 35, 90, 40, 40
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 255 @ catch rate
- .byte 69 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_PICKUP
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Persian
- base_stats 65, 70, 60, 115, 65, 65
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 90 @ catch rate
- .byte 148 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_LIMBER
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Psyduck
- base_stats 50, 52, 48, 55, 65, 50
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 190 @ catch rate
- .byte 80 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FIELD
- .byte ABILITY_DAMP
- .byte ABILITY_CLOUD_NINE
- .byte 6 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Golduck
- base_stats 80, 82, 78, 85, 95, 80
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 75 @ catch rate
- .byte 174 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FIELD
- .byte ABILITY_DAMP
- .byte ABILITY_CLOUD_NINE
- .byte 8 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Mankey
- base_stats 40, 80, 35, 70, 35, 45
- .byte TYPE_FIGHTING
- .byte TYPE_FIGHTING
- .byte 190 @ catch rate
- .byte 74 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_VITAL_SPIRIT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Primeape
- base_stats 65, 105, 60, 95, 60, 70
- .byte TYPE_FIGHTING
- .byte TYPE_FIGHTING
- .byte 75 @ catch rate
- .byte 149 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_VITAL_SPIRIT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Growlithe
- base_stats 55, 70, 45, 60, 70, 50
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 190 @ catch rate
- .byte 91 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_RAWST_BERRY
- .2byte ITEM_RAWST_BERRY
- .byte 63 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_INTIMIDATE
- .byte ABILITY_FLASH_FIRE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Arcanine
- base_stats 90, 110, 80, 95, 100, 80
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 75 @ catch rate
- .byte 213 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_RAWST_BERRY
- .2byte ITEM_RAWST_BERRY
- .byte 63 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_INTIMIDATE
- .byte ABILITY_FLASH_FIRE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Poliwag
- base_stats 40, 50, 40, 90, 40, 40
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 255 @ catch rate
- .byte 77 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_WATER_ABSORB
- .byte ABILITY_DAMP
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Poliwhirl
- base_stats 65, 65, 65, 90, 50, 50
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 120 @ catch rate
- .byte 131 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_KINGS_ROCK
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_WATER_ABSORB
- .byte ABILITY_DAMP
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Poliwrath
- base_stats 90, 85, 95, 70, 70, 90
- .byte TYPE_WATER
- .byte TYPE_FIGHTING
- .byte 45 @ catch rate
- .byte 185 @ base exp. yield
- ev_yield 0, 0, 3, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_KINGS_ROCK
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_WATER_ABSORB
- .byte ABILITY_DAMP
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Abra
- base_stats 25, 20, 15, 90, 105, 55
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 200 @ catch rate
- .byte 73 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_TWISTED_SPOON
- .byte 63 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_SYNCHRONIZE
- .byte ABILITY_INNER_FOCUS
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Kadabra
- base_stats 40, 35, 30, 105, 120, 70
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 100 @ catch rate
- .byte 145 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_TWISTED_SPOON
- .byte 63 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_SYNCHRONIZE
- .byte ABILITY_INNER_FOCUS
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Alakazam
- base_stats 55, 50, 45, 120, 135, 85
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 50 @ catch rate
- .byte 186 @ base exp. yield
- ev_yield 0, 0, 0, 0, 3, 0
- .2byte ITEM_NONE
- .2byte ITEM_TWISTED_SPOON
- .byte 63 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_SYNCHRONIZE
- .byte ABILITY_INNER_FOCUS
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Machop
- base_stats 70, 80, 50, 35, 35, 35
- .byte TYPE_FIGHTING
- .byte TYPE_FIGHTING
- .byte 180 @ catch rate
- .byte 88 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 63 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_GUTS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Machoke
- base_stats 80, 100, 70, 45, 50, 60
- .byte TYPE_FIGHTING
- .byte TYPE_FIGHTING
- .byte 90 @ catch rate
- .byte 146 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 63 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_GUTS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Machamp
- base_stats 90, 130, 80, 55, 65, 85
- .byte TYPE_FIGHTING
- .byte TYPE_FIGHTING
- .byte 45 @ catch rate
- .byte 193 @ base exp. yield
- ev_yield 0, 3, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 63 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_GUTS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Bellsprout
- base_stats 50, 75, 35, 40, 70, 30
- .byte TYPE_GRASS
- .byte TYPE_POISON
- .byte 255 @ catch rate
- .byte 84 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Weepinbell
- base_stats 65, 90, 50, 55, 85, 45
- .byte TYPE_GRASS
- .byte TYPE_POISON
- .byte 120 @ catch rate
- .byte 151 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Victreebel
- base_stats 80, 105, 65, 70, 100, 60
- .byte TYPE_GRASS
- .byte TYPE_POISON
- .byte 45 @ catch rate
- .byte 191 @ base exp. yield
- ev_yield 0, 3, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Tentacool
- base_stats 40, 40, 35, 70, 50, 100
- .byte TYPE_WATER
- .byte TYPE_POISON
- .byte 190 @ catch rate
- .byte 105 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_3
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_CLEAR_BODY
- .byte ABILITY_LIQUID_OOZE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Tentacruel
- base_stats 80, 70, 65, 100, 80, 120
- .byte TYPE_WATER
- .byte TYPE_POISON
- .byte 60 @ catch rate
- .byte 205 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_3
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_CLEAR_BODY
- .byte ABILITY_LIQUID_OOZE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Geodude
- base_stats 40, 80, 100, 20, 30, 30
- .byte TYPE_ROCK
- .byte TYPE_GROUND
- .byte 255 @ catch rate
- .byte 86 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_EVERSTONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_ROCK_HEAD
- .byte ABILITY_STURDY
- .byte 4 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Graveler
- base_stats 55, 95, 115, 35, 45, 45
- .byte TYPE_ROCK
- .byte TYPE_GROUND
- .byte 120 @ catch rate
- .byte 134 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_EVERSTONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_ROCK_HEAD
- .byte ABILITY_STURDY
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Golem
- base_stats 80, 110, 130, 45, 55, 65
- .byte TYPE_ROCK
- .byte TYPE_GROUND
- .byte 45 @ catch rate
- .byte 177 @ base exp. yield
- ev_yield 0, 0, 3, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_EVERSTONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_ROCK_HEAD
- .byte ABILITY_STURDY
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Ponyta
- base_stats 50, 85, 55, 90, 65, 65
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 190 @ catch rate
- .byte 152 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_RUN_AWAY
- .byte ABILITY_FLASH_FIRE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Rapidash
- base_stats 65, 100, 70, 105, 80, 80
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 60 @ catch rate
- .byte 192 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_RUN_AWAY
- .byte ABILITY_FLASH_FIRE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Slowpoke
- base_stats 90, 65, 65, 15, 40, 40
- .byte TYPE_WATER
- .byte TYPE_PSYCHIC
- .byte 190 @ catch rate
- .byte 99 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_KINGS_ROCK
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_OBLIVIOUS
- .byte ABILITY_OWN_TEMPO
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Slowbro
- base_stats 95, 75, 110, 30, 100, 80
- .byte TYPE_WATER
- .byte TYPE_PSYCHIC
- .byte 75 @ catch rate
- .byte 164 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_KINGS_ROCK
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_OBLIVIOUS
- .byte ABILITY_OWN_TEMPO
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Magnemite
- base_stats 25, 35, 70, 45, 95, 55
- .byte TYPE_ELECTRIC
- .byte TYPE_STEEL
- .byte 190 @ catch rate
- .byte 89 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_METAL_COAT
- .byte 255 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_MAGNET_PULL
- .byte ABILITY_STURDY
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Magneton
- base_stats 50, 60, 95, 70, 120, 70
- .byte TYPE_ELECTRIC
- .byte TYPE_STEEL
- .byte 60 @ catch rate
- .byte 161 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_METAL_COAT
- .byte 255 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_MAGNET_PULL
- .byte ABILITY_STURDY
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Farfetch'd
- base_stats 52, 65, 55, 60, 58, 62
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 94 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_STICK
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FIELD
- .byte ABILITY_KEEN_EYE
- .byte ABILITY_INNER_FOCUS
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Doduo
- base_stats 35, 85, 45, 75, 35, 35
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 190 @ catch rate
- .byte 96 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_SHARP_BEAK
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_RUN_AWAY
- .byte ABILITY_EARLY_BIRD
- .byte 8 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Dodrio
- base_stats 60, 110, 70, 100, 60, 60
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 158 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_SHARP_BEAK
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_RUN_AWAY
- .byte ABILITY_EARLY_BIRD
- .byte 10 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Seel
- base_stats 65, 45, 55, 45, 45, 70
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 190 @ catch rate
- .byte 100 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FIELD
- .byte ABILITY_THICK_FAT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Dewgong
- base_stats 90, 70, 80, 70, 70, 95
- .byte TYPE_WATER
- .byte TYPE_ICE
- .byte 75 @ catch rate
- .byte 176 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FIELD
- .byte ABILITY_THICK_FAT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Grimer
- base_stats 80, 80, 50, 25, 40, 50
- .byte TYPE_POISON
- .byte TYPE_POISON
- .byte 190 @ catch rate
- .byte 90 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NUGGET
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_STENCH
- .byte ABILITY_STICKY_HOLD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Muk
- base_stats 105, 105, 75, 50, 65, 100
- .byte TYPE_POISON
- .byte TYPE_POISON
- .byte 75 @ catch rate
- .byte 157 @ base exp. yield
- ev_yield 1, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NUGGET
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_STENCH
- .byte ABILITY_STICKY_HOLD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Shellder
- base_stats 30, 65, 100, 40, 45, 25
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 190 @ catch rate
- .byte 97 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_PEARL
- .2byte ITEM_BIG_PEARL
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_3
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_SHELL_ARMOR
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Cloyster
- base_stats 50, 95, 180, 70, 85, 45
- .byte TYPE_WATER
- .byte TYPE_ICE
- .byte 60 @ catch rate
- .byte 203 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_PEARL
- .2byte ITEM_BIG_PEARL
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_3
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_SHELL_ARMOR
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Gastly
- base_stats 30, 35, 30, 80, 100, 35
- .byte TYPE_GHOST
- .byte TYPE_POISON
- .byte 190 @ catch rate
- .byte 95 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Haunter
- base_stats 45, 50, 45, 95, 115, 55
- .byte TYPE_GHOST
- .byte TYPE_POISON
- .byte 90 @ catch rate
- .byte 126 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Gengar
- base_stats 60, 65, 60, 110, 130, 75
- .byte TYPE_GHOST
- .byte TYPE_POISON
- .byte 45 @ catch rate
- .byte 190 @ base exp. yield
- ev_yield 0, 0, 0, 0, 3, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Onix
- base_stats 35, 45, 160, 70, 30, 45
- .byte TYPE_ROCK
- .byte TYPE_GROUND
- .byte 45 @ catch rate
- .byte 108 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_ROCK_HEAD
- .byte ABILITY_STURDY
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Drowzee
- base_stats 60, 48, 45, 42, 43, 90
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 190 @ catch rate
- .byte 102 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_INSOMNIA
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Hypno
- base_stats 85, 73, 70, 67, 73, 115
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 75 @ catch rate
- .byte 165 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_INSOMNIA
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Krabby
- base_stats 30, 105, 90, 50, 25, 25
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 225 @ catch rate
- .byte 115 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_3
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_HYPER_CUTTER
- .byte ABILITY_SHELL_ARMOR
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Kingler
- base_stats 55, 130, 115, 75, 50, 50
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 60 @ catch rate
- .byte 206 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_3
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_HYPER_CUTTER
- .byte ABILITY_SHELL_ARMOR
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Voltorb
- base_stats 40, 30, 50, 100, 55, 55
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 190 @ catch rate
- .byte 103 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_SOUNDPROOF
- .byte ABILITY_STATIC
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Electrode
- base_stats 60, 50, 70, 140, 80, 80
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 60 @ catch rate
- .byte 150 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_SOUNDPROOF
- .byte ABILITY_STATIC
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Exeggcute
- base_stats 60, 40, 80, 40, 60, 45
- .byte TYPE_GRASS
- .byte TYPE_PSYCHIC
- .byte 90 @ catch rate
- .byte 98 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Exeggutor
- base_stats 95, 95, 85, 55, 125, 65
- .byte TYPE_GRASS
- .byte TYPE_PSYCHIC
- .byte 45 @ catch rate
- .byte 212 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Cubone
- base_stats 50, 50, 95, 35, 40, 50
- .byte TYPE_GROUND
- .byte TYPE_GROUND
- .byte 190 @ catch rate
- .byte 87 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_THICK_CLUB
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_MONSTER
- .byte ABILITY_ROCK_HEAD
- .byte ABILITY_LIGHTNING_ROD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Marowak
- base_stats 60, 80, 110, 45, 50, 80
- .byte TYPE_GROUND
- .byte TYPE_GROUND
- .byte 75 @ catch rate
- .byte 124 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_THICK_CLUB
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_MONSTER
- .byte ABILITY_ROCK_HEAD
- .byte ABILITY_LIGHTNING_ROD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Hitmonlee
- base_stats 50, 120, 53, 87, 35, 110
- .byte TYPE_FIGHTING
- .byte TYPE_FIGHTING
- .byte 45 @ catch rate
- .byte 139 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 0 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_LIMBER
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Hitmonchan
- base_stats 50, 105, 79, 76, 35, 110
- .byte TYPE_FIGHTING
- .byte TYPE_FIGHTING
- .byte 45 @ catch rate
- .byte 140 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 0 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_KEEN_EYE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Lickitung
- base_stats 90, 55, 75, 30, 60, 75
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 45 @ catch rate
- .byte 127 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_MONSTER
- .byte ABILITY_OWN_TEMPO
- .byte ABILITY_OBLIVIOUS
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Koffing
- base_stats 40, 65, 95, 35, 60, 45
- .byte TYPE_POISON
- .byte TYPE_POISON
- .byte 190 @ catch rate
- .byte 114 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_SMOKE_BALL
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Weezing
- base_stats 65, 90, 120, 60, 85, 70
- .byte TYPE_POISON
- .byte TYPE_POISON
- .byte 60 @ catch rate
- .byte 173 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_SMOKE_BALL
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Rhyhorn
- base_stats 80, 85, 95, 25, 30, 30
- .byte TYPE_GROUND
- .byte TYPE_ROCK
- .byte 120 @ catch rate
- .byte 135 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_FIELD
- .byte ABILITY_LIGHTNING_ROD
- .byte ABILITY_ROCK_HEAD
- .byte 4 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Rhydon
- base_stats 105, 130, 120, 40, 45, 45
- .byte TYPE_GROUND
- .byte TYPE_ROCK
- .byte 60 @ catch rate
- .byte 204 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_FIELD
- .byte ABILITY_LIGHTNING_ROD
- .byte ABILITY_ROCK_HEAD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Chansey
- base_stats 250, 5, 5, 50, 35, 105
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 30 @ catch rate
- .byte 255 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_LUCKY_EGG
- .byte 254 @ gender
- .byte 40 @ egg cycles
- .byte 140 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_NATURAL_CURE
- .byte ABILITY_SERENE_GRACE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Tangela
- base_stats 65, 55, 115, 60, 100, 40
- .byte TYPE_GRASS
- .byte TYPE_GRASS
- .byte 45 @ catch rate
- .byte 166 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Kangaskhan
- base_stats 105, 95, 80, 90, 40, 80
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 45 @ catch rate
- .byte 175 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 254 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_MONSTER
- .byte ABILITY_EARLY_BIRD
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Horsea
- base_stats 30, 40, 70, 60, 70, 25
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 225 @ catch rate
- .byte 83 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_DRAGON_SCALE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Seadra
- base_stats 55, 65, 95, 85, 95, 45
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 75 @ catch rate
- .byte 155 @ base exp. yield
- ev_yield 0, 0, 1, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_DRAGON_SCALE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_POISON_POINT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Goldeen
- base_stats 45, 67, 60, 63, 35, 50
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 225 @ catch rate
- .byte 111 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_2
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_WATER_VEIL
- .byte 4 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Seaking
- base_stats 80, 92, 65, 68, 65, 80
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 60 @ catch rate
- .byte 170 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_2
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_WATER_VEIL
- .byte 6 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Staryu
- base_stats 30, 45, 55, 85, 70, 55
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 225 @ catch rate
- .byte 106 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_STARDUST
- .2byte ITEM_STAR_PIECE
- .byte 255 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_3
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_ILLUMINATE
- .byte ABILITY_NATURAL_CURE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Starmie
- base_stats 60, 75, 85, 115, 100, 85
- .byte TYPE_WATER
- .byte TYPE_PSYCHIC
- .byte 60 @ catch rate
- .byte 207 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_STARDUST
- .2byte ITEM_STAR_PIECE
- .byte 255 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_3
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_ILLUMINATE
- .byte ABILITY_NATURAL_CURE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Mr. mime
- base_stats 40, 45, 65, 90, 100, 120
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 45 @ catch rate
- .byte 136 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_LEPPA_BERRY
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_SOUNDPROOF
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Scyther
- base_stats 70, 110, 80, 105, 55, 80
- .byte TYPE_BUG
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 187 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SWARM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Jynx
- base_stats 65, 50, 35, 95, 115, 95
- .byte TYPE_ICE
- .byte TYPE_PSYCHIC
- .byte 45 @ catch rate
- .byte 137 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_ASPEAR_BERRY
- .2byte ITEM_ASPEAR_BERRY
- .byte 254 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_OBLIVIOUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Electabuzz
- base_stats 65, 83, 57, 105, 95, 85
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 45 @ catch rate
- .byte 156 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 63 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_STATIC
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Magmar
- base_stats 65, 95, 57, 93, 100, 85
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 45 @ catch rate
- .byte 167 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_RAWST_BERRY
- .2byte ITEM_RAWST_BERRY
- .byte 63 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_FLAME_BODY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Pinsir
- base_stats 65, 125, 100, 85, 55, 70
- .byte TYPE_BUG
- .byte TYPE_BUG
- .byte 45 @ catch rate
- .byte 200 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_HYPER_CUTTER
- .byte ABILITY_NONE
- .byte 8 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Tauros
- base_stats 75, 100, 95, 110, 40, 70
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 45 @ catch rate
- .byte 211 @ base exp. yield
- ev_yield 0, 1, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 0 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_INTIMIDATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Magikarp
- base_stats 20, 10, 55, 80, 15, 20
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 255 @ catch rate
- .byte 20 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 5 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_2
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_NONE
- .byte 4 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Gyarados
- base_stats 95, 125, 79, 81, 60, 100
- .byte TYPE_WATER
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 214 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 5 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_2
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_INTIMIDATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Lapras
- base_stats 130, 85, 80, 60, 85, 95
- .byte TYPE_WATER
- .byte TYPE_ICE
- .byte 45 @ catch rate
- .byte 219 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 40 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_WATER_ABSORB
- .byte ABILITY_SHELL_ARMOR
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Ditto
- base_stats 48, 48, 48, 48, 48, 48
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 35 @ catch rate
- .byte 61 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_METAL_POWDER
- .byte 255 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_DITTO
- .byte EGG_GROUP_DITTO
- .byte ABILITY_LIMBER
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Eevee
- base_stats 55, 55, 50, 55, 45, 65
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 45 @ catch rate
- .byte 92 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 35 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_RUN_AWAY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Vaporeon
- base_stats 130, 65, 60, 65, 110, 95
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 196 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 35 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_WATER_ABSORB
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Jolteon
- base_stats 65, 65, 60, 130, 110, 95
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 45 @ catch rate
- .byte 197 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 35 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_VOLT_ABSORB
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Flareon
- base_stats 65, 130, 60, 65, 95, 110
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 45 @ catch rate
- .byte 198 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 35 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_FLASH_FIRE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Porygon
- base_stats 65, 60, 70, 40, 85, 75
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 45 @ catch rate
- .byte 130 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_TRACE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Omanyte
- base_stats 35, 40, 100, 35, 90, 55
- .byte TYPE_ROCK
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 120 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 30 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_SHELL_ARMOR
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Omastar
- base_stats 70, 60, 125, 55, 115, 70
- .byte TYPE_ROCK
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 199 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 30 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_SHELL_ARMOR
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Kabuto
- base_stats 30, 80, 90, 55, 55, 45
- .byte TYPE_ROCK
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 119 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 30 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_BATTLE_ARMOR
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Kabutops
- base_stats 60, 115, 105, 80, 65, 70
- .byte TYPE_ROCK
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 201 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 30 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_BATTLE_ARMOR
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Aerodactyl
- base_stats 80, 105, 65, 130, 60, 75
- .byte TYPE_ROCK
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 202 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 35 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_ROCK_HEAD
- .byte ABILITY_PRESSURE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Snorlax
- base_stats 160, 110, 65, 30, 65, 110
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 25 @ catch rate
- .byte 154 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_LEFTOVERS
- .2byte ITEM_LEFTOVERS
- .byte 31 @ gender
- .byte 40 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_MONSTER
- .byte ABILITY_IMMUNITY
- .byte ABILITY_THICK_FAT
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Articuno
- base_stats 90, 85, 100, 85, 95, 125
- .byte TYPE_ICE
- .byte TYPE_FLYING
- .byte 3 @ catch rate
- .byte 215 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 3
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 80 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_PRESSURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Zapdos
- base_stats 90, 90, 85, 100, 125, 90
- .byte TYPE_ELECTRIC
- .byte TYPE_FLYING
- .byte 3 @ catch rate
- .byte 216 @ base exp. yield
- ev_yield 0, 0, 0, 0, 3, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 80 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_PRESSURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Moltres
- base_stats 90, 100, 90, 90, 125, 85
- .byte TYPE_FIRE
- .byte TYPE_FLYING
- .byte 3 @ catch rate
- .byte 217 @ base exp. yield
- ev_yield 0, 0, 0, 0, 3, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 80 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_PRESSURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Dratini
- base_stats 41, 64, 45, 50, 50, 50
- .byte TYPE_DRAGON
- .byte TYPE_DRAGON
- .byte 45 @ catch rate
- .byte 67 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_DRAGON_SCALE
- .byte 127 @ gender
- .byte 40 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_SHED_SKIN
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Dragonair
- base_stats 61, 84, 65, 70, 70, 70
- .byte TYPE_DRAGON
- .byte TYPE_DRAGON
- .byte 45 @ catch rate
- .byte 144 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_DRAGON_SCALE
- .byte 127 @ gender
- .byte 40 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_SHED_SKIN
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Dragonite
- base_stats 91, 134, 95, 80, 100, 100
- .byte TYPE_DRAGON
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 218 @ base exp. yield
- ev_yield 0, 3, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_DRAGON_SCALE
- .byte 127 @ gender
- .byte 40 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_INNER_FOCUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Mewtwo
- base_stats 106, 110, 90, 130, 154, 90
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 3 @ catch rate
- .byte 220 @ base exp. yield
- ev_yield 0, 0, 0, 0, 3, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_PRESSURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Mew
- base_stats 100, 100, 100, 100, 100, 100
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 45 @ catch rate
- .byte 64 @ base exp. yield
- ev_yield 3, 0, 0, 0, 0, 0
- .2byte ITEM_LUM_BERRY
- .2byte ITEM_LUM_BERRY
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 100 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_SYNCHRONIZE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Chikorita
- base_stats 45, 49, 65, 45, 49, 65
- .byte TYPE_GRASS
- .byte TYPE_GRASS
- .byte 45 @ catch rate
- .byte 64 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_GRASS
- .byte ABILITY_OVERGROW
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Bayleef
- base_stats 60, 62, 80, 60, 63, 80
- .byte TYPE_GRASS
- .byte TYPE_GRASS
- .byte 45 @ catch rate
- .byte 141 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_GRASS
- .byte ABILITY_OVERGROW
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Meganium
- base_stats 80, 82, 100, 80, 83, 100
- .byte TYPE_GRASS
- .byte TYPE_GRASS
- .byte 45 @ catch rate
- .byte 208 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_GRASS
- .byte ABILITY_OVERGROW
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Cyndaquil
- base_stats 39, 52, 43, 65, 60, 50
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 45 @ catch rate
- .byte 65 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_BLAZE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Quilava
- base_stats 58, 64, 58, 80, 80, 65
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 45 @ catch rate
- .byte 142 @ base exp. yield
- ev_yield 0, 0, 0, 1, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_BLAZE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Typhlosion
- base_stats 78, 84, 78, 100, 109, 85
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 45 @ catch rate
- .byte 209 @ base exp. yield
- ev_yield 0, 0, 0, 0, 3, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_BLAZE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Totodile
- base_stats 50, 65, 64, 43, 44, 48
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 66 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_TORRENT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Croconaw
- base_stats 65, 80, 80, 58, 59, 63
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 143 @ base exp. yield
- ev_yield 0, 1, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_TORRENT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Feraligatr
- base_stats 85, 105, 100, 78, 79, 83
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 210 @ base exp. yield
- ev_yield 0, 2, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_TORRENT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Sentret
- base_stats 35, 46, 34, 20, 35, 45
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 255 @ catch rate
- .byte 57 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_ORAN_BERRY
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_RUN_AWAY
- .byte ABILITY_KEEN_EYE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Furret
- base_stats 85, 76, 64, 90, 45, 55
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 90 @ catch rate
- .byte 116 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_ORAN_BERRY
- .2byte ITEM_SITRUS_BERRY
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_RUN_AWAY
- .byte ABILITY_KEEN_EYE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Hoothoot
- base_stats 60, 30, 30, 50, 36, 56
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 255 @ catch rate
- .byte 58 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_INSOMNIA
- .byte ABILITY_KEEN_EYE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Noctowl
- base_stats 100, 50, 50, 70, 76, 96
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 90 @ catch rate
- .byte 162 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_INSOMNIA
- .byte ABILITY_KEEN_EYE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Ledyba
- base_stats 40, 20, 30, 55, 40, 80
- .byte TYPE_BUG
- .byte TYPE_FLYING
- .byte 255 @ catch rate
- .byte 54 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SWARM
- .byte ABILITY_EARLY_BIRD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Ledian
- base_stats 55, 35, 50, 85, 55, 110
- .byte TYPE_BUG
- .byte TYPE_FLYING
- .byte 90 @ catch rate
- .byte 134 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SWARM
- .byte ABILITY_EARLY_BIRD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Spinarak
- base_stats 40, 60, 40, 30, 40, 40
- .byte TYPE_BUG
- .byte TYPE_POISON
- .byte 255 @ catch rate
- .byte 54 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SWARM
- .byte ABILITY_INSOMNIA
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Ariados
- base_stats 70, 90, 70, 40, 60, 60
- .byte TYPE_BUG
- .byte TYPE_POISON
- .byte 90 @ catch rate
- .byte 134 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SWARM
- .byte ABILITY_INSOMNIA
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Crobat
- base_stats 85, 90, 80, 130, 70, 80
- .byte TYPE_POISON
- .byte TYPE_FLYING
- .byte 90 @ catch rate
- .byte 204 @ base exp. yield
- ev_yield 0, 0, 0, 3, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_INNER_FOCUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Chinchou
- base_stats 75, 38, 38, 67, 56, 56
- .byte TYPE_WATER
- .byte TYPE_ELECTRIC
- .byte 190 @ catch rate
- .byte 90 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_YELLOW_SHARD
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_2
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_VOLT_ABSORB
- .byte ABILITY_ILLUMINATE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Lanturn
- base_stats 125, 58, 58, 67, 76, 76
- .byte TYPE_WATER
- .byte TYPE_ELECTRIC
- .byte 75 @ catch rate
- .byte 156 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_YELLOW_SHARD
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_2
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_VOLT_ABSORB
- .byte ABILITY_ILLUMINATE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Pichu
- base_stats 20, 40, 15, 60, 35, 35
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 190 @ catch rate
- .byte 42 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_ORAN_BERRY
- .byte 127 @ gender
- .byte 10 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_STATIC
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Cleffa
- base_stats 50, 25, 28, 15, 45, 55
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 150 @ catch rate
- .byte 37 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_LEPPA_BERRY
- .2byte ITEM_MOON_STONE
- .byte 191 @ gender
- .byte 10 @ egg cycles
- .byte 140 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_CUTE_CHARM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Igglybuff
- base_stats 90, 30, 15, 15, 40, 20
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 170 @ catch rate
- .byte 39 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 191 @ gender
- .byte 10 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_CUTE_CHARM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Togepi
- base_stats 35, 20, 65, 20, 40, 65
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 190 @ catch rate
- .byte 74 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 10 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_HUSTLE
- .byte ABILITY_SERENE_GRACE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Togetic
- base_stats 55, 40, 85, 40, 80, 105
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 75 @ catch rate
- .byte 114 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 10 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_HUSTLE
- .byte ABILITY_SERENE_GRACE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Natu
- base_stats 40, 50, 45, 70, 70, 45
- .byte TYPE_PSYCHIC
- .byte TYPE_FLYING
- .byte 190 @ catch rate
- .byte 73 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_SYNCHRONIZE
- .byte ABILITY_EARLY_BIRD
- .byte 6 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Xatu
- base_stats 65, 75, 70, 95, 95, 70
- .byte TYPE_PSYCHIC
- .byte TYPE_FLYING
- .byte 75 @ catch rate
- .byte 171 @ base exp. yield
- ev_yield 0, 0, 0, 1, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_SYNCHRONIZE
- .byte ABILITY_EARLY_BIRD
- .byte 8 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Mareep
- base_stats 55, 40, 40, 35, 65, 45
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 235 @ catch rate
- .byte 59 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_FIELD
- .byte ABILITY_STATIC
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Flaaffy
- base_stats 70, 55, 55, 45, 80, 60
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 120 @ catch rate
- .byte 117 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_FIELD
- .byte ABILITY_STATIC
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Ampharos
- base_stats 90, 75, 75, 55, 115, 90
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 45 @ catch rate
- .byte 194 @ base exp. yield
- ev_yield 0, 0, 0, 0, 3, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_FIELD
- .byte ABILITY_STATIC
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Bellossom
- base_stats 75, 80, 85, 50, 90, 100
- .byte TYPE_GRASS
- .byte TYPE_GRASS
- .byte 45 @ catch rate
- .byte 184 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 3
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Marill
- base_stats 70, 20, 50, 40, 20, 50
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 190 @ catch rate
- .byte 58 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 10 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_THICK_FAT
- .byte ABILITY_HUGE_POWER
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Azumarill
- base_stats 100, 50, 80, 50, 50, 80
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 75 @ catch rate
- .byte 153 @ base exp. yield
- ev_yield 3, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 10 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_THICK_FAT
- .byte ABILITY_HUGE_POWER
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Sudowoodo
- base_stats 70, 100, 115, 30, 30, 65
- .byte TYPE_ROCK
- .byte TYPE_ROCK
- .byte 65 @ catch rate
- .byte 135 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_STURDY
- .byte ABILITY_ROCK_HEAD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Politoed
- base_stats 90, 75, 75, 70, 90, 100
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 185 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 3
- .2byte ITEM_NONE
- .2byte ITEM_KINGS_ROCK
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_WATER_ABSORB
- .byte ABILITY_DAMP
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Hoppip
- base_stats 35, 35, 40, 50, 35, 55
- .byte TYPE_GRASS
- .byte TYPE_FLYING
- .byte 255 @ catch rate
- .byte 74 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Skiploom
- base_stats 55, 45, 50, 80, 45, 65
- .byte TYPE_GRASS
- .byte TYPE_FLYING
- .byte 120 @ catch rate
- .byte 136 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Jumpluff
- base_stats 75, 55, 70, 110, 55, 85
- .byte TYPE_GRASS
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 176 @ base exp. yield
- ev_yield 0, 0, 0, 3, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Aipom
- base_stats 55, 70, 55, 85, 40, 55
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 45 @ catch rate
- .byte 94 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_RUN_AWAY
- .byte ABILITY_PICKUP
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Sunkern
- base_stats 30, 30, 30, 30, 30, 30
- .byte TYPE_GRASS
- .byte TYPE_GRASS
- .byte 235 @ catch rate
- .byte 52 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Sunflora
- base_stats 75, 75, 55, 30, 105, 85
- .byte TYPE_GRASS
- .byte TYPE_GRASS
- .byte 120 @ catch rate
- .byte 146 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Yanma
- base_stats 65, 65, 45, 95, 75, 45
- .byte TYPE_BUG
- .byte TYPE_FLYING
- .byte 75 @ catch rate
- .byte 147 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SPEED_BOOST
- .byte ABILITY_COMPOUND_EYES
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Wooper
- base_stats 55, 45, 45, 15, 25, 25
- .byte TYPE_WATER
- .byte TYPE_GROUND
- .byte 255 @ catch rate
- .byte 52 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FIELD
- .byte ABILITY_DAMP
- .byte ABILITY_WATER_ABSORB
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Quagsire
- base_stats 95, 85, 85, 35, 65, 65
- .byte TYPE_WATER
- .byte TYPE_GROUND
- .byte 90 @ catch rate
- .byte 137 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FIELD
- .byte ABILITY_DAMP
- .byte ABILITY_WATER_ABSORB
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Espeon
- base_stats 65, 65, 60, 110, 130, 95
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 45 @ catch rate
- .byte 197 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 35 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_SYNCHRONIZE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Umbreon
- base_stats 95, 65, 110, 65, 60, 130
- .byte TYPE_DARK
- .byte TYPE_DARK
- .byte 45 @ catch rate
- .byte 197 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 35 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_SYNCHRONIZE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Murkrow
- base_stats 60, 85, 42, 91, 85, 42
- .byte TYPE_DARK
- .byte TYPE_FLYING
- .byte 30 @ catch rate
- .byte 107 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_INSOMNIA
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Slowking
- base_stats 95, 75, 80, 30, 100, 110
- .byte TYPE_WATER
- .byte TYPE_PSYCHIC
- .byte 70 @ catch rate
- .byte 164 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 3
- .2byte ITEM_NONE
- .2byte ITEM_KINGS_ROCK
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_OBLIVIOUS
- .byte ABILITY_OWN_TEMPO
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Misdreavus
- base_stats 60, 60, 60, 85, 85, 85
- .byte TYPE_GHOST
- .byte TYPE_GHOST
- .byte 45 @ catch rate
- .byte 147 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 1
- .2byte ITEM_NONE
- .2byte ITEM_SPELL_TAG
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Unown
- base_stats 48, 72, 48, 48, 72, 48
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 225 @ catch rate
- .byte 61 @ base exp. yield
- ev_yield 0, 1, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 40 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Wobbuffet
- base_stats 190, 33, 58, 33, 33, 58
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 45 @ catch rate
- .byte 177 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_SHADOW_TAG
- .byte ABILITY_NONE
- .byte 4 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Girafarig
- base_stats 70, 80, 65, 85, 90, 65
- .byte TYPE_NORMAL
- .byte TYPE_PSYCHIC
- .byte 60 @ catch rate
- .byte 149 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_PERSIM_BERRY
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_INNER_FOCUS
- .byte ABILITY_EARLY_BIRD
- .byte 4 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Pineco
- base_stats 50, 65, 90, 15, 35, 35
- .byte TYPE_BUG
- .byte TYPE_BUG
- .byte 190 @ catch rate
- .byte 60 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_STURDY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Forretress
- base_stats 75, 90, 140, 40, 60, 60
- .byte TYPE_BUG
- .byte TYPE_STEEL
- .byte 75 @ catch rate
- .byte 118 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_STURDY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Dunsparce
- base_stats 100, 70, 70, 45, 65, 65
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 190 @ catch rate
- .byte 75 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_SERENE_GRACE
- .byte ABILITY_RUN_AWAY
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Gligar
- base_stats 65, 75, 105, 85, 35, 65
- .byte TYPE_GROUND
- .byte TYPE_FLYING
- .byte 60 @ catch rate
- .byte 108 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_HYPER_CUTTER
- .byte ABILITY_SAND_VEIL
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Steelix
- base_stats 75, 85, 200, 30, 55, 65
- .byte TYPE_STEEL
- .byte TYPE_GROUND
- .byte 25 @ catch rate
- .byte 196 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_METAL_COAT
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_ROCK_HEAD
- .byte ABILITY_STURDY
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Snubbull
- base_stats 60, 80, 50, 30, 40, 40
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 190 @ catch rate
- .byte 63 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 191 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_INTIMIDATE
- .byte ABILITY_RUN_AWAY
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Granbull
- base_stats 90, 120, 75, 45, 60, 60
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 75 @ catch rate
- .byte 178 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 191 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_INTIMIDATE
- .byte ABILITY_INTIMIDATE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Qwilfish
- base_stats 65, 95, 75, 85, 55, 55
- .byte TYPE_WATER
- .byte TYPE_POISON
- .byte 45 @ catch rate
- .byte 100 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_2
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_POISON_POINT
- .byte ABILITY_SWIFT_SWIM
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Scizor
- base_stats 70, 130, 100, 65, 55, 80
- .byte TYPE_BUG
- .byte TYPE_STEEL
- .byte 25 @ catch rate
- .byte 200 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SWARM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Shuckle
- base_stats 20, 10, 230, 5, 10, 230
- .byte TYPE_BUG
- .byte TYPE_ROCK
- .byte 190 @ catch rate
- .byte 80 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 1
- .2byte ITEM_ORAN_BERRY
- .2byte ITEM_ORAN_BERRY
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_STURDY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Heracross
- base_stats 80, 125, 75, 85, 40, 95
- .byte TYPE_BUG
- .byte TYPE_FIGHTING
- .byte 45 @ catch rate
- .byte 200 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SWARM
- .byte ABILITY_GUTS
- .byte 8 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Sneasel
- base_stats 55, 95, 55, 115, 35, 75
- .byte TYPE_DARK
- .byte TYPE_ICE
- .byte 60 @ catch rate
- .byte 132 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_QUICK_CLAW
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_INNER_FOCUS
- .byte ABILITY_KEEN_EYE
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Teddiursa
- base_stats 60, 80, 50, 40, 50, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 120 @ catch rate
- .byte 124 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_PICKUP
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Ursaring
- base_stats 90, 130, 75, 55, 75, 75
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 60 @ catch rate
- .byte 189 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_GUTS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Slugma
- base_stats 40, 40, 40, 20, 70, 40
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 190 @ catch rate
- .byte 78 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_MAGMA_ARMOR
- .byte ABILITY_FLAME_BODY
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Magcargo
- base_stats 50, 50, 120, 30, 80, 80
- .byte TYPE_FIRE
- .byte TYPE_ROCK
- .byte 75 @ catch rate
- .byte 154 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_MAGMA_ARMOR
- .byte ABILITY_FLAME_BODY
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Swinub
- base_stats 50, 50, 40, 50, 30, 30
- .byte TYPE_ICE
- .byte TYPE_GROUND
- .byte 225 @ catch rate
- .byte 78 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_OBLIVIOUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Piloswine
- base_stats 100, 100, 80, 50, 60, 60
- .byte TYPE_ICE
- .byte TYPE_GROUND
- .byte 75 @ catch rate
- .byte 160 @ base exp. yield
- ev_yield 1, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_OBLIVIOUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Corsola
- base_stats 55, 55, 85, 35, 65, 85
- .byte TYPE_WATER
- .byte TYPE_ROCK
- .byte 60 @ catch rate
- .byte 113 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_RED_SHARD
- .byte 191 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_HUSTLE
- .byte ABILITY_NATURAL_CURE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Remoraid
- base_stats 35, 65, 35, 65, 65, 35
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 190 @ catch rate
- .byte 78 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_HUSTLE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Octillery
- base_stats 75, 105, 75, 45, 105, 75
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 75 @ catch rate
- .byte 164 @ base exp. yield
- ev_yield 0, 1, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_SUCTION_CUPS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Delibird
- base_stats 45, 55, 45, 75, 65, 45
- .byte TYPE_ICE
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 183 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FIELD
- .byte ABILITY_VITAL_SPIRIT
- .byte ABILITY_HUSTLE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Mantine
- base_stats 65, 40, 70, 70, 80, 140
- .byte TYPE_WATER
- .byte TYPE_FLYING
- .byte 25 @ catch rate
- .byte 168 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_WATER_ABSORB
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Skarmory
- base_stats 65, 80, 140, 70, 40, 70
- .byte TYPE_STEEL
- .byte TYPE_FLYING
- .byte 25 @ catch rate
- .byte 168 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_KEEN_EYE
- .byte ABILITY_STURDY
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Houndour
- base_stats 45, 60, 30, 65, 80, 50
- .byte TYPE_DARK
- .byte TYPE_FIRE
- .byte 120 @ catch rate
- .byte 114 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_EARLY_BIRD
- .byte ABILITY_FLASH_FIRE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Houndoom
- base_stats 75, 90, 50, 95, 110, 80
- .byte TYPE_DARK
- .byte TYPE_FIRE
- .byte 45 @ catch rate
- .byte 204 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_EARLY_BIRD
- .byte ABILITY_FLASH_FIRE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Kingdra
- base_stats 75, 95, 95, 85, 95, 95
- .byte TYPE_WATER
- .byte TYPE_DRAGON
- .byte 45 @ catch rate
- .byte 207 @ base exp. yield
- ev_yield 0, 1, 0, 0, 1, 1
- .2byte ITEM_NONE
- .2byte ITEM_DRAGON_SCALE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Phanpy
- base_stats 90, 60, 60, 40, 40, 40
- .byte TYPE_GROUND
- .byte TYPE_GROUND
- .byte 120 @ catch rate
- .byte 124 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_PICKUP
- .byte ABILITY_NONE
- .byte 10 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Donphan
- base_stats 90, 120, 120, 50, 60, 60
- .byte TYPE_GROUND
- .byte TYPE_GROUND
- .byte 60 @ catch rate
- .byte 189 @ base exp. yield
- ev_yield 0, 1, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_STURDY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Porygon2
- base_stats 85, 80, 90, 60, 105, 95
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 45 @ catch rate
- .byte 180 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_TRACE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Stantler
- base_stats 73, 95, 62, 85, 85, 65
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 45 @ catch rate
- .byte 165 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_INTIMIDATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Smeargle
- base_stats 55, 20, 35, 75, 20, 45
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 45 @ catch rate
- .byte 106 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_OWN_TEMPO
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Tyrogue
- base_stats 35, 35, 35, 35, 35, 35
- .byte TYPE_FIGHTING
- .byte TYPE_FIGHTING
- .byte 75 @ catch rate
- .byte 91 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 0 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_GUTS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Hitmontop
- base_stats 50, 95, 95, 70, 35, 110
- .byte TYPE_FIGHTING
- .byte TYPE_FIGHTING
- .byte 45 @ catch rate
- .byte 138 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 0 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_INTIMIDATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Smoochum
- base_stats 45, 30, 15, 65, 85, 65
- .byte TYPE_ICE
- .byte TYPE_PSYCHIC
- .byte 45 @ catch rate
- .byte 87 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_ASPEAR_BERRY
- .2byte ITEM_ASPEAR_BERRY
- .byte 254 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_OBLIVIOUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Elekid
- base_stats 45, 63, 37, 95, 65, 55
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 45 @ catch rate
- .byte 106 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 63 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_STATIC
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Magby
- base_stats 45, 75, 37, 83, 70, 55
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 45 @ catch rate
- .byte 117 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_RAWST_BERRY
- .2byte ITEM_RAWST_BERRY
- .byte 63 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_FLAME_BODY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Miltank
- base_stats 95, 80, 105, 100, 40, 70
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 45 @ catch rate
- .byte 200 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_MOOMOO_MILK
- .2byte ITEM_MOOMOO_MILK
- .byte 254 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_THICK_FAT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Blissey
- base_stats 255, 10, 10, 55, 75, 135
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 30 @ catch rate
- .byte 255 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_LUCKY_EGG
- .byte 254 @ gender
- .byte 40 @ egg cycles
- .byte 140 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_NATURAL_CURE
- .byte ABILITY_SERENE_GRACE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Raikou
- base_stats 90, 85, 75, 115, 115, 100
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 3 @ catch rate
- .byte 216 @ base exp. yield
- ev_yield 0, 0, 0, 2, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 80 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_PRESSURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Entei
- base_stats 115, 115, 85, 100, 90, 75
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 3 @ catch rate
- .byte 217 @ base exp. yield
- ev_yield 1, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 80 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_PRESSURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Suicune
- base_stats 100, 75, 115, 85, 90, 115
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 3 @ catch rate
- .byte 215 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 80 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_PRESSURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Larvitar
- base_stats 50, 64, 50, 41, 45, 50
- .byte TYPE_ROCK
- .byte TYPE_GROUND
- .byte 45 @ catch rate
- .byte 67 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 40 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_MONSTER
- .byte ABILITY_GUTS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Pupitar
- base_stats 70, 84, 70, 51, 65, 70
- .byte TYPE_ROCK
- .byte TYPE_GROUND
- .byte 45 @ catch rate
- .byte 144 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 40 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_MONSTER
- .byte ABILITY_SHED_SKIN
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Tyranitar
- base_stats 100, 134, 110, 61, 95, 100
- .byte TYPE_ROCK
- .byte TYPE_DARK
- .byte 45 @ catch rate
- .byte 218 @ base exp. yield
- ev_yield 0, 3, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 40 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_MONSTER
- .byte ABILITY_SAND_STREAM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Lugia
- base_stats 106, 90, 130, 110, 90, 154
- .byte TYPE_PSYCHIC
- .byte TYPE_FLYING
- .byte 3 @ catch rate
- .byte 220 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 3
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_PRESSURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Ho-Oh
- base_stats 106, 130, 90, 90, 110, 154
- .byte TYPE_FIRE
- .byte TYPE_FLYING
- .byte 3 @ catch rate
- .byte 220 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 3
- .2byte ITEM_SACRED_ASH
- .2byte ITEM_SACRED_ASH
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_PRESSURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Celebi
- base_stats 100, 100, 100, 100, 100, 100
- .byte TYPE_PSYCHIC
- .byte TYPE_GRASS
- .byte 45 @ catch rate
- .byte 64 @ base exp. yield
- ev_yield 3, 0, 0, 0, 0, 0
- .2byte ITEM_LUM_BERRY
- .2byte ITEM_LUM_BERRY
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 100 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NATURAL_CURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ ?
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 3 @ catch rate
- .byte 1 @ base exp. yield
- ev_yield 2, 2, 2, 2, 2, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_NONE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Treecko
- base_stats 40, 45, 35, 70, 65, 55
- .byte TYPE_GRASS
- .byte TYPE_GRASS
- .byte 45 @ catch rate
- .byte 65 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_OVERGROW
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Grovyle
- base_stats 50, 65, 45, 95, 85, 65
- .byte TYPE_GRASS
- .byte TYPE_GRASS
- .byte 45 @ catch rate
- .byte 141 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_OVERGROW
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Sceptile
- base_stats 70, 85, 65, 120, 105, 85
- .byte TYPE_GRASS
- .byte TYPE_GRASS
- .byte 45 @ catch rate
- .byte 208 @ base exp. yield
- ev_yield 0, 0, 0, 3, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_OVERGROW
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Torchic
- base_stats 45, 60, 40, 45, 70, 50
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 45 @ catch rate
- .byte 65 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_BLAZE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Combusken
- base_stats 60, 85, 60, 55, 85, 60
- .byte TYPE_FIRE
- .byte TYPE_FIGHTING
- .byte 45 @ catch rate
- .byte 142 @ base exp. yield
- ev_yield 0, 1, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_BLAZE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Blaziken
- base_stats 80, 120, 70, 80, 110, 70
- .byte TYPE_FIRE
- .byte TYPE_FIGHTING
- .byte 45 @ catch rate
- .byte 209 @ base exp. yield
- ev_yield 0, 3, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_BLAZE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Mudkip
- base_stats 50, 70, 50, 40, 50, 50
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 65 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_TORRENT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Marshtomp
- base_stats 70, 85, 70, 50, 60, 70
- .byte TYPE_WATER
- .byte TYPE_GROUND
- .byte 45 @ catch rate
- .byte 143 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_TORRENT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Swampert
- base_stats 100, 110, 90, 60, 85, 90
- .byte TYPE_WATER
- .byte TYPE_GROUND
- .byte 45 @ catch rate
- .byte 210 @ base exp. yield
- ev_yield 0, 3, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_TORRENT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Poochyena
- base_stats 35, 55, 35, 35, 30, 30
- .byte TYPE_DARK
- .byte TYPE_DARK
- .byte 255 @ catch rate
- .byte 55 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_PECHA_BERRY
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_RUN_AWAY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Mightyena
- base_stats 70, 90, 70, 70, 60, 60
- .byte TYPE_DARK
- .byte TYPE_DARK
- .byte 127 @ catch rate
- .byte 128 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_PECHA_BERRY
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_INTIMIDATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Zigzagoon
- base_stats 38, 30, 41, 60, 30, 41
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 255 @ catch rate
- .byte 60 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_ORAN_BERRY
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_PICKUP
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Linoone
- base_stats 78, 70, 61, 100, 50, 61
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 90 @ catch rate
- .byte 128 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_ORAN_BERRY
- .2byte ITEM_SITRUS_BERRY
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_PICKUP
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Wurmple
- base_stats 45, 45, 35, 20, 20, 30
- .byte TYPE_BUG
- .byte TYPE_BUG
- .byte 255 @ catch rate
- .byte 54 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SHIELD_DUST
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Silcoon
- base_stats 50, 35, 55, 15, 25, 25
- .byte TYPE_BUG
- .byte TYPE_BUG
- .byte 120 @ catch rate
- .byte 71 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SHED_SKIN
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Beautifly
- base_stats 60, 70, 50, 65, 90, 50
- .byte TYPE_BUG
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 161 @ base exp. yield
- ev_yield 0, 0, 0, 0, 3, 0
- .2byte ITEM_NONE
- .2byte ITEM_SILVER_POWDER
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SWARM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Cascoon
- base_stats 50, 35, 55, 15, 25, 25
- .byte TYPE_BUG
- .byte TYPE_BUG
- .byte 120 @ catch rate
- .byte 72 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SHED_SKIN
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Dustox
- base_stats 60, 50, 70, 65, 50, 90
- .byte TYPE_BUG
- .byte TYPE_POISON
- .byte 45 @ catch rate
- .byte 160 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 3
- .2byte ITEM_NONE
- .2byte ITEM_SILVER_POWDER
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SHIELD_DUST
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Lotad
- base_stats 40, 30, 30, 30, 40, 50
- .byte TYPE_WATER
- .byte TYPE_GRASS
- .byte 255 @ catch rate
- .byte 74 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_GRASS
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_RAIN_DISH
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Lombre
- base_stats 60, 50, 50, 50, 60, 70
- .byte TYPE_WATER
- .byte TYPE_GRASS
- .byte 120 @ catch rate
- .byte 141 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_GRASS
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_RAIN_DISH
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Ludicolo
- base_stats 80, 70, 70, 70, 90, 100
- .byte TYPE_WATER
- .byte TYPE_GRASS
- .byte 45 @ catch rate
- .byte 181 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 3
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_GRASS
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_RAIN_DISH
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Seedot
- base_stats 40, 40, 50, 30, 30, 30
- .byte TYPE_GRASS
- .byte TYPE_GRASS
- .byte 255 @ catch rate
- .byte 74 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_EARLY_BIRD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Nuzleaf
- base_stats 70, 70, 40, 60, 60, 40
- .byte TYPE_GRASS
- .byte TYPE_DARK
- .byte 120 @ catch rate
- .byte 141 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_EARLY_BIRD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Shiftry
- base_stats 90, 100, 60, 80, 90, 60
- .byte TYPE_GRASS
- .byte TYPE_DARK
- .byte 45 @ catch rate
- .byte 181 @ base exp. yield
- ev_yield 0, 3, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_EARLY_BIRD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Nincada
- base_stats 31, 45, 90, 40, 30, 30
- .byte TYPE_BUG
- .byte TYPE_GROUND
- .byte 255 @ catch rate
- .byte 65 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_COMPOUND_EYES
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Ninjask
- base_stats 61, 90, 45, 160, 50, 50
- .byte TYPE_BUG
- .byte TYPE_FLYING
- .byte 120 @ catch rate
- .byte 155 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_SPEED_BOOST
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Shedinja
- base_stats 1, 90, 45, 40, 30, 30
- .byte TYPE_BUG
- .byte TYPE_GHOST
- .byte 45 @ catch rate
- .byte 95 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_WONDER_GUARD
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Taillow
- base_stats 40, 55, 30, 85, 30, 30
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 200 @ catch rate
- .byte 59 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_GUTS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Swellow
- base_stats 60, 85, 60, 125, 50, 50
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 162 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_FLYING
- .byte ABILITY_GUTS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Shroomish
- base_stats 60, 40, 60, 35, 40, 60
- .byte TYPE_GRASS
- .byte TYPE_GRASS
- .byte 255 @ catch rate
- .byte 65 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FLUCTUATING
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_GRASS
- .byte ABILITY_EFFECT_SPORE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Breloom
- base_stats 60, 130, 80, 70, 60, 60
- .byte TYPE_GRASS
- .byte TYPE_FIGHTING
- .byte 90 @ catch rate
- .byte 165 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FLUCTUATING
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_GRASS
- .byte ABILITY_EFFECT_SPORE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Spinda
- base_stats 60, 60, 60, 60, 60, 60
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 255 @ catch rate
- .byte 85 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_CHESTO_BERRY
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_OWN_TEMPO
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Wingull
- base_stats 40, 30, 30, 85, 55, 30
- .byte TYPE_WATER
- .byte TYPE_FLYING
- .byte 190 @ catch rate
- .byte 64 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FLYING
- .byte ABILITY_KEEN_EYE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Pelipper
- base_stats 60, 50, 100, 65, 85, 70
- .byte TYPE_WATER
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 164 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FLYING
- .byte ABILITY_KEEN_EYE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Surskit
- base_stats 40, 30, 32, 65, 50, 52
- .byte TYPE_BUG
- .byte TYPE_WATER
- .byte 200 @ catch rate
- .byte 63 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_BUG
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Masquerain
- base_stats 70, 60, 62, 60, 80, 82
- .byte TYPE_BUG
- .byte TYPE_FLYING
- .byte 75 @ catch rate
- .byte 128 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 1
- .2byte ITEM_NONE
- .2byte ITEM_SILVER_POWDER
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_BUG
- .byte ABILITY_INTIMIDATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Wailmer
- base_stats 130, 70, 35, 60, 70, 35
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 125 @ catch rate
- .byte 137 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 40 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FLUCTUATING
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_WATER_VEIL
- .byte ABILITY_OBLIVIOUS
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Wailord
- base_stats 170, 90, 45, 60, 90, 45
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 60 @ catch rate
- .byte 206 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 40 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FLUCTUATING
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_WATER_VEIL
- .byte ABILITY_OBLIVIOUS
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Skitty
- base_stats 50, 45, 45, 50, 35, 35
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 255 @ catch rate
- .byte 65 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_LEPPA_BERRY
- .byte 191 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_CUTE_CHARM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Delcatty
- base_stats 70, 65, 65, 70, 55, 55
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 60 @ catch rate
- .byte 138 @ base exp. yield
- ev_yield 1, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_LEPPA_BERRY
- .byte 191 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_CUTE_CHARM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Kecleon
- base_stats 60, 90, 70, 40, 60, 120
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 200 @ catch rate
- .byte 132 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_PERSIM_BERRY
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_COLOR_CHANGE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Baltoy
- base_stats 40, 40, 55, 55, 40, 70
- .byte TYPE_GROUND
- .byte TYPE_PSYCHIC
- .byte 255 @ catch rate
- .byte 58 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Claydol
- base_stats 60, 70, 105, 75, 70, 120
- .byte TYPE_GROUND
- .byte TYPE_PSYCHIC
- .byte 90 @ catch rate
- .byte 189 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Nosepass
- base_stats 30, 45, 135, 30, 45, 90
- .byte TYPE_ROCK
- .byte TYPE_ROCK
- .byte 255 @ catch rate
- .byte 108 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_STURDY
- .byte ABILITY_MAGNET_PULL
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Torkoal
- base_stats 70, 85, 140, 20, 85, 70
- .byte TYPE_FIRE
- .byte TYPE_FIRE
- .byte 90 @ catch rate
- .byte 161 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_WHITE_SMOKE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Sableye
- base_stats 50, 75, 75, 50, 65, 65
- .byte TYPE_DARK
- .byte TYPE_GHOST
- .byte 45 @ catch rate
- .byte 98 @ base exp. yield
- ev_yield 0, 1, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_KEEN_EYE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Barboach
- base_stats 50, 48, 43, 60, 46, 41
- .byte TYPE_WATER
- .byte TYPE_GROUND
- .byte 190 @ catch rate
- .byte 92 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_2
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_OBLIVIOUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Whiscash
- base_stats 110, 78, 73, 60, 76, 71
- .byte TYPE_WATER
- .byte TYPE_GROUND
- .byte 75 @ catch rate
- .byte 158 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_WATER_2
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_OBLIVIOUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Luvdisc
- base_stats 43, 30, 55, 97, 40, 65
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 225 @ catch rate
- .byte 110 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_HEART_SCALE
- .2byte ITEM_NONE
- .byte 191 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_WATER_2
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Corphish
- base_stats 43, 80, 65, 35, 50, 35
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 205 @ catch rate
- .byte 111 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FLUCTUATING
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_HYPER_CUTTER
- .byte ABILITY_SHELL_ARMOR
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Crawdaunt
- base_stats 63, 120, 85, 55, 90, 55
- .byte TYPE_WATER
- .byte TYPE_DARK
- .byte 155 @ catch rate
- .byte 161 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FLUCTUATING
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_HYPER_CUTTER
- .byte ABILITY_SHELL_ARMOR
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Feebas
- base_stats 20, 15, 20, 80, 10, 55
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 255 @ catch rate
- .byte 61 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Milotic
- base_stats 95, 60, 79, 81, 100, 125
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 60 @ catch rate
- .byte 213 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_MARVEL_SCALE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Carvanha
- base_stats 45, 90, 20, 65, 65, 20
- .byte TYPE_WATER
- .byte TYPE_DARK
- .byte 225 @ catch rate
- .byte 88 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_2
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_ROUGH_SKIN
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Sharpedo
- base_stats 70, 120, 40, 95, 95, 40
- .byte TYPE_WATER
- .byte TYPE_DARK
- .byte 60 @ catch rate
- .byte 175 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_2
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_ROUGH_SKIN
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Trapinch
- base_stats 45, 100, 45, 10, 45, 45
- .byte TYPE_GROUND
- .byte TYPE_GROUND
- .byte 255 @ catch rate
- .byte 73 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_SOFT_SAND
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_HYPER_CUTTER
- .byte ABILITY_ARENA_TRAP
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Vibrava
- base_stats 50, 70, 50, 70, 50, 50
- .byte TYPE_GROUND
- .byte TYPE_DRAGON
- .byte 120 @ catch rate
- .byte 126 @ base exp. yield
- ev_yield 0, 1, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_LEVITATE
- .byte ABILITY_LEVITATE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Flygon
- base_stats 80, 100, 80, 100, 80, 80
- .byte TYPE_GROUND
- .byte TYPE_DRAGON
- .byte 45 @ catch rate
- .byte 197 @ base exp. yield
- ev_yield 0, 1, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_BUG
- .byte ABILITY_LEVITATE
- .byte ABILITY_LEVITATE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Makuhita
- base_stats 72, 60, 30, 25, 20, 30
- .byte TYPE_FIGHTING
- .byte TYPE_FIGHTING
- .byte 180 @ catch rate
- .byte 87 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 63 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FLUCTUATING
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_THICK_FAT
- .byte ABILITY_GUTS
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Hariyama
- base_stats 144, 120, 60, 50, 40, 60
- .byte TYPE_FIGHTING
- .byte TYPE_FIGHTING
- .byte 200 @ catch rate
- .byte 184 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_KINGS_ROCK
- .byte 63 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FLUCTUATING
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_THICK_FAT
- .byte ABILITY_GUTS
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Electrike
- base_stats 40, 45, 40, 65, 65, 40
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 120 @ catch rate
- .byte 104 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_STATIC
- .byte ABILITY_LIGHTNING_ROD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Manectric
- base_stats 70, 75, 60, 105, 105, 60
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 45 @ catch rate
- .byte 168 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_STATIC
- .byte ABILITY_LIGHTNING_ROD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Numel
- base_stats 60, 60, 40, 35, 65, 45
- .byte TYPE_FIRE
- .byte TYPE_GROUND
- .byte 255 @ catch rate
- .byte 88 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_RAWST_BERRY
- .2byte ITEM_RAWST_BERRY
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_OBLIVIOUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Camerupt
- base_stats 70, 100, 70, 40, 105, 75
- .byte TYPE_FIRE
- .byte TYPE_GROUND
- .byte 150 @ catch rate
- .byte 175 @ base exp. yield
- ev_yield 0, 1, 0, 0, 1, 0
- .2byte ITEM_RAWST_BERRY
- .2byte ITEM_RAWST_BERRY
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_MAGMA_ARMOR
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Spheal
- base_stats 70, 40, 50, 25, 55, 50
- .byte TYPE_ICE
- .byte TYPE_WATER
- .byte 255 @ catch rate
- .byte 75 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FIELD
- .byte ABILITY_THICK_FAT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Sealeo
- base_stats 90, 60, 70, 45, 75, 70
- .byte TYPE_ICE
- .byte TYPE_WATER
- .byte 120 @ catch rate
- .byte 128 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FIELD
- .byte ABILITY_THICK_FAT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Walrein
- base_stats 110, 80, 90, 65, 95, 90
- .byte TYPE_ICE
- .byte TYPE_WATER
- .byte 45 @ catch rate
- .byte 192 @ base exp. yield
- ev_yield 3, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_FIELD
- .byte ABILITY_THICK_FAT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Cacnea
- base_stats 50, 85, 40, 35, 85, 40
- .byte TYPE_GRASS
- .byte TYPE_GRASS
- .byte 190 @ catch rate
- .byte 97 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_POISON_BARB
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_SAND_VEIL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Cacturne
- base_stats 70, 115, 60, 55, 115, 60
- .byte TYPE_GRASS
- .byte TYPE_DARK
- .byte 60 @ catch rate
- .byte 177 @ base exp. yield
- ev_yield 0, 1, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_POISON_BARB
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_GRASS
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_SAND_VEIL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Snorunt
- base_stats 50, 50, 50, 50, 50, 50
- .byte TYPE_ICE
- .byte TYPE_ICE
- .byte 190 @ catch rate
- .byte 74 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_INNER_FOCUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Glalie
- base_stats 80, 80, 80, 80, 80, 80
- .byte TYPE_ICE
- .byte TYPE_ICE
- .byte 75 @ catch rate
- .byte 187 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NEVER_MELT_ICE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_INNER_FOCUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Lunatone
- base_stats 70, 55, 65, 70, 95, 85
- .byte TYPE_ROCK
- .byte TYPE_PSYCHIC
- .byte 45 @ catch rate
- .byte 150 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_MOON_STONE
- .byte 255 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Solrock
- base_stats 70, 95, 85, 70, 55, 65
- .byte TYPE_ROCK
- .byte TYPE_PSYCHIC
- .byte 45 @ catch rate
- .byte 150 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_SUN_STONE
- .byte 255 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Azurill
- base_stats 50, 20, 40, 20, 20, 40
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 150 @ catch rate
- .byte 33 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 191 @ gender
- .byte 10 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_THICK_FAT
- .byte ABILITY_HUGE_POWER
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Spoink
- base_stats 60, 25, 35, 60, 70, 80
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 255 @ catch rate
- .byte 89 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_THICK_FAT
- .byte ABILITY_OWN_TEMPO
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Grumpig
- base_stats 80, 45, 65, 80, 90, 110
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 60 @ catch rate
- .byte 164 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_THICK_FAT
- .byte ABILITY_OWN_TEMPO
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Plusle
- base_stats 60, 50, 40, 95, 85, 75
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 200 @ catch rate
- .byte 120 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_PLUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Minun
- base_stats 60, 40, 50, 95, 75, 85
- .byte TYPE_ELECTRIC
- .byte TYPE_ELECTRIC
- .byte 200 @ catch rate
- .byte 120 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_MINUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Mawile
- base_stats 50, 85, 85, 50, 55, 55
- .byte TYPE_STEEL
- .byte TYPE_STEEL
- .byte 45 @ catch rate
- .byte 98 @ base exp. yield
- ev_yield 0, 1, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FAIRY
- .byte ABILITY_HYPER_CUTTER
- .byte ABILITY_INTIMIDATE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Meditite
- base_stats 30, 40, 55, 60, 40, 55
- .byte TYPE_FIGHTING
- .byte TYPE_PSYCHIC
- .byte 180 @ catch rate
- .byte 91 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_PURE_POWER
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Medicham
- base_stats 60, 60, 75, 80, 60, 75
- .byte TYPE_FIGHTING
- .byte TYPE_PSYCHIC
- .byte 90 @ catch rate
- .byte 153 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_HUMAN_LIKE
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_PURE_POWER
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Swablu
- base_stats 45, 40, 60, 50, 40, 75
- .byte TYPE_NORMAL
- .byte TYPE_FLYING
- .byte 255 @ catch rate
- .byte 74 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_NATURAL_CURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Altaria
- base_stats 75, 70, 90, 80, 70, 105
- .byte TYPE_DRAGON
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 188 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_FLYING
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_NATURAL_CURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Wynaut
- base_stats 95, 23, 48, 23, 23, 48
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 125 @ catch rate
- .byte 44 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_SHADOW_TAG
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Duskull
- base_stats 20, 40, 90, 25, 30, 90
- .byte TYPE_GHOST
- .byte TYPE_GHOST
- .byte 190 @ catch rate
- .byte 97 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_SPELL_TAG
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Dusclops
- base_stats 40, 70, 130, 25, 60, 130
- .byte TYPE_GHOST
- .byte TYPE_GHOST
- .byte 90 @ catch rate
- .byte 179 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_SPELL_TAG
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_PRESSURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Roselia
- base_stats 50, 60, 45, 65, 100, 80
- .byte TYPE_GRASS
- .byte TYPE_POISON
- .byte 150 @ catch rate
- .byte 152 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_POISON_BARB
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_GRASS
- .byte ABILITY_NATURAL_CURE
- .byte ABILITY_POISON_POINT
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Slakoth
- base_stats 60, 60, 60, 30, 35, 35
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 255 @ catch rate
- .byte 83 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_TRUANT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Vigoroth
- base_stats 80, 80, 80, 90, 55, 55
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 120 @ catch rate
- .byte 126 @ base exp. yield
- ev_yield 0, 0, 0, 2, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_VITAL_SPIRIT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Slaking
- base_stats 150, 160, 100, 100, 95, 65
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 45 @ catch rate
- .byte 210 @ base exp. yield
- ev_yield 3, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_TRUANT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Gulpin
- base_stats 70, 43, 53, 40, 43, 53
- .byte TYPE_POISON
- .byte TYPE_POISON
- .byte 225 @ catch rate
- .byte 75 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_BIG_PEARL
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FLUCTUATING
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_LIQUID_OOZE
- .byte ABILITY_STICKY_HOLD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Swalot
- base_stats 100, 73, 83, 55, 73, 83
- .byte TYPE_POISON
- .byte TYPE_POISON
- .byte 75 @ catch rate
- .byte 168 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_BIG_PEARL
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FLUCTUATING
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_LIQUID_OOZE
- .byte ABILITY_STICKY_HOLD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Tropius
- base_stats 99, 68, 83, 51, 72, 87
- .byte TYPE_GRASS
- .byte TYPE_FLYING
- .byte 200 @ catch rate
- .byte 169 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_GRASS
- .byte ABILITY_CHLOROPHYLL
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Whismur
- base_stats 64, 51, 23, 28, 51, 23
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 190 @ catch rate
- .byte 68 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_CHESTO_BERRY
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_FIELD
- .byte ABILITY_SOUNDPROOF
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Loudred
- base_stats 84, 71, 43, 48, 71, 43
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 120 @ catch rate
- .byte 126 @ base exp. yield
- ev_yield 2, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_CHESTO_BERRY
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_FIELD
- .byte ABILITY_SOUNDPROOF
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Exploud
- base_stats 104, 91, 63, 68, 91, 63
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 45 @ catch rate
- .byte 184 @ base exp. yield
- ev_yield 3, 0, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_CHESTO_BERRY
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_FIELD
- .byte ABILITY_SOUNDPROOF
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Clamperl
- base_stats 35, 64, 85, 32, 74, 55
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 255 @ catch rate
- .byte 142 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_BLUE_SHARD
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_SHELL_ARMOR
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Huntail
- base_stats 55, 104, 105, 52, 94, 75
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 60 @ catch rate
- .byte 178 @ base exp. yield
- ev_yield 0, 1, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Gorebyss
- base_stats 55, 84, 105, 52, 114, 75
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 60 @ catch rate
- .byte 178 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_1
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PINK
- .2byte 0 @ padding
-
-@ Absol
- base_stats 65, 130, 60, 75, 75, 60
- .byte TYPE_DARK
- .byte TYPE_DARK
- .byte 30 @ catch rate
- .byte 174 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_MEDIUM_SLOW
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_PRESSURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Shuppet
- base_stats 44, 75, 35, 45, 63, 33
- .byte TYPE_GHOST
- .byte TYPE_GHOST
- .byte 225 @ catch rate
- .byte 97 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_SPELL_TAG
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_INSOMNIA
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Banette
- base_stats 64, 115, 65, 65, 83, 63
- .byte TYPE_GHOST
- .byte TYPE_GHOST
- .byte 45 @ catch rate
- .byte 179 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_SPELL_TAG
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_INSOMNIA
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Seviper
- base_stats 73, 100, 60, 65, 100, 60
- .byte TYPE_POISON
- .byte TYPE_POISON
- .byte 90 @ catch rate
- .byte 165 @ base exp. yield
- ev_yield 0, 1, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FLUCTUATING
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_SHED_SKIN
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_BLACK
- .2byte 0 @ padding
-
-@ Zangoose
- base_stats 73, 115, 60, 90, 60, 60
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 90 @ catch rate
- .byte 165 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_FIELD
- .byte EGG_GROUP_FIELD
- .byte ABILITY_IMMUNITY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Relicanth
- base_stats 100, 90, 130, 55, 45, 65
- .byte TYPE_WATER
- .byte TYPE_ROCK
- .byte 25 @ catch rate
- .byte 198 @ base exp. yield
- ev_yield 1, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_GREEN_SHARD
- .byte 31 @ gender
- .byte 40 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_WATER_1
- .byte EGG_GROUP_WATER_2
- .byte ABILITY_SWIFT_SWIM
- .byte ABILITY_ROCK_HEAD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Aron
- base_stats 50, 70, 100, 30, 40, 40
- .byte TYPE_STEEL
- .byte TYPE_ROCK
- .byte 180 @ catch rate
- .byte 96 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_HARD_STONE
- .byte 127 @ gender
- .byte 35 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_MONSTER
- .byte ABILITY_STURDY
- .byte ABILITY_ROCK_HEAD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Lairon
- base_stats 60, 90, 140, 40, 50, 50
- .byte TYPE_STEEL
- .byte TYPE_ROCK
- .byte 90 @ catch rate
- .byte 152 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_HARD_STONE
- .byte 127 @ gender
- .byte 35 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_MONSTER
- .byte ABILITY_STURDY
- .byte ABILITY_ROCK_HEAD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Aggron
- base_stats 70, 110, 180, 50, 60, 60
- .byte TYPE_STEEL
- .byte TYPE_ROCK
- .byte 45 @ catch rate
- .byte 205 @ base exp. yield
- ev_yield 0, 0, 3, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_HARD_STONE
- .byte 127 @ gender
- .byte 35 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MONSTER
- .byte EGG_GROUP_MONSTER
- .byte ABILITY_STURDY
- .byte ABILITY_ROCK_HEAD
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Castform
- base_stats 70, 70, 70, 70, 70, 70
- .byte TYPE_NORMAL
- .byte TYPE_NORMAL
- .byte 45 @ catch rate
- .byte 145 @ base exp. yield
- ev_yield 1, 0, 0, 0, 0, 0
- .2byte ITEM_MYSTIC_WATER
- .2byte ITEM_MYSTIC_WATER
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_MEDIUM_FAST
- .byte EGG_GROUP_FAIRY
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_FORECAST
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Volbeat
- base_stats 65, 73, 55, 85, 47, 75
- .byte TYPE_BUG
- .byte TYPE_BUG
- .byte 150 @ catch rate
- .byte 146 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 0 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_ILLUMINATE
- .byte ABILITY_SWARM
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Illumise
- base_stats 65, 47, 55, 85, 73, 75
- .byte TYPE_BUG
- .byte TYPE_BUG
- .byte 150 @ catch rate
- .byte 146 @ base exp. yield
- ev_yield 0, 0, 0, 1, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 254 @ gender
- .byte 15 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FLUCTUATING
- .byte EGG_GROUP_BUG
- .byte EGG_GROUP_HUMAN_LIKE
- .byte ABILITY_OBLIVIOUS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Lileep
- base_stats 66, 41, 77, 23, 61, 87
- .byte TYPE_ROCK
- .byte TYPE_GRASS
- .byte 45 @ catch rate
- .byte 121 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 30 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_WATER_3
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_SUCTION_CUPS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_PURPLE
- .2byte 0 @ padding
-
-@ Cradily
- base_stats 86, 81, 97, 43, 81, 107
- .byte TYPE_ROCK
- .byte TYPE_GRASS
- .byte 45 @ catch rate
- .byte 201 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 2
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 30 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_WATER_3
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_SUCTION_CUPS
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Anorith
- base_stats 45, 95, 50, 75, 40, 50
- .byte TYPE_ROCK
- .byte TYPE_BUG
- .byte 45 @ catch rate
- .byte 119 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 30 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_WATER_3
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_BATTLE_ARMOR
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Armaldo
- base_stats 75, 125, 100, 45, 70, 80
- .byte TYPE_ROCK
- .byte TYPE_BUG
- .byte 45 @ catch rate
- .byte 200 @ base exp. yield
- ev_yield 0, 2, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 31 @ gender
- .byte 30 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_ERRATIC
- .byte EGG_GROUP_WATER_3
- .byte EGG_GROUP_WATER_3
- .byte ABILITY_BATTLE_ARMOR
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Ralts
- base_stats 28, 25, 25, 40, 45, 35
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 235 @ catch rate
- .byte 70 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_SYNCHRONIZE
- .byte ABILITY_TRACE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Kirlia
- base_stats 38, 35, 35, 50, 65, 55
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 120 @ catch rate
- .byte 140 @ base exp. yield
- ev_yield 0, 0, 0, 0, 2, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_SYNCHRONIZE
- .byte ABILITY_TRACE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Gardevoir
- base_stats 68, 65, 65, 80, 125, 115
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 45 @ catch rate
- .byte 208 @ base exp. yield
- ev_yield 0, 0, 0, 0, 3, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 20 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_SYNCHRONIZE
- .byte ABILITY_TRACE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Bagon
- base_stats 45, 75, 60, 50, 40, 30
- .byte TYPE_DRAGON
- .byte TYPE_DRAGON
- .byte 45 @ catch rate
- .byte 89 @ base exp. yield
- ev_yield 0, 1, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_DRAGON_SCALE
- .byte 127 @ gender
- .byte 40 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_DRAGON
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_ROCK_HEAD
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Shelgon
- base_stats 65, 95, 100, 50, 60, 50
- .byte TYPE_DRAGON
- .byte TYPE_DRAGON
- .byte 45 @ catch rate
- .byte 144 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_DRAGON_SCALE
- .byte 127 @ gender
- .byte 40 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_DRAGON
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_ROCK_HEAD
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_WHITE
- .2byte 0 @ padding
-
-@ Salamence
- base_stats 95, 135, 80, 100, 110, 80
- .byte TYPE_DRAGON
- .byte TYPE_FLYING
- .byte 45 @ catch rate
- .byte 218 @ base exp. yield
- ev_yield 0, 3, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_DRAGON_SCALE
- .byte 127 @ gender
- .byte 40 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_DRAGON
- .byte EGG_GROUP_DRAGON
- .byte ABILITY_INTIMIDATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Beldum
- base_stats 40, 55, 80, 30, 35, 60
- .byte TYPE_STEEL
- .byte TYPE_PSYCHIC
- .byte 3 @ catch rate
- .byte 103 @ base exp. yield
- ev_yield 0, 0, 1, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_METAL_COAT
- .byte 255 @ gender
- .byte 40 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_CLEAR_BODY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Metang
- base_stats 60, 75, 100, 50, 55, 80
- .byte TYPE_STEEL
- .byte TYPE_PSYCHIC
- .byte 3 @ catch rate
- .byte 153 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_METAL_COAT
- .byte 255 @ gender
- .byte 40 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_CLEAR_BODY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Metagross
- base_stats 80, 135, 130, 70, 95, 90
- .byte TYPE_STEEL
- .byte TYPE_PSYCHIC
- .byte 3 @ catch rate
- .byte 210 @ base exp. yield
- ev_yield 0, 0, 3, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_METAL_COAT
- .byte 255 @ gender
- .byte 40 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_MINERAL
- .byte EGG_GROUP_MINERAL
- .byte ABILITY_CLEAR_BODY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Regirock
- base_stats 80, 100, 200, 50, 50, 100
- .byte TYPE_ROCK
- .byte TYPE_ROCK
- .byte 3 @ catch rate
- .byte 217 @ base exp. yield
- ev_yield 0, 0, 3, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 80 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_CLEAR_BODY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BROWN
- .2byte 0 @ padding
-
-@ Regice
- base_stats 80, 50, 100, 50, 100, 200
- .byte TYPE_ICE
- .byte TYPE_ICE
- .byte 3 @ catch rate
- .byte 216 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 3
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 80 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_CLEAR_BODY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Registeel
- base_stats 80, 75, 150, 50, 75, 150
- .byte TYPE_STEEL
- .byte TYPE_STEEL
- .byte 3 @ catch rate
- .byte 215 @ base exp. yield
- ev_yield 0, 0, 2, 0, 0, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 80 @ egg cycles
- .byte 35 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_CLEAR_BODY
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GRAY
- .2byte 0 @ padding
-
-@ Kyogre
- base_stats 100, 100, 90, 90, 150, 140
- .byte TYPE_WATER
- .byte TYPE_WATER
- .byte 5 @ catch rate
- .byte 218 @ base exp. yield
- ev_yield 0, 0, 0, 0, 3, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_DRIZZLE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Groudon
- base_stats 100, 150, 140, 90, 100, 90
- .byte TYPE_GROUND
- .byte TYPE_GROUND
- .byte 5 @ catch rate
- .byte 218 @ base exp. yield
- ev_yield 0, 3, 0, 0, 0, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_DROUGHT
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Rayquaza
- base_stats 105, 150, 90, 95, 150, 90
- .byte TYPE_DRAGON
- .byte TYPE_FLYING
- .byte 3 @ catch rate
- .byte 220 @ base exp. yield
- ev_yield 0, 2, 0, 0, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_AIR_LOCK
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_GREEN
- .2byte 0 @ padding
-
-@ Latias
- base_stats 80, 80, 90, 110, 110, 130
- .byte TYPE_DRAGON
- .byte TYPE_PSYCHIC
- .byte 3 @ catch rate
- .byte 211 @ base exp. yield
- ev_yield 0, 0, 0, 0, 0, 3
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 254 @ gender
- .byte 120 @ egg cycles
- .byte 90 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Latios
- base_stats 80, 90, 80, 110, 130, 110
- .byte TYPE_DRAGON
- .byte TYPE_PSYCHIC
- .byte 3 @ catch rate
- .byte 211 @ base exp. yield
- ev_yield 0, 0, 0, 0, 3, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 0 @ gender
- .byte 120 @ egg cycles
- .byte 90 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
-
-@ Jirachi
- base_stats 100, 100, 100, 100, 100, 100
- .byte TYPE_STEEL
- .byte TYPE_PSYCHIC
- .byte 3 @ catch rate
- .byte 215 @ base exp. yield
- ev_yield 3, 0, 0, 0, 0, 0
- .2byte ITEM_STAR_PIECE
- .2byte ITEM_STAR_PIECE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 100 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_SERENE_GRACE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_YELLOW
- .2byte 0 @ padding
-
-@ Deoxys
- base_stats 50, 150, 50, 150, 150, 50
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 3 @ catch rate
- .byte 215 @ base exp. yield
- ev_yield 0, 1, 0, 1, 1, 0
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 255 @ gender
- .byte 120 @ egg cycles
- .byte 0 @ base friendship
- .byte GROWTH_SLOW
- .byte EGG_GROUP_UNDISCOVERED
- .byte EGG_GROUP_UNDISCOVERED
- .byte ABILITY_PRESSURE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte F_SUMMARY_SCREEN_FLIP_SPRITE | BODY_COLOR_RED
- .2byte 0 @ padding
-
-@ Chimecho
- base_stats 65, 50, 70, 65, 95, 80
- .byte TYPE_PSYCHIC
- .byte TYPE_PSYCHIC
- .byte 45 @ catch rate
- .byte 147 @ base exp. yield
- ev_yield 0, 0, 0, 0, 1, 1
- .2byte ITEM_NONE
- .2byte ITEM_NONE
- .byte 127 @ gender
- .byte 25 @ egg cycles
- .byte 70 @ base friendship
- .byte GROWTH_FAST
- .byte EGG_GROUP_AMORPHOUS
- .byte EGG_GROUP_AMORPHOUS
- .byte ABILITY_LEVITATE
- .byte ABILITY_NONE
- .byte 0 @ Safari Zone flee rate
- .byte BODY_COLOR_BLUE
- .2byte 0 @ padding
diff --git a/data/cry_id_table.inc b/data/cry_id_table.inc
deleted file mode 100644
index 5a39a2194..000000000
--- a/data/cry_id_table.inc
+++ /dev/null
@@ -1,137 +0,0 @@
- .align 1
-gSpeciesIdToCryId:: @ 81FDE6A
- .2byte 273 @ TREECKO
- .2byte 274 @ GROVYLE
- .2byte 275 @ SCEPTILE
- .2byte 270 @ TORCHIC
- .2byte 271 @ COMBUSKEN
- .2byte 272 @ BLAZIKEN
- .2byte 276 @ MUDKIP
- .2byte 277 @ MARSHTOMP
- .2byte 278 @ SWAMPERT
- .2byte 359 @ POOCHYENA
- .2byte 360 @ MIGHTYENA
- .2byte 378 @ ZIGZAGOON
- .2byte 375 @ LINOONE
- .2byte 290 @ WURMPLE
- .2byte 291 @ SILCOON
- .2byte 292 @ BEAUTIFLY
- .2byte 293 @ CASCOON
- .2byte 294 @ DUSTOX
- .2byte 283 @ LOTAD
- .2byte 284 @ LOMBRE
- .2byte 285 @ LUDICOLO
- .2byte 286 @ SEEDOT
- .2byte 287 @ NUZLEAF
- .2byte 288 @ SHIFTRY
- .2byte 301 @ NINCADA
- .2byte 302 @ NINJASK
- .2byte 303 @ SHEDINJA
- .2byte 266 @ TAILLOW
- .2byte 267 @ SWELLOW
- .2byte 374 @ SHROOMISH
- .2byte 373 @ BRELOOM
- .2byte 269 @ SPINDA
- .2byte 280 @ WINGULL
- .2byte 279 @ PELIPPER
- .2byte 310 @ SURSKIT
- .2byte 311 @ MASQUERAIN
- .2byte 377 @ WAILMER
- .2byte 381 @ WAILORD
- .2byte 312 @ SKITTY
- .2byte 313 @ DELCATTY
- .2byte 251 @ KECLEON
- .2byte 329 @ BALTOY
- .2byte 330 @ CLAYDOL
- .2byte 306 @ NOSEPASS
- .2byte 253 @ TORKOAL
- .2byte 362 @ SABLEYE
- .2byte 318 @ BARBOACH
- .2byte 319 @ WHISCASH
- .2byte 368 @ LUVDISC
- .2byte 320 @ CORPHISH
- .2byte 321 @ CRAWDAUNT
- .2byte 333 @ FEEBAS
- .2byte 334 @ MILOTIC
- .2byte 289 @ CARVANHA
- .2byte 260 @ SHARPEDO
- .2byte 324 @ TRAPINCH
- .2byte 325 @ VIBRAVA
- .2byte 326 @ FLYGON
- .2byte 304 @ MAKUHITA
- .2byte 305 @ HARIYAMA
- .2byte 254 @ ELECTRIKE
- .2byte 255 @ MANECTRIC
- .2byte 316 @ NUMEL
- .2byte 317 @ CAMERUPT
- .2byte 338 @ SPHEAL
- .2byte 339 @ SEALEO
- .2byte 340 @ WALREIN
- .2byte 327 @ CACNEA
- .2byte 328 @ CACTURNE
- .2byte 383 @ SNORUNT
- .2byte 307 @ GLALIE
- .2byte 331 @ LUNATONE
- .2byte 332 @ SOLROCK
- .2byte 262 @ AZURILL
- .2byte 322 @ SPOINK
- .2byte 323 @ GRUMPIG
- .2byte 308 @ PLUSLE
- .2byte 309 @ MINUN
- .2byte 363 @ MAWILE
- .2byte 336 @ MEDITITE
- .2byte 337 @ MEDICHAM
- .2byte 263 @ SWABLU
- .2byte 264 @ ALTARIA
- .2byte 258 @ WYNAUT
- .2byte 256 @ DUSKULL
- .2byte 361 @ DUSCLOPS
- .2byte 252 @ ROSELIA
- .2byte 298 @ SLAKOTH
- .2byte 299 @ VIGOROTH
- .2byte 300 @ SLAKING
- .2byte 314 @ GULPIN
- .2byte 315 @ SWALOT
- .2byte 376 @ TROPIUS
- .2byte 382 @ WHISMUR
- .2byte 380 @ LOUDRED
- .2byte 379 @ EXPLOUD
- .2byte 341 @ CLAMPERL
- .2byte 342 @ HUNTAIL
- .2byte 343 @ GOREBYSS
- .2byte 335 @ ABSOL
- .2byte 282 @ SHUPPET
- .2byte 281 @ BANETTE
- .2byte 259 @ SEVIPER
- .2byte 261 @ ZANGOOSE
- .2byte 367 @ RELICANTH
- .2byte 364 @ ARON
- .2byte 365 @ LAIRON
- .2byte 366 @ AGGRON
- .2byte 356 @ CASTFORM
- .2byte 357 @ VOLBEAT
- .2byte 358 @ ILLUMISE
- .2byte 344 @ LILEEP
- .2byte 345 @ CRADILY
- .2byte 346 @ ANORITH
- .2byte 347 @ ARMALDO
- .2byte 295 @ RALTS
- .2byte 296 @ KIRLIA
- .2byte 297 @ GARDEVOIR
- .2byte 351 @ BAGON
- .2byte 352 @ SHELGON
- .2byte 372 @ SALAMENCE
- .2byte 348 @ BELDUM
- .2byte 349 @ METANG
- .2byte 350 @ METAGROSS
- .2byte 353 @ REGIROCK
- .2byte 354 @ REGICE
- .2byte 355 @ REGISTEEL
- .2byte 370 @ KYOGRE
- .2byte 369 @ GROUDON
- .2byte 371 @ RAYQUAZA
- .2byte 257 @ LATIAS
- .2byte 384 @ LATIOS
- .2byte 385 @ JIRACHI
- .2byte 386 @ DEOXYS
- .2byte 387 @ CHIMECHO
diff --git a/data/evolution_table.inc b/data/evolution_table.inc
deleted file mode 100644
index 8234ac7a2..000000000
--- a/data/evolution_table.inc
+++ /dev/null
@@ -1,1420 +0,0 @@
- .align 2
-gEvolutionTable:: @ 8203B68
-@ ??????????
- empty_evo_entries 5
-
-@ Bulbasaur
- evo_entry EVO_LEVEL, 16, SPECIES_IVYSAUR
- empty_evo_entries 4
-
-@ Ivysaur
- evo_entry EVO_LEVEL, 32, SPECIES_VENUSAUR
- empty_evo_entries 4
-
-@ Venusaur
- empty_evo_entries 5
-
-@ Charmander
- evo_entry EVO_LEVEL, 16, SPECIES_CHARMELEON
- empty_evo_entries 4
-
-@ Charmeleon
- evo_entry EVO_LEVEL, 36, SPECIES_CHARIZARD
- empty_evo_entries 4
-
-@ Charizard
- empty_evo_entries 5
-
-@ Squirtle
- evo_entry EVO_LEVEL, 16, SPECIES_WARTORTLE
- empty_evo_entries 4
-
-@ Wartortle
- evo_entry EVO_LEVEL, 36, SPECIES_BLASTOISE
- empty_evo_entries 4
-
-@ Blastoise
- empty_evo_entries 5
-
-@ Caterpie
- evo_entry EVO_LEVEL, 7, SPECIES_METAPOD
- empty_evo_entries 4
-
-@ Metapod
- evo_entry EVO_LEVEL, 10, SPECIES_BUTTERFREE
- empty_evo_entries 4
-
-@ Butterfree
- empty_evo_entries 5
-
-@ Weedle
- evo_entry EVO_LEVEL, 7, SPECIES_KAKUNA
- empty_evo_entries 4
-
-@ Kakuna
- evo_entry EVO_LEVEL, 10, SPECIES_BEEDRILL
- empty_evo_entries 4
-
-@ Beedrill
- empty_evo_entries 5
-
-@ Pidgey
- evo_entry EVO_LEVEL, 18, SPECIES_PIDGEOTTO
- empty_evo_entries 4
-
-@ Pidgeotto
- evo_entry EVO_LEVEL, 36, SPECIES_PIDGEOT
- empty_evo_entries 4
-
-@ Pidgeot
- empty_evo_entries 5
-
-@ Rattata
- evo_entry EVO_LEVEL, 20, SPECIES_RATICATE
- empty_evo_entries 4
-
-@ Raticate
- empty_evo_entries 5
-
-@ Spearow
- evo_entry EVO_LEVEL, 20, SPECIES_FEAROW
- empty_evo_entries 4
-
-@ Fearow
- empty_evo_entries 5
-
-@ Ekans
- evo_entry EVO_LEVEL, 22, SPECIES_ARBOK
- empty_evo_entries 4
-
-@ Arbok
- empty_evo_entries 5
-
-@ Pikachu
- evo_entry EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU
- empty_evo_entries 4
-
-@ Raichu
- empty_evo_entries 5
-
-@ Sandshrew
- evo_entry EVO_LEVEL, 22, SPECIES_SANDSLASH
- empty_evo_entries 4
-
-@ Sandslash
- empty_evo_entries 5
-
-@ Nidoran♀
- evo_entry EVO_LEVEL, 16, SPECIES_NIDORINA
- empty_evo_entries 4
-
-@ Nidorina
- evo_entry EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN
- empty_evo_entries 4
-
-@ Nidoqueen
- empty_evo_entries 5
-
-@ Nidoran♂
- evo_entry EVO_LEVEL, 16, SPECIES_NIDORINO
- empty_evo_entries 4
-
-@ Nidorino
- evo_entry EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING
- empty_evo_entries 4
-
-@ Nidoking
- empty_evo_entries 5
-
-@ Clefairy
- evo_entry EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE
- empty_evo_entries 4
-
-@ Clefable
- empty_evo_entries 5
-
-@ Vulpix
- evo_entry EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES
- empty_evo_entries 4
-
-@ Ninetales
- empty_evo_entries 5
-
-@ Jigglypuff
- evo_entry EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF
- empty_evo_entries 4
-
-@ Wigglytuff
- empty_evo_entries 5
-
-@ Zubat
- evo_entry EVO_LEVEL, 22, SPECIES_GOLBAT
- empty_evo_entries 4
-
-@ Golbat
- evo_entry EVO_FRIENDSHIP, 0, SPECIES_CROBAT
- empty_evo_entries 4
-
-@ Oddish
- evo_entry EVO_LEVEL, 21, SPECIES_GLOOM
- empty_evo_entries 4
-
-@ Gloom
- evo_entry EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME
- evo_entry EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM
- empty_evo_entries 3
-
-@ Vileplume
- empty_evo_entries 5
-
-@ Paras
- evo_entry EVO_LEVEL, 24, SPECIES_PARASECT
- empty_evo_entries 4
-
-@ Parasect
- empty_evo_entries 5
-
-@ Venonat
- evo_entry EVO_LEVEL, 31, SPECIES_VENOMOTH
- empty_evo_entries 4
-
-@ Venomoth
- empty_evo_entries 5
-
-@ Diglett
- evo_entry EVO_LEVEL, 26, SPECIES_DUGTRIO
- empty_evo_entries 4
-
-@ Dugtrio
- empty_evo_entries 5
-
-@ Meowth
- evo_entry EVO_LEVEL, 28, SPECIES_PERSIAN
- empty_evo_entries 4
-
-@ Persian
- empty_evo_entries 5
-
-@ Psyduck
- evo_entry EVO_LEVEL, 33, SPECIES_GOLDUCK
- empty_evo_entries 4
-
-@ Golduck
- empty_evo_entries 5
-
-@ Mankey
- evo_entry EVO_LEVEL, 28, SPECIES_PRIMEAPE
- empty_evo_entries 4
-
-@ Primeape
- empty_evo_entries 5
-
-@ Growlithe
- evo_entry EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE
- empty_evo_entries 4
-
-@ Arcanine
- empty_evo_entries 5
-
-@ Poliwag
- evo_entry EVO_LEVEL, 25, SPECIES_POLIWHIRL
- empty_evo_entries 4
-
-@ Poliwhirl
- evo_entry EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH
- evo_entry EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED
- empty_evo_entries 3
-
-@ Poliwrath
- empty_evo_entries 5
-
-@ Abra
- evo_entry EVO_LEVEL, 16, SPECIES_KADABRA
- empty_evo_entries 4
-
-@ Kadabra
- evo_entry EVO_TRADE, 0, SPECIES_ALAKAZAM
- empty_evo_entries 4
-
-@ Alakazam
- empty_evo_entries 5
-
-@ Machop
- evo_entry EVO_LEVEL, 28, SPECIES_MACHOKE
- empty_evo_entries 4
-
-@ Machoke
- evo_entry EVO_TRADE, 0, SPECIES_MACHAMP
- empty_evo_entries 4
-
-@ Machamp
- empty_evo_entries 5
-
-@ Bellsprout
- evo_entry EVO_LEVEL, 21, SPECIES_WEEPINBELL
- empty_evo_entries 4
-
-@ Weepinbell
- evo_entry EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL
- empty_evo_entries 4
-
-@ Victreebel
- empty_evo_entries 5
-
-@ Tentacool
- evo_entry EVO_LEVEL, 30, SPECIES_TENTACRUEL
- empty_evo_entries 4
-
-@ Tentacruel
- empty_evo_entries 5
-
-@ Geodude
- evo_entry EVO_LEVEL, 25, SPECIES_GRAVELER
- empty_evo_entries 4
-
-@ Graveler
- evo_entry EVO_TRADE, 0, SPECIES_GOLEM
- empty_evo_entries 4
-
-@ Golem
- empty_evo_entries 5
-
-@ Ponyta
- evo_entry EVO_LEVEL, 40, SPECIES_RAPIDASH
- empty_evo_entries 4
-
-@ Rapidash
- empty_evo_entries 5
-
-@ Slowpoke
- evo_entry EVO_LEVEL, 37, SPECIES_SLOWBRO
- evo_entry EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING
- empty_evo_entries 3
-
-@ Slowbro
- empty_evo_entries 5
-
-@ Magnemite
- evo_entry EVO_LEVEL, 30, SPECIES_MAGNETON
- empty_evo_entries 4
-
-@ Magneton
- empty_evo_entries 5
-
-@ Farfetch'd
- empty_evo_entries 5
-
-@ Doduo
- evo_entry EVO_LEVEL, 31, SPECIES_DODRIO
- empty_evo_entries 4
-
-@ Dodrio
- empty_evo_entries 5
-
-@ Seel
- evo_entry EVO_LEVEL, 34, SPECIES_DEWGONG
- empty_evo_entries 4
-
-@ Dewgong
- empty_evo_entries 5
-
-@ Grimer
- evo_entry EVO_LEVEL, 38, SPECIES_MUK
- empty_evo_entries 4
-
-@ Muk
- empty_evo_entries 5
-
-@ Shellder
- evo_entry EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER
- empty_evo_entries 4
-
-@ Cloyster
- empty_evo_entries 5
-
-@ Gastly
- evo_entry EVO_LEVEL, 25, SPECIES_HAUNTER
- empty_evo_entries 4
-
-@ Haunter
- evo_entry EVO_TRADE, 0, SPECIES_GENGAR
- empty_evo_entries 4
-
-@ Gengar
- empty_evo_entries 5
-
-@ Onix
- evo_entry EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX
- empty_evo_entries 4
-
-@ Drowzee
- evo_entry EVO_LEVEL, 26, SPECIES_HYPNO
- empty_evo_entries 4
-
-@ Hypno
- empty_evo_entries 5
-
-@ Krabby
- evo_entry EVO_LEVEL, 28, SPECIES_KINGLER
- empty_evo_entries 4
-
-@ Kingler
- empty_evo_entries 5
-
-@ Voltorb
- evo_entry EVO_LEVEL, 30, SPECIES_ELECTRODE
- empty_evo_entries 4
-
-@ Electrode
- empty_evo_entries 5
-
-@ Exeggcute
- evo_entry EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR
- empty_evo_entries 4
-
-@ Exeggutor
- empty_evo_entries 5
-
-@ Cubone
- evo_entry EVO_LEVEL, 28, SPECIES_MAROWAK
- empty_evo_entries 4
-
-@ Marowak
- empty_evo_entries 5
-
-@ Hitmonlee
- empty_evo_entries 5
-
-@ Hitmonchan
- empty_evo_entries 5
-
-@ Lickitung
- empty_evo_entries 5
-
-@ Koffing
- evo_entry EVO_LEVEL, 35, SPECIES_WEEZING
- empty_evo_entries 4
-
-@ Weezing
- empty_evo_entries 5
-
-@ Rhyhorn
- evo_entry EVO_LEVEL, 42, SPECIES_RHYDON
- empty_evo_entries 4
-
-@ Rhydon
- empty_evo_entries 5
-
-@ Chansey
- evo_entry EVO_FRIENDSHIP, 0, SPECIES_BLISSEY
- empty_evo_entries 4
-
-@ Tangela
- empty_evo_entries 5
-
-@ Kangaskhan
- empty_evo_entries 5
-
-@ Horsea
- evo_entry EVO_LEVEL, 32, SPECIES_SEADRA
- empty_evo_entries 4
-
-@ Seadra
- evo_entry EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA
- empty_evo_entries 4
-
-@ Goldeen
- evo_entry EVO_LEVEL, 33, SPECIES_SEAKING
- empty_evo_entries 4
-
-@ Seaking
- empty_evo_entries 5
-
-@ Staryu
- evo_entry EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE
- empty_evo_entries 4
-
-@ Starmie
- empty_evo_entries 5
-
-@ Mr. mime
- empty_evo_entries 5
-
-@ Scyther
- evo_entry EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR
- empty_evo_entries 4
-
-@ Jynx
- empty_evo_entries 5
-
-@ Electabuzz
- empty_evo_entries 5
-
-@ Magmar
- empty_evo_entries 5
-
-@ Pinsir
- empty_evo_entries 5
-
-@ Tauros
- empty_evo_entries 5
-
-@ Magikarp
- evo_entry EVO_LEVEL, 20, SPECIES_GYARADOS
- empty_evo_entries 4
-
-@ Gyarados
- empty_evo_entries 5
-
-@ Lapras
- empty_evo_entries 5
-
-@ Ditto
- empty_evo_entries 5
-
-@ Eevee
- evo_entry EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON
- evo_entry EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON
- evo_entry EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON
- evo_entry EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON
- evo_entry EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON
-
-@ Vaporeon
- empty_evo_entries 5
-
-@ Jolteon
- empty_evo_entries 5
-
-@ Flareon
- empty_evo_entries 5
-
-@ Porygon
- evo_entry EVO_TRADE_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2
- empty_evo_entries 4
-
-@ Omanyte
- evo_entry EVO_LEVEL, 40, SPECIES_OMASTAR
- empty_evo_entries 4
-
-@ Omastar
- empty_evo_entries 5
-
-@ Kabuto
- evo_entry EVO_LEVEL, 40, SPECIES_KABUTOPS
- empty_evo_entries 4
-
-@ Kabutops
- empty_evo_entries 5
-
-@ Aerodactyl
- empty_evo_entries 5
-
-@ Snorlax
- empty_evo_entries 5
-
-@ Articuno
- empty_evo_entries 5
-
-@ Zapdos
- empty_evo_entries 5
-
-@ Moltres
- empty_evo_entries 5
-
-@ Dratini
- evo_entry EVO_LEVEL, 30, SPECIES_DRAGONAIR
- empty_evo_entries 4
-
-@ Dragonair
- evo_entry EVO_LEVEL, 55, SPECIES_DRAGONITE
- empty_evo_entries 4
-
-@ Dragonite
- empty_evo_entries 5
-
-@ Mewtwo
- empty_evo_entries 5
-
-@ Mew
- empty_evo_entries 5
-
-@ Chikorita
- evo_entry EVO_LEVEL, 16, SPECIES_BAYLEEF
- empty_evo_entries 4
-
-@ Bayleef
- evo_entry EVO_LEVEL, 32, SPECIES_MEGANIUM
- empty_evo_entries 4
-
-@ Meganium
- empty_evo_entries 5
-
-@ Cyndaquil
- evo_entry EVO_LEVEL, 14, SPECIES_QUILAVA
- empty_evo_entries 4
-
-@ Quilava
- evo_entry EVO_LEVEL, 36, SPECIES_TYPHLOSION
- empty_evo_entries 4
-
-@ Typhlosion
- empty_evo_entries 5
-
-@ Totodile
- evo_entry EVO_LEVEL, 18, SPECIES_CROCONAW
- empty_evo_entries 4
-
-@ Croconaw
- evo_entry EVO_LEVEL, 30, SPECIES_FERALIGATR
- empty_evo_entries 4
-
-@ Feraligatr
- empty_evo_entries 5
-
-@ Sentret
- evo_entry EVO_LEVEL, 15, SPECIES_FURRET
- empty_evo_entries 4
-
-@ Furret
- empty_evo_entries 5
-
-@ Hoothoot
- evo_entry EVO_LEVEL, 20, SPECIES_NOCTOWL
- empty_evo_entries 4
-
-@ Noctowl
- empty_evo_entries 5
-
-@ Ledyba
- evo_entry EVO_LEVEL, 18, SPECIES_LEDIAN
- empty_evo_entries 4
-
-@ Ledian
- empty_evo_entries 5
-
-@ Spinarak
- evo_entry EVO_LEVEL, 22, SPECIES_ARIADOS
- empty_evo_entries 4
-
-@ Ariados
- empty_evo_entries 5
-
-@ Crobat
- empty_evo_entries 5
-
-@ Chinchou
- evo_entry EVO_LEVEL, 27, SPECIES_LANTURN
- empty_evo_entries 4
-
-@ Lanturn
- empty_evo_entries 5
-
-@ Pichu
- evo_entry EVO_FRIENDSHIP, 0, SPECIES_PIKACHU
- empty_evo_entries 4
-
-@ Cleffa
- evo_entry EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY
- empty_evo_entries 4
-
-@ Igglybuff
- evo_entry EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF
- empty_evo_entries 4
-
-@ Togepi
- evo_entry EVO_FRIENDSHIP, 0, SPECIES_TOGETIC
- empty_evo_entries 4
-
-@ Togetic
- empty_evo_entries 5
-
-@ Natu
- evo_entry EVO_LEVEL, 25, SPECIES_XATU
- empty_evo_entries 4
-
-@ Xatu
- empty_evo_entries 5
-
-@ Mareep
- evo_entry EVO_LEVEL, 15, SPECIES_FLAAFFY
- empty_evo_entries 4
-
-@ Flaaffy
- evo_entry EVO_LEVEL, 30, SPECIES_AMPHAROS
- empty_evo_entries 4
-
-@ Ampharos
- empty_evo_entries 5
-
-@ Bellossom
- empty_evo_entries 5
-
-@ Marill
- evo_entry EVO_LEVEL, 18, SPECIES_AZUMARILL
- empty_evo_entries 4
-
-@ Azumarill
- empty_evo_entries 5
-
-@ Sudowoodo
- empty_evo_entries 5
-
-@ Politoed
- empty_evo_entries 5
-
-@ Hoppip
- evo_entry EVO_LEVEL, 18, SPECIES_SKIPLOOM
- empty_evo_entries 4
-
-@ Skiploom
- evo_entry EVO_LEVEL, 27, SPECIES_JUMPLUFF
- empty_evo_entries 4
-
-@ Jumpluff
- empty_evo_entries 5
-
-@ Aipom
- empty_evo_entries 5
-
-@ Sunkern
- evo_entry EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA
- empty_evo_entries 4
-
-@ Sunflora
- empty_evo_entries 5
-
-@ Yanma
- empty_evo_entries 5
-
-@ Wooper
- evo_entry EVO_LEVEL, 20, SPECIES_QUAGSIRE
- empty_evo_entries 4
-
-@ Quagsire
- empty_evo_entries 5
-
-@ Espeon
- empty_evo_entries 5
-
-@ Umbreon
- empty_evo_entries 5
-
-@ Murkrow
- empty_evo_entries 5
-
-@ Slowking
- empty_evo_entries 5
-
-@ Misdreavus
- empty_evo_entries 5
-
-@ Unown
- empty_evo_entries 5
-
-@ Wobbuffet
- empty_evo_entries 5
-
-@ Girafarig
- empty_evo_entries 5
-
-@ Pineco
- evo_entry EVO_LEVEL, 31, SPECIES_FORRETRESS
- empty_evo_entries 4
-
-@ Forretress
- empty_evo_entries 5
-
-@ Dunsparce
- empty_evo_entries 5
-
-@ Gligar
- empty_evo_entries 5
-
-@ Steelix
- empty_evo_entries 5
-
-@ Snubbull
- evo_entry EVO_LEVEL, 23, SPECIES_GRANBULL
- empty_evo_entries 4
-
-@ Granbull
- empty_evo_entries 5
-
-@ Qwilfish
- empty_evo_entries 5
-
-@ Scizor
- empty_evo_entries 5
-
-@ Shuckle
- empty_evo_entries 5
-
-@ Heracross
- empty_evo_entries 5
-
-@ Sneasel
- empty_evo_entries 5
-
-@ Teddiursa
- evo_entry EVO_LEVEL, 30, SPECIES_URSARING
- empty_evo_entries 4
-
-@ Ursaring
- empty_evo_entries 5
-
-@ Slugma
- evo_entry EVO_LEVEL, 38, SPECIES_MAGCARGO
- empty_evo_entries 4
-
-@ Magcargo
- empty_evo_entries 5
-
-@ Swinub
- evo_entry EVO_LEVEL, 33, SPECIES_PILOSWINE
- empty_evo_entries 4
-
-@ Piloswine
- empty_evo_entries 5
-
-@ Corsola
- empty_evo_entries 5
-
-@ Remoraid
- evo_entry EVO_LEVEL, 25, SPECIES_OCTILLERY
- empty_evo_entries 4
-
-@ Octillery
- empty_evo_entries 5
-
-@ Delibird
- empty_evo_entries 5
-
-@ Mantine
- empty_evo_entries 5
-
-@ Skarmory
- empty_evo_entries 5
-
-@ Houndour
- evo_entry EVO_LEVEL, 24, SPECIES_HOUNDOOM
- empty_evo_entries 4
-
-@ Houndoom
- empty_evo_entries 5
-
-@ Kingdra
- empty_evo_entries 5
-
-@ Phanpy
- evo_entry EVO_LEVEL, 25, SPECIES_DONPHAN
- empty_evo_entries 4
-
-@ Donphan
- empty_evo_entries 5
-
-@ Porygon2
- empty_evo_entries 5
-
-@ Stantler
- empty_evo_entries 5
-
-@ Smeargle
- empty_evo_entries 5
-
-@ Tyrogue
- evo_entry EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN
- evo_entry EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE
- evo_entry EVO_LEVEL_ATK_EQ_DEF, 20, SPECIES_HITMONTOP
- empty_evo_entries 2
-
-@ Hitmontop
- empty_evo_entries 5
-
-@ Smoochum
- evo_entry EVO_LEVEL, 30, SPECIES_JYNX
- empty_evo_entries 4
-
-@ Elekid
- evo_entry EVO_LEVEL, 30, SPECIES_ELECTABUZZ
- empty_evo_entries 4
-
-@ Magby
- evo_entry EVO_LEVEL, 30, SPECIES_MAGMAR
- empty_evo_entries 4
-
-@ Miltank
- empty_evo_entries 5
-
-@ Blissey
- empty_evo_entries 5
-
-@ Raikou
- empty_evo_entries 5
-
-@ Entei
- empty_evo_entries 5
-
-@ Suicune
- empty_evo_entries 5
-
-@ Larvitar
- evo_entry EVO_LEVEL, 30, SPECIES_PUPITAR
- empty_evo_entries 4
-
-@ Pupitar
- evo_entry EVO_LEVEL, 55, SPECIES_TYRANITAR
- empty_evo_entries 4
-
-@ Tyranitar
- empty_evo_entries 5
-
-@ Lugia
- empty_evo_entries 5
-
-@ Ho-Oh
- empty_evo_entries 5
-
-@ Celebi
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ ?
- empty_evo_entries 5
-
-@ Treecko
- evo_entry EVO_LEVEL, 16, SPECIES_GROVYLE
- empty_evo_entries 4
-
-@ Grovyle
- evo_entry EVO_LEVEL, 36, SPECIES_SCEPTILE
- empty_evo_entries 4
-
-@ Sceptile
- empty_evo_entries 5
-
-@ Torchic
- evo_entry EVO_LEVEL, 16, SPECIES_COMBUSKEN
- empty_evo_entries 4
-
-@ Combusken
- evo_entry EVO_LEVEL, 36, SPECIES_BLAZIKEN
- empty_evo_entries 4
-
-@ Blaziken
- empty_evo_entries 5
-
-@ Mudkip
- evo_entry EVO_LEVEL, 16, SPECIES_MARSHTOMP
- empty_evo_entries 4
-
-@ Marshtomp
- evo_entry EVO_LEVEL, 36, SPECIES_SWAMPERT
- empty_evo_entries 4
-
-@ Swampert
- empty_evo_entries 5
-
-@ Poochyena
- evo_entry EVO_LEVEL, 18, SPECIES_MIGHTYENA
- empty_evo_entries 4
-
-@ Mightyena
- empty_evo_entries 5
-
-@ Zigzagoon
- evo_entry EVO_LEVEL, 20, SPECIES_LINOONE
- empty_evo_entries 4
-
-@ Linoone
- empty_evo_entries 5
-
-@ Wurmple
- evo_entry EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON
- evo_entry EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON
- empty_evo_entries 3
-
-@ Silcoon
- evo_entry EVO_LEVEL, 10, SPECIES_BEAUTIFLY
- empty_evo_entries 4
-
-@ Beautifly
- empty_evo_entries 5
-
-@ Cascoon
- evo_entry EVO_LEVEL, 10, SPECIES_DUSTOX
- empty_evo_entries 4
-
-@ Dustox
- empty_evo_entries 5
-
-@ Lotad
- evo_entry EVO_LEVEL, 14, SPECIES_LOMBRE
- empty_evo_entries 4
-
-@ Lombre
- evo_entry EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO
- empty_evo_entries 4
-
-@ Ludicolo
- empty_evo_entries 5
-
-@ Seedot
- evo_entry EVO_LEVEL, 14, SPECIES_NUZLEAF
- empty_evo_entries 4
-
-@ Nuzleaf
- evo_entry EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY
- empty_evo_entries 4
-
-@ Shiftry
- empty_evo_entries 5
-
-@ Nincada
- evo_entry EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK
- evo_entry EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA
- empty_evo_entries 3
-
-@ Ninjask
- empty_evo_entries 5
-
-@ Shedinja
- empty_evo_entries 5
-
-@ Taillow
- evo_entry EVO_LEVEL, 22, SPECIES_SWELLOW
- empty_evo_entries 4
-
-@ Swellow
- empty_evo_entries 5
-
-@ Shroomish
- evo_entry EVO_LEVEL, 23, SPECIES_BRELOOM
- empty_evo_entries 4
-
-@ Breloom
- empty_evo_entries 5
-
-@ Spinda
- empty_evo_entries 5
-
-@ Wingull
- evo_entry EVO_LEVEL, 25, SPECIES_PELIPPER
- empty_evo_entries 4
-
-@ Pelipper
- empty_evo_entries 5
-
-@ Surskit
- evo_entry EVO_LEVEL, 22, SPECIES_MASQUERAIN
- empty_evo_entries 4
-
-@ Masquerain
- empty_evo_entries 5
-
-@ Wailmer
- evo_entry EVO_LEVEL, 40, SPECIES_WAILORD
- empty_evo_entries 4
-
-@ Wailord
- empty_evo_entries 5
-
-@ Skitty
- evo_entry EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY
- empty_evo_entries 4
-
-@ Delcatty
- empty_evo_entries 5
-
-@ Kecleon
- empty_evo_entries 5
-
-@ Baltoy
- evo_entry EVO_LEVEL, 36, SPECIES_CLAYDOL
- empty_evo_entries 4
-
-@ Claydol
- empty_evo_entries 5
-
-@ Nosepass
- empty_evo_entries 5
-
-@ Torkoal
- empty_evo_entries 5
-
-@ Sableye
- empty_evo_entries 5
-
-@ Barboach
- evo_entry EVO_LEVEL, 30, SPECIES_WHISCASH
- empty_evo_entries 4
-
-@ Whiscash
- empty_evo_entries 5
-
-@ Luvdisc
- empty_evo_entries 5
-
-@ Corphish
- evo_entry EVO_LEVEL, 30, SPECIES_CRAWDAUNT
- empty_evo_entries 4
-
-@ Crawdaunt
- empty_evo_entries 5
-
-@ Feebas
- evo_entry EVO_BEAUTY, 170, SPECIES_MILOTIC
- empty_evo_entries 4
-
-@ Milotic
- empty_evo_entries 5
-
-@ Carvanha
- evo_entry EVO_LEVEL, 30, SPECIES_SHARPEDO
- empty_evo_entries 4
-
-@ Sharpedo
- empty_evo_entries 5
-
-@ Trapinch
- evo_entry EVO_LEVEL, 35, SPECIES_VIBRAVA
- empty_evo_entries 4
-
-@ Vibrava
- evo_entry EVO_LEVEL, 45, SPECIES_FLYGON
- empty_evo_entries 4
-
-@ Flygon
- empty_evo_entries 5
-
-@ Makuhita
- evo_entry EVO_LEVEL, 24, SPECIES_HARIYAMA
- empty_evo_entries 4
-
-@ Hariyama
- empty_evo_entries 5
-
-@ Electrike
- evo_entry EVO_LEVEL, 26, SPECIES_MANECTRIC
- empty_evo_entries 4
-
-@ Manectric
- empty_evo_entries 5
-
-@ Numel
- evo_entry EVO_LEVEL, 33, SPECIES_CAMERUPT
- empty_evo_entries 4
-
-@ Camerupt
- empty_evo_entries 5
-
-@ Spheal
- evo_entry EVO_LEVEL, 32, SPECIES_SEALEO
- empty_evo_entries 4
-
-@ Sealeo
- evo_entry EVO_LEVEL, 44, SPECIES_WALREIN
- empty_evo_entries 4
-
-@ Walrein
- empty_evo_entries 5
-
-@ Cacnea
- evo_entry EVO_LEVEL, 32, SPECIES_CACTURNE
- empty_evo_entries 4
-
-@ Cacturne
- empty_evo_entries 5
-
-@ Snorunt
- evo_entry EVO_LEVEL, 42, SPECIES_GLALIE
- empty_evo_entries 4
-
-@ Glalie
- empty_evo_entries 5
-
-@ Lunatone
- empty_evo_entries 5
-
-@ Solrock
- empty_evo_entries 5
-
-@ Azurill
- evo_entry EVO_FRIENDSHIP, 0, SPECIES_MARILL
- empty_evo_entries 4
-
-@ Spoink
- evo_entry EVO_LEVEL, 32, SPECIES_GRUMPIG
- empty_evo_entries 4
-
-@ Grumpig
- empty_evo_entries 5
-
-@ Plusle
- empty_evo_entries 5
-
-@ Minun
- empty_evo_entries 5
-
-@ Mawile
- empty_evo_entries 5
-
-@ Meditite
- evo_entry EVO_LEVEL, 37, SPECIES_MEDICHAM
- empty_evo_entries 4
-
-@ Medicham
- empty_evo_entries 5
-
-@ Swablu
- evo_entry EVO_LEVEL, 35, SPECIES_ALTARIA
- empty_evo_entries 4
-
-@ Altaria
- empty_evo_entries 5
-
-@ Wynaut
- evo_entry EVO_LEVEL, 15, SPECIES_WOBBUFFET
- empty_evo_entries 4
-
-@ Duskull
- evo_entry EVO_LEVEL, 37, SPECIES_DUSCLOPS
- empty_evo_entries 4
-
-@ Dusclops
- empty_evo_entries 5
-
-@ Roselia
- empty_evo_entries 5
-
-@ Slakoth
- evo_entry EVO_LEVEL, 18, SPECIES_VIGOROTH
- empty_evo_entries 4
-
-@ Vigoroth
- evo_entry EVO_LEVEL, 36, SPECIES_SLAKING
- empty_evo_entries 4
-
-@ Slaking
- empty_evo_entries 5
-
-@ Gulpin
- evo_entry EVO_LEVEL, 26, SPECIES_SWALOT
- empty_evo_entries 4
-
-@ Swalot
- empty_evo_entries 5
-
-@ Tropius
- empty_evo_entries 5
-
-@ Whismur
- evo_entry EVO_LEVEL, 20, SPECIES_LOUDRED
- empty_evo_entries 4
-
-@ Loudred
- evo_entry EVO_LEVEL, 40, SPECIES_EXPLOUD
- empty_evo_entries 4
-
-@ Exploud
- empty_evo_entries 5
-
-@ Clamperl
- evo_entry EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL
- evo_entry EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS
- empty_evo_entries 3
-
-@ Huntail
- empty_evo_entries 5
-
-@ Gorebyss
- empty_evo_entries 5
-
-@ Absol
- empty_evo_entries 5
-
-@ Shuppet
- evo_entry EVO_LEVEL, 37, SPECIES_BANETTE
- empty_evo_entries 4
-
-@ Banette
- empty_evo_entries 5
-
-@ Seviper
- empty_evo_entries 5
-
-@ Zangoose
- empty_evo_entries 5
-
-@ Relicanth
- empty_evo_entries 5
-
-@ Aron
- evo_entry EVO_LEVEL, 32, SPECIES_LAIRON
- empty_evo_entries 4
-
-@ Lairon
- evo_entry EVO_LEVEL, 42, SPECIES_AGGRON
- empty_evo_entries 4
-
-@ Aggron
- empty_evo_entries 5
-
-@ Castform
- empty_evo_entries 5
-
-@ Volbeat
- empty_evo_entries 5
-
-@ Illumise
- empty_evo_entries 5
-
-@ Lileep
- evo_entry EVO_LEVEL, 40, SPECIES_CRADILY
- empty_evo_entries 4
-
-@ Cradily
- empty_evo_entries 5
-
-@ Anorith
- evo_entry EVO_LEVEL, 40, SPECIES_ARMALDO
- empty_evo_entries 4
-
-@ Armaldo
- empty_evo_entries 5
-
-@ Ralts
- evo_entry EVO_LEVEL, 20, SPECIES_KIRLIA
- empty_evo_entries 4
-
-@ Kirlia
- evo_entry EVO_LEVEL, 30, SPECIES_GARDEVOIR
- empty_evo_entries 4
-
-@ Gardevoir
- empty_evo_entries 5
-
-@ Bagon
- evo_entry EVO_LEVEL, 30, SPECIES_SHELGON
- empty_evo_entries 4
-
-@ Shelgon
- evo_entry EVO_LEVEL, 50, SPECIES_SALAMENCE
- empty_evo_entries 4
-
-@ Salamence
- empty_evo_entries 5
-
-@ Beldum
- evo_entry EVO_LEVEL, 20, SPECIES_METANG
- empty_evo_entries 4
-
-@ Metang
- evo_entry EVO_LEVEL, 45, SPECIES_METAGROSS
- empty_evo_entries 4
-
-@ Metagross
- empty_evo_entries 5
-
-@ Regirock
- empty_evo_entries 5
-
-@ Regice
- empty_evo_entries 5
-
-@ Registeel
- empty_evo_entries 5
-
-@ Kyogre
- empty_evo_entries 5
-
-@ Groudon
- empty_evo_entries 5
-
-@ Rayquaza
- empty_evo_entries 5
-
-@ Latias
- empty_evo_entries 5
-
-@ Latios
- empty_evo_entries 5
-
-@ Jirachi
- empty_evo_entries 5
-
-@ Deoxys
- empty_evo_entries 5
-
-@ Chimecho
- empty_evo_entries 5
diff --git a/data/experience_tables/erratic_growth_rate.inc b/data/experience_tables/erratic_growth_rate.inc
deleted file mode 100644
index d3a455a9f..000000000
--- a/data/experience_tables/erratic_growth_rate.inc
+++ /dev/null
@@ -1,101 +0,0 @@
- .4byte 0 @ 0
- .4byte 1 @ 1
- .4byte 15 @ 2
- .4byte 52 @ 3
- .4byte 122 @ 4
- .4byte 237 @ 5
- .4byte 406 @ 6
- .4byte 637 @ 7
- .4byte 942 @ 8
- .4byte 1326 @ 9
- .4byte 1800 @ 10
- .4byte 2369 @ 11
- .4byte 3041 @ 12
- .4byte 3822 @ 13
- .4byte 4719 @ 14
- .4byte 5737 @ 15
- .4byte 6881 @ 16
- .4byte 8155 @ 17
- .4byte 9564 @ 18
- .4byte 11111 @ 19
- .4byte 12800 @ 20
- .4byte 14632 @ 21
- .4byte 16610 @ 22
- .4byte 18737 @ 23
- .4byte 21012 @ 24
- .4byte 23437 @ 25
- .4byte 26012 @ 26
- .4byte 28737 @ 27
- .4byte 31610 @ 28
- .4byte 34632 @ 29
- .4byte 37800 @ 30
- .4byte 41111 @ 31
- .4byte 44564 @ 32
- .4byte 48155 @ 33
- .4byte 51881 @ 34
- .4byte 55737 @ 35
- .4byte 59719 @ 36
- .4byte 63822 @ 37
- .4byte 68041 @ 38
- .4byte 72369 @ 39
- .4byte 76800 @ 40
- .4byte 81326 @ 41
- .4byte 85942 @ 42
- .4byte 90637 @ 43
- .4byte 95406 @ 44
- .4byte 100237 @ 45
- .4byte 105122 @ 46
- .4byte 110052 @ 47
- .4byte 115015 @ 48
- .4byte 120001 @ 49
- .4byte 125000 @ 50
- .4byte 131324 @ 51
- .4byte 137795 @ 52
- .4byte 144410 @ 53
- .4byte 151165 @ 54
- .4byte 158056 @ 55
- .4byte 165079 @ 56
- .4byte 172229 @ 57
- .4byte 179503 @ 58
- .4byte 186894 @ 59
- .4byte 194400 @ 60
- .4byte 202013 @ 61
- .4byte 209728 @ 62
- .4byte 217540 @ 63
- .4byte 225443 @ 64
- .4byte 233431 @ 65
- .4byte 241496 @ 66
- .4byte 249633 @ 67
- .4byte 257834 @ 68
- .4byte 267406 @ 69
- .4byte 276458 @ 70
- .4byte 286328 @ 71
- .4byte 296358 @ 72
- .4byte 305767 @ 73
- .4byte 316074 @ 74
- .4byte 326531 @ 75
- .4byte 336255 @ 76
- .4byte 346965 @ 77
- .4byte 357812 @ 78
- .4byte 367807 @ 79
- .4byte 378880 @ 80
- .4byte 390077 @ 81
- .4byte 400293 @ 82
- .4byte 411686 @ 83
- .4byte 423190 @ 84
- .4byte 433572 @ 85
- .4byte 445239 @ 86
- .4byte 457001 @ 87
- .4byte 467489 @ 88
- .4byte 479378 @ 89
- .4byte 491346 @ 90
- .4byte 501878 @ 91
- .4byte 513934 @ 92
- .4byte 526049 @ 93
- .4byte 536557 @ 94
- .4byte 548720 @ 95
- .4byte 560922 @ 96
- .4byte 571333 @ 97
- .4byte 583539 @ 98
- .4byte 591882 @ 99
- .4byte 600000 @ 100
diff --git a/data/experience_tables/fast_growth_rate.inc b/data/experience_tables/fast_growth_rate.inc
deleted file mode 100644
index d8675fdc0..000000000
--- a/data/experience_tables/fast_growth_rate.inc
+++ /dev/null
@@ -1,101 +0,0 @@
- .4byte 0 @ 0
- .4byte 1 @ 1
- .4byte 6 @ 2
- .4byte 21 @ 3
- .4byte 51 @ 4
- .4byte 100 @ 5
- .4byte 172 @ 6
- .4byte 274 @ 7
- .4byte 409 @ 8
- .4byte 583 @ 9
- .4byte 800 @ 10
- .4byte 1064 @ 11
- .4byte 1382 @ 12
- .4byte 1757 @ 13
- .4byte 2195 @ 14
- .4byte 2700 @ 15
- .4byte 3276 @ 16
- .4byte 3930 @ 17
- .4byte 4665 @ 18
- .4byte 5487 @ 19
- .4byte 6400 @ 20
- .4byte 7408 @ 21
- .4byte 8518 @ 22
- .4byte 9733 @ 23
- .4byte 11059 @ 24
- .4byte 12500 @ 25
- .4byte 14060 @ 26
- .4byte 15746 @ 27
- .4byte 17561 @ 28
- .4byte 19511 @ 29
- .4byte 21600 @ 30
- .4byte 23832 @ 31
- .4byte 26214 @ 32
- .4byte 28749 @ 33
- .4byte 31443 @ 34
- .4byte 34300 @ 35
- .4byte 37324 @ 36
- .4byte 40522 @ 37
- .4byte 43897 @ 38
- .4byte 47455 @ 39
- .4byte 51200 @ 40
- .4byte 55136 @ 41
- .4byte 59270 @ 42
- .4byte 63605 @ 43
- .4byte 68147 @ 44
- .4byte 72900 @ 45
- .4byte 77868 @ 46
- .4byte 83058 @ 47
- .4byte 88473 @ 48
- .4byte 94119 @ 49
- .4byte 100000 @ 50
- .4byte 106120 @ 51
- .4byte 112486 @ 52
- .4byte 119101 @ 53
- .4byte 125971 @ 54
- .4byte 133100 @ 55
- .4byte 140492 @ 56
- .4byte 148154 @ 57
- .4byte 156089 @ 58
- .4byte 164303 @ 59
- .4byte 172800 @ 60
- .4byte 181584 @ 61
- .4byte 190662 @ 62
- .4byte 200037 @ 63
- .4byte 209715 @ 64
- .4byte 219700 @ 65
- .4byte 229996 @ 66
- .4byte 240610 @ 67
- .4byte 251545 @ 68
- .4byte 262807 @ 69
- .4byte 274400 @ 70
- .4byte 286328 @ 71
- .4byte 298598 @ 72
- .4byte 311213 @ 73
- .4byte 324179 @ 74
- .4byte 337500 @ 75
- .4byte 351180 @ 76
- .4byte 365226 @ 77
- .4byte 379641 @ 78
- .4byte 394431 @ 79
- .4byte 409600 @ 80
- .4byte 425152 @ 81
- .4byte 441094 @ 82
- .4byte 457429 @ 83
- .4byte 474163 @ 84
- .4byte 491300 @ 85
- .4byte 508844 @ 86
- .4byte 526802 @ 87
- .4byte 545177 @ 88
- .4byte 563975 @ 89
- .4byte 583200 @ 90
- .4byte 602856 @ 91
- .4byte 622950 @ 92
- .4byte 643485 @ 93
- .4byte 664467 @ 94
- .4byte 685900 @ 95
- .4byte 707788 @ 96
- .4byte 730138 @ 97
- .4byte 752953 @ 98
- .4byte 776239 @ 99
- .4byte 800000 @ 100
diff --git a/data/experience_tables/fluctuating_growth_rate.inc b/data/experience_tables/fluctuating_growth_rate.inc
deleted file mode 100644
index 81a962327..000000000
--- a/data/experience_tables/fluctuating_growth_rate.inc
+++ /dev/null
@@ -1,101 +0,0 @@
- .4byte 0 @ 0
- .4byte 1 @ 1
- .4byte 4 @ 2
- .4byte 13 @ 3
- .4byte 32 @ 4
- .4byte 65 @ 5
- .4byte 112 @ 6
- .4byte 178 @ 7
- .4byte 276 @ 8
- .4byte 393 @ 9
- .4byte 540 @ 10
- .4byte 745 @ 11
- .4byte 967 @ 12
- .4byte 1230 @ 13
- .4byte 1591 @ 14
- .4byte 1957 @ 15
- .4byte 2457 @ 16
- .4byte 3046 @ 17
- .4byte 3732 @ 18
- .4byte 4526 @ 19
- .4byte 5440 @ 20
- .4byte 6482 @ 21
- .4byte 7666 @ 22
- .4byte 9003 @ 23
- .4byte 10506 @ 24
- .4byte 12187 @ 25
- .4byte 14060 @ 26
- .4byte 16140 @ 27
- .4byte 18439 @ 28
- .4byte 20974 @ 29
- .4byte 23760 @ 30
- .4byte 26811 @ 31
- .4byte 30146 @ 32
- .4byte 33780 @ 33
- .4byte 37731 @ 34
- .4byte 42017 @ 35
- .4byte 46656 @ 36
- .4byte 50653 @ 37
- .4byte 55969 @ 38
- .4byte 60505 @ 39
- .4byte 66560 @ 40
- .4byte 71677 @ 41
- .4byte 78533 @ 42
- .4byte 84277 @ 43
- .4byte 91998 @ 44
- .4byte 98415 @ 45
- .4byte 107069 @ 46
- .4byte 114205 @ 47
- .4byte 123863 @ 48
- .4byte 131766 @ 49
- .4byte 142500 @ 50
- .4byte 151222 @ 51
- .4byte 163105 @ 52
- .4byte 172697 @ 53
- .4byte 185807 @ 54
- .4byte 196322 @ 55
- .4byte 210739 @ 56
- .4byte 222231 @ 57
- .4byte 238036 @ 58
- .4byte 250562 @ 59
- .4byte 267840 @ 60
- .4byte 281456 @ 61
- .4byte 300293 @ 62
- .4byte 315059 @ 63
- .4byte 335544 @ 64
- .4byte 351520 @ 65
- .4byte 373744 @ 66
- .4byte 390991 @ 67
- .4byte 415050 @ 68
- .4byte 433631 @ 69
- .4byte 459620 @ 70
- .4byte 479600 @ 71
- .4byte 507617 @ 72
- .4byte 529063 @ 73
- .4byte 559209 @ 74
- .4byte 582187 @ 75
- .4byte 614566 @ 76
- .4byte 639146 @ 77
- .4byte 673863 @ 78
- .4byte 700115 @ 79
- .4byte 737280 @ 80
- .4byte 765275 @ 81
- .4byte 804997 @ 82
- .4byte 834809 @ 83
- .4byte 877201 @ 84
- .4byte 908905 @ 85
- .4byte 954084 @ 86
- .4byte 987754 @ 87
- .4byte 1035837 @ 88
- .4byte 1071552 @ 89
- .4byte 1122660 @ 90
- .4byte 1160499 @ 91
- .4byte 1214753 @ 92
- .4byte 1254796 @ 93
- .4byte 1312322 @ 94
- .4byte 1354652 @ 95
- .4byte 1415577 @ 96
- .4byte 1460276 @ 97
- .4byte 1524731 @ 98
- .4byte 1571884 @ 99
- .4byte 1640000 @ 100
diff --git a/data/experience_tables/medium_fast_growth_rate.inc b/data/experience_tables/medium_fast_growth_rate.inc
deleted file mode 100644
index 5a51dd381..000000000
--- a/data/experience_tables/medium_fast_growth_rate.inc
+++ /dev/null
@@ -1,101 +0,0 @@
- .4byte 0 @ 0
- .4byte 1 @ 1
- .4byte 8 @ 2
- .4byte 27 @ 3
- .4byte 64 @ 4
- .4byte 125 @ 5
- .4byte 216 @ 6
- .4byte 343 @ 7
- .4byte 512 @ 8
- .4byte 729 @ 9
- .4byte 1000 @ 10
- .4byte 1331 @ 11
- .4byte 1728 @ 12
- .4byte 2197 @ 13
- .4byte 2744 @ 14
- .4byte 3375 @ 15
- .4byte 4096 @ 16
- .4byte 4913 @ 17
- .4byte 5832 @ 18
- .4byte 6859 @ 19
- .4byte 8000 @ 20
- .4byte 9261 @ 21
- .4byte 10648 @ 22
- .4byte 12167 @ 23
- .4byte 13824 @ 24
- .4byte 15625 @ 25
- .4byte 17576 @ 26
- .4byte 19683 @ 27
- .4byte 21952 @ 28
- .4byte 24389 @ 29
- .4byte 27000 @ 30
- .4byte 29791 @ 31
- .4byte 32768 @ 32
- .4byte 35937 @ 33
- .4byte 39304 @ 34
- .4byte 42875 @ 35
- .4byte 46656 @ 36
- .4byte 50653 @ 37
- .4byte 54872 @ 38
- .4byte 59319 @ 39
- .4byte 64000 @ 40
- .4byte 68921 @ 41
- .4byte 74088 @ 42
- .4byte 79507 @ 43
- .4byte 85184 @ 44
- .4byte 91125 @ 45
- .4byte 97336 @ 46
- .4byte 103823 @ 47
- .4byte 110592 @ 48
- .4byte 117649 @ 49
- .4byte 125000 @ 50
- .4byte 132651 @ 51
- .4byte 140608 @ 52
- .4byte 148877 @ 53
- .4byte 157464 @ 54
- .4byte 166375 @ 55
- .4byte 175616 @ 56
- .4byte 185193 @ 57
- .4byte 195112 @ 58
- .4byte 205379 @ 59
- .4byte 216000 @ 60
- .4byte 226981 @ 61
- .4byte 238328 @ 62
- .4byte 250047 @ 63
- .4byte 262144 @ 64
- .4byte 274625 @ 65
- .4byte 287496 @ 66
- .4byte 300763 @ 67
- .4byte 314432 @ 68
- .4byte 328509 @ 69
- .4byte 343000 @ 70
- .4byte 357911 @ 71
- .4byte 373248 @ 72
- .4byte 389017 @ 73
- .4byte 405224 @ 74
- .4byte 421875 @ 75
- .4byte 438976 @ 76
- .4byte 456533 @ 77
- .4byte 474552 @ 78
- .4byte 493039 @ 79
- .4byte 512000 @ 80
- .4byte 531441 @ 81
- .4byte 551368 @ 82
- .4byte 571787 @ 83
- .4byte 592704 @ 84
- .4byte 614125 @ 85
- .4byte 636056 @ 86
- .4byte 658503 @ 87
- .4byte 681472 @ 88
- .4byte 704969 @ 89
- .4byte 729000 @ 90
- .4byte 753571 @ 91
- .4byte 778688 @ 92
- .4byte 804357 @ 93
- .4byte 830584 @ 94
- .4byte 857375 @ 95
- .4byte 884736 @ 96
- .4byte 912673 @ 97
- .4byte 941192 @ 98
- .4byte 970299 @ 99
- .4byte 1000000 @ 100
diff --git a/data/experience_tables/medium_slow_growth_rate.inc b/data/experience_tables/medium_slow_growth_rate.inc
deleted file mode 100644
index d4c16b8c0..000000000
--- a/data/experience_tables/medium_slow_growth_rate.inc
+++ /dev/null
@@ -1,101 +0,0 @@
- .4byte 0 @ 0
- .4byte 1 @ 1
- .4byte 9 @ 2
- .4byte 57 @ 3
- .4byte 96 @ 4
- .4byte 135 @ 5
- .4byte 179 @ 6
- .4byte 236 @ 7
- .4byte 314 @ 8
- .4byte 419 @ 9
- .4byte 560 @ 10
- .4byte 742 @ 11
- .4byte 973 @ 12
- .4byte 1261 @ 13
- .4byte 1612 @ 14
- .4byte 2035 @ 15
- .4byte 2535 @ 16
- .4byte 3120 @ 17
- .4byte 3798 @ 18
- .4byte 4575 @ 19
- .4byte 5460 @ 20
- .4byte 6458 @ 21
- .4byte 7577 @ 22
- .4byte 8825 @ 23
- .4byte 10208 @ 24
- .4byte 11735 @ 25
- .4byte 13411 @ 26
- .4byte 15244 @ 27
- .4byte 17242 @ 28
- .4byte 19411 @ 29
- .4byte 21760 @ 30
- .4byte 24294 @ 31
- .4byte 27021 @ 32
- .4byte 29949 @ 33
- .4byte 33084 @ 34
- .4byte 36435 @ 35
- .4byte 40007 @ 36
- .4byte 43808 @ 37
- .4byte 47846 @ 38
- .4byte 52127 @ 39
- .4byte 56660 @ 40
- .4byte 61450 @ 41
- .4byte 66505 @ 42
- .4byte 71833 @ 43
- .4byte 77440 @ 44
- .4byte 83335 @ 45
- .4byte 89523 @ 46
- .4byte 96012 @ 47
- .4byte 102810 @ 48
- .4byte 109923 @ 49
- .4byte 117360 @ 50
- .4byte 125126 @ 51
- .4byte 133229 @ 52
- .4byte 141677 @ 53
- .4byte 150476 @ 54
- .4byte 159635 @ 55
- .4byte 169159 @ 56
- .4byte 179056 @ 57
- .4byte 189334 @ 58
- .4byte 199999 @ 59
- .4byte 211060 @ 60
- .4byte 222522 @ 61
- .4byte 234393 @ 62
- .4byte 246681 @ 63
- .4byte 259392 @ 64
- .4byte 272535 @ 65
- .4byte 286115 @ 66
- .4byte 300140 @ 67
- .4byte 314618 @ 68
- .4byte 329555 @ 69
- .4byte 344960 @ 70
- .4byte 360838 @ 71
- .4byte 377197 @ 72
- .4byte 394045 @ 73
- .4byte 411388 @ 74
- .4byte 429235 @ 75
- .4byte 447591 @ 76
- .4byte 466464 @ 77
- .4byte 485862 @ 78
- .4byte 505791 @ 79
- .4byte 526260 @ 80
- .4byte 547274 @ 81
- .4byte 568841 @ 82
- .4byte 590969 @ 83
- .4byte 613664 @ 84
- .4byte 636935 @ 85
- .4byte 660787 @ 86
- .4byte 685228 @ 87
- .4byte 710266 @ 88
- .4byte 735907 @ 89
- .4byte 762160 @ 90
- .4byte 789030 @ 91
- .4byte 816525 @ 92
- .4byte 844653 @ 93
- .4byte 873420 @ 94
- .4byte 902835 @ 95
- .4byte 932903 @ 96
- .4byte 963632 @ 97
- .4byte 995030 @ 98
- .4byte 1027103 @ 99
- .4byte 1059860 @ 100
diff --git a/data/experience_tables/slow_growth_rate.inc b/data/experience_tables/slow_growth_rate.inc
deleted file mode 100644
index 8d10b34ed..000000000
--- a/data/experience_tables/slow_growth_rate.inc
+++ /dev/null
@@ -1,101 +0,0 @@
- .4byte 0 @ 0
- .4byte 1 @ 1
- .4byte 10 @ 2
- .4byte 33 @ 3
- .4byte 80 @ 4
- .4byte 156 @ 5
- .4byte 270 @ 6
- .4byte 428 @ 7
- .4byte 640 @ 8
- .4byte 911 @ 9
- .4byte 1250 @ 10
- .4byte 1663 @ 11
- .4byte 2160 @ 12
- .4byte 2746 @ 13
- .4byte 3430 @ 14
- .4byte 4218 @ 15
- .4byte 5120 @ 16
- .4byte 6141 @ 17
- .4byte 7290 @ 18
- .4byte 8573 @ 19
- .4byte 10000 @ 20
- .4byte 11576 @ 21
- .4byte 13310 @ 22
- .4byte 15208 @ 23
- .4byte 17280 @ 24
- .4byte 19531 @ 25
- .4byte 21970 @ 26
- .4byte 24603 @ 27
- .4byte 27440 @ 28
- .4byte 30486 @ 29
- .4byte 33750 @ 30
- .4byte 37238 @ 31
- .4byte 40960 @ 32
- .4byte 44921 @ 33
- .4byte 49130 @ 34
- .4byte 53593 @ 35
- .4byte 58320 @ 36
- .4byte 63316 @ 37
- .4byte 68590 @ 38
- .4byte 74148 @ 39
- .4byte 80000 @ 40
- .4byte 86151 @ 41
- .4byte 92610 @ 42
- .4byte 99383 @ 43
- .4byte 106480 @ 44
- .4byte 113906 @ 45
- .4byte 121670 @ 46
- .4byte 129778 @ 47
- .4byte 138240 @ 48
- .4byte 147061 @ 49
- .4byte 156250 @ 50
- .4byte 165813 @ 51
- .4byte 175760 @ 52
- .4byte 186096 @ 53
- .4byte 196830 @ 54
- .4byte 207968 @ 55
- .4byte 219520 @ 56
- .4byte 231491 @ 57
- .4byte 243890 @ 58
- .4byte 256723 @ 59
- .4byte 270000 @ 60
- .4byte 283726 @ 61
- .4byte 297910 @ 62
- .4byte 312558 @ 63
- .4byte 327680 @ 64
- .4byte 343281 @ 65
- .4byte 359370 @ 66
- .4byte 375953 @ 67
- .4byte 393040 @ 68
- .4byte 410636 @ 69
- .4byte 428750 @ 70
- .4byte 447388 @ 71
- .4byte 466560 @ 72
- .4byte 486271 @ 73
- .4byte 506530 @ 74
- .4byte 527343 @ 75
- .4byte 548720 @ 76
- .4byte 570666 @ 77
- .4byte 593190 @ 78
- .4byte 616298 @ 79
- .4byte 640000 @ 80
- .4byte 664301 @ 81
- .4byte 689210 @ 82
- .4byte 714733 @ 83
- .4byte 740880 @ 84
- .4byte 767656 @ 85
- .4byte 795070 @ 86
- .4byte 823128 @ 87
- .4byte 851840 @ 88
- .4byte 881211 @ 89
- .4byte 911250 @ 90
- .4byte 941963 @ 91
- .4byte 973360 @ 92
- .4byte 1005446 @ 93
- .4byte 1038230 @ 94
- .4byte 1071718 @ 95
- .4byte 1105920 @ 96
- .4byte 1140841 @ 97
- .4byte 1176490 @ 98
- .4byte 1212873 @ 99
- .4byte 1250000 @ 100
diff --git a/data/experience_tables/tables.inc b/data/experience_tables/tables.inc
deleted file mode 100644
index 763d6f8bb..000000000
--- a/data/experience_tables/tables.inc
+++ /dev/null
@@ -1,11 +0,0 @@
- .align 2
-gExperienceTables:: @ 81FDF78
- .include "data/experience_tables/medium_fast_growth_rate.inc"
- .include "data/experience_tables/erratic_growth_rate.inc"
- .include "data/experience_tables/fluctuating_growth_rate.inc"
- .include "data/experience_tables/medium_slow_growth_rate.inc"
- .include "data/experience_tables/fast_growth_rate.inc"
- .include "data/experience_tables/slow_growth_rate.inc"
-@ TODO: find out if these copies are used
- .include "data/experience_tables/medium_fast_growth_rate.inc"
- .include "data/experience_tables/medium_fast_growth_rate.inc"
diff --git a/data/field_specials.s b/data/field_specials.s
deleted file mode 100644
index 3e76bbe3f..000000000
--- a/data/field_specials.s
+++ /dev/null
@@ -1,75 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_083F8358:: @ 83F8358
- .byte 7, 9, 8, 10
-
-gUnknown_083F835C:: @ 83F835C
- .byte 0, 1
- .byte 1, 0
- .byte 0, -1
- .byte -1, 0
-
- .align 2
-gUnknown_083F8364:: @ 83F8364
- .byte 7, 16, 0, 0
- .byte 15, 18, 0, 0
- .byte 11, 22, 0, 0
-
-gUnknown_083F8370:: @ 83F8370
- .byte 0, 1, 1, 1, 1
-
- .align 1
-gUnknown_083F8376:: @ 83F8376
- .2byte 0x218, 0x219, 0x21A, 0x21B, 0x21C
-
- .align 2
-gUnknown_083F8380:: @ 83F8380
- .4byte OtherText_1F
- .4byte OtherText_2F
- .4byte OtherText_3F
- .4byte OtherText_4F
- .4byte OtherText_5F
- .4byte OtherText_6F
- .4byte OtherText_7F
- .4byte OtherText_8F
- .4byte OtherText_9F
- .4byte OtherText_10F
- .4byte OtherText_11F
- .4byte OtherText_B1F
- .4byte OtherText_B2F
- .4byte OtherText_B3F
- .4byte OtherText_B4F
- .4byte OtherText_Rooftop
-
- .align 2
-gUnknown_083F83C0:: @ 83F83C0
- .4byte OtherText_BlueFlute
- .4byte OtherText_YellowFlute
- .4byte OtherText_RedFlute
- .4byte OtherText_WhiteFlute
- .4byte OtherText_BlackFlute
- .4byte OtherText_PrettyChair
- .4byte OtherText_PrettyDesk
- .4byte gOtherText_CancelNoTerminator
-
-gUnknown_083F83E0:: @ 83F83E0
- .byte 12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6
-
-gUnknown_083F83EC:: @ 83F83EC
- .byte 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5
-
-gUnknown_083F83F8:: @ 83F83F8
- .byte 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5
-
-gUnknown_083F8404:: @ 83F8404
- .byte 2, 1, 2, 1
-
-gUnknown_083F8408:: @ 83F8408
- .byte 8, 9, 10, 11, 12, 13, 14, 15
-
-gUnknown_083F8410:: @ 83F8410
- .byte 8, 13, 14, 11, 10, 12, 15, 9
diff --git a/data/field_tasks.s b/data/field_tasks.s
deleted file mode 100644
index 122e089e6..000000000
--- a/data/field_tasks.s
+++ /dev/null
@@ -1,66 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_08376364:: @ 8376364
- .4byte DummyPerStepCallback
- .4byte PerStepCallback_8069F64
- .4byte PerStepCallback_8069AA0
- .4byte PerStepCallback_8069864
- .4byte PerStepCallback_8069DD4
- .4byte EndTruckSequence
- .4byte sub_80BCF1C
- .4byte PerStepCallback_806A07C
-
-gUnknown_08376384:: @ 8376384
- .byte 0, 0,0x59, 2, 0, 1,0x61, 2
- .byte 0, -1,0x59, 2, 0, 0,0x61, 2
- .byte 0, 0,0x52, 2, 1, 0,0x53, 2
- .byte -1, 0,0x52, 2, 0, 0,0x53, 2
-
-gUnknown_083763A4:: @ 83763A4
- .byte 0, 0,0x5A, 2, 0, 1,0x62, 2
- .byte 0, -1,0x5A, 2, 0, 0,0x62, 2
- .byte 0, 0,0x54, 2, 1, 0,0x55, 2
- .byte -1, 0,0x54, 2, 0, 0,0x55, 2
-
-gUnknown_083763C4:: @ 83763C4
- .byte 0, 0,0x58, 2, 0, 1,0x60, 2
- .byte 0, -1,0x58, 2, 0, 0,0x60, 2
- .byte 0, 0,0x50, 2, 1, 0,0x51, 2
- .byte -1, 0,0x50, 2, 0, 0,0x51, 2
-
- .align 1
-gUnknown_083763E4:: @ 83763E4
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0x4001
- .2byte 0x4002
- .2byte 0x4003
- .2byte 0x4004
- .2byte 0
- .2byte 0
- .2byte 0x4005
- .2byte 0x4006
- .2byte 0x4007
- .2byte 0
- .2byte 0
- .2byte 0x4008
- .2byte 0x4009
- .2byte 0x400A
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
-
- .align 1
-gUnknown_08376418:: @ 8376418
- .2byte 0xE8, 0xEB, 0xEA, 0xE9
diff --git a/data/item_effects.inc b/data/item_effects.inc
deleted file mode 100644
index 7b05354c2..000000000
--- a/data/item_effects.inc
+++ /dev/null
@@ -1,752 +0,0 @@
-gItemEffect_Potion: @ 81FCC14
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0x00
- .byte 20
-
-gItemEffect_Antidote: @ 81FCC1B
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x10
- .byte 0x00
- .byte 0x00
-
-gItemEffect_BurnHeal: @ 81FCC21
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x08
- .byte 0x00
- .byte 0x00
-
-gItemEffect_IceHeal: @ 81FCC27
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0x00
- .byte 0x00
-
-gItemEffect_Awakening: @ 81FCC2D
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x20
- .byte 0x00
- .byte 0x00
-
-gItemEffect_ParalyzeHeal: @ 81FCC33
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x02
- .byte 0x00
- .byte 0x00
-
-gItemEffect_FullRestore: @ 81FCC39
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x3f
- .byte 0x04
- .byte 0x00
- .byte 0xff
-
-gItemEffect_MaxPotion: @ 81FCC40
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0x00
- .byte 0xff
-
-gItemEffect_HyperPotion: @ 81FCC47
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0x00
- .byte 200
-
-gItemEffect_SuperPotion: @ 81FCC4E
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0x00
- .byte 50
-
-gItemEffect_FullHeal: @ 81FCC55
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x3f
- .byte 0x00
- .byte 0x00
-
-gItemEffect_Revive: @ 81FCC5B
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x44
- .byte 0x00
- .byte 0xfe
-
-gItemEffect_MaxRevive: @ 81FCC62
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x44
- .byte 0x00
- .byte 0xff
-
-gItemEffect_FreshWater: @ 81FCC69
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0x00
- .byte 50
-
-gItemEffect_SodaPop: @ 81FCC70
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0x00
- .byte 60
-
-gItemEffect_Lemonade: @ 81FCC77
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0x00
- .byte 80
-
-gItemEffect_MoomooMilk: @ 81FCC7E
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0x00
- .byte 100
-
-gItemEffect_EnergyPowder: @ 81FCC85
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0xe0
- .byte 50
- .byte 0xfb
- .byte 0xfb
- .byte 0xf6
-
-gItemEffect_EnergyRoot: @ 81FCC8F
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0xe0
- .byte 200
- .byte 0xf6
- .byte 0xf6
- .byte 0xf1
-
-gItemEffect_HealPowder: @ 81FCC99
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x3f
- .byte 0x00
- .byte 0xe0
- .byte 0xfb
- .byte 0xfb
- .byte 0xf6
-
-gItemEffect_RevivalHerb: @ 81FCCA2
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x44
- .byte 0xe0
- .byte 0xfe
- .byte 0xf1
- .byte 0xf1
- .byte 0xec
-
-gItemEffect_Ether: @ 81FCCAC
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x18
- .byte 0x00
- .byte 0x0a
-
-gItemEffect_MaxEther: @ 81FCCB3
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x18
- .byte 0x00
- .byte 0x7f
-
-gItemEffect_Elixir: @ 81FCCBA
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x08
- .byte 0x00
- .byte 0x0a
-
-gItemEffect_MaxElixir: @ 81FCCC1
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x08
- .byte 0x00
- .byte 0x7f
-
-gItemEffect_LavaCookie: @ 81FCCC8
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x3f
- .byte 0x00
- .byte 0x00
-
-gItemEffect_BlueFlute: @ 81FCCCE
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x20
- .byte 0x00
- .byte 0x00
-
-gItemEffect_YellowFlute: @ 81FCCD4
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x01
- .byte 0x00
- .byte 0x00
-
-gItemEffect_RedFlute: @ 81FCCDA
- .byte 0x80
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
-
-gItemEffect_BerryJuice: @ 81FCCE0
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0x00
- .byte 20
-
-gItemEffect_SacredAsh: @ 81FCCE7
- .byte 0x40
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x44
- .byte 0x00
- .byte 0xff
-
-gItemEffect_HPUp: @ 81FCCEE
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x01
- .byte 0xe0
- .byte 0x0a
- .byte 0x05
- .byte 0x03
- .byte 0x02
-
-gItemEffect_Protein: @ 81FCCF8
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x02
- .byte 0xe0
- .byte 0x0a
- .byte 0x05
- .byte 0x03
- .byte 0x02
-
-gItemEffect_Iron: @ 81FCD02
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0xe1
- .byte 0x0a
- .byte 0x05
- .byte 0x03
- .byte 0x02
-
-gItemEffect_Carbos: @ 81FCD0C
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0xe2
- .byte 0x0a
- .byte 0x05
- .byte 0x03
- .byte 0x02
-
-gItemEffect_Calcium: @ 81FCD16
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0xe8
- .byte 0x0a
- .byte 0x05
- .byte 0x03
- .byte 0x02
-
-gItemEffect_RareCandy: @ 81FCD20
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x40
- .byte 0x44
- .byte 0xe0
- .byte 253
- .byte 0x05
- .byte 0x03
- .byte 0x02
-
-gItemEffect_PPUp: @ 81FCD2A
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x20
- .byte 0xe0
- .byte 0x05
- .byte 0x03
- .byte 0x02
-
-gItemEffect_Zinc: @ 81FCD33
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0xe4
- .byte 0x0a
- .byte 0x05
- .byte 0x03
- .byte 0x02
-
-gItemEffect_PPMax: @ 81FCD3D
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0xf0
- .byte 0x05
- .byte 0x03
- .byte 0x02
-
-gItemEffect_GuardSpec: @ 81FCD46
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x80
- .byte 0x00
- .byte 0x60
- .byte 0x01
- .byte 0x01
-
-gItemEffect_DireHit: @ 81FCD4E
- .byte 0x20
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x60
- .byte 0x01
- .byte 0x01
-
-gItemEffect_XAttack: @ 81FCD56
- .byte 0x01
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x60
- .byte 0x01
- .byte 0x01
-
-gItemEffect_XDefend: @ 81FCD5E
- .byte 0x00
- .byte 0x10
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x60
- .byte 0x01
- .byte 0x01
-
-gItemEffect_XSpeed: @ 81FCD66
- .byte 0x00
- .byte 0x01
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x60
- .byte 0x01
- .byte 0x01
-
-gItemEffect_XAccuracy: @ 81FCD6E
- .byte 0x00
- .byte 0x00
- .byte 0x10
- .byte 0x00
- .byte 0x00
- .byte 0x60
- .byte 0x01
- .byte 0x01
-
-gItemEffect_XSpecial: @ 81FCD76
- .byte 0x00
- .byte 0x00
- .byte 0x01
- .byte 0x00
- .byte 0x00
- .byte 0x60
- .byte 0x01
- .byte 0x01
-
-gItemEffect_SunStone: @ 81FCD7E
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x80
- .byte 0x00
-
-gItemEffect_MoonStone: @ 81FCD84
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x80
- .byte 0x00
-
-gItemEffect_FireStone: @ 81FCD8A
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x80
- .byte 0x00
-
-gItemEffect_ThunderStone: @ 81FCD90
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x80
- .byte 0x00
-
-gItemEffect_WaterStone: @ 81FCD96
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x80
- .byte 0x00
-
-gItemEffect_LeafStone: @ 81FCD9C
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x80
- .byte 0x00
-
-gItemEffect_CheriBerry: @ 81FCDA2
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x02
- .byte 0x00
- .byte 0x00
-
-gItemEffect_ChestoBerry: @ 81FCDA8
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x20
- .byte 0x00
- .byte 0x00
-
-gItemEffect_PechaBerry: @ 81FCDAE
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x10
- .byte 0x00
- .byte 0x00
-
-gItemEffect_RawstBerry: @ 81FCDB4
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x08
- .byte 0x00
- .byte 0x00
-
-gItemEffect_AspearBerry: @ 81FCDBA
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0x00
- .byte 0x00
-
-gItemEffect_LeppaBerry: @ 81FCDC0
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x18
- .byte 0x00
- .byte 0x0a
-
-gItemEffect_OranBerry: @ 81FCDC7
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0x00
- .byte 10
-
-gItemEffect_PersimBerry: @ 81FCDCE
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x01
- .byte 0x00
- .byte 0x00
-
-gItemEffect_LumBerry: @ 81FCDD4
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x3f
- .byte 0x00
- .byte 0x00
-
-gItemEffect_SitrusBerry: @ 81FCDDA
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x00
- .byte 0x04
- .byte 0x00
- .byte 30
-
- .align 2
-gItemEffectTable:: @ 81FCDE4
- .4byte gItemEffect_Potion
- .4byte gItemEffect_Antidote
- .4byte gItemEffect_BurnHeal
- .4byte gItemEffect_IceHeal
- .4byte gItemEffect_Awakening
- .4byte gItemEffect_ParalyzeHeal
- .4byte gItemEffect_FullRestore
- .4byte gItemEffect_MaxPotion
- .4byte gItemEffect_HyperPotion
- .4byte gItemEffect_SuperPotion
- .4byte gItemEffect_FullHeal
- .4byte gItemEffect_Revive
- .4byte gItemEffect_MaxRevive
- .4byte gItemEffect_FreshWater
- .4byte gItemEffect_SodaPop
- .4byte gItemEffect_Lemonade
- .4byte gItemEffect_MoomooMilk
- .4byte gItemEffect_EnergyPowder
- .4byte gItemEffect_EnergyRoot
- .4byte gItemEffect_HealPowder
- .4byte gItemEffect_RevivalHerb
- .4byte gItemEffect_Ether
- .4byte gItemEffect_MaxEther
- .4byte gItemEffect_Elixir
- .4byte gItemEffect_MaxElixir
- .4byte gItemEffect_LavaCookie
- .4byte gItemEffect_BlueFlute
- .4byte gItemEffect_YellowFlute
- .4byte gItemEffect_RedFlute
- .4byte NULL
- .4byte NULL
- .4byte gItemEffect_BerryJuice
- .4byte gItemEffect_SacredAsh
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte gItemEffect_HPUp
- .4byte gItemEffect_Protein
- .4byte gItemEffect_Iron
- .4byte gItemEffect_Carbos
- .4byte gItemEffect_Calcium
- .4byte gItemEffect_RareCandy
- .4byte gItemEffect_PPUp
- .4byte gItemEffect_Zinc
- .4byte gItemEffect_PPMax
- .4byte NULL
- .4byte gItemEffect_GuardSpec
- .4byte gItemEffect_DireHit
- .4byte gItemEffect_XAttack
- .4byte gItemEffect_XDefend
- .4byte gItemEffect_XSpeed
- .4byte gItemEffect_XAccuracy
- .4byte gItemEffect_XSpecial
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte gItemEffect_SunStone
- .4byte gItemEffect_MoonStone
- .4byte gItemEffect_FireStone
- .4byte gItemEffect_ThunderStone
- .4byte gItemEffect_WaterStone
- .4byte gItemEffect_LeafStone
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte gItemEffect_CheriBerry
- .4byte gItemEffect_ChestoBerry
- .4byte gItemEffect_PechaBerry
- .4byte gItemEffect_RawstBerry
- .4byte gItemEffect_AspearBerry
- .4byte gItemEffect_LeppaBerry
- .4byte gItemEffect_OranBerry
- .4byte gItemEffect_PersimBerry
- .4byte gItemEffect_LumBerry
- .4byte gItemEffect_SitrusBerry
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte NULL
diff --git a/data/level_up_learnset_pointers.inc b/data/level_up_learnset_pointers.inc
deleted file mode 100644
index 31055be5c..000000000
--- a/data/level_up_learnset_pointers.inc
+++ /dev/null
@@ -1,414 +0,0 @@
- .align 2
-gLevelUpLearnsets:: @ 8207BC8
- .4byte gBulbasaurLevelUpLearnset
- .4byte gBulbasaurLevelUpLearnset
- .4byte gIvysaurLevelUpLearnset
- .4byte gVenusaurLevelUpLearnset
- .4byte gCharmanderLevelUpLearnset
- .4byte gCharmeleonLevelUpLearnset
- .4byte gCharizardLevelUpLearnset
- .4byte gSquirtleLevelUpLearnset
- .4byte gWartortleLevelUpLearnset
- .4byte gBlastoiseLevelUpLearnset
- .4byte gCaterpieLevelUpLearnset
- .4byte gMetapodLevelUpLearnset
- .4byte gButterfreeLevelUpLearnset
- .4byte gWeedleLevelUpLearnset
- .4byte gKakunaLevelUpLearnset
- .4byte gBeedrillLevelUpLearnset
- .4byte gPidgeyLevelUpLearnset
- .4byte gPidgeottoLevelUpLearnset
- .4byte gPidgeotLevelUpLearnset
- .4byte gRattataLevelUpLearnset
- .4byte gRaticateLevelUpLearnset
- .4byte gSpearowLevelUpLearnset
- .4byte gFearowLevelUpLearnset
- .4byte gEkansLevelUpLearnset
- .4byte gArbokLevelUpLearnset
- .4byte gPikachuLevelUpLearnset
- .4byte gRaichuLevelUpLearnset
- .4byte gSandshrewLevelUpLearnset
- .4byte gSandslashLevelUpLearnset
- .4byte gNidoranFLevelUpLearnset
- .4byte gNidorinaLevelUpLearnset
- .4byte gNidoqueenLevelUpLearnset
- .4byte gNidoranMLevelUpLearnset
- .4byte gNidorinoLevelUpLearnset
- .4byte gNidokingLevelUpLearnset
- .4byte gClefairyLevelUpLearnset
- .4byte gClefableLevelUpLearnset
- .4byte gVulpixLevelUpLearnset
- .4byte gNinetalesLevelUpLearnset
- .4byte gJigglypuffLevelUpLearnset
- .4byte gWigglytuffLevelUpLearnset
- .4byte gZubatLevelUpLearnset
- .4byte gGolbatLevelUpLearnset
- .4byte gOddishLevelUpLearnset
- .4byte gGloomLevelUpLearnset
- .4byte gVileplumeLevelUpLearnset
- .4byte gParasLevelUpLearnset
- .4byte gParasectLevelUpLearnset
- .4byte gVenonatLevelUpLearnset
- .4byte gVenomothLevelUpLearnset
- .4byte gDiglettLevelUpLearnset
- .4byte gDugtrioLevelUpLearnset
- .4byte gMeowthLevelUpLearnset
- .4byte gPersianLevelUpLearnset
- .4byte gPsyduckLevelUpLearnset
- .4byte gGolduckLevelUpLearnset
- .4byte gMankeyLevelUpLearnset
- .4byte gPrimeapeLevelUpLearnset
- .4byte gGrowlitheLevelUpLearnset
- .4byte gArcanineLevelUpLearnset
- .4byte gPoliwagLevelUpLearnset
- .4byte gPoliwhirlLevelUpLearnset
- .4byte gPoliwrathLevelUpLearnset
- .4byte gAbraLevelUpLearnset
- .4byte gKadabraLevelUpLearnset
- .4byte gAlakazamLevelUpLearnset
- .4byte gMachopLevelUpLearnset
- .4byte gMachokeLevelUpLearnset
- .4byte gMachampLevelUpLearnset
- .4byte gBellsproutLevelUpLearnset
- .4byte gWeepinbellLevelUpLearnset
- .4byte gVictreebelLevelUpLearnset
- .4byte gTentacoolLevelUpLearnset
- .4byte gTentacruelLevelUpLearnset
- .4byte gGeodudeLevelUpLearnset
- .4byte gGravelerLevelUpLearnset
- .4byte gGolemLevelUpLearnset
- .4byte gPonytaLevelUpLearnset
- .4byte gRapidashLevelUpLearnset
- .4byte gSlowpokeLevelUpLearnset
- .4byte gSlowbroLevelUpLearnset
- .4byte gMagnemiteLevelUpLearnset
- .4byte gMagnetonLevelUpLearnset
- .4byte gFarfetchdLevelUpLearnset
- .4byte gDoduoLevelUpLearnset
- .4byte gDodrioLevelUpLearnset
- .4byte gSeelLevelUpLearnset
- .4byte gDewgongLevelUpLearnset
- .4byte gGrimerLevelUpLearnset
- .4byte gMukLevelUpLearnset
- .4byte gShellderLevelUpLearnset
- .4byte gCloysterLevelUpLearnset
- .4byte gGastlyLevelUpLearnset
- .4byte gHaunterLevelUpLearnset
- .4byte gGengarLevelUpLearnset
- .4byte gOnixLevelUpLearnset
- .4byte gDrowzeeLevelUpLearnset
- .4byte gHypnoLevelUpLearnset
- .4byte gKrabbyLevelUpLearnset
- .4byte gKinglerLevelUpLearnset
- .4byte gVoltorbLevelUpLearnset
- .4byte gElectrodeLevelUpLearnset
- .4byte gExeggcuteLevelUpLearnset
- .4byte gExeggutorLevelUpLearnset
- .4byte gCuboneLevelUpLearnset
- .4byte gMarowakLevelUpLearnset
- .4byte gHitmonleeLevelUpLearnset
- .4byte gHitmonchanLevelUpLearnset
- .4byte gLickitungLevelUpLearnset
- .4byte gKoffingLevelUpLearnset
- .4byte gWeezingLevelUpLearnset
- .4byte gRhyhornLevelUpLearnset
- .4byte gRhydonLevelUpLearnset
- .4byte gChanseyLevelUpLearnset
- .4byte gTangelaLevelUpLearnset
- .4byte gKangaskhanLevelUpLearnset
- .4byte gHorseaLevelUpLearnset
- .4byte gSeadraLevelUpLearnset
- .4byte gGoldeenLevelUpLearnset
- .4byte gSeakingLevelUpLearnset
- .4byte gStaryuLevelUpLearnset
- .4byte gStarmieLevelUpLearnset
- .4byte gMrmimeLevelUpLearnset
- .4byte gScytherLevelUpLearnset
- .4byte gJynxLevelUpLearnset
- .4byte gElectabuzzLevelUpLearnset
- .4byte gMagmarLevelUpLearnset
- .4byte gPinsirLevelUpLearnset
- .4byte gTaurosLevelUpLearnset
- .4byte gMagikarpLevelUpLearnset
- .4byte gGyaradosLevelUpLearnset
- .4byte gLaprasLevelUpLearnset
- .4byte gDittoLevelUpLearnset
- .4byte gEeveeLevelUpLearnset
- .4byte gVaporeonLevelUpLearnset
- .4byte gJolteonLevelUpLearnset
- .4byte gFlareonLevelUpLearnset
- .4byte gPorygonLevelUpLearnset
- .4byte gOmanyteLevelUpLearnset
- .4byte gOmastarLevelUpLearnset
- .4byte gKabutoLevelUpLearnset
- .4byte gKabutopsLevelUpLearnset
- .4byte gAerodactylLevelUpLearnset
- .4byte gSnorlaxLevelUpLearnset
- .4byte gArticunoLevelUpLearnset
- .4byte gZapdosLevelUpLearnset
- .4byte gMoltresLevelUpLearnset
- .4byte gDratiniLevelUpLearnset
- .4byte gDragonairLevelUpLearnset
- .4byte gDragoniteLevelUpLearnset
- .4byte gMewtwoLevelUpLearnset
- .4byte gMewLevelUpLearnset
- .4byte gChikoritaLevelUpLearnset
- .4byte gBayleefLevelUpLearnset
- .4byte gMeganiumLevelUpLearnset
- .4byte gCyndaquilLevelUpLearnset
- .4byte gQuilavaLevelUpLearnset
- .4byte gTyphlosionLevelUpLearnset
- .4byte gTotodileLevelUpLearnset
- .4byte gCroconawLevelUpLearnset
- .4byte gFeraligatrLevelUpLearnset
- .4byte gSentretLevelUpLearnset
- .4byte gFurretLevelUpLearnset
- .4byte gHoothootLevelUpLearnset
- .4byte gNoctowlLevelUpLearnset
- .4byte gLedybaLevelUpLearnset
- .4byte gLedianLevelUpLearnset
- .4byte gSpinarakLevelUpLearnset
- .4byte gAriadosLevelUpLearnset
- .4byte gCrobatLevelUpLearnset
- .4byte gChinchouLevelUpLearnset
- .4byte gLanturnLevelUpLearnset
- .4byte gPichuLevelUpLearnset
- .4byte gCleffaLevelUpLearnset
- .4byte gIgglybuffLevelUpLearnset
- .4byte gTogepiLevelUpLearnset
- .4byte gTogeticLevelUpLearnset
- .4byte gNatuLevelUpLearnset
- .4byte gXatuLevelUpLearnset
- .4byte gMareepLevelUpLearnset
- .4byte gFlaaffyLevelUpLearnset
- .4byte gAmpharosLevelUpLearnset
- .4byte gBellossomLevelUpLearnset
- .4byte gMarillLevelUpLearnset
- .4byte gAzumarillLevelUpLearnset
- .4byte gSudowoodoLevelUpLearnset
- .4byte gPolitoedLevelUpLearnset
- .4byte gHoppipLevelUpLearnset
- .4byte gSkiploomLevelUpLearnset
- .4byte gJumpluffLevelUpLearnset
- .4byte gAipomLevelUpLearnset
- .4byte gSunkernLevelUpLearnset
- .4byte gSunfloraLevelUpLearnset
- .4byte gYanmaLevelUpLearnset
- .4byte gWooperLevelUpLearnset
- .4byte gQuagsireLevelUpLearnset
- .4byte gEspeonLevelUpLearnset
- .4byte gUmbreonLevelUpLearnset
- .4byte gMurkrowLevelUpLearnset
- .4byte gSlowkingLevelUpLearnset
- .4byte gMisdreavusLevelUpLearnset
- .4byte gUnownLevelUpLearnset
- .4byte gWobbuffetLevelUpLearnset
- .4byte gGirafarigLevelUpLearnset
- .4byte gPinecoLevelUpLearnset
- .4byte gForretressLevelUpLearnset
- .4byte gDunsparceLevelUpLearnset
- .4byte gGligarLevelUpLearnset
- .4byte gSteelixLevelUpLearnset
- .4byte gSnubbullLevelUpLearnset
- .4byte gGranbullLevelUpLearnset
- .4byte gQwilfishLevelUpLearnset
- .4byte gScizorLevelUpLearnset
- .4byte gShuckleLevelUpLearnset
- .4byte gHeracrossLevelUpLearnset
- .4byte gSneaselLevelUpLearnset
- .4byte gTeddiursaLevelUpLearnset
- .4byte gUrsaringLevelUpLearnset
- .4byte gSlugmaLevelUpLearnset
- .4byte gMagcargoLevelUpLearnset
- .4byte gSwinubLevelUpLearnset
- .4byte gPiloswineLevelUpLearnset
- .4byte gCorsolaLevelUpLearnset
- .4byte gRemoraidLevelUpLearnset
- .4byte gOctilleryLevelUpLearnset
- .4byte gDelibirdLevelUpLearnset
- .4byte gMantineLevelUpLearnset
- .4byte gSkarmoryLevelUpLearnset
- .4byte gHoundourLevelUpLearnset
- .4byte gHoundoomLevelUpLearnset
- .4byte gKingdraLevelUpLearnset
- .4byte gPhanpyLevelUpLearnset
- .4byte gDonphanLevelUpLearnset
- .4byte gPorygon2LevelUpLearnset
- .4byte gStantlerLevelUpLearnset
- .4byte gSmeargleLevelUpLearnset
- .4byte gTyrogueLevelUpLearnset
- .4byte gHitmontopLevelUpLearnset
- .4byte gSmoochumLevelUpLearnset
- .4byte gElekidLevelUpLearnset
- .4byte gMagbyLevelUpLearnset
- .4byte gMiltankLevelUpLearnset
- .4byte gBlisseyLevelUpLearnset
- .4byte gRaikouLevelUpLearnset
- .4byte gEnteiLevelUpLearnset
- .4byte gSuicuneLevelUpLearnset
- .4byte gLarvitarLevelUpLearnset
- .4byte gPupitarLevelUpLearnset
- .4byte gTyranitarLevelUpLearnset
- .4byte gLugiaLevelUpLearnset
- .4byte gHoOhLevelUpLearnset
- .4byte gCelebiLevelUpLearnset
- .4byte gSpecies252LevelUpLearnset
- .4byte gSpecies253LevelUpLearnset
- .4byte gSpecies254LevelUpLearnset
- .4byte gSpecies255LevelUpLearnset
- .4byte gSpecies256LevelUpLearnset
- .4byte gSpecies257LevelUpLearnset
- .4byte gSpecies258LevelUpLearnset
- .4byte gSpecies259LevelUpLearnset
- .4byte gSpecies260LevelUpLearnset
- .4byte gSpecies261LevelUpLearnset
- .4byte gSpecies262LevelUpLearnset
- .4byte gSpecies263LevelUpLearnset
- .4byte gSpecies264LevelUpLearnset
- .4byte gSpecies265LevelUpLearnset
- .4byte gSpecies266LevelUpLearnset
- .4byte gSpecies267LevelUpLearnset
- .4byte gSpecies268LevelUpLearnset
- .4byte gSpecies269LevelUpLearnset
- .4byte gSpecies270LevelUpLearnset
- .4byte gSpecies271LevelUpLearnset
- .4byte gSpecies272LevelUpLearnset
- .4byte gSpecies273LevelUpLearnset
- .4byte gSpecies274LevelUpLearnset
- .4byte gSpecies275LevelUpLearnset
- .4byte gSpecies276LevelUpLearnset
- .4byte gTreeckoLevelUpLearnset
- .4byte gGrovyleLevelUpLearnset
- .4byte gSceptileLevelUpLearnset
- .4byte gTorchicLevelUpLearnset
- .4byte gCombuskenLevelUpLearnset
- .4byte gBlazikenLevelUpLearnset
- .4byte gMudkipLevelUpLearnset
- .4byte gMarshtompLevelUpLearnset
- .4byte gSwampertLevelUpLearnset
- .4byte gPoochyenaLevelUpLearnset
- .4byte gMightyenaLevelUpLearnset
- .4byte gZigzagoonLevelUpLearnset
- .4byte gLinooneLevelUpLearnset
- .4byte gWurmpleLevelUpLearnset
- .4byte gSilcoonLevelUpLearnset
- .4byte gBeautiflyLevelUpLearnset
- .4byte gCascoonLevelUpLearnset
- .4byte gDustoxLevelUpLearnset
- .4byte gLotadLevelUpLearnset
- .4byte gLombreLevelUpLearnset
- .4byte gLudicoloLevelUpLearnset
- .4byte gSeedotLevelUpLearnset
- .4byte gNuzleafLevelUpLearnset
- .4byte gShiftryLevelUpLearnset
- .4byte gNincadaLevelUpLearnset
- .4byte gNinjaskLevelUpLearnset
- .4byte gShedinjaLevelUpLearnset
- .4byte gTaillowLevelUpLearnset
- .4byte gSwellowLevelUpLearnset
- .4byte gShroomishLevelUpLearnset
- .4byte gBreloomLevelUpLearnset
- .4byte gSpindaLevelUpLearnset
- .4byte gWingullLevelUpLearnset
- .4byte gPelipperLevelUpLearnset
- .4byte gSurskitLevelUpLearnset
- .4byte gMasquerainLevelUpLearnset
- .4byte gWailmerLevelUpLearnset
- .4byte gWailordLevelUpLearnset
- .4byte gSkittyLevelUpLearnset
- .4byte gDelcattyLevelUpLearnset
- .4byte gKecleonLevelUpLearnset
- .4byte gBaltoyLevelUpLearnset
- .4byte gClaydolLevelUpLearnset
- .4byte gNosepassLevelUpLearnset
- .4byte gTorkoalLevelUpLearnset
- .4byte gSableyeLevelUpLearnset
- .4byte gBarboachLevelUpLearnset
- .4byte gWhiscashLevelUpLearnset
- .4byte gLuvdiscLevelUpLearnset
- .4byte gCorphishLevelUpLearnset
- .4byte gCrawdauntLevelUpLearnset
- .4byte gFeebasLevelUpLearnset
- .4byte gMiloticLevelUpLearnset
- .4byte gCarvanhaLevelUpLearnset
- .4byte gSharpedoLevelUpLearnset
- .4byte gTrapinchLevelUpLearnset
- .4byte gVibravaLevelUpLearnset
- .4byte gFlygonLevelUpLearnset
- .4byte gMakuhitaLevelUpLearnset
- .4byte gHariyamaLevelUpLearnset
- .4byte gElectrikeLevelUpLearnset
- .4byte gManectricLevelUpLearnset
- .4byte gNumelLevelUpLearnset
- .4byte gCameruptLevelUpLearnset
- .4byte gSphealLevelUpLearnset
- .4byte gSealeoLevelUpLearnset
- .4byte gWalreinLevelUpLearnset
- .4byte gCacneaLevelUpLearnset
- .4byte gCacturneLevelUpLearnset
- .4byte gSnoruntLevelUpLearnset
- .4byte gGlalieLevelUpLearnset
- .4byte gLunatoneLevelUpLearnset
- .4byte gSolrockLevelUpLearnset
- .4byte gAzurillLevelUpLearnset
- .4byte gSpoinkLevelUpLearnset
- .4byte gGrumpigLevelUpLearnset
- .4byte gPlusleLevelUpLearnset
- .4byte gMinunLevelUpLearnset
- .4byte gMawileLevelUpLearnset
- .4byte gMedititeLevelUpLearnset
- .4byte gMedichamLevelUpLearnset
- .4byte gSwabluLevelUpLearnset
- .4byte gAltariaLevelUpLearnset
- .4byte gWynautLevelUpLearnset
- .4byte gDuskullLevelUpLearnset
- .4byte gDusclopsLevelUpLearnset
- .4byte gRoseliaLevelUpLearnset
- .4byte gSlakothLevelUpLearnset
- .4byte gVigorothLevelUpLearnset
- .4byte gSlakingLevelUpLearnset
- .4byte gGulpinLevelUpLearnset
- .4byte gSwalotLevelUpLearnset
- .4byte gTropiusLevelUpLearnset
- .4byte gWhismurLevelUpLearnset
- .4byte gLoudredLevelUpLearnset
- .4byte gExploudLevelUpLearnset
- .4byte gClamperlLevelUpLearnset
- .4byte gHuntailLevelUpLearnset
- .4byte gGorebyssLevelUpLearnset
- .4byte gAbsolLevelUpLearnset
- .4byte gShuppetLevelUpLearnset
- .4byte gBanetteLevelUpLearnset
- .4byte gSeviperLevelUpLearnset
- .4byte gZangooseLevelUpLearnset
- .4byte gRelicanthLevelUpLearnset
- .4byte gAronLevelUpLearnset
- .4byte gLaironLevelUpLearnset
- .4byte gAggronLevelUpLearnset
- .4byte gCastformLevelUpLearnset
- .4byte gVolbeatLevelUpLearnset
- .4byte gIllumiseLevelUpLearnset
- .4byte gLileepLevelUpLearnset
- .4byte gCradilyLevelUpLearnset
- .4byte gAnorithLevelUpLearnset
- .4byte gArmaldoLevelUpLearnset
- .4byte gRaltsLevelUpLearnset
- .4byte gKirliaLevelUpLearnset
- .4byte gGardevoirLevelUpLearnset
- .4byte gBagonLevelUpLearnset
- .4byte gShelgonLevelUpLearnset
- .4byte gSalamenceLevelUpLearnset
- .4byte gBeldumLevelUpLearnset
- .4byte gMetangLevelUpLearnset
- .4byte gMetagrossLevelUpLearnset
- .4byte gRegirockLevelUpLearnset
- .4byte gRegiceLevelUpLearnset
- .4byte gRegisteelLevelUpLearnset
- .4byte gKyogreLevelUpLearnset
- .4byte gGroudonLevelUpLearnset
- .4byte gRayquazaLevelUpLearnset
- .4byte gLatiasLevelUpLearnset
- .4byte gLatiosLevelUpLearnset
- .4byte gJirachiLevelUpLearnset
- .4byte gDeoxysLevelUpLearnset
- .4byte gChimechoLevelUpLearnset
diff --git a/data/level_up_learnsets.inc b/data/level_up_learnsets.inc
deleted file mode 100644
index b2a445dda..000000000
--- a/data/level_up_learnsets.inc
+++ /dev/null
@@ -1,5206 +0,0 @@
- .align 2
-
-gBulbasaurLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 4, MOVE_GROWL
- level_up_move 7, MOVE_LEECH_SEED
- level_up_move 10, MOVE_VINE_WHIP
- level_up_move 15, MOVE_POISON_POWDER
- level_up_move 15, MOVE_SLEEP_POWDER
- level_up_move 20, MOVE_RAZOR_LEAF
- level_up_move 25, MOVE_SWEET_SCENT
- level_up_move 32, MOVE_GROWTH
- level_up_move 39, MOVE_SYNTHESIS
- level_up_move 46, MOVE_SOLAR_BEAM
- .2byte -1
-
-gIvysaurLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_LEECH_SEED
- level_up_move 4, MOVE_GROWL
- level_up_move 7, MOVE_LEECH_SEED
- level_up_move 10, MOVE_VINE_WHIP
- level_up_move 15, MOVE_POISON_POWDER
- level_up_move 15, MOVE_SLEEP_POWDER
- level_up_move 22, MOVE_RAZOR_LEAF
- level_up_move 29, MOVE_SWEET_SCENT
- level_up_move 38, MOVE_GROWTH
- level_up_move 47, MOVE_SYNTHESIS
- level_up_move 56, MOVE_SOLAR_BEAM
- .2byte -1
-
-gVenusaurLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_LEECH_SEED
- level_up_move 1, MOVE_VINE_WHIP
- level_up_move 4, MOVE_GROWL
- level_up_move 7, MOVE_LEECH_SEED
- level_up_move 10, MOVE_VINE_WHIP
- level_up_move 15, MOVE_POISON_POWDER
- level_up_move 15, MOVE_SLEEP_POWDER
- level_up_move 22, MOVE_RAZOR_LEAF
- level_up_move 29, MOVE_SWEET_SCENT
- level_up_move 41, MOVE_GROWTH
- level_up_move 53, MOVE_SYNTHESIS
- level_up_move 65, MOVE_SOLAR_BEAM
- .2byte -1
-
-gCharmanderLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_GROWL
- level_up_move 7, MOVE_EMBER
- level_up_move 13, MOVE_SMOKESCREEN
- level_up_move 19, MOVE_RAGE
- level_up_move 25, MOVE_SCARY_FACE
- level_up_move 31, MOVE_FLAMETHROWER
- level_up_move 37, MOVE_SLASH
- level_up_move 43, MOVE_DRAGON_RAGE
- level_up_move 49, MOVE_FIRE_SPIN
- .2byte -1
-
-gCharmeleonLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_EMBER
- level_up_move 7, MOVE_EMBER
- level_up_move 13, MOVE_SMOKESCREEN
- level_up_move 20, MOVE_RAGE
- level_up_move 27, MOVE_SCARY_FACE
- level_up_move 34, MOVE_FLAMETHROWER
- level_up_move 41, MOVE_SLASH
- level_up_move 48, MOVE_DRAGON_RAGE
- level_up_move 55, MOVE_FIRE_SPIN
- .2byte -1
-
-gCharizardLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_EMBER
- level_up_move 1, MOVE_SMOKESCREEN
- level_up_move 7, MOVE_EMBER
- level_up_move 13, MOVE_SMOKESCREEN
- level_up_move 20, MOVE_RAGE
- level_up_move 27, MOVE_SCARY_FACE
- level_up_move 34, MOVE_FLAMETHROWER
- level_up_move 36, MOVE_WING_ATTACK
- level_up_move 44, MOVE_SLASH
- level_up_move 54, MOVE_DRAGON_RAGE
- level_up_move 64, MOVE_FIRE_SPIN
- .2byte -1
-
-gSquirtleLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 4, MOVE_TAIL_WHIP
- level_up_move 7, MOVE_BUBBLE
- level_up_move 10, MOVE_WITHDRAW
- level_up_move 13, MOVE_WATER_GUN
- level_up_move 18, MOVE_BITE
- level_up_move 23, MOVE_RAPID_SPIN
- level_up_move 28, MOVE_PROTECT
- level_up_move 33, MOVE_RAIN_DANCE
- level_up_move 40, MOVE_SKULL_BASH
- level_up_move 47, MOVE_HYDRO_PUMP
- .2byte -1
-
-gWartortleLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_BUBBLE
- level_up_move 4, MOVE_TAIL_WHIP
- level_up_move 7, MOVE_BUBBLE
- level_up_move 10, MOVE_WITHDRAW
- level_up_move 13, MOVE_WATER_GUN
- level_up_move 19, MOVE_BITE
- level_up_move 25, MOVE_RAPID_SPIN
- level_up_move 31, MOVE_PROTECT
- level_up_move 37, MOVE_RAIN_DANCE
- level_up_move 45, MOVE_SKULL_BASH
- level_up_move 53, MOVE_HYDRO_PUMP
- .2byte -1
-
-gBlastoiseLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_BUBBLE
- level_up_move 1, MOVE_WITHDRAW
- level_up_move 4, MOVE_TAIL_WHIP
- level_up_move 7, MOVE_BUBBLE
- level_up_move 10, MOVE_WITHDRAW
- level_up_move 13, MOVE_WATER_GUN
- level_up_move 19, MOVE_BITE
- level_up_move 25, MOVE_RAPID_SPIN
- level_up_move 31, MOVE_PROTECT
- level_up_move 42, MOVE_RAIN_DANCE
- level_up_move 55, MOVE_SKULL_BASH
- level_up_move 68, MOVE_HYDRO_PUMP
- .2byte -1
-
-gCaterpieLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_STRING_SHOT
- .2byte -1
-
-gMetapodLevelUpLearnset:
- level_up_move 1, MOVE_HARDEN
- level_up_move 7, MOVE_HARDEN
- .2byte -1
-
-gButterfreeLevelUpLearnset:
- level_up_move 1, MOVE_CONFUSION
- level_up_move 10, MOVE_CONFUSION
- level_up_move 13, MOVE_POISON_POWDER
- level_up_move 14, MOVE_STUN_SPORE
- level_up_move 15, MOVE_SLEEP_POWDER
- level_up_move 18, MOVE_SUPERSONIC
- level_up_move 23, MOVE_WHIRLWIND
- level_up_move 28, MOVE_GUST
- level_up_move 34, MOVE_PSYBEAM
- level_up_move 40, MOVE_SAFEGUARD
- level_up_move 47, MOVE_SILVER_WIND
- .2byte -1
-
-gWeedleLevelUpLearnset:
- level_up_move 1, MOVE_POISON_STING
- level_up_move 1, MOVE_STRING_SHOT
- .2byte -1
-
-gKakunaLevelUpLearnset:
- level_up_move 1, MOVE_HARDEN
- level_up_move 7, MOVE_HARDEN
- .2byte -1
-
-gBeedrillLevelUpLearnset:
- level_up_move 1, MOVE_FURY_ATTACK
- level_up_move 10, MOVE_FURY_ATTACK
- level_up_move 15, MOVE_FOCUS_ENERGY
- level_up_move 20, MOVE_TWINEEDLE
- level_up_move 25, MOVE_RAGE
- level_up_move 30, MOVE_PURSUIT
- level_up_move 35, MOVE_PIN_MISSILE
- level_up_move 40, MOVE_AGILITY
- level_up_move 45, MOVE_ENDEAVOR
- .2byte -1
-
-gPidgeyLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 5, MOVE_SAND_ATTACK
- level_up_move 9, MOVE_GUST
- level_up_move 13, MOVE_QUICK_ATTACK
- level_up_move 19, MOVE_WHIRLWIND
- level_up_move 25, MOVE_WING_ATTACK
- level_up_move 31, MOVE_FEATHER_DANCE
- level_up_move 39, MOVE_AGILITY
- level_up_move 47, MOVE_MIRROR_MOVE
- .2byte -1
-
-gPidgeottoLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_SAND_ATTACK
- level_up_move 1, MOVE_GUST
- level_up_move 5, MOVE_SAND_ATTACK
- level_up_move 9, MOVE_GUST
- level_up_move 13, MOVE_QUICK_ATTACK
- level_up_move 20, MOVE_WHIRLWIND
- level_up_move 27, MOVE_WING_ATTACK
- level_up_move 34, MOVE_FEATHER_DANCE
- level_up_move 43, MOVE_AGILITY
- level_up_move 52, MOVE_MIRROR_MOVE
- .2byte -1
-
-gPidgeotLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_SAND_ATTACK
- level_up_move 1, MOVE_GUST
- level_up_move 1, MOVE_QUICK_ATTACK
- level_up_move 5, MOVE_SAND_ATTACK
- level_up_move 9, MOVE_GUST
- level_up_move 13, MOVE_QUICK_ATTACK
- level_up_move 20, MOVE_WHIRLWIND
- level_up_move 27, MOVE_WING_ATTACK
- level_up_move 34, MOVE_FEATHER_DANCE
- level_up_move 48, MOVE_AGILITY
- level_up_move 62, MOVE_MIRROR_MOVE
- .2byte -1
-
-gRattataLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 7, MOVE_QUICK_ATTACK
- level_up_move 13, MOVE_HYPER_FANG
- level_up_move 20, MOVE_FOCUS_ENERGY
- level_up_move 27, MOVE_PURSUIT
- level_up_move 34, MOVE_SUPER_FANG
- level_up_move 41, MOVE_ENDEAVOR
- .2byte -1
-
-gRaticateLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_QUICK_ATTACK
- level_up_move 7, MOVE_QUICK_ATTACK
- level_up_move 13, MOVE_HYPER_FANG
- level_up_move 20, MOVE_SCARY_FACE
- level_up_move 30, MOVE_PURSUIT
- level_up_move 40, MOVE_SUPER_FANG
- level_up_move 50, MOVE_ENDEAVOR
- .2byte -1
-
-gSpearowLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_GROWL
- level_up_move 7, MOVE_LEER
- level_up_move 13, MOVE_FURY_ATTACK
- level_up_move 19, MOVE_PURSUIT
- level_up_move 25, MOVE_AERIAL_ACE
- level_up_move 31, MOVE_MIRROR_MOVE
- level_up_move 37, MOVE_DRILL_PECK
- level_up_move 43, MOVE_AGILITY
- .2byte -1
-
-gFearowLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_FURY_ATTACK
- level_up_move 7, MOVE_LEER
- level_up_move 13, MOVE_FURY_ATTACK
- level_up_move 26, MOVE_PURSUIT
- level_up_move 32, MOVE_MIRROR_MOVE
- level_up_move 40, MOVE_DRILL_PECK
- level_up_move 47, MOVE_AGILITY
- .2byte -1
-
-gEkansLevelUpLearnset:
- level_up_move 1, MOVE_WRAP
- level_up_move 1, MOVE_LEER
- level_up_move 8, MOVE_POISON_STING
- level_up_move 13, MOVE_BITE
- level_up_move 20, MOVE_GLARE
- level_up_move 25, MOVE_SCREECH
- level_up_move 32, MOVE_ACID
- level_up_move 37, MOVE_STOCKPILE
- level_up_move 37, MOVE_SWALLOW
- level_up_move 37, MOVE_SPIT_UP
- level_up_move 44, MOVE_HAZE
- .2byte -1
-
-gArbokLevelUpLearnset:
- level_up_move 1, MOVE_WRAP
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_POISON_STING
- level_up_move 1, MOVE_BITE
- level_up_move 8, MOVE_POISON_STING
- level_up_move 13, MOVE_BITE
- level_up_move 20, MOVE_GLARE
- level_up_move 28, MOVE_SCREECH
- level_up_move 38, MOVE_ACID
- level_up_move 46, MOVE_STOCKPILE
- level_up_move 46, MOVE_SWALLOW
- level_up_move 46, MOVE_SPIT_UP
- level_up_move 56, MOVE_HAZE
- .2byte -1
-
-gPikachuLevelUpLearnset:
- level_up_move 1, MOVE_THUNDER_SHOCK
- level_up_move 1, MOVE_GROWL
- level_up_move 6, MOVE_TAIL_WHIP
- level_up_move 8, MOVE_THUNDER_WAVE
- level_up_move 11, MOVE_QUICK_ATTACK
- level_up_move 15, MOVE_DOUBLE_TEAM
- level_up_move 20, MOVE_SLAM
- level_up_move 26, MOVE_THUNDERBOLT
- level_up_move 33, MOVE_AGILITY
- level_up_move 41, MOVE_THUNDER
- level_up_move 50, MOVE_LIGHT_SCREEN
- .2byte -1
-
-gRaichuLevelUpLearnset:
- level_up_move 1, MOVE_THUNDER_SHOCK
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_QUICK_ATTACK
- level_up_move 1, MOVE_THUNDERBOLT
- .2byte -1
-
-gSandshrewLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 6, MOVE_DEFENSE_CURL
- level_up_move 11, MOVE_SAND_ATTACK
- level_up_move 17, MOVE_POISON_STING
- level_up_move 23, MOVE_SLASH
- level_up_move 30, MOVE_SWIFT
- level_up_move 37, MOVE_FURY_SWIPES
- level_up_move 45, MOVE_SAND_TOMB
- level_up_move 53, MOVE_SANDSTORM
- .2byte -1
-
-gSandslashLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_DEFENSE_CURL
- level_up_move 1, MOVE_SAND_ATTACK
- level_up_move 6, MOVE_DEFENSE_CURL
- level_up_move 11, MOVE_SAND_ATTACK
- level_up_move 17, MOVE_POISON_STING
- level_up_move 24, MOVE_SLASH
- level_up_move 33, MOVE_SWIFT
- level_up_move 42, MOVE_FURY_SWIPES
- level_up_move 52, MOVE_SAND_TOMB
- level_up_move 62, MOVE_SANDSTORM
- .2byte -1
-
-gNidoranFLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_SCRATCH
- level_up_move 8, MOVE_TAIL_WHIP
- level_up_move 12, MOVE_DOUBLE_KICK
- level_up_move 17, MOVE_POISON_STING
- level_up_move 20, MOVE_BITE
- level_up_move 23, MOVE_HELPING_HAND
- level_up_move 30, MOVE_FURY_SWIPES
- level_up_move 38, MOVE_FLATTER
- level_up_move 47, MOVE_CRUNCH
- .2byte -1
-
-gNidorinaLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_SCRATCH
- level_up_move 8, MOVE_TAIL_WHIP
- level_up_move 12, MOVE_DOUBLE_KICK
- level_up_move 18, MOVE_POISON_STING
- level_up_move 22, MOVE_BITE
- level_up_move 26, MOVE_HELPING_HAND
- level_up_move 34, MOVE_FURY_SWIPES
- level_up_move 43, MOVE_FLATTER
- level_up_move 53, MOVE_CRUNCH
- .2byte -1
-
-gNidoqueenLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_DOUBLE_KICK
- level_up_move 1, MOVE_POISON_STING
- level_up_move 23, MOVE_BODY_SLAM
- .2byte -1
-
-gNidoranMLevelUpLearnset:
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_PECK
- level_up_move 8, MOVE_FOCUS_ENERGY
- level_up_move 12, MOVE_DOUBLE_KICK
- level_up_move 17, MOVE_POISON_STING
- level_up_move 20, MOVE_HORN_ATTACK
- level_up_move 23, MOVE_HELPING_HAND
- level_up_move 30, MOVE_FURY_ATTACK
- level_up_move 38, MOVE_FLATTER
- level_up_move 47, MOVE_HORN_DRILL
- .2byte -1
-
-gNidorinoLevelUpLearnset:
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_PECK
- level_up_move 8, MOVE_FOCUS_ENERGY
- level_up_move 12, MOVE_DOUBLE_KICK
- level_up_move 18, MOVE_POISON_STING
- level_up_move 22, MOVE_HORN_ATTACK
- level_up_move 26, MOVE_HELPING_HAND
- level_up_move 34, MOVE_FURY_ATTACK
- level_up_move 43, MOVE_FLATTER
- level_up_move 53, MOVE_HORN_DRILL
- .2byte -1
-
-gNidokingLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_FOCUS_ENERGY
- level_up_move 1, MOVE_DOUBLE_KICK
- level_up_move 1, MOVE_POISON_STING
- level_up_move 23, MOVE_THRASH
- .2byte -1
-
-gClefairyLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_GROWL
- level_up_move 5, MOVE_ENCORE
- level_up_move 9, MOVE_SING
- level_up_move 13, MOVE_DOUBLE_SLAP
- level_up_move 17, MOVE_FOLLOW_ME
- level_up_move 21, MOVE_MINIMIZE
- level_up_move 25, MOVE_DEFENSE_CURL
- level_up_move 29, MOVE_METRONOME
- level_up_move 33, MOVE_COSMIC_POWER
- level_up_move 37, MOVE_MOONLIGHT
- level_up_move 41, MOVE_LIGHT_SCREEN
- level_up_move 45, MOVE_METEOR_MASH
- .2byte -1
-
-gClefableLevelUpLearnset:
- level_up_move 1, MOVE_SING
- level_up_move 1, MOVE_DOUBLE_SLAP
- level_up_move 1, MOVE_MINIMIZE
- level_up_move 1, MOVE_METRONOME
- .2byte -1
-
-gVulpixLevelUpLearnset:
- level_up_move 1, MOVE_EMBER
- level_up_move 5, MOVE_TAIL_WHIP
- level_up_move 9, MOVE_ROAR
- level_up_move 13, MOVE_QUICK_ATTACK
- level_up_move 17, MOVE_WILL_O_WISP
- level_up_move 21, MOVE_CONFUSE_RAY
- level_up_move 25, MOVE_IMPRISON
- level_up_move 29, MOVE_FLAMETHROWER
- level_up_move 33, MOVE_SAFEGUARD
- level_up_move 37, MOVE_GRUDGE
- level_up_move 41, MOVE_FIRE_SPIN
- .2byte -1
-
-gNinetalesLevelUpLearnset:
- level_up_move 1, MOVE_EMBER
- level_up_move 1, MOVE_QUICK_ATTACK
- level_up_move 1, MOVE_CONFUSE_RAY
- level_up_move 1, MOVE_SAFEGUARD
- level_up_move 45, MOVE_FIRE_SPIN
- .2byte -1
-
-gJigglypuffLevelUpLearnset:
- level_up_move 1, MOVE_SING
- level_up_move 4, MOVE_DEFENSE_CURL
- level_up_move 9, MOVE_POUND
- level_up_move 14, MOVE_DISABLE
- level_up_move 19, MOVE_ROLLOUT
- level_up_move 24, MOVE_DOUBLE_SLAP
- level_up_move 29, MOVE_REST
- level_up_move 34, MOVE_BODY_SLAM
- level_up_move 39, MOVE_MIMIC
- level_up_move 44, MOVE_HYPER_VOICE
- level_up_move 49, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gWigglytuffLevelUpLearnset:
- level_up_move 1, MOVE_SING
- level_up_move 1, MOVE_DISABLE
- level_up_move 1, MOVE_DEFENSE_CURL
- level_up_move 1, MOVE_DOUBLE_SLAP
- .2byte -1
-
-gZubatLevelUpLearnset:
- level_up_move 1, MOVE_LEECH_LIFE
- level_up_move 6, MOVE_SUPERSONIC
- level_up_move 11, MOVE_ASTONISH
- level_up_move 16, MOVE_BITE
- level_up_move 21, MOVE_WING_ATTACK
- level_up_move 26, MOVE_CONFUSE_RAY
- level_up_move 31, MOVE_AIR_CUTTER
- level_up_move 36, MOVE_MEAN_LOOK
- level_up_move 41, MOVE_POISON_FANG
- level_up_move 46, MOVE_HAZE
- .2byte -1
-
-gGolbatLevelUpLearnset:
- level_up_move 1, MOVE_SCREECH
- level_up_move 1, MOVE_LEECH_LIFE
- level_up_move 1, MOVE_SUPERSONIC
- level_up_move 1, MOVE_ASTONISH
- level_up_move 6, MOVE_SUPERSONIC
- level_up_move 11, MOVE_ASTONISH
- level_up_move 16, MOVE_BITE
- level_up_move 21, MOVE_WING_ATTACK
- level_up_move 28, MOVE_CONFUSE_RAY
- level_up_move 35, MOVE_AIR_CUTTER
- level_up_move 42, MOVE_MEAN_LOOK
- level_up_move 49, MOVE_POISON_FANG
- level_up_move 56, MOVE_HAZE
- .2byte -1
-
-gOddishLevelUpLearnset:
- level_up_move 1, MOVE_ABSORB
- level_up_move 7, MOVE_SWEET_SCENT
- level_up_move 14, MOVE_POISON_POWDER
- level_up_move 16, MOVE_STUN_SPORE
- level_up_move 18, MOVE_SLEEP_POWDER
- level_up_move 23, MOVE_ACID
- level_up_move 32, MOVE_MOONLIGHT
- level_up_move 39, MOVE_PETAL_DANCE
- .2byte -1
-
-gGloomLevelUpLearnset:
- level_up_move 1, MOVE_ABSORB
- level_up_move 1, MOVE_SWEET_SCENT
- level_up_move 1, MOVE_POISON_POWDER
- level_up_move 7, MOVE_SWEET_SCENT
- level_up_move 14, MOVE_POISON_POWDER
- level_up_move 16, MOVE_STUN_SPORE
- level_up_move 18, MOVE_SLEEP_POWDER
- level_up_move 24, MOVE_ACID
- level_up_move 35, MOVE_MOONLIGHT
- level_up_move 44, MOVE_PETAL_DANCE
- .2byte -1
-
-gVileplumeLevelUpLearnset:
- level_up_move 1, MOVE_ABSORB
- level_up_move 1, MOVE_AROMATHERAPY
- level_up_move 1, MOVE_STUN_SPORE
- level_up_move 1, MOVE_MEGA_DRAIN
- level_up_move 44, MOVE_PETAL_DANCE
- .2byte -1
-
-gParasLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 7, MOVE_STUN_SPORE
- level_up_move 13, MOVE_POISON_POWDER
- level_up_move 19, MOVE_LEECH_LIFE
- level_up_move 25, MOVE_SPORE
- level_up_move 31, MOVE_SLASH
- level_up_move 37, MOVE_GROWTH
- level_up_move 43, MOVE_GIGA_DRAIN
- level_up_move 49, MOVE_AROMATHERAPY
- .2byte -1
-
-gParasectLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_STUN_SPORE
- level_up_move 1, MOVE_POISON_POWDER
- level_up_move 7, MOVE_STUN_SPORE
- level_up_move 13, MOVE_POISON_POWDER
- level_up_move 19, MOVE_LEECH_LIFE
- level_up_move 27, MOVE_SPORE
- level_up_move 35, MOVE_SLASH
- level_up_move 43, MOVE_GROWTH
- level_up_move 51, MOVE_GIGA_DRAIN
- level_up_move 59, MOVE_AROMATHERAPY
- .2byte -1
-
-gVenonatLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_DISABLE
- level_up_move 1, MOVE_FORESIGHT
- level_up_move 9, MOVE_SUPERSONIC
- level_up_move 17, MOVE_CONFUSION
- level_up_move 20, MOVE_POISON_POWDER
- level_up_move 25, MOVE_LEECH_LIFE
- level_up_move 28, MOVE_STUN_SPORE
- level_up_move 33, MOVE_PSYBEAM
- level_up_move 36, MOVE_SLEEP_POWDER
- level_up_move 41, MOVE_PSYCHIC
- .2byte -1
-
-gVenomothLevelUpLearnset:
- level_up_move 1, MOVE_SILVER_WIND
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_DISABLE
- level_up_move 1, MOVE_FORESIGHT
- level_up_move 1, MOVE_SUPERSONIC
- level_up_move 9, MOVE_SUPERSONIC
- level_up_move 17, MOVE_CONFUSION
- level_up_move 20, MOVE_POISON_POWDER
- level_up_move 25, MOVE_LEECH_LIFE
- level_up_move 28, MOVE_STUN_SPORE
- level_up_move 31, MOVE_GUST
- level_up_move 36, MOVE_PSYBEAM
- level_up_move 42, MOVE_SLEEP_POWDER
- level_up_move 52, MOVE_PSYCHIC
- .2byte -1
-
-gDiglettLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_SAND_ATTACK
- level_up_move 5, MOVE_GROWL
- level_up_move 9, MOVE_MAGNITUDE
- level_up_move 17, MOVE_DIG
- level_up_move 25, MOVE_MUD_SLAP
- level_up_move 33, MOVE_SLASH
- level_up_move 41, MOVE_EARTHQUAKE
- level_up_move 49, MOVE_FISSURE
- .2byte -1
-
-gDugtrioLevelUpLearnset:
- level_up_move 1, MOVE_TRI_ATTACK
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_SAND_ATTACK
- level_up_move 1, MOVE_GROWL
- level_up_move 5, MOVE_GROWL
- level_up_move 9, MOVE_MAGNITUDE
- level_up_move 17, MOVE_DIG
- level_up_move 25, MOVE_MUD_SLAP
- level_up_move 26, MOVE_SAND_TOMB
- level_up_move 38, MOVE_SLASH
- level_up_move 51, MOVE_EARTHQUAKE
- level_up_move 64, MOVE_FISSURE
- .2byte -1
-
-gMeowthLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_GROWL
- level_up_move 11, MOVE_BITE
- level_up_move 20, MOVE_PAY_DAY
- level_up_move 28, MOVE_FAINT_ATTACK
- level_up_move 35, MOVE_SCREECH
- level_up_move 41, MOVE_FURY_SWIPES
- level_up_move 46, MOVE_SLASH
- level_up_move 50, MOVE_FAKE_OUT
- .2byte -1
-
-gPersianLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_BITE
- level_up_move 11, MOVE_BITE
- level_up_move 20, MOVE_PAY_DAY
- level_up_move 29, MOVE_FAINT_ATTACK
- level_up_move 38, MOVE_SCREECH
- level_up_move 46, MOVE_FURY_SWIPES
- level_up_move 53, MOVE_SLASH
- level_up_move 59, MOVE_FAKE_OUT
- .2byte -1
-
-gPsyduckLevelUpLearnset:
- level_up_move 1, MOVE_WATER_SPORT
- level_up_move 1, MOVE_SCRATCH
- level_up_move 5, MOVE_TAIL_WHIP
- level_up_move 10, MOVE_DISABLE
- level_up_move 16, MOVE_CONFUSION
- level_up_move 23, MOVE_SCREECH
- level_up_move 31, MOVE_PSYCH_UP
- level_up_move 40, MOVE_FURY_SWIPES
- level_up_move 50, MOVE_HYDRO_PUMP
- .2byte -1
-
-gGolduckLevelUpLearnset:
- level_up_move 1, MOVE_WATER_SPORT
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_DISABLE
- level_up_move 5, MOVE_TAIL_WHIP
- level_up_move 10, MOVE_DISABLE
- level_up_move 16, MOVE_CONFUSION
- level_up_move 23, MOVE_SCREECH
- level_up_move 31, MOVE_PSYCH_UP
- level_up_move 44, MOVE_FURY_SWIPES
- level_up_move 58, MOVE_HYDRO_PUMP
- .2byte -1
-
-gMankeyLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_LEER
- level_up_move 9, MOVE_LOW_KICK
- level_up_move 15, MOVE_KARATE_CHOP
- level_up_move 21, MOVE_FURY_SWIPES
- level_up_move 27, MOVE_FOCUS_ENERGY
- level_up_move 33, MOVE_SEISMIC_TOSS
- level_up_move 39, MOVE_CROSS_CHOP
- level_up_move 45, MOVE_SCREECH
- level_up_move 51, MOVE_THRASH
- .2byte -1
-
-gPrimeapeLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_LOW_KICK
- level_up_move 1, MOVE_RAGE
- level_up_move 9, MOVE_LOW_KICK
- level_up_move 15, MOVE_KARATE_CHOP
- level_up_move 21, MOVE_FURY_SWIPES
- level_up_move 27, MOVE_FOCUS_ENERGY
- level_up_move 28, MOVE_RAGE
- level_up_move 36, MOVE_SEISMIC_TOSS
- level_up_move 45, MOVE_CROSS_CHOP
- level_up_move 54, MOVE_SCREECH
- level_up_move 63, MOVE_THRASH
- .2byte -1
-
-gGrowlitheLevelUpLearnset:
- level_up_move 1, MOVE_BITE
- level_up_move 1, MOVE_ROAR
- level_up_move 7, MOVE_EMBER
- level_up_move 13, MOVE_LEER
- level_up_move 19, MOVE_ODOR_SLEUTH
- level_up_move 25, MOVE_TAKE_DOWN
- level_up_move 31, MOVE_FLAME_WHEEL
- level_up_move 37, MOVE_HELPING_HAND
- level_up_move 43, MOVE_AGILITY
- level_up_move 49, MOVE_FLAMETHROWER
- .2byte -1
-
-gArcanineLevelUpLearnset:
- level_up_move 1, MOVE_BITE
- level_up_move 1, MOVE_ROAR
- level_up_move 1, MOVE_EMBER
- level_up_move 1, MOVE_ODOR_SLEUTH
- level_up_move 49, MOVE_EXTREME_SPEED
- .2byte -1
-
-gPoliwagLevelUpLearnset:
- level_up_move 1, MOVE_BUBBLE
- level_up_move 7, MOVE_HYPNOSIS
- level_up_move 13, MOVE_WATER_GUN
- level_up_move 19, MOVE_DOUBLE_SLAP
- level_up_move 25, MOVE_RAIN_DANCE
- level_up_move 31, MOVE_BODY_SLAM
- level_up_move 37, MOVE_BELLY_DRUM
- level_up_move 43, MOVE_HYDRO_PUMP
- .2byte -1
-
-gPoliwhirlLevelUpLearnset:
- level_up_move 1, MOVE_BUBBLE
- level_up_move 1, MOVE_HYPNOSIS
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 7, MOVE_HYPNOSIS
- level_up_move 13, MOVE_WATER_GUN
- level_up_move 19, MOVE_DOUBLE_SLAP
- level_up_move 27, MOVE_RAIN_DANCE
- level_up_move 35, MOVE_BODY_SLAM
- level_up_move 43, MOVE_BELLY_DRUM
- level_up_move 51, MOVE_HYDRO_PUMP
- .2byte -1
-
-gPoliwrathLevelUpLearnset:
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 1, MOVE_HYPNOSIS
- level_up_move 1, MOVE_DOUBLE_SLAP
- level_up_move 1, MOVE_SUBMISSION
- level_up_move 35, MOVE_SUBMISSION
- level_up_move 51, MOVE_MIND_READER
- .2byte -1
-
-gAbraLevelUpLearnset:
- level_up_move 1, MOVE_TELEPORT
- .2byte -1
-
-gKadabraLevelUpLearnset:
- level_up_move 1, MOVE_TELEPORT
- level_up_move 1, MOVE_KINESIS
- level_up_move 1, MOVE_CONFUSION
- level_up_move 16, MOVE_CONFUSION
- level_up_move 18, MOVE_DISABLE
- level_up_move 21, MOVE_PSYBEAM
- level_up_move 23, MOVE_REFLECT
- level_up_move 25, MOVE_RECOVER
- level_up_move 30, MOVE_FUTURE_SIGHT
- level_up_move 33, MOVE_ROLE_PLAY
- level_up_move 36, MOVE_PSYCHIC
- level_up_move 43, MOVE_TRICK
- .2byte -1
-
-gAlakazamLevelUpLearnset:
- level_up_move 1, MOVE_TELEPORT
- level_up_move 1, MOVE_KINESIS
- level_up_move 1, MOVE_CONFUSION
- level_up_move 16, MOVE_CONFUSION
- level_up_move 18, MOVE_DISABLE
- level_up_move 21, MOVE_PSYBEAM
- level_up_move 23, MOVE_REFLECT
- level_up_move 25, MOVE_RECOVER
- level_up_move 30, MOVE_FUTURE_SIGHT
- level_up_move 33, MOVE_CALM_MIND
- level_up_move 36, MOVE_PSYCHIC
- level_up_move 43, MOVE_TRICK
- .2byte -1
-
-gMachopLevelUpLearnset:
- level_up_move 1, MOVE_LOW_KICK
- level_up_move 1, MOVE_LEER
- level_up_move 7, MOVE_FOCUS_ENERGY
- level_up_move 13, MOVE_KARATE_CHOP
- level_up_move 19, MOVE_SEISMIC_TOSS
- level_up_move 22, MOVE_FORESIGHT
- level_up_move 25, MOVE_REVENGE
- level_up_move 31, MOVE_VITAL_THROW
- level_up_move 37, MOVE_SUBMISSION
- level_up_move 40, MOVE_CROSS_CHOP
- level_up_move 43, MOVE_SCARY_FACE
- level_up_move 49, MOVE_DYNAMIC_PUNCH
- .2byte -1
-
-gMachokeLevelUpLearnset:
- level_up_move 1, MOVE_LOW_KICK
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_FOCUS_ENERGY
- level_up_move 7, MOVE_FOCUS_ENERGY
- level_up_move 13, MOVE_KARATE_CHOP
- level_up_move 19, MOVE_SEISMIC_TOSS
- level_up_move 22, MOVE_FORESIGHT
- level_up_move 25, MOVE_REVENGE
- level_up_move 33, MOVE_VITAL_THROW
- level_up_move 41, MOVE_SUBMISSION
- level_up_move 46, MOVE_CROSS_CHOP
- level_up_move 51, MOVE_SCARY_FACE
- level_up_move 59, MOVE_DYNAMIC_PUNCH
- .2byte -1
-
-gMachampLevelUpLearnset:
- level_up_move 1, MOVE_LOW_KICK
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_FOCUS_ENERGY
- level_up_move 7, MOVE_FOCUS_ENERGY
- level_up_move 13, MOVE_KARATE_CHOP
- level_up_move 19, MOVE_SEISMIC_TOSS
- level_up_move 22, MOVE_FORESIGHT
- level_up_move 25, MOVE_REVENGE
- level_up_move 33, MOVE_VITAL_THROW
- level_up_move 41, MOVE_SUBMISSION
- level_up_move 46, MOVE_CROSS_CHOP
- level_up_move 51, MOVE_SCARY_FACE
- level_up_move 59, MOVE_DYNAMIC_PUNCH
- .2byte -1
-
-gBellsproutLevelUpLearnset:
- level_up_move 1, MOVE_VINE_WHIP
- level_up_move 6, MOVE_GROWTH
- level_up_move 11, MOVE_WRAP
- level_up_move 15, MOVE_SLEEP_POWDER
- level_up_move 17, MOVE_POISON_POWDER
- level_up_move 19, MOVE_STUN_SPORE
- level_up_move 23, MOVE_ACID
- level_up_move 30, MOVE_SWEET_SCENT
- level_up_move 37, MOVE_RAZOR_LEAF
- level_up_move 45, MOVE_SLAM
- .2byte -1
-
-gWeepinbellLevelUpLearnset:
- level_up_move 1, MOVE_VINE_WHIP
- level_up_move 1, MOVE_GROWTH
- level_up_move 1, MOVE_WRAP
- level_up_move 6, MOVE_GROWTH
- level_up_move 11, MOVE_WRAP
- level_up_move 15, MOVE_SLEEP_POWDER
- level_up_move 17, MOVE_POISON_POWDER
- level_up_move 19, MOVE_STUN_SPORE
- level_up_move 24, MOVE_ACID
- level_up_move 33, MOVE_SWEET_SCENT
- level_up_move 42, MOVE_RAZOR_LEAF
- level_up_move 54, MOVE_SLAM
- .2byte -1
-
-gVictreebelLevelUpLearnset:
- level_up_move 1, MOVE_VINE_WHIP
- level_up_move 1, MOVE_SLEEP_POWDER
- level_up_move 1, MOVE_SWEET_SCENT
- level_up_move 1, MOVE_RAZOR_LEAF
- .2byte -1
-
-gTentacoolLevelUpLearnset:
- level_up_move 1, MOVE_POISON_STING
- level_up_move 6, MOVE_SUPERSONIC
- level_up_move 12, MOVE_CONSTRICT
- level_up_move 19, MOVE_ACID
- level_up_move 25, MOVE_BUBBLE_BEAM
- level_up_move 30, MOVE_WRAP
- level_up_move 36, MOVE_BARRIER
- level_up_move 43, MOVE_SCREECH
- level_up_move 49, MOVE_HYDRO_PUMP
- .2byte -1
-
-gTentacruelLevelUpLearnset:
- level_up_move 1, MOVE_POISON_STING
- level_up_move 1, MOVE_SUPERSONIC
- level_up_move 1, MOVE_CONSTRICT
- level_up_move 6, MOVE_SUPERSONIC
- level_up_move 12, MOVE_CONSTRICT
- level_up_move 19, MOVE_ACID
- level_up_move 25, MOVE_BUBBLE_BEAM
- level_up_move 30, MOVE_WRAP
- level_up_move 38, MOVE_BARRIER
- level_up_move 47, MOVE_SCREECH
- level_up_move 55, MOVE_HYDRO_PUMP
- .2byte -1
-
-gGeodudeLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_DEFENSE_CURL
- level_up_move 6, MOVE_MUD_SPORT
- level_up_move 11, MOVE_ROCK_THROW
- level_up_move 16, MOVE_MAGNITUDE
- level_up_move 21, MOVE_SELF_DESTRUCT
- level_up_move 26, MOVE_ROLLOUT
- level_up_move 31, MOVE_ROCK_BLAST
- level_up_move 36, MOVE_EARTHQUAKE
- level_up_move 41, MOVE_EXPLOSION
- level_up_move 46, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gGravelerLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_DEFENSE_CURL
- level_up_move 1, MOVE_MUD_SPORT
- level_up_move 1, MOVE_ROCK_THROW
- level_up_move 6, MOVE_MUD_SPORT
- level_up_move 11, MOVE_ROCK_THROW
- level_up_move 16, MOVE_MAGNITUDE
- level_up_move 21, MOVE_SELF_DESTRUCT
- level_up_move 29, MOVE_ROLLOUT
- level_up_move 37, MOVE_ROCK_BLAST
- level_up_move 45, MOVE_EARTHQUAKE
- level_up_move 53, MOVE_EXPLOSION
- level_up_move 62, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gGolemLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_DEFENSE_CURL
- level_up_move 1, MOVE_MUD_SPORT
- level_up_move 1, MOVE_ROCK_THROW
- level_up_move 6, MOVE_MUD_SPORT
- level_up_move 11, MOVE_ROCK_THROW
- level_up_move 16, MOVE_MAGNITUDE
- level_up_move 21, MOVE_SELF_DESTRUCT
- level_up_move 29, MOVE_ROLLOUT
- level_up_move 37, MOVE_ROCK_BLAST
- level_up_move 45, MOVE_EARTHQUAKE
- level_up_move 53, MOVE_EXPLOSION
- level_up_move 62, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gPonytaLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 5, MOVE_GROWL
- level_up_move 9, MOVE_TAIL_WHIP
- level_up_move 14, MOVE_EMBER
- level_up_move 19, MOVE_STOMP
- level_up_move 25, MOVE_FIRE_SPIN
- level_up_move 31, MOVE_TAKE_DOWN
- level_up_move 38, MOVE_AGILITY
- level_up_move 45, MOVE_BOUNCE
- level_up_move 53, MOVE_FIRE_BLAST
- .2byte -1
-
-gRapidashLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_EMBER
- level_up_move 5, MOVE_GROWL
- level_up_move 9, MOVE_TAIL_WHIP
- level_up_move 14, MOVE_EMBER
- level_up_move 19, MOVE_STOMP
- level_up_move 25, MOVE_FIRE_SPIN
- level_up_move 31, MOVE_TAKE_DOWN
- level_up_move 38, MOVE_AGILITY
- level_up_move 40, MOVE_FURY_ATTACK
- level_up_move 50, MOVE_BOUNCE
- level_up_move 63, MOVE_FIRE_BLAST
- .2byte -1
-
-gSlowpokeLevelUpLearnset:
- level_up_move 1, MOVE_CURSE
- level_up_move 1, MOVE_YAWN
- level_up_move 1, MOVE_TACKLE
- level_up_move 6, MOVE_GROWL
- level_up_move 15, MOVE_WATER_GUN
- level_up_move 20, MOVE_CONFUSION
- level_up_move 29, MOVE_DISABLE
- level_up_move 34, MOVE_HEADBUTT
- level_up_move 43, MOVE_AMNESIA
- level_up_move 48, MOVE_PSYCHIC
- .2byte -1
-
-gSlowbroLevelUpLearnset:
- level_up_move 1, MOVE_CURSE
- level_up_move 1, MOVE_YAWN
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 6, MOVE_GROWL
- level_up_move 15, MOVE_WATER_GUN
- level_up_move 20, MOVE_CONFUSION
- level_up_move 29, MOVE_DISABLE
- level_up_move 34, MOVE_HEADBUTT
- level_up_move 37, MOVE_WITHDRAW
- level_up_move 46, MOVE_AMNESIA
- level_up_move 54, MOVE_PSYCHIC
- .2byte -1
-
-gMagnemiteLevelUpLearnset:
- level_up_move 1, MOVE_METAL_SOUND
- level_up_move 1, MOVE_TACKLE
- level_up_move 6, MOVE_THUNDER_SHOCK
- level_up_move 11, MOVE_SUPERSONIC
- level_up_move 16, MOVE_SONIC_BOOM
- level_up_move 21, MOVE_THUNDER_WAVE
- level_up_move 26, MOVE_SPARK
- level_up_move 32, MOVE_LOCK_ON
- level_up_move 38, MOVE_SWIFT
- level_up_move 44, MOVE_SCREECH
- level_up_move 50, MOVE_ZAP_CANNON
- .2byte -1
-
-gMagnetonLevelUpLearnset:
- level_up_move 1, MOVE_METAL_SOUND
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_THUNDER_SHOCK
- level_up_move 1, MOVE_SUPERSONIC
- level_up_move 6, MOVE_THUNDER_SHOCK
- level_up_move 11, MOVE_SUPERSONIC
- level_up_move 16, MOVE_SONIC_BOOM
- level_up_move 21, MOVE_THUNDER_WAVE
- level_up_move 26, MOVE_SPARK
- level_up_move 35, MOVE_LOCK_ON
- level_up_move 44, MOVE_TRI_ATTACK
- level_up_move 53, MOVE_SCREECH
- level_up_move 62, MOVE_ZAP_CANNON
- .2byte -1
-
-gFarfetchdLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 6, MOVE_SAND_ATTACK
- level_up_move 11, MOVE_LEER
- level_up_move 16, MOVE_FURY_ATTACK
- level_up_move 21, MOVE_KNOCK_OFF
- level_up_move 26, MOVE_FURY_CUTTER
- level_up_move 31, MOVE_SWORDS_DANCE
- level_up_move 36, MOVE_AGILITY
- level_up_move 41, MOVE_SLASH
- level_up_move 46, MOVE_FALSE_SWIPE
- .2byte -1
-
-gDoduoLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_GROWL
- level_up_move 9, MOVE_PURSUIT
- level_up_move 13, MOVE_FURY_ATTACK
- level_up_move 21, MOVE_TRI_ATTACK
- level_up_move 25, MOVE_RAGE
- level_up_move 33, MOVE_UPROAR
- level_up_move 37, MOVE_DRILL_PECK
- level_up_move 45, MOVE_AGILITY
- .2byte -1
-
-gDodrioLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_PURSUIT
- level_up_move 1, MOVE_FURY_ATTACK
- level_up_move 9, MOVE_PURSUIT
- level_up_move 13, MOVE_FURY_ATTACK
- level_up_move 21, MOVE_TRI_ATTACK
- level_up_move 25, MOVE_RAGE
- level_up_move 38, MOVE_UPROAR
- level_up_move 47, MOVE_DRILL_PECK
- level_up_move 60, MOVE_AGILITY
- .2byte -1
-
-gSeelLevelUpLearnset:
- level_up_move 1, MOVE_HEADBUTT
- level_up_move 9, MOVE_GROWL
- level_up_move 17, MOVE_ICY_WIND
- level_up_move 21, MOVE_AURORA_BEAM
- level_up_move 29, MOVE_REST
- level_up_move 37, MOVE_TAKE_DOWN
- level_up_move 41, MOVE_ICE_BEAM
- level_up_move 49, MOVE_SAFEGUARD
- .2byte -1
-
-gDewgongLevelUpLearnset:
- level_up_move 1, MOVE_HEADBUTT
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_ICY_WIND
- level_up_move 1, MOVE_AURORA_BEAM
- level_up_move 9, MOVE_GROWL
- level_up_move 17, MOVE_ICY_WIND
- level_up_move 21, MOVE_AURORA_BEAM
- level_up_move 29, MOVE_REST
- level_up_move 34, MOVE_SHEER_COLD
- level_up_move 42, MOVE_TAKE_DOWN
- level_up_move 51, MOVE_ICE_BEAM
- level_up_move 64, MOVE_SAFEGUARD
- .2byte -1
-
-gGrimerLevelUpLearnset:
- level_up_move 1, MOVE_POISON_GAS
- level_up_move 1, MOVE_POUND
- level_up_move 4, MOVE_HARDEN
- level_up_move 8, MOVE_DISABLE
- level_up_move 13, MOVE_SLUDGE
- level_up_move 19, MOVE_MINIMIZE
- level_up_move 26, MOVE_SCREECH
- level_up_move 34, MOVE_ACID_ARMOR
- level_up_move 43, MOVE_SLUDGE_BOMB
- level_up_move 53, MOVE_MEMENTO
- .2byte -1
-
-gMukLevelUpLearnset:
- level_up_move 1, MOVE_POISON_GAS
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_HARDEN
- level_up_move 4, MOVE_HARDEN
- level_up_move 8, MOVE_DISABLE
- level_up_move 13, MOVE_SLUDGE
- level_up_move 19, MOVE_MINIMIZE
- level_up_move 26, MOVE_SCREECH
- level_up_move 34, MOVE_ACID_ARMOR
- level_up_move 47, MOVE_SLUDGE_BOMB
- level_up_move 61, MOVE_MEMENTO
- .2byte -1
-
-gShellderLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_WITHDRAW
- level_up_move 9, MOVE_SUPERSONIC
- level_up_move 17, MOVE_AURORA_BEAM
- level_up_move 25, MOVE_PROTECT
- level_up_move 33, MOVE_LEER
- level_up_move 41, MOVE_CLAMP
- level_up_move 49, MOVE_ICE_BEAM
- .2byte -1
-
-gCloysterLevelUpLearnset:
- level_up_move 1, MOVE_WITHDRAW
- level_up_move 1, MOVE_SUPERSONIC
- level_up_move 1, MOVE_AURORA_BEAM
- level_up_move 1, MOVE_PROTECT
- level_up_move 33, MOVE_SPIKES
- level_up_move 41, MOVE_SPIKE_CANNON
- .2byte -1
-
-gGastlyLevelUpLearnset:
- level_up_move 1, MOVE_HYPNOSIS
- level_up_move 1, MOVE_LICK
- level_up_move 8, MOVE_SPITE
- level_up_move 13, MOVE_MEAN_LOOK
- level_up_move 16, MOVE_CURSE
- level_up_move 21, MOVE_NIGHT_SHADE
- level_up_move 28, MOVE_CONFUSE_RAY
- level_up_move 33, MOVE_DREAM_EATER
- level_up_move 36, MOVE_DESTINY_BOND
- .2byte -1
-
-gHaunterLevelUpLearnset:
- level_up_move 1, MOVE_HYPNOSIS
- level_up_move 1, MOVE_LICK
- level_up_move 1, MOVE_SPITE
- level_up_move 8, MOVE_SPITE
- level_up_move 13, MOVE_MEAN_LOOK
- level_up_move 16, MOVE_CURSE
- level_up_move 21, MOVE_NIGHT_SHADE
- level_up_move 25, MOVE_SHADOW_PUNCH
- level_up_move 31, MOVE_CONFUSE_RAY
- level_up_move 39, MOVE_DREAM_EATER
- level_up_move 48, MOVE_DESTINY_BOND
- .2byte -1
-
-gGengarLevelUpLearnset:
- level_up_move 1, MOVE_HYPNOSIS
- level_up_move 1, MOVE_LICK
- level_up_move 1, MOVE_SPITE
- level_up_move 8, MOVE_SPITE
- level_up_move 13, MOVE_MEAN_LOOK
- level_up_move 16, MOVE_CURSE
- level_up_move 21, MOVE_NIGHT_SHADE
- level_up_move 25, MOVE_SHADOW_PUNCH
- level_up_move 31, MOVE_CONFUSE_RAY
- level_up_move 39, MOVE_DREAM_EATER
- level_up_move 48, MOVE_DESTINY_BOND
- .2byte -1
-
-gOnixLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_SCREECH
- level_up_move 9, MOVE_BIND
- level_up_move 13, MOVE_ROCK_THROW
- level_up_move 21, MOVE_HARDEN
- level_up_move 25, MOVE_RAGE
- level_up_move 33, MOVE_SANDSTORM
- level_up_move 37, MOVE_SLAM
- level_up_move 45, MOVE_IRON_TAIL
- level_up_move 49, MOVE_SAND_TOMB
- level_up_move 57, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gDrowzeeLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_HYPNOSIS
- level_up_move 10, MOVE_DISABLE
- level_up_move 18, MOVE_CONFUSION
- level_up_move 25, MOVE_HEADBUTT
- level_up_move 31, MOVE_POISON_GAS
- level_up_move 36, MOVE_MEDITATE
- level_up_move 40, MOVE_PSYCHIC
- level_up_move 43, MOVE_PSYCH_UP
- level_up_move 45, MOVE_FUTURE_SIGHT
- .2byte -1
-
-gHypnoLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_HYPNOSIS
- level_up_move 1, MOVE_DISABLE
- level_up_move 1, MOVE_CONFUSION
- level_up_move 10, MOVE_DISABLE
- level_up_move 18, MOVE_CONFUSION
- level_up_move 25, MOVE_HEADBUTT
- level_up_move 33, MOVE_POISON_GAS
- level_up_move 40, MOVE_MEDITATE
- level_up_move 49, MOVE_PSYCHIC
- level_up_move 55, MOVE_PSYCH_UP
- level_up_move 60, MOVE_FUTURE_SIGHT
- .2byte -1
-
-gKrabbyLevelUpLearnset:
- level_up_move 1, MOVE_BUBBLE
- level_up_move 5, MOVE_LEER
- level_up_move 12, MOVE_VICE_GRIP
- level_up_move 16, MOVE_HARDEN
- level_up_move 23, MOVE_MUD_SHOT
- level_up_move 27, MOVE_STOMP
- level_up_move 34, MOVE_GUILLOTINE
- level_up_move 41, MOVE_PROTECT
- level_up_move 45, MOVE_CRABHAMMER
- .2byte -1
-
-gKinglerLevelUpLearnset:
- level_up_move 1, MOVE_BUBBLE
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_VICE_GRIP
- level_up_move 5, MOVE_LEER
- level_up_move 12, MOVE_VICE_GRIP
- level_up_move 16, MOVE_HARDEN
- level_up_move 23, MOVE_MUD_SHOT
- level_up_move 27, MOVE_STOMP
- level_up_move 38, MOVE_GUILLOTINE
- level_up_move 49, MOVE_PROTECT
- level_up_move 57, MOVE_CRABHAMMER
- .2byte -1
-
-gVoltorbLevelUpLearnset:
- level_up_move 1, MOVE_CHARGE
- level_up_move 1, MOVE_TACKLE
- level_up_move 8, MOVE_SCREECH
- level_up_move 15, MOVE_SONIC_BOOM
- level_up_move 21, MOVE_SPARK
- level_up_move 27, MOVE_SELF_DESTRUCT
- level_up_move 32, MOVE_ROLLOUT
- level_up_move 37, MOVE_LIGHT_SCREEN
- level_up_move 42, MOVE_SWIFT
- level_up_move 46, MOVE_EXPLOSION
- level_up_move 49, MOVE_MIRROR_COAT
- .2byte -1
-
-gElectrodeLevelUpLearnset:
- level_up_move 1, MOVE_CHARGE
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_SCREECH
- level_up_move 1, MOVE_SONIC_BOOM
- level_up_move 8, MOVE_SCREECH
- level_up_move 15, MOVE_SONIC_BOOM
- level_up_move 21, MOVE_SPARK
- level_up_move 27, MOVE_SELF_DESTRUCT
- level_up_move 34, MOVE_ROLLOUT
- level_up_move 41, MOVE_LIGHT_SCREEN
- level_up_move 48, MOVE_SWIFT
- level_up_move 54, MOVE_EXPLOSION
- level_up_move 59, MOVE_MIRROR_COAT
- .2byte -1
-
-gExeggcuteLevelUpLearnset:
- level_up_move 1, MOVE_BARRAGE
- level_up_move 1, MOVE_UPROAR
- level_up_move 1, MOVE_HYPNOSIS
- level_up_move 7, MOVE_REFLECT
- level_up_move 13, MOVE_LEECH_SEED
- level_up_move 19, MOVE_CONFUSION
- level_up_move 25, MOVE_STUN_SPORE
- level_up_move 31, MOVE_POISON_POWDER
- level_up_move 37, MOVE_SLEEP_POWDER
- level_up_move 43, MOVE_SOLAR_BEAM
- .2byte -1
-
-gExeggutorLevelUpLearnset:
- level_up_move 1, MOVE_BARRAGE
- level_up_move 1, MOVE_HYPNOSIS
- level_up_move 1, MOVE_CONFUSION
- level_up_move 19, MOVE_STOMP
- level_up_move 31, MOVE_EGG_BOMB
- .2byte -1
-
-gCuboneLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 5, MOVE_TAIL_WHIP
- level_up_move 9, MOVE_BONE_CLUB
- level_up_move 13, MOVE_HEADBUTT
- level_up_move 17, MOVE_LEER
- level_up_move 21, MOVE_FOCUS_ENERGY
- level_up_move 25, MOVE_BONEMERANG
- level_up_move 29, MOVE_RAGE
- level_up_move 33, MOVE_FALSE_SWIPE
- level_up_move 37, MOVE_THRASH
- level_up_move 41, MOVE_BONE_RUSH
- level_up_move 45, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gMarowakLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_BONE_CLUB
- level_up_move 1, MOVE_HEADBUTT
- level_up_move 5, MOVE_TAIL_WHIP
- level_up_move 9, MOVE_BONE_CLUB
- level_up_move 13, MOVE_HEADBUTT
- level_up_move 17, MOVE_LEER
- level_up_move 21, MOVE_FOCUS_ENERGY
- level_up_move 25, MOVE_BONEMERANG
- level_up_move 32, MOVE_RAGE
- level_up_move 39, MOVE_FALSE_SWIPE
- level_up_move 46, MOVE_THRASH
- level_up_move 53, MOVE_BONE_RUSH
- level_up_move 61, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gHitmonleeLevelUpLearnset:
- level_up_move 1, MOVE_REVENGE
- level_up_move 1, MOVE_DOUBLE_KICK
- level_up_move 6, MOVE_MEDITATE
- level_up_move 11, MOVE_ROLLING_KICK
- level_up_move 16, MOVE_JUMP_KICK
- level_up_move 20, MOVE_BRICK_BREAK
- level_up_move 21, MOVE_FOCUS_ENERGY
- level_up_move 26, MOVE_HI_JUMP_KICK
- level_up_move 31, MOVE_MIND_READER
- level_up_move 36, MOVE_FORESIGHT
- level_up_move 41, MOVE_ENDURE
- level_up_move 46, MOVE_MEGA_KICK
- level_up_move 51, MOVE_REVERSAL
- .2byte -1
-
-gHitmonchanLevelUpLearnset:
- level_up_move 1, MOVE_REVENGE
- level_up_move 1, MOVE_COMET_PUNCH
- level_up_move 7, MOVE_AGILITY
- level_up_move 13, MOVE_PURSUIT
- level_up_move 20, MOVE_MACH_PUNCH
- level_up_move 26, MOVE_THUNDER_PUNCH
- level_up_move 26, MOVE_ICE_PUNCH
- level_up_move 26, MOVE_FIRE_PUNCH
- level_up_move 32, MOVE_SKY_UPPERCUT
- level_up_move 38, MOVE_MEGA_PUNCH
- level_up_move 44, MOVE_DETECT
- level_up_move 50, MOVE_COUNTER
- .2byte -1
-
-gLickitungLevelUpLearnset:
- level_up_move 1, MOVE_LICK
- level_up_move 7, MOVE_SUPERSONIC
- level_up_move 12, MOVE_DEFENSE_CURL
- level_up_move 18, MOVE_KNOCK_OFF
- level_up_move 23, MOVE_STOMP
- level_up_move 29, MOVE_WRAP
- level_up_move 34, MOVE_DISABLE
- level_up_move 40, MOVE_SLAM
- level_up_move 45, MOVE_SCREECH
- level_up_move 51, MOVE_REFRESH
- .2byte -1
-
-gKoffingLevelUpLearnset:
- level_up_move 1, MOVE_POISON_GAS
- level_up_move 1, MOVE_TACKLE
- level_up_move 9, MOVE_SMOG
- level_up_move 17, MOVE_SELF_DESTRUCT
- level_up_move 21, MOVE_SLUDGE
- level_up_move 25, MOVE_SMOKESCREEN
- level_up_move 33, MOVE_HAZE
- level_up_move 41, MOVE_EXPLOSION
- level_up_move 45, MOVE_DESTINY_BOND
- level_up_move 49, MOVE_MEMENTO
- .2byte -1
-
-gWeezingLevelUpLearnset:
- level_up_move 1, MOVE_POISON_GAS
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_SMOG
- level_up_move 1, MOVE_SELF_DESTRUCT
- level_up_move 9, MOVE_SMOG
- level_up_move 17, MOVE_SELF_DESTRUCT
- level_up_move 21, MOVE_SLUDGE
- level_up_move 25, MOVE_SMOKESCREEN
- level_up_move 33, MOVE_HAZE
- level_up_move 44, MOVE_EXPLOSION
- level_up_move 51, MOVE_DESTINY_BOND
- level_up_move 58, MOVE_MEMENTO
- .2byte -1
-
-gRhyhornLevelUpLearnset:
- level_up_move 1, MOVE_HORN_ATTACK
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 10, MOVE_STOMP
- level_up_move 15, MOVE_FURY_ATTACK
- level_up_move 24, MOVE_SCARY_FACE
- level_up_move 29, MOVE_ROCK_BLAST
- level_up_move 38, MOVE_HORN_DRILL
- level_up_move 43, MOVE_TAKE_DOWN
- level_up_move 52, MOVE_EARTHQUAKE
- level_up_move 57, MOVE_MEGAHORN
- .2byte -1
-
-gRhydonLevelUpLearnset:
- level_up_move 1, MOVE_HORN_ATTACK
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_STOMP
- level_up_move 1, MOVE_FURY_ATTACK
- level_up_move 10, MOVE_STOMP
- level_up_move 15, MOVE_FURY_ATTACK
- level_up_move 24, MOVE_SCARY_FACE
- level_up_move 29, MOVE_ROCK_BLAST
- level_up_move 38, MOVE_HORN_DRILL
- level_up_move 46, MOVE_TAKE_DOWN
- level_up_move 58, MOVE_EARTHQUAKE
- level_up_move 66, MOVE_MEGAHORN
- .2byte -1
-
-gChanseyLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_GROWL
- level_up_move 5, MOVE_TAIL_WHIP
- level_up_move 9, MOVE_REFRESH
- level_up_move 13, MOVE_SOFT_BOILED
- level_up_move 17, MOVE_DOUBLE_SLAP
- level_up_move 23, MOVE_MINIMIZE
- level_up_move 29, MOVE_SING
- level_up_move 35, MOVE_EGG_BOMB
- level_up_move 41, MOVE_DEFENSE_CURL
- level_up_move 49, MOVE_LIGHT_SCREEN
- level_up_move 57, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gTangelaLevelUpLearnset:
- level_up_move 1, MOVE_INGRAIN
- level_up_move 1, MOVE_CONSTRICT
- level_up_move 4, MOVE_SLEEP_POWDER
- level_up_move 10, MOVE_ABSORB
- level_up_move 13, MOVE_GROWTH
- level_up_move 19, MOVE_POISON_POWDER
- level_up_move 22, MOVE_VINE_WHIP
- level_up_move 28, MOVE_BIND
- level_up_move 31, MOVE_MEGA_DRAIN
- level_up_move 37, MOVE_STUN_SPORE
- level_up_move 40, MOVE_SLAM
- level_up_move 46, MOVE_TICKLE
- .2byte -1
-
-gKangaskhanLevelUpLearnset:
- level_up_move 1, MOVE_COMET_PUNCH
- level_up_move 1, MOVE_LEER
- level_up_move 7, MOVE_BITE
- level_up_move 13, MOVE_TAIL_WHIP
- level_up_move 19, MOVE_FAKE_OUT
- level_up_move 25, MOVE_MEGA_PUNCH
- level_up_move 31, MOVE_RAGE
- level_up_move 37, MOVE_ENDURE
- level_up_move 43, MOVE_DIZZY_PUNCH
- level_up_move 49, MOVE_REVERSAL
- .2byte -1
-
-gHorseaLevelUpLearnset:
- level_up_move 1, MOVE_BUBBLE
- level_up_move 8, MOVE_SMOKESCREEN
- level_up_move 15, MOVE_LEER
- level_up_move 22, MOVE_WATER_GUN
- level_up_move 29, MOVE_TWISTER
- level_up_move 36, MOVE_AGILITY
- level_up_move 43, MOVE_HYDRO_PUMP
- level_up_move 50, MOVE_DRAGON_DANCE
- .2byte -1
-
-gSeadraLevelUpLearnset:
- level_up_move 1, MOVE_BUBBLE
- level_up_move 1, MOVE_SMOKESCREEN
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 8, MOVE_SMOKESCREEN
- level_up_move 15, MOVE_LEER
- level_up_move 22, MOVE_WATER_GUN
- level_up_move 29, MOVE_TWISTER
- level_up_move 40, MOVE_AGILITY
- level_up_move 51, MOVE_HYDRO_PUMP
- level_up_move 62, MOVE_DRAGON_DANCE
- .2byte -1
-
-gGoldeenLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_WATER_SPORT
- level_up_move 10, MOVE_SUPERSONIC
- level_up_move 15, MOVE_HORN_ATTACK
- level_up_move 24, MOVE_FLAIL
- level_up_move 29, MOVE_FURY_ATTACK
- level_up_move 38, MOVE_WATERFALL
- level_up_move 43, MOVE_HORN_DRILL
- level_up_move 52, MOVE_AGILITY
- .2byte -1
-
-gSeakingLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_WATER_SPORT
- level_up_move 1, MOVE_SUPERSONIC
- level_up_move 10, MOVE_SUPERSONIC
- level_up_move 15, MOVE_HORN_ATTACK
- level_up_move 24, MOVE_FLAIL
- level_up_move 29, MOVE_FURY_ATTACK
- level_up_move 41, MOVE_WATERFALL
- level_up_move 49, MOVE_HORN_DRILL
- level_up_move 61, MOVE_AGILITY
- .2byte -1
-
-gStaryuLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_HARDEN
- level_up_move 6, MOVE_WATER_GUN
- level_up_move 10, MOVE_RAPID_SPIN
- level_up_move 15, MOVE_RECOVER
- level_up_move 19, MOVE_CAMOUFLAGE
- level_up_move 24, MOVE_SWIFT
- level_up_move 28, MOVE_BUBBLE_BEAM
- level_up_move 33, MOVE_MINIMIZE
- level_up_move 37, MOVE_LIGHT_SCREEN
- level_up_move 42, MOVE_COSMIC_POWER
- level_up_move 46, MOVE_HYDRO_PUMP
- .2byte -1
-
-gStarmieLevelUpLearnset:
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 1, MOVE_RAPID_SPIN
- level_up_move 1, MOVE_RECOVER
- level_up_move 1, MOVE_SWIFT
- level_up_move 33, MOVE_CONFUSE_RAY
- .2byte -1
-
-gMrmimeLevelUpLearnset:
- level_up_move 1, MOVE_BARRIER
- level_up_move 5, MOVE_CONFUSION
- level_up_move 9, MOVE_SUBSTITUTE
- level_up_move 13, MOVE_MEDITATE
- level_up_move 17, MOVE_DOUBLE_SLAP
- level_up_move 21, MOVE_LIGHT_SCREEN
- level_up_move 21, MOVE_REFLECT
- level_up_move 25, MOVE_ENCORE
- level_up_move 29, MOVE_PSYBEAM
- level_up_move 33, MOVE_RECYCLE
- level_up_move 37, MOVE_TRICK
- level_up_move 41, MOVE_ROLE_PLAY
- level_up_move 45, MOVE_PSYCHIC
- level_up_move 49, MOVE_BATON_PASS
- level_up_move 53, MOVE_SAFEGUARD
- .2byte -1
-
-gScytherLevelUpLearnset:
- level_up_move 1, MOVE_QUICK_ATTACK
- level_up_move 1, MOVE_LEER
- level_up_move 6, MOVE_FOCUS_ENERGY
- level_up_move 11, MOVE_PURSUIT
- level_up_move 16, MOVE_FALSE_SWIPE
- level_up_move 21, MOVE_AGILITY
- level_up_move 26, MOVE_WING_ATTACK
- level_up_move 31, MOVE_SLASH
- level_up_move 36, MOVE_SWORDS_DANCE
- level_up_move 41, MOVE_DOUBLE_TEAM
- level_up_move 46, MOVE_FURY_CUTTER
- .2byte -1
-
-gJynxLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_LICK
- level_up_move 1, MOVE_LOVELY_KISS
- level_up_move 1, MOVE_POWDER_SNOW
- level_up_move 9, MOVE_LOVELY_KISS
- level_up_move 13, MOVE_POWDER_SNOW
- level_up_move 21, MOVE_DOUBLE_SLAP
- level_up_move 25, MOVE_ICE_PUNCH
- level_up_move 35, MOVE_MEAN_LOOK
- level_up_move 41, MOVE_FAKE_TEARS
- level_up_move 51, MOVE_BODY_SLAM
- level_up_move 57, MOVE_PERISH_SONG
- level_up_move 67, MOVE_BLIZZARD
- .2byte -1
-
-gElectabuzzLevelUpLearnset:
- level_up_move 1, MOVE_QUICK_ATTACK
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_THUNDER_PUNCH
- level_up_move 9, MOVE_THUNDER_PUNCH
- level_up_move 17, MOVE_LIGHT_SCREEN
- level_up_move 25, MOVE_SWIFT
- level_up_move 36, MOVE_SCREECH
- level_up_move 47, MOVE_THUNDERBOLT
- level_up_move 58, MOVE_THUNDER
- .2byte -1
-
-gMagmarLevelUpLearnset:
- level_up_move 1, MOVE_EMBER
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_SMOG
- level_up_move 1, MOVE_FIRE_PUNCH
- level_up_move 7, MOVE_LEER
- level_up_move 13, MOVE_SMOG
- level_up_move 19, MOVE_FIRE_PUNCH
- level_up_move 25, MOVE_SMOKESCREEN
- level_up_move 33, MOVE_SUNNY_DAY
- level_up_move 41, MOVE_FLAMETHROWER
- level_up_move 49, MOVE_CONFUSE_RAY
- level_up_move 57, MOVE_FIRE_BLAST
- .2byte -1
-
-gPinsirLevelUpLearnset:
- level_up_move 1, MOVE_VICE_GRIP
- level_up_move 1, MOVE_FOCUS_ENERGY
- level_up_move 7, MOVE_BIND
- level_up_move 13, MOVE_SEISMIC_TOSS
- level_up_move 19, MOVE_HARDEN
- level_up_move 25, MOVE_REVENGE
- level_up_move 31, MOVE_BRICK_BREAK
- level_up_move 37, MOVE_GUILLOTINE
- level_up_move 43, MOVE_SUBMISSION
- level_up_move 49, MOVE_SWORDS_DANCE
- .2byte -1
-
-gTaurosLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 4, MOVE_TAIL_WHIP
- level_up_move 8, MOVE_RAGE
- level_up_move 13, MOVE_HORN_ATTACK
- level_up_move 19, MOVE_SCARY_FACE
- level_up_move 26, MOVE_PURSUIT
- level_up_move 34, MOVE_REST
- level_up_move 43, MOVE_THRASH
- level_up_move 53, MOVE_TAKE_DOWN
- .2byte -1
-
-gMagikarpLevelUpLearnset:
- level_up_move 1, MOVE_SPLASH
- level_up_move 15, MOVE_TACKLE
- level_up_move 30, MOVE_FLAIL
- .2byte -1
-
-gGyaradosLevelUpLearnset:
- level_up_move 1, MOVE_THRASH
- level_up_move 20, MOVE_BITE
- level_up_move 25, MOVE_DRAGON_RAGE
- level_up_move 30, MOVE_LEER
- level_up_move 35, MOVE_TWISTER
- level_up_move 40, MOVE_HYDRO_PUMP
- level_up_move 45, MOVE_RAIN_DANCE
- level_up_move 50, MOVE_DRAGON_DANCE
- level_up_move 55, MOVE_HYPER_BEAM
- .2byte -1
-
-gLaprasLevelUpLearnset:
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_SING
- level_up_move 7, MOVE_MIST
- level_up_move 13, MOVE_BODY_SLAM
- level_up_move 19, MOVE_CONFUSE_RAY
- level_up_move 25, MOVE_PERISH_SONG
- level_up_move 31, MOVE_ICE_BEAM
- level_up_move 37, MOVE_RAIN_DANCE
- level_up_move 43, MOVE_SAFEGUARD
- level_up_move 49, MOVE_HYDRO_PUMP
- level_up_move 55, MOVE_SHEER_COLD
- .2byte -1
-
-gDittoLevelUpLearnset:
- level_up_move 1, MOVE_TRANSFORM
- .2byte -1
-
-gEeveeLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_HELPING_HAND
- level_up_move 8, MOVE_SAND_ATTACK
- level_up_move 16, MOVE_GROWL
- level_up_move 23, MOVE_QUICK_ATTACK
- level_up_move 30, MOVE_BITE
- level_up_move 36, MOVE_BATON_PASS
- level_up_move 42, MOVE_TAKE_DOWN
- .2byte -1
-
-gVaporeonLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_HELPING_HAND
- level_up_move 8, MOVE_SAND_ATTACK
- level_up_move 16, MOVE_WATER_GUN
- level_up_move 23, MOVE_QUICK_ATTACK
- level_up_move 30, MOVE_BITE
- level_up_move 36, MOVE_AURORA_BEAM
- level_up_move 42, MOVE_HAZE
- level_up_move 47, MOVE_ACID_ARMOR
- level_up_move 52, MOVE_HYDRO_PUMP
- .2byte -1
-
-gJolteonLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_HELPING_HAND
- level_up_move 8, MOVE_SAND_ATTACK
- level_up_move 16, MOVE_THUNDER_SHOCK
- level_up_move 23, MOVE_QUICK_ATTACK
- level_up_move 30, MOVE_DOUBLE_KICK
- level_up_move 36, MOVE_PIN_MISSILE
- level_up_move 42, MOVE_THUNDER_WAVE
- level_up_move 47, MOVE_AGILITY
- level_up_move 52, MOVE_THUNDER
- .2byte -1
-
-gFlareonLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_HELPING_HAND
- level_up_move 8, MOVE_SAND_ATTACK
- level_up_move 16, MOVE_EMBER
- level_up_move 23, MOVE_QUICK_ATTACK
- level_up_move 30, MOVE_BITE
- level_up_move 36, MOVE_FIRE_SPIN
- level_up_move 42, MOVE_SMOG
- level_up_move 47, MOVE_LEER
- level_up_move 52, MOVE_FLAMETHROWER
- .2byte -1
-
-gPorygonLevelUpLearnset:
- level_up_move 1, MOVE_CONVERSION_2
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_CONVERSION
- level_up_move 9, MOVE_AGILITY
- level_up_move 12, MOVE_PSYBEAM
- level_up_move 20, MOVE_RECOVER
- level_up_move 24, MOVE_SHARPEN
- level_up_move 32, MOVE_LOCK_ON
- level_up_move 36, MOVE_TRI_ATTACK
- level_up_move 44, MOVE_RECYCLE
- level_up_move 48, MOVE_ZAP_CANNON
- .2byte -1
-
-gOmanyteLevelUpLearnset:
- level_up_move 1, MOVE_CONSTRICT
- level_up_move 1, MOVE_WITHDRAW
- level_up_move 13, MOVE_BITE
- level_up_move 19, MOVE_WATER_GUN
- level_up_move 25, MOVE_MUD_SHOT
- level_up_move 31, MOVE_LEER
- level_up_move 37, MOVE_PROTECT
- level_up_move 43, MOVE_TICKLE
- level_up_move 49, MOVE_ANCIENT_POWER
- level_up_move 55, MOVE_HYDRO_PUMP
- .2byte -1
-
-gOmastarLevelUpLearnset:
- level_up_move 1, MOVE_CONSTRICT
- level_up_move 1, MOVE_WITHDRAW
- level_up_move 1, MOVE_BITE
- level_up_move 13, MOVE_BITE
- level_up_move 19, MOVE_WATER_GUN
- level_up_move 25, MOVE_MUD_SHOT
- level_up_move 31, MOVE_LEER
- level_up_move 37, MOVE_PROTECT
- level_up_move 40, MOVE_SPIKE_CANNON
- level_up_move 46, MOVE_TICKLE
- level_up_move 55, MOVE_ANCIENT_POWER
- level_up_move 65, MOVE_HYDRO_PUMP
- .2byte -1
-
-gKabutoLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_HARDEN
- level_up_move 13, MOVE_ABSORB
- level_up_move 19, MOVE_LEER
- level_up_move 25, MOVE_MUD_SHOT
- level_up_move 31, MOVE_SAND_ATTACK
- level_up_move 37, MOVE_ENDURE
- level_up_move 43, MOVE_METAL_SOUND
- level_up_move 49, MOVE_MEGA_DRAIN
- level_up_move 55, MOVE_ANCIENT_POWER
- .2byte -1
-
-gKabutopsLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_HARDEN
- level_up_move 1, MOVE_ABSORB
- level_up_move 13, MOVE_ABSORB
- level_up_move 19, MOVE_LEER
- level_up_move 25, MOVE_MUD_SHOT
- level_up_move 31, MOVE_SAND_ATTACK
- level_up_move 37, MOVE_ENDURE
- level_up_move 40, MOVE_SLASH
- level_up_move 46, MOVE_METAL_SOUND
- level_up_move 55, MOVE_MEGA_DRAIN
- level_up_move 65, MOVE_ANCIENT_POWER
- .2byte -1
-
-gAerodactylLevelUpLearnset:
- level_up_move 1, MOVE_WING_ATTACK
- level_up_move 8, MOVE_AGILITY
- level_up_move 15, MOVE_BITE
- level_up_move 22, MOVE_SUPERSONIC
- level_up_move 29, MOVE_ANCIENT_POWER
- level_up_move 36, MOVE_SCARY_FACE
- level_up_move 43, MOVE_TAKE_DOWN
- level_up_move 50, MOVE_HYPER_BEAM
- .2byte -1
-
-gSnorlaxLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 6, MOVE_AMNESIA
- level_up_move 10, MOVE_DEFENSE_CURL
- level_up_move 15, MOVE_BELLY_DRUM
- level_up_move 19, MOVE_HEADBUTT
- level_up_move 24, MOVE_YAWN
- level_up_move 28, MOVE_REST
- level_up_move 28, MOVE_SNORE
- level_up_move 33, MOVE_BODY_SLAM
- level_up_move 37, MOVE_BLOCK
- level_up_move 42, MOVE_COVET
- level_up_move 46, MOVE_ROLLOUT
- level_up_move 51, MOVE_HYPER_BEAM
- .2byte -1
-
-gArticunoLevelUpLearnset:
- level_up_move 1, MOVE_GUST
- level_up_move 1, MOVE_POWDER_SNOW
- level_up_move 13, MOVE_MIST
- level_up_move 25, MOVE_AGILITY
- level_up_move 37, MOVE_MIND_READER
- level_up_move 49, MOVE_ICE_BEAM
- level_up_move 61, MOVE_REFLECT
- level_up_move 73, MOVE_BLIZZARD
- level_up_move 85, MOVE_SHEER_COLD
- .2byte -1
-
-gZapdosLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_THUNDER_SHOCK
- level_up_move 13, MOVE_THUNDER_WAVE
- level_up_move 25, MOVE_AGILITY
- level_up_move 37, MOVE_DETECT
- level_up_move 49, MOVE_DRILL_PECK
- level_up_move 61, MOVE_CHARGE
- level_up_move 73, MOVE_LIGHT_SCREEN
- level_up_move 85, MOVE_THUNDER
- .2byte -1
-
-gMoltresLevelUpLearnset:
- level_up_move 1, MOVE_WING_ATTACK
- level_up_move 1, MOVE_EMBER
- level_up_move 13, MOVE_FIRE_SPIN
- level_up_move 25, MOVE_AGILITY
- level_up_move 37, MOVE_ENDURE
- level_up_move 49, MOVE_FLAMETHROWER
- level_up_move 61, MOVE_SAFEGUARD
- level_up_move 73, MOVE_HEAT_WAVE
- level_up_move 85, MOVE_SKY_ATTACK
- .2byte -1
-
-gDratiniLevelUpLearnset:
- level_up_move 1, MOVE_WRAP
- level_up_move 1, MOVE_LEER
- level_up_move 8, MOVE_THUNDER_WAVE
- level_up_move 15, MOVE_TWISTER
- level_up_move 22, MOVE_DRAGON_RAGE
- level_up_move 29, MOVE_SLAM
- level_up_move 36, MOVE_AGILITY
- level_up_move 43, MOVE_SAFEGUARD
- level_up_move 50, MOVE_OUTRAGE
- level_up_move 57, MOVE_HYPER_BEAM
- .2byte -1
-
-gDragonairLevelUpLearnset:
- level_up_move 1, MOVE_WRAP
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_THUNDER_WAVE
- level_up_move 1, MOVE_TWISTER
- level_up_move 8, MOVE_THUNDER_WAVE
- level_up_move 15, MOVE_TWISTER
- level_up_move 22, MOVE_DRAGON_RAGE
- level_up_move 29, MOVE_SLAM
- level_up_move 38, MOVE_AGILITY
- level_up_move 47, MOVE_SAFEGUARD
- level_up_move 56, MOVE_OUTRAGE
- level_up_move 65, MOVE_HYPER_BEAM
- .2byte -1
-
-gDragoniteLevelUpLearnset:
- level_up_move 1, MOVE_WRAP
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_THUNDER_WAVE
- level_up_move 1, MOVE_TWISTER
- level_up_move 8, MOVE_THUNDER_WAVE
- level_up_move 15, MOVE_TWISTER
- level_up_move 22, MOVE_DRAGON_RAGE
- level_up_move 29, MOVE_SLAM
- level_up_move 38, MOVE_AGILITY
- level_up_move 47, MOVE_SAFEGUARD
- level_up_move 55, MOVE_WING_ATTACK
- level_up_move 61, MOVE_OUTRAGE
- level_up_move 75, MOVE_HYPER_BEAM
- .2byte -1
-
-gMewtwoLevelUpLearnset:
- level_up_move 1, MOVE_CONFUSION
- level_up_move 1, MOVE_DISABLE
- level_up_move 11, MOVE_BARRIER
- level_up_move 22, MOVE_SWIFT
- level_up_move 33, MOVE_PSYCH_UP
- level_up_move 44, MOVE_FUTURE_SIGHT
- level_up_move 55, MOVE_MIST
- level_up_move 66, MOVE_PSYCHIC
- level_up_move 77, MOVE_AMNESIA
- level_up_move 88, MOVE_RECOVER
- level_up_move 99, MOVE_SAFEGUARD
- .2byte -1
-
-gMewLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 10, MOVE_TRANSFORM
- level_up_move 20, MOVE_MEGA_PUNCH
- level_up_move 30, MOVE_METRONOME
- level_up_move 40, MOVE_PSYCHIC
- level_up_move 50, MOVE_ANCIENT_POWER
- .2byte -1
-
-gChikoritaLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 8, MOVE_RAZOR_LEAF
- level_up_move 12, MOVE_REFLECT
- level_up_move 15, MOVE_POISON_POWDER
- level_up_move 22, MOVE_SYNTHESIS
- level_up_move 29, MOVE_BODY_SLAM
- level_up_move 36, MOVE_LIGHT_SCREEN
- level_up_move 43, MOVE_SAFEGUARD
- level_up_move 50, MOVE_SOLAR_BEAM
- .2byte -1
-
-gBayleefLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_RAZOR_LEAF
- level_up_move 1, MOVE_REFLECT
- level_up_move 8, MOVE_RAZOR_LEAF
- level_up_move 12, MOVE_REFLECT
- level_up_move 15, MOVE_POISON_POWDER
- level_up_move 23, MOVE_SYNTHESIS
- level_up_move 31, MOVE_BODY_SLAM
- level_up_move 39, MOVE_LIGHT_SCREEN
- level_up_move 47, MOVE_SAFEGUARD
- level_up_move 55, MOVE_SOLAR_BEAM
- .2byte -1
-
-gMeganiumLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_RAZOR_LEAF
- level_up_move 1, MOVE_REFLECT
- level_up_move 8, MOVE_RAZOR_LEAF
- level_up_move 12, MOVE_REFLECT
- level_up_move 15, MOVE_POISON_POWDER
- level_up_move 23, MOVE_SYNTHESIS
- level_up_move 31, MOVE_BODY_SLAM
- level_up_move 41, MOVE_LIGHT_SCREEN
- level_up_move 51, MOVE_SAFEGUARD
- level_up_move 61, MOVE_SOLAR_BEAM
- .2byte -1
-
-gCyndaquilLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_LEER
- level_up_move 6, MOVE_SMOKESCREEN
- level_up_move 12, MOVE_EMBER
- level_up_move 19, MOVE_QUICK_ATTACK
- level_up_move 27, MOVE_FLAME_WHEEL
- level_up_move 36, MOVE_SWIFT
- level_up_move 46, MOVE_FLAMETHROWER
- .2byte -1
-
-gQuilavaLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_SMOKESCREEN
- level_up_move 6, MOVE_SMOKESCREEN
- level_up_move 12, MOVE_EMBER
- level_up_move 21, MOVE_QUICK_ATTACK
- level_up_move 31, MOVE_FLAME_WHEEL
- level_up_move 42, MOVE_SWIFT
- level_up_move 54, MOVE_FLAMETHROWER
- .2byte -1
-
-gTyphlosionLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_SMOKESCREEN
- level_up_move 1, MOVE_EMBER
- level_up_move 6, MOVE_SMOKESCREEN
- level_up_move 12, MOVE_EMBER
- level_up_move 21, MOVE_QUICK_ATTACK
- level_up_move 31, MOVE_FLAME_WHEEL
- level_up_move 45, MOVE_SWIFT
- level_up_move 60, MOVE_FLAMETHROWER
- .2byte -1
-
-gTotodileLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_LEER
- level_up_move 7, MOVE_RAGE
- level_up_move 13, MOVE_WATER_GUN
- level_up_move 20, MOVE_BITE
- level_up_move 27, MOVE_SCARY_FACE
- level_up_move 35, MOVE_SLASH
- level_up_move 43, MOVE_SCREECH
- level_up_move 52, MOVE_HYDRO_PUMP
- .2byte -1
-
-gCroconawLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_RAGE
- level_up_move 7, MOVE_RAGE
- level_up_move 13, MOVE_WATER_GUN
- level_up_move 21, MOVE_BITE
- level_up_move 28, MOVE_SCARY_FACE
- level_up_move 37, MOVE_SLASH
- level_up_move 45, MOVE_SCREECH
- level_up_move 55, MOVE_HYDRO_PUMP
- .2byte -1
-
-gFeraligatrLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_RAGE
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 7, MOVE_RAGE
- level_up_move 13, MOVE_WATER_GUN
- level_up_move 21, MOVE_BITE
- level_up_move 28, MOVE_SCARY_FACE
- level_up_move 38, MOVE_SLASH
- level_up_move 47, MOVE_SCREECH
- level_up_move 58, MOVE_HYDRO_PUMP
- .2byte -1
-
-gSentretLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 4, MOVE_DEFENSE_CURL
- level_up_move 7, MOVE_QUICK_ATTACK
- level_up_move 12, MOVE_FURY_SWIPES
- level_up_move 17, MOVE_HELPING_HAND
- level_up_move 24, MOVE_SLAM
- level_up_move 31, MOVE_FOLLOW_ME
- level_up_move 40, MOVE_REST
- level_up_move 49, MOVE_AMNESIA
- .2byte -1
-
-gFurretLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_DEFENSE_CURL
- level_up_move 1, MOVE_QUICK_ATTACK
- level_up_move 4, MOVE_DEFENSE_CURL
- level_up_move 7, MOVE_QUICK_ATTACK
- level_up_move 12, MOVE_FURY_SWIPES
- level_up_move 19, MOVE_HELPING_HAND
- level_up_move 28, MOVE_SLAM
- level_up_move 37, MOVE_FOLLOW_ME
- level_up_move 48, MOVE_REST
- level_up_move 59, MOVE_AMNESIA
- .2byte -1
-
-gHoothootLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 6, MOVE_FORESIGHT
- level_up_move 11, MOVE_PECK
- level_up_move 16, MOVE_HYPNOSIS
- level_up_move 22, MOVE_REFLECT
- level_up_move 28, MOVE_TAKE_DOWN
- level_up_move 34, MOVE_CONFUSION
- level_up_move 48, MOVE_DREAM_EATER
- .2byte -1
-
-gNoctowlLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_FORESIGHT
- level_up_move 1, MOVE_PECK
- level_up_move 6, MOVE_FORESIGHT
- level_up_move 11, MOVE_PECK
- level_up_move 16, MOVE_HYPNOSIS
- level_up_move 25, MOVE_REFLECT
- level_up_move 33, MOVE_TAKE_DOWN
- level_up_move 41, MOVE_CONFUSION
- level_up_move 57, MOVE_DREAM_EATER
- .2byte -1
-
-gLedybaLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 8, MOVE_SUPERSONIC
- level_up_move 15, MOVE_COMET_PUNCH
- level_up_move 22, MOVE_LIGHT_SCREEN
- level_up_move 22, MOVE_REFLECT
- level_up_move 22, MOVE_SAFEGUARD
- level_up_move 29, MOVE_BATON_PASS
- level_up_move 36, MOVE_SWIFT
- level_up_move 43, MOVE_AGILITY
- level_up_move 50, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gLedianLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_SUPERSONIC
- level_up_move 8, MOVE_SUPERSONIC
- level_up_move 15, MOVE_COMET_PUNCH
- level_up_move 24, MOVE_LIGHT_SCREEN
- level_up_move 24, MOVE_REFLECT
- level_up_move 24, MOVE_SAFEGUARD
- level_up_move 33, MOVE_BATON_PASS
- level_up_move 42, MOVE_SWIFT
- level_up_move 51, MOVE_AGILITY
- level_up_move 60, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gSpinarakLevelUpLearnset:
- level_up_move 1, MOVE_POISON_STING
- level_up_move 1, MOVE_STRING_SHOT
- level_up_move 6, MOVE_SCARY_FACE
- level_up_move 11, MOVE_CONSTRICT
- level_up_move 17, MOVE_NIGHT_SHADE
- level_up_move 23, MOVE_LEECH_LIFE
- level_up_move 30, MOVE_FURY_SWIPES
- level_up_move 37, MOVE_SPIDER_WEB
- level_up_move 45, MOVE_AGILITY
- level_up_move 53, MOVE_PSYCHIC
- .2byte -1
-
-gAriadosLevelUpLearnset:
- level_up_move 1, MOVE_POISON_STING
- level_up_move 1, MOVE_STRING_SHOT
- level_up_move 1, MOVE_SCARY_FACE
- level_up_move 1, MOVE_CONSTRICT
- level_up_move 6, MOVE_SCARY_FACE
- level_up_move 11, MOVE_CONSTRICT
- level_up_move 17, MOVE_NIGHT_SHADE
- level_up_move 25, MOVE_LEECH_LIFE
- level_up_move 34, MOVE_FURY_SWIPES
- level_up_move 43, MOVE_SPIDER_WEB
- level_up_move 53, MOVE_AGILITY
- level_up_move 63, MOVE_PSYCHIC
- .2byte -1
-
-gCrobatLevelUpLearnset:
- level_up_move 1, MOVE_SCREECH
- level_up_move 1, MOVE_LEECH_LIFE
- level_up_move 1, MOVE_SUPERSONIC
- level_up_move 1, MOVE_ASTONISH
- level_up_move 6, MOVE_SUPERSONIC
- level_up_move 11, MOVE_ASTONISH
- level_up_move 16, MOVE_BITE
- level_up_move 21, MOVE_WING_ATTACK
- level_up_move 28, MOVE_CONFUSE_RAY
- level_up_move 35, MOVE_AIR_CUTTER
- level_up_move 42, MOVE_MEAN_LOOK
- level_up_move 49, MOVE_POISON_FANG
- level_up_move 56, MOVE_HAZE
- .2byte -1
-
-gChinchouLevelUpLearnset:
- level_up_move 1, MOVE_BUBBLE
- level_up_move 1, MOVE_THUNDER_WAVE
- level_up_move 5, MOVE_SUPERSONIC
- level_up_move 13, MOVE_FLAIL
- level_up_move 17, MOVE_WATER_GUN
- level_up_move 25, MOVE_SPARK
- level_up_move 29, MOVE_CONFUSE_RAY
- level_up_move 37, MOVE_TAKE_DOWN
- level_up_move 41, MOVE_HYDRO_PUMP
- level_up_move 49, MOVE_CHARGE
- .2byte -1
-
-gLanturnLevelUpLearnset:
- level_up_move 1, MOVE_BUBBLE
- level_up_move 1, MOVE_THUNDER_WAVE
- level_up_move 1, MOVE_SUPERSONIC
- level_up_move 5, MOVE_SUPERSONIC
- level_up_move 13, MOVE_FLAIL
- level_up_move 17, MOVE_WATER_GUN
- level_up_move 25, MOVE_SPARK
- level_up_move 32, MOVE_CONFUSE_RAY
- level_up_move 43, MOVE_TAKE_DOWN
- level_up_move 50, MOVE_HYDRO_PUMP
- level_up_move 61, MOVE_CHARGE
- .2byte -1
-
-gPichuLevelUpLearnset:
- level_up_move 1, MOVE_THUNDER_SHOCK
- level_up_move 1, MOVE_CHARM
- level_up_move 6, MOVE_TAIL_WHIP
- level_up_move 8, MOVE_THUNDER_WAVE
- level_up_move 11, MOVE_SWEET_KISS
- .2byte -1
-
-gCleffaLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_CHARM
- level_up_move 4, MOVE_ENCORE
- level_up_move 8, MOVE_SING
- level_up_move 13, MOVE_SWEET_KISS
- .2byte -1
-
-gIgglybuffLevelUpLearnset:
- level_up_move 1, MOVE_SING
- level_up_move 1, MOVE_CHARM
- level_up_move 4, MOVE_DEFENSE_CURL
- level_up_move 9, MOVE_POUND
- level_up_move 14, MOVE_SWEET_KISS
- .2byte -1
-
-gTogepiLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_CHARM
- level_up_move 6, MOVE_METRONOME
- level_up_move 11, MOVE_SWEET_KISS
- level_up_move 16, MOVE_YAWN
- level_up_move 21, MOVE_ENCORE
- level_up_move 26, MOVE_FOLLOW_ME
- level_up_move 31, MOVE_WISH
- level_up_move 36, MOVE_SAFEGUARD
- level_up_move 41, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gTogeticLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_CHARM
- level_up_move 6, MOVE_METRONOME
- level_up_move 11, MOVE_SWEET_KISS
- level_up_move 16, MOVE_YAWN
- level_up_move 21, MOVE_ENCORE
- level_up_move 26, MOVE_FOLLOW_ME
- level_up_move 31, MOVE_WISH
- level_up_move 36, MOVE_SAFEGUARD
- level_up_move 41, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gNatuLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_LEER
- level_up_move 10, MOVE_NIGHT_SHADE
- level_up_move 20, MOVE_TELEPORT
- level_up_move 30, MOVE_WISH
- level_up_move 30, MOVE_FUTURE_SIGHT
- level_up_move 40, MOVE_CONFUSE_RAY
- level_up_move 50, MOVE_PSYCHIC
- .2byte -1
-
-gXatuLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_LEER
- level_up_move 10, MOVE_NIGHT_SHADE
- level_up_move 20, MOVE_TELEPORT
- level_up_move 35, MOVE_WISH
- level_up_move 35, MOVE_FUTURE_SIGHT
- level_up_move 50, MOVE_CONFUSE_RAY
- level_up_move 65, MOVE_PSYCHIC
- .2byte -1
-
-gMareepLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 9, MOVE_THUNDER_SHOCK
- level_up_move 16, MOVE_THUNDER_WAVE
- level_up_move 23, MOVE_COTTON_SPORE
- level_up_move 30, MOVE_LIGHT_SCREEN
- level_up_move 37, MOVE_THUNDER
- .2byte -1
-
-gFlaaffyLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_THUNDER_SHOCK
- level_up_move 9, MOVE_THUNDER_SHOCK
- level_up_move 18, MOVE_THUNDER_WAVE
- level_up_move 27, MOVE_COTTON_SPORE
- level_up_move 36, MOVE_LIGHT_SCREEN
- level_up_move 45, MOVE_THUNDER
- .2byte -1
-
-gAmpharosLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_THUNDER_SHOCK
- level_up_move 1, MOVE_THUNDER_WAVE
- level_up_move 9, MOVE_THUNDER_SHOCK
- level_up_move 18, MOVE_THUNDER_WAVE
- level_up_move 27, MOVE_COTTON_SPORE
- level_up_move 30, MOVE_THUNDER_PUNCH
- level_up_move 42, MOVE_LIGHT_SCREEN
- level_up_move 57, MOVE_THUNDER
- .2byte -1
-
-gBellossomLevelUpLearnset:
- level_up_move 1, MOVE_ABSORB
- level_up_move 1, MOVE_SWEET_SCENT
- level_up_move 1, MOVE_STUN_SPORE
- level_up_move 1, MOVE_MAGICAL_LEAF
- level_up_move 44, MOVE_PETAL_DANCE
- level_up_move 55, MOVE_SOLAR_BEAM
- .2byte -1
-
-gMarillLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 3, MOVE_DEFENSE_CURL
- level_up_move 6, MOVE_TAIL_WHIP
- level_up_move 10, MOVE_WATER_GUN
- level_up_move 15, MOVE_ROLLOUT
- level_up_move 21, MOVE_BUBBLE_BEAM
- level_up_move 28, MOVE_DOUBLE_EDGE
- level_up_move 36, MOVE_RAIN_DANCE
- level_up_move 45, MOVE_HYDRO_PUMP
- .2byte -1
-
-gAzumarillLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_DEFENSE_CURL
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 3, MOVE_DEFENSE_CURL
- level_up_move 6, MOVE_TAIL_WHIP
- level_up_move 10, MOVE_WATER_GUN
- level_up_move 15, MOVE_ROLLOUT
- level_up_move 24, MOVE_BUBBLE_BEAM
- level_up_move 34, MOVE_DOUBLE_EDGE
- level_up_move 45, MOVE_RAIN_DANCE
- level_up_move 57, MOVE_HYDRO_PUMP
- .2byte -1
-
-gSudowoodoLevelUpLearnset:
- level_up_move 1, MOVE_ROCK_THROW
- level_up_move 1, MOVE_MIMIC
- level_up_move 9, MOVE_FLAIL
- level_up_move 17, MOVE_LOW_KICK
- level_up_move 25, MOVE_ROCK_SLIDE
- level_up_move 33, MOVE_BLOCK
- level_up_move 41, MOVE_FAINT_ATTACK
- level_up_move 49, MOVE_SLAM
- level_up_move 57, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gPolitoedLevelUpLearnset:
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 1, MOVE_HYPNOSIS
- level_up_move 1, MOVE_DOUBLE_SLAP
- level_up_move 1, MOVE_PERISH_SONG
- level_up_move 35, MOVE_PERISH_SONG
- level_up_move 51, MOVE_SWAGGER
- .2byte -1
-
-gHoppipLevelUpLearnset:
- level_up_move 1, MOVE_SPLASH
- level_up_move 5, MOVE_SYNTHESIS
- level_up_move 5, MOVE_TAIL_WHIP
- level_up_move 10, MOVE_TACKLE
- level_up_move 13, MOVE_POISON_POWDER
- level_up_move 15, MOVE_STUN_SPORE
- level_up_move 17, MOVE_SLEEP_POWDER
- level_up_move 20, MOVE_LEECH_SEED
- level_up_move 25, MOVE_COTTON_SPORE
- level_up_move 30, MOVE_MEGA_DRAIN
- .2byte -1
-
-gSkiploomLevelUpLearnset:
- level_up_move 1, MOVE_SPLASH
- level_up_move 1, MOVE_SYNTHESIS
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_TACKLE
- level_up_move 5, MOVE_SYNTHESIS
- level_up_move 5, MOVE_TAIL_WHIP
- level_up_move 10, MOVE_TACKLE
- level_up_move 13, MOVE_POISON_POWDER
- level_up_move 15, MOVE_STUN_SPORE
- level_up_move 17, MOVE_SLEEP_POWDER
- level_up_move 22, MOVE_LEECH_SEED
- level_up_move 29, MOVE_COTTON_SPORE
- level_up_move 36, MOVE_MEGA_DRAIN
- .2byte -1
-
-gJumpluffLevelUpLearnset:
- level_up_move 1, MOVE_SPLASH
- level_up_move 1, MOVE_SYNTHESIS
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_TACKLE
- level_up_move 5, MOVE_SYNTHESIS
- level_up_move 5, MOVE_TAIL_WHIP
- level_up_move 10, MOVE_TACKLE
- level_up_move 13, MOVE_POISON_POWDER
- level_up_move 15, MOVE_STUN_SPORE
- level_up_move 17, MOVE_SLEEP_POWDER
- level_up_move 22, MOVE_LEECH_SEED
- level_up_move 33, MOVE_COTTON_SPORE
- level_up_move 44, MOVE_MEGA_DRAIN
- .2byte -1
-
-gAipomLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 6, MOVE_SAND_ATTACK
- level_up_move 13, MOVE_ASTONISH
- level_up_move 18, MOVE_BATON_PASS
- level_up_move 25, MOVE_TICKLE
- level_up_move 31, MOVE_FURY_SWIPES
- level_up_move 38, MOVE_SWIFT
- level_up_move 43, MOVE_SCREECH
- level_up_move 50, MOVE_AGILITY
- .2byte -1
-
-gSunkernLevelUpLearnset:
- level_up_move 1, MOVE_ABSORB
- level_up_move 6, MOVE_GROWTH
- level_up_move 13, MOVE_MEGA_DRAIN
- level_up_move 18, MOVE_INGRAIN
- level_up_move 25, MOVE_ENDEAVOR
- level_up_move 30, MOVE_SUNNY_DAY
- level_up_move 37, MOVE_SYNTHESIS
- level_up_move 42, MOVE_GIGA_DRAIN
- .2byte -1
-
-gSunfloraLevelUpLearnset:
- level_up_move 1, MOVE_ABSORB
- level_up_move 1, MOVE_POUND
- level_up_move 6, MOVE_GROWTH
- level_up_move 13, MOVE_RAZOR_LEAF
- level_up_move 18, MOVE_INGRAIN
- level_up_move 25, MOVE_BULLET_SEED
- level_up_move 30, MOVE_SUNNY_DAY
- level_up_move 37, MOVE_PETAL_DANCE
- level_up_move 42, MOVE_SOLAR_BEAM
- .2byte -1
-
-gYanmaLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_FORESIGHT
- level_up_move 7, MOVE_QUICK_ATTACK
- level_up_move 13, MOVE_DOUBLE_TEAM
- level_up_move 19, MOVE_SONIC_BOOM
- level_up_move 25, MOVE_DETECT
- level_up_move 31, MOVE_SUPERSONIC
- level_up_move 37, MOVE_UPROAR
- level_up_move 43, MOVE_WING_ATTACK
- level_up_move 49, MOVE_SCREECH
- .2byte -1
-
-gWooperLevelUpLearnset:
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 11, MOVE_SLAM
- level_up_move 16, MOVE_MUD_SHOT
- level_up_move 21, MOVE_AMNESIA
- level_up_move 31, MOVE_YAWN
- level_up_move 36, MOVE_EARTHQUAKE
- level_up_move 41, MOVE_RAIN_DANCE
- level_up_move 51, MOVE_MIST
- level_up_move 51, MOVE_HAZE
- .2byte -1
-
-gQuagsireLevelUpLearnset:
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 11, MOVE_SLAM
- level_up_move 16, MOVE_MUD_SHOT
- level_up_move 23, MOVE_AMNESIA
- level_up_move 35, MOVE_YAWN
- level_up_move 42, MOVE_EARTHQUAKE
- level_up_move 49, MOVE_RAIN_DANCE
- level_up_move 61, MOVE_MIST
- level_up_move 61, MOVE_HAZE
- .2byte -1
-
-gEspeonLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_HELPING_HAND
- level_up_move 8, MOVE_SAND_ATTACK
- level_up_move 16, MOVE_CONFUSION
- level_up_move 23, MOVE_QUICK_ATTACK
- level_up_move 30, MOVE_SWIFT
- level_up_move 36, MOVE_PSYBEAM
- level_up_move 42, MOVE_PSYCH_UP
- level_up_move 47, MOVE_PSYCHIC
- level_up_move 52, MOVE_MORNING_SUN
- .2byte -1
-
-gUmbreonLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_HELPING_HAND
- level_up_move 8, MOVE_SAND_ATTACK
- level_up_move 16, MOVE_PURSUIT
- level_up_move 23, MOVE_QUICK_ATTACK
- level_up_move 30, MOVE_CONFUSE_RAY
- level_up_move 36, MOVE_FAINT_ATTACK
- level_up_move 42, MOVE_MEAN_LOOK
- level_up_move 47, MOVE_SCREECH
- level_up_move 52, MOVE_MOONLIGHT
- .2byte -1
-
-gMurkrowLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 9, MOVE_ASTONISH
- level_up_move 14, MOVE_PURSUIT
- level_up_move 22, MOVE_HAZE
- level_up_move 27, MOVE_NIGHT_SHADE
- level_up_move 35, MOVE_FAINT_ATTACK
- level_up_move 40, MOVE_TAUNT
- level_up_move 48, MOVE_MEAN_LOOK
- .2byte -1
-
-gSlowkingLevelUpLearnset:
- level_up_move 1, MOVE_CURSE
- level_up_move 1, MOVE_YAWN
- level_up_move 1, MOVE_TACKLE
- level_up_move 6, MOVE_GROWL
- level_up_move 15, MOVE_WATER_GUN
- level_up_move 20, MOVE_CONFUSION
- level_up_move 29, MOVE_DISABLE
- level_up_move 34, MOVE_HEADBUTT
- level_up_move 43, MOVE_SWAGGER
- level_up_move 48, MOVE_PSYCHIC
- .2byte -1
-
-gMisdreavusLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_PSYWAVE
- level_up_move 6, MOVE_SPITE
- level_up_move 11, MOVE_ASTONISH
- level_up_move 17, MOVE_CONFUSE_RAY
- level_up_move 23, MOVE_MEAN_LOOK
- level_up_move 30, MOVE_PSYBEAM
- level_up_move 37, MOVE_PAIN_SPLIT
- level_up_move 45, MOVE_PERISH_SONG
- level_up_move 53, MOVE_GRUDGE
- .2byte -1
-
-gUnownLevelUpLearnset:
- level_up_move 1, MOVE_HIDDEN_POWER
- .2byte -1
-
-gWobbuffetLevelUpLearnset:
- level_up_move 1, MOVE_COUNTER
- level_up_move 1, MOVE_MIRROR_COAT
- level_up_move 1, MOVE_SAFEGUARD
- level_up_move 1, MOVE_DESTINY_BOND
- .2byte -1
-
-gGirafarigLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 7, MOVE_ASTONISH
- level_up_move 13, MOVE_CONFUSION
- level_up_move 19, MOVE_STOMP
- level_up_move 25, MOVE_ODOR_SLEUTH
- level_up_move 31, MOVE_AGILITY
- level_up_move 37, MOVE_BATON_PASS
- level_up_move 43, MOVE_PSYBEAM
- level_up_move 49, MOVE_CRUNCH
- .2byte -1
-
-gPinecoLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_PROTECT
- level_up_move 8, MOVE_SELF_DESTRUCT
- level_up_move 15, MOVE_TAKE_DOWN
- level_up_move 22, MOVE_RAPID_SPIN
- level_up_move 29, MOVE_BIDE
- level_up_move 36, MOVE_EXPLOSION
- level_up_move 43, MOVE_SPIKES
- level_up_move 50, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gForretressLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_PROTECT
- level_up_move 1, MOVE_SELF_DESTRUCT
- level_up_move 8, MOVE_SELF_DESTRUCT
- level_up_move 15, MOVE_TAKE_DOWN
- level_up_move 22, MOVE_RAPID_SPIN
- level_up_move 29, MOVE_BIDE
- level_up_move 39, MOVE_EXPLOSION
- level_up_move 49, MOVE_SPIKES
- level_up_move 59, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gDunsparceLevelUpLearnset:
- level_up_move 1, MOVE_RAGE
- level_up_move 4, MOVE_DEFENSE_CURL
- level_up_move 11, MOVE_YAWN
- level_up_move 14, MOVE_GLARE
- level_up_move 21, MOVE_SPITE
- level_up_move 24, MOVE_PURSUIT
- level_up_move 31, MOVE_SCREECH
- level_up_move 34, MOVE_TAKE_DOWN
- level_up_move 41, MOVE_ENDEAVOR
- .2byte -1
-
-gGligarLevelUpLearnset:
- level_up_move 1, MOVE_POISON_STING
- level_up_move 6, MOVE_SAND_ATTACK
- level_up_move 13, MOVE_HARDEN
- level_up_move 20, MOVE_QUICK_ATTACK
- level_up_move 28, MOVE_FAINT_ATTACK
- level_up_move 36, MOVE_SLASH
- level_up_move 44, MOVE_SCREECH
- level_up_move 52, MOVE_GUILLOTINE
- .2byte -1
-
-gSteelixLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_SCREECH
- level_up_move 9, MOVE_BIND
- level_up_move 13, MOVE_ROCK_THROW
- level_up_move 21, MOVE_HARDEN
- level_up_move 25, MOVE_RAGE
- level_up_move 33, MOVE_SANDSTORM
- level_up_move 37, MOVE_SLAM
- level_up_move 45, MOVE_IRON_TAIL
- level_up_move 49, MOVE_CRUNCH
- level_up_move 57, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gSnubbullLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_SCARY_FACE
- level_up_move 4, MOVE_TAIL_WHIP
- level_up_move 8, MOVE_CHARM
- level_up_move 13, MOVE_BITE
- level_up_move 19, MOVE_LICK
- level_up_move 26, MOVE_ROAR
- level_up_move 34, MOVE_RAGE
- level_up_move 43, MOVE_TAKE_DOWN
- level_up_move 53, MOVE_CRUNCH
- .2byte -1
-
-gGranbullLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_SCARY_FACE
- level_up_move 4, MOVE_TAIL_WHIP
- level_up_move 8, MOVE_CHARM
- level_up_move 13, MOVE_BITE
- level_up_move 19, MOVE_LICK
- level_up_move 28, MOVE_ROAR
- level_up_move 38, MOVE_RAGE
- level_up_move 49, MOVE_TAKE_DOWN
- level_up_move 61, MOVE_CRUNCH
- .2byte -1
-
-gQwilfishLevelUpLearnset:
- level_up_move 1, MOVE_SPIKES
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_POISON_STING
- level_up_move 10, MOVE_HARDEN
- level_up_move 10, MOVE_MINIMIZE
- level_up_move 19, MOVE_WATER_GUN
- level_up_move 28, MOVE_PIN_MISSILE
- level_up_move 37, MOVE_TAKE_DOWN
- level_up_move 46, MOVE_HYDRO_PUMP
- .2byte -1
-
-gScizorLevelUpLearnset:
- level_up_move 1, MOVE_QUICK_ATTACK
- level_up_move 1, MOVE_LEER
- level_up_move 6, MOVE_FOCUS_ENERGY
- level_up_move 11, MOVE_PURSUIT
- level_up_move 16, MOVE_FALSE_SWIPE
- level_up_move 21, MOVE_AGILITY
- level_up_move 26, MOVE_METAL_CLAW
- level_up_move 31, MOVE_SLASH
- level_up_move 36, MOVE_SWORDS_DANCE
- level_up_move 41, MOVE_DOUBLE_TEAM
- level_up_move 46, MOVE_FURY_CUTTER
- .2byte -1
-
-gShuckleLevelUpLearnset:
- level_up_move 1, MOVE_CONSTRICT
- level_up_move 1, MOVE_WITHDRAW
- level_up_move 9, MOVE_WRAP
- level_up_move 14, MOVE_ENCORE
- level_up_move 23, MOVE_SAFEGUARD
- level_up_move 28, MOVE_BIDE
- level_up_move 37, MOVE_REST
- .2byte -1
-
-gHeracrossLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_LEER
- level_up_move 6, MOVE_HORN_ATTACK
- level_up_move 11, MOVE_ENDURE
- level_up_move 17, MOVE_FURY_ATTACK
- level_up_move 23, MOVE_BRICK_BREAK
- level_up_move 30, MOVE_COUNTER
- level_up_move 37, MOVE_TAKE_DOWN
- level_up_move 45, MOVE_REVERSAL
- level_up_move 53, MOVE_MEGAHORN
- .2byte -1
-
-gSneaselLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_TAUNT
- level_up_move 8, MOVE_QUICK_ATTACK
- level_up_move 15, MOVE_SCREECH
- level_up_move 22, MOVE_FAINT_ATTACK
- level_up_move 29, MOVE_FURY_SWIPES
- level_up_move 36, MOVE_AGILITY
- level_up_move 43, MOVE_ICY_WIND
- level_up_move 50, MOVE_SLASH
- level_up_move 57, MOVE_BEAT_UP
- level_up_move 64, MOVE_METAL_CLAW
- .2byte -1
-
-gTeddiursaLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_LEER
- level_up_move 7, MOVE_LICK
- level_up_move 13, MOVE_FURY_SWIPES
- level_up_move 19, MOVE_FAKE_TEARS
- level_up_move 25, MOVE_FAINT_ATTACK
- level_up_move 31, MOVE_REST
- level_up_move 37, MOVE_SLASH
- level_up_move 43, MOVE_SNORE
- level_up_move 49, MOVE_THRASH
- .2byte -1
-
-gUrsaringLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_LICK
- level_up_move 1, MOVE_FURY_SWIPES
- level_up_move 7, MOVE_LICK
- level_up_move 13, MOVE_FURY_SWIPES
- level_up_move 19, MOVE_FAKE_TEARS
- level_up_move 25, MOVE_FAINT_ATTACK
- level_up_move 31, MOVE_REST
- level_up_move 37, MOVE_SLASH
- level_up_move 43, MOVE_SNORE
- level_up_move 49, MOVE_THRASH
- .2byte -1
-
-gSlugmaLevelUpLearnset:
- level_up_move 1, MOVE_YAWN
- level_up_move 1, MOVE_SMOG
- level_up_move 8, MOVE_EMBER
- level_up_move 15, MOVE_ROCK_THROW
- level_up_move 22, MOVE_HARDEN
- level_up_move 29, MOVE_AMNESIA
- level_up_move 36, MOVE_FLAMETHROWER
- level_up_move 43, MOVE_ROCK_SLIDE
- level_up_move 50, MOVE_BODY_SLAM
- .2byte -1
-
-gMagcargoLevelUpLearnset:
- level_up_move 1, MOVE_YAWN
- level_up_move 1, MOVE_SMOG
- level_up_move 1, MOVE_EMBER
- level_up_move 1, MOVE_ROCK_THROW
- level_up_move 8, MOVE_EMBER
- level_up_move 15, MOVE_ROCK_THROW
- level_up_move 22, MOVE_HARDEN
- level_up_move 29, MOVE_AMNESIA
- level_up_move 36, MOVE_FLAMETHROWER
- level_up_move 48, MOVE_ROCK_SLIDE
- level_up_move 60, MOVE_BODY_SLAM
- .2byte -1
-
-gSwinubLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_ODOR_SLEUTH
- level_up_move 10, MOVE_POWDER_SNOW
- level_up_move 19, MOVE_ENDURE
- level_up_move 28, MOVE_TAKE_DOWN
- level_up_move 37, MOVE_MIST
- level_up_move 46, MOVE_BLIZZARD
- level_up_move 55, MOVE_AMNESIA
- .2byte -1
-
-gPiloswineLevelUpLearnset:
- level_up_move 1, MOVE_HORN_ATTACK
- level_up_move 1, MOVE_ODOR_SLEUTH
- level_up_move 1, MOVE_POWDER_SNOW
- level_up_move 1, MOVE_ENDURE
- level_up_move 10, MOVE_POWDER_SNOW
- level_up_move 19, MOVE_ENDURE
- level_up_move 28, MOVE_TAKE_DOWN
- level_up_move 33, MOVE_FURY_ATTACK
- level_up_move 42, MOVE_MIST
- level_up_move 56, MOVE_BLIZZARD
- level_up_move 70, MOVE_AMNESIA
- .2byte -1
-
-gCorsolaLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 6, MOVE_HARDEN
- level_up_move 12, MOVE_BUBBLE
- level_up_move 17, MOVE_RECOVER
- level_up_move 17, MOVE_REFRESH
- level_up_move 23, MOVE_BUBBLE_BEAM
- level_up_move 28, MOVE_SPIKE_CANNON
- level_up_move 34, MOVE_ROCK_BLAST
- level_up_move 39, MOVE_MIRROR_COAT
- level_up_move 45, MOVE_ANCIENT_POWER
- .2byte -1
-
-gRemoraidLevelUpLearnset:
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 11, MOVE_LOCK_ON
- level_up_move 22, MOVE_PSYBEAM
- level_up_move 22, MOVE_AURORA_BEAM
- level_up_move 22, MOVE_BUBBLE_BEAM
- level_up_move 33, MOVE_FOCUS_ENERGY
- level_up_move 44, MOVE_ICE_BEAM
- level_up_move 55, MOVE_HYPER_BEAM
- .2byte -1
-
-gOctilleryLevelUpLearnset:
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 11, MOVE_CONSTRICT
- level_up_move 22, MOVE_PSYBEAM
- level_up_move 22, MOVE_AURORA_BEAM
- level_up_move 22, MOVE_BUBBLE_BEAM
- level_up_move 25, MOVE_OCTAZOOKA
- level_up_move 38, MOVE_FOCUS_ENERGY
- level_up_move 54, MOVE_ICE_BEAM
- level_up_move 70, MOVE_HYPER_BEAM
- .2byte -1
-
-gDelibirdLevelUpLearnset:
- level_up_move 1, MOVE_PRESENT
- .2byte -1
-
-gMantineLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_BUBBLE
- level_up_move 8, MOVE_SUPERSONIC
- level_up_move 15, MOVE_BUBBLE_BEAM
- level_up_move 22, MOVE_TAKE_DOWN
- level_up_move 29, MOVE_AGILITY
- level_up_move 36, MOVE_WING_ATTACK
- level_up_move 43, MOVE_WATER_PULSE
- level_up_move 50, MOVE_CONFUSE_RAY
- .2byte -1
-
-gSkarmoryLevelUpLearnset:
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_PECK
- level_up_move 10, MOVE_SAND_ATTACK
- level_up_move 13, MOVE_SWIFT
- level_up_move 16, MOVE_AGILITY
- level_up_move 26, MOVE_FURY_ATTACK
- level_up_move 29, MOVE_AIR_CUTTER
- level_up_move 32, MOVE_STEEL_WING
- level_up_move 42, MOVE_SPIKES
- level_up_move 45, MOVE_METAL_SOUND
- .2byte -1
-
-gHoundourLevelUpLearnset:
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_EMBER
- level_up_move 7, MOVE_HOWL
- level_up_move 13, MOVE_SMOG
- level_up_move 19, MOVE_ROAR
- level_up_move 25, MOVE_BITE
- level_up_move 31, MOVE_ODOR_SLEUTH
- level_up_move 37, MOVE_FAINT_ATTACK
- level_up_move 43, MOVE_FLAMETHROWER
- level_up_move 49, MOVE_CRUNCH
- .2byte -1
-
-gHoundoomLevelUpLearnset:
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_EMBER
- level_up_move 1, MOVE_HOWL
- level_up_move 7, MOVE_HOWL
- level_up_move 13, MOVE_SMOG
- level_up_move 19, MOVE_ROAR
- level_up_move 27, MOVE_BITE
- level_up_move 35, MOVE_ODOR_SLEUTH
- level_up_move 43, MOVE_FAINT_ATTACK
- level_up_move 51, MOVE_FLAMETHROWER
- level_up_move 59, MOVE_CRUNCH
- .2byte -1
-
-gKingdraLevelUpLearnset:
- level_up_move 1, MOVE_BUBBLE
- level_up_move 1, MOVE_SMOKESCREEN
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 8, MOVE_SMOKESCREEN
- level_up_move 15, MOVE_LEER
- level_up_move 22, MOVE_WATER_GUN
- level_up_move 29, MOVE_TWISTER
- level_up_move 40, MOVE_AGILITY
- level_up_move 51, MOVE_HYDRO_PUMP
- level_up_move 62, MOVE_DRAGON_DANCE
- .2byte -1
-
-gPhanpyLevelUpLearnset:
- level_up_move 1, MOVE_ODOR_SLEUTH
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 9, MOVE_DEFENSE_CURL
- level_up_move 17, MOVE_FLAIL
- level_up_move 25, MOVE_TAKE_DOWN
- level_up_move 33, MOVE_ROLLOUT
- level_up_move 41, MOVE_ENDURE
- level_up_move 49, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gDonphanLevelUpLearnset:
- level_up_move 1, MOVE_ODOR_SLEUTH
- level_up_move 1, MOVE_HORN_ATTACK
- level_up_move 1, MOVE_GROWL
- level_up_move 9, MOVE_DEFENSE_CURL
- level_up_move 17, MOVE_FLAIL
- level_up_move 25, MOVE_FURY_ATTACK
- level_up_move 33, MOVE_ROLLOUT
- level_up_move 41, MOVE_RAPID_SPIN
- level_up_move 49, MOVE_EARTHQUAKE
- .2byte -1
-
-gPorygon2LevelUpLearnset:
- level_up_move 1, MOVE_CONVERSION_2
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_CONVERSION
- level_up_move 9, MOVE_AGILITY
- level_up_move 12, MOVE_PSYBEAM
- level_up_move 20, MOVE_RECOVER
- level_up_move 24, MOVE_DEFENSE_CURL
- level_up_move 32, MOVE_LOCK_ON
- level_up_move 36, MOVE_TRI_ATTACK
- level_up_move 44, MOVE_RECYCLE
- level_up_move 48, MOVE_ZAP_CANNON
- .2byte -1
-
-gStantlerLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 7, MOVE_LEER
- level_up_move 13, MOVE_ASTONISH
- level_up_move 19, MOVE_HYPNOSIS
- level_up_move 25, MOVE_STOMP
- level_up_move 31, MOVE_SAND_ATTACK
- level_up_move 37, MOVE_TAKE_DOWN
- level_up_move 43, MOVE_CONFUSE_RAY
- level_up_move 49, MOVE_CALM_MIND
- .2byte -1
-
-gSmeargleLevelUpLearnset:
- level_up_move 1, MOVE_SKETCH
- level_up_move 11, MOVE_SKETCH
- level_up_move 21, MOVE_SKETCH
- level_up_move 31, MOVE_SKETCH
- level_up_move 41, MOVE_SKETCH
- level_up_move 51, MOVE_SKETCH
- level_up_move 61, MOVE_SKETCH
- level_up_move 71, MOVE_SKETCH
- level_up_move 81, MOVE_SKETCH
- level_up_move 91, MOVE_SKETCH
- .2byte -1
-
-gTyrogueLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gHitmontopLevelUpLearnset:
- level_up_move 1, MOVE_REVENGE
- level_up_move 1, MOVE_ROLLING_KICK
- level_up_move 7, MOVE_FOCUS_ENERGY
- level_up_move 13, MOVE_PURSUIT
- level_up_move 19, MOVE_QUICK_ATTACK
- level_up_move 20, MOVE_TRIPLE_KICK
- level_up_move 25, MOVE_RAPID_SPIN
- level_up_move 31, MOVE_COUNTER
- level_up_move 37, MOVE_AGILITY
- level_up_move 43, MOVE_DETECT
- level_up_move 49, MOVE_ENDEAVOR
- .2byte -1
-
-gSmoochumLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_LICK
- level_up_move 9, MOVE_SWEET_KISS
- level_up_move 13, MOVE_POWDER_SNOW
- level_up_move 21, MOVE_CONFUSION
- level_up_move 25, MOVE_SING
- level_up_move 33, MOVE_MEAN_LOOK
- level_up_move 37, MOVE_FAKE_TEARS
- level_up_move 45, MOVE_PSYCHIC
- level_up_move 49, MOVE_PERISH_SONG
- level_up_move 57, MOVE_BLIZZARD
- .2byte -1
-
-gElekidLevelUpLearnset:
- level_up_move 1, MOVE_QUICK_ATTACK
- level_up_move 1, MOVE_LEER
- level_up_move 9, MOVE_THUNDER_PUNCH
- level_up_move 17, MOVE_LIGHT_SCREEN
- level_up_move 25, MOVE_SWIFT
- level_up_move 33, MOVE_SCREECH
- level_up_move 41, MOVE_THUNDERBOLT
- level_up_move 49, MOVE_THUNDER
- .2byte -1
-
-gMagbyLevelUpLearnset:
- level_up_move 1, MOVE_EMBER
- level_up_move 7, MOVE_LEER
- level_up_move 13, MOVE_SMOG
- level_up_move 19, MOVE_FIRE_PUNCH
- level_up_move 25, MOVE_SMOKESCREEN
- level_up_move 31, MOVE_SUNNY_DAY
- level_up_move 37, MOVE_FLAMETHROWER
- level_up_move 43, MOVE_CONFUSE_RAY
- level_up_move 49, MOVE_FIRE_BLAST
- .2byte -1
-
-gMiltankLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 4, MOVE_GROWL
- level_up_move 8, MOVE_DEFENSE_CURL
- level_up_move 13, MOVE_STOMP
- level_up_move 19, MOVE_MILK_DRINK
- level_up_move 26, MOVE_BIDE
- level_up_move 34, MOVE_ROLLOUT
- level_up_move 43, MOVE_BODY_SLAM
- level_up_move 53, MOVE_HEAL_BELL
- .2byte -1
-
-gBlisseyLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_GROWL
- level_up_move 4, MOVE_TAIL_WHIP
- level_up_move 7, MOVE_REFRESH
- level_up_move 10, MOVE_SOFT_BOILED
- level_up_move 13, MOVE_DOUBLE_SLAP
- level_up_move 18, MOVE_MINIMIZE
- level_up_move 23, MOVE_SING
- level_up_move 28, MOVE_EGG_BOMB
- level_up_move 33, MOVE_DEFENSE_CURL
- level_up_move 40, MOVE_LIGHT_SCREEN
- level_up_move 47, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gRaikouLevelUpLearnset:
- level_up_move 1, MOVE_BITE
- level_up_move 1, MOVE_LEER
- level_up_move 11, MOVE_THUNDER_SHOCK
- level_up_move 21, MOVE_ROAR
- level_up_move 31, MOVE_QUICK_ATTACK
- level_up_move 41, MOVE_SPARK
- level_up_move 51, MOVE_REFLECT
- level_up_move 61, MOVE_CRUNCH
- level_up_move 71, MOVE_THUNDER
- level_up_move 81, MOVE_CALM_MIND
- .2byte -1
-
-gEnteiLevelUpLearnset:
- level_up_move 1, MOVE_BITE
- level_up_move 1, MOVE_LEER
- level_up_move 11, MOVE_EMBER
- level_up_move 21, MOVE_ROAR
- level_up_move 31, MOVE_FIRE_SPIN
- level_up_move 41, MOVE_STOMP
- level_up_move 51, MOVE_FLAMETHROWER
- level_up_move 61, MOVE_SWAGGER
- level_up_move 71, MOVE_FIRE_BLAST
- level_up_move 81, MOVE_CALM_MIND
- .2byte -1
-
-gSuicuneLevelUpLearnset:
- level_up_move 1, MOVE_BITE
- level_up_move 1, MOVE_LEER
- level_up_move 11, MOVE_BUBBLE_BEAM
- level_up_move 21, MOVE_RAIN_DANCE
- level_up_move 31, MOVE_GUST
- level_up_move 41, MOVE_AURORA_BEAM
- level_up_move 51, MOVE_MIST
- level_up_move 61, MOVE_MIRROR_COAT
- level_up_move 71, MOVE_HYDRO_PUMP
- level_up_move 81, MOVE_CALM_MIND
- .2byte -1
-
-gLarvitarLevelUpLearnset:
- level_up_move 1, MOVE_BITE
- level_up_move 1, MOVE_LEER
- level_up_move 8, MOVE_SANDSTORM
- level_up_move 15, MOVE_SCREECH
- level_up_move 22, MOVE_ROCK_SLIDE
- level_up_move 29, MOVE_THRASH
- level_up_move 36, MOVE_SCARY_FACE
- level_up_move 43, MOVE_CRUNCH
- level_up_move 50, MOVE_EARTHQUAKE
- level_up_move 57, MOVE_HYPER_BEAM
- .2byte -1
-
-gPupitarLevelUpLearnset:
- level_up_move 1, MOVE_BITE
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_SANDSTORM
- level_up_move 1, MOVE_SCREECH
- level_up_move 8, MOVE_SANDSTORM
- level_up_move 15, MOVE_SCREECH
- level_up_move 22, MOVE_ROCK_SLIDE
- level_up_move 29, MOVE_THRASH
- level_up_move 38, MOVE_SCARY_FACE
- level_up_move 47, MOVE_CRUNCH
- level_up_move 56, MOVE_EARTHQUAKE
- level_up_move 65, MOVE_HYPER_BEAM
- .2byte -1
-
-gTyranitarLevelUpLearnset:
- level_up_move 1, MOVE_BITE
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_SANDSTORM
- level_up_move 1, MOVE_SCREECH
- level_up_move 8, MOVE_SANDSTORM
- level_up_move 15, MOVE_SCREECH
- level_up_move 22, MOVE_ROCK_SLIDE
- level_up_move 29, MOVE_THRASH
- level_up_move 38, MOVE_SCARY_FACE
- level_up_move 47, MOVE_CRUNCH
- level_up_move 61, MOVE_EARTHQUAKE
- level_up_move 75, MOVE_HYPER_BEAM
- .2byte -1
-
-gLugiaLevelUpLearnset:
- level_up_move 1, MOVE_WHIRLWIND
- level_up_move 11, MOVE_SAFEGUARD
- level_up_move 22, MOVE_GUST
- level_up_move 33, MOVE_RECOVER
- level_up_move 44, MOVE_HYDRO_PUMP
- level_up_move 55, MOVE_RAIN_DANCE
- level_up_move 66, MOVE_SWIFT
- level_up_move 77, MOVE_AEROBLAST
- level_up_move 88, MOVE_ANCIENT_POWER
- level_up_move 99, MOVE_FUTURE_SIGHT
- .2byte -1
-
-gHoOhLevelUpLearnset:
- level_up_move 1, MOVE_WHIRLWIND
- level_up_move 11, MOVE_SAFEGUARD
- level_up_move 22, MOVE_GUST
- level_up_move 33, MOVE_RECOVER
- level_up_move 44, MOVE_FIRE_BLAST
- level_up_move 55, MOVE_SUNNY_DAY
- level_up_move 66, MOVE_SWIFT
- level_up_move 77, MOVE_SACRED_FIRE
- level_up_move 88, MOVE_ANCIENT_POWER
- level_up_move 99, MOVE_FUTURE_SIGHT
- .2byte -1
-
-gCelebiLevelUpLearnset:
- level_up_move 1, MOVE_LEECH_SEED
- level_up_move 1, MOVE_CONFUSION
- level_up_move 1, MOVE_RECOVER
- level_up_move 1, MOVE_HEAL_BELL
- level_up_move 10, MOVE_SAFEGUARD
- level_up_move 20, MOVE_ANCIENT_POWER
- level_up_move 30, MOVE_FUTURE_SIGHT
- level_up_move 40, MOVE_BATON_PASS
- level_up_move 50, MOVE_PERISH_SONG
- .2byte -1
-
-gSpecies252LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies253LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies254LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies255LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies256LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies257LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies258LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies259LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies260LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies261LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies262LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies263LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies264LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies265LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies266LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies267LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies268LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies269LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies270LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies271LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies272LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies273LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies274LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies275LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gSpecies276LevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- .2byte -1
-
-gTreeckoLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_LEER
- level_up_move 6, MOVE_ABSORB
- level_up_move 11, MOVE_QUICK_ATTACK
- level_up_move 16, MOVE_PURSUIT
- level_up_move 21, MOVE_SCREECH
- level_up_move 26, MOVE_MEGA_DRAIN
- level_up_move 31, MOVE_AGILITY
- level_up_move 36, MOVE_SLAM
- level_up_move 41, MOVE_DETECT
- level_up_move 46, MOVE_GIGA_DRAIN
- .2byte -1
-
-gGrovyleLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_ABSORB
- level_up_move 1, MOVE_QUICK_ATTACK
- level_up_move 6, MOVE_ABSORB
- level_up_move 11, MOVE_QUICK_ATTACK
- level_up_move 16, MOVE_FURY_CUTTER
- level_up_move 17, MOVE_PURSUIT
- level_up_move 23, MOVE_SCREECH
- level_up_move 29, MOVE_LEAF_BLADE
- level_up_move 35, MOVE_AGILITY
- level_up_move 41, MOVE_SLAM
- level_up_move 47, MOVE_DETECT
- level_up_move 53, MOVE_FALSE_SWIPE
- .2byte -1
-
-gSceptileLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_ABSORB
- level_up_move 1, MOVE_QUICK_ATTACK
- level_up_move 6, MOVE_ABSORB
- level_up_move 11, MOVE_QUICK_ATTACK
- level_up_move 16, MOVE_FURY_CUTTER
- level_up_move 17, MOVE_PURSUIT
- level_up_move 23, MOVE_SCREECH
- level_up_move 29, MOVE_LEAF_BLADE
- level_up_move 35, MOVE_AGILITY
- level_up_move 43, MOVE_SLAM
- level_up_move 51, MOVE_DETECT
- level_up_move 59, MOVE_FALSE_SWIPE
- .2byte -1
-
-gTorchicLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_GROWL
- level_up_move 7, MOVE_FOCUS_ENERGY
- level_up_move 10, MOVE_EMBER
- level_up_move 16, MOVE_PECK
- level_up_move 19, MOVE_SAND_ATTACK
- level_up_move 25, MOVE_FIRE_SPIN
- level_up_move 28, MOVE_QUICK_ATTACK
- level_up_move 34, MOVE_SLASH
- level_up_move 37, MOVE_MIRROR_MOVE
- level_up_move 43, MOVE_FLAMETHROWER
- .2byte -1
-
-gCombuskenLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_FOCUS_ENERGY
- level_up_move 1, MOVE_EMBER
- level_up_move 7, MOVE_FOCUS_ENERGY
- level_up_move 13, MOVE_EMBER
- level_up_move 16, MOVE_DOUBLE_KICK
- level_up_move 17, MOVE_PECK
- level_up_move 21, MOVE_SAND_ATTACK
- level_up_move 28, MOVE_BULK_UP
- level_up_move 32, MOVE_QUICK_ATTACK
- level_up_move 39, MOVE_SLASH
- level_up_move 43, MOVE_MIRROR_MOVE
- level_up_move 50, MOVE_SKY_UPPERCUT
- .2byte -1
-
-gBlazikenLevelUpLearnset:
- level_up_move 1, MOVE_FIRE_PUNCH
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_FOCUS_ENERGY
- level_up_move 1, MOVE_EMBER
- level_up_move 7, MOVE_FOCUS_ENERGY
- level_up_move 13, MOVE_EMBER
- level_up_move 16, MOVE_DOUBLE_KICK
- level_up_move 17, MOVE_PECK
- level_up_move 21, MOVE_SAND_ATTACK
- level_up_move 28, MOVE_BULK_UP
- level_up_move 32, MOVE_QUICK_ATTACK
- level_up_move 36, MOVE_BLAZE_KICK
- level_up_move 42, MOVE_SLASH
- level_up_move 49, MOVE_MIRROR_MOVE
- level_up_move 59, MOVE_SKY_UPPERCUT
- .2byte -1
-
-gMudkipLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 6, MOVE_MUD_SLAP
- level_up_move 10, MOVE_WATER_GUN
- level_up_move 15, MOVE_BIDE
- level_up_move 19, MOVE_FORESIGHT
- level_up_move 24, MOVE_MUD_SPORT
- level_up_move 28, MOVE_TAKE_DOWN
- level_up_move 33, MOVE_WHIRLPOOL
- level_up_move 37, MOVE_PROTECT
- level_up_move 42, MOVE_HYDRO_PUMP
- level_up_move 46, MOVE_ENDEAVOR
- .2byte -1
-
-gMarshtompLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_MUD_SLAP
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 6, MOVE_MUD_SLAP
- level_up_move 10, MOVE_WATER_GUN
- level_up_move 15, MOVE_BIDE
- level_up_move 16, MOVE_MUD_SHOT
- level_up_move 20, MOVE_FORESIGHT
- level_up_move 25, MOVE_MUD_SPORT
- level_up_move 31, MOVE_TAKE_DOWN
- level_up_move 37, MOVE_MUDDY_WATER
- level_up_move 42, MOVE_PROTECT
- level_up_move 46, MOVE_EARTHQUAKE
- level_up_move 53, MOVE_ENDEAVOR
- .2byte -1
-
-gSwampertLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_MUD_SLAP
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 6, MOVE_MUD_SLAP
- level_up_move 10, MOVE_WATER_GUN
- level_up_move 15, MOVE_BIDE
- level_up_move 16, MOVE_MUD_SHOT
- level_up_move 20, MOVE_FORESIGHT
- level_up_move 25, MOVE_MUD_SPORT
- level_up_move 31, MOVE_TAKE_DOWN
- level_up_move 39, MOVE_MUDDY_WATER
- level_up_move 46, MOVE_PROTECT
- level_up_move 52, MOVE_EARTHQUAKE
- level_up_move 61, MOVE_ENDEAVOR
- .2byte -1
-
-gPoochyenaLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 5, MOVE_HOWL
- level_up_move 9, MOVE_SAND_ATTACK
- level_up_move 13, MOVE_BITE
- level_up_move 17, MOVE_ODOR_SLEUTH
- level_up_move 21, MOVE_ROAR
- level_up_move 25, MOVE_SWAGGER
- level_up_move 29, MOVE_SCARY_FACE
- level_up_move 33, MOVE_TAKE_DOWN
- level_up_move 37, MOVE_TAUNT
- level_up_move 41, MOVE_CRUNCH
- level_up_move 45, MOVE_THIEF
- .2byte -1
-
-gMightyenaLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_HOWL
- level_up_move 1, MOVE_SAND_ATTACK
- level_up_move 1, MOVE_BITE
- level_up_move 5, MOVE_HOWL
- level_up_move 9, MOVE_SAND_ATTACK
- level_up_move 13, MOVE_BITE
- level_up_move 17, MOVE_ODOR_SLEUTH
- level_up_move 22, MOVE_ROAR
- level_up_move 27, MOVE_SWAGGER
- level_up_move 32, MOVE_SCARY_FACE
- level_up_move 37, MOVE_TAKE_DOWN
- level_up_move 42, MOVE_TAUNT
- level_up_move 47, MOVE_CRUNCH
- level_up_move 52, MOVE_THIEF
- .2byte -1
-
-gZigzagoonLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 5, MOVE_TAIL_WHIP
- level_up_move 9, MOVE_HEADBUTT
- level_up_move 13, MOVE_SAND_ATTACK
- level_up_move 17, MOVE_ODOR_SLEUTH
- level_up_move 21, MOVE_MUD_SPORT
- level_up_move 25, MOVE_PIN_MISSILE
- level_up_move 29, MOVE_COVET
- level_up_move 33, MOVE_FLAIL
- level_up_move 37, MOVE_REST
- level_up_move 41, MOVE_BELLY_DRUM
- .2byte -1
-
-gLinooneLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_HEADBUTT
- level_up_move 5, MOVE_TAIL_WHIP
- level_up_move 9, MOVE_HEADBUTT
- level_up_move 13, MOVE_SAND_ATTACK
- level_up_move 17, MOVE_ODOR_SLEUTH
- level_up_move 23, MOVE_MUD_SPORT
- level_up_move 29, MOVE_FURY_SWIPES
- level_up_move 35, MOVE_COVET
- level_up_move 41, MOVE_SLASH
- level_up_move 47, MOVE_REST
- level_up_move 53, MOVE_BELLY_DRUM
- .2byte -1
-
-gWurmpleLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_STRING_SHOT
- level_up_move 5, MOVE_POISON_STING
- .2byte -1
-
-gSilcoonLevelUpLearnset:
- level_up_move 1, MOVE_HARDEN
- level_up_move 7, MOVE_HARDEN
- .2byte -1
-
-gBeautiflyLevelUpLearnset:
- level_up_move 1, MOVE_ABSORB
- level_up_move 10, MOVE_ABSORB
- level_up_move 13, MOVE_GUST
- level_up_move 17, MOVE_STUN_SPORE
- level_up_move 20, MOVE_MORNING_SUN
- level_up_move 24, MOVE_MEGA_DRAIN
- level_up_move 27, MOVE_WHIRLWIND
- level_up_move 31, MOVE_ATTRACT
- level_up_move 34, MOVE_SILVER_WIND
- level_up_move 38, MOVE_GIGA_DRAIN
- .2byte -1
-
-gCascoonLevelUpLearnset:
- level_up_move 1, MOVE_HARDEN
- level_up_move 7, MOVE_HARDEN
- .2byte -1
-
-gDustoxLevelUpLearnset:
- level_up_move 1, MOVE_CONFUSION
- level_up_move 10, MOVE_CONFUSION
- level_up_move 13, MOVE_GUST
- level_up_move 17, MOVE_PROTECT
- level_up_move 20, MOVE_MOONLIGHT
- level_up_move 24, MOVE_PSYBEAM
- level_up_move 27, MOVE_WHIRLWIND
- level_up_move 31, MOVE_LIGHT_SCREEN
- level_up_move 34, MOVE_SILVER_WIND
- level_up_move 38, MOVE_TOXIC
- .2byte -1
-
-gLotadLevelUpLearnset:
- level_up_move 1, MOVE_ASTONISH
- level_up_move 3, MOVE_GROWL
- level_up_move 7, MOVE_ABSORB
- level_up_move 13, MOVE_NATURE_POWER
- level_up_move 21, MOVE_MIST
- level_up_move 31, MOVE_RAIN_DANCE
- level_up_move 43, MOVE_MEGA_DRAIN
- .2byte -1
-
-gLombreLevelUpLearnset:
- level_up_move 1, MOVE_ASTONISH
- level_up_move 3, MOVE_GROWL
- level_up_move 7, MOVE_ABSORB
- level_up_move 13, MOVE_NATURE_POWER
- level_up_move 19, MOVE_FAKE_OUT
- level_up_move 25, MOVE_FURY_SWIPES
- level_up_move 31, MOVE_WATER_SPORT
- level_up_move 37, MOVE_THIEF
- level_up_move 43, MOVE_UPROAR
- level_up_move 49, MOVE_HYDRO_PUMP
- .2byte -1
-
-gLudicoloLevelUpLearnset:
- level_up_move 1, MOVE_ASTONISH
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_ABSORB
- level_up_move 1, MOVE_NATURE_POWER
- .2byte -1
-
-gSeedotLevelUpLearnset:
- level_up_move 1, MOVE_BIDE
- level_up_move 3, MOVE_HARDEN
- level_up_move 7, MOVE_GROWTH
- level_up_move 13, MOVE_NATURE_POWER
- level_up_move 21, MOVE_SYNTHESIS
- level_up_move 31, MOVE_SUNNY_DAY
- level_up_move 43, MOVE_EXPLOSION
- .2byte -1
-
-gNuzleafLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 3, MOVE_HARDEN
- level_up_move 7, MOVE_GROWTH
- level_up_move 13, MOVE_NATURE_POWER
- level_up_move 19, MOVE_FAKE_OUT
- level_up_move 25, MOVE_TORMENT
- level_up_move 31, MOVE_FAINT_ATTACK
- level_up_move 37, MOVE_RAZOR_WIND
- level_up_move 43, MOVE_SWAGGER
- level_up_move 49, MOVE_EXTRASENSORY
- .2byte -1
-
-gShiftryLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_HARDEN
- level_up_move 1, MOVE_GROWTH
- level_up_move 1, MOVE_NATURE_POWER
- .2byte -1
-
-gNincadaLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_HARDEN
- level_up_move 5, MOVE_LEECH_LIFE
- level_up_move 9, MOVE_SAND_ATTACK
- level_up_move 14, MOVE_FURY_SWIPES
- level_up_move 19, MOVE_MIND_READER
- level_up_move 25, MOVE_FALSE_SWIPE
- level_up_move 31, MOVE_MUD_SLAP
- level_up_move 38, MOVE_METAL_CLAW
- level_up_move 45, MOVE_DIG
- .2byte -1
-
-gNinjaskLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_HARDEN
- level_up_move 1, MOVE_LEECH_LIFE
- level_up_move 1, MOVE_SAND_ATTACK
- level_up_move 5, MOVE_LEECH_LIFE
- level_up_move 9, MOVE_SAND_ATTACK
- level_up_move 14, MOVE_FURY_SWIPES
- level_up_move 19, MOVE_MIND_READER
- level_up_move 20, MOVE_DOUBLE_TEAM
- level_up_move 20, MOVE_FURY_CUTTER
- level_up_move 20, MOVE_SCREECH
- level_up_move 25, MOVE_SWORDS_DANCE
- level_up_move 31, MOVE_SLASH
- level_up_move 38, MOVE_AGILITY
- level_up_move 45, MOVE_BATON_PASS
- .2byte -1
-
-gShedinjaLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_HARDEN
- level_up_move 5, MOVE_LEECH_LIFE
- level_up_move 9, MOVE_SAND_ATTACK
- level_up_move 14, MOVE_FURY_SWIPES
- level_up_move 19, MOVE_MIND_READER
- level_up_move 25, MOVE_SPITE
- level_up_move 31, MOVE_CONFUSE_RAY
- level_up_move 38, MOVE_SHADOW_BALL
- level_up_move 45, MOVE_GRUDGE
- .2byte -1
-
-gTaillowLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_GROWL
- level_up_move 4, MOVE_FOCUS_ENERGY
- level_up_move 8, MOVE_QUICK_ATTACK
- level_up_move 13, MOVE_WING_ATTACK
- level_up_move 19, MOVE_DOUBLE_TEAM
- level_up_move 26, MOVE_ENDEAVOR
- level_up_move 34, MOVE_AERIAL_ACE
- level_up_move 43, MOVE_AGILITY
- .2byte -1
-
-gSwellowLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_FOCUS_ENERGY
- level_up_move 1, MOVE_QUICK_ATTACK
- level_up_move 4, MOVE_FOCUS_ENERGY
- level_up_move 8, MOVE_QUICK_ATTACK
- level_up_move 13, MOVE_WING_ATTACK
- level_up_move 19, MOVE_DOUBLE_TEAM
- level_up_move 28, MOVE_ENDEAVOR
- level_up_move 38, MOVE_AERIAL_ACE
- level_up_move 49, MOVE_AGILITY
- .2byte -1
-
-gShroomishLevelUpLearnset:
- level_up_move 1, MOVE_ABSORB
- level_up_move 4, MOVE_TACKLE
- level_up_move 7, MOVE_STUN_SPORE
- level_up_move 10, MOVE_LEECH_SEED
- level_up_move 16, MOVE_MEGA_DRAIN
- level_up_move 22, MOVE_HEADBUTT
- level_up_move 28, MOVE_POISON_POWDER
- level_up_move 36, MOVE_GROWTH
- level_up_move 45, MOVE_GIGA_DRAIN
- level_up_move 54, MOVE_SPORE
- .2byte -1
-
-gBreloomLevelUpLearnset:
- level_up_move 1, MOVE_ABSORB
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_STUN_SPORE
- level_up_move 1, MOVE_LEECH_SEED
- level_up_move 4, MOVE_TACKLE
- level_up_move 7, MOVE_STUN_SPORE
- level_up_move 10, MOVE_LEECH_SEED
- level_up_move 16, MOVE_MEGA_DRAIN
- level_up_move 22, MOVE_HEADBUTT
- level_up_move 23, MOVE_MACH_PUNCH
- level_up_move 28, MOVE_COUNTER
- level_up_move 36, MOVE_SKY_UPPERCUT
- level_up_move 45, MOVE_MIND_READER
- level_up_move 54, MOVE_DYNAMIC_PUNCH
- .2byte -1
-
-gSpindaLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 5, MOVE_UPROAR
- level_up_move 12, MOVE_FAINT_ATTACK
- level_up_move 16, MOVE_PSYBEAM
- level_up_move 23, MOVE_HYPNOSIS
- level_up_move 27, MOVE_DIZZY_PUNCH
- level_up_move 34, MOVE_TEETER_DANCE
- level_up_move 38, MOVE_PSYCH_UP
- level_up_move 45, MOVE_DOUBLE_EDGE
- level_up_move 49, MOVE_FLAIL
- level_up_move 56, MOVE_THRASH
- .2byte -1
-
-gWingullLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 7, MOVE_SUPERSONIC
- level_up_move 13, MOVE_WING_ATTACK
- level_up_move 21, MOVE_MIST
- level_up_move 31, MOVE_QUICK_ATTACK
- level_up_move 43, MOVE_PURSUIT
- level_up_move 55, MOVE_AGILITY
- .2byte -1
-
-gPelipperLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 1, MOVE_WATER_SPORT
- level_up_move 1, MOVE_WING_ATTACK
- level_up_move 3, MOVE_WATER_GUN
- level_up_move 7, MOVE_SUPERSONIC
- level_up_move 13, MOVE_WING_ATTACK
- level_up_move 21, MOVE_MIST
- level_up_move 25, MOVE_PROTECT
- level_up_move 33, MOVE_STOCKPILE
- level_up_move 33, MOVE_SWALLOW
- level_up_move 47, MOVE_SPIT_UP
- level_up_move 61, MOVE_HYDRO_PUMP
- .2byte -1
-
-gSurskitLevelUpLearnset:
- level_up_move 1, MOVE_BUBBLE
- level_up_move 7, MOVE_QUICK_ATTACK
- level_up_move 13, MOVE_SWEET_SCENT
- level_up_move 19, MOVE_WATER_SPORT
- level_up_move 25, MOVE_BUBBLE_BEAM
- level_up_move 31, MOVE_AGILITY
- level_up_move 37, MOVE_MIST
- level_up_move 37, MOVE_HAZE
- .2byte -1
-
-gMasquerainLevelUpLearnset:
- level_up_move 1, MOVE_BUBBLE
- level_up_move 1, MOVE_QUICK_ATTACK
- level_up_move 1, MOVE_SWEET_SCENT
- level_up_move 1, MOVE_WATER_SPORT
- level_up_move 7, MOVE_QUICK_ATTACK
- level_up_move 13, MOVE_SWEET_SCENT
- level_up_move 19, MOVE_WATER_SPORT
- level_up_move 26, MOVE_GUST
- level_up_move 33, MOVE_SCARY_FACE
- level_up_move 40, MOVE_STUN_SPORE
- level_up_move 47, MOVE_SILVER_WIND
- level_up_move 53, MOVE_WHIRLWIND
- .2byte -1
-
-gWailmerLevelUpLearnset:
- level_up_move 1, MOVE_SPLASH
- level_up_move 5, MOVE_GROWL
- level_up_move 10, MOVE_WATER_GUN
- level_up_move 14, MOVE_ROLLOUT
- level_up_move 19, MOVE_WHIRLPOOL
- level_up_move 23, MOVE_ASTONISH
- level_up_move 28, MOVE_WATER_PULSE
- level_up_move 32, MOVE_MIST
- level_up_move 37, MOVE_REST
- level_up_move 41, MOVE_WATER_SPOUT
- level_up_move 46, MOVE_AMNESIA
- level_up_move 50, MOVE_HYDRO_PUMP
- .2byte -1
-
-gWailordLevelUpLearnset:
- level_up_move 1, MOVE_SPLASH
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 1, MOVE_ROLLOUT
- level_up_move 5, MOVE_GROWL
- level_up_move 10, MOVE_WATER_GUN
- level_up_move 14, MOVE_ROLLOUT
- level_up_move 19, MOVE_WHIRLPOOL
- level_up_move 23, MOVE_ASTONISH
- level_up_move 28, MOVE_WATER_PULSE
- level_up_move 32, MOVE_MIST
- level_up_move 37, MOVE_REST
- level_up_move 44, MOVE_WATER_SPOUT
- level_up_move 52, MOVE_AMNESIA
- level_up_move 59, MOVE_HYDRO_PUMP
- .2byte -1
-
-gSkittyLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_TACKLE
- level_up_move 3, MOVE_TAIL_WHIP
- level_up_move 7, MOVE_ATTRACT
- level_up_move 13, MOVE_SING
- level_up_move 15, MOVE_DOUBLE_SLAP
- level_up_move 19, MOVE_ASSIST
- level_up_move 25, MOVE_CHARM
- level_up_move 27, MOVE_FAINT_ATTACK
- level_up_move 31, MOVE_COVET
- level_up_move 37, MOVE_HEAL_BELL
- level_up_move 39, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gDelcattyLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_ATTRACT
- level_up_move 1, MOVE_SING
- level_up_move 1, MOVE_DOUBLE_SLAP
- .2byte -1
-
-gKecleonLevelUpLearnset:
- level_up_move 1, MOVE_THIEF
- level_up_move 1, MOVE_TAIL_WHIP
- level_up_move 1, MOVE_ASTONISH
- level_up_move 1, MOVE_LICK
- level_up_move 1, MOVE_SCRATCH
- level_up_move 4, MOVE_BIND
- level_up_move 7, MOVE_FAINT_ATTACK
- level_up_move 12, MOVE_FURY_SWIPES
- level_up_move 17, MOVE_PSYBEAM
- level_up_move 24, MOVE_SCREECH
- level_up_move 31, MOVE_SLASH
- level_up_move 40, MOVE_SUBSTITUTE
- level_up_move 49, MOVE_ANCIENT_POWER
- .2byte -1
-
-gBaltoyLevelUpLearnset:
- level_up_move 1, MOVE_CONFUSION
- level_up_move 3, MOVE_HARDEN
- level_up_move 5, MOVE_RAPID_SPIN
- level_up_move 7, MOVE_MUD_SLAP
- level_up_move 11, MOVE_PSYBEAM
- level_up_move 15, MOVE_ROCK_TOMB
- level_up_move 19, MOVE_SELF_DESTRUCT
- level_up_move 25, MOVE_ANCIENT_POWER
- level_up_move 31, MOVE_SANDSTORM
- level_up_move 37, MOVE_COSMIC_POWER
- level_up_move 45, MOVE_EXPLOSION
- .2byte -1
-
-gClaydolLevelUpLearnset:
- level_up_move 1, MOVE_TELEPORT
- level_up_move 1, MOVE_CONFUSION
- level_up_move 1, MOVE_HARDEN
- level_up_move 1, MOVE_RAPID_SPIN
- level_up_move 3, MOVE_HARDEN
- level_up_move 5, MOVE_RAPID_SPIN
- level_up_move 7, MOVE_MUD_SLAP
- level_up_move 11, MOVE_PSYBEAM
- level_up_move 15, MOVE_ROCK_TOMB
- level_up_move 19, MOVE_SELF_DESTRUCT
- level_up_move 25, MOVE_ANCIENT_POWER
- level_up_move 31, MOVE_SANDSTORM
- level_up_move 36, MOVE_HYPER_BEAM
- level_up_move 42, MOVE_COSMIC_POWER
- level_up_move 55, MOVE_EXPLOSION
- .2byte -1
-
-gNosepassLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 7, MOVE_HARDEN
- level_up_move 13, MOVE_ROCK_THROW
- level_up_move 16, MOVE_BLOCK
- level_up_move 22, MOVE_THUNDER_WAVE
- level_up_move 28, MOVE_ROCK_SLIDE
- level_up_move 31, MOVE_SANDSTORM
- level_up_move 37, MOVE_REST
- level_up_move 43, MOVE_ZAP_CANNON
- level_up_move 46, MOVE_LOCK_ON
- .2byte -1
-
-gTorkoalLevelUpLearnset:
- level_up_move 1, MOVE_EMBER
- level_up_move 4, MOVE_SMOG
- level_up_move 7, MOVE_CURSE
- level_up_move 14, MOVE_SMOKESCREEN
- level_up_move 17, MOVE_FIRE_SPIN
- level_up_move 20, MOVE_BODY_SLAM
- level_up_move 27, MOVE_PROTECT
- level_up_move 30, MOVE_FLAMETHROWER
- level_up_move 33, MOVE_IRON_DEFENSE
- level_up_move 40, MOVE_AMNESIA
- level_up_move 43, MOVE_FLAIL
- level_up_move 46, MOVE_HEAT_WAVE
- .2byte -1
-
-gSableyeLevelUpLearnset:
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_SCRATCH
- level_up_move 5, MOVE_FORESIGHT
- level_up_move 9, MOVE_NIGHT_SHADE
- level_up_move 13, MOVE_ASTONISH
- level_up_move 17, MOVE_FURY_SWIPES
- level_up_move 21, MOVE_FAKE_OUT
- level_up_move 25, MOVE_DETECT
- level_up_move 29, MOVE_FAINT_ATTACK
- level_up_move 33, MOVE_KNOCK_OFF
- level_up_move 37, MOVE_CONFUSE_RAY
- level_up_move 41, MOVE_SHADOW_BALL
- level_up_move 45, MOVE_MEAN_LOOK
- .2byte -1
-
-gBarboachLevelUpLearnset:
- level_up_move 1, MOVE_MUD_SLAP
- level_up_move 6, MOVE_MUD_SPORT
- level_up_move 6, MOVE_WATER_SPORT
- level_up_move 11, MOVE_WATER_GUN
- level_up_move 16, MOVE_MAGNITUDE
- level_up_move 21, MOVE_AMNESIA
- level_up_move 26, MOVE_REST
- level_up_move 26, MOVE_SNORE
- level_up_move 31, MOVE_EARTHQUAKE
- level_up_move 36, MOVE_FUTURE_SIGHT
- level_up_move 41, MOVE_FISSURE
- .2byte -1
-
-gWhiscashLevelUpLearnset:
- level_up_move 1, MOVE_TICKLE
- level_up_move 1, MOVE_MUD_SLAP
- level_up_move 1, MOVE_MUD_SPORT
- level_up_move 1, MOVE_WATER_SPORT
- level_up_move 6, MOVE_MUD_SPORT
- level_up_move 6, MOVE_WATER_SPORT
- level_up_move 11, MOVE_WATER_GUN
- level_up_move 16, MOVE_MAGNITUDE
- level_up_move 21, MOVE_AMNESIA
- level_up_move 26, MOVE_REST
- level_up_move 26, MOVE_SNORE
- level_up_move 36, MOVE_EARTHQUAKE
- level_up_move 46, MOVE_FUTURE_SIGHT
- level_up_move 56, MOVE_FISSURE
- .2byte -1
-
-gLuvdiscLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 4, MOVE_CHARM
- level_up_move 12, MOVE_WATER_GUN
- level_up_move 16, MOVE_AGILITY
- level_up_move 24, MOVE_TAKE_DOWN
- level_up_move 28, MOVE_ATTRACT
- level_up_move 36, MOVE_SWEET_KISS
- level_up_move 40, MOVE_FLAIL
- level_up_move 48, MOVE_SAFEGUARD
- .2byte -1
-
-gCorphishLevelUpLearnset:
- level_up_move 1, MOVE_BUBBLE
- level_up_move 7, MOVE_HARDEN
- level_up_move 10, MOVE_VICE_GRIP
- level_up_move 13, MOVE_LEER
- level_up_move 20, MOVE_BUBBLE_BEAM
- level_up_move 23, MOVE_PROTECT
- level_up_move 26, MOVE_KNOCK_OFF
- level_up_move 32, MOVE_TAUNT
- level_up_move 35, MOVE_CRABHAMMER
- level_up_move 38, MOVE_SWORDS_DANCE
- level_up_move 44, MOVE_GUILLOTINE
- .2byte -1
-
-gCrawdauntLevelUpLearnset:
- level_up_move 1, MOVE_BUBBLE
- level_up_move 1, MOVE_HARDEN
- level_up_move 1, MOVE_VICE_GRIP
- level_up_move 1, MOVE_LEER
- level_up_move 7, MOVE_HARDEN
- level_up_move 10, MOVE_VICE_GRIP
- level_up_move 13, MOVE_LEER
- level_up_move 20, MOVE_BUBBLE_BEAM
- level_up_move 23, MOVE_PROTECT
- level_up_move 26, MOVE_KNOCK_OFF
- level_up_move 34, MOVE_TAUNT
- level_up_move 39, MOVE_CRABHAMMER
- level_up_move 44, MOVE_SWORDS_DANCE
- level_up_move 52, MOVE_GUILLOTINE
- .2byte -1
-
-gFeebasLevelUpLearnset:
- level_up_move 1, MOVE_SPLASH
- level_up_move 15, MOVE_TACKLE
- level_up_move 30, MOVE_FLAIL
- .2byte -1
-
-gMiloticLevelUpLearnset:
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 5, MOVE_WRAP
- level_up_move 10, MOVE_WATER_SPORT
- level_up_move 15, MOVE_REFRESH
- level_up_move 20, MOVE_WATER_PULSE
- level_up_move 25, MOVE_TWISTER
- level_up_move 30, MOVE_RECOVER
- level_up_move 35, MOVE_RAIN_DANCE
- level_up_move 40, MOVE_HYDRO_PUMP
- level_up_move 45, MOVE_ATTRACT
- level_up_move 50, MOVE_SAFEGUARD
- .2byte -1
-
-gCarvanhaLevelUpLearnset:
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_BITE
- level_up_move 7, MOVE_RAGE
- level_up_move 13, MOVE_FOCUS_ENERGY
- level_up_move 16, MOVE_SCARY_FACE
- level_up_move 22, MOVE_CRUNCH
- level_up_move 28, MOVE_SCREECH
- level_up_move 31, MOVE_TAKE_DOWN
- level_up_move 37, MOVE_SWAGGER
- level_up_move 43, MOVE_AGILITY
- .2byte -1
-
-gSharpedoLevelUpLearnset:
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_BITE
- level_up_move 1, MOVE_RAGE
- level_up_move 1, MOVE_FOCUS_ENERGY
- level_up_move 7, MOVE_RAGE
- level_up_move 13, MOVE_FOCUS_ENERGY
- level_up_move 16, MOVE_SCARY_FACE
- level_up_move 22, MOVE_CRUNCH
- level_up_move 28, MOVE_SCREECH
- level_up_move 33, MOVE_SLASH
- level_up_move 38, MOVE_TAUNT
- level_up_move 43, MOVE_SWAGGER
- level_up_move 48, MOVE_SKULL_BASH
- level_up_move 53, MOVE_AGILITY
- .2byte -1
-
-gTrapinchLevelUpLearnset:
- level_up_move 1, MOVE_BITE
- level_up_move 9, MOVE_SAND_ATTACK
- level_up_move 17, MOVE_FAINT_ATTACK
- level_up_move 25, MOVE_SAND_TOMB
- level_up_move 33, MOVE_CRUNCH
- level_up_move 41, MOVE_DIG
- level_up_move 49, MOVE_SANDSTORM
- level_up_move 57, MOVE_HYPER_BEAM
- .2byte -1
-
-gVibravaLevelUpLearnset:
- level_up_move 1, MOVE_BITE
- level_up_move 1, MOVE_SAND_ATTACK
- level_up_move 1, MOVE_FAINT_ATTACK
- level_up_move 1, MOVE_SAND_TOMB
- level_up_move 9, MOVE_SAND_ATTACK
- level_up_move 17, MOVE_FAINT_ATTACK
- level_up_move 25, MOVE_SAND_TOMB
- level_up_move 33, MOVE_CRUNCH
- level_up_move 35, MOVE_DRAGON_BREATH
- level_up_move 41, MOVE_SCREECH
- level_up_move 49, MOVE_SANDSTORM
- level_up_move 57, MOVE_HYPER_BEAM
- .2byte -1
-
-gFlygonLevelUpLearnset:
- level_up_move 1, MOVE_BITE
- level_up_move 1, MOVE_SAND_ATTACK
- level_up_move 1, MOVE_FAINT_ATTACK
- level_up_move 1, MOVE_SAND_TOMB
- level_up_move 9, MOVE_SAND_ATTACK
- level_up_move 17, MOVE_FAINT_ATTACK
- level_up_move 25, MOVE_SAND_TOMB
- level_up_move 33, MOVE_CRUNCH
- level_up_move 35, MOVE_DRAGON_BREATH
- level_up_move 41, MOVE_SCREECH
- level_up_move 53, MOVE_SANDSTORM
- level_up_move 65, MOVE_HYPER_BEAM
- .2byte -1
-
-gMakuhitaLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_FOCUS_ENERGY
- level_up_move 4, MOVE_SAND_ATTACK
- level_up_move 10, MOVE_ARM_THRUST
- level_up_move 13, MOVE_VITAL_THROW
- level_up_move 19, MOVE_FAKE_OUT
- level_up_move 22, MOVE_WHIRLWIND
- level_up_move 28, MOVE_KNOCK_OFF
- level_up_move 31, MOVE_SMELLING_SALT
- level_up_move 37, MOVE_BELLY_DRUM
- level_up_move 40, MOVE_ENDURE
- level_up_move 46, MOVE_SEISMIC_TOSS
- level_up_move 49, MOVE_REVERSAL
- .2byte -1
-
-gHariyamaLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_FOCUS_ENERGY
- level_up_move 1, MOVE_SAND_ATTACK
- level_up_move 1, MOVE_ARM_THRUST
- level_up_move 4, MOVE_SAND_ATTACK
- level_up_move 10, MOVE_ARM_THRUST
- level_up_move 13, MOVE_VITAL_THROW
- level_up_move 19, MOVE_FAKE_OUT
- level_up_move 22, MOVE_WHIRLWIND
- level_up_move 29, MOVE_KNOCK_OFF
- level_up_move 33, MOVE_SMELLING_SALT
- level_up_move 40, MOVE_BELLY_DRUM
- level_up_move 44, MOVE_ENDURE
- level_up_move 51, MOVE_SEISMIC_TOSS
- level_up_move 55, MOVE_REVERSAL
- .2byte -1
-
-gElectrikeLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 4, MOVE_THUNDER_WAVE
- level_up_move 9, MOVE_LEER
- level_up_move 12, MOVE_HOWL
- level_up_move 17, MOVE_QUICK_ATTACK
- level_up_move 20, MOVE_SPARK
- level_up_move 25, MOVE_ODOR_SLEUTH
- level_up_move 28, MOVE_ROAR
- level_up_move 33, MOVE_BITE
- level_up_move 36, MOVE_THUNDER
- level_up_move 41, MOVE_CHARGE
- .2byte -1
-
-gManectricLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_THUNDER_WAVE
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_HOWL
- level_up_move 4, MOVE_THUNDER_WAVE
- level_up_move 9, MOVE_LEER
- level_up_move 12, MOVE_HOWL
- level_up_move 17, MOVE_QUICK_ATTACK
- level_up_move 20, MOVE_SPARK
- level_up_move 25, MOVE_ODOR_SLEUTH
- level_up_move 31, MOVE_ROAR
- level_up_move 39, MOVE_BITE
- level_up_move 45, MOVE_THUNDER
- level_up_move 53, MOVE_CHARGE
- .2byte -1
-
-gNumelLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_TACKLE
- level_up_move 11, MOVE_EMBER
- level_up_move 19, MOVE_MAGNITUDE
- level_up_move 25, MOVE_FOCUS_ENERGY
- level_up_move 29, MOVE_TAKE_DOWN
- level_up_move 31, MOVE_AMNESIA
- level_up_move 35, MOVE_EARTHQUAKE
- level_up_move 41, MOVE_FLAMETHROWER
- level_up_move 49, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gCameruptLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_EMBER
- level_up_move 1, MOVE_MAGNITUDE
- level_up_move 11, MOVE_EMBER
- level_up_move 19, MOVE_MAGNITUDE
- level_up_move 25, MOVE_FOCUS_ENERGY
- level_up_move 29, MOVE_TAKE_DOWN
- level_up_move 31, MOVE_AMNESIA
- level_up_move 33, MOVE_ROCK_SLIDE
- level_up_move 37, MOVE_EARTHQUAKE
- level_up_move 45, MOVE_ERUPTION
- level_up_move 55, MOVE_FISSURE
- .2byte -1
-
-gSphealLevelUpLearnset:
- level_up_move 1, MOVE_POWDER_SNOW
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 7, MOVE_ENCORE
- level_up_move 13, MOVE_ICE_BALL
- level_up_move 19, MOVE_BODY_SLAM
- level_up_move 25, MOVE_AURORA_BEAM
- level_up_move 31, MOVE_HAIL
- level_up_move 37, MOVE_REST
- level_up_move 37, MOVE_SNORE
- level_up_move 43, MOVE_BLIZZARD
- level_up_move 49, MOVE_SHEER_COLD
- .2byte -1
-
-gSealeoLevelUpLearnset:
- level_up_move 1, MOVE_POWDER_SNOW
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 1, MOVE_ENCORE
- level_up_move 7, MOVE_ENCORE
- level_up_move 13, MOVE_ICE_BALL
- level_up_move 19, MOVE_BODY_SLAM
- level_up_move 25, MOVE_AURORA_BEAM
- level_up_move 31, MOVE_HAIL
- level_up_move 39, MOVE_REST
- level_up_move 39, MOVE_SNORE
- level_up_move 47, MOVE_BLIZZARD
- level_up_move 55, MOVE_SHEER_COLD
- .2byte -1
-
-gWalreinLevelUpLearnset:
- level_up_move 1, MOVE_POWDER_SNOW
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 1, MOVE_ENCORE
- level_up_move 7, MOVE_ENCORE
- level_up_move 13, MOVE_ICE_BALL
- level_up_move 19, MOVE_BODY_SLAM
- level_up_move 25, MOVE_AURORA_BEAM
- level_up_move 31, MOVE_HAIL
- level_up_move 39, MOVE_REST
- level_up_move 39, MOVE_SNORE
- level_up_move 50, MOVE_BLIZZARD
- level_up_move 61, MOVE_SHEER_COLD
- .2byte -1
-
-gCacneaLevelUpLearnset:
- level_up_move 1, MOVE_POISON_STING
- level_up_move 1, MOVE_LEER
- level_up_move 5, MOVE_ABSORB
- level_up_move 9, MOVE_GROWTH
- level_up_move 13, MOVE_LEECH_SEED
- level_up_move 17, MOVE_SAND_ATTACK
- level_up_move 21, MOVE_PIN_MISSILE
- level_up_move 25, MOVE_INGRAIN
- level_up_move 29, MOVE_FAINT_ATTACK
- level_up_move 33, MOVE_SPIKES
- level_up_move 37, MOVE_NEEDLE_ARM
- level_up_move 41, MOVE_COTTON_SPORE
- level_up_move 45, MOVE_SANDSTORM
- .2byte -1
-
-gCacturneLevelUpLearnset:
- level_up_move 1, MOVE_POISON_STING
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_ABSORB
- level_up_move 1, MOVE_GROWTH
- level_up_move 5, MOVE_ABSORB
- level_up_move 9, MOVE_GROWTH
- level_up_move 13, MOVE_LEECH_SEED
- level_up_move 17, MOVE_SAND_ATTACK
- level_up_move 21, MOVE_PIN_MISSILE
- level_up_move 25, MOVE_INGRAIN
- level_up_move 29, MOVE_FAINT_ATTACK
- level_up_move 35, MOVE_SPIKES
- level_up_move 41, MOVE_NEEDLE_ARM
- level_up_move 47, MOVE_COTTON_SPORE
- level_up_move 53, MOVE_SANDSTORM
- .2byte -1
-
-gSnoruntLevelUpLearnset:
- level_up_move 1, MOVE_POWDER_SNOW
- level_up_move 1, MOVE_LEER
- level_up_move 7, MOVE_DOUBLE_TEAM
- level_up_move 10, MOVE_BITE
- level_up_move 16, MOVE_ICY_WIND
- level_up_move 19, MOVE_HEADBUTT
- level_up_move 25, MOVE_PROTECT
- level_up_move 28, MOVE_CRUNCH
- level_up_move 34, MOVE_ICE_BEAM
- level_up_move 37, MOVE_HAIL
- level_up_move 43, MOVE_BLIZZARD
- .2byte -1
-
-gGlalieLevelUpLearnset:
- level_up_move 1, MOVE_POWDER_SNOW
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_DOUBLE_TEAM
- level_up_move 1, MOVE_BITE
- level_up_move 7, MOVE_DOUBLE_TEAM
- level_up_move 10, MOVE_BITE
- level_up_move 16, MOVE_ICY_WIND
- level_up_move 19, MOVE_HEADBUTT
- level_up_move 25, MOVE_PROTECT
- level_up_move 28, MOVE_CRUNCH
- level_up_move 34, MOVE_ICE_BEAM
- level_up_move 42, MOVE_HAIL
- level_up_move 53, MOVE_BLIZZARD
- level_up_move 61, MOVE_SHEER_COLD
- .2byte -1
-
-gLunatoneLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_HARDEN
- level_up_move 7, MOVE_CONFUSION
- level_up_move 13, MOVE_ROCK_THROW
- level_up_move 19, MOVE_HYPNOSIS
- level_up_move 25, MOVE_PSYWAVE
- level_up_move 31, MOVE_COSMIC_POWER
- level_up_move 37, MOVE_PSYCHIC
- level_up_move 43, MOVE_FUTURE_SIGHT
- level_up_move 49, MOVE_EXPLOSION
- .2byte -1
-
-gSolrockLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_HARDEN
- level_up_move 7, MOVE_CONFUSION
- level_up_move 13, MOVE_ROCK_THROW
- level_up_move 19, MOVE_FIRE_SPIN
- level_up_move 25, MOVE_PSYWAVE
- level_up_move 31, MOVE_COSMIC_POWER
- level_up_move 37, MOVE_ROCK_SLIDE
- level_up_move 43, MOVE_SOLAR_BEAM
- level_up_move 49, MOVE_EXPLOSION
- .2byte -1
-
-gAzurillLevelUpLearnset:
- level_up_move 1, MOVE_SPLASH
- level_up_move 3, MOVE_CHARM
- level_up_move 6, MOVE_TAIL_WHIP
- level_up_move 10, MOVE_BUBBLE
- level_up_move 15, MOVE_SLAM
- level_up_move 21, MOVE_WATER_GUN
- .2byte -1
-
-gSpoinkLevelUpLearnset:
- level_up_move 1, MOVE_SPLASH
- level_up_move 7, MOVE_PSYWAVE
- level_up_move 10, MOVE_ODOR_SLEUTH
- level_up_move 16, MOVE_PSYBEAM
- level_up_move 19, MOVE_PSYCH_UP
- level_up_move 25, MOVE_CONFUSE_RAY
- level_up_move 28, MOVE_MAGIC_COAT
- level_up_move 34, MOVE_PSYCHIC
- level_up_move 37, MOVE_REST
- level_up_move 37, MOVE_SNORE
- level_up_move 43, MOVE_BOUNCE
- .2byte -1
-
-gGrumpigLevelUpLearnset:
- level_up_move 1, MOVE_SPLASH
- level_up_move 1, MOVE_PSYWAVE
- level_up_move 1, MOVE_ODOR_SLEUTH
- level_up_move 1, MOVE_PSYBEAM
- level_up_move 7, MOVE_PSYWAVE
- level_up_move 10, MOVE_ODOR_SLEUTH
- level_up_move 16, MOVE_PSYBEAM
- level_up_move 19, MOVE_PSYCH_UP
- level_up_move 25, MOVE_CONFUSE_RAY
- level_up_move 28, MOVE_MAGIC_COAT
- level_up_move 37, MOVE_PSYCHIC
- level_up_move 43, MOVE_REST
- level_up_move 43, MOVE_SNORE
- level_up_move 55, MOVE_BOUNCE
- .2byte -1
-
-gPlusleLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 4, MOVE_THUNDER_WAVE
- level_up_move 10, MOVE_QUICK_ATTACK
- level_up_move 13, MOVE_HELPING_HAND
- level_up_move 19, MOVE_SPARK
- level_up_move 22, MOVE_ENCORE
- level_up_move 28, MOVE_FAKE_TEARS
- level_up_move 31, MOVE_CHARGE
- level_up_move 37, MOVE_THUNDER
- level_up_move 40, MOVE_BATON_PASS
- level_up_move 47, MOVE_AGILITY
- .2byte -1
-
-gMinunLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 4, MOVE_THUNDER_WAVE
- level_up_move 10, MOVE_QUICK_ATTACK
- level_up_move 13, MOVE_HELPING_HAND
- level_up_move 19, MOVE_SPARK
- level_up_move 22, MOVE_ENCORE
- level_up_move 28, MOVE_CHARM
- level_up_move 31, MOVE_CHARGE
- level_up_move 37, MOVE_THUNDER
- level_up_move 40, MOVE_BATON_PASS
- level_up_move 47, MOVE_AGILITY
- .2byte -1
-
-gMawileLevelUpLearnset:
- level_up_move 1, MOVE_ASTONISH
- level_up_move 6, MOVE_FAKE_TEARS
- level_up_move 11, MOVE_BITE
- level_up_move 16, MOVE_SWEET_SCENT
- level_up_move 21, MOVE_VICE_GRIP
- level_up_move 26, MOVE_FAINT_ATTACK
- level_up_move 31, MOVE_BATON_PASS
- level_up_move 36, MOVE_CRUNCH
- level_up_move 41, MOVE_IRON_DEFENSE
- level_up_move 46, MOVE_STOCKPILE
- level_up_move 46, MOVE_SWALLOW
- level_up_move 46, MOVE_SPIT_UP
- .2byte -1
-
-gMedititeLevelUpLearnset:
- level_up_move 1, MOVE_BIDE
- level_up_move 4, MOVE_MEDITATE
- level_up_move 9, MOVE_CONFUSION
- level_up_move 12, MOVE_DETECT
- level_up_move 18, MOVE_HIDDEN_POWER
- level_up_move 22, MOVE_MIND_READER
- level_up_move 28, MOVE_CALM_MIND
- level_up_move 32, MOVE_HI_JUMP_KICK
- level_up_move 38, MOVE_PSYCH_UP
- level_up_move 42, MOVE_REVERSAL
- level_up_move 48, MOVE_RECOVER
- .2byte -1
-
-gMedichamLevelUpLearnset:
- level_up_move 1, MOVE_FIRE_PUNCH
- level_up_move 1, MOVE_THUNDER_PUNCH
- level_up_move 1, MOVE_ICE_PUNCH
- level_up_move 1, MOVE_BIDE
- level_up_move 1, MOVE_MEDITATE
- level_up_move 1, MOVE_CONFUSION
- level_up_move 1, MOVE_DETECT
- level_up_move 4, MOVE_MEDITATE
- level_up_move 9, MOVE_CONFUSION
- level_up_move 12, MOVE_DETECT
- level_up_move 18, MOVE_HIDDEN_POWER
- level_up_move 22, MOVE_MIND_READER
- level_up_move 28, MOVE_CALM_MIND
- level_up_move 32, MOVE_HI_JUMP_KICK
- level_up_move 40, MOVE_PSYCH_UP
- level_up_move 46, MOVE_REVERSAL
- level_up_move 54, MOVE_RECOVER
- .2byte -1
-
-gSwabluLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_GROWL
- level_up_move 8, MOVE_ASTONISH
- level_up_move 11, MOVE_SING
- level_up_move 18, MOVE_FURY_ATTACK
- level_up_move 21, MOVE_SAFEGUARD
- level_up_move 28, MOVE_MIST
- level_up_move 31, MOVE_TAKE_DOWN
- level_up_move 38, MOVE_MIRROR_MOVE
- level_up_move 41, MOVE_REFRESH
- level_up_move 48, MOVE_PERISH_SONG
- .2byte -1
-
-gAltariaLevelUpLearnset:
- level_up_move 1, MOVE_PECK
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_ASTONISH
- level_up_move 1, MOVE_SING
- level_up_move 8, MOVE_ASTONISH
- level_up_move 11, MOVE_SING
- level_up_move 18, MOVE_FURY_ATTACK
- level_up_move 21, MOVE_SAFEGUARD
- level_up_move 28, MOVE_MIST
- level_up_move 31, MOVE_TAKE_DOWN
- level_up_move 35, MOVE_DRAGON_BREATH
- level_up_move 40, MOVE_DRAGON_DANCE
- level_up_move 45, MOVE_REFRESH
- level_up_move 54, MOVE_PERISH_SONG
- level_up_move 59, MOVE_SKY_ATTACK
- .2byte -1
-
-gWynautLevelUpLearnset:
- level_up_move 1, MOVE_SPLASH
- level_up_move 1, MOVE_CHARM
- level_up_move 1, MOVE_ENCORE
- level_up_move 15, MOVE_COUNTER
- level_up_move 15, MOVE_MIRROR_COAT
- level_up_move 15, MOVE_SAFEGUARD
- level_up_move 15, MOVE_DESTINY_BOND
- .2byte -1
-
-gDuskullLevelUpLearnset:
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_NIGHT_SHADE
- level_up_move 5, MOVE_DISABLE
- level_up_move 12, MOVE_FORESIGHT
- level_up_move 16, MOVE_ASTONISH
- level_up_move 23, MOVE_CONFUSE_RAY
- level_up_move 27, MOVE_PURSUIT
- level_up_move 34, MOVE_CURSE
- level_up_move 38, MOVE_WILL_O_WISP
- level_up_move 45, MOVE_MEAN_LOOK
- level_up_move 49, MOVE_FUTURE_SIGHT
- .2byte -1
-
-gDusclopsLevelUpLearnset:
- level_up_move 1, MOVE_BIND
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_NIGHT_SHADE
- level_up_move 1, MOVE_DISABLE
- level_up_move 5, MOVE_DISABLE
- level_up_move 12, MOVE_FORESIGHT
- level_up_move 16, MOVE_ASTONISH
- level_up_move 23, MOVE_CONFUSE_RAY
- level_up_move 27, MOVE_PURSUIT
- level_up_move 34, MOVE_CURSE
- level_up_move 37, MOVE_SHADOW_PUNCH
- level_up_move 41, MOVE_WILL_O_WISP
- level_up_move 51, MOVE_MEAN_LOOK
- level_up_move 58, MOVE_FUTURE_SIGHT
- .2byte -1
-
-gRoseliaLevelUpLearnset:
- level_up_move 1, MOVE_ABSORB
- level_up_move 5, MOVE_GROWTH
- level_up_move 9, MOVE_POISON_STING
- level_up_move 13, MOVE_STUN_SPORE
- level_up_move 17, MOVE_MEGA_DRAIN
- level_up_move 21, MOVE_LEECH_SEED
- level_up_move 25, MOVE_MAGICAL_LEAF
- level_up_move 29, MOVE_GRASS_WHISTLE
- level_up_move 33, MOVE_GIGA_DRAIN
- level_up_move 37, MOVE_SWEET_SCENT
- level_up_move 41, MOVE_INGRAIN
- level_up_move 45, MOVE_TOXIC
- level_up_move 49, MOVE_PETAL_DANCE
- level_up_move 53, MOVE_AROMATHERAPY
- level_up_move 57, MOVE_SYNTHESIS
- .2byte -1
-
-gSlakothLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_YAWN
- level_up_move 7, MOVE_ENCORE
- level_up_move 13, MOVE_SLACK_OFF
- level_up_move 19, MOVE_FAINT_ATTACK
- level_up_move 25, MOVE_AMNESIA
- level_up_move 31, MOVE_COVET
- level_up_move 37, MOVE_COUNTER
- level_up_move 43, MOVE_FLAIL
- .2byte -1
-
-gVigorothLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_FOCUS_ENERGY
- level_up_move 1, MOVE_ENCORE
- level_up_move 1, MOVE_UPROAR
- level_up_move 7, MOVE_ENCORE
- level_up_move 13, MOVE_UPROAR
- level_up_move 19, MOVE_FURY_SWIPES
- level_up_move 25, MOVE_ENDURE
- level_up_move 31, MOVE_SLASH
- level_up_move 37, MOVE_COUNTER
- level_up_move 43, MOVE_FOCUS_PUNCH
- level_up_move 49, MOVE_REVERSAL
- .2byte -1
-
-gSlakingLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_YAWN
- level_up_move 1, MOVE_ENCORE
- level_up_move 1, MOVE_SLACK_OFF
- level_up_move 7, MOVE_ENCORE
- level_up_move 13, MOVE_SLACK_OFF
- level_up_move 19, MOVE_FAINT_ATTACK
- level_up_move 25, MOVE_AMNESIA
- level_up_move 31, MOVE_COVET
- level_up_move 36, MOVE_SWAGGER
- level_up_move 37, MOVE_COUNTER
- level_up_move 43, MOVE_FLAIL
- .2byte -1
-
-gGulpinLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 6, MOVE_YAWN
- level_up_move 9, MOVE_POISON_GAS
- level_up_move 14, MOVE_SLUDGE
- level_up_move 17, MOVE_AMNESIA
- level_up_move 23, MOVE_ENCORE
- level_up_move 28, MOVE_TOXIC
- level_up_move 34, MOVE_STOCKPILE
- level_up_move 34, MOVE_SPIT_UP
- level_up_move 34, MOVE_SWALLOW
- level_up_move 39, MOVE_SLUDGE_BOMB
- .2byte -1
-
-gSwalotLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_YAWN
- level_up_move 1, MOVE_POISON_GAS
- level_up_move 1, MOVE_SLUDGE
- level_up_move 6, MOVE_YAWN
- level_up_move 9, MOVE_POISON_GAS
- level_up_move 14, MOVE_SLUDGE
- level_up_move 17, MOVE_AMNESIA
- level_up_move 23, MOVE_ENCORE
- level_up_move 26, MOVE_BODY_SLAM
- level_up_move 31, MOVE_TOXIC
- level_up_move 40, MOVE_STOCKPILE
- level_up_move 40, MOVE_SPIT_UP
- level_up_move 40, MOVE_SWALLOW
- level_up_move 48, MOVE_SLUDGE_BOMB
- .2byte -1
-
-gTropiusLevelUpLearnset:
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_GUST
- level_up_move 7, MOVE_GROWTH
- level_up_move 11, MOVE_RAZOR_LEAF
- level_up_move 17, MOVE_STOMP
- level_up_move 21, MOVE_SWEET_SCENT
- level_up_move 27, MOVE_WHIRLWIND
- level_up_move 31, MOVE_MAGICAL_LEAF
- level_up_move 37, MOVE_BODY_SLAM
- level_up_move 41, MOVE_SOLAR_BEAM
- level_up_move 47, MOVE_SYNTHESIS
- .2byte -1
-
-gWhismurLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 5, MOVE_UPROAR
- level_up_move 11, MOVE_ASTONISH
- level_up_move 15, MOVE_HOWL
- level_up_move 21, MOVE_SUPERSONIC
- level_up_move 25, MOVE_STOMP
- level_up_move 31, MOVE_SCREECH
- level_up_move 35, MOVE_ROAR
- level_up_move 41, MOVE_REST
- level_up_move 41, MOVE_SLEEP_TALK
- level_up_move 45, MOVE_HYPER_VOICE
- .2byte -1
-
-gLoudredLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_UPROAR
- level_up_move 1, MOVE_ASTONISH
- level_up_move 1, MOVE_HOWL
- level_up_move 5, MOVE_UPROAR
- level_up_move 11, MOVE_ASTONISH
- level_up_move 15, MOVE_HOWL
- level_up_move 23, MOVE_SUPERSONIC
- level_up_move 29, MOVE_STOMP
- level_up_move 37, MOVE_SCREECH
- level_up_move 43, MOVE_ROAR
- level_up_move 51, MOVE_REST
- level_up_move 51, MOVE_SLEEP_TALK
- level_up_move 57, MOVE_HYPER_VOICE
- .2byte -1
-
-gExploudLevelUpLearnset:
- level_up_move 1, MOVE_POUND
- level_up_move 1, MOVE_UPROAR
- level_up_move 1, MOVE_ASTONISH
- level_up_move 1, MOVE_HOWL
- level_up_move 5, MOVE_UPROAR
- level_up_move 11, MOVE_ASTONISH
- level_up_move 15, MOVE_HOWL
- level_up_move 23, MOVE_SUPERSONIC
- level_up_move 29, MOVE_STOMP
- level_up_move 37, MOVE_SCREECH
- level_up_move 40, MOVE_HYPER_BEAM
- level_up_move 45, MOVE_ROAR
- level_up_move 55, MOVE_REST
- level_up_move 55, MOVE_SLEEP_TALK
- level_up_move 63, MOVE_HYPER_VOICE
- .2byte -1
-
-gClamperlLevelUpLearnset:
- level_up_move 1, MOVE_CLAMP
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 1, MOVE_WHIRLPOOL
- level_up_move 1, MOVE_IRON_DEFENSE
- .2byte -1
-
-gHuntailLevelUpLearnset:
- level_up_move 1, MOVE_WHIRLPOOL
- level_up_move 8, MOVE_BITE
- level_up_move 15, MOVE_SCREECH
- level_up_move 22, MOVE_WATER_PULSE
- level_up_move 29, MOVE_SCARY_FACE
- level_up_move 36, MOVE_CRUNCH
- level_up_move 43, MOVE_BATON_PASS
- level_up_move 50, MOVE_HYDRO_PUMP
- .2byte -1
-
-gGorebyssLevelUpLearnset:
- level_up_move 1, MOVE_WHIRLPOOL
- level_up_move 8, MOVE_CONFUSION
- level_up_move 15, MOVE_AGILITY
- level_up_move 22, MOVE_WATER_PULSE
- level_up_move 29, MOVE_AMNESIA
- level_up_move 36, MOVE_PSYCHIC
- level_up_move 43, MOVE_BATON_PASS
- level_up_move 50, MOVE_HYDRO_PUMP
- .2byte -1
-
-gAbsolLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 5, MOVE_LEER
- level_up_move 9, MOVE_TAUNT
- level_up_move 13, MOVE_QUICK_ATTACK
- level_up_move 17, MOVE_RAZOR_WIND
- level_up_move 21, MOVE_BITE
- level_up_move 26, MOVE_SWORDS_DANCE
- level_up_move 31, MOVE_DOUBLE_TEAM
- level_up_move 36, MOVE_SLASH
- level_up_move 41, MOVE_FUTURE_SIGHT
- level_up_move 46, MOVE_PERISH_SONG
- .2byte -1
-
-gShuppetLevelUpLearnset:
- level_up_move 1, MOVE_KNOCK_OFF
- level_up_move 8, MOVE_SCREECH
- level_up_move 13, MOVE_NIGHT_SHADE
- level_up_move 20, MOVE_CURSE
- level_up_move 25, MOVE_SPITE
- level_up_move 32, MOVE_WILL_O_WISP
- level_up_move 37, MOVE_FAINT_ATTACK
- level_up_move 44, MOVE_SHADOW_BALL
- level_up_move 49, MOVE_SNATCH
- level_up_move 56, MOVE_GRUDGE
- .2byte -1
-
-gBanetteLevelUpLearnset:
- level_up_move 1, MOVE_KNOCK_OFF
- level_up_move 1, MOVE_SCREECH
- level_up_move 1, MOVE_NIGHT_SHADE
- level_up_move 1, MOVE_CURSE
- level_up_move 8, MOVE_SCREECH
- level_up_move 13, MOVE_NIGHT_SHADE
- level_up_move 20, MOVE_CURSE
- level_up_move 25, MOVE_SPITE
- level_up_move 32, MOVE_WILL_O_WISP
- level_up_move 39, MOVE_FAINT_ATTACK
- level_up_move 48, MOVE_SHADOW_BALL
- level_up_move 55, MOVE_SNATCH
- level_up_move 64, MOVE_GRUDGE
- .2byte -1
-
-gSeviperLevelUpLearnset:
- level_up_move 1, MOVE_WRAP
- level_up_move 7, MOVE_LICK
- level_up_move 10, MOVE_BITE
- level_up_move 16, MOVE_POISON_TAIL
- level_up_move 19, MOVE_SCREECH
- level_up_move 25, MOVE_GLARE
- level_up_move 28, MOVE_CRUNCH
- level_up_move 34, MOVE_POISON_FANG
- level_up_move 37, MOVE_SWAGGER
- level_up_move 43, MOVE_HAZE
- .2byte -1
-
-gZangooseLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 4, MOVE_LEER
- level_up_move 7, MOVE_QUICK_ATTACK
- level_up_move 10, MOVE_SWORDS_DANCE
- level_up_move 13, MOVE_FURY_CUTTER
- level_up_move 19, MOVE_SLASH
- level_up_move 25, MOVE_PURSUIT
- level_up_move 31, MOVE_CRUSH_CLAW
- level_up_move 37, MOVE_TAUNT
- level_up_move 46, MOVE_DETECT
- level_up_move 55, MOVE_FALSE_SWIPE
- .2byte -1
-
-gRelicanthLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_HARDEN
- level_up_move 8, MOVE_WATER_GUN
- level_up_move 15, MOVE_ROCK_TOMB
- level_up_move 22, MOVE_YAWN
- level_up_move 29, MOVE_TAKE_DOWN
- level_up_move 36, MOVE_MUD_SPORT
- level_up_move 43, MOVE_ANCIENT_POWER
- level_up_move 50, MOVE_REST
- level_up_move 57, MOVE_DOUBLE_EDGE
- level_up_move 64, MOVE_HYDRO_PUMP
- .2byte -1
-
-gAronLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 4, MOVE_HARDEN
- level_up_move 7, MOVE_MUD_SLAP
- level_up_move 10, MOVE_HEADBUTT
- level_up_move 13, MOVE_METAL_CLAW
- level_up_move 17, MOVE_IRON_DEFENSE
- level_up_move 21, MOVE_ROAR
- level_up_move 25, MOVE_TAKE_DOWN
- level_up_move 29, MOVE_IRON_TAIL
- level_up_move 34, MOVE_PROTECT
- level_up_move 39, MOVE_METAL_SOUND
- level_up_move 44, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gLaironLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_HARDEN
- level_up_move 1, MOVE_MUD_SLAP
- level_up_move 1, MOVE_HEADBUTT
- level_up_move 4, MOVE_HARDEN
- level_up_move 7, MOVE_MUD_SLAP
- level_up_move 10, MOVE_HEADBUTT
- level_up_move 13, MOVE_METAL_CLAW
- level_up_move 17, MOVE_IRON_DEFENSE
- level_up_move 21, MOVE_ROAR
- level_up_move 25, MOVE_TAKE_DOWN
- level_up_move 29, MOVE_IRON_TAIL
- level_up_move 37, MOVE_PROTECT
- level_up_move 45, MOVE_METAL_SOUND
- level_up_move 53, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gAggronLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 1, MOVE_HARDEN
- level_up_move 1, MOVE_MUD_SLAP
- level_up_move 1, MOVE_HEADBUTT
- level_up_move 4, MOVE_HARDEN
- level_up_move 7, MOVE_MUD_SLAP
- level_up_move 10, MOVE_HEADBUTT
- level_up_move 13, MOVE_METAL_CLAW
- level_up_move 17, MOVE_IRON_DEFENSE
- level_up_move 21, MOVE_ROAR
- level_up_move 25, MOVE_TAKE_DOWN
- level_up_move 29, MOVE_IRON_TAIL
- level_up_move 37, MOVE_PROTECT
- level_up_move 50, MOVE_METAL_SOUND
- level_up_move 63, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gCastformLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 10, MOVE_WATER_GUN
- level_up_move 10, MOVE_EMBER
- level_up_move 10, MOVE_POWDER_SNOW
- level_up_move 20, MOVE_RAIN_DANCE
- level_up_move 20, MOVE_SUNNY_DAY
- level_up_move 20, MOVE_HAIL
- level_up_move 30, MOVE_WEATHER_BALL
- .2byte -1
-
-gVolbeatLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 5, MOVE_CONFUSE_RAY
- level_up_move 9, MOVE_DOUBLE_TEAM
- level_up_move 13, MOVE_MOONLIGHT
- level_up_move 17, MOVE_QUICK_ATTACK
- level_up_move 21, MOVE_TAIL_GLOW
- level_up_move 25, MOVE_SIGNAL_BEAM
- level_up_move 29, MOVE_PROTECT
- level_up_move 33, MOVE_HELPING_HAND
- level_up_move 37, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gIllumiseLevelUpLearnset:
- level_up_move 1, MOVE_TACKLE
- level_up_move 5, MOVE_SWEET_SCENT
- level_up_move 9, MOVE_CHARM
- level_up_move 13, MOVE_MOONLIGHT
- level_up_move 17, MOVE_QUICK_ATTACK
- level_up_move 21, MOVE_WISH
- level_up_move 25, MOVE_ENCORE
- level_up_move 29, MOVE_FLATTER
- level_up_move 33, MOVE_HELPING_HAND
- level_up_move 37, MOVE_COVET
- .2byte -1
-
-gLileepLevelUpLearnset:
- level_up_move 1, MOVE_ASTONISH
- level_up_move 8, MOVE_CONSTRICT
- level_up_move 15, MOVE_ACID
- level_up_move 22, MOVE_INGRAIN
- level_up_move 29, MOVE_CONFUSE_RAY
- level_up_move 36, MOVE_AMNESIA
- level_up_move 43, MOVE_ANCIENT_POWER
- level_up_move 50, MOVE_STOCKPILE
- level_up_move 50, MOVE_SPIT_UP
- level_up_move 50, MOVE_SWALLOW
- .2byte -1
-
-gCradilyLevelUpLearnset:
- level_up_move 1, MOVE_ASTONISH
- level_up_move 1, MOVE_CONSTRICT
- level_up_move 1, MOVE_ACID
- level_up_move 1, MOVE_INGRAIN
- level_up_move 8, MOVE_CONSTRICT
- level_up_move 15, MOVE_ACID
- level_up_move 22, MOVE_INGRAIN
- level_up_move 29, MOVE_CONFUSE_RAY
- level_up_move 36, MOVE_AMNESIA
- level_up_move 48, MOVE_ANCIENT_POWER
- level_up_move 60, MOVE_STOCKPILE
- level_up_move 60, MOVE_SPIT_UP
- level_up_move 60, MOVE_SWALLOW
- .2byte -1
-
-gAnorithLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 7, MOVE_HARDEN
- level_up_move 13, MOVE_MUD_SPORT
- level_up_move 19, MOVE_WATER_GUN
- level_up_move 25, MOVE_METAL_CLAW
- level_up_move 31, MOVE_PROTECT
- level_up_move 37, MOVE_ANCIENT_POWER
- level_up_move 43, MOVE_FURY_CUTTER
- level_up_move 49, MOVE_SLASH
- level_up_move 55, MOVE_ROCK_BLAST
- .2byte -1
-
-gArmaldoLevelUpLearnset:
- level_up_move 1, MOVE_SCRATCH
- level_up_move 1, MOVE_HARDEN
- level_up_move 1, MOVE_MUD_SPORT
- level_up_move 1, MOVE_WATER_GUN
- level_up_move 7, MOVE_HARDEN
- level_up_move 13, MOVE_MUD_SPORT
- level_up_move 19, MOVE_WATER_GUN
- level_up_move 25, MOVE_METAL_CLAW
- level_up_move 31, MOVE_PROTECT
- level_up_move 37, MOVE_ANCIENT_POWER
- level_up_move 46, MOVE_FURY_CUTTER
- level_up_move 55, MOVE_SLASH
- level_up_move 64, MOVE_ROCK_BLAST
- .2byte -1
-
-gRaltsLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 6, MOVE_CONFUSION
- level_up_move 11, MOVE_DOUBLE_TEAM
- level_up_move 16, MOVE_TELEPORT
- level_up_move 21, MOVE_CALM_MIND
- level_up_move 26, MOVE_PSYCHIC
- level_up_move 31, MOVE_IMPRISON
- level_up_move 36, MOVE_FUTURE_SIGHT
- level_up_move 41, MOVE_HYPNOSIS
- level_up_move 46, MOVE_DREAM_EATER
- .2byte -1
-
-gKirliaLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_CONFUSION
- level_up_move 1, MOVE_DOUBLE_TEAM
- level_up_move 1, MOVE_TELEPORT
- level_up_move 6, MOVE_CONFUSION
- level_up_move 11, MOVE_DOUBLE_TEAM
- level_up_move 16, MOVE_TELEPORT
- level_up_move 21, MOVE_CALM_MIND
- level_up_move 26, MOVE_PSYCHIC
- level_up_move 33, MOVE_IMPRISON
- level_up_move 40, MOVE_FUTURE_SIGHT
- level_up_move 47, MOVE_HYPNOSIS
- level_up_move 54, MOVE_DREAM_EATER
- .2byte -1
-
-gGardevoirLevelUpLearnset:
- level_up_move 1, MOVE_GROWL
- level_up_move 1, MOVE_CONFUSION
- level_up_move 1, MOVE_DOUBLE_TEAM
- level_up_move 1, MOVE_TELEPORT
- level_up_move 6, MOVE_CONFUSION
- level_up_move 11, MOVE_DOUBLE_TEAM
- level_up_move 16, MOVE_TELEPORT
- level_up_move 21, MOVE_CALM_MIND
- level_up_move 26, MOVE_PSYCHIC
- level_up_move 33, MOVE_IMPRISON
- level_up_move 42, MOVE_FUTURE_SIGHT
- level_up_move 51, MOVE_HYPNOSIS
- level_up_move 60, MOVE_DREAM_EATER
- .2byte -1
-
-gBagonLevelUpLearnset:
- level_up_move 1, MOVE_RAGE
- level_up_move 5, MOVE_BITE
- level_up_move 9, MOVE_LEER
- level_up_move 17, MOVE_HEADBUTT
- level_up_move 21, MOVE_FOCUS_ENERGY
- level_up_move 25, MOVE_EMBER
- level_up_move 33, MOVE_DRAGON_BREATH
- level_up_move 37, MOVE_SCARY_FACE
- level_up_move 41, MOVE_CRUNCH
- level_up_move 49, MOVE_DRAGON_CLAW
- level_up_move 53, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gShelgonLevelUpLearnset:
- level_up_move 1, MOVE_RAGE
- level_up_move 1, MOVE_BITE
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_HEADBUTT
- level_up_move 5, MOVE_BITE
- level_up_move 9, MOVE_LEER
- level_up_move 17, MOVE_HEADBUTT
- level_up_move 21, MOVE_FOCUS_ENERGY
- level_up_move 25, MOVE_EMBER
- level_up_move 30, MOVE_PROTECT
- level_up_move 38, MOVE_DRAGON_BREATH
- level_up_move 47, MOVE_SCARY_FACE
- level_up_move 56, MOVE_CRUNCH
- level_up_move 69, MOVE_DRAGON_CLAW
- level_up_move 78, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gSalamenceLevelUpLearnset:
- level_up_move 1, MOVE_RAGE
- level_up_move 1, MOVE_BITE
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_HEADBUTT
- level_up_move 5, MOVE_BITE
- level_up_move 9, MOVE_LEER
- level_up_move 17, MOVE_HEADBUTT
- level_up_move 21, MOVE_FOCUS_ENERGY
- level_up_move 25, MOVE_EMBER
- level_up_move 30, MOVE_PROTECT
- level_up_move 38, MOVE_DRAGON_BREATH
- level_up_move 47, MOVE_SCARY_FACE
- level_up_move 50, MOVE_FLY
- level_up_move 61, MOVE_CRUNCH
- level_up_move 79, MOVE_DRAGON_CLAW
- level_up_move 93, MOVE_DOUBLE_EDGE
- .2byte -1
-
-gBeldumLevelUpLearnset:
- level_up_move 1, MOVE_TAKE_DOWN
- .2byte -1
-
-gMetangLevelUpLearnset:
- level_up_move 1, MOVE_TAKE_DOWN
- level_up_move 20, MOVE_CONFUSION
- level_up_move 20, MOVE_METAL_CLAW
- level_up_move 26, MOVE_SCARY_FACE
- level_up_move 32, MOVE_PURSUIT
- level_up_move 38, MOVE_PSYCHIC
- level_up_move 44, MOVE_IRON_DEFENSE
- level_up_move 50, MOVE_METEOR_MASH
- level_up_move 56, MOVE_AGILITY
- level_up_move 62, MOVE_HYPER_BEAM
- .2byte -1
-
-gMetagrossLevelUpLearnset:
- level_up_move 1, MOVE_TAKE_DOWN
- level_up_move 1, MOVE_CONFUSION
- level_up_move 1, MOVE_METAL_CLAW
- level_up_move 1, MOVE_SCARY_FACE
- level_up_move 20, MOVE_CONFUSION
- level_up_move 20, MOVE_METAL_CLAW
- level_up_move 26, MOVE_SCARY_FACE
- level_up_move 32, MOVE_PURSUIT
- level_up_move 38, MOVE_PSYCHIC
- level_up_move 44, MOVE_IRON_DEFENSE
- level_up_move 55, MOVE_METEOR_MASH
- level_up_move 66, MOVE_AGILITY
- level_up_move 77, MOVE_HYPER_BEAM
- .2byte -1
-
-gRegirockLevelUpLearnset:
- level_up_move 1, MOVE_EXPLOSION
- level_up_move 9, MOVE_ROCK_THROW
- level_up_move 17, MOVE_CURSE
- level_up_move 25, MOVE_SUPERPOWER
- level_up_move 33, MOVE_ANCIENT_POWER
- level_up_move 41, MOVE_IRON_DEFENSE
- level_up_move 49, MOVE_ZAP_CANNON
- level_up_move 57, MOVE_LOCK_ON
- level_up_move 65, MOVE_HYPER_BEAM
- .2byte -1
-
-gRegiceLevelUpLearnset:
- level_up_move 1, MOVE_EXPLOSION
- level_up_move 9, MOVE_ICY_WIND
- level_up_move 17, MOVE_CURSE
- level_up_move 25, MOVE_SUPERPOWER
- level_up_move 33, MOVE_ANCIENT_POWER
- level_up_move 41, MOVE_AMNESIA
- level_up_move 49, MOVE_ZAP_CANNON
- level_up_move 57, MOVE_LOCK_ON
- level_up_move 65, MOVE_HYPER_BEAM
- .2byte -1
-
-gRegisteelLevelUpLearnset:
- level_up_move 1, MOVE_EXPLOSION
- level_up_move 9, MOVE_METAL_CLAW
- level_up_move 17, MOVE_CURSE
- level_up_move 25, MOVE_SUPERPOWER
- level_up_move 33, MOVE_ANCIENT_POWER
- level_up_move 41, MOVE_IRON_DEFENSE
- level_up_move 41, MOVE_AMNESIA
- level_up_move 49, MOVE_ZAP_CANNON
- level_up_move 57, MOVE_LOCK_ON
- level_up_move 65, MOVE_HYPER_BEAM
- .2byte -1
-
-gKyogreLevelUpLearnset:
- level_up_move 1, MOVE_WATER_PULSE
- level_up_move 5, MOVE_SCARY_FACE
- level_up_move 15, MOVE_ANCIENT_POWER
- level_up_move 20, MOVE_BODY_SLAM
- level_up_move 30, MOVE_CALM_MIND
- level_up_move 35, MOVE_ICE_BEAM
- level_up_move 45, MOVE_HYDRO_PUMP
- level_up_move 50, MOVE_REST
- level_up_move 60, MOVE_SHEER_COLD
- level_up_move 65, MOVE_DOUBLE_EDGE
- level_up_move 75, MOVE_WATER_SPOUT
- .2byte -1
-
-gGroudonLevelUpLearnset:
- level_up_move 1, MOVE_MUD_SHOT
- level_up_move 5, MOVE_SCARY_FACE
- level_up_move 15, MOVE_ANCIENT_POWER
- level_up_move 20, MOVE_SLASH
- level_up_move 30, MOVE_BULK_UP
- level_up_move 35, MOVE_EARTHQUAKE
- level_up_move 45, MOVE_FIRE_BLAST
- level_up_move 50, MOVE_REST
- level_up_move 60, MOVE_FISSURE
- level_up_move 65, MOVE_SOLAR_BEAM
- level_up_move 75, MOVE_ERUPTION
- .2byte -1
-
-gRayquazaLevelUpLearnset:
- level_up_move 1, MOVE_TWISTER
- level_up_move 5, MOVE_SCARY_FACE
- level_up_move 15, MOVE_ANCIENT_POWER
- level_up_move 20, MOVE_DRAGON_CLAW
- level_up_move 30, MOVE_DRAGON_DANCE
- level_up_move 35, MOVE_CRUNCH
- level_up_move 45, MOVE_FLY
- level_up_move 50, MOVE_REST
- level_up_move 60, MOVE_EXTREME_SPEED
- level_up_move 65, MOVE_OUTRAGE
- level_up_move 75, MOVE_HYPER_BEAM
- .2byte -1
-
-gLatiasLevelUpLearnset:
- level_up_move 1, MOVE_PSYWAVE
- level_up_move 5, MOVE_WISH
- level_up_move 10, MOVE_HELPING_HAND
- level_up_move 15, MOVE_SAFEGUARD
- level_up_move 20, MOVE_DRAGON_BREATH
- level_up_move 25, MOVE_WATER_SPORT
- level_up_move 30, MOVE_REFRESH
- level_up_move 35, MOVE_MIST_BALL
- level_up_move 40, MOVE_PSYCHIC
- level_up_move 45, MOVE_RECOVER
- level_up_move 50, MOVE_CHARM
- .2byte -1
-
-gLatiosLevelUpLearnset:
- level_up_move 1, MOVE_PSYWAVE
- level_up_move 5, MOVE_MEMENTO
- level_up_move 10, MOVE_HELPING_HAND
- level_up_move 15, MOVE_SAFEGUARD
- level_up_move 20, MOVE_DRAGON_BREATH
- level_up_move 25, MOVE_PROTECT
- level_up_move 30, MOVE_REFRESH
- level_up_move 35, MOVE_LUSTER_PURGE
- level_up_move 40, MOVE_PSYCHIC
- level_up_move 45, MOVE_RECOVER
- level_up_move 50, MOVE_DRAGON_DANCE
- .2byte -1
-
-gJirachiLevelUpLearnset:
- level_up_move 1, MOVE_WISH
- level_up_move 1, MOVE_CONFUSION
- level_up_move 5, MOVE_REST
- level_up_move 10, MOVE_SWIFT
- level_up_move 15, MOVE_HELPING_HAND
- level_up_move 20, MOVE_PSYCHIC
- level_up_move 25, MOVE_REFRESH
- level_up_move 30, MOVE_REST
- level_up_move 35, MOVE_DOUBLE_EDGE
- level_up_move 40, MOVE_FUTURE_SIGHT
- level_up_move 45, MOVE_COSMIC_POWER
- level_up_move 50, MOVE_DOOM_DESIRE
- .2byte -1
-
-gDeoxysLevelUpLearnset:
- level_up_move 1, MOVE_LEER
- level_up_move 1, MOVE_WRAP
- level_up_move 5, MOVE_NIGHT_SHADE
- level_up_move 10, MOVE_TELEPORT
- level_up_move 15, MOVE_KNOCK_OFF
- level_up_move 20, MOVE_PURSUIT
- level_up_move 25, MOVE_PSYCHIC
- level_up_move 30, MOVE_SNATCH
- level_up_move 35, MOVE_COSMIC_POWER
- level_up_move 40, MOVE_RECOVER
- level_up_move 45, MOVE_PSYCHO_BOOST
- level_up_move 50, MOVE_HYPER_BEAM
- .2byte -1
-
-gChimechoLevelUpLearnset:
- level_up_move 1, MOVE_WRAP
- level_up_move 6, MOVE_GROWL
- level_up_move 9, MOVE_ASTONISH
- level_up_move 14, MOVE_CONFUSION
- level_up_move 17, MOVE_TAKE_DOWN
- level_up_move 22, MOVE_UPROAR
- level_up_move 25, MOVE_YAWN
- level_up_move 30, MOVE_PSYWAVE
- level_up_move 33, MOVE_DOUBLE_EDGE
- level_up_move 38, MOVE_HEAL_BELL
- level_up_move 41, MOVE_SAFEGUARD
- level_up_move 46, MOVE_PSYCHIC
- .2byte -1
diff --git a/data/nature_stat_table.inc b/data/nature_stat_table.inc
deleted file mode 100644
index e09d41a43..000000000
--- a/data/nature_stat_table.inc
+++ /dev/null
@@ -1,27 +0,0 @@
-gNatureStatTable:: @ 81FD070
- @ Atk Def Spd Sp.Atk Sp.Def
- .byte 0, 0, 0, 0, 0 @ Hardy
- .byte 1, -1, 0, 0, 0 @ Lonely
- .byte 1, 0, -1, 0, 0 @ Brave
- .byte 1, 0, 0, -1, 0 @ Adamant
- .byte 1, 0, 0, 0, -1 @ Naughty
- .byte -1, 1, 0, 0, 0 @ Bold
- .byte 0, 0, 0, 0, 0 @ Docile
- .byte 0, 1, -1, 0, 0 @ Relaxed
- .byte 0, 1, 0, -1, 0 @ Impish
- .byte 0, 1, 0, 0, -1 @ Lax
- .byte -1, 0, 1, 0, 0 @ Timid
- .byte 0, -1, 1, 0, 0 @ Hasty
- .byte 0, 0, 0, 0, 0 @ Serious
- .byte 0, 0, 1, -1, 0 @ Jolly
- .byte 0, 0, 1, 0, -1 @ Naive
- .byte -1, 0, 0, 1, 0 @ Modest
- .byte 0, -1, 0, 1, 0 @ Mild
- .byte 0, 0, -1, 1, 0 @ Quiet
- .byte 0, 0, 0, 0, 0 @ Bashful
- .byte 0, 0, 0, 1, -1 @ Rash
- .byte -1, 0, 0, 0, 1 @ Calm
- .byte 0, -1, 0, 0, 1 @ Gentle
- .byte 0, 0, -1, 0, 1 @ Sassy
- .byte 0, 0, 0, -1, 1 @ Careful
- .byte 0, 0, 0, 0, 0 @ Quirky
diff --git a/data/pokemon.s b/data/pokemon.s
deleted file mode 100644
index 2229512a4..000000000
--- a/data/pokemon.s
+++ /dev/null
@@ -1,131 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-@ 81FC1E0
- .include "data/species_id_conversion_tables.inc"
-
-@ 81FCB84
- .include "data/spinda_spot_graphics.inc"
-
-@ 81FCC14
- .include "data/item_effects.inc"
-
-@ 81FD070
- .include "data/nature_stat_table.inc"
-
-@ 81FD0F0
- .include "data/tm_hm_learnsets.inc"
-
-@ 81FDDD0
- .include "data/trainer_class_index_tables.inc"
-
-@ 81FDE6A
- .include "data/cry_id_table.inc"
-
-@ 81FDF78
- .include "data/experience_tables/tables.inc"
-
-@ 81FEC18
- .include "data/base_stats.inc"
-
-@ 8201928
- .include "data/level_up_learnsets.inc"
-
-@ 8203B68
- .include "data/evolution_table.inc"
-
-@ 8207BC8
- .include "data/level_up_learnset_pointers.inc"
-
-gUnknown_08208238:: @ 8208238
- .byte 0x03, 0x0C, 0x30, 0xC0
-
-gUnknown_0820823C:: @ 820823C
- .byte 0xFC, 0xF3, 0xCF, 0x3F
-
-gUnknown_08208240:: @ 8208240
- .byte 0x01, 0x04, 0x10, 0x40
-
-gStatStageRatios:: @ 8208244
- .byte 10, 40 @ -6
- .byte 10, 35 @ -5
- .byte 10, 30 @ -4
- .byte 10, 25 @ -3
- .byte 10, 20 @ -2
- .byte 10, 15 @ -1
- .byte 10, 10 @ 0
- .byte 15, 10 @ +1
- .byte 20, 10 @ +2
- .byte 25, 10 @ +3
- .byte 30, 10 @ +4
- .byte 35, 10 @ +5
- .byte 40, 10 @ +6
-
-@ abbreviation of Game Freak
- .string "ゲーフリ$"
-
-gHoldEffectToType:: @ 8208263
- .byte HOLD_EFFECT_BUG_POWER, TYPE_BUG
- .byte HOLD_EFFECT_STEEL_POWER, TYPE_STEEL
- .byte HOLD_EFFECT_GROUND_POWER, TYPE_GROUND
- .byte HOLD_EFFECT_ROCK_POWER, TYPE_ROCK
- .byte HOLD_EFFECT_GRASS_POWER, TYPE_GRASS
- .byte HOLD_EFFECT_DARK_POWER, TYPE_DARK
- .byte HOLD_EFFECT_FIGHTING_POWER, TYPE_FIGHTING
- .byte HOLD_EFFECT_ELECTRIC_POWER, TYPE_ELECTRIC
- .byte HOLD_EFFECT_WATER_POWER, TYPE_WATER
- .byte HOLD_EFFECT_FLYING_POWER, TYPE_FLYING
- .byte HOLD_EFFECT_POISON_POWER, TYPE_POISON
- .byte HOLD_EFFECT_ICE_POWER, TYPE_ICE
- .byte HOLD_EFFECT_GHOST_POWER, TYPE_GHOST
- .byte HOLD_EFFECT_PSYCHIC_POWER, TYPE_PSYCHIC
- .byte HOLD_EFFECT_FIRE_POWER, TYPE_FIRE
- .byte HOLD_EFFECT_DRAGON_POWER, TYPE_DRAGON
- .byte HOLD_EFFECT_NORMAL_POWER, TYPE_NORMAL
- .byte 0, 0
-
- .align 2
-gSpriteTemplate_8208288:: @ 8208288
- spr_template 0xFFFF, 0, gOamData_81F96F0, NULL, gSpriteImageTable_81E7A10, gSpriteAffineAnimTable_81E7B70, sub_80105A0
- spr_template 0xFFFF, 0, gOamData_81F96E8, NULL, gSpriteImageTable_81E7A30, gSpriteAffineAnimTable_81E7BEC, oac_poke_opponent
- spr_template 0xFFFF, 0, gOamData_81F96F0, NULL, gSpriteImageTable_81E7A50, gSpriteAffineAnimTable_81E7B70, sub_80105A0
- spr_template 0xFFFF, 0, gOamData_81F96E8, NULL, gSpriteImageTable_81E7A70, gSpriteAffineAnimTable_81E7BEC, oac_poke_opponent
-
-gSecretBaseTrainerClasses:: @ 82082E8
- .byte TRAINER_CLASS_YOUNGSTER, TRAINER_CLASS_BUG_CATCHER, TRAINER_CLASS_RICH_BOY, TRAINER_CLASS_CAMPER, TRAINER_CLASS_COOL_TRAINER_M
- .byte TRAINER_CLASS_LASS, TRAINER_CLASS_SCHOOL_KID_F, TRAINER_CLASS_LADY, TRAINER_CLASS_PICNICKER, TRAINER_CLASS_COOL_TRAINER_F
-
-gUnknown_082082F2:: @ 82082F2
- .byte 0x1A, 0x1B, 0x1C, 0x1D, 0x1F, 0x1E
-
-gUnknown_082082F8:: @ 82082F8
- .byte 1, 1, 3, 2, 4, 6
-
-gUnknown_082082FE:: @ 82082FE
- .byte 5, 3, 2
- .byte 5, 3, 2
- .byte 1, 1, 0
- .byte 3, 2, 1
- .byte 1, 1, 0
- .byte 1, 1, 1
- .byte -1, -1, -1
- .byte -5, -5, -10
- .byte -5, -5, -10
-
- .align 1
-gHMMoves:: @ 820831A
- .2byte MOVE_CUT
- .2byte MOVE_FLY
- .2byte MOVE_SURF
- .2byte MOVE_STRENGTH
- .2byte MOVE_FLASH
- .2byte MOVE_ROCK_SMASH
- .2byte MOVE_WATERFALL
- .2byte MOVE_DIVE
- .2byte 0xFFFF
-
-gJapaneseNidoranNames:: @ 820832C
- .string "ニドラン♂$", 11
- .string "ニドラン♀$", 11
diff --git a/data/sound_check_menu.s b/data/sound_check_menu.s
deleted file mode 100644
index a91f55d04..000000000
--- a/data/sound_check_menu.s
+++ /dev/null
@@ -1,121 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2 @ object file boundary?
-
-gDebugText_SoundCheckJap:: @ 83D02C8
- .string "サウンドチェック$" @ Sound Check
-
-gDebugText_BGM:: @ 83D02D1
- .string "BGM$"
-
-gDebugText_SE:: @ 83D02D5
- .string "SE $"
-
-gUnknown_083D02D9:: @ 83D02D9
- .string "A‥さいせい B‥おわり$"
-
-gDebugText_UpDown:: @ 83D02E6
- .string "L‥UP R‥DOWN$"
-
-gDebugText_DriverTest:: @ 83D02F2
- .string "R‥DRIVER-TEST$"
-
-gUnknown_083D0300:: @ 83D0300
- .byte 1, 1
- .byte 1, 3
- .byte 1, 5
- .byte 1, 7
- .byte 1, 9
- .byte 1, 11
- .byte 1, 13
- .byte 1, 15
- .byte 1, 17
-
-gUnknown_083D0312:: @ 83D0312
- .string "Bぼたんで もどる$"
-
-gUnknown_083D031C:: @ 83D031C
- .string "Aぼたんで さいせい$"
-
-gDebugText_Voice:: @ 83D0327
- .string "VOICE‥‥‥‥$"
-
-gDebugText_Volume:: @ 83D0331
- .string "VOLUME‥‥‥$"
-
-gDebugText_Panpot:: @ 83D033B
- .string "PANPOT‥‥‥$"
-
-gDebugText_Pitch:: @ 83D0345
- .string "PITCH‥‥‥‥$"
-
-gDebugText_Length:: @ 83D034F
- .string "LENGTH‥‥‥$"
-
-gDebugText_Release:: @ 83D0359
- .string "RELEASE‥‥$"
-
-gDebugText_Progress:: @ 83D0363
- .string "PROGRESS‥$"
-
-gDebugText_Chorus:: @ 83D036D
- .string "CHORUS‥‥‥$"
-
-gDebugText_Priority:: @ 83D0377
- .string "PRIORITY‥$"
-
-gUnknown_083D0381:: @ 83D0381
- .string "さいせいちゆう‥$" @ 再生中 (playing)
-
-gUnknown_083D038A:: @ 83D038A
- .string "はんてん‥‥‥‥$" @ 反転 (reverse)
-
-gUnknown_083D0393:: @ 83D0393
- .string "すてれお‥‥‥‥$" @ stereo
-
- .align 2
-gUnknown_083D039C:: @ 83D039C
- .4byte 0, 387
- .4byte 0, 127
- .4byte -127, 127
- .4byte -128, 32639
- .4byte 0, 65535
- .4byte 0, 255
- .4byte 0, 65535
- .4byte -64, 63
-
-gUnknown_083D03DC:: @ 83D03DC
- .string "▶$"
-
-gUnknown_083D03DE:: @ 83D03DE
- .string " $"
-
- .align 2
-gUnknown_083D03E0:: @ 83D03E0
- .4byte 1
- .4byte 10
- .4byte 100
- .4byte 1000
- .4byte 10000
- .4byte 100000
-
-gUnknown_083D03F8:: @ 83D03F8
- .byte 0x3F, 0x00, 0xC0, 0x7F, 0x80 @ stereo panning
-
-gOtherText_SE:: @ 83D03FD
- .string "SE$"
-
-gOtherText_Pan:: @ 83D0400
- .string "PAN$"
-
-gOtherText_LR:: @ 83D0404
- .string " LR$"
-
-gOtherText_RL:: @ 83D0409
- .string " RL$"
-
-@ 83D040E
- .include "data/text/song_names.inc"
diff --git a/data/species_id_conversion_tables.inc b/data/species_id_conversion_tables.inc
deleted file mode 100644
index 88725d2bd..000000000
--- a/data/species_id_conversion_tables.inc
+++ /dev/null
@@ -1,1241 +0,0 @@
- .align 2 @ TODO: Find out if this could be 1.
-gSpeciesToHoennPokedexNum:: @ 81FC1E0
- .2byte 203
- .2byte 204
- .2byte 205
- .2byte 206
- .2byte 207
- .2byte 208
- .2byte 209
- .2byte 210
- .2byte 211
- .2byte 212
- .2byte 213
- .2byte 214
- .2byte 215
- .2byte 216
- .2byte 217
- .2byte 218
- .2byte 219
- .2byte 220
- .2byte 221
- .2byte 222
- .2byte 223
- .2byte 224
- .2byte 225
- .2byte 226
- .2byte 156
- .2byte 157
- .2byte 112
- .2byte 113
- .2byte 227
- .2byte 228
- .2byte 229
- .2byte 230
- .2byte 231
- .2byte 232
- .2byte 233
- .2byte 234
- .2byte 153
- .2byte 154
- .2byte 138
- .2byte 139
- .2byte 63
- .2byte 64
- .2byte 88
- .2byte 89
- .2byte 90
- .2byte 235
- .2byte 236
- .2byte 237
- .2byte 238
- .2byte 239
- .2byte 240
- .2byte 241
- .2byte 242
- .2byte 158
- .2byte 159
- .2byte 243
- .2byte 244
- .2byte 245
- .2byte 246
- .2byte 247
- .2byte 248
- .2byte 249
- .2byte 39
- .2byte 40
- .2byte 41
- .2byte 73
- .2byte 74
- .2byte 75
- .2byte 250
- .2byte 251
- .2byte 252
- .2byte 66
- .2byte 67
- .2byte 57
- .2byte 58
- .2byte 59
- .2byte 253
- .2byte 254
- .2byte 255
- .2byte 256
- .2byte 82
- .2byte 83
- .2byte 257
- .2byte 92
- .2byte 93
- .2byte 258
- .2byte 259
- .2byte 106
- .2byte 107
- .2byte 260
- .2byte 261
- .2byte 262
- .2byte 263
- .2byte 264
- .2byte 265
- .2byte 266
- .2byte 267
- .2byte 268
- .2byte 269
- .2byte 84
- .2byte 85
- .2byte 270
- .2byte 271
- .2byte 272
- .2byte 273
- .2byte 274
- .2byte 275
- .2byte 276
- .2byte 108
- .2byte 109
- .2byte 169
- .2byte 170
- .2byte 277
- .2byte 278
- .2byte 279
- .2byte 184
- .2byte 185
- .2byte 50
- .2byte 51
- .2byte 143
- .2byte 144
- .2byte 280
- .2byte 281
- .2byte 282
- .2byte 283
- .2byte 284
- .2byte 167
- .2byte 285
- .2byte 52
- .2byte 53
- .2byte 286
- .2byte 287
- .2byte 288
- .2byte 289
- .2byte 290
- .2byte 291
- .2byte 292
- .2byte 293
- .2byte 294
- .2byte 295
- .2byte 296
- .2byte 297
- .2byte 298
- .2byte 299
- .2byte 300
- .2byte 301
- .2byte 302
- .2byte 303
- .2byte 304
- .2byte 305
- .2byte 306
- .2byte 307
- .2byte 308
- .2byte 309
- .2byte 310
- .2byte 311
- .2byte 312
- .2byte 313
- .2byte 314
- .2byte 315
- .2byte 316
- .2byte 317
- .2byte 318
- .2byte 319
- .2byte 320
- .2byte 321
- .2byte 322
- .2byte 323
- .2byte 65
- .2byte 181
- .2byte 182
- .2byte 155
- .2byte 324
- .2byte 137
- .2byte 325
- .2byte 326
- .2byte 162
- .2byte 163
- .2byte 327
- .2byte 328
- .2byte 329
- .2byte 91
- .2byte 55
- .2byte 56
- .2byte 330
- .2byte 331
- .2byte 332
- .2byte 333
- .2byte 334
- .2byte 335
- .2byte 336
- .2byte 337
- .2byte 338
- .2byte 339
- .2byte 340
- .2byte 341
- .2byte 342
- .2byte 343
- .2byte 344
- .2byte 345
- .2byte 346
- .2byte 161
- .2byte 164
- .2byte 347
- .2byte 348
- .2byte 349
- .2byte 350
- .2byte 351
- .2byte 352
- .2byte 353
- .2byte 354
- .2byte 355
- .2byte 356
- .2byte 168
- .2byte 357
- .2byte 358
- .2byte 359
- .2byte 103
- .2byte 104
- .2byte 360
- .2byte 361
- .2byte 180
- .2byte 362
- .2byte 363
- .2byte 364
- .2byte 365
- .2byte 115
- .2byte 366
- .2byte 367
- .2byte 186
- .2byte 165
- .2byte 166
- .2byte 368
- .2byte 369
- .2byte 370
- .2byte 371
- .2byte 372
- .2byte 373
- .2byte 374
- .2byte 375
- .2byte 376
- .2byte 377
- .2byte 378
- .2byte 379
- .2byte 380
- .2byte 381
- .2byte 382
- .2byte 383
- .2byte 384
- .2byte 385
- .2byte 386
- .2byte 387
- .2byte 388
- .2byte 389
- .2byte 390
- .2byte 391
- .2byte 392
- .2byte 393
- .2byte 394
- .2byte 395
- .2byte 396
- .2byte 397
- .2byte 398
- .2byte 399
- .2byte 400
- .2byte 401
- .2byte 402
- .2byte 403
- .2byte 404
- .2byte 405
- .2byte 406
- .2byte 407
- .2byte 408
- .2byte 409
- .2byte 410
- .2byte 411
- .2byte 1
- .2byte 2
- .2byte 3
- .2byte 4
- .2byte 5
- .2byte 6
- .2byte 7
- .2byte 8
- .2byte 9
- .2byte 10
- .2byte 11
- .2byte 12
- .2byte 13
- .2byte 14
- .2byte 15
- .2byte 16
- .2byte 17
- .2byte 18
- .2byte 19
- .2byte 20
- .2byte 21
- .2byte 22
- .2byte 23
- .2byte 24
- .2byte 42
- .2byte 43
- .2byte 44
- .2byte 25
- .2byte 26
- .2byte 34
- .2byte 35
- .2byte 114
- .2byte 27
- .2byte 28
- .2byte 32
- .2byte 33
- .2byte 99
- .2byte 100
- .2byte 61
- .2byte 62
- .2byte 145
- .2byte 131
- .2byte 132
- .2byte 60
- .2byte 105
- .2byte 68
- .2byte 127
- .2byte 128
- .2byte 183
- .2byte 129
- .2byte 130
- .2byte 140
- .2byte 141
- .2byte 97
- .2byte 98
- .2byte 116
- .2byte 117
- .2byte 118
- .2byte 48
- .2byte 49
- .2byte 78
- .2byte 79
- .2byte 101
- .2byte 102
- .2byte 173
- .2byte 174
- .2byte 175
- .2byte 119
- .2byte 120
- .2byte 171
- .2byte 172
- .2byte 125
- .2byte 126
- .2byte 54
- .2byte 110
- .2byte 111
- .2byte 80
- .2byte 81
- .2byte 69
- .2byte 76
- .2byte 77
- .2byte 121
- .2byte 122
- .2byte 160
- .2byte 148
- .2byte 149
- .2byte 94
- .2byte 36
- .2byte 37
- .2byte 38
- .2byte 95
- .2byte 96
- .2byte 150
- .2byte 45
- .2byte 46
- .2byte 47
- .2byte 176
- .2byte 177
- .2byte 178
- .2byte 152
- .2byte 146
- .2byte 147
- .2byte 124
- .2byte 123
- .2byte 179
- .2byte 70
- .2byte 71
- .2byte 72
- .2byte 142
- .2byte 86
- .2byte 87
- .2byte 133
- .2byte 134
- .2byte 135
- .2byte 136
- .2byte 29
- .2byte 30
- .2byte 31
- .2byte 187
- .2byte 188
- .2byte 189
- .2byte 190
- .2byte 191
- .2byte 192
- .2byte 193
- .2byte 194
- .2byte 195
- .2byte 198
- .2byte 199
- .2byte 200
- .2byte 196
- .2byte 197
- .2byte 201
- .2byte 202
- .2byte 151
-
- .align 1
-gSpeciesToNationalPokedexNum:: @ 81FC516
- .2byte 1
- .2byte 2
- .2byte 3
- .2byte 4
- .2byte 5
- .2byte 6
- .2byte 7
- .2byte 8
- .2byte 9
- .2byte 10
- .2byte 11
- .2byte 12
- .2byte 13
- .2byte 14
- .2byte 15
- .2byte 16
- .2byte 17
- .2byte 18
- .2byte 19
- .2byte 20
- .2byte 21
- .2byte 22
- .2byte 23
- .2byte 24
- .2byte 25
- .2byte 26
- .2byte 27
- .2byte 28
- .2byte 29
- .2byte 30
- .2byte 31
- .2byte 32
- .2byte 33
- .2byte 34
- .2byte 35
- .2byte 36
- .2byte 37
- .2byte 38
- .2byte 39
- .2byte 40
- .2byte 41
- .2byte 42
- .2byte 43
- .2byte 44
- .2byte 45
- .2byte 46
- .2byte 47
- .2byte 48
- .2byte 49
- .2byte 50
- .2byte 51
- .2byte 52
- .2byte 53
- .2byte 54
- .2byte 55
- .2byte 56
- .2byte 57
- .2byte 58
- .2byte 59
- .2byte 60
- .2byte 61
- .2byte 62
- .2byte 63
- .2byte 64
- .2byte 65
- .2byte 66
- .2byte 67
- .2byte 68
- .2byte 69
- .2byte 70
- .2byte 71
- .2byte 72
- .2byte 73
- .2byte 74
- .2byte 75
- .2byte 76
- .2byte 77
- .2byte 78
- .2byte 79
- .2byte 80
- .2byte 81
- .2byte 82
- .2byte 83
- .2byte 84
- .2byte 85
- .2byte 86
- .2byte 87
- .2byte 88
- .2byte 89
- .2byte 90
- .2byte 91
- .2byte 92
- .2byte 93
- .2byte 94
- .2byte 95
- .2byte 96
- .2byte 97
- .2byte 98
- .2byte 99
- .2byte 100
- .2byte 101
- .2byte 102
- .2byte 103
- .2byte 104
- .2byte 105
- .2byte 106
- .2byte 107
- .2byte 108
- .2byte 109
- .2byte 110
- .2byte 111
- .2byte 112
- .2byte 113
- .2byte 114
- .2byte 115
- .2byte 116
- .2byte 117
- .2byte 118
- .2byte 119
- .2byte 120
- .2byte 121
- .2byte 122
- .2byte 123
- .2byte 124
- .2byte 125
- .2byte 126
- .2byte 127
- .2byte 128
- .2byte 129
- .2byte 130
- .2byte 131
- .2byte 132
- .2byte 133
- .2byte 134
- .2byte 135
- .2byte 136
- .2byte 137
- .2byte 138
- .2byte 139
- .2byte 140
- .2byte 141
- .2byte 142
- .2byte 143
- .2byte 144
- .2byte 145
- .2byte 146
- .2byte 147
- .2byte 148
- .2byte 149
- .2byte 150
- .2byte 151
- .2byte 152
- .2byte 153
- .2byte 154
- .2byte 155
- .2byte 156
- .2byte 157
- .2byte 158
- .2byte 159
- .2byte 160
- .2byte 161
- .2byte 162
- .2byte 163
- .2byte 164
- .2byte 165
- .2byte 166
- .2byte 167
- .2byte 168
- .2byte 169
- .2byte 170
- .2byte 171
- .2byte 172
- .2byte 173
- .2byte 174
- .2byte 175
- .2byte 176
- .2byte 177
- .2byte 178
- .2byte 179
- .2byte 180
- .2byte 181
- .2byte 182
- .2byte 183
- .2byte 184
- .2byte 185
- .2byte 186
- .2byte 187
- .2byte 188
- .2byte 189
- .2byte 190
- .2byte 191
- .2byte 192
- .2byte 193
- .2byte 194
- .2byte 195
- .2byte 196
- .2byte 197
- .2byte 198
- .2byte 199
- .2byte 200
- .2byte 201
- .2byte 202
- .2byte 203
- .2byte 204
- .2byte 205
- .2byte 206
- .2byte 207
- .2byte 208
- .2byte 209
- .2byte 210
- .2byte 211
- .2byte 212
- .2byte 213
- .2byte 214
- .2byte 215
- .2byte 216
- .2byte 217
- .2byte 218
- .2byte 219
- .2byte 220
- .2byte 221
- .2byte 222
- .2byte 223
- .2byte 224
- .2byte 225
- .2byte 226
- .2byte 227
- .2byte 228
- .2byte 229
- .2byte 230
- .2byte 231
- .2byte 232
- .2byte 233
- .2byte 234
- .2byte 235
- .2byte 236
- .2byte 237
- .2byte 238
- .2byte 239
- .2byte 240
- .2byte 241
- .2byte 242
- .2byte 243
- .2byte 244
- .2byte 245
- .2byte 246
- .2byte 247
- .2byte 248
- .2byte 249
- .2byte 250
- .2byte 251
- .2byte 387
- .2byte 388
- .2byte 389
- .2byte 390
- .2byte 391
- .2byte 392
- .2byte 393
- .2byte 394
- .2byte 395
- .2byte 396
- .2byte 397
- .2byte 398
- .2byte 399
- .2byte 400
- .2byte 401
- .2byte 402
- .2byte 403
- .2byte 404
- .2byte 405
- .2byte 406
- .2byte 407
- .2byte 408
- .2byte 409
- .2byte 410
- .2byte 411
- .2byte 252
- .2byte 253
- .2byte 254
- .2byte 255
- .2byte 256
- .2byte 257
- .2byte 258
- .2byte 259
- .2byte 260
- .2byte 261
- .2byte 262
- .2byte 263
- .2byte 264
- .2byte 265
- .2byte 266
- .2byte 267
- .2byte 268
- .2byte 269
- .2byte 270
- .2byte 271
- .2byte 272
- .2byte 273
- .2byte 274
- .2byte 275
- .2byte 290
- .2byte 291
- .2byte 292
- .2byte 276
- .2byte 277
- .2byte 285
- .2byte 286
- .2byte 327
- .2byte 278
- .2byte 279
- .2byte 283
- .2byte 284
- .2byte 320
- .2byte 321
- .2byte 300
- .2byte 301
- .2byte 352
- .2byte 343
- .2byte 344
- .2byte 299
- .2byte 324
- .2byte 302
- .2byte 339
- .2byte 340
- .2byte 370
- .2byte 341
- .2byte 342
- .2byte 349
- .2byte 350
- .2byte 318
- .2byte 319
- .2byte 328
- .2byte 329
- .2byte 330
- .2byte 296
- .2byte 297
- .2byte 309
- .2byte 310
- .2byte 322
- .2byte 323
- .2byte 363
- .2byte 364
- .2byte 365
- .2byte 331
- .2byte 332
- .2byte 361
- .2byte 362
- .2byte 337
- .2byte 338
- .2byte 298
- .2byte 325
- .2byte 326
- .2byte 311
- .2byte 312
- .2byte 303
- .2byte 307
- .2byte 308
- .2byte 333
- .2byte 334
- .2byte 360
- .2byte 355
- .2byte 356
- .2byte 315
- .2byte 287
- .2byte 288
- .2byte 289
- .2byte 316
- .2byte 317
- .2byte 357
- .2byte 293
- .2byte 294
- .2byte 295
- .2byte 366
- .2byte 367
- .2byte 368
- .2byte 359
- .2byte 353
- .2byte 354
- .2byte 336
- .2byte 335
- .2byte 369
- .2byte 304
- .2byte 305
- .2byte 306
- .2byte 351
- .2byte 313
- .2byte 314
- .2byte 345
- .2byte 346
- .2byte 347
- .2byte 348
- .2byte 280
- .2byte 281
- .2byte 282
- .2byte 371
- .2byte 372
- .2byte 373
- .2byte 374
- .2byte 375
- .2byte 376
- .2byte 377
- .2byte 378
- .2byte 379
- .2byte 382
- .2byte 383
- .2byte 384
- .2byte 380
- .2byte 381
- .2byte 385
- .2byte 386
- .2byte 358
-
- .align 1
-gHoennToNationalOrder:: @ 81FC84C
- .2byte 252
- .2byte 253
- .2byte 254
- .2byte 255
- .2byte 256
- .2byte 257
- .2byte 258
- .2byte 259
- .2byte 260
- .2byte 261
- .2byte 262
- .2byte 263
- .2byte 264
- .2byte 265
- .2byte 266
- .2byte 267
- .2byte 268
- .2byte 269
- .2byte 270
- .2byte 271
- .2byte 272
- .2byte 273
- .2byte 274
- .2byte 275
- .2byte 276
- .2byte 277
- .2byte 278
- .2byte 279
- .2byte 280
- .2byte 281
- .2byte 282
- .2byte 283
- .2byte 284
- .2byte 285
- .2byte 286
- .2byte 287
- .2byte 288
- .2byte 289
- .2byte 63
- .2byte 64
- .2byte 65
- .2byte 290
- .2byte 291
- .2byte 292
- .2byte 293
- .2byte 294
- .2byte 295
- .2byte 296
- .2byte 297
- .2byte 118
- .2byte 119
- .2byte 129
- .2byte 130
- .2byte 298
- .2byte 183
- .2byte 184
- .2byte 74
- .2byte 75
- .2byte 76
- .2byte 299
- .2byte 300
- .2byte 301
- .2byte 41
- .2byte 42
- .2byte 169
- .2byte 72
- .2byte 73
- .2byte 302
- .2byte 303
- .2byte 304
- .2byte 305
- .2byte 306
- .2byte 66
- .2byte 67
- .2byte 68
- .2byte 307
- .2byte 308
- .2byte 309
- .2byte 310
- .2byte 311
- .2byte 312
- .2byte 81
- .2byte 82
- .2byte 100
- .2byte 101
- .2byte 313
- .2byte 314
- .2byte 43
- .2byte 44
- .2byte 45
- .2byte 182
- .2byte 84
- .2byte 85
- .2byte 315
- .2byte 316
- .2byte 317
- .2byte 318
- .2byte 319
- .2byte 320
- .2byte 321
- .2byte 322
- .2byte 323
- .2byte 218
- .2byte 219
- .2byte 324
- .2byte 88
- .2byte 89
- .2byte 109
- .2byte 110
- .2byte 325
- .2byte 326
- .2byte 27
- .2byte 28
- .2byte 327
- .2byte 227
- .2byte 328
- .2byte 329
- .2byte 330
- .2byte 331
- .2byte 332
- .2byte 333
- .2byte 334
- .2byte 335
- .2byte 336
- .2byte 337
- .2byte 338
- .2byte 339
- .2byte 340
- .2byte 341
- .2byte 342
- .2byte 343
- .2byte 344
- .2byte 345
- .2byte 346
- .2byte 347
- .2byte 348
- .2byte 174
- .2byte 39
- .2byte 40
- .2byte 349
- .2byte 350
- .2byte 351
- .2byte 120
- .2byte 121
- .2byte 352
- .2byte 353
- .2byte 354
- .2byte 355
- .2byte 356
- .2byte 357
- .2byte 358
- .2byte 359
- .2byte 37
- .2byte 38
- .2byte 172
- .2byte 25
- .2byte 26
- .2byte 54
- .2byte 55
- .2byte 360
- .2byte 202
- .2byte 177
- .2byte 178
- .2byte 203
- .2byte 231
- .2byte 232
- .2byte 127
- .2byte 214
- .2byte 111
- .2byte 112
- .2byte 361
- .2byte 362
- .2byte 363
- .2byte 364
- .2byte 365
- .2byte 366
- .2byte 367
- .2byte 368
- .2byte 369
- .2byte 222
- .2byte 170
- .2byte 171
- .2byte 370
- .2byte 116
- .2byte 117
- .2byte 230
- .2byte 371
- .2byte 372
- .2byte 373
- .2byte 374
- .2byte 375
- .2byte 376
- .2byte 377
- .2byte 378
- .2byte 379
- .2byte 380
- .2byte 381
- .2byte 382
- .2byte 383
- .2byte 384
- .2byte 385
- .2byte 386
- .2byte 1
- .2byte 2
- .2byte 3
- .2byte 4
- .2byte 5
- .2byte 6
- .2byte 7
- .2byte 8
- .2byte 9
- .2byte 10
- .2byte 11
- .2byte 12
- .2byte 13
- .2byte 14
- .2byte 15
- .2byte 16
- .2byte 17
- .2byte 18
- .2byte 19
- .2byte 20
- .2byte 21
- .2byte 22
- .2byte 23
- .2byte 24
- .2byte 29
- .2byte 30
- .2byte 31
- .2byte 32
- .2byte 33
- .2byte 34
- .2byte 35
- .2byte 36
- .2byte 46
- .2byte 47
- .2byte 48
- .2byte 49
- .2byte 50
- .2byte 51
- .2byte 52
- .2byte 53
- .2byte 56
- .2byte 57
- .2byte 58
- .2byte 59
- .2byte 60
- .2byte 61
- .2byte 62
- .2byte 69
- .2byte 70
- .2byte 71
- .2byte 77
- .2byte 78
- .2byte 79
- .2byte 80
- .2byte 83
- .2byte 86
- .2byte 87
- .2byte 90
- .2byte 91
- .2byte 92
- .2byte 93
- .2byte 94
- .2byte 95
- .2byte 96
- .2byte 97
- .2byte 98
- .2byte 99
- .2byte 102
- .2byte 103
- .2byte 104
- .2byte 105
- .2byte 106
- .2byte 107
- .2byte 108
- .2byte 113
- .2byte 114
- .2byte 115
- .2byte 122
- .2byte 123
- .2byte 124
- .2byte 125
- .2byte 126
- .2byte 128
- .2byte 131
- .2byte 132
- .2byte 133
- .2byte 134
- .2byte 135
- .2byte 136
- .2byte 137
- .2byte 138
- .2byte 139
- .2byte 140
- .2byte 141
- .2byte 142
- .2byte 143
- .2byte 144
- .2byte 145
- .2byte 146
- .2byte 147
- .2byte 148
- .2byte 149
- .2byte 150
- .2byte 151
- .2byte 152
- .2byte 153
- .2byte 154
- .2byte 155
- .2byte 156
- .2byte 157
- .2byte 158
- .2byte 159
- .2byte 160
- .2byte 161
- .2byte 162
- .2byte 163
- .2byte 164
- .2byte 165
- .2byte 166
- .2byte 167
- .2byte 168
- .2byte 173
- .2byte 175
- .2byte 176
- .2byte 179
- .2byte 180
- .2byte 181
- .2byte 185
- .2byte 186
- .2byte 187
- .2byte 188
- .2byte 189
- .2byte 190
- .2byte 191
- .2byte 192
- .2byte 193
- .2byte 194
- .2byte 195
- .2byte 196
- .2byte 197
- .2byte 198
- .2byte 199
- .2byte 200
- .2byte 201
- .2byte 204
- .2byte 205
- .2byte 206
- .2byte 207
- .2byte 208
- .2byte 209
- .2byte 210
- .2byte 211
- .2byte 212
- .2byte 213
- .2byte 215
- .2byte 216
- .2byte 217
- .2byte 220
- .2byte 221
- .2byte 223
- .2byte 224
- .2byte 225
- .2byte 226
- .2byte 228
- .2byte 229
- .2byte 233
- .2byte 234
- .2byte 235
- .2byte 236
- .2byte 237
- .2byte 238
- .2byte 239
- .2byte 240
- .2byte 241
- .2byte 242
- .2byte 243
- .2byte 244
- .2byte 245
- .2byte 246
- .2byte 247
- .2byte 248
- .2byte 249
- .2byte 250
- .2byte 251
- .2byte 387
- .2byte 388
- .2byte 389
- .2byte 390
- .2byte 391
- .2byte 392
- .2byte 393
- .2byte 394
- .2byte 395
- .2byte 396
- .2byte 397
- .2byte 398
- .2byte 399
- .2byte 400
- .2byte 401
- .2byte 402
- .2byte 403
- .2byte 404
- .2byte 405
- .2byte 406
- .2byte 407
- .2byte 408
- .2byte 409
- .2byte 410
- .2byte 411
diff --git a/data/spinda_spot_graphics.inc b/data/spinda_spot_graphics.inc
deleted file mode 100644
index 3316a5639..000000000
--- a/data/spinda_spot_graphics.inc
+++ /dev/null
@@ -1,81 +0,0 @@
- .align 2
-gSpindaSpotGraphics:: @ 81FCB84
- .byte 16 @ X
- .byte 14 @ Y
- .2byte 0b0000000001110000
- .2byte 0b0000000111111100
- .2byte 0b0000001111111110
- .2byte 0b0000011111111110
- .2byte 0b0000011111111111
- .2byte 0b0000111111111111
- .2byte 0b0000111111111111
- .2byte 0b0000111111111111
- .2byte 0b0000011111111110
- .2byte 0b0000011111111110
- .2byte 0b0000001111111100
- .2byte 0b0000000111100000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
-
- .byte 40 @ X
- .byte 15 @ Y
- .2byte 0b0000000111100000
- .2byte 0b0000001111111000
- .2byte 0b0000011111111100
- .2byte 0b0000111111111110
- .2byte 0b0000111111111110
- .2byte 0b0001111111111111
- .2byte 0b0001111111111111
- .2byte 0b0001111111111111
- .2byte 0b0000111111111110
- .2byte 0b0000111111111110
- .2byte 0b0000011111111100
- .2byte 0b0000011111111000
- .2byte 0b0000000011100000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
-
- .byte 22 @ X
- .byte 32 @ Y
- .2byte 0b0000000000011100
- .2byte 0b0000000000111110
- .2byte 0b0000000001111111
- .2byte 0b0000000001111111
- .2byte 0b0000000001111111
- .2byte 0b0000000001111111
- .2byte 0b0000000001111111
- .2byte 0b0000000000111110
- .2byte 0b0000000000011100
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
-
- .byte 34 @ X
- .byte 33 @ Y
- .2byte 0b0000000000111100
- .2byte 0b0000000001111110
- .2byte 0b0000000011111111
- .2byte 0b0000000011111111
- .2byte 0b0000000011111111
- .2byte 0b0000000011111111
- .2byte 0b0000000011111111
- .2byte 0b0000000001111110
- .2byte 0b0000000000111100
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
- .2byte 0b0000000000000000
diff --git a/data/text/song_names.inc b/data/text/song_names.inc
deleted file mode 100644
index 29fad36e1..000000000
--- a/data/text/song_names.inc
+++ /dev/null
@@ -1,1105 +0,0 @@
-BGMName_STOP:
- .string "STOP$"
-BGMName_TETSUJI:
- .string "TETSUJI$"
-BGMName_FIELD13:
- .string "FIELD13$"
-BGMName_KACHI22:
- .string "KACHI22$"
-BGMName_KACHI2:
- .string "KACHI2$"
-BGMName_KACHI3:
- .string "KACHI3$"
-BGMName_KACHI5:
- .string "KACHI5$"
-BGMName_PCC:
- .string "PCC$"
-BGMName_NIBI:
- .string "NIBI$"
-BGMName_SUIKUN:
- .string "SUIKUN$"
-BGMName_DOORO1:
- .string "DOORO1$"
-BGMName_DOORO_X1:
- .string "DOORO-X1$"
-BGMName_DOORO_X3:
- .string "DOORO-X3$"
-BGMName_MACHI_S2:
- .string "MACHI-S2$"
-BGMName_MACHI_S4:
- .string "MACHI-S4$"
-BGMName_GIM:
- .string "GIM$"
-BGMName_NAMINORI:
- .string "NAMINORI$"
-BGMName_DAN01:
- .string "DAN01$"
-BGMName_FANFA1:
- .string "FANFA1$"
-BGMName_ME_ASA:
- .string "ME-ASA$"
-BGMName_ME_BACHI:
- .string "ME-BACHI$"
-BGMName_FANFA4:
- .string "FANFA4$"
-BGMName_FANFA5:
- .string "FANFA5$"
-BGMName_ME_WAZA:
- .string "ME-WAZA$"
-BGMName_BIJYUTU:
- .string "BIJYUTU$"
-BGMName_DOORO_X4:
- .string "DOORO-X4$"
-BGMName_FUNE_KAN:
- .string "FUNE-KAN$"
-BGMName_ME_SHINKA:
- .string "ME-SHINKA$"
-BGMName_SHINKA:
- .string "SHINKA$"
-BGMName_ME_WASURE:
- .string "ME-WASURE$"
-BGMName_SYOUJOEYE:
- .string "SYOUJOEYE$"
-BGMName_BOYEYE:
- .string "BOYEYE$"
-BGMName_DAN02:
- .string "DAN02$"
-BGMName_MACHI_S3:
- .string "MACHI-S3$"
-BGMName_ODAMAKI:
- .string "ODAMAKI$"
-BGMName_B_TOWER:
- .string "B-TOWER$"
-BGMName_SWIMEYE:
- .string "SWIMEYE$"
-BGMName_DAN03:
- .string "DAN03$"
-BGMName_ME_KINOMI:
- .string "ME-KINOMI$"
-BGMName_ME_TAMA:
- .string "ME-TAMA$"
-BGMName_ME_B_BIG:
- .string "ME-B-BIG$"
-BGMName_ME_B_SMALL:
- .string "ME-B-SMALL$"
-BGMName_ME_ZANNEN:
- .string "ME-ZANNEN$"
-BGMName_BD_TIME:
- .string "BD-TIME$"
-BGMName_TEST1:
- .string "TEST1$"
-BGMName_TEST2:
- .string "TEST2$"
-BGMName_TEST3:
- .string "TEST3$"
-BGMName_TEST4:
- .string "TEST4$"
-BGMName_TEST:
- .string "TEST$"
-BGMName_GOMACHI0:
- .string "GOMACHI0$"
-BGMName_GOTOWN:
- .string "GOTOWN$"
-BGMName_POKECEN:
- .string "POKECEN$"
-BGMName_NEXTROAD:
- .string "NEXTROAD$"
-BGMName_GRANROAD:
- .string "GRANROAD$"
-BGMName_CYCLING:
- .string "CYCLING$"
-BGMName_FRIENDLY:
- .string "FRIENDLY$"
-BGMName_MISHIRO:
- .string "MISHIRO$"
-BGMName_TOZAN:
- .string "TOZAN$"
-BGMName_GIRLEYE:
- .string "GIRLEYE$"
-BGMName_MINAMO:
- .string "MINAMO$"
-BGMName_ASHROAD:
- .string "ASHROAD$"
-BGMName_EVENT0:
- .string "EVENT0$"
-BGMName_DEEPDEEP:
- .string "DEEPDEEP$"
-BGMName_KACHI1:
- .string "KACHI1$"
-BGMName_TITLE3:
- .string "TITLE3$"
-BGMName_DEMO1:
- .string "DEMO1$"
-BGMName_GIRL_SUP:
- .string "GIRL-SUP$"
-BGMName_HAGESHII:
- .string "HAGESHII$"
-BGMName_KAKKOII:
- .string "KAKKOII$"
-BGMName_KAZANBAI:
- .string "KAZANBAI$"
-BGMName_AQA_0:
- .string "AQA-0$"
-BGMName_TSURETEK:
- .string "TSURETEK$"
-BGMName_BOY_SUP:
- .string "BOY-SUP$"
-BGMName_RAINBOW:
- .string "RAINBOW$"
-BGMName_AYASII:
- .string "AYASII$"
-BGMName_KACHI4:
- .string "KACHI4$"
-BGMName_ROPEWAY:
- .string "ROPEWAY$"
-BGMName_CASINO:
- .string "CASINO$"
-BGMName_HIGHTOWN:
- .string "HIGHTOWN$"
-BGMName_SAFARI:
- .string "SAFARI$"
-BGMName_C_ROAD:
- .string "C-ROAD$"
-BGMName_AJITO:
- .string "AJITO$"
-BGMName_M_BOAT:
- .string "M-BOAT$"
-BGMName_M_DUNGON:
- .string "M-DUNGON$"
-BGMName_FINECITY:
- .string "FINECITY$"
-BGMName_MACHUPI:
- .string "MACHUPI$"
-BGMName_P_SCHOOL:
- .string "P-SCHOOL$"
-BGMName_DENDOU:
- .string "DENDOU$"
-BGMName_TONEKUSA:
- .string "TONEKUSA$"
-BGMName_MABOROSI:
- .string "MABOROSI$"
-BGMName_CON_FAN:
- .string "CON-FAN$"
-BGMName_CONTEST0:
- .string "CONTEST0$"
-BGMName_MGM0:
- .string "MGM0$"
-BGMName_T_BATTLE:
- .string "T-BATTLE$"
-BGMName_OOAME:
- .string "OOAME$"
-BGMName_HIDERI:
- .string "HIDERI$"
-BGMName_RUNECITY:
- .string "RUNECITY$"
-BGMName_CON_K:
- .string "CON-K$"
-BGMName_EIKOU_R:
- .string "EIKOU-R$"
-BGMName_KARAKURI:
- .string "KARAKURI$"
-BGMName_HUTAGO:
- .string "HUTAGO$"
-BGMName_SITENNOU:
- .string "SITENNOU$"
-BGMName_YAMA_EYE:
- .string "YAMA-EYE$"
-BGMName_CONLOBBY:
- .string "CONLOBBY$"
-BGMName_INTER_V:
- .string "INTER-V$"
-BGMName_DAIGO:
- .string "DAIGO$"
-BGMName_THANKFOR:
- .string "THANKFOR$"
-BGMName_END:
- .string "END$"
-BGMName_BATTLE27:
- .string "BATTLE27$"
-BGMName_BATTLE31:
- .string "BATTLE31$"
-BGMName_BATTLE20:
- .string "BATTLE20$"
-BGMName_BATTLE32:
- .string "BATTLE32$"
-BGMName_BATTLE33:
- .string "BATTLE33$"
-BGMName_BATTLE36:
- .string "BATTLE36$"
-BGMName_BATTLE34:
- .string "BATTLE34$"
-BGMName_BATTLE35:
- .string "BATTLE35$"
-BGMName_BATTLE38:
- .string "BATTLE38$"
-BGMName_BATTLE30:
- .string "BATTLE30$"
-
- .align 2
-gBGMNames:: @ 83D07AC
- .word BGMName_STOP
- .word BGMName_TETSUJI
- .word BGMName_FIELD13
- .word BGMName_KACHI22
- .word BGMName_KACHI2
- .word BGMName_KACHI3
- .word BGMName_KACHI5
- .word BGMName_PCC
- .word BGMName_NIBI
- .word BGMName_SUIKUN
- .word BGMName_DOORO1
- .word BGMName_DOORO_X1
- .word BGMName_DOORO_X3
- .word BGMName_MACHI_S2
- .word BGMName_MACHI_S4
- .word BGMName_GIM
- .word BGMName_NAMINORI
- .word BGMName_DAN01
- .word BGMName_FANFA1
- .word BGMName_ME_ASA
- .word BGMName_ME_BACHI
- .word BGMName_FANFA4
- .word BGMName_FANFA5
- .word BGMName_ME_WAZA
- .word BGMName_BIJYUTU
- .word BGMName_DOORO_X4
- .word BGMName_FUNE_KAN
- .word BGMName_ME_SHINKA
- .word BGMName_SHINKA
- .word BGMName_ME_WASURE
- .word BGMName_SYOUJOEYE
- .word BGMName_BOYEYE
- .word BGMName_DAN02
- .word BGMName_MACHI_S3
- .word BGMName_ODAMAKI
- .word BGMName_B_TOWER
- .word BGMName_SWIMEYE
- .word BGMName_DAN03
- .word BGMName_ME_KINOMI
- .word BGMName_ME_TAMA
- .word BGMName_ME_B_BIG
- .word BGMName_ME_B_SMALL
- .word BGMName_ME_ZANNEN
- .word BGMName_BD_TIME
- .word BGMName_TEST1
- .word BGMName_TEST2
- .word BGMName_TEST3
- .word BGMName_TEST4
- .word BGMName_TEST
- .word BGMName_GOMACHI0
- .word BGMName_GOTOWN
- .word BGMName_POKECEN
- .word BGMName_NEXTROAD
- .word BGMName_GRANROAD
- .word BGMName_CYCLING
- .word BGMName_FRIENDLY
- .word BGMName_MISHIRO
- .word BGMName_TOZAN
- .word BGMName_GIRLEYE
- .word BGMName_MINAMO
- .word BGMName_ASHROAD
- .word BGMName_EVENT0
- .word BGMName_DEEPDEEP
- .word BGMName_KACHI1
- .word BGMName_TITLE3
- .word BGMName_DEMO1
- .word BGMName_GIRL_SUP
- .word BGMName_HAGESHII
- .word BGMName_KAKKOII
- .word BGMName_KAZANBAI
- .word BGMName_AQA_0
- .word BGMName_TSURETEK
- .word BGMName_BOY_SUP
- .word BGMName_RAINBOW
- .word BGMName_AYASII
- .word BGMName_KACHI4
- .word BGMName_ROPEWAY
- .word BGMName_CASINO
- .word BGMName_HIGHTOWN
- .word BGMName_SAFARI
- .word BGMName_C_ROAD
- .word BGMName_AJITO
- .word BGMName_M_BOAT
- .word BGMName_M_DUNGON
- .word BGMName_FINECITY
- .word BGMName_MACHUPI
- .word BGMName_P_SCHOOL
- .word BGMName_DENDOU
- .word BGMName_TONEKUSA
- .word BGMName_MABOROSI
- .word BGMName_CON_FAN
- .word BGMName_CONTEST0
- .word BGMName_MGM0
- .word BGMName_T_BATTLE
- .word BGMName_OOAME
- .word BGMName_HIDERI
- .word BGMName_RUNECITY
- .word BGMName_CON_K
- .word BGMName_EIKOU_R
- .word BGMName_KARAKURI
- .word BGMName_HUTAGO
- .word BGMName_SITENNOU
- .word BGMName_YAMA_EYE
- .word BGMName_CONLOBBY
- .word BGMName_INTER_V
- .word BGMName_DAIGO
- .word BGMName_THANKFOR
- .word BGMName_END
- .word BGMName_BATTLE27
- .word BGMName_BATTLE31
- .word BGMName_BATTLE20
- .word BGMName_BATTLE32
- .word BGMName_BATTLE33
- .word BGMName_BATTLE36
- .word BGMName_BATTLE34
- .word BGMName_BATTLE35
- .word BGMName_BATTLE38
- .word BGMName_BATTLE30
-
-SEName_STOP:
- .string "STOP$"
-SEName_KAIFUKU:
- .string "KAIFUKU$"
-SEName_PC_LOGON:
- .string "PC-LOGON$"
-SEName_PC_OFF:
- .string "PC-OFF$"
-SEName_PC_ON:
- .string "PC-ON$"
-SEName_SELECT:
- .string "SELECT$"
-SEName_WIN_OPEN:
- .string "WIN-OPEN$"
-SEName_WALL_HIT:
- .string "WALL-HIT$"
-SEName_DOOR:
- .string "DOOR$"
-SEName_KAIDAN:
- .string "KAIDAN$"
-SEName_DANSA:
- .string "DANSA$"
-SEName_JITENSYA:
- .string "JITENSYA$"
-SEName_KOUKA_L:
- .string "KOUKA-L$"
-SEName_KOUKA_M:
- .string "KOUKA-M$"
-SEName_KOUKA_H:
- .string "KOUKA-H$"
-SEName_BOWA2:
- .string "BOWA2$"
-SEName_POKE_DEAD:
- .string "POKE-DEAD$"
-SEName_NIGERU:
- .string "NIGERU$"
-SEName_JIDO_DOA:
- .string "JIDO-DOA$"
-SEName_NAMINORI:
- .string "NAMINORI$"
-SEName_BAN:
- .string "BAN$"
-SEName_PIN:
- .string "PIN$"
-SEName_BOO:
- .string "BOO$"
-SEName_BOWA:
- .string "BOWA$"
-SEName_JYUNI:
- .string "JYUNI$"
-SEName_A:
- .string "A$"
-SEName_I:
- .string "I$"
-SEName_U:
- .string "U$"
-SEName_E:
- .string "E$"
-SEName_O:
- .string "O$"
-SEName_N:
- .string "N$"
-SEName_SEIKAI:
- .string "SEIKAI$"
-SEName_HAZURE:
- .string "HAZURE$"
-SEName_EXP:
- .string "EXP$"
-SEName_JITE_PYOKO:
- .string "JITE-PYOKO$"
-SEName_MU_PACHI:
- .string "MU-PACHI$"
-SEName_TK_KASYA:
- .string "TK-KASYA$"
-SEName_FU_ZAKU:
- .string "FU-ZAKU$"
-SEName_FU_ZAKU2:
- .string "FU-ZAKU2$"
-SEName_FU_ZUZUZU:
- .string "FU-ZUZUZU$"
-SEName_RU_GASHIN:
- .string "RU-GASHIN$"
-SEName_RU_GASYAN:
- .string "RU-GASYAN$"
-SEName_RU_BARI:
- .string "RU-BARI$"
-SEName_RU_HYUU:
- .string "RU-HYUU$"
-SEName_KI_GASYAN:
- .string "KI-GASYAN$"
-SEName_TK_WARPIN:
- .string "TK-WARPIN$"
-SEName_TK_WARPOUT:
- .string "TK-WARPOUT$"
-SEName_TU_SAA:
- .string "TU-SAA$"
-SEName_HI_TURUN:
- .string "HI-TURUN$"
-SEName_TRACK_MOVE:
- .string "TRACK-MOVE$"
-SEName_TRACK_STOP:
- .string "TRACK-STOP$"
-SEName_TRACK_HAIK:
- .string "TRACK-HAIK$"
-SEName_TRACK_DOOR:
- .string "TRACK-DOOR$"
-SEName_MOTER:
- .string "MOTER$"
-SEName_CARD:
- .string "CARD$"
-SEName_SAVE:
- .string "SAVE$"
-SEName_KON:
- .string "KON$"
-SEName_KON2:
- .string "KON2$"
-SEName_KON3:
- .string "KON3$"
-SEName_KON4:
- .string "KON4$"
-SEName_SUIKOMU:
- .string "SUIKOMU$"
-SEName_NAGERU:
- .string "NAGERU$"
-SEName_TOY_C:
- .string "TOY-C$"
-SEName_TOY_D:
- .string "TOY-D$"
-SEName_TOY_E:
- .string "TOY-E$"
-SEName_TOY_F:
- .string "TOY-F$"
-SEName_TOY_G:
- .string "TOY-G$"
-SEName_TOY_A:
- .string "TOY-A$"
-SEName_TOY_B:
- .string "TOY-B$"
-SEName_TOY_C1:
- .string "TOY-C1$"
-SEName_MIZU:
- .string "MIZU$"
-SEName_HASHI:
- .string "HASHI$"
-SEName_DAUGI:
- .string "DAUGI$"
-SEName_PINPON:
- .string "PINPON$"
-SEName_FUUSEN1:
- .string "FUUSEN1$"
-SEName_FUUSEN2:
- .string "FUUSEN2$"
-SEName_FUUSEN3:
- .string "FUUSEN3$"
-SEName_TOY_KABE:
- .string "TOY-KABE$"
-SEName_TOY_DANGO:
- .string "TOY-DANGO$"
-SEName_DOKU:
- .string "DOKU$"
-SEName_ESUKA:
- .string "ESUKA$"
-SEName_T_AME:
- .string "T-AME$"
-SEName_T_AME_E:
- .string "T-AME-E$"
-SEName_T_OOAME:
- .string "T-OOAME$"
-SEName_T_OOAME_E:
- .string "T-OOAME-E$"
-SEName_T_KOAME:
- .string "T-KOAME$"
-SEName_T_KOAME_E:
- .string "T-KOAME-E$"
-SEName_T_KAMI:
- .string "T-KAMI$"
-SEName_T_KAMI2:
- .string "T-KAMI2$"
-SEName_ELEBETA:
- .string "ELEBETA$"
-SEName_HINSI:
- .string "HINSI$"
-SEName_EXPMAX:
- .string "EXPMAX$"
-SEName_TAMAKORO:
- .string "TAMAKORO$"
-SEName_TAMAKORO_E:
- .string "TAMAKORO-E$"
-SEName_BASABASA:
- .string "BASABASA$"
-SEName_REGI:
- .string "REGI$"
-SEName_C_GAJI:
- .string "C-GAJI$"
-SEName_C_MAKU_U:
- .string "C-MAKU-U$"
-SEName_C_MAKU_D:
- .string "C-MAKU-D$"
-SEName_C_PASI:
- .string "C-PASI$"
-SEName_C_SYU:
- .string "C-SYU$"
-SEName_C_PIKON:
- .string "C-PIKON$"
-SEName_REAPOKE:
- .string "REAPOKE$"
-SEName_OP_BASYU:
- .string "OP-BASYU$"
-SEName_BT_START:
- .string "BT-START$"
-SEName_DENDOU:
- .string "DENDOU$"
-SEName_JIHANKI:
- .string "JIHANKI$"
-SEName_TAMA:
- .string "TAMA$"
-SEName_Z_SCROLL:
- .string "Z-SCROLL$"
-SEName_Z_PAGE:
- .string "Z-PAGE$"
-SEName_PN_ON:
- .string "PN-ON$"
-SEName_PN_OFF:
- .string "PN-OFF$"
-SEName_Z_SEARCH:
- .string "Z-SEARCH$"
-SEName_TAMAGO:
- .string "TAMAGO$"
-SEName_TB_START:
- .string "TB-START$"
-SEName_TB_KON:
- .string "TB-KON$"
-SEName_TB_KARA:
- .string "TB-KARA$"
-SEName_BIDORO:
- .string "BIDORO$"
-SEName_W085:
- .string "W085$"
-SEName_W085B:
- .string "W085B$"
-SEName_W231:
- .string "W231$"
-SEName_W171:
- .string "W171$"
-SEName_W233:
- .string "W233$"
-SEName_W233B:
- .string "W233B$"
-SEName_W145:
- .string "W145$"
-SEName_W145B:
- .string "W145B$"
-SEName_W145C:
- .string "W145C$"
-SEName_W240:
- .string "W240$"
-SEName_W015:
- .string "W015$"
-SEName_W081:
- .string "W081$"
-SEName_W081B:
- .string "W081B$"
-SEName_W088:
- .string "W088$"
-SEName_W016:
- .string "W016$"
-SEName_W016B:
- .string "W016B$"
-SEName_W003:
- .string "W003$"
-SEName_W104:
- .string "W104$"
-SEName_W013:
- .string "W013$"
-SEName_W196:
- .string "W196$"
-SEName_W086:
- .string "W086$"
-SEName_W004:
- .string "W004$"
-SEName_W025:
- .string "W025$"
-SEName_W025B:
- .string "W025B$"
-SEName_W152:
- .string "W152$"
-SEName_W026:
- .string "W026$"
-SEName_W172:
- .string "W172$"
-SEName_W172B:
- .string "W172B$"
-SEName_W053:
- .string "W053$"
-SEName_W007:
- .string "W007$"
-SEName_W092:
- .string "W092$"
-SEName_W221:
- .string "W221$"
-SEName_W221B:
- .string "W221B$"
-SEName_W052:
- .string "W052$"
-SEName_W036:
- .string "W036$"
-SEName_W059:
- .string "W059$"
-SEName_W059B:
- .string "W059B$"
-SEName_W010:
- .string "W010$"
-SEName_W011:
- .string "W011$"
-SEName_W017:
- .string "W017$"
-SEName_W019:
- .string "W019$"
-SEName_W028:
- .string "W028$"
-SEName_W013B:
- .string "W013B$"
-SEName_W044:
- .string "W044$"
-SEName_W029:
- .string "W029$"
-SEName_W057:
- .string "W057$"
-SEName_W056:
- .string "W056$"
-SEName_W250:
- .string "W250$"
-SEName_W030:
- .string "W030$"
-SEName_W039:
- .string "W039$"
-SEName_W054:
- .string "W054$"
-SEName_W077:
- .string "W077$"
-SEName_W020:
- .string "W020$"
-SEName_W082:
- .string "W082$"
-SEName_W047:
- .string "W047$"
-SEName_W195:
- .string "W195$"
-SEName_W006:
- .string "W006$"
-SEName_W091:
- .string "W091$"
-SEName_W146:
- .string "W146$"
-SEName_W120:
- .string "W120$"
-SEName_W153:
- .string "W153$"
-SEName_W071B:
- .string "W071B$"
-SEName_W071:
- .string "W071$"
-SEName_W103:
- .string "W103$"
-SEName_W062:
- .string "W062$"
-SEName_W062B:
- .string "W062B$"
-SEName_W048:
- .string "W048$"
-SEName_W187:
- .string "W187$"
-SEName_W118:
- .string "W118$"
-SEName_W155:
- .string "W155$"
-SEName_W122:
- .string "W122$"
-SEName_W060:
- .string "W060$"
-SEName_W185:
- .string "W185$"
-SEName_W014:
- .string "W014$"
-SEName_W043:
- .string "W043$"
-SEName_W207:
- .string "W207$"
-SEName_W207B:
- .string "W207B$"
-SEName_W215:
- .string "W215$"
-SEName_W109:
- .string "W109$"
-SEName_W173:
- .string "W173$"
-SEName_W280:
- .string "W280$"
-SEName_W202:
- .string "W202$"
-SEName_W060B:
- .string "W060B$"
-SEName_W076:
- .string "W076$"
-SEName_W080:
- .string "W080$"
-SEName_W100:
- .string "W100$"
-SEName_W107:
- .string "W107$"
-SEName_W166:
- .string "W166$"
-SEName_W129:
- .string "W129$"
-SEName_W115:
- .string "W115$"
-SEName_W112:
- .string "W112$"
-SEName_W197:
- .string "W197$"
-SEName_W199:
- .string "W199$"
-SEName_W236:
- .string "W236$"
-SEName_W204:
- .string "W204$"
-SEName_W268:
- .string "W268$"
-SEName_W070:
- .string "W070$"
-SEName_W063:
- .string "W063$"
-SEName_W127:
- .string "W127$"
-SEName_W179:
- .string "W179$"
-SEName_W151:
- .string "W151$"
-SEName_W201:
- .string "W201$"
-SEName_W161:
- .string "W161$"
-SEName_W161B:
- .string "W161B$"
-SEName_W227:
- .string "W227$"
-SEName_W227B:
- .string "W227B$"
-SEName_W226:
- .string "W226$"
-SEName_W208:
- .string "W208$"
-SEName_W213:
- .string "W213$"
-SEName_W213B:
- .string "W213B$"
-SEName_W234:
- .string "W234$"
-SEName_W260:
- .string "W260$"
-SEName_W328:
- .string "W328$"
-SEName_W320:
- .string "W320$"
-SEName_W255:
- .string "W255$"
-SEName_W291:
- .string "W291$"
-SEName_W089:
- .string "W089$"
-SEName_W239:
- .string "W239$"
-SEName_W230:
- .string "W230$"
-SEName_W281:
- .string "W281$"
-SEName_W327:
- .string "W327$"
-SEName_W287:
- .string "W287$"
-SEName_W257:
- .string "W257$"
-SEName_W253:
- .string "W253$"
-SEName_W258:
- .string "W258$"
-SEName_W322:
- .string "W322$"
-SEName_W298:
- .string "W298$"
-SEName_W287B:
- .string "W287B$"
-SEName_W114:
- .string "W114$"
-SEName_W063B:
- .string "W063B$"
-
- .align 2
-gSENames:: @ 83D0F78
- .word SEName_STOP
- .word SEName_KAIFUKU
- .word SEName_PC_LOGON
- .word SEName_PC_OFF
- .word SEName_PC_ON
- .word SEName_SELECT
- .word SEName_WIN_OPEN
- .word SEName_WALL_HIT
- .word SEName_DOOR
- .word SEName_KAIDAN
- .word SEName_DANSA
- .word SEName_JITENSYA
- .word SEName_KOUKA_L
- .word SEName_KOUKA_M
- .word SEName_KOUKA_H
- .word SEName_BOWA2
- .word SEName_POKE_DEAD
- .word SEName_NIGERU
- .word SEName_JIDO_DOA
- .word SEName_NAMINORI
- .word SEName_BAN
- .word SEName_PIN
- .word SEName_BOO
- .word SEName_BOWA
- .word SEName_JYUNI
- .word SEName_A
- .word SEName_I
- .word SEName_U
- .word SEName_E
- .word SEName_O
- .word SEName_N
- .word SEName_SEIKAI
- .word SEName_HAZURE
- .word SEName_EXP
- .word SEName_JITE_PYOKO
- .word SEName_MU_PACHI
- .word SEName_TK_KASYA
- .word SEName_FU_ZAKU
- .word SEName_FU_ZAKU2
- .word SEName_FU_ZUZUZU
- .word SEName_RU_GASHIN
- .word SEName_RU_GASYAN
- .word SEName_RU_BARI
- .word SEName_RU_HYUU
- .word SEName_KI_GASYAN
- .word SEName_TK_WARPIN
- .word SEName_TK_WARPOUT
- .word SEName_TU_SAA
- .word SEName_HI_TURUN
- .word SEName_TRACK_MOVE
- .word SEName_TRACK_STOP
- .word SEName_TRACK_HAIK
- .word SEName_TRACK_DOOR
- .word SEName_MOTER
- .word SEName_CARD
- .word SEName_SAVE
- .word SEName_KON
- .word SEName_KON2
- .word SEName_KON3
- .word SEName_KON4
- .word SEName_SUIKOMU
- .word SEName_NAGERU
- .word SEName_TOY_C
- .word SEName_TOY_D
- .word SEName_TOY_E
- .word SEName_TOY_F
- .word SEName_TOY_G
- .word SEName_TOY_A
- .word SEName_TOY_B
- .word SEName_TOY_C1
- .word SEName_MIZU
- .word SEName_HASHI
- .word SEName_DAUGI
- .word SEName_PINPON
- .word SEName_FUUSEN1
- .word SEName_FUUSEN2
- .word SEName_FUUSEN3
- .word SEName_TOY_KABE
- .word SEName_TOY_DANGO
- .word SEName_DOKU
- .word SEName_ESUKA
- .word SEName_T_AME
- .word SEName_T_AME_E
- .word SEName_T_OOAME
- .word SEName_T_OOAME_E
- .word SEName_T_KOAME
- .word SEName_T_KOAME_E
- .word SEName_T_KAMI
- .word SEName_T_KAMI2
- .word SEName_ELEBETA
- .word SEName_HINSI
- .word SEName_EXPMAX
- .word SEName_TAMAKORO
- .word SEName_TAMAKORO_E
- .word SEName_BASABASA
- .word SEName_REGI
- .word SEName_C_GAJI
- .word SEName_C_MAKU_U
- .word SEName_C_MAKU_D
- .word SEName_C_PASI
- .word SEName_C_SYU
- .word SEName_C_PIKON
- .word SEName_REAPOKE
- .word SEName_OP_BASYU
- .word SEName_BT_START
- .word SEName_DENDOU
- .word SEName_JIHANKI
- .word SEName_TAMA
- .word SEName_Z_SCROLL
- .word SEName_Z_PAGE
- .word SEName_PN_ON
- .word SEName_PN_OFF
- .word SEName_Z_SEARCH
- .word SEName_TAMAGO
- .word SEName_TB_START
- .word SEName_TB_KON
- .word SEName_TB_KARA
- .word SEName_BIDORO
- .word SEName_W085
- .word SEName_W085B
- .word SEName_W231
- .word SEName_W171
- .word SEName_W233
- .word SEName_W233B
- .word SEName_W145
- .word SEName_W145B
- .word SEName_W145C
- .word SEName_W240
- .word SEName_W015
- .word SEName_W081
- .word SEName_W081B
- .word SEName_W088
- .word SEName_W016
- .word SEName_W016B
- .word SEName_W003
- .word SEName_W104
- .word SEName_W013
- .word SEName_W196
- .word SEName_W086
- .word SEName_W004
- .word SEName_W025
- .word SEName_W025B
- .word SEName_W152
- .word SEName_W026
- .word SEName_W172
- .word SEName_W172B
- .word SEName_W053
- .word SEName_W007
- .word SEName_W092
- .word SEName_W221
- .word SEName_W221B
- .word SEName_W052
- .word SEName_W036
- .word SEName_W059
- .word SEName_W059B
- .word SEName_W010
- .word SEName_W011
- .word SEName_W017
- .word SEName_W019
- .word SEName_W028
- .word SEName_W013B
- .word SEName_W044
- .word SEName_W029
- .word SEName_W057
- .word SEName_W056
- .word SEName_W250
- .word SEName_W030
- .word SEName_W039
- .word SEName_W054
- .word SEName_W077
- .word SEName_W020
- .word SEName_W082
- .word SEName_W047
- .word SEName_W195
- .word SEName_W006
- .word SEName_W091
- .word SEName_W146
- .word SEName_W120
- .word SEName_W153
- .word SEName_W071B
- .word SEName_W071
- .word SEName_W103
- .word SEName_W062
- .word SEName_W062B
- .word SEName_W048
- .word SEName_W187
- .word SEName_W118
- .word SEName_W155
- .word SEName_W122
- .word SEName_W060
- .word SEName_W185
- .word SEName_W014
- .word SEName_W043
- .word SEName_W207
- .word SEName_W207B
- .word SEName_W215
- .word SEName_W109
- .word SEName_W173
- .word SEName_W280
- .word SEName_W202
- .word SEName_W060B
- .word SEName_W076
- .word SEName_W080
- .word SEName_W100
- .word SEName_W107
- .word SEName_W166
- .word SEName_W129
- .word SEName_W115
- .word SEName_W112
- .word SEName_W197
- .word SEName_W199
- .word SEName_W236
- .word SEName_W204
- .word SEName_W268
- .word SEName_W070
- .word SEName_W063
- .word SEName_W127
- .word SEName_W179
- .word SEName_W151
- .word SEName_W201
- .word SEName_W161
- .word SEName_W161B
- .word SEName_W227
- .word SEName_W227B
- .word SEName_W226
- .word SEName_W208
- .word SEName_W213
- .word SEName_W213B
- .word SEName_W234
- .word SEName_W260
- .word SEName_W328
- .word SEName_W320
- .word SEName_W255
- .word SEName_W291
- .word SEName_W089
- .word SEName_W239
- .word SEName_W230
- .word SEName_W281
- .word SEName_W327
- .word SEName_W287
- .word SEName_W257
- .word SEName_W253
- .word SEName_W258
- .word SEName_W322
- .word SEName_W298
- .word SEName_W287B
- .word SEName_W114
- .word SEName_W063B
diff --git a/data/tm_hm_learnsets.inc b/data/tm_hm_learnsets.inc
deleted file mode 100644
index be4522310..000000000
--- a/data/tm_hm_learnsets.inc
+++ /dev/null
@@ -1,414 +0,0 @@
- .align 2
-gTMHMLearnsets:: @ 81FD0F0
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ??????????
- .8byte 0b0011100100000111100000100010000100001101010000011100100000 @ Bulbasaur
- .8byte 0b0011100100000111100000100010000100001101010000011100100000 @ Ivysaur
- .8byte 0b0011100100000111100000100010000110001101010100011100110000 @ Venusaur
- .8byte 0b0010100110000111101010010011001100010100010000011000100011 @ Charmander
- .8byte 0b0010100110000111101010010011001100010100010000011000100011 @ Charmeleon
- .8byte 0b0010101110010111101010010011001110010100010100011000110011 @ Charizard
- .8byte 0b1110110000000111100000000011001100010100110011001001100101 @ Squirtle
- .8byte 0b1110110000000111100000000011001100010100110011001001100101 @ Wartortle
- .8byte 0b1110110000000111100000000011001110010100110111001001110101 @ Blastoise
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Caterpie
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Metapod
- .8byte 0b0001000000101111101000000010110100001111110100011000100000 @ Butterfree
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Weedle
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Kakuna
- .8byte 0b0010000100001111101000100011000100001101010100011000100000 @ Beedrill
- .8byte 0b0000001000011111101000000010000100000100110000011000100000 @ Pidgey
- .8byte 0b0000001000011111101000000010000100000100110000011000100000 @ Pidgeotto
- .8byte 0b0000001000011111101000000010000100000100110100011000100000 @ Pidgeot
- .8byte 0b0010000100001111100000001010101101110100110011111000100000 @ Rattata
- .8byte 0b0010100100001111100000001010101101110100110111111000110000 @ Raticate
- .8byte 0b0000001000011111101000000010000100000100110000011000100000 @ Spearow
- .8byte 0b0000001000011111101000000010000100000100110100011000100000 @ Fearow
- .8byte 0b0000100001001111110000100010001110010101110000011000100000 @ Ekans
- .8byte 0b0000100001001111110000100010001110010101110100011000100000 @ Arbok
- .8byte 0b0011100000000111100000001011001101110100111000001000100001 @ Pikachu
- .8byte 0b0011100000001111100000001011001101110100111100001000100001 @ Raichu
- .8byte 0b0010100100001111101101000011001110010100010000011000100001 @ Sandshrew
- .8byte 0b0010100100001111101101000011001110010100010100011000100001 @ Sandslash
- .8byte 0b0010100100001111101000101010001101110100110011011000100100 @ Nidoran♀
- .8byte 0b0010100100001111101000101010001101110100110011011000100100 @ Nidorina
- .8byte 0b0010110100001111111111111011101111110100110111111000110101 @ Nidoqueen
- .8byte 0b0010100100001111100000101010001101110100110011011000100100 @ Nidoran♂
- .8byte 0b0010100100001111100000101010001101110100110011011000100100 @ Nidorino
- .8byte 0b0010110100001111110111111011101111110100110111111000110101 @ Nidoking
- .8byte 0b0001100001000111100010011111111101111110111011011000101101 @ Clefairy
- .8byte 0b0001100001000111100010011111111101111110111111011000101101 @ Clefable
- .8byte 0b0000000010000111100010010010001100010110010000011000110000 @ Vulpix
- .8byte 0b0000000010000111100010010010001100010110010100011000110000 @ Ninetales
- .8byte 0b0001100001000111100010011111111101101110111011011000100101 @ Jigglypuff
- .8byte 0b0001100001000111100010011111111101101110111111011000100101 @ Wigglytuff
- .8byte 0b0000000001011111111000100010100100000101110000111000100000 @ Zubat
- .8byte 0b0000000001011111111000100010100100000101110100111000100000 @ Golbat
- .8byte 0b0001000100000111100000100010000100001101010000011100100000 @ Oddish
- .8byte 0b0001000100000111100000100010000100001101010000011100100000 @ Gloom
- .8byte 0b0001000100000111100000100010000100001101010100011100100000 @ Vileplume
- .8byte 0b0011000100001111101000100010001100001101010000011100100000 @ Paras
- .8byte 0b0011000100001111101000100010001100001101010100011100100000 @ Parasect
- .8byte 0b0001000000101111100000100010010100001101010000011000100000 @ Venonat
- .8byte 0b0001000000101111101000100010010100001101010100011000100000 @ Venomoth
- .8byte 0b0010000100001111101100100010001110000100010000011000100000 @ Diglett
- .8byte 0b0010000100001111101100100010001110000100010100011000100000 @ Dugtrio
- .8byte 0b0001000101001111111000001010101101110100110000111000100100 @ Meowth
- .8byte 0b0001000101001111111000001010101101110100110100111000110100 @ Persian
- .8byte 0b1111110000000111101000000011001100010100110011001001101101 @ Psyduck
- .8byte 0b1111110000000111101000000011001100010100110111001001101101 @ Golduck
- .8byte 0b0010100010001111101100000011001111110100110000111010100001 @ Mankey
- .8byte 0b0010100010001111101100000011001111110100110100111010100001 @ Primeape
- .8byte 0b0010100010001111101010010010001100010100010000011000110000 @ Growlithe
- .8byte 0b0010100010001111101010010010001100010100010100011000110000 @ Arcanine
- .8byte 0b1100010000001111100000000010011100000100110011001001100100 @ Poliwag
- .8byte 0b1110110000001111100000000011011110000100110011001001100101 @ Poliwhirl
- .8byte 0b1110110000001111100100000011011110000100110111001011100101 @ Poliwrath
- .8byte 0b0001000001101111110000001110110100010110111000111000101001 @ Abra
- .8byte 0b0001000001101111110000001110110100010110111000111000101001 @ Kadabra
- .8byte 0b0001000001101111110000001110110100010110111100111000101001 @ Alakazam
- .8byte 0b0010100000001111100110010011001110000100110000011010100001 @ Machop
- .8byte 0b0010100000001111100110010011001110000100110000011010100001 @ Machoke
- .8byte 0b0010100000001111100110010011001110000100110100011010100001 @ Machamp
- .8byte 0b0001000100001111100000100010000100001101010000011100100000 @ Bellsprout
- .8byte 0b0001000100001111100000100010000100001101010000011100100000 @ Weepinbell
- .8byte 0b0001000100001111100000100010000100001101010100011100100000 @ Victreebel
- .8byte 0b1100010100001111100000100010000100000101110011001001100100 @ Tentacool
- .8byte 0b1100010100001111100000100010000100000101110111001001100100 @ Tentacruel
- .8byte 0b0010100000000111100111010011001110000100010000011000100001 @ Geodude
- .8byte 0b0010100000000111100111010011001110000100010000011000100001 @ Graveler
- .8byte 0b0010100000000111100111010011001110000100010100011000110001 @ Golem
- .8byte 0b0000100010000111100010010010000100011100010000011000100000 @ Ponyta
- .8byte 0b0000100010000111100010010010000100011100010100011000100000 @ Rapidash
- .8byte 0b1001110000100111100010010010111110010110110011011001101100 @ Slowpoke
- .8byte 0b1011110000100111100010010011111110010110110111011001101101 @ Slowbro
- .8byte 0b0001000000000011100000001110000101100100110000011000100000 @ Magnemite
- .8byte 0b0001000000000011100000001110000101100100110100011000100000 @ Magneton
- .8byte 0b0000001100011111101000000010000100010100010000011000100000 @ Farfetch'd
- .8byte 0b0000001000011111101000000010000100000100010000011000100000 @ Doduo
- .8byte 0b0000001000011111111000000010000100000100010100111000100000 @ Dodrio
- .8byte 0b1100010000001111100000000010000100000110110011001001100100 @ Seel
- .8byte 0b1100010000001111100000000010000100000110110111001001100100 @ Dewgong
- .8byte 0b0000000000001111110110111010001101100101110000111000100000 @ Grimer
- .8byte 0b0010100000001111110110111011001101100101110100111000100001 @ Muk
- .8byte 0b1000010000000111100000000010000100000100110011001001100100 @ Shellder
- .8byte 0b1000010000000111110000000010000100000100110111001001100100 @ Cloyster
- .8byte 0b0000000001101111110000100010110100100101110000111000100000 @ Gastly
- .8byte 0b0000000001101111110000100010110100100101110000111000100000 @ Haunter
- .8byte 0b0010100001101111110000100011110101100101110100111000100001 @ Gengar
- .8byte 0b0010100000000111110101000010001110010100010000111000110000 @ Onix
- .8byte 0b0001000001101111110000000111110100000110111000111000101001 @ Drowzee
- .8byte 0b0001000001101111110000000111110100000110111100111000101001 @ Hypno
- .8byte 0b1010110100001111100100000010001100000100110011001001100100 @ Krabby
- .8byte 0b1010110100001111100100000010001100000100110111001001100100 @ Kingler
- .8byte 0b0001000000001011110000001010000101100100111000101000100000 @ Voltorb
- .8byte 0b0001000000001011110000001010000101100100111100101000100000 @ Electrode
- .8byte 0b0001100000101111100000100110010100001101011000011100100000 @ Exeggcute
- .8byte 0b0001100000101111100000100110010100001101011100011100100000 @ Exeggutor
- .8byte 0b0010100000001111101111010011001110010100010011011000100001 @ Cubone
- .8byte 0b0010100000001111101111010011001110010100010111011000100001 @ Marowak
- .8byte 0b0010100000001111100100000011000110000100110000011010100001 @ Hitmonlee
- .8byte 0b0010100000001111100100000011000110000100110000011010100001 @ Hitmonchan
- .8byte 0b0010110100001111100111011011101111111100110111011000100101 @ Lickitung
- .8byte 0b0001000000001111110010111010100101100100110000111000100000 @ Koffing
- .8byte 0b0001000000001111110010111010100101100100110100111000100000 @ Weezing
- .8byte 0b0010100000001111100111011010001111110100110011011000110000 @ Rhyhorn
- .8byte 0b0010110100001111100111011011001111110100110111011000110001 @ Rhydon
- .8byte 0b0011100001100111100111011011110111111110111111011001101101 @ Chansey
- .8byte 0b0011000100001111100000100010000100001101010100011100100000 @ Tangela
- .8byte 0b0010110100001111101111011011101111111100110111011001110101 @ Kangaskhan
- .8byte 0b1100010000000111100000000010000100000100110011001001100100 @ Horsea
- .8byte 0b1100010000000111100000000010000100000100110111001001100100 @ Seadra
- .8byte 0b1100010000000111100000000010000100000100110011001001100100 @ Goldeen
- .8byte 0b1100010000000111100000000010000100000100110111001001100100 @ Seaking
- .8byte 0b1101010000000011100000000110010101100100111011001001100100 @ Staryu
- .8byte 0b1101010000100011100000000110010101100100111111001001100100 @ Starmie
- .8byte 0b0001000001101111110000001111110101101110111100111000101001 @ Mr. mime
- .8byte 0b0010000100011111101000000010000100000100110100011000100000 @ Scyther
- .8byte 0b0001000000101111110000000111110100000100111111101001101101 @ Jynx
- .8byte 0b0011100000001111100000001011010101110100111100001000100001 @ Electabuzz
- .8byte 0b0010100000001111100010010011010100010100010100011000100001 @ Magmar
- .8byte 0b0010100100001111100100000011001110000100110100011010100001 @ Pinsir
- .8byte 0b0010110000000111100111011010000111111100110111011000100100 @ Tauros
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Magikarp
- .8byte 0b1110110000000111110011010010000111100100110111101001110100 @ Gyarados
- .8byte 0b1110110000000111100000001010010101110110110111001001110100 @ Lapras
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Ditto
- .8byte 0b0000000000000111100000000010101100010100110000011000100000 @ Eevee
- .8byte 0b1100010000000111100000000010101100010100110111011001110100 @ Vaporeon
- .8byte 0b0001000000000111100000001010101101110100110100011000110000 @ Jolteon
- .8byte 0b0000000010000111100010010010101100010100110100011000110000 @ Flareon
- .8byte 0b0001000000001011101000001010110101111100110111011000100000 @ Porygon
- .8byte 0b1110010000001111100101000010000100000100110011001001100100 @ Omanyte
- .8byte 0b1110010000001111100101000010000100000100110111001001100100 @ Omastar
- .8byte 0b0110010000001111101101000010001100000101110011001001100100 @ Kabuto
- .8byte 0b1110010100001111101101000011001100000101110111001001100100 @ Kabutops
- .8byte 0b0010101000011111111111010010000110010100110100111000110010 @ Aerodactyl
- .8byte 0b0000110000000111100111011011110111101100110111011000100101 @ Snorlax
- .8byte 0b0010001000010011101001000110000100000100110111011001110100 @ Articuno
- .8byte 0b0011001000010011101001001010000101100100111100011000110000 @ Zapdos
- .8byte 0b0010001010010011101011010010000100000110110100011000110000 @ Moltres
- .8byte 0b0100010000000111100010011010000101110110110111011001100100 @ Dratini
- .8byte 0b0100010000000111100010011010000101110110110111011001100100 @ Dragonair
- .8byte 0b1110111100010111101111011011000111110110110111011001110111 @ Dragonite
- .8byte 0b0011100001100011111111011111110111111110111111111011101101 @ Mewtwo
- .8byte 0b1111111111111111111111111111111111111111111111111111111111 @ Mew
- .8byte 0b0001000100000111100000000110000100011111011000011100100000 @ Chikorita
- .8byte 0b0011100100000111100000000110000100011111011000011100100000 @ Bayleef
- .8byte 0b0011100100000111100000000110000110011111011100011100100000 @ Meganium
- .8byte 0b0000000110000111101010010010001100000100010000011000100000 @ Cyndaquil
- .8byte 0b0010100110000111101010010011001100000100010000011000110001 @ Quilava
- .8byte 0b0010100110000111101010010011001110000100010100011000110001 @ Typhlosion
- .8byte 0b1100010100000111101000000011001100010100110011001001100101 @ Totodile
- .8byte 0b1110110100000111101000000011001100010100110011001001110101 @ Croconaw
- .8byte 0b1110110100000111101000000011001110010100110111001001110111 @ Feraligatr
- .8byte 0b0000010100001111100000011011101100111100110001011000100101 @ Sentret
- .8byte 0b0010110100001111100000011011101101111100110111011000100101 @ Furret
- .8byte 0b0001001000011111101000000110110100000100110000011000100000 @ Hoothoot
- .8byte 0b0001001000011111101000000110110100000100110100011000100000 @ Noctowl
- .8byte 0b0001000000001111101000000111001100001111011000011000100001 @ Ledyba
- .8byte 0b0001000000001111101000000111001100001111011100011000100001 @ Ledian
- .8byte 0b0001000000001111100000100010011100001101010000011000100000 @ Spinarak
- .8byte 0b0001000000001111100000100010011100001101010100011000100000 @ Ariados
- .8byte 0b0000001001011111111000100010100100000101110100111000100000 @ Crobat
- .8byte 0b1101010000000111100000001010000101100100110011001001100100 @ Chinchou
- .8byte 0b1101010000000111100000001010000101100100110111001001100100 @ Lanturn
- .8byte 0b0001000000000111100000001010000101110100111000001000100000 @ Pichu
- .8byte 0b0001000000000111100010011110111100011110111000011000100100 @ Cleffa
- .8byte 0b0001000000000111100010011110111100001110111000011000100100 @ Igglybuff
- .8byte 0b0011000000000111100010011110110100001110111000011000100100 @ Togepi
- .8byte 0b0011001000010111101010011111110100001110111100011000100101 @ Togetic
- .8byte 0b0001000000111111101000000110110100001101111000011000101000 @ Natu
- .8byte 0b0001001000111111101000000110110100001101111100011000101000 @ Xatu
- .8byte 0b0001000000000111100000001010000101110100111000001000100000 @ Mareep
- .8byte 0b0011100000000111100000001011000101110100111000001000100001 @ Flaaffy
- .8byte 0b0011100000000111100000001011000101110100111100001000100001 @ Ampharos
- .8byte 0b0001000100000111100000100010000100001111010100011100100000 @ Bellossom
- .8byte 0b1110110000000111100000000011001100010100110011001001100101 @ Marill
- .8byte 0b1110110000000111100000000011001100010100110111001001100101 @ Azumarill
- .8byte 0b0010100000001111100101000011001110000100010000111000101001 @ Sudowoodo
- .8byte 0b1110110000001111100000000011011110000100110111001001100101 @ Politoed
- .8byte 0b0001000000000111101000000010000100001101010000011100100000 @ Hoppip
- .8byte 0b0001000000000111101000000010000100001101010000011100100000 @ Skiploom
- .8byte 0b0001000000000111101000000010000100001101010100011100100000 @ Jumpluff
- .8byte 0b0010100101001111101000001011101101111100110000111000100101 @ Aipom
- .8byte 0b0001000100000111100000100010000100001111011000011100100000 @ Sunkern
- .8byte 0b0001000100000111100000100010000100001111011100011100100000 @ Sunflora
- .8byte 0b0001000000011111101000000010110100001101010000011000100000 @ Yanma
- .8byte 0b1111010000000111100001100010001110010100110011001001100100 @ Wooper
- .8byte 0b1111110000000111100101100011001110010100110111001001100101 @ Quagsire
- .8byte 0b0001000100100111100000000110111100010100111100011000101000 @ Espeon
- .8byte 0b0001000101000111110000000010111100010100110100111000100000 @ Umbreon
- .8byte 0b0000001001011111111000000010100100000100110000111000101000 @ Murkrow
- .8byte 0b1011110000100111100010010011111110010110110111011001101101 @ Slowking
- .8byte 0b0001000001101111111000001010110101100100110000111000101000 @ Misdreavus
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Unown
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Wobbuffet
- .8byte 0b0011100000101111100000001110110111110100111000011000101000 @ Girafarig
- .8byte 0b0010100000000111100001000110001110001101011000011000100000 @ Pineco
- .8byte 0b0010100000000111100001000110001110001101011100011000100000 @ Forretress
- .8byte 0b0010100000001111100110011010101111111100110011011000101100 @ Dunsparce
- .8byte 0b0010100100011111101101100010001110010100110000011000100000 @ Gligar
- .8byte 0b0010100100000111110101000010001110010100010100111000110000 @ Steelix
- .8byte 0b0010100010001111110010111011101111101100110000111010110101 @ Snubbull
- .8byte 0b0010100010001111110110111011101111111100110100111010110101 @ Granbull
- .8byte 0b1100010000000111100000101010100100000100110011001001100100 @ Qwilfish
- .8byte 0b0010100100011111101001000010000100000100110100011000100000 @ Scizor
- .8byte 0b0011100000000111100101100010001110000110010000011000100000 @ Shuckle
- .8byte 0b0010100100001111100100000011001110000100110100011010100001 @ Heracross
- .8byte 0b0010110101001111111000000011101100010100110011111001101001 @ Sneasel
- .8byte 0b0010100100001111111000000011001110000100110000111010110001 @ Teddiursa
- .8byte 0b0010100100001111111100000011001110000100110100111010110001 @ Ursaring
- .8byte 0b0010000010000111100010010110000100000100011000011000100000 @ Slugma
- .8byte 0b0010100010000111100111010110000110000100011100011000100000 @ Magcargo
- .8byte 0b0010100000000111100101000110001110000100111011001001110000 @ Swinub
- .8byte 0b0010100000000111100101000110001110000100111111001001110000 @ Piloswine
- .8byte 0b0010110000000111100101000110111110000110111011011001101100 @ Corsola
- .8byte 0b1100010000001111100010010010010100000100110111011000100100 @ Remoraid
- .8byte 0b1100010000001111100010110010010100000100110111011100100100 @ Octillery
- .8byte 0b0000001000001111101000000010000100000100110011001001100101 @ Delibird
- .8byte 0b1100010000000111101000000010000110000100110011001001100100 @ Mantine
- .8byte 0b0010001100011111111001000010000100000100010000111000110000 @ Skarmory
- .8byte 0b0010000011001111110010110010100100011100010000111000110000 @ Houndour
- .8byte 0b0010100011001111110010110010100100011100010100111000110000 @ Houndoom
- .8byte 0b1100010000000111100000000010000100000100110111001001100100 @ Kingdra
- .8byte 0b0010100000000111100101000010000110010100010000011000110000 @ Phanpy
- .8byte 0b0010100000000111100101000010000110010100010100011000110000 @ Donphan
- .8byte 0b0001000000001011101000001010110101111100110111011000100000 @ Porygon2
- .8byte 0b0001000000101111100000001110110111111100111000011000111000 @ Stantler
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Smeargle
- .8byte 0b0010100000001111100000000011000110000100110000011010100000 @ Tyrogue
- .8byte 0b0010100000001111100001000011001110000100110000011010100000 @ Hitmontop
- .8byte 0b0001000000101111100000000110110100000100111011001001101100 @ Smoochum
- .8byte 0b0011000000001111100000001011010101100100111000001000100001 @ Elekid
- .8byte 0b0010000000001111100010010011010100010100010000011000100001 @ Magby
- .8byte 0b0010110000000111100101001011100111111100110111011000100101 @ Miltank
- .8byte 0b0011100001100111100111011011110111111110111111011001101101 @ Blissey
- .8byte 0b0011100100000011100001001110001101110100110100011000111000 @ Raikou
- .8byte 0b0011100100000011100011010110001100011100110100011000111000 @ Entei
- .8byte 0b1110010100000011100001000110001100010100110111011001111100 @ Suicune
- .8byte 0b0010000000000111110001000011001110000100110100111000100000 @ Larvitar
- .8byte 0b0010000000000111110001000011001110000100110100111000100000 @ Pupitar
- .8byte 0b0010110100000111111111011011001111110100110111111000110111 @ Tyranitar
- .8byte 0b1110111000110011101001001110110111110111111111011001111100 @ Lugia
- .8byte 0b0011101010010011101011011110110111101111111100011000111000 @ Ho-Oh
- .8byte 0b0001000100100011101001001110110100001111111100011000101100 @ Celebi
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ ?
- .8byte 0b0011100100000111101100000011001100011111010000011100100001 @ Treecko
- .8byte 0b0011100100000111101100000011001100011111010000011100100001 @ Grovyle
- .8byte 0b0011100100000111101100000011001110011111010100011100110011 @ Sceptile
- .8byte 0b0010100110000111101110010010001100000100010000011000100000 @ Torchic
- .8byte 0b0010100110000111101110010011001100000100010000011010100001 @ Combusken
- .8byte 0b0010100110000111101110010011001110000100010100011010110001 @ Blaziken
- .8byte 0b1110110000000111100100000010001100010100110011001001100100 @ Mudkip
- .8byte 0b1110110000000111100100000010001110010100110011001001100100 @ Marshtomp
- .8byte 0b1110110000000111100100000011001110010100110111001001110101 @ Swampert
- .8byte 0b0010000001001111110000000010101100010100110000111000110000 @ Poochyena
- .8byte 0b0010100001001111110000000010101100010100110100111000110000 @ Mightyena
- .8byte 0b0010010100001111100000001010101101110100110011011000100100 @ Zigzagoon
- .8byte 0b0010110100001111100000001010101101110100110111011000110100 @ Linoone
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Wurmple
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Silcoon
- .8byte 0b0001000000001111101000000010110100001111010100011000100000 @ Beautifly
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Cascoon
- .8byte 0b0001000000001111101000100010110100001101011100011000100000 @ Dustox
- .8byte 0b0001010000001111100000000010000100001101110011011101100100 @ Lotad
- .8byte 0b1111110000001111100000000011000100001101110011011101100100 @ Lombre
- .8byte 0b1111110000001111100000000011000100001101110111011101100101 @ Ludicolo
- .8byte 0b0011000000000111100000000010101100001101010000011100100000 @ Seedot
- .8byte 0b0011100100001111110100000011101100001101010100011100100000 @ Nuzleaf
- .8byte 0b0011100100001111111100000011101100001101010100011100100000 @ Shiftry
- .8byte 0b0001000100000011101001000010101100001101010000011000100000 @ Nincada
- .8byte 0b0001000100001111101001000010101100001101010100011000100000 @ Ninjask
- .8byte 0b0001000100001011101001000010101100001101010100011000100000 @ Shedinja
- .8byte 0b0000001000011111101000000010000100000100110000011000100000 @ Taillow
- .8byte 0b0000001000011111101000000010000100000100110100011000100000 @ Swellow
- .8byte 0b0001000001000111100000100010000100001111010000011100100000 @ Shroomish
- .8byte 0b0011100101000111100000100011000100011111010100011110100001 @ Breloom
- .8byte 0b0011100001101111100100001011111100000110110000011000101101 @ Spinda
- .8byte 0b0000001000011111101000001010000100000100110011001001100100 @ Wingull
- .8byte 0b0000011000011111101000001010000100000100110111001001100100 @ Pelipper
- .8byte 0b0001000000001111100000000010100100001101110011011000100100 @ Surskit
- .8byte 0b0001000000001111101000000010100100001101110111011000100100 @ Masquerain
- .8byte 0b1110110000000111100100000010000110000100110011001001110100 @ Wailmer
- .8byte 0b1110110000000111100100000010000110000100110111001001110100 @ Wailord
- .8byte 0b0001000000000111100000001010101101111110110011011000101100 @ Skitty
- .8byte 0b0011100000000111100000001010101101111110110111011000101100 @ Delcatty
- .8byte 0b0011100101101111101110011011101101111100110011011000100101 @ Kecleon
- .8byte 0b0001000000100011100101000110111110001100111001011000100000 @ Baltoy
- .8byte 0b0011100000100011100101000110111110001100111101011000100000 @ Claydol
- .8byte 0b0010100000000111110101001010000111100100010000111000100000 @ Nosepass
- .8byte 0b0010100010000111100010110010000100010100010000011000100000 @ Torkoal
- .8byte 0b0011000101001111111100001011111100000100110000111000101101 @ Sableye
- .8byte 0b1100010000000111100101000010000110000100110011001001100100 @ Barboach
- .8byte 0b1110110000000111100101000010000110000100110111001001100100 @ Whiscash
- .8byte 0b1100010000000111100000000010000100000110110011001001100100 @ Luvdisc
- .8byte 0b0110110100000111101100100011001100000100110011101001100100 @ Corphish
- .8byte 0b1110110100000111101100100011001100000100110111101001100100 @ Crawdaunt
- .8byte 0b1100010000000111100000000010000100000100110011001001100100 @ Feebas
- .8byte 0b1100010000000111100000000010000100010110110111001001100100 @ Milotic
- .8byte 0b1100010000001111110000000010000100000100110011101001100100 @ Carvanha
- .8byte 0b1110110000001111110100000010000110000100110111101001110100 @ Sharpedo
- .8byte 0b0010100000000111100101000010001110001101010100011000100000 @ Trapinch
- .8byte 0b0010101000010111100101000010001110001101010100011000100000 @ Vibrava
- .8byte 0b0010101000010111100111010010001110011101010100011000100010 @ Flygon
- .8byte 0b0010110000000111100100000011001110000100110000011010100001 @ Makuhita
- .8byte 0b0010110000000111100100000011001110000100110100011010100001 @ Hariyama
- .8byte 0b0001100000001111100000001010000101110100110000001000110000 @ Electrike
- .8byte 0b0001100000001111100000001010000101110100110100001000110000 @ Manectric
- .8byte 0b0010100010000111100111010010001110000100010000011000100000 @ Numel
- .8byte 0b0010100010000111100111010010001110000100010100011000110000 @ Camerupt
- .8byte 0b1110110000000111100100000010000110010100110011001001100100 @ Spheal
- .8byte 0b1110110000000111100100000010000110010100110011001001110100 @ Sealeo
- .8byte 0b1110110000000111100100000010000110010100110111001001110100 @ Walrein
- .8byte 0b0001000100000111100001000010000100001101010000011100100001 @ Cacnea
- .8byte 0b0001100100000111100001000010000100001101010100011100100001 @ Cacturne
- .8byte 0b0001000000000111100000000010100100000110111011001001100100 @ Snorunt
- .8byte 0b0001000000000111110000000010100110000110111111101001100100 @ Glalie
- .8byte 0b0001000000100011100101000110110110000110111101001000101000 @ Lunatone
- .8byte 0b0001000010100011100111010110110110001110011100011000101000 @ Solrock
- .8byte 0b0100010000000111100000000010000100010100110011001001100100 @ Azurill
- .8byte 0b0001000001101111110000001110110100010100111000111000101000 @ Spoink
- .8byte 0b0001000001101111110000001110110100010100111100111000101001 @ Grumpig
- .8byte 0b0001000000000111100000001010000101110100111000001000100000 @ Plusle
- .8byte 0b0001000000000111100000001010000101110100111000001000100000 @ Minun
- .8byte 0b0010100000000111110111110011000100001100110101111000100001 @ Mawile
- .8byte 0b0011100000000111100100000111110100000100111000011010101001 @ Meditite
- .8byte 0b0011100000000111100100000111110100000100111100011010101001 @ Medicham
- .8byte 0b0000001000011111101000000010000100001110110001011000100000 @ Swablu
- .8byte 0b0010001000011111101010010010000110011110110101011000110010 @ Altaria
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Wynaut
- .8byte 0b0001000001101111110000000010110100000100110011111000101000 @ Duskull
- .8byte 0b0011100001101111110100000010110110000100110111111000101001 @ Dusclops
- .8byte 0b0001000100000111100000100010100100001101010000011100100000 @ Roselia
- .8byte 0b0010100100000111101010011011100101101100110011011010100101 @ Slakoth
- .8byte 0b0010100100000111101010011011100111101100110011111010110101 @ Vigoroth
- .8byte 0b0010100100000111101010011011100111101100110111111010110101 @ Slaking
- .8byte 0b0010100001000111100000101010100100001101110001011100100100 @ Gulpin
- .8byte 0b0010100001000111100000101010100100001101110101011100100100 @ Swalot
- .8byte 0b0011101100010111101000000010000110001111010100011100110000 @ Tropius
- .8byte 0b0000000000000111100010011010100100001100110011011000110100 @ Whismur
- .8byte 0b0010100010000111110010011011100110001100110011111000110100 @ Loudred
- .8byte 0b0010100010000111110010011011100110001100110111111000110100 @ Exploud
- .8byte 0b1100010000000111100000000010000100000100110011001001100100 @ Clamperl
- .8byte 0b1100010001000111100100000010000100000100110111001001100100 @ Huntail
- .8byte 0b1100010000000111100000000010110100000110110111001001100100 @ Gorebyss
- .8byte 0b0011100101001111111011011010100101110100110111111001101100 @ Absol
- .8byte 0b0001000001101111110000001010110101100100110000111000101000 @ Shuppet
- .8byte 0b0001000001101111110000001010110101100100110100111000101000 @ Banette
- .8byte 0b0010100001001111100000110010001110010101110000111000100000 @ Seviper
- .8byte 0b0010100000001111101010011011101101111101110011111000110101 @ Zangoose
- .8byte 0b1110010000000111100101000010000110000110110111001001101100 @ Relicanth
- .8byte 0b0010100100000111101101001010001110010100110000011000110100 @ Aron
- .8byte 0b0010100100000111101101001010001110010100110000011000110100 @ Lairon
- .8byte 0b0010110100000111101111011011001111111100110111111000110111 @ Aggron
- .8byte 0b0001000000001111100011011010100101101100110011011001100100 @ Castform
- .8byte 0b0001000000001111101000001011100101101101111000011000100101 @ Volbeat
- .8byte 0b0001000000001111101000001011100101101101111000011000100101 @ Illumise
- .8byte 0b0000000000000111100001100010000100001101010000011100100000 @ Lileep
- .8byte 0b0010100000000111100101100010000110001101010100011100100000 @ Cradily
- .8byte 0b0010000100000111101101000011001100000100010000011000100100 @ Anorith
- .8byte 0b0010100100000111101101000011001110010100010100011000100100 @ Armaldo
- .8byte 0b0001000001101111110000001110110100100110111000111000101000 @ Ralts
- .8byte 0b0001000001101111110000001110110100100110111000111000101000 @ Kirlia
- .8byte 0b0001000001101111110000001110110100100110111100111000101000 @ Gardevoir
- .8byte 0b0010100100000111101110010011000100000100110000011000110010 @ Bagon
- .8byte 0b0010100100000111101110010011000100000100110000011000110010 @ Shelgon
- .8byte 0b0010101100010111101110010011000110010100110100011000110010 @ Salamence
- .8byte 0b0000000000000000000000000000000000000000000000000000000000 @ Beldum
- .8byte 0b0011100100000011101101100111110110000100111100011000100000 @ Metang
- .8byte 0b0011100100000011101101100111110110000100111100011000100000 @ Metagross
- .8byte 0b0010100000000011100101001011001111100110010100011000100001 @ Regirock
- .8byte 0b0010100000000011100000001011000111100110110111001001100001 @ Regice
- .8byte 0b0010100000000011101101001011000111100110110100011000100001 @ Registeel
- .8byte 0b1110110000000011100100001011000111100110110111001001111100 @ Kyogre
- .8byte 0b0010100110000011101111011011001111111110010100011010110010 @ Groudon
- .8byte 0b1110111010000011101011011011000111111100110111011010110110 @ Rayquaza
- .8byte 0b1101011100010111101001001110110111101110111101011000111110 @ Latias
- .8byte 0b1101011100010111101001001110110111101110111101011000111110 @ Latios
- .8byte 0b0001000000100011101001001110110101100110111100011000101100 @ Jirachi
- .8byte 0b0011100101100011111100001111110101101110111101111000101101 @ Deoxys
- .8byte 0b0001000001100111110000001110110100000110111000111000101000 @ Chimecho
diff --git a/data/trainer_class_index_tables.inc b/data/trainer_class_index_tables.inc
deleted file mode 100644
index 25762e510..000000000
--- a/data/trainer_class_index_tables.inc
+++ /dev/null
@@ -1,157 +0,0 @@
-gTrainerClassToPicIndex:: @ 81FDDD0
- .byte TRAINER_PIC_ARCHIE @ AQUA_LEADER
- .byte TRAINER_PIC_AQUA_GRUNT_M @ TEAM_AQUA_M
- .byte TRAINER_PIC_AQUA_GRUNT_F @ TEAM_AQUA_F
- .byte TRAINER_PIC_AROMA_LADY @ AROMA_LADY
- .byte TRAINER_PIC_RUIN_MANIAC @ RUIN_MANIAC
- .byte TRAINER_PIC_INTERVIEWER @ INTERVIEWER
- .byte TRAINER_PIC_TUBER_F @ TUBER_F
- .byte TRAINER_PIC_TUBER_M @ TUBER_M
- .byte TRAINER_PIC_COOL_TRAINER_M @ COOL_TRAINER_M
- .byte TRAINER_PIC_COOL_TRAINER_F @ COOL_TRAINER_F
- .byte TRAINER_PIC_HEX_MANIAC @ HEX_MANIAC
- .byte TRAINER_PIC_LADY @ LADY
- .byte TRAINER_PIC_BEAUTY @ BEAUTY
- .byte TRAINER_PIC_RICH_BOY @ RICH_BOY
- .byte TRAINER_PIC_POKEMANIAC @ POKEMANIAC
- .byte TRAINER_PIC_SWIMMER_M @ SWIMMER_M
- .byte TRAINER_PIC_BLACK_BELT @ BLACK_BELT
- .byte TRAINER_PIC_GUITARIST @ GUITARIST
- .byte TRAINER_PIC_KINDLER @ KINDLER
- .byte TRAINER_PIC_CAMPER @ CAMPER
- .byte TRAINER_PIC_BUG_MANIAC @ BUG_MANIAC
- .byte TRAINER_PIC_PSYCHIC_M @ PSYCHIC_M
- .byte TRAINER_PIC_PSYCHIC_F @ PSYCHIC_F
- .byte TRAINER_PIC_GENTLEMAN @ GENTLEMAN
- .byte TRAINER_PIC_SIDNEY @ ELITE_FOUR_M
- .byte TRAINER_PIC_PHOEBE @ ELITE_FOUR_F
- .byte TRAINER_PIC_ROXANNE @ LEADER_F
- .byte TRAINER_PIC_BRAWLY @ LEADER_M
- .byte TRAINER_PIC_TATE_AND_LIZA @ LEADER_MF
- .byte TRAINER_PIC_SCHOOL_KID_M @ SCHOOL_KID_M
- .byte TRAINER_PIC_SCHOOL_KID_F @ SCHOOL_KID_F
- .byte TRAINER_PIC_SR_AND_JR @ SR_AND_JR
- .byte TRAINER_PIC_POKEFAN_M @ POKEFAN_M
- .byte TRAINER_PIC_POKEFAN_F @ POKEFAN_F
- .byte TRAINER_PIC_EXPERT_M @ EXPERT_M
- .byte TRAINER_PIC_EXPERT_F @ EXPERT_F
- .byte TRAINER_PIC_YOUNGSTER @ YOUNGSTER
- .byte TRAINER_PIC_STEVEN @ CHAMPION
- .byte TRAINER_PIC_FISHERMAN @ FISHERMAN
- .byte TRAINER_PIC_CYCLING_TRIATHLETE_M @ CYCLING_TRIATHLETE_M
- .byte TRAINER_PIC_CYCLING_TRIATHLETE_F @ CYCLING_TRIATHLETE_F
- .byte TRAINER_PIC_RUNNING_TRIATHLETE_M @ RUNNING_TRIATHLETE_M
- .byte TRAINER_PIC_RUNNING_TRIATHLETE_F @ RUNNING_TRIATHLETE_F
- .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M @ SWIMMING_TRIATHLETE_M
- .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F @ SWIMMING_TRIATHLETE_F
- .byte TRAINER_PIC_DRAGON_TAMER @ DRAGON_TAMER
- .byte TRAINER_PIC_BIRD_KEEPER @ BIRD_KEEPER
- .byte TRAINER_PIC_NINJA_BOY @ NINJA_BOY
- .byte TRAINER_PIC_BATTLE_GIRL @ BATTLE_GIRL
- .byte TRAINER_PIC_PARASOL_LADY @ PARASOL_LADY
- .byte TRAINER_PIC_SWIMMER_F @ SWIMMER_F
- .byte TRAINER_PIC_PICNICKER @ PICNICKER
- .byte TRAINER_PIC_TWINS @ TWINS
- .byte TRAINER_PIC_SAILOR @ SAILOR
- .byte TRAINER_PIC_YOUNGSTER @ BOARDER_1
- .byte TRAINER_PIC_YOUNGSTER @ BOARDER_2
- .byte TRAINER_PIC_COLLECTOR @ COLLECTOR
- .byte TRAINER_PIC_WALLY @ WALLY
- .byte TRAINER_PIC_BRENDAN @ BRENDAN_1
- .byte TRAINER_PIC_BRENDAN @ BRENDAN_2
- .byte TRAINER_PIC_BRENDAN @ BRENDAN_3
- .byte TRAINER_PIC_MAY @ MAY_1
- .byte TRAINER_PIC_MAY @ MAY_2
- .byte TRAINER_PIC_MAY @ MAY_3
- .byte TRAINER_PIC_POKEMON_BREEDER_M @ POKEMON_BREEDER_M
- .byte TRAINER_PIC_POKEMON_BREEDER_F @ POKEMON_BREEDER_F
- .byte TRAINER_PIC_POKEMON_RANGER_M @ POKEMON_RANGER_M
- .byte TRAINER_PIC_POKEMON_RANGER_F @ POKEMON_RANGER_F
- .byte TRAINER_PIC_MAXIE @ MAGMA_LEADER
- .byte TRAINER_PIC_MAGMA_GRUNT_M @ TEAM_MAGMA_M
- .byte TRAINER_PIC_MAGMA_GRUNT_F @ TEAM_MAGMA_F
- .byte TRAINER_PIC_LASS @ LASS
- .byte TRAINER_PIC_BUG_CATCHER @ BUG_CATCHER
- .byte TRAINER_PIC_HIKER @ HIKER
- .byte TRAINER_PIC_YOUNG_COUPLE @ YOUNG_COUPLE
- .byte TRAINER_PIC_OLD_COUPLE @ OLD_COUPLE
- .byte TRAINER_PIC_SIS_AND_BRO @ SIS_AND_BRO
-
-gTrainerClassToNameIndex:: @ 81FDE1D
- .byte TRAINER_CLASS_NAME_AQUA_LEADER @ AQUA_LEADER
- .byte TRAINER_CLASS_NAME_TEAM_AQUA @ TEAM_AQUA_M
- .byte TRAINER_CLASS_NAME_TEAM_AQUA @ TEAM_AQUA_F
- .byte TRAINER_CLASS_NAME_AROMA_LADY @ AROMA_LADY
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC @ RUIN_MANIAC
- .byte TRAINER_CLASS_NAME_INTERVIEWER @ INTERVIEWER
- .byte TRAINER_CLASS_NAME_TUBER_F @ TUBER_F
- .byte TRAINER_CLASS_NAME_TUBER_M @ TUBER_M
- .byte TRAINER_CLASS_NAME_COOL_TRAINER @ COOL_TRAINER_M
- .byte TRAINER_CLASS_NAME_COOL_TRAINER @ COOL_TRAINER_F
- .byte TRAINER_CLASS_NAME_HEX_MANIAC @ HEX_MANIAC
- .byte TRAINER_CLASS_NAME_LADY @ LADY
- .byte TRAINER_CLASS_NAME_BEAUTY @ BEAUTY
- .byte TRAINER_CLASS_NAME_RICH_BOY @ RICH_BOY
- .byte TRAINER_CLASS_NAME_POKEMANIAC @ POKEMANIAC
- .byte TRAINER_CLASS_NAME_SWIMMER_M @ SWIMMER_M
- .byte TRAINER_CLASS_NAME_BLACK_BELT @ BLACK_BELT
- .byte TRAINER_CLASS_NAME_GUITARIST @ GUITARIST
- .byte TRAINER_CLASS_NAME_KINDLER @ KINDLER
- .byte TRAINER_CLASS_NAME_CAMPER @ CAMPER
- .byte TRAINER_CLASS_NAME_BUG_MANIAC @ BUG_MANIAC
- .byte TRAINER_CLASS_NAME_PSYCHIC @ PSYCHIC_M
- .byte TRAINER_CLASS_NAME_PSYCHIC @ PSYCHIC_F
- .byte TRAINER_CLASS_NAME_GENTLEMAN @ GENTLEMAN
- .byte TRAINER_CLASS_NAME_ELITE_FOUR @ ELITE_FOUR_M
- .byte TRAINER_CLASS_NAME_ELITE_FOUR @ ELITE_FOUR_F
- .byte TRAINER_CLASS_NAME_LEADER @ LEADER_F
- .byte TRAINER_CLASS_NAME_LEADER @ LEADER_M
- .byte TRAINER_CLASS_NAME_LEADER @ LEADER_MF
- .byte TRAINER_CLASS_NAME_SCHOOL_KID @ SCHOOL_KID_M
- .byte TRAINER_CLASS_NAME_SCHOOL_KID @ SCHOOL_KID_F
- .byte TRAINER_CLASS_NAME_SR_AND_JR @ SR_AND_JR
- .byte TRAINER_CLASS_NAME_POKEFAN @ POKEFAN_M
- .byte TRAINER_CLASS_NAME_POKEFAN @ POKEFAN_F
- .byte TRAINER_CLASS_NAME_EXPERT @ EXPERT_M
- .byte TRAINER_CLASS_NAME_EXPERT @ EXPERT_F
- .byte TRAINER_CLASS_NAME_YOUNGSTER @ YOUNGSTER
- .byte TRAINER_CLASS_NAME_CHAMPION @ CHAMPION
- .byte TRAINER_CLASS_NAME_FISHERMAN @ FISHERMAN
- .byte TRAINER_CLASS_NAME_TRIATHLETE @ CYCLING_TRIATHLETE_M
- .byte TRAINER_CLASS_NAME_TRIATHLETE @ CYCLING_TRIATHLETE_F
- .byte TRAINER_CLASS_NAME_TRIATHLETE @ RUNNING_TRIATHLETE_M
- .byte TRAINER_CLASS_NAME_TRIATHLETE @ RUNNING_TRIATHLETE_F
- .byte TRAINER_CLASS_NAME_TRIATHLETE @ SWIMMING_TRIATHLETE_M
- .byte TRAINER_CLASS_NAME_TRIATHLETE @ SWIMMING_TRIATHLETE_F
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER @ DRAGON_TAMER
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER @ BIRD_KEEPER
- .byte TRAINER_CLASS_NAME_NINJA_BOY @ NINJA_BOY
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL @ BATTLE_GIRL
- .byte TRAINER_CLASS_NAME_PARASOL_LADY @ PARASOL_LADY
- .byte TRAINER_CLASS_NAME_SWIMMER_F @ SWIMMER_F
- .byte TRAINER_CLASS_NAME_PICNICKER @ PICNICKER
- .byte TRAINER_CLASS_NAME_TWINS @ TWINS
- .byte TRAINER_CLASS_NAME_SAILOR @ SAILOR
- .byte TRAINER_CLASS_NAME_BOARDER @ BOARDER_1
- .byte TRAINER_CLASS_NAME_BOARDER @ BOARDER_2
- .byte TRAINER_CLASS_NAME_COLLECTOR @ COLLECTOR
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 @ WALLY
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 @ BRENDAN_1
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 @ BRENDAN_2
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 @ BRENDAN_3
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 @ MAY_1
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 @ MAY_2
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 @ MAY_3
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER @ POKEMON_BREEDER_M
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER @ POKEMON_BREEDER_F
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER @ POKEMON_RANGER_M
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER @ POKEMON_RANGER_F
- .byte TRAINER_CLASS_NAME_MAGMA_LEADER @ MAGMA_LEADER
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA @ TEAM_MAGMA_M
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA @ TEAM_MAGMA_F
- .byte TRAINER_CLASS_NAME_LASS @ LASS
- .byte TRAINER_CLASS_NAME_BUG_CATCHER @ BUG_CATCHER
- .byte TRAINER_CLASS_NAME_HIKER @ HIKER
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE @ YOUNG_COUPLE
- .byte TRAINER_CLASS_NAME_OLD_COUPLE @ OLD_COUPLE
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO @ SIS_AND_BRO
diff --git a/graphics/spinda_spots/spot_0.bin b/graphics/spinda_spots/spot_0.bin
new file mode 100644
index 000000000..938d1d592
--- /dev/null
+++ b/graphics/spinda_spots/spot_0.bin
Binary files differ
diff --git a/graphics/spinda_spots/spot_1.bin b/graphics/spinda_spots/spot_1.bin
new file mode 100644
index 000000000..db46b5de4
--- /dev/null
+++ b/graphics/spinda_spots/spot_1.bin
Binary files differ
diff --git a/graphics/spinda_spots/spot_2.bin b/graphics/spinda_spots/spot_2.bin
new file mode 100644
index 000000000..3b1bf7214
--- /dev/null
+++ b/graphics/spinda_spots/spot_2.bin
Binary files differ
diff --git a/graphics/spinda_spots/spot_3.bin b/graphics/spinda_spots/spot_3.bin
new file mode 100644
index 000000000..10c73f9ba
--- /dev/null
+++ b/graphics/spinda_spots/spot_3.bin
Binary files differ
diff --git a/include/battle.h b/include/battle.h
index d93860094..4e102c145 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -28,8 +28,82 @@
#define AI_ACTION_UNK7 0x0040
#define AI_ACTION_UNK8 0x0080
+#define STATUS_SLEEP 0x7
+#define STATUS_POISON 0x8
+#define STATUS_BURN 0x10
+#define STATUS_FREEZE 0x20
+#define STATUS_PARALYSIS 0x40
+#define STATUS_TOXIC_POISON 0x80
+
+#define STATUS2_CONFUSION 0x00000007
+#define STATUS2_UPROAR 0x00000070
+#define STATUS2_LOCK_CONFUSE 0x00000C00
+#define STATUS2_MULTIPLETURNS 0x00001000
+#define STATUS2_WRAPPED 0x0000E000
+#define STATUS2_FOCUS_ENERGY 0x00100000
+#define STATUS2_TRANSFORMED 0x00200000
+#define STATUS2_RECHARGE 0x00400000
+#define STATUS2_RAGE 0x00800000
+#define STATUS2_SUBSTITUTE 0x01000000
+#define STATUS2_ESCAPE_PREVENTION 0x04000000
+#define STATUS2_NIGHTMARE 0x08000000
+#define STATUS2_CURSED 0x10000000
+#define STATUS2_FORESIGHT 0x20000000
+
+#define STATUS3_LEECHSEED_RECEIVER 0x3 //two bits for the bank that gets hp
+#define STATUS3_LEECHSEED 0x4
+#define STATUS3_ALWAYS_HITS 0x18 //two bits
+#define STATUS3_PERISH_SONG 0x20
+#define STATUS3_ON_AIR 0x40
+#define STATUS3_UNDERGROUND 0x80
+#define STATUS3_MINIMIZED 0x100
+#define STATUS3_CHARGED_UP 0x200
+#define STATUS3_ROOTED 0x400
+#define STATUS3_GRUDGE 0x4000
+#define STATUS3_CANT_SCORE_A_CRIT 0x8000
+#define STATUS3_MUDSPORT 0x10000
+#define STATUS3_WATERSPORT 0x20000
+#define STATUS3_UNDERWATER 0x40000
+
+#define HITMARKER_x20 0x0000020
+#define HITMARKER_DESTINYBOND 0x0000040
+#define HITMARKER_NO_ANIMATIONS 0x0000080
+#define HITMARKER_IGNORE_SUBSTITUTE 0x0000100
+#define HITMARKER_NO_ATTACKSTRING 0x0000200
+#define HITMARKER_ATTACKSTRING_PRINTED 0x0000400
+#define HITMARKER_NO_PPDEDUCT 0x0000800
+#define HITMARKER_IGNORE_SAFEGUARD 0x0002000
+#define HITMARKER_SYNCHRONISE_EFFECT 0x0004000
+#define HITMARKER_IGNORE_ON_AIR 0x0010000
+#define HITMARKER_IGNORE_UNDERGROUND 0x0020000
+#define HITMARKER_IGNORE_UNDERWATER 0x0040000
+#define HITMARKER_x80000 0x0080000
+#define HITMARKER_x100000 0x0100000
+#define HITMARKER_x400000 0x0400000
+#define HITMARKER_x800000 0x0800000
+#define HITMARKER_GRUDGE 0x1000000
+#define HITMARKER_OBEYS 0x2000000
+#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C))
+#define HITMARKER_UNK(bank) ((0x10000000 << bank))
+
#define MAX_TRAINER_ITEMS 4
#define MAX_MON_MOVES 4
+#define MAX_BANKS_BATTLE 4
+
+#define weather_rain 1
+#define weather_downpour 2
+#define weather_permament_rain 4
+#define WEATHER_RAINY ((weather_rain | weather_downpour | weather_permament_rain))
+
+#define weather_sandstorm 8
+#define weather_permament_sandstorm 0x10
+#define WEATHER_SANDSTORMY ((weather_sandstorm | weather_permament_sandstorm))
+
+#define weather_sun 0x20
+#define weather_permament_sun 0x40
+#define WEATHER_SUNNY ((weather_sun | weather_permament_sun))
+
+#define weather_hail 0x80
// needed to match the hack that is get_item, thanks cam, someone else clean this up later.
extern u8 unk_2000000[];
@@ -85,79 +159,247 @@ struct AI_ThinkingStruct /* 0x2016800 */
/* 0x18 */ u8 simulatedRNG[4];
};
-struct SmallBattleStruct1
-{
- u8 unk1;
- u8 unk2;
- u8 unk3;
- u8 unk4;
- // unknown size
-};
-
-struct SmallItemStruct
-{
- u8 itemLocal[2][3];
-};
-
struct BattleStruct /* 0x2000000 */
{
u8 filler0[0x15DDE];
/*0x15DDE*/ u8 unk15DDE;
/*0x15DDF*/ u8 unk15DDF;
- /*0x15DE0*/ u8 filler15DE0[0x23C]; // 0xAF off?
- struct SmallBattleStruct1 unk;
- u8 filler1[0x68];
- /* 0x16089 */ u8 safariFleeRate;
- u8 filler1_2[0x42];
- /* 0x160CB */ u8 linkPlayerIndex;
- /* 0x160CC */ struct SmallItemStruct item;
+ /*0x15DE0*/ u8 filler15DE0[0x222];
+ /*0x16002*/ u8 AnimTurn;
+ /*0x16003*/ u8 ScriptingActive;
+ /*0x16004*/ u8 WrappedMove1[4];
+ /*0x16008*/ u8 WrappedMove2[4];
+ /*0x1600C*/ u8 cmd49StateTracker;
+ /*0x1600D*/ u8 unk1600D;
+ /*0x1600E*/ u8 unk1600E;
+ /*0x1600F*/ u8 atk23StateTracker;
+ /*0x16010*/ u8 unk16010;
+ /*0x16011*/ u8 unk16011;
+ /*0x16012*/ u8 unk16012;
+ /*0x16013*/ u8 unk16013;
+ /*0x16014*/ u8 unk16014;
+ /*0x16015*/ u8 unk16015;
+ /*0x16016*/ u8 unk16016;
+ /*0x16017*/ u8 unk16017;
+ /*0x16018*/ u8 expGetterID;
+ /*0x16019*/ u8 unk16019;
+ /*0x1601A*/ u8 unk1601A;
+ /*0x1601B*/ u8 wildVictorySong;
+ /*0x1601C*/ u8 DynamicMoveType;
+ /*0x1601D*/ u8 unk1601D;
+ /*0x1601E*/ u8 statChanger;
+ /*0x1601F*/ u8 DmgMultiplier;
+ /*0x16020*/ u8 WrappedBy[4];
+ /*0x16024*/ u8 unk16024;
+ /*0x16025*/ u8 unk16025;
+ /*0x16026*/ u8 unk16026;
+ /*0x16027*/ u8 unk16027;
+ /*0x16028*/ u8 unk16028;
+ /*0x16029*/ u8 unk16029;
+ /*0x1602A*/ u8 unk1602A;
+ /*0x1602B*/ u8 unk1602B;
+ /*0x1602C*/ u8 unk1602C;
+ /*0x1602D*/ u8 unk1602D;
+ /*0x1602E*/ u8 unk1602E;
+ /*0x1602F*/ u8 unk1602F;
+ /*0x16030*/ u8 unk16030;
+ /*0x16031*/ u8 unk16031;
+ /*0x16032*/ u8 unk16032;
+ /*0x16033*/ u8 unk16033;
+ /*0x16034*/ u8 unk16034;
+ /*0x16035*/ u8 unk16035;
+ /*0x16036*/ u8 unk16036;
+ /*0x16037*/ u8 unk16037;
+ /*0x16038*/ u8 unk16038;
+ /*0x16039*/ u8 unk16039;
+ /*0x1603A*/ u8 unk1603A;
+ /*0x1603B*/ u8 unk1603B;
+ /*0x1603C*/ u8 unk1603C;
+ /*0x1603D*/ u8 unk1603D;
+ /*0x1603E*/ u8 unk1603E;
+ /*0x1603F*/ u8 unk1603F;
+ /*0x16040*/ u8 unk16040;
+ /*0x16041*/ u8 unk16041;
+ /*0x16042*/ u8 unk16042;
+ /*0x16043*/ u8 unk16043;
+ /*0x16044*/ u8 unk16044;
+ /*0x16045*/ u8 unk16045;
+ /*0x16046*/ u8 unk16046;
+ /*0x16047*/ u8 unk16047;
+ /*0x16048*/ u8 unk16048;
+ /*0x16049*/ u8 unk16049;
+ /*0x1604A*/ u8 unk1604A;
+ /*0x1604B*/ u8 unk1604B;
+ /*0x1604C*/ u8 unk1604C;
+ /*0x1604D*/ u8 unk1604D;
+ /*0x1604E*/ u8 unk1604E;
+ /*0x1604F*/ u8 unk1604F;
+ /*0x16050*/ u8 unk16050;
+ /*0x16051*/ u8 unk16051;
+ /*0x16052*/ u8 unk16052;
+ /*0x16053*/ u8 unk16053;
+ /*0x16054*/ u8 unk16054;
+ /*0x16055*/ u8 unk16055;
+ /*0x16056*/ u8 unk16056;
+ /*0x16057*/ u8 unk16057;
+ /*0x16058*/ u8 unk16058;
+ /*0x16059*/ u8 unk16059;
+ /*0x1605A*/ u8 unk1605A;
+ /*0x1605B*/ u8 unk1605B;
+ /*0x1605C*/ u16 exp;
+ /*0x1605E*/ u8 unk1605E;
+ /*0x1605F*/ u8 sentInPokes;
+ /*0x16060*/ u8 unk16060[4];
+ /*0x16064*/ u8 unk16064;
+ /*0x16065*/ u8 unk16065;
+ /*0x16066*/ u8 unk16066;
+ /*0x16067*/ u8 unk16067;
+ /*0x16068*/ u8 unk16068;
+ /*0x16069*/ u8 unk16069;
+ /*0x1606A*/ u8 unk1606A;
+ /*0x1606B*/ u8 unk1606B;
+ /*0x1606C*/ u8 unk1606C;
+ /*0x1606D*/ u8 unk1606D;
+ /*0x1606E*/ u8 unk1606E;
+ /*0x1606F*/ u8 unk1606F;
+ /*0x16070*/ u8 unk16070;
+ /*0x16071*/ u8 unk16071;
+ /*0x16072*/ u8 unk16072;
+ /*0x16073*/ u8 unk16073;
+ /*0x16074*/ u8 unk16074;
+ /*0x16075*/ u8 unk16075;
+ /*0x16076*/ u8 unk16076;
+ /*0x16077*/ u8 unk16077;
+ /*0x16078*/ u8 unk16078;
+ /*0x16079*/ u8 unk16079;
+ /*0x1607A*/ u8 unk1607A;
+ /*0x1607B*/ u8 unk1607B;
+ /*0x1607C*/ u8 unk1607C;
+ /*0x1607D*/ u8 unk1607D;
+ /*0x1607E*/ u8 unk1607E;
+ /*0x1607F*/ u8 unk1607F;
+ /*0x16080*/ u8 unk16080;
+ /*0x16081*/ u8 unk16081;
+ /*0x16082*/ u8 unk16082;
+ /*0x16083*/ u8 unk16083;
+ /*0x16084*/ u8 unk16084;
+ /*0x16085*/ u8 unk16085;
+ /*0x16086*/ u8 unk16086;
+ /*0x16087*/ u8 unk16087;
+ /*0x16088*/ u8 safariFleeRate;
+ /*0x16089*/ u8 unk16089;
+ /*0x1608A*/ u8 unk1608A;
+ /*0x1608B*/ u8 unk1608B;
+ /*0x1608C*/ u8 ChosenMoveID[4];
+ /*0x16090*/ u8 unk16090;
+ /*0x16091*/ u8 unk16091;
+ /*0x16092*/ u8 unk16092;
+ /*0x16093*/ u8 unk16093;
+ /*0x16094*/ u8 unk16094;
+ /*0x16095*/ u8 unk16095;
+ /*0x16096*/ u8 unk16096;
+ /*0x16097*/ u8 unk16097;
+ /*0x16098*/ u8 unk16098;
+ /*0x16099*/ u8 unk16099;
+ /*0x1609A*/ u8 unk1609a;
+ /*0x1609B*/ u8 unk1609b;
+ /*0x1609C*/ u8 unk1609C;
+ /*0x1609D*/ u8 unk1609D;
+ /*0x1609E*/ u8 unk1609E;
+ /*0x1609F*/ u8 unk1609F;
+ /*0x160A0*/ u8 unk160a0;
+ /*0x160A1*/ u8 AnimTargetsHit;
+ /*0x160A2*/ u8 expGetterBank;
+ /*0x160A3*/ u8 unk160A3;
+ /*0x160A4*/ u8 AnimArg1;
+ /*0x160A5*/ u8 AnimArg2;
+ /*0x160A6*/ u8 unk160A6;
+ /*0x160A7*/ u8 unk160A7;
+ /*0x160A8*/ u8 unk160A8;
+ /*0x160A9*/ u8 unk160A9;
+ /*0x160AA*/ u8 unk160Aa;
+ /*0x160AB*/ u8 unk160Ab;
+ /*0x160AC*/ u8 unk160AC;
+ /*0x160AD*/ u8 unk160AD;
+ /*0x160AE*/ u8 unk160AE;
+ /*0x160AF*/ u8 unk160AF;
+ /*0x160B0*/ u8 unk160B0;
+ /*0x160B1*/ u8 unk160B1;
+ /*0x160B2*/ u8 unk160B2;
+ /*0x160B3*/ u8 unk160B3;
+ /*0x160B4*/ u8 unk160B4;
+ /*0x160B5*/ u8 unk160B5;
+ /*0x160B6*/ u8 unk160B6;
+ /*0x160B7*/ u8 unk160B7;
+ /*0x160B8*/ u8 unk160B8;
+ /*0x160B9*/ u8 unk160B9;
+ /*0x160BA*/ u8 unk160Ba;
+ /*0x160BB*/ u8 unk160Bb;
+ /*0x160BC*/ u8 unk160BC;
+ /*0x160BD*/ u8 unk160BD;
+ /*0x160BE*/ u8 unk160BE;
+ /*0x160BF*/ u8 unk160BF;
+ /*0x160C0*/ u8 unk160C0;
+ /*0x160C1*/ u8 unk160C1;
+ /*0x160C2*/ u8 unk160C2;
+ /*0x160C3*/ u8 unk160C3;
+ /*0x160C4*/ u8 unk160C4;
+ /*0x160C5*/ u8 unk160C5;
+ /*0x160C6*/ u8 unk160C6;
+ /*0x160C7*/ u8 unk160C7;
+ /*0x160C8*/ u8 unk160C8;
+ /*0x160C9*/ u8 unk160C9;
+ /*0x160CA*/ u8 SynchroniseEffect;
+ /*0x160CB*/ u8 linkPlayerIndex;
+ /*0x160CC*/ u16 UsedHeldItems[4];
u8 filler2[0x72E];
- /* 0x16800 */ struct AI_ThinkingStruct ai; /* 0x2016800 */
- u8 filler1681C[0x1E4];
/* 0x16A00 */ struct UnkBattleStruct1 unk_2016A00_2;
};
-struct UnkBattleStruct4
+struct DisableStruct
{
/*0x00*/ u8 filler0[0x3];
- /*0x04*/ u16 unk4;
- /*0x06*/ u16 unk6;
- /*0x08*/ u8 unk8;
- /*0x09*/ u8 unk9;
- /*0x0A*/ u8 unkA;
+ /*0x04*/ u16 DisabledMove;
+ /*0x06*/ u16 EncoredMove;
+ /*0x08*/ u8 ProtectUses;
+ /*0x09*/ u8 StockpileCounter;
+ /*0x0A*/ u8 SubstituteHP;
u8 fillerB[4];
u8 unkF_0:4;
u8 unkF_4:4;
u8 filler10[3];
/*0x13*/ u8 taunt:4;
/*0x13*/ u8 unkC:4;
- /*0x14*/ u8 unk14;
- /*0x15*/ u8 unk15;
- /*0x16*/ u8 unk16;
- /*0x17*/ u8 filler17[0x4];
+ /*0x14*/ u8 BankPreventingEscape;
+ /*0x15*/ u8 BankWithSureHit;
+ /*0x16*/ u8 IsFirstTurn;
+ /*0x17*/ u8 unk17;
+ /*0x18*/ u8 TruantCounter;
+ /*0x19*/ u8 RechargeCounter;
+ /*0x1A*/ u8 unk1A[2];
};
-struct Struct30042E0
+struct BattleResults
{
- u8 unk0;
- u8 unk1;
- u8 unk2;
- u8 unk3;
- u8 unk4;
- u8 unk5_0:1;
- u8 unk5_1:1;
- u16 unk6;
- u8 unk8[10];
+ u8 PlayerFaintCounter; // 0x0
+ u8 OpponentFaintCounter; // 0x1
+ u8 unk2; // 0x2
+ u8 unk3; // 0x3
+ u8 unk4; // 0x4
+ u8 unk5_0:1; // 0x5
+ u8 unk5_1:1; // 0x5
+ u16 Poke1Species; // 0x6
+ u8 PokeString1[10]; // 0x8
u8 unk12;
- u8 unk13;
- u8 unk14[10];
+ u8 BattleTurnCounter; // 0x13
+ u8 PokeString2[10]; // 0x14
u8 filler1E[2];
- u16 unk20;
- u16 unk22;
- u16 unk24;
- u16 unk26;
- u16 unk28;
- u8 unk2A[10];
+ u16 LastOpponentSpecies; // 0x20
+ u16 LastUsedMove; // 0x22
+ u16 OpponentMove; // 0x24
+ u16 OpponentSpecies; // 0x26
+ u16 CaughtPoke; // 0x28
+ u8 CaughtNick[10]; // 0x2A
u8 filler34[2];
u8 unk36[10];
};
@@ -183,6 +425,7 @@ struct Struct2017810
u8 unk0_6:1;
u8 unk0_7:1;
u8 unk1_0:1;
+ u8 unk1_1:5;
u8 unk2;
u8 unk3;
u8 unk4;
@@ -208,8 +451,95 @@ struct Struct20238C8
u8 unk0_7:1;
};
+struct ProtectStruct
+{
+ /*field0*/
+ u32 Protected:1;
+ u32 Endured:1;
+ u32 OnlyStruggle:1;
+ u32 HelpingHand:1;
+ u32 BounceMove:1;
+ u32 StealMove:1;
+ u32 Flag0Unknown:1;
+ u32 PrlzImmobility:1;
+ /*field1*/
+ u32 ConfusionSelfDmg:1;
+ u32 NotEffective:1;
+ u32 ChargingTurn:1;
+ u32 FleeFlag:2; //for RunAway and Smoke Ball
+ u32 UsedImprisionedMove:1;
+ u32 LoveImmobility:1;
+ u32 UsedDisabledMove:1;
+ /*field2*/
+ u32 UsedTauntedMove:1;
+ u32 Flag2Unknown:1;
+ u32 FlinchImmobility:1;
+ u32 NotFirstStrike:1;
+ u32 Free : 4;
+ /*field3*/
+ u32 field3 : 8;
+ u32 PhysicalDmg;
+ u32 SpecialDmg;
+ u8 PhysicalBank;
+ u8 SpecialBank;
+ u16 fieldE;
+};
+
+struct SpecialStatus
+{
+ u8 statLowered : 1;
+ u8 lightningRodRedirected : 1;
+ u8 restoredBankSprite: 1;
+ u8 intimidatedPoke : 1;
+ u8 traced : 1;
+ u8 flag20 : 1;
+ u8 flag40 : 1;
+ u8 focusBanded : 1;
+ u8 field1[3];
+ u32 moveturnLostHP;
+ u32 moveturnlostHP_physical;
+ u32 moveturnLostHP_special;
+ u8 moveturnPhysicalBank;
+ u8 moveturnSpecialBank;
+ u8 field12;
+ u8 field13;
+};
+
+struct sideTimer
+{
+ u8 reflectTimer;
+ u8 reflectBank;
+ u8 lightscreenTimer;
+ u8 lightscreenBank;
+ u8 mistTimer;
+ u8 mistBank;
+ u8 safeguardTimer;
+ u8 safeguardBank;
+ u8 followmeTimer;
+ u8 followmeTarget;
+ u8 spikesAmount;
+ u8 fieldB;
+};
+
+struct WishFutureKnock
+{
+ u8 futureSightCounter[MAX_BANKS_BATTLE];
+ u8 futureSightAttacker[MAX_BANKS_BATTLE];
+ s32 futureSightDmg[MAX_BANKS_BATTLE];
+ u16 futureSightMove[MAX_BANKS_BATTLE];
+ u8 wishCounter[MAX_BANKS_BATTLE];
+ u8 wishUserBank[MAX_BANKS_BATTLE];
+ u8 weatherDuration;
+ u8 knockedOffPokes[2];
+};
+
extern struct UnkBattleStruct1 unk_2016A00;
-extern struct UnkBattleStruct4 gDisableStructs[];
+extern struct DisableStruct gDisableStructs[MAX_BANKS_BATTLE];
+extern struct BattleResults gBattleResults;
+extern struct ProtectStruct gProtectStructs[MAX_BANKS_BATTLE];
+extern struct SpecialStatus gSpecialStatuses[MAX_BANKS_BATTLE];
+extern struct sideTimer gSideTimer[2];
+extern struct WishFutureKnock gWishFutureKnock;
extern struct AI_ThinkingStruct gAIThinkingSpace;
extern struct Struct20238C8 gUnknown_020238C8;
@@ -260,7 +590,6 @@ void sub_8010800(void);
void sub_8010824(void);
void sub_8010874(void);
void bc_8012FAC(void);
-void bc_load_battlefield(void);
void sub_8011384(void);
void bc_801333C(void);
void bc_battle_begin_message(void);
@@ -297,8 +626,8 @@ u8 AbilityBattleEffects(u8, u8, u8, u8, u16);
u8 sub_801A02C();
// asm/battle_4.o
-void sub_801CAF8(u8, u8);
-void move_effectiveness_something(u16, u8, u8);
+void AI_CalcDmg(u8, u8);
+void TypeCalc(u16, u8, u8);
// asm/battle_5.o
void nullsub_91(void);
diff --git a/include/battle_tower.h b/include/battle_tower.h
index 193905b93..75ea405ab 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -3,5 +3,6 @@
void sub_8134AC0(void *);
u16 sub_8135D3C(u8);
+void sub_8135FF4(u8*);
#endif // GUARD_BATTLE_TOWER_H
diff --git a/include/data/pokemon/base_stats.h b/include/data/pokemon/base_stats.h
new file mode 100644
index 000000000..eadfbfe30
--- /dev/null
+++ b/include/data/pokemon/base_stats.h
@@ -0,0 +1,7823 @@
+//
+// Created by Scott Norton on 6/27/17.
+//
+
+#ifndef POKERUBY_BASE_STATS_H
+#define POKERUBY_BASE_STATS_H
+
+const struct BaseStats gBaseStats[] = {
+ { // ??????????
+ }, {
+ // Bulbasaur
+ 45, 49, 49, 45, 65, 65,
+ TYPE_GRASS,
+ TYPE_POISON,
+ 45, // catch rate
+ 64, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_GRASS,
+ ABILITY_OVERGROW,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Ivysaur
+ 60, 62, 63, 60, 80, 80,
+ TYPE_GRASS,
+ TYPE_POISON,
+ 45, // catch rate
+ 141, // base exp. yield
+ 0, 0, 0, 0, 1, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_GRASS,
+ ABILITY_OVERGROW,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Venusaur
+ 80, 82, 83, 80, 100, 100,
+ TYPE_GRASS,
+ TYPE_POISON,
+ 45, // catch rate
+ 208, // base exp. yield
+ 0, 0, 0, 0, 2, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_GRASS,
+ ABILITY_OVERGROW,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Charmander
+ 39, 52, 43, 65, 60, 50,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 45, // catch rate
+ 65, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_DRAGON,
+ ABILITY_BLAZE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Charmeleon
+ 58, 64, 58, 80, 80, 65,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 45, // catch rate
+ 142, // base exp. yield
+ 0, 0, 0, 1, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_DRAGON,
+ ABILITY_BLAZE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Charizard
+ 78, 84, 78, 100, 109, 85,
+ TYPE_FIRE,
+ TYPE_FLYING,
+ 45, // catch rate
+ 209, // base exp. yield
+ 0, 0, 0, 0, 3, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_DRAGON,
+ ABILITY_BLAZE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Squirtle
+ 44, 48, 65, 43, 50, 64,
+ TYPE_WATER,
+ TYPE_WATER,
+ 45, // catch rate
+ 66, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ ABILITY_TORRENT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Wartortle
+ 59, 63, 80, 58, 65, 80,
+ TYPE_WATER,
+ TYPE_WATER,
+ 45, // catch rate
+ 143, // base exp. yield
+ 0, 0, 1, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ ABILITY_TORRENT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Blastoise
+ 79, 83, 100, 78, 85, 105,
+ TYPE_WATER,
+ TYPE_WATER,
+ 45, // catch rate
+ 210, // base exp. yield
+ 0, 0, 0, 0, 0, 3,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ ABILITY_TORRENT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Caterpie
+ 45, 30, 35, 45, 20, 20,
+ TYPE_BUG,
+ TYPE_BUG,
+ 255, // catch rate
+ 53, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SHIELD_DUST,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Metapod
+ 50, 20, 55, 30, 25, 25,
+ TYPE_BUG,
+ TYPE_BUG,
+ 120, // catch rate
+ 72, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SHED_SKIN,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Butterfree
+ 60, 45, 50, 70, 80, 80,
+ TYPE_BUG,
+ TYPE_FLYING,
+ 45, // catch rate
+ 160, // base exp. yield
+ 0, 0, 0, 0, 2, 1,
+ ITEM_NONE,
+ ITEM_SILVER_POWDER,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_COMPOUND_EYES,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Weedle
+ 40, 35, 30, 50, 20, 20,
+ TYPE_BUG,
+ TYPE_POISON,
+ 255, // catch rate
+ 52, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SHIELD_DUST,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Kakuna
+ 45, 25, 50, 35, 25, 25,
+ TYPE_BUG,
+ TYPE_POISON,
+ 120, // catch rate
+ 71, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SHED_SKIN,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Beedrill
+ 65, 80, 40, 75, 45, 80,
+ TYPE_BUG,
+ TYPE_POISON,
+ 45, // catch rate
+ 159, // base exp. yield
+ 0, 2, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_POISON_BARB,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SWARM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Pidgey
+ 40, 45, 40, 56, 35, 35,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 255, // catch rate
+ 55, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_KEEN_EYE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Pidgeotto
+ 63, 60, 55, 71, 50, 50,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 120, // catch rate
+ 113, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_KEEN_EYE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Pidgeot
+ 83, 80, 75, 91, 70, 70,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 45, // catch rate
+ 172, // base exp. yield
+ 0, 0, 0, 3, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_KEEN_EYE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Rattata
+ 30, 56, 35, 72, 25, 35,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 255, // catch rate
+ 57, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_RUN_AWAY,
+ ABILITY_GUTS,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Raticate
+ 55, 81, 60, 97, 50, 70,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 127, // catch rate
+ 116, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_RUN_AWAY,
+ ABILITY_GUTS,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Spearow
+ 40, 60, 30, 70, 31, 31,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 255, // catch rate
+ 58, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_KEEN_EYE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Fearow
+ 65, 90, 65, 100, 61, 61,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 90, // catch rate
+ 162, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_SHARP_BEAK,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_KEEN_EYE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Ekans
+ 35, 60, 44, 55, 40, 54,
+ TYPE_POISON,
+ TYPE_POISON,
+ 255, // catch rate
+ 62, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_DRAGON,
+ ABILITY_INTIMIDATE,
+ ABILITY_SHED_SKIN,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Arbok
+ 60, 85, 69, 80, 65, 79,
+ TYPE_POISON,
+ TYPE_POISON,
+ 90, // catch rate
+ 147, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_DRAGON,
+ ABILITY_INTIMIDATE,
+ ABILITY_SHED_SKIN,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Pikachu
+ 35, 55, 30, 90, 50, 40,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 190, // catch rate
+ 82, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_ORAN_BERRY,
+ ITEM_LIGHT_BALL,
+ 127, // gender
+ 10, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FAIRY,
+ ABILITY_STATIC,
+ ABILITY_NONE,
+ 6, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Raichu
+ 60, 90, 55, 100, 90, 80,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 75, // catch rate
+ 122, // base exp. yield
+ 0, 0, 0, 3, 0, 0,
+ ITEM_NONE,
+ ITEM_ORAN_BERRY,
+ 127, // gender
+ 10, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FAIRY,
+ ABILITY_STATIC,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Sandshrew
+ 50, 75, 85, 40, 20, 30,
+ TYPE_GROUND,
+ TYPE_GROUND,
+ 255, // catch rate
+ 93, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_QUICK_CLAW,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_SAND_VEIL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Sandslash
+ 75, 100, 110, 65, 45, 55,
+ TYPE_GROUND,
+ TYPE_GROUND,
+ 90, // catch rate
+ 163, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_QUICK_CLAW,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_SAND_VEIL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Nidoran♀
+ 55, 47, 52, 41, 40, 40,
+ TYPE_POISON,
+ TYPE_POISON,
+ 235, // catch rate
+ 59, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 254, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_FIELD,
+ ABILITY_POISON_POINT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Nidorina
+ 70, 62, 67, 56, 55, 55,
+ TYPE_POISON,
+ TYPE_POISON,
+ 120, // catch rate
+ 117, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 254, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_POISON_POINT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Nidoqueen
+ 90, 82, 87, 76, 75, 85,
+ TYPE_POISON,
+ TYPE_GROUND,
+ 45, // catch rate
+ 194, // base exp. yield
+ 3, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 254, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_POISON_POINT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Nidoran♂
+ 46, 57, 40, 50, 40, 40,
+ TYPE_POISON,
+ TYPE_POISON,
+ 235, // catch rate
+ 60, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 0, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_FIELD,
+ ABILITY_POISON_POINT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Nidorino
+ 61, 72, 57, 65, 55, 55,
+ TYPE_POISON,
+ TYPE_POISON,
+ 120, // catch rate
+ 118, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 0, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_FIELD,
+ ABILITY_POISON_POINT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Nidoking
+ 81, 92, 77, 85, 85, 75,
+ TYPE_POISON,
+ TYPE_GROUND,
+ 45, // catch rate
+ 195, // base exp. yield
+ 0, 3, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 0, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_FIELD,
+ ABILITY_POISON_POINT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Clefairy
+ 70, 45, 48, 35, 60, 65,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 150, // catch rate
+ 68, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_LEPPA_BERRY,
+ ITEM_MOON_STONE,
+ 191, // gender
+ 10, // egg cycles
+ 140, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_FAIRY,
+ ABILITY_CUTE_CHARM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Clefable
+ 95, 70, 73, 60, 85, 90,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 25, // catch rate
+ 129, // base exp. yield
+ 3, 0, 0, 0, 0, 0,
+ ITEM_LEPPA_BERRY,
+ ITEM_MOON_STONE,
+ 191, // gender
+ 10, // egg cycles
+ 140, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_FAIRY,
+ ABILITY_CUTE_CHARM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Vulpix
+ 38, 41, 40, 65, 50, 65,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 190, // catch rate
+ 63, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_RAWST_BERRY,
+ ITEM_RAWST_BERRY,
+ 191, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_FLASH_FIRE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Ninetales
+ 73, 76, 75, 100, 81, 100,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 75, // catch rate
+ 178, // base exp. yield
+ 0, 0, 0, 1, 0, 1,
+ ITEM_RAWST_BERRY,
+ ITEM_RAWST_BERRY,
+ 191, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_FLASH_FIRE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Jigglypuff
+ 115, 45, 20, 20, 45, 25,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 170, // catch rate
+ 76, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 191, // gender
+ 10, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_FAIRY,
+ ABILITY_CUTE_CHARM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Wigglytuff
+ 140, 70, 45, 45, 75, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 50, // catch rate
+ 109, // base exp. yield
+ 3, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 191, // gender
+ 10, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_FAIRY,
+ ABILITY_CUTE_CHARM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Zubat
+ 40, 45, 35, 55, 30, 40,
+ TYPE_POISON,
+ TYPE_FLYING,
+ 255, // catch rate
+ 54, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_INNER_FOCUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Golbat
+ 75, 80, 70, 90, 65, 75,
+ TYPE_POISON,
+ TYPE_FLYING,
+ 90, // catch rate
+ 171, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_INNER_FOCUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Oddish
+ 45, 50, 55, 30, 75, 65,
+ TYPE_GRASS,
+ TYPE_POISON,
+ 255, // catch rate
+ 78, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 4, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Gloom
+ 60, 65, 70, 40, 85, 75,
+ TYPE_GRASS,
+ TYPE_POISON,
+ 120, // catch rate
+ 132, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 6, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Vileplume
+ 75, 80, 85, 50, 100, 90,
+ TYPE_GRASS,
+ TYPE_POISON,
+ 45, // catch rate
+ 184, // base exp. yield
+ 0, 0, 0, 0, 3, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Paras
+ 35, 70, 55, 25, 45, 55,
+ TYPE_BUG,
+ TYPE_GRASS,
+ 190, // catch rate
+ 70, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_TINY_MUSHROOM,
+ ITEM_BIG_MUSHROOM,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_GRASS,
+ ABILITY_EFFECT_SPORE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Parasect
+ 60, 95, 80, 30, 60, 80,
+ TYPE_BUG,
+ TYPE_GRASS,
+ 75, // catch rate
+ 128, // base exp. yield
+ 0, 2, 1, 0, 0, 0,
+ ITEM_TINY_MUSHROOM,
+ ITEM_BIG_MUSHROOM,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_GRASS,
+ ABILITY_EFFECT_SPORE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Venonat
+ 60, 55, 50, 45, 40, 55,
+ TYPE_BUG,
+ TYPE_POISON,
+ 190, // catch rate
+ 75, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_COMPOUND_EYES,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Venomoth
+ 70, 65, 60, 90, 90, 75,
+ TYPE_BUG,
+ TYPE_POISON,
+ 75, // catch rate
+ 138, // base exp. yield
+ 0, 0, 0, 1, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SHIELD_DUST,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Diglett
+ 10, 55, 25, 95, 35, 45,
+ TYPE_GROUND,
+ TYPE_GROUND,
+ 255, // catch rate
+ 81, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_SAND_VEIL,
+ ABILITY_ARENA_TRAP,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Dugtrio
+ 35, 80, 50, 120, 50, 70,
+ TYPE_GROUND,
+ TYPE_GROUND,
+ 50, // catch rate
+ 153, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_SAND_VEIL,
+ ABILITY_ARENA_TRAP,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Meowth
+ 40, 45, 35, 90, 40, 40,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 255, // catch rate
+ 69, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_PICKUP,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Persian
+ 65, 70, 60, 115, 65, 65,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 90, // catch rate
+ 148, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_LIMBER,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Psyduck
+ 50, 52, 48, 55, 65, 50,
+ TYPE_WATER,
+ TYPE_WATER,
+ 190, // catch rate
+ 80, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FIELD,
+ ABILITY_DAMP,
+ ABILITY_CLOUD_NINE,
+ 6, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Golduck
+ 80, 82, 78, 85, 95, 80,
+ TYPE_WATER,
+ TYPE_WATER,
+ 75, // catch rate
+ 174, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FIELD,
+ ABILITY_DAMP,
+ ABILITY_CLOUD_NINE,
+ 8, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Mankey
+ 40, 80, 35, 70, 35, 45,
+ TYPE_FIGHTING,
+ TYPE_FIGHTING,
+ 190, // catch rate
+ 74, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_VITAL_SPIRIT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Primeape
+ 65, 105, 60, 95, 60, 70,
+ TYPE_FIGHTING,
+ TYPE_FIGHTING,
+ 75, // catch rate
+ 149, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_VITAL_SPIRIT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Growlithe
+ 55, 70, 45, 60, 70, 50,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 190, // catch rate
+ 91, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_RAWST_BERRY,
+ ITEM_RAWST_BERRY,
+ 63, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_INTIMIDATE,
+ ABILITY_FLASH_FIRE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Arcanine
+ 90, 110, 80, 95, 100, 80,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 75, // catch rate
+ 213, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_RAWST_BERRY,
+ ITEM_RAWST_BERRY,
+ 63, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_INTIMIDATE,
+ ABILITY_FLASH_FIRE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Poliwag
+ 40, 50, 40, 90, 40, 40,
+ TYPE_WATER,
+ TYPE_WATER,
+ 255, // catch rate
+ 77, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_1,
+ ABILITY_WATER_ABSORB,
+ ABILITY_DAMP,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE, TRUE
+ }, { // Poliwhirl
+ 65, 65, 65, 90, 50, 50,
+ TYPE_WATER,
+ TYPE_WATER,
+ 120, // catch rate
+ 131, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_KINGS_ROCK,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_1,
+ ABILITY_WATER_ABSORB,
+ ABILITY_DAMP,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE, TRUE
+ }, { // Poliwrath
+ 90, 85, 95, 70, 70, 90,
+ TYPE_WATER,
+ TYPE_FIGHTING,
+ 45, // catch rate
+ 185, // base exp. yield
+ 0, 0, 3, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_KINGS_ROCK,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_1,
+ ABILITY_WATER_ABSORB,
+ ABILITY_DAMP,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE, TRUE
+ }, { // Abra
+ 25, 20, 15, 90, 105, 55,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 200, // catch rate
+ 73, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_TWISTED_SPOON,
+ 63, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_SYNCHRONIZE,
+ ABILITY_INNER_FOCUS,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Kadabra
+ 40, 35, 30, 105, 120, 70,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 100, // catch rate
+ 145, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_TWISTED_SPOON,
+ 63, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_SYNCHRONIZE,
+ ABILITY_INNER_FOCUS,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Alakazam
+ 55, 50, 45, 120, 135, 85,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 50, // catch rate
+ 186, // base exp. yield
+ 0, 0, 0, 0, 3, 0,
+ ITEM_NONE,
+ ITEM_TWISTED_SPOON,
+ 63, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_SYNCHRONIZE,
+ ABILITY_INNER_FOCUS,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Machop
+ 70, 80, 50, 35, 35, 35,
+ TYPE_FIGHTING,
+ TYPE_FIGHTING,
+ 180, // catch rate
+ 88, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 63, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_GUTS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Machoke
+ 80, 100, 70, 45, 50, 60,
+ TYPE_FIGHTING,
+ TYPE_FIGHTING,
+ 90, // catch rate
+ 146, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 63, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_GUTS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Machamp
+ 90, 130, 80, 55, 65, 85,
+ TYPE_FIGHTING,
+ TYPE_FIGHTING,
+ 45, // catch rate
+ 193, // base exp. yield
+ 0, 3, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 63, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_GUTS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Bellsprout
+ 50, 75, 35, 40, 70, 30,
+ TYPE_GRASS,
+ TYPE_POISON,
+ 255, // catch rate
+ 84, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Weepinbell
+ 65, 90, 50, 55, 85, 45,
+ TYPE_GRASS,
+ TYPE_POISON,
+ 120, // catch rate
+ 151, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Victreebel
+ 80, 105, 65, 70, 100, 60,
+ TYPE_GRASS,
+ TYPE_POISON,
+ 45, // catch rate
+ 191, // base exp. yield
+ 0, 3, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Tentacool
+ 40, 40, 35, 70, 50, 100,
+ TYPE_WATER,
+ TYPE_POISON,
+ 190, // catch rate
+ 105, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_WATER_3,
+ ABILITY_CLEAR_BODY,
+ ABILITY_LIQUID_OOZE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Tentacruel
+ 80, 70, 65, 100, 80, 120,
+ TYPE_WATER,
+ TYPE_POISON,
+ 60, // catch rate
+ 205, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_WATER_3,
+ ABILITY_CLEAR_BODY,
+ ABILITY_LIQUID_OOZE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Geodude
+ 40, 80, 100, 20, 30, 30,
+ TYPE_ROCK,
+ TYPE_GROUND,
+ 255, // catch rate
+ 86, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_EVERSTONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_ROCK_HEAD,
+ ABILITY_STURDY,
+ 4, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Graveler
+ 55, 95, 115, 35, 45, 45,
+ TYPE_ROCK,
+ TYPE_GROUND,
+ 120, // catch rate
+ 134, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_EVERSTONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_ROCK_HEAD,
+ ABILITY_STURDY,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Golem
+ 80, 110, 130, 45, 55, 65,
+ TYPE_ROCK,
+ TYPE_GROUND,
+ 45, // catch rate
+ 177, // base exp. yield
+ 0, 0, 3, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_EVERSTONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_ROCK_HEAD,
+ ABILITY_STURDY,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Ponyta
+ 50, 85, 55, 90, 65, 65,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 190, // catch rate
+ 152, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_RUN_AWAY,
+ ABILITY_FLASH_FIRE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Rapidash
+ 65, 100, 70, 105, 80, 80,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 60, // catch rate
+ 192, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_RUN_AWAY,
+ ABILITY_FLASH_FIRE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Slowpoke
+ 90, 65, 65, 15, 40, 40,
+ TYPE_WATER,
+ TYPE_PSYCHIC,
+ 190, // catch rate
+ 99, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_KINGS_ROCK,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ ABILITY_OBLIVIOUS,
+ ABILITY_OWN_TEMPO,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Slowbro
+ 95, 75, 110, 30, 100, 80,
+ TYPE_WATER,
+ TYPE_PSYCHIC,
+ 75, // catch rate
+ 164, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_KINGS_ROCK,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ ABILITY_OBLIVIOUS,
+ ABILITY_OWN_TEMPO,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Magnemite
+ 25, 35, 70, 45, 95, 55,
+ TYPE_ELECTRIC,
+ TYPE_STEEL,
+ 190, // catch rate
+ 89, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_METAL_COAT,
+ 255, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_MAGNET_PULL,
+ ABILITY_STURDY,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Magneton
+ 50, 60, 95, 70, 120, 70,
+ TYPE_ELECTRIC,
+ TYPE_STEEL,
+ 60, // catch rate
+ 161, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_METAL_COAT,
+ 255, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_MAGNET_PULL,
+ ABILITY_STURDY,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Farfetch'd
+ 52, 65, 55, 60, 58, 62,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 45, // catch rate
+ 94, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_STICK,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FIELD,
+ ABILITY_KEEN_EYE,
+ ABILITY_INNER_FOCUS,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Doduo
+ 35, 85, 45, 75, 35, 35,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 190, // catch rate
+ 96, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_SHARP_BEAK,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_RUN_AWAY,
+ ABILITY_EARLY_BIRD,
+ 8, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Dodrio
+ 60, 110, 70, 100, 60, 60,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 45, // catch rate
+ 158, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_SHARP_BEAK,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_RUN_AWAY,
+ ABILITY_EARLY_BIRD,
+ 10, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Seel
+ 65, 45, 55, 45, 45, 70,
+ TYPE_WATER,
+ TYPE_WATER,
+ 190, // catch rate
+ 100, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FIELD,
+ ABILITY_THICK_FAT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Dewgong
+ 90, 70, 80, 70, 70, 95,
+ TYPE_WATER,
+ TYPE_ICE,
+ 75, // catch rate
+ 176, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FIELD,
+ ABILITY_THICK_FAT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Grimer
+ 80, 80, 50, 25, 40, 50,
+ TYPE_POISON,
+ TYPE_POISON,
+ 190, // catch rate
+ 90, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NUGGET,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_STENCH,
+ ABILITY_STICKY_HOLD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Muk
+ 105, 105, 75, 50, 65, 100,
+ TYPE_POISON,
+ TYPE_POISON,
+ 75, // catch rate
+ 157, // base exp. yield
+ 1, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NUGGET,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_STENCH,
+ ABILITY_STICKY_HOLD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Shellder
+ 30, 65, 100, 40, 45, 25,
+ TYPE_WATER,
+ TYPE_WATER,
+ 190, // catch rate
+ 97, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_PEARL,
+ ITEM_BIG_PEARL,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_WATER_3,
+ ABILITY_SHELL_ARMOR,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Cloyster
+ 50, 95, 180, 70, 85, 45,
+ TYPE_WATER,
+ TYPE_ICE,
+ 60, // catch rate
+ 203, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_PEARL,
+ ITEM_BIG_PEARL,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_WATER_3,
+ ABILITY_SHELL_ARMOR,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Gastly
+ 30, 35, 30, 80, 100, 35,
+ TYPE_GHOST,
+ TYPE_POISON,
+ 190, // catch rate
+ 95, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Haunter
+ 45, 50, 45, 95, 115, 55,
+ TYPE_GHOST,
+ TYPE_POISON,
+ 90, // catch rate
+ 126, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Gengar
+ 60, 65, 60, 110, 130, 75,
+ TYPE_GHOST,
+ TYPE_POISON,
+ 45, // catch rate
+ 190, // base exp. yield
+ 0, 0, 0, 0, 3, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Onix
+ 35, 45, 160, 70, 30, 45,
+ TYPE_ROCK,
+ TYPE_GROUND,
+ 45, // catch rate
+ 108, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_ROCK_HEAD,
+ ABILITY_STURDY,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Drowzee
+ 60, 48, 45, 42, 43, 90,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 190, // catch rate
+ 102, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_INSOMNIA,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Hypno
+ 85, 73, 70, 67, 73, 115,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 75, // catch rate
+ 165, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_INSOMNIA,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Krabby
+ 30, 105, 90, 50, 25, 25,
+ TYPE_WATER,
+ TYPE_WATER,
+ 225, // catch rate
+ 115, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_WATER_3,
+ ABILITY_HYPER_CUTTER,
+ ABILITY_SHELL_ARMOR,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Kingler
+ 55, 130, 115, 75, 50, 50,
+ TYPE_WATER,
+ TYPE_WATER,
+ 60, // catch rate
+ 206, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_WATER_3,
+ ABILITY_HYPER_CUTTER,
+ ABILITY_SHELL_ARMOR,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED, TRUE
+ }, { // Voltorb
+ 40, 30, 50, 100, 55, 55,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 190, // catch rate
+ 103, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_SOUNDPROOF,
+ ABILITY_STATIC,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Electrode
+ 60, 50, 70, 140, 80, 80,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 60, // catch rate
+ 150, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_SOUNDPROOF,
+ ABILITY_STATIC,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Exeggcute
+ 60, 40, 80, 40, 60, 45,
+ TYPE_GRASS,
+ TYPE_PSYCHIC,
+ 90, // catch rate
+ 98, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Exeggutor
+ 95, 95, 85, 55, 125, 65,
+ TYPE_GRASS,
+ TYPE_PSYCHIC,
+ 45, // catch rate
+ 212, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Cubone
+ 50, 50, 95, 35, 40, 50,
+ TYPE_GROUND,
+ TYPE_GROUND,
+ 190, // catch rate
+ 87, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_THICK_CLUB,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_MONSTER,
+ ABILITY_ROCK_HEAD,
+ ABILITY_LIGHTNING_ROD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Marowak
+ 60, 80, 110, 45, 50, 80,
+ TYPE_GROUND,
+ TYPE_GROUND,
+ 75, // catch rate
+ 124, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_THICK_CLUB,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_MONSTER,
+ ABILITY_ROCK_HEAD,
+ ABILITY_LIGHTNING_ROD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Hitmonlee
+ 50, 120, 53, 87, 35, 110,
+ TYPE_FIGHTING,
+ TYPE_FIGHTING,
+ 45, // catch rate
+ 139, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 0, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_LIMBER,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Hitmonchan
+ 50, 105, 79, 76, 35, 110,
+ TYPE_FIGHTING,
+ TYPE_FIGHTING,
+ 45, // catch rate
+ 140, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 0, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_KEEN_EYE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Lickitung
+ 90, 55, 75, 30, 60, 75,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 45, // catch rate
+ 127, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_MONSTER,
+ ABILITY_OWN_TEMPO,
+ ABILITY_OBLIVIOUS,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Koffing
+ 40, 65, 95, 35, 60, 45,
+ TYPE_POISON,
+ TYPE_POISON,
+ 190, // catch rate
+ 114, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_SMOKE_BALL,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Weezing
+ 65, 90, 120, 60, 85, 70,
+ TYPE_POISON,
+ TYPE_POISON,
+ 60, // catch rate
+ 173, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_SMOKE_BALL,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Rhyhorn
+ 80, 85, 95, 25, 30, 30,
+ TYPE_GROUND,
+ TYPE_ROCK,
+ 120, // catch rate
+ 135, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_FIELD,
+ ABILITY_LIGHTNING_ROD,
+ ABILITY_ROCK_HEAD,
+ 4, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Rhydon
+ 105, 130, 120, 40, 45, 45,
+ TYPE_GROUND,
+ TYPE_ROCK,
+ 60, // catch rate
+ 204, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_FIELD,
+ ABILITY_LIGHTNING_ROD,
+ ABILITY_ROCK_HEAD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Chansey
+ 250, 5, 5, 50, 35, 105,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 30, // catch rate
+ 255, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_LUCKY_EGG,
+ 254, // gender
+ 40, // egg cycles
+ 140, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_FAIRY,
+ ABILITY_NATURAL_CURE,
+ ABILITY_SERENE_GRACE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Tangela
+ 65, 55, 115, 60, 100, 40,
+ TYPE_GRASS,
+ TYPE_GRASS,
+ 45, // catch rate
+ 166, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Kangaskhan
+ 105, 95, 80, 90, 40, 80,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 45, // catch rate
+ 175, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 254, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_MONSTER,
+ ABILITY_EARLY_BIRD,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Horsea
+ 30, 40, 70, 60, 70, 25,
+ TYPE_WATER,
+ TYPE_WATER,
+ 225, // catch rate
+ 83, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_DRAGON_SCALE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_DRAGON,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Seadra
+ 55, 65, 95, 85, 95, 45,
+ TYPE_WATER,
+ TYPE_WATER,
+ 75, // catch rate
+ 155, // base exp. yield
+ 0, 0, 1, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_DRAGON_SCALE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_DRAGON,
+ ABILITY_POISON_POINT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Goldeen
+ 45, 67, 60, 63, 35, 50,
+ TYPE_WATER,
+ TYPE_WATER,
+ 225, // catch rate
+ 111, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_WATER_2,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_WATER_VEIL,
+ 4, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Seaking
+ 80, 92, 65, 68, 65, 80,
+ TYPE_WATER,
+ TYPE_WATER,
+ 60, // catch rate
+ 170, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_WATER_2,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_WATER_VEIL,
+ 6, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Staryu
+ 30, 45, 55, 85, 70, 55,
+ TYPE_WATER,
+ TYPE_WATER,
+ 225, // catch rate
+ 106, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_STARDUST,
+ ITEM_STAR_PIECE,
+ 255, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_WATER_3,
+ ABILITY_ILLUMINATE,
+ ABILITY_NATURAL_CURE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Starmie
+ 60, 75, 85, 115, 100, 85,
+ TYPE_WATER,
+ TYPE_PSYCHIC,
+ 60, // catch rate
+ 207, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_STARDUST,
+ ITEM_STAR_PIECE,
+ 255, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_WATER_3,
+ ABILITY_ILLUMINATE,
+ ABILITY_NATURAL_CURE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Mr. mime
+ 40, 45, 65, 90, 100, 120,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 45, // catch rate
+ 136, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_LEPPA_BERRY,
+ 127, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_SOUNDPROOF,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Scyther
+ 70, 110, 80, 105, 55, 80,
+ TYPE_BUG,
+ TYPE_FLYING,
+ 45, // catch rate
+ 187, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SWARM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Jynx
+ 65, 50, 35, 95, 115, 95,
+ TYPE_ICE,
+ TYPE_PSYCHIC,
+ 45, // catch rate
+ 137, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_ASPEAR_BERRY,
+ ITEM_ASPEAR_BERRY,
+ 254, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_OBLIVIOUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Electabuzz
+ 65, 83, 57, 105, 95, 85,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 45, // catch rate
+ 156, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 63, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_STATIC,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW, TRUE
+ }, { // Magmar
+ 65, 95, 57, 93, 100, 85,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 45, // catch rate
+ 167, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_RAWST_BERRY,
+ ITEM_RAWST_BERRY,
+ 63, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_FLAME_BODY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Pinsir
+ 65, 125, 100, 85, 55, 70,
+ TYPE_BUG,
+ TYPE_BUG,
+ 45, // catch rate
+ 200, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_HYPER_CUTTER,
+ ABILITY_NONE,
+ 8, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Tauros
+ 75, 100, 95, 110, 40, 70,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 45, // catch rate
+ 211, // base exp. yield
+ 0, 1, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 0, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_INTIMIDATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Magikarp
+ 20, 10, 55, 80, 15, 20,
+ TYPE_WATER,
+ TYPE_WATER,
+ 255, // catch rate
+ 20, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 5, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_DRAGON,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_NONE,
+ 4, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Gyarados
+ 95, 125, 79, 81, 60, 100,
+ TYPE_WATER,
+ TYPE_FLYING,
+ 45, // catch rate
+ 214, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 5, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_DRAGON,
+ ABILITY_INTIMIDATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Lapras
+ 130, 85, 80, 60, 85, 95,
+ TYPE_WATER,
+ TYPE_ICE,
+ 45, // catch rate
+ 219, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 40, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ ABILITY_WATER_ABSORB,
+ ABILITY_SHELL_ARMOR,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Ditto
+ 48, 48, 48, 48, 48, 48,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 35, // catch rate
+ 61, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_METAL_POWDER,
+ 255, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_DITTO,
+ EGG_GROUP_DITTO,
+ ABILITY_LIMBER,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Eevee
+ 55, 55, 50, 55, 45, 65,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 45, // catch rate
+ 92, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 35, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_RUN_AWAY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Vaporeon
+ 130, 65, 60, 65, 110, 95,
+ TYPE_WATER,
+ TYPE_WATER,
+ 45, // catch rate
+ 196, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 35, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_WATER_ABSORB,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Jolteon
+ 65, 65, 60, 130, 110, 95,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 45, // catch rate
+ 197, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 35, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_VOLT_ABSORB,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Flareon
+ 65, 130, 60, 65, 95, 110,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 45, // catch rate
+ 198, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 35, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_FLASH_FIRE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Porygon
+ 65, 60, 70, 40, 85, 75,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 45, // catch rate
+ 130, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_TRACE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Omanyte
+ 35, 40, 100, 35, 90, 55,
+ TYPE_ROCK,
+ TYPE_WATER,
+ 45, // catch rate
+ 120, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 30, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_3,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_SHELL_ARMOR,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Omastar
+ 70, 60, 125, 55, 115, 70,
+ TYPE_ROCK,
+ TYPE_WATER,
+ 45, // catch rate
+ 199, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 30, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_3,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_SHELL_ARMOR,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Kabuto
+ 30, 80, 90, 55, 55, 45,
+ TYPE_ROCK,
+ TYPE_WATER,
+ 45, // catch rate
+ 119, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 30, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_3,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_BATTLE_ARMOR,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Kabutops
+ 60, 115, 105, 80, 65, 70,
+ TYPE_ROCK,
+ TYPE_WATER,
+ 45, // catch rate
+ 201, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 30, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_3,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_BATTLE_ARMOR,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Aerodactyl
+ 80, 105, 65, 130, 60, 75,
+ TYPE_ROCK,
+ TYPE_FLYING,
+ 45, // catch rate
+ 202, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 35, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_ROCK_HEAD,
+ ABILITY_PRESSURE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Snorlax
+ 160, 110, 65, 30, 65, 110,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 25, // catch rate
+ 154, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_LEFTOVERS,
+ ITEM_LEFTOVERS,
+ 31, // gender
+ 40, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_MONSTER,
+ ABILITY_IMMUNITY,
+ ABILITY_THICK_FAT,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // Articuno
+ 90, 85, 100, 85, 95, 125,
+ TYPE_ICE,
+ TYPE_FLYING,
+ 3, // catch rate
+ 215, // base exp. yield
+ 0, 0, 0, 0, 0, 3,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 80, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_PRESSURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Zapdos
+ 90, 90, 85, 100, 125, 90,
+ TYPE_ELECTRIC,
+ TYPE_FLYING,
+ 3, // catch rate
+ 216, // base exp. yield
+ 0, 0, 0, 0, 3, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 80, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_PRESSURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Moltres
+ 90, 100, 90, 90, 125, 85,
+ TYPE_FIRE,
+ TYPE_FLYING,
+ 3, // catch rate
+ 217, // base exp. yield
+ 0, 0, 0, 0, 3, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 80, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_PRESSURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Dratini
+ 41, 64, 45, 50, 50, 50,
+ TYPE_DRAGON,
+ TYPE_DRAGON,
+ 45, // catch rate
+ 67, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_DRAGON_SCALE,
+ 127, // gender
+ 40, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_DRAGON,
+ ABILITY_SHED_SKIN,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Dragonair
+ 61, 84, 65, 70, 70, 70,
+ TYPE_DRAGON,
+ TYPE_DRAGON,
+ 45, // catch rate
+ 144, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_DRAGON_SCALE,
+ 127, // gender
+ 40, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_DRAGON,
+ ABILITY_SHED_SKIN,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Dragonite
+ 91, 134, 95, 80, 100, 100,
+ TYPE_DRAGON,
+ TYPE_FLYING,
+ 45, // catch rate
+ 218, // base exp. yield
+ 0, 3, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_DRAGON_SCALE,
+ 127, // gender
+ 40, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_DRAGON,
+ ABILITY_INNER_FOCUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Mewtwo
+ 106, 110, 90, 130, 154, 90,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 3, // catch rate
+ 220, // base exp. yield
+ 0, 0, 0, 0, 3, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_PRESSURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Mew
+ 100, 100, 100, 100, 100, 100,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 45, // catch rate
+ 64, // base exp. yield
+ 3, 0, 0, 0, 0, 0,
+ ITEM_LUM_BERRY,
+ ITEM_LUM_BERRY,
+ 255, // gender
+ 120, // egg cycles
+ 100, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_SYNCHRONIZE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Chikorita
+ 45, 49, 65, 45, 49, 65,
+ TYPE_GRASS,
+ TYPE_GRASS,
+ 45, // catch rate
+ 64, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_GRASS,
+ ABILITY_OVERGROW,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Bayleef
+ 60, 62, 80, 60, 63, 80,
+ TYPE_GRASS,
+ TYPE_GRASS,
+ 45, // catch rate
+ 141, // base exp. yield
+ 0, 0, 1, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_GRASS,
+ ABILITY_OVERGROW,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Meganium
+ 80, 82, 100, 80, 83, 100,
+ TYPE_GRASS,
+ TYPE_GRASS,
+ 45, // catch rate
+ 208, // base exp. yield
+ 0, 0, 1, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_GRASS,
+ ABILITY_OVERGROW,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Cyndaquil
+ 39, 52, 43, 65, 60, 50,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 45, // catch rate
+ 65, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_BLAZE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Quilava
+ 58, 64, 58, 80, 80, 65,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 45, // catch rate
+ 142, // base exp. yield
+ 0, 0, 0, 1, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_BLAZE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Typhlosion
+ 78, 84, 78, 100, 109, 85,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 45, // catch rate
+ 209, // base exp. yield
+ 0, 0, 0, 0, 3, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_BLAZE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Totodile
+ 50, 65, 64, 43, 44, 48,
+ TYPE_WATER,
+ TYPE_WATER,
+ 45, // catch rate
+ 66, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ ABILITY_TORRENT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Croconaw
+ 65, 80, 80, 58, 59, 63,
+ TYPE_WATER,
+ TYPE_WATER,
+ 45, // catch rate
+ 143, // base exp. yield
+ 0, 1, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ ABILITY_TORRENT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE, TRUE
+ }, { // Feraligatr
+ 85, 105, 100, 78, 79, 83,
+ TYPE_WATER,
+ TYPE_WATER,
+ 45, // catch rate
+ 210, // base exp. yield
+ 0, 2, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ ABILITY_TORRENT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Sentret
+ 35, 46, 34, 20, 35, 45,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 255, // catch rate
+ 57, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_ORAN_BERRY,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_RUN_AWAY,
+ ABILITY_KEEN_EYE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Furret
+ 85, 76, 64, 90, 45, 55,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 90, // catch rate
+ 116, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_ORAN_BERRY,
+ ITEM_SITRUS_BERRY,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_RUN_AWAY,
+ ABILITY_KEEN_EYE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Hoothoot
+ 60, 30, 30, 50, 36, 56,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 255, // catch rate
+ 58, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_INSOMNIA,
+ ABILITY_KEEN_EYE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Noctowl
+ 100, 50, 50, 70, 76, 96,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 90, // catch rate
+ 162, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_INSOMNIA,
+ ABILITY_KEEN_EYE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Ledyba
+ 40, 20, 30, 55, 40, 80,
+ TYPE_BUG,
+ TYPE_FLYING,
+ 255, // catch rate
+ 54, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SWARM,
+ ABILITY_EARLY_BIRD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Ledian
+ 55, 35, 50, 85, 55, 110,
+ TYPE_BUG,
+ TYPE_FLYING,
+ 90, // catch rate
+ 134, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SWARM,
+ ABILITY_EARLY_BIRD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Spinarak
+ 40, 60, 40, 30, 40, 40,
+ TYPE_BUG,
+ TYPE_POISON,
+ 255, // catch rate
+ 54, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SWARM,
+ ABILITY_INSOMNIA,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Ariados
+ 70, 90, 70, 40, 60, 60,
+ TYPE_BUG,
+ TYPE_POISON,
+ 90, // catch rate
+ 134, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SWARM,
+ ABILITY_INSOMNIA,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Crobat
+ 85, 90, 80, 130, 70, 80,
+ TYPE_POISON,
+ TYPE_FLYING,
+ 90, // catch rate
+ 204, // base exp. yield
+ 0, 0, 0, 3, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_INNER_FOCUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Chinchou
+ 75, 38, 38, 67, 56, 56,
+ TYPE_WATER,
+ TYPE_ELECTRIC,
+ 190, // catch rate
+ 90, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_YELLOW_SHARD,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_WATER_2,
+ ABILITY_VOLT_ABSORB,
+ ABILITY_ILLUMINATE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Lanturn
+ 125, 58, 58, 67, 76, 76,
+ TYPE_WATER,
+ TYPE_ELECTRIC,
+ 75, // catch rate
+ 156, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_YELLOW_SHARD,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_WATER_2,
+ ABILITY_VOLT_ABSORB,
+ ABILITY_ILLUMINATE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Pichu
+ 20, 40, 15, 60, 35, 35,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 190, // catch rate
+ 42, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_ORAN_BERRY,
+ 127, // gender
+ 10, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_STATIC,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Cleffa
+ 50, 25, 28, 15, 45, 55,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 150, // catch rate
+ 37, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_LEPPA_BERRY,
+ ITEM_MOON_STONE,
+ 191, // gender
+ 10, // egg cycles
+ 140, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_CUTE_CHARM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Igglybuff
+ 90, 30, 15, 15, 40, 20,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 170, // catch rate
+ 39, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 191, // gender
+ 10, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_CUTE_CHARM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK, TRUE
+ }, { // Togepi
+ 35, 20, 65, 20, 40, 65,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 190, // catch rate
+ 74, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 10, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_HUSTLE,
+ ABILITY_SERENE_GRACE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Togetic
+ 55, 40, 85, 40, 80, 105,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 75, // catch rate
+ 114, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 10, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FAIRY,
+ ABILITY_HUSTLE,
+ ABILITY_SERENE_GRACE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Natu
+ 40, 50, 45, 70, 70, 45,
+ TYPE_PSYCHIC,
+ TYPE_FLYING,
+ 190, // catch rate
+ 73, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_SYNCHRONIZE,
+ ABILITY_EARLY_BIRD,
+ 6, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Xatu
+ 65, 75, 70, 95, 95, 70,
+ TYPE_PSYCHIC,
+ TYPE_FLYING,
+ 75, // catch rate
+ 171, // base exp. yield
+ 0, 0, 0, 1, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_SYNCHRONIZE,
+ ABILITY_EARLY_BIRD,
+ 8, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Mareep
+ 55, 40, 40, 35, 65, 45,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 235, // catch rate
+ 59, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_FIELD,
+ ABILITY_STATIC,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Flaaffy
+ 70, 55, 55, 45, 80, 60,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 120, // catch rate
+ 117, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_FIELD,
+ ABILITY_STATIC,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Ampharos
+ 90, 75, 75, 55, 115, 90,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 45, // catch rate
+ 194, // base exp. yield
+ 0, 0, 0, 0, 3, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_FIELD,
+ ABILITY_STATIC,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Bellossom
+ 75, 80, 85, 50, 90, 100,
+ TYPE_GRASS,
+ TYPE_GRASS,
+ 45, // catch rate
+ 184, // base exp. yield
+ 0, 0, 0, 0, 0, 3,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Marill
+ 70, 20, 50, 40, 20, 50,
+ TYPE_WATER,
+ TYPE_WATER,
+ 190, // catch rate
+ 58, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 10, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FAIRY,
+ ABILITY_THICK_FAT,
+ ABILITY_HUGE_POWER,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Azumarill
+ 100, 50, 80, 50, 50, 80,
+ TYPE_WATER,
+ TYPE_WATER,
+ 75, // catch rate
+ 153, // base exp. yield
+ 3, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 10, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FAIRY,
+ ABILITY_THICK_FAT,
+ ABILITY_HUGE_POWER,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Sudowoodo
+ 70, 100, 115, 30, 30, 65,
+ TYPE_ROCK,
+ TYPE_ROCK,
+ 65, // catch rate
+ 135, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_STURDY,
+ ABILITY_ROCK_HEAD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Politoed
+ 90, 75, 75, 70, 90, 100,
+ TYPE_WATER,
+ TYPE_WATER,
+ 45, // catch rate
+ 185, // base exp. yield
+ 0, 0, 0, 0, 0, 3,
+ ITEM_NONE,
+ ITEM_KINGS_ROCK,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_1,
+ ABILITY_WATER_ABSORB,
+ ABILITY_DAMP,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN, TRUE
+ }, { // Hoppip
+ 35, 35, 40, 50, 35, 55,
+ TYPE_GRASS,
+ TYPE_FLYING,
+ 255, // catch rate
+ 74, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Skiploom
+ 55, 45, 50, 80, 45, 65,
+ TYPE_GRASS,
+ TYPE_FLYING,
+ 120, // catch rate
+ 136, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Jumpluff
+ 75, 55, 70, 110, 55, 85,
+ TYPE_GRASS,
+ TYPE_FLYING,
+ 45, // catch rate
+ 176, // base exp. yield
+ 0, 0, 0, 3, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Aipom
+ 55, 70, 55, 85, 40, 55,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 45, // catch rate
+ 94, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_RUN_AWAY,
+ ABILITY_PICKUP,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Sunkern
+ 30, 30, 30, 30, 30, 30,
+ TYPE_GRASS,
+ TYPE_GRASS,
+ 235, // catch rate
+ 52, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Sunflora
+ 75, 75, 55, 30, 105, 85,
+ TYPE_GRASS,
+ TYPE_GRASS,
+ 120, // catch rate
+ 146, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Yanma
+ 65, 65, 45, 95, 75, 45,
+ TYPE_BUG,
+ TYPE_FLYING,
+ 75, // catch rate
+ 147, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SPEED_BOOST,
+ ABILITY_COMPOUND_EYES,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Wooper
+ 55, 45, 45, 15, 25, 25,
+ TYPE_WATER,
+ TYPE_GROUND,
+ 255, // catch rate
+ 52, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FIELD,
+ ABILITY_DAMP,
+ ABILITY_WATER_ABSORB,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Quagsire
+ 95, 85, 85, 35, 65, 65,
+ TYPE_WATER,
+ TYPE_GROUND,
+ 90, // catch rate
+ 137, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FIELD,
+ ABILITY_DAMP,
+ ABILITY_WATER_ABSORB,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Espeon
+ 65, 65, 60, 110, 130, 95,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 45, // catch rate
+ 197, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 35, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_SYNCHRONIZE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Umbreon
+ 95, 65, 110, 65, 60, 130,
+ TYPE_DARK,
+ TYPE_DARK,
+ 45, // catch rate
+ 197, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 35, // egg cycles
+ 35, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_SYNCHRONIZE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // Murkrow
+ 60, 85, 42, 91, 85, 42,
+ TYPE_DARK,
+ TYPE_FLYING,
+ 30, // catch rate
+ 107, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 35, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_INSOMNIA,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // Slowking
+ 95, 75, 80, 30, 100, 110,
+ TYPE_WATER,
+ TYPE_PSYCHIC,
+ 70, // catch rate
+ 164, // base exp. yield
+ 0, 0, 0, 0, 0, 3,
+ ITEM_NONE,
+ ITEM_KINGS_ROCK,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ ABILITY_OBLIVIOUS,
+ ABILITY_OWN_TEMPO,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Misdreavus
+ 60, 60, 60, 85, 85, 85,
+ TYPE_GHOST,
+ TYPE_GHOST,
+ 45, // catch rate
+ 147, // base exp. yield
+ 0, 0, 0, 0, 1, 1,
+ ITEM_NONE,
+ ITEM_SPELL_TAG,
+ 127, // gender
+ 25, // egg cycles
+ 35, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Unown
+ 48, 72, 48, 48, 72, 48,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 225, // catch rate
+ 61, // base exp. yield
+ 0, 1, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 40, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK, TRUE
+ }, { // Wobbuffet
+ 190, 33, 58, 33, 33, 58,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 45, // catch rate
+ 177, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_SHADOW_TAG,
+ ABILITY_NONE,
+ 4, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Girafarig
+ 70, 80, 65, 85, 90, 65,
+ TYPE_NORMAL,
+ TYPE_PSYCHIC,
+ 60, // catch rate
+ 149, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_PERSIM_BERRY,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_INNER_FOCUS,
+ ABILITY_EARLY_BIRD,
+ 4, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Pineco
+ 50, 65, 90, 15, 35, 35,
+ TYPE_BUG,
+ TYPE_BUG,
+ 190, // catch rate
+ 60, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_STURDY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Forretress
+ 75, 90, 140, 40, 60, 60,
+ TYPE_BUG,
+ TYPE_STEEL,
+ 75, // catch rate
+ 118, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_STURDY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Dunsparce
+ 100, 70, 70, 45, 65, 65,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 190, // catch rate
+ 75, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_SERENE_GRACE,
+ ABILITY_RUN_AWAY,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Gligar
+ 65, 75, 105, 85, 35, 65,
+ TYPE_GROUND,
+ TYPE_FLYING,
+ 60, // catch rate
+ 108, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_HYPER_CUTTER,
+ ABILITY_SAND_VEIL,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Steelix
+ 75, 85, 200, 30, 55, 65,
+ TYPE_STEEL,
+ TYPE_GROUND,
+ 25, // catch rate
+ 196, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_METAL_COAT,
+ 127, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_ROCK_HEAD,
+ ABILITY_STURDY,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Snubbull
+ 60, 80, 50, 30, 40, 40,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 190, // catch rate
+ 63, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 191, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FAIRY,
+ ABILITY_INTIMIDATE,
+ ABILITY_RUN_AWAY,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Granbull
+ 90, 120, 75, 45, 60, 60,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 75, // catch rate
+ 178, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 191, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FAIRY,
+ ABILITY_INTIMIDATE,
+ ABILITY_INTIMIDATE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Qwilfish
+ 65, 95, 75, 85, 55, 55,
+ TYPE_WATER,
+ TYPE_POISON,
+ 45, // catch rate
+ 100, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_WATER_2,
+ ABILITY_POISON_POINT,
+ ABILITY_SWIFT_SWIM,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Scizor
+ 70, 130, 100, 65, 55, 80,
+ TYPE_BUG,
+ TYPE_STEEL,
+ 25, // catch rate
+ 200, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SWARM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Shuckle
+ 20, 10, 230, 5, 10, 230,
+ TYPE_BUG,
+ TYPE_ROCK,
+ 190, // catch rate
+ 80, // base exp. yield
+ 0, 0, 1, 0, 0, 1,
+ ITEM_ORAN_BERRY,
+ ITEM_ORAN_BERRY,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_STURDY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Heracross
+ 80, 125, 75, 85, 40, 95,
+ TYPE_BUG,
+ TYPE_FIGHTING,
+ 45, // catch rate
+ 200, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SWARM,
+ ABILITY_GUTS,
+ 8, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Sneasel
+ 55, 95, 55, 115, 35, 75,
+ TYPE_DARK,
+ TYPE_ICE,
+ 60, // catch rate
+ 132, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_QUICK_CLAW,
+ 127, // gender
+ 20, // egg cycles
+ 35, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_INNER_FOCUS,
+ ABILITY_KEEN_EYE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK, TRUE
+ }, { // Teddiursa
+ 60, 80, 50, 40, 50, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 120, // catch rate
+ 124, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_PICKUP,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN, TRUE
+ }, { // Ursaring
+ 90, 130, 75, 55, 75, 75,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 60, // catch rate
+ 189, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_GUTS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Slugma
+ 40, 40, 40, 20, 70, 40,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 190, // catch rate
+ 78, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_MAGMA_ARMOR,
+ ABILITY_FLAME_BODY,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Magcargo
+ 50, 50, 120, 30, 80, 80,
+ TYPE_FIRE,
+ TYPE_ROCK,
+ 75, // catch rate
+ 154, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_MAGMA_ARMOR,
+ ABILITY_FLAME_BODY,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Swinub
+ 50, 50, 40, 50, 30, 30,
+ TYPE_ICE,
+ TYPE_GROUND,
+ 225, // catch rate
+ 78, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_OBLIVIOUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Piloswine
+ 100, 100, 80, 50, 60, 60,
+ TYPE_ICE,
+ TYPE_GROUND,
+ 75, // catch rate
+ 160, // base exp. yield
+ 1, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_OBLIVIOUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Corsola
+ 55, 55, 85, 35, 65, 85,
+ TYPE_WATER,
+ TYPE_ROCK,
+ 60, // catch rate
+ 113, // base exp. yield
+ 0, 0, 1, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_RED_SHARD,
+ 191, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_3,
+ ABILITY_HUSTLE,
+ ABILITY_NATURAL_CURE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Remoraid
+ 35, 65, 35, 65, 65, 35,
+ TYPE_WATER,
+ TYPE_WATER,
+ 190, // catch rate
+ 78, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_2,
+ ABILITY_HUSTLE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Octillery
+ 75, 105, 75, 45, 105, 75,
+ TYPE_WATER,
+ TYPE_WATER,
+ 75, // catch rate
+ 164, // base exp. yield
+ 0, 1, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_2,
+ ABILITY_SUCTION_CUPS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Delibird
+ 45, 55, 45, 75, 65, 45,
+ TYPE_ICE,
+ TYPE_FLYING,
+ 45, // catch rate
+ 183, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FIELD,
+ ABILITY_VITAL_SPIRIT,
+ ABILITY_HUSTLE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Mantine
+ 65, 40, 70, 70, 80, 140,
+ TYPE_WATER,
+ TYPE_FLYING,
+ 25, // catch rate
+ 168, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_1,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_WATER_ABSORB,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Skarmory
+ 65, 80, 140, 70, 40, 70,
+ TYPE_STEEL,
+ TYPE_FLYING,
+ 25, // catch rate
+ 168, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_KEEN_EYE,
+ ABILITY_STURDY,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Houndour
+ 45, 60, 30, 65, 80, 50,
+ TYPE_DARK,
+ TYPE_FIRE,
+ 120, // catch rate
+ 114, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_EARLY_BIRD,
+ ABILITY_FLASH_FIRE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // Houndoom
+ 75, 90, 50, 95, 110, 80,
+ TYPE_DARK,
+ TYPE_FIRE,
+ 45, // catch rate
+ 204, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_EARLY_BIRD,
+ ABILITY_FLASH_FIRE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // Kingdra
+ 75, 95, 95, 85, 95, 95,
+ TYPE_WATER,
+ TYPE_DRAGON,
+ 45, // catch rate
+ 207, // base exp. yield
+ 0, 1, 0, 0, 1, 1,
+ ITEM_NONE,
+ ITEM_DRAGON_SCALE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_DRAGON,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Phanpy
+ 90, 60, 60, 40, 40, 40,
+ TYPE_GROUND,
+ TYPE_GROUND,
+ 120, // catch rate
+ 124, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_PICKUP,
+ ABILITY_NONE,
+ 10, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Donphan
+ 90, 120, 120, 50, 60, 60,
+ TYPE_GROUND,
+ TYPE_GROUND,
+ 60, // catch rate
+ 189, // base exp. yield
+ 0, 1, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_STURDY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Porygon2
+ 85, 80, 90, 60, 105, 95,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 45, // catch rate
+ 180, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_TRACE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Stantler
+ 73, 95, 62, 85, 85, 65,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 45, // catch rate
+ 165, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_INTIMIDATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Smeargle
+ 55, 20, 35, 75, 20, 45,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 45, // catch rate
+ 106, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_OWN_TEMPO,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Tyrogue
+ 35, 35, 35, 35, 35, 35,
+ TYPE_FIGHTING,
+ TYPE_FIGHTING,
+ 75, // catch rate
+ 91, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 0, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_GUTS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Hitmontop
+ 50, 95, 95, 70, 35, 110,
+ TYPE_FIGHTING,
+ TYPE_FIGHTING,
+ 45, // catch rate
+ 138, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 0, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_INTIMIDATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Smoochum
+ 45, 30, 15, 65, 85, 65,
+ TYPE_ICE,
+ TYPE_PSYCHIC,
+ 45, // catch rate
+ 87, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_ASPEAR_BERRY,
+ ITEM_ASPEAR_BERRY,
+ 254, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_OBLIVIOUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Elekid
+ 45, 63, 37, 95, 65, 55,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 45, // catch rate
+ 106, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 63, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_STATIC,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW, TRUE
+ }, { // Magby
+ 45, 75, 37, 83, 70, 55,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 45, // catch rate
+ 117, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_RAWST_BERRY,
+ ITEM_RAWST_BERRY,
+ 63, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_FLAME_BODY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Miltank
+ 95, 80, 105, 100, 40, 70,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 45, // catch rate
+ 200, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_MOOMOO_MILK,
+ ITEM_MOOMOO_MILK,
+ 254, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_THICK_FAT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Blissey
+ 255, 10, 10, 55, 75, 135,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 30, // catch rate
+ 255, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_LUCKY_EGG,
+ 254, // gender
+ 40, // egg cycles
+ 140, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_FAIRY,
+ ABILITY_NATURAL_CURE,
+ ABILITY_SERENE_GRACE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Raikou
+ 90, 85, 75, 115, 115, 100,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 3, // catch rate
+ 216, // base exp. yield
+ 0, 0, 0, 2, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 80, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_PRESSURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Entei
+ 115, 115, 85, 100, 90, 75,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 3, // catch rate
+ 217, // base exp. yield
+ 1, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 80, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_PRESSURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Suicune
+ 100, 75, 115, 85, 90, 115,
+ TYPE_WATER,
+ TYPE_WATER,
+ 3, // catch rate
+ 215, // base exp. yield
+ 0, 0, 1, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 80, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_PRESSURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Larvitar
+ 50, 64, 50, 41, 45, 50,
+ TYPE_ROCK,
+ TYPE_GROUND,
+ 45, // catch rate
+ 67, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 40, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_MONSTER,
+ ABILITY_GUTS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Pupitar
+ 70, 84, 70, 51, 65, 70,
+ TYPE_ROCK,
+ TYPE_GROUND,
+ 45, // catch rate
+ 144, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 40, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_MONSTER,
+ ABILITY_SHED_SKIN,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Tyranitar
+ 100, 134, 110, 61, 95, 100,
+ TYPE_ROCK,
+ TYPE_DARK,
+ 45, // catch rate
+ 218, // base exp. yield
+ 0, 3, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 40, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_MONSTER,
+ ABILITY_SAND_STREAM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Lugia
+ 106, 90, 130, 110, 90, 154,
+ TYPE_PSYCHIC,
+ TYPE_FLYING,
+ 3, // catch rate
+ 220, // base exp. yield
+ 0, 0, 0, 0, 0, 3,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_PRESSURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Ho-Oh
+ 106, 130, 90, 90, 110, 154,
+ TYPE_FIRE,
+ TYPE_FLYING,
+ 3, // catch rate
+ 220, // base exp. yield
+ 0, 0, 0, 0, 0, 3,
+ ITEM_SACRED_ASH,
+ ITEM_SACRED_ASH,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_PRESSURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Celebi
+ 100, 100, 100, 100, 100, 100,
+ TYPE_PSYCHIC,
+ TYPE_GRASS,
+ 45, // catch rate
+ 64, // base exp. yield
+ 3, 0, 0, 0, 0, 0,
+ ITEM_LUM_BERRY,
+ ITEM_LUM_BERRY,
+ 255, // gender
+ 120, // egg cycles
+ 100, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NATURAL_CURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // ?
+ 50, 150, 50, 150, 150, 50,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 3, // catch rate
+ 1, // base exp. yield
+ 2, 2, 2, 2, 2, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_NONE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // Treecko
+ 40, 45, 35, 70, 65, 55,
+ TYPE_GRASS,
+ TYPE_GRASS,
+ 45, // catch rate
+ 65, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_DRAGON,
+ ABILITY_OVERGROW,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Grovyle
+ 50, 65, 45, 95, 85, 65,
+ TYPE_GRASS,
+ TYPE_GRASS,
+ 45, // catch rate
+ 141, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_DRAGON,
+ ABILITY_OVERGROW,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Sceptile
+ 70, 85, 65, 120, 105, 85,
+ TYPE_GRASS,
+ TYPE_GRASS,
+ 45, // catch rate
+ 208, // base exp. yield
+ 0, 0, 0, 3, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_DRAGON,
+ ABILITY_OVERGROW,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Torchic
+ 45, 60, 40, 45, 70, 50,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 45, // catch rate
+ 65, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_BLAZE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Combusken
+ 60, 85, 60, 55, 85, 60,
+ TYPE_FIRE,
+ TYPE_FIGHTING,
+ 45, // catch rate
+ 142, // base exp. yield
+ 0, 1, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_BLAZE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Blaziken
+ 80, 120, 70, 80, 110, 70,
+ TYPE_FIRE,
+ TYPE_FIGHTING,
+ 45, // catch rate
+ 209, // base exp. yield
+ 0, 3, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_BLAZE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Mudkip
+ 50, 70, 50, 40, 50, 50,
+ TYPE_WATER,
+ TYPE_WATER,
+ 45, // catch rate
+ 65, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ ABILITY_TORRENT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Marshtomp
+ 70, 85, 70, 50, 60, 70,
+ TYPE_WATER,
+ TYPE_GROUND,
+ 45, // catch rate
+ 143, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ ABILITY_TORRENT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Swampert
+ 100, 110, 90, 60, 85, 90,
+ TYPE_WATER,
+ TYPE_GROUND,
+ 45, // catch rate
+ 210, // base exp. yield
+ 0, 3, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ ABILITY_TORRENT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Poochyena
+ 35, 55, 35, 35, 30, 30,
+ TYPE_DARK,
+ TYPE_DARK,
+ 255, // catch rate
+ 55, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_PECHA_BERRY,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_RUN_AWAY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Mightyena
+ 70, 90, 70, 70, 60, 60,
+ TYPE_DARK,
+ TYPE_DARK,
+ 127, // catch rate
+ 128, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_PECHA_BERRY,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_INTIMIDATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Zigzagoon
+ 38, 30, 41, 60, 30, 41,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 255, // catch rate
+ 60, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_ORAN_BERRY,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_PICKUP,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Linoone
+ 78, 70, 61, 100, 50, 61,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 90, // catch rate
+ 128, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_ORAN_BERRY,
+ ITEM_SITRUS_BERRY,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_PICKUP,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Wurmple
+ 45, 45, 35, 20, 20, 30,
+ TYPE_BUG,
+ TYPE_BUG,
+ 255, // catch rate
+ 54, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SHIELD_DUST,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Silcoon
+ 50, 35, 55, 15, 25, 25,
+ TYPE_BUG,
+ TYPE_BUG,
+ 120, // catch rate
+ 71, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SHED_SKIN,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Beautifly
+ 60, 70, 50, 65, 90, 50,
+ TYPE_BUG,
+ TYPE_FLYING,
+ 45, // catch rate
+ 161, // base exp. yield
+ 0, 0, 0, 0, 3, 0,
+ ITEM_NONE,
+ ITEM_SILVER_POWDER,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SWARM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Cascoon
+ 50, 35, 55, 15, 25, 25,
+ TYPE_BUG,
+ TYPE_BUG,
+ 120, // catch rate
+ 72, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SHED_SKIN,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Dustox
+ 60, 50, 70, 65, 50, 90,
+ TYPE_BUG,
+ TYPE_POISON,
+ 45, // catch rate
+ 160, // base exp. yield
+ 0, 0, 0, 0, 0, 3,
+ ITEM_NONE,
+ ITEM_SILVER_POWDER,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SHIELD_DUST,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Lotad
+ 40, 30, 30, 30, 40, 50,
+ TYPE_WATER,
+ TYPE_GRASS,
+ 255, // catch rate
+ 74, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_GRASS,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_RAIN_DISH,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Lombre
+ 60, 50, 50, 50, 60, 70,
+ TYPE_WATER,
+ TYPE_GRASS,
+ 120, // catch rate
+ 141, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_GRASS,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_RAIN_DISH,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Ludicolo
+ 80, 70, 70, 70, 90, 100,
+ TYPE_WATER,
+ TYPE_GRASS,
+ 45, // catch rate
+ 181, // base exp. yield
+ 0, 0, 0, 0, 0, 3,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_GRASS,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_RAIN_DISH,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Seedot
+ 40, 40, 50, 30, 30, 30,
+ TYPE_GRASS,
+ TYPE_GRASS,
+ 255, // catch rate
+ 74, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_EARLY_BIRD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Nuzleaf
+ 70, 70, 40, 60, 60, 40,
+ TYPE_GRASS,
+ TYPE_DARK,
+ 120, // catch rate
+ 141, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_EARLY_BIRD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Shiftry
+ 90, 100, 60, 80, 90, 60,
+ TYPE_GRASS,
+ TYPE_DARK,
+ 45, // catch rate
+ 181, // base exp. yield
+ 0, 3, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_EARLY_BIRD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Nincada
+ 31, 45, 90, 40, 30, 30,
+ TYPE_BUG,
+ TYPE_GROUND,
+ 255, // catch rate
+ 65, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_COMPOUND_EYES,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Ninjask
+ 61, 90, 45, 160, 50, 50,
+ TYPE_BUG,
+ TYPE_FLYING,
+ 120, // catch rate
+ 155, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_SPEED_BOOST,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Shedinja
+ 1, 90, 45, 40, 30, 30,
+ TYPE_BUG,
+ TYPE_GHOST,
+ 45, // catch rate
+ 95, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_WONDER_GUARD,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Taillow
+ 40, 55, 30, 85, 30, 30,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 200, // catch rate
+ 59, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_GUTS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Swellow
+ 60, 85, 60, 125, 50, 50,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 45, // catch rate
+ 162, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FLYING,
+ ABILITY_GUTS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Shroomish
+ 60, 40, 60, 35, 40, 60,
+ TYPE_GRASS,
+ TYPE_GRASS,
+ 255, // catch rate
+ 65, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_FLUCTUATING,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_GRASS,
+ ABILITY_EFFECT_SPORE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Breloom
+ 60, 130, 80, 70, 60, 60,
+ TYPE_GRASS,
+ TYPE_FIGHTING,
+ 90, // catch rate
+ 165, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_FLUCTUATING,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_GRASS,
+ ABILITY_EFFECT_SPORE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Spinda
+ 60, 60, 60, 60, 60, 60,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 255, // catch rate
+ 85, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_CHESTO_BERRY,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_OWN_TEMPO,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN, TRUE
+ }, { // Wingull
+ 40, 30, 30, 85, 55, 30,
+ TYPE_WATER,
+ TYPE_FLYING,
+ 190, // catch rate
+ 64, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FLYING,
+ ABILITY_KEEN_EYE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Pelipper
+ 60, 50, 100, 65, 85, 70,
+ TYPE_WATER,
+ TYPE_FLYING,
+ 45, // catch rate
+ 164, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FLYING,
+ ABILITY_KEEN_EYE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Surskit
+ 40, 30, 32, 65, 50, 52,
+ TYPE_BUG,
+ TYPE_WATER,
+ 200, // catch rate
+ 63, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_BUG,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Masquerain
+ 70, 60, 62, 60, 80, 82,
+ TYPE_BUG,
+ TYPE_FLYING,
+ 75, // catch rate
+ 128, // base exp. yield
+ 0, 0, 0, 0, 1, 1,
+ ITEM_NONE,
+ ITEM_SILVER_POWDER,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_BUG,
+ ABILITY_INTIMIDATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Wailmer
+ 130, 70, 35, 60, 70, 35,
+ TYPE_WATER,
+ TYPE_WATER,
+ 125, // catch rate
+ 137, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 40, // egg cycles
+ 70, // base friendship
+ GROWTH_FLUCTUATING,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_WATER_2,
+ ABILITY_WATER_VEIL,
+ ABILITY_OBLIVIOUS,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Wailord
+ 170, 90, 45, 60, 90, 45,
+ TYPE_WATER,
+ TYPE_WATER,
+ 60, // catch rate
+ 206, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 40, // egg cycles
+ 70, // base friendship
+ GROWTH_FLUCTUATING,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_WATER_2,
+ ABILITY_WATER_VEIL,
+ ABILITY_OBLIVIOUS,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Skitty
+ 50, 45, 45, 50, 35, 35,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 255, // catch rate
+ 65, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_LEPPA_BERRY,
+ 191, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FAIRY,
+ ABILITY_CUTE_CHARM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Delcatty
+ 70, 65, 65, 70, 55, 55,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 60, // catch rate
+ 138, // base exp. yield
+ 1, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_LEPPA_BERRY,
+ 191, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FAIRY,
+ ABILITY_CUTE_CHARM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Kecleon
+ 60, 90, 70, 40, 60, 120,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 200, // catch rate
+ 132, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_PERSIM_BERRY,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_COLOR_CHANGE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Baltoy
+ 40, 40, 55, 55, 40, 70,
+ TYPE_GROUND,
+ TYPE_PSYCHIC,
+ 255, // catch rate
+ 58, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Claydol
+ 60, 70, 105, 75, 70, 120,
+ TYPE_GROUND,
+ TYPE_PSYCHIC,
+ 90, // catch rate
+ 189, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // Nosepass
+ 30, 45, 135, 30, 45, 90,
+ TYPE_ROCK,
+ TYPE_ROCK,
+ 255, // catch rate
+ 108, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_STURDY,
+ ABILITY_MAGNET_PULL,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Torkoal
+ 70, 85, 140, 20, 85, 70,
+ TYPE_FIRE,
+ TYPE_FIRE,
+ 90, // catch rate
+ 161, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_WHITE_SMOKE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Sableye
+ 50, 75, 75, 50, 65, 65,
+ TYPE_DARK,
+ TYPE_GHOST,
+ 45, // catch rate
+ 98, // base exp. yield
+ 0, 1, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 25, // egg cycles
+ 35, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_KEEN_EYE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Barboach
+ 50, 48, 43, 60, 46, 41,
+ TYPE_WATER,
+ TYPE_GROUND,
+ 190, // catch rate
+ 92, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_WATER_2,
+ ABILITY_OBLIVIOUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Whiscash
+ 110, 78, 73, 60, 76, 71,
+ TYPE_WATER,
+ TYPE_GROUND,
+ 75, // catch rate
+ 158, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_WATER_2,
+ ABILITY_OBLIVIOUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Luvdisc
+ 43, 30, 55, 97, 40, 65,
+ TYPE_WATER,
+ TYPE_WATER,
+ 225, // catch rate
+ 110, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_HEART_SCALE,
+ ITEM_NONE,
+ 191, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_WATER_2,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Corphish
+ 43, 80, 65, 35, 50, 35,
+ TYPE_WATER,
+ TYPE_WATER,
+ 205, // catch rate
+ 111, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_FLUCTUATING,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_3,
+ ABILITY_HYPER_CUTTER,
+ ABILITY_SHELL_ARMOR,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Crawdaunt
+ 63, 120, 85, 55, 90, 55,
+ TYPE_WATER,
+ TYPE_DARK,
+ 155, // catch rate
+ 161, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_FLUCTUATING,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_3,
+ ABILITY_HYPER_CUTTER,
+ ABILITY_SHELL_ARMOR,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Feebas
+ 20, 15, 20, 80, 10, 55,
+ TYPE_WATER,
+ TYPE_WATER,
+ 255, // catch rate
+ 61, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_DRAGON,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Milotic
+ 95, 60, 79, 81, 100, 125,
+ TYPE_WATER,
+ TYPE_WATER,
+ 60, // catch rate
+ 213, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_DRAGON,
+ ABILITY_MARVEL_SCALE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Carvanha
+ 45, 90, 20, 65, 65, 20,
+ TYPE_WATER,
+ TYPE_DARK,
+ 225, // catch rate
+ 88, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_WATER_2,
+ ABILITY_ROUGH_SKIN,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Sharpedo
+ 70, 120, 40, 95, 95, 40,
+ TYPE_WATER,
+ TYPE_DARK,
+ 60, // catch rate
+ 175, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_WATER_2,
+ ABILITY_ROUGH_SKIN,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Trapinch
+ 45, 100, 45, 10, 45, 45,
+ TYPE_GROUND,
+ TYPE_GROUND,
+ 255, // catch rate
+ 73, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_SOFT_SAND,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_HYPER_CUTTER,
+ ABILITY_ARENA_TRAP,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Vibrava
+ 50, 70, 50, 70, 50, 50,
+ TYPE_GROUND,
+ TYPE_DRAGON,
+ 120, // catch rate
+ 126, // base exp. yield
+ 0, 1, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_LEVITATE,
+ ABILITY_LEVITATE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Flygon
+ 80, 100, 80, 100, 80, 80,
+ TYPE_GROUND,
+ TYPE_DRAGON,
+ 45, // catch rate
+ 197, // base exp. yield
+ 0, 1, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_BUG,
+ EGG_GROUP_BUG,
+ ABILITY_LEVITATE,
+ ABILITY_LEVITATE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Makuhita
+ 72, 60, 30, 25, 20, 30,
+ TYPE_FIGHTING,
+ TYPE_FIGHTING,
+ 180, // catch rate
+ 87, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 63, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FLUCTUATING,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_THICK_FAT,
+ ABILITY_GUTS,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Hariyama
+ 144, 120, 60, 50, 40, 60,
+ TYPE_FIGHTING,
+ TYPE_FIGHTING,
+ 200, // catch rate
+ 184, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_KINGS_ROCK,
+ 63, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FLUCTUATING,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_THICK_FAT,
+ ABILITY_GUTS,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Electrike
+ 40, 45, 40, 65, 65, 40,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 120, // catch rate
+ 104, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_STATIC,
+ ABILITY_LIGHTNING_ROD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Manectric
+ 70, 75, 60, 105, 105, 60,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 45, // catch rate
+ 168, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_STATIC,
+ ABILITY_LIGHTNING_ROD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Numel
+ 60, 60, 40, 35, 65, 45,
+ TYPE_FIRE,
+ TYPE_GROUND,
+ 255, // catch rate
+ 88, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_RAWST_BERRY,
+ ITEM_RAWST_BERRY,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_OBLIVIOUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Camerupt
+ 70, 100, 70, 40, 105, 75,
+ TYPE_FIRE,
+ TYPE_GROUND,
+ 150, // catch rate
+ 175, // base exp. yield
+ 0, 1, 0, 0, 1, 0,
+ ITEM_RAWST_BERRY,
+ ITEM_RAWST_BERRY,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_MAGMA_ARMOR,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Spheal
+ 70, 40, 50, 25, 55, 50,
+ TYPE_ICE,
+ TYPE_WATER,
+ 255, // catch rate
+ 75, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FIELD,
+ ABILITY_THICK_FAT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Sealeo
+ 90, 60, 70, 45, 75, 70,
+ TYPE_ICE,
+ TYPE_WATER,
+ 120, // catch rate
+ 128, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FIELD,
+ ABILITY_THICK_FAT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Walrein
+ 110, 80, 90, 65, 95, 90,
+ TYPE_ICE,
+ TYPE_WATER,
+ 45, // catch rate
+ 192, // base exp. yield
+ 3, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_FIELD,
+ ABILITY_THICK_FAT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Cacnea
+ 50, 85, 40, 35, 85, 40,
+ TYPE_GRASS,
+ TYPE_GRASS,
+ 190, // catch rate
+ 97, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_POISON_BARB,
+ 127, // gender
+ 20, // egg cycles
+ 35, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_SAND_VEIL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Cacturne
+ 70, 115, 60, 55, 115, 60,
+ TYPE_GRASS,
+ TYPE_DARK,
+ 60, // catch rate
+ 177, // base exp. yield
+ 0, 1, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_POISON_BARB,
+ 127, // gender
+ 20, // egg cycles
+ 35, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_SAND_VEIL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Snorunt
+ 50, 50, 50, 50, 50, 50,
+ TYPE_ICE,
+ TYPE_ICE,
+ 190, // catch rate
+ 74, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_MINERAL,
+ ABILITY_INNER_FOCUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Glalie
+ 80, 80, 80, 80, 80, 80,
+ TYPE_ICE,
+ TYPE_ICE,
+ 75, // catch rate
+ 187, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NEVER_MELT_ICE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_MINERAL,
+ ABILITY_INNER_FOCUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Lunatone
+ 70, 55, 65, 70, 95, 85,
+ TYPE_ROCK,
+ TYPE_PSYCHIC,
+ 45, // catch rate
+ 150, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_MOON_STONE,
+ 255, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Solrock
+ 70, 95, 85, 70, 55, 65,
+ TYPE_ROCK,
+ TYPE_PSYCHIC,
+ 45, // catch rate
+ 150, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_SUN_STONE,
+ 255, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Azurill
+ 50, 20, 40, 20, 20, 40,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 150, // catch rate
+ 33, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 191, // gender
+ 10, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_THICK_FAT,
+ ABILITY_HUGE_POWER,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Spoink
+ 60, 25, 35, 60, 70, 80,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 255, // catch rate
+ 89, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_THICK_FAT,
+ ABILITY_OWN_TEMPO,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // Grumpig
+ 80, 45, 65, 80, 90, 110,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 60, // catch rate
+ 164, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_THICK_FAT,
+ ABILITY_OWN_TEMPO,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Plusle
+ 60, 50, 40, 95, 85, 75,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 200, // catch rate
+ 120, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_FAIRY,
+ ABILITY_PLUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Minun
+ 60, 40, 50, 95, 75, 85,
+ TYPE_ELECTRIC,
+ TYPE_ELECTRIC,
+ 200, // catch rate
+ 120, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_FAIRY,
+ ABILITY_MINUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Mawile
+ 50, 85, 85, 50, 55, 55,
+ TYPE_STEEL,
+ TYPE_STEEL,
+ 45, // catch rate
+ 98, // base exp. yield
+ 0, 1, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FAIRY,
+ ABILITY_HYPER_CUTTER,
+ ABILITY_INTIMIDATE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // Meditite
+ 30, 40, 55, 60, 40, 55,
+ TYPE_FIGHTING,
+ TYPE_PSYCHIC,
+ 180, // catch rate
+ 91, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_PURE_POWER,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Medicham
+ 60, 60, 75, 80, 60, 75,
+ TYPE_FIGHTING,
+ TYPE_PSYCHIC,
+ 90, // catch rate
+ 153, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_PURE_POWER,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Swablu
+ 45, 40, 60, 50, 40, 75,
+ TYPE_NORMAL,
+ TYPE_FLYING,
+ 255, // catch rate
+ 74, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_DRAGON,
+ ABILITY_NATURAL_CURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Altaria
+ 75, 70, 90, 80, 70, 105,
+ TYPE_DRAGON,
+ TYPE_FLYING,
+ 45, // catch rate
+ 188, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_DRAGON,
+ ABILITY_NATURAL_CURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Wynaut
+ 95, 23, 48, 23, 23, 48,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 125, // catch rate
+ 44, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_SHADOW_TAG,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Duskull
+ 20, 40, 90, 25, 30, 90,
+ TYPE_GHOST,
+ TYPE_GHOST,
+ 190, // catch rate
+ 97, // base exp. yield
+ 0, 0, 1, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_SPELL_TAG,
+ 127, // gender
+ 25, // egg cycles
+ 35, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // Dusclops
+ 40, 70, 130, 25, 60, 130,
+ TYPE_GHOST,
+ TYPE_GHOST,
+ 90, // catch rate
+ 179, // base exp. yield
+ 0, 0, 1, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_SPELL_TAG,
+ 127, // gender
+ 25, // egg cycles
+ 35, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_PRESSURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // Roselia
+ 50, 60, 45, 65, 100, 80,
+ TYPE_GRASS,
+ TYPE_POISON,
+ 150, // catch rate
+ 152, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_POISON_BARB,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_GRASS,
+ ABILITY_NATURAL_CURE,
+ ABILITY_POISON_POINT,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN, TRUE
+ }, { // Slakoth
+ 60, 60, 60, 30, 35, 35,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 255, // catch rate
+ 83, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_TRUANT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Vigoroth
+ 80, 80, 80, 90, 55, 55,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 120, // catch rate
+ 126, // base exp. yield
+ 0, 0, 0, 2, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_VITAL_SPIRIT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Slaking
+ 150, 160, 100, 100, 95, 65,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 45, // catch rate
+ 210, // base exp. yield
+ 3, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_TRUANT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Gulpin
+ 70, 43, 53, 40, 43, 53,
+ TYPE_POISON,
+ TYPE_POISON,
+ 225, // catch rate
+ 75, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_BIG_PEARL,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FLUCTUATING,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_LIQUID_OOZE,
+ ABILITY_STICKY_HOLD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Swalot
+ 100, 73, 83, 55, 73, 83,
+ TYPE_POISON,
+ TYPE_POISON,
+ 75, // catch rate
+ 168, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_BIG_PEARL,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FLUCTUATING,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_LIQUID_OOZE,
+ ABILITY_STICKY_HOLD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Tropius
+ 99, 68, 83, 51, 72, 87,
+ TYPE_GRASS,
+ TYPE_FLYING,
+ 200, // catch rate
+ 169, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_GRASS,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Whismur
+ 64, 51, 23, 28, 51, 23,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 190, // catch rate
+ 68, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_CHESTO_BERRY,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_FIELD,
+ ABILITY_SOUNDPROOF,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Loudred
+ 84, 71, 43, 48, 71, 43,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 120, // catch rate
+ 126, // base exp. yield
+ 2, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_CHESTO_BERRY,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_FIELD,
+ ABILITY_SOUNDPROOF,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Exploud
+ 104, 91, 63, 68, 91, 63,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 45, // catch rate
+ 184, // base exp. yield
+ 3, 0, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_CHESTO_BERRY,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_FIELD,
+ ABILITY_SOUNDPROOF,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Clamperl
+ 35, 64, 85, 32, 74, 55,
+ TYPE_WATER,
+ TYPE_WATER,
+ 255, // catch rate
+ 142, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_BLUE_SHARD,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_1,
+ ABILITY_SHELL_ARMOR,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Huntail
+ 55, 104, 105, 52, 94, 75,
+ TYPE_WATER,
+ TYPE_WATER,
+ 60, // catch rate
+ 178, // base exp. yield
+ 0, 1, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_1,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Gorebyss
+ 55, 84, 105, 52, 114, 75,
+ TYPE_WATER,
+ TYPE_WATER,
+ 60, // catch rate
+ 178, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_1,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PINK
+ }, { // Absol
+ 65, 130, 60, 75, 75, 60,
+ TYPE_DARK,
+ TYPE_DARK,
+ 30, // catch rate
+ 174, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 25, // egg cycles
+ 35, // base friendship
+ GROWTH_MEDIUM_SLOW,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_PRESSURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE, TRUE
+ }, { // Shuppet
+ 44, 75, 35, 45, 63, 33,
+ TYPE_GHOST,
+ TYPE_GHOST,
+ 225, // catch rate
+ 97, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_SPELL_TAG,
+ 127, // gender
+ 25, // egg cycles
+ 35, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_INSOMNIA,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // Banette
+ 64, 115, 65, 65, 83, 63,
+ TYPE_GHOST,
+ TYPE_GHOST,
+ 45, // catch rate
+ 179, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_SPELL_TAG,
+ 127, // gender
+ 25, // egg cycles
+ 35, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_INSOMNIA,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK
+ }, { // Seviper
+ 73, 100, 60, 65, 100, 60,
+ TYPE_POISON,
+ TYPE_POISON,
+ 90, // catch rate
+ 165, // base exp. yield
+ 0, 1, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_FLUCTUATING,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_DRAGON,
+ ABILITY_SHED_SKIN,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLACK, TRUE
+ }, { // Zangoose
+ 73, 115, 60, 90, 60, 60,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 90, // catch rate
+ 165, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FIELD,
+ ABILITY_IMMUNITY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE, TRUE
+ }, { // Relicanth
+ 100, 90, 130, 55, 45, 65,
+ TYPE_WATER,
+ TYPE_ROCK,
+ 25, // catch rate
+ 198, // base exp. yield
+ 1, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_GREEN_SHARD,
+ 31, // gender
+ 40, // egg cycles
+ 70, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_WATER_2,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_ROCK_HEAD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Aron
+ 50, 70, 100, 30, 40, 40,
+ TYPE_STEEL,
+ TYPE_ROCK,
+ 180, // catch rate
+ 96, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_HARD_STONE,
+ 127, // gender
+ 35, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_MONSTER,
+ ABILITY_STURDY,
+ ABILITY_ROCK_HEAD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Lairon
+ 60, 90, 140, 40, 50, 50,
+ TYPE_STEEL,
+ TYPE_ROCK,
+ 90, // catch rate
+ 152, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_HARD_STONE,
+ 127, // gender
+ 35, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_MONSTER,
+ ABILITY_STURDY,
+ ABILITY_ROCK_HEAD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Aggron
+ 70, 110, 180, 50, 60, 60,
+ TYPE_STEEL,
+ TYPE_ROCK,
+ 45, // catch rate
+ 205, // base exp. yield
+ 0, 0, 3, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_HARD_STONE,
+ 127, // gender
+ 35, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_MONSTER,
+ ABILITY_STURDY,
+ ABILITY_ROCK_HEAD,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Castform
+ 70, 70, 70, 70, 70, 70,
+ TYPE_NORMAL,
+ TYPE_NORMAL,
+ 45, // catch rate
+ 145, // base exp. yield
+ 1, 0, 0, 0, 0, 0,
+ ITEM_MYSTIC_WATER,
+ ITEM_MYSTIC_WATER,
+ 127, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_MEDIUM_FAST,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_FORECAST,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Volbeat
+ 65, 73, 55, 85, 47, 75,
+ TYPE_BUG,
+ TYPE_BUG,
+ 150, // catch rate
+ 146, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 0, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_BUG,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_ILLUMINATE,
+ ABILITY_SWARM,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Illumise
+ 65, 47, 55, 85, 73, 75,
+ TYPE_BUG,
+ TYPE_BUG,
+ 150, // catch rate
+ 146, // base exp. yield
+ 0, 0, 0, 1, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 254, // gender
+ 15, // egg cycles
+ 70, // base friendship
+ GROWTH_FLUCTUATING,
+ EGG_GROUP_BUG,
+ EGG_GROUP_HUMAN_LIKE,
+ ABILITY_OBLIVIOUS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Lileep
+ 66, 41, 77, 23, 61, 87,
+ TYPE_ROCK,
+ TYPE_GRASS,
+ 45, // catch rate
+ 121, // base exp. yield
+ 0, 0, 0, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 30, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_WATER_3,
+ ABILITY_SUCTION_CUPS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_PURPLE
+ }, { // Cradily
+ 86, 81, 97, 43, 81, 107,
+ TYPE_ROCK,
+ TYPE_GRASS,
+ 45, // catch rate
+ 201, // base exp. yield
+ 0, 0, 0, 0, 0, 2,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 30, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_WATER_3,
+ ABILITY_SUCTION_CUPS,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Anorith
+ 45, 95, 50, 75, 40, 50,
+ TYPE_ROCK,
+ TYPE_BUG,
+ 45, // catch rate
+ 119, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 30, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_WATER_3,
+ ABILITY_BATTLE_ARMOR,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Armaldo
+ 75, 125, 100, 45, 70, 80,
+ TYPE_ROCK,
+ TYPE_BUG,
+ 45, // catch rate
+ 200, // base exp. yield
+ 0, 2, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 31, // gender
+ 30, // egg cycles
+ 70, // base friendship
+ GROWTH_ERRATIC,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_WATER_3,
+ ABILITY_BATTLE_ARMOR,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Ralts
+ 28, 25, 25, 40, 45, 35,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 235, // catch rate
+ 70, // base exp. yield
+ 0, 0, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_SYNCHRONIZE,
+ ABILITY_TRACE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Kirlia
+ 38, 35, 35, 50, 65, 55,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 120, // catch rate
+ 140, // base exp. yield
+ 0, 0, 0, 0, 2, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_SYNCHRONIZE,
+ ABILITY_TRACE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Gardevoir
+ 68, 65, 65, 80, 125, 115,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 45, // catch rate
+ 208, // base exp. yield
+ 0, 0, 0, 0, 3, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 20, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_SYNCHRONIZE,
+ ABILITY_TRACE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Bagon
+ 45, 75, 60, 50, 40, 30,
+ TYPE_DRAGON,
+ TYPE_DRAGON,
+ 45, // catch rate
+ 89, // base exp. yield
+ 0, 1, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_DRAGON_SCALE,
+ 127, // gender
+ 40, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_DRAGON,
+ EGG_GROUP_DRAGON,
+ ABILITY_ROCK_HEAD,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Shelgon
+ 65, 95, 100, 50, 60, 50,
+ TYPE_DRAGON,
+ TYPE_DRAGON,
+ 45, // catch rate
+ 144, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_DRAGON_SCALE,
+ 127, // gender
+ 40, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_DRAGON,
+ EGG_GROUP_DRAGON,
+ ABILITY_ROCK_HEAD,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_WHITE
+ }, { // Salamence
+ 95, 135, 80, 100, 110, 80,
+ TYPE_DRAGON,
+ TYPE_FLYING,
+ 45, // catch rate
+ 218, // base exp. yield
+ 0, 3, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_DRAGON_SCALE,
+ 127, // gender
+ 40, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_DRAGON,
+ EGG_GROUP_DRAGON,
+ ABILITY_INTIMIDATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Beldum
+ 40, 55, 80, 30, 35, 60,
+ TYPE_STEEL,
+ TYPE_PSYCHIC,
+ 3, // catch rate
+ 103, // base exp. yield
+ 0, 0, 1, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_METAL_COAT,
+ 255, // gender
+ 40, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_CLEAR_BODY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Metang
+ 60, 75, 100, 50, 55, 80,
+ TYPE_STEEL,
+ TYPE_PSYCHIC,
+ 3, // catch rate
+ 153, // base exp. yield
+ 0, 0, 2, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_METAL_COAT,
+ 255, // gender
+ 40, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_CLEAR_BODY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Metagross
+ 80, 135, 130, 70, 95, 90,
+ TYPE_STEEL,
+ TYPE_PSYCHIC,
+ 3, // catch rate
+ 210, // base exp. yield
+ 0, 0, 3, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_METAL_COAT,
+ 255, // gender
+ 40, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_MINERAL,
+ ABILITY_CLEAR_BODY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Regirock
+ 80, 100, 200, 50, 50, 100,
+ TYPE_ROCK,
+ TYPE_ROCK,
+ 3, // catch rate
+ 217, // base exp. yield
+ 0, 0, 3, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 80, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_CLEAR_BODY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BROWN
+ }, { // Regice
+ 80, 50, 100, 50, 100, 200,
+ TYPE_ICE,
+ TYPE_ICE,
+ 3, // catch rate
+ 216, // base exp. yield
+ 0, 0, 0, 0, 0, 3,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 80, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_CLEAR_BODY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Registeel
+ 80, 75, 150, 50, 75, 150,
+ TYPE_STEEL,
+ TYPE_STEEL,
+ 3, // catch rate
+ 215, // base exp. yield
+ 0, 0, 2, 0, 0, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 80, // egg cycles
+ 35, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_CLEAR_BODY,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GRAY
+ }, { // Kyogre
+ 100, 100, 90, 90, 150, 140,
+ TYPE_WATER,
+ TYPE_WATER,
+ 5, // catch rate
+ 218, // base exp. yield
+ 0, 0, 0, 0, 3, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_DRIZZLE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Groudon
+ 100, 150, 140, 90, 100, 90,
+ TYPE_GROUND,
+ TYPE_GROUND,
+ 5, // catch rate
+ 218, // base exp. yield
+ 0, 3, 0, 0, 0, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_DROUGHT,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Rayquaza
+ 105, 150, 90, 95, 150, 90,
+ TYPE_DRAGON,
+ TYPE_FLYING,
+ 3, // catch rate
+ 220, // base exp. yield
+ 0, 2, 0, 0, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_AIR_LOCK,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_GREEN
+ }, { // Latias
+ 80, 80, 90, 110, 110, 130,
+ TYPE_DRAGON,
+ TYPE_PSYCHIC,
+ 3, // catch rate
+ 211, // base exp. yield
+ 0, 0, 0, 0, 0, 3,
+ ITEM_NONE,
+ ITEM_NONE,
+ 254, // gender
+ 120, // egg cycles
+ 90, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED
+ }, { // Latios
+ 80, 90, 80, 110, 130, 110,
+ TYPE_DRAGON,
+ TYPE_PSYCHIC,
+ 3, // catch rate
+ 211, // base exp. yield
+ 0, 0, 0, 0, 3, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 0, // gender
+ 120, // egg cycles
+ 90, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }, { // Jirachi
+ 100, 100, 100, 100, 100, 100,
+ TYPE_STEEL,
+ TYPE_PSYCHIC,
+ 3, // catch rate
+ 215, // base exp. yield
+ 3, 0, 0, 0, 0, 0,
+ ITEM_STAR_PIECE,
+ ITEM_STAR_PIECE,
+ 255, // gender
+ 120, // egg cycles
+ 100, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_SERENE_GRACE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_YELLOW
+ }, { // Deoxys
+ 50, 150, 50, 150, 150, 50,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 3, // catch rate
+ 215, // base exp. yield
+ 0, 1, 0, 1, 1, 0,
+ ITEM_NONE,
+ ITEM_NONE,
+ 255, // gender
+ 120, // egg cycles
+ 0, // base friendship
+ GROWTH_SLOW,
+ EGG_GROUP_UNDISCOVERED,
+ EGG_GROUP_UNDISCOVERED,
+ ABILITY_PRESSURE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_RED, TRUE
+ }, { // Chimecho
+ 65, 50, 70, 65, 95, 80,
+ TYPE_PSYCHIC,
+ TYPE_PSYCHIC,
+ 45, // catch rate
+ 147, // base exp. yield
+ 0, 0, 0, 0, 1, 1,
+ ITEM_NONE,
+ ITEM_NONE,
+ 127, // gender
+ 25, // egg cycles
+ 70, // base friendship
+ GROWTH_FAST,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_AMORPHOUS,
+ ABILITY_LEVITATE,
+ ABILITY_NONE,
+ 0, // Safari Zone flee rate
+ BODY_COLOR_BLUE
+ }
+};
+
+#endif //POKERUBY_BASE_STATS_H
diff --git a/include/data/pokemon/cry_ids.h b/include/data/pokemon/cry_ids.h
new file mode 100644
index 000000000..d965a41cf
--- /dev/null
+++ b/include/data/pokemon/cry_ids.h
@@ -0,0 +1,146 @@
+//
+// Created by Scott Norton on 6/27/17.
+//
+
+#ifndef POKERUBY_CRY_IDS_H
+#define POKERUBY_CRY_IDS_H
+
+const u16 gSpeciesIdToCryId[] = {
+ 273, // TREECKO
+ 274, // GROVYLE
+ 275, // SCEPTILE
+ 270, // TORCHIC
+ 271, // COMBUSKEN
+ 272, // BLAZIKEN
+ 276, // MUDKIP
+ 277, // MARSHTOMP
+ 278, // SWAMPERT
+ 359, // POOCHYENA
+ 360, // MIGHTYENA
+ 378, // ZIGZAGOON
+ 375, // LINOONE
+ 290, // WURMPLE
+ 291, // SILCOON
+ 292, // BEAUTIFLY
+ 293, // CASCOON
+ 294, // DUSTOX
+ 283, // LOTAD
+ 284, // LOMBRE
+ 285, // LUDICOLO
+ 286, // SEEDOT
+ 287, // NUZLEAF
+ 288, // SHIFTRY
+ 301, // NINCADA
+ 302, // NINJASK
+ 303, // SHEDINJA
+ 266, // TAILLOW
+ 267, // SWELLOW
+ 374, // SHROOMISH
+ 373, // BRELOOM
+ 269, // SPINDA
+ 280, // WINGULL
+ 279, // PELIPPER
+ 310, // SURSKIT
+ 311, // MASQUERAIN
+ 377, // WAILMER
+ 381, // WAILORD
+ 312, // SKITTY
+ 313, // DELCATTY
+ 251, // KECLEON
+ 329, // BALTOY
+ 330, // CLAYDOL
+ 306, // NOSEPASS
+ 253, // TORKOAL
+ 362, // SABLEYE
+ 318, // BARBOACH
+ 319, // WHISCASH
+ 368, // LUVDISC
+ 320, // CORPHISH
+ 321, // CRAWDAUNT
+ 333, // FEEBAS
+ 334, // MILOTIC
+ 289, // CARVANHA
+ 260, // SHARPEDO
+ 324, // TRAPINCH
+ 325, // VIBRAVA
+ 326, // FLYGON
+ 304, // MAKUHITA
+ 305, // HARIYAMA
+ 254, // ELECTRIKE
+ 255, // MANECTRIC
+ 316, // NUMEL
+ 317, // CAMERUPT
+ 338, // SPHEAL
+ 339, // SEALEO
+ 340, // WALREIN
+ 327, // CACNEA
+ 328, // CACTURNE
+ 383, // SNORUNT
+ 307, // GLALIE
+ 331, // LUNATONE
+ 332, // SOLROCK
+ 262, // AZURILL
+ 322, // SPOINK
+ 323, // GRUMPIG
+ 308, // PLUSLE
+ 309, // MINUN
+ 363, // MAWILE
+ 336, // MEDITITE
+ 337, // MEDICHAM
+ 263, // SWABLU
+ 264, // ALTARIA
+ 258, // WYNAUT
+ 256, // DUSKULL
+ 361, // DUSCLOPS
+ 252, // ROSELIA
+ 298, // SLAKOTH
+ 299, // VIGOROTH
+ 300, // SLAKING
+ 314, // GULPIN
+ 315, // SWALOT
+ 376, // TROPIUS
+ 382, // WHISMUR
+ 380, // LOUDRED
+ 379, // EXPLOUD
+ 341, // CLAMPERL
+ 342, // HUNTAIL
+ 343, // GOREBYSS
+ 335, // ABSOL
+ 282, // SHUPPET
+ 281, // BANETTE
+ 259, // SEVIPER
+ 261, // ZANGOOSE
+ 367, // RELICANTH
+ 364, // ARON
+ 365, // LAIRON
+ 366, // AGGRON
+ 356, // CASTFORM
+ 357, // VOLBEAT
+ 358, // ILLUMISE
+ 344, // LILEEP
+ 345, // CRADILY
+ 346, // ANORITH
+ 347, // ARMALDO
+ 295, // RALTS
+ 296, // KIRLIA
+ 297, // GARDEVOIR
+ 351, // BAGON
+ 352, // SHELGON
+ 372, // SALAMENCE
+ 348, // BELDUM
+ 349, // METANG
+ 350, // METAGROSS
+ 353, // REGIROCK
+ 354, // REGICE
+ 355, // REGISTEEL
+ 370, // KYOGRE
+ 369, // GROUDON
+ 371, // RAYQUAZA
+ 257, // LATIAS
+ 384, // LATIOS
+ 385, // JIRACHI
+ 386, // DEOXYS
+ 387 // CHIMECHO
+};
+
+#endif //POKERUBY_CRY_IDS_H
diff --git a/include/data/pokemon/dex_order.h b/include/data/pokemon/dex_order.h
new file mode 100644
index 000000000..6f8582533
--- /dev/null
+++ b/include/data/pokemon/dex_order.h
@@ -0,0 +1,15 @@
+//
+// Created by Scott Norton on 6/27/17.
+//
+
+#ifndef POKERUBY_DEX_ORDER_H
+#define POKERUBY_DEX_ORDER_H
+
+const u16 gSpeciesToHoennPokedexNum[] = {203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 156, 157, 112, 113, 227, 228, 229, 230, 231, 232, 233, 234, 153, 154, 138, 139, 63, 64, 88, 89, 90, 235, 236, 237, 238, 239, 240, 241, 242, 158, 159, 243, 244, 245, 246, 247, 248, 249, 39, 40, 41, 73, 74, 75, 250, 251, 252, 66, 67, 57, 58, 59, 253, 254, 255, 256, 82, 83, 257, 92, 93, 258, 259, 106, 107, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 84, 85, 270, 271, 272, 273, 274, 275, 276, 108, 109, 169, 170, 277, 278, 279, 184, 185, 50, 51, 143, 144, 280, 281, 282, 283, 284, 167, 285, 52, 53, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 65, 181, 182, 155, 324, 137, 325, 326, 162, 163, 327, 328, 329, 91, 55, 56, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 161, 164, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 168, 357, 358, 359, 103, 104, 360, 361, 180, 362, 363, 364, 365, 115, 366, 367, 186, 165, 166, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 42, 43, 44, 25, 26, 34, 35, 114, 27, 28, 32, 33, 99, 100, 61, 62, 145, 131, 132, 60, 105, 68, 127, 128, 183, 129, 130, 140, 141, 97, 98, 116, 117, 118, 48, 49, 78, 79, 101, 102, 173, 174, 175, 119, 120, 171, 172, 125, 126, 54, 110, 111, 80, 81, 69, 76, 77, 121, 122, 160, 148, 149, 94, 36, 37, 38, 95, 96, 150, 45, 46, 47, 176, 177, 178, 152, 146, 147, 124, 123, 179, 70, 71, 72, 142, 86, 87, 133, 134, 135, 136, 29, 30, 31, 187, 188, 189, 190, 191, 192, 193, 194, 195, 198, 199, 200, 196, 197, 201, 202, 151
+};
+
+const u16 gSpeciesToNationalPokedexNum[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 290, 291, 292, 276, 277, 285, 286, 327, 278, 279, 283, 284, 320, 321, 300, 301, 352, 343, 344, 299, 324, 302, 339, 340, 370, 341, 342, 349, 350, 318, 319, 328, 329, 330, 296, 297, 309, 310, 322, 323, 363, 364, 365, 331, 332, 361, 362, 337, 338, 298, 325, 326, 311, 312, 303, 307, 308, 333, 334, 360, 355, 356, 315, 287, 288, 289, 316, 317, 357, 293, 294, 295, 366, 367, 368, 359, 353, 354, 336, 335, 369, 304, 305, 306, 351, 313, 314, 345, 346, 347, 348, 280, 281, 282, 371, 372, 373, 374, 375, 376, 377, 378, 379, 382, 383, 384, 380, 381, 385, 386, 358};
+
+const u16 gHoennToNationalOrder[] = {252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 63, 64, 65, 290, 291, 292, 293, 294, 295, 296, 297, 118, 119, 129, 130, 298, 183, 184, 74, 75, 76, 299, 300, 301, 41, 42, 169, 72, 73, 302, 303, 304, 305, 306, 66, 67, 68, 307, 308, 309, 310, 311, 312, 81, 82, 100, 101, 313, 314, 43, 44, 45, 182, 84, 85, 315, 316, 317, 318, 319, 320, 321, 322, 323, 218, 219, 324, 88, 89, 109, 110, 325, 326, 27, 28, 327, 227, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 174, 39, 40, 349, 350, 351, 120, 121, 352, 353, 354, 355, 356, 357, 358, 359, 37, 38, 172, 25, 26, 54, 55, 360, 202, 177, 178, 203, 231, 232, 127, 214, 111, 112, 361, 362, 363, 364, 365, 366, 367, 368, 369, 222, 170, 171, 370, 116, 117, 230, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 46, 47, 48, 49, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 69, 70, 71, 77, 78, 79, 80, 83, 86, 87, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 103, 104, 105, 106, 107, 108, 113, 114, 115, 122, 123, 124, 125, 126, 128, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 173, 175, 176, 179, 180, 181, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 216, 217, 220, 221, 223, 224, 225, 226, 228, 229, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411};
+
+#endif //POKERUBY_DEX_ORDER_H
diff --git a/include/data/pokemon/evolution.h b/include/data/pokemon/evolution.h
new file mode 100644
index 000000000..51e993347
--- /dev/null
+++ b/include/data/pokemon/evolution.h
@@ -0,0 +1,608 @@
+//
+// Created by Scott Norton on 6/27/17.
+//
+
+#ifndef POKERUBY_EVOLUTION_H
+#define POKERUBY_EVOLUTION_H
+
+const struct EvolutionData gEvolutionTable[] = {
+ {{ // ??????????
+ }}, {{ // Bulbasaur
+ {EVO_LEVEL, 16, SPECIES_IVYSAUR},
+ }}, {{ // Ivysaur
+ {EVO_LEVEL, 32, SPECIES_VENUSAUR},
+ }}, {{ // Venusaur
+ }}, {{ // Charmander
+ {EVO_LEVEL, 16, SPECIES_CHARMELEON},
+ }}, {{ // Charmeleon
+ {EVO_LEVEL, 36, SPECIES_CHARIZARD},
+ }}, {{ // Charizard
+ }}, {{ // Squirtle
+ {EVO_LEVEL, 16, SPECIES_WARTORTLE},
+ }}, {{ // Wartortle
+ {EVO_LEVEL, 36, SPECIES_BLASTOISE},
+ }}, {{ // Blastoise
+ }}, {{ // Caterpie
+ {EVO_LEVEL, 7, SPECIES_METAPOD},
+ }}, {{ // Metapod
+ {EVO_LEVEL, 10, SPECIES_BUTTERFREE},
+ }}, {{ // Butterfree
+ }}, {{ // Weedle
+ {EVO_LEVEL, 7, SPECIES_KAKUNA},
+ }}, {{ // Kakuna
+ {EVO_LEVEL, 10, SPECIES_BEEDRILL},
+ }}, {{ // Beedrill
+ }}, {{ // Pidgey
+ {EVO_LEVEL, 18, SPECIES_PIDGEOTTO},
+ }}, {{ // Pidgeotto
+ {EVO_LEVEL, 36, SPECIES_PIDGEOT},
+ }}, {{ // Pidgeot
+ }}, {{ // Rattata
+ {EVO_LEVEL, 20, SPECIES_RATICATE},
+ }}, {{ // Raticate
+ }}, {{ // Spearow
+ {EVO_LEVEL, 20, SPECIES_FEAROW},
+ }}, {{ // Fearow
+ }}, {{ // Ekans
+ {EVO_LEVEL, 22, SPECIES_ARBOK},
+ }}, {{ // Arbok
+ }}, {{ // Pikachu
+ {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU},
+ }}, {{ // Raichu
+ }}, {{ // Sandshrew
+ {EVO_LEVEL, 22, SPECIES_SANDSLASH},
+ }}, {{ // Sandslash
+ }}, {{ // Nidoran♀
+ {EVO_LEVEL, 16, SPECIES_NIDORINA},
+ }}, {{ // Nidorina
+ {EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN},
+ }}, {{ // Nidoqueen
+ }}, {{ // Nidoran♂
+ {EVO_LEVEL, 16, SPECIES_NIDORINO},
+ }}, {{ // Nidorino
+ {EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING},
+ }}, {{ // Nidoking
+ }}, {{ // Clefairy
+ {EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE},
+ }}, {{ // Clefable
+ }}, {{ // Vulpix
+ {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES},
+ }}, {{ // Ninetales
+ }}, {{ // Jigglypuff
+ {EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF},
+ }}, {{ // Wigglytuff
+ }}, {{ // Zubat
+ {EVO_LEVEL, 22, SPECIES_GOLBAT},
+ }}, {{ // Golbat
+ {EVO_FRIENDSHIP, 0, SPECIES_CROBAT},
+ }}, {{ // Oddish
+ {EVO_LEVEL, 21, SPECIES_GLOOM},
+ }}, {{ // Gloom
+ {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME},
+ {EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM},
+ }}, {{ // Vileplume
+ }}, {{ // Paras
+ {EVO_LEVEL, 24, SPECIES_PARASECT},
+ }}, {{ // Parasect
+ }}, {{ // Venonat
+ {EVO_LEVEL, 31, SPECIES_VENOMOTH},
+ }}, {{ // Venomoth
+ }}, {{ // Diglett
+ {EVO_LEVEL, 26, SPECIES_DUGTRIO},
+ }}, {{ // Dugtrio
+ }}, {{ // Meowth
+ {EVO_LEVEL, 28, SPECIES_PERSIAN},
+ }}, {{ // Persian
+ }}, {{ // Psyduck
+ {EVO_LEVEL, 33, SPECIES_GOLDUCK},
+ }}, {{ // Golduck
+ }}, {{ // Mankey
+ {EVO_LEVEL, 28, SPECIES_PRIMEAPE},
+ }}, {{ // Primeape
+ }}, {{ // Growlithe
+ {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE},
+ }}, {{ // Arcanine
+ }}, {{ // Poliwag
+ {EVO_LEVEL, 25, SPECIES_POLIWHIRL},
+ }}, {{ // Poliwhirl
+ {EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH},
+ {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED},
+ }}, {{ // Poliwrath
+ }}, {{ // Abra
+ {EVO_LEVEL, 16, SPECIES_KADABRA},
+ }}, {{ // Kadabra
+ {EVO_TRADE, 0, SPECIES_ALAKAZAM},
+ }}, {{ // Alakazam
+ }}, {{ // Machop
+ {EVO_LEVEL, 28, SPECIES_MACHOKE},
+ }}, {{ // Machoke
+ {EVO_TRADE, 0, SPECIES_MACHAMP},
+ }}, {{ // Machamp
+ }}, {{ // Bellsprout
+ {EVO_LEVEL, 21, SPECIES_WEEPINBELL},
+ }}, {{ // Weepinbell
+ {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL},
+ }}, {{ // Victreebel
+ }}, {{ // Tentacool
+ {EVO_LEVEL, 30, SPECIES_TENTACRUEL},
+ }}, {{ // Tentacruel
+ }}, {{ // Geodude
+ {EVO_LEVEL, 25, SPECIES_GRAVELER},
+ }}, {{ // Graveler
+ {EVO_TRADE, 0, SPECIES_GOLEM},
+ }}, {{ // Golem
+ }}, {{ // Ponyta
+ {EVO_LEVEL, 40, SPECIES_RAPIDASH},
+ }}, {{ // Rapidash
+ }}, {{ // Slowpoke
+ {EVO_LEVEL, 37, SPECIES_SLOWBRO},
+ {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING},
+ }}, {{ // Slowbro
+ }}, {{ // Magnemite
+ {EVO_LEVEL, 30, SPECIES_MAGNETON},
+ }}, {{ // Magneton
+ }}, {{ // Farfetch'd
+ }}, {{ // Doduo
+ {EVO_LEVEL, 31, SPECIES_DODRIO},
+ }}, {{ // Dodrio
+ }}, {{ // Seel
+ {EVO_LEVEL, 34, SPECIES_DEWGONG},
+ }}, {{ // Dewgong
+ }}, {{ // Grimer
+ {EVO_LEVEL, 38, SPECIES_MUK},
+ }}, {{ // Muk
+ }}, {{ // Shellder
+ {EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER},
+ }}, {{ // Cloyster
+ }}, {{ // Gastly
+ {EVO_LEVEL, 25, SPECIES_HAUNTER},
+ }}, {{ // Haunter
+ {EVO_TRADE, 0, SPECIES_GENGAR},
+ }}, {{ // Gengar
+ }}, {{ // Onix
+ {EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX},
+ }}, {{ // Drowzee
+ {EVO_LEVEL, 26, SPECIES_HYPNO},
+ }}, {{ // Hypno
+ }}, {{ // Krabby
+ {EVO_LEVEL, 28, SPECIES_KINGLER},
+ }}, {{ // Kingler
+ }}, {{ // Voltorb
+ {EVO_LEVEL, 30, SPECIES_ELECTRODE},
+ }}, {{ // Electrode
+ }}, {{ // Exeggcute
+ {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR},
+ }}, {{ // Exeggutor
+ }}, {{ // Cubone
+ {EVO_LEVEL, 28, SPECIES_MAROWAK},
+ }}, {{ // Marowak
+ }}, {{ // Hitmonlee
+ }}, {{ // Hitmonchan
+ }}, {{ // Lickitung
+ }}, {{ // Koffing
+ {EVO_LEVEL, 35, SPECIES_WEEZING},
+ }}, {{ // Weezing
+ }}, {{ // Rhyhorn
+ {EVO_LEVEL, 42, SPECIES_RHYDON},
+ }}, {{ // Rhydon
+ }}, {{ // Chansey
+ {EVO_FRIENDSHIP, 0, SPECIES_BLISSEY},
+ }}, {{ // Tangela
+ }}, {{ // Kangaskhan
+ }}, {{ // Horsea
+ {EVO_LEVEL, 32, SPECIES_SEADRA},
+ }}, {{ // Seadra
+ {EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA},
+ }}, {{ // Goldeen
+ {EVO_LEVEL, 33, SPECIES_SEAKING},
+ }}, {{ // Seaking
+ }}, {{ // Staryu
+ {EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE},
+ }}, {{ // Starmie
+ }}, {{ // Mr. mime
+ }}, {{ // Scyther
+ {EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR},
+ }}, {{ // Jynx
+ }}, {{ // Electabuzz
+ }}, {{ // Magmar
+ }}, {{ // Pinsir
+ }}, {{ // Tauros
+ }}, {{ // Magikarp
+ {EVO_LEVEL, 20, SPECIES_GYARADOS},
+ }}, {{ // Gyarados
+ }}, {{ // Lapras
+ }}, {{ // Ditto
+ }}, {{ // Eevee
+ {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON},
+ {EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON},
+ {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON},
+ {EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON},
+ {EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON},
+ }}, {{ // Vaporeon
+ }}, {{ // Jolteon
+ }}, {{ // Flareon
+ }}, {{ // Porygon
+ {EVO_TRADE_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2},
+ }}, {{ // Omanyte
+ {EVO_LEVEL, 40, SPECIES_OMASTAR},
+ }}, {{ // Omastar
+ }}, {{ // Kabuto
+ {EVO_LEVEL, 40, SPECIES_KABUTOPS},
+ }}, {{ // Kabutops
+ }}, {{ // Aerodactyl
+ }}, {{ // Snorlax
+ }}, {{ // Articuno
+ }}, {{ // Zapdos
+ }}, {{ // Moltres
+ }}, {{ // Dratini
+ {EVO_LEVEL, 30, SPECIES_DRAGONAIR},
+ }}, {{ // Dragonair
+ {EVO_LEVEL, 55, SPECIES_DRAGONITE},
+ }}, {{ // Dragonite
+ }}, {{ // Mewtwo
+ }}, {{ // Mew
+ }}, {{ // Chikorita
+ {EVO_LEVEL, 16, SPECIES_BAYLEEF},
+ }}, {{ // Bayleef
+ {EVO_LEVEL, 32, SPECIES_MEGANIUM},
+ }}, {{ // Meganium
+ }}, {{ // Cyndaquil
+ {EVO_LEVEL, 14, SPECIES_QUILAVA},
+ }}, {{ // Quilava
+ {EVO_LEVEL, 36, SPECIES_TYPHLOSION},
+ }}, {{ // Typhlosion
+ }}, {{ // Totodile
+ {EVO_LEVEL, 18, SPECIES_CROCONAW},
+ }}, {{ // Croconaw
+ {EVO_LEVEL, 30, SPECIES_FERALIGATR},
+ }}, {{ // Feraligatr
+ }}, {{ // Sentret
+ {EVO_LEVEL, 15, SPECIES_FURRET},
+ }}, {{ // Furret
+ }}, {{ // Hoothoot
+ {EVO_LEVEL, 20, SPECIES_NOCTOWL},
+ }}, {{ // Noctowl
+ }}, {{ // Ledyba
+ {EVO_LEVEL, 18, SPECIES_LEDIAN},
+ }}, {{ // Ledian
+ }}, {{ // Spinarak
+ {EVO_LEVEL, 22, SPECIES_ARIADOS},
+ }}, {{ // Ariados
+ }}, {{ // Crobat
+ }}, {{ // Chinchou
+ {EVO_LEVEL, 27, SPECIES_LANTURN},
+ }}, {{ // Lanturn
+ }}, {{ // Pichu
+ {EVO_FRIENDSHIP, 0, SPECIES_PIKACHU},
+ }}, {{ // Cleffa
+ {EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY},
+ }}, {{ // Igglybuff
+ {EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF},
+ }}, {{ // Togepi
+ {EVO_FRIENDSHIP, 0, SPECIES_TOGETIC},
+ }}, {{ // Togetic
+ }}, {{ // Natu
+ {EVO_LEVEL, 25, SPECIES_XATU},
+ }}, {{ // Xatu
+ }}, {{ // Mareep
+ {EVO_LEVEL, 15, SPECIES_FLAAFFY},
+ }}, {{ // Flaaffy
+ {EVO_LEVEL, 30, SPECIES_AMPHAROS},
+ }}, {{ // Ampharos
+ }}, {{ // Bellossom
+ }}, {{ // Marill
+ {EVO_LEVEL, 18, SPECIES_AZUMARILL},
+ }}, {{ // Azumarill
+ }}, {{ // Sudowoodo
+ }}, {{ // Politoed
+ }}, {{ // Hoppip
+ {EVO_LEVEL, 18, SPECIES_SKIPLOOM},
+ }}, {{ // Skiploom
+ {EVO_LEVEL, 27, SPECIES_JUMPLUFF},
+ }}, {{ // Jumpluff
+ }}, {{ // Aipom
+ }}, {{ // Sunkern
+ {EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA},
+ }}, {{ // Sunflora
+ }}, {{ // Yanma
+ }}, {{ // Wooper
+ {EVO_LEVEL, 20, SPECIES_QUAGSIRE},
+ }}, {{ // Quagsire
+ }}, {{ // Espeon
+ }}, {{ // Umbreon
+ }}, {{ // Murkrow
+ }}, {{ // Slowking
+ }}, {{ // Misdreavus
+ }}, {{ // Unown
+ }}, {{ // Wobbuffet
+ }}, {{ // Girafarig
+ }}, {{ // Pineco
+ {EVO_LEVEL, 31, SPECIES_FORRETRESS},
+ }}, {{ // Forretress
+ }}, {{ // Dunsparce
+ }}, {{ // Gligar
+ }}, {{ // Steelix
+ }}, {{ // Snubbull
+ {EVO_LEVEL, 23, SPECIES_GRANBULL},
+ }}, {{ // Granbull
+ }}, {{ // Qwilfish
+ }}, {{ // Scizor
+ }}, {{ // Shuckle
+ }}, {{ // Heracross
+ }}, {{ // Sneasel
+ }}, {{ // Teddiursa
+ {EVO_LEVEL, 30, SPECIES_URSARING},
+ }}, {{ // Ursaring
+ }}, {{ // Slugma
+ {EVO_LEVEL, 38, SPECIES_MAGCARGO},
+ }}, {{ // Magcargo
+ }}, {{ // Swinub
+ {EVO_LEVEL, 33, SPECIES_PILOSWINE},
+ }}, {{ // Piloswine
+ }}, {{ // Corsola
+ }}, {{ // Remoraid
+ {EVO_LEVEL, 25, SPECIES_OCTILLERY},
+ }}, {{ // Octillery
+ }}, {{ // Delibird
+ }}, {{ // Mantine
+ }}, {{ // Skarmory
+ }}, {{ // Houndour
+ {EVO_LEVEL, 24, SPECIES_HOUNDOOM},
+ }}, {{ // Houndoom
+ }}, {{ // Kingdra
+ }}, {{ // Phanpy
+ {EVO_LEVEL, 25, SPECIES_DONPHAN},
+ }}, {{ // Donphan
+ }}, {{ // Porygon2
+ }}, {{ // Stantler
+ }}, {{ // Smeargle
+ }}, {{ // Tyrogue
+ {EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN},
+ {EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE},
+ {EVO_LEVEL_ATK_EQ_DEF, 20, SPECIES_HITMONTOP},
+ }}, {{ // Hitmontop
+ }}, {{ // Smoochum
+ {EVO_LEVEL, 30, SPECIES_JYNX},
+ }}, {{ // Elekid
+ {EVO_LEVEL, 30, SPECIES_ELECTABUZZ},
+ }}, {{ // Magby
+ {EVO_LEVEL, 30, SPECIES_MAGMAR},
+ }}, {{ // Miltank
+ }}, {{ // Blissey
+ }}, {{ // Raikou
+ }}, {{ // Entei
+ }}, {{ // Suicune
+ }}, {{ // Larvitar
+ {EVO_LEVEL, 30, SPECIES_PUPITAR},
+ }}, {{ // Pupitar
+ {EVO_LEVEL, 55, SPECIES_TYRANITAR},
+ }}, {{ // Tyranitar
+ }}, {{ // Lugia
+ }}, {{ // Ho-Oh
+ }}, {{ // Celebi
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // ?
+ }}, {{ // Treecko
+ {EVO_LEVEL, 16, SPECIES_GROVYLE},
+ }}, {{ // Grovyle
+ {EVO_LEVEL, 36, SPECIES_SCEPTILE},
+ }}, {{ // Sceptile
+ }}, {{ // Torchic
+ {EVO_LEVEL, 16, SPECIES_COMBUSKEN},
+ }}, {{ // Combusken
+ {EVO_LEVEL, 36, SPECIES_BLAZIKEN},
+ }}, {{ // Blaziken
+ }}, {{ // Mudkip
+ {EVO_LEVEL, 16, SPECIES_MARSHTOMP},
+ }}, {{ // Marshtomp
+ {EVO_LEVEL, 36, SPECIES_SWAMPERT},
+ }}, {{ // Swampert
+ }}, {{ // Poochyena
+ {EVO_LEVEL, 18, SPECIES_MIGHTYENA},
+ }}, {{ // Mightyena
+ }}, {{ // Zigzagoon
+ {EVO_LEVEL, 20, SPECIES_LINOONE},
+ }}, {{ // Linoone
+ }}, {{ // Wurmple
+ {EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON},
+ {EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON},
+ }}, {{ // Silcoon
+ {EVO_LEVEL, 10, SPECIES_BEAUTIFLY},
+ }}, {{ // Beautifly
+ }}, {{ // Cascoon
+ {EVO_LEVEL, 10, SPECIES_DUSTOX},
+ }}, {{ // Dustox
+ }}, {{ // Lotad
+ {EVO_LEVEL, 14, SPECIES_LOMBRE},
+ }}, {{ // Lombre
+ {EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO},
+ }}, {{ // Ludicolo
+ }}, {{ // Seedot
+ {EVO_LEVEL, 14, SPECIES_NUZLEAF},
+ }}, {{ // Nuzleaf
+ {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY},
+ }}, {{ // Shiftry
+ }}, {{ // Nincada
+ {EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK},
+ {EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA},
+ }}, {{ // Ninjask
+ }}, {{ // Shedinja
+ }}, {{ // Taillow
+ {EVO_LEVEL, 22, SPECIES_SWELLOW},
+ }}, {{ // Swellow
+ }}, {{ // Shroomish
+ {EVO_LEVEL, 23, SPECIES_BRELOOM},
+ }}, {{ // Breloom
+ }}, {{ // Spinda
+ }}, {{ // Wingull
+ {EVO_LEVEL, 25, SPECIES_PELIPPER},
+ }}, {{ // Pelipper
+ }}, {{ // Surskit
+ {EVO_LEVEL, 22, SPECIES_MASQUERAIN},
+ }}, {{ // Masquerain
+ }}, {{ // Wailmer
+ {EVO_LEVEL, 40, SPECIES_WAILORD},
+ }}, {{ // Wailord
+ }}, {{ // Skitty
+ {EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY},
+ }}, {{ // Delcatty
+ }}, {{ // Kecleon
+ }}, {{ // Baltoy
+ {EVO_LEVEL, 36, SPECIES_CLAYDOL},
+ }}, {{ // Claydol
+ }}, {{ // Nosepass
+ }}, {{ // Torkoal
+ }}, {{ // Sableye
+ }}, {{ // Barboach
+ {EVO_LEVEL, 30, SPECIES_WHISCASH},
+ }}, {{ // Whiscash
+ }}, {{ // Luvdisc
+ }}, {{ // Corphish
+ {EVO_LEVEL, 30, SPECIES_CRAWDAUNT},
+ }}, {{ // Crawdaunt
+ }}, {{ // Feebas
+ {EVO_BEAUTY, 170, SPECIES_MILOTIC},
+ }}, {{ // Milotic
+ }}, {{ // Carvanha
+ {EVO_LEVEL, 30, SPECIES_SHARPEDO},
+ }}, {{ // Sharpedo
+ }}, {{ // Trapinch
+ {EVO_LEVEL, 35, SPECIES_VIBRAVA},
+ }}, {{ // Vibrava
+ {EVO_LEVEL, 45, SPECIES_FLYGON},
+ }}, {{ // Flygon
+ }}, {{ // Makuhita
+ {EVO_LEVEL, 24, SPECIES_HARIYAMA},
+ }}, {{ // Hariyama
+ }}, {{ // Electrike
+ {EVO_LEVEL, 26, SPECIES_MANECTRIC},
+ }}, {{ // Manectric
+ }}, {{ // Numel
+ {EVO_LEVEL, 33, SPECIES_CAMERUPT},
+ }}, {{ // Camerupt
+ }}, {{ // Spheal
+ {EVO_LEVEL, 32, SPECIES_SEALEO},
+ }}, {{ // Sealeo
+ {EVO_LEVEL, 44, SPECIES_WALREIN},
+ }}, {{ // Walrein
+ }}, {{ // Cacnea
+ {EVO_LEVEL, 32, SPECIES_CACTURNE},
+ }}, {{ // Cacturne
+ }}, {{ // Snorunt
+ {EVO_LEVEL, 42, SPECIES_GLALIE},
+ }}, {{ // Glalie
+ }}, {{ // Lunatone
+ }}, {{ // Solrock
+ }}, {{ // Azurill
+ {EVO_FRIENDSHIP, 0, SPECIES_MARILL},
+ }}, {{ // Spoink
+ {EVO_LEVEL, 32, SPECIES_GRUMPIG},
+ }}, {{ // Grumpig
+ }}, {{ // Plusle
+ }}, {{ // Minun
+ }}, {{ // Mawile
+ }}, {{ // Meditite
+ {EVO_LEVEL, 37, SPECIES_MEDICHAM},
+ }}, {{ // Medicham
+ }}, {{ // Swablu
+ {EVO_LEVEL, 35, SPECIES_ALTARIA},
+ }}, {{ // Altaria
+ }}, {{ // Wynaut
+ {EVO_LEVEL, 15, SPECIES_WOBBUFFET},
+ }}, {{ // Duskull
+ {EVO_LEVEL, 37, SPECIES_DUSCLOPS},
+ }}, {{ // Dusclops
+ }}, {{ // Roselia
+ }}, {{ // Slakoth
+ {EVO_LEVEL, 18, SPECIES_VIGOROTH},
+ }}, {{ // Vigoroth
+ {EVO_LEVEL, 36, SPECIES_SLAKING},
+ }}, {{ // Slaking
+ }}, {{ // Gulpin
+ {EVO_LEVEL, 26, SPECIES_SWALOT},
+ }}, {{ // Swalot
+ }}, {{ // Tropius
+ }}, {{ // Whismur
+ {EVO_LEVEL, 20, SPECIES_LOUDRED},
+ }}, {{ // Loudred
+ {EVO_LEVEL, 40, SPECIES_EXPLOUD},
+ }}, {{ // Exploud
+ }}, {{ // Clamperl
+ {EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL},
+ {EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS},
+ }}, {{ // Huntail
+ }}, {{ // Gorebyss
+ }}, {{ // Absol
+ }}, {{ // Shuppet
+ {EVO_LEVEL, 37, SPECIES_BANETTE},
+ }}, {{ // Banette
+ }}, {{ // Seviper
+ }}, {{ // Zangoose
+ }}, {{ // Relicanth
+ }}, {{ // Aron
+ {EVO_LEVEL, 32, SPECIES_LAIRON},
+ }}, {{ // Lairon
+ {EVO_LEVEL, 42, SPECIES_AGGRON},
+ }}, {{ // Aggron
+ }}, {{ // Castform
+ }}, {{ // Volbeat
+ }}, {{ // Illumise
+ }}, {{ // Lileep
+ {EVO_LEVEL, 40, SPECIES_CRADILY},
+ }}, {{ // Cradily
+ }}, {{ // Anorith
+ {EVO_LEVEL, 40, SPECIES_ARMALDO},
+ }}, {{ // Armaldo
+ }}, {{ // Ralts
+ {EVO_LEVEL, 20, SPECIES_KIRLIA},
+ }}, {{ // Kirlia
+ {EVO_LEVEL, 30, SPECIES_GARDEVOIR},
+ }}, {{ // Gardevoir
+ }}, {{ // Bagon
+ {EVO_LEVEL, 30, SPECIES_SHELGON},
+ }}, {{ // Shelgon
+ {EVO_LEVEL, 50, SPECIES_SALAMENCE},
+ }}, {{ // Salamence
+ }}, {{ // Beldum
+ {EVO_LEVEL, 20, SPECIES_METANG},
+ }}, {{ // Metang
+ {EVO_LEVEL, 45, SPECIES_METAGROSS},
+ }}, {{ // Metagross
+ }}, {{ // Regirock
+ }}, {{ // Regice
+ }}, {{ // Registeel
+ }}, {{ // Kyogre
+ }}, {{ // Groudon
+ }}, {{ // Rayquaza
+ }}, {{ // Latias
+ }}, {{ // Latios
+ }}, {{ // Jirachi
+ }}, {{ // Deoxys
+ }}, {{ // Chimecho
+ }}
+};
+
+#endif //POKERUBY_EVOLUTION_H
diff --git a/include/data/pokemon/experience_tables.h b/include/data/pokemon/experience_tables.h
new file mode 100644
index 000000000..70c5e88ed
--- /dev/null
+++ b/include/data/pokemon/experience_tables.h
@@ -0,0 +1,828 @@
+//
+// Created by Scott Norton on 6/27/17.
+//
+
+#ifndef POKERUBY_EXPERIENCE_TABLES_H
+#define POKERUBY_EXPERIENCE_TABLES_H
+
+const u32 gExperienceTables[][101] = {
+ { // Medium Fast
+ 0, // 0
+ 1, // 1
+ 8, // 2
+ 27, // 3
+ 64, // 4
+ 125, // 5
+ 216, // 6
+ 343, // 7
+ 512, // 8
+ 729, // 9
+ 1000, // 10
+ 1331, // 11
+ 1728, // 12
+ 2197, // 13
+ 2744, // 14
+ 3375, // 15
+ 4096, // 16
+ 4913, // 17
+ 5832, // 18
+ 6859, // 19
+ 8000, // 20
+ 9261, // 21
+ 10648, // 22
+ 12167, // 23
+ 13824, // 24
+ 15625, // 25
+ 17576, // 26
+ 19683, // 27
+ 21952, // 28
+ 24389, // 29
+ 27000, // 30
+ 29791, // 31
+ 32768, // 32
+ 35937, // 33
+ 39304, // 34
+ 42875, // 35
+ 46656, // 36
+ 50653, // 37
+ 54872, // 38
+ 59319, // 39
+ 64000, // 40
+ 68921, // 41
+ 74088, // 42
+ 79507, // 43
+ 85184, // 44
+ 91125, // 45
+ 97336, // 46
+ 103823, // 47
+ 110592, // 48
+ 117649, // 49
+ 125000, // 50
+ 132651, // 51
+ 140608, // 52
+ 148877, // 53
+ 157464, // 54
+ 166375, // 55
+ 175616, // 56
+ 185193, // 57
+ 195112, // 58
+ 205379, // 59
+ 216000, // 60
+ 226981, // 61
+ 238328, // 62
+ 250047, // 63
+ 262144, // 64
+ 274625, // 65
+ 287496, // 66
+ 300763, // 67
+ 314432, // 68
+ 328509, // 69
+ 343000, // 70
+ 357911, // 71
+ 373248, // 72
+ 389017, // 73
+ 405224, // 74
+ 421875, // 75
+ 438976, // 76
+ 456533, // 77
+ 474552, // 78
+ 493039, // 79
+ 512000, // 80
+ 531441, // 81
+ 551368, // 82
+ 571787, // 83
+ 592704, // 84
+ 614125, // 85
+ 636056, // 86
+ 658503, // 87
+ 681472, // 88
+ 704969, // 89
+ 729000, // 90
+ 753571, // 91
+ 778688, // 92
+ 804357, // 93
+ 830584, // 94
+ 857375, // 95
+ 884736, // 96
+ 912673, // 97
+ 941192, // 98
+ 970299, // 99
+ 1000000 // 100
+ }, { // Erratic
+ 0, // 0
+ 1, // 1
+ 15, // 2
+ 52, // 3
+ 122, // 4
+ 237, // 5
+ 406, // 6
+ 637, // 7
+ 942, // 8
+ 1326, // 9
+ 1800, // 10
+ 2369, // 11
+ 3041, // 12
+ 3822, // 13
+ 4719, // 14
+ 5737, // 15
+ 6881, // 16
+ 8155, // 17
+ 9564, // 18
+ 11111, // 19
+ 12800, // 20
+ 14632, // 21
+ 16610, // 22
+ 18737, // 23
+ 21012, // 24
+ 23437, // 25
+ 26012, // 26
+ 28737, // 27
+ 31610, // 28
+ 34632, // 29
+ 37800, // 30
+ 41111, // 31
+ 44564, // 32
+ 48155, // 33
+ 51881, // 34
+ 55737, // 35
+ 59719, // 36
+ 63822, // 37
+ 68041, // 38
+ 72369, // 39
+ 76800, // 40
+ 81326, // 41
+ 85942, // 42
+ 90637, // 43
+ 95406, // 44
+ 100237, // 45
+ 105122, // 46
+ 110052, // 47
+ 115015, // 48
+ 120001, // 49
+ 125000, // 50
+ 131324, // 51
+ 137795, // 52
+ 144410, // 53
+ 151165, // 54
+ 158056, // 55
+ 165079, // 56
+ 172229, // 57
+ 179503, // 58
+ 186894, // 59
+ 194400, // 60
+ 202013, // 61
+ 209728, // 62
+ 217540, // 63
+ 225443, // 64
+ 233431, // 65
+ 241496, // 66
+ 249633, // 67
+ 257834, // 68
+ 267406, // 69
+ 276458, // 70
+ 286328, // 71
+ 296358, // 72
+ 305767, // 73
+ 316074, // 74
+ 326531, // 75
+ 336255, // 76
+ 346965, // 77
+ 357812, // 78
+ 367807, // 79
+ 378880, // 80
+ 390077, // 81
+ 400293, // 82
+ 411686, // 83
+ 423190, // 84
+ 433572, // 85
+ 445239, // 86
+ 457001, // 87
+ 467489, // 88
+ 479378, // 89
+ 491346, // 90
+ 501878, // 91
+ 513934, // 92
+ 526049, // 93
+ 536557, // 94
+ 548720, // 95
+ 560922, // 96
+ 571333, // 97
+ 583539, // 98
+ 591882, // 99
+ 600000 // 100
+ }, { // Fluctuating
+ 0, // 0
+ 1, // 1
+ 4, // 2
+ 13, // 3
+ 32, // 4
+ 65, // 5
+ 112, // 6
+ 178, // 7
+ 276, // 8
+ 393, // 9
+ 540, // 10
+ 745, // 11
+ 967, // 12
+ 1230, // 13
+ 1591, // 14
+ 1957, // 15
+ 2457, // 16
+ 3046, // 17
+ 3732, // 18
+ 4526, // 19
+ 5440, // 20
+ 6482, // 21
+ 7666, // 22
+ 9003, // 23
+ 10506, // 24
+ 12187, // 25
+ 14060, // 26
+ 16140, // 27
+ 18439, // 28
+ 20974, // 29
+ 23760, // 30
+ 26811, // 31
+ 30146, // 32
+ 33780, // 33
+ 37731, // 34
+ 42017, // 35
+ 46656, // 36
+ 50653, // 37
+ 55969, // 38
+ 60505, // 39
+ 66560, // 40
+ 71677, // 41
+ 78533, // 42
+ 84277, // 43
+ 91998, // 44
+ 98415, // 45
+ 107069, // 46
+ 114205, // 47
+ 123863, // 48
+ 131766, // 49
+ 142500, // 50
+ 151222, // 51
+ 163105, // 52
+ 172697, // 53
+ 185807, // 54
+ 196322, // 55
+ 210739, // 56
+ 222231, // 57
+ 238036, // 58
+ 250562, // 59
+ 267840, // 60
+ 281456, // 61
+ 300293, // 62
+ 315059, // 63
+ 335544, // 64
+ 351520, // 65
+ 373744, // 66
+ 390991, // 67
+ 415050, // 68
+ 433631, // 69
+ 459620, // 70
+ 479600, // 71
+ 507617, // 72
+ 529063, // 73
+ 559209, // 74
+ 582187, // 75
+ 614566, // 76
+ 639146, // 77
+ 673863, // 78
+ 700115, // 79
+ 737280, // 80
+ 765275, // 81
+ 804997, // 82
+ 834809, // 83
+ 877201, // 84
+ 908905, // 85
+ 954084, // 86
+ 987754, // 87
+ 1035837, // 88
+ 1071552, // 89
+ 1122660, // 90
+ 1160499, // 91
+ 1214753, // 92
+ 1254796, // 93
+ 1312322, // 94
+ 1354652, // 95
+ 1415577, // 96
+ 1460276, // 97
+ 1524731, // 98
+ 1571884, // 99
+ 1640000 // 100
+ }, { // Medium Slow
+ 0, // 0
+ 1, // 1
+ 9, // 2
+ 57, // 3
+ 96, // 4
+ 135, // 5
+ 179, // 6
+ 236, // 7
+ 314, // 8
+ 419, // 9
+ 560, // 10
+ 742, // 11
+ 973, // 12
+ 1261, // 13
+ 1612, // 14
+ 2035, // 15
+ 2535, // 16
+ 3120, // 17
+ 3798, // 18
+ 4575, // 19
+ 5460, // 20
+ 6458, // 21
+ 7577, // 22
+ 8825, // 23
+ 10208, // 24
+ 11735, // 25
+ 13411, // 26
+ 15244, // 27
+ 17242, // 28
+ 19411, // 29
+ 21760, // 30
+ 24294, // 31
+ 27021, // 32
+ 29949, // 33
+ 33084, // 34
+ 36435, // 35
+ 40007, // 36
+ 43808, // 37
+ 47846, // 38
+ 52127, // 39
+ 56660, // 40
+ 61450, // 41
+ 66505, // 42
+ 71833, // 43
+ 77440, // 44
+ 83335, // 45
+ 89523, // 46
+ 96012, // 47
+ 102810, // 48
+ 109923, // 49
+ 117360, // 50
+ 125126, // 51
+ 133229, // 52
+ 141677, // 53
+ 150476, // 54
+ 159635, // 55
+ 169159, // 56
+ 179056, // 57
+ 189334, // 58
+ 199999, // 59
+ 211060, // 60
+ 222522, // 61
+ 234393, // 62
+ 246681, // 63
+ 259392, // 64
+ 272535, // 65
+ 286115, // 66
+ 300140, // 67
+ 314618, // 68
+ 329555, // 69
+ 344960, // 70
+ 360838, // 71
+ 377197, // 72
+ 394045, // 73
+ 411388, // 74
+ 429235, // 75
+ 447591, // 76
+ 466464, // 77
+ 485862, // 78
+ 505791, // 79
+ 526260, // 80
+ 547274, // 81
+ 568841, // 82
+ 590969, // 83
+ 613664, // 84
+ 636935, // 85
+ 660787, // 86
+ 685228, // 87
+ 710266, // 88
+ 735907, // 89
+ 762160, // 90
+ 789030, // 91
+ 816525, // 92
+ 844653, // 93
+ 873420, // 94
+ 902835, // 95
+ 932903, // 96
+ 963632, // 97
+ 995030, // 98
+ 1027103, // 99
+ 1059860 // 100
+ }, { // Fast
+ 0, // 0
+ 1, // 1
+ 6, // 2
+ 21, // 3
+ 51, // 4
+ 100, // 5
+ 172, // 6
+ 274, // 7
+ 409, // 8
+ 583, // 9
+ 800, // 10
+ 1064, // 11
+ 1382, // 12
+ 1757, // 13
+ 2195, // 14
+ 2700, // 15
+ 3276, // 16
+ 3930, // 17
+ 4665, // 18
+ 5487, // 19
+ 6400, // 20
+ 7408, // 21
+ 8518, // 22
+ 9733, // 23
+ 11059, // 24
+ 12500, // 25
+ 14060, // 26
+ 15746, // 27
+ 17561, // 28
+ 19511, // 29
+ 21600, // 30
+ 23832, // 31
+ 26214, // 32
+ 28749, // 33
+ 31443, // 34
+ 34300, // 35
+ 37324, // 36
+ 40522, // 37
+ 43897, // 38
+ 47455, // 39
+ 51200, // 40
+ 55136, // 41
+ 59270, // 42
+ 63605, // 43
+ 68147, // 44
+ 72900, // 45
+ 77868, // 46
+ 83058, // 47
+ 88473, // 48
+ 94119, // 49
+ 100000, // 50
+ 106120, // 51
+ 112486, // 52
+ 119101, // 53
+ 125971, // 54
+ 133100, // 55
+ 140492, // 56
+ 148154, // 57
+ 156089, // 58
+ 164303, // 59
+ 172800, // 60
+ 181584, // 61
+ 190662, // 62
+ 200037, // 63
+ 209715, // 64
+ 219700, // 65
+ 229996, // 66
+ 240610, // 67
+ 251545, // 68
+ 262807, // 69
+ 274400, // 70
+ 286328, // 71
+ 298598, // 72
+ 311213, // 73
+ 324179, // 74
+ 337500, // 75
+ 351180, // 76
+ 365226, // 77
+ 379641, // 78
+ 394431, // 79
+ 409600, // 80
+ 425152, // 81
+ 441094, // 82
+ 457429, // 83
+ 474163, // 84
+ 491300, // 85
+ 508844, // 86
+ 526802, // 87
+ 545177, // 88
+ 563975, // 89
+ 583200, // 90
+ 602856, // 91
+ 622950, // 92
+ 643485, // 93
+ 664467, // 94
+ 685900, // 95
+ 707788, // 96
+ 730138, // 97
+ 752953, // 98
+ 776239, // 99
+ 800000 // 100
+ }, { // Slow
+ 0, // 0
+ 1, // 1
+ 10, // 2
+ 33, // 3
+ 80, // 4
+ 156, // 5
+ 270, // 6
+ 428, // 7
+ 640, // 8
+ 911, // 9
+ 1250, // 10
+ 1663, // 11
+ 2160, // 12
+ 2746, // 13
+ 3430, // 14
+ 4218, // 15
+ 5120, // 16
+ 6141, // 17
+ 7290, // 18
+ 8573, // 19
+ 10000, // 20
+ 11576, // 21
+ 13310, // 22
+ 15208, // 23
+ 17280, // 24
+ 19531, // 25
+ 21970, // 26
+ 24603, // 27
+ 27440, // 28
+ 30486, // 29
+ 33750, // 30
+ 37238, // 31
+ 40960, // 32
+ 44921, // 33
+ 49130, // 34
+ 53593, // 35
+ 58320, // 36
+ 63316, // 37
+ 68590, // 38
+ 74148, // 39
+ 80000, // 40
+ 86151, // 41
+ 92610, // 42
+ 99383, // 43
+ 106480, // 44
+ 113906, // 45
+ 121670, // 46
+ 129778, // 47
+ 138240, // 48
+ 147061, // 49
+ 156250, // 50
+ 165813, // 51
+ 175760, // 52
+ 186096, // 53
+ 196830, // 54
+ 207968, // 55
+ 219520, // 56
+ 231491, // 57
+ 243890, // 58
+ 256723, // 59
+ 270000, // 60
+ 283726, // 61
+ 297910, // 62
+ 312558, // 63
+ 327680, // 64
+ 343281, // 65
+ 359370, // 66
+ 375953, // 67
+ 393040, // 68
+ 410636, // 69
+ 428750, // 70
+ 447388, // 71
+ 466560, // 72
+ 486271, // 73
+ 506530, // 74
+ 527343, // 75
+ 548720, // 76
+ 570666, // 77
+ 593190, // 78
+ 616298, // 79
+ 640000, // 80
+ 664301, // 81
+ 689210, // 82
+ 714733, // 83
+ 740880, // 84
+ 767656, // 85
+ 795070, // 86
+ 823128, // 87
+ 851840, // 88
+ 881211, // 89
+ 911250, // 90
+ 941963, // 91
+ 973360, // 92
+ 1005446, // 93
+ 1038230, // 94
+ 1071718, // 95
+ 1105920, // 96
+ 1140841, // 97
+ 1176490, // 98
+ 1212873, // 99
+ 1250000 // 100
+ }, { // Medium Fast copy 2 (unused? to-do: investigate)
+ 0, // 0
+ 1, // 1
+ 8, // 2
+ 27, // 3
+ 64, // 4
+ 125, // 5
+ 216, // 6
+ 343, // 7
+ 512, // 8
+ 729, // 9
+ 1000, // 10
+ 1331, // 11
+ 1728, // 12
+ 2197, // 13
+ 2744, // 14
+ 3375, // 15
+ 4096, // 16
+ 4913, // 17
+ 5832, // 18
+ 6859, // 19
+ 8000, // 20
+ 9261, // 21
+ 10648, // 22
+ 12167, // 23
+ 13824, // 24
+ 15625, // 25
+ 17576, // 26
+ 19683, // 27
+ 21952, // 28
+ 24389, // 29
+ 27000, // 30
+ 29791, // 31
+ 32768, // 32
+ 35937, // 33
+ 39304, // 34
+ 42875, // 35
+ 46656, // 36
+ 50653, // 37
+ 54872, // 38
+ 59319, // 39
+ 64000, // 40
+ 68921, // 41
+ 74088, // 42
+ 79507, // 43
+ 85184, // 44
+ 91125, // 45
+ 97336, // 46
+ 103823, // 47
+ 110592, // 48
+ 117649, // 49
+ 125000, // 50
+ 132651, // 51
+ 140608, // 52
+ 148877, // 53
+ 157464, // 54
+ 166375, // 55
+ 175616, // 56
+ 185193, // 57
+ 195112, // 58
+ 205379, // 59
+ 216000, // 60
+ 226981, // 61
+ 238328, // 62
+ 250047, // 63
+ 262144, // 64
+ 274625, // 65
+ 287496, // 66
+ 300763, // 67
+ 314432, // 68
+ 328509, // 69
+ 343000, // 70
+ 357911, // 71
+ 373248, // 72
+ 389017, // 73
+ 405224, // 74
+ 421875, // 75
+ 438976, // 76
+ 456533, // 77
+ 474552, // 78
+ 493039, // 79
+ 512000, // 80
+ 531441, // 81
+ 551368, // 82
+ 571787, // 83
+ 592704, // 84
+ 614125, // 85
+ 636056, // 86
+ 658503, // 87
+ 681472, // 88
+ 704969, // 89
+ 729000, // 90
+ 753571, // 91
+ 778688, // 92
+ 804357, // 93
+ 830584, // 94
+ 857375, // 95
+ 884736, // 96
+ 912673, // 97
+ 941192, // 98
+ 970299, // 99
+ 1000000 // 100
+ }, { // Medium Fast copy 3 (unused? to-do: investigate)
+ 0, // 0
+ 1, // 1
+ 8, // 2
+ 27, // 3
+ 64, // 4
+ 125, // 5
+ 216, // 6
+ 343, // 7
+ 512, // 8
+ 729, // 9
+ 1000, // 10
+ 1331, // 11
+ 1728, // 12
+ 2197, // 13
+ 2744, // 14
+ 3375, // 15
+ 4096, // 16
+ 4913, // 17
+ 5832, // 18
+ 6859, // 19
+ 8000, // 20
+ 9261, // 21
+ 10648, // 22
+ 12167, // 23
+ 13824, // 24
+ 15625, // 25
+ 17576, // 26
+ 19683, // 27
+ 21952, // 28
+ 24389, // 29
+ 27000, // 30
+ 29791, // 31
+ 32768, // 32
+ 35937, // 33
+ 39304, // 34
+ 42875, // 35
+ 46656, // 36
+ 50653, // 37
+ 54872, // 38
+ 59319, // 39
+ 64000, // 40
+ 68921, // 41
+ 74088, // 42
+ 79507, // 43
+ 85184, // 44
+ 91125, // 45
+ 97336, // 46
+ 103823, // 47
+ 110592, // 48
+ 117649, // 49
+ 125000, // 50
+ 132651, // 51
+ 140608, // 52
+ 148877, // 53
+ 157464, // 54
+ 166375, // 55
+ 175616, // 56
+ 185193, // 57
+ 195112, // 58
+ 205379, // 59
+ 216000, // 60
+ 226981, // 61
+ 238328, // 62
+ 250047, // 63
+ 262144, // 64
+ 274625, // 65
+ 287496, // 66
+ 300763, // 67
+ 314432, // 68
+ 328509, // 69
+ 343000, // 70
+ 357911, // 71
+ 373248, // 72
+ 389017, // 73
+ 405224, // 74
+ 421875, // 75
+ 438976, // 76
+ 456533, // 77
+ 474552, // 78
+ 493039, // 79
+ 512000, // 80
+ 531441, // 81
+ 551368, // 82
+ 571787, // 83
+ 592704, // 84
+ 614125, // 85
+ 636056, // 86
+ 658503, // 87
+ 681472, // 88
+ 704969, // 89
+ 729000, // 90
+ 753571, // 91
+ 778688, // 92
+ 804357, // 93
+ 830584, // 94
+ 857375, // 95
+ 884736, // 96
+ 912673, // 97
+ 941192, // 98
+ 970299, // 99
+ 1000000 // 100
+ }
+};
+
+#endif //POKERUBY_EXPERIENCE_TABLES_H
diff --git a/include/data/pokemon/item_effects.h b/include/data/pokemon/item_effects.h
new file mode 100644
index 000000000..b07573933
--- /dev/null
+++ b/include/data/pokemon/item_effects.h
@@ -0,0 +1,824 @@
+//
+// Created by Scott Norton on 6/27/17.
+//
+
+#ifndef POKERUBY_ITEM_EFFECTS_H
+#define POKERUBY_ITEM_EFFECTS_H
+
+const u8 gItemEffect_Potion[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0x00,
+ 20
+};
+
+const u8 gItemEffect_Antidote[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x10,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_BurnHeal[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x08,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_IceHeal[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_Awakening[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x20,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_ParalyzeHeal[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_FullRestore[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x3f,
+ 0x04,
+ 0x00,
+ 0xff
+};
+
+const u8 gItemEffect_MaxPotion[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0x00,
+ 0xff
+};
+
+const u8 gItemEffect_HyperPotion[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0x00,
+ 200
+};
+
+const u8 gItemEffect_SuperPotion[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0x00,
+ 50
+};
+
+const u8 gItemEffect_FullHeal[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x3f,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_Revive[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x44,
+ 0x00,
+ 0xfe
+};
+
+const u8 gItemEffect_MaxRevive[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x44,
+ 0x00,
+ 0xff
+};
+
+const u8 gItemEffect_FreshWater[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0x00,
+ 50
+};
+
+const u8 gItemEffect_SodaPop[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0x00,
+ 60
+};
+
+const u8 gItemEffect_Lemonade[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0x00,
+ 80
+};
+
+const u8 gItemEffect_MoomooMilk[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0x00,
+ 100
+};
+
+const u8 gItemEffect_EnergyPowder[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0xe0,
+ 50,
+ 0xfb,
+ 0xfb,
+ 0xf6
+};
+
+const u8 gItemEffect_EnergyRoot[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0xe0,
+ 200,
+ 0xf6,
+ 0xf6,
+ 0xf1
+};
+
+const u8 gItemEffect_HealPowder[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x3f,
+ 0x00,
+ 0xe0,
+ 0xfb,
+ 0xfb,
+ 0xf6
+};
+
+const u8 gItemEffect_RevivalHerb[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x44,
+ 0xe0,
+ 0xfe,
+ 0xf1,
+ 0xf1,
+ 0xec
+};
+
+const u8 gItemEffect_Ether[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x18,
+ 0x00,
+ 0x0a
+};
+
+const u8 gItemEffect_MaxEther[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x18,
+ 0x00,
+ 0x7f
+};
+
+const u8 gItemEffect_Elixir[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x08,
+ 0x00,
+ 0x0a
+};
+
+const u8 gItemEffect_MaxElixir[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x08,
+ 0x00,
+ 0x7f
+};
+
+const u8 gItemEffect_LavaCookie[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x3f,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_BlueFlute[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x20,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_YellowFlute[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_RedFlute[] = {
+ 0x80,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_BerryJuice[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0x00,
+ 20
+};
+
+const u8 gItemEffect_SacredAsh[] = {
+ 0x40,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x44,
+ 0x00,
+ 0xff
+};
+
+const u8 gItemEffect_HPUp[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x01,
+ 0xe0,
+ 0x0a,
+ 0x05,
+ 0x03,
+ 0x02
+};
+
+const u8 gItemEffect_Protein[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x02,
+ 0xe0,
+ 0x0a,
+ 0x05,
+ 0x03,
+ 0x02
+};
+
+const u8 gItemEffect_Iron[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xe1,
+ 0x0a,
+ 0x05,
+ 0x03,
+ 0x02
+};
+
+const u8 gItemEffect_Carbos[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xe2,
+ 0x0a,
+ 0x05,
+ 0x03,
+ 0x02
+};
+
+const u8 gItemEffect_Calcium[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xe8,
+ 0x0a,
+ 0x05,
+ 0x03,
+ 0x02
+};
+
+const u8 gItemEffect_RareCandy[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x40,
+ 0x44,
+ 0xe0,
+ 253,
+ 0x05,
+ 0x03,
+ 0x02
+};
+
+const u8 gItemEffect_PPUp[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x20,
+ 0xe0,
+ 0x05,
+ 0x03,
+ 0x02
+};
+
+const u8 gItemEffect_Zinc[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xe4,
+ 0x0a,
+ 0x05,
+ 0x03,
+ 0x02
+};
+
+const u8 gItemEffect_PPMax[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xf0,
+ 0x05,
+ 0x03,
+ 0x02
+};
+
+const u8 gItemEffect_GuardSpec[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x80,
+ 0x00,
+ 0x60,
+ 0x01,
+ 0x01
+};
+
+const u8 gItemEffect_DireHit[] = {
+ 0x20,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x60,
+ 0x01,
+ 0x01
+};
+
+const u8 gItemEffect_XAttack[] = {
+ 0x01,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x60,
+ 0x01,
+ 0x01
+};
+
+const u8 gItemEffect_XDefend[] = {
+ 0x00,
+ 0x10,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x60,
+ 0x01,
+ 0x01
+};
+
+const u8 gItemEffect_XSpeed[] = {
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x60,
+ 0x01,
+ 0x01
+};
+
+const u8 gItemEffect_XAccuracy[] = {
+ 0x00,
+ 0x00,
+ 0x10,
+ 0x00,
+ 0x00,
+ 0x60,
+ 0x01,
+ 0x01
+};
+
+const u8 gItemEffect_XSpecial[] = {
+ 0x00,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x00,
+ 0x60,
+ 0x01,
+ 0x01
+};
+
+const u8 gItemEffect_SunStone[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x80,
+ 0x00
+};
+
+const u8 gItemEffect_MoonStone[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x80,
+ 0x00
+};
+
+const u8 gItemEffect_FireStone[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x80,
+ 0x00
+};
+
+const u8 gItemEffect_ThunderStone[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x80,
+ 0x00
+};
+
+const u8 gItemEffect_WaterStone[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x80,
+ 0x00
+};
+
+const u8 gItemEffect_LeafStone[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x80,
+ 0x00
+};
+
+const u8 gItemEffect_CheriBerry[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x02,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_ChestoBerry[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x20,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_PechaBerry[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x10,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_RawstBerry[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x08,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_AspearBerry[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_LeppaBerry[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x18,
+ 0x00,
+ 0x0a
+};
+
+const u8 gItemEffect_OranBerry[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0x00,
+ 10
+};
+
+const u8 gItemEffect_PersimBerry[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x01,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_LumBerry[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x3f,
+ 0x00,
+ 0x00
+};
+
+const u8 gItemEffect_SitrusBerry[] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x04,
+ 0x00,
+ 30
+};
+
+const u8 *const gItemEffectTable[] = {
+ gItemEffect_Potion,
+ gItemEffect_Antidote,
+ gItemEffect_BurnHeal,
+ gItemEffect_IceHeal,
+ gItemEffect_Awakening,
+ gItemEffect_ParalyzeHeal,
+ gItemEffect_FullRestore,
+ gItemEffect_MaxPotion,
+ gItemEffect_HyperPotion,
+ gItemEffect_SuperPotion,
+ gItemEffect_FullHeal,
+ gItemEffect_Revive,
+ gItemEffect_MaxRevive,
+ gItemEffect_FreshWater,
+ gItemEffect_SodaPop,
+ gItemEffect_Lemonade,
+ gItemEffect_MoomooMilk,
+ gItemEffect_EnergyPowder,
+ gItemEffect_EnergyRoot,
+ gItemEffect_HealPowder,
+ gItemEffect_RevivalHerb,
+ gItemEffect_Ether,
+ gItemEffect_MaxEther,
+ gItemEffect_Elixir,
+ gItemEffect_MaxElixir,
+ gItemEffect_LavaCookie,
+ gItemEffect_BlueFlute,
+ gItemEffect_YellowFlute,
+ gItemEffect_RedFlute,
+ NULL,
+ NULL,
+ gItemEffect_BerryJuice,
+ gItemEffect_SacredAsh,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ gItemEffect_HPUp,
+ gItemEffect_Protein,
+ gItemEffect_Iron,
+ gItemEffect_Carbos,
+ gItemEffect_Calcium,
+ gItemEffect_RareCandy,
+ gItemEffect_PPUp,
+ gItemEffect_Zinc,
+ gItemEffect_PPMax,
+ NULL,
+ gItemEffect_GuardSpec,
+ gItemEffect_DireHit,
+ gItemEffect_XAttack,
+ gItemEffect_XDefend,
+ gItemEffect_XSpeed,
+ gItemEffect_XAccuracy,
+ gItemEffect_XSpecial,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ gItemEffect_SunStone,
+ gItemEffect_MoonStone,
+ gItemEffect_FireStone,
+ gItemEffect_ThunderStone,
+ gItemEffect_WaterStone,
+ gItemEffect_LeafStone,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ gItemEffect_CheriBerry,
+ gItemEffect_ChestoBerry,
+ gItemEffect_PechaBerry,
+ gItemEffect_RawstBerry,
+ gItemEffect_AspearBerry,
+ gItemEffect_LeppaBerry,
+ gItemEffect_OranBerry,
+ gItemEffect_PersimBerry,
+ gItemEffect_LumBerry,
+ gItemEffect_SitrusBerry,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
+#endif //POKERUBY_ITEM_EFFECTS_H
diff --git a/include/data/pokemon/level_up_learnset_pointers.h b/include/data/pokemon/level_up_learnset_pointers.h
new file mode 100644
index 000000000..753947d51
--- /dev/null
+++ b/include/data/pokemon/level_up_learnset_pointers.h
@@ -0,0 +1,423 @@
+//
+// Created by Scott Norton on 6/27/17.
+//
+
+#ifndef POKERUBY_LEVEL_UP_LEARNSET_POINTERS_H
+#define POKERUBY_LEVEL_UP_LEARNSET_POINTERS_H
+
+const u16 *const gLevelUpLearnsets[] = {
+ gBulbasaurLevelUpLearnset,
+ gBulbasaurLevelUpLearnset,
+ gIvysaurLevelUpLearnset,
+ gVenusaurLevelUpLearnset,
+ gCharmanderLevelUpLearnset,
+ gCharmeleonLevelUpLearnset,
+ gCharizardLevelUpLearnset,
+ gSquirtleLevelUpLearnset,
+ gWartortleLevelUpLearnset,
+ gBlastoiseLevelUpLearnset,
+ gCaterpieLevelUpLearnset,
+ gMetapodLevelUpLearnset,
+ gButterfreeLevelUpLearnset,
+ gWeedleLevelUpLearnset,
+ gKakunaLevelUpLearnset,
+ gBeedrillLevelUpLearnset,
+ gPidgeyLevelUpLearnset,
+ gPidgeottoLevelUpLearnset,
+ gPidgeotLevelUpLearnset,
+ gRattataLevelUpLearnset,
+ gRaticateLevelUpLearnset,
+ gSpearowLevelUpLearnset,
+ gFearowLevelUpLearnset,
+ gEkansLevelUpLearnset,
+ gArbokLevelUpLearnset,
+ gPikachuLevelUpLearnset,
+ gRaichuLevelUpLearnset,
+ gSandshrewLevelUpLearnset,
+ gSandslashLevelUpLearnset,
+ gNidoranFLevelUpLearnset,
+ gNidorinaLevelUpLearnset,
+ gNidoqueenLevelUpLearnset,
+ gNidoranMLevelUpLearnset,
+ gNidorinoLevelUpLearnset,
+ gNidokingLevelUpLearnset,
+ gClefairyLevelUpLearnset,
+ gClefableLevelUpLearnset,
+ gVulpixLevelUpLearnset,
+ gNinetalesLevelUpLearnset,
+ gJigglypuffLevelUpLearnset,
+ gWigglytuffLevelUpLearnset,
+ gZubatLevelUpLearnset,
+ gGolbatLevelUpLearnset,
+ gOddishLevelUpLearnset,
+ gGloomLevelUpLearnset,
+ gVileplumeLevelUpLearnset,
+ gParasLevelUpLearnset,
+ gParasectLevelUpLearnset,
+ gVenonatLevelUpLearnset,
+ gVenomothLevelUpLearnset,
+ gDiglettLevelUpLearnset,
+ gDugtrioLevelUpLearnset,
+ gMeowthLevelUpLearnset,
+ gPersianLevelUpLearnset,
+ gPsyduckLevelUpLearnset,
+ gGolduckLevelUpLearnset,
+ gMankeyLevelUpLearnset,
+ gPrimeapeLevelUpLearnset,
+ gGrowlitheLevelUpLearnset,
+ gArcanineLevelUpLearnset,
+ gPoliwagLevelUpLearnset,
+ gPoliwhirlLevelUpLearnset,
+ gPoliwrathLevelUpLearnset,
+ gAbraLevelUpLearnset,
+ gKadabraLevelUpLearnset,
+ gAlakazamLevelUpLearnset,
+ gMachopLevelUpLearnset,
+ gMachokeLevelUpLearnset,
+ gMachampLevelUpLearnset,
+ gBellsproutLevelUpLearnset,
+ gWeepinbellLevelUpLearnset,
+ gVictreebelLevelUpLearnset,
+ gTentacoolLevelUpLearnset,
+ gTentacruelLevelUpLearnset,
+ gGeodudeLevelUpLearnset,
+ gGravelerLevelUpLearnset,
+ gGolemLevelUpLearnset,
+ gPonytaLevelUpLearnset,
+ gRapidashLevelUpLearnset,
+ gSlowpokeLevelUpLearnset,
+ gSlowbroLevelUpLearnset,
+ gMagnemiteLevelUpLearnset,
+ gMagnetonLevelUpLearnset,
+ gFarfetchdLevelUpLearnset,
+ gDoduoLevelUpLearnset,
+ gDodrioLevelUpLearnset,
+ gSeelLevelUpLearnset,
+ gDewgongLevelUpLearnset,
+ gGrimerLevelUpLearnset,
+ gMukLevelUpLearnset,
+ gShellderLevelUpLearnset,
+ gCloysterLevelUpLearnset,
+ gGastlyLevelUpLearnset,
+ gHaunterLevelUpLearnset,
+ gGengarLevelUpLearnset,
+ gOnixLevelUpLearnset,
+ gDrowzeeLevelUpLearnset,
+ gHypnoLevelUpLearnset,
+ gKrabbyLevelUpLearnset,
+ gKinglerLevelUpLearnset,
+ gVoltorbLevelUpLearnset,
+ gElectrodeLevelUpLearnset,
+ gExeggcuteLevelUpLearnset,
+ gExeggutorLevelUpLearnset,
+ gCuboneLevelUpLearnset,
+ gMarowakLevelUpLearnset,
+ gHitmonleeLevelUpLearnset,
+ gHitmonchanLevelUpLearnset,
+ gLickitungLevelUpLearnset,
+ gKoffingLevelUpLearnset,
+ gWeezingLevelUpLearnset,
+ gRhyhornLevelUpLearnset,
+ gRhydonLevelUpLearnset,
+ gChanseyLevelUpLearnset,
+ gTangelaLevelUpLearnset,
+ gKangaskhanLevelUpLearnset,
+ gHorseaLevelUpLearnset,
+ gSeadraLevelUpLearnset,
+ gGoldeenLevelUpLearnset,
+ gSeakingLevelUpLearnset,
+ gStaryuLevelUpLearnset,
+ gStarmieLevelUpLearnset,
+ gMrmimeLevelUpLearnset,
+ gScytherLevelUpLearnset,
+ gJynxLevelUpLearnset,
+ gElectabuzzLevelUpLearnset,
+ gMagmarLevelUpLearnset,
+ gPinsirLevelUpLearnset,
+ gTaurosLevelUpLearnset,
+ gMagikarpLevelUpLearnset,
+ gGyaradosLevelUpLearnset,
+ gLaprasLevelUpLearnset,
+ gDittoLevelUpLearnset,
+ gEeveeLevelUpLearnset,
+ gVaporeonLevelUpLearnset,
+ gJolteonLevelUpLearnset,
+ gFlareonLevelUpLearnset,
+ gPorygonLevelUpLearnset,
+ gOmanyteLevelUpLearnset,
+ gOmastarLevelUpLearnset,
+ gKabutoLevelUpLearnset,
+ gKabutopsLevelUpLearnset,
+ gAerodactylLevelUpLearnset,
+ gSnorlaxLevelUpLearnset,
+ gArticunoLevelUpLearnset,
+ gZapdosLevelUpLearnset,
+ gMoltresLevelUpLearnset,
+ gDratiniLevelUpLearnset,
+ gDragonairLevelUpLearnset,
+ gDragoniteLevelUpLearnset,
+ gMewtwoLevelUpLearnset,
+ gMewLevelUpLearnset,
+ gChikoritaLevelUpLearnset,
+ gBayleefLevelUpLearnset,
+ gMeganiumLevelUpLearnset,
+ gCyndaquilLevelUpLearnset,
+ gQuilavaLevelUpLearnset,
+ gTyphlosionLevelUpLearnset,
+ gTotodileLevelUpLearnset,
+ gCroconawLevelUpLearnset,
+ gFeraligatrLevelUpLearnset,
+ gSentretLevelUpLearnset,
+ gFurretLevelUpLearnset,
+ gHoothootLevelUpLearnset,
+ gNoctowlLevelUpLearnset,
+ gLedybaLevelUpLearnset,
+ gLedianLevelUpLearnset,
+ gSpinarakLevelUpLearnset,
+ gAriadosLevelUpLearnset,
+ gCrobatLevelUpLearnset,
+ gChinchouLevelUpLearnset,
+ gLanturnLevelUpLearnset,
+ gPichuLevelUpLearnset,
+ gCleffaLevelUpLearnset,
+ gIgglybuffLevelUpLearnset,
+ gTogepiLevelUpLearnset,
+ gTogeticLevelUpLearnset,
+ gNatuLevelUpLearnset,
+ gXatuLevelUpLearnset,
+ gMareepLevelUpLearnset,
+ gFlaaffyLevelUpLearnset,
+ gAmpharosLevelUpLearnset,
+ gBellossomLevelUpLearnset,
+ gMarillLevelUpLearnset,
+ gAzumarillLevelUpLearnset,
+ gSudowoodoLevelUpLearnset,
+ gPolitoedLevelUpLearnset,
+ gHoppipLevelUpLearnset,
+ gSkiploomLevelUpLearnset,
+ gJumpluffLevelUpLearnset,
+ gAipomLevelUpLearnset,
+ gSunkernLevelUpLearnset,
+ gSunfloraLevelUpLearnset,
+ gYanmaLevelUpLearnset,
+ gWooperLevelUpLearnset,
+ gQuagsireLevelUpLearnset,
+ gEspeonLevelUpLearnset,
+ gUmbreonLevelUpLearnset,
+ gMurkrowLevelUpLearnset,
+ gSlowkingLevelUpLearnset,
+ gMisdreavusLevelUpLearnset,
+ gUnownLevelUpLearnset,
+ gWobbuffetLevelUpLearnset,
+ gGirafarigLevelUpLearnset,
+ gPinecoLevelUpLearnset,
+ gForretressLevelUpLearnset,
+ gDunsparceLevelUpLearnset,
+ gGligarLevelUpLearnset,
+ gSteelixLevelUpLearnset,
+ gSnubbullLevelUpLearnset,
+ gGranbullLevelUpLearnset,
+ gQwilfishLevelUpLearnset,
+ gScizorLevelUpLearnset,
+ gShuckleLevelUpLearnset,
+ gHeracrossLevelUpLearnset,
+ gSneaselLevelUpLearnset,
+ gTeddiursaLevelUpLearnset,
+ gUrsaringLevelUpLearnset,
+ gSlugmaLevelUpLearnset,
+ gMagcargoLevelUpLearnset,
+ gSwinubLevelUpLearnset,
+ gPiloswineLevelUpLearnset,
+ gCorsolaLevelUpLearnset,
+ gRemoraidLevelUpLearnset,
+ gOctilleryLevelUpLearnset,
+ gDelibirdLevelUpLearnset,
+ gMantineLevelUpLearnset,
+ gSkarmoryLevelUpLearnset,
+ gHoundourLevelUpLearnset,
+ gHoundoomLevelUpLearnset,
+ gKingdraLevelUpLearnset,
+ gPhanpyLevelUpLearnset,
+ gDonphanLevelUpLearnset,
+ gPorygon2LevelUpLearnset,
+ gStantlerLevelUpLearnset,
+ gSmeargleLevelUpLearnset,
+ gTyrogueLevelUpLearnset,
+ gHitmontopLevelUpLearnset,
+ gSmoochumLevelUpLearnset,
+ gElekidLevelUpLearnset,
+ gMagbyLevelUpLearnset,
+ gMiltankLevelUpLearnset,
+ gBlisseyLevelUpLearnset,
+ gRaikouLevelUpLearnset,
+ gEnteiLevelUpLearnset,
+ gSuicuneLevelUpLearnset,
+ gLarvitarLevelUpLearnset,
+ gPupitarLevelUpLearnset,
+ gTyranitarLevelUpLearnset,
+ gLugiaLevelUpLearnset,
+ gHoOhLevelUpLearnset,
+ gCelebiLevelUpLearnset,
+ gSpecies252LevelUpLearnset,
+ gSpecies253LevelUpLearnset,
+ gSpecies254LevelUpLearnset,
+ gSpecies255LevelUpLearnset,
+ gSpecies256LevelUpLearnset,
+ gSpecies257LevelUpLearnset,
+ gSpecies258LevelUpLearnset,
+ gSpecies259LevelUpLearnset,
+ gSpecies260LevelUpLearnset,
+ gSpecies261LevelUpLearnset,
+ gSpecies262LevelUpLearnset,
+ gSpecies263LevelUpLearnset,
+ gSpecies264LevelUpLearnset,
+ gSpecies265LevelUpLearnset,
+ gSpecies266LevelUpLearnset,
+ gSpecies267LevelUpLearnset,
+ gSpecies268LevelUpLearnset,
+ gSpecies269LevelUpLearnset,
+ gSpecies270LevelUpLearnset,
+ gSpecies271LevelUpLearnset,
+ gSpecies272LevelUpLearnset,
+ gSpecies273LevelUpLearnset,
+ gSpecies274LevelUpLearnset,
+ gSpecies275LevelUpLearnset,
+ gSpecies276LevelUpLearnset,
+ gTreeckoLevelUpLearnset,
+ gGrovyleLevelUpLearnset,
+ gSceptileLevelUpLearnset,
+ gTorchicLevelUpLearnset,
+ gCombuskenLevelUpLearnset,
+ gBlazikenLevelUpLearnset,
+ gMudkipLevelUpLearnset,
+ gMarshtompLevelUpLearnset,
+ gSwampertLevelUpLearnset,
+ gPoochyenaLevelUpLearnset,
+ gMightyenaLevelUpLearnset,
+ gZigzagoonLevelUpLearnset,
+ gLinooneLevelUpLearnset,
+ gWurmpleLevelUpLearnset,
+ gSilcoonLevelUpLearnset,
+ gBeautiflyLevelUpLearnset,
+ gCascoonLevelUpLearnset,
+ gDustoxLevelUpLearnset,
+ gLotadLevelUpLearnset,
+ gLombreLevelUpLearnset,
+ gLudicoloLevelUpLearnset,
+ gSeedotLevelUpLearnset,
+ gNuzleafLevelUpLearnset,
+ gShiftryLevelUpLearnset,
+ gNincadaLevelUpLearnset,
+ gNinjaskLevelUpLearnset,
+ gShedinjaLevelUpLearnset,
+ gTaillowLevelUpLearnset,
+ gSwellowLevelUpLearnset,
+ gShroomishLevelUpLearnset,
+ gBreloomLevelUpLearnset,
+ gSpindaLevelUpLearnset,
+ gWingullLevelUpLearnset,
+ gPelipperLevelUpLearnset,
+ gSurskitLevelUpLearnset,
+ gMasquerainLevelUpLearnset,
+ gWailmerLevelUpLearnset,
+ gWailordLevelUpLearnset,
+ gSkittyLevelUpLearnset,
+ gDelcattyLevelUpLearnset,
+ gKecleonLevelUpLearnset,
+ gBaltoyLevelUpLearnset,
+ gClaydolLevelUpLearnset,
+ gNosepassLevelUpLearnset,
+ gTorkoalLevelUpLearnset,
+ gSableyeLevelUpLearnset,
+ gBarboachLevelUpLearnset,
+ gWhiscashLevelUpLearnset,
+ gLuvdiscLevelUpLearnset,
+ gCorphishLevelUpLearnset,
+ gCrawdauntLevelUpLearnset,
+ gFeebasLevelUpLearnset,
+ gMiloticLevelUpLearnset,
+ gCarvanhaLevelUpLearnset,
+ gSharpedoLevelUpLearnset,
+ gTrapinchLevelUpLearnset,
+ gVibravaLevelUpLearnset,
+ gFlygonLevelUpLearnset,
+ gMakuhitaLevelUpLearnset,
+ gHariyamaLevelUpLearnset,
+ gElectrikeLevelUpLearnset,
+ gManectricLevelUpLearnset,
+ gNumelLevelUpLearnset,
+ gCameruptLevelUpLearnset,
+ gSphealLevelUpLearnset,
+ gSealeoLevelUpLearnset,
+ gWalreinLevelUpLearnset,
+ gCacneaLevelUpLearnset,
+ gCacturneLevelUpLearnset,
+ gSnoruntLevelUpLearnset,
+ gGlalieLevelUpLearnset,
+ gLunatoneLevelUpLearnset,
+ gSolrockLevelUpLearnset,
+ gAzurillLevelUpLearnset,
+ gSpoinkLevelUpLearnset,
+ gGrumpigLevelUpLearnset,
+ gPlusleLevelUpLearnset,
+ gMinunLevelUpLearnset,
+ gMawileLevelUpLearnset,
+ gMedititeLevelUpLearnset,
+ gMedichamLevelUpLearnset,
+ gSwabluLevelUpLearnset,
+ gAltariaLevelUpLearnset,
+ gWynautLevelUpLearnset,
+ gDuskullLevelUpLearnset,
+ gDusclopsLevelUpLearnset,
+ gRoseliaLevelUpLearnset,
+ gSlakothLevelUpLearnset,
+ gVigorothLevelUpLearnset,
+ gSlakingLevelUpLearnset,
+ gGulpinLevelUpLearnset,
+ gSwalotLevelUpLearnset,
+ gTropiusLevelUpLearnset,
+ gWhismurLevelUpLearnset,
+ gLoudredLevelUpLearnset,
+ gExploudLevelUpLearnset,
+ gClamperlLevelUpLearnset,
+ gHuntailLevelUpLearnset,
+ gGorebyssLevelUpLearnset,
+ gAbsolLevelUpLearnset,
+ gShuppetLevelUpLearnset,
+ gBanetteLevelUpLearnset,
+ gSeviperLevelUpLearnset,
+ gZangooseLevelUpLearnset,
+ gRelicanthLevelUpLearnset,
+ gAronLevelUpLearnset,
+ gLaironLevelUpLearnset,
+ gAggronLevelUpLearnset,
+ gCastformLevelUpLearnset,
+ gVolbeatLevelUpLearnset,
+ gIllumiseLevelUpLearnset,
+ gLileepLevelUpLearnset,
+ gCradilyLevelUpLearnset,
+ gAnorithLevelUpLearnset,
+ gArmaldoLevelUpLearnset,
+ gRaltsLevelUpLearnset,
+ gKirliaLevelUpLearnset,
+ gGardevoirLevelUpLearnset,
+ gBagonLevelUpLearnset,
+ gShelgonLevelUpLearnset,
+ gSalamenceLevelUpLearnset,
+ gBeldumLevelUpLearnset,
+ gMetangLevelUpLearnset,
+ gMetagrossLevelUpLearnset,
+ gRegirockLevelUpLearnset,
+ gRegiceLevelUpLearnset,
+ gRegisteelLevelUpLearnset,
+ gKyogreLevelUpLearnset,
+ gGroudonLevelUpLearnset,
+ gRayquazaLevelUpLearnset,
+ gLatiasLevelUpLearnset,
+ gLatiosLevelUpLearnset,
+ gJirachiLevelUpLearnset,
+ gDeoxysLevelUpLearnset,
+ gChimechoLevelUpLearnset
+};
+
+#endif //POKERUBY_LEVEL_UP_LEARNSET_POINTERS_H
diff --git a/include/data/pokemon/level_up_learnsets.h b/include/data/pokemon/level_up_learnsets.h
new file mode 100644
index 000000000..5b79f4bc0
--- /dev/null
+++ b/include/data/pokemon/level_up_learnsets.h
@@ -0,0 +1,5627 @@
+//
+// Created by Scott Norton on 6/27/17.
+//
+
+#ifndef POKERUBY_LEVEL_UP_LEARNSETS_H
+#define POKERUBY_LEVEL_UP_LEARNSETS_H
+
+#define LEVEL_UP_MOVE(lvl, move) ((lvl << 9) | move)
+#define LEVEL_UP_END 0xffff
+
+const u16 gBulbasaurLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(10, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(25, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(32, MOVE_GROWTH),
+ LEVEL_UP_MOVE(39, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gIvysaurLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE( 4, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(10, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(22, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(38, MOVE_GROWTH),
+ LEVEL_UP_MOVE(47, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gVenusaurLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE( 4, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(10, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(22, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(41, MOVE_GROWTH),
+ LEVEL_UP_MOVE(53, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gCharmanderLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_EMBER),
+ LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(19, MOVE_RAGE),
+ LEVEL_UP_MOVE(25, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(31, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(37, MOVE_SLASH),
+ LEVEL_UP_MOVE(43, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(49, MOVE_FIRE_SPIN),
+ LEVEL_UP_END
+};
+
+const u16 gCharmeleonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 7, MOVE_EMBER),
+ LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(20, MOVE_RAGE),
+ LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(41, MOVE_SLASH),
+ LEVEL_UP_MOVE(48, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(55, MOVE_FIRE_SPIN),
+ LEVEL_UP_END
+};
+
+const u16 gCharizardLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE( 7, MOVE_EMBER),
+ LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(20, MOVE_RAGE),
+ LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(36, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(44, MOVE_SLASH),
+ LEVEL_UP_MOVE(54, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(64, MOVE_FIRE_SPIN),
+ LEVEL_UP_END
+};
+
+const u16 gSquirtleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
+ LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(18, MOVE_BITE),
+ LEVEL_UP_MOVE(23, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(28, MOVE_PROTECT),
+ LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(40, MOVE_SKULL_BASH),
+ LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gWartortleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
+ LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(19, MOVE_BITE),
+ LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(31, MOVE_PROTECT),
+ LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(45, MOVE_SKULL_BASH),
+ LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gBlastoiseLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
+ LEVEL_UP_MOVE(10, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(19, MOVE_BITE),
+ LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(31, MOVE_PROTECT),
+ LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(55, MOVE_SKULL_BASH),
+ LEVEL_UP_MOVE(68, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gCaterpieLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
+ LEVEL_UP_END
+};
+
+const u16 gMetapodLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_END
+};
+
+const u16 gButterfreeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(10, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(14, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(18, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(23, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(28, MOVE_GUST),
+ LEVEL_UP_MOVE(34, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(40, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(47, MOVE_SILVER_WIND),
+ LEVEL_UP_END
+};
+
+const u16 gWeedleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
+ LEVEL_UP_END
+};
+
+const u16 gKakunaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_END
+};
+
+const u16 gBeedrillLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(20, MOVE_TWINEEDLE),
+ LEVEL_UP_MOVE(25, MOVE_RAGE),
+ LEVEL_UP_MOVE(30, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(35, MOVE_PIN_MISSILE),
+ LEVEL_UP_MOVE(40, MOVE_AGILITY),
+ LEVEL_UP_MOVE(45, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gPidgeyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 9, MOVE_GUST),
+ LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(19, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(25, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_FEATHER_DANCE),
+ LEVEL_UP_MOVE(39, MOVE_AGILITY),
+ LEVEL_UP_MOVE(47, MOVE_MIRROR_MOVE),
+ LEVEL_UP_END
+};
+
+const u16 gPidgeottoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_GUST),
+ LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 9, MOVE_GUST),
+ LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(20, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(27, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(34, MOVE_FEATHER_DANCE),
+ LEVEL_UP_MOVE(43, MOVE_AGILITY),
+ LEVEL_UP_MOVE(52, MOVE_MIRROR_MOVE),
+ LEVEL_UP_END
+};
+
+const u16 gPidgeotLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_GUST),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 9, MOVE_GUST),
+ LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(20, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(27, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(34, MOVE_FEATHER_DANCE),
+ LEVEL_UP_MOVE(48, MOVE_AGILITY),
+ LEVEL_UP_MOVE(62, MOVE_MIRROR_MOVE),
+ LEVEL_UP_END
+};
+
+const u16 gRattataLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_HYPER_FANG),
+ LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(27, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(34, MOVE_SUPER_FANG),
+ LEVEL_UP_MOVE(41, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gRaticateLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_HYPER_FANG),
+ LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(30, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(40, MOVE_SUPER_FANG),
+ LEVEL_UP_MOVE(50, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gSpearowLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_LEER),
+ LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(19, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE),
+ LEVEL_UP_MOVE(31, MOVE_MIRROR_MOVE),
+ LEVEL_UP_MOVE(37, MOVE_DRILL_PECK),
+ LEVEL_UP_MOVE(43, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gFearowLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE( 7, MOVE_LEER),
+ LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(26, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(32, MOVE_MIRROR_MOVE),
+ LEVEL_UP_MOVE(40, MOVE_DRILL_PECK),
+ LEVEL_UP_MOVE(47, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gEkansLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 8, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(20, MOVE_GLARE),
+ LEVEL_UP_MOVE(25, MOVE_SCREECH),
+ LEVEL_UP_MOVE(32, MOVE_ACID),
+ LEVEL_UP_MOVE(37, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(37, MOVE_SWALLOW),
+ LEVEL_UP_MOVE(37, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(44, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gArbokLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 8, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(20, MOVE_GLARE),
+ LEVEL_UP_MOVE(28, MOVE_SCREECH),
+ LEVEL_UP_MOVE(38, MOVE_ACID),
+ LEVEL_UP_MOVE(46, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(46, MOVE_SWALLOW),
+ LEVEL_UP_MOVE(46, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(56, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gPikachuLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(15, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(20, MOVE_SLAM),
+ LEVEL_UP_MOVE(26, MOVE_THUNDERBOLT),
+ LEVEL_UP_MOVE(33, MOVE_AGILITY),
+ LEVEL_UP_MOVE(41, MOVE_THUNDER),
+ LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_END
+};
+
+const u16 gRaichuLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT),
+ LEVEL_UP_END
+};
+
+const u16 gSandshrewLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(23, MOVE_SLASH),
+ LEVEL_UP_MOVE(30, MOVE_SWIFT),
+ LEVEL_UP_MOVE(37, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(45, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(53, MOVE_SANDSTORM),
+ LEVEL_UP_END
+};
+
+const u16 gSandslashLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(24, MOVE_SLASH),
+ LEVEL_UP_MOVE(33, MOVE_SWIFT),
+ LEVEL_UP_MOVE(42, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(52, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(62, MOVE_SANDSTORM),
+ LEVEL_UP_END
+};
+
+const u16 gNidoranFLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(17, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(20, MOVE_BITE),
+ LEVEL_UP_MOVE(23, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(38, MOVE_FLATTER),
+ LEVEL_UP_MOVE(47, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gNidorinaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(18, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(22, MOVE_BITE),
+ LEVEL_UP_MOVE(26, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(43, MOVE_FLATTER),
+ LEVEL_UP_MOVE(53, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gNidoqueenLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(23, MOVE_BODY_SLAM),
+ LEVEL_UP_END
+};
+
+const u16 gNidoranMLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(17, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(20, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE(23, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(30, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(38, MOVE_FLATTER),
+ LEVEL_UP_MOVE(47, MOVE_HORN_DRILL),
+ LEVEL_UP_END
+};
+
+const u16 gNidorinoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(18, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(22, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE(26, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(34, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(43, MOVE_FLATTER),
+ LEVEL_UP_MOVE(53, MOVE_HORN_DRILL),
+ LEVEL_UP_END
+};
+
+const u16 gNidokingLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(23, MOVE_THRASH),
+ LEVEL_UP_END
+};
+
+const u16 gClefairyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 5, MOVE_ENCORE),
+ LEVEL_UP_MOVE( 9, MOVE_SING),
+ LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(17, MOVE_FOLLOW_ME),
+ LEVEL_UP_MOVE(21, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(25, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(29, MOVE_METRONOME),
+ LEVEL_UP_MOVE(33, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(37, MOVE_MOONLIGHT),
+ LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(45, MOVE_METEOR_MASH),
+ LEVEL_UP_END
+};
+
+const u16 gClefableLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE( 1, MOVE_METRONOME),
+ LEVEL_UP_END
+};
+
+const u16 gVulpixLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 9, MOVE_ROAR),
+ LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_WILL_O_WISP),
+ LEVEL_UP_MOVE(21, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(25, MOVE_IMPRISON),
+ LEVEL_UP_MOVE(29, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(33, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(37, MOVE_GRUDGE),
+ LEVEL_UP_MOVE(41, MOVE_FIRE_SPIN),
+ LEVEL_UP_END
+};
+
+const u16 gNinetalesLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(45, MOVE_FIRE_SPIN),
+ LEVEL_UP_END
+};
+
+const u16 gJigglypuffLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 9, MOVE_POUND),
+ LEVEL_UP_MOVE(14, MOVE_DISABLE),
+ LEVEL_UP_MOVE(19, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(24, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(29, MOVE_REST),
+ LEVEL_UP_MOVE(34, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(39, MOVE_MIMIC),
+ LEVEL_UP_MOVE(44, MOVE_HYPER_VOICE),
+ LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gWigglytuffLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_END
+};
+
+const u16 gZubatLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(16, MOVE_BITE),
+ LEVEL_UP_MOVE(21, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(31, MOVE_AIR_CUTTER),
+ LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(41, MOVE_POISON_FANG),
+ LEVEL_UP_MOVE(46, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gGolbatLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(16, MOVE_BITE),
+ LEVEL_UP_MOVE(21, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER),
+ LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(49, MOVE_POISON_FANG),
+ LEVEL_UP_MOVE(56, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gOddishLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(14, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(16, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(23, MOVE_ACID),
+ LEVEL_UP_MOVE(32, MOVE_MOONLIGHT),
+ LEVEL_UP_MOVE(39, MOVE_PETAL_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gGloomLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(14, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(16, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(24, MOVE_ACID),
+ LEVEL_UP_MOVE(35, MOVE_MOONLIGHT),
+ LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gVileplumeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY),
+ LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gParasLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE(25, MOVE_SPORE),
+ LEVEL_UP_MOVE(31, MOVE_SLASH),
+ LEVEL_UP_MOVE(37, MOVE_GROWTH),
+ LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN),
+ LEVEL_UP_MOVE(49, MOVE_AROMATHERAPY),
+ LEVEL_UP_END
+};
+
+const u16 gParasectLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE(27, MOVE_SPORE),
+ LEVEL_UP_MOVE(35, MOVE_SLASH),
+ LEVEL_UP_MOVE(43, MOVE_GROWTH),
+ LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN),
+ LEVEL_UP_MOVE(59, MOVE_AROMATHERAPY),
+ LEVEL_UP_END
+};
+
+const u16 gVenonatLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(17, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(20, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE(28, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(33, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(36, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gVenomothLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SILVER_WIND),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(17, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(20, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE(28, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(31, MOVE_GUST),
+ LEVEL_UP_MOVE(36, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(42, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(52, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gDiglettLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 5, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(17, MOVE_DIG),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(33, MOVE_SLASH),
+ LEVEL_UP_MOVE(41, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(49, MOVE_FISSURE),
+ LEVEL_UP_END
+};
+
+const u16 gDugtrioLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 5, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(17, MOVE_DIG),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(26, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(38, MOVE_SLASH),
+ LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(64, MOVE_FISSURE),
+ LEVEL_UP_END
+};
+
+const u16 gMeowthLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE(11, MOVE_BITE),
+ LEVEL_UP_MOVE(20, MOVE_PAY_DAY),
+ LEVEL_UP_MOVE(28, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(35, MOVE_SCREECH),
+ LEVEL_UP_MOVE(41, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(46, MOVE_SLASH),
+ LEVEL_UP_MOVE(50, MOVE_FAKE_OUT),
+ LEVEL_UP_END
+};
+
+const u16 gPersianLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE(11, MOVE_BITE),
+ LEVEL_UP_MOVE(20, MOVE_PAY_DAY),
+ LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(38, MOVE_SCREECH),
+ LEVEL_UP_MOVE(46, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(53, MOVE_SLASH),
+ LEVEL_UP_MOVE(59, MOVE_FAKE_OUT),
+ LEVEL_UP_END
+};
+
+const u16 gPsyduckLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_DISABLE),
+ LEVEL_UP_MOVE(16, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(23, MOVE_SCREECH),
+ LEVEL_UP_MOVE(31, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(40, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gGolduckLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_DISABLE),
+ LEVEL_UP_MOVE(16, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(23, MOVE_SCREECH),
+ LEVEL_UP_MOVE(31, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(44, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gMankeyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 9, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP),
+ LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(33, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(39, MOVE_CROSS_CHOP),
+ LEVEL_UP_MOVE(45, MOVE_SCREECH),
+ LEVEL_UP_MOVE(51, MOVE_THRASH),
+ LEVEL_UP_END
+};
+
+const u16 gPrimeapeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 9, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP),
+ LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(28, MOVE_RAGE),
+ LEVEL_UP_MOVE(36, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(45, MOVE_CROSS_CHOP),
+ LEVEL_UP_MOVE(54, MOVE_SCREECH),
+ LEVEL_UP_MOVE(63, MOVE_THRASH),
+ LEVEL_UP_END
+};
+
+const u16 gGrowlitheLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_ROAR),
+ LEVEL_UP_MOVE( 7, MOVE_EMBER),
+ LEVEL_UP_MOVE(13, MOVE_LEER),
+ LEVEL_UP_MOVE(19, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL),
+ LEVEL_UP_MOVE(37, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(43, MOVE_AGILITY),
+ LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER),
+ LEVEL_UP_END
+};
+
+const u16 gArcanineLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_ROAR),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(49, MOVE_EXTREME_SPEED),
+ LEVEL_UP_END
+};
+
+const u16 gPoliwagLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(31, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM),
+ LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gPoliwhirlLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(27, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(35, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(43, MOVE_BELLY_DRUM),
+ LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gPoliwrathLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_SUBMISSION),
+ LEVEL_UP_MOVE(35, MOVE_SUBMISSION),
+ LEVEL_UP_MOVE(51, MOVE_MIND_READER),
+ LEVEL_UP_END
+};
+
+const u16 gAbraLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
+ LEVEL_UP_END
+};
+
+const u16 gKadabraLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
+ LEVEL_UP_MOVE( 1, MOVE_KINESIS),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(16, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(18, MOVE_DISABLE),
+ LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(23, MOVE_REFLECT),
+ LEVEL_UP_MOVE(25, MOVE_RECOVER),
+ LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(33, MOVE_ROLE_PLAY),
+ LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(43, MOVE_TRICK),
+ LEVEL_UP_END
+};
+
+const u16 gAlakazamLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
+ LEVEL_UP_MOVE( 1, MOVE_KINESIS),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(16, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(18, MOVE_DISABLE),
+ LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(23, MOVE_REFLECT),
+ LEVEL_UP_MOVE(25, MOVE_RECOVER),
+ LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(33, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(43, MOVE_TRICK),
+ LEVEL_UP_END
+};
+
+const u16 gMachopLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP),
+ LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(22, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(25, MOVE_REVENGE),
+ LEVEL_UP_MOVE(31, MOVE_VITAL_THROW),
+ LEVEL_UP_MOVE(37, MOVE_SUBMISSION),
+ LEVEL_UP_MOVE(40, MOVE_CROSS_CHOP),
+ LEVEL_UP_MOVE(43, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(49, MOVE_DYNAMIC_PUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gMachokeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP),
+ LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(22, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(25, MOVE_REVENGE),
+ LEVEL_UP_MOVE(33, MOVE_VITAL_THROW),
+ LEVEL_UP_MOVE(41, MOVE_SUBMISSION),
+ LEVEL_UP_MOVE(46, MOVE_CROSS_CHOP),
+ LEVEL_UP_MOVE(51, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gMachampLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP),
+ LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(22, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(25, MOVE_REVENGE),
+ LEVEL_UP_MOVE(33, MOVE_VITAL_THROW),
+ LEVEL_UP_MOVE(41, MOVE_SUBMISSION),
+ LEVEL_UP_MOVE(46, MOVE_CROSS_CHOP),
+ LEVEL_UP_MOVE(51, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gBellsproutLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE( 6, MOVE_GROWTH),
+ LEVEL_UP_MOVE(11, MOVE_WRAP),
+ LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(17, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(19, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(23, MOVE_ACID),
+ LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(37, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(45, MOVE_SLAM),
+ LEVEL_UP_END
+};
+
+const u16 gWeepinbellLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_GROWTH),
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 6, MOVE_GROWTH),
+ LEVEL_UP_MOVE(11, MOVE_WRAP),
+ LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(17, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(19, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(24, MOVE_ACID),
+ LEVEL_UP_MOVE(33, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(42, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(54, MOVE_SLAM),
+ LEVEL_UP_END
+};
+
+const u16 gVictreebelLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
+ LEVEL_UP_END
+};
+
+const u16 gTentacoolLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(12, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(19, MOVE_ACID),
+ LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(30, MOVE_WRAP),
+ LEVEL_UP_MOVE(36, MOVE_BARRIER),
+ LEVEL_UP_MOVE(43, MOVE_SCREECH),
+ LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gTentacruelLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(12, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(19, MOVE_ACID),
+ LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(30, MOVE_WRAP),
+ LEVEL_UP_MOVE(38, MOVE_BARRIER),
+ LEVEL_UP_MOVE(47, MOVE_SCREECH),
+ LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gGeodudeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(26, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(31, MOVE_ROCK_BLAST),
+ LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(41, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gGravelerLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(29, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(37, MOVE_ROCK_BLAST),
+ LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(53, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(62, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gGolemLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(29, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(37, MOVE_ROCK_BLAST),
+ LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(53, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(62, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gPonytaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(14, MOVE_EMBER),
+ LEVEL_UP_MOVE(19, MOVE_STOMP),
+ LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(38, MOVE_AGILITY),
+ LEVEL_UP_MOVE(45, MOVE_BOUNCE),
+ LEVEL_UP_MOVE(53, MOVE_FIRE_BLAST),
+ LEVEL_UP_END
+};
+
+const u16 gRapidashLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 5, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(14, MOVE_EMBER),
+ LEVEL_UP_MOVE(19, MOVE_STOMP),
+ LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(38, MOVE_AGILITY),
+ LEVEL_UP_MOVE(40, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(50, MOVE_BOUNCE),
+ LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST),
+ LEVEL_UP_END
+};
+
+const u16 gSlowpokeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CURSE),
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 6, MOVE_GROWL),
+ LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(20, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(29, MOVE_DISABLE),
+ LEVEL_UP_MOVE(34, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(43, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gSlowbroLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CURSE),
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 6, MOVE_GROWL),
+ LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(20, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(29, MOVE_DISABLE),
+ LEVEL_UP_MOVE(34, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(37, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE(46, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(54, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gMagnemiteLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(11, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM),
+ LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(26, MOVE_SPARK),
+ LEVEL_UP_MOVE(32, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(38, MOVE_SWIFT),
+ LEVEL_UP_MOVE(44, MOVE_SCREECH),
+ LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON),
+ LEVEL_UP_END
+};
+
+const u16 gMagnetonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(11, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM),
+ LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(26, MOVE_SPARK),
+ LEVEL_UP_MOVE(35, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(44, MOVE_TRI_ATTACK),
+ LEVEL_UP_MOVE(53, MOVE_SCREECH),
+ LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON),
+ LEVEL_UP_END
+};
+
+const u16 gFarfetchdLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(11, MOVE_LEER),
+ LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(26, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(31, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(36, MOVE_AGILITY),
+ LEVEL_UP_MOVE(41, MOVE_SLASH),
+ LEVEL_UP_MOVE(46, MOVE_FALSE_SWIPE),
+ LEVEL_UP_END
+};
+
+const u16 gDoduoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_TRI_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_RAGE),
+ LEVEL_UP_MOVE(33, MOVE_UPROAR),
+ LEVEL_UP_MOVE(37, MOVE_DRILL_PECK),
+ LEVEL_UP_MOVE(45, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gDodrioLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
+ LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE( 9, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_TRI_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_RAGE),
+ LEVEL_UP_MOVE(38, MOVE_UPROAR),
+ LEVEL_UP_MOVE(47, MOVE_DRILL_PECK),
+ LEVEL_UP_MOVE(60, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gSeelLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 9, MOVE_GROWL),
+ LEVEL_UP_MOVE(17, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(29, MOVE_REST),
+ LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(41, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(49, MOVE_SAFEGUARD),
+ LEVEL_UP_END
+};
+
+const u16 gDewgongLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE( 9, MOVE_GROWL),
+ LEVEL_UP_MOVE(17, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(29, MOVE_REST),
+ LEVEL_UP_MOVE(34, MOVE_SHEER_COLD),
+ LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(51, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(64, MOVE_SAFEGUARD),
+ LEVEL_UP_END
+};
+
+const u16 gGrimerLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 4, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 8, MOVE_DISABLE),
+ LEVEL_UP_MOVE(13, MOVE_SLUDGE),
+ LEVEL_UP_MOVE(19, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(26, MOVE_SCREECH),
+ LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR),
+ LEVEL_UP_MOVE(43, MOVE_SLUDGE_BOMB),
+ LEVEL_UP_MOVE(53, MOVE_MEMENTO),
+ LEVEL_UP_END
+};
+
+const u16 gMukLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 4, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 8, MOVE_DISABLE),
+ LEVEL_UP_MOVE(13, MOVE_SLUDGE),
+ LEVEL_UP_MOVE(19, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(26, MOVE_SCREECH),
+ LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR),
+ LEVEL_UP_MOVE(47, MOVE_SLUDGE_BOMB),
+ LEVEL_UP_MOVE(61, MOVE_MEMENTO),
+ LEVEL_UP_END
+};
+
+const u16 gShellderLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(25, MOVE_PROTECT),
+ LEVEL_UP_MOVE(33, MOVE_LEER),
+ LEVEL_UP_MOVE(41, MOVE_CLAMP),
+ LEVEL_UP_MOVE(49, MOVE_ICE_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gCloysterLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE( 1, MOVE_PROTECT),
+ LEVEL_UP_MOVE(33, MOVE_SPIKES),
+ LEVEL_UP_MOVE(41, MOVE_SPIKE_CANNON),
+ LEVEL_UP_END
+};
+
+const u16 gGastlyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 8, MOVE_SPITE),
+ LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(16, MOVE_CURSE),
+ LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(33, MOVE_DREAM_EATER),
+ LEVEL_UP_MOVE(36, MOVE_DESTINY_BOND),
+ LEVEL_UP_END
+};
+
+const u16 gHaunterLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 1, MOVE_SPITE),
+ LEVEL_UP_MOVE( 8, MOVE_SPITE),
+ LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(16, MOVE_CURSE),
+ LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH),
+ LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(39, MOVE_DREAM_EATER),
+ LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND),
+ LEVEL_UP_END
+};
+
+const u16 gGengarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 1, MOVE_SPITE),
+ LEVEL_UP_MOVE( 8, MOVE_SPITE),
+ LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(16, MOVE_CURSE),
+ LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH),
+ LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(39, MOVE_DREAM_EATER),
+ LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND),
+ LEVEL_UP_END
+};
+
+const u16 gOnixLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 9, MOVE_BIND),
+ LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(21, MOVE_HARDEN),
+ LEVEL_UP_MOVE(25, MOVE_RAGE),
+ LEVEL_UP_MOVE(33, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(37, MOVE_SLAM),
+ LEVEL_UP_MOVE(45, MOVE_IRON_TAIL),
+ LEVEL_UP_MOVE(49, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gDrowzeeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(10, MOVE_DISABLE),
+ LEVEL_UP_MOVE(18, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(25, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(31, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE(36, MOVE_MEDITATE),
+ LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(43, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gHypnoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(10, MOVE_DISABLE),
+ LEVEL_UP_MOVE(18, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(25, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(33, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE(40, MOVE_MEDITATE),
+ LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(55, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gKrabbyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 5, MOVE_LEER),
+ LEVEL_UP_MOVE(12, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE(16, MOVE_HARDEN),
+ LEVEL_UP_MOVE(23, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(27, MOVE_STOMP),
+ LEVEL_UP_MOVE(34, MOVE_GUILLOTINE),
+ LEVEL_UP_MOVE(41, MOVE_PROTECT),
+ LEVEL_UP_MOVE(45, MOVE_CRABHAMMER),
+ LEVEL_UP_END
+};
+
+const u16 gKinglerLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE( 5, MOVE_LEER),
+ LEVEL_UP_MOVE(12, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE(16, MOVE_HARDEN),
+ LEVEL_UP_MOVE(23, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(27, MOVE_STOMP),
+ LEVEL_UP_MOVE(38, MOVE_GUILLOTINE),
+ LEVEL_UP_MOVE(49, MOVE_PROTECT),
+ LEVEL_UP_MOVE(57, MOVE_CRABHAMMER),
+ LEVEL_UP_END
+};
+
+const u16 gVoltorbLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CHARGE),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 8, MOVE_SCREECH),
+ LEVEL_UP_MOVE(15, MOVE_SONIC_BOOM),
+ LEVEL_UP_MOVE(21, MOVE_SPARK),
+ LEVEL_UP_MOVE(27, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(32, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(42, MOVE_SWIFT),
+ LEVEL_UP_MOVE(46, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(49, MOVE_MIRROR_COAT),
+ LEVEL_UP_END
+};
+
+const u16 gElectrodeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CHARGE),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM),
+ LEVEL_UP_MOVE( 8, MOVE_SCREECH),
+ LEVEL_UP_MOVE(15, MOVE_SONIC_BOOM),
+ LEVEL_UP_MOVE(21, MOVE_SPARK),
+ LEVEL_UP_MOVE(27, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(34, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(48, MOVE_SWIFT),
+ LEVEL_UP_MOVE(54, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(59, MOVE_MIRROR_COAT),
+ LEVEL_UP_END
+};
+
+const u16 gExeggcuteLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BARRAGE),
+ LEVEL_UP_MOVE( 1, MOVE_UPROAR),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 7, MOVE_REFLECT),
+ LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(19, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(25, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(31, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(37, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gExeggutorLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BARRAGE),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(19, MOVE_STOMP),
+ LEVEL_UP_MOVE(31, MOVE_EGG_BOMB),
+ LEVEL_UP_END
+};
+
+const u16 gCuboneLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 9, MOVE_BONE_CLUB),
+ LEVEL_UP_MOVE(13, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(17, MOVE_LEER),
+ LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(25, MOVE_BONEMERANG),
+ LEVEL_UP_MOVE(29, MOVE_RAGE),
+ LEVEL_UP_MOVE(33, MOVE_FALSE_SWIPE),
+ LEVEL_UP_MOVE(37, MOVE_THRASH),
+ LEVEL_UP_MOVE(41, MOVE_BONE_RUSH),
+ LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gMarowakLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB),
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 9, MOVE_BONE_CLUB),
+ LEVEL_UP_MOVE(13, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(17, MOVE_LEER),
+ LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(25, MOVE_BONEMERANG),
+ LEVEL_UP_MOVE(32, MOVE_RAGE),
+ LEVEL_UP_MOVE(39, MOVE_FALSE_SWIPE),
+ LEVEL_UP_MOVE(46, MOVE_THRASH),
+ LEVEL_UP_MOVE(53, MOVE_BONE_RUSH),
+ LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gHitmonleeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_REVENGE),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE( 6, MOVE_MEDITATE),
+ LEVEL_UP_MOVE(11, MOVE_ROLLING_KICK),
+ LEVEL_UP_MOVE(16, MOVE_JUMP_KICK),
+ LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK),
+ LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(26, MOVE_HI_JUMP_KICK),
+ LEVEL_UP_MOVE(31, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(36, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(41, MOVE_ENDURE),
+ LEVEL_UP_MOVE(46, MOVE_MEGA_KICK),
+ LEVEL_UP_MOVE(51, MOVE_REVERSAL),
+ LEVEL_UP_END
+};
+
+const u16 gHitmonchanLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_REVENGE),
+ LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH),
+ LEVEL_UP_MOVE( 7, MOVE_AGILITY),
+ LEVEL_UP_MOVE(13, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(20, MOVE_MACH_PUNCH),
+ LEVEL_UP_MOVE(26, MOVE_THUNDER_PUNCH),
+ LEVEL_UP_MOVE(26, MOVE_ICE_PUNCH),
+ LEVEL_UP_MOVE(26, MOVE_FIRE_PUNCH),
+ LEVEL_UP_MOVE(32, MOVE_SKY_UPPERCUT),
+ LEVEL_UP_MOVE(38, MOVE_MEGA_PUNCH),
+ LEVEL_UP_MOVE(44, MOVE_DETECT),
+ LEVEL_UP_MOVE(50, MOVE_COUNTER),
+ LEVEL_UP_END
+};
+
+const u16 gLickitungLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(12, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(18, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(23, MOVE_STOMP),
+ LEVEL_UP_MOVE(29, MOVE_WRAP),
+ LEVEL_UP_MOVE(34, MOVE_DISABLE),
+ LEVEL_UP_MOVE(40, MOVE_SLAM),
+ LEVEL_UP_MOVE(45, MOVE_SCREECH),
+ LEVEL_UP_MOVE(51, MOVE_REFRESH),
+ LEVEL_UP_END
+};
+
+const u16 gKoffingLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 9, MOVE_SMOG),
+ LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(21, MOVE_SLUDGE),
+ LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(33, MOVE_HAZE),
+ LEVEL_UP_MOVE(41, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(45, MOVE_DESTINY_BOND),
+ LEVEL_UP_MOVE(49, MOVE_MEMENTO),
+ LEVEL_UP_END
+};
+
+const u16 gWeezingLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SMOG),
+ LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE( 9, MOVE_SMOG),
+ LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(21, MOVE_SLUDGE),
+ LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(33, MOVE_HAZE),
+ LEVEL_UP_MOVE(44, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(51, MOVE_DESTINY_BOND),
+ LEVEL_UP_MOVE(58, MOVE_MEMENTO),
+ LEVEL_UP_END
+};
+
+const u16 gRhyhornLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_STOMP),
+ LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST),
+ LEVEL_UP_MOVE(38, MOVE_HORN_DRILL),
+ LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(57, MOVE_MEGAHORN),
+ LEVEL_UP_END
+};
+
+const u16 gRhydonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_STOMP),
+ LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(10, MOVE_STOMP),
+ LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST),
+ LEVEL_UP_MOVE(38, MOVE_HORN_DRILL),
+ LEVEL_UP_MOVE(46, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(58, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(66, MOVE_MEGAHORN),
+ LEVEL_UP_END
+};
+
+const u16 gChanseyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 9, MOVE_REFRESH),
+ LEVEL_UP_MOVE(13, MOVE_SOFT_BOILED),
+ LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(23, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(29, MOVE_SING),
+ LEVEL_UP_MOVE(35, MOVE_EGG_BOMB),
+ LEVEL_UP_MOVE(41, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(49, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gTangelaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(10, MOVE_ABSORB),
+ LEVEL_UP_MOVE(13, MOVE_GROWTH),
+ LEVEL_UP_MOVE(19, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(22, MOVE_VINE_WHIP),
+ LEVEL_UP_MOVE(28, MOVE_BIND),
+ LEVEL_UP_MOVE(31, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(37, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(40, MOVE_SLAM),
+ LEVEL_UP_MOVE(46, MOVE_TICKLE),
+ LEVEL_UP_END
+};
+
+const u16 gKangaskhanLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_BITE),
+ LEVEL_UP_MOVE(13, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
+ LEVEL_UP_MOVE(25, MOVE_MEGA_PUNCH),
+ LEVEL_UP_MOVE(31, MOVE_RAGE),
+ LEVEL_UP_MOVE(37, MOVE_ENDURE),
+ LEVEL_UP_MOVE(43, MOVE_DIZZY_PUNCH),
+ LEVEL_UP_MOVE(49, MOVE_REVERSAL),
+ LEVEL_UP_END
+};
+
+const u16 gHorseaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(15, MOVE_LEER),
+ LEVEL_UP_MOVE(22, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(29, MOVE_TWISTER),
+ LEVEL_UP_MOVE(36, MOVE_AGILITY),
+ LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gSeadraLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(15, MOVE_LEER),
+ LEVEL_UP_MOVE(22, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(29, MOVE_TWISTER),
+ LEVEL_UP_MOVE(40, MOVE_AGILITY),
+ LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gGoldeenLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(10, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE(24, MOVE_FLAIL),
+ LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(38, MOVE_WATERFALL),
+ LEVEL_UP_MOVE(43, MOVE_HORN_DRILL),
+ LEVEL_UP_MOVE(52, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gSeakingLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(10, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE(24, MOVE_FLAIL),
+ LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(41, MOVE_WATERFALL),
+ LEVEL_UP_MOVE(49, MOVE_HORN_DRILL),
+ LEVEL_UP_MOVE(61, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gStaryuLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(10, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(15, MOVE_RECOVER),
+ LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE),
+ LEVEL_UP_MOVE(24, MOVE_SWIFT),
+ LEVEL_UP_MOVE(28, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(33, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(42, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gStarmieLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE( 1, MOVE_RECOVER),
+ LEVEL_UP_MOVE( 1, MOVE_SWIFT),
+ LEVEL_UP_MOVE(33, MOVE_CONFUSE_RAY),
+ LEVEL_UP_END
+};
+
+const u16 gMrmimeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BARRIER),
+ LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 9, MOVE_SUBSTITUTE),
+ LEVEL_UP_MOVE(13, MOVE_MEDITATE),
+ LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(21, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(21, MOVE_REFLECT),
+ LEVEL_UP_MOVE(25, MOVE_ENCORE),
+ LEVEL_UP_MOVE(29, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(33, MOVE_RECYCLE),
+ LEVEL_UP_MOVE(37, MOVE_TRICK),
+ LEVEL_UP_MOVE(41, MOVE_ROLE_PLAY),
+ LEVEL_UP_MOVE(45, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(49, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(53, MOVE_SAFEGUARD),
+ LEVEL_UP_END
+};
+
+const u16 gScytherLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(11, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(16, MOVE_FALSE_SWIPE),
+ LEVEL_UP_MOVE(21, MOVE_AGILITY),
+ LEVEL_UP_MOVE(26, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_SLASH),
+ LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(41, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER),
+ LEVEL_UP_END
+};
+
+const u16 gJynxLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS),
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 9, MOVE_LOVELY_KISS),
+ LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(25, MOVE_ICE_PUNCH),
+ LEVEL_UP_MOVE(35, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(41, MOVE_FAKE_TEARS),
+ LEVEL_UP_MOVE(51, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(57, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(67, MOVE_BLIZZARD),
+ LEVEL_UP_END
+};
+
+const u16 gElectabuzzLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
+ LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH),
+ LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(25, MOVE_SWIFT),
+ LEVEL_UP_MOVE(36, MOVE_SCREECH),
+ LEVEL_UP_MOVE(47, MOVE_THUNDERBOLT),
+ LEVEL_UP_MOVE(58, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gMagmarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_SMOG),
+ LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
+ LEVEL_UP_MOVE( 7, MOVE_LEER),
+ LEVEL_UP_MOVE(13, MOVE_SMOG),
+ LEVEL_UP_MOVE(19, MOVE_FIRE_PUNCH),
+ LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(33, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(49, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(57, MOVE_FIRE_BLAST),
+ LEVEL_UP_END
+};
+
+const u16 gPinsirLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 7, MOVE_BIND),
+ LEVEL_UP_MOVE(13, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(19, MOVE_HARDEN),
+ LEVEL_UP_MOVE(25, MOVE_REVENGE),
+ LEVEL_UP_MOVE(31, MOVE_BRICK_BREAK),
+ LEVEL_UP_MOVE(37, MOVE_GUILLOTINE),
+ LEVEL_UP_MOVE(43, MOVE_SUBMISSION),
+ LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gTaurosLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 8, MOVE_RAGE),
+ LEVEL_UP_MOVE(13, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(26, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(34, MOVE_REST),
+ LEVEL_UP_MOVE(43, MOVE_THRASH),
+ LEVEL_UP_MOVE(53, MOVE_TAKE_DOWN),
+ LEVEL_UP_END
+};
+
+const u16 gMagikarpLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE(15, MOVE_TACKLE),
+ LEVEL_UP_MOVE(30, MOVE_FLAIL),
+ LEVEL_UP_END
+};
+
+const u16 gGyaradosLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_THRASH),
+ LEVEL_UP_MOVE(20, MOVE_BITE),
+ LEVEL_UP_MOVE(25, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(30, MOVE_LEER),
+ LEVEL_UP_MOVE(35, MOVE_TWISTER),
+ LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE),
+ LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gLaprasLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 7, MOVE_MIST),
+ LEVEL_UP_MOVE(13, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(25, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(31, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(43, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(55, MOVE_SHEER_COLD),
+ LEVEL_UP_END
+};
+
+const u16 gDittoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TRANSFORM),
+ LEVEL_UP_END
+};
+
+const u16 gEeveeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_GROWL),
+ LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(30, MOVE_BITE),
+ LEVEL_UP_MOVE(36, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
+ LEVEL_UP_END
+};
+
+const u16 gVaporeonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(30, MOVE_BITE),
+ LEVEL_UP_MOVE(36, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(42, MOVE_HAZE),
+ LEVEL_UP_MOVE(47, MOVE_ACID_ARMOR),
+ LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gJolteonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(30, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE),
+ LEVEL_UP_MOVE(42, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(47, MOVE_AGILITY),
+ LEVEL_UP_MOVE(52, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gFlareonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_EMBER),
+ LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(30, MOVE_BITE),
+ LEVEL_UP_MOVE(36, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(42, MOVE_SMOG),
+ LEVEL_UP_MOVE(47, MOVE_LEER),
+ LEVEL_UP_MOVE(52, MOVE_FLAMETHROWER),
+ LEVEL_UP_END
+};
+
+const u16 gPorygonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
+ LEVEL_UP_MOVE( 9, MOVE_AGILITY),
+ LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(20, MOVE_RECOVER),
+ LEVEL_UP_MOVE(24, MOVE_SHARPEN),
+ LEVEL_UP_MOVE(32, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(36, MOVE_TRI_ATTACK),
+ LEVEL_UP_MOVE(44, MOVE_RECYCLE),
+ LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON),
+ LEVEL_UP_END
+};
+
+const u16 gOmanyteLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(31, MOVE_LEER),
+ LEVEL_UP_MOVE(37, MOVE_PROTECT),
+ LEVEL_UP_MOVE(43, MOVE_TICKLE),
+ LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gOmastarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(31, MOVE_LEER),
+ LEVEL_UP_MOVE(37, MOVE_PROTECT),
+ LEVEL_UP_MOVE(40, MOVE_SPIKE_CANNON),
+ LEVEL_UP_MOVE(46, MOVE_TICKLE),
+ LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(65, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gKabutoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE(13, MOVE_ABSORB),
+ LEVEL_UP_MOVE(19, MOVE_LEER),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(37, MOVE_ENDURE),
+ LEVEL_UP_MOVE(43, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE(49, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gKabutopsLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE(13, MOVE_ABSORB),
+ LEVEL_UP_MOVE(19, MOVE_LEER),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(37, MOVE_ENDURE),
+ LEVEL_UP_MOVE(40, MOVE_SLASH),
+ LEVEL_UP_MOVE(46, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE(55, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(65, MOVE_ANCIENT_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gAerodactylLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE( 8, MOVE_AGILITY),
+ LEVEL_UP_MOVE(15, MOVE_BITE),
+ LEVEL_UP_MOVE(22, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(36, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gSnorlaxLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 6, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(15, MOVE_BELLY_DRUM),
+ LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(24, MOVE_YAWN),
+ LEVEL_UP_MOVE(28, MOVE_REST),
+ LEVEL_UP_MOVE(28, MOVE_SNORE),
+ LEVEL_UP_MOVE(33, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(37, MOVE_BLOCK),
+ LEVEL_UP_MOVE(42, MOVE_COVET),
+ LEVEL_UP_MOVE(46, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(51, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gArticunoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GUST),
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE(13, MOVE_MIST),
+ LEVEL_UP_MOVE(25, MOVE_AGILITY),
+ LEVEL_UP_MOVE(37, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(49, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(61, MOVE_REFLECT),
+ LEVEL_UP_MOVE(73, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(85, MOVE_SHEER_COLD),
+ LEVEL_UP_END
+};
+
+const u16 gZapdosLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(25, MOVE_AGILITY),
+ LEVEL_UP_MOVE(37, MOVE_DETECT),
+ LEVEL_UP_MOVE(49, MOVE_DRILL_PECK),
+ LEVEL_UP_MOVE(61, MOVE_CHARGE),
+ LEVEL_UP_MOVE(73, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(85, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gMoltresLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE(13, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(25, MOVE_AGILITY),
+ LEVEL_UP_MOVE(37, MOVE_ENDURE),
+ LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(61, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(73, MOVE_HEAT_WAVE),
+ LEVEL_UP_MOVE(85, MOVE_SKY_ATTACK),
+ LEVEL_UP_END
+};
+
+const u16 gDratiniLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(15, MOVE_TWISTER),
+ LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(29, MOVE_SLAM),
+ LEVEL_UP_MOVE(36, MOVE_AGILITY),
+ LEVEL_UP_MOVE(43, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(50, MOVE_OUTRAGE),
+ LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gDragonairLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 1, MOVE_TWISTER),
+ LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(15, MOVE_TWISTER),
+ LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(29, MOVE_SLAM),
+ LEVEL_UP_MOVE(38, MOVE_AGILITY),
+ LEVEL_UP_MOVE(47, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(56, MOVE_OUTRAGE),
+ LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gDragoniteLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 1, MOVE_TWISTER),
+ LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(15, MOVE_TWISTER),
+ LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE),
+ LEVEL_UP_MOVE(29, MOVE_SLAM),
+ LEVEL_UP_MOVE(38, MOVE_AGILITY),
+ LEVEL_UP_MOVE(47, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(55, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(61, MOVE_OUTRAGE),
+ LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gMewtwoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE(11, MOVE_BARRIER),
+ LEVEL_UP_MOVE(22, MOVE_SWIFT),
+ LEVEL_UP_MOVE(33, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(55, MOVE_MIST),
+ LEVEL_UP_MOVE(66, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(77, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(88, MOVE_RECOVER),
+ LEVEL_UP_MOVE(99, MOVE_SAFEGUARD),
+ LEVEL_UP_END
+};
+
+const u16 gMewLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE(10, MOVE_TRANSFORM),
+ LEVEL_UP_MOVE(20, MOVE_MEGA_PUNCH),
+ LEVEL_UP_MOVE(30, MOVE_METRONOME),
+ LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(50, MOVE_ANCIENT_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gChikoritaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(12, MOVE_REFLECT),
+ LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(22, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(29, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(43, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gBayleefLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE( 1, MOVE_REFLECT),
+ LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(12, MOVE_REFLECT),
+ LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(23, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(31, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(39, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(47, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gMeganiumLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE( 1, MOVE_REFLECT),
+ LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(12, MOVE_REFLECT),
+ LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(23, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(31, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(51, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(61, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gCyndaquilLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(12, MOVE_EMBER),
+ LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(27, MOVE_FLAME_WHEEL),
+ LEVEL_UP_MOVE(36, MOVE_SWIFT),
+ LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER),
+ LEVEL_UP_END
+};
+
+const u16 gQuilavaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(12, MOVE_EMBER),
+ LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL),
+ LEVEL_UP_MOVE(42, MOVE_SWIFT),
+ LEVEL_UP_MOVE(54, MOVE_FLAMETHROWER),
+ LEVEL_UP_END
+};
+
+const u16 gTyphlosionLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(12, MOVE_EMBER),
+ LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL),
+ LEVEL_UP_MOVE(45, MOVE_SWIFT),
+ LEVEL_UP_MOVE(60, MOVE_FLAMETHROWER),
+ LEVEL_UP_END
+};
+
+const u16 gTotodileLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_RAGE),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(20, MOVE_BITE),
+ LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(35, MOVE_SLASH),
+ LEVEL_UP_MOVE(43, MOVE_SCREECH),
+ LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gCroconawLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 7, MOVE_RAGE),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(21, MOVE_BITE),
+ LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(37, MOVE_SLASH),
+ LEVEL_UP_MOVE(45, MOVE_SCREECH),
+ LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gFeraligatrLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 7, MOVE_RAGE),
+ LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(21, MOVE_BITE),
+ LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(38, MOVE_SLASH),
+ LEVEL_UP_MOVE(47, MOVE_SCREECH),
+ LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gSentretLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(17, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(24, MOVE_SLAM),
+ LEVEL_UP_MOVE(31, MOVE_FOLLOW_ME),
+ LEVEL_UP_MOVE(40, MOVE_REST),
+ LEVEL_UP_MOVE(49, MOVE_AMNESIA),
+ LEVEL_UP_END
+};
+
+const u16 gFurretLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(19, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(28, MOVE_SLAM),
+ LEVEL_UP_MOVE(37, MOVE_FOLLOW_ME),
+ LEVEL_UP_MOVE(48, MOVE_REST),
+ LEVEL_UP_MOVE(59, MOVE_AMNESIA),
+ LEVEL_UP_END
+};
+
+const u16 gHoothootLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 6, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(11, MOVE_PECK),
+ LEVEL_UP_MOVE(16, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(22, MOVE_REFLECT),
+ LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(34, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(48, MOVE_DREAM_EATER),
+ LEVEL_UP_END
+};
+
+const u16 gNoctowlLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 6, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(11, MOVE_PECK),
+ LEVEL_UP_MOVE(16, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(25, MOVE_REFLECT),
+ LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(41, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(57, MOVE_DREAM_EATER),
+ LEVEL_UP_END
+};
+
+const u16 gLedybaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH),
+ LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(22, MOVE_REFLECT),
+ LEVEL_UP_MOVE(22, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(29, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(36, MOVE_SWIFT),
+ LEVEL_UP_MOVE(43, MOVE_AGILITY),
+ LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gLedianLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH),
+ LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(24, MOVE_REFLECT),
+ LEVEL_UP_MOVE(24, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(33, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(42, MOVE_SWIFT),
+ LEVEL_UP_MOVE(51, MOVE_AGILITY),
+ LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gSpinarakLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
+ LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(11, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(23, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(37, MOVE_SPIDER_WEB),
+ LEVEL_UP_MOVE(45, MOVE_AGILITY),
+ LEVEL_UP_MOVE(53, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gAriadosLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
+ LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(11, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(43, MOVE_SPIDER_WEB),
+ LEVEL_UP_MOVE(53, MOVE_AGILITY),
+ LEVEL_UP_MOVE(63, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gCrobatLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(16, MOVE_BITE),
+ LEVEL_UP_MOVE(21, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER),
+ LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(49, MOVE_POISON_FANG),
+ LEVEL_UP_MOVE(56, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gChinchouLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(13, MOVE_FLAIL),
+ LEVEL_UP_MOVE(17, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(25, MOVE_SPARK),
+ LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(49, MOVE_CHARGE),
+ LEVEL_UP_END
+};
+
+const u16 gLanturnLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(13, MOVE_FLAIL),
+ LEVEL_UP_MOVE(17, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(25, MOVE_SPARK),
+ LEVEL_UP_MOVE(32, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(61, MOVE_CHARGE),
+ LEVEL_UP_END
+};
+
+const u16 gPichuLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE( 1, MOVE_CHARM),
+ LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(11, MOVE_SWEET_KISS),
+ LEVEL_UP_END
+};
+
+const u16 gCleffaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_CHARM),
+ LEVEL_UP_MOVE( 4, MOVE_ENCORE),
+ LEVEL_UP_MOVE( 8, MOVE_SING),
+ LEVEL_UP_MOVE(13, MOVE_SWEET_KISS),
+ LEVEL_UP_END
+};
+
+const u16 gIgglybuffLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 1, MOVE_CHARM),
+ LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 9, MOVE_POUND),
+ LEVEL_UP_MOVE(14, MOVE_SWEET_KISS),
+ LEVEL_UP_END
+};
+
+const u16 gTogepiLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_CHARM),
+ LEVEL_UP_MOVE( 6, MOVE_METRONOME),
+ LEVEL_UP_MOVE(11, MOVE_SWEET_KISS),
+ LEVEL_UP_MOVE(16, MOVE_YAWN),
+ LEVEL_UP_MOVE(21, MOVE_ENCORE),
+ LEVEL_UP_MOVE(26, MOVE_FOLLOW_ME),
+ LEVEL_UP_MOVE(31, MOVE_WISH),
+ LEVEL_UP_MOVE(36, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gTogeticLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_CHARM),
+ LEVEL_UP_MOVE( 6, MOVE_METRONOME),
+ LEVEL_UP_MOVE(11, MOVE_SWEET_KISS),
+ LEVEL_UP_MOVE(16, MOVE_YAWN),
+ LEVEL_UP_MOVE(21, MOVE_ENCORE),
+ LEVEL_UP_MOVE(26, MOVE_FOLLOW_ME),
+ LEVEL_UP_MOVE(31, MOVE_WISH),
+ LEVEL_UP_MOVE(36, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gNatuLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(20, MOVE_TELEPORT),
+ LEVEL_UP_MOVE(30, MOVE_WISH),
+ LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(40, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(50, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gXatuLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(20, MOVE_TELEPORT),
+ LEVEL_UP_MOVE(35, MOVE_WISH),
+ LEVEL_UP_MOVE(35, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(65, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gMareepLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(23, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(37, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gFlaaffyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(45, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gAmpharosLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(30, MOVE_THUNDER_PUNCH),
+ LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(57, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gBellossomLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
+ LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE),
+ LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gMarillLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(15, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(28, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gAzumarillLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(15, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gSudowoodoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE( 1, MOVE_MIMIC),
+ LEVEL_UP_MOVE( 9, MOVE_FLAIL),
+ LEVEL_UP_MOVE(17, MOVE_LOW_KICK),
+ LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(33, MOVE_BLOCK),
+ LEVEL_UP_MOVE(41, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(49, MOVE_SLAM),
+ LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gPolitoedLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(35, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(51, MOVE_SWAGGER),
+ LEVEL_UP_END
+};
+
+const u16 gHoppipLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_TACKLE),
+ LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(20, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(25, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(30, MOVE_MEGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gSkiploomLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_TACKLE),
+ LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(22, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(29, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gJumpluffLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_TACKLE),
+ LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER),
+ LEVEL_UP_MOVE(22, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(33, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(44, MOVE_MEGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gAipomLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(18, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(25, MOVE_TICKLE),
+ LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(38, MOVE_SWIFT),
+ LEVEL_UP_MOVE(43, MOVE_SCREECH),
+ LEVEL_UP_MOVE(50, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gSunkernLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 6, MOVE_GROWTH),
+ LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(18, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(25, MOVE_ENDEAVOR),
+ LEVEL_UP_MOVE(30, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(37, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gSunfloraLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 6, MOVE_GROWTH),
+ LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(18, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(25, MOVE_BULLET_SEED),
+ LEVEL_UP_MOVE(30, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(37, MOVE_PETAL_DANCE),
+ LEVEL_UP_MOVE(42, MOVE_SOLAR_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gYanmaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(19, MOVE_SONIC_BOOM),
+ LEVEL_UP_MOVE(25, MOVE_DETECT),
+ LEVEL_UP_MOVE(31, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(37, MOVE_UPROAR),
+ LEVEL_UP_MOVE(43, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(49, MOVE_SCREECH),
+ LEVEL_UP_END
+};
+
+const u16 gWooperLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(11, MOVE_SLAM),
+ LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(21, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(31, MOVE_YAWN),
+ LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(51, MOVE_MIST),
+ LEVEL_UP_MOVE(51, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gQuagsireLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(11, MOVE_SLAM),
+ LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(23, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(35, MOVE_YAWN),
+ LEVEL_UP_MOVE(42, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(49, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(61, MOVE_MIST),
+ LEVEL_UP_MOVE(61, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gEspeonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(30, MOVE_SWIFT),
+ LEVEL_UP_MOVE(36, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(42, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(47, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(52, MOVE_MORNING_SUN),
+ LEVEL_UP_END
+};
+
+const u16 gUmbreonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(36, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(47, MOVE_SCREECH),
+ LEVEL_UP_MOVE(52, MOVE_MOONLIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gMurkrowLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(14, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(22, MOVE_HAZE),
+ LEVEL_UP_MOVE(27, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(35, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(40, MOVE_TAUNT),
+ LEVEL_UP_MOVE(48, MOVE_MEAN_LOOK),
+ LEVEL_UP_END
+};
+
+const u16 gSlowkingLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CURSE),
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 6, MOVE_GROWL),
+ LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(20, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(29, MOVE_DISABLE),
+ LEVEL_UP_MOVE(34, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(43, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+const u16 gMisdreavusLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE( 6, MOVE_SPITE),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(23, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(30, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(37, MOVE_PAIN_SPLIT),
+ LEVEL_UP_MOVE(45, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(53, MOVE_GRUDGE),
+ LEVEL_UP_END
+};
+
+const u16 gUnownLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gWobbuffetLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_COUNTER),
+ LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
+ LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
+ LEVEL_UP_END
+};
+
+const u16 gGirafarigLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(13, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(19, MOVE_STOMP),
+ LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(31, MOVE_AGILITY),
+ LEVEL_UP_MOVE(37, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(43, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(49, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gPinecoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_PROTECT),
+ LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(29, MOVE_BIDE),
+ LEVEL_UP_MOVE(36, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(43, MOVE_SPIKES),
+ LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gForretressLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_PROTECT),
+ LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(29, MOVE_BIDE),
+ LEVEL_UP_MOVE(39, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE(49, MOVE_SPIKES),
+ LEVEL_UP_MOVE(59, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gDunsparceLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(11, MOVE_YAWN),
+ LEVEL_UP_MOVE(14, MOVE_GLARE),
+ LEVEL_UP_MOVE(21, MOVE_SPITE),
+ LEVEL_UP_MOVE(24, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(31, MOVE_SCREECH),
+ LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(41, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gGligarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_HARDEN),
+ LEVEL_UP_MOVE(20, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(28, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(36, MOVE_SLASH),
+ LEVEL_UP_MOVE(44, MOVE_SCREECH),
+ LEVEL_UP_MOVE(52, MOVE_GUILLOTINE),
+ LEVEL_UP_END
+};
+
+const u16 gSteelixLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 9, MOVE_BIND),
+ LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(21, MOVE_HARDEN),
+ LEVEL_UP_MOVE(25, MOVE_RAGE),
+ LEVEL_UP_MOVE(33, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(37, MOVE_SLAM),
+ LEVEL_UP_MOVE(45, MOVE_IRON_TAIL),
+ LEVEL_UP_MOVE(49, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gSnubbullLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 8, MOVE_CHARM),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(19, MOVE_LICK),
+ LEVEL_UP_MOVE(26, MOVE_ROAR),
+ LEVEL_UP_MOVE(34, MOVE_RAGE),
+ LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(53, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gGranbullLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 8, MOVE_CHARM),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(19, MOVE_LICK),
+ LEVEL_UP_MOVE(28, MOVE_ROAR),
+ LEVEL_UP_MOVE(38, MOVE_RAGE),
+ LEVEL_UP_MOVE(49, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(61, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gQwilfishLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPIKES),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(10, MOVE_HARDEN),
+ LEVEL_UP_MOVE(10, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(28, MOVE_PIN_MISSILE),
+ LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gScizorLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(11, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(16, MOVE_FALSE_SWIPE),
+ LEVEL_UP_MOVE(21, MOVE_AGILITY),
+ LEVEL_UP_MOVE(26, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(31, MOVE_SLASH),
+ LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(41, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER),
+ LEVEL_UP_END
+};
+
+const u16 gShuckleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
+ LEVEL_UP_MOVE( 9, MOVE_WRAP),
+ LEVEL_UP_MOVE(14, MOVE_ENCORE),
+ LEVEL_UP_MOVE(23, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(28, MOVE_BIDE),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_END
+};
+
+const u16 gHeracrossLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 6, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE(11, MOVE_ENDURE),
+ LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(23, MOVE_BRICK_BREAK),
+ LEVEL_UP_MOVE(30, MOVE_COUNTER),
+ LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(45, MOVE_REVERSAL),
+ LEVEL_UP_MOVE(53, MOVE_MEGAHORN),
+ LEVEL_UP_END
+};
+
+const u16 gSneaselLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_TAUNT),
+ LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(15, MOVE_SCREECH),
+ LEVEL_UP_MOVE(22, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(36, MOVE_AGILITY),
+ LEVEL_UP_MOVE(43, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE(50, MOVE_SLASH),
+ LEVEL_UP_MOVE(57, MOVE_BEAT_UP),
+ LEVEL_UP_MOVE(64, MOVE_METAL_CLAW),
+ LEVEL_UP_END
+};
+
+const u16 gTeddiursaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_LICK),
+ LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_TEARS),
+ LEVEL_UP_MOVE(25, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_REST),
+ LEVEL_UP_MOVE(37, MOVE_SLASH),
+ LEVEL_UP_MOVE(43, MOVE_SNORE),
+ LEVEL_UP_MOVE(49, MOVE_THRASH),
+ LEVEL_UP_END
+};
+
+const u16 gUrsaringLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE( 7, MOVE_LICK),
+ LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_TEARS),
+ LEVEL_UP_MOVE(25, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_REST),
+ LEVEL_UP_MOVE(37, MOVE_SLASH),
+ LEVEL_UP_MOVE(43, MOVE_SNORE),
+ LEVEL_UP_MOVE(49, MOVE_THRASH),
+ LEVEL_UP_END
+};
+
+const u16 gSlugmaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_SMOG),
+ LEVEL_UP_MOVE( 8, MOVE_EMBER),
+ LEVEL_UP_MOVE(15, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(22, MOVE_HARDEN),
+ LEVEL_UP_MOVE(29, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(43, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(50, MOVE_BODY_SLAM),
+ LEVEL_UP_END
+};
+
+const u16 gMagcargoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_SMOG),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE( 8, MOVE_EMBER),
+ LEVEL_UP_MOVE(15, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(22, MOVE_HARDEN),
+ LEVEL_UP_MOVE(29, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(48, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(60, MOVE_BODY_SLAM),
+ LEVEL_UP_END
+};
+
+const u16 gSwinubLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE(19, MOVE_ENDURE),
+ LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(37, MOVE_MIST),
+ LEVEL_UP_MOVE(46, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(55, MOVE_AMNESIA),
+ LEVEL_UP_END
+};
+
+const u16 gPiloswineLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 1, MOVE_ENDURE),
+ LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE(19, MOVE_ENDURE),
+ LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(42, MOVE_MIST),
+ LEVEL_UP_MOVE(56, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(70, MOVE_AMNESIA),
+ LEVEL_UP_END
+};
+
+const u16 gCorsolaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 6, MOVE_HARDEN),
+ LEVEL_UP_MOVE(12, MOVE_BUBBLE),
+ LEVEL_UP_MOVE(17, MOVE_RECOVER),
+ LEVEL_UP_MOVE(17, MOVE_REFRESH),
+ LEVEL_UP_MOVE(23, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(28, MOVE_SPIKE_CANNON),
+ LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST),
+ LEVEL_UP_MOVE(39, MOVE_MIRROR_COAT),
+ LEVEL_UP_MOVE(45, MOVE_ANCIENT_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gRemoraidLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(11, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(22, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(33, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(44, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gOctilleryLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(11, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(22, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(25, MOVE_OCTAZOOKA),
+ LEVEL_UP_MOVE(38, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(54, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(70, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gDelibirdLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PRESENT),
+ LEVEL_UP_END
+};
+
+const u16 gMantineLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(29, MOVE_AGILITY),
+ LEVEL_UP_MOVE(36, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(43, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY),
+ LEVEL_UP_END
+};
+
+const u16 gSkarmoryLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_SWIFT),
+ LEVEL_UP_MOVE(16, MOVE_AGILITY),
+ LEVEL_UP_MOVE(26, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(29, MOVE_AIR_CUTTER),
+ LEVEL_UP_MOVE(32, MOVE_STEEL_WING),
+ LEVEL_UP_MOVE(42, MOVE_SPIKES),
+ LEVEL_UP_MOVE(45, MOVE_METAL_SOUND),
+ LEVEL_UP_END
+};
+
+const u16 gHoundourLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 7, MOVE_HOWL),
+ LEVEL_UP_MOVE(13, MOVE_SMOG),
+ LEVEL_UP_MOVE(19, MOVE_ROAR),
+ LEVEL_UP_MOVE(25, MOVE_BITE),
+ LEVEL_UP_MOVE(31, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(37, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(49, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gHoundoomLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_HOWL),
+ LEVEL_UP_MOVE( 7, MOVE_HOWL),
+ LEVEL_UP_MOVE(13, MOVE_SMOG),
+ LEVEL_UP_MOVE(19, MOVE_ROAR),
+ LEVEL_UP_MOVE(27, MOVE_BITE),
+ LEVEL_UP_MOVE(35, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(43, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(59, MOVE_CRUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gKingdraLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(15, MOVE_LEER),
+ LEVEL_UP_MOVE(22, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(29, MOVE_TWISTER),
+ LEVEL_UP_MOVE(40, MOVE_AGILITY),
+ LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gPhanpyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(17, MOVE_FLAIL),
+ LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(33, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(41, MOVE_ENDURE),
+ LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gDonphanLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(17, MOVE_FLAIL),
+ LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(33, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(41, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE),
+ LEVEL_UP_END
+};
+
+const u16 gPorygon2LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
+ LEVEL_UP_MOVE( 9, MOVE_AGILITY),
+ LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(20, MOVE_RECOVER),
+ LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(32, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(36, MOVE_TRI_ATTACK),
+ LEVEL_UP_MOVE(44, MOVE_RECYCLE),
+ LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON),
+ LEVEL_UP_END
+};
+
+const u16 gStantlerLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 7, MOVE_LEER),
+ LEVEL_UP_MOVE(13, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(19, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(25, MOVE_STOMP),
+ LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(49, MOVE_CALM_MIND),
+ LEVEL_UP_END
+};
+
+const u16 gSmeargleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SKETCH),
+ LEVEL_UP_MOVE(11, MOVE_SKETCH),
+ LEVEL_UP_MOVE(21, MOVE_SKETCH),
+ LEVEL_UP_MOVE(31, MOVE_SKETCH),
+ LEVEL_UP_MOVE(41, MOVE_SKETCH),
+ LEVEL_UP_MOVE(51, MOVE_SKETCH),
+ LEVEL_UP_MOVE(61, MOVE_SKETCH),
+ LEVEL_UP_MOVE(71, MOVE_SKETCH),
+ LEVEL_UP_MOVE(81, MOVE_SKETCH),
+ LEVEL_UP_MOVE(91, MOVE_SKETCH),
+ LEVEL_UP_END
+};
+
+const u16 gTyrogueLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gHitmontopLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_REVENGE),
+ LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(13, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(20, MOVE_TRIPLE_KICK),
+ LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE(31, MOVE_COUNTER),
+ LEVEL_UP_MOVE(37, MOVE_AGILITY),
+ LEVEL_UP_MOVE(43, MOVE_DETECT),
+ LEVEL_UP_MOVE(49, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gSmoochumLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS),
+ LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE(21, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(25, MOVE_SING),
+ LEVEL_UP_MOVE(33, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(37, MOVE_FAKE_TEARS),
+ LEVEL_UP_MOVE(45, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(49, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(57, MOVE_BLIZZARD),
+ LEVEL_UP_END
+};
+
+const u16 gElekidLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH),
+ LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(25, MOVE_SWIFT),
+ LEVEL_UP_MOVE(33, MOVE_SCREECH),
+ LEVEL_UP_MOVE(41, MOVE_THUNDERBOLT),
+ LEVEL_UP_MOVE(49, MOVE_THUNDER),
+ LEVEL_UP_END
+};
+
+const u16 gMagbyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 7, MOVE_LEER),
+ LEVEL_UP_MOVE(13, MOVE_SMOG),
+ LEVEL_UP_MOVE(19, MOVE_FIRE_PUNCH),
+ LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(37, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(49, MOVE_FIRE_BLAST),
+ LEVEL_UP_END
+};
+
+const u16 gMiltankLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_GROWL),
+ LEVEL_UP_MOVE( 8, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(13, MOVE_STOMP),
+ LEVEL_UP_MOVE(19, MOVE_MILK_DRINK),
+ LEVEL_UP_MOVE(26, MOVE_BIDE),
+ LEVEL_UP_MOVE(34, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(43, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(53, MOVE_HEAL_BELL),
+ LEVEL_UP_END
+};
+
+const u16 gBlisseyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 7, MOVE_REFRESH),
+ LEVEL_UP_MOVE(10, MOVE_SOFT_BOILED),
+ LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(18, MOVE_MINIMIZE),
+ LEVEL_UP_MOVE(23, MOVE_SING),
+ LEVEL_UP_MOVE(28, MOVE_EGG_BOMB),
+ LEVEL_UP_MOVE(33, MOVE_DEFENSE_CURL),
+ LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gRaikouLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK),
+ LEVEL_UP_MOVE(21, MOVE_ROAR),
+ LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(41, MOVE_SPARK),
+ LEVEL_UP_MOVE(51, MOVE_REFLECT),
+ LEVEL_UP_MOVE(61, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(71, MOVE_THUNDER),
+ LEVEL_UP_MOVE(81, MOVE_CALM_MIND),
+ LEVEL_UP_END
+};
+
+const u16 gEnteiLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE(11, MOVE_EMBER),
+ LEVEL_UP_MOVE(21, MOVE_ROAR),
+ LEVEL_UP_MOVE(31, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(41, MOVE_STOMP),
+ LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(61, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(71, MOVE_FIRE_BLAST),
+ LEVEL_UP_MOVE(81, MOVE_CALM_MIND),
+ LEVEL_UP_END
+};
+
+const u16 gSuicuneLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE(11, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(21, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(31, MOVE_GUST),
+ LEVEL_UP_MOVE(41, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(51, MOVE_MIST),
+ LEVEL_UP_MOVE(61, MOVE_MIRROR_COAT),
+ LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(81, MOVE_CALM_MIND),
+ LEVEL_UP_END
+};
+
+const u16 gLarvitarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 8, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(15, MOVE_SCREECH),
+ LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(29, MOVE_THRASH),
+ LEVEL_UP_MOVE(36, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(43, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gPupitarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 8, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(15, MOVE_SCREECH),
+ LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(29, MOVE_THRASH),
+ LEVEL_UP_MOVE(38, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(47, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(56, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gTyranitarLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 8, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(15, MOVE_SCREECH),
+ LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(29, MOVE_THRASH),
+ LEVEL_UP_MOVE(38, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(47, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(61, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gLugiaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(11, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(22, MOVE_GUST),
+ LEVEL_UP_MOVE(33, MOVE_RECOVER),
+ LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(66, MOVE_SWIFT),
+ LEVEL_UP_MOVE(77, MOVE_AEROBLAST),
+ LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gHoOhLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(11, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(22, MOVE_GUST),
+ LEVEL_UP_MOVE(33, MOVE_RECOVER),
+ LEVEL_UP_MOVE(44, MOVE_FIRE_BLAST),
+ LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(66, MOVE_SWIFT),
+ LEVEL_UP_MOVE(77, MOVE_SACRED_FIRE),
+ LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gCelebiLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_RECOVER),
+ LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL),
+ LEVEL_UP_MOVE(10, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(40, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(50, MOVE_PERISH_SONG),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies252LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies253LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies254LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies255LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies256LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies257LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies258LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies259LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies260LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies261LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies262LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies263LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies264LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies265LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies266LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies267LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies268LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies269LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies270LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies271LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies272LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies273LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies274LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies275LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gSpecies276LevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_END
+};
+
+const u16 gTreeckoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 6, MOVE_ABSORB),
+ LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(21, MOVE_SCREECH),
+ LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(31, MOVE_AGILITY),
+ LEVEL_UP_MOVE(36, MOVE_SLAM),
+ LEVEL_UP_MOVE(41, MOVE_DETECT),
+ LEVEL_UP_MOVE(46, MOVE_GIGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gGrovyleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 6, MOVE_ABSORB),
+ LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(17, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(23, MOVE_SCREECH),
+ LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE),
+ LEVEL_UP_MOVE(35, MOVE_AGILITY),
+ LEVEL_UP_MOVE(41, MOVE_SLAM),
+ LEVEL_UP_MOVE(47, MOVE_DETECT),
+ LEVEL_UP_MOVE(53, MOVE_FALSE_SWIPE),
+ LEVEL_UP_END
+};
+
+const u16 gSceptileLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 6, MOVE_ABSORB),
+ LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(17, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(23, MOVE_SCREECH),
+ LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE),
+ LEVEL_UP_MOVE(35, MOVE_AGILITY),
+ LEVEL_UP_MOVE(43, MOVE_SLAM),
+ LEVEL_UP_MOVE(51, MOVE_DETECT),
+ LEVEL_UP_MOVE(59, MOVE_FALSE_SWIPE),
+ LEVEL_UP_END
+};
+
+const u16 gTorchicLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(10, MOVE_EMBER),
+ LEVEL_UP_MOVE(16, MOVE_PECK),
+ LEVEL_UP_MOVE(19, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(34, MOVE_SLASH),
+ LEVEL_UP_MOVE(37, MOVE_MIRROR_MOVE),
+ LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER),
+ LEVEL_UP_END
+};
+
+const u16 gCombuskenLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(13, MOVE_EMBER),
+ LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(17, MOVE_PECK),
+ LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(28, MOVE_BULK_UP),
+ LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(39, MOVE_SLASH),
+ LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE),
+ LEVEL_UP_MOVE(50, MOVE_SKY_UPPERCUT),
+ LEVEL_UP_END
+};
+
+const u16 gBlazikenLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(13, MOVE_EMBER),
+ LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
+ LEVEL_UP_MOVE(17, MOVE_PECK),
+ LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(28, MOVE_BULK_UP),
+ LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(36, MOVE_BLAZE_KICK),
+ LEVEL_UP_MOVE(42, MOVE_SLASH),
+ LEVEL_UP_MOVE(49, MOVE_MIRROR_MOVE),
+ LEVEL_UP_MOVE(59, MOVE_SKY_UPPERCUT),
+ LEVEL_UP_END
+};
+
+const u16 gMudkipLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(15, MOVE_BIDE),
+ LEVEL_UP_MOVE(19, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(24, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(33, MOVE_WHIRLPOOL),
+ LEVEL_UP_MOVE(37, MOVE_PROTECT),
+ LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(46, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gMarshtompLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(15, MOVE_BIDE),
+ LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(20, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER),
+ LEVEL_UP_MOVE(42, MOVE_PROTECT),
+ LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(53, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gSwampertLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(15, MOVE_BIDE),
+ LEVEL_UP_MOVE(16, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE(20, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(25, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER),
+ LEVEL_UP_MOVE(46, MOVE_PROTECT),
+ LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(61, MOVE_ENDEAVOR),
+ LEVEL_UP_END
+};
+
+const u16 gPoochyenaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_HOWL),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(21, MOVE_ROAR),
+ LEVEL_UP_MOVE(25, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(29, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(37, MOVE_TAUNT),
+ LEVEL_UP_MOVE(41, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(45, MOVE_THIEF),
+ LEVEL_UP_END
+};
+
+const u16 gMightyenaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HOWL),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 5, MOVE_HOWL),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_BITE),
+ LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(22, MOVE_ROAR),
+ LEVEL_UP_MOVE(27, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(32, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(42, MOVE_TAUNT),
+ LEVEL_UP_MOVE(47, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(52, MOVE_THIEF),
+ LEVEL_UP_END
+};
+
+const u16 gZigzagoonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 9, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(21, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE),
+ LEVEL_UP_MOVE(29, MOVE_COVET),
+ LEVEL_UP_MOVE(33, MOVE_FLAIL),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_MOVE(41, MOVE_BELLY_DRUM),
+ LEVEL_UP_END
+};
+
+const u16 gLinooneLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 9, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(23, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(35, MOVE_COVET),
+ LEVEL_UP_MOVE(41, MOVE_SLASH),
+ LEVEL_UP_MOVE(47, MOVE_REST),
+ LEVEL_UP_MOVE(53, MOVE_BELLY_DRUM),
+ LEVEL_UP_END
+};
+
+const u16 gWurmpleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
+ LEVEL_UP_MOVE( 5, MOVE_POISON_STING),
+ LEVEL_UP_END
+};
+
+const u16 gSilcoonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_END
+};
+
+const u16 gBeautiflyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE(10, MOVE_ABSORB),
+ LEVEL_UP_MOVE(13, MOVE_GUST),
+ LEVEL_UP_MOVE(17, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(20, MOVE_MORNING_SUN),
+ LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(27, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(31, MOVE_ATTRACT),
+ LEVEL_UP_MOVE(34, MOVE_SILVER_WIND),
+ LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gCascoonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_END
+};
+
+const u16 gDustoxLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(10, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(13, MOVE_GUST),
+ LEVEL_UP_MOVE(17, MOVE_PROTECT),
+ LEVEL_UP_MOVE(20, MOVE_MOONLIGHT),
+ LEVEL_UP_MOVE(24, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(27, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN),
+ LEVEL_UP_MOVE(34, MOVE_SILVER_WIND),
+ LEVEL_UP_MOVE(38, MOVE_TOXIC),
+ LEVEL_UP_END
+};
+
+const u16 gLotadLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 3, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_ABSORB),
+ LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
+ LEVEL_UP_MOVE(21, MOVE_MIST),
+ LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(43, MOVE_MEGA_DRAIN),
+ LEVEL_UP_END
+};
+
+const u16 gLombreLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 3, MOVE_GROWL),
+ LEVEL_UP_MOVE( 7, MOVE_ABSORB),
+ LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
+ LEVEL_UP_MOVE(25, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(31, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(37, MOVE_THIEF),
+ LEVEL_UP_MOVE(43, MOVE_UPROAR),
+ LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gLudicoloLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gSeedotLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BIDE),
+ LEVEL_UP_MOVE( 3, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_GROWTH),
+ LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
+ LEVEL_UP_MOVE(21, MOVE_SYNTHESIS),
+ LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(43, MOVE_EXPLOSION),
+ LEVEL_UP_END
+};
+
+const u16 gNuzleafLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 3, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_GROWTH),
+ LEVEL_UP_MOVE(13, MOVE_NATURE_POWER),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
+ LEVEL_UP_MOVE(25, MOVE_TORMENT),
+ LEVEL_UP_MOVE(31, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(37, MOVE_RAZOR_WIND),
+ LEVEL_UP_MOVE(43, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY),
+ LEVEL_UP_END
+};
+
+const u16 gShiftryLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_GROWTH),
+ LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gNincadaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(19, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE),
+ LEVEL_UP_MOVE(31, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(38, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(45, MOVE_DIG),
+ LEVEL_UP_END
+};
+
+const u16 gNinjaskLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(19, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(20, MOVE_SCREECH),
+ LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(31, MOVE_SLASH),
+ LEVEL_UP_MOVE(38, MOVE_AGILITY),
+ LEVEL_UP_MOVE(45, MOVE_BATON_PASS),
+ LEVEL_UP_END
+};
+
+const u16 gShedinjaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(19, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(25, MOVE_SPITE),
+ LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL),
+ LEVEL_UP_MOVE(45, MOVE_GRUDGE),
+ LEVEL_UP_END
+};
+
+const u16 gTaillowLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(26, MOVE_ENDEAVOR),
+ LEVEL_UP_MOVE(34, MOVE_AERIAL_ACE),
+ LEVEL_UP_MOVE(43, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gSwellowLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(28, MOVE_ENDEAVOR),
+ LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE),
+ LEVEL_UP_MOVE(49, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gShroomishLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 4, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(22, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(28, MOVE_POISON_POWDER),
+ LEVEL_UP_MOVE(36, MOVE_GROWTH),
+ LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN),
+ LEVEL_UP_MOVE(54, MOVE_SPORE),
+ LEVEL_UP_END
+};
+
+const u16 gBreloomLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE( 4, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(22, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(23, MOVE_MACH_PUNCH),
+ LEVEL_UP_MOVE(28, MOVE_COUNTER),
+ LEVEL_UP_MOVE(36, MOVE_SKY_UPPERCUT),
+ LEVEL_UP_MOVE(45, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH),
+ LEVEL_UP_END
+};
+
+const u16 gSpindaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_UPROAR),
+ LEVEL_UP_MOVE(12, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(23, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(27, MOVE_DIZZY_PUNCH),
+ LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE),
+ LEVEL_UP_MOVE(38, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(49, MOVE_FLAIL),
+ LEVEL_UP_MOVE(56, MOVE_THRASH),
+ LEVEL_UP_END
+};
+
+const u16 gWingullLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_MIST),
+ LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(43, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(55, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gPelipperLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE( 3, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_MIST),
+ LEVEL_UP_MOVE(25, MOVE_PROTECT),
+ LEVEL_UP_MOVE(33, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(33, MOVE_SWALLOW),
+ LEVEL_UP_MOVE(47, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gSurskitLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(19, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(31, MOVE_AGILITY),
+ LEVEL_UP_MOVE(37, MOVE_MIST),
+ LEVEL_UP_MOVE(37, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gMasquerainLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(19, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(26, MOVE_GUST),
+ LEVEL_UP_MOVE(33, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(40, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(47, MOVE_SILVER_WIND),
+ LEVEL_UP_MOVE(53, MOVE_WHIRLWIND),
+ LEVEL_UP_END
+};
+
+const u16 gWailmerLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 5, MOVE_GROWL),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(14, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL),
+ LEVEL_UP_MOVE(23, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(28, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE(32, MOVE_MIST),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_MOVE(41, MOVE_WATER_SPOUT),
+ LEVEL_UP_MOVE(46, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gWailordLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE( 5, MOVE_GROWL),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(14, MOVE_ROLLOUT),
+ LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL),
+ LEVEL_UP_MOVE(23, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(28, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE(32, MOVE_MIST),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_MOVE(44, MOVE_WATER_SPOUT),
+ LEVEL_UP_MOVE(52, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gSkittyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 7, MOVE_ATTRACT),
+ LEVEL_UP_MOVE(13, MOVE_SING),
+ LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_MOVE(19, MOVE_ASSIST),
+ LEVEL_UP_MOVE(25, MOVE_CHARM),
+ LEVEL_UP_MOVE(27, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_COVET),
+ LEVEL_UP_MOVE(37, MOVE_HEAL_BELL),
+ LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gDelcattyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_ATTRACT),
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
+ LEVEL_UP_END
+};
+
+const u16 gKecleonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_THIEF),
+ LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 1, MOVE_LICK),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 4, MOVE_BIND),
+ LEVEL_UP_MOVE( 7, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(24, MOVE_SCREECH),
+ LEVEL_UP_MOVE(31, MOVE_SLASH),
+ LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE),
+ LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER),
+ LEVEL_UP_END
+};
+
+const u16 gBaltoyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 3, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(11, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB),
+ LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(31, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(37, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(45, MOVE_EXPLOSION),
+ LEVEL_UP_END
+};
+
+const u16 gClaydolLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE( 3, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN),
+ LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(11, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB),
+ LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT),
+ LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(31, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(36, MOVE_HYPER_BEAM),
+ LEVEL_UP_MOVE(42, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(55, MOVE_EXPLOSION),
+ LEVEL_UP_END
+};
+
+const u16 gNosepassLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(16, MOVE_BLOCK),
+ LEVEL_UP_MOVE(22, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(31, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON),
+ LEVEL_UP_MOVE(46, MOVE_LOCK_ON),
+ LEVEL_UP_END
+};
+
+const u16 gTorkoalLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 4, MOVE_SMOG),
+ LEVEL_UP_MOVE( 7, MOVE_CURSE),
+ LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN),
+ LEVEL_UP_MOVE(17, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(20, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(27, MOVE_PROTECT),
+ LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(40, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(43, MOVE_FLAIL),
+ LEVEL_UP_MOVE(46, MOVE_HEAT_WAVE),
+ LEVEL_UP_END
+};
+
+const u16 gSableyeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 5, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(13, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(21, MOVE_FAKE_OUT),
+ LEVEL_UP_MOVE(25, MOVE_DETECT),
+ LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(33, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL),
+ LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK),
+ LEVEL_UP_END
+};
+
+const u16 gBarboachLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(21, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(26, MOVE_REST),
+ LEVEL_UP_MOVE(26, MOVE_SNORE),
+ LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(41, MOVE_FISSURE),
+ LEVEL_UP_END
+};
+
+const u16 gWhiscashLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TICKLE),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(16, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(21, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(26, MOVE_REST),
+ LEVEL_UP_MOVE(26, MOVE_SNORE),
+ LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(56, MOVE_FISSURE),
+ LEVEL_UP_END
+};
+
+const u16 gLuvdiscLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_CHARM),
+ LEVEL_UP_MOVE(12, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(16, MOVE_AGILITY),
+ LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(28, MOVE_ATTRACT),
+ LEVEL_UP_MOVE(36, MOVE_SWEET_KISS),
+ LEVEL_UP_MOVE(40, MOVE_FLAIL),
+ LEVEL_UP_MOVE(48, MOVE_SAFEGUARD),
+ LEVEL_UP_END
+};
+
+const u16 gCorphishLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_MOVE(10, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE(13, MOVE_LEER),
+ LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(23, MOVE_PROTECT),
+ LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(32, MOVE_TAUNT),
+ LEVEL_UP_MOVE(35, MOVE_CRABHAMMER),
+ LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(44, MOVE_GUILLOTINE),
+ LEVEL_UP_END
+};
+
+const u16 gCrawdauntLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_MOVE(10, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE(13, MOVE_LEER),
+ LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
+ LEVEL_UP_MOVE(23, MOVE_PROTECT),
+ LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(34, MOVE_TAUNT),
+ LEVEL_UP_MOVE(39, MOVE_CRABHAMMER),
+ LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(52, MOVE_GUILLOTINE),
+ LEVEL_UP_END
+};
+
+const u16 gFeebasLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE(15, MOVE_TACKLE),
+ LEVEL_UP_MOVE(30, MOVE_FLAIL),
+ LEVEL_UP_END
+};
+
+const u16 gMiloticLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 5, MOVE_WRAP),
+ LEVEL_UP_MOVE(10, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(15, MOVE_REFRESH),
+ LEVEL_UP_MOVE(20, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE(25, MOVE_TWISTER),
+ LEVEL_UP_MOVE(30, MOVE_RECOVER),
+ LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(45, MOVE_ATTRACT),
+ LEVEL_UP_MOVE(50, MOVE_SAFEGUARD),
+ LEVEL_UP_END
+};
+
+const u16 gCarvanhaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 7, MOVE_RAGE),
+ LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(22, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(28, MOVE_SCREECH),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(37, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(43, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gSharpedoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 7, MOVE_RAGE),
+ LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(22, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(28, MOVE_SCREECH),
+ LEVEL_UP_MOVE(33, MOVE_SLASH),
+ LEVEL_UP_MOVE(38, MOVE_TAUNT),
+ LEVEL_UP_MOVE(43, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(48, MOVE_SKULL_BASH),
+ LEVEL_UP_MOVE(53, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gTrapinchLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(33, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(41, MOVE_DIG),
+ LEVEL_UP_MOVE(49, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gVibravaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(33, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(41, MOVE_SCREECH),
+ LEVEL_UP_MOVE(49, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gFlygonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_SAND_TOMB),
+ LEVEL_UP_MOVE(33, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(41, MOVE_SCREECH),
+ LEVEL_UP_MOVE(53, MOVE_SANDSTORM),
+ LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gMakuhitaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(10, MOVE_ARM_THRUST),
+ LEVEL_UP_MOVE(13, MOVE_VITAL_THROW),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
+ LEVEL_UP_MOVE(22, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(31, MOVE_SMELLING_SALT),
+ LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM),
+ LEVEL_UP_MOVE(40, MOVE_ENDURE),
+ LEVEL_UP_MOVE(46, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(49, MOVE_REVERSAL),
+ LEVEL_UP_END
+};
+
+const u16 gHariyamaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST),
+ LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(10, MOVE_ARM_THRUST),
+ LEVEL_UP_MOVE(13, MOVE_VITAL_THROW),
+ LEVEL_UP_MOVE(19, MOVE_FAKE_OUT),
+ LEVEL_UP_MOVE(22, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(33, MOVE_SMELLING_SALT),
+ LEVEL_UP_MOVE(40, MOVE_BELLY_DRUM),
+ LEVEL_UP_MOVE(44, MOVE_ENDURE),
+ LEVEL_UP_MOVE(51, MOVE_SEISMIC_TOSS),
+ LEVEL_UP_MOVE(55, MOVE_REVERSAL),
+ LEVEL_UP_END
+};
+
+const u16 gElectrikeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 9, MOVE_LEER),
+ LEVEL_UP_MOVE(12, MOVE_HOWL),
+ LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(20, MOVE_SPARK),
+ LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(28, MOVE_ROAR),
+ LEVEL_UP_MOVE(33, MOVE_BITE),
+ LEVEL_UP_MOVE(36, MOVE_THUNDER),
+ LEVEL_UP_MOVE(41, MOVE_CHARGE),
+ LEVEL_UP_END
+};
+
+const u16 gManectricLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_HOWL),
+ LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE( 9, MOVE_LEER),
+ LEVEL_UP_MOVE(12, MOVE_HOWL),
+ LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(20, MOVE_SPARK),
+ LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(31, MOVE_ROAR),
+ LEVEL_UP_MOVE(39, MOVE_BITE),
+ LEVEL_UP_MOVE(45, MOVE_THUNDER),
+ LEVEL_UP_MOVE(53, MOVE_CHARGE),
+ LEVEL_UP_END
+};
+
+const u16 gNumelLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE(11, MOVE_EMBER),
+ LEVEL_UP_MOVE(19, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(31, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER),
+ LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gCameruptLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_EMBER),
+ LEVEL_UP_MOVE( 1, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(11, MOVE_EMBER),
+ LEVEL_UP_MOVE(19, MOVE_MAGNITUDE),
+ LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(31, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(45, MOVE_ERUPTION),
+ LEVEL_UP_MOVE(55, MOVE_FISSURE),
+ LEVEL_UP_END
+};
+
+const u16 gSphealLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 7, MOVE_ENCORE),
+ LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
+ LEVEL_UP_MOVE(19, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(31, MOVE_HAIL),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_MOVE(37, MOVE_SNORE),
+ LEVEL_UP_MOVE(43, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(49, MOVE_SHEER_COLD),
+ LEVEL_UP_END
+};
+
+const u16 gSealeoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_ENCORE),
+ LEVEL_UP_MOVE( 7, MOVE_ENCORE),
+ LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
+ LEVEL_UP_MOVE(19, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(31, MOVE_HAIL),
+ LEVEL_UP_MOVE(39, MOVE_REST),
+ LEVEL_UP_MOVE(39, MOVE_SNORE),
+ LEVEL_UP_MOVE(47, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(55, MOVE_SHEER_COLD),
+ LEVEL_UP_END
+};
+
+const u16 gWalreinLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_ENCORE),
+ LEVEL_UP_MOVE( 7, MOVE_ENCORE),
+ LEVEL_UP_MOVE(13, MOVE_ICE_BALL),
+ LEVEL_UP_MOVE(19, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM),
+ LEVEL_UP_MOVE(31, MOVE_HAIL),
+ LEVEL_UP_MOVE(39, MOVE_REST),
+ LEVEL_UP_MOVE(39, MOVE_SNORE),
+ LEVEL_UP_MOVE(50, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(61, MOVE_SHEER_COLD),
+ LEVEL_UP_END
+};
+
+const u16 gCacneaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 5, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 9, MOVE_GROWTH),
+ LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE),
+ LEVEL_UP_MOVE(25, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(33, MOVE_SPIKES),
+ LEVEL_UP_MOVE(37, MOVE_NEEDLE_ARM),
+ LEVEL_UP_MOVE(41, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(45, MOVE_SANDSTORM),
+ LEVEL_UP_END
+};
+
+const u16 gCacturneLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 1, MOVE_GROWTH),
+ LEVEL_UP_MOVE( 5, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 9, MOVE_GROWTH),
+ LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE),
+ LEVEL_UP_MOVE(25, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(35, MOVE_SPIKES),
+ LEVEL_UP_MOVE(41, MOVE_NEEDLE_ARM),
+ LEVEL_UP_MOVE(47, MOVE_COTTON_SPORE),
+ LEVEL_UP_MOVE(53, MOVE_SANDSTORM),
+ LEVEL_UP_END
+};
+
+const u16 gSnoruntLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(10, MOVE_BITE),
+ LEVEL_UP_MOVE(16, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(25, MOVE_PROTECT),
+ LEVEL_UP_MOVE(28, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(34, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(37, MOVE_HAIL),
+ LEVEL_UP_MOVE(43, MOVE_BLIZZARD),
+ LEVEL_UP_END
+};
+
+const u16 gGlalieLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(10, MOVE_BITE),
+ LEVEL_UP_MOVE(16, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(25, MOVE_PROTECT),
+ LEVEL_UP_MOVE(28, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(34, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(42, MOVE_HAIL),
+ LEVEL_UP_MOVE(53, MOVE_BLIZZARD),
+ LEVEL_UP_MOVE(61, MOVE_SHEER_COLD),
+ LEVEL_UP_END
+};
+
+const u16 gLunatoneLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(19, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(25, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(37, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(49, MOVE_EXPLOSION),
+ LEVEL_UP_END
+};
+
+const u16 gSolrockLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN),
+ LEVEL_UP_MOVE(25, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE),
+ LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM),
+ LEVEL_UP_MOVE(49, MOVE_EXPLOSION),
+ LEVEL_UP_END
+};
+
+const u16 gAzurillLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 3, MOVE_CHARM),
+ LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
+ LEVEL_UP_MOVE(10, MOVE_BUBBLE),
+ LEVEL_UP_MOVE(15, MOVE_SLAM),
+ LEVEL_UP_MOVE(21, MOVE_WATER_GUN),
+ LEVEL_UP_END
+};
+
+const u16 gSpoinkLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 7, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(19, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT),
+ LEVEL_UP_MOVE(34, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(37, MOVE_REST),
+ LEVEL_UP_MOVE(37, MOVE_SNORE),
+ LEVEL_UP_MOVE(43, MOVE_BOUNCE),
+ LEVEL_UP_END
+};
+
+const u16 gGrumpigLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE( 1, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE( 7, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH),
+ LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
+ LEVEL_UP_MOVE(19, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT),
+ LEVEL_UP_MOVE(37, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(43, MOVE_REST),
+ LEVEL_UP_MOVE(43, MOVE_SNORE),
+ LEVEL_UP_MOVE(55, MOVE_BOUNCE),
+ LEVEL_UP_END
+};
+
+const u16 gPlusleLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(19, MOVE_SPARK),
+ LEVEL_UP_MOVE(22, MOVE_ENCORE),
+ LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS),
+ LEVEL_UP_MOVE(31, MOVE_CHARGE),
+ LEVEL_UP_MOVE(37, MOVE_THUNDER),
+ LEVEL_UP_MOVE(40, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(47, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gMinunLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
+ LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(19, MOVE_SPARK),
+ LEVEL_UP_MOVE(22, MOVE_ENCORE),
+ LEVEL_UP_MOVE(28, MOVE_CHARM),
+ LEVEL_UP_MOVE(31, MOVE_CHARGE),
+ LEVEL_UP_MOVE(37, MOVE_THUNDER),
+ LEVEL_UP_MOVE(40, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(47, MOVE_AGILITY),
+ LEVEL_UP_END
+};
+
+const u16 gMawileLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS),
+ LEVEL_UP_MOVE(11, MOVE_BITE),
+ LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(21, MOVE_VICE_GRIP),
+ LEVEL_UP_MOVE(26, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(31, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(36, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(46, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(46, MOVE_SWALLOW),
+ LEVEL_UP_MOVE(46, MOVE_SPIT_UP),
+ LEVEL_UP_END
+};
+
+const u16 gMedititeLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BIDE),
+ LEVEL_UP_MOVE( 4, MOVE_MEDITATE),
+ LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(12, MOVE_DETECT),
+ LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER),
+ LEVEL_UP_MOVE(22, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(28, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(32, MOVE_HI_JUMP_KICK),
+ LEVEL_UP_MOVE(38, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(42, MOVE_REVERSAL),
+ LEVEL_UP_MOVE(48, MOVE_RECOVER),
+ LEVEL_UP_END
+};
+
+const u16 gMedichamLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
+ LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
+ LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
+ LEVEL_UP_MOVE( 1, MOVE_BIDE),
+ LEVEL_UP_MOVE( 1, MOVE_MEDITATE),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_DETECT),
+ LEVEL_UP_MOVE( 4, MOVE_MEDITATE),
+ LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(12, MOVE_DETECT),
+ LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER),
+ LEVEL_UP_MOVE(22, MOVE_MIND_READER),
+ LEVEL_UP_MOVE(28, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(32, MOVE_HI_JUMP_KICK),
+ LEVEL_UP_MOVE(40, MOVE_PSYCH_UP),
+ LEVEL_UP_MOVE(46, MOVE_REVERSAL),
+ LEVEL_UP_MOVE(54, MOVE_RECOVER),
+ LEVEL_UP_END
+};
+
+const u16 gSwabluLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(11, MOVE_SING),
+ LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(28, MOVE_MIST),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE),
+ LEVEL_UP_MOVE(41, MOVE_REFRESH),
+ LEVEL_UP_MOVE(48, MOVE_PERISH_SONG),
+ LEVEL_UP_END
+};
+
+const u16 gAltariaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PECK),
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 1, MOVE_SING),
+ LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(11, MOVE_SING),
+ LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(28, MOVE_MIST),
+ LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(40, MOVE_DRAGON_DANCE),
+ LEVEL_UP_MOVE(45, MOVE_REFRESH),
+ LEVEL_UP_MOVE(54, MOVE_PERISH_SONG),
+ LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK),
+ LEVEL_UP_END
+};
+
+const u16 gWynautLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SPLASH),
+ LEVEL_UP_MOVE( 1, MOVE_CHARM),
+ LEVEL_UP_MOVE( 1, MOVE_ENCORE),
+ LEVEL_UP_MOVE(15, MOVE_COUNTER),
+ LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT),
+ LEVEL_UP_MOVE(15, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND),
+ LEVEL_UP_END
+};
+
+const u16 gDuskullLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE( 5, MOVE_DISABLE),
+ LEVEL_UP_MOVE(12, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(16, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(27, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(34, MOVE_CURSE),
+ LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP),
+ LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(49, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gDusclopsLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_BIND),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE( 1, MOVE_DISABLE),
+ LEVEL_UP_MOVE( 5, MOVE_DISABLE),
+ LEVEL_UP_MOVE(12, MOVE_FORESIGHT),
+ LEVEL_UP_MOVE(16, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(27, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(34, MOVE_CURSE),
+ LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH),
+ LEVEL_UP_MOVE(41, MOVE_WILL_O_WISP),
+ LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK),
+ LEVEL_UP_MOVE(58, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_END
+};
+
+const u16 gRoseliaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ABSORB),
+ LEVEL_UP_MOVE( 5, MOVE_GROWTH),
+ LEVEL_UP_MOVE( 9, MOVE_POISON_STING),
+ LEVEL_UP_MOVE(13, MOVE_STUN_SPORE),
+ LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN),
+ LEVEL_UP_MOVE(21, MOVE_LEECH_SEED),
+ LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF),
+ LEVEL_UP_MOVE(29, MOVE_GRASS_WHISTLE),
+ LEVEL_UP_MOVE(33, MOVE_GIGA_DRAIN),
+ LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(41, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(45, MOVE_TOXIC),
+ LEVEL_UP_MOVE(49, MOVE_PETAL_DANCE),
+ LEVEL_UP_MOVE(53, MOVE_AROMATHERAPY),
+ LEVEL_UP_MOVE(57, MOVE_SYNTHESIS),
+ LEVEL_UP_END
+};
+
+const u16 gSlakothLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 7, MOVE_ENCORE),
+ LEVEL_UP_MOVE(13, MOVE_SLACK_OFF),
+ LEVEL_UP_MOVE(19, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(31, MOVE_COVET),
+ LEVEL_UP_MOVE(37, MOVE_COUNTER),
+ LEVEL_UP_MOVE(43, MOVE_FLAIL),
+ LEVEL_UP_END
+};
+
+const u16 gVigorothLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE( 1, MOVE_ENCORE),
+ LEVEL_UP_MOVE( 1, MOVE_UPROAR),
+ LEVEL_UP_MOVE( 7, MOVE_ENCORE),
+ LEVEL_UP_MOVE(13, MOVE_UPROAR),
+ LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES),
+ LEVEL_UP_MOVE(25, MOVE_ENDURE),
+ LEVEL_UP_MOVE(31, MOVE_SLASH),
+ LEVEL_UP_MOVE(37, MOVE_COUNTER),
+ LEVEL_UP_MOVE(43, MOVE_FOCUS_PUNCH),
+ LEVEL_UP_MOVE(49, MOVE_REVERSAL),
+ LEVEL_UP_END
+};
+
+const u16 gSlakingLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_ENCORE),
+ LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF),
+ LEVEL_UP_MOVE( 7, MOVE_ENCORE),
+ LEVEL_UP_MOVE(13, MOVE_SLACK_OFF),
+ LEVEL_UP_MOVE(19, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(25, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(31, MOVE_COVET),
+ LEVEL_UP_MOVE(36, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(37, MOVE_COUNTER),
+ LEVEL_UP_MOVE(43, MOVE_FLAIL),
+ LEVEL_UP_END
+};
+
+const u16 gGulpinLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 6, MOVE_YAWN),
+ LEVEL_UP_MOVE( 9, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE(14, MOVE_SLUDGE),
+ LEVEL_UP_MOVE(17, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(23, MOVE_ENCORE),
+ LEVEL_UP_MOVE(28, MOVE_TOXIC),
+ LEVEL_UP_MOVE(34, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(34, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(34, MOVE_SWALLOW),
+ LEVEL_UP_MOVE(39, MOVE_SLUDGE_BOMB),
+ LEVEL_UP_END
+};
+
+const u16 gSwalotLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_YAWN),
+ LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE( 1, MOVE_SLUDGE),
+ LEVEL_UP_MOVE( 6, MOVE_YAWN),
+ LEVEL_UP_MOVE( 9, MOVE_POISON_GAS),
+ LEVEL_UP_MOVE(14, MOVE_SLUDGE),
+ LEVEL_UP_MOVE(17, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(23, MOVE_ENCORE),
+ LEVEL_UP_MOVE(26, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(31, MOVE_TOXIC),
+ LEVEL_UP_MOVE(40, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(40, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(40, MOVE_SWALLOW),
+ LEVEL_UP_MOVE(48, MOVE_SLUDGE_BOMB),
+ LEVEL_UP_END
+};
+
+const u16 gTropiusLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_GUST),
+ LEVEL_UP_MOVE( 7, MOVE_GROWTH),
+ LEVEL_UP_MOVE(11, MOVE_RAZOR_LEAF),
+ LEVEL_UP_MOVE(17, MOVE_STOMP),
+ LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE(27, MOVE_WHIRLWIND),
+ LEVEL_UP_MOVE(31, MOVE_MAGICAL_LEAF),
+ LEVEL_UP_MOVE(37, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM),
+ LEVEL_UP_MOVE(47, MOVE_SYNTHESIS),
+ LEVEL_UP_END
+};
+
+const u16 gWhismurLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 5, MOVE_UPROAR),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(15, MOVE_HOWL),
+ LEVEL_UP_MOVE(21, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(25, MOVE_STOMP),
+ LEVEL_UP_MOVE(31, MOVE_SCREECH),
+ LEVEL_UP_MOVE(35, MOVE_ROAR),
+ LEVEL_UP_MOVE(41, MOVE_REST),
+ LEVEL_UP_MOVE(41, MOVE_SLEEP_TALK),
+ LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE),
+ LEVEL_UP_END
+};
+
+const u16 gLoudredLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_UPROAR),
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 1, MOVE_HOWL),
+ LEVEL_UP_MOVE( 5, MOVE_UPROAR),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(15, MOVE_HOWL),
+ LEVEL_UP_MOVE(23, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(29, MOVE_STOMP),
+ LEVEL_UP_MOVE(37, MOVE_SCREECH),
+ LEVEL_UP_MOVE(43, MOVE_ROAR),
+ LEVEL_UP_MOVE(51, MOVE_REST),
+ LEVEL_UP_MOVE(51, MOVE_SLEEP_TALK),
+ LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE),
+ LEVEL_UP_END
+};
+
+const u16 gExploudLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_POUND),
+ LEVEL_UP_MOVE( 1, MOVE_UPROAR),
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 1, MOVE_HOWL),
+ LEVEL_UP_MOVE( 5, MOVE_UPROAR),
+ LEVEL_UP_MOVE(11, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(15, MOVE_HOWL),
+ LEVEL_UP_MOVE(23, MOVE_SUPERSONIC),
+ LEVEL_UP_MOVE(29, MOVE_STOMP),
+ LEVEL_UP_MOVE(37, MOVE_SCREECH),
+ LEVEL_UP_MOVE(40, MOVE_HYPER_BEAM),
+ LEVEL_UP_MOVE(45, MOVE_ROAR),
+ LEVEL_UP_MOVE(55, MOVE_REST),
+ LEVEL_UP_MOVE(55, MOVE_SLEEP_TALK),
+ LEVEL_UP_MOVE(63, MOVE_HYPER_VOICE),
+ LEVEL_UP_END
+};
+
+const u16 gClamperlLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_CLAMP),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
+ LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
+ LEVEL_UP_END
+};
+
+const u16 gHuntailLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
+ LEVEL_UP_MOVE( 8, MOVE_BITE),
+ LEVEL_UP_MOVE(15, MOVE_SCREECH),
+ LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE(29, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(36, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(43, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gGorebyssLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
+ LEVEL_UP_MOVE( 8, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(15, MOVE_AGILITY),
+ LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE(29, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(43, MOVE_BATON_PASS),
+ LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gAbsolLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 5, MOVE_LEER),
+ LEVEL_UP_MOVE( 9, MOVE_TAUNT),
+ LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(17, MOVE_RAZOR_WIND),
+ LEVEL_UP_MOVE(21, MOVE_BITE),
+ LEVEL_UP_MOVE(26, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(31, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(36, MOVE_SLASH),
+ LEVEL_UP_MOVE(41, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(46, MOVE_PERISH_SONG),
+ LEVEL_UP_END
+};
+
+const u16 gShuppetLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE( 8, MOVE_SCREECH),
+ LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(20, MOVE_CURSE),
+ LEVEL_UP_MOVE(25, MOVE_SPITE),
+ LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP),
+ LEVEL_UP_MOVE(37, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL),
+ LEVEL_UP_MOVE(49, MOVE_SNATCH),
+ LEVEL_UP_MOVE(56, MOVE_GRUDGE),
+ LEVEL_UP_END
+};
+
+const u16 gBanetteLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE( 1, MOVE_SCREECH),
+ LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE( 1, MOVE_CURSE),
+ LEVEL_UP_MOVE( 8, MOVE_SCREECH),
+ LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(20, MOVE_CURSE),
+ LEVEL_UP_MOVE(25, MOVE_SPITE),
+ LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP),
+ LEVEL_UP_MOVE(39, MOVE_FAINT_ATTACK),
+ LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL),
+ LEVEL_UP_MOVE(55, MOVE_SNATCH),
+ LEVEL_UP_MOVE(64, MOVE_GRUDGE),
+ LEVEL_UP_END
+};
+
+const u16 gSeviperLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 7, MOVE_LICK),
+ LEVEL_UP_MOVE(10, MOVE_BITE),
+ LEVEL_UP_MOVE(16, MOVE_POISON_TAIL),
+ LEVEL_UP_MOVE(19, MOVE_SCREECH),
+ LEVEL_UP_MOVE(25, MOVE_GLARE),
+ LEVEL_UP_MOVE(28, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(34, MOVE_POISON_FANG),
+ LEVEL_UP_MOVE(37, MOVE_SWAGGER),
+ LEVEL_UP_MOVE(43, MOVE_HAZE),
+ LEVEL_UP_END
+};
+
+const u16 gZangooseLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 4, MOVE_LEER),
+ LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(10, MOVE_SWORDS_DANCE),
+ LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(19, MOVE_SLASH),
+ LEVEL_UP_MOVE(25, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(31, MOVE_CRUSH_CLAW),
+ LEVEL_UP_MOVE(37, MOVE_TAUNT),
+ LEVEL_UP_MOVE(46, MOVE_DETECT),
+ LEVEL_UP_MOVE(55, MOVE_FALSE_SWIPE),
+ LEVEL_UP_END
+};
+
+const u16 gRelicanthLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 8, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB),
+ LEVEL_UP_MOVE(22, MOVE_YAWN),
+ LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(36, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(50, MOVE_REST),
+ LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(64, MOVE_HYDRO_PUMP),
+ LEVEL_UP_END
+};
+
+const u16 gAronLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 4, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(10, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(13, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(21, MOVE_ROAR),
+ LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(29, MOVE_IRON_TAIL),
+ LEVEL_UP_MOVE(34, MOVE_PROTECT),
+ LEVEL_UP_MOVE(39, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gLaironLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 4, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(10, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(13, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(21, MOVE_ROAR),
+ LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(29, MOVE_IRON_TAIL),
+ LEVEL_UP_MOVE(37, MOVE_PROTECT),
+ LEVEL_UP_MOVE(45, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gAggronLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 4, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
+ LEVEL_UP_MOVE(10, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(13, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(21, MOVE_ROAR),
+ LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(29, MOVE_IRON_TAIL),
+ LEVEL_UP_MOVE(37, MOVE_PROTECT),
+ LEVEL_UP_MOVE(50, MOVE_METAL_SOUND),
+ LEVEL_UP_MOVE(63, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gCastformLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(10, MOVE_EMBER),
+ LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW),
+ LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE),
+ LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY),
+ LEVEL_UP_MOVE(20, MOVE_HAIL),
+ LEVEL_UP_MOVE(30, MOVE_WEATHER_BALL),
+ LEVEL_UP_END
+};
+
+const u16 gVolbeatLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE( 9, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(13, MOVE_MOONLIGHT),
+ LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_TAIL_GLOW),
+ LEVEL_UP_MOVE(25, MOVE_SIGNAL_BEAM),
+ LEVEL_UP_MOVE(29, MOVE_PROTECT),
+ LEVEL_UP_MOVE(33, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gIllumiseLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TACKLE),
+ LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT),
+ LEVEL_UP_MOVE( 9, MOVE_CHARM),
+ LEVEL_UP_MOVE(13, MOVE_MOONLIGHT),
+ LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK),
+ LEVEL_UP_MOVE(21, MOVE_WISH),
+ LEVEL_UP_MOVE(25, MOVE_ENCORE),
+ LEVEL_UP_MOVE(29, MOVE_FLATTER),
+ LEVEL_UP_MOVE(33, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(37, MOVE_COVET),
+ LEVEL_UP_END
+};
+
+const u16 gLileepLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 8, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(15, MOVE_ACID),
+ LEVEL_UP_MOVE(22, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(36, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(50, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(50, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(50, MOVE_SWALLOW),
+ LEVEL_UP_END
+};
+
+const u16 gCradilyLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
+ LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE( 1, MOVE_ACID),
+ LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
+ LEVEL_UP_MOVE( 8, MOVE_CONSTRICT),
+ LEVEL_UP_MOVE(15, MOVE_ACID),
+ LEVEL_UP_MOVE(22, MOVE_INGRAIN),
+ LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
+ LEVEL_UP_MOVE(36, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(48, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(60, MOVE_STOCKPILE),
+ LEVEL_UP_MOVE(60, MOVE_SPIT_UP),
+ LEVEL_UP_MOVE(60, MOVE_SWALLOW),
+ LEVEL_UP_END
+};
+
+const u16 gAnorithLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_MOVE(13, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(25, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(31, MOVE_PROTECT),
+ LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(43, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(49, MOVE_SLASH),
+ LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST),
+ LEVEL_UP_END
+};
+
+const u16 gArmaldoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
+ LEVEL_UP_MOVE( 1, MOVE_HARDEN),
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE( 7, MOVE_HARDEN),
+ LEVEL_UP_MOVE(13, MOVE_MUD_SPORT),
+ LEVEL_UP_MOVE(19, MOVE_WATER_GUN),
+ LEVEL_UP_MOVE(25, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(31, MOVE_PROTECT),
+ LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER),
+ LEVEL_UP_MOVE(55, MOVE_SLASH),
+ LEVEL_UP_MOVE(64, MOVE_ROCK_BLAST),
+ LEVEL_UP_END
+};
+
+const u16 gRaltsLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(16, MOVE_TELEPORT),
+ LEVEL_UP_MOVE(21, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(26, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(31, MOVE_IMPRISON),
+ LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(41, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(46, MOVE_DREAM_EATER),
+ LEVEL_UP_END
+};
+
+const u16 gKirliaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
+ LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(16, MOVE_TELEPORT),
+ LEVEL_UP_MOVE(21, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(26, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(33, MOVE_IMPRISON),
+ LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(47, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(54, MOVE_DREAM_EATER),
+ LEVEL_UP_END
+};
+
+const u16 gGardevoirLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_GROWL),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
+ LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
+ LEVEL_UP_MOVE(16, MOVE_TELEPORT),
+ LEVEL_UP_MOVE(21, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(26, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(33, MOVE_IMPRISON),
+ LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(51, MOVE_HYPNOSIS),
+ LEVEL_UP_MOVE(60, MOVE_DREAM_EATER),
+ LEVEL_UP_END
+};
+
+const u16 gBagonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 5, MOVE_BITE),
+ LEVEL_UP_MOVE( 9, MOVE_LEER),
+ LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(25, MOVE_EMBER),
+ LEVEL_UP_MOVE(33, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(37, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(41, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(49, MOVE_DRAGON_CLAW),
+ LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gShelgonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 5, MOVE_BITE),
+ LEVEL_UP_MOVE( 9, MOVE_LEER),
+ LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(25, MOVE_EMBER),
+ LEVEL_UP_MOVE(30, MOVE_PROTECT),
+ LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(47, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(56, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(69, MOVE_DRAGON_CLAW),
+ LEVEL_UP_MOVE(78, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gSalamenceLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_RAGE),
+ LEVEL_UP_MOVE( 1, MOVE_BITE),
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE( 5, MOVE_BITE),
+ LEVEL_UP_MOVE( 9, MOVE_LEER),
+ LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
+ LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY),
+ LEVEL_UP_MOVE(25, MOVE_EMBER),
+ LEVEL_UP_MOVE(30, MOVE_PROTECT),
+ LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(47, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(50, MOVE_FLY),
+ LEVEL_UP_MOVE(61, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(79, MOVE_DRAGON_CLAW),
+ LEVEL_UP_MOVE(93, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_END
+};
+
+const u16 gBeldumLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
+ LEVEL_UP_END
+};
+
+const u16 gMetangLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(20, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(20, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(26, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(32, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(38, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(50, MOVE_METEOR_MASH),
+ LEVEL_UP_MOVE(56, MOVE_AGILITY),
+ LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gMetagrossLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(20, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(20, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(26, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(32, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(38, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(55, MOVE_METEOR_MASH),
+ LEVEL_UP_MOVE(66, MOVE_AGILITY),
+ LEVEL_UP_MOVE(77, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gRegirockLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW),
+ LEVEL_UP_MOVE(17, MOVE_CURSE),
+ LEVEL_UP_MOVE(25, MOVE_SUPERPOWER),
+ LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON),
+ LEVEL_UP_MOVE(57, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gRegiceLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE( 9, MOVE_ICY_WIND),
+ LEVEL_UP_MOVE(17, MOVE_CURSE),
+ LEVEL_UP_MOVE(25, MOVE_SUPERPOWER),
+ LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(41, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON),
+ LEVEL_UP_MOVE(57, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gRegisteelLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
+ LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW),
+ LEVEL_UP_MOVE(17, MOVE_CURSE),
+ LEVEL_UP_MOVE(25, MOVE_SUPERPOWER),
+ LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE),
+ LEVEL_UP_MOVE(41, MOVE_AMNESIA),
+ LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON),
+ LEVEL_UP_MOVE(57, MOVE_LOCK_ON),
+ LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gKyogreLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE),
+ LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(20, MOVE_BODY_SLAM),
+ LEVEL_UP_MOVE(30, MOVE_CALM_MIND),
+ LEVEL_UP_MOVE(35, MOVE_ICE_BEAM),
+ LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
+ LEVEL_UP_MOVE(50, MOVE_REST),
+ LEVEL_UP_MOVE(60, MOVE_SHEER_COLD),
+ LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(75, MOVE_WATER_SPOUT),
+ LEVEL_UP_END
+};
+
+const u16 gGroudonLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
+ LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(20, MOVE_SLASH),
+ LEVEL_UP_MOVE(30, MOVE_BULK_UP),
+ LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE),
+ LEVEL_UP_MOVE(45, MOVE_FIRE_BLAST),
+ LEVEL_UP_MOVE(50, MOVE_REST),
+ LEVEL_UP_MOVE(60, MOVE_FISSURE),
+ LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM),
+ LEVEL_UP_MOVE(75, MOVE_ERUPTION),
+ LEVEL_UP_END
+};
+
+const u16 gRayquazaLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_TWISTER),
+ LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
+ LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
+ LEVEL_UP_MOVE(20, MOVE_DRAGON_CLAW),
+ LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE),
+ LEVEL_UP_MOVE(35, MOVE_CRUNCH),
+ LEVEL_UP_MOVE(45, MOVE_FLY),
+ LEVEL_UP_MOVE(50, MOVE_REST),
+ LEVEL_UP_MOVE(60, MOVE_EXTREME_SPEED),
+ LEVEL_UP_MOVE(65, MOVE_OUTRAGE),
+ LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gLatiasLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE( 5, MOVE_WISH),
+ LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(15, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(25, MOVE_WATER_SPORT),
+ LEVEL_UP_MOVE(30, MOVE_REFRESH),
+ LEVEL_UP_MOVE(35, MOVE_MIST_BALL),
+ LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(45, MOVE_RECOVER),
+ LEVEL_UP_MOVE(50, MOVE_CHARM),
+ LEVEL_UP_END
+};
+
+const u16 gLatiosLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE( 5, MOVE_MEMENTO),
+ LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(15, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
+ LEVEL_UP_MOVE(25, MOVE_PROTECT),
+ LEVEL_UP_MOVE(30, MOVE_REFRESH),
+ LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE),
+ LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(45, MOVE_RECOVER),
+ LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE),
+ LEVEL_UP_END
+};
+
+const u16 gJirachiLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WISH),
+ LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
+ LEVEL_UP_MOVE( 5, MOVE_REST),
+ LEVEL_UP_MOVE(10, MOVE_SWIFT),
+ LEVEL_UP_MOVE(15, MOVE_HELPING_HAND),
+ LEVEL_UP_MOVE(20, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(25, MOVE_REFRESH),
+ LEVEL_UP_MOVE(30, MOVE_REST),
+ LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT),
+ LEVEL_UP_MOVE(45, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(50, MOVE_DOOM_DESIRE),
+ LEVEL_UP_END
+};
+
+const u16 gDeoxysLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_LEER),
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE),
+ LEVEL_UP_MOVE(10, MOVE_TELEPORT),
+ LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF),
+ LEVEL_UP_MOVE(20, MOVE_PURSUIT),
+ LEVEL_UP_MOVE(25, MOVE_PSYCHIC),
+ LEVEL_UP_MOVE(30, MOVE_SNATCH),
+ LEVEL_UP_MOVE(35, MOVE_COSMIC_POWER),
+ LEVEL_UP_MOVE(40, MOVE_RECOVER),
+ LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST),
+ LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM),
+ LEVEL_UP_END
+};
+
+const u16 gChimechoLevelUpLearnset[] = {
+ LEVEL_UP_MOVE( 1, MOVE_WRAP),
+ LEVEL_UP_MOVE( 6, MOVE_GROWL),
+ LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
+ LEVEL_UP_MOVE(14, MOVE_CONFUSION),
+ LEVEL_UP_MOVE(17, MOVE_TAKE_DOWN),
+ LEVEL_UP_MOVE(22, MOVE_UPROAR),
+ LEVEL_UP_MOVE(25, MOVE_YAWN),
+ LEVEL_UP_MOVE(30, MOVE_PSYWAVE),
+ LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE),
+ LEVEL_UP_MOVE(38, MOVE_HEAL_BELL),
+ LEVEL_UP_MOVE(41, MOVE_SAFEGUARD),
+ LEVEL_UP_MOVE(46, MOVE_PSYCHIC),
+ LEVEL_UP_END
+};
+
+#endif //POKERUBY_LEVEL_UP_LEARNSETS_H
diff --git a/include/data/pokemon/nature_stats.h b/include/data/pokemon/nature_stats.h
new file mode 100644
index 000000000..27bd98f9d
--- /dev/null
+++ b/include/data/pokemon/nature_stats.h
@@ -0,0 +1,37 @@
+//
+// Created by Scott Norton on 6/27/17.
+//
+
+#ifndef POKERUBY_NATURE_STATS_H
+#define POKERUBY_NATURE_STATS_H
+
+const s8 gNatureStatTable[][5] = {
+ // Atk Def Spd Sp.Atk Sp.Def
+ { 0, 0, 0, 0, 0}, // Hardy
+ { 1, -1, 0, 0, 0}, // Lonely
+ { 1, 0, -1, 0, 0}, // Brave
+ { 1, 0, 0, -1, 0}, // Adamant
+ { 1, 0, 0, 0, -1}, // Naughty
+ { -1, 1, 0, 0, 0}, // Bold
+ { 0, 0, 0, 0, 0}, // Docile
+ { 0, 1, -1, 0, 0}, // Relaxed
+ { 0, 1, 0, -1, 0}, // Impish
+ { 0, 1, 0, 0, -1}, // Lax
+ { -1, 0, 1, 0, 0}, // Timid
+ { 0, -1, 1, 0, 0}, // Hasty
+ { 0, 0, 0, 0, 0}, // Serious
+ { 0, 0, 1, -1, 0}, // Jolly
+ { 0, 0, 1, 0, -1}, // Naive
+ { -1, 0, 0, 1, 0}, // Modest
+ { 0, -1, 0, 1, 0}, // Mild
+ { 0, 0, -1, 1, 0}, // Quiet
+ { 0, 0, 0, 0, 0}, // Bashful
+ { 0, 0, 0, 1, -1}, // Rash
+ { -1, 0, 0, 0, 1}, // Calm
+ { 0, -1, 0, 0, 1}, // Gentle
+ { 0, 0, -1, 0, 1}, // Sassy
+ { 0, 0, 0, -1, 1}, // Careful
+ { 0, 0, 0, 0, 0} // Quirky
+};
+
+#endif //POKERUBY_NATURE_STATS_H
diff --git a/include/data/pokemon/spinda_spots.h b/include/data/pokemon/spinda_spots.h
new file mode 100644
index 000000000..234cdf00e
--- /dev/null
+++ b/include/data/pokemon/spinda_spots.h
@@ -0,0 +1,15 @@
+//
+// Created by Scott Norton on 6/27/17.
+//
+
+#ifndef POKERUBY_SPINDA_SPOTS_H
+#define POKERUBY_SPINDA_SPOTS_H
+
+const struct SpindaSpot gSpindaSpotGraphics[] = {
+ {16, 14, INCBIN_U16("graphics/spinda_spots/spot_0.bin")},
+ {40, 15, INCBIN_U16("graphics/spinda_spots/spot_1.bin")},
+ {22, 32, INCBIN_U16("graphics/spinda_spots/spot_2.bin")},
+ {34, 33, INCBIN_U16("graphics/spinda_spots/spot_3.bin")}
+};
+
+#endif //POKERUBY_SPINDA_SPOTS_H
diff --git a/include/data/pokemon/tmhm_learnsets.h b/include/data/pokemon/tmhm_learnsets.h
new file mode 100644
index 000000000..fa48f7f5c
--- /dev/null
+++ b/include/data/pokemon/tmhm_learnsets.h
@@ -0,0 +1,431 @@
+//
+// Created by Scott Norton on 6/27/17.
+//
+
+#ifndef POKERUBY_TMHM_LEARNSETS_H
+#define POKERUBY_TMHM_LEARNSETS_H
+
+// TO-DO: Rewrite this declaration to allow assignment of TM/HM learns by name.
+// These are 58-bit numbers aligned to 64 bits. The least significant bit represents TM01,
+// while the most significant bit represents HM08.
+
+asm(
+ ".align 2\n"
+ ".global gTMHMLearnsets\n"
+ "gTMHMLearnsets:\n"
+
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ??????????
+ ".8byte 0b0011100100000111100000100010000100001101010000011100100000\n" // Bulbasaur
+ ".8byte 0b0011100100000111100000100010000100001101010000011100100000\n" // Ivysaur
+ ".8byte 0b0011100100000111100000100010000110001101010100011100110000\n" // Venusaur
+ ".8byte 0b0010100110000111101010010011001100010100010000011000100011\n" // Charmander
+ ".8byte 0b0010100110000111101010010011001100010100010000011000100011\n" // Charmeleon
+ ".8byte 0b0010101110010111101010010011001110010100010100011000110011\n" // Charizard
+ ".8byte 0b1110110000000111100000000011001100010100110011001001100101\n" // Squirtle
+ ".8byte 0b1110110000000111100000000011001100010100110011001001100101\n" // Wartortle
+ ".8byte 0b1110110000000111100000000011001110010100110111001001110101\n" // Blastoise
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Caterpie
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Metapod
+ ".8byte 0b0001000000101111101000000010110100001111110100011000100000\n" // Butterfree
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Weedle
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Kakuna
+ ".8byte 0b0010000100001111101000100011000100001101010100011000100000\n" // Beedrill
+ ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Pidgey
+ ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Pidgeotto
+ ".8byte 0b0000001000011111101000000010000100000100110100011000100000\n" // Pidgeot
+ ".8byte 0b0010000100001111100000001010101101110100110011111000100000\n" // Rattata
+ ".8byte 0b0010100100001111100000001010101101110100110111111000110000\n" // Raticate
+ ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Spearow
+ ".8byte 0b0000001000011111101000000010000100000100110100011000100000\n" // Fearow
+ ".8byte 0b0000100001001111110000100010001110010101110000011000100000\n" // Ekans
+ ".8byte 0b0000100001001111110000100010001110010101110100011000100000\n" // Arbok
+ ".8byte 0b0011100000000111100000001011001101110100111000001000100001\n" // Pikachu
+ ".8byte 0b0011100000001111100000001011001101110100111100001000100001\n" // Raichu
+ ".8byte 0b0010100100001111101101000011001110010100010000011000100001\n" // Sandshrew
+ ".8byte 0b0010100100001111101101000011001110010100010100011000100001\n" // Sandslash
+ ".8byte 0b0010100100001111101000101010001101110100110011011000100100\n" // Nidoran♀
+ ".8byte 0b0010100100001111101000101010001101110100110011011000100100\n" // Nidorina
+ ".8byte 0b0010110100001111111111111011101111110100110111111000110101\n" // Nidoqueen
+ ".8byte 0b0010100100001111100000101010001101110100110011011000100100\n" // Nidoran♂
+ ".8byte 0b0010100100001111100000101010001101110100110011011000100100\n" // Nidorino
+ ".8byte 0b0010110100001111110111111011101111110100110111111000110101\n" // Nidoking
+ ".8byte 0b0001100001000111100010011111111101111110111011011000101101\n" // Clefairy
+ ".8byte 0b0001100001000111100010011111111101111110111111011000101101\n" // Clefable
+ ".8byte 0b0000000010000111100010010010001100010110010000011000110000\n" // Vulpix
+ ".8byte 0b0000000010000111100010010010001100010110010100011000110000\n" // Ninetales
+ ".8byte 0b0001100001000111100010011111111101101110111011011000100101\n" // Jigglypuff
+ ".8byte 0b0001100001000111100010011111111101101110111111011000100101\n" // Wigglytuff
+ ".8byte 0b0000000001011111111000100010100100000101110000111000100000\n" // Zubat
+ ".8byte 0b0000000001011111111000100010100100000101110100111000100000\n" // Golbat
+ ".8byte 0b0001000100000111100000100010000100001101010000011100100000\n" // Oddish
+ ".8byte 0b0001000100000111100000100010000100001101010000011100100000\n" // Gloom
+ ".8byte 0b0001000100000111100000100010000100001101010100011100100000\n" // Vileplume
+ ".8byte 0b0011000100001111101000100010001100001101010000011100100000\n" // Paras
+ ".8byte 0b0011000100001111101000100010001100001101010100011100100000\n" // Parasect
+ ".8byte 0b0001000000101111100000100010010100001101010000011000100000\n" // Venonat
+ ".8byte 0b0001000000101111101000100010010100001101010100011000100000\n" // Venomoth
+ ".8byte 0b0010000100001111101100100010001110000100010000011000100000\n" // Diglett
+ ".8byte 0b0010000100001111101100100010001110000100010100011000100000\n" // Dugtrio
+ ".8byte 0b0001000101001111111000001010101101110100110000111000100100\n" // Meowth
+ ".8byte 0b0001000101001111111000001010101101110100110100111000110100\n" // Persian
+ ".8byte 0b1111110000000111101000000011001100010100110011001001101101\n" // Psyduck
+ ".8byte 0b1111110000000111101000000011001100010100110111001001101101\n" // Golduck
+ ".8byte 0b0010100010001111101100000011001111110100110000111010100001\n" // Mankey
+ ".8byte 0b0010100010001111101100000011001111110100110100111010100001\n" // Primeape
+ ".8byte 0b0010100010001111101010010010001100010100010000011000110000\n" // Growlithe
+ ".8byte 0b0010100010001111101010010010001100010100010100011000110000\n" // Arcanine
+ ".8byte 0b1100010000001111100000000010011100000100110011001001100100\n" // Poliwag
+ ".8byte 0b1110110000001111100000000011011110000100110011001001100101\n" // Poliwhirl
+ ".8byte 0b1110110000001111100100000011011110000100110111001011100101\n" // Poliwrath
+ ".8byte 0b0001000001101111110000001110110100010110111000111000101001\n" // Abra
+ ".8byte 0b0001000001101111110000001110110100010110111000111000101001\n" // Kadabra
+ ".8byte 0b0001000001101111110000001110110100010110111100111000101001\n" // Alakazam
+ ".8byte 0b0010100000001111100110010011001110000100110000011010100001\n" // Machop
+ ".8byte 0b0010100000001111100110010011001110000100110000011010100001\n" // Machoke
+ ".8byte 0b0010100000001111100110010011001110000100110100011010100001\n" // Machamp
+ ".8byte 0b0001000100001111100000100010000100001101010000011100100000\n" // Bellsprout
+ ".8byte 0b0001000100001111100000100010000100001101010000011100100000\n" // Weepinbell
+ ".8byte 0b0001000100001111100000100010000100001101010100011100100000\n" // Victreebel
+ ".8byte 0b1100010100001111100000100010000100000101110011001001100100\n" // Tentacool
+ ".8byte 0b1100010100001111100000100010000100000101110111001001100100\n" // Tentacruel
+ ".8byte 0b0010100000000111100111010011001110000100010000011000100001\n" // Geodude
+ ".8byte 0b0010100000000111100111010011001110000100010000011000100001\n" // Graveler
+ ".8byte 0b0010100000000111100111010011001110000100010100011000110001\n" // Golem
+ ".8byte 0b0000100010000111100010010010000100011100010000011000100000\n" // Ponyta
+ ".8byte 0b0000100010000111100010010010000100011100010100011000100000\n" // Rapidash
+ ".8byte 0b1001110000100111100010010010111110010110110011011001101100\n" // Slowpoke
+ ".8byte 0b1011110000100111100010010011111110010110110111011001101101\n" // Slowbro
+ ".8byte 0b0001000000000011100000001110000101100100110000011000100000\n" // Magnemite
+ ".8byte 0b0001000000000011100000001110000101100100110100011000100000\n" // Magneton
+ ".8byte 0b0000001100011111101000000010000100010100010000011000100000\n" // Farfetch'd
+ ".8byte 0b0000001000011111101000000010000100000100010000011000100000\n" // Doduo
+ ".8byte 0b0000001000011111111000000010000100000100010100111000100000\n" // Dodrio
+ ".8byte 0b1100010000001111100000000010000100000110110011001001100100\n" // Seel
+ ".8byte 0b1100010000001111100000000010000100000110110111001001100100\n" // Dewgong
+ ".8byte 0b0000000000001111110110111010001101100101110000111000100000\n" // Grimer
+ ".8byte 0b0010100000001111110110111011001101100101110100111000100001\n" // Muk
+ ".8byte 0b1000010000000111100000000010000100000100110011001001100100\n" // Shellder
+ ".8byte 0b1000010000000111110000000010000100000100110111001001100100\n" // Cloyster
+ ".8byte 0b0000000001101111110000100010110100100101110000111000100000\n" // Gastly
+ ".8byte 0b0000000001101111110000100010110100100101110000111000100000\n" // Haunter
+ ".8byte 0b0010100001101111110000100011110101100101110100111000100001\n" // Gengar
+ ".8byte 0b0010100000000111110101000010001110010100010000111000110000\n" // Onix
+ ".8byte 0b0001000001101111110000000111110100000110111000111000101001\n" // Drowzee
+ ".8byte 0b0001000001101111110000000111110100000110111100111000101001\n" // Hypno
+ ".8byte 0b1010110100001111100100000010001100000100110011001001100100\n" // Krabby
+ ".8byte 0b1010110100001111100100000010001100000100110111001001100100\n" // Kingler
+ ".8byte 0b0001000000001011110000001010000101100100111000101000100000\n" // Voltorb
+ ".8byte 0b0001000000001011110000001010000101100100111100101000100000\n" // Electrode
+ ".8byte 0b0001100000101111100000100110010100001101011000011100100000\n" // Exeggcute
+ ".8byte 0b0001100000101111100000100110010100001101011100011100100000\n" // Exeggutor
+ ".8byte 0b0010100000001111101111010011001110010100010011011000100001\n" // Cubone
+ ".8byte 0b0010100000001111101111010011001110010100010111011000100001\n" // Marowak
+ ".8byte 0b0010100000001111100100000011000110000100110000011010100001\n" // Hitmonlee
+ ".8byte 0b0010100000001111100100000011000110000100110000011010100001\n" // Hitmonchan
+ ".8byte 0b0010110100001111100111011011101111111100110111011000100101\n" // Lickitung
+ ".8byte 0b0001000000001111110010111010100101100100110000111000100000\n" // Koffing
+ ".8byte 0b0001000000001111110010111010100101100100110100111000100000\n" // Weezing
+ ".8byte 0b0010100000001111100111011010001111110100110011011000110000\n" // Rhyhorn
+ ".8byte 0b0010110100001111100111011011001111110100110111011000110001\n" // Rhydon
+ ".8byte 0b0011100001100111100111011011110111111110111111011001101101\n" // Chansey
+ ".8byte 0b0011000100001111100000100010000100001101010100011100100000\n" // Tangela
+ ".8byte 0b0010110100001111101111011011101111111100110111011001110101\n" // Kangaskhan
+ ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Horsea
+ ".8byte 0b1100010000000111100000000010000100000100110111001001100100\n" // Seadra
+ ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Goldeen
+ ".8byte 0b1100010000000111100000000010000100000100110111001001100100\n" // Seaking
+ ".8byte 0b1101010000000011100000000110010101100100111011001001100100\n" // Staryu
+ ".8byte 0b1101010000100011100000000110010101100100111111001001100100\n" // Starmie
+ ".8byte 0b0001000001101111110000001111110101101110111100111000101001\n" // Mr. mime
+ ".8byte 0b0010000100011111101000000010000100000100110100011000100000\n" // Scyther
+ ".8byte 0b0001000000101111110000000111110100000100111111101001101101\n" // Jynx
+ ".8byte 0b0011100000001111100000001011010101110100111100001000100001\n" // Electabuzz
+ ".8byte 0b0010100000001111100010010011010100010100010100011000100001\n" // Magmar
+ ".8byte 0b0010100100001111100100000011001110000100110100011010100001\n" // Pinsir
+ ".8byte 0b0010110000000111100111011010000111111100110111011000100100\n" // Tauros
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Magikarp
+ ".8byte 0b1110110000000111110011010010000111100100110111101001110100\n" // Gyarados
+ ".8byte 0b1110110000000111100000001010010101110110110111001001110100\n" // Lapras
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Ditto
+ ".8byte 0b0000000000000111100000000010101100010100110000011000100000\n" // Eevee
+ ".8byte 0b1100010000000111100000000010101100010100110111011001110100\n" // Vaporeon
+ ".8byte 0b0001000000000111100000001010101101110100110100011000110000\n" // Jolteon
+ ".8byte 0b0000000010000111100010010010101100010100110100011000110000\n" // Flareon
+ ".8byte 0b0001000000001011101000001010110101111100110111011000100000\n" // Porygon
+ ".8byte 0b1110010000001111100101000010000100000100110011001001100100\n" // Omanyte
+ ".8byte 0b1110010000001111100101000010000100000100110111001001100100\n" // Omastar
+ ".8byte 0b0110010000001111101101000010001100000101110011001001100100\n" // Kabuto
+ ".8byte 0b1110010100001111101101000011001100000101110111001001100100\n" // Kabutops
+ ".8byte 0b0010101000011111111111010010000110010100110100111000110010\n" // Aerodactyl
+ ".8byte 0b0000110000000111100111011011110111101100110111011000100101\n" // Snorlax
+ ".8byte 0b0010001000010011101001000110000100000100110111011001110100\n" // Articuno
+ ".8byte 0b0011001000010011101001001010000101100100111100011000110000\n" // Zapdos
+ ".8byte 0b0010001010010011101011010010000100000110110100011000110000\n" // Moltres
+ ".8byte 0b0100010000000111100010011010000101110110110111011001100100\n" // Dratini
+ ".8byte 0b0100010000000111100010011010000101110110110111011001100100\n" // Dragonair
+ ".8byte 0b1110111100010111101111011011000111110110110111011001110111\n" // Dragonite
+ ".8byte 0b0011100001100011111111011111110111111110111111111011101101\n" // Mewtwo
+ ".8byte 0b1111111111111111111111111111111111111111111111111111111111\n" // Mew
+ ".8byte 0b0001000100000111100000000110000100011111011000011100100000\n" // Chikorita
+ ".8byte 0b0011100100000111100000000110000100011111011000011100100000\n" // Bayleef
+ ".8byte 0b0011100100000111100000000110000110011111011100011100100000\n" // Meganium
+ ".8byte 0b0000000110000111101010010010001100000100010000011000100000\n" // Cyndaquil
+ ".8byte 0b0010100110000111101010010011001100000100010000011000110001\n" // Quilava
+ ".8byte 0b0010100110000111101010010011001110000100010100011000110001\n" // Typhlosion
+ ".8byte 0b1100010100000111101000000011001100010100110011001001100101\n" // Totodile
+ ".8byte 0b1110110100000111101000000011001100010100110011001001110101\n" // Croconaw
+ ".8byte 0b1110110100000111101000000011001110010100110111001001110111\n" // Feraligatr
+ ".8byte 0b0000010100001111100000011011101100111100110001011000100101\n" // Sentret
+ ".8byte 0b0010110100001111100000011011101101111100110111011000100101\n" // Furret
+ ".8byte 0b0001001000011111101000000110110100000100110000011000100000\n" // Hoothoot
+ ".8byte 0b0001001000011111101000000110110100000100110100011000100000\n" // Noctowl
+ ".8byte 0b0001000000001111101000000111001100001111011000011000100001\n" // Ledyba
+ ".8byte 0b0001000000001111101000000111001100001111011100011000100001\n" // Ledian
+ ".8byte 0b0001000000001111100000100010011100001101010000011000100000\n" // Spinarak
+ ".8byte 0b0001000000001111100000100010011100001101010100011000100000\n" // Ariados
+ ".8byte 0b0000001001011111111000100010100100000101110100111000100000\n" // Crobat
+ ".8byte 0b1101010000000111100000001010000101100100110011001001100100\n" // Chinchou
+ ".8byte 0b1101010000000111100000001010000101100100110111001001100100\n" // Lanturn
+ ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Pichu
+ ".8byte 0b0001000000000111100010011110111100011110111000011000100100\n" // Cleffa
+ ".8byte 0b0001000000000111100010011110111100001110111000011000100100\n" // Igglybuff
+ ".8byte 0b0011000000000111100010011110110100001110111000011000100100\n" // Togepi
+ ".8byte 0b0011001000010111101010011111110100001110111100011000100101\n" // Togetic
+ ".8byte 0b0001000000111111101000000110110100001101111000011000101000\n" // Natu
+ ".8byte 0b0001001000111111101000000110110100001101111100011000101000\n" // Xatu
+ ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Mareep
+ ".8byte 0b0011100000000111100000001011000101110100111000001000100001\n" // Flaaffy
+ ".8byte 0b0011100000000111100000001011000101110100111100001000100001\n" // Ampharos
+ ".8byte 0b0001000100000111100000100010000100001111010100011100100000\n" // Bellossom
+ ".8byte 0b1110110000000111100000000011001100010100110011001001100101\n" // Marill
+ ".8byte 0b1110110000000111100000000011001100010100110111001001100101\n" // Azumarill
+ ".8byte 0b0010100000001111100101000011001110000100010000111000101001\n" // Sudowoodo
+ ".8byte 0b1110110000001111100000000011011110000100110111001001100101\n" // Politoed
+ ".8byte 0b0001000000000111101000000010000100001101010000011100100000\n" // Hoppip
+ ".8byte 0b0001000000000111101000000010000100001101010000011100100000\n" // Skiploom
+ ".8byte 0b0001000000000111101000000010000100001101010100011100100000\n" // Jumpluff
+ ".8byte 0b0010100101001111101000001011101101111100110000111000100101\n" // Aipom
+ ".8byte 0b0001000100000111100000100010000100001111011000011100100000\n" // Sunkern
+ ".8byte 0b0001000100000111100000100010000100001111011100011100100000\n" // Sunflora
+ ".8byte 0b0001000000011111101000000010110100001101010000011000100000\n" // Yanma
+ ".8byte 0b1111010000000111100001100010001110010100110011001001100100\n" // Wooper
+ ".8byte 0b1111110000000111100101100011001110010100110111001001100101\n" // Quagsire
+ ".8byte 0b0001000100100111100000000110111100010100111100011000101000\n" // Espeon
+ ".8byte 0b0001000101000111110000000010111100010100110100111000100000\n" // Umbreon
+ ".8byte 0b0000001001011111111000000010100100000100110000111000101000\n" // Murkrow
+ ".8byte 0b1011110000100111100010010011111110010110110111011001101101\n" // Slowking
+ ".8byte 0b0001000001101111111000001010110101100100110000111000101000\n" // Misdreavus
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Unown
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Wobbuffet
+ ".8byte 0b0011100000101111100000001110110111110100111000011000101000\n" // Girafarig
+ ".8byte 0b0010100000000111100001000110001110001101011000011000100000\n" // Pineco
+ ".8byte 0b0010100000000111100001000110001110001101011100011000100000\n" // Forretress
+ ".8byte 0b0010100000001111100110011010101111111100110011011000101100\n" // Dunsparce
+ ".8byte 0b0010100100011111101101100010001110010100110000011000100000\n" // Gligar
+ ".8byte 0b0010100100000111110101000010001110010100010100111000110000\n" // Steelix
+ ".8byte 0b0010100010001111110010111011101111101100110000111010110101\n" // Snubbull
+ ".8byte 0b0010100010001111110110111011101111111100110100111010110101\n" // Granbull
+ ".8byte 0b1100010000000111100000101010100100000100110011001001100100\n" // Qwilfish
+ ".8byte 0b0010100100011111101001000010000100000100110100011000100000\n" // Scizor
+ ".8byte 0b0011100000000111100101100010001110000110010000011000100000\n" // Shuckle
+ ".8byte 0b0010100100001111100100000011001110000100110100011010100001\n" // Heracross
+ ".8byte 0b0010110101001111111000000011101100010100110011111001101001\n" // Sneasel
+ ".8byte 0b0010100100001111111000000011001110000100110000111010110001\n" // Teddiursa
+ ".8byte 0b0010100100001111111100000011001110000100110100111010110001\n" // Ursaring
+ ".8byte 0b0010000010000111100010010110000100000100011000011000100000\n" // Slugma
+ ".8byte 0b0010100010000111100111010110000110000100011100011000100000\n" // Magcargo
+ ".8byte 0b0010100000000111100101000110001110000100111011001001110000\n" // Swinub
+ ".8byte 0b0010100000000111100101000110001110000100111111001001110000\n" // Piloswine
+ ".8byte 0b0010110000000111100101000110111110000110111011011001101100\n" // Corsola
+ ".8byte 0b1100010000001111100010010010010100000100110111011000100100\n" // Remoraid
+ ".8byte 0b1100010000001111100010110010010100000100110111011100100100\n" // Octillery
+ ".8byte 0b0000001000001111101000000010000100000100110011001001100101\n" // Delibird
+ ".8byte 0b1100010000000111101000000010000110000100110011001001100100\n" // Mantine
+ ".8byte 0b0010001100011111111001000010000100000100010000111000110000\n" // Skarmory
+ ".8byte 0b0010000011001111110010110010100100011100010000111000110000\n" // Houndour
+ ".8byte 0b0010100011001111110010110010100100011100010100111000110000\n" // Houndoom
+ ".8byte 0b1100010000000111100000000010000100000100110111001001100100\n" // Kingdra
+ ".8byte 0b0010100000000111100101000010000110010100010000011000110000\n" // Phanpy
+ ".8byte 0b0010100000000111100101000010000110010100010100011000110000\n" // Donphan
+ ".8byte 0b0001000000001011101000001010110101111100110111011000100000\n" // Porygon2
+ ".8byte 0b0001000000101111100000001110110111111100111000011000111000\n" // Stantler
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Smeargle
+ ".8byte 0b0010100000001111100000000011000110000100110000011010100000\n" // Tyrogue
+ ".8byte 0b0010100000001111100001000011001110000100110000011010100000\n" // Hitmontop
+ ".8byte 0b0001000000101111100000000110110100000100111011001001101100\n" // Smoochum
+ ".8byte 0b0011000000001111100000001011010101100100111000001000100001\n" // Elekid
+ ".8byte 0b0010000000001111100010010011010100010100010000011000100001\n" // Magby
+ ".8byte 0b0010110000000111100101001011100111111100110111011000100101\n" // Miltank
+ ".8byte 0b0011100001100111100111011011110111111110111111011001101101\n" // Blissey
+ ".8byte 0b0011100100000011100001001110001101110100110100011000111000\n" // Raikou
+ ".8byte 0b0011100100000011100011010110001100011100110100011000111000\n" // Entei
+ ".8byte 0b1110010100000011100001000110001100010100110111011001111100\n" // Suicune
+ ".8byte 0b0010000000000111110001000011001110000100110100111000100000\n" // Larvitar
+ ".8byte 0b0010000000000111110001000011001110000100110100111000100000\n" // Pupitar
+ ".8byte 0b0010110100000111111111011011001111110100110111111000110111\n" // Tyranitar
+ ".8byte 0b1110111000110011101001001110110111110111111111011001111100\n" // Lugia
+ ".8byte 0b0011101010010011101011011110110111101111111100011000111000\n" // Ho-Oh
+ ".8byte 0b0001000100100011101001001110110100001111111100011000101100\n" // Celebi
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
+ ".8byte 0b0011100100000111101100000011001100011111010000011100100001\n" // Treecko
+ ".8byte 0b0011100100000111101100000011001100011111010000011100100001\n" // Grovyle
+ ".8byte 0b0011100100000111101100000011001110011111010100011100110011\n" // Sceptile
+ ".8byte 0b0010100110000111101110010010001100000100010000011000100000\n" // Torchic
+ ".8byte 0b0010100110000111101110010011001100000100010000011010100001\n" // Combusken
+ ".8byte 0b0010100110000111101110010011001110000100010100011010110001\n" // Blaziken
+ ".8byte 0b1110110000000111100100000010001100010100110011001001100100\n" // Mudkip
+ ".8byte 0b1110110000000111100100000010001110010100110011001001100100\n" // Marshtomp
+ ".8byte 0b1110110000000111100100000011001110010100110111001001110101\n" // Swampert
+ ".8byte 0b0010000001001111110000000010101100010100110000111000110000\n" // Poochyena
+ ".8byte 0b0010100001001111110000000010101100010100110100111000110000\n" // Mightyena
+ ".8byte 0b0010010100001111100000001010101101110100110011011000100100\n" // Zigzagoon
+ ".8byte 0b0010110100001111100000001010101101110100110111011000110100\n" // Linoone
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Wurmple
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Silcoon
+ ".8byte 0b0001000000001111101000000010110100001111010100011000100000\n" // Beautifly
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Cascoon
+ ".8byte 0b0001000000001111101000100010110100001101011100011000100000\n" // Dustox
+ ".8byte 0b0001010000001111100000000010000100001101110011011101100100\n" // Lotad
+ ".8byte 0b1111110000001111100000000011000100001101110011011101100100\n" // Lombre
+ ".8byte 0b1111110000001111100000000011000100001101110111011101100101\n" // Ludicolo
+ ".8byte 0b0011000000000111100000000010101100001101010000011100100000\n" // Seedot
+ ".8byte 0b0011100100001111110100000011101100001101010100011100100000\n" // Nuzleaf
+ ".8byte 0b0011100100001111111100000011101100001101010100011100100000\n" // Shiftry
+ ".8byte 0b0001000100000011101001000010101100001101010000011000100000\n" // Nincada
+ ".8byte 0b0001000100001111101001000010101100001101010100011000100000\n" // Ninjask
+ ".8byte 0b0001000100001011101001000010101100001101010100011000100000\n" // Shedinja
+ ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Taillow
+ ".8byte 0b0000001000011111101000000010000100000100110100011000100000\n" // Swellow
+ ".8byte 0b0001000001000111100000100010000100001111010000011100100000\n" // Shroomish
+ ".8byte 0b0011100101000111100000100011000100011111010100011110100001\n" // Breloom
+ ".8byte 0b0011100001101111100100001011111100000110110000011000101101\n" // Spinda
+ ".8byte 0b0000001000011111101000001010000100000100110011001001100100\n" // Wingull
+ ".8byte 0b0000011000011111101000001010000100000100110111001001100100\n" // Pelipper
+ ".8byte 0b0001000000001111100000000010100100001101110011011000100100\n" // Surskit
+ ".8byte 0b0001000000001111101000000010100100001101110111011000100100\n" // Masquerain
+ ".8byte 0b1110110000000111100100000010000110000100110011001001110100\n" // Wailmer
+ ".8byte 0b1110110000000111100100000010000110000100110111001001110100\n" // Wailord
+ ".8byte 0b0001000000000111100000001010101101111110110011011000101100\n" // Skitty
+ ".8byte 0b0011100000000111100000001010101101111110110111011000101100\n" // Delcatty
+ ".8byte 0b0011100101101111101110011011101101111100110011011000100101\n" // Kecleon
+ ".8byte 0b0001000000100011100101000110111110001100111001011000100000\n" // Baltoy
+ ".8byte 0b0011100000100011100101000110111110001100111101011000100000\n" // Claydol
+ ".8byte 0b0010100000000111110101001010000111100100010000111000100000\n" // Nosepass
+ ".8byte 0b0010100010000111100010110010000100010100010000011000100000\n" // Torkoal
+ ".8byte 0b0011000101001111111100001011111100000100110000111000101101\n" // Sableye
+ ".8byte 0b1100010000000111100101000010000110000100110011001001100100\n" // Barboach
+ ".8byte 0b1110110000000111100101000010000110000100110111001001100100\n" // Whiscash
+ ".8byte 0b1100010000000111100000000010000100000110110011001001100100\n" // Luvdisc
+ ".8byte 0b0110110100000111101100100011001100000100110011101001100100\n" // Corphish
+ ".8byte 0b1110110100000111101100100011001100000100110111101001100100\n" // Crawdaunt
+ ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Feebas
+ ".8byte 0b1100010000000111100000000010000100010110110111001001100100\n" // Milotic
+ ".8byte 0b1100010000001111110000000010000100000100110011101001100100\n" // Carvanha
+ ".8byte 0b1110110000001111110100000010000110000100110111101001110100\n" // Sharpedo
+ ".8byte 0b0010100000000111100101000010001110001101010100011000100000\n" // Trapinch
+ ".8byte 0b0010101000010111100101000010001110001101010100011000100000\n" // Vibrava
+ ".8byte 0b0010101000010111100111010010001110011101010100011000100010\n" // Flygon
+ ".8byte 0b0010110000000111100100000011001110000100110000011010100001\n" // Makuhita
+ ".8byte 0b0010110000000111100100000011001110000100110100011010100001\n" // Hariyama
+ ".8byte 0b0001100000001111100000001010000101110100110000001000110000\n" // Electrike
+ ".8byte 0b0001100000001111100000001010000101110100110100001000110000\n" // Manectric
+ ".8byte 0b0010100010000111100111010010001110000100010000011000100000\n" // Numel
+ ".8byte 0b0010100010000111100111010010001110000100010100011000110000\n" // Camerupt
+ ".8byte 0b1110110000000111100100000010000110010100110011001001100100\n" // Spheal
+ ".8byte 0b1110110000000111100100000010000110010100110011001001110100\n" // Sealeo
+ ".8byte 0b1110110000000111100100000010000110010100110111001001110100\n" // Walrein
+ ".8byte 0b0001000100000111100001000010000100001101010000011100100001\n" // Cacnea
+ ".8byte 0b0001100100000111100001000010000100001101010100011100100001\n" // Cacturne
+ ".8byte 0b0001000000000111100000000010100100000110111011001001100100\n" // Snorunt
+ ".8byte 0b0001000000000111110000000010100110000110111111101001100100\n" // Glalie
+ ".8byte 0b0001000000100011100101000110110110000110111101001000101000\n" // Lunatone
+ ".8byte 0b0001000010100011100111010110110110001110011100011000101000\n" // Solrock
+ ".8byte 0b0100010000000111100000000010000100010100110011001001100100\n" // Azurill
+ ".8byte 0b0001000001101111110000001110110100010100111000111000101000\n" // Spoink
+ ".8byte 0b0001000001101111110000001110110100010100111100111000101001\n" // Grumpig
+ ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Plusle
+ ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Minun
+ ".8byte 0b0010100000000111110111110011000100001100110101111000100001\n" // Mawile
+ ".8byte 0b0011100000000111100100000111110100000100111000011010101001\n" // Meditite
+ ".8byte 0b0011100000000111100100000111110100000100111100011010101001\n" // Medicham
+ ".8byte 0b0000001000011111101000000010000100001110110001011000100000\n" // Swablu
+ ".8byte 0b0010001000011111101010010010000110011110110101011000110010\n" // Altaria
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Wynaut
+ ".8byte 0b0001000001101111110000000010110100000100110011111000101000\n" // Duskull
+ ".8byte 0b0011100001101111110100000010110110000100110111111000101001\n" // Dusclops
+ ".8byte 0b0001000100000111100000100010100100001101010000011100100000\n" // Roselia
+ ".8byte 0b0010100100000111101010011011100101101100110011011010100101\n" // Slakoth
+ ".8byte 0b0010100100000111101010011011100111101100110011111010110101\n" // Vigoroth
+ ".8byte 0b0010100100000111101010011011100111101100110111111010110101\n" // Slaking
+ ".8byte 0b0010100001000111100000101010100100001101110001011100100100\n" // Gulpin
+ ".8byte 0b0010100001000111100000101010100100001101110101011100100100\n" // Swalot
+ ".8byte 0b0011101100010111101000000010000110001111010100011100110000\n" // Tropius
+ ".8byte 0b0000000000000111100010011010100100001100110011011000110100\n" // Whismur
+ ".8byte 0b0010100010000111110010011011100110001100110011111000110100\n" // Loudred
+ ".8byte 0b0010100010000111110010011011100110001100110111111000110100\n" // Exploud
+ ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Clamperl
+ ".8byte 0b1100010001000111100100000010000100000100110111001001100100\n" // Huntail
+ ".8byte 0b1100010000000111100000000010110100000110110111001001100100\n" // Gorebyss
+ ".8byte 0b0011100101001111111011011010100101110100110111111001101100\n" // Absol
+ ".8byte 0b0001000001101111110000001010110101100100110000111000101000\n" // Shuppet
+ ".8byte 0b0001000001101111110000001010110101100100110100111000101000\n" // Banette
+ ".8byte 0b0010100001001111100000110010001110010101110000111000100000\n" // Seviper
+ ".8byte 0b0010100000001111101010011011101101111101110011111000110101\n" // Zangoose
+ ".8byte 0b1110010000000111100101000010000110000110110111001001101100\n" // Relicanth
+ ".8byte 0b0010100100000111101101001010001110010100110000011000110100\n" // Aron
+ ".8byte 0b0010100100000111101101001010001110010100110000011000110100\n" // Lairon
+ ".8byte 0b0010110100000111101111011011001111111100110111111000110111\n" // Aggron
+ ".8byte 0b0001000000001111100011011010100101101100110011011001100100\n" // Castform
+ ".8byte 0b0001000000001111101000001011100101101101111000011000100101\n" // Volbeat
+ ".8byte 0b0001000000001111101000001011100101101101111000011000100101\n" // Illumise
+ ".8byte 0b0000000000000111100001100010000100001101010000011100100000\n" // Lileep
+ ".8byte 0b0010100000000111100101100010000110001101010100011100100000\n" // Cradily
+ ".8byte 0b0010000100000111101101000011001100000100010000011000100100\n" // Anorith
+ ".8byte 0b0010100100000111101101000011001110010100010100011000100100\n" // Armaldo
+ ".8byte 0b0001000001101111110000001110110100100110111000111000101000\n" // Ralts
+ ".8byte 0b0001000001101111110000001110110100100110111000111000101000\n" // Kirlia
+ ".8byte 0b0001000001101111110000001110110100100110111100111000101000\n" // Gardevoir
+ ".8byte 0b0010100100000111101110010011000100000100110000011000110010\n" // Bagon
+ ".8byte 0b0010100100000111101110010011000100000100110000011000110010\n" // Shelgon
+ ".8byte 0b0010101100010111101110010011000110010100110100011000110010\n" // Salamence
+ ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Beldum
+ ".8byte 0b0011100100000011101101100111110110000100111100011000100000\n" // Metang
+ ".8byte 0b0011100100000011101101100111110110000100111100011000100000\n" // Metagross
+ ".8byte 0b0010100000000011100101001011001111100110010100011000100001\n" // Regirock
+ ".8byte 0b0010100000000011100000001011000111100110110111001001100001\n" // Regice
+ ".8byte 0b0010100000000011101101001011000111100110110100011000100001\n" // Registeel
+ ".8byte 0b1110110000000011100100001011000111100110110111001001111100\n" // Kyogre
+ ".8byte 0b0010100110000011101111011011001111111110010100011010110010\n" // Groudon
+ ".8byte 0b1110111010000011101011011011000111111100110111011010110110\n" // Rayquaza
+ ".8byte 0b1101011100010111101001001110110111101110111101011000111110\n" // Latias
+ ".8byte 0b1101011100010111101001001110110111101110111101011000111110\n" // Latios
+ ".8byte 0b0001000000100011101001001110110101100110111100011000101100\n" // Jirachi
+ ".8byte 0b0011100101100011111100001111110101101110111101111000101101\n" // Deoxys
+ ".8byte 0b0001000001100111110000001110110100000110111000111000101000\n" // Chimecho
+);
+
+#endif //POKERUBY_TMHM_LEARNSETS_H
diff --git a/include/data/pokemon/trainer_class_lookups.h b/include/data/pokemon/trainer_class_lookups.h
new file mode 100644
index 000000000..0aea322a0
--- /dev/null
+++ b/include/data/pokemon/trainer_class_lookups.h
@@ -0,0 +1,168 @@
+//
+// Created by Scott Norton on 6/27/17.
+//
+
+#ifndef POKERUBY_TRAINER_CLASS_LOOKUPS_H
+#define POKERUBY_TRAINER_CLASS_LOOKUPS_H
+
+const u8 gTrainerClassToPicIndex[] = {
+ TRAINER_PIC_ARCHIE, // AQUA_LEADER
+ TRAINER_PIC_AQUA_GRUNT_M, // TEAM_AQUA_M
+ TRAINER_PIC_AQUA_GRUNT_F, // TEAM_AQUA_F
+ TRAINER_PIC_AROMA_LADY, // AROMA_LADY
+ TRAINER_PIC_RUIN_MANIAC, // RUIN_MANIAC
+ TRAINER_PIC_INTERVIEWER, // INTERVIEWER
+ TRAINER_PIC_TUBER_F, // TUBER_F
+ TRAINER_PIC_TUBER_M, // TUBER_M
+ TRAINER_PIC_COOL_TRAINER_M, // COOL_TRAINER_M
+ TRAINER_PIC_COOL_TRAINER_F, // COOL_TRAINER_F
+ TRAINER_PIC_HEX_MANIAC, // HEX_MANIAC
+ TRAINER_PIC_LADY, // LADY
+ TRAINER_PIC_BEAUTY, // BEAUTY
+ TRAINER_PIC_RICH_BOY, // RICH_BOY
+ TRAINER_PIC_POKEMANIAC, // POKEMANIAC
+ TRAINER_PIC_SWIMMER_M, // SWIMMER_M
+ TRAINER_PIC_BLACK_BELT, // BLACK_BELT
+ TRAINER_PIC_GUITARIST, // GUITARIST
+ TRAINER_PIC_KINDLER, // KINDLER
+ TRAINER_PIC_CAMPER, // CAMPER
+ TRAINER_PIC_BUG_MANIAC, // BUG_MANIAC
+ TRAINER_PIC_PSYCHIC_M, // PSYCHIC_M
+ TRAINER_PIC_PSYCHIC_F, // PSYCHIC_F
+ TRAINER_PIC_GENTLEMAN, // GENTLEMAN
+ TRAINER_PIC_SIDNEY, // ELITE_FOUR_M
+ TRAINER_PIC_PHOEBE, // ELITE_FOUR_F
+ TRAINER_PIC_ROXANNE, // LEADER_F
+ TRAINER_PIC_BRAWLY, // LEADER_M
+ TRAINER_PIC_TATE_AND_LIZA, // LEADER_MF
+ TRAINER_PIC_SCHOOL_KID_M, // SCHOOL_KID_M
+ TRAINER_PIC_SCHOOL_KID_F, // SCHOOL_KID_F
+ TRAINER_PIC_SR_AND_JR, // SR_AND_JR
+ TRAINER_PIC_POKEFAN_M, // POKEFAN_M
+ TRAINER_PIC_POKEFAN_F, // POKEFAN_F
+ TRAINER_PIC_EXPERT_M, // EXPERT_M
+ TRAINER_PIC_EXPERT_F, // EXPERT_F
+ TRAINER_PIC_YOUNGSTER, // YOUNGSTER
+ TRAINER_PIC_STEVEN, // CHAMPION
+ TRAINER_PIC_FISHERMAN, // FISHERMAN
+ TRAINER_PIC_CYCLING_TRIATHLETE_M, // CYCLING_TRIATHLETE_M
+ TRAINER_PIC_CYCLING_TRIATHLETE_F, // CYCLING_TRIATHLETE_F
+ TRAINER_PIC_RUNNING_TRIATHLETE_M, // RUNNING_TRIATHLETE_M
+ TRAINER_PIC_RUNNING_TRIATHLETE_F, // RUNNING_TRIATHLETE_F
+ TRAINER_PIC_SWIMMING_TRIATHLETE_M, // SWIMMING_TRIATHLETE_M
+ TRAINER_PIC_SWIMMING_TRIATHLETE_F, // SWIMMING_TRIATHLETE_F
+ TRAINER_PIC_DRAGON_TAMER, // DRAGON_TAMER
+ TRAINER_PIC_BIRD_KEEPER, // BIRD_KEEPER
+ TRAINER_PIC_NINJA_BOY, // NINJA_BOY
+ TRAINER_PIC_BATTLE_GIRL, // BATTLE_GIRL
+ TRAINER_PIC_PARASOL_LADY, // PARASOL_LADY
+ TRAINER_PIC_SWIMMER_F, // SWIMMER_F
+ TRAINER_PIC_PICNICKER, // PICNICKER
+ TRAINER_PIC_TWINS, // TWINS
+ TRAINER_PIC_SAILOR, // SAILOR
+ TRAINER_PIC_YOUNGSTER, // BOARDER_1
+ TRAINER_PIC_YOUNGSTER, // BOARDER_2
+ TRAINER_PIC_COLLECTOR, // COLLECTOR
+ TRAINER_PIC_WALLY, // WALLY
+ TRAINER_PIC_BRENDAN, // BRENDAN_1
+ TRAINER_PIC_BRENDAN, // BRENDAN_2
+ TRAINER_PIC_BRENDAN, // BRENDAN_3
+ TRAINER_PIC_MAY, // MAY_1
+ TRAINER_PIC_MAY, // MAY_2
+ TRAINER_PIC_MAY, // MAY_3
+ TRAINER_PIC_POKEMON_BREEDER_M, // POKEMON_BREEDER_M
+ TRAINER_PIC_POKEMON_BREEDER_F, // POKEMON_BREEDER_F
+ TRAINER_PIC_POKEMON_RANGER_M, // POKEMON_RANGER_M
+ TRAINER_PIC_POKEMON_RANGER_F, // POKEMON_RANGER_F
+ TRAINER_PIC_MAXIE, // MAGMA_LEADER
+ TRAINER_PIC_MAGMA_GRUNT_M, // TEAM_MAGMA_M
+ TRAINER_PIC_MAGMA_GRUNT_F, // TEAM_MAGMA_F
+ TRAINER_PIC_LASS, // LASS
+ TRAINER_PIC_BUG_CATCHER, // BUG_CATCHER
+ TRAINER_PIC_HIKER, // HIKER
+ TRAINER_PIC_YOUNG_COUPLE, // YOUNG_COUPLE
+ TRAINER_PIC_OLD_COUPLE, // OLD_COUPLE
+ TRAINER_PIC_SIS_AND_BRO // SIS_AND_BRO
+};
+
+const u8 gTrainerClassToNameIndex[] = {
+ TRAINER_CLASS_NAME_AQUA_LEADER, // AQUA_LEADER
+ TRAINER_CLASS_NAME_TEAM_AQUA, // TEAM_AQUA_M
+ TRAINER_CLASS_NAME_TEAM_AQUA, // TEAM_AQUA_F
+ TRAINER_CLASS_NAME_AROMA_LADY, // AROMA_LADY
+ TRAINER_CLASS_NAME_RUIN_MANIAC, // RUIN_MANIAC
+ TRAINER_CLASS_NAME_INTERVIEWER, // INTERVIEWER
+ TRAINER_CLASS_NAME_TUBER_F, // TUBER_F
+ TRAINER_CLASS_NAME_TUBER_M, // TUBER_M
+ TRAINER_CLASS_NAME_COOL_TRAINER, // COOL_TRAINER_M
+ TRAINER_CLASS_NAME_COOL_TRAINER, // COOL_TRAINER_F
+ TRAINER_CLASS_NAME_HEX_MANIAC, // HEX_MANIAC
+ TRAINER_CLASS_NAME_LADY, // LADY
+ TRAINER_CLASS_NAME_BEAUTY, // BEAUTY
+ TRAINER_CLASS_NAME_RICH_BOY, // RICH_BOY
+ TRAINER_CLASS_NAME_POKEMANIAC, // POKEMANIAC
+ TRAINER_CLASS_NAME_SWIMMER_M, // SWIMMER_M
+ TRAINER_CLASS_NAME_BLACK_BELT, // BLACK_BELT
+ TRAINER_CLASS_NAME_GUITARIST, // GUITARIST
+ TRAINER_CLASS_NAME_KINDLER, // KINDLER
+ TRAINER_CLASS_NAME_CAMPER, // CAMPER
+ TRAINER_CLASS_NAME_BUG_MANIAC, // BUG_MANIAC
+ TRAINER_CLASS_NAME_PSYCHIC, // PSYCHIC_M
+ TRAINER_CLASS_NAME_PSYCHIC, // PSYCHIC_F
+ TRAINER_CLASS_NAME_GENTLEMAN, // GENTLEMAN
+ TRAINER_CLASS_NAME_ELITE_FOUR, // ELITE_FOUR_M
+ TRAINER_CLASS_NAME_ELITE_FOUR, // ELITE_FOUR_F
+ TRAINER_CLASS_NAME_LEADER, // LEADER_F
+ TRAINER_CLASS_NAME_LEADER, // LEADER_M
+ TRAINER_CLASS_NAME_LEADER, // LEADER_MF
+ TRAINER_CLASS_NAME_SCHOOL_KID, // SCHOOL_KID_M
+ TRAINER_CLASS_NAME_SCHOOL_KID, // SCHOOL_KID_F
+ TRAINER_CLASS_NAME_SR_AND_JR, // SR_AND_JR
+ TRAINER_CLASS_NAME_POKEFAN, // POKEFAN_M
+ TRAINER_CLASS_NAME_POKEFAN, // POKEFAN_F
+ TRAINER_CLASS_NAME_EXPERT, // EXPERT_M
+ TRAINER_CLASS_NAME_EXPERT, // EXPERT_F
+ TRAINER_CLASS_NAME_YOUNGSTER, // YOUNGSTER
+ TRAINER_CLASS_NAME_CHAMPION, // CHAMPION
+ TRAINER_CLASS_NAME_FISHERMAN, // FISHERMAN
+ TRAINER_CLASS_NAME_TRIATHLETE, // CYCLING_TRIATHLETE_M
+ TRAINER_CLASS_NAME_TRIATHLETE, // CYCLING_TRIATHLETE_F
+ TRAINER_CLASS_NAME_TRIATHLETE, // RUNNING_TRIATHLETE_M
+ TRAINER_CLASS_NAME_TRIATHLETE, // RUNNING_TRIATHLETE_F
+ TRAINER_CLASS_NAME_TRIATHLETE, // SWIMMING_TRIATHLETE_M
+ TRAINER_CLASS_NAME_TRIATHLETE, // SWIMMING_TRIATHLETE_F
+ TRAINER_CLASS_NAME_DRAGON_TAMER, // DRAGON_TAMER
+ TRAINER_CLASS_NAME_BIRD_KEEPER, // BIRD_KEEPER
+ TRAINER_CLASS_NAME_NINJA_BOY, // NINJA_BOY
+ TRAINER_CLASS_NAME_BATTLE_GIRL, // BATTLE_GIRL
+ TRAINER_CLASS_NAME_PARASOL_LADY, // PARASOL_LADY
+ TRAINER_CLASS_NAME_SWIMMER_F, // SWIMMER_F
+ TRAINER_CLASS_NAME_PICNICKER, // PICNICKER
+ TRAINER_CLASS_NAME_TWINS, // TWINS
+ TRAINER_CLASS_NAME_SAILOR, // SAILOR
+ TRAINER_CLASS_NAME_BOARDER, // BOARDER_1
+ TRAINER_CLASS_NAME_BOARDER, // BOARDER_2
+ TRAINER_CLASS_NAME_COLLECTOR, // COLLECTOR
+ TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // WALLY
+ TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_1
+ TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_2
+ TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_3
+ TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_1
+ TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_2
+ TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_3
+ TRAINER_CLASS_NAME_POKEMON_BREEDER, // POKEMON_BREEDER_M
+ TRAINER_CLASS_NAME_POKEMON_BREEDER, // POKEMON_BREEDER_F
+ TRAINER_CLASS_NAME_POKEMON_RANGER, // POKEMON_RANGER_M
+ TRAINER_CLASS_NAME_POKEMON_RANGER, // POKEMON_RANGER_F
+ TRAINER_CLASS_NAME_MAGMA_LEADER, // MAGMA_LEADER
+ TRAINER_CLASS_NAME_TEAM_MAGMA, // TEAM_MAGMA_M
+ TRAINER_CLASS_NAME_TEAM_MAGMA, // TEAM_MAGMA_F
+ TRAINER_CLASS_NAME_LASS, // LASS
+ TRAINER_CLASS_NAME_BUG_CATCHER, // BUG_CATCHER
+ TRAINER_CLASS_NAME_HIKER, // HIKER
+ TRAINER_CLASS_NAME_YOUNG_COUPLE, // YOUNG_COUPLE
+ TRAINER_CLASS_NAME_OLD_COUPLE, // OLD_COUPLE
+ TRAINER_CLASS_NAME_SIS_AND_BRO // SIS_AND_BRO
+};
+
+#endif //POKERUBY_TRAINER_CLASS_LOOKUPS_H
diff --git a/include/data2.h b/include/data2.h
index f292472ef..9dd26fd5f 100644
--- a/include/data2.h
+++ b/include/data2.h
@@ -18,6 +18,15 @@ struct MonCoords
u8 y_offset;
};
+extern const struct OamData gOamData_81F96F0;
+extern const struct OamData gOamData_81F96E8;
+extern const struct SpriteFrameImage gSpriteImageTable_81E7A10[];
+extern const struct SpriteFrameImage gSpriteImageTable_81E7A30[];
+extern const struct SpriteFrameImage gSpriteImageTable_81E7A50[];
+extern const struct SpriteFrameImage gSpriteImageTable_81E7A70[];
+extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7B70[];
+extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7BEC[];
+
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7C18;
extern const union AnimCmd *const gSpriteAnimTable_81E7C64[];
extern struct MonCoords gMonFrontPicCoords[];
@@ -44,4 +53,14 @@ extern const struct SpriteTemplate gSpriteTemplate_81FAF0C;
extern void *const gUnknown_081FAF4C[];
extern struct BattleMove gBattleMoves[];
+// data/graphics/trainers/front_pic_coords.inc
+extern const struct MonCoords gTrainerFrontPicCoords[];
+
+// data/graphics/trainers/front_pic_table.inc
+extern const struct CompressedSpriteSheet gTrainerFrontPicTable[];
+
+// data/graphics/trainers/front_pic_palette_table.inc
+extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
+
+
#endif // GUARD_DATA2_H
diff --git a/include/field_camera.h b/include/field_camera.h
index 9021b579e..4ce207541 100644
--- a/include/field_camera.h
+++ b/include/field_camera.h
@@ -11,6 +11,8 @@ struct CameraSomething
s32 unk14;
};
+extern struct Camera gUnknown_0202E844;
+
void move_tilemap_camera_to_upper_left_corner(void);
void sub_8057A58(void);
void sub_8057B14(u16 *a, u16 *b);
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
index 32438a9ad..a1dd53a2b 100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
@@ -26,5 +26,6 @@ void sub_8126BC4(u8 unk_1B, u8 r6, s16 x, s16 y);
void sub_8127ED0(u8, u8);
void sub_8127F28(u8, u8, s16);
u8 sub_8128124(u8 id);
+void ash(s16, s16, u16, u8);
#endif // GUARD_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index d051ea097..6595a51ca 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -426,5 +426,8 @@ u8 sub_8060B38(u8);
u8 sub_8060B64(u8);
u8 GetOppositeDirection(u8);
void sub_80634D0(struct MapObject *, struct Sprite *);
+u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8);
+void CameraObjectSetFollowedObjectId(u8);
+u8 sub_805ADDC(u8);
#endif // GUARD_FIELD_MAP_OBJ_H
diff --git a/include/field_region_map.h b/include/field_region_map.h
index 93b8c6d68..a7e81b418 100644
--- a/include/field_region_map.h
+++ b/include/field_region_map.h
@@ -1,6 +1,7 @@
#ifndef GUARD_FIELD_REGION_MAP_H
#define GUARD_FIELD_REGION_MAP_H
+void FieldInitRegionMap(void(void));
void CB2_FieldInitRegionMap(void);
void VBlankCB_FieldRegionMap(void);
void CB2_FieldRegionMap(void);
diff --git a/include/field_special_scene.h b/include/field_special_scene.h
index 5841d6bce..ef3f07120 100644
--- a/include/field_special_scene.h
+++ b/include/field_special_scene.h
@@ -8,6 +8,6 @@ void Task_Truck2(u8 taskId);
void Task_Truck3(u8 taskId);
void Task_HandleTruckSequence(u8 taskId);
void ExecuteTruckSequence(void);
-void EndTruckSequence(void);
+void EndTruckSequence(u8);
#endif // GUARD_FIELD_SPECIAL_SCENE_H
diff --git a/include/field_specials.h b/include/field_specials.h
index d0eb12065..710f0a2a0 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -1,6 +1,30 @@
#ifndef GUARD_FIELD_SPECIALS_H
#define GUARD_FIELD_SPECIALS_H
+struct ElevatorMenu {
+ u8 var0;
+ s8 var1;
+ s8 var2;
+ u8 var3;
+};
+
+extern struct ElevatorMenu gUnknown_03000760[20];
+extern struct WarpData gUnknown_020297F0;
+extern u8 gBattleOutcome;
+
+extern u16 gScriptResult;
+extern u8 gUnknown_02039250;
+extern u8 gUnknown_02039251;
+extern u32 gUnknown_02039254;
+extern u8 gUnknown_02039258;
+extern u8 gUnknown_02039259;
+extern u8 gUnknown_0203925A;
+extern u8 gUnknown_0203925B;
+extern u8 gUnknown_0203925C;
+
+extern u16 gSpecialVar_0x8004;
+extern u16 gSpecialVar_0x8005;
+
void ResetCyclingRoadChallengeData(void);
bool32 CountSSTidalStep(u16);
u8 GetSSTidalLocation(s8 *, s8 *, s16 *, s16 *);
diff --git a/include/field_tasks.h b/include/field_tasks.h
index 53e704395..761d69ada 100644
--- a/include/field_tasks.h
+++ b/include/field_tasks.h
@@ -1,6 +1,12 @@
#ifndef GUARD_FIELD_TASKS_H
#define GUARD_FIELD_TASKS_H
+struct MetatileOffset {
+ s8 x;
+ s8 y;
+ u16 tileId;
+};
+
void SetUpFieldTasks();
void ActivatePerStepCallback(u8);
void ResetFieldTasksArgs(void);
diff --git a/include/global.h b/include/global.h
index e90fcdd0f..0f5bcde6d 100644
--- a/include/global.h
+++ b/include/global.h
@@ -43,6 +43,17 @@ fndec\
#define min(a, b) (a >= b ? a : b)
#define max(a, b) (a <= b ? a : b)
+// why does GF hate 2d arrays
+#define MULTI_DIM_ARR(x, dim, y) ((x) * dim + (y))
+
+// dim access enums
+enum
+{
+ B_8 = 1,
+ B_16 = 2,
+ B_32 = 4
+};
+
enum
{
VERSION_SAPPHIRE = 1,
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index 0aa9f79f7..0e39a3732 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -23,5 +23,6 @@ void DestroyVerticalScrollIndicator(u8);
void BuyMenuFreeMemory(void);
void sub_80F98DC(int);
void sub_80F996C(u8);
+void LoadScrollIndicatorPalette(void);
#endif // GUARD_MENU_HELPERS_H
diff --git a/include/player_pc.h b/include/player_pc.h
index f2446ebdf..8debeda88 100644
--- a/include/player_pc.h
+++ b/include/player_pc.h
@@ -1,10 +1,6 @@
#ifndef GUARD_PLAYER_PC_H
#define GUARD_PLAYER_PC_H
-// general task defines
-#define TASK gTasks[taskId]
-#define FUNC func
-
// local task defines
#define PAGE_INDEX data[0]
#define ITEMS_ABOVE_TOP data[1]
diff --git a/include/pokeblock.h b/include/pokeblock.h
index 257c83f1c..b925894db 100644..100755
--- a/include/pokeblock.h
+++ b/include/pokeblock.h
@@ -5,6 +5,7 @@ void sub_810B96C(void);
void sub_810BA7C(u8);
void ClearPokeblocks(void);
void sub_810CA6C(s32);
+u8 sub_810CB68(u8, u8*);
s16 sub_810CAE4(u8, struct Pokeblock *);
#endif // GUARD_POKEBLOCK_H
diff --git a/include/pokemon.h b/include/pokemon.h
index be8e4e56d..2f8a57d38 100644..100755
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -122,6 +122,25 @@
#define UNOWN_FORM_COUNT 28
enum {
+ EGG_GROUP_NONE,
+ EGG_GROUP_MONSTER,
+ EGG_GROUP_WATER_1,
+ EGG_GROUP_BUG,
+ EGG_GROUP_FLYING,
+ EGG_GROUP_FIELD,
+ EGG_GROUP_FAIRY,
+ EGG_GROUP_GRASS,
+ EGG_GROUP_HUMAN_LIKE,
+ EGG_GROUP_WATER_3,
+ EGG_GROUP_MINERAL,
+ EGG_GROUP_AMORPHOUS,
+ EGG_GROUP_WATER_2,
+ EGG_GROUP_DITTO,
+ EGG_GROUP_DRAGON,
+ EGG_GROUP_UNDISCOVERED
+};
+
+enum {
NATURE_HARDY,
NATURE_LONELY,
NATURE_BRAVE,
@@ -384,6 +403,55 @@ struct PokemonStorage
u8 unkArray[14];
};
+struct SpindaSpot
+{
+ u8 x, y;
+ u16 image[16];
+};
+
+struct __attribute__((packed)) LevelUpMove {
+ u16 move:9;
+ u16 level:7;
+};
+
+enum {
+ GROWTH_MEDIUM_FAST,
+ GROWTH_ERRATIC,
+ GROWTH_FLUCTUATING,
+ GROWTH_MEDIUM_SLOW,
+ GROWTH_FAST,
+ GROWTH_SLOW
+};
+
+enum {
+ BODY_COLOR_RED,
+ BODY_COLOR_BLUE,
+ BODY_COLOR_YELLOW,
+ BODY_COLOR_GREEN,
+ BODY_COLOR_BLACK,
+ BODY_COLOR_BROWN,
+ BODY_COLOR_PURPLE,
+ BODY_COLOR_GRAY,
+ BODY_COLOR_WHITE,
+ BODY_COLOR_PINK
+};
+
+#define EVO_FRIENDSHIP 0x0001 // Pokémon levels up with friendship ≥ 220
+#define EVO_FRIENDSHIP_DAY 0x0002 // Pokémon levels up during the day with friendship ≥ 220
+#define EVO_FRIENDSHIP_NIGHT 0x0003 // Pokémon levels up at night with friendship ≥ 220
+#define EVO_LEVEL 0x0004 // Pokémon reaches the specified level
+#define EVO_TRADE 0x0005 // Pokémon is traded
+#define EVO_TRADE_ITEM 0x0006 // Pokémon is traded while it's holding the specified item
+#define EVO_ITEM 0x0007 // specified item is used on Pokémon
+#define EVO_LEVEL_ATK_GT_DEF 0x0008 // Pokémon reaches the specified level with attack > defense
+#define EVO_LEVEL_ATK_EQ_DEF 0x0009 // Pokémon reaches the specified level with attack = defense
+#define EVO_LEVEL_ATK_LT_DEF 0x000a // Pokémon reaches the specified level with attack < defense
+#define EVO_LEVEL_SILCOON 0x000b // Pokémon reaches the specified level with a Silcoon personality value
+#define EVO_LEVEL_CASCOON 0x000c // Pokémon reaches the specified level with a Cascoon personality value
+#define EVO_LEVEL_NINJASK 0x000d // Pokémon reaches the specified level (special value for Ninjask)
+#define EVO_LEVEL_SHEDINJA 0x000e // Pokémon reaches the specified level (special value for Shedinja)
+#define EVO_BEAUTY 0x000f // Pokémon levels up with beauty ≥ specified value
+
struct Evolution
{
u16 method;
@@ -396,19 +464,14 @@ struct EvolutionData
struct Evolution evolutions[5];
};
-extern const u8 *const gItemEffectTable[];
-extern u8 gTrainerClassToPicIndex[];
-extern u8 gTrainerClassToNameIndex[];
-extern const u32 gExperienceTables[8][101];
-extern const struct BaseStats gBaseStats[];
-extern struct EvolutionData gEvolutionTable[];
-extern const u16 *gLevelUpLearnsets[];
-extern u8 gUnknown_08208238[];
-extern u8 gUnknown_0820823C[];
-extern u8 gStatStageRatios[][2];
-
extern struct Pokemon gPlayerParty[PARTY_SIZE];
extern struct Pokemon gEnemyParty[PARTY_SIZE];
+extern const u8 *const gItemEffectTable[];
+extern const struct BaseStats gBaseStats[];
+extern const u32 gExperienceTables[][101];
+extern const u16 *const gLevelUpLearnsets[];
+extern const struct EvolutionData gEvolutionTable[];
+extern struct PokemonStorage gPokemonStorage;
void ZeroBoxMonData(struct BoxPokemon *boxMon);
void ZeroMonData(struct Pokemon *mon);
@@ -511,5 +574,6 @@ void sub_8040B8C(void);
void SetWildMonHeldItem(void);
u8 *sub_8040D08();
bool32 sub_8040D3C(u16 species, u8 *name, u8 language);
+u16 GetMonEVCount(struct Pokemon *);
#endif // GUARD_POKEMON_H
diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h
index 71259c887..c1b99c367 100644
--- a/include/pokemon_summary_screen.h
+++ b/include/pokemon_summary_screen.h
@@ -12,5 +12,6 @@ u8 GetMonStatusAndPokerus();
u8 *sub_80A1E9C(u8 *dest, const u8 *src, u8);
u8 *PokemonSummaryScreen_CopyPokemonLevel(u8 *dest, u8 level);
u8 PokemonSummaryScreen_CheckOT(struct Pokemon *pokemon);
+bool8 CheckPartyPokerus(struct Pokemon *, u8);
#endif // GUARD_POKEMON_SUMMARY_SCREEN_H
diff --git a/include/region_map.h b/include/region_map.h
index 0cef566f6..6dfa4dcf0 100644..100755
--- a/include/region_map.h
+++ b/include/region_map.h
@@ -6,7 +6,7 @@ void sub_80FAB10(void);
u8 sub_80FAB60(void);
void sub_80FBB3C(u16, u16);
void sub_80FBCF0(u32, u8);
-void sub_80FBFB4(u8 *str, u8 region, u8);
+void sub_80FBFB4(u8 *str, u16 region, u8);
void CopyMapName();
u8 *CopyLocationName(u8 *dest, u8 location);
diff --git a/include/rom4.h b/include/rom4.h
index eac4d29a2..b7415bf0a 100644
--- a/include/rom4.h
+++ b/include/rom4.h
@@ -102,7 +102,7 @@ void sub_8053FB0(u16);
// sub_8054034
// sub_8054044
// sub_8054050
-// sub_80540D0
+void sub_80540D0(s16 *, u16 *);
void sub_8054164(void);
u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum);
// get_map_light_level_from_warp
diff --git a/include/script.h b/include/script.h
index 4070a838f..5577fcb01 100644
--- a/include/script.h
+++ b/include/script.h
@@ -56,5 +56,6 @@ void ClearRamScript(void);
bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId);
u8 *GetRamScript(u8 objectId, u8 *script);
u16 gScriptResult;
+extern u16 gScriptLastTalked;
#endif // GUARD_SCRIPT_H
diff --git a/include/secret_base.h b/include/secret_base.h
index 3ca5ab182..3ea75ce27 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -10,6 +10,7 @@ u8 sub_80BC050();
void sub_80BC300();
const u8 sub_80BCCA4(u8);
u8 *sub_80BCCE8(void);
+void sub_80BCF1C(u8);
void sub_80BD674(void *, u32, u8);
#endif // GUARD_SECRET_BASE_H
diff --git a/include/task.h b/include/task.h
index 6c6efdf4f..a71577ee3 100644
--- a/include/task.h
+++ b/include/task.h
@@ -1,6 +1,10 @@
#ifndef GUARD_TASK_H
#define GUARD_TASK_H
+// general task defines
+#define TASK gTasks[taskId]
+#define FUNC func
+
typedef void (*TaskFunc)(u8 taskId);
struct Task
diff --git a/include/text.h b/include/text.h
index 6e32de6dd..cf413644b 100644
--- a/include/text.h
+++ b/include/text.h
@@ -6,6 +6,7 @@
#define CHAR_QUESTION_MARK 0xAC
#define CHAR_PERIOD 0xAD
#define CHAR_HYPHEN 0xAE
+#define CHAR_ELLIPSIS 0xB0
#define CHAR_MALE 0xB5
#define CHAR_FEMALE 0xB6
#define CHAR_COMMA 0xB8
diff --git a/include/trainer.h b/include/trainer.h
index 232cde608..2e0beb342 100644
--- a/include/trainer.h
+++ b/include/trainer.h
@@ -16,4 +16,231 @@
#define TRAINER_ENCOUNTER_MUSIC_INTERVIEWER 12
#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen
+enum {
+ TRAINER_CLASS_AQUA_LEADER,
+ TRAINER_CLASS_TEAM_AQUA_M,
+ TRAINER_CLASS_TEAM_AQUA_F,
+ TRAINER_CLASS_AROMA_LADY,
+ TRAINER_CLASS_RUIN_MANIAC,
+ TRAINER_CLASS_INTERVIEWER,
+ TRAINER_CLASS_TUBER_F,
+ TRAINER_CLASS_TUBER_M,
+ TRAINER_CLASS_COOL_TRAINER_M,
+ TRAINER_CLASS_COOL_TRAINER_F,
+ TRAINER_CLASS_HEX_MANIAC,
+ TRAINER_CLASS_LADY,
+ TRAINER_CLASS_BEAUTY,
+ TRAINER_CLASS_RICH_BOY,
+ TRAINER_CLASS_POKEMANIAC,
+ TRAINER_CLASS_SWIMMER_M,
+ TRAINER_CLASS_BLACK_BELT,
+ TRAINER_CLASS_GUITARIST,
+ TRAINER_CLASS_KINDLER,
+ TRAINER_CLASS_CAMPER,
+ TRAINER_CLASS_BUG_MANIAC,
+ TRAINER_CLASS_PSYCHIC_M,
+ TRAINER_CLASS_PSYCHIC_F,
+ TRAINER_CLASS_GENTLEMAN,
+ TRAINER_CLASS_ELITE_FOUR_M,
+ TRAINER_CLASS_ELITE_FOUR_F,
+ TRAINER_CLASS_LEADER_F,
+ TRAINER_CLASS_LEADER_M,
+ TRAINER_CLASS_LEADER_MF,
+ TRAINER_CLASS_SCHOOL_KID_M,
+ TRAINER_CLASS_SCHOOL_KID_F,
+ TRAINER_CLASS_SR_AND_JR,
+ TRAINER_CLASS_POKEFAN_M,
+ TRAINER_CLASS_POKEFAN_F,
+ TRAINER_CLASS_EXPERT_M,
+ TRAINER_CLASS_EXPERT_F,
+ TRAINER_CLASS_YOUNGSTER,
+ TRAINER_CLASS_CHAMPION,
+ TRAINER_CLASS_FISHERMAN,
+ TRAINER_CLASS_CYCLING_TRIATHLETE_M,
+ TRAINER_CLASS_CYCLING_TRIATHLETE_F,
+ TRAINER_CLASS_RUNNING_TRIATHLETE_M,
+ TRAINER_CLASS_RUNNING_TRIATHLETE_F,
+ TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
+ TRAINER_CLASS_DRAGON_TAMER,
+ TRAINER_CLASS_BIRD_KEEPER,
+ TRAINER_CLASS_NINJA_BOY,
+ TRAINER_CLASS_BATTLE_GIRL,
+ TRAINER_CLASS_PARASOL_LADY,
+ TRAINER_CLASS_SWIMMER_F,
+ TRAINER_CLASS_PICNICKER,
+ TRAINER_CLASS_TWINS,
+ TRAINER_CLASS_SAILOR,
+ TRAINER_CLASS_BOARDER_1,
+ TRAINER_CLASS_BOARDER_2,
+ TRAINER_CLASS_COLLECTOR,
+ TRAINER_CLASS_WALLY,
+ TRAINER_CLASS_BRENDAN_1,
+ TRAINER_CLASS_BRENDAN_2,
+ TRAINER_CLASS_BRENDAN_3,
+ TRAINER_CLASS_MAY_1,
+ TRAINER_CLASS_MAY_2,
+ TRAINER_CLASS_MAY_3,
+ TRAINER_CLASS_POKEMON_BREEDER_M,
+ TRAINER_CLASS_POKEMON_BREEDER_F,
+ TRAINER_CLASS_POKEMON_RANGER_M,
+ TRAINER_CLASS_POKEMON_RANGER_F,
+ TRAINER_CLASS_MAGMA_LEADER,
+ TRAINER_CLASS_TEAM_MAGMA_M,
+ TRAINER_CLASS_TEAM_MAGMA_F,
+ TRAINER_CLASS_LASS,
+ TRAINER_CLASS_BUG_CATCHER,
+ TRAINER_CLASS_HIKER,
+ TRAINER_CLASS_YOUNG_COUPLE,
+ TRAINER_CLASS_OLD_COUPLE,
+ TRAINER_CLASS_SIS_AND_BRO
+};
+
+enum {
+ TRAINER_PIC_BRENDAN,
+ TRAINER_PIC_MAY,
+ TRAINER_PIC_LASS,
+ TRAINER_PIC_YOUNGSTER,
+ TRAINER_PIC_HIKER,
+ TRAINER_PIC_BEAUTY,
+ TRAINER_PIC_FISHERMAN,
+ TRAINER_PIC_LADY,
+ TRAINER_PIC_CYCLING_TRIATHLETE_M,
+ TRAINER_PIC_AQUA_GRUNT_M,
+ TRAINER_PIC_TWINS,
+ TRAINER_PIC_SWIMMER_F,
+ TRAINER_PIC_BUG_CATCHER,
+ TRAINER_PIC_SCHOOL_KID_M,
+ TRAINER_PIC_RICH_BOY,
+ TRAINER_PIC_SR_AND_JR,
+ TRAINER_PIC_BLACK_BELT,
+ TRAINER_PIC_WALLY,
+ TRAINER_PIC_AQUA_GRUNT_F,
+ TRAINER_PIC_TUBER_F,
+ TRAINER_PIC_HEX_MANIAC,
+ TRAINER_PIC_POKEMON_BREEDER_F,
+ TRAINER_PIC_MAGMA_GRUNT_M,
+ TRAINER_PIC_MAGMA_GRUNT_F,
+ TRAINER_PIC_INTERVIEWER,
+ TRAINER_PIC_TUBER_M,
+ TRAINER_PIC_YOUNG_COUPLE,
+ TRAINER_PIC_GUITARIST,
+ TRAINER_PIC_GENTLEMAN,
+ TRAINER_PIC_STEVEN,
+ TRAINER_PIC_MAXIE,
+ TRAINER_PIC_RUNNING_TRIATHLETE_F,
+ TRAINER_PIC_RUNNING_TRIATHLETE_M,
+ TRAINER_PIC_BATTLE_GIRL,
+ TRAINER_PIC_CYCLING_TRIATHLETE_F,
+ TRAINER_PIC_SWIMMER_M,
+ TRAINER_PIC_POKEFAN_F,
+ TRAINER_PIC_EXPERT_M,
+ TRAINER_PIC_EXPERT_F,
+ TRAINER_PIC_SWIMMING_TRIATHLETE_M,
+ TRAINER_PIC_SWIMMING_TRIATHLETE_F,
+ TRAINER_PIC_DRAGON_TAMER,
+ TRAINER_PIC_BIRD_KEEPER,
+ TRAINER_PIC_NINJA_BOY,
+ TRAINER_PIC_PARASOL_LADY,
+ TRAINER_PIC_BUG_MANIAC,
+ TRAINER_PIC_SAILOR,
+ TRAINER_PIC_COLLECTOR,
+ TRAINER_PIC_POKEMON_BREEDER_M,
+ TRAINER_PIC_POKEMON_RANGER_M,
+ TRAINER_PIC_POKEMON_RANGER_F,
+ TRAINER_PIC_MAGMA_ADMIN_M,
+ TRAINER_PIC_MAGMA_ADMIN_F,
+ TRAINER_PIC_AROMA_LADY,
+ TRAINER_PIC_RUIN_MANIAC,
+ TRAINER_PIC_COOL_TRAINER_M,
+ TRAINER_PIC_COOL_TRAINER_F,
+ TRAINER_PIC_POKEMANIAC,
+ TRAINER_PIC_KINDLER,
+ TRAINER_PIC_CAMPER,
+ TRAINER_PIC_PICNICKER,
+ TRAINER_PIC_PSYCHIC_M,
+ TRAINER_PIC_PSYCHIC_F,
+ TRAINER_PIC_SCHOOL_KID_F,
+ TRAINER_PIC_POKEFAN_M,
+ TRAINER_PIC_SIS_AND_BRO,
+ TRAINER_PIC_OLD_COUPLE,
+ TRAINER_PIC_AQUA_ADMIN_M,
+ TRAINER_PIC_AQUA_ADMIN_F,
+ TRAINER_PIC_UNUSED_AQUA,
+ TRAINER_PIC_ARCHIE,
+ TRAINER_PIC_ROXANNE,
+ TRAINER_PIC_BRAWLY,
+ TRAINER_PIC_WATTSON,
+ TRAINER_PIC_FLANNERY,
+ TRAINER_PIC_NORMAN,
+ TRAINER_PIC_WINONA,
+ TRAINER_PIC_TATE_AND_LIZA,
+ TRAINER_PIC_WALLACE,
+ TRAINER_PIC_SIDNEY,
+ TRAINER_PIC_PHOEBE,
+ TRAINER_PIC_GLACIA,
+ TRAINER_PIC_DRAKE,
+};
+
+enum {
+ TRAINER_CLASS_NAME_POKEMON_TRAINER_1,
+ TRAINER_CLASS_NAME_POKEMON_TRAINER_2,
+ TRAINER_CLASS_NAME_AQUA_LEADER,
+ TRAINER_CLASS_NAME_TEAM_AQUA,
+ TRAINER_CLASS_NAME_AQUA_ADMIN,
+ TRAINER_CLASS_NAME_AROMA_LADY,
+ TRAINER_CLASS_NAME_RUIN_MANIAC,
+ TRAINER_CLASS_NAME_INTERVIEWER,
+ TRAINER_CLASS_NAME_TUBER_F,
+ TRAINER_CLASS_NAME_TUBER_M,
+ TRAINER_CLASS_NAME_COOL_TRAINER,
+ TRAINER_CLASS_NAME_HEX_MANIAC,
+ TRAINER_CLASS_NAME_LADY,
+ TRAINER_CLASS_NAME_BEAUTY,
+ TRAINER_CLASS_NAME_RICH_BOY,
+ TRAINER_CLASS_NAME_POKEMANIAC,
+ TRAINER_CLASS_NAME_SWIMMER_M,
+ TRAINER_CLASS_NAME_BLACK_BELT,
+ TRAINER_CLASS_NAME_GUITARIST,
+ TRAINER_CLASS_NAME_KINDLER,
+ TRAINER_CLASS_NAME_CAMPER,
+ TRAINER_CLASS_NAME_BUG_MANIAC,
+ TRAINER_CLASS_NAME_PSYCHIC,
+ TRAINER_CLASS_NAME_GENTLEMAN,
+ TRAINER_CLASS_NAME_ELITE_FOUR,
+ TRAINER_CLASS_NAME_LEADER,
+ TRAINER_CLASS_NAME_SCHOOL_KID,
+ TRAINER_CLASS_NAME_SR_AND_JR,
+ TRAINER_CLASS_NAME_WINSTRATE,
+ TRAINER_CLASS_NAME_POKEFAN,
+ TRAINER_CLASS_NAME_EXPERT,
+ TRAINER_CLASS_NAME_YOUNGSTER,
+ TRAINER_CLASS_NAME_CHAMPION,
+ TRAINER_CLASS_NAME_FISHERMAN,
+ TRAINER_CLASS_NAME_TRIATHLETE,
+ TRAINER_CLASS_NAME_DRAGON_TAMER,
+ TRAINER_CLASS_NAME_BIRD_KEEPER,
+ TRAINER_CLASS_NAME_NINJA_BOY,
+ TRAINER_CLASS_NAME_BATTLE_GIRL,
+ TRAINER_CLASS_NAME_PARASOL_LADY,
+ TRAINER_CLASS_NAME_SWIMMER_F,
+ TRAINER_CLASS_NAME_PICNICKER,
+ TRAINER_CLASS_NAME_TWINS,
+ TRAINER_CLASS_NAME_SAILOR,
+ TRAINER_CLASS_NAME_BOARDER,
+ TRAINER_CLASS_NAME_COLLECTOR,
+ TRAINER_CLASS_NAME_POKEMON_TRAINER_3,
+ TRAINER_CLASS_NAME_POKEMON_BREEDER,
+ TRAINER_CLASS_NAME_POKEMON_RANGER,
+ TRAINER_CLASS_NAME_MAGMA_LEADER,
+ TRAINER_CLASS_NAME_TEAM_MAGMA,
+ TRAINER_CLASS_NAME_MAGMA_ADMIN,
+ TRAINER_CLASS_NAME_LASS,
+ TRAINER_CLASS_NAME_BUG_CATCHER,
+ TRAINER_CLASS_NAME_HIKER,
+ TRAINER_CLASS_NAME_YOUNG_COUPLE,
+ TRAINER_CLASS_NAME_OLD_COUPLE,
+ TRAINER_CLASS_NAME_SIS_AND_BRO
+};
+
#endif // GUARD_TRAINER_H
diff --git a/include/tv.h b/include/tv.h
index 277d29750..3243fff2c 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -18,7 +18,7 @@ enum
TVSHOW_MASS_OUTBREAK = 41,
};
-extern u8 *gUnknown_083D1464[3];
+extern u8 *const gUnknown_083D1464[3];
void ClearTVShowData(void);
u8 sub_80BDEAC(u8 *);
@@ -106,5 +106,6 @@ void DoTVShowTodaysSmartShopper(void);
void sub_80BE3BC(void);
void UpdateTVShowsPerDay(u16);
void sub_80C045C();
+void sub_80BF088(u8, s32);
#endif // GUARD_TV_H
diff --git a/include/vars.h b/include/vars.h
index cb5bb3296..e08f344d4 100644..100755
--- a/include/vars.h
+++ b/include/vars.h
@@ -1,7 +1,16 @@
#ifndef GUARD_VARS_H
#define GUARD_VARS_H
+#define VAR_0x4001 0x4001
+#define VAR_0x4002 0x4002
#define VAR_0x4003 0x4003
+#define VAR_0x4004 0x4004
+#define VAR_0x4005 0x4005
+#define VAR_0x4006 0x4006
+#define VAR_0x4007 0x4007
+#define VAR_0x4008 0x4008
+#define VAR_0x4009 0x4009
+#define VAR_0x400A 0x400A
#define VAR_0x401F 0x401F
#define VAR_RECYCLE_GOODS 0x4020
#define VAR_REPEL_STEP_COUNT 0x4021
@@ -17,6 +26,7 @@
#define VAR_DAYS 0x4040
+#define VAR_DEPT_STORE_FLOOR 0x4043
#define VAR_POKELOT_PRIZE 0x4045
#define VAR_NATIONAL_DEX 0x4046
#define VAR_SHROOMISH_SIZE_RECORD 0x4047
@@ -31,10 +41,12 @@
#define VAR_0x4054 0x4054
#define VAR_0x4089 0x4089
+#define VAR_0x4095 0x4095
#define VAR_0x4097 0x4097
-
+#define VAR_0x409a 0x409a
#define VAR_PORTHOLE 0x40B4
#define VAR_0x40BC 0x40BC
+#define VAR_0x40C2 0x40C2
#endif // GUARD_VARS_H
diff --git a/ld_script.txt b/ld_script.txt
index 80436f035..4842da865 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -60,7 +60,7 @@ SECTIONS {
src/battle_7.o(.text);
asm/battle_8.o(.text);
asm/battle_9.o(.text);
- asm/battle_10.o(.text);
+ src/battle_10.o(.text);
src/pokemon_1.o(.text);
src/calculate_base_damage.o(.text);
src/pokemon_2.o(.text);
@@ -107,7 +107,7 @@ SECTIONS {
src/field_control_avatar.o(.text);
src/event_data.o(.text);
src/coord_event_weather.o(.text);
- asm/field_tasks.o(.text);
+ src/field_tasks.o(.text);
src/clock.o(.text);
asm/reset_rtc_screen.o(.text);
asm/party_menu.o(.text);
@@ -169,7 +169,7 @@ SECTIONS {
asm/contest_effect.o(.text);
src/record_mixing.o(.text);
asm/record_mixing.o(.text);
- asm/sound_check_menu.o(.text);
+ src/sound_check_menu.o(.text);
src/secret_base.o(.text);
asm/secret_base.o(.text_80BC1D0);
src/tv.o(.text);
@@ -219,7 +219,6 @@ SECTIONS {
src/birch_pc.o(.text);
src/hof_pc.o(.text);
src/field_specials.o(.text);
- asm/field_specials.o(.text);
asm/battle_records.o(.text);
src/battle_records.o(.text);
asm/battle_records.o(.text_8110494);
@@ -336,7 +335,7 @@ SECTIONS {
src/rtc.o(.rodata);
data/main_menu.o(.rodata);
data/data2.o(.rodata);
- data/pokemon.o(.rodata);
+ src/pokemon_data.o(.rodata);
. = ALIGN(4);
src/trig.o(.rodata);
data/util.o(.rodata);
@@ -362,7 +361,7 @@ SECTIONS {
src/script.o(.rodata);
src/scrcmd.o(.rodata);
src/coord_event_weather.o(.rodata);
- data/field_tasks.o(.rodata);
+ src/field_tasks.o(.rodata);
data/reset_rtc_screen.o(.rodata);
data/party_menu.o(.rodata);
src/start_menu.o(.rodata);
@@ -410,7 +409,7 @@ SECTIONS {
data/money.o(.rodata);
data/contest_effect.o(.rodata);
data/record_mixing.o(.rodata);
- data/sound_check_menu.o(.rodata);
+ src/sound_check_menu.o(.rodata);
data/secret_base.o(.rodata);
data/tv.o(.rodata);
data/contest_link_80C2020.o(.rodata);
@@ -441,7 +440,7 @@ SECTIONS {
data/pokeblock.o(.rodata);
data/fldeff_flash.o(.rodata);
src/time_events.o(.rodata);
- data/field_specials.o(.rodata);
+ src/field_specials.o(.rodata);
data/pokedex_area_screen.o(.rodata);
data/evolution_scene.o(.rodata);
data/roulette.o(.rodata);
diff --git a/src/battle_10.c b/src/battle_10.c
new file mode 100644
index 000000000..34e4f75b1
--- /dev/null
+++ b/src/battle_10.c
@@ -0,0 +1,1322 @@
+#include "global.h"
+#include "battle.h"
+#include "battle_interface.h"
+#include "data2.h"
+#include "link.h"
+#include "palette.h"
+#include "rom_8077ABC.h"
+#include "rom3.h"
+#include "songs.h"
+#include "sound.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+#include "util.h"
+
+struct UnknownStruct3
+{
+ u16 moves[4];
+ u8 pp[4];
+ u8 ppBonuses;
+};
+
+extern u8 gActiveBank;
+extern u8 gBattleBufferA[][0x200];
+extern u8 gObjectBankIDs[];
+extern u16 gBattlePartyID[];
+extern u8 gHealthboxIDs[];
+extern u16 gBattleTypeFlags;
+extern u8 gBattleMonForms[];
+extern void (*gBattleBankFunc[])(void);
+extern u32 *gDisableStructMoveAnim;
+extern u32 gMoveDmgMoveAnim;
+extern u16 gMovePowerMoveAnim;
+extern u8 gHappinessMoveAnim;
+extern u16 gWeatherMoveAnim;
+extern u32 gPID_perBank[];
+extern u8 gAnimScriptActive;
+extern void (*gAnimScriptCallback)(void);
+extern u8 gDisplayedStringBattle[];
+extern bool8 gDoingBattleAnim;
+extern u8 gBattleOutcome;
+extern u16 gUnknown_02024DE8;
+extern u8 gUnknown_02024E68[];
+extern struct SpriteTemplate gUnknown_02024E8C;
+extern u8 gUnknown_0202F7C4;
+extern struct Window gUnknown_03004210;
+extern u16 gUnknown_030042A0;
+extern u16 gUnknown_030042A4;
+extern u8 gUnknown_0300434C[];
+
+extern u8 sub_8077F68();
+extern u8 sub_8079E90();
+extern u8 GetBankIdentity(u8);
+extern void sub_8031794(struct Pokemon *, u8);
+extern void sub_8037A74(void);
+extern void sub_8032984(u8, u16);
+extern void sub_8037E30(void);
+extern void sub_80312F0(struct Sprite *);
+extern u8 sub_8046400();
+extern void sub_8032A08();
+extern void sub_8043DB0();
+extern void sub_8037BBC(void);
+extern s32 sub_803FC34(u16);
+extern void sub_8031A6C(u16, u8);
+extern void sub_80313A0(struct Sprite *);
+extern void sub_803757C(void);
+extern void oamt_add_pos2_onto_pos1();
+extern void oamt_set_x3A_32();
+extern void sub_8078B34(struct Sprite *);
+extern void sub_80375B4(void);
+extern void sub_8010384(struct Sprite *);
+extern void sub_8037B78(void);
+extern u8 sub_8031720();
+extern u8 mplay_80342A4();
+extern void ExecuteMoveAnim();
+extern void sub_80326EC();
+extern void sub_8031F24(void);
+extern void sub_80324BC();
+extern void BufferStringBattle();
+extern void sub_8037C2C(void);
+extern void sub_8043D84();
+extern void sub_8037B24(void);
+extern void sub_8045A5C();
+extern void sub_8037FAC(void);
+extern void move_anim_start_t2_for_situation();
+extern void dp01t_0F_4_move_anim(void);
+extern void sub_8047858();
+extern u8 GetBankSide(u8);
+extern void sub_80E43C0();
+extern void sub_803A3A8(struct Sprite *);
+extern void sub_8044CA0(u8);
+extern void nullsub_47(void);
+extern bool8 IsDoubleBattle(void);
+extern void sub_8037840(void);
+extern void sub_8031B74();
+extern u8 sub_8078874();
+extern u8 move_anim_start_t3();
+extern void sub_8037FD8(void);
+extern void sub_8037F34(void);
+extern void dp01_tbl4_exec_completed(void);
+
+u32 dp01_getattr_by_ch1_for_player_pokemon__(u8, u8 *);
+void sub_8038900(u8);
+void sub_8039430(u8, u8);
+void sub_8039648(void);
+void sub_8039B64(void);
+void sub_803A2C4(u8);
+void sub_803A4E0(void);
+
+void LinkOpponentHandleGetAttributes(void)
+{
+ u8 buffer[0x100];
+ u32 r6 = 0;
+ u8 r4;
+ s32 i;
+
+ if (gBattleBufferA[gActiveBank][2] == 0)
+ {
+ r6 = dp01_getattr_by_ch1_for_player_pokemon__(gBattlePartyID[gActiveBank], buffer);
+ }
+ else
+ {
+ r4 = gBattleBufferA[gActiveBank][2];
+ for (i = 0; i < 6; i++)
+ {
+ if (r4 & 1)
+ r6 += dp01_getattr_by_ch1_for_player_pokemon__(i, buffer + r6);
+ r4 >>= 1;
+ }
+ }
+ dp01_build_cmdbuf_x1D_1D_numargs_varargs(1, r6, buffer);
+ dp01_tbl4_exec_completed();
+}
+
+u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer)
+{
+ struct BattlePokemon battlePokemon;
+ struct UnknownStruct3 moveData;
+ u8 nickname[20];
+ u8 *src;
+ s16 data16;
+ u32 data32;
+ s32 size = 0;
+
+ switch (gBattleBufferA[gActiveBank][1])
+ {
+ case 0:
+ battlePokemon.species = GetMonData(&gEnemyParty[a], MON_DATA_SPECIES);
+ battlePokemon.item = GetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM);
+ for (size = 0; size < 4; size++)
+ {
+ battlePokemon.moves[size] = GetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + size);
+ battlePokemon.pp[size] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + size);
+ }
+ battlePokemon.ppBonuses = GetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES);
+ battlePokemon.friendship = GetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP);
+ battlePokemon.experience = GetMonData(&gEnemyParty[a], MON_DATA_EXP);
+ battlePokemon.hpIV = GetMonData(&gEnemyParty[a], MON_DATA_HP_IV);
+ battlePokemon.attackIV = GetMonData(&gEnemyParty[a], MON_DATA_ATK_IV);
+ battlePokemon.defenseIV = GetMonData(&gEnemyParty[a], MON_DATA_DEF_IV);
+ battlePokemon.speedIV = GetMonData(&gEnemyParty[a], MON_DATA_SPD_IV);
+ battlePokemon.spAttackIV = GetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV);
+ battlePokemon.spDefenseIV = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV);
+ battlePokemon.personality = GetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY);
+ battlePokemon.status1 = GetMonData(&gEnemyParty[a], MON_DATA_STATUS);
+ battlePokemon.level = GetMonData(&gEnemyParty[a], MON_DATA_LEVEL);
+ battlePokemon.hp = GetMonData(&gEnemyParty[a], MON_DATA_HP);
+ battlePokemon.maxHP = GetMonData(&gEnemyParty[a], MON_DATA_MAX_HP);
+ battlePokemon.attack = GetMonData(&gEnemyParty[a], MON_DATA_ATK);
+ battlePokemon.defense = GetMonData(&gEnemyParty[a], MON_DATA_DEF);
+ battlePokemon.speed = GetMonData(&gEnemyParty[a], MON_DATA_SPD);
+ battlePokemon.spAttack = GetMonData(&gEnemyParty[a], MON_DATA_SPATK);
+ battlePokemon.spDefense = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF);
+ battlePokemon.isEgg = GetMonData(&gEnemyParty[a], MON_DATA_IS_EGG);
+ battlePokemon.altAbility = GetMonData(&gEnemyParty[a], MON_DATA_ALT_ABILITY);
+ battlePokemon.otId = GetMonData(&gEnemyParty[a], MON_DATA_OT_ID);
+ GetMonData(&gEnemyParty[a], MON_DATA_NICKNAME, nickname);
+ StringCopy10(battlePokemon.nickname, nickname);
+ GetMonData(&gEnemyParty[a], MON_DATA_OT_NAME, battlePokemon.otName);
+ src = (u8 *)&battlePokemon;
+ for (size = 0; size < sizeof(battlePokemon); size++)
+ buffer[size] = src[size];
+ break;
+ case 1:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPECIES);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 2:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 3:
+ for (size = 0; size < 4; size++)
+ {
+ moveData.moves[size] = GetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + size);
+ moveData.pp[size] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + size);
+ }
+ moveData.ppBonuses = GetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES);
+ src = (u8 *)&moveData;
+ for (size = 0; size < sizeof(moveData); size++)
+ buffer[size] = src[size];
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 8:
+ for (size = 0; size < 4; size++)
+ buffer[size] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + size);
+ buffer[size] = GetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES);
+ size++;
+ break;
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9);
+ size = 1;
+ break;
+ case 17:
+ data32 = GetMonData(&gEnemyParty[a], MON_DATA_OT_ID);
+ buffer[0] = (data32 & 0x000000FF);
+ buffer[1] = (data32 & 0x0000FF00) >> 8;
+ buffer[2] = (data32 & 0x00FF0000) >> 16;
+ size = 3;
+ break;
+ case 18:
+ data32 = GetMonData(&gEnemyParty[a], MON_DATA_EXP);
+ buffer[0] = (data32 & 0x000000FF);
+ buffer[1] = (data32 & 0x0000FF00) >> 8;
+ buffer[2] = (data32 & 0x00FF0000) >> 16;
+ size = 3;
+ break;
+ case 19:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_HP_EV);
+ size = 1;
+ break;
+ case 20:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_ATK_EV);
+ size = 1;
+ break;
+ case 21:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_DEF_EV);
+ size = 1;
+ break;
+ case 22:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPD_EV);
+ size = 1;
+ break;
+ case 23:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPATK_EV);
+ size = 1;
+ break;
+ case 24:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF_EV);
+ size = 1;
+ break;
+ case 25:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP);
+ size = 1;
+ break;
+ case 26:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_POKERUS);
+ size = 1;
+ break;
+ case 27:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_MET_LOCATION);
+ size = 1;
+ break;
+ case 28:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_MET_LEVEL);
+ size = 1;
+ break;
+ case 29:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_MET_GAME);
+ size = 1;
+ break;
+ case 30:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_POKEBALL);
+ size = 1;
+ break;
+ case 31:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_HP_IV);
+ buffer[1] = GetMonData(&gEnemyParty[a], MON_DATA_ATK_IV);
+ buffer[2] = GetMonData(&gEnemyParty[a], MON_DATA_DEF_IV);
+ buffer[3] = GetMonData(&gEnemyParty[a], MON_DATA_SPD_IV);
+ buffer[4] = GetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV);
+ buffer[5] = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV);
+ size = 6;
+ break;
+ case 32:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_HP_IV);
+ size = 1;
+ break;
+ case 33:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_ATK_IV);
+ size = 1;
+ break;
+ case 34:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_DEF_IV);
+ size = 1;
+ break;
+ case 35:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPD_IV);
+ size = 1;
+ break;
+ case 36:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV);
+ size = 1;
+ break;
+ case 37:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV);
+ size = 1;
+ break;
+ case 38:
+ data32 = GetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY);
+ buffer[0] = (data32 & 0x000000FF);
+ buffer[1] = (data32 & 0x0000FF00) >> 8;
+ buffer[2] = (data32 & 0x00FF0000) >> 16;
+ buffer[3] = (data32 & 0xFF000000) >> 24;
+ size = 4;
+ break;
+ case 39:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_CHECKSUM);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 40:
+ data32 = GetMonData(&gEnemyParty[a], MON_DATA_STATUS);
+ buffer[0] = (data32 & 0x000000FF);
+ buffer[1] = (data32 & 0x0000FF00) >> 8;
+ buffer[2] = (data32 & 0x00FF0000) >> 16;
+ buffer[3] = (data32 & 0xFF000000) >> 24;
+ size = 4;
+ break;
+ case 41:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_LEVEL);
+ size = 1;
+ break;
+ case 42:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_HP);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 43:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_MAX_HP);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 44:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_ATK);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 45:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_DEF);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 46:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPD);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 47:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPATK);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 48:
+ data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPDEF);
+ buffer[0] = data16;
+ buffer[1] = data16 >> 8;
+ size = 2;
+ break;
+ case 49:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_COOL);
+ size = 1;
+ break;
+ case 50:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_BEAUTY);
+ size = 1;
+ break;
+ case 51:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_CUTE);
+ size = 1;
+ break;
+ case 52:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SMART);
+ size = 1;
+ break;
+ case 53:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_TOUGH);
+ size = 1;
+ break;
+ case 54:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SHEEN);
+ size = 1;
+ break;
+ case 55:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_COOL_RIBBON);
+ size = 1;
+ break;
+ case 56:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_BEAUTY_RIBBON);
+ size = 1;
+ break;
+ case 57:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_CUTE_RIBBON);
+ size = 1;
+ break;
+ case 58:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_SMART_RIBBON);
+ size = 1;
+ break;
+ case 59:
+ buffer[0] = GetMonData(&gEnemyParty[a], MON_DATA_TOUGH_RIBBON);
+ size = 1;
+ break;
+ }
+ return size;
+}
+
+void sub_803889C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_80388A8(void)
+{
+ u8 i;
+ u8 r4;
+
+ if (gBattleBufferA[gActiveBank][2] == 0)
+ {
+ sub_8038900(gBattlePartyID[gActiveBank]);
+ }
+ else
+ {
+ r4 = gBattleBufferA[gActiveBank][2];
+ for (i = 0; i < 6; i++)
+ {
+ if (r4 & 1)
+ sub_8038900(i);
+ r4 >>= 1;
+ }
+ }
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8038900(u8 a)
+{
+ struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3];
+ struct UnknownStruct3 *moveData = (struct UnknownStruct3 *)&gBattleBufferA[gActiveBank][3];
+ s32 i;
+
+ switch (gBattleBufferA[gActiveBank][1])
+ {
+ case 0:
+ {
+ u8 iv;
+
+ SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species);
+ SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item);
+ for (i = 0; i < 4; i++)
+ {
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]);
+ }
+ SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses);
+ SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship);
+ SetMonData(&gEnemyParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience);
+ iv = battlePokemon->hpIV;
+ SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, (u8 *)&iv);
+ iv = battlePokemon->attackIV;
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, (u8 *)&iv);
+ iv = battlePokemon->defenseIV;
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, (u8 *)&iv);
+ iv = battlePokemon->speedIV;
+ SetMonData(&gEnemyParty[a], MON_DATA_SPD_IV, (u8 *)&iv);
+ iv = battlePokemon->spAttackIV;
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, (u8 *)&iv);
+ iv = battlePokemon->spDefenseIV;
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality);
+ SetMonData(&gEnemyParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1);
+ SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level);
+ SetMonData(&gEnemyParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp);
+ SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP);
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack);
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPD, (u8 *)&battlePokemon->speed);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense);
+ }
+ break;
+ case 1:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 2:
+ SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 3:
+ for (i = 0; i < 4; i++)
+ {
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]);
+ }
+ SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - 4, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 8:
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]);
+ break;
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - 9, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 17:
+ SetMonData(&gEnemyParty[a], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 18:
+ SetMonData(&gEnemyParty[a], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 19:
+ SetMonData(&gEnemyParty[a], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 20:
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 21:
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 22:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPD_EV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 23:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 24:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 25:
+ SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 26:
+ SetMonData(&gEnemyParty[a], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 27:
+ SetMonData(&gEnemyParty[a], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 28:
+ SetMonData(&gEnemyParty[a], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 29:
+ SetMonData(&gEnemyParty[a], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 30:
+ SetMonData(&gEnemyParty[a], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 31:
+ SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][6]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
+ break;
+ case 32:
+ SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 33:
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 34:
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 35:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPD_IV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 36:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 37:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 38:
+ SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 39:
+ SetMonData(&gEnemyParty[a], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 40:
+ SetMonData(&gEnemyParty[a], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 41:
+ SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 42:
+ SetMonData(&gEnemyParty[a], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 43:
+ SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 44:
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 45:
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 46:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPD, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 47:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 48:
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 49:
+ SetMonData(&gEnemyParty[a], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 50:
+ SetMonData(&gEnemyParty[a], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 51:
+ SetMonData(&gEnemyParty[a], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 52:
+ SetMonData(&gEnemyParty[a], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 53:
+ SetMonData(&gEnemyParty[a], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 54:
+ SetMonData(&gEnemyParty[a], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 55:
+ SetMonData(&gEnemyParty[a], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 56:
+ SetMonData(&gEnemyParty[a], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 57:
+ SetMonData(&gEnemyParty[a], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 58:
+ SetMonData(&gEnemyParty[a], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ break;
+ case 59:
+ SetMonData(&gEnemyParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ break;
+ }
+}
+
+void sub_8039220(void)
+{
+ u8 *dst;
+ u8 i;
+
+ dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
+ for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
+ dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039294(void)
+{
+ u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+
+ sub_8031794(&gEnemyParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ GetMonSpriteTemplate_803C56C(species, GetBankIdentity(gActiveBank));
+ gObjectBankIDs[gActiveBank] = CreateSprite(
+ &gUnknown_02024E8C,
+ sub_8077ABC(gActiveBank, 2),
+ sub_8077F68(gActiveBank),
+ sub_8079E90(gActiveBank));
+ gSprites[gObjectBankIDs[gActiveBank]].pos2.x = -240;
+ gSprites[gObjectBankIDs[gActiveBank]].data0 = gActiveBank;
+ gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = gActiveBank;
+ StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], gBattleMonForms[gActiveBank]);
+ sub_8032984(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES));
+ gBattleBankFunc[gActiveBank] = sub_8037A74;
+}
+
+void sub_80393E4(void)
+{
+ gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1];
+ sub_8039430(gActiveBank, gBattleBufferA[gActiveBank][2]);
+ gBattleBankFunc[gActiveBank] = sub_8037E30;
+}
+
+void sub_8039430(u8 a, u8 b)
+{
+ u16 species;
+
+ sub_8032AA8(a, b);
+ gBattlePartyID[a] = gBattleBufferA[a][1];
+ species = GetMonData(&gEnemyParty[gBattlePartyID[a]], MON_DATA_SPECIES);
+ gUnknown_0300434C[a] = CreateInvisibleSpriteWithCallback(sub_80312F0);
+ sub_8031794(&gEnemyParty[gBattlePartyID[a]], a);
+ GetMonSpriteTemplate_803C56C(species, GetBankIdentity(a));
+ gObjectBankIDs[a] = CreateSprite(
+ &gUnknown_02024E8C,
+ sub_8077ABC(a, 2),
+ sub_8077F68(a),
+ sub_8079E90(a));
+ gSprites[gUnknown_0300434C[a]].data1 = gObjectBankIDs[a];
+ gSprites[gObjectBankIDs[a]].data0 = a;
+ gSprites[gObjectBankIDs[a]].data2 = species;
+ gSprites[gObjectBankIDs[a]].oam.paletteNum = a;
+ StartSpriteAnim(&gSprites[gObjectBankIDs[a]], gBattleMonForms[a]);
+ gSprites[gObjectBankIDs[a]].invisible = TRUE;
+ gSprites[gObjectBankIDs[a]].callback = SpriteCallbackDummy;
+ gSprites[gUnknown_0300434C[a]].data0 = sub_8046400(0, 0xFE);
+}
+
+void sub_80395B4(void)
+{
+ if (gBattleBufferA[gActiveBank][1] == 0)
+ {
+ ewram17810[gActiveBank].unk4 = 0;
+ gBattleBankFunc[gActiveBank] = sub_8039648;
+ }
+ else
+ {
+ FreeSpriteOamMatrix(&gSprites[gObjectBankIDs[gActiveBank]]);
+ DestroySprite(&gSprites[gObjectBankIDs[gActiveBank]]);
+ sub_8032A08(gActiveBank);
+ sub_8043DB0(gHealthboxIDs[gActiveBank]);
+ dp01_tbl4_exec_completed();
+ }
+}
+
+void sub_8039648(void)
+{
+ switch (ewram17810[gActiveBank].unk4)
+ {
+ case 0:
+ if (ewram17800[gActiveBank].unk0_2)
+ move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5);
+ ewram17810[gActiveBank].unk4 = 1;
+ break;
+ case 1:
+ if (!ewram17810[gActiveBank].unk0_6)
+ {
+ ewram17810[gActiveBank].unk4 = 0;
+ move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 2);
+ gBattleBankFunc[gActiveBank] = sub_8037BBC;
+ }
+ break;
+ }
+}
+
+void sub_80396D0(void)
+{
+ s16 xOffset;
+ u32 gender;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ {
+ if (GetBankIdentity(gActiveBank) & 2)
+ xOffset = -16;
+ else
+ xOffset = 16;
+ gender = gLinkPlayers[sub_803FC34(gActiveBank)].gender;
+ }
+ else
+ {
+ xOffset = 0;
+ gender = gLinkPlayers[GetMultiplayerId() ^ 1].gender;
+ }
+ sub_8031A6C(gender, gActiveBank);
+ GetMonSpriteTemplate_803C5A0(gender, GetBankIdentity(gActiveBank));
+ gObjectBankIDs[gActiveBank] = CreateSprite(
+ &gUnknown_02024E8C,
+ 176 + xOffset, 40 + 4 * (8 - gTrainerFrontPicCoords[gender].coords),
+ sub_8079E90(gActiveBank));
+ gSprites[gObjectBankIDs[gActiveBank]].pos2.x = -240;
+ gSprites[gObjectBankIDs[gActiveBank]].data0 = 2;
+ gSprites[gObjectBankIDs[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[gender].tag);
+ gSprites[gObjectBankIDs[gActiveBank]].data5 = gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum;
+ gSprites[gObjectBankIDs[gActiveBank]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[gender].tag);
+ gSprites[gObjectBankIDs[gActiveBank]].oam.affineParam = gender;
+ gSprites[gObjectBankIDs[gActiveBank]].callback = sub_80313A0;
+ gBattleBankFunc[gActiveBank] = sub_803757C;
+}
+
+void sub_80398A4(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_80398B0(void)
+{
+ oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]);
+ gSprites[gObjectBankIDs[gActiveBank]].data0 = 35;
+ gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
+ gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
+ gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
+ oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ gBattleBankFunc[gActiveBank] = sub_80375B4;
+}
+
+void sub_803995C(void)
+{
+ if (ewram17810[gActiveBank].unk4 == 0)
+ {
+ if (ewram17800[gActiveBank].unk0_2)
+ move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5);
+ ewram17810[gActiveBank].unk4++;
+ }
+ else if (!ewram17810[gActiveBank].unk0_6)
+ {
+ ewram17810[gActiveBank].unk4 = 0;
+ PlaySE12WithPanning(SE_POKE_DEAD, 63);
+ gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8010384;
+ gBattleBankFunc[gActiveBank] = sub_8037B78;
+ }
+}
+
+void sub_8039A00(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039A0C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039A18(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039A24(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039A30(void)
+{
+ if (!mplay_80342A4(gActiveBank))
+ {
+ u32 r0 = gBattleBufferA[gActiveBank][1]
+ | (gBattleBufferA[gActiveBank][2] << 8);
+
+ gUnknown_0202F7C4 = gBattleBufferA[gActiveBank][3];
+ gMovePowerMoveAnim = gBattleBufferA[gActiveBank][4]
+ | (gBattleBufferA[gActiveBank][5] << 8);
+ gMoveDmgMoveAnim = gBattleBufferA[gActiveBank][6]
+ | (gBattleBufferA[gActiveBank][7] << 8)
+ | (gBattleBufferA[gActiveBank][8] << 16)
+ | (gBattleBufferA[gActiveBank][9] << 24);
+ gHappinessMoveAnim = gBattleBufferA[gActiveBank][10];
+ gWeatherMoveAnim = gBattleBufferA[gActiveBank][12]
+ | (gBattleBufferA[gActiveBank][13] << 8);
+ gDisableStructMoveAnim = (u32 *)&gBattleBufferA[gActiveBank][16];
+ gPID_perBank[gActiveBank] = *gDisableStructMoveAnim;
+
+ if (sub_8031720(r0, gUnknown_0202F7C4) != 0)
+ {
+ dp01_tbl4_exec_completed();
+ }
+ else
+ {
+ ewram17810[gActiveBank].unk4 = 0;
+ gBattleBankFunc[gActiveBank] = sub_8039B64;
+ }
+ }
+}
+
+void sub_8039B64(void)
+{
+ u16 r4 = gBattleBufferA[gActiveBank][1]
+ | (gBattleBufferA[gActiveBank][2] << 8);
+ u8 r7 = gBattleBufferA[gActiveBank][11];
+
+ switch (ewram17810[gActiveBank].unk4)
+ {
+ case 0:
+ if (ewram17800[gActiveBank].unk0_2 && !ewram17800[gActiveBank].unk0_3)
+ {
+ ewram17800[gActiveBank].unk0_3 = 1;
+ move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 5);
+ }
+ ewram17810[gActiveBank].unk4 = 1;
+ break;
+ case 1:
+ if (!ewram17810[gActiveBank].unk0_6)
+ {
+ sub_80326EC(0);
+ ExecuteMoveAnim(r4);
+ ewram17810[gActiveBank].unk4 = 2;
+ }
+ break;
+ case 2:
+ gAnimScriptCallback();
+ if (!gAnimScriptActive)
+ {
+ sub_80326EC(1);
+ if ((ewram17800[gActiveBank].unk0_2) && r7 <= 1)
+ {
+ move_anim_start_t4(gActiveBank, gActiveBank, gActiveBank, 6);
+ ewram17800[gActiveBank].unk0_3 = 0;
+ }
+ ewram17810[gActiveBank].unk4 = 3;
+ }
+ break;
+ case 3:
+ if (!ewram17810[gActiveBank].unk0_6)
+ {
+ sub_8031F24();
+ sub_80324BC(
+ gActiveBank,
+ gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ ewram17810[gActiveBank].unk4 = 0;
+ dp01_tbl4_exec_completed();
+ }
+ break;
+ }
+}
+
+void sub_8039CC8(void)
+{
+ gUnknown_030042A4 = 0;
+ gUnknown_030042A0 = 0;
+ BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]);
+ sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ gBattleBankFunc[gActiveBank] = sub_8037C2C;
+}
+
+void sub_8039D2C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D38(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D44(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D50(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D5C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D68(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D74(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039D80(void)
+{
+ s16 r7;
+
+ load_gfxc_health_bar(0);
+ r7 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ if (r7 != 0x7FFF)
+ {
+ u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
+ u32 hp = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_HP);
+
+ sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, hp, r7);
+ }
+ else
+ {
+ u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
+
+ sub_8043D84(gActiveBank, gHealthboxIDs[gActiveBank], maxHP, 0, r7);
+ }
+ gBattleBankFunc[gActiveBank] = sub_8037B24;
+}
+
+void sub_8039E70(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039E7C(void)
+{
+ if (mplay_80342A4(gActiveBank) == 0)
+ {
+ sub_8045A5C(gHealthboxIDs[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], 9);
+ ewram17810[gActiveBank].unk0_4 = 0;
+ gBattleBankFunc[gActiveBank] = sub_8037FAC;
+ }
+}
+
+void sub_8039EF0(void)
+{
+ if (mplay_80342A4(gActiveBank) == 0)
+ {
+ move_anim_start_t2_for_situation(
+ gBattleBufferA[gActiveBank][1],
+ gBattleBufferA[gActiveBank][2]
+ | (gBattleBufferA[gActiveBank][3] << 8)
+ | (gBattleBufferA[gActiveBank][4] << 16)
+ | (gBattleBufferA[gActiveBank][5] << 24));
+ gBattleBankFunc[gActiveBank] = sub_8037FAC;
+ }
+}
+
+void sub_8039F58(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039F64(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039F70(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039F7C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039F88(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039F94(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039FA0(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039FAC(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039FB8(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039FC4(void)
+{
+ gUnknown_020238C8.unk0_0 = 0;
+ dp01_tbl4_exec_completed();
+}
+
+void sub_8039FE0(void)
+{
+ gUnknown_020238C8.unk0_0 = gBattleBufferA[gActiveBank][1];
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A018(void)
+{
+ gUnknown_020238C8.unk0_7 = 0;
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A030(void)
+{
+ gUnknown_020238C8.unk0_7 ^= 1;
+ dp01_tbl4_exec_completed();
+}
+
+void dp01t_29_4_blink(void)
+{
+ if (gSprites[gObjectBankIDs[gActiveBank]].invisible == TRUE)
+ {
+ dp01_tbl4_exec_completed();
+ }
+ else
+ {
+ gDoingBattleAnim = TRUE;
+ gSprites[gObjectBankIDs[gActiveBank]].data1 = 0;
+ sub_8047858(gActiveBank);
+ gBattleBankFunc[gActiveBank] = dp01t_0F_4_move_anim;
+ }
+}
+
+void sub_803A0C8(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A0D4(void)
+{
+ s8 pan;
+
+ if (GetBankSide(gActiveBank) == 0)
+ pan = -64;
+ else
+ pan = 63;
+ PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan);
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A118(void)
+{
+ PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A148(void)
+{
+ PlayCry3(
+ GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES),
+ 25, 5);
+ dp01_tbl4_exec_completed();
+}
+
+void dp01t_2E_4_battle_intro(void)
+{
+ sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ gUnknown_02024DE8 |= 1;
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A1B8(void)
+{
+ u8 taskId;
+
+ oamt_add_pos2_onto_pos1(&gSprites[gObjectBankIDs[gActiveBank]]);
+ gSprites[gObjectBankIDs[gActiveBank]].data0 = 35;
+ gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
+ gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
+ gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
+ oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], sub_803A3A8);
+ taskId = CreateTask(sub_803A2C4, 5);
+ gTasks[taskId].data[0] = gActiveBank;
+ if (ewram17810[gActiveBank].unk0_0)
+ gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0;
+ ewram17840.unk9_0 = 1;
+ gBattleBankFunc[gActiveBank] = nullsub_47;
+}
+
+void sub_803A2C4(u8 taskId)
+{
+ u8 r9;
+
+ r9 = gActiveBank;
+ gActiveBank = gTasks[taskId].data[0];
+ if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI))
+ {
+ gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
+ sub_8039430(gActiveBank, 0);
+ }
+ else
+ {
+ gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
+ sub_8039430(gActiveBank, 0);
+ gActiveBank ^= 2;
+ gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
+ sub_8039430(gActiveBank, 0);
+ gActiveBank ^= 2;
+ }
+ gBattleBankFunc[gActiveBank] = sub_8037840;
+ gActiveBank = r9;
+ DestroyTask(taskId);
+}
+
+void sub_803A3A8(struct Sprite *sprite)
+{
+ sub_8031B74(sprite->oam.affineParam);
+ sprite->oam.tileNum = sprite->data5;
+ FreeSpriteOamMatrix(sprite);
+ DestroySprite(sprite);
+}
+
+void sub_803A3DC(void)
+{
+ if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == 0)
+ {
+ dp01_tbl4_exec_completed();
+ return;
+ }
+
+ ewram17810[gActiveBank].unk0_0 = 1;
+ if (gBattleBufferA[gActiveBank][2] != 0)
+ {
+ if (ewram17810[gActiveBank].unk1_1 < 2)
+ {
+ ewram17810[gActiveBank].unk1_1++;
+ return;
+ }
+ else
+ {
+ ewram17810[gActiveBank].unk1_1 = 0;
+ }
+ }
+ gUnknown_02024E68[gActiveBank] = sub_8044804(
+ gActiveBank,
+ (struct BattleInterfaceStruct2 *)&gBattleBufferA[gActiveBank][4],
+ gBattleBufferA[gActiveBank][1],
+ gBattleBufferA[gActiveBank][2]);
+ ewram17810[gActiveBank].unk5 = 0;
+ if (gBattleBufferA[gActiveBank][2] != 0)
+ ewram17810[gActiveBank].unk5 = 0x5D;
+ gBattleBankFunc[gActiveBank] = sub_803A4E0;
+}
+
+void sub_803A4E0(void)
+{
+ if (ewram17810[gActiveBank].unk5++ >= 93)
+ {
+ ewram17810[gActiveBank].unk5 = 0;
+ dp01_tbl4_exec_completed();
+ }
+}
+
+void sub_803A520(void)
+{
+ if (ewram17810[gActiveBank].unk0_0)
+ gTasks[gUnknown_02024E68[gActiveBank]].func = sub_8044CA0;
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A56C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A578(void)
+{
+ if (sub_8078874(gActiveBank) != 0)
+ {
+ gSprites[gObjectBankIDs[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
+ sub_8031F88(gActiveBank);
+ }
+ dp01_tbl4_exec_completed();
+}
+
+void bx_exec_buffer_A_ch0_tbl4(void)
+{
+ if (mplay_80342A4(gActiveBank) == 0)
+ {
+ u8 r3 = gBattleBufferA[gActiveBank][1];
+ u16 r4 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+
+ if (move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, r3, r4) != 0)
+ dp01_tbl4_exec_completed();
+ else
+ gBattleBankFunc[gActiveBank] = sub_8037FD8;
+ }
+}
+
+void sub_803A640(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A64C(void)
+{
+ dp01_tbl4_exec_completed();
+}
+
+void sub_803A658(void)
+{
+ if (gBattleBufferA[gActiveBank][1] == 3)
+ gBattleOutcome = gBattleBufferA[gActiveBank][1];
+ else
+ gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ 3;
+ FadeOutMapMusic(5);
+ BeginFastPaletteFade(3);
+ dp01_tbl4_exec_completed();
+ gBattleBankFunc[gActiveBank] = sub_8037F34;
+}
+
+void nullsub_48(void)
+{
+}
diff --git a/src/battle_2.c b/src/battle_2.c
index 2b13fc45d..d08f2b8df 100644
--- a/src/battle_2.c
+++ b/src/battle_2.c
@@ -26,6 +26,9 @@
#include "trig.h"
#include "unknown_task.h"
#include "util.h"
+#include "items.h"
+#include "hold_effects.h"
+#include "battle_move_effects.h"
struct UnknownStruct6
{
@@ -70,30 +73,6 @@ struct UnknownStruct12
u8 filler4[0x54];
};
-struct UnknownStruct13
-{
- u32 unk0_0:1;
- u32 unk0_1:1;
- u32 unk0_2:1;
- u32 unk0_3:1;
- u32 unk0_4:1;
- u32 unk0_5:1;
- u32 unk0_6:1;
- u32 unk0_7:1;
- u32 unk1_0:1;
- u32 unk1_1:1;
- u32 unk1_2:1;
- u32 unk1_3:2;
- u32 unk1_5:1;
- u32 unk1_6:1;
- u32 unk1_7:1;
- u32 unk2_0:1;
- u32 unk2_1:1;
- u32 unk2_2:1;
- u32 unk2_3:1;
- u8 filler4[12];
-};
-
extern const u16 gUnknown_08D004E0[];
extern const struct MonCoords gCastformFrontSpriteCoords[];
@@ -166,7 +145,6 @@ extern u16 gChosenMovesByBanks[];
extern u32 gHitMarker;
extern u8 gUnknown_02024C70[];
extern u16 gSideAffecting[];
-extern u8 gSideTimer[][12];
extern u32 gStatuses3[];
//extern u8 gDisableStructs[][0x1C];
extern u16 gPauseCounterBattle;
@@ -175,8 +153,6 @@ extern u16 gRandomTurnNumber;
extern u8 gBattleCommunication[];
extern u8 gUnknown_02024D1F[]; // I don't actually know what type this is.
extern u8 gBattleOutcome;
-extern struct UnknownStruct13 gProtectStructs[];
-extern u8 gWishFutureKnock[];
extern u16 gUnknown_02024DE8;
extern u8 gActionSelectionCursor[];
extern u8 gMoveSelectionCursor[];
@@ -199,7 +175,6 @@ extern u16 gUnknown_030042C0;
extern u16 gUnknown_030042C4;
extern MainCallback gPreBattleCallback1;
extern void (*gBattleMainFunc)(void);
-extern struct Struct30042E0 gBattleResults;
extern u8 gLeveledUpInBattle;
extern void (*gBattleBankFunc[])(void);
extern u8 gHealthboxIDs[];
@@ -219,6 +194,7 @@ extern u32 gBattleMoveDamage;
extern struct BattlePokemon gBattleMons[];
extern u8 gBattleMoveFlags;
+static void BattlePrepIntroSlide(void);
void sub_800E7C4(void)
{
@@ -1495,43 +1471,43 @@ void sub_80105EC(struct Sprite *sprite)
}
}
-void dp11b_obj_instanciate(u8 a, u8 b, s8 c, s8 d)
+void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d)
{
u8 spriteId;
- u8 r7;
+ u8 objectID;
if (b)
{
- if (ewram17810[a].unk0_1)
+ if (ewram17810[bank].unk0_1)
return;
}
else
{
- if (ewram17810[a].unk0_2)
+ if (ewram17810[bank].unk0_2)
return;
}
spriteId = CreateInvisibleSpriteWithCallback(objc_dp11b_pingpong);
if (b == TRUE)
{
- r7 = gHealthboxIDs[a];
- ewram17810[a].unk2 = spriteId;
- ewram17810[a].unk0_1 = 1;
+ objectID = gHealthboxIDs[bank];
+ ewram17810[bank].unk2 = spriteId;
+ ewram17810[bank].unk0_1 = 1;
gSprites[spriteId].data0 = 0x80;
}
else
{
- r7 = gObjectBankIDs[a];
- ewram17810[a].unk3 = spriteId;
- ewram17810[a].unk0_2 = 1;
+ objectID = gObjectBankIDs[bank];
+ ewram17810[bank].unk3 = spriteId;
+ ewram17810[bank].unk0_2 = 1;
gSprites[spriteId].data0 = 0xC0;
}
gSprites[spriteId].data1 = c;
gSprites[spriteId].data2 = d;
- gSprites[spriteId].data3 = r7;
+ gSprites[spriteId].data3 = objectID;
gSprites[spriteId].data4 = b;
- gSprites[r7].pos2.x = 0;
- gSprites[r7].pos2.y = 0;
+ gSprites[objectID].pos2.x = 0;
+ gSprites[objectID].pos2.y = 0;
}
void dp11b_obj_free(u8 a, u8 b)
@@ -1586,7 +1562,6 @@ void sub_8010800(void)
void sub_8010824(void)
{
gBattleMainFunc();
- gActiveBank = 0;
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
gBattleBankFunc[gActiveBank]();
@@ -1595,7 +1570,7 @@ void sub_8010824(void)
void sub_8010874(void)
{
s32 i;
- s32 j;
+ u32 j;
u8 *r4;
TurnValuesCleanUp(0);
@@ -1609,7 +1584,7 @@ void sub_8010874(void)
for (j = 0; j < (u32)0x1C; j++)
r4[j] = 0;
- gDisableStructs[i].unk16 = 2;
+ gDisableStructs[i].IsFirstTurn = 2;
gUnknown_02024C70[i] = 0;
gLastUsedMove[i] = 0;
gMoveHitWith[i] = 0;
@@ -1626,7 +1601,7 @@ void sub_8010874(void)
gSideAffecting[i] = 0;
r4 = (u8 *)&gSideTimer[i];
- for (j = 0; j < (u32)12; j++)
+ for (j = 0; j < 12; j++)
r4[j] = 0;
}
@@ -1639,8 +1614,8 @@ void sub_8010874(void)
r4[i] = 0;
gHitMarker = 0;
- if ((gBattleTypeFlags & 2) == 0 && gSaveBlock2.optionsBattleSceneOff == TRUE)
- gHitMarker = 0x80;
+ if ((gBattleTypeFlags & BATTLE_TYPE_LINK) == 0 && gSaveBlock2.optionsBattleSceneOff == TRUE)
+ gHitMarker = HITMARKER_NO_ANIMATIONS;
ewram16084 = gSaveBlock2.optionsBattleStyle;
gMultiHitCounter = 0;
gBattleOutcome = 0;
@@ -1680,36 +1655,36 @@ void sub_8010874(void)
ewram16113 = 0;
for (i = 0; i < 11; i++)
gBattleResults.unk36[i] = 0;
- gBattleResults.unk13 = 0;
- gBattleResults.unk0 = 0;
- gBattleResults.unk1 = 0;
+ gBattleResults.BattleTurnCounter = 0;
+ gBattleResults.PlayerFaintCounter = 0;
+ gBattleResults.OpponentFaintCounter = 0;
gBattleResults.unk2 = 0;
gBattleResults.unk3 = 0;
gBattleResults.unk4 = 0;
gBattleResults.unk5_0 = 0;
gBattleResults.unk5_1 = 0;
- gBattleResults.unk20 = 0;
- gBattleResults.unk22 = 0;
- gBattleResults.unk24 = 0;
- gBattleResults.unk6 = 0;
- gBattleResults.unk26 = 0;
- gBattleResults.unk28 = 0;
+ gBattleResults.LastOpponentSpecies = 0;
+ gBattleResults.LastUsedMove = 0;
+ gBattleResults.OpponentMove = 0;
+ gBattleResults.Poke1Species = 0;
+ gBattleResults.OpponentSpecies = 0;
+ gBattleResults.CaughtPoke = 0;
for (i = 0; i < 10; i++)
{
- gBattleResults.unk8[i] = 0;
- gBattleResults.unk14[i] = 0;
- gBattleResults.unk2A[i] = 0;
+ gBattleResults.PokeString1[i] = 0;
+ gBattleResults.PokeString2[i] = 0;
+ gBattleResults.CaughtNick[i] = 0;
}
}
-void sub_8010B88(void)
+void SwitchInClearStructs(void)
{
- struct UnkBattleStruct4 sp0 = gDisableStructs[gActiveBank];
+ struct DisableStruct sp0 = gDisableStructs[gActiveBank];
s32 i;
u8 *ptr;
u32 *ptr2;
- if (gBattleMoves[gCurrentMove].effect != 0x7F)
+ if (gBattleMoves[gCurrentMove].effect != EFFECT_BATON_PASS)
{
for (i = 0; i < 8; i++)
gBattleMons[gActiveBank].statStages[i] = 6;
@@ -1717,27 +1692,27 @@ void sub_8010B88(void)
{
struct UnknownStruct12 *sp20 = &gUnknown_02024AD0[i];
- if ((sp20->unk0 & 0x04000000) && gDisableStructs[i].unk14 == gActiveBank)
+ if ((sp20->unk0 & 0x04000000) && gDisableStructs[i].BankPreventingEscape == gActiveBank)
sp20->unk0 &= ~0x04000000;
- if ((gStatuses3[i] & 0x18) && gDisableStructs[i].unk15 == gActiveBank)
+ if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].BankWithSureHit == gActiveBank)
{
- gStatuses3[i] &= ~0x18;
- gDisableStructs[i].unk15 = 0;
+ gStatuses3[i] &= ~STATUS3_ALWAYS_HITS;
+ gDisableStructs[i].BankWithSureHit = 0;
}
}
}
- if (gBattleMoves[gCurrentMove].effect == 0x7F)
+ if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS)
{
- gBattleMons[gActiveBank].status2 &= 0x15100007;
- gStatuses3[gActiveBank] &= 0x3043F;
+ gBattleMons[gActiveBank].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED);
+ gStatuses3[gActiveBank] &= (STATUS3_LEECHSEED_RECEIVER | STATUS3_LEECHSEED | STATUS3_ALWAYS_HITS | STATUS3_PERISH_SONG | STATUS3_ROOTED | STATUS3_MUDSPORT | STATUS3_WATERSPORT);
for (i = 0; i < gNoOfAllBanks; i++)
{
if (GetBankSide(gActiveBank) != GetBankSide(i)
- && (gStatuses3[i] & 0x18) != 0
- && (gDisableStructs[i].unk15 == gActiveBank))
+ && (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0
+ && (gDisableStructs[i].BankWithSureHit == gActiveBank))
{
- gStatuses3[i] &= ~0x18;
+ gStatuses3[i] &= ~STATUS3_ALWAYS_HITS;
gStatuses3[i] |= 0x10;
}
}
@@ -1763,15 +1738,15 @@ void sub_8010B88(void)
for (i = 0; i < (u32)0x1C; i++)
ptr[i] = 0;
- if (gBattleMoves[gCurrentMove].effect == 0x7F)
+ if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS)
{
- gDisableStructs[gActiveBank].unkA = sp0.unkA;
- gDisableStructs[gActiveBank].unk15 = sp0.unk15;
+ gDisableStructs[gActiveBank].SubstituteHP = sp0.SubstituteHP;
+ gDisableStructs[gActiveBank].BankWithSureHit = sp0.BankWithSureHit;
gDisableStructs[gActiveBank].unkF_0 = sp0.unkF_0;
gDisableStructs[gActiveBank].unkF_4 = sp0.unkF_4;
}
- gDisableStructs[gActiveBank].unk16 = 2;
+ gDisableStructs[gActiveBank].IsFirstTurn = 2;
gLastUsedMove[gActiveBank] = 0;
gMoveHitWith[gActiveBank] = 0;
gUnknown_02024C44[gActiveBank] = 0;
@@ -1806,12 +1781,12 @@ void UndoEffectsAfterFainting(void)
gStatuses3[gActiveBank] = 0;
for (i = 0; i < gNoOfAllBanks; i++)
{
- if ((gBattleMons[i].status2 & 0x4000000) && gDisableStructs[i].unk14 == gActiveBank)
- gBattleMons[i].status2 &= ~0x4000000;
+ if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].BankPreventingEscape == gActiveBank)
+ gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION;
if (gBattleMons[i].status2 & (gBitTable[gActiveBank] << 16))
gBattleMons[i].status2 &= ~(gBitTable[gActiveBank] << 16);
- if ((gBattleMons[i].status2 & 0xE000) && ewram[0x16020 + i] == gActiveBank)
- gBattleMons[i].status2 &= ~0xE000;
+ if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && ewram[0x16020 + i] == gActiveBank)
+ gBattleMons[i].status2 &= ~STATUS2_WRAPPED;
}
gActionSelectionCursor[gActiveBank] = 0;
gMoveSelectionCursor[gActiveBank] = 0;
@@ -1819,27 +1794,27 @@ void UndoEffectsAfterFainting(void)
ptr = (u8 *)&gDisableStructs[gActiveBank];
for (i = 0; i < (u32)0x1C; i++)
ptr[i] = 0;
- gProtectStructs[gActiveBank].unk0_0 = 0;
- gProtectStructs[gActiveBank].unk0_1 = 0;
- gProtectStructs[gActiveBank].unk0_2 = 0;
- gProtectStructs[gActiveBank].unk0_3 = 0;
- gProtectStructs[gActiveBank].unk0_4 = 0;
- gProtectStructs[gActiveBank].unk0_5 = 0;
- gProtectStructs[gActiveBank].unk0_6 = 0;
- gProtectStructs[gActiveBank].unk0_7 = 0;
- gProtectStructs[gActiveBank].unk1_0 = 0;
- gProtectStructs[gActiveBank].unk1_1 = 0;
- gProtectStructs[gActiveBank].unk1_2 = 0;
- gProtectStructs[gActiveBank].unk1_3 = 0;
- gProtectStructs[gActiveBank].unk1_5 = 0;
- gProtectStructs[gActiveBank].unk1_6 = 0;
- gProtectStructs[gActiveBank].unk1_7 = 0;
- gProtectStructs[gActiveBank].unk2_0 = 0;
- gProtectStructs[gActiveBank].unk2_1 = 0;
- gProtectStructs[gActiveBank].unk2_2 = 0;
- gProtectStructs[gActiveBank].unk2_3 = 0;
-
- gDisableStructs[gActiveBank].unk16 = 2;
+ gProtectStructs[gActiveBank].Protected = 0;
+ gProtectStructs[gActiveBank].Endured = 0;
+ gProtectStructs[gActiveBank].OnlyStruggle = 0;
+ gProtectStructs[gActiveBank].HelpingHand = 0;
+ gProtectStructs[gActiveBank].BounceMove = 0;
+ gProtectStructs[gActiveBank].StealMove = 0;
+ gProtectStructs[gActiveBank].Flag0Unknown = 0;
+ gProtectStructs[gActiveBank].PrlzImmobility = 0;
+ gProtectStructs[gActiveBank].ConfusionSelfDmg = 0;
+ gProtectStructs[gActiveBank].NotEffective = 0;
+ gProtectStructs[gActiveBank].ChargingTurn = 0;
+ gProtectStructs[gActiveBank].FleeFlag = 0;
+ gProtectStructs[gActiveBank].UsedImprisionedMove = 0;
+ gProtectStructs[gActiveBank].LoveImmobility = 0;
+ gProtectStructs[gActiveBank].UsedDisabledMove = 0;
+ gProtectStructs[gActiveBank].UsedTauntedMove = 0;
+ gProtectStructs[gActiveBank].Flag2Unknown = 0;
+ gProtectStructs[gActiveBank].FlinchImmobility = 0;
+ gProtectStructs[gActiveBank].NotFirstStrike = 0;
+
+ gDisableStructs[gActiveBank].IsFirstTurn = 2;
gLastUsedMove[gActiveBank] = 0;
gMoveHitWith[gActiveBank] = 0;
gUnknown_02024C44[gActiveBank] = 0;
@@ -1878,7 +1853,7 @@ void bc_8012FAC(void)
{
gBattleCommunication[1]++;
if (gBattleCommunication[1] == gNoOfAllBanks)
- gBattleMainFunc = bc_load_battlefield;
+ gBattleMainFunc = BattlePrepIntroSlide;
else
gBattleCommunication[0] = 0;
}
@@ -1886,7 +1861,7 @@ void bc_8012FAC(void)
}
}
-void bc_load_battlefield(void)
+static void BattlePrepIntroSlide(void)
{
if (gBattleExecBuffer == 0)
{
@@ -2294,7 +2269,7 @@ void BattleTurnPassed(void)
if (sub_80170DC() != 0)
return;
TurnValuesCleanUp(0);
- gHitMarker &= ~0x200;
+ gHitMarker &= ~HITMARKER_NO_ATTACKSTRING;
gHitMarker &= ~0x80000;
gHitMarker &= ~0x400000;
gHitMarker &= ~0x100000;
@@ -2311,8 +2286,8 @@ void BattleTurnPassed(void)
gBattleMainFunc = sub_80138F0;
return;
}
- if (gBattleResults.unk13 < 0xFF)
- gBattleResults.unk13++;
+ if (gBattleResults.BattleTurnCounter < 0xFF)
+ gBattleResults.BattleTurnCounter++;
for (i = 0; i < gNoOfAllBanks; i++)
{
gActionForBanks[i] = 0xFF;
@@ -2331,12 +2306,12 @@ u8 CanRunFromBattle(void)
u8 r6;
s32 i;
- if (gBattleMons[gActiveBank].item == 0xAF)
+ if (gBattleMons[gActiveBank].item == ITEM_ENIGMA_BERRY)
r2 = gEnigmaBerries[gActiveBank].holdEffect;
else
r2 = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item);
gStringBank = gActiveBank;
- if (r2 == 0x25)
+ if (r2 == HOLD_EFFECT_CAN_ALWAYS_RUN)
return 0;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
return 0;
@@ -2346,7 +2321,7 @@ u8 CanRunFromBattle(void)
for (i = 0; i < gNoOfAllBanks; i++)
{
if (r6 != GetBankSide(i)
- && gBattleMons[i].ability == 0x17)
+ && gBattleMons[i].ability == ABILITY_SHADOW_TAG)
{
ewram16003 = i;
gLastUsedAbility = gBattleMons[i].ability;
@@ -2357,7 +2332,7 @@ u8 CanRunFromBattle(void)
&& gBattleMons[gActiveBank].ability != ABILITY_LEVITATE
&& gBattleMons[gActiveBank].type1 != 2
&& gBattleMons[gActiveBank].type2 != 2
- && gBattleMons[i].ability == 0x47)
+ && gBattleMons[i].ability == ABILITY_ARENA_TRAP)
{
ewram16003 = i;
gLastUsedAbility = gBattleMons[i].ability;
@@ -2365,7 +2340,7 @@ u8 CanRunFromBattle(void)
return 2;
}
}
- i = AbilityBattleEffects(15, gActiveBank, 0x2A, 0, 0);
+ i = AbilityBattleEffects(15, gActiveBank, ABILITY_MAGNET_PULL, 0, 0);
if (i != 0 && (gBattleMons[gActiveBank].type1 == 8 || gBattleMons[gActiveBank].type2 == 8))
{
ewram16003 = i - 1;
@@ -2373,7 +2348,7 @@ u8 CanRunFromBattle(void)
gBattleCommunication[5] = 2;
return 2;
}
- if ((gBattleMons[gActiveBank].status2 & 0x0400E000) || (gStatuses3[gActiveBank] & 0x400))
+ if ((gBattleMons[gActiveBank].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) || (gStatuses3[gActiveBank] & STATUS3_ROOTED))
{
gBattleCommunication[5] = 0;
return 1;
diff --git a/src/battle_811DA74.c b/src/battle_811DA74.c
index 42c700844..36a287efc 100644
--- a/src/battle_811DA74.c
+++ b/src/battle_811DA74.c
@@ -1163,7 +1163,7 @@ void sub_811FDF0(void)
void sub_811FDFC(void)
{
- if (mplay_80342A4(gActiveBank) == 0)
+ if (!mplay_80342A4(gActiveBank))
{
u32 r0 = gBattleBufferA[gActiveBank][1]
| (gBattleBufferA[gActiveBank][2] << 8);
@@ -1409,10 +1409,12 @@ void sub_81203FC(void)
void LinkPartnerHandleHitAnimation(void)
{
if (gSprites[gObjectBankIDs[gActiveBank]].invisible == TRUE)
+ {
LinkPartnerBufferExecCompleted();
+ }
else
{
- gDoingBattleAnim = 1;
+ gDoingBattleAnim = TRUE;
gSprites[gObjectBankIDs[gActiveBank]].data1 = 0;
sub_8047858(gActiveBank);
gBattleBankFunc[gActiveBank] = bx_blink_t3;
@@ -1572,9 +1574,8 @@ void sub_81209D8(void)
{
u8 r3 = gBattleBufferA[gActiveBank][1];
u16 r4 = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
- u8 var = gActiveBank;
- if (move_anim_start_t3(var, var, var, r3, r4) != 0)
+ if (move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, r3, r4) != 0)
LinkPartnerBufferExecCompleted();
else
gBattleBankFunc[gActiveBank] = sub_811E3B8;
diff --git a/src/battle_ai.c b/src/battle_ai.c
index fabe0b61d..d262e69c8 100644
--- a/src/battle_ai.c
+++ b/src/battle_ai.c
@@ -15,7 +15,7 @@
extern u16 gBattleTypeFlags;
extern u16 gBattleWeather;
extern u8 gActiveBank;
-extern u8 gBattlePartyID[][2];
+extern u16 gBattlePartyID[MAX_BANKS_BATTLE];
extern u16 gCurrentMove;
extern int gBattleMoveDamage;
extern u8 gBankAttacker;
@@ -23,13 +23,10 @@ extern u8 gBankTarget;
extern u8 gAbsentBankFlags;
extern u8 gBattleMoveFlags;
extern u16 gDynamicBasePower;
-extern u16 gLastUsedMove[];
-extern u32 gUnknown_02024ACC[];
-extern u32 gStatuses3[];
-extern u16 gSideAffecting[];
-extern struct BattlePokemon gBattleMons[];
-extern struct BattlePokemon gUnknown_02024A8C[];
-extern u8 gBattleResults[];
+extern u16 gLastUsedMove[MAX_BANKS_BATTLE];
+extern u32 gStatuses3[MAX_BANKS_BATTLE];
+extern u16 gSideAffecting[2];
+extern struct BattlePokemon gBattleMons[MAX_BANKS_BATTLE];
extern u8 gCritMultiplier;
extern u16 gTrainerBattleOpponent;
extern u8 *BattleAIs[];
@@ -120,7 +117,7 @@ static void BattleAICmd_get_gender(void);
static void BattleAICmd_is_first_turn(void);
static void BattleAICmd_get_stockpile_count(void);
static void BattleAICmd_is_double_battle(void);
-static void BattleAICmd_get_item(void);
+static void BattleAICmd_get_used_item(void);
static void BattleAICmd_get_move_type_from_result(void);
static void BattleAICmd_get_move_power_from_result(void);
static void BattleAICmd_get_move_effect_from_result(void);
@@ -142,100 +139,100 @@ typedef void (*BattleAICmdFunc)(void);
static const BattleAICmdFunc sBattleAICmdTable[] =
{
- BattleAICmd_if_random_less_than,
- BattleAICmd_if_random_greater_than,
- BattleAICmd_if_random_equal,
- BattleAICmd_if_random_not_equal,
- BattleAICmd_score,
- BattleAICmd_if_hp_less_than,
- BattleAICmd_if_hp_more_than,
- BattleAICmd_if_hp_equal,
- BattleAICmd_if_hp_not_equal,
- BattleAICmd_if_status,
- BattleAICmd_if_not_status,
- BattleAICmd_if_status2,
- BattleAICmd_if_not_status2,
- BattleAICmd_if_status3,
- BattleAICmd_if_not_status3,
- BattleAICmd_if_status4,
- BattleAICmd_if_not_status4,
- BattleAICmd_if_less_than,
- BattleAICmd_if_more_than,
- BattleAICmd_if_equal,
- BattleAICmd_if_not_equal,
- BattleAICmd_if_less_than_32,
- BattleAICmd_if_more_than_32,
- BattleAICmd_if_equal_32,
- BattleAICmd_if_not_equal_32,
- BattleAICmd_if_move,
- BattleAICmd_if_not_move,
- BattleAICmd_if_in_bytes,
- BattleAICmd_if_not_in_bytes,
- BattleAICmd_if_in_words,
- BattleAICmd_if_not_in_words,
- BattleAICmd_if_user_can_damage,
- BattleAICmd_if_user_cant_damage,
- BattleAICmd_get_turn_count,
- BattleAICmd_get_type,
- BattleAICmd_get_move_power,
- BattleAICmd_is_most_powerful_move,
- BattleAICmd_get_move,
- BattleAICmd_if_arg_equal,
- BattleAICmd_if_arg_not_equal,
- BattleAICmd_if_would_go_first,
- BattleAICmd_if_would_not_go_first,
- BattleAICmd_nullsub_2A,
- BattleAICmd_nullsub_2B,
- BattleAICmd_count_alive_pokemon,
- BattleAICmd_get_considered_move,
- BattleAICmd_get_considered_move_effect,
- BattleAICmd_get_ability,
- BattleAICmd_get_highest_possible_damage,
- BattleAICmd_if_damage_bonus,
- BattleAICmd_nullsub_32,
- BattleAICmd_nullsub_33,
- BattleAICmd_if_status_in_party,
- BattleAICmd_if_status_not_in_party,
- BattleAICmd_get_weather,
- BattleAICmd_if_effect,
- BattleAICmd_if_not_effect,
- BattleAICmd_if_stat_level_less_than,
- BattleAICmd_if_stat_level_more_than,
- BattleAICmd_if_stat_level_equal,
- BattleAICmd_if_stat_level_not_equal,
- BattleAICmd_if_can_faint,
- BattleAICmd_if_cant_faint,
- BattleAICmd_if_has_move,
- BattleAICmd_if_dont_have_move,
- BattleAICmd_if_move_effect,
- BattleAICmd_if_not_move_effect,
- BattleAICmd_if_last_move_did_damage,
- BattleAICmd_if_encored,
- BattleAICmd_flee,
- BattleAICmd_if_random_100,
- BattleAICmd_watch,
- BattleAICmd_get_hold_effect,
- BattleAICmd_get_gender,
- BattleAICmd_is_first_turn,
- BattleAICmd_get_stockpile_count,
- BattleAICmd_is_double_battle,
- BattleAICmd_get_item,
- BattleAICmd_get_move_type_from_result,
- BattleAICmd_get_move_power_from_result,
- BattleAICmd_get_move_effect_from_result,
- BattleAICmd_get_protect_count,
- BattleAICmd_nullsub_52,
- BattleAICmd_nullsub_53,
- BattleAICmd_nullsub_54,
- BattleAICmd_nullsub_55,
- BattleAICmd_nullsub_56,
- BattleAICmd_nullsub_57,
- BattleAICmd_call,
- BattleAICmd_jump,
- BattleAICmd_end,
- BattleAICmd_if_level_compare,
- BattleAICmd_if_taunted,
- BattleAICmd_if_not_taunted,
+ BattleAICmd_if_random_less_than, // 0x0
+ BattleAICmd_if_random_greater_than, // 0x1
+ BattleAICmd_if_random_equal, // 0x2
+ BattleAICmd_if_random_not_equal, // 0x3
+ BattleAICmd_score, // 0x4
+ BattleAICmd_if_hp_less_than, // 0x5
+ BattleAICmd_if_hp_more_than, // 0x6
+ BattleAICmd_if_hp_equal, // 0x7
+ BattleAICmd_if_hp_not_equal, // 0x8
+ BattleAICmd_if_status, // 0x9
+ BattleAICmd_if_not_status, // 0xA
+ BattleAICmd_if_status2, // 0xB
+ BattleAICmd_if_not_status2, // 0xC
+ BattleAICmd_if_status3, // 0xD
+ BattleAICmd_if_not_status3, // 0xE
+ BattleAICmd_if_status4, // 0xF
+ BattleAICmd_if_not_status4, // 0x10
+ BattleAICmd_if_less_than, // 0x11
+ BattleAICmd_if_more_than, // 0x12
+ BattleAICmd_if_equal, // 0x13
+ BattleAICmd_if_not_equal, // 0x14
+ BattleAICmd_if_less_than_32, // 0x15
+ BattleAICmd_if_more_than_32, // 0x16
+ BattleAICmd_if_equal_32, // 0x17
+ BattleAICmd_if_not_equal_32, // 0x18
+ BattleAICmd_if_move, // 0x19
+ BattleAICmd_if_not_move, // 0x1A
+ BattleAICmd_if_in_bytes, // 0x1B
+ BattleAICmd_if_not_in_bytes, // 0x1C
+ BattleAICmd_if_in_words, // 0x1D
+ BattleAICmd_if_not_in_words, // 0x1E
+ BattleAICmd_if_user_can_damage, // 0x1F
+ BattleAICmd_if_user_cant_damage, // 0x20
+ BattleAICmd_get_turn_count, // 0x21
+ BattleAICmd_get_type, // 0x22
+ BattleAICmd_get_move_power, // 0x23
+ BattleAICmd_is_most_powerful_move, // 0x24
+ BattleAICmd_get_move, // 0x25
+ BattleAICmd_if_arg_equal, // 0x26
+ BattleAICmd_if_arg_not_equal, // 0x27
+ BattleAICmd_if_would_go_first, // 0x28
+ BattleAICmd_if_would_not_go_first, // 0x29
+ BattleAICmd_nullsub_2A, // 0x2A
+ BattleAICmd_nullsub_2B, // 0x2B
+ BattleAICmd_count_alive_pokemon, // 0x2C
+ BattleAICmd_get_considered_move, // 0x2D
+ BattleAICmd_get_considered_move_effect, // 0x2E
+ BattleAICmd_get_ability, // 0x2F
+ BattleAICmd_get_highest_possible_damage, // 0x30
+ BattleAICmd_if_damage_bonus, // 0x31
+ BattleAICmd_nullsub_32, // 0x32
+ BattleAICmd_nullsub_33, // 0x33
+ BattleAICmd_if_status_in_party, // 0x34
+ BattleAICmd_if_status_not_in_party, // 0x35
+ BattleAICmd_get_weather, // 0x36
+ BattleAICmd_if_effect, // 0x37
+ BattleAICmd_if_not_effect, // 0x38
+ BattleAICmd_if_stat_level_less_than, // 0x39
+ BattleAICmd_if_stat_level_more_than, // 0x3A
+ BattleAICmd_if_stat_level_equal, // 0x3B
+ BattleAICmd_if_stat_level_not_equal, // 0x3C
+ BattleAICmd_if_can_faint, // 0x3D
+ BattleAICmd_if_cant_faint, // 0x3E
+ BattleAICmd_if_has_move, // 0x3F
+ BattleAICmd_if_dont_have_move, // 0x40
+ BattleAICmd_if_move_effect, // 0x41
+ BattleAICmd_if_not_move_effect, // 0x42
+ BattleAICmd_if_last_move_did_damage, // 0x43
+ BattleAICmd_if_encored, // 0x44
+ BattleAICmd_flee, // 0x45
+ BattleAICmd_if_random_100, // 0x46
+ BattleAICmd_watch, // 0x47
+ BattleAICmd_get_hold_effect, // 0x48
+ BattleAICmd_get_gender, // 0x49
+ BattleAICmd_is_first_turn, // 0x4A
+ BattleAICmd_get_stockpile_count, // 0x4B
+ BattleAICmd_is_double_battle, // 0x4C
+ BattleAICmd_get_used_item, // 0x4D
+ BattleAICmd_get_move_type_from_result, // 0x4E
+ BattleAICmd_get_move_power_from_result, // 0x4F
+ BattleAICmd_get_move_effect_from_result, // 0x50
+ BattleAICmd_get_protect_count, // 0x51
+ BattleAICmd_nullsub_52, // 0x52
+ BattleAICmd_nullsub_53, // 0x53
+ BattleAICmd_nullsub_54, // 0x54
+ BattleAICmd_nullsub_55, // 0x55
+ BattleAICmd_nullsub_56, // 0x56
+ BattleAICmd_nullsub_57, // 0x57
+ BattleAICmd_call, // 0x58
+ BattleAICmd_jump, // 0x59
+ BattleAICmd_end, // 0x5A
+ BattleAICmd_if_level_compare, // 0x5B
+ BattleAICmd_if_taunted, // 0x5C
+ BattleAICmd_if_not_taunted, // 0x5D
};
#ifdef NONMATCHING
@@ -449,13 +446,13 @@ void unref_sub_81074A0(u8 a)
UNK_2016A00_STRUCT->movesUsed[a / 2][i] = 0;
}
-void sub_81074C4(u8 a, u8 b)
+void RecordAbilityBattle(u8 a, u8 b)
{
if (GetBankSide(a) == 0)
UNK_2016A00_STRUCT->unk20[GetBankIdentity(a) & 1] = b;
}
-void sub_81074F8(u8 a, u8 b)
+void RecordItemBattle(u8 a, u8 b)
{
if (GetBankSide(a) == 0)
UNK_2016A00_STRUCT->unk22[GetBankIdentity(a) & 1] = b;
@@ -899,7 +896,7 @@ static void BattleAICmd_if_user_cant_damage(void)
static void BattleAICmd_get_turn_count(void)
{
- AI_THINKING_STRUCT->funcResult = gBattleResults[19];
+ AI_THINKING_STRUCT->funcResult = gBattleResults.BattleTurnCounter;
gAIScriptPtr += 1;
}
@@ -946,8 +943,8 @@ static void BattleAICmd_is_most_powerful_move(void)
&& sDiscouragedPowerfulMoveEffects[i] == 0xFFFF)
{
gDynamicBasePower = 0;
- unk_2000000[0x1601C] = 0; // why is this a manual array?
- unk_2000000[0x1601F] = 1;
+ ewram[0x1601C] = 0; // why is this a manual array?
+ ewram[0x1601F] = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
@@ -965,8 +962,8 @@ static void BattleAICmd_is_most_powerful_move(void)
&& gBattleMoves[gBattleMons[gBankAttacker].moves[i]].power > 1)
{
gCurrentMove = gBattleMons[gBankAttacker].moves[i];
- sub_801CAF8(gBankAttacker, gBankTarget);
- move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget);
+ AI_CalcDmg(gBankAttacker, gBankTarget);
+ TypeCalc(gCurrentMove, gBankAttacker, gBankTarget);
damages[i] = (gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[i]) / 100;
if (damages[i] == 0) // moves always do at least 1 damage.
@@ -1135,11 +1132,11 @@ _081082BA:\n\
ldrb r0, [r7]\n\
ldr r4, _08108354 @ =gBankTarget\n\
ldrb r1, [r4]\n\
- bl sub_801CAF8\n\
+ bl AI_CalcDmg\n\
ldrh r0, [r5]\n\
ldrb r1, [r7]\n\
ldrb r2, [r4]\n\
- bl move_effectiveness_something\n\
+ bl TypeCalc\n\
mov r4, sp\n\
add r4, r8\n\
ldr r2, _08108358 @ =gBattleMoveDamage\n\
@@ -1312,14 +1309,14 @@ static void BattleAICmd_count_alive_pokemon(void)
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
u32 status;
- var = gBattlePartyID[index][0];
+ var = gBattlePartyID[index];
status = GetBankIdentity(index) ^ 2;
- var2 = gBattlePartyID[GetBankByPlayerAI(status)][0];
+ var2 = gBattlePartyID[GetBankByPlayerAI(status)];
}
else
{
- var = gBattlePartyID[index][0];
- var2 = gBattlePartyID[index][0];
+ var = gBattlePartyID[index];
+ var2 = gBattlePartyID[index];
}
for (i = 0; i < 6; i++)
@@ -1415,8 +1412,8 @@ static void BattleAICmd_get_highest_possible_damage(void)
s32 i;
gDynamicBasePower = 0;
- BATTLE_STRUCT->unk.unk1 = 0;
- BATTLE_STRUCT->unk.unk4 = 1;
+ BATTLE_STRUCT->DynamicMoveType = 0;
+ BATTLE_STRUCT->DmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
AI_THINKING_STRUCT->funcResult = 0;
@@ -1428,7 +1425,7 @@ static void BattleAICmd_get_highest_possible_damage(void)
if (gCurrentMove)
{
- move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget);
+ TypeCalc(gCurrentMove, gBankAttacker, gBankTarget);
// reduce by 1/3.
if (gBattleMoveDamage == 120)
@@ -1455,15 +1452,15 @@ static void BattleAICmd_if_damage_bonus(void)
u8 damageVar;
gDynamicBasePower = 0;
- BATTLE_STRUCT->unk.unk1 = 0;
- BATTLE_STRUCT->unk.unk4 = 1;
+ BATTLE_STRUCT->DynamicMoveType = 0;
+ BATTLE_STRUCT->DmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
gBattleMoveDamage = 40;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
- move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget);
+ TypeCalc(gCurrentMove, gBankAttacker, gBankTarget);
if (gBattleMoveDamage == 120)
gBattleMoveDamage = 80;
@@ -1565,13 +1562,13 @@ static void BattleAICmd_if_status_not_in_party(void)
static void BattleAICmd_get_weather(void)
{
- if (gBattleWeather & 7)
+ if (gBattleWeather & WEATHER_RAINY)
AI_THINKING_STRUCT->funcResult = WEATHER_RAIN;
- if (gBattleWeather & 0x18)
+ if (gBattleWeather & WEATHER_SANDSTORMY)
AI_THINKING_STRUCT->funcResult = WEATHER_SANDSTORM;
- if (gBattleWeather & 0x60)
+ if (gBattleWeather & WEATHER_SUNNY)
AI_THINKING_STRUCT->funcResult = WEATHER_SUN;
- if (gBattleWeather & 0x80)
+ if (gBattleWeather & weather_hail)
AI_THINKING_STRUCT->funcResult = WEATHER_HAIL;
gAIScriptPtr += 1;
@@ -1662,13 +1659,13 @@ static void BattleAICmd_if_can_faint(void)
}
gDynamicBasePower = 0;
- BATTLE_STRUCT->unk.unk1 = 0;
- BATTLE_STRUCT->unk.unk4 = 1;
+ BATTLE_STRUCT->DynamicMoveType = 0;
+ BATTLE_STRUCT->DmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
- sub_801CAF8(gBankAttacker, gBankTarget);
- move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget);
+ AI_CalcDmg(gBankAttacker, gBankTarget);
+ TypeCalc(gCurrentMove, gBankAttacker, gBankTarget);
gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100;
@@ -1691,13 +1688,13 @@ static void BattleAICmd_if_cant_faint(void)
}
gDynamicBasePower = 0;
- BATTLE_STRUCT->unk.unk1 = 0;
- BATTLE_STRUCT->unk.unk4 = 1;
+ BATTLE_STRUCT->DynamicMoveType = 0;
+ BATTLE_STRUCT->DmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
- sub_801CAF8(gBankAttacker, gBankTarget);
- move_effectiveness_something(gCurrentMove, gBankAttacker, gBankTarget);
+ AI_CalcDmg(gBankAttacker, gBankTarget);
+ TypeCalc(gCurrentMove, gBankAttacker, gBankTarget);
gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100;
@@ -1846,7 +1843,7 @@ static void BattleAICmd_if_last_move_did_damage(void)
if (gAIScriptPtr[2] == 0)
{
- if (gDisableStructs[index].unk4 == 0)
+ if (gDisableStructs[index].DisabledMove == 0)
{
gAIScriptPtr += 7;
return;
@@ -1859,7 +1856,7 @@ static void BattleAICmd_if_last_move_did_damage(void)
gAIScriptPtr += 7;
return;
}
- else if (gDisableStructs[index].unk6 != 0)
+ else if (gDisableStructs[index].EncoredMove != 0)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
return;
@@ -1872,7 +1869,7 @@ static void BattleAICmd_if_encored(void)
switch (gAIScriptPtr[1])
{
case 0: // _08109348
- if (gDisableStructs[gActiveBank].unk4 == AI_THINKING_STRUCT->moveConsidered)
+ if (gDisableStructs[gActiveBank].DisabledMove == AI_THINKING_STRUCT->moveConsidered)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
@@ -1880,7 +1877,7 @@ static void BattleAICmd_if_encored(void)
gAIScriptPtr += 6;
return;
case 1: // _08109370
- if (gDisableStructs[gActiveBank].unk6 == AI_THINKING_STRUCT->moveConsidered)
+ if (gDisableStructs[gActiveBank].EncoredMove == AI_THINKING_STRUCT->moveConsidered)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
@@ -1957,7 +1954,7 @@ static void BattleAICmd_is_first_turn(void)
else
index = gBankTarget;
- AI_THINKING_STRUCT->funcResult = gDisableStructs[index].unk16;
+ AI_THINKING_STRUCT->funcResult = gDisableStructs[index].IsFirstTurn;
gAIScriptPtr += 2;
}
@@ -1971,7 +1968,7 @@ static void BattleAICmd_get_stockpile_count(void)
else
index = gBankTarget;
- AI_THINKING_STRUCT->funcResult = gDisableStructs[index].unk9;
+ AI_THINKING_STRUCT->funcResult = gDisableStructs[index].StockpileCounter;
gAIScriptPtr += 2;
}
@@ -1983,7 +1980,7 @@ static void BattleAICmd_is_double_battle(void)
gAIScriptPtr += 1;
}
-static void BattleAICmd_get_item(void)
+static void BattleAICmd_get_used_item(void)
{
u8 index;
@@ -1993,7 +1990,7 @@ static void BattleAICmd_get_item(void)
index = gBankTarget;
// this hack and a half matches. whatever. i dont care. someone else fix this mess later. PS: still cant fix this.
- AI_THINKING_STRUCT->funcResult = ewram[0x160CC + (index * 2)];
+ AI_THINKING_STRUCT->funcResult = ewram[MULTI_DIM_ARR(index, B_16, 0x160CC)];
gAIScriptPtr += 2;
}
@@ -2028,7 +2025,7 @@ static void BattleAICmd_get_protect_count(void)
else
index = gBankTarget;
- AI_THINKING_STRUCT->funcResult = gDisableStructs[index].unk8;
+ AI_THINKING_STRUCT->funcResult = gDisableStructs[index].ProtectUses;
gAIScriptPtr += 2;
}
diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c
index ae60e30fe..0f2605e5b 100644
--- a/src/calculate_base_damage.c
+++ b/src/calculate_base_damage.c
@@ -35,7 +35,11 @@ extern struct PokemonStorage gPokemonStorage;
extern u8 gBadEggNickname[];
extern struct SpriteTemplate gSpriteTemplate_8208288[];
-extern u8 gSecretBaseTrainerClasses[];
+extern u8 gTrainerClassToPicIndex[];
+extern u8 gTrainerClassToNameIndex[];
+extern u8 gUnknown_08208238[];
+extern u8 gUnknown_0820823C[];
+extern u8 gStatStageRatios[];
extern u8 gHoldEffectToType[][2];
#define APPLY_STAT_MOD(var, mon, stat, statIndex) \
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index dc5ee6afb..d94c97ff3 100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -3104,13 +3104,13 @@ void CameraObjectReset1(void)
}
}
-void CameraObjectSetFollowedObjectId(u8 state)
+void CameraObjectSetFollowedObjectId(u8 spriteId)
{
struct Sprite *cameraSprite = FindCameraObject();
if (cameraSprite != NULL)
{
- cameraSprite->data0 = state;
+ cameraSprite->data0 = spriteId;
CameraObjectReset1();
}
}
diff --git a/src/field_special_scene.c b/src/field_special_scene.c
index c88ac8f65..82a7a13e3 100644
--- a/src/field_special_scene.c
+++ b/src/field_special_scene.c
@@ -229,7 +229,7 @@ void ExecuteTruckSequence(void)
CreateTask(Task_HandleTruckSequence, 0xA);
}
-void EndTruckSequence(void)
+void EndTruckSequence(u8 taskId)
{
if (!FuncIsActiveTask(Task_HandleTruckSequence))
{
diff --git a/src/field_specials.c b/src/field_specials.c
index 2cb2cf795..2b505bbfe 100644..100755
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -1,7 +1,14 @@
#include "global.h"
#include "field_specials.h"
#include "diploma.h"
+#include "fieldmap.h"
#include "event_data.h"
+#include "battle_tower.h"
+#include "field_map_obj.h"
+#include "region_map.h"
+#include "field_region_map.h"
+#include "field_message_box.h"
+#include "field_camera.h"
#include "field_player_avatar.h"
#include "main.h"
#include "map_constants.h"
@@ -10,21 +17,30 @@
#include "songs.h"
#include "string_util.h"
#include "strings.h"
+#include "pokeblock.h"
+#include "species.h"
+#include "abilities.h"
+#include "moves.h"
#include "text.h"
#include "wallclock.h"
+#include "tv.h"
+#include "rtc.h"
+#include "link.h"
+#include "songs.h"
+#include "sound.h"
+#include "menu.h"
+#include "starter_choose.h"
+#include "menu_helpers.h"
+#include "battle_tower.h"
+#include "field_weather.h"
+#include "pokemon_summary_screen.h"
+#include "rng.h"
#if ENGLISH
#define CHAR_DECIMAL_SEPARATOR CHAR_PERIOD
#elif GERMAN
#define CHAR_DECIMAL_SEPARATOR CHAR_COMMA
#endif
-
-extern struct WarpData gUnknown_020297F0;
-extern u16 gScriptResult;
-extern u8 gUnknown_02039250;
-extern u8 gUnknown_02039251;
-extern u32 gUnknown_02039254;
-
static void RecordCyclingRoadResults(u32, u8);
void sub_810D6A4(void) {
@@ -144,12 +160,9 @@ void FinishCyclingRoadChallenge(void) {
}
static void RecordCyclingRoadResults(u32 arg0, u8 arg1) {
- u16 high, low;
- u32 record;
-
- high = VarGet(0x4028);
- low = VarGet(0x4029);
- record = high + (low << 16);
+ u16 high = VarGet(0x4028);
+ u16 low = VarGet(0x4029);
+ u32 record = high + (low << 16);
if (record > arg0 || record == 0)
{
@@ -160,12 +173,9 @@ static void RecordCyclingRoadResults(u32 arg0, u8 arg1) {
}
u16 GetRecordedCyclingRoadResults(void) {
- u16 high, low;
- u32 record;
-
- high = VarGet(0x4028);
- low = VarGet(0x4029);
- record = high + (low << 16);
+ u16 high = VarGet(0x4028);
+ u16 low = VarGet(0x4029);
+ u32 record = high + (low << 16);
if (record == 0)
{
@@ -188,3 +198,2168 @@ void UpdateCyclingRoadState(void) {
sav1_set_battle_music_maybe(SE_STOP);
}
}
+
+void SetSSTidalFlag(void)
+{
+ FlagSet(SYS_CRUISE_MODE);
+ *GetVarPointer(VAR_CRUISE_STEP_COUNT) = 0;
+}
+
+void ResetSSTidalFlag(void)
+{
+ FlagReset(SYS_CRUISE_MODE);
+}
+
+bool32 CountSSTidalStep(u16 delta)
+{
+ if (!FlagGet(SYS_CRUISE_MODE) || (*GetVarPointer(VAR_CRUISE_STEP_COUNT) += delta) <= 0xcc)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y)
+{
+ u16 *varCruiseStepCount = GetVarPointer(VAR_CRUISE_STEP_COUNT);
+ switch (*GetVarPointer(VAR_PORTHOLE))
+ {
+ case 1:
+ case 8:
+ return 1;
+ case 3:
+ case 9:
+ return 4;
+ case 4:
+ case 5:
+ return 2;
+ case 6:
+ case 10:
+ return 3;
+ case 2:
+ if (*varCruiseStepCount < 60)
+ {
+ *mapNum = MAP_ID_ROUTE134;
+ *x = *varCruiseStepCount + 19;
+ }
+ else if (*varCruiseStepCount < 140)
+ {
+ *mapNum = MAP_ID_ROUTE133;
+ *x = *varCruiseStepCount - 60;
+ }
+ else
+ {
+ *mapNum = MAP_ID_ROUTE132;
+ *x = *varCruiseStepCount - 140;
+ }
+ break;
+ case 7:
+ if (*varCruiseStepCount < 66)
+ {
+ *mapNum = MAP_ID_ROUTE132;
+ *x = 65 - *varCruiseStepCount;
+ }
+ else if (*varCruiseStepCount < 146) {
+ *mapNum = MAP_ID_ROUTE133;
+ *x = 145 - *varCruiseStepCount;
+ }
+ else
+ {
+ *mapNum = MAP_ID_ROUTE134;
+ *x = 224 - *varCruiseStepCount;
+ }
+ break;
+ }
+ *mapGroup = MAP_GROUP_ROUTE132;
+ *y = 20;
+ return 0;
+}
+
+u8 GetLinkPartnerNames(void)
+{
+ u8 i;
+ u8 j = 0;
+ u8 myLinkPlayerNumber = sub_8008218();
+ u8 nLinkPlayers = sub_800820C();
+ for (i=0; i<nLinkPlayers; i++)
+ {
+ if (myLinkPlayerNumber != i)
+ {
+ StringCopy(gUnknown_083D1464[j], gLinkPlayers[i].name);
+ j++;
+ }
+ }
+ return nLinkPlayers;
+}
+
+const u8 gUnknown_083F8358[4] = {7, 9, 8, 10};
+const s8 gUnknown_083F835C[4][2] = {
+ { 0, 1},
+ { 1, 0},
+ { 0, -1},
+ {-1, 0}
+};
+
+void SpawnBerryBlenderLinkPlayerSprites(void)
+{
+ u8 unknown_083F8358[4];
+ u8 unknown_083F835C[4][2];
+ u8 myLinkPlayerNumber;
+ u8 playerDirectionLowerNybble;
+ u8 rivalAvatarGraphicsId;
+ u8 i;
+ u8 j = 0;
+ s16 x = 0;
+ s16 y = 0;
+
+ memcpy(unknown_083F8358, gUnknown_083F8358, sizeof gUnknown_083F8358);
+ memcpy(unknown_083F835C, gUnknown_083F835C, sizeof gUnknown_083F835C);
+ myLinkPlayerNumber = sub_8008218();
+ playerDirectionLowerNybble = player_get_direction_lower_nybble();
+ switch (playerDirectionLowerNybble)
+ {
+ case DIR_WEST:
+ j = 2;
+ x = gSaveBlock1.pos.x - 1;
+ y = gSaveBlock1.pos.y;
+ break;
+ case DIR_NORTH:
+ j = 1;
+ x = gSaveBlock1.pos.x;
+ y = gSaveBlock1.pos.y - 1;
+ break;
+ case DIR_EAST:
+ x = gSaveBlock1.pos.x + 1;
+ y = gSaveBlock1.pos.y;
+ break;
+ case DIR_SOUTH:
+ j = 3;
+ x = gSaveBlock1.pos.x;
+ y = gSaveBlock1.pos.y + 1;
+ }
+ for (i=0; i<gSpecialVar_0x8004; i++)
+ {
+ if (myLinkPlayerNumber != i)
+ {
+ rivalAvatarGraphicsId = GetRivalAvatarGraphicsIdByStateIdAndGender(0, gLinkPlayers[i].gender);
+ SpawnSpecialFieldObjectParametrized(rivalAvatarGraphicsId, unknown_083F8358[j], 0xf0 - i, (s8)unknown_083F835C[j][0] + x + 7, (s8)unknown_083F835C[j][1] + y + 7, 0);
+ j++;
+ if (j == 4)
+ {
+ j = 0;
+ }
+ }
+ }
+}
+
+struct Coords8 {
+ u8 x;
+ u8 y;
+};
+
+const struct Coords8 gUnknown_083F8364[3] = {
+ { 7, 16},
+ {15, 18},
+ {11, 22}
+};
+
+void MauvilleGymSpecial1(void)
+{
+ u8 i;
+ for (i=0; i<3; i++)
+ {
+ if (i == gSpecialVar_0x8004)
+ {
+ MapGridSetMetatileIdAt(gUnknown_083F8364[i].x, gUnknown_083F8364[i].y, 0x206);
+ }
+ else
+ {
+ MapGridSetMetatileIdAt(gUnknown_083F8364[i].x, gUnknown_083F8364[i].y, 0x205);
+ }
+ }
+}
+
+void MauvilleGymSpecial2(void)
+{
+ int x, y;
+ for (y=12; y<24; y++)
+ {
+ for (x=7; x<16; x++)
+ {
+ switch (MapGridGetMetatileIdAt(x, y))
+ {
+ case 0x220:
+ MapGridSetMetatileIdAt(x, y, 0x230);
+ break;
+ case 0x221:
+ MapGridSetMetatileIdAt(x, y, 0x231);
+ break;
+ case 0x228:
+ MapGridSetMetatileIdAt(x, y, 0x238);
+ break;
+ case 0x229:
+ MapGridSetMetatileIdAt(x, y, 0x239);
+ break;
+ case 0x230:
+ MapGridSetMetatileIdAt(x, y, 0x220);
+ break;
+ case 0x231:
+ MapGridSetMetatileIdAt(x, y, 0x221);
+ break;
+ case 0x238:
+ MapGridSetMetatileIdAt(x, y, 0xe28);
+ break;
+ case 0x239:
+ MapGridSetMetatileIdAt(x, y, 0xe29);
+ break;
+ case 0x222:
+ MapGridSetMetatileIdAt(x, y, 0x232);
+ break;
+ case 0x223:
+ MapGridSetMetatileIdAt(x, y, 0x233);
+ break;
+ case 0x22a:
+ MapGridSetMetatileIdAt(x, y, 0x23a);
+ break;
+ case 0x22b:
+ MapGridSetMetatileIdAt(x, y, 0x23b);
+ break;
+ case 0x232:
+ MapGridSetMetatileIdAt(x, y, 0x222);
+ break;
+ case 0x233:
+ MapGridSetMetatileIdAt(x, y, 0x223);
+ break;
+ case 0x23a:
+ MapGridSetMetatileIdAt(x, y, 0xe2a);
+ break;
+ case 0x23b:
+ MapGridSetMetatileIdAt(x, y, 0xe2b);
+ break;
+ case 0x240:
+ MapGridSetMetatileIdAt(x, y, 0xe42);
+ break;
+ case 0x248:
+ MapGridSetMetatileIdAt(x, y, 0x21a);
+ break;
+ case 0x241:
+ MapGridSetMetatileIdAt(x, y, 0xe43);
+ break;
+ case 0x249:
+ MapGridSetMetatileIdAt(x, y, 0x21a);
+ break;
+ case 0x242:
+ MapGridSetMetatileIdAt(x, y, 0xe40);
+ break;
+ case 0x21a:
+ if (MapGridGetMetatileIdAt(x, y - 1) == 0x240)
+ {
+ MapGridSetMetatileIdAt(x, y, 0xe48);
+ }
+ else
+ {
+ MapGridSetMetatileIdAt(x, y, 0xe49);
+ }
+ break;
+ case 0x243:
+ MapGridSetMetatileIdAt(x, y, 0xe41);
+ break;
+ case 0x251:
+ MapGridSetMetatileIdAt(x, y, 0xe50);
+ break;
+ case 0x250:
+ MapGridSetMetatileIdAt(x, y, 0x251);
+ break;
+ }
+ }
+ }
+}
+
+void MauvilleGymSpecial3(void)
+{
+ int i, x, y;
+ const struct Coords8 *switchCoords = gUnknown_083F8364;
+ for (i=ARRAY_COUNT(gUnknown_083F8364)-1; i>=0; i--)
+ {
+ MapGridSetMetatileIdAt(switchCoords->x, switchCoords->y, 0x206);
+ switchCoords++;
+ }
+ for (y=12; y<24; y++)
+ {
+ for (x=7; x<16; x++)
+ {
+ switch (MapGridGetMetatileIdAt(x, y))
+ {
+ case 0x220:
+ MapGridSetMetatileIdAt(x, y, 0x230);
+ break;
+ case 0x221:
+ MapGridSetMetatileIdAt(x, y, 0x231);
+ break;
+ case 0x228:
+ MapGridSetMetatileIdAt(x, y, 0x238);
+ break;
+ case 0x229:
+ MapGridSetMetatileIdAt(x, y, 0x239);
+ break;
+ case 0x222:
+ MapGridSetMetatileIdAt(x, y, 0x232);
+ break;
+ case 0x223:
+ MapGridSetMetatileIdAt(x, y, 0x233);
+ break;
+ case 0x22a:
+ MapGridSetMetatileIdAt(x, y, 0x23a);
+ break;
+ case 0x22b:
+ MapGridSetMetatileIdAt(x, y, 0x23b);
+ break;
+ case 0x240:
+ MapGridSetMetatileIdAt(x, y, 0xe42);
+ break;
+ case 0x241:
+ MapGridSetMetatileIdAt(x, y, 0xe43);
+ break;
+ case 0x248:
+ case 0x249:
+ MapGridSetMetatileIdAt(x, y, 0x21a);
+ break;
+ case 0x250:
+ MapGridSetMetatileIdAt(x, y, 0x251);
+ break;
+ }
+ }
+ }
+}
+
+static void Task_PetalburgGym(u8);
+static void PetalburgGymFunc(u8, u16);
+const u8 gUnknown_083F8370[] = {0, 1, 1, 1, 1};
+const u16 gUnknown_083F8376[] = {0x218, 0x219, 0x21a, 0x21b, 0x21c};
+
+void PetalburgGymSpecial1(void)
+{
+ gUnknown_02039258 = 0;
+ gUnknown_02039259 = 0;
+ PlaySE(SE_KI_GASYAN);
+ CreateTask(Task_PetalburgGym, 8);
+}
+
+static void Task_PetalburgGym(u8 taskId)
+{
+ if (gUnknown_083F8370[gUnknown_02039259] == gUnknown_02039258)
+ {
+ PetalburgGymFunc(gSpecialVar_0x8004, gUnknown_083F8376[gUnknown_02039259]);
+ gUnknown_02039258 = 0;
+ if ((++gUnknown_02039259) == 5)
+ {
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+ }
+ else
+ {
+ gUnknown_02039258++;
+ }
+}
+
+static void PetalburgGymFunc(u8 a0, u16 a1)
+{
+ u16 x[4];
+ u16 y[4];
+ u8 i;
+ u8 nDoors = 0;
+ switch (a0)
+ {
+ case 1:
+ nDoors = 2;
+ x[0] = 1;
+ x[1] = 7;
+ y[0] = 0x68;
+ y[1] = 0x68;
+ break;
+ case 2:
+ nDoors = 2;
+ x[0] = 1;
+ x[1] = 7;
+ y[0] = 0x4e;
+ y[1] = 0x4e;
+ break;
+ case 3:
+ nDoors = 2;
+ x[0] = 1;
+ x[1] = 7;
+ y[0] = 0x5b;
+ y[1] = 0x5b;
+ break;
+ case 4:
+ nDoors = 1;
+ x[0] = 7;
+ y[0] = 0x27;
+ break;
+ case 5:
+ nDoors = 2;
+ x[0] = 1;
+ x[1] = 7;
+ y[0] = 0x34;
+ y[1] = 0x34;
+ break;
+ case 6:
+ nDoors = 1;
+ x[0] = 1;
+ y[0] = 0x41;
+ break;
+ case 7:
+ nDoors = 1;
+ x[0] = 7;
+ y[0] = 0xd;
+ break;
+ case 8:
+ nDoors = 1;
+ x[0] = 1;
+ y[0] = 0x1a;
+ break;
+ }
+ for (i=0; i<nDoors; i++)
+ {
+ MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | 0xc00);
+ MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | 0xc00);
+ }
+ DrawWholeMapView();
+}
+
+void PetalburgGymSpecial2(void)
+{
+ PetalburgGymFunc(gSpecialVar_0x8004, gUnknown_083F8376[4]);
+}
+
+void ShowFieldMessageStringVar4(void)
+{
+ ShowFieldMessage(gStringVar4);
+}
+
+void StorePlayerCoordsInVars(void)
+{
+ gSpecialVar_0x8004 = gSaveBlock1.pos.x;
+ gSpecialVar_0x8005 = gSaveBlock1.pos.y;
+}
+
+u8 GetPlayerTrainerIdOnesDigit(void)
+{
+ return (u16)((gSaveBlock2.playerTrainerId[1] << 8) | gSaveBlock2.playerTrainerId[0]) % 10;
+}
+
+void GetPlayerBigGuyGirlString(void)
+{
+ if (gSaveBlock2.playerGender == MALE)
+ {
+ StringCopy(gStringVar1, gOtherText_BigGuy);
+ }
+ else
+ {
+ StringCopy(gStringVar1, gOtherText_BigGirl);
+ }
+}
+
+void GetRivalSonDaughterString(void)
+{
+ if (gSaveBlock2.playerGender == MALE)
+ {
+ StringCopy(gStringVar1, gOtherText_Daughter);
+ }
+ else
+ {
+ StringCopy(gStringVar1, gOtherText_Son);
+ }
+}
+
+u8 sub_810E300(void)
+{
+ return gBattleOutcome;
+}
+
+void CableCarWarp(void)
+{
+ if (gSpecialVar_0x8004 != 0)
+ {
+ warp1_set(MAP_GROUP_ROUTE112_CABLE_CAR_STATION, MAP_ID_ROUTE112_CABLE_CAR_STATION, -1, 6, 4);
+ }
+ else
+ {
+ warp1_set(MAP_GROUP_MT_CHIMNEY_CABLE_CAR_STATION, MAP_ID_MT_CHIMNEY_CABLE_CAR_STATION, -1, 6, 4);
+ }
+}
+
+void SetFlagInVar(void)
+{
+ FlagSet(gSpecialVar_0x8004);
+}
+
+u16 GetWeekCount(void)
+{
+ u16 weekCount = gLocalTime.days / 7;
+ if (weekCount > 9999)
+ {
+ weekCount = 9999;
+ }
+ return weekCount;
+}
+
+u8 GetLeadMonFriendshipScore(void)
+{
+ struct Pokemon *pokemon = &gPlayerParty[GetLeadMonIndex()];
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == 255)
+ {
+ return 6;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 200)
+ {
+ return 5;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 150)
+ {
+ return 4;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 100)
+ {
+ return 3;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 50)
+ {
+ return 2;
+ }
+ if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 1)
+ {
+ return 1;
+ }
+ return 0;
+}
+
+void CB2_FieldShowRegionMap(void)
+{
+ FieldInitRegionMap(c2_exit_to_overworld_1_continue_scripts_restart_music);
+}
+
+void FieldShowRegionMap(void)
+{
+ SetMainCallback2(CB2_FieldShowRegionMap);
+}
+
+static void Task_PCTurnOnEffect(u8);
+static void PCTurnOffEffect_0(struct Task *);
+static void PCTurnOffEffect_1(s16, s8, s8);
+static void PCTurnOffEffect(void);
+
+void DoPCTurnOnEffect(void)
+{
+ if (FuncIsActiveTask(Task_PCTurnOnEffect) != TRUE)
+ {
+ u8 taskId = CreateTask(Task_PCTurnOnEffect, 8);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = taskId;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[4] = 0;
+ }
+}
+
+static void Task_PCTurnOnEffect(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ if (task->data[0] == 0)
+ {
+ PCTurnOffEffect_0(task);
+ }
+}
+
+static void PCTurnOffEffect_0(struct Task *task)
+{
+ u8 playerDirectionLowerNybble;
+ s8 dx = 0;
+ s8 dy = 0;
+ if (task->data[3] == 6)
+ {
+ task->data[3] = 0;
+ playerDirectionLowerNybble = player_get_direction_lower_nybble();
+ switch (playerDirectionLowerNybble)
+ {
+ case DIR_NORTH:
+ dx = 0;
+ dy = -1;
+ break;
+ case DIR_WEST:
+ dx = -1;
+ dy = -1;
+ break;
+ case DIR_EAST:
+ dx = 1;
+ dy = -1;
+ break;
+ }
+ PCTurnOffEffect_1(task->data[4], dx, dy);
+ DrawWholeMapView();
+ task->data[4] ^= 1;
+ if ((++task->data[2]) == 5)
+ {
+ DestroyTask(task->data[1]);
+ }
+ }
+ task->data[3]++;
+}
+
+static void PCTurnOffEffect_1(s16 flag, s8 dx, s8 dy)
+{
+ u16 tileId = 0;
+ if (flag != 0)
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ tileId = 0x4;
+ }
+ else if (gSpecialVar_0x8004 == 1)
+ {
+ tileId = 0x25a;
+ }
+ else if (gSpecialVar_0x8004 == 2)
+ {
+ tileId = 0x259;
+ }
+ }
+ else
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ tileId = 0x5;
+ }
+ else if (gSpecialVar_0x8004 == 1)
+ {
+ tileId = 0x27f;
+ }
+ else if (gSpecialVar_0x8004 == 2)
+ {
+ tileId = 0x27e;
+ }
+ }
+ MapGridSetMetatileIdAt(gSaveBlock1.pos.x + dx + 7, gSaveBlock1.pos.y + dy + 7, tileId | 0xc00);
+}
+
+void DoPCTurnOffEffect(void)
+{
+ PCTurnOffEffect();
+}
+
+static void PCTurnOffEffect(void)
+{
+ s8 dx = 0;
+ s8 dy = 0;
+ u16 tileId = 0;
+ u8 playerDirectionLowerNybble = player_get_direction_lower_nybble();
+ switch (playerDirectionLowerNybble)
+ {
+ case DIR_NORTH:
+ dx = 0;
+ dy = -1;
+ break;
+ case DIR_WEST:
+ dx = -1;
+ dy = -1;
+ break;
+ case DIR_EAST:
+ dx = 1;
+ dy = -1;
+ break;
+ }
+ if (gSpecialVar_0x8004 == 0)
+ {
+ tileId = 0x4;
+ }
+ else if (gSpecialVar_0x8004 == 1)
+ {
+ tileId = 0x25a;
+ }
+ else if (gSpecialVar_0x8004 == 2)
+ {
+ tileId = 0x259;
+ }
+ MapGridSetMetatileIdAt(gSaveBlock1.pos.x + dx + 7, gSaveBlock1.pos.y + dy + 7, tileId | 0xc00);
+ DrawWholeMapView();
+}
+
+static void Task_LotteryCornerComputerEffect(u8);
+static void LotteryCornerComputerEffect(struct Task *);
+
+void DoLotteryCornerComputerEffect(void)
+{
+ if (FuncIsActiveTask(Task_LotteryCornerComputerEffect) != TRUE)
+ {
+ u8 taskId = CreateTask(Task_LotteryCornerComputerEffect, 8);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = taskId;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[4] = 0;
+ }
+}
+
+static void Task_LotteryCornerComputerEffect(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ if (task->data[0] == 0)
+ {
+ LotteryCornerComputerEffect(task);
+ }
+}
+
+static void LotteryCornerComputerEffect(struct Task *task)
+{
+ if (task->data[3] == 6)
+ {
+ task->data[3] = 0;
+ if (task->data[4] != 0)
+ {
+ MapGridSetMetatileIdAt(18, 8, 0xe9d);
+ MapGridSetMetatileIdAt(18, 9, 0xea5);
+ }
+ else
+ {
+ MapGridSetMetatileIdAt(18, 8, 0xe58);
+ MapGridSetMetatileIdAt(18, 9, 0xe60);
+ }
+ DrawWholeMapView();
+ task->data[4] ^= 1;
+ if ((++task->data[2]) == 5)
+ {
+ DestroyTask(task->data[1]);
+ }
+ }
+ task->data[3]++;
+}
+
+void EndLotteryCornerComputerEffect(void)
+{
+ MapGridSetMetatileIdAt(18, 8, 0xe9d);
+ MapGridSetMetatileIdAt(18, 9, 0xea5);
+ DrawWholeMapView();
+}
+
+static void sub_810E874(void);
+void sub_810E944(void);
+void sub_810E984(u8);
+bool8 sub_810EAC8(u8, u8);
+void sub_810EB90(u8, u8);
+void sub_810EBEC(void);
+void sub_810EC34(u8);
+void sub_810EC9C(u8);
+void sub_810ECB0(void);
+void sub_810ECD4(void);
+void sub_810ECFC(void);
+void sub_810ED40(u8);
+void sub_810ED60(struct Task *);
+void sub_810EEDC(void);
+
+const u8 *const gUnknown_083F8380[] = {
+ OtherText_1F,
+ OtherText_2F,
+ OtherText_3F,
+ OtherText_4F,
+ OtherText_5F,
+ OtherText_6F,
+ OtherText_7F,
+ OtherText_8F,
+ OtherText_9F,
+ OtherText_10F,
+ OtherText_11F,
+ OtherText_B1F,
+ OtherText_B2F,
+ OtherText_B3F,
+ OtherText_B4F,
+ OtherText_Rooftop
+};
+
+void SetDepartmentStoreFloorVar(void)
+{
+ u8 deptStoreFloor;
+ switch (gSaveBlock1.warp2.mapNum)
+ {
+ case MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_1F:
+ deptStoreFloor = 0;
+ break;
+ case MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_2F:
+ deptStoreFloor = 1;
+ break;
+ case MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_3F:
+ deptStoreFloor = 2;
+ break;
+ case MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_4F:
+ deptStoreFloor = 3;
+ break;
+ case MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_5F:
+ deptStoreFloor = 4;
+ break;
+ case MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP:
+ deptStoreFloor = 15;
+ break;
+ default:
+ deptStoreFloor = 0;
+ break;
+ }
+ VarSet(VAR_DEPT_STORE_FLOOR, deptStoreFloor);
+}
+
+void ScriptAddElevatorMenuItem(u8 a0, u8 a1, u8 a2, u8 a3)
+{
+ u8 i;
+ if (gSpecialVar_0x8004 == 0)
+ {
+ for (i=0; i<20; i++)
+ {
+ gUnknown_03000760[i].var0 = 16;
+ }
+ }
+ gUnknown_03000760[gSpecialVar_0x8004].var0 = a0;
+ gUnknown_03000760[gSpecialVar_0x8004].var1 = a1;
+ gUnknown_03000760[gSpecialVar_0x8004].var2 = a2;
+ gUnknown_03000760[gSpecialVar_0x8004].var3 = a3;
+ gSpecialVar_0x8004++;
+}
+
+void ScriptShowElevatorMenu(void)
+{
+ u8 i = 0;
+ gUnknown_0203925A = 0;
+ gUnknown_0203925B = 0;
+ ScriptAddElevatorMenuItem(16, 0, 0, 0);
+ while (gUnknown_03000760[i].var0 != 16)
+ {
+ gUnknown_0203925A++;
+ i++;
+ }
+ sub_810E874();
+}
+
+static void sub_810E874(void)
+{
+ u8 i;
+ ScriptContext2_Enable();
+ if (gUnknown_0203925A > 5)
+ {
+ MenuDrawTextWindow(0, 0, 8, 11);
+ InitMenu(0, 1, 1, 5, 0, 7);
+ gUnknown_0203925C = 0;
+ sub_80F944C();
+ LoadScrollIndicatorPalette();
+ sub_810ECD4();
+ }
+ else
+ {
+ MenuDrawTextWindow(0, 0, 8, 2 * gUnknown_0203925A + 1);
+ InitMenu(0, 1, 1, gUnknown_0203925A, 0, 7);
+ }
+ for (i = 0; i < 5 && gUnknown_03000760[i].var0 != 16; i ++)
+ {
+ MenuPrint(gUnknown_083F8380[gUnknown_03000760[i].var0], 1, 2 * i + 1);
+ }
+ sub_810E944();
+ CreateTask(sub_810E984, 8);
+}
+
+void sub_810E944(void)
+{
+ MenuDrawTextWindow(20, 0, 29, 5);
+ sub_8072BD8(gOtherText_NowOn, 21, 1, 64);
+ sub_8072BD8(gUnknown_083F8380[gSpecialVar_0x8005], 21, 3, 64);
+}
+
+void sub_810E984(u8 taskId)
+{
+ u8 curMenuPos;
+ if (gMain.newKeys == DPAD_UP && gUnknown_0203925B != 0)
+ {
+ gUnknown_0203925B--;
+ curMenuPos = GetMenuCursorPos();
+ MoveMenuCursorNoWrap(-1);
+ sub_810EAC8(curMenuPos, DPAD_UP);
+ }
+ if (gMain.newKeys == DPAD_DOWN && gUnknown_0203925B != gUnknown_0203925A - 1)
+ {
+ gUnknown_0203925B++;
+ curMenuPos = GetMenuCursorPos();
+ MoveMenuCursorNoWrap(+1);
+ sub_810EAC8(curMenuPos, DPAD_DOWN);
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ saved_warp2_set_2(0, gUnknown_03000760[gUnknown_0203925B].var1, gUnknown_03000760[gUnknown_0203925B].var2, -1, 2, 1);
+ if (gSpecialVar_0x8005 == gUnknown_0203925B)
+ {
+ gScriptResult = 0;
+ PlaySE(SE_SELECT);
+ MenuZeroFillWindowRect(0, 0, 29, 12);
+ sub_810EC9C(taskId);
+ }
+ else
+ {
+ gScriptResult = 1;
+ gSpecialVar_0x8005 = gUnknown_0203925B;
+ sub_810EBEC();
+ FieldObjectTurnByLocalIdAndMap(gScriptLastTalked, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, DIR_SOUTH);
+ sub_810EEDC();
+ MenuZeroFillScreen();
+ DestroyTask(taskId);
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ gScriptResult = 0;
+ PlaySE(SE_SELECT);
+ sub_810EEDC();
+ MenuZeroFillWindowRect(0, 0, 29, 12);
+ sub_810EC9C(taskId);
+ }
+}
+
+// This function, as written, swaps the roles of r4 and r5 throughout.
+#ifdef NONMATCHING
+bool8 sub_810EAC8(u8 prevMenuPos, u8 dpadInput)
+{
+ u8 i;
+ bool8 flag = 0;
+ u8 newPos = 0;
+ if (gUnknown_0203925A < 5)
+ {
+ return FALSE;
+ }
+ if (dpadInput == DPAD_UP)
+ {
+ if (prevMenuPos == 0)
+ {
+ newPos = gUnknown_0203925B;
+ flag = 1;
+ }
+ }
+ else if (dpadInput == DPAD_DOWN)
+ {
+ if (prevMenuPos == 4)
+ {
+ newPos = gUnknown_0203925B - 4;
+ flag = 1;
+ }
+ }
+ if (flag)
+ {
+ sub_810EB90(newPos, 5);
+ MenuFillWindowRectWithBlankTile(2, 1, 7, 10);
+ for (i=0; i<5 && gUnknown_03000760[newPos].var0 != 16; newPos++, i++)
+ {
+ MenuPrint(gUnknown_083F8380[gUnknown_03000760[newPos].var0], 1, i * 2 + 1);
+ }
+ }
+ return flag;
+}
+#else
+__attribute__((naked))
+bool8 sub_810EAC8(u8 prevMenuPos, u8 dpadInput)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r8\n"
+ "\tpush {r7}\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r2, r0, 24\n"
+ "\tadds r5, r2, 0\n"
+ "\tlsls r1, 24\n"
+ "\tlsrs r1, 24\n"
+ "\tadds r3, r1, 0\n"
+ "\tmovs r7, 0\n"
+ "\tmovs r4, 0\n"
+ "\tldr r0, _0810EAEC @ =gUnknown_0203925A\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0x4\n"
+ "\tbhi _0810EAF0\n"
+ "\tmovs r0, 0\n"
+ "\tb _0810EB78\n"
+ "\t.align 2, 0\n"
+ "_0810EAEC: .4byte gUnknown_0203925A\n"
+ "_0810EAF0:\n"
+ "\tcmp r1, 0x40\n"
+ "\tbne _0810EB04\n"
+ "\tcmp r2, 0\n"
+ "\tbne _0810EB18\n"
+ "\tldr r0, _0810EB00 @ =gUnknown_0203925B\n"
+ "\tldrb r4, [r0]\n"
+ "\tmovs r7, 0x1\n"
+ "\tb _0810EB1C\n"
+ "\t.align 2, 0\n"
+ "_0810EB00: .4byte gUnknown_0203925B\n"
+ "_0810EB04:\n"
+ "\tcmp r3, 0x80\n"
+ "\tbne _0810EB18\n"
+ "\tcmp r5, 0x4\n"
+ "\tbne _0810EB18\n"
+ "\tldr r0, _0810EB84 @ =gUnknown_0203925B\n"
+ "\tldrb r0, [r0]\n"
+ "\tsubs r0, 0x4\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tmovs r7, 0x1\n"
+ "_0810EB18:\n"
+ "\tcmp r7, 0\n"
+ "\tbeq _0810EB76\n"
+ "_0810EB1C:\n"
+ "\tadds r0, r4, 0\n"
+ "\tmovs r1, 0x5\n"
+ "\tbl sub_810EB90\n"
+ "\tmovs r0, 0x2\n"
+ "\tmovs r1, 0x1\n"
+ "\tmovs r2, 0x7\n"
+ "\tmovs r3, 0xA\n"
+ "\tbl MenuFillWindowRectWithBlankTile\n"
+ "\tmovs r5, 0\n"
+ "\tldr r2, _0810EB88 @ =gUnknown_03000760\n"
+ "\tlsls r1, r4, 2\n"
+ "\tadds r0, r1, r2\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0x10\n"
+ "\tbeq _0810EB76\n"
+ "\tldr r0, _0810EB8C @ =gUnknown_083F8380\n"
+ "\tmov r8, r0\n"
+ "\tadds r6, r2, 0\n"
+ "_0810EB44:\n"
+ "\tadds r0, r1, r6\n"
+ "\tldrb r0, [r0]\n"
+ "\tlsls r0, 2\n"
+ "\tadd r0, r8\n"
+ "\tldr r0, [r0]\n"
+ "\tlsls r2, r5, 1\n"
+ "\tadds r2, 0x1\n"
+ "\tlsls r2, 24\n"
+ "\tlsrs r2, 24\n"
+ "\tmovs r1, 0x1\n"
+ "\tbl MenuPrint\n"
+ "\tadds r0, r4, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tadds r0, r5, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r5, r0, 24\n"
+ "\tcmp r5, 0x4\n"
+ "\tbhi _0810EB76\n"
+ "\tlsls r1, r4, 2\n"
+ "\tadds r0, r1, r6\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0x10\n"
+ "\tbne _0810EB44\n"
+ "_0810EB76:\n"
+ "\tadds r0, r7, 0\n"
+ "_0810EB78:\n"
+ "\tpop {r3}\n"
+ "\tmov r8, r3\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r1}\n"
+ "\tbx r1\n"
+ "\t.align 2, 0\n"
+ "_0810EB84: .4byte gUnknown_0203925B\n"
+ "_0810EB88: .4byte gUnknown_03000760\n"
+ "_0810EB8C: .4byte gUnknown_083F8380");
+}
+#endif
+
+void sub_810EB90(u8 newPos, u8 maxItems)
+{
+ if (newPos == 0)
+ {
+ gUnknown_0203925C ^= 0x02;
+ DestroyVerticalScrollIndicator(0);
+ }
+ else
+ {
+ sub_810ECB0();
+ }
+ if (newPos + maxItems < gUnknown_0203925A)
+ {
+ sub_810ECD4();
+ }
+ else if (newPos + maxItems == gUnknown_0203925A)
+ {
+ gUnknown_0203925C ^= 0x01;
+ DestroyVerticalScrollIndicator(1);
+ }
+}
+
+void sub_810EBEC(void)
+{
+ u8 taskId = CreateTask(sub_810EC34, 9);
+ gTasks[taskId].data[0] = 1;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[4] = 1;
+ gTasks[taskId].data[5] = 3;
+ SetCameraPanningCallback(NULL);
+ sub_810ECFC();
+ PlaySE(SE_ELEBETA);
+}
+
+void sub_810EC34(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ task->data[1] ++;
+ if (task->data[1] % task->data[5] == 0)
+ {
+ task->data[1] = 0;
+ task->data[2] ++;
+ if (task->data[3] == 0)
+ {
+ task->data[4] = -task->data[4];
+ SetCameraPanning(0, task->data[4]);
+ if (task->data[2] == 23)
+ {
+ PlaySE(SE_PINPON);
+ sub_810EC9C(taskId);
+ InstallCameraPanAheadCallback();
+ }
+ }
+ }
+}
+
+void sub_810EC9C(u8 taskId)
+{
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+}
+
+void sub_810ECB0(void)
+{
+ if (gUnknown_0203925C >> 1 != 1)
+ {
+ gUnknown_0203925C |= 0x2;
+ CreateVerticalScrollIndicators(0, 0x24, 0x08);
+ }
+}
+
+void sub_810ECD4(void)
+{
+ if ((gUnknown_0203925C & 1) == 0)
+ {
+ gUnknown_0203925C |= 0x1;
+ CreateVerticalScrollIndicators(1, 0x24, 0x48);
+ }
+}
+
+void sub_810ECFC(void)
+{
+ if (FuncIsActiveTask(sub_810ED40) != TRUE)
+ {
+ u8 taskId = CreateTask(sub_810ED40, 8);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = taskId;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[4] = 0;
+ }
+}
+
+void sub_810ED40(u8 taskId)
+{
+ sub_810ED60(&gTasks[taskId]);
+}
+
+void sub_810ED60(struct Task *task)
+{
+ if (task->data[3] == 8)
+ {
+ task->data[3] = 0;
+ if (task->data[4] != 0)
+ {
+ MapGridSetMetatileIdAt( 7, 7, 0xe68);
+ MapGridSetMetatileIdAt( 8, 7, 0xe69);
+ MapGridSetMetatileIdAt( 9, 7, 0xe69);
+ MapGridSetMetatileIdAt(10, 7, 0xe6a);
+ MapGridSetMetatileIdAt( 7, 8, 0xe70);
+ MapGridSetMetatileIdAt( 8, 8, 0xe71);
+ MapGridSetMetatileIdAt( 9, 8, 0xe71);
+ MapGridSetMetatileIdAt(10, 8, 0xe72);
+ MapGridSetMetatileIdAt( 7, 9, 0xe78);
+ MapGridSetMetatileIdAt( 8, 9, 0xe79);
+ MapGridSetMetatileIdAt( 9, 9, 0xe79);
+ MapGridSetMetatileIdAt(10, 9, 0xe7a);
+ }
+ else
+ {
+ MapGridSetMetatileIdAt( 7, 7, 0xe6b);
+ MapGridSetMetatileIdAt( 8, 7, 0xe6c);
+ MapGridSetMetatileIdAt( 9, 7, 0xe6c);
+ MapGridSetMetatileIdAt(10, 7, 0xe6d);
+ MapGridSetMetatileIdAt( 7, 8, 0xe73);
+ MapGridSetMetatileIdAt( 8, 8, 0xe74);
+ MapGridSetMetatileIdAt( 9, 8, 0xe74);
+ MapGridSetMetatileIdAt(10, 8, 0xe75);
+ MapGridSetMetatileIdAt( 7, 9, 0xe7b);
+ MapGridSetMetatileIdAt( 8, 9, 0xe7c);
+ MapGridSetMetatileIdAt( 9, 9, 0xe7c);
+ MapGridSetMetatileIdAt(10, 9, 0xe7d);
+ }
+ DrawWholeMapView();
+ task->data[4] ^= 1;
+ task->data[2]++;
+ if (task->data[2] == 8)
+ {
+ DestroyTask(task->data[1]);
+ }
+ }
+ task->data[3]++;
+}
+
+void sub_810EEDC(void)
+{
+ if ((gUnknown_0203925C & 1) != 0)
+ {
+ DestroyVerticalScrollIndicator(1);
+ }
+ if ((gUnknown_0203925C >> 1) == 1)
+ {
+ DestroyVerticalScrollIndicator(0);
+ }
+ BuyMenuFreeMemory();
+}
+
+void SetTrickHouseEndRoomFlag(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = 0x259;
+ *specVar = flag;
+ FlagSet(flag);
+}
+
+void ResetTrickHouseEndRoomFlag(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = 0x259;
+ *specVar = flag;
+ FlagReset(flag);
+}
+
+bool8 CheckLeadMonCool(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_COOL) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 CheckLeadMonBeauty(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_BEAUTY) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 CheckLeadMonCute(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_CUTE) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 CheckLeadMonSmart(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SMART) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 CheckLeadMonTough(void)
+{
+ if (GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_TOUGH) < 200)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void IsGrassTypeInParty(void)
+{
+ u8 i;
+ u16 species;
+ struct Pokemon *pokemon;
+ for (i=0; i<PARTY_SIZE; i++)
+ {
+ pokemon = &gPlayerParty[i];
+ if (GetMonData(pokemon, MON_DATA_SANITY_BIT2) && !GetMonData(pokemon, MON_DATA_IS_EGG))
+ {
+ species = GetMonData(pokemon, MON_DATA_SPECIES);
+ if (gBaseStats[species].type1 == TYPE_GRASS || gBaseStats[species].type2 == TYPE_GRASS)
+ {
+ gScriptResult = TRUE;
+ return;
+ }
+ }
+ }
+ gScriptResult = FALSE;
+}
+
+const u8 *const gUnknown_083F83C0[] = {
+ OtherText_BlueFlute,
+ OtherText_YellowFlute,
+ OtherText_RedFlute,
+ OtherText_WhiteFlute,
+ OtherText_BlackFlute,
+ OtherText_PrettyChair,
+ OtherText_PrettyDesk,
+ gOtherText_CancelNoTerminator
+};
+
+void sub_810F118(u8);
+bool8 sub_810F1F4(u8, u8);
+void sub_810F2B4(void);
+void GlassWorkshopUpdateScrollIndicators(u8, u8);
+
+void ShowGlassWorkshopMenu(void)
+{
+ u8 i;
+ ScriptContext2_Enable();
+ MenuDrawTextWindow(0, 0, 10, 11);
+ InitMenu(0, 1, 1, 5, 0, 9);
+ gUnknown_0203925C = 0;
+ sub_80F944C();
+ LoadScrollIndicatorPalette();
+ sub_810F2B4();
+ for (i=0; i<5; i++)
+ {
+ MenuPrint(gUnknown_083F83C0[i], 1, 2 * i + 1);
+ }
+ gUnknown_0203925B = 0;
+ gUnknown_0203925A = ARRAY_COUNT(gUnknown_083F83C0);
+ CreateTask(sub_810F118, 8);
+}
+
+void sub_810F118(u8 taskId)
+{
+ u8 prevCursorPos;
+ if (gMain.newKeys == DPAD_UP && gUnknown_0203925B != 0)
+ {
+ gUnknown_0203925B--;
+ prevCursorPos = GetMenuCursorPos();
+ MoveMenuCursorNoWrap(-1);
+ sub_810F1F4(prevCursorPos, DPAD_UP);
+ }
+ if (gMain.newKeys == DPAD_DOWN && gUnknown_0203925B != gUnknown_0203925A - 1)
+ {
+ gUnknown_0203925B++;
+ prevCursorPos = GetMenuCursorPos();
+ MoveMenuCursorNoWrap(1);
+ sub_810F1F4(prevCursorPos, DPAD_DOWN);
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ HandleDestroyMenuCursors();
+ gScriptResult = gUnknown_0203925B;
+ PlaySE(SE_SELECT);
+ sub_810EEDC();
+ MenuZeroFillWindowRect(0, 0, 29, 12);
+ sub_810EC9C(taskId);
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ HandleDestroyMenuCursors();
+ gScriptResult = 0x7f;
+ PlaySE(SE_SELECT);
+ sub_810EEDC();
+ MenuZeroFillWindowRect(0, 0, 29, 12);
+ sub_810EC9C(taskId);
+ }
+}
+
+// Second verse, same as the first
+#ifdef NONMATCHING
+bool8 sub_810F1F4(u8 prevCursorPos, u8 dpadInput)
+{
+ u8 i;
+ u8 flag = 0;
+ u8 newPos = 0;
+ if (gUnknown_0203925A < 5)
+ {
+ return FALSE;
+ }
+ if (dpadInput == DPAD_UP)
+ {
+ if (prevCursorPos == 0)
+ {
+ newPos = gUnknown_0203925B;
+ flag = TRUE;
+ }
+ }
+ else if (dpadInput == DPAD_DOWN)
+ {
+ if (prevCursorPos == 4)
+ {
+ newPos = gUnknown_0203925B - 4;
+ flag = TRUE;
+ }
+ }
+ if (flag)
+ {
+ GlassWorkshopUpdateScrollIndicators(newPos, 5);
+ MenuFillWindowRectWithBlankTile(2, 1, 9, 10);
+ for (i=0; i<5; newPos++, i++)
+ {
+ MenuPrint(gUnknown_083F83C0[newPos], 1, 2 * i + 1);
+ }
+ }
+ return flag;
+}
+#else
+__attribute__((naked))
+bool8 sub_810F1F4(u8 prevCursorPos, u8 dpadInput)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r2, r0, 24\n"
+ "\tadds r5, r2, 0\n"
+ "\tlsls r1, 24\n"
+ "\tlsrs r1, 24\n"
+ "\tadds r3, r1, 0\n"
+ "\tmovs r6, 0\n"
+ "\tmovs r4, 0\n"
+ "\tldr r0, _0810F214 @ =gUnknown_0203925A\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0x4\n"
+ "\tbhi _0810F218\n"
+ "\tmovs r0, 0\n"
+ "\tb _0810F282\n"
+ "\t.align 2, 0\n"
+ "_0810F214: .4byte gUnknown_0203925A\n"
+ "_0810F218:\n"
+ "\tcmp r1, 0x40\n"
+ "\tbne _0810F22C\n"
+ "\tcmp r2, 0\n"
+ "\tbne _0810F240\n"
+ "\tldr r0, _0810F228 @ =gUnknown_0203925B\n"
+ "\tldrb r4, [r0]\n"
+ "\tmovs r6, 0x1\n"
+ "\tb _0810F244\n"
+ "\t.align 2, 0\n"
+ "_0810F228: .4byte gUnknown_0203925B\n"
+ "_0810F22C:\n"
+ "\tcmp r3, 0x80\n"
+ "\tbne _0810F240\n"
+ "\tcmp r5, 0x4\n"
+ "\tbne _0810F240\n"
+ "\tldr r0, _0810F288 @ =gUnknown_0203925B\n"
+ "\tldrb r0, [r0]\n"
+ "\tsubs r0, 0x4\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tmovs r6, 0x1\n"
+ "_0810F240:\n"
+ "\tcmp r6, 0\n"
+ "\tbeq _0810F280\n"
+ "_0810F244:\n"
+ "\tadds r0, r4, 0\n"
+ "\tmovs r1, 0x5\n"
+ "\tbl GlassWorkshopUpdateScrollIndicators\n"
+ "\tmovs r0, 0x2\n"
+ "\tmovs r1, 0x1\n"
+ "\tmovs r2, 0x9\n"
+ "\tmovs r3, 0xA\n"
+ "\tbl MenuFillWindowRectWithBlankTile\n"
+ "\tmovs r5, 0\n"
+ "\tldr r7, _0810F28C @ =gUnknown_083F83C0\n"
+ "_0810F25C:\n"
+ "\tlsls r0, r4, 2\n"
+ "\tadds r0, r7\n"
+ "\tldr r0, [r0]\n"
+ "\tlsls r2, r5, 1\n"
+ "\tadds r2, 0x1\n"
+ "\tlsls r2, 24\n"
+ "\tlsrs r2, 24\n"
+ "\tmovs r1, 0x1\n"
+ "\tbl MenuPrint\n"
+ "\tadds r0, r4, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tadds r0, r5, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r5, r0, 24\n"
+ "\tcmp r5, 0x4\n"
+ "\tbls _0810F25C\n"
+ "_0810F280:\n"
+ "\tadds r0, r6, 0\n"
+ "_0810F282:\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r1}\n"
+ "\tbx r1\n"
+ "\t.align 2, 0\n"
+ "_0810F288: .4byte gUnknown_0203925B\n"
+ "_0810F28C: .4byte gUnknown_083F83C0");
+}
+#endif
+
+void sub_810F290(void)
+{
+ if (gUnknown_0203925C >> 1 != 1)
+ {
+ gUnknown_0203925C |= 0x02;
+ CreateVerticalScrollIndicators(0, 0x2c, 0x08);
+ }
+}
+
+void sub_810F2B4(void)
+{
+ if (!(gUnknown_0203925C & 0x01))
+ {
+ gUnknown_0203925C |= 0x01;
+ CreateVerticalScrollIndicators(1, 0x2c, 0x58);
+ }
+}
+
+void GlassWorkshopUpdateScrollIndicators(u8 newPos, u8 maxItems)
+{
+ if (newPos == 0)
+ {
+ gUnknown_0203925C ^= 0x02;
+ DestroyVerticalScrollIndicator(0);
+ }
+ else
+ {
+ sub_810F290();
+ }
+ if (newPos + maxItems < gUnknown_0203925A)
+ {
+ sub_810F2B4();
+ }
+ else if (newPos + maxItems == gUnknown_0203925A)
+ {
+ gUnknown_0203925C ^= 0x01;
+ DestroyVerticalScrollIndicator(1);
+ }
+}
+
+void SpawnCameraDummy(void)
+{
+ u8 mapObjectId = SpawnSpecialFieldObjectParametrized(7, 8, 0x7f, gSaveBlock1.pos.x + 7, gSaveBlock1.pos.y + 7, 3);
+ gMapObjects[mapObjectId].mapobj_bit_13 = 1;
+ CameraObjectSetFollowedObjectId(gMapObjects[mapObjectId].spriteId);
+}
+
+void RemoveCameraDummy(void)
+{
+ CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId());
+ RemoveFieldObjectByLocalIdAndMap(0x7f, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
+}
+
+u8 GetPokeblockNameByMonNature(void)
+{
+ return sub_810CB68(GetNature(&gPlayerParty[GetLeadMonIndex()]), gStringVar1);
+}
+
+void GetSecretBaseNearbyMapName(void)
+{
+ sub_80FBFB4(gStringVar1, VarGet(VAR_SECRET_BASE_MAP), 0);
+}
+
+u16 sub_810F404(void)
+{
+ return GetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK);
+}
+
+void sub_810F414(void)
+{
+ sub_8135FF4(gStringVar1);
+}
+
+const u8 gUnknown_083F83E0[] = {12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6};
+const u8 gUnknown_083F83EC[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5};
+const u8 gUnknown_083F83F8[] = {3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5};
+
+u8 sub_810F424(void)
+{
+ u32 v0 = gSaveBlock1.easyChatPairs[0].unk0_0 + gSaveBlock1.easyChatPairs[0].unk2 + gUnknown_083F83E0[gSpecialVar_0x8004];
+ if (GetPriceReduction(2))
+ {
+ return gUnknown_083F83F8[v0 % 12];
+ }
+ return gUnknown_083F83EC[v0 % 12];
+}
+
+bool8 sub_810F488(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = 0x277;
+ *specVar = flag;
+ if (!FlagGet(flag))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_810F4B0(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = 0x278;
+ *specVar = flag;
+ if (!FlagGet(flag))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_810F4D4(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = 0x279;
+ *specVar = flag;
+ if (!FlagGet(flag))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_810F4FC(void)
+{
+ u16 *specVar = &gSpecialVar_0x8004;
+ u16 flag = 0x27a;
+ *specVar = flag;
+ if (!FlagGet(flag))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 LeadMonHasEffortRibbon(void)
+{
+ return GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_EFFORT_RIBBON, NULL);
+}
+
+void GivLeadMonEffortRibbon(void)
+{
+ bool8 ribbonSet;
+ IncrementGameStat(GAME_STAT_RECEIVED_RIBBONS);
+ FlagSet(SYS_RIBBON_GET);
+ ribbonSet = TRUE;
+ SetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_EFFORT_RIBBON, &ribbonSet);
+}
+
+bool8 GetLeadMonEVCount(void)
+{
+ if (GetMonEVCount(&gPlayerParty[GetLeadMonIndex()]) >= 510)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+u8 sub_810F5BC(void)
+{
+ if (!FlagGet(0xc7) && gSaveBlock1.location.mapGroup == MAP_GROUP_RUSTURF_TUNNEL && gSaveBlock1.location.mapNum == MAP_ID_RUSTURF_TUNNEL)
+ {
+ if (FlagGet(0x3a3))
+ {
+ VarSet(VAR_0x409a, 4);
+ return TRUE;
+ }
+ else if (FlagGet(0x3a4))
+ {
+ VarSet(VAR_0x409a, 5);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void SetShoalItemFlag(u16 v0)
+{
+ FlagSet(0x85f);
+}
+
+void PutZigzagoonInPlayerParty(void)
+{
+ u16 monData;
+ CreateMon(&gPlayerParty[0], SPECIES_ZIGZAGOON, 7, 0x20, FALSE, 0, FALSE, 0);
+ monData = TRUE;
+ SetMonData(&gPlayerParty[0], MON_DATA_ALT_ABILITY, (u8 *)&monData);
+ monData = MOVE_TACKLE;
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, (u8 *)&monData);
+ monData = MOVE_NONE;
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, (u8 *)&monData);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, (u8 *)&monData);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, (u8 *)&monData);
+}
+
+bool8 IsStarterInParty(void)
+{
+ u8 i;
+ u16 starter = GetStarterPokemon(VarGet(VAR_FIRST_POKE));
+ u8 partyCount = CalculatePlayerPartyCount();
+ for (i=0; i<partyCount; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) == starter)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 CheckFreePokemonStorageSpace(void)
+{
+ u16 i, j;
+ for (i=0; i<14; i++)
+ {
+ for (j=0; j<30; j++)
+ {
+ if (GetBoxMonData(&gPokemonStorage.boxes[i][j], MON_DATA_SPECIES, NULL) == SPECIES_NONE)
+ {
+ return TRUE;
+ }
+ }
+ }
+ return FALSE;
+}
+
+bool8 IsPokerusInParty(void)
+{
+ if (!CheckPartyPokerus(gPlayerParty, 0x3f))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static void sub_810F7A8(u8);
+static void sub_810F814(u8);
+
+void sub_810F758(void)
+{
+ u8 taskId = CreateTask(sub_810F7A8, 9);
+ gTasks[taskId].data[0] = gSpecialVar_0x8005;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[4] = gSpecialVar_0x8004;
+ gTasks[taskId].data[5] = 5;
+ SetCameraPanningCallback(NULL);
+ PlaySE(SE_W070);
+}
+
+static void sub_810F7A8(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ task->data[1]++;
+ if ((task->data[1] % task->data[5]) == 0)
+ {
+ task->data[1] = 0;
+ task->data[2]++;
+ if (task->data[3] == 0)
+ {
+ task->data[0] = -task->data[0];
+ task->data[4] = -task->data[4];
+ SetCameraPanning(task->data[0], task->data[4]);
+ if (task->data[2] == 8)
+ {
+ sub_810F814(taskId);
+ InstallCameraPanAheadCallback();
+ }
+ }
+ }
+}
+
+static void sub_810F814(u8 taskId)
+{
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+}
+
+bool8 sub_810F828(void)
+{
+ return FlagGet(0x2b8);
+}
+
+void SetRoute119Weather(void)
+{
+ if (is_light_level_1_2_3_5_or_6(get_map_light_from_warp0()) != TRUE)
+ {
+ SetSav1Weather(0x14);
+ }
+}
+
+void SetRoute123Weather(void)
+{
+ if (is_light_level_1_2_3_5_or_6(get_map_light_from_warp0()) != TRUE)
+ {
+ SetSav1Weather(0x15);
+ }
+}
+
+u8 GetLeadMonIndex(void)
+{
+ u8 i;
+ u8 partyCount = CalculatePlayerPartyCount();
+ for (i=0; i<partyCount; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != 0)
+ {
+ return i;
+ }
+ }
+ return 0;
+}
+
+u16 ScriptGetPartyMonSpecies(void)
+{
+ return GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES2, NULL);
+}
+
+void sub_810F8FC(void)
+{
+ sub_805ADDC(6);
+}
+
+u16 sub_810F908(void)
+{
+ u16 var40c2 = VarGet(VAR_0x40C2);
+ if (gLocalTime.days - var40c2 >= 7)
+ {
+ return 0;
+ }
+ else if (gLocalTime.days < 0)
+ {
+ return 8;
+ }
+ return 7 - (gLocalTime.days - var40c2);
+}
+
+u16 sub_810F950(void)
+{
+ VarSet(VAR_0x40C2, gLocalTime.days);
+ return gLocalTime.days;
+}
+
+bool8 sub_810F96C(void)
+{
+ GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_OT_NAME, gStringVar1);
+ if (!StringCompareWithoutExtCtrlCodes(gSaveBlock2.playerName, gStringVar1))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_810F9AC(void)
+{
+ if (gScriptResult >= 10000)
+ {
+ sub_80BF088(0, gScriptResult);
+ }
+ else if (gScriptResult >= 1000)
+ {
+ gStringVar1[0] = CHAR_0;
+ ConvertIntToDecimalStringN(gStringVar1 + 1, gScriptResult, 0, sub_80BF0B8(gScriptResult));
+ }
+ else if (gScriptResult >= 100)
+ {
+ gStringVar1[0] = CHAR_0;
+ gStringVar1[1] = CHAR_0;
+ ConvertIntToDecimalStringN(gStringVar1 + 2, gScriptResult, 0, sub_80BF0B8(gScriptResult));
+ }
+ else if (gScriptResult >= 10)
+ {
+ gStringVar1[0] = CHAR_0;
+ gStringVar1[1] = CHAR_0;
+ gStringVar1[2] = CHAR_0;
+ ConvertIntToDecimalStringN(gStringVar1 + 3, gScriptResult, 0, sub_80BF0B8(gScriptResult));
+ }
+ else
+ {
+ gStringVar1[0] = CHAR_0;
+ gStringVar1[1] = CHAR_0;
+ gStringVar1[2] = CHAR_0;
+ gStringVar1[3] = CHAR_0;
+ ConvertIntToDecimalStringN(gStringVar1 + 4, gScriptResult, 0, sub_80BF0B8(gScriptResult));
+ }
+}
+
+const u8 gUnknown_083F8404[] = {2, 1, 2, 1};
+const u8 gUnknown_083F8408[] = {8, 9, 10, 11, 12, 13, 14, 15};
+const u8 gUnknown_083F8410[] = {8, 13, 14, 11, 10, 12, 15, 9};
+
+bool8 sub_810FF30(void);
+void sub_810FCE8(void);
+void sub_810FF48(void);
+void sub_810FD80(void);
+u16 sub_810FCB0(void);
+int sub_810FB9C(void);
+
+void ResetFanClub(void)
+{
+ gSaveBlock1.vars[0x41] = 0;
+ gSaveBlock1.vars[0x42] = 0;
+}
+
+void sub_810FA74(void)
+{
+ if (sub_810FF30())
+ {
+ sub_810FCE8();
+ gSaveBlock1.vars[0x42] = gSaveBlock2.playTimeHours;
+ }
+}
+
+void sub_810FAA0(void)
+{
+ if (!((gSaveBlock1.vars[0x41] >> 7) & 1))
+ {
+ sub_810FF48();
+ sub_810FD80();
+ gSaveBlock1.vars[0x42] = gSaveBlock2.playTimeHours;
+ FlagReset(0x315);
+ FlagReset(0x316);
+ FlagReset(0x317);
+ FlagReset(0x318);
+ VarSet(VAR_0x4095, 1);
+ }
+}
+
+u8 sub_810FB10(u8 a0)
+{
+ if (VarGet(VAR_0x4095) == 2)
+ {
+ if ((gSaveBlock1.vars[0x41] & 0x7f) + gUnknown_083F8404[a0] >= 20)
+ {
+ if (sub_810FCB0() < 3)
+ {
+ sub_810FB9C();
+ gSaveBlock1.vars[0x41] &= 0xff80;
+ }
+ else
+ {
+ gSaveBlock1.vars[0x41] = (gSaveBlock1.vars[0x41] & 0xff80) | 20;
+ }
+ }
+ else
+ {
+ gSaveBlock1.vars[0x41] += gUnknown_083F8404[a0];
+ }
+ }
+ return gSaveBlock1.vars[0x41] & 0x7f;
+}
+
+int sub_810FB9C(void)
+{
+ u8 i;
+ int retval = 0;
+ for (i=0; i<8; i++)
+ {
+ if (!((gSaveBlock1.vars[0x41] >> gUnknown_083F8408[i]) & 0x01))
+ {
+ retval = i;
+ if (Random() & 1)
+ {
+ gSaveBlock1.vars[0x41] |= (1 << gUnknown_083F8408[i]);
+ return retval;
+ }
+ }
+ }
+ gSaveBlock1.vars[0x41] |= (1 << gUnknown_083F8408[retval]);
+ return retval;
+}
+
+int sub_810FC18(void)
+{
+ u8 i;
+ int retval = 0;
+ if (sub_810FCB0() == TRUE)
+ {
+ return 0;
+ }
+ for (i=0; i<8; i++)
+ {
+ if ((gSaveBlock1.vars[0x41] >> gUnknown_083F8410[i]) & 1)
+ {
+ retval = i;
+ if (Random() & 1)
+ {
+ gSaveBlock1.vars[0x41] ^= (1 << gUnknown_083F8410[i]);
+ return retval;
+ }
+ }
+ }
+ if ((gSaveBlock1.vars[0x41] >> gUnknown_083F8410[retval]) & 1)
+ {
+ gSaveBlock1.vars[0x41] ^= (1 << gUnknown_083F8410[retval]);
+ }
+ return retval;
+}
+
+u16 sub_810FCB0(void)
+{
+ u8 i;
+ u8 retval = 0;
+ for (i=0; i<8; i++)
+ {
+ if ((gSaveBlock1.vars[0x41] >> (i + 8)) & 1)
+ {
+ retval ++;
+ }
+ }
+ return retval;
+}
+
+void sub_810FCE8(void)
+{
+ u8 i = 0;
+ if (gSaveBlock2.playTimeHours < 999)
+ {
+ while (1)
+ {
+ if (sub_810FCB0() < 5)
+ {
+ gSaveBlock1.vars[0x42] = gSaveBlock2.playTimeHours;
+ break;
+ }
+ else if (i == 8)
+ {
+ break;
+ }
+ else if (gSaveBlock2.playTimeHours - gSaveBlock1.vars[0x42] < 12)
+ {
+ return;
+ }
+ sub_810FC18();
+ gSaveBlock1.vars[0x42] += 12;
+ i++;
+ }
+ }
+}
+
+bool8 sub_810FD60(void)
+{
+ return (gSaveBlock1.vars[0x41] >> gSpecialVar_0x8004) & 0x01;
+}
+
+void sub_810FD80(void)
+{
+ gSaveBlock1.vars[0x41] |= 0x2000;
+ gSaveBlock1.vars[0x41] |= 0x100;
+ gSaveBlock1.vars[0x41] |= 0x400;
+}
+
+void sub_810FE1C(void *, u8, u8);
+
+void sub_810FDAC(void)
+{
+ u8 a = 0;
+ u8 b = 0;
+ switch (gSpecialVar_0x8004)
+ {
+ case 8:
+ break;
+ case 9:
+ break;
+ case 10:
+ a = 0;
+ b = 3;
+ break;
+ case 11:
+ a = 0;
+ b = 1;
+ break;
+ case 12:
+ a = 1;
+ b = 0;
+ break;
+ case 13:
+ a = 0;
+ b = 4;
+ break;
+ case 14:
+ a = 1;
+ b = 5;
+ break;
+ case 15:
+ break;
+ }
+ sub_810FE1C(gSaveBlock1.linkBattleRecords, a, b);
+}
+
+void sub_810FE1C(void *linkRecords, u8 a, u8 b)
+{
+ u8 *curRecord = (linkRecords + 16 * a);
+ if (*curRecord == EOS)
+ {
+ switch (b)
+ {
+ case 0:
+ StringCopy(gStringVar1, gOtherText_Wallace);
+ break;
+ case 1:
+ StringCopy(gStringVar1, gOtherText_Steven);
+ break;
+ case 2:
+ StringCopy(gStringVar1, gOtherText_Brawly);
+ break;
+ case 3:
+ StringCopy(gStringVar1, gOtherText_Winona);
+ break;
+ case 4:
+ StringCopy(gStringVar1, gOtherText_Phoebe);
+ break;
+ case 5:
+ StringCopy(gStringVar1, gOtherText_Glacia);
+ break;
+ default:
+ StringCopy(gStringVar1, gOtherText_Wallace);
+ break;
+ }
+ }
+ else
+ {
+ StringCopyN(gStringVar1, curRecord, 7);
+ gStringVar1[7] = EOS;
+ if (gStringVar1[0] == 0xfc && gStringVar1[1] == 0x15)
+ {
+ ConvertInternationalString(gStringVar1, 1);
+ }
+ }
+}
+
+void sub_810FEFC(void)
+{
+ if (VarGet(VAR_0x4095) == 2)
+ {
+ sub_810FA74();
+ if (gBattleOutcome == 1)
+ {
+ sub_810FB9C();
+ }
+ else
+ {
+ sub_810FC18();
+ }
+ }
+}
+
+bool8 sub_810FF30(void)
+{
+ return (gSaveBlock1.vars[0x41] >> 7) & 0x01;
+}
+
+void sub_810FF48(void)
+{
+ gSaveBlock1.vars[0x41] |= 0x80;
+}
+
+u8 sub_810FF60(void)
+{
+ return sub_810FB10(gSpecialVar_0x8004);
+}
diff --git a/src/field_tasks.c b/src/field_tasks.c
new file mode 100755
index 000000000..caf2ce6b9
--- /dev/null
+++ b/src/field_tasks.c
@@ -0,0 +1,859 @@
+//
+// Created by scott on 6/22/2017.
+//
+
+#include "global.h"
+#include "task.h"
+#include "main.h"
+#include "vars.h"
+#include "bike.h"
+#include "item.h"
+#include "items.h"
+#include "event_data.h"
+#include "rom4.h"
+#include "clock.h"
+#include "script.h"
+#include "field_special_scene.h"
+#include "field_effect_helpers.h"
+#include "secret_base.h"
+#include "metatile_behavior.h"
+#include "fieldmap.h"
+#include "field_player_avatar.h"
+#include "field_camera.h"
+#include "songs.h"
+#include "sound.h"
+#include "field_tasks.h"
+
+void DummyPerStepCallback(u8);
+void PerStepCallback_8069F64(u8);
+void PerStepCallback_8069AA0(u8);
+void PerStepCallback_8069864(u8);
+void PerStepCallback_8069DD4(u8);
+void PerStepCallback_806A07C(u8);
+
+void (*const gUnknown_08376364[])(u8) = {
+ DummyPerStepCallback,
+ PerStepCallback_8069F64,
+ PerStepCallback_8069AA0,
+ PerStepCallback_8069864,
+ PerStepCallback_8069DD4,
+ EndTruckSequence,
+ sub_80BCF1C,
+ PerStepCallback_806A07C
+};
+
+void Task_RunPerStepCallback(u8 taskId)
+{
+ int idx = gTasks[taskId].data[0];
+ gUnknown_08376364[idx](taskId);
+}
+
+static void RunTimeBasedEvents(s16 *taskData)
+{
+ switch (*taskData)
+ {
+ case 0:
+ if (gMain.vblankCounter1 & 0x1000)
+ {
+ DoTimeBasedEvents();
+ (*taskData)++;
+ }
+ break;
+ case 1:
+ if (!(gMain.vblankCounter1 & 0x1000))
+ {
+ (*taskData)--;
+ }
+ break;
+ }
+}
+
+void Task_RunTimeBasedEvents(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+ if (!ScriptContext2_IsEnabled())
+ {
+ RunTimeBasedEvents(taskData);
+ sub_80540D0(taskData + 1, taskData + 2);
+ }
+}
+
+void Task_MuddySlope(u8);
+
+void SetUpFieldTasks(void)
+{
+ if (!FuncIsActiveTask(Task_RunPerStepCallback))
+ {
+ u8 taskId = CreateTask(Task_RunPerStepCallback, 0x50);
+ gTasks[taskId].data[0] = 0;
+ }
+ if (!FuncIsActiveTask(Task_MuddySlope))
+ {
+ CreateTask(Task_MuddySlope, 0x50);
+ }
+ if (!FuncIsActiveTask(Task_RunTimeBasedEvents))
+ {
+ CreateTask(Task_RunTimeBasedEvents, 0x50);
+ }
+}
+
+void ActivatePerStepCallback(u8 callback)
+{
+ s16 *dataPointer;
+ s16 *dataStart;
+ s16 zero;
+ u8 taskId = FindTaskIdByFunc(Task_RunPerStepCallback);
+ if (taskId != 0xff)
+ {
+ dataStart = gTasks[taskId].data;
+ zero = 0;
+ dataPointer = &dataStart[15];
+ do
+ {
+ *dataPointer-- = zero;
+ } while ((int)dataPointer >= (int)dataStart);
+ if (callback >= ARRAY_COUNT(gUnknown_08376364))
+ {
+ *dataStart = 0;
+ }
+ else
+ {
+ *dataStart = callback;
+ }
+ }
+}
+
+void ResetFieldTasksArgs(void)
+{
+ u8 taskId;
+ s16 *taskData;
+ taskId = FindTaskIdByFunc(Task_RunPerStepCallback);
+ if (taskId != 0xff)
+ {
+ taskData = gTasks[taskId].data;
+ }
+ taskId = FindTaskIdByFunc(Task_RunTimeBasedEvents);
+ if (taskId != 0xff)
+ {
+ taskData = gTasks[taskId].data;
+ taskData[1] = 0;
+ taskData[2] = 0;
+ }
+}
+
+const struct MetatileOffset gUnknown_08376384[][2] = {
+ {{ 0, 0,0x259}, { 0, 1,0x261}},
+ {{ 0, -1,0x259}, { 0, 0,0x261}},
+ {{ 0, 0,0x252}, { 1, 0,0x253}},
+ {{ -1, 0,0x252}, { 0, 0,0x253}}
+};
+
+const struct MetatileOffset gUnknown_083763A4[][2] = {
+ {{ 0, 0,0x25A}, { 0, 1,0x262}},
+ {{ 0, -1,0x25A}, { 0, 0,0x262}},
+ {{ 0, 0,0x254}, { 1, 0,0x255}},
+ {{ -1, 0,0x254}, { 0, 0,0x255}}
+};
+
+const struct MetatileOffset gUnknown_083763C4[][2] = {
+ {{ 0, 0,0x258}, { 0, 1,0x260}},
+ {{ 0, -1,0x258}, { 0, 0,0x260}},
+ {{ 0, 0,0x250}, { 1, 0,0x251}},
+ {{ -1, 0,0x250}, { 0, 0,0x251}}
+};
+
+void DummyPerStepCallback(u8 taskId) {}
+
+const struct MetatileOffset *sub_80695E0(const struct MetatileOffset a0[][2], s8 a1)
+{
+ if (sub_80576A0(a1))
+ {
+ return a0[0];
+ }
+ else if (sub_80576B4(a1))
+ {
+ return a0[1];
+ }
+ else if (sub_80576C8(a1))
+ {
+ return a0[2];
+ }
+ else if (sub_80576DC(a1))
+ {
+ return a0[3];
+ }
+ else
+ {
+ return NULL;
+ }
+}
+
+#ifdef NONMATCHING
+void sub_8069638(const struct MetatileOffset offsets[][2], s16 x, s16 y, bool32 flag)
+{
+ const struct MetatileOffset *offsetData = sub_80695E0(offsets, MapGridGetMetatileBehaviorAt(x, y));
+ const struct MetatileOffset *offsetData2 = offsetData;
+ if (offsetData != NULL)
+ {
+ MapGridSetMetatileIdAt(x + offsetData[0].x, y + offsetData[0].y, offsetData[0].tileId);
+ if (flag)
+ {
+ CurrentMapDrawMetatileAt(x + offsetData[0].x, y + offsetData[0].y);
+ }
+ MapGridSetMetatileIdAt(x + offsetData2[1].x, y + offsetData2[1].y, offsetData2[1].tileId);
+ if (flag)
+ {
+ CurrentMapDrawMetatileAt(x + offsetData2[1].x, y + offsetData2[1].y);
+ }
+ }
+}
+#else
+__attribute__((naked))
+void sub_8069638(const struct MetatileOffset offsets[][2], s16 x, s16 y, bool32 flag)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r8\n"
+ "\tpush {r7}\n"
+ "\tadds r5, r0, 0\n"
+ "\tmov r8, r3\n"
+ "\tlsls r1, 16\n"
+ "\tasrs r6, r1, 16\n"
+ "\tlsls r2, 16\n"
+ "\tasrs r7, r2, 16\n"
+ "\tadds r0, r6, 0\n"
+ "\tadds r1, r7, 0\n"
+ "\tbl MapGridGetMetatileBehaviorAt\n"
+ "\tadds r1, r0, 0\n"
+ "\tlsls r1, 16\n"
+ "\tlsrs r1, 16\n"
+ "\tadds r0, r5, 0\n"
+ "\tbl sub_80695E0\n"
+ "\tadds r4, r0, 0\n"
+ "\tadds r5, r4, 0\n"
+ "\tcmp r4, 0\n"
+ "\tbeq _080696B6\n"
+ "\tmovs r0, 0\n"
+ "\tldrsb r0, [r4, r0]\n"
+ "\tadds r0, r6, r0\n"
+ "\tmovs r1, 0x1\n"
+ "\tldrsb r1, [r4, r1]\n"
+ "\tadds r1, r7, r1\n"
+ "\tldrh r2, [r4, 0x2]\n"
+ "\tbl MapGridSetMetatileIdAt\n"
+ "\tmov r0, r8\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0806968E\n"
+ "\tmovs r0, 0\n"
+ "\tldrsb r0, [r4, r0]\n"
+ "\tadds r0, r6, r0\n"
+ "\tmovs r1, 0x1\n"
+ "\tldrsb r1, [r4, r1]\n"
+ "\tadds r1, r7, r1\n"
+ "\tbl CurrentMapDrawMetatileAt\n"
+ "_0806968E:\n"
+ "\tmovs r0, 0x4\n"
+ "\tldrsb r0, [r5, r0]\n"
+ "\tadds r0, r6, r0\n"
+ "\tmovs r1, 0x5\n"
+ "\tldrsb r1, [r5, r1]\n"
+ "\tadds r1, r7, r1\n"
+ "\tldrh r2, [r5, 0x6]\n"
+ "\tbl MapGridSetMetatileIdAt\n"
+ "\tmov r0, r8\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _080696B6\n"
+ "\tmovs r0, 0x4\n"
+ "\tldrsb r0, [r5, r0]\n"
+ "\tadds r0, r6, r0\n"
+ "\tmovs r1, 0x5\n"
+ "\tldrsb r1, [r5, r1]\n"
+ "\tadds r1, r7, r1\n"
+ "\tbl CurrentMapDrawMetatileAt\n"
+ "_080696B6:\n"
+ "\tpop {r3}\n"
+ "\tmov r8, r3\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0");
+}
+#endif
+
+void sub_80696C0(s16 x, s16 y, bool32 flag)
+{
+ sub_8069638(gUnknown_08376384, x, y, flag);
+}
+
+void sub_80696E4(s16 x, s16 y, bool32 flag)
+{
+ sub_8069638(gUnknown_083763A4, x, y, flag);
+}
+
+void sub_8069708(s16 x, s16 y, bool32 flag)
+{
+ sub_8069638(gUnknown_083763C4, x, y, flag);
+}
+
+bool32 sub_806972C(s16 x1, s16 y1, s16 x2, s16 y2)
+{
+ s8 metatileBehavior = MapGridGetMetatileBehaviorAt(x2, y2);
+ if (sub_80576A0(metatileBehavior))
+ {
+ if (y1 > y2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576B4(metatileBehavior))
+ {
+ if (y1 < y2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576C8(metatileBehavior))
+ {
+ if (x1 > x2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576DC(metatileBehavior))
+ {
+ if (x1 < x2)
+ {
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
+bool32 sub_80697C8(s16 x1, s16 y1, s16 x2, s16 y2)
+{
+ s8 metatileBehavior = MapGridGetMetatileBehaviorAt(x1, y1);
+ if (sub_80576A0(metatileBehavior))
+ {
+ if (y1 < y2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576B4(metatileBehavior))
+ {
+ if (y1 > y2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576C8(metatileBehavior))
+ {
+ if (x1 < x2)
+ {
+ return FALSE;
+ }
+ }
+ else if (sub_80576DC(metatileBehavior))
+ {
+ if (x1 > x2)
+ {
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
+void PerStepCallback_8069864(u8 taskId)
+{
+ s16 *data;
+ s16 x, y;
+ data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ switch (data[1])
+ {
+ case 0:
+ data[2] = x;
+ data[3] = y;
+ sub_80696E4(x, y, TRUE);
+ data[1] = 1;
+ break;
+ case 1:
+ if (x != data[2] || y != data[3])
+ {
+ if (sub_806972C(x, y, data[2], data[3]))
+ {
+ sub_80696C0(data[2], data[3], TRUE);
+ sub_8069708(data[2], data[3], FALSE);
+ data[4] = data[2];
+ data[5] = data[3];
+ data[1] = 2;
+ data[6] = 8;
+ }
+ else
+ {
+ data[4] = -1;
+ data[5] = -1;
+ }
+ if (sub_80697C8(x, y, data[2], data[3]))
+ {
+ sub_80696C0(x, y, TRUE);
+ data[1] = 2;
+ data[6] = 8;
+ }
+ data[2] = x;
+ data[3] = y;
+ if (MetatileBehavior_IsPacifidlogLog(MapGridGetMetatileBehaviorAt(x, y)))
+ {
+ PlaySE(SE_MIZU);
+ }
+ }
+ break;
+ case 2:
+ if ((--data[6]) == 0)
+ {
+ sub_80696E4(x, y, TRUE);
+ if (data[4] != -1 && data[5] != -1)
+ {
+ sub_8069708(data[4], data[5], TRUE);
+ }
+ data[1] = 1;
+ }
+ break;
+ }
+}
+
+void sub_80699D8(s16 x, s16 y)
+{
+ u8 z = PlayerGetZCoord();
+ if (!(z & 0x01))
+ {
+ switch (MapGridGetMetatileIdAt(x, y))
+ {
+ case 0x24e:
+ MapGridSetMetatileIdAt(x, y, 0x24f);
+ break;
+ case 0x256:
+ MapGridSetMetatileIdAt(x, y, 0x257);
+ break;
+ }
+ }
+}
+
+void sub_8069A3C(s16 x, s16 y)
+{
+ u8 z = PlayerGetZCoord();
+ if (!(z & 0x01))
+ {
+ switch (MapGridGetMetatileIdAt(x, y))
+ {
+ case 0x24f:
+ MapGridSetMetatileIdAt(x, y, 0x24e);
+ break;
+ case 0x257:
+ MapGridSetMetatileIdAt(x, y, 0x256);
+ break;
+ }
+ }
+}
+
+void PerStepCallback_8069AA0(u8 taskId)
+{
+ bool8 isFortreeBridgeCur;
+ bool8 isFortreeBridgePrev;
+ u8 z, flag;
+ s16 x, y, x2, y2;
+ s16 *data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ switch (data[1])
+ {
+ default:
+ break;
+ case 0:
+ data[2] = x;
+ data[3] = y;
+ if (MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x, y)))
+ {
+ sub_80699D8(x, y);
+ CurrentMapDrawMetatileAt(x, y);
+ }
+ data[1] = 1;
+ break;
+ case 1:
+ x2 = data[2];
+ y2 = data[3];
+ if (x == x2 && y == y2)
+ {
+ break;
+ }
+ isFortreeBridgeCur = MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x, y));
+ isFortreeBridgePrev = MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x2, y2));
+ z = PlayerGetZCoord();
+ flag = 0;
+ if ((u8)(z & 1) == 0)
+ {
+ flag = 1;
+ }
+ if (flag && (isFortreeBridgeCur == 1 || isFortreeBridgePrev == 1))
+ {
+ PlaySE(SE_HASHI);
+ }
+ if (isFortreeBridgePrev)
+ {
+ sub_8069A3C(x2, y2);
+ CurrentMapDrawMetatileAt(x2, y2);
+ sub_80699D8(x, y);
+ CurrentMapDrawMetatileAt(x, y);
+ }
+ data[4] = x2;
+ data[5] = y2;
+ data[2] = x;
+ data[3] = y;
+ if (!isFortreeBridgePrev)
+ {
+ break;
+ }
+ data[6] = 16;
+ data[1] = 2;
+ // fallthrough
+ case 2:
+ data[6]--;
+ x2 = data[4];
+ y2 = data[5];
+ switch (data[6] % 7)
+ {
+ case 0:
+ CurrentMapDrawMetatileAt(x2, y2);
+ case 1:
+ case 2:
+ case 3:
+ break;
+ case 4:
+ sub_80699D8(x2, y2);
+ CurrentMapDrawMetatileAt(x2, y2);
+ sub_8069A3C(x2, y2);
+ case 5:
+ case 6:
+ case 7:
+ break;
+ }
+ if (data[6] == 0)
+ {
+ data[1] = 1;
+ }
+ break;
+ }
+}
+
+const u16 gUnknown_083763E4[] = {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ VAR_0x4001,
+ VAR_0x4002,
+ VAR_0x4003,
+ VAR_0x4004,
+ 0,
+ 0,
+ VAR_0x4005,
+ VAR_0x4006,
+ VAR_0x4007,
+ 0,
+ 0,
+ VAR_0x4008,
+ VAR_0x4009,
+ VAR_0x400A,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+};
+
+bool32 sub_8069CB8(s16 x, s16 y)
+{
+ if ((u16)(x - 3) < 11 && (u16)(y - 6) < 14 && gUnknown_083763E4[y])
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_8069CFC(s16 x, s16 y)
+{
+ if (sub_8069CB8(x, y))
+ {
+ *GetVarPointer(gUnknown_083763E4[y]) |= (1 << (x - 3));
+ }
+}
+
+bool32 sub_8069D34(s16 x, s16 y)
+{
+ u32 var;
+ if (!sub_8069CB8(x, y))
+ {
+ return FALSE;
+ }
+ var = VarGet(gUnknown_083763E4[y]) << 16;
+ if (((1 << 16) << (x - 3)) & var)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_8069D78(void)
+{
+ s32 x, y;
+ s32 width = gMapHeader.mapData->width;
+ s32 height = gMapHeader.mapData->height;
+ for (x=0; x<width; x++)
+ {
+ for (y=0; y<height; y++)
+ {
+ if (sub_8069D34(x, y) == TRUE)
+ {
+ MapGridSetMetatileIdAt(x + 7, y + 7, 0x20e);
+ }
+ }
+ }
+}
+
+void PerStepCallback_8069DD4(u8 taskId)
+{
+ s16 x, y;
+ u16 tileBehavior;
+ u16 *var;
+ s16 *data = gTasks[taskId].data;
+ switch (data[1])
+ {
+ case 0:
+ PlayerGetDestCoords(&x, &y);
+ data[2] = x;
+ data[3] = y;
+ data[1] = 1;
+ break;
+ case 1:
+ PlayerGetDestCoords(&x, &y);
+ if (x != data[2] || y != data[3])
+ {
+ data[2] = x;
+ data[3] = y;
+ tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
+ var = GetVarPointer(VAR_ICE_STEP_COUNT);
+ if (MetatileBehavior_IsThinIce(tileBehavior) == TRUE)
+ {
+ (*var)++;
+ data[6] = 4;
+ data[1] = 2;
+ data[4] = x;
+ data[5] = y;
+ }
+ else if (MetatileBehavior_IsCrackedIce(tileBehavior) == TRUE)
+ {
+ *var = 0;
+ data[6] = 4;
+ data[1] = 3;
+ data[4] = x;
+ data[5] = y;
+ }
+ }
+ break;
+ case 2:
+ if (data[6] != 0)
+ {
+ data[6]--;
+ }
+ else
+ {
+ x = data[4];
+ y = data[5];
+ PlaySE(SE_RU_BARI);
+ MapGridSetMetatileIdAt(x, y, 0x20e);
+ CurrentMapDrawMetatileAt(x, y);
+ sub_8069CFC(x - 7, y - 7);
+ data[1] = 1;
+ }
+ break;
+ case 3:
+ if (data[6] != 0)
+ {
+ data[6]--;
+ }
+ else
+ {
+ x = data[4];
+ y = data[5];
+ PlaySE(SE_RU_GASYAN);
+ MapGridSetMetatileIdAt(x, y, 0x206);
+ CurrentMapDrawMetatileAt(x, y);
+ data[1] = 1;
+ }
+ break;
+ }
+}
+
+void PerStepCallback_8069F64(u8 taskId)
+{
+ s16 x, y;
+ u16 *var;
+ s16 *data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ if (x != data[1] || y != data[2])
+ {
+ data[1] = x;
+ data[2] = y;
+ if (MetatileBehavior_IsAshGrass(MapGridGetMetatileBehaviorAt(x, y)))
+ {
+ if (MapGridGetMetatileIdAt(x, y) == 0x20a)
+ {
+ ash(x, y, 0x212, 4);
+ }
+ else
+ {
+ ash(x, y, 0x206, 4);
+ }
+ if (CheckBagHasItem(ITEM_SOOT_SACK, 1))
+ {
+ var = GetVarPointer(VAR_ASH_GATHER_COUNT);
+ if (*var < 9999)
+ {
+ (*var)++;
+ }
+ }
+ }
+ }
+}
+
+void sub_806A040(s16 x, s16 y)
+{
+ MapGridSetMetatileIdAt(x, y, MapGridGetMetatileIdAt(x, y) == 0x22f ? 0x206 : 0x237);
+ CurrentMapDrawMetatileAt(x, y);
+}
+
+void PerStepCallback_806A07C(u8 taskId)
+{
+ s16 x, y;
+ u16 behavior;
+ s16 *data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ behavior = MapGridGetMetatileBehaviorAt(x, y);
+ if (data[4] != 0 && (--data[4]) == 0)
+ {
+ sub_806A040(data[5], data[6]);
+ }
+ if (data[7] != 0 && (--data[7]) == 0)
+ {
+ sub_806A040(data[8], data[9]);
+ }
+ if (MetatileBehavior_IsCrackedFloorHole(behavior))
+ {
+ VarSet(VAR_ICE_STEP_COUNT, 0); // this var does double duty
+ }
+ if ((x != data[2] || y != data[3]))
+ {
+ data[2] = x;
+ data[3] = y;
+ if (MetatileBehavior_IsCrackedFloor(behavior))
+ {
+ if (GetPlayerSpeed() != 4)
+ {
+ VarSet(VAR_ICE_STEP_COUNT, 0); // this var does double duty
+ }
+ if (data[4] == 0)
+ {
+ data[4] = 3;
+ data[5] = x;
+ data[6] = y;
+ }
+ else if (data[7] == 0)
+ {
+ data[7] = 3;
+ data[8] = x;
+ data[9] = y;
+ }
+ }
+ }
+}
+
+const u16 gUnknown_08376418[] = {0xe8, 0xeb, 0xea, 0xe9};
+
+void sub_806A18C(s16 *data, s16 x, s16 y)
+{
+ u16 tile;
+ if ((--data[0]) == 0)
+ {
+ tile = 0xe8;
+ }
+ else
+ {
+ tile = gUnknown_08376418[data[0] / 8];
+ }
+ MapGridSetMetatileIdAt(x, y, tile);
+ CurrentMapDrawMetatileAt(x, y);
+ MapGridSetMetatileIdAt(x, y, 0xe8);
+}
+
+void Task_MuddySlope(u8 taskId)
+{
+ s16 x, y, x2, y2;
+ int i;
+ u16 mapIndices;
+ s16 *data = gTasks[taskId].data;
+ PlayerGetDestCoords(&x, &y);
+ mapIndices = (gSaveBlock1.location.mapGroup << 8) | gSaveBlock1.location.mapNum;
+ switch (data[1])
+ {
+ case 0:
+ data[0] = mapIndices;
+ data[2] = x;
+ data[3] = y;
+ data[1] = 1;
+ data[4] = 0;
+ data[7] = 0;
+ data[10] = 0;
+ data[13] = 0;
+ break;
+ case 1:
+ if (data[2] != x || data[3] != y)
+ {
+ data[2] = x;
+ data[3] = y;
+ if (MetatileBehavior_IsMuddySlope(MapGridGetMetatileBehaviorAt(x, y)))
+ {
+ for (i=4; i<14; i+=3)
+ {
+ if (data[i] == 0)
+ {
+ data[i] = 32;
+ data[i + 1] = x;
+ data[i + 2] = y;
+ break;
+ }
+ }
+ }
+ }
+ break;
+ }
+ if (gUnknown_0202E844.field_0 && mapIndices != data[0])
+ {
+ data[0] = mapIndices;
+ x2 = gUnknown_0202E844.x;
+ y2 = gUnknown_0202E844.y;
+ }
+ else
+ {
+ x2 = 0;
+ y2 = 0;
+ }
+ for (i=4; i<14; i+=3)
+ {
+ if (data[i])
+ {
+ data[i + 1] -= x2;
+ data[i + 2] -= y2;
+ sub_806A18C(&data[i], data[i + 1], data[i + 2]);
+ }
+ }
+}
diff --git a/src/pokemon_2.c b/src/pokemon_2.c
index 5acdae4d3..543b032e2 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon_2.c
@@ -38,7 +38,12 @@ extern struct PokemonStorage gPokemonStorage;
extern u8 gBadEggNickname[];
extern const struct SpriteTemplate gSpriteTemplate_8208288[];
//array of pointers to arrays of pointers to union AnimCmd (We probably need to typedef this.)
-extern u8 gSecretBaseTrainerClasses[];
+extern u8 gTrainerClassToPicIndex[];
+extern u8 gTrainerClassToNameIndex[];
+extern u8 gSecretBaseTrainerClasses[][5];
+extern u8 gUnknown_08208238[];
+extern u8 gUnknown_0820823C[];
+extern u8 gStatStageRatios[][2];
extern u8 gHoldEffectToType[][2];
u8 CountAliveMons(u8 a1)
@@ -1184,13 +1189,13 @@ void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord)
u8 GetSecretBaseTrainerPicIndex(void)
{
- u8 trainerClass = gSecretBaseTrainerClasses[(gSecretBaseRecord.trainerId[0] % 5) + (5 * gSecretBaseRecord.gender)];
+ u8 trainerClass = gSecretBaseTrainerClasses[gSecretBaseRecord.gender][gSecretBaseRecord.trainerId[0] % 5];
return gTrainerClassToPicIndex[trainerClass];
}
u8 GetSecretBaseTrainerNameIndex(void)
{
- u8 trainerClass = gSecretBaseTrainerClasses[(gSecretBaseRecord.trainerId[0] % 5) + (5 * gSecretBaseRecord.gender)];
+ u8 trainerClass = gSecretBaseTrainerClasses[gSecretBaseRecord.gender][gSecretBaseRecord.trainerId[0] % 5];
return gTrainerClassToNameIndex[trainerClass];
}
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
index cb8eb2a46..f7ff98564 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon_3.c
@@ -23,28 +23,6 @@
#include "text.h"
#include "util.h"
-#define EVO_FRIENDSHIP 0x0001 // Pokémon levels up with friendship ≥ 220
-#define EVO_FRIENDSHIP_DAY 0x0002 // Pokémon levels up during the day with friendship ≥ 220
-#define EVO_FRIENDSHIP_NIGHT 0x0003 // Pokémon levels up at night with friendship ≥ 220
-#define EVO_LEVEL 0x0004 // Pokémon reaches the specified level
-#define EVO_TRADE 0x0005 // Pokémon is traded
-#define EVO_TRADE_ITEM 0x0006 // Pokémon is traded while it's holding the specified item
-#define EVO_ITEM 0x0007 // specified item is used on Pokémon
-#define EVO_LEVEL_ATK_GT_DEF 0x0008 // Pokémon reaches the specified level with attack > defense
-#define EVO_LEVEL_ATK_EQ_DEF 0x0009 // Pokémon reaches the specified level with attack = defense
-#define EVO_LEVEL_ATK_LT_DEF 0x000a // Pokémon reaches the specified level with attack < defense
-#define EVO_LEVEL_SILCOON 0x000b // Pokémon reaches the specified level with a Silcoon personality value
-#define EVO_LEVEL_CASCOON 0x000c // Pokémon reaches the specified level with a Cascoon personality value
-#define EVO_LEVEL_NINJASK 0x000d // Pokémon reaches the specified level (special value for Ninjask)
-#define EVO_LEVEL_SHEDINJA 0x000e // Pokémon reaches the specified level (special value for Shedinja)
-#define EVO_BEAUTY 0x000f // Pokémon levels up with beauty ≥ specified value
-
-struct SpindaSpot
-{
- u8 x, y;
- u16 image[16];
-};
-
extern u8 gPlayerPartyCount;
extern u8 gEnemyPartyCount;
extern struct BattlePokemon gBattleMons[4];
@@ -103,8 +81,8 @@ bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask, u8 bat
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit)
{
- u8 *temp;
- u8 *itemEffect;
+ const u8 *temp;
+ const u8 *itemEffect;
u8 offset;
int i;
u8 j;
@@ -112,7 +90,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit)
offset = 6;
- temp = (u8 *) gItemEffectTable[itemId - 13];
+ temp = gItemEffectTable[itemId - 13];
if (!temp && itemId != ITEM_ENIGMA_BERRY)
return 0;
@@ -1296,15 +1274,15 @@ void BoxMonRestorePP(struct BoxPokemon *boxMon)
void sub_8040B8C(void)
{
- gLastUsedAbility = BATTLE_STRUCT->filler1_2[0x37];
+ gLastUsedAbility = BATTLE_STRUCT->unk160C0;;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 4;
- gBattleTextBuff1[2] = BATTLE_STRUCT->filler1[0x34];
+ gBattleTextBuff1[2] = BATTLE_STRUCT->unk16054;
gBattleTextBuff1[4] = EOS;
- if (!GetBankSide(BATTLE_STRUCT->filler1[0x34]))
- gBattleTextBuff1[3] = pokemon_order_func(gBattlePartyID[BATTLE_STRUCT->filler1[0x34]]);
+ if (!GetBankSide(BATTLE_STRUCT->unk16054))
+ gBattleTextBuff1[3] = pokemon_order_func(gBattlePartyID[BATTLE_STRUCT->unk16054]);
else
- gBattleTextBuff1[3] = gBattlePartyID[BATTLE_STRUCT->filler1[0x34]];
+ gBattleTextBuff1[3] = gBattlePartyID[BATTLE_STRUCT->unk16054];
gBattleTextBuff2[0] = 0xFD;
gBattleTextBuff2[1] = 4;
gBattleTextBuff2[2] = gBankInMenu;
diff --git a/src/pokemon_data.c b/src/pokemon_data.c
new file mode 100644
index 000000000..6414134fb
--- /dev/null
+++ b/src/pokemon_data.c
@@ -0,0 +1,128 @@
+#include "global.h"
+#include "pokemon.h"
+#include "species.h"
+#include "trainer.h"
+#include "abilities.h"
+#include "moves.h"
+#include "hold_effects.h"
+#include "items.h"
+#include "sprite.h"
+#include "data2.h"
+
+#include "data/pokemon/dex_order.h"
+#include "data/pokemon/spinda_spots.h"
+#include "data/pokemon/item_effects.h"
+#include "data/pokemon/nature_stats.h"
+#include "data/pokemon/tmhm_learnsets.h"
+#include "data/pokemon/trainer_class_lookups.h"
+#include "data/pokemon/cry_ids.h"
+#include "data/pokemon/experience_tables.h"
+#include "data/pokemon/base_stats.h"
+#include "data/pokemon/level_up_learnsets.h"
+#include "data/pokemon/evolution.h"
+#include "data/pokemon/level_up_learnset_pointers.h"
+
+const u8 gUnknown_08208238[] = { // Masks for getting PP Up count, also PP Max values
+ 0x03, 0x0c, 0x30, 0xc0
+};
+
+const u8 gUnknown_0820823C[] = { // Masks for setting PP Up count
+ 0xFC, 0xF3, 0xCF, 0x3F
+};
+
+const u8 gUnknown_08208240[] = { // Values added to PP Up count
+ 0x01, 0x04, 0x10, 0x40
+};
+
+const u8 gStatStageRatios[][2] = {
+ {10, 40}, // -6
+ {10, 35}, // -5
+ {10, 30}, // -4
+ {10, 25}, // -3
+ {10, 20}, // -2
+ {10, 15}, // -1
+ {10, 10}, // 0
+ {15, 10}, // 1
+ {20, 10}, // 2
+ {25, 10}, // 3
+ {30, 10}, // 4
+ {35, 10}, // 5
+ {40, 10} // 6
+};
+
+const u8 unknownGameFreakAbbrev_820825E[] = _("ゲーフリ");
+
+const u8 gHoldEffectToType[][2] = {
+ {HOLD_EFFECT_BUG_POWER, TYPE_BUG},
+ {HOLD_EFFECT_STEEL_POWER, TYPE_STEEL},
+ {HOLD_EFFECT_GROUND_POWER, TYPE_GROUND},
+ {HOLD_EFFECT_ROCK_POWER, TYPE_ROCK},
+ {HOLD_EFFECT_GRASS_POWER, TYPE_GRASS},
+ {HOLD_EFFECT_DARK_POWER, TYPE_DARK},
+ {HOLD_EFFECT_FIGHTING_POWER, TYPE_FIGHTING},
+ {HOLD_EFFECT_ELECTRIC_POWER, TYPE_ELECTRIC},
+ {HOLD_EFFECT_WATER_POWER, TYPE_WATER},
+ {HOLD_EFFECT_FLYING_POWER, TYPE_FLYING},
+ {HOLD_EFFECT_POISON_POWER, TYPE_POISON},
+ {HOLD_EFFECT_ICE_POWER, TYPE_ICE},
+ {HOLD_EFFECT_GHOST_POWER, TYPE_GHOST},
+ {HOLD_EFFECT_PSYCHIC_POWER, TYPE_PSYCHIC},
+ {HOLD_EFFECT_FIRE_POWER, TYPE_FIRE},
+ {HOLD_EFFECT_DRAGON_POWER, TYPE_DRAGON},
+ {HOLD_EFFECT_NORMAL_POWER, TYPE_NORMAL}
+};
+
+extern void sub_80105A0(struct Sprite *);
+extern void oac_poke_opponent(struct Sprite *);
+
+const struct SpriteTemplate gSpriteTemplate_8208288[] = {
+ {0xFFFF, 0, &gOamData_81F96F0, NULL, gSpriteImageTable_81E7A10, gSpriteAffineAnimTable_81E7B70, sub_80105A0},
+ {0xFFFF, 0, &gOamData_81F96E8, NULL, gSpriteImageTable_81E7A30, gSpriteAffineAnimTable_81E7BEC, oac_poke_opponent},
+ {0xFFFF, 0, &gOamData_81F96F0, NULL, gSpriteImageTable_81E7A50, gSpriteAffineAnimTable_81E7B70, sub_80105A0},
+ {0xFFFF, 0, &gOamData_81F96E8, NULL, gSpriteImageTable_81E7A70, gSpriteAffineAnimTable_81E7BEC, oac_poke_opponent},
+};
+
+const u8 gSecretBaseTrainerClasses[][5] = {
+ // male
+ {TRAINER_CLASS_YOUNGSTER, TRAINER_CLASS_BUG_CATCHER, TRAINER_CLASS_RICH_BOY, TRAINER_CLASS_CAMPER, TRAINER_CLASS_COOL_TRAINER_M},
+ // female
+ {TRAINER_CLASS_LASS, TRAINER_CLASS_SCHOOL_KID_F, TRAINER_CLASS_LADY, TRAINER_CLASS_PICNICKER, TRAINER_CLASS_COOL_TRAINER_F}
+};
+
+const u8 gUnknown_082082F2[] = {
+ MON_DATA_HP_EV,
+ MON_DATA_ATK_EV,
+ MON_DATA_DEF_EV,
+ MON_DATA_SPD_EV,
+ MON_DATA_SPDEF_EV,
+ MON_DATA_SPATK_EV
+};
+
+const u8 gUnknown_082082F8[] = {1, 1, 3, 2, 4, 6};
+
+const s8 gUnknown_082082FE[][3] = {
+ // Happiness deltas
+ { 5, 3, 2},
+ { 5, 3, 2},
+ { 1, 1, 0},
+ { 3, 2, 1},
+ { 1, 1, 0},
+ { 1, 1, 1},
+ {-1, -1, -1},
+ {-5, -5, -10},
+ {-5, -5, -10}
+};
+
+const u16 gHMMoves[] = {
+ MOVE_CUT,
+ MOVE_FLY,
+ MOVE_SURF,
+ MOVE_STRENGTH,
+ MOVE_FLASH,
+ MOVE_ROCK_SMASH,
+ MOVE_WATERFALL,
+ MOVE_DIVE,
+ 0xffff
+};
+
+const u8 gJapaneseNidoranNames[][11] = {_("ニドラン♂"), _("ニドラン♀")};
diff --git a/src/sound_check_menu.c b/src/sound_check_menu.c
new file mode 100755
index 000000000..13a6f6f3e
--- /dev/null
+++ b/src/sound_check_menu.c
@@ -0,0 +1,2198 @@
+#include "global.h"
+#include "sprite.h"
+#include "palette.h"
+#include "task.h"
+#include "m4a.h"
+#include "main.h"
+#include "text.h"
+#include "menu.h"
+#include "songs.h"
+#include "title_screen.h"
+#include "sound.h"
+#include "pokedex_cry_screen.h"
+
+// local task defines
+#define WINDOW_SELECTED data[0]
+#define BGM_INDEX data[1]
+#define SE_INDEX data[2]
+#define UNK_DATA3 data[3]
+#define UNK_DATA4 data[4]
+// data 5-7 are not used
+// i dont have a define for data 8 yet because its used in a nonmatching and I can't be sure yet its actually used.
+
+// window selections
+enum
+{
+ BGM_WINDOW,
+ SE_WINDOW
+};
+
+// driver test cry enums
+enum
+{
+ CRY_TEST_UNK0,
+ CRY_TEST_VOLUME,
+ CRY_TEST_PANPOT,
+ CRY_TEST_PITCH,
+ CRY_TEST_LENGTH,
+ CRY_TEST_RELEASE,
+ CRY_TEST_PROGRESS,
+ CRY_TEST_CHORUS,
+ CRY_TEST_PRIORITY
+};
+
+// minmax range enums
+enum
+{
+ MIN,
+ MAX
+};
+
+extern struct ToneData voicegroup_84537C0[];
+extern struct ToneData voicegroup_8452590[];
+extern struct ToneData voicegroup_8453DC0[];
+extern struct ToneData voicegroup_8452B90[];
+extern struct ToneData voicegroup_84543C0[];
+extern struct ToneData voicegroup_8453190[];
+extern struct ToneData voicegroup_84549C0[];
+extern struct ToneData voicegroup_8453790[];
+
+extern int gUnknown_020387B4[9];
+
+extern s8 gUnknown_020387B3;
+extern u8 gUnknown_020387B1;
+extern u8 gUnknown_020387B2;
+extern u8 gUnknown_020387D8;
+extern u8 gUnknown_020387D9;
+extern u8 gUnknown_020387B0;
+extern u16 gUnknown_03005D34;
+extern u8 gUnknown_03005E98;
+
+extern struct MusicPlayerInfo *gUnknown_03005D30;
+extern struct MusicPlayerInfo gMPlay_BGM;
+
+void sub_80BA258(u8);
+void sub_80BA384(u8);
+void sub_80BA65C(u8);
+void sub_80BA68C(u8);
+void sub_80BA6B8(u8);
+void sub_80BA700(u16, u16, u16);
+void sub_80BA79C(const u8 *const, u16, u16);
+void sub_80BA800(u8);
+void sub_80BAA48(u8);
+void sub_80BACDC(s8);
+void sub_80BAD5C(void);
+void sub_80BAE10(u8, u8);
+void sub_80BAE78(int, u16, u16, u8);
+void sub_80BAF84(u8);
+void sub_80BB038(u8);
+void sub_80BB1D4(void);
+void sub_80BB25C(u8);
+void sub_80BB3B4(u8);
+void sub_80BB494(void);
+
+static const u8 gDebugText_SoundCheckJap[] = _("サウンドチェック");
+static const u8 gDebugText_BGM[] = _("BGM");
+static const u8 gDebugText_SE[] = _("SE ");
+static const u8 gDebugText_ABDesc[] = _("A‥さいせい B‥おわり");
+static const u8 gDebugText_UpDown[] = _("L‥UP R‥DOWN");
+static const u8 gDebugText_DriverTest[] = _("R‥DRIVER-TEST");
+
+// ideally this should be a multi Coords8 struct, but it wont match when its treated like a struct.
+static const u8 gUnknown_083D0300[] = { 1, 1, 1, 3, 1, 5, 1, 7, 1, 9, 1, 11, 1, 13, 1, 15, 1, 17 };
+
+static const u8 gDebugText_BBack[] = _("Bぼたんで もどる");
+static const u8 gDebugText_APlay[] = _("Aぼたんで さいせい");
+static const u8 gDebugText_Voice[] = _("VOICE‥‥‥‥");
+static const u8 gDebugText_Volume[] = _("VOLUME‥‥‥");
+static const u8 gDebugText_Panpot[] = _("PANPOT‥‥‥");
+static const u8 gDebugText_Pitch[] = _("PITCH‥‥‥‥");
+static const u8 gDebugText_Length[] = _("LENGTH‥‥‥");
+static const u8 gDebugText_Release[] = _("RELEASE‥‥");
+static const u8 gDebugText_Progress[] = _("PROGRESS‥");
+static const u8 gDebugText_Chorus[] = _("CHORUS‥‥‥");
+static const u8 gDebugText_Priority[] = _("PRIORITY‥");
+static const u8 gDebugText_Playing[] = _("さいせいちゆう‥"); // 再生中 (playing)
+static const u8 gDebugText_Reverse[] = _("はんてん‥‥‥‥"); // 反転 (reverse)
+static const u8 gDebugText_Stereo[] = _("すてれお‥‥‥‥"); // stereo
+
+// also ideally should be a MinMax struct, but any attempt to make this into a struct causes it to not match due to the weird multi dim access.
+static const int gUnknown_083D039C[16] =
+{
+ 0, 387,
+ 0, 127,
+ -127, 127,
+ -128, 32639,
+ 0, 65535,
+ 0, 255,
+ 0, 65535,
+ -64, 63
+};
+
+static const u8 gUnknown_083D03DC[] = _("▶");
+static const u8 gUnknown_083D03DE[] = _(" ");
+
+// why not just use Powers of ten from string_util?
+static const int gUnknown_083D03E0[6] =
+{
+ 1,
+ 10,
+ 100,
+ 1000,
+ 10000,
+ 100000
+};
+
+static const s8 gUnknown_083D03F8[5] = { 0x3F, 0x00, 0xC0, 0x7F, 0x80 };
+
+static const u8 gOtherText_SE[] = _("SE");
+static const u8 gOtherText_Pan[] = _("PAN");
+static const u8 gOtherText_LR[] = _(" LR");
+static const u8 gOtherText_RL[] = _(" RL");
+
+// bgm names
+static const u8 BGMName_STOP[] = _("STOP");
+static const u8 BGMName_TETSUJI[] = _("TETSUJI");
+static const u8 BGMName_FIELD13[] = _("FIELD13");
+static const u8 BGMName_KACHI22[] = _("KACHI22");
+static const u8 BGMName_KACHI2[] = _("KACHI2");
+static const u8 BGMName_KACHI3[] = _("KACHI3");
+static const u8 BGMName_KACHI5[] = _("KACHI5");
+static const u8 BGMName_PCC[] = _("PCC");
+static const u8 BGMName_NIBI[] = _("NIBI");
+static const u8 BGMName_SUIKUN[] = _("SUIKUN");
+static const u8 BGMName_DOORO1[] = _("DOORO1");
+static const u8 BGMName_DOORO_X1[] = _("DOORO-X1");
+static const u8 BGMName_DOORO_X3[] = _("DOORO-X3");
+static const u8 BGMName_MACHI_S2[] = _("MACHI-S2");
+static const u8 BGMName_MACHI_S4[] = _("MACHI-S4");
+static const u8 BGMName_GIM[] = _("GIM");
+static const u8 BGMName_NAMINORI[] = _("NAMINORI");
+static const u8 BGMName_DAN01[] = _("DAN01");
+static const u8 BGMName_FANFA1[] = _("FANFA1");
+static const u8 BGMName_ME_ASA[] = _("ME-ASA");
+static const u8 BGMName_ME_BACHI[] = _("ME-BACHI");
+static const u8 BGMName_FANFA4[] = _("FANFA4");
+static const u8 BGMName_FANFA5[] = _("FANFA5");
+static const u8 BGMName_ME_WAZA[] = _("ME-WAZA");
+static const u8 BGMName_BIJYUTU[] = _("BIJYUTU");
+static const u8 BGMName_DOORO_X4[] = _("DOORO-X4");
+static const u8 BGMName_FUNE_KAN[] = _("FUNE-KAN");
+static const u8 BGMName_ME_SHINKA[] = _("ME-SHINKA");
+static const u8 BGMName_SHINKA[] = _("SHINKA");
+static const u8 BGMName_ME_WASURE[] = _("ME-WASURE");
+static const u8 BGMName_SYOUJOEYE[] = _("SYOUJOEYE");
+static const u8 BGMName_BOYEYE[] = _("BOYEYE");
+static const u8 BGMName_DAN02[] = _("DAN02");
+static const u8 BGMName_MACHI_S3[] = _("MACHI-S3");
+static const u8 BGMName_ODAMAKI[] = _("ODAMAKI");
+static const u8 BGMName_B_TOWER[] = _("B-TOWER");
+static const u8 BGMName_SWIMEYE[] = _("SWIMEYE");
+static const u8 BGMName_DAN03[] = _("DAN03");
+static const u8 BGMName_ME_KINOMI[] = _("ME-KINOMI");
+static const u8 BGMName_ME_TAMA[] = _("ME-TAMA");
+static const u8 BGMName_ME_B_BIG[] = _("ME-B-BIG");
+static const u8 BGMName_ME_B_SMALL[] = _("ME-B-SMALL");
+static const u8 BGMName_ME_ZANNEN[] = _("ME-ZANNEN");
+static const u8 BGMName_BD_TIME[] = _("BD-TIME");
+static const u8 BGMName_TEST1[] = _("TEST1");
+static const u8 BGMName_TEST2[] = _("TEST2");
+static const u8 BGMName_TEST3[] = _("TEST3");
+static const u8 BGMName_TEST4[] = _("TEST4");
+static const u8 BGMName_TEST[] = _("TEST");
+static const u8 BGMName_GOMACHI0[] = _("GOMACHI0");
+static const u8 BGMName_GOTOWN[] = _("GOTOWN");
+static const u8 BGMName_POKECEN[] = _("POKECEN");
+static const u8 BGMName_NEXTROAD[] = _("NEXTROAD");
+static const u8 BGMName_GRANROAD[] = _("GRANROAD");
+static const u8 BGMName_CYCLING[] = _("CYCLING");
+static const u8 BGMName_FRIENDLY[] = _("FRIENDLY");
+static const u8 BGMName_MISHIRO[] = _("MISHIRO");
+static const u8 BGMName_TOZAN[] = _("TOZAN");
+static const u8 BGMName_GIRLEYE[] = _("GIRLEYE");
+static const u8 BGMName_MINAMO[] = _("MINAMO");
+static const u8 BGMName_ASHROAD[] = _("ASHROAD");
+static const u8 BGMName_EVENT0[] = _("EVENT0");
+static const u8 BGMName_DEEPDEEP[] = _("DEEPDEEP");
+static const u8 BGMName_KACHI1[] = _("KACHI1");
+static const u8 BGMName_TITLE3[] = _("TITLE3");
+static const u8 BGMName_DEMO1[] = _("DEMO1");
+static const u8 BGMName_GIRL_SUP[] = _("GIRL-SUP");
+static const u8 BGMName_HAGESHII[] = _("HAGESHII");
+static const u8 BGMName_KAKKOII[] = _("KAKKOII");
+static const u8 BGMName_KAZANBAI[] = _("KAZANBAI");
+static const u8 BGMName_AQA_0[] = _("AQA-0");
+static const u8 BGMName_TSURETEK[] = _("TSURETEK");
+static const u8 BGMName_BOY_SUP[] = _("BOY-SUP");
+static const u8 BGMName_RAINBOW[] = _("RAINBOW");
+static const u8 BGMName_AYASII[] = _("AYASII");
+static const u8 BGMName_KACHI4[] = _("KACHI4");
+static const u8 BGMName_ROPEWAY[] = _("ROPEWAY");
+static const u8 BGMName_CASINO[] = _("CASINO");
+static const u8 BGMName_HIGHTOWN[] = _("HIGHTOWN");
+static const u8 BGMName_SAFARI[] = _("SAFARI");
+static const u8 BGMName_C_ROAD[] = _("C-ROAD");
+static const u8 BGMName_AJITO[] = _("AJITO");
+static const u8 BGMName_M_BOAT[] = _("M-BOAT");
+static const u8 BGMName_M_DUNGON[] = _("M-DUNGON");
+static const u8 BGMName_FINECITY[] = _("FINECITY");
+static const u8 BGMName_MACHUPI[] = _("MACHUPI");
+static const u8 BGMName_P_SCHOOL[] = _("P-SCHOOL");
+static const u8 BGMName_DENDOU[] = _("DENDOU");
+static const u8 BGMName_TONEKUSA[] = _("TONEKUSA");
+static const u8 BGMName_MABOROSI[] = _("MABOROSI");
+static const u8 BGMName_CON_FAN[] = _("CON-FAN");
+static const u8 BGMName_CONTEST0[] = _("CONTEST0");
+static const u8 BGMName_MGM0[] = _("MGM0");
+static const u8 BGMName_T_BATTLE[] = _("T-BATTLE");
+static const u8 BGMName_OOAME[] = _("OOAME");
+static const u8 BGMName_HIDERI[] = _("HIDERI");
+static const u8 BGMName_RUNECITY[] = _("RUNECITY");
+static const u8 BGMName_CON_K[] = _("CON-K");
+static const u8 BGMName_EIKOU_R[] = _("EIKOU-R");
+static const u8 BGMName_KARAKURI[] = _("KARAKURI");
+static const u8 BGMName_HUTAGO[] = _("HUTAGO");
+static const u8 BGMName_SITENNOU[] = _("SITENNOU");
+static const u8 BGMName_YAMA_EYE[] = _("YAMA-EYE");
+static const u8 BGMName_CONLOBBY[] = _("CONLOBBY");
+static const u8 BGMName_INTER_V[] = _("INTER-V");
+static const u8 BGMName_DAIGO[] = _("DAIGO");
+static const u8 BGMName_THANKFOR[] = _("THANKFOR");
+static const u8 BGMName_END[] = _("END");
+static const u8 BGMName_BATTLE27[] = _("BATTLE27");
+static const u8 BGMName_BATTLE31[] = _("BATTLE31");
+static const u8 BGMName_BATTLE20[] = _("BATTLE20");
+static const u8 BGMName_BATTLE32[] = _("BATTLE32");
+static const u8 BGMName_BATTLE33[] = _("BATTLE33");
+static const u8 BGMName_BATTLE36[] = _("BATTLE36");
+static const u8 BGMName_BATTLE34[] = _("BATTLE34");
+static const u8 BGMName_BATTLE35[] = _("BATTLE35");
+static const u8 BGMName_BATTLE38[] = _("BATTLE38");
+static const u8 BGMName_BATTLE30[] = _("BATTLE30");
+
+static const u8 *const gBGMNames[] =
+{
+ BGMName_STOP,
+ BGMName_TETSUJI,
+ BGMName_FIELD13,
+ BGMName_KACHI22,
+ BGMName_KACHI2,
+ BGMName_KACHI3,
+ BGMName_KACHI5,
+ BGMName_PCC,
+ BGMName_NIBI,
+ BGMName_SUIKUN,
+ BGMName_DOORO1,
+ BGMName_DOORO_X1,
+ BGMName_DOORO_X3,
+ BGMName_MACHI_S2,
+ BGMName_MACHI_S4,
+ BGMName_GIM,
+ BGMName_NAMINORI,
+ BGMName_DAN01,
+ BGMName_FANFA1,
+ BGMName_ME_ASA,
+ BGMName_ME_BACHI,
+ BGMName_FANFA4,
+ BGMName_FANFA5,
+ BGMName_ME_WAZA,
+ BGMName_BIJYUTU,
+ BGMName_DOORO_X4,
+ BGMName_FUNE_KAN,
+ BGMName_ME_SHINKA,
+ BGMName_SHINKA,
+ BGMName_ME_WASURE,
+ BGMName_SYOUJOEYE,
+ BGMName_BOYEYE,
+ BGMName_DAN02,
+ BGMName_MACHI_S3,
+ BGMName_ODAMAKI,
+ BGMName_B_TOWER,
+ BGMName_SWIMEYE,
+ BGMName_DAN03,
+ BGMName_ME_KINOMI,
+ BGMName_ME_TAMA,
+ BGMName_ME_B_BIG,
+ BGMName_ME_B_SMALL,
+ BGMName_ME_ZANNEN,
+ BGMName_BD_TIME,
+ BGMName_TEST1,
+ BGMName_TEST2,
+ BGMName_TEST3,
+ BGMName_TEST4,
+ BGMName_TEST,
+ BGMName_GOMACHI0,
+ BGMName_GOTOWN,
+ BGMName_POKECEN,
+ BGMName_NEXTROAD,
+ BGMName_GRANROAD,
+ BGMName_CYCLING,
+ BGMName_FRIENDLY,
+ BGMName_MISHIRO,
+ BGMName_TOZAN,
+ BGMName_GIRLEYE,
+ BGMName_MINAMO,
+ BGMName_ASHROAD,
+ BGMName_EVENT0,
+ BGMName_DEEPDEEP,
+ BGMName_KACHI1,
+ BGMName_TITLE3,
+ BGMName_DEMO1,
+ BGMName_GIRL_SUP,
+ BGMName_HAGESHII,
+ BGMName_KAKKOII,
+ BGMName_KAZANBAI,
+ BGMName_AQA_0,
+ BGMName_TSURETEK,
+ BGMName_BOY_SUP,
+ BGMName_RAINBOW,
+ BGMName_AYASII,
+ BGMName_KACHI4,
+ BGMName_ROPEWAY,
+ BGMName_CASINO,
+ BGMName_HIGHTOWN,
+ BGMName_SAFARI,
+ BGMName_C_ROAD,
+ BGMName_AJITO,
+ BGMName_M_BOAT,
+ BGMName_M_DUNGON,
+ BGMName_FINECITY,
+ BGMName_MACHUPI,
+ BGMName_P_SCHOOL,
+ BGMName_DENDOU,
+ BGMName_TONEKUSA,
+ BGMName_MABOROSI,
+ BGMName_CON_FAN,
+ BGMName_CONTEST0,
+ BGMName_MGM0,
+ BGMName_T_BATTLE,
+ BGMName_OOAME,
+ BGMName_HIDERI,
+ BGMName_RUNECITY,
+ BGMName_CON_K,
+ BGMName_EIKOU_R,
+ BGMName_KARAKURI,
+ BGMName_HUTAGO,
+ BGMName_SITENNOU,
+ BGMName_YAMA_EYE,
+ BGMName_CONLOBBY,
+ BGMName_INTER_V,
+ BGMName_DAIGO,
+ BGMName_THANKFOR,
+ BGMName_END,
+ BGMName_BATTLE27,
+ BGMName_BATTLE31,
+ BGMName_BATTLE20,
+ BGMName_BATTLE32,
+ BGMName_BATTLE33,
+ BGMName_BATTLE36,
+ BGMName_BATTLE34,
+ BGMName_BATTLE35,
+ BGMName_BATTLE38,
+ BGMName_BATTLE30
+};
+
+// SE names
+static const u8 SEName_STOP[] = _("STOP");
+static const u8 SEName_KAIFUKU[] = _("KAIFUKU");
+static const u8 SEName_PC_LOGON[] = _("PC-LOGON");
+static const u8 SEName_PC_OFF[] = _("PC-OFF");
+static const u8 SEName_PC_ON[] = _("PC-ON");
+static const u8 SEName_SELECT[] = _("SELECT");
+static const u8 SEName_WIN_OPEN[] = _("WIN-OPEN");
+static const u8 SEName_WALL_HIT[] = _("WALL-HIT");
+static const u8 SEName_DOOR[] = _("DOOR");
+static const u8 SEName_KAIDAN[] = _("KAIDAN");
+static const u8 SEName_DANSA[] = _("DANSA");
+static const u8 SEName_JITENSYA[] = _("JITENSYA");
+static const u8 SEName_KOUKA_L[] = _("KOUKA-L");
+static const u8 SEName_KOUKA_M[] = _("KOUKA-M");
+static const u8 SEName_KOUKA_H[] = _("KOUKA-H");
+static const u8 SEName_BOWA2[] = _("BOWA2");
+static const u8 SEName_POKE_DEAD[] = _("POKE-DEAD");
+static const u8 SEName_NIGERU[] = _("NIGERU");
+static const u8 SEName_JIDO_DOA[] = _("JIDO-DOA");
+static const u8 SEName_NAMINORI[] = _("NAMINORI");
+static const u8 SEName_BAN[] = _("BAN");
+static const u8 SEName_PIN[] = _("PIN");
+static const u8 SEName_BOO[] = _("BOO");
+static const u8 SEName_BOWA[] = _("BOWA");
+static const u8 SEName_JYUNI[] = _("JYUNI");
+static const u8 SEName_A[] = _("A");
+static const u8 SEName_I[] = _("I");
+static const u8 SEName_U[] = _("U");
+static const u8 SEName_E[] = _("E");
+static const u8 SEName_O[] = _("O");
+static const u8 SEName_N[] = _("N");
+static const u8 SEName_SEIKAI[] = _("SEIKAI");
+static const u8 SEName_HAZURE[] = _("HAZURE");
+static const u8 SEName_EXP[] = _("EXP");
+static const u8 SEName_JITE_PYOKO[] = _("JITE-PYOKO");
+static const u8 SEName_MU_PACHI[] = _("MU-PACHI");
+static const u8 SEName_TK_KASYA[] = _("TK-KASYA");
+static const u8 SEName_FU_ZAKU[] = _("FU-ZAKU");
+static const u8 SEName_FU_ZAKU2[] = _("FU-ZAKU2");
+static const u8 SEName_FU_ZUZUZU[] = _("FU-ZUZUZU");
+static const u8 SEName_RU_GASHIN[] = _("RU-GASHIN");
+static const u8 SEName_RU_GASYAN[] = _("RU-GASYAN");
+static const u8 SEName_RU_BARI[] = _("RU-BARI");
+static const u8 SEName_RU_HYUU[] = _("RU-HYUU");
+static const u8 SEName_KI_GASYAN[] = _("KI-GASYAN");
+static const u8 SEName_TK_WARPIN[] = _("TK-WARPIN");
+static const u8 SEName_TK_WARPOUT[] = _("TK-WARPOUT");
+static const u8 SEName_TU_SAA[] = _("TU-SAA");
+static const u8 SEName_HI_TURUN[] = _("HI-TURUN");
+static const u8 SEName_TRACK_MOVE[] = _("TRACK-MOVE");
+static const u8 SEName_TRACK_STOP[] = _("TRACK-STOP");
+static const u8 SEName_TRACK_HAIK[] = _("TRACK-HAIK");
+static const u8 SEName_TRACK_DOOR[] = _("TRACK-DOOR");
+static const u8 SEName_MOTER[] = _("MOTER");
+static const u8 SEName_CARD[] = _("CARD");
+static const u8 SEName_SAVE[] = _("SAVE");
+static const u8 SEName_KON[] = _("KON");
+static const u8 SEName_KON2[] = _("KON2");
+static const u8 SEName_KON3[] = _("KON3");
+static const u8 SEName_KON4[] = _("KON4");
+static const u8 SEName_SUIKOMU[] = _("SUIKOMU");
+static const u8 SEName_NAGERU[] = _("NAGERU");
+static const u8 SEName_TOY_C[] = _("TOY-C");
+static const u8 SEName_TOY_D[] = _("TOY-D");
+static const u8 SEName_TOY_E[] = _("TOY-E");
+static const u8 SEName_TOY_F[] = _("TOY-F");
+static const u8 SEName_TOY_G[] = _("TOY-G");
+static const u8 SEName_TOY_A[] = _("TOY-A");
+static const u8 SEName_TOY_B[] = _("TOY-B");
+static const u8 SEName_TOY_C1[] = _("TOY-C1");
+static const u8 SEName_MIZU[] = _("MIZU");
+static const u8 SEName_HASHI[] = _("HASHI");
+static const u8 SEName_DAUGI[] = _("DAUGI");
+static const u8 SEName_PINPON[] = _("PINPON");
+static const u8 SEName_FUUSEN1[] = _("FUUSEN1");
+static const u8 SEName_FUUSEN2[] = _("FUUSEN2");
+static const u8 SEName_FUUSEN3[] = _("FUUSEN3");
+static const u8 SEName_TOY_KABE[] = _("TOY-KABE");
+static const u8 SEName_TOY_DANGO[] = _("TOY-DANGO");
+static const u8 SEName_DOKU[] = _("DOKU");
+static const u8 SEName_ESUKA[] = _("ESUKA");
+static const u8 SEName_T_AME[] = _("T-AME");
+static const u8 SEName_T_AME_E[] = _("T-AME-E");
+static const u8 SEName_T_OOAME[] = _("T-OOAME");
+static const u8 SEName_T_OOAME_E[] = _("T-OOAME-E");
+static const u8 SEName_T_KOAME[] = _("T-KOAME");
+static const u8 SEName_T_KOAME_E[] = _("T-KOAME-E");
+static const u8 SEName_T_KAMI[] = _("T-KAMI");
+static const u8 SEName_T_KAMI2[] = _("T-KAMI2");
+static const u8 SEName_ELEBETA[] = _("ELEBETA");
+static const u8 SEName_HINSI[] = _("HINSI");
+static const u8 SEName_EXPMAX[] = _("EXPMAX");
+static const u8 SEName_TAMAKORO[] = _("TAMAKORO");
+static const u8 SEName_TAMAKORO_E[] = _("TAMAKORO-E");
+static const u8 SEName_BASABASA[] = _("BASABASA");
+static const u8 SEName_REGI[] = _("REGI");
+static const u8 SEName_C_GAJI[] = _("C-GAJI");
+static const u8 SEName_C_MAKU_U[] = _("C-MAKU-U");
+static const u8 SEName_C_MAKU_D[] = _("C-MAKU-D");
+static const u8 SEName_C_PASI[] = _("C-PASI");
+static const u8 SEName_C_SYU[] = _("C-SYU");
+static const u8 SEName_C_PIKON[] = _("C-PIKON");
+static const u8 SEName_REAPOKE[] = _("REAPOKE");
+static const u8 SEName_OP_BASYU[] = _("OP-BASYU");
+static const u8 SEName_BT_START[] = _("BT-START");
+static const u8 SEName_DENDOU[] = _("DENDOU");
+static const u8 SEName_JIHANKI[] = _("JIHANKI");
+static const u8 SEName_TAMA[] = _("TAMA");
+static const u8 SEName_Z_SCROLL[] = _("Z-SCROLL");
+static const u8 SEName_Z_PAGE[] = _("Z-PAGE");
+static const u8 SEName_PN_ON[] = _("PN-ON");
+static const u8 SEName_PN_OFF[] = _("PN-OFF");
+static const u8 SEName_Z_SEARCH[] = _("Z-SEARCH");
+static const u8 SEName_TAMAGO[] = _("TAMAGO");
+static const u8 SEName_TB_START[] = _("TB-START");
+static const u8 SEName_TB_KON[] = _("TB-KON");
+static const u8 SEName_TB_KARA[] = _("TB-KARA");
+static const u8 SEName_BIDORO[] = _("BIDORO");
+static const u8 SEName_W085[] = _("W085");
+static const u8 SEName_W085B[] = _("W085B");
+static const u8 SEName_W231[] = _("W231");
+static const u8 SEName_W171[] = _("W171");
+static const u8 SEName_W233[] = _("W233");
+static const u8 SEName_W233B[] = _("W233B");
+static const u8 SEName_W145[] = _("W145");
+static const u8 SEName_W145B[] = _("W145B");
+static const u8 SEName_W145C[] = _("W145C");
+static const u8 SEName_W240[] = _("W240");
+static const u8 SEName_W015[] = _("W015");
+static const u8 SEName_W081[] = _("W081");
+static const u8 SEName_W081B[] = _("W081B");
+static const u8 SEName_W088[] = _("W088");
+static const u8 SEName_W016[] = _("W016");
+static const u8 SEName_W016B[] = _("W016B");
+static const u8 SEName_W003[] = _("W003");
+static const u8 SEName_W104[] = _("W104");
+static const u8 SEName_W013[] = _("W013");
+static const u8 SEName_W196[] = _("W196");
+static const u8 SEName_W086[] = _("W086");
+static const u8 SEName_W004[] = _("W004");
+static const u8 SEName_W025[] = _("W025");
+static const u8 SEName_W025B[] = _("W025B");
+static const u8 SEName_W152[] = _("W152");
+static const u8 SEName_W026[] = _("W026");
+static const u8 SEName_W172[] = _("W172");
+static const u8 SEName_W172B[] = _("W172B");
+static const u8 SEName_W053[] = _("W053");
+static const u8 SEName_W007[] = _("W007");
+static const u8 SEName_W092[] = _("W092");
+static const u8 SEName_W221[] = _("W221");
+static const u8 SEName_W221B[] = _("W221B");
+static const u8 SEName_W052[] = _("W052");
+static const u8 SEName_W036[] = _("W036");
+static const u8 SEName_W059[] = _("W059");
+static const u8 SEName_W059B[] = _("W059B");
+static const u8 SEName_W010[] = _("W010");
+static const u8 SEName_W011[] = _("W011");
+static const u8 SEName_W017[] = _("W017");
+static const u8 SEName_W019[] = _("W019");
+static const u8 SEName_W028[] = _("W028");
+static const u8 SEName_W013B[] = _("W013B");
+static const u8 SEName_W044[] = _("W044");
+static const u8 SEName_W029[] = _("W029");
+static const u8 SEName_W057[] = _("W057");
+static const u8 SEName_W056[] = _("W056");
+static const u8 SEName_W250[] = _("W250");
+static const u8 SEName_W030[] = _("W030");
+static const u8 SEName_W039[] = _("W039");
+static const u8 SEName_W054[] = _("W054");
+static const u8 SEName_W077[] = _("W077");
+static const u8 SEName_W020[] = _("W020");
+static const u8 SEName_W082[] = _("W082");
+static const u8 SEName_W047[] = _("W047");
+static const u8 SEName_W195[] = _("W195");
+static const u8 SEName_W006[] = _("W006");
+static const u8 SEName_W091[] = _("W091");
+static const u8 SEName_W146[] = _("W146");
+static const u8 SEName_W120[] = _("W120");
+static const u8 SEName_W153[] = _("W153");
+static const u8 SEName_W071B[] = _("W071B");
+static const u8 SEName_W071[] = _("W071");
+static const u8 SEName_W103[] = _("W103");
+static const u8 SEName_W062[] = _("W062");
+static const u8 SEName_W062B[] = _("W062B");
+static const u8 SEName_W048[] = _("W048");
+static const u8 SEName_W187[] = _("W187");
+static const u8 SEName_W118[] = _("W118");
+static const u8 SEName_W155[] = _("W155");
+static const u8 SEName_W122[] = _("W122");
+static const u8 SEName_W060[] = _("W060");
+static const u8 SEName_W185[] = _("W185");
+static const u8 SEName_W014[] = _("W014");
+static const u8 SEName_W043[] = _("W043");
+static const u8 SEName_W207[] = _("W207");
+static const u8 SEName_W207B[] = _("W207B");
+static const u8 SEName_W215[] = _("W215");
+static const u8 SEName_W109[] = _("W109");
+static const u8 SEName_W173[] = _("W173");
+static const u8 SEName_W280[] = _("W280");
+static const u8 SEName_W202[] = _("W202");
+static const u8 SEName_W060B[] = _("W060B");
+static const u8 SEName_W076[] = _("W076");
+static const u8 SEName_W080[] = _("W080");
+static const u8 SEName_W100[] = _("W100");
+static const u8 SEName_W107[] = _("W107");
+static const u8 SEName_W166[] = _("W166");
+static const u8 SEName_W129[] = _("W129");
+static const u8 SEName_W115[] = _("W115");
+static const u8 SEName_W112[] = _("W112");
+static const u8 SEName_W197[] = _("W197");
+static const u8 SEName_W199[] = _("W199");
+static const u8 SEName_W236[] = _("W236");
+static const u8 SEName_W204[] = _("W204");
+static const u8 SEName_W268[] = _("W268");
+static const u8 SEName_W070[] = _("W070");
+static const u8 SEName_W063[] = _("W063");
+static const u8 SEName_W127[] = _("W127");
+static const u8 SEName_W179[] = _("W179");
+static const u8 SEName_W151[] = _("W151");
+static const u8 SEName_W201[] = _("W201");
+static const u8 SEName_W161[] = _("W161");
+static const u8 SEName_W161B[] = _("W161B");
+static const u8 SEName_W227[] = _("W227");
+static const u8 SEName_W227B[] = _("W227B");
+static const u8 SEName_W226[] = _("W226");
+static const u8 SEName_W208[] = _("W208");
+static const u8 SEName_W213[] = _("W213");
+static const u8 SEName_W213B[] = _("W213B");
+static const u8 SEName_W234[] = _("W234");
+static const u8 SEName_W260[] = _("W260");
+static const u8 SEName_W328[] = _("W328");
+static const u8 SEName_W320[] = _("W320");
+static const u8 SEName_W255[] = _("W255");
+static const u8 SEName_W291[] = _("W291");
+static const u8 SEName_W089[] = _("W089");
+static const u8 SEName_W239[] = _("W239");
+static const u8 SEName_W230[] = _("W230");
+static const u8 SEName_W281[] = _("W281");
+static const u8 SEName_W327[] = _("W327");
+static const u8 SEName_W287[] = _("W287");
+static const u8 SEName_W257[] = _("W257");
+static const u8 SEName_W253[] = _("W253");
+static const u8 SEName_W258[] = _("W258");
+static const u8 SEName_W322[] = _("W322");
+static const u8 SEName_W298[] = _("W298");
+static const u8 SEName_W287B[] = _("W287B");
+static const u8 SEName_W114[] = _("W114");
+static const u8 SEName_W063B[] = _("W063B");
+
+static const u8 *const gSENames[] =
+{
+ SEName_STOP,
+ SEName_KAIFUKU,
+ SEName_PC_LOGON,
+ SEName_PC_OFF,
+ SEName_PC_ON,
+ SEName_SELECT,
+ SEName_WIN_OPEN,
+ SEName_WALL_HIT,
+ SEName_DOOR,
+ SEName_KAIDAN,
+ SEName_DANSA,
+ SEName_JITENSYA,
+ SEName_KOUKA_L,
+ SEName_KOUKA_M,
+ SEName_KOUKA_H,
+ SEName_BOWA2,
+ SEName_POKE_DEAD,
+ SEName_NIGERU,
+ SEName_JIDO_DOA,
+ SEName_NAMINORI,
+ SEName_BAN,
+ SEName_PIN,
+ SEName_BOO,
+ SEName_BOWA,
+ SEName_JYUNI,
+ SEName_A,
+ SEName_I,
+ SEName_U,
+ SEName_E,
+ SEName_O,
+ SEName_N,
+ SEName_SEIKAI,
+ SEName_HAZURE,
+ SEName_EXP,
+ SEName_JITE_PYOKO,
+ SEName_MU_PACHI,
+ SEName_TK_KASYA,
+ SEName_FU_ZAKU,
+ SEName_FU_ZAKU2,
+ SEName_FU_ZUZUZU,
+ SEName_RU_GASHIN,
+ SEName_RU_GASYAN,
+ SEName_RU_BARI,
+ SEName_RU_HYUU,
+ SEName_KI_GASYAN,
+ SEName_TK_WARPIN,
+ SEName_TK_WARPOUT,
+ SEName_TU_SAA,
+ SEName_HI_TURUN,
+ SEName_TRACK_MOVE,
+ SEName_TRACK_STOP,
+ SEName_TRACK_HAIK,
+ SEName_TRACK_DOOR,
+ SEName_MOTER,
+ SEName_CARD,
+ SEName_SAVE,
+ SEName_KON,
+ SEName_KON2,
+ SEName_KON3,
+ SEName_KON4,
+ SEName_SUIKOMU,
+ SEName_NAGERU,
+ SEName_TOY_C,
+ SEName_TOY_D,
+ SEName_TOY_E,
+ SEName_TOY_F,
+ SEName_TOY_G,
+ SEName_TOY_A,
+ SEName_TOY_B,
+ SEName_TOY_C1,
+ SEName_MIZU,
+ SEName_HASHI,
+ SEName_DAUGI,
+ SEName_PINPON,
+ SEName_FUUSEN1,
+ SEName_FUUSEN2,
+ SEName_FUUSEN3,
+ SEName_TOY_KABE,
+ SEName_TOY_DANGO,
+ SEName_DOKU,
+ SEName_ESUKA,
+ SEName_T_AME,
+ SEName_T_AME_E,
+ SEName_T_OOAME,
+ SEName_T_OOAME_E,
+ SEName_T_KOAME,
+ SEName_T_KOAME_E,
+ SEName_T_KAMI,
+ SEName_T_KAMI2,
+ SEName_ELEBETA,
+ SEName_HINSI,
+ SEName_EXPMAX,
+ SEName_TAMAKORO,
+ SEName_TAMAKORO_E,
+ SEName_BASABASA,
+ SEName_REGI,
+ SEName_C_GAJI,
+ SEName_C_MAKU_U,
+ SEName_C_MAKU_D,
+ SEName_C_PASI,
+ SEName_C_SYU,
+ SEName_C_PIKON,
+ SEName_REAPOKE,
+ SEName_OP_BASYU,
+ SEName_BT_START,
+ SEName_DENDOU,
+ SEName_JIHANKI,
+ SEName_TAMA,
+ SEName_Z_SCROLL,
+ SEName_Z_PAGE,
+ SEName_PN_ON,
+ SEName_PN_OFF,
+ SEName_Z_SEARCH,
+ SEName_TAMAGO,
+ SEName_TB_START,
+ SEName_TB_KON,
+ SEName_TB_KARA,
+ SEName_BIDORO,
+ SEName_W085,
+ SEName_W085B,
+ SEName_W231,
+ SEName_W171,
+ SEName_W233,
+ SEName_W233B,
+ SEName_W145,
+ SEName_W145B,
+ SEName_W145C,
+ SEName_W240,
+ SEName_W015,
+ SEName_W081,
+ SEName_W081B,
+ SEName_W088,
+ SEName_W016,
+ SEName_W016B,
+ SEName_W003,
+ SEName_W104,
+ SEName_W013,
+ SEName_W196,
+ SEName_W086,
+ SEName_W004,
+ SEName_W025,
+ SEName_W025B,
+ SEName_W152,
+ SEName_W026,
+ SEName_W172,
+ SEName_W172B,
+ SEName_W053,
+ SEName_W007,
+ SEName_W092,
+ SEName_W221,
+ SEName_W221B,
+ SEName_W052,
+ SEName_W036,
+ SEName_W059,
+ SEName_W059B,
+ SEName_W010,
+ SEName_W011,
+ SEName_W017,
+ SEName_W019,
+ SEName_W028,
+ SEName_W013B,
+ SEName_W044,
+ SEName_W029,
+ SEName_W057,
+ SEName_W056,
+ SEName_W250,
+ SEName_W030,
+ SEName_W039,
+ SEName_W054,
+ SEName_W077,
+ SEName_W020,
+ SEName_W082,
+ SEName_W047,
+ SEName_W195,
+ SEName_W006,
+ SEName_W091,
+ SEName_W146,
+ SEName_W120,
+ SEName_W153,
+ SEName_W071B,
+ SEName_W071,
+ SEName_W103,
+ SEName_W062,
+ SEName_W062B,
+ SEName_W048,
+ SEName_W187,
+ SEName_W118,
+ SEName_W155,
+ SEName_W122,
+ SEName_W060,
+ SEName_W185,
+ SEName_W014,
+ SEName_W043,
+ SEName_W207,
+ SEName_W207B,
+ SEName_W215,
+ SEName_W109,
+ SEName_W173,
+ SEName_W280,
+ SEName_W202,
+ SEName_W060B,
+ SEName_W076,
+ SEName_W080,
+ SEName_W100,
+ SEName_W107,
+ SEName_W166,
+ SEName_W129,
+ SEName_W115,
+ SEName_W112,
+ SEName_W197,
+ SEName_W199,
+ SEName_W236,
+ SEName_W204,
+ SEName_W268,
+ SEName_W070,
+ SEName_W063,
+ SEName_W127,
+ SEName_W179,
+ SEName_W151,
+ SEName_W201,
+ SEName_W161,
+ SEName_W161B,
+ SEName_W227,
+ SEName_W227B,
+ SEName_W226,
+ SEName_W208,
+ SEName_W213,
+ SEName_W213B,
+ SEName_W234,
+ SEName_W260,
+ SEName_W328,
+ SEName_W320,
+ SEName_W255,
+ SEName_W291,
+ SEName_W089,
+ SEName_W239,
+ SEName_W230,
+ SEName_W281,
+ SEName_W327,
+ SEName_W287,
+ SEName_W257,
+ SEName_W253,
+ SEName_W258,
+ SEName_W322,
+ SEName_W298,
+ SEName_W287B,
+ SEName_W114,
+ SEName_W063B
+};
+
+void sub_80BA0A8(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+void sub_80BA0C0(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+
+ if(gUnknown_020387B0 != 0)
+ {
+ m4aSoundMain();
+ m4aSoundMain();
+ m4aSoundMain();
+ }
+}
+
+// unused
+void CB2_StartSoundCheckMenu(void)
+{
+ u8 taskId;
+
+ SetVBlankCallback(NULL);
+ REG_DISPCNT = 0;
+ REG_BG2CNT = 0;
+ REG_BG1CNT = 0;
+ REG_BG0CNT = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ DmaFill16(3, 0, VRAM, VRAM_SIZE);
+ DmaFill32(3, 0, OAM, OAM_SIZE);
+ DmaFill16(3, 0, PLTT, PLTT_SIZE);
+ ResetPaletteFade();
+ ResetTasks();
+ ResetSpriteData();
+ SetUpWindowConfig(&gWindowConfig_81E6C3C);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ REG_WIN0H = WIN_RANGE(0, 0);
+ REG_WIN0V = WIN_RANGE(0, 0);
+ REG_WIN1H = WIN_RANGE(0, 0);
+ REG_WIN1V = WIN_RANGE(0, 0);
+ REG_WININ = 0x1111;
+ REG_WINOUT = 0x31;
+ REG_BLDCNT = 0xE1;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 7;
+ REG_IE = 1; // could be a typo of REG_IME
+ REG_IE |= 1;
+ REG_DISPSTAT |= 8;
+ SetVBlankCallback(sub_80BA0C0);
+ SetMainCallback2(sub_80BA0A8);
+ REG_DISPCNT = 0x7140;
+ taskId = CreateTask(sub_80BA258, 0);
+ TASK.WINDOW_SELECTED = BGM_WINDOW;
+ TASK.BGM_INDEX = 0;
+ TASK.SE_INDEX = 0;
+ TASK.UNK_DATA3 = 0;
+ gUnknown_020387B0 = 0;
+ TASK.UNK_DATA3 = 0; // why?
+ m4aSoundInit();
+}
+
+// Task_InitSoundCheckMenu
+void sub_80BA258(u8 taskId)
+{
+ u8 soundcheckStr[sizeof(gDebugText_SoundCheckJap)];
+ u8 bgmStr[sizeof(gDebugText_BGM)];
+ u8 seStr[sizeof(gDebugText_SE)];
+ u8 abDescStr[sizeof(gDebugText_ABDesc)];
+ u8 upDownStr[sizeof(gDebugText_UpDown)];
+ u8 driverStr[sizeof(gDebugText_DriverTest)];
+
+ memcpy(soundcheckStr, gDebugText_SoundCheckJap, sizeof(gDebugText_SoundCheckJap));
+ memcpy(bgmStr, gDebugText_BGM, sizeof(gDebugText_BGM));
+ memcpy(seStr, gDebugText_SE, sizeof(gDebugText_SE));
+ memcpy(abDescStr, gDebugText_ABDesc, sizeof(gDebugText_ABDesc));
+ memcpy(upDownStr, gDebugText_UpDown, sizeof(gDebugText_UpDown));
+ memcpy(driverStr, gDebugText_DriverTest, sizeof(gDebugText_DriverTest));
+
+ if(!gPaletteFade.active)
+ {
+ MenuDrawTextWindow(0x2, 0, 0x1B, 0x3);
+ MenuDrawTextWindow(0x2, 0x5, 0x1B, 0xA);
+ MenuDrawTextWindow(0x2, 0xC, 0x1B, 0x11);
+ MenuPrint(soundcheckStr, 4, 1);
+ MenuPrint(abDescStr, 14, 1);
+ MenuPrint(bgmStr, 4, 6);
+ MenuPrint(upDownStr, 14, 6);
+ MenuPrint(seStr, 4, 13);
+ MenuPrint(upDownStr, 14, 13);
+ MenuPrint(driverStr, 14, 18);
+ TASK.FUNC = sub_80BA384;
+ REG_WIN0H = WIN_RANGE(17, 223);
+ REG_WIN0V = WIN_RANGE(1, 31);
+ }
+}
+
+void sub_80BA384(u8 taskId) // Task_HandleDrawingSoundCheckMenuText
+{
+ sub_80BA6B8(TASK.WINDOW_SELECTED);
+ sub_80BA700(TASK.BGM_INDEX + BGM_STOP, 7, 8); // print by BGM index
+ sub_80BA79C(gBGMNames[TASK.BGM_INDEX], 11, 8);
+ sub_80BA700(TASK.SE_INDEX, 7, 15);
+ sub_80BA79C(gSENames[TASK.SE_INDEX], 11, 15);
+ TASK.FUNC = sub_80BA65C;
+}
+
+#ifdef NONMATCHING
+bool8 sub_80BA400(u8 taskId) // Task_ProcessSoundCheckMenuInput
+{
+ if(gMain.newKeys & R_BUTTON) // driver test
+ {
+ TASK.FUNC = sub_80BA800;
+ return FALSE;
+ }
+ if(gMain.newKeys & L_BUTTON)
+ {
+ TASK.FUNC = sub_80BAF84;
+ return FALSE;
+ }
+ if(gMain.newKeys & START_BUTTON)
+ {
+ TASK.FUNC = sub_80BB25C;
+ return FALSE;
+ }
+ if(gMain.newKeys & A_BUTTON) // both these cases insist on non reuses of certain data variables and cause the function to not match.
+ {
+ if(TASK.WINDOW_SELECTED != 0) // is playing?
+ {
+ if(TASK.UNK_DATA4 != 0)
+ {
+ if(TASK.SE_INDEX != 0) // why are you insiting on a non signed halfword?
+ {
+ m4aSongNumStop(TASK.UNK_DATA4);
+ }
+ else
+ {
+ m4aSongNumStop(TASK.SE_INDEX);
+ TASK.UNK_DATA4 = TASK.SE_INDEX;
+ return FALSE;
+ }
+ }
+ else if(TASK.SE_INDEX == 0) // _080BA4BA
+ {
+ return FALSE;
+ }
+ // _080BA4C4
+ m4aSongNumStart(TASK.SE_INDEX);
+ TASK.UNK_DATA4 = TASK.SE_INDEX;
+ return FALSE;
+ }
+ else // _080BA4D0
+ {
+ if(TASK.UNK_DATA3 != 0)
+ {
+ if(TASK.BGM_INDEX != 0)
+ {
+ m4aSongNumStop(TASK.UNK_DATA3 + BGM_STOP);
+ }
+ else // _080BA500
+ {
+ m4aSongNumStop(TASK.UNK_DATA3 + BGM_STOP);
+ TASK.UNK_DATA3 = TASK.BGM_INDEX;
+ return FALSE;
+ }
+ }
+ else if(TASK.BGM_INDEX == 0) // _080BA514
+ return FALSE;
+
+ m4aSongNumStart(TASK.BGM_INDEX + BGM_STOP);
+ TASK.UNK_DATA3 = TASK.BGM_INDEX;
+ }
+ return FALSE;
+ }
+ if(gMain.newKeys & B_BUTTON)
+ {
+ m4aSongNumStart(5);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ TASK.FUNC = sub_80BA68C;
+ return FALSE;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ TASK.data[8] ^= A_BUTTON; // huh?
+ return TRUE;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ TASK.data[8] ^= A_BUTTON; // huh?
+ return TRUE;
+ }
+ else
+ {
+ u16 keys = gMain.newAndRepeatedKeys & DPAD_RIGHT;
+ if(keys)
+ {
+ if(TASK.WINDOW_SELECTED != 0)
+ {
+ if(TASK.SE_INDEX > 0)
+ {
+ TASK.SE_INDEX--;
+ }
+ else
+ {
+ TASK.SE_INDEX = 0xF7;
+ }
+ }
+ else if(TASK.BGM_INDEX > 0)
+ {
+ TASK.BGM_INDEX--;
+ }
+ else
+ {
+ TASK.BGM_INDEX = 0x75;
+ }
+ return TRUE;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ if(TASK.WINDOW_SELECTED != 0)
+ {
+ if(TASK.SE_INDEX < 0xF7)
+ {
+ TASK.SE_INDEX++;
+ }
+ else
+ {
+ TASK.SE_INDEX = keys; // ??
+ }
+ }
+ else if(TASK.BGM_INDEX < 0x75)
+ {
+ TASK.BGM_INDEX++;
+ return TRUE;
+ }
+ else
+ {
+ TASK.BGM_INDEX = TASK.SE_INDEX;
+ return TRUE;
+ }
+ return TRUE;
+ }
+ if(gMain.heldKeys & SELECT_BUTTON)
+ {
+ gUnknown_020387B0 = A_BUTTON;
+ return FALSE;
+ }
+ else
+ {
+ gUnknown_020387B0 = (gMain.heldKeys & SELECT_BUTTON);
+ return FALSE;
+ }
+ }
+}
+#else
+__attribute__((naked))
+bool8 sub_80BA400(u8 taskId)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ sub sp, 0x4\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ ldr r2, _080BA428 @ =gMain\n\
+ ldrh r1, [r2, 0x2E]\n\
+ movs r0, 0x80\n\
+ lsls r0, 1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080BA434\n\
+ ldr r0, _080BA42C @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ ldr r0, _080BA430 @ =sub_80BA800\n\
+ str r0, [r1]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA428: .4byte gMain\n\
+_080BA42C: .4byte gTasks\n\
+_080BA430: .4byte sub_80BA800\n\
+_080BA434:\n\
+ movs r0, 0x80\n\
+ lsls r0, 2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080BA458\n\
+ ldr r0, _080BA450 @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ ldr r0, _080BA454 @ =sub_80BAF84\n\
+ str r0, [r1]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA450: .4byte gTasks\n\
+_080BA454: .4byte sub_80BAF84\n\
+_080BA458:\n\
+ movs r0, 0x8\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080BA478\n\
+ ldr r0, _080BA470 @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ ldr r0, _080BA474 @ =sub_80BB25C\n\
+ str r0, [r1]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA470: .4byte gTasks\n\
+_080BA474: .4byte sub_80BB25C\n\
+_080BA478:\n\
+ movs r6, 0x1\n\
+ movs r5, 0x1\n\
+ ands r5, r1\n\
+ cmp r5, 0\n\
+ beq _080BA538\n\
+ ldr r0, _080BA4AC @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r5, r1, r0\n\
+ movs r1, 0x8\n\
+ ldrsh r0, [r5, r1]\n\
+ cmp r0, 0\n\
+ beq _080BA4D0\n\
+ movs r2, 0x10\n\
+ ldrsh r0, [r5, r2]\n\
+ cmp r0, 0\n\
+ beq _080BA4BA\n\
+ movs r3, 0xC\n\
+ ldrsh r4, [r5, r3]\n\
+ cmp r4, 0\n\
+ beq _080BA4B0\n\
+ ldrh r0, [r5, 0x10]\n\
+ bl m4aSongNumStop\n\
+ b _080BA4C4\n\
+ .align 2, 0\n\
+_080BA4AC: .4byte gTasks\n\
+_080BA4B0:\n\
+ ldrh r0, [r5, 0x10]\n\
+ bl m4aSongNumStop\n\
+ strh r4, [r5, 0x10]\n\
+ b _080BA64C\n\
+_080BA4BA:\n\
+ movs r4, 0xC\n\
+ ldrsh r0, [r5, r4]\n\
+ cmp r0, 0\n\
+ bne _080BA4C4\n\
+ b _080BA64C\n\
+_080BA4C4:\n\
+ ldrh r0, [r5, 0xC]\n\
+ bl m4aSongNumStart\n\
+ ldrh r0, [r5, 0xC]\n\
+ strh r0, [r5, 0x10]\n\
+ b _080BA64C\n\
+_080BA4D0:\n\
+ ldrh r1, [r5, 0xE]\n\
+ movs r2, 0xE\n\
+ ldrsh r0, [r5, r2]\n\
+ cmp r0, 0\n\
+ beq _080BA514\n\
+ movs r3, 0xA\n\
+ ldrsh r4, [r5, r3]\n\
+ cmp r4, 0\n\
+ beq _080BA500\n\
+ ldr r0, _080BA4FC @ =0x0000015d\n\
+ adds r4, r0, 0\n\
+ adds r0, r1, r4\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ bl m4aSongNumStop\n\
+ ldrh r1, [r5, 0xA]\n\
+ adds r4, r1\n\
+ lsls r4, 16\n\
+ lsrs r4, 16\n\
+ adds r0, r4, 0\n\
+ b _080BA528\n\
+ .align 2, 0\n\
+_080BA4FC: .4byte 0x0000015d\n\
+_080BA500:\n\
+ ldr r2, _080BA510 @ =0x0000015d\n\
+ adds r0, r1, r2\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ bl m4aSongNumStop\n\
+ strh r4, [r5, 0xE]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA510: .4byte 0x0000015d\n\
+_080BA514:\n\
+ ldrh r1, [r5, 0xA]\n\
+ movs r3, 0xA\n\
+ ldrsh r0, [r5, r3]\n\
+ cmp r0, 0\n\
+ bne _080BA520\n\
+ b _080BA64C\n\
+_080BA520:\n\
+ ldr r4, _080BA534 @ =0x0000015d\n\
+ adds r0, r1, r4\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+_080BA528:\n\
+ bl m4aSongNumStart\n\
+ ldrh r0, [r5, 0xA]\n\
+ strh r0, [r5, 0xE]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA534: .4byte 0x0000015d\n\
+_080BA538:\n\
+ movs r0, 0x2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080BA570\n\
+ movs r0, 0x5\n\
+ bl m4aSongNumStart\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ str r5, [sp]\n\
+ movs r1, 0\n\
+ movs r2, 0\n\
+ movs r3, 0x10\n\
+ bl BeginNormalPaletteFade\n\
+ ldr r1, _080BA568 @ =gTasks\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ ldr r1, _080BA56C @ =sub_80BA68C\n\
+ str r1, [r0]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA568: .4byte gTasks\n\
+_080BA56C: .4byte sub_80BA68C\n\
+_080BA570:\n\
+ ldrh r1, [r2, 0x30]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080BA582\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080BA59C\n\
+_080BA582:\n\
+ ldr r0, _080BA598 @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ ldrh r0, [r1, 0x8]\n\
+ eors r0, r6\n\
+ strh r0, [r1, 0x8]\n\
+_080BA592:\n\
+ movs r0, 0x1\n\
+ b _080BA64E\n\
+ .align 2, 0\n\
+_080BA598: .4byte gTasks\n\
+_080BA59C:\n\
+ movs r0, 0x10\n\
+ ands r0, r1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ cmp r3, 0\n\
+ beq _080BA5EA\n\
+ ldr r0, _080BA5CC @ =gTasks\n\
+ lsls r1, r4, 2\n\
+ adds r1, r4\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r2, 0x8\n\
+ ldrsh r0, [r1, r2]\n\
+ cmp r0, 0\n\
+ beq _080BA5D6\n\
+ ldrh r2, [r1, 0xC]\n\
+ movs r3, 0xC\n\
+ ldrsh r0, [r1, r3]\n\
+ cmp r0, 0\n\
+ ble _080BA5D0\n\
+ subs r0, r2, 0x1\n\
+ strh r0, [r1, 0xC]\n\
+ b _080BA592\n\
+ .align 2, 0\n\
+_080BA5CC: .4byte gTasks\n\
+_080BA5D0:\n\
+ movs r0, 0xF7\n\
+ strh r0, [r1, 0xC]\n\
+ b _080BA592\n\
+_080BA5D6:\n\
+ ldrh r2, [r1, 0xA]\n\
+ movs r4, 0xA\n\
+ ldrsh r0, [r1, r4]\n\
+ cmp r0, 0\n\
+ ble _080BA5E4\n\
+ subs r0, r2, 0x1\n\
+ b _080BA5E6\n\
+_080BA5E4:\n\
+ movs r0, 0x75\n\
+_080BA5E6:\n\
+ strh r0, [r1, 0xA]\n\
+ b _080BA592\n\
+_080BA5EA:\n\
+ movs r0, 0x20\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080BA630\n\
+ ldr r1, _080BA614 @ =gTasks\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ adds r1, r0, r1\n\
+ movs r0, 0x8\n\
+ ldrsh r2, [r1, r0]\n\
+ cmp r2, 0\n\
+ beq _080BA61C\n\
+ ldrh r2, [r1, 0xC]\n\
+ movs r4, 0xC\n\
+ ldrsh r0, [r1, r4]\n\
+ cmp r0, 0xF6\n\
+ bgt _080BA618\n\
+ adds r0, r2, 0x1\n\
+ strh r0, [r1, 0xC]\n\
+ b _080BA592\n\
+ .align 2, 0\n\
+_080BA614: .4byte gTasks\n\
+_080BA618:\n\
+ strh r3, [r1, 0xC]\n\
+ b _080BA592\n\
+_080BA61C:\n\
+ ldrh r3, [r1, 0xA]\n\
+ movs r4, 0xA\n\
+ ldrsh r0, [r1, r4]\n\
+ cmp r0, 0x74\n\
+ bgt _080BA62C\n\
+ adds r0, r3, 0x1\n\
+ strh r0, [r1, 0xA]\n\
+ b _080BA592\n\
+_080BA62C:\n\
+ strh r2, [r1, 0xA]\n\
+ b _080BA592\n\
+_080BA630:\n\
+ ldrh r1, [r2, 0x2C]\n\
+ movs r0, 0x4\n\
+ ands r0, r1\n\
+ lsls r0, 16\n\
+ lsrs r1, r0, 16\n\
+ cmp r1, 0\n\
+ beq _080BA648\n\
+ ldr r0, _080BA644 @ =gUnknown_020387B0\n\
+ strb r6, [r0]\n\
+ b _080BA64C\n\
+ .align 2, 0\n\
+_080BA644: .4byte gUnknown_020387B0\n\
+_080BA648:\n\
+ ldr r0, _080BA658 @ =gUnknown_020387B0\n\
+ strb r1, [r0]\n\
+_080BA64C:\n\
+ movs r0, 0\n\
+_080BA64E:\n\
+ add sp, 0x4\n\
+ pop {r4-r6}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
+_080BA658: .4byte gUnknown_020387B0\n\
+ .syntax divided");
+}
+#endif
+
+void sub_80BA65C(u8 taskId)
+{
+ if(sub_80BA400(taskId) != FALSE)
+ TASK.FUNC = sub_80BA384;
+}
+
+void sub_80BA68C(u8 taskId)
+{
+ if(!gPaletteFade.active)
+ {
+ DestroyTask(taskId);
+ SetMainCallback2(CB2_InitTitleScreen);
+ }
+}
+
+void sub_80BA6B8(u8 windowType)
+{
+ switch(windowType)
+ {
+ case BGM_WINDOW:
+ default:
+ REG_WIN1H = WIN_RANGE(17, 223);
+ REG_WIN1V = WIN_RANGE(41, 87);
+ break;
+ case SE_WINDOW:
+ REG_WIN1H = WIN_RANGE(17, 223);
+ REG_WIN1V = WIN_RANGE(97, 143);
+ break;
+ }
+}
+
+void sub_80BA700(u16 soundIndex, u16 x, u16 y) // PrintSoundNumber ?
+{
+ u8 i;
+ u8 str[5];
+ bool8 someBool;
+ u8 divisorValue;
+
+ for(i = 0; i < 3; i++)
+ str[i] = 0; // initialize array
+
+ str[3] = CHAR_ELLIPSIS;
+ str[4] = EOS;
+ someBool = FALSE;
+
+ divisorValue = soundIndex / 100;
+ if(divisorValue)
+ {
+ str[0] = divisorValue + CHAR_0;
+ someBool = TRUE;
+ }
+
+ divisorValue = (soundIndex % 100) / 10;
+ if(divisorValue || someBool != FALSE)
+ str[1] = divisorValue + CHAR_0;
+
+ str[2] = ((soundIndex % 100) % 10) + CHAR_0;
+ MenuPrint(str, x, y);
+}
+
+void sub_80BA79C(const u8 *const string, u16 x, u16 y)
+{
+ u8 i;
+ u8 str[11];
+
+ for(i = 0; i < 11; i++)
+ str[i] = 0; // format string.
+
+ str[10] = EOS; // the above for loop formats the last element of the array unnecessarily.
+
+ for(i = 0; string[i] != EOS && i < 10; i++)
+ str[i] = string[i];
+
+ MenuPrint(str, x, y);
+}
+
+void sub_80BA800(u8 taskId) // Task_DrawDriverTestMenu
+{
+ u8 bbackStr[sizeof(gDebugText_BBack)];
+ u8 aplayStr[sizeof(gDebugText_APlay)];
+ u8 voiceStr[sizeof(gDebugText_Voice)];
+ u8 volumeStr[sizeof(gDebugText_Volume)];
+ u8 panpotStr[sizeof(gDebugText_Panpot)];
+ u8 pitchStr[sizeof(gDebugText_Pitch)];
+ u8 lengthStr[sizeof(gDebugText_Length)];
+ u8 releaseStr[sizeof(gDebugText_Release)];
+ u8 progressStr[sizeof(gDebugText_Progress)];
+ u8 chorusStr[sizeof(gDebugText_Chorus)];
+ u8 priorityStr[sizeof(gDebugText_Priority)];
+ u8 playingStr[sizeof(gDebugText_Playing)];
+ u8 reverseStr[sizeof(gDebugText_Reverse)];
+ u8 stereoStr[sizeof(gDebugText_Stereo)];
+
+ memcpy(bbackStr, gDebugText_BBack, sizeof(gDebugText_BBack));
+ memcpy(aplayStr, gDebugText_APlay, sizeof(gDebugText_APlay));
+ memcpy(voiceStr, gDebugText_Voice, sizeof(gDebugText_Voice));
+ memcpy(volumeStr, gDebugText_Volume, sizeof(gDebugText_Volume));
+ memcpy(panpotStr, gDebugText_Panpot, sizeof(gDebugText_Panpot));
+ memcpy(pitchStr, gDebugText_Pitch, sizeof(gDebugText_Pitch));
+ memcpy(lengthStr, gDebugText_Length, sizeof(gDebugText_Length));
+ memcpy(releaseStr, gDebugText_Release, sizeof(gDebugText_Release));
+ memcpy(progressStr, gDebugText_Progress, sizeof(gDebugText_Progress));
+ memcpy(chorusStr, gDebugText_Chorus, sizeof(gDebugText_Chorus));
+ memcpy(priorityStr, gDebugText_Priority, sizeof(gDebugText_Priority));
+ memcpy(playingStr, gDebugText_Playing, sizeof(gDebugText_Playing));
+ memcpy(reverseStr, gDebugText_Reverse, sizeof(gDebugText_Reverse));
+ memcpy(stereoStr, gDebugText_Stereo, sizeof(gDebugText_Stereo));
+
+ REG_DISPCNT = 0x3140;
+ MenuDrawTextWindow(0, 0, 0x1D, 0x13);
+ MenuPrint(bbackStr, 0x13, 0x4);
+ MenuPrint(aplayStr, 0x13, 0x2);
+ MenuPrint(voiceStr, 0x2, 0x1);
+ MenuPrint(volumeStr, 0x2, 0x3);
+ MenuPrint(panpotStr, 0x2, 0x5);
+ MenuPrint(pitchStr, 0x2, 0x7);
+ MenuPrint(lengthStr, 0x2, 0x9);
+ MenuPrint(releaseStr, 0x2, 0xB);
+ MenuPrint(progressStr, 0x2, 0xD);
+ MenuPrint(chorusStr, 0x2, 0xF);
+ MenuPrint(priorityStr, 0x2, 0x11);
+ MenuPrint(playingStr, 0x13, 0x10);
+ MenuPrint(reverseStr, 0x13, 0xE);
+ MenuPrint(stereoStr, 0x13, 0xC);
+ REG_WIN0H = WIN_RANGE(0, 240);
+ REG_WIN0V = WIN_RANGE(0, 160);
+ gUnknown_020387B3 = 0;
+ gUnknown_020387B1 = 0;
+ gUnknown_020387B2 = 0;
+ gUnknown_03005D30 = NULL;
+ gUnknown_020387D8 = 0;
+ gUnknown_020387D9 = 1;
+ gUnknown_020387B4[CRY_TEST_UNK0] = 0;
+ gUnknown_020387B4[CRY_TEST_VOLUME] = 0x78;
+ gUnknown_020387B4[CRY_TEST_PANPOT] = 0;
+ gUnknown_020387B4[CRY_TEST_PITCH] = 0x3C00;
+ gUnknown_020387B4[CRY_TEST_LENGTH] = 0xB4;
+ gUnknown_020387B4[CRY_TEST_PROGRESS] = 0;
+ gUnknown_020387B4[CRY_TEST_RELEASE] = 0;
+ gUnknown_020387B4[CRY_TEST_CHORUS] = 0;
+ gUnknown_020387B4[CRY_TEST_PRIORITY] = 2;
+ sub_80BAD5C();
+ sub_80BAE10(0, 0);
+ TASK.FUNC = sub_80BAA48;
+}
+
+void sub_80BAA48(u8 taskId) // Task_ProcessDriverTestInput
+{
+ if(gMain.newKeys & B_BUTTON)
+ {
+ REG_DISPCNT = 0x7140;
+ REG_WIN0H = WIN_RANGE(17, 223);
+ REG_WIN0V = WIN_RANGE(1, 31);
+ MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
+ TASK.FUNC = sub_80BA258;
+ return;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_UP) // _080BAAA8
+ {
+ u8 backupVar = gUnknown_020387B3;
+ if(--gUnknown_020387B3 < 0)
+ gUnknown_020387B3 = 8;
+
+ sub_80BAE10(backupVar, gUnknown_020387B3);
+ return;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_DOWN) // _080BAAD0
+ {
+ u8 backupVar = gUnknown_020387B3;
+ if(++gUnknown_020387B3 > 8)
+ gUnknown_020387B3 = 0;
+
+ sub_80BAE10(backupVar, gUnknown_020387B3);
+ return;
+ }
+ if(gMain.newKeys & START_BUTTON) // _080BAAF8
+ {
+ gUnknown_020387D8 ^= 1;
+ sub_80BAD5C();
+ return;
+ }
+ if(gMain.newKeys & SELECT_BUTTON) // _080BAB14
+ {
+ gUnknown_020387D9 ^= 1;
+ sub_80BAD5C();
+ SetPokemonCryStereo(gUnknown_020387D9);
+ return;
+ }
+ if(gMain.newAndRepeatedKeys & R_BUTTON) // _080BAB38
+ {
+ sub_80BACDC(10);
+ sub_80BAD5C();
+ return;
+ }
+ if(gMain.newAndRepeatedKeys & L_BUTTON) // _080BAB46
+ {
+ sub_80BACDC(-10);
+ sub_80BAD5C();
+ return;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_LEFT) // _080BAB56
+ {
+ sub_80BACDC(-1);
+ sub_80BAD5C();
+ return;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_RIGHT) // _080BAB64
+ {
+ sub_80BACDC(1);
+ sub_80BAD5C();
+ return;
+ }
+ if(gMain.newKeys & A_BUTTON) // _080BAB78
+ {
+ u8 divide, remaining;
+
+ SetPokemonCryVolume(gUnknown_020387B4[CRY_TEST_VOLUME]);
+ SetPokemonCryPanpot(gUnknown_020387B4[CRY_TEST_PANPOT]);
+ SetPokemonCryPitch(gUnknown_020387B4[CRY_TEST_PITCH]);
+ SetPokemonCryLength(gUnknown_020387B4[CRY_TEST_LENGTH]);
+ SetPokemonCryProgress(gUnknown_020387B4[CRY_TEST_PROGRESS]);
+ SetPokemonCryRelease(gUnknown_020387B4[CRY_TEST_RELEASE]);
+ SetPokemonCryChorus(gUnknown_020387B4[CRY_TEST_CHORUS]);
+ SetPokemonCryPriority(gUnknown_020387B4[CRY_TEST_PRIORITY]);
+
+ remaining = gUnknown_020387B4[CRY_TEST_UNK0] % 128;
+ divide = gUnknown_020387B4[CRY_TEST_UNK0] / 128;
+
+ switch(divide)
+ {
+ case 0:
+ if(gUnknown_020387D8)
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_84537C0[remaining]);
+ else
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8452590[remaining]);
+ break;
+ case 1:
+ if(gUnknown_020387D8)
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8453DC0[remaining]);
+ else
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8452B90[remaining]);
+ break;
+ case 2:
+ if(gUnknown_020387D8)
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_84543C0[remaining]);
+ else
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8453190[remaining]);
+ break;
+ case 3:
+ if(gUnknown_020387D8)
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_84549C0[remaining]);
+ else
+ gUnknown_03005D30 = SetPokemonCryTone(&voicegroup_8453790[remaining]);
+ break;
+ }
+ }
+
+ // _080BACA2
+ if(gUnknown_03005D30 != NULL)
+ {
+ gUnknown_020387B1 = IsPokemonCryPlaying(gUnknown_03005D30);
+
+ if(gUnknown_020387B1 != gUnknown_020387B2)
+ sub_80BAD5C();
+
+ gUnknown_020387B2 = gUnknown_020387B1;
+ }
+}
+
+void sub_80BACDC(s8 var)
+{
+ int minMaxArray[ARRAY_COUNT(gUnknown_083D039C)];
+
+ memcpy(minMaxArray, gUnknown_083D039C, sizeof(gUnknown_083D039C));
+ gUnknown_020387B4[gUnknown_020387B3] += var;
+
+ if(gUnknown_020387B4[gUnknown_020387B3] > minMaxArray[MULTI_DIM_ARR(gUnknown_020387B3, B_16, MAX)])
+ gUnknown_020387B4[gUnknown_020387B3] = minMaxArray[MULTI_DIM_ARR(gUnknown_020387B3, B_16, MIN)];
+
+ if(gUnknown_020387B4[gUnknown_020387B3] < minMaxArray[MULTI_DIM_ARR(gUnknown_020387B3, B_16, MIN)])
+ gUnknown_020387B4[gUnknown_020387B3] = minMaxArray[MULTI_DIM_ARR(gUnknown_020387B3, B_16, MAX)];
+}
+
+void sub_80BAD5C(void)
+{
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_UNK0] + 1, 0xB, 0x1, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_VOLUME], 0xB, 0x3, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_PANPOT], 0xB, 0x5, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_PITCH], 0xB, 0x7, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_LENGTH], 0xB, 0x9, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_RELEASE], 0xB, 0xB, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_PROGRESS], 0xB, 0xD, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_CHORUS], 0xB, 0xF, 0x5);
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_PRIORITY], 0xB, 0x11, 0x5);
+ sub_80BAE78(gUnknown_020387B1, 0x1B, 0x10, 0x1);
+ sub_80BAE78(gUnknown_020387D8, 0x1B, 0xE, 0x1);
+ sub_80BAE78(gUnknown_020387D9, 0x1B, 0xC, 0x1);
+}
+
+void sub_80BAE10(u8 var1, u8 var2)
+{
+ u8 str1[sizeof(gUnknown_083D03DC)];
+ u8 str2[sizeof(gUnknown_083D03DE)];
+
+ memcpy(str1, gUnknown_083D03DC, sizeof(gUnknown_083D03DC));
+ memcpy(str2, gUnknown_083D03DE, sizeof(gUnknown_083D03DE));
+
+ MenuPrint(str2, gUnknown_083D0300[MULTI_DIM_ARR(var1, B_16, 0)], gUnknown_083D0300[MULTI_DIM_ARR(var1, B_16, 1)]);
+ MenuPrint(str1, gUnknown_083D0300[MULTI_DIM_ARR(var2, B_16, 0)], gUnknown_083D0300[MULTI_DIM_ARR(var2, B_16, 1)]);
+}
+
+/*void sub_80BAE78(int var1, u16 var2, u16 var3, u8 var4)
+{
+ u32 powers[6];
+ u8 str[8];
+ u8 i;
+ u8 someVar, someVar2;
+
+ memcpy(powers, gUnknown_083D03E0, sizeof(powers);
+
+ for(i = 0; i < var4; i++)
+ str[i] = 0;
+
+ str[var4 + 1] = CHAR_0;
+ someVar = 0;
+
+ if(var1 < 0) // make absolute value? wtf
+ {
+ var1 = -var1; // just use abs?
+ someVar = 1;
+ }
+
+ // _080BAED6
+ someVar2 = 0;
+ if(var4 == 1)
+ someVar2 = 1;
+
+ // _080BAEE2
+ for(;;)
+ {
+
+ }
+}*/
+
+// no.
+__attribute__((naked))
+void sub_80BAE78(int var1, u16 var2, u16 var3, u8 var4)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x2C\n\
+ mov r8, r0\n\
+ lsls r1, 16\n\
+ lsrs r6, r1, 16\n\
+ lsls r2, 16\n\
+ lsrs r2, 16\n\
+ lsls r3, 24\n\
+ lsrs r7, r3, 24\n\
+ mov r1, sp\n\
+ ldr r0, _080BAF80 @ =gUnknown_083D03E0\n\
+ ldm r0!, {r3-r5}\n\
+ stm r1!, {r3-r5}\n\
+ ldm r0!, {r3-r5}\n\
+ stm r1!, {r3-r5}\n\
+ movs r5, 0\n\
+ add r0, sp, 0x18\n\
+ mov r9, r0\n\
+ cmp r5, r7\n\
+ bgt _080BAEC0\n\
+ mov r4, r9\n\
+ movs r3, 0\n\
+_080BAEAC:\n\
+ lsls r0, r5, 24\n\
+ asrs r0, 24\n\
+ adds r1, r4, r0\n\
+ strb r3, [r1]\n\
+ adds r0, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ asrs r0, 24\n\
+ cmp r0, r7\n\
+ ble _080BAEAC\n\
+_080BAEC0:\n\
+ adds r0, r7, 0x1\n\
+ add r0, r9\n\
+ movs r1, 0xFF\n\
+ strb r1, [r0]\n\
+ movs r1, 0\n\
+ mov r3, r8\n\
+ cmp r3, 0\n\
+ bge _080BAED6\n\
+ negs r3, r3\n\
+ mov r8, r3\n\
+ movs r1, 0x1\n\
+_080BAED6:\n\
+ movs r4, 0\n\
+ mov r10, r4\n\
+ cmp r7, 0x1\n\
+ bne _080BAEE2\n\
+ movs r5, 0x1\n\
+ mov r10, r5\n\
+_080BAEE2:\n\
+ subs r0, r7, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ lsls r0, r5, 24\n\
+ lsls r6, 24\n\
+ str r6, [sp, 0x24]\n\
+ lsls r2, 24\n\
+ str r2, [sp, 0x28]\n\
+ cmp r0, 0\n\
+ blt _080BAF62\n\
+ str r1, [sp, 0x20]\n\
+_080BAEF8:\n\
+ asrs r6, r0, 24\n\
+ lsls r0, r6, 2\n\
+ add r0, sp\n\
+ ldr r1, [r0]\n\
+ mov r0, r8\n\
+ bl __divsi3\n\
+ lsls r0, 24\n\
+ lsrs r2, r0, 24\n\
+ cmp r0, 0\n\
+ bne _080BAF1A\n\
+ mov r0, r10\n\
+ cmp r0, 0\n\
+ bne _080BAF1A\n\
+ lsls r4, r5, 24\n\
+ cmp r6, 0\n\
+ bne _080BAF46\n\
+_080BAF1A:\n\
+ lsls r4, r5, 24\n\
+ ldr r3, [sp, 0x20]\n\
+ cmp r3, 0\n\
+ beq _080BAF34\n\
+ mov r5, r10\n\
+ cmp r5, 0\n\
+ bne _080BAF34\n\
+ asrs r0, r4, 24\n\
+ subs r0, r7, r0\n\
+ subs r0, 0x1\n\
+ add r0, r9\n\
+ movs r1, 0xAE\n\
+ strb r1, [r0]\n\
+_080BAF34:\n\
+ asrs r1, r4, 24\n\
+ subs r1, r7, r1\n\
+ add r1, r9\n\
+ lsls r0, r2, 24\n\
+ asrs r0, 24\n\
+ subs r0, 0x5F\n\
+ strb r0, [r1]\n\
+ movs r0, 0x1\n\
+ mov r10, r0\n\
+_080BAF46:\n\
+ asrs r4, 24\n\
+ lsls r0, r4, 2\n\
+ add r0, sp\n\
+ ldr r1, [r0]\n\
+ mov r0, r8\n\
+ bl __modsi3\n\
+ mov r8, r0\n\
+ subs r4, 0x1\n\
+ lsls r4, 24\n\
+ lsrs r5, r4, 24\n\
+ lsls r0, r5, 24\n\
+ cmp r0, 0\n\
+ bge _080BAEF8\n\
+_080BAF62:\n\
+ ldr r3, [sp, 0x24]\n\
+ lsrs r1, r3, 24\n\
+ ldr r4, [sp, 0x28]\n\
+ lsrs r2, r4, 24\n\
+ mov r0, r9\n\
+ bl MenuPrint\n\
+ add sp, 0x2C\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080BAF80: .4byte gUnknown_083D03E0\n\
+ .syntax divided");
+}
+
+void sub_80BAF84(u8 taskId)
+{
+ u8 seStr[sizeof(gOtherText_SE)];
+ u8 panStr[sizeof(gOtherText_Pan)];
+ u8 playingStr[sizeof(gDebugText_Playing)];
+
+ memcpy(seStr, gOtherText_SE, sizeof(gOtherText_SE));
+ memcpy(panStr, gOtherText_Pan, sizeof(gOtherText_Pan));
+ memcpy(playingStr, gDebugText_Playing, sizeof(gDebugText_Playing));
+
+ REG_DISPCNT = 0x3140;
+ MenuDrawTextWindow(0, 0, 0x1D, 0x13);
+ MenuPrint(seStr, 3, 2);
+ MenuPrint(panStr, 3, 4);
+ MenuPrint(playingStr, 3, 8);
+ REG_WIN0H = WIN_RANGE(0, 240);
+ REG_WIN0V = WIN_RANGE(0, 160);
+ gUnknown_020387B4[CRY_TEST_UNK0] = 1;
+ gUnknown_020387B4[CRY_TEST_PANPOT] = 0;
+ gUnknown_020387B4[CRY_TEST_CHORUS] = 0;
+ gUnknown_020387B4[CRY_TEST_PROGRESS] = 0;
+ gUnknown_020387B4[CRY_TEST_RELEASE] = 0;
+ sub_80BB1D4();
+ TASK.FUNC = sub_80BB038;
+}
+
+void sub_80BB038(u8 taskId)
+{
+ sub_80BB1D4();
+ if(gUnknown_020387B4[CRY_TEST_PROGRESS])
+ {
+ if(gUnknown_020387B4[CRY_TEST_RELEASE])
+ {
+ gUnknown_020387B4[CRY_TEST_RELEASE]--;
+ }
+ else // _080BB05C
+ {
+ s8 panpot = gUnknown_083D03F8[gUnknown_020387B4[CRY_TEST_PANPOT]];
+ if(panpot != -128)
+ {
+ if(panpot == 0x7F)
+ {
+ gUnknown_020387B4[CRY_TEST_CHORUS] += 2;
+ if(gUnknown_020387B4[CRY_TEST_CHORUS] < 0x3F)
+ SE12PanpotControl(gUnknown_020387B4[CRY_TEST_CHORUS]);
+ }
+ }
+ else // _080BB08C
+ {
+ gUnknown_020387B4[CRY_TEST_CHORUS] -= 2;
+ if(gUnknown_020387B4[CRY_TEST_CHORUS] > -0x40)
+ SE12PanpotControl(gUnknown_020387B4[CRY_TEST_CHORUS]);
+ }
+ }
+ }
+ // _080BB0A2
+ if(gMain.newKeys & B_BUTTON)
+ {
+ REG_DISPCNT = 0x7140;
+ REG_WIN0H = WIN_RANGE(17, 223);
+ REG_WIN0V = WIN_RANGE(1, 31);
+ MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
+ TASK.FUNC = sub_80BA258;
+ return;
+ }
+ if(gMain.newKeys & A_BUTTON) // _080BB104
+ {
+ s8 panpot = gUnknown_083D03F8[gUnknown_020387B4[CRY_TEST_PANPOT]];
+ if(panpot != -128)
+ {
+ if(panpot == 0x7F)
+ {
+ PlaySE12WithPanning(gUnknown_020387B4[CRY_TEST_UNK0], -0x40);
+ gUnknown_020387B4[CRY_TEST_CHORUS] = -0x40;
+ gUnknown_020387B4[CRY_TEST_PROGRESS] = 1;
+ gUnknown_020387B4[CRY_TEST_RELEASE] = 0x1E;
+ return;
+ }
+ }
+ else // _080BB140
+ {
+ PlaySE12WithPanning(gUnknown_020387B4[CRY_TEST_UNK0], 0x3F);
+ gUnknown_020387B4[CRY_TEST_CHORUS] = 0x3F;
+ gUnknown_020387B4[CRY_TEST_PROGRESS] = 1;
+ gUnknown_020387B4[CRY_TEST_RELEASE] = 0x1E;
+ return;
+ }
+ // _080BB154
+ PlaySE12WithPanning(gUnknown_020387B4[CRY_TEST_UNK0], panpot);
+ gUnknown_020387B4[CRY_TEST_PROGRESS] = 0;
+ return;
+ }
+ if(gMain.newKeys & L_BUTTON) // _080BB15E
+ {
+ gUnknown_020387B4[CRY_TEST_PANPOT]++;
+ if(gUnknown_020387B4[CRY_TEST_PANPOT] > 4)
+ gUnknown_020387B4[CRY_TEST_PANPOT] = 0;
+ }
+ if(gMain.newKeys & R_BUTTON) // _080BB176
+ {
+ gUnknown_020387B4[CRY_TEST_PANPOT]--;
+ if(gUnknown_020387B4[CRY_TEST_PANPOT] < 0)
+ gUnknown_020387B4[CRY_TEST_PANPOT] = 4;
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_RIGHT) // _080BB192
+ {
+ gUnknown_020387B4[CRY_TEST_UNK0]++;
+ if(gUnknown_020387B4[CRY_TEST_UNK0] > 0xF7)
+ gUnknown_020387B4[CRY_TEST_UNK0] = 0;
+ }
+ else if(gMain.newAndRepeatedKeys & DPAD_LEFT) // _080BB1B0
+ {
+ gUnknown_020387B4[CRY_TEST_UNK0]--;
+ if(gUnknown_020387B4[CRY_TEST_UNK0] < 0)
+ gUnknown_020387B4[CRY_TEST_UNK0] = 0xF7;
+ }
+}
+
+void sub_80BB1D4(void)
+{
+ u8 lrStr[sizeof(gOtherText_LR)];
+ u8 rlStr[sizeof(gOtherText_RL)];
+
+ memcpy(lrStr, gOtherText_LR, sizeof(lrStr));
+ memcpy(rlStr, gOtherText_RL, sizeof(rlStr));
+
+ sub_80BAE78(gUnknown_020387B4[CRY_TEST_UNK0], 7, 2, 3);
+
+ switch(gUnknown_083D03F8[gUnknown_020387B4[CRY_TEST_PANPOT]])
+ {
+ case 0x7F:
+ MenuPrint(lrStr, 7, 4);
+ break;
+ case -0x80:
+ MenuPrint(rlStr, 7, 4);
+ break;
+ default:
+ sub_80BAE78(gUnknown_083D03F8[gUnknown_020387B4[CRY_TEST_PANPOT]], 7, 4, 3);
+ break;
+ }
+ sub_80BAE78(IsSEPlaying(), 12, 8, 1);
+}
+
+void sub_80BB25C(u8 taskId)
+{
+ struct CryRelatedStruct cryStruct, cryStruct2;
+ u8 zero;
+
+ SetUpWindowConfig(&gWindowConfig_81E6C3C);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ gUnknown_03005D34 = 1;
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+
+ cryStruct.unk0 = 0x2000;
+ cryStruct.unk2 = 29;
+ cryStruct.paletteNo = 12;
+ cryStruct.yPos = 30;
+ cryStruct.xPos = 4;
+
+ zero = 0; // wtf?
+ gUnknown_03005E98 = 0;
+
+ while(sub_8119E3C(&cryStruct, 3) == FALSE);
+
+ cryStruct2.unk0 = 0;
+ cryStruct2.unk2 = 15;
+ cryStruct2.paletteNo = 13;
+ cryStruct2.xPos = 12;
+ cryStruct2.yPos = 12;
+
+ zero = 0; // wtf?
+ gUnknown_03005E98 = 0;
+
+ while(ShowPokedexCryScreen(&cryStruct2, 2) == FALSE);
+
+ MenuDrawTextWindow(0, 16, 5, 19);
+ sub_80BB494();
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG2CNT = 0xF01;
+ REG_BG3CNT = 0x1D03;
+ REG_DISPCNT = 0x1d40;
+ m4aMPlayFadeOutTemporarily(&gMPlay_BGM, 2);
+ TASK.FUNC = sub_80BB3B4;
+}
+
+void sub_80BB3B4(u8 taskId)
+{
+ sub_8119F88(3);
+
+ if(gMain.newKeys & A_BUTTON)
+ {
+ sub_811A050(gUnknown_03005D34);
+ }
+ if(gMain.newKeys & R_BUTTON)
+ {
+ StopCryAndClearCrySongs();
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if(--gUnknown_03005D34 == 0)
+ gUnknown_03005D34 = 384; // total species
+ sub_80BB494();
+ }
+ if(gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if(++gUnknown_03005D34 > 384)
+ gUnknown_03005D34 = 1;
+ sub_80BB494();
+ }
+ if(gMain.newKeys & B_BUTTON)
+ {
+ REG_DISPCNT = 0x7140;
+ REG_WIN0H = WIN_RANGE(17, 223);
+ REG_WIN0V = WIN_RANGE(1, 31);
+ MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
+ TASK.FUNC = sub_80BA258;
+ DestroyCryMeterNeedleSprite();
+ }
+}
+
+void sub_80BB494(void)
+{
+ sub_80BAE78(gUnknown_03005D34, 1, 17, 3);
+}
diff --git a/src/tv.c b/src/tv.c
index 4bd11a9b9..27fe9b84c 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -44,7 +44,6 @@ struct UnkTvStruct
s8 var0;
};
-extern struct Struct30042E0 gBattleResults;
extern u8 gUnknown_0300430A[11];
struct OutbreakPokemon
@@ -430,15 +429,15 @@ void TakeTVShowInSearchOfTrainersOffTheAir(void);
void GabbyAndTyBeforeInterview(void)
{
u8 i;
- gSaveBlock1.gabbyAndTyData.mon1 = gBattleResults.unk6;
- gSaveBlock1.gabbyAndTyData.mon2 = gBattleResults.unk26;
- gSaveBlock1.gabbyAndTyData.lastMove = gBattleResults.unk22;
+ gSaveBlock1.gabbyAndTyData.mon1 = gBattleResults.Poke1Species;
+ gSaveBlock1.gabbyAndTyData.mon2 = gBattleResults.OpponentSpecies;
+ gSaveBlock1.gabbyAndTyData.lastMove = gBattleResults.LastUsedMove;
if (gSaveBlock1.gabbyAndTyData.battleNum != 0xff)
{
gSaveBlock1.gabbyAndTyData.battleNum ++;
}
gSaveBlock1.gabbyAndTyData.valA_0 = gBattleResults.unk5_0;
- if (gBattleResults.unk0)
+ if (gBattleResults.PlayerFaintCounter)
{
gSaveBlock1.gabbyAndTyData.valA_1 = 1;
} else
@@ -612,11 +611,11 @@ void sub_80BDEC8(void) {
total = 0;
sub_80BEB20();
sub_80BE778();
- if (gBattleResults.unk28 == 0) {
+ if (gBattleResults.CaughtPoke == 0) {
sub_80BE074();
} else {
sub_80BE028();
- if (sub_80BF77C(0xffff) == 0 && StringCompareWithoutExtCtrlCodes(gSpeciesNames[gBattleResults.unk28], gBattleResults.unk2A) != 0) {
+ if (sub_80BF77C(0xffff) == 0 && StringCompareWithoutExtCtrlCodes(gSpeciesNames[gBattleResults.CaughtPoke], gBattleResults.CaughtNick) != 0) {
gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows);
if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_POKEMON_TODAY_CAUGHT) != 1) {
for (i=0; i<11; i++) {
@@ -642,8 +641,8 @@ void sub_80BDEC8(void) {
show->pokemonToday.var12 = total;
show->pokemonToday.ball = item;
StringCopy(show->pokemonToday.playerName, gSaveBlock2.playerName);
- StringCopy(show->pokemonToday.nickname, gBattleResults.unk2A);
- show->pokemonToday.species = gBattleResults.unk28;
+ StringCopy(show->pokemonToday.nickname, gBattleResults.CaughtNick);
+ show->pokemonToday.species = gBattleResults.CaughtPoke;
sub_80BE138(show);
show->pokemonToday.language = GAME_LANGUAGE;
show->pokemonToday.language2 = sub_80BDEAC(show->pokemonToday.nickname);
@@ -663,8 +662,8 @@ void sub_80BE028(void) {
buffer->worldOfMasters.var00 = TVSHOW_WORLD_OF_MASTERS;
}
buffer->worldOfMasters.var02++;
- buffer->worldOfMasters.var04 = gBattleResults.unk28;
- buffer->worldOfMasters.var08 = gBattleResults.unk6;
+ buffer->worldOfMasters.var04 = gBattleResults.CaughtPoke;
+ buffer->worldOfMasters.var08 = gBattleResults.Poke1Species;
buffer->worldOfMasters.var0a = gMapHeader.name;
}
@@ -689,7 +688,7 @@ void sub_80BE074(void) {
asm_comment("Here the wrong registers are used to hold the show ID and flag.");
show->pokemonTodayFailed.var00 = TVSHOW_POKEMON_TODAY_FAILED;
show->pokemonTodayFailed.var01 = flag;
- show->pokemonTodayFailed.species = gBattleResults.unk6;
+ show->pokemonTodayFailed.species = gBattleResults.Poke1Species;
show->pokemonTodayFailed.species2 = gBattleResults.unk20;
show->pokemonTodayFailed.var10 = total;
show->pokemonTodayFailed.var11 = gBattleOutcome;