Merge pull request #82 from jiangzhengwenjz/pokemon

pokemon
This commit is contained in:
PikalaxALT 2019-07-20 12:41:34 -04:00 committed by GitHub
commit e4acfdf20b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
60 changed files with 37844 additions and 1879 deletions

View File

@ -1132,7 +1132,7 @@ _0801067E:
adds r1, r0
ldrh r0, [r1]
strh r0, [r2, 0x10]
bl sub_8044708
bl SetDeoxysStats
ldr r1, _080106F0 @ =gUnknown_2023E82
b _080108B2
.align 2, 0
@ -1834,7 +1834,7 @@ _08010CE2:
adds r1, r7, 0
bl sub_8010414
bl sub_801017C
bl sub_8044708
bl SetDeoxysStats
ldr r0, _08010D4C @ =gDecompressionBuffer
ldr r1, _08010D50 @ =gPlayerParty
movs r2, 0x96
@ -6570,7 +6570,7 @@ _080131F6:
add r1, r10
ldr r2, [r1]
movs r1, 0x2
bl sub_8044898
bl HandleSetPokedexFlag
b _080132C2
.align 2, 0
_08013230: .4byte gBaseStats
@ -6609,7 +6609,7 @@ _0801324C:
add r1, r10
ldr r2, [r1]
movs r1, 0x2
bl sub_8044898
bl HandleSetPokedexFlag
b _080132B4
_0801328E:
ldr r0, _08013324 @ =0x0001aa02
@ -6628,7 +6628,7 @@ _0801328E:
add r1, r10
ldr r2, [r1]
movs r1, 0x2
bl sub_8044898
bl HandleSetPokedexFlag
_080132B4:
movs r0, 0
bl EmitLoadMonSprite
@ -7097,7 +7097,7 @@ _0801364C:
adds r1, r7
ldr r2, [r1]
movs r1, 0x2
bl sub_8044898
bl HandleSetPokedexFlag
_08013684:
ldrb r0, [r4]
adds r0, 0x1

View File

@ -1005,7 +1005,7 @@ _0802EB04:
cmp r0, 0
bne _0802EB3A
movs r0, 0
bl CountAliveMons
bl CountAliveMonsInBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1

View File

@ -3610,7 +3610,7 @@ _08049734:
lsls r1, 24
lsrs r1, 24
adds r0, r7, 0
bl sub_80448F8
bl CheckBattleTypeGhost
lsls r0, 24
cmp r0, 0
beq _08049754
@ -3755,7 +3755,7 @@ sub_804981C: @ 804981C
ldr r6, _080498EC @ =gEnemyParty
adds r0, r6
adds r1, r4, 0
bl sub_80448F8
bl CheckBattleTypeGhost
lsls r0, 24
cmp r0, 0
bne _0804991C

View File

@ -13273,7 +13273,7 @@ sub_80240D4: @ 80240D4
adds r1, r4
ldr r2, [r1]
movs r1, 0x2
bl sub_8044898
bl HandleSetPokedexFlag
_0802412A:
ldr r2, _08024180 @ =gAbsentBattlerFlags
ldr r1, _08024184 @ =gBitTable
@ -13398,7 +13398,7 @@ _08024228:
bl GetBankMultiplayerId
lsls r0, 24
lsrs r0, 24
bl sub_8043620
bl GetLinkTrainerFlankId
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@ -19745,7 +19745,7 @@ _0802753C:
cmp r0, 0
beq _080275AC
movs r0, 0x1
bl CountAliveMons
bl CountAliveMonsInBattle
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x2
@ -21520,7 +21520,7 @@ _08028336:
bl GetBankMultiplayerId
lsls r0, 24
lsrs r0, 24
bl sub_8043620
bl GetLinkTrainerFlankId
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@ -21665,7 +21665,7 @@ _08028458:
bl GetBankMultiplayerId
lsls r0, 24
lsrs r0, 24
bl sub_8043620
bl GetLinkTrainerFlankId
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
@ -22207,7 +22207,7 @@ _0802887C:
cmp r0, 0
beq _080288EC
movs r0, 0x1
bl CountAliveMons
bl CountAliveMonsInBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@ -32384,7 +32384,7 @@ _0802D9B4:
lsrs r0, 16
movs r1, 0x3
adds r2, r4, 0
bl sub_8044898
bl HandleSetPokedexFlag
ldr r1, _0802D9D4 @ =gUnknown_2023D74
ldr r0, [r1]
adds r0, 0x5

View File

@ -2051,7 +2051,7 @@ sub_8080628: @ 8080628
beq _080806BE
ldr r0, _08080668 @ =gTrainerBattleOpponent_A
ldrh r0, [r0]
bl sub_804367C
bl GetTrainerEncounterMusicId
lsls r0, 24
lsrs r0, 24
cmp r0, 0xD

View File

@ -1222,7 +1222,7 @@ _080E6286:
adds r2, r3
ldr r1, [r4]
adds r1, r2
bl sub_803E0A4
bl CreateBattleTowerMon
adds r6, 0x1
cmp r6, 0x2
ble _080E6286
@ -1251,7 +1251,7 @@ _080E62B2:
muls r2, r6
adds r2, 0x1C
adds r1, r2
bl sub_803E0A4
bl CreateBattleTowerMon
adds r6, 0x1
cmp r6, 0x2
ble _080E62B2
@ -2136,7 +2136,7 @@ _080E69A0:
adds r2, r1
ldr r1, [r4]
adds r1, r2
bl sub_803E0A4
bl CreateBattleTowerMon
adds r5, 0x1
cmp r5, 0x2
ble _080E69A0

View File

@ -5775,7 +5775,7 @@ _08019C40:
mov r8, r0
_08019C66:
adds r0, r7, 0
bl sub_8043620
bl GetLinkTrainerFlankId
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 1

View File

@ -38,7 +38,7 @@ sub_8054C04: @ 8054C04
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_80444F8
bl GetPlayerPartyHighestLevel
lsls r0, 24
lsrs r0, 24
ldr r1, _08054C40 @ =gUnknown_826D294

View File

@ -18182,7 +18182,7 @@ sub_8127AC0: @ 8127AC0
bne _08127B08
_08127AE6:
ldr r4, _08127AFC @ =gStringVar1
bl sub_80444C4
bl GetTrainerPartnerName
adds r1, r0, 0
adds r0, r4, 0
bl StringCopy

File diff suppressed because it is too large Load Diff

View File

@ -9193,7 +9193,7 @@ sub_81390B0: @ 81390B0
mov r4, sp
adds r4, 0x6
strb r0, [r4]
ldr r5, _081391E8 @ =gUnknown_825DEA1
ldr r5, _081391E8 @ =gPPUpGetMask
ldr r0, _081391E0 @ =gUnknown_203B16D
ldrb r1, [r0]
adds r0, r1, r5
@ -9278,7 +9278,7 @@ _081391D8: .4byte gUnknown_203B140
_081391DC: .4byte 0x000032f4
_081391E0: .4byte gUnknown_203B16D
_081391E4: .4byte gUnknown_203B16E
_081391E8: .4byte gUnknown_825DEA1
_081391E8: .4byte gPPUpGetMask
thumb_func_end sub_81390B0
thumb_func_start sub_81391EC
@ -9340,7 +9340,7 @@ sub_81391EC: @ 81391EC
mov r4, sp
adds r4, 0x6
strb r0, [r4]
ldr r5, _08139324 @ =gUnknown_825DEA1
ldr r5, _08139324 @ =gPPUpGetMask
ldr r0, _0813931C @ =gUnknown_203B16D
ldrb r1, [r0]
adds r0, r1, r5
@ -9425,7 +9425,7 @@ _08139314: .4byte gUnknown_203B140
_08139318: .4byte 0x000032f4
_0813931C: .4byte gUnknown_203B16D
_08139320: .4byte gUnknown_203B16E
_08139324: .4byte gUnknown_825DEA1
_08139324: .4byte gPPUpGetMask
thumb_func_end sub_81391EC
thumb_func_start sub_8139328

View File

@ -269,7 +269,7 @@ sub_80BFAA8: @ 80BFAA8
mov r6, sp
adds r6, 0x6
strb r0, [r6]
ldr r1, _080BFBA4 @ =gUnknown_825DEA1
ldr r1, _080BFBA4 @ =gPPUpGetMask
adds r0, r5, r1
ldrb r0, [r0]
mov r9, r0
@ -330,7 +330,7 @@ sub_80BFAA8: @ 80BFAA8
pop {r0}
bx r0
.align 2, 0
_080BFBA4: .4byte gUnknown_825DEA1
_080BFBA4: .4byte gPPUpGetMask
thumb_func_end sub_80BFAA8
thumb_func_start sub_80BFBA8

View File

@ -8135,7 +8135,7 @@ sub_80507A0: @ 80507A0
adds r0, r4, 0
movs r1, 0x3
adds r2, r5, 0
bl sub_8044898
bl HandleSetPokedexFlag
_080507F4:
pop {r4,r5}
pop {r0}

View File

@ -4955,7 +4955,7 @@ sub_808B838: @ 808B838
adds r0, r1
ldrb r4, [r0]
adds r0, r4, 0
bl sub_804454C
bl FacilityClassToPicIndex
lsls r0, 16
lsrs r0, 16
ldr r4, _0808B8A0 @ =gUnknown_83CD8EC
@ -4982,7 +4982,7 @@ _0808B8A4:
cmp r0, 0
beq _0808B8FC
adds r0, r4, 0
bl sub_804454C
bl FacilityClassToPicIndex
lsls r0, 16
lsrs r0, 16
ldr r4, _0808B8F4 @ =gUnknown_83CD8EC

View File

@ -68,7 +68,52 @@ gUnknown_8234690:: @ 8234690
.incbin "baserom.gba", 0x234690, 0x4
gUnknown_8234694:: @ 8234694
.incbin "baserom.gba", 0x234694, 0x328
.incbin "baserom.gba", 0x234694, 0x4
gUnknown_8234698:: @ 8234698
.incbin "baserom.gba", 0x234698, 0x20
gUnknown_82346B8:: @ 82346B8
.incbin "baserom.gba", 0x2346B8, 0x20
gUnknown_82346D8:: @ 82346D8
.incbin "baserom.gba", 0x2346D8, 0x20
gUnknown_82346F8:: @ 82346F8
.incbin "baserom.gba", 0x2346F8, 0x20
gUnknown_8234718:: @ 8234718
.incbin "baserom.gba", 0x234718, 0x28
gUnknown_8234740:: @ 8234740
.incbin "baserom.gba", 0x234740, 0x28
gUnknown_8234768:: @ 8234768
.incbin "baserom.gba", 0x234768, 0x20
gUnknown_8234788:: @ 8234788
.incbin "baserom.gba", 0x234788, 0x20
gUnknown_82347A8:: @ 82347A8
.incbin "baserom.gba", 0x2347A8, 0x20
gUnknown_82347C8:: @ 82347C8
.incbin "baserom.gba", 0x2347C8, 0x20
gUnknown_82347E8:: @ 82347E8
.incbin "baserom.gba", 0x2347E8, 0xE0
gUnknown_82348C8:: @ 82348C8
.incbin "baserom.gba", 0x2348C8, 0x24
gUnknown_82348EC:: @ 82348EC
.incbin "baserom.gba", 0x2348EC, 0x58
gUnknown_8234944:: @ 8234944
.incbin "baserom.gba", 0x234944, 0x58
gUnknown_823499C:: @ 823499C
.incbin "baserom.gba", 0x23499C, 0x20
gUnknown_82349BC:: @ 82349BC
.incbin "baserom.gba", 0x2349BC, 0x10
@ -174,7 +219,16 @@ gUnknown_824EFF0:: @ 824EFF0
.incbin "baserom.gba", 0x24EFF0, 0x18
gUnknown_824F008:: @ 824F008
.incbin "baserom.gba", 0x24F008, 0x40
.incbin "baserom.gba", 0x24F008, 0x8
gUnknown_824F010:: @ 824F010
.incbin "baserom.gba", 0x24F010, 0x8
gUnknown_824F018:: @ 824F018
.incbin "baserom.gba", 0x24F018, 0x8
gUnknown_824F020:: @ 824F020
.incbin "baserom.gba", 0x24F020, 0x28
gUnknown_824F048:: @ 824F048
.incbin "baserom.gba", 0x24F048, 0x8
@ -302,251 +356,6 @@ gUnknown_8250A34:: @ 8250A34
gUnknown_8250B20:: @ 8250B20
.incbin "baserom.gba", 0x250B20, 0xE4
gBattleMoves:: @ 8250C04
.incbin "baserom.gba", 0x250C04, 0x10B4
gUnknown_8251CB8:: @ 8251CB8
.incbin "baserom.gba", 0x251CB8, 0x336
gUnknown_8251FEE:: @ 8251FEE
.incbin "baserom.gba", 0x251FEE, 0x336
gUnknown_8252324:: @ 8252324
.incbin "baserom.gba", 0x252324, 0x338
gSpindaSpotGraphics:: @ 825265C
.incbin "baserom.gba", 0x25265C, 0x260
gItemEffectTable:: @ 82528BC
.incbin "baserom.gba", 0x2528BC, 0x28C
gNatureStatTable:: @ 8252B48
.incbin "baserom.gba", 0x252B48, 0x80
gTMHMLearnsets:: @ 8252BC8
.incbin "baserom.gba", 0x252BC8, 0xCE0
gFacilityClassToPicIndex:: @ 82538A8
.incbin "baserom.gba", 0x2538A8, 0x96
gFacilityClassToTrainerClass:: @ 825393E
.byte CLASS_AQUA_LEADER
.byte CLASS_TEAM_AQUA
.byte CLASS_TEAM_AQUA
.byte CLASS_AROMA_LADY
.byte CLASS_RUIN_MANIAC
.byte CLASS_INTERVIEWER
.byte CLASS_TUBER
.byte CLASS_TUBER_2
.byte CLASS_COOLTRAINER
.byte CLASS_COOLTRAINER
.byte CLASS_HEX_MANIAC
.byte CLASS_LADY
.byte CLASS_BEAUTY
.byte CLASS_RICH_BOY
.byte CLASS_POKEMANIAC
.byte CLASS_SWIMMER_MALE
.byte CLASS_BLACK_BELT
.byte CLASS_GUITARIST
.byte CLASS_KINDLER
.byte CLASS_CAMPER
.byte CLASS_BUG_MANIAC
.byte CLASS_PSYCHIC
.byte CLASS_PSYCHIC
.byte CLASS_GENTLEMAN
.byte CLASS_ELITE_FOUR
.byte CLASS_ELITE_FOUR
.byte CLASS_LEADER
.byte CLASS_LEADER
.byte CLASS_LEADER
.byte CLASS_SCHOOL_KID
.byte CLASS_SCHOOL_KID
.byte CLASS_SR_AND_JR
.byte CLASS_POKEFAN
.byte CLASS_POKEFAN
.byte CLASS_EXPERT
.byte CLASS_EXPERT
.byte CLASS_YOUNGSTER
.byte CLASS_CHAMPION
.byte CLASS_FISHERMAN
.byte CLASS_TRIATHLETE
.byte CLASS_TRIATHLETE
.byte CLASS_TRIATHLETE
.byte CLASS_TRIATHLETE
.byte CLASS_TRIATHLETE
.byte CLASS_TRIATHLETE
.byte CLASS_DRAGON_TAMER
.byte CLASS_BIRD_KEEPER
.byte CLASS_NINJA_BOY
.byte CLASS_BATTLE_GIRL
.byte CLASS_PARASOL_LADY
.byte CLASS_SWIMMER_FEMALE
.byte CLASS_PICNICKER
.byte CLASS_TWINS
.byte CLASS_SAILOR
.byte CLASS_BOARDER
.byte CLASS_BOARDER
.byte CLASS_COLLECTOR
.byte CLASS_PKMN_TRAINER_3
.byte CLASS_PKMN_TRAINER_3
.byte CLASS_PKMN_TRAINER_3
.byte CLASS_PKMN_TRAINER_3
.byte CLASS_PKMN_TRAINER_3
.byte CLASS_PKMN_TRAINER_3
.byte CLASS_PKMN_TRAINER_3
.byte CLASS_PKMN_BREEDER
.byte CLASS_PKMN_BREEDER
.byte CLASS_PKMN_RANGER
.byte CLASS_PKMN_RANGER
.byte CLASS_MAGMA_LEADER
.byte CLASS_TEAM_MAGMA
.byte CLASS_TEAM_MAGMA
.byte CLASS_LASS
.byte CLASS_BUG_CATCHER
.byte CLASS_HIKER
.byte CLASS_YOUNG_COUPLE
.byte CLASS_OLD_COUPLE
.byte CLASS_SIS_AND_BRO
.byte CLASS_AQUA_ADMIN
.byte CLASS_AQUA_ADMIN
.byte CLASS_MAGMA_ADMIN
.byte CLASS_MAGMA_ADMIN
.byte CLASS_LEADER
.byte CLASS_LEADER
.byte CLASS_LEADER
.byte CLASS_LEADER
.byte CLASS_LEADER
.byte CLASS_ELITE_FOUR
.byte CLASS_ELITE_FOUR
.byte CLASS_YOUNGSTER_2
.byte CLASS_BUG_CATCHER_2
.byte CLASS_LASS_2
.byte CLASS_SAILOR_2
.byte CLASS_CAMPER_2
.byte CLASS_PICNICKER_2
.byte CLASS_POKEMANIAC_2
.byte CLASS_SUPER_NERD
.byte CLASS_HIKER_2
.byte CLASS_BIKER
.byte CLASS_BURGLAR
.byte CLASS_ENGINEER
.byte CLASS_FISHERMAN_2
.byte CLASS_SWIMMER_MALE_2
.byte CLASS_CUE_BALL
.byte CLASS_GAMER
.byte CLASS_BEAUTY_2
.byte CLASS_SWIMMER_FEMALE_2
.byte CLASS_PSYCHIC_2
.byte CLASS_ROCKER
.byte CLASS_JUGGLER
.byte CLASS_TAMER
.byte CLASS_BIRD_KEEPER_2
.byte CLASS_BLACK_BELT_2
.byte CLASS_RIVAL
.byte CLASS_SCIENTIST
.byte CLASS_BOSS
.byte CLASS_TEAM_ROCKET
.byte CLASS_COOLTRAINER_2
.byte CLASS_COOLTRAINER_2
.byte CLASS_ELITE_FOUR_2
.byte CLASS_ELITE_FOUR_2
.byte CLASS_LEADER_2
.byte CLASS_LEADER_2
.byte CLASS_GENTLEMAN_2
.byte CLASS_RIVAL_2
.byte CLASS_CHAMPION_2
.byte CLASS_CHANNELER
.byte CLASS_TWINS_2
.byte CLASS_COOL_COUPLE
.byte CLASS_YOUNG_COUPLE_2
.byte CLASS_CRUSH_KIN
.byte CLASS_SIS_AND_BRO_2
.byte CLASS_PKMN_PROF
.byte CLASS_PLAYER
.byte CLASS_PLAYER
.byte CLASS_PLAYER
.byte CLASS_PLAYER
.byte CLASS_TEAM_ROCKET
.byte CLASS_PSYCHIC_2
.byte CLASS_CRUSH_GIRL
.byte CLASS_TUBER_3
.byte CLASS_PKMN_BREEDER_2
.byte CLASS_PKMN_RANGER_2
.byte CLASS_PKMN_RANGER_2
.byte CLASS_AROMA_LADY_2
.byte CLASS_RUIN_MANIAC_2
.byte CLASS_LADY_2
.byte CLASS_PAINTER
.byte CLASS_ELITE_FOUR_2
.byte CLASS_ELITE_FOUR_2
.byte CLASS_CHAMPION_2
gUnknown_82539D4:: @ 82539D4
.incbin "baserom.gba", 0x2539D4, 0x110
gExperienceTables:: @ 8253AE4
.incbin "baserom.gba", 0x253AE4, 0xCA0
gBaseStats:: @ 8254784
.incbin "baserom.gba", 0x254784, 0x11
gUnknown_8254795:: @ 8254795
.incbin "baserom.gba", 0x254795, 0x4FBF
gEvolutionTable:: @ 8259754
.incbin "baserom.gba", 0x259754, 0x4060
gLevelUpLearnsets:: @ 825D7B4
.incbin "baserom.gba", 0x25D7B4, 0x670
gPokeblockFlavorCompatibilityTable:: @ 825DE24
.incbin "baserom.gba", 0x25DE24, 0x7D
gUnknown_825DEA1:: @ 825DEA1
.incbin "baserom.gba", 0x25DEA1, 0x4
gPPUpWriteMasks:: @ 825DEA5
.incbin "baserom.gba", 0x25DEA5, 0x4
gUnknown_825DEA9:: @ 825DEA9
.incbin "baserom.gba", 0x25DEA9, 0x4
gStatStageRatios:: @ 825DEAD
.incbin "baserom.gba", 0x25DEAD, 0x1F
sHoldEffectToType:: @ 825DECC
.incbin "baserom.gba", 0x25DECC, 0x24
gUnknown_825DEF0:: @ 825DEF0
.incbin "baserom.gba", 0x25DEF0, 0x60
gUnknown_825DF50:: @ 825DF50
.incbin "baserom.gba", 0x25DF50, 0x90
sSecretBaseFacilityClasses:: @ 825DFE0
.incbin "baserom.gba", 0x25DFE0, 0xA
sGetMonDataEVConstants:: @ 825DFEA
.incbin "baserom.gba", 0x25DFEA, 0x6
gUnknown_825DFF0:: @ 825DFF0
.incbin "baserom.gba", 0x25DFF0, 0x6
sFriendshipEventDeltas:: @ 825DFF6
.incbin "baserom.gba", 0x25DFF6, 0x1E
sHMMoves:: @ 825E014
.incbin "baserom.gba", 0x25E014, 0x12
gUnknown_825E026:: @ 825E026
.incbin "baserom.gba", 0x25E026, 0xC
gUnknown_825E032:: @ 825E032
.incbin "baserom.gba", 0x25E032, 0x2A
gUnknown_825E05C:: @ 825E05C
.incbin "baserom.gba", 0x25E05C, 0x18
.section .rodata.825EF0C
.align 2

View File

@ -90,7 +90,7 @@ EventScript_1652C0:: @ 81652C0
setvar VAR_0x8004, SPECIES_DEOXYS
setvar VAR_0x8005, 30
setvar VAR_0x8006, 0
special sub_8044838
special CreateObedientEnemyMon
setflag FLAG_0x807
special sub_807F9D8
waitstate

View File

@ -63,7 +63,7 @@ NavelRock_Base_EventScript_165134:: @ 8165134
setvar VAR_0x8004, SPECIES_LUGIA
setvar VAR_0x8005, 70
setvar VAR_0x8006, 0
special sub_8044838
special CreateObedientEnemyMon
setflag FLAG_0x807
special sub_807F9D8
waitstate

View File

@ -67,7 +67,7 @@ NavelRock_Summit_EventScript_164FFB:: @ 8164FFB
setvar VAR_0x8004, SPECIES_HO_OH
setvar VAR_0x8005, 70
setvar VAR_0x8006, 0
special sub_8044838
special CreateObedientEnemyMon
setflag FLAG_0x807
special sub_807F9D8
waitstate

View File

@ -452,5 +452,5 @@ gSpecials:: @ 815FD60
def_special sub_80CB328
def_special sub_80CD154
def_special sub_80CD1B4
def_special sub_8044838
def_special CreateObedientEnemyMon
gSpecialsEnd::

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -33,39 +33,6 @@
#define GET_BANK_SIDE(bank)((GetBattlerPosition(bank) & BIT_SIDE))
#define GET_BANK_SIDE2(bank)((GET_BANK_IDENTITY(bank) & BIT_SIDE))
#define BATTLE_TYPE_DOUBLE 0x0001
#define BATTLE_TYPE_LINK 0x0002
#define BATTLE_TYPE_WILD 0x0004
#define BATTLE_TYPE_TRAINER 0x0008
#define BATTLE_TYPE_FIRST_BATTLE 0x0010
#define BATTLE_TYPE_20 0x0020
#define BATTLE_TYPE_MULTI 0x0040
#define BATTLE_TYPE_SAFARI 0x0080
#define BATTLE_TYPE_BATTLE_TOWER 0x0100
#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200
#define BATTLE_TYPE_ROAMER 0x0400
#define BATTLE_TYPE_EREADER_TRAINER 0x0800
#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
#define BATTLE_TYPE_LEGENDARY 0x2000
#define BATTLE_TYPE_REGI 0x4000
#define BATTLE_TYPE_TWO_OPPONENTS 0x8000
#define BATTLE_TYPE_DOME 0x10000 // this is used in pokemon.c, but its clearly not the correct name for FR/LG. TODO: Fix these
#define BATTLE_TYPE_PALACE 0x20000
#define BATTLE_TYPE_ARENA 0x40000
#define BATTLE_TYPE_FACTORY 0x80000
#define BATTLE_TYPE_x100000 0x100000
#define BATTLE_TYPE_PYRAMID 0x200000
#define BATTLE_TYPE_INGAME_PARTNER 0x400000
#define BATTLE_TYPE_x800000 0x800000
#define BATTLE_TYPE_RECORDED 0x1000000
#define BATTLE_TYPE_x2000000 0x2000000
#define BATTLE_TYPE_x4000000 0x4000000
#define BATTLE_TYPE_SECRET_BASE 0x8000000
#define BATTLE_TYPE_GROUDON 0x10000000
#define BATTLE_TYPE_KYORGE 0x20000000
#define BATTLE_TYPE_RAYQUAZA 0x40000000
#define BATTLE_TYPE_x80000000 0x80000000
#define TRAINER_OPPONENT_3FE 0x3FE
#define TRAINER_OPPONENT_C00 0xC00
#define TRAINER_OPPONENT_800 0x800
@ -159,14 +126,14 @@
#define MSG_DISPLAY 0x7
#define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8
#define MOVE_TARGET_SELECTED 0x0
#define MOVE_TARGET_DEPENDS 0x1
#define MOVE_TARGET_USER 0x2
#define MOVE_TARGET_RANDOM 0x4
#define MOVE_TARGET_x10 0x10
#define MOVE_TARGET_BOTH 0x8
#define MOVE_TARGET_FOES_AND_ALLY 0x20
#define MOVE_TARGET_OPPONENTS_FIELD 0x40
#define MOVE_TARGET_SELECTED 0x0
#define MOVE_TARGET_DEPENDS 0x1
#define MOVE_TARGET_USER_OR_SELECTED 0x2
#define MOVE_TARGET_RANDOM 0x4
#define MOVE_TARGET_BOTH 0x8
#define MOVE_TARGET_USER 0x10
#define MOVE_TARGET_FOES_AND_ALLY 0x20
#define MOVE_TARGET_OPPONENTS_FIELD 0x40
// defines for the u8 array gTypeEffectiveness
#define TYPE_EFFECT_ATK_TYPE(i)((gTypeEffectiveness[i + 0]))
@ -984,5 +951,6 @@ extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
extern s32 gBattleMoveDamage;
extern u8 gBattleOutcome;
extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
#endif // GUARD_BATTLE_H

View File

@ -2,6 +2,7 @@
#define GUARD_BATTLE_2_H
#include "global.h"
#include "sprite.h"
void CB2_InitBattle(void);
void BattleMainCB2(void);
@ -44,6 +45,7 @@ void RunBattleScriptCommands_PopCallbacksStack(void);
void RunBattleScriptCommands(void);
bool8 TryRunFromBattle(u8 bank);
void sub_800FD9C(void);
void sub_80120C4(struct Sprite *);
extern const u8 gStatusConditionString_PoisonJpn[8];
extern const u8 gStatusConditionString_SleepJpn[8];

View File

@ -3,6 +3,8 @@
#include "global.h"
extern u8 sBattler_AI;
void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves);
void BattleAI_SetupAIData(u8 defaultScoreMoves);
u8 BattleAI_ChooseMoveOrAction(void);

View File

@ -87,5 +87,6 @@ void HandleAction_RunBattleScript(void);
u8 GetMoveTarget(u16 move, u8 useMoveTarget);
u8 IsMonDisobedient(void);
void MarkBufferBankForExecution(u8 battlerId);
void sub_80174B8(u8 battlerId);
#endif // GUARD_BATTLE_UTIL_H

View File

@ -59,8 +59,8 @@
#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
#define BATTLE_TYPE_LEGENDARY 0x2000
#define BATTLE_TYPE_REGI 0x4000
#define BATTLE_TYPE_TWO_OPPONENTS 0x8000
#define BATTLE_TYPE_DOME 0x10000
#define BATTLE_TYPE_GHOST 0x8000
#define BATTLE_TYPE_POKEDUDE 0x10000
#define BATTLE_TYPE_PALACE 0x20000
#define BATTLE_TYPE_ARENA 0x40000
#define BATTLE_TYPE_FACTORY 0x80000

View File

@ -151,7 +151,7 @@
#define EFFECT_EARTHQUAKE 147
#define EFFECT_FUTURE_SIGHT 148
#define EFFECT_GUST 149
#define EFFECT_FLINCH_HIT_2 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
#define EFFECT_FLINCH_MINIMIZE_HIT 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
#define EFFECT_SOLARBEAM 151
#define EFFECT_THUNDER 152
#define EFFECT_TELEPORT 153

View File

@ -0,0 +1,143 @@
#ifndef GUARD_CONSTANTS_HOENN_CRIES_H
#define GUARD_CONSTANTS_HOENN_CRIES_H
enum
{
CRY_KECLEON = 251,
CRY_ROSELIA = 252,
CRY_TORKOAL = 253,
CRY_ELECTRIKE = 254,
CRY_MANECTRIC = 255,
CRY_DUSKULL = 256,
CRY_LATIAS = 257,
CRY_WYNAUT = 258,
CRY_SEVIPER = 259,
CRY_SHARPEDO = 260,
CRY_ZANGOOSE = 261,
CRY_AZURILL = 262,
CRY_SWABLU = 263,
CRY_ALTARIA = 264,
CRY_TAILLOW = 266,
CRY_SWELLOW = 267,
CRY_SPINDA = 269,
CRY_TORCHIC = 270,
CRY_COMBUSKEN = 271,
CRY_BLAZIKEN = 272,
CRY_TREECKO = 273,
CRY_GROVYLE = 274,
CRY_SCEPTILE = 275,
CRY_MUDKIP = 276,
CRY_MARSHTOMP = 277,
CRY_SWAMPERT = 278,
CRY_PELIPPER = 279,
CRY_WINGULL = 280,
CRY_BANETTE = 281,
CRY_SHUPPET = 282,
CRY_LOTAD = 283,
CRY_LOMBRE = 284,
CRY_LUDICOLO = 285,
CRY_SEEDOT = 286,
CRY_NUZLEAF = 287,
CRY_SHIFTRY = 288,
CRY_CARVANHA = 289,
CRY_WURMPLE = 290,
CRY_SILCOON = 291,
CRY_BEAUTIFLY = 292,
CRY_CASCOON = 293,
CRY_DUSTOX = 294,
CRY_RALTS = 295,
CRY_KIRLIA = 296,
CRY_GARDEVOIR = 297,
CRY_SLAKOTH = 298,
CRY_VIGOROTH = 299,
CRY_SLAKING = 300,
CRY_NINCADA = 301,
CRY_NINJASK = 302,
CRY_SHEDINJA = 303,
CRY_MAKUHITA = 304,
CRY_HARIYAMA = 305,
CRY_NOSEPASS = 306,
CRY_GLALIE = 307,
CRY_PLUSLE = 308,
CRY_MINUN = 309,
CRY_SURSKIT = 310,
CRY_MASQUERAIN = 311,
CRY_SKITTY = 312,
CRY_DELCATTY = 313,
CRY_GULPIN = 314,
CRY_SWALOT = 315,
CRY_NUMEL = 316,
CRY_CAMERUPT = 317,
CRY_BARBOACH = 318,
CRY_WHISCASH = 319,
CRY_CORPHISH = 320,
CRY_CRAWDAUNT = 321,
CRY_SPOINK = 322,
CRY_GRUMPIG = 323,
CRY_TRAPINCH = 324,
CRY_VIBRAVA = 325,
CRY_FLYGON = 326,
CRY_CACNEA = 327,
CRY_CACTURNE = 328,
CRY_BALTOY = 329,
CRY_CLAYDOL = 330,
CRY_LUNATONE = 331,
CRY_SOLROCK = 332,
CRY_FEEBAS = 333,
CRY_MILOTIC = 334,
CRY_ABSOL = 335,
CRY_MEDITITE = 336,
CRY_MEDICHAM = 337,
CRY_SPHEAL = 338,
CRY_SEALEO = 339,
CRY_WALREIN = 340,
CRY_CLAMPERL = 341,
CRY_HUNTAIL = 342,
CRY_GOREBYSS = 343,
CRY_LILEEP = 344,
CRY_CRADILY = 345,
CRY_ANORITH = 346,
CRY_ARMALDO = 347,
CRY_BELDUM = 348,
CRY_METANG = 349,
CRY_METAGROSS = 350,
CRY_BAGON = 351,
CRY_SHELGON = 352,
CRY_REGIROCK = 353,
CRY_REGICE = 354,
CRY_REGISTEEL = 355,
CRY_CASTFORM = 356,
CRY_VOLBEAT = 357,
CRY_ILLUMISE = 358,
CRY_POOCHYENA = 359,
CRY_MIGHTYENA = 360,
CRY_DUSCLOPS = 361,
CRY_SABLEYE = 362,
CRY_MAWILE = 363,
CRY_ARON = 364,
CRY_LAIRON = 365,
CRY_AGGRON = 366,
CRY_RELICANTH = 367,
CRY_LUVDISC = 368,
CRY_GROUDON = 369,
CRY_KYOGRE = 370,
CRY_RAYQUAZA = 371,
CRY_SALAMENCE = 372,
CRY_BRELOOM = 373,
CRY_SHROOMISH = 374,
CRY_LINOONE = 375,
CRY_TROPIUS = 376,
CRY_WAILMER = 377,
CRY_ZIGZAGOON = 378,
CRY_EXPLOUD = 379,
CRY_LOUDRED = 380,
CRY_WAILORD = 381,
CRY_WHISMUR = 382,
CRY_SNORUNT = 383,
CRY_LATIOS = 384,
CRY_JIRACHI = 385,
CRY_DEOXYS = 386,
CRY_CHIMECHO = 387,
};
#endif

View File

@ -0,0 +1,79 @@
#ifndef GUARD_CONSTANTS_ITEM_EFFECTS_H
#define GUARD_CONSTANTS_ITEM_EFFECTS_H
// field 0 masks
#define ITEM0_X_ATTACK 0x0F
#define ITEM0_HIGH_CRIT 0x30 // For Dire Hit, works the same way as move Focus Energy.
#define ITEM0_SACRED_ASH 0x40
#define ITEM0_INFATUATION 0x80
// field 1 masks
#define ITEM1_X_SPEED 0x0F
#define ITEM1_X_DEFEND 0xF0
// field 2 masks
#define ITEM2_X_SPATK 0x0F
#define ITEM2_X_ACCURACY 0xF0
// field 3 masks
#define ITEM3_CONFUSION 0x1
#define ITEM3_PARALYSIS 0x2
#define ITEM3_FREEZE 0x4
#define ITEM3_BURN 0x8
#define ITEM3_POISON 0x10
#define ITEM3_SLEEP 0x20
#define ITEM3_LEVEL_UP 0x40
#define ITEM3_MIST 0x80 // For Guard Specs, works the same way as move Mist.
#define ITEM3_STATUS_ALL (ITEM3_CONFUSION | ITEM3_PARALYSIS | ITEM3_FREEZE | ITEM3_BURN | ITEM3_POISON | ITEM3_SLEEP)
// field 4 masks
#define ITEM4_EV_HP 0x1
#define ITEM4_EV_ATK 0x2
#define ITEM4_HEAL_HP 0x4
#define ITEM4_HEAL_PP_ALL 0x8
#define ITEM4_HEAL_PP_ONE 0x10
#define ITEM4_PP_UP 0x20
#define ITEM4_REVIVE 0x40
#define ITEM4_EVO_STONE 0x80
// field 5 masks
#define ITEM5_EV_DEF 0x1
#define ITEM5_EV_SPEED 0x2
#define ITEM5_EV_SPDEF 0x4
#define ITEM5_EV_SPATK 0x8
#define ITEM5_PP_MAX 0x10
#define ITEM5_FRIENDSHIP_LOW 0x20
#define ITEM5_FRIENDSHIP_MID 0x40
#define ITEM5_FRIENDSHIP_HIGH 0x80
#define ITEM5_FRIENDSHIP_ALL (ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID | ITEM5_FRIENDSHIP_HIGH)
// fields 6 and onwards are item-specific arguments
// Used for GetItemEffectType.
#define ITEM_EFFECT_X_ITEM 0
#define ITEM_EFFECT_RAISE_LEVEL 1
#define ITEM_EFFECT_HEAL_HP 2
#define ITEM_EFFECT_CURE_POISON 3
#define ITEM_EFFECT_CURE_SLEEP 4
#define ITEM_EFFECT_CURE_BURN 5
#define ITEM_EFFECT_CURE_FREEZE 6
#define ITEM_EFFECT_CURE_PARALYSIS 7
#define ITEM_EFFECT_CURE_CONFUSION 8
#define ITEM_EFFECT_CURE_INFATUATION 9
#define ITEM_EFFECT_SACRED_ASH 10
#define ITEM_EFFECT_CURE_ALL_STATUS 11
#define ITEM_EFFECT_ATK_EV 12
#define ITEM_EFFECT_HP_EV 13
#define ITEM_EFFECT_SPATK_EV 14
#define ITEM_EFFECT_SPDEF_EV 15
#define ITEM_EFFECT_SPEED_EV 16
#define ITEM_EFFECT_DEF_EV 17
#define ITEM_EFFECT_EVO_STONE 18
#define ITEM_EFFECT_PP_UP 19
#define ITEM_EFFECT_PP_MAX 20
#define ITEM_EFFECT_HEAL_PP 21
#define ITEM_EFFECT_NONE 22
#endif // GUARD_CONSTANTS_ITEM_EFFECTS_H

View File

@ -351,6 +351,65 @@
#define ITEM_15B 347
#define ITEM_15C 348
#define ITEM_TM01_FOCUS_PUNCH ITEM_TM01
#define ITEM_TM02_DRAGON_CLAW ITEM_TM02
#define ITEM_TM03_WATER_PULSE ITEM_TM03
#define ITEM_TM04_CALM_MIND ITEM_TM04
#define ITEM_TM05_ROAR ITEM_TM05
#define ITEM_TM06_TOXIC ITEM_TM06
#define ITEM_TM07_HAIL ITEM_TM07
#define ITEM_TM08_BULK_UP ITEM_TM08
#define ITEM_TM09_BULLET_SEED ITEM_TM09
#define ITEM_TM10_HIDDEN_POWER ITEM_TM10
#define ITEM_TM11_SUNNY_DAY ITEM_TM11
#define ITEM_TM12_TAUNT ITEM_TM12
#define ITEM_TM13_ICE_BEAM ITEM_TM13
#define ITEM_TM14_BLIZZARD ITEM_TM14
#define ITEM_TM15_HYPER_BEAM ITEM_TM15
#define ITEM_TM16_LIGHT_SCREEN ITEM_TM16
#define ITEM_TM17_PROTECT ITEM_TM17
#define ITEM_TM18_RAIN_DANCE ITEM_TM18
#define ITEM_TM19_GIGA_DRAIN ITEM_TM19
#define ITEM_TM20_SAFEGUARD ITEM_TM20
#define ITEM_TM21_FRUSTRATION ITEM_TM21
#define ITEM_TM22_SOLARBEAM ITEM_TM22
#define ITEM_TM23_IRON_TAIL ITEM_TM23
#define ITEM_TM24_THUNDERBOLT ITEM_TM24
#define ITEM_TM25_THUNDER ITEM_TM25
#define ITEM_TM26_EARTHQUAKE ITEM_TM26
#define ITEM_TM27_RETURN ITEM_TM27
#define ITEM_TM28_DIG ITEM_TM28
#define ITEM_TM29_PSYCHIC ITEM_TM29
#define ITEM_TM30_SHADOW_BALL ITEM_TM30
#define ITEM_TM31_BRICK_BREAK ITEM_TM31
#define ITEM_TM32_DOUBLE_TEAM ITEM_TM32
#define ITEM_TM33_REFLECT ITEM_TM33
#define ITEM_TM34_SHOCK_WAVE ITEM_TM34
#define ITEM_TM35_FLAMETHROWER ITEM_TM35
#define ITEM_TM36_SLUDGE_BOMB ITEM_TM36
#define ITEM_TM37_SANDSTORM ITEM_TM37
#define ITEM_TM38_FIRE_BLAST ITEM_TM38
#define ITEM_TM39_ROCK_TOMB ITEM_TM39
#define ITEM_TM40_AERIAL_ACE ITEM_TM40
#define ITEM_TM41_TORMENT ITEM_TM41
#define ITEM_TM42_FACADE ITEM_TM42
#define ITEM_TM43_SECRET_POWER ITEM_TM43
#define ITEM_TM44_REST ITEM_TM44
#define ITEM_TM45_ATTRACT ITEM_TM45
#define ITEM_TM46_THIEF ITEM_TM46
#define ITEM_TM47_STEEL_WING ITEM_TM47
#define ITEM_TM48_SKILL_SWAP ITEM_TM48
#define ITEM_TM49_SNATCH ITEM_TM49
#define ITEM_TM50_OVERHEAT ITEM_TM50
#define ITEM_HM01_CUT ITEM_HM01
#define ITEM_HM02_FLY ITEM_HM02
#define ITEM_HM03_SURF ITEM_HM03
#define ITEM_HM04_STRENGTH ITEM_HM04
#define ITEM_HM05_FLASH ITEM_HM05
#define ITEM_HM06_ROCK_SMASH ITEM_HM06
#define ITEM_HM07_WATERFALL ITEM_HM07
#define ITEM_HM08_DIVE ITEM_HM08
// FireRed/LeafGreen
#define ITEM_OAKS_PARCEL 349
#define ITEM_POKE_FLUTE 350

View File

@ -359,4 +359,6 @@
#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST
#define MOVES_COUNT 355
#endif // GUARD_CONSTANTS_MOVES_H

View File

@ -450,4 +450,838 @@
#define NUM_SPECIES SPECIES_EGG
// National Dex Index Defines
#define NATIONAL_DEX_NONE 0
#define NATIONAL_DEX_BULBASAUR 1
#define NATIONAL_DEX_IVYSAUR 2
#define NATIONAL_DEX_VENUSAUR 3
#define NATIONAL_DEX_CHARMANDER 4
#define NATIONAL_DEX_CHARMELEON 5
#define NATIONAL_DEX_CHARIZARD 6
#define NATIONAL_DEX_SQUIRTLE 7
#define NATIONAL_DEX_WARTORTLE 8
#define NATIONAL_DEX_BLASTOISE 9
#define NATIONAL_DEX_CATERPIE 10
#define NATIONAL_DEX_METAPOD 11
#define NATIONAL_DEX_BUTTERFREE 12
#define NATIONAL_DEX_WEEDLE 13
#define NATIONAL_DEX_KAKUNA 14
#define NATIONAL_DEX_BEEDRILL 15
#define NATIONAL_DEX_PIDGEY 16
#define NATIONAL_DEX_PIDGEOTTO 17
#define NATIONAL_DEX_PIDGEOT 18
#define NATIONAL_DEX_RATTATA 19
#define NATIONAL_DEX_RATICATE 20
#define NATIONAL_DEX_SPEAROW 21
#define NATIONAL_DEX_FEAROW 22
#define NATIONAL_DEX_EKANS 23
#define NATIONAL_DEX_ARBOK 24
#define NATIONAL_DEX_PIKACHU 25
#define NATIONAL_DEX_RAICHU 26
#define NATIONAL_DEX_SANDSHREW 27
#define NATIONAL_DEX_SANDSLASH 28
#define NATIONAL_DEX_NIDORAN_F 29
#define NATIONAL_DEX_NIDORINA 30
#define NATIONAL_DEX_NIDOQUEEN 31
#define NATIONAL_DEX_NIDORAN_M 32
#define NATIONAL_DEX_NIDORINO 33
#define NATIONAL_DEX_NIDOKING 34
#define NATIONAL_DEX_CLEFAIRY 35
#define NATIONAL_DEX_CLEFABLE 36
#define NATIONAL_DEX_VULPIX 37
#define NATIONAL_DEX_NINETALES 38
#define NATIONAL_DEX_JIGGLYPUFF 39
#define NATIONAL_DEX_WIGGLYTUFF 40
#define NATIONAL_DEX_ZUBAT 41
#define NATIONAL_DEX_GOLBAT 42
#define NATIONAL_DEX_ODDISH 43
#define NATIONAL_DEX_GLOOM 44
#define NATIONAL_DEX_VILEPLUME 45
#define NATIONAL_DEX_PARAS 46
#define NATIONAL_DEX_PARASECT 47
#define NATIONAL_DEX_VENONAT 48
#define NATIONAL_DEX_VENOMOTH 49
#define NATIONAL_DEX_DIGLETT 50
#define NATIONAL_DEX_DUGTRIO 51
#define NATIONAL_DEX_MEOWTH 52
#define NATIONAL_DEX_PERSIAN 53
#define NATIONAL_DEX_PSYDUCK 54
#define NATIONAL_DEX_GOLDUCK 55
#define NATIONAL_DEX_MANKEY 56
#define NATIONAL_DEX_PRIMEAPE 57
#define NATIONAL_DEX_GROWLITHE 58
#define NATIONAL_DEX_ARCANINE 59
#define NATIONAL_DEX_POLIWAG 60
#define NATIONAL_DEX_POLIWHIRL 61
#define NATIONAL_DEX_POLIWRATH 62
#define NATIONAL_DEX_ABRA 63
#define NATIONAL_DEX_KADABRA 64
#define NATIONAL_DEX_ALAKAZAM 65
#define NATIONAL_DEX_MACHOP 66
#define NATIONAL_DEX_MACHOKE 67
#define NATIONAL_DEX_MACHAMP 68
#define NATIONAL_DEX_BELLSPROUT 69
#define NATIONAL_DEX_WEEPINBELL 70
#define NATIONAL_DEX_VICTREEBEL 71
#define NATIONAL_DEX_TENTACOOL 72
#define NATIONAL_DEX_TENTACRUEL 73
#define NATIONAL_DEX_GEODUDE 74
#define NATIONAL_DEX_GRAVELER 75
#define NATIONAL_DEX_GOLEM 76
#define NATIONAL_DEX_PONYTA 77
#define NATIONAL_DEX_RAPIDASH 78
#define NATIONAL_DEX_SLOWPOKE 79
#define NATIONAL_DEX_SLOWBRO 80
#define NATIONAL_DEX_MAGNEMITE 81
#define NATIONAL_DEX_MAGNETON 82
#define NATIONAL_DEX_FARFETCHD 83
#define NATIONAL_DEX_DODUO 84
#define NATIONAL_DEX_DODRIO 85
#define NATIONAL_DEX_SEEL 86
#define NATIONAL_DEX_DEWGONG 87
#define NATIONAL_DEX_GRIMER 88
#define NATIONAL_DEX_MUK 89
#define NATIONAL_DEX_SHELLDER 90
#define NATIONAL_DEX_CLOYSTER 91
#define NATIONAL_DEX_GASTLY 92
#define NATIONAL_DEX_HAUNTER 93
#define NATIONAL_DEX_GENGAR 94
#define NATIONAL_DEX_ONIX 95
#define NATIONAL_DEX_DROWZEE 96
#define NATIONAL_DEX_HYPNO 97
#define NATIONAL_DEX_KRABBY 98
#define NATIONAL_DEX_KINGLER 99
#define NATIONAL_DEX_VOLTORB 100
#define NATIONAL_DEX_ELECTRODE 101
#define NATIONAL_DEX_EXEGGCUTE 102
#define NATIONAL_DEX_EXEGGUTOR 103
#define NATIONAL_DEX_CUBONE 104
#define NATIONAL_DEX_MAROWAK 105
#define NATIONAL_DEX_HITMONLEE 106
#define NATIONAL_DEX_HITMONCHAN 107
#define NATIONAL_DEX_LICKITUNG 108
#define NATIONAL_DEX_KOFFING 109
#define NATIONAL_DEX_WEEZING 110
#define NATIONAL_DEX_RHYHORN 111
#define NATIONAL_DEX_RHYDON 112
#define NATIONAL_DEX_CHANSEY 113
#define NATIONAL_DEX_TANGELA 114
#define NATIONAL_DEX_KANGASKHAN 115
#define NATIONAL_DEX_HORSEA 116
#define NATIONAL_DEX_SEADRA 117
#define NATIONAL_DEX_GOLDEEN 118
#define NATIONAL_DEX_SEAKING 119
#define NATIONAL_DEX_STARYU 120
#define NATIONAL_DEX_STARMIE 121
#define NATIONAL_DEX_MR_MIME 122
#define NATIONAL_DEX_SCYTHER 123
#define NATIONAL_DEX_JYNX 124
#define NATIONAL_DEX_ELECTABUZZ 125
#define NATIONAL_DEX_MAGMAR 126
#define NATIONAL_DEX_PINSIR 127
#define NATIONAL_DEX_TAUROS 128
#define NATIONAL_DEX_MAGIKARP 129
#define NATIONAL_DEX_GYARADOS 130
#define NATIONAL_DEX_LAPRAS 131
#define NATIONAL_DEX_DITTO 132
#define NATIONAL_DEX_EEVEE 133
#define NATIONAL_DEX_VAPOREON 134
#define NATIONAL_DEX_JOLTEON 135
#define NATIONAL_DEX_FLAREON 136
#define NATIONAL_DEX_PORYGON 137
#define NATIONAL_DEX_OMANYTE 138
#define NATIONAL_DEX_OMASTAR 139
#define NATIONAL_DEX_KABUTO 140
#define NATIONAL_DEX_KABUTOPS 141
#define NATIONAL_DEX_AERODACTYL 142
#define NATIONAL_DEX_SNORLAX 143
#define NATIONAL_DEX_ARTICUNO 144
#define NATIONAL_DEX_ZAPDOS 145
#define NATIONAL_DEX_MOLTRES 146
#define NATIONAL_DEX_DRATINI 147
#define NATIONAL_DEX_DRAGONAIR 148
#define NATIONAL_DEX_DRAGONITE 149
#define NATIONAL_DEX_MEWTWO 150
#define NATIONAL_DEX_MEW 151
#define NATIONAL_DEX_CHIKORITA 152
#define NATIONAL_DEX_BAYLEEF 153
#define NATIONAL_DEX_MEGANIUM 154
#define NATIONAL_DEX_CYNDAQUIL 155
#define NATIONAL_DEX_QUILAVA 156
#define NATIONAL_DEX_TYPHLOSION 157
#define NATIONAL_DEX_TOTODILE 158
#define NATIONAL_DEX_CROCONAW 159
#define NATIONAL_DEX_FERALIGATR 160
#define NATIONAL_DEX_SENTRET 161
#define NATIONAL_DEX_FURRET 162
#define NATIONAL_DEX_HOOTHOOT 163
#define NATIONAL_DEX_NOCTOWL 164
#define NATIONAL_DEX_LEDYBA 165
#define NATIONAL_DEX_LEDIAN 166
#define NATIONAL_DEX_SPINARAK 167
#define NATIONAL_DEX_ARIADOS 168
#define NATIONAL_DEX_CROBAT 169
#define NATIONAL_DEX_CHINCHOU 170
#define NATIONAL_DEX_LANTURN 171
#define NATIONAL_DEX_PICHU 172
#define NATIONAL_DEX_CLEFFA 173
#define NATIONAL_DEX_IGGLYBUFF 174
#define NATIONAL_DEX_TOGEPI 175
#define NATIONAL_DEX_TOGETIC 176
#define NATIONAL_DEX_NATU 177
#define NATIONAL_DEX_XATU 178
#define NATIONAL_DEX_MAREEP 179
#define NATIONAL_DEX_FLAAFFY 180
#define NATIONAL_DEX_AMPHAROS 181
#define NATIONAL_DEX_BELLOSSOM 182
#define NATIONAL_DEX_MARILL 183
#define NATIONAL_DEX_AZUMARILL 184
#define NATIONAL_DEX_SUDOWOODO 185
#define NATIONAL_DEX_POLITOED 186
#define NATIONAL_DEX_HOPPIP 187
#define NATIONAL_DEX_SKIPLOOM 188
#define NATIONAL_DEX_JUMPLUFF 189
#define NATIONAL_DEX_AIPOM 190
#define NATIONAL_DEX_SUNKERN 191
#define NATIONAL_DEX_SUNFLORA 192
#define NATIONAL_DEX_YANMA 193
#define NATIONAL_DEX_WOOPER 194
#define NATIONAL_DEX_QUAGSIRE 195
#define NATIONAL_DEX_ESPEON 196
#define NATIONAL_DEX_UMBREON 197
#define NATIONAL_DEX_MURKROW 198
#define NATIONAL_DEX_SLOWKING 199
#define NATIONAL_DEX_MISDREAVUS 200
#define NATIONAL_DEX_UNOWN 201
#define NATIONAL_DEX_WOBBUFFET 202
#define NATIONAL_DEX_GIRAFARIG 203
#define NATIONAL_DEX_PINECO 204
#define NATIONAL_DEX_FORRETRESS 205
#define NATIONAL_DEX_DUNSPARCE 206
#define NATIONAL_DEX_GLIGAR 207
#define NATIONAL_DEX_STEELIX 208
#define NATIONAL_DEX_SNUBBULL 209
#define NATIONAL_DEX_GRANBULL 210
#define NATIONAL_DEX_QWILFISH 211
#define NATIONAL_DEX_SCIZOR 212
#define NATIONAL_DEX_SHUCKLE 213
#define NATIONAL_DEX_HERACROSS 214
#define NATIONAL_DEX_SNEASEL 215
#define NATIONAL_DEX_TEDDIURSA 216
#define NATIONAL_DEX_URSARING 217
#define NATIONAL_DEX_SLUGMA 218
#define NATIONAL_DEX_MAGCARGO 219
#define NATIONAL_DEX_SWINUB 220
#define NATIONAL_DEX_PILOSWINE 221
#define NATIONAL_DEX_CORSOLA 222
#define NATIONAL_DEX_REMORAID 223
#define NATIONAL_DEX_OCTILLERY 224
#define NATIONAL_DEX_DELIBIRD 225
#define NATIONAL_DEX_MANTINE 226
#define NATIONAL_DEX_SKARMORY 227
#define NATIONAL_DEX_HOUNDOUR 228
#define NATIONAL_DEX_HOUNDOOM 229
#define NATIONAL_DEX_KINGDRA 230
#define NATIONAL_DEX_PHANPY 231
#define NATIONAL_DEX_DONPHAN 232
#define NATIONAL_DEX_PORYGON2 233
#define NATIONAL_DEX_STANTLER 234
#define NATIONAL_DEX_SMEARGLE 235
#define NATIONAL_DEX_TYROGUE 236
#define NATIONAL_DEX_HITMONTOP 237
#define NATIONAL_DEX_SMOOCHUM 238
#define NATIONAL_DEX_ELEKID 239
#define NATIONAL_DEX_MAGBY 240
#define NATIONAL_DEX_MILTANK 241
#define NATIONAL_DEX_BLISSEY 242
#define NATIONAL_DEX_RAIKOU 243
#define NATIONAL_DEX_ENTEI 244
#define NATIONAL_DEX_SUICUNE 245
#define NATIONAL_DEX_LARVITAR 246
#define NATIONAL_DEX_PUPITAR 247
#define NATIONAL_DEX_TYRANITAR 248
#define NATIONAL_DEX_LUGIA 249
#define NATIONAL_DEX_HO_OH 250
#define NATIONAL_DEX_CELEBI 251
#define NATIONAL_DEX_OLD_UNOWN_B 387
#define NATIONAL_DEX_OLD_UNOWN_C 388
#define NATIONAL_DEX_OLD_UNOWN_D 389
#define NATIONAL_DEX_OLD_UNOWN_E 390
#define NATIONAL_DEX_OLD_UNOWN_F 391
#define NATIONAL_DEX_OLD_UNOWN_G 392
#define NATIONAL_DEX_OLD_UNOWN_H 393
#define NATIONAL_DEX_OLD_UNOWN_I 394
#define NATIONAL_DEX_OLD_UNOWN_J 395
#define NATIONAL_DEX_OLD_UNOWN_K 396
#define NATIONAL_DEX_OLD_UNOWN_L 397
#define NATIONAL_DEX_OLD_UNOWN_M 398
#define NATIONAL_DEX_OLD_UNOWN_N 399
#define NATIONAL_DEX_OLD_UNOWN_O 400
#define NATIONAL_DEX_OLD_UNOWN_P 401
#define NATIONAL_DEX_OLD_UNOWN_Q 402
#define NATIONAL_DEX_OLD_UNOWN_R 403
#define NATIONAL_DEX_OLD_UNOWN_S 404
#define NATIONAL_DEX_OLD_UNOWN_T 405
#define NATIONAL_DEX_OLD_UNOWN_U 406
#define NATIONAL_DEX_OLD_UNOWN_V 407
#define NATIONAL_DEX_OLD_UNOWN_W 408
#define NATIONAL_DEX_OLD_UNOWN_X 409
#define NATIONAL_DEX_OLD_UNOWN_Y 410
#define NATIONAL_DEX_OLD_UNOWN_Z 411
#define NATIONAL_DEX_TREECKO 252
#define NATIONAL_DEX_GROVYLE 253
#define NATIONAL_DEX_SCEPTILE 254
#define NATIONAL_DEX_TORCHIC 255
#define NATIONAL_DEX_COMBUSKEN 256
#define NATIONAL_DEX_BLAZIKEN 257
#define NATIONAL_DEX_MUDKIP 258
#define NATIONAL_DEX_MARSHTOMP 259
#define NATIONAL_DEX_SWAMPERT 260
#define NATIONAL_DEX_POOCHYENA 261
#define NATIONAL_DEX_MIGHTYENA 262
#define NATIONAL_DEX_ZIGZAGOON 263
#define NATIONAL_DEX_LINOONE 264
#define NATIONAL_DEX_WURMPLE 265
#define NATIONAL_DEX_SILCOON 266
#define NATIONAL_DEX_BEAUTIFLY 267
#define NATIONAL_DEX_CASCOON 268
#define NATIONAL_DEX_DUSTOX 269
#define NATIONAL_DEX_LOTAD 270
#define NATIONAL_DEX_LOMBRE 271
#define NATIONAL_DEX_LUDICOLO 272
#define NATIONAL_DEX_SEEDOT 273
#define NATIONAL_DEX_NUZLEAF 274
#define NATIONAL_DEX_SHIFTRY 275
#define NATIONAL_DEX_NINCADA 290
#define NATIONAL_DEX_NINJASK 291
#define NATIONAL_DEX_SHEDINJA 292
#define NATIONAL_DEX_TAILLOW 276
#define NATIONAL_DEX_SWELLOW 277
#define NATIONAL_DEX_SHROOMISH 285
#define NATIONAL_DEX_BRELOOM 286
#define NATIONAL_DEX_SPINDA 327
#define NATIONAL_DEX_WINGULL 278
#define NATIONAL_DEX_PELIPPER 279
#define NATIONAL_DEX_SURSKIT 283
#define NATIONAL_DEX_MASQUERAIN 284
#define NATIONAL_DEX_WAILMER 320
#define NATIONAL_DEX_WAILORD 321
#define NATIONAL_DEX_SKITTY 300
#define NATIONAL_DEX_DELCATTY 301
#define NATIONAL_DEX_KECLEON 352
#define NATIONAL_DEX_BALTOY 343
#define NATIONAL_DEX_CLAYDOL 344
#define NATIONAL_DEX_NOSEPASS 299
#define NATIONAL_DEX_TORKOAL 324
#define NATIONAL_DEX_SABLEYE 302
#define NATIONAL_DEX_BARBOACH 339
#define NATIONAL_DEX_WHISCASH 340
#define NATIONAL_DEX_LUVDISC 370
#define NATIONAL_DEX_CORPHISH 341
#define NATIONAL_DEX_CRAWDAUNT 342
#define NATIONAL_DEX_FEEBAS 349
#define NATIONAL_DEX_MILOTIC 350
#define NATIONAL_DEX_CARVANHA 318
#define NATIONAL_DEX_SHARPEDO 319
#define NATIONAL_DEX_TRAPINCH 328
#define NATIONAL_DEX_VIBRAVA 329
#define NATIONAL_DEX_FLYGON 330
#define NATIONAL_DEX_MAKUHITA 296
#define NATIONAL_DEX_HARIYAMA 297
#define NATIONAL_DEX_ELECTRIKE 309
#define NATIONAL_DEX_MANECTRIC 310
#define NATIONAL_DEX_NUMEL 322
#define NATIONAL_DEX_CAMERUPT 323
#define NATIONAL_DEX_SPHEAL 363
#define NATIONAL_DEX_SEALEO 364
#define NATIONAL_DEX_WALREIN 365
#define NATIONAL_DEX_CACNEA 331
#define NATIONAL_DEX_CACTURNE 332
#define NATIONAL_DEX_SNORUNT 361
#define NATIONAL_DEX_GLALIE 362
#define NATIONAL_DEX_LUNATONE 337
#define NATIONAL_DEX_SOLROCK 338
#define NATIONAL_DEX_AZURILL 298
#define NATIONAL_DEX_SPOINK 325
#define NATIONAL_DEX_GRUMPIG 326
#define NATIONAL_DEX_PLUSLE 311
#define NATIONAL_DEX_MINUN 312
#define NATIONAL_DEX_MAWILE 303
#define NATIONAL_DEX_MEDITITE 307
#define NATIONAL_DEX_MEDICHAM 308
#define NATIONAL_DEX_SWABLU 333
#define NATIONAL_DEX_ALTARIA 334
#define NATIONAL_DEX_WYNAUT 360
#define NATIONAL_DEX_DUSKULL 355
#define NATIONAL_DEX_DUSCLOPS 356
#define NATIONAL_DEX_ROSELIA 315
#define NATIONAL_DEX_SLAKOTH 287
#define NATIONAL_DEX_VIGOROTH 288
#define NATIONAL_DEX_SLAKING 289
#define NATIONAL_DEX_GULPIN 316
#define NATIONAL_DEX_SWALOT 317
#define NATIONAL_DEX_TROPIUS 357
#define NATIONAL_DEX_WHISMUR 293
#define NATIONAL_DEX_LOUDRED 294
#define NATIONAL_DEX_EXPLOUD 295
#define NATIONAL_DEX_CLAMPERL 366
#define NATIONAL_DEX_HUNTAIL 367
#define NATIONAL_DEX_GOREBYSS 368
#define NATIONAL_DEX_ABSOL 359
#define NATIONAL_DEX_SHUPPET 353
#define NATIONAL_DEX_BANETTE 354
#define NATIONAL_DEX_SEVIPER 336
#define NATIONAL_DEX_ZANGOOSE 335
#define NATIONAL_DEX_RELICANTH 369
#define NATIONAL_DEX_ARON 304
#define NATIONAL_DEX_LAIRON 305
#define NATIONAL_DEX_AGGRON 306
#define NATIONAL_DEX_CASTFORM 351
#define NATIONAL_DEX_VOLBEAT 313
#define NATIONAL_DEX_ILLUMISE 314
#define NATIONAL_DEX_LILEEP 345
#define NATIONAL_DEX_CRADILY 346
#define NATIONAL_DEX_ANORITH 347
#define NATIONAL_DEX_ARMALDO 348
#define NATIONAL_DEX_RALTS 280
#define NATIONAL_DEX_KIRLIA 281
#define NATIONAL_DEX_GARDEVOIR 282
#define NATIONAL_DEX_BAGON 371
#define NATIONAL_DEX_SHELGON 372
#define NATIONAL_DEX_SALAMENCE 373
#define NATIONAL_DEX_BELDUM 374
#define NATIONAL_DEX_METANG 375
#define NATIONAL_DEX_METAGROSS 376
#define NATIONAL_DEX_REGIROCK 377
#define NATIONAL_DEX_REGICE 378
#define NATIONAL_DEX_REGISTEEL 379
#define NATIONAL_DEX_KYOGRE 382
#define NATIONAL_DEX_GROUDON 383
#define NATIONAL_DEX_RAYQUAZA 384
#define NATIONAL_DEX_LATIAS 380
#define NATIONAL_DEX_LATIOS 381
#define NATIONAL_DEX_JIRACHI 385
#define NATIONAL_DEX_DEOXYS 386
#define NATIONAL_DEX_CHIMECHO 358
// Hoenn Dex Index Defines
#define HOENN_DEX_NONE 0
#define HOENN_DEX_BULBASAUR 203
#define HOENN_DEX_IVYSAUR 204
#define HOENN_DEX_VENUSAUR 205
#define HOENN_DEX_CHARMANDER 206
#define HOENN_DEX_CHARMELEON 207
#define HOENN_DEX_CHARIZARD 208
#define HOENN_DEX_SQUIRTLE 209
#define HOENN_DEX_WARTORTLE 210
#define HOENN_DEX_BLASTOISE 211
#define HOENN_DEX_CATERPIE 212
#define HOENN_DEX_METAPOD 213
#define HOENN_DEX_BUTTERFREE 214
#define HOENN_DEX_WEEDLE 215
#define HOENN_DEX_KAKUNA 216
#define HOENN_DEX_BEEDRILL 217
#define HOENN_DEX_PIDGEY 218
#define HOENN_DEX_PIDGEOTTO 219
#define HOENN_DEX_PIDGEOT 220
#define HOENN_DEX_RATTATA 221
#define HOENN_DEX_RATICATE 222
#define HOENN_DEX_SPEAROW 223
#define HOENN_DEX_FEAROW 224
#define HOENN_DEX_EKANS 225
#define HOENN_DEX_ARBOK 226
#define HOENN_DEX_PIKACHU 156
#define HOENN_DEX_RAICHU 157
#define HOENN_DEX_SANDSHREW 112
#define HOENN_DEX_SANDSLASH 113
#define HOENN_DEX_NIDORAN_F 227
#define HOENN_DEX_NIDORINA 228
#define HOENN_DEX_NIDOQUEEN 229
#define HOENN_DEX_NIDORAN_M 230
#define HOENN_DEX_NIDORINO 231
#define HOENN_DEX_NIDOKING 232
#define HOENN_DEX_CLEFAIRY 233
#define HOENN_DEX_CLEFABLE 234
#define HOENN_DEX_VULPIX 153
#define HOENN_DEX_NINETALES 154
#define HOENN_DEX_JIGGLYPUFF 138
#define HOENN_DEX_WIGGLYTUFF 139
#define HOENN_DEX_ZUBAT 63
#define HOENN_DEX_GOLBAT 64
#define HOENN_DEX_ODDISH 88
#define HOENN_DEX_GLOOM 89
#define HOENN_DEX_VILEPLUME 90
#define HOENN_DEX_PARAS 235
#define HOENN_DEX_PARASECT 236
#define HOENN_DEX_VENONAT 237
#define HOENN_DEX_VENOMOTH 238
#define HOENN_DEX_DIGLETT 239
#define HOENN_DEX_DUGTRIO 240
#define HOENN_DEX_MEOWTH 241
#define HOENN_DEX_PERSIAN 242
#define HOENN_DEX_PSYDUCK 158
#define HOENN_DEX_GOLDUCK 159
#define HOENN_DEX_MANKEY 243
#define HOENN_DEX_PRIMEAPE 244
#define HOENN_DEX_GROWLITHE 245
#define HOENN_DEX_ARCANINE 246
#define HOENN_DEX_POLIWAG 247
#define HOENN_DEX_POLIWHIRL 248
#define HOENN_DEX_POLIWRATH 249
#define HOENN_DEX_ABRA 39
#define HOENN_DEX_KADABRA 40
#define HOENN_DEX_ALAKAZAM 41
#define HOENN_DEX_MACHOP 73
#define HOENN_DEX_MACHOKE 74
#define HOENN_DEX_MACHAMP 75
#define HOENN_DEX_BELLSPROUT 250
#define HOENN_DEX_WEEPINBELL 251
#define HOENN_DEX_VICTREEBEL 252
#define HOENN_DEX_TENTACOOL 66
#define HOENN_DEX_TENTACRUEL 67
#define HOENN_DEX_GEODUDE 57
#define HOENN_DEX_GRAVELER 58
#define HOENN_DEX_GOLEM 59
#define HOENN_DEX_PONYTA 253
#define HOENN_DEX_RAPIDASH 254
#define HOENN_DEX_SLOWPOKE 255
#define HOENN_DEX_SLOWBRO 256
#define HOENN_DEX_MAGNEMITE 82
#define HOENN_DEX_MAGNETON 83
#define HOENN_DEX_FARFETCHD 257
#define HOENN_DEX_DODUO 92
#define HOENN_DEX_DODRIO 93
#define HOENN_DEX_SEEL 258
#define HOENN_DEX_DEWGONG 259
#define HOENN_DEX_GRIMER 106
#define HOENN_DEX_MUK 107
#define HOENN_DEX_SHELLDER 260
#define HOENN_DEX_CLOYSTER 261
#define HOENN_DEX_GASTLY 262
#define HOENN_DEX_HAUNTER 263
#define HOENN_DEX_GENGAR 264
#define HOENN_DEX_ONIX 265
#define HOENN_DEX_DROWZEE 266
#define HOENN_DEX_HYPNO 267
#define HOENN_DEX_KRABBY 268
#define HOENN_DEX_KINGLER 269
#define HOENN_DEX_VOLTORB 84
#define HOENN_DEX_ELECTRODE 85
#define HOENN_DEX_EXEGGCUTE 270
#define HOENN_DEX_EXEGGUTOR 271
#define HOENN_DEX_CUBONE 272
#define HOENN_DEX_MAROWAK 273
#define HOENN_DEX_HITMONLEE 274
#define HOENN_DEX_HITMONCHAN 275
#define HOENN_DEX_LICKITUNG 276
#define HOENN_DEX_KOFFING 108
#define HOENN_DEX_WEEZING 109
#define HOENN_DEX_RHYHORN 169
#define HOENN_DEX_RHYDON 170
#define HOENN_DEX_CHANSEY 277
#define HOENN_DEX_TANGELA 278
#define HOENN_DEX_KANGASKHAN 279
#define HOENN_DEX_HORSEA 184
#define HOENN_DEX_SEADRA 185
#define HOENN_DEX_GOLDEEN 50
#define HOENN_DEX_SEAKING 51
#define HOENN_DEX_STARYU 143
#define HOENN_DEX_STARMIE 144
#define HOENN_DEX_MR_MIME 280
#define HOENN_DEX_SCYTHER 281
#define HOENN_DEX_JYNX 282
#define HOENN_DEX_ELECTABUZZ 283
#define HOENN_DEX_MAGMAR 284
#define HOENN_DEX_PINSIR 167
#define HOENN_DEX_TAUROS 285
#define HOENN_DEX_MAGIKARP 52
#define HOENN_DEX_GYARADOS 53
#define HOENN_DEX_LAPRAS 286
#define HOENN_DEX_DITTO 287
#define HOENN_DEX_EEVEE 288
#define HOENN_DEX_VAPOREON 289
#define HOENN_DEX_JOLTEON 290
#define HOENN_DEX_FLAREON 291
#define HOENN_DEX_PORYGON 292
#define HOENN_DEX_OMANYTE 293
#define HOENN_DEX_OMASTAR 294
#define HOENN_DEX_KABUTO 295
#define HOENN_DEX_KABUTOPS 296
#define HOENN_DEX_AERODACTYL 297
#define HOENN_DEX_SNORLAX 298
#define HOENN_DEX_ARTICUNO 299
#define HOENN_DEX_ZAPDOS 300
#define HOENN_DEX_MOLTRES 301
#define HOENN_DEX_DRATINI 302
#define HOENN_DEX_DRAGONAIR 303
#define HOENN_DEX_DRAGONITE 304
#define HOENN_DEX_MEWTWO 305
#define HOENN_DEX_MEW 306
#define HOENN_DEX_CHIKORITA 307
#define HOENN_DEX_BAYLEEF 308
#define HOENN_DEX_MEGANIUM 309
#define HOENN_DEX_CYNDAQUIL 310
#define HOENN_DEX_QUILAVA 311
#define HOENN_DEX_TYPHLOSION 312
#define HOENN_DEX_TOTODILE 313
#define HOENN_DEX_CROCONAW 314
#define HOENN_DEX_FERALIGATR 315
#define HOENN_DEX_SENTRET 316
#define HOENN_DEX_FURRET 317
#define HOENN_DEX_HOOTHOOT 318
#define HOENN_DEX_NOCTOWL 319
#define HOENN_DEX_LEDYBA 320
#define HOENN_DEX_LEDIAN 321
#define HOENN_DEX_SPINARAK 322
#define HOENN_DEX_ARIADOS 323
#define HOENN_DEX_CROBAT 65
#define HOENN_DEX_CHINCHOU 181
#define HOENN_DEX_LANTURN 182
#define HOENN_DEX_PICHU 155
#define HOENN_DEX_CLEFFA 324
#define HOENN_DEX_IGGLYBUFF 137
#define HOENN_DEX_TOGEPI 325
#define HOENN_DEX_TOGETIC 326
#define HOENN_DEX_NATU 162
#define HOENN_DEX_XATU 163
#define HOENN_DEX_MAREEP 327
#define HOENN_DEX_FLAAFFY 328
#define HOENN_DEX_AMPHAROS 329
#define HOENN_DEX_BELLOSSOM 91
#define HOENN_DEX_MARILL 55
#define HOENN_DEX_AZUMARILL 56
#define HOENN_DEX_SUDOWOODO 330
#define HOENN_DEX_POLITOED 331
#define HOENN_DEX_HOPPIP 332
#define HOENN_DEX_SKIPLOOM 333
#define HOENN_DEX_JUMPLUFF 334
#define HOENN_DEX_AIPOM 335
#define HOENN_DEX_SUNKERN 336
#define HOENN_DEX_SUNFLORA 337
#define HOENN_DEX_YANMA 338
#define HOENN_DEX_WOOPER 339
#define HOENN_DEX_QUAGSIRE 340
#define HOENN_DEX_ESPEON 341
#define HOENN_DEX_UMBREON 342
#define HOENN_DEX_MURKROW 343
#define HOENN_DEX_SLOWKING 344
#define HOENN_DEX_MISDREAVUS 345
#define HOENN_DEX_UNOWN 346
#define HOENN_DEX_WOBBUFFET 161
#define HOENN_DEX_GIRAFARIG 164
#define HOENN_DEX_PINECO 347
#define HOENN_DEX_FORRETRESS 348
#define HOENN_DEX_DUNSPARCE 349
#define HOENN_DEX_GLIGAR 350
#define HOENN_DEX_STEELIX 351
#define HOENN_DEX_SNUBBULL 352
#define HOENN_DEX_GRANBULL 353
#define HOENN_DEX_QWILFISH 354
#define HOENN_DEX_SCIZOR 355
#define HOENN_DEX_SHUCKLE 356
#define HOENN_DEX_HERACROSS 168
#define HOENN_DEX_SNEASEL 357
#define HOENN_DEX_TEDDIURSA 358
#define HOENN_DEX_URSARING 359
#define HOENN_DEX_SLUGMA 103
#define HOENN_DEX_MAGCARGO 104
#define HOENN_DEX_SWINUB 360
#define HOENN_DEX_PILOSWINE 361
#define HOENN_DEX_CORSOLA 180
#define HOENN_DEX_REMORAID 362
#define HOENN_DEX_OCTILLERY 363
#define HOENN_DEX_DELIBIRD 364
#define HOENN_DEX_MANTINE 365
#define HOENN_DEX_SKARMORY 115
#define HOENN_DEX_HOUNDOUR 366
#define HOENN_DEX_HOUNDOOM 367
#define HOENN_DEX_KINGDRA 186
#define HOENN_DEX_PHANPY 165
#define HOENN_DEX_DONPHAN 166
#define HOENN_DEX_PORYGON2 368
#define HOENN_DEX_STANTLER 369
#define HOENN_DEX_SMEARGLE 370
#define HOENN_DEX_TYROGUE 371
#define HOENN_DEX_HITMONTOP 372
#define HOENN_DEX_SMOOCHUM 373
#define HOENN_DEX_ELEKID 374
#define HOENN_DEX_MAGBY 375
#define HOENN_DEX_MILTANK 376
#define HOENN_DEX_BLISSEY 377
#define HOENN_DEX_RAIKOU 378
#define HOENN_DEX_ENTEI 379
#define HOENN_DEX_SUICUNE 380
#define HOENN_DEX_LARVITAR 381
#define HOENN_DEX_PUPITAR 382
#define HOENN_DEX_TYRANITAR 383
#define HOENN_DEX_LUGIA 384
#define HOENN_DEX_HO_OH 385
#define HOENN_DEX_CELEBI 386
#define HOENN_DEX_OLD_UNOWN_B 387
#define HOENN_DEX_OLD_UNOWN_C 388
#define HOENN_DEX_OLD_UNOWN_D 389
#define HOENN_DEX_OLD_UNOWN_E 390
#define HOENN_DEX_OLD_UNOWN_F 391
#define HOENN_DEX_OLD_UNOWN_G 392
#define HOENN_DEX_OLD_UNOWN_H 393
#define HOENN_DEX_OLD_UNOWN_I 394
#define HOENN_DEX_OLD_UNOWN_J 395
#define HOENN_DEX_OLD_UNOWN_K 396
#define HOENN_DEX_OLD_UNOWN_L 397
#define HOENN_DEX_OLD_UNOWN_M 398
#define HOENN_DEX_OLD_UNOWN_N 399
#define HOENN_DEX_OLD_UNOWN_O 400
#define HOENN_DEX_OLD_UNOWN_P 401
#define HOENN_DEX_OLD_UNOWN_Q 402
#define HOENN_DEX_OLD_UNOWN_R 403
#define HOENN_DEX_OLD_UNOWN_S 404
#define HOENN_DEX_OLD_UNOWN_T 405
#define HOENN_DEX_OLD_UNOWN_U 406
#define HOENN_DEX_OLD_UNOWN_V 407
#define HOENN_DEX_OLD_UNOWN_W 408
#define HOENN_DEX_OLD_UNOWN_X 409
#define HOENN_DEX_OLD_UNOWN_Y 410
#define HOENN_DEX_OLD_UNOWN_Z 411
#define HOENN_DEX_TREECKO 1
#define HOENN_DEX_GROVYLE 2
#define HOENN_DEX_SCEPTILE 3
#define HOENN_DEX_TORCHIC 4
#define HOENN_DEX_COMBUSKEN 5
#define HOENN_DEX_BLAZIKEN 6
#define HOENN_DEX_MUDKIP 7
#define HOENN_DEX_MARSHTOMP 8
#define HOENN_DEX_SWAMPERT 9
#define HOENN_DEX_POOCHYENA 10
#define HOENN_DEX_MIGHTYENA 11
#define HOENN_DEX_ZIGZAGOON 12
#define HOENN_DEX_LINOONE 13
#define HOENN_DEX_WURMPLE 14
#define HOENN_DEX_SILCOON 15
#define HOENN_DEX_BEAUTIFLY 16
#define HOENN_DEX_CASCOON 17
#define HOENN_DEX_DUSTOX 18
#define HOENN_DEX_LOTAD 19
#define HOENN_DEX_LOMBRE 20
#define HOENN_DEX_LUDICOLO 21
#define HOENN_DEX_SEEDOT 22
#define HOENN_DEX_NUZLEAF 23
#define HOENN_DEX_SHIFTRY 24
#define HOENN_DEX_NINCADA 42
#define HOENN_DEX_NINJASK 43
#define HOENN_DEX_SHEDINJA 44
#define HOENN_DEX_TAILLOW 25
#define HOENN_DEX_SWELLOW 26
#define HOENN_DEX_SHROOMISH 34
#define HOENN_DEX_BRELOOM 35
#define HOENN_DEX_SPINDA 114
#define HOENN_DEX_WINGULL 27
#define HOENN_DEX_PELIPPER 28
#define HOENN_DEX_SURSKIT 32
#define HOENN_DEX_MASQUERAIN 33
#define HOENN_DEX_WAILMER 99
#define HOENN_DEX_WAILORD 100
#define HOENN_DEX_SKITTY 61
#define HOENN_DEX_DELCATTY 62
#define HOENN_DEX_KECLEON 145
#define HOENN_DEX_BALTOY 131
#define HOENN_DEX_CLAYDOL 132
#define HOENN_DEX_NOSEPASS 60
#define HOENN_DEX_TORKOAL 105
#define HOENN_DEX_SABLEYE 68
#define HOENN_DEX_BARBOACH 127
#define HOENN_DEX_WHISCASH 128
#define HOENN_DEX_LUVDISC 183
#define HOENN_DEX_CORPHISH 129
#define HOENN_DEX_CRAWDAUNT 130
#define HOENN_DEX_FEEBAS 140
#define HOENN_DEX_MILOTIC 141
#define HOENN_DEX_CARVANHA 97
#define HOENN_DEX_SHARPEDO 98
#define HOENN_DEX_TRAPINCH 116
#define HOENN_DEX_VIBRAVA 117
#define HOENN_DEX_FLYGON 118
#define HOENN_DEX_MAKUHITA 48
#define HOENN_DEX_HARIYAMA 49
#define HOENN_DEX_ELECTRIKE 78
#define HOENN_DEX_MANECTRIC 79
#define HOENN_DEX_NUMEL 101
#define HOENN_DEX_CAMERUPT 102
#define HOENN_DEX_SPHEAL 173
#define HOENN_DEX_SEALEO 174
#define HOENN_DEX_WALREIN 175
#define HOENN_DEX_CACNEA 119
#define HOENN_DEX_CACTURNE 120
#define HOENN_DEX_SNORUNT 171
#define HOENN_DEX_GLALIE 172
#define HOENN_DEX_LUNATONE 125
#define HOENN_DEX_SOLROCK 126
#define HOENN_DEX_AZURILL 54
#define HOENN_DEX_SPOINK 110
#define HOENN_DEX_GRUMPIG 111
#define HOENN_DEX_PLUSLE 80
#define HOENN_DEX_MINUN 81
#define HOENN_DEX_MAWILE 69
#define HOENN_DEX_MEDITITE 76
#define HOENN_DEX_MEDICHAM 77
#define HOENN_DEX_SWABLU 121
#define HOENN_DEX_ALTARIA 122
#define HOENN_DEX_WYNAUT 160
#define HOENN_DEX_DUSKULL 148
#define HOENN_DEX_DUSCLOPS 149
#define HOENN_DEX_ROSELIA 94
#define HOENN_DEX_SLAKOTH 36
#define HOENN_DEX_VIGOROTH 37
#define HOENN_DEX_SLAKING 38
#define HOENN_DEX_GULPIN 95
#define HOENN_DEX_SWALOT 96
#define HOENN_DEX_TROPIUS 150
#define HOENN_DEX_WHISMUR 45
#define HOENN_DEX_LOUDRED 46
#define HOENN_DEX_EXPLOUD 47
#define HOENN_DEX_CLAMPERL 176
#define HOENN_DEX_HUNTAIL 177
#define HOENN_DEX_GOREBYSS 178
#define HOENN_DEX_ABSOL 152
#define HOENN_DEX_SHUPPET 146
#define HOENN_DEX_BANETTE 147
#define HOENN_DEX_SEVIPER 124
#define HOENN_DEX_ZANGOOSE 123
#define HOENN_DEX_RELICANTH 179
#define HOENN_DEX_ARON 70
#define HOENN_DEX_LAIRON 71
#define HOENN_DEX_AGGRON 72
#define HOENN_DEX_CASTFORM 142
#define HOENN_DEX_VOLBEAT 86
#define HOENN_DEX_ILLUMISE 87
#define HOENN_DEX_LILEEP 133
#define HOENN_DEX_CRADILY 134
#define HOENN_DEX_ANORITH 135
#define HOENN_DEX_ARMALDO 136
#define HOENN_DEX_RALTS 29
#define HOENN_DEX_KIRLIA 30
#define HOENN_DEX_GARDEVOIR 31
#define HOENN_DEX_BAGON 187
#define HOENN_DEX_SHELGON 188
#define HOENN_DEX_SALAMENCE 189
#define HOENN_DEX_BELDUM 190
#define HOENN_DEX_METANG 191
#define HOENN_DEX_METAGROSS 192
#define HOENN_DEX_REGIROCK 193
#define HOENN_DEX_REGICE 194
#define HOENN_DEX_REGISTEEL 195
#define HOENN_DEX_KYOGRE 198
#define HOENN_DEX_GROUDON 199
#define HOENN_DEX_RAYQUAZA 200
#define HOENN_DEX_LATIAS 196
#define HOENN_DEX_LATIOS 197
#define HOENN_DEX_JIRACHI 201
#define HOENN_DEX_DEOXYS 202
#define HOENN_DEX_CHIMECHO 151
#endif // GUARD_CONSTANTS_SPECIES_H

View File

@ -18,5 +18,30 @@ extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
extern const u8 gMoveNames[][13];
extern const u8 gAbilityNames[][13];
extern const u8 gTypeNames[][7];
extern const u16 gUnknown_8251CB8[];
extern const u16 gUnknown_8251FEE[];
extern const u16 gUnknown_8252324[];
extern const u16 gUnknown_82539D4[];
extern const struct CompressedSpritePalette gMonPaletteTable[];
extern const struct CompressedSpritePalette gMonShinyPaletteTable[];
extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[];
extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[];
extern const struct OamData gUnknown_824F010;
extern const struct OamData gUnknown_824F018;
extern const union AnimCmd *const gUnknown_82349BC[];
extern const union AffineAnimCmd *const gUnknown_82348C8[];
extern const union AffineAnimCmd *const gUnknown_8234944[];
extern const struct SpriteFrameImage gUnknown_8234698[];
extern const struct SpriteFrameImage gUnknown_82346B8[];
extern const struct SpriteFrameImage gUnknown_82346D8[];
extern const struct SpriteFrameImage gUnknown_82346F8[];
extern const struct SpriteFrameImage gUnknown_8234718[];
extern const struct SpriteFrameImage gUnknown_8234740[];
extern const struct SpriteFrameImage gUnknown_8234768[];
extern const struct SpriteFrameImage gUnknown_8234788[];
extern const struct SpriteFrameImage gUnknown_82347A8[];
extern const struct SpriteFrameImage gUnknown_82347C8[];
#endif // GUARD_DATA2_H

View File

@ -11,5 +11,7 @@ void sub_80CCB68(void);
void nullsub_60(void);
void nullsub_61(void);
u8 ContextNpcGetTextColor(void);
void set_unknown_box_id(u8);
u16 get_unknown_box_id(void);
#endif // GUARD_FIELD_SPECIALS_H

View File

@ -61,5 +61,6 @@ void sub_8126894(u8 taskId, TaskFunc followUpFunc);
void sub_81279E0(void);
void ItemUseCB_Medicine(u8 taskId, TaskFunc followUpFunc);
u8 GetItemEffectType(u16 itemId);
u8 pokemon_order_func(u8);
#endif // GUARD_PARTY_MENU_H

View File

@ -2,6 +2,7 @@
#define GUARD_POKEMON_H
#include "global.h"
#include "sprite.h"
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
@ -109,6 +110,16 @@
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
#define FRIENDSHIP_EVENT_GROW_LEVEL 0x0
#define FRIENDSHIP_EVENT_VITAMIN 0x1
#define FRIENDSHIP_EVENT_BATTLE_ITEM 0x2
#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 0x3
#define FRIENDSHIP_EVENT_LEARN_TMHM 0x4
#define FRIENDSHIP_EVENT_WALKING 0x5
#define FRIENDSHIP_EVENT_FAINT_SMALL 0x6
#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 0x7
#define FRIENDSHIP_EVENT_FAINT_LARGE 0x8
#define TYPE_NORMAL 0x00
#define TYPE_FIGHTING 0x01
#define TYPE_FLYING 0x02
@ -425,8 +436,7 @@ struct BaseStats
/* 0x13 */ u8 growthRate;
/* 0x14 */ u8 eggGroup1;
/* 0x15 */ u8 eggGroup2;
/* 0x16 */ u8 ability1;
/* 0x17 */ u8 ability2;
/* 0x16 */ u8 abilities[2];
/* 0x18 */ u8 safariZoneFleeRate;
/* 0x19 */ u8 bodyColor : 7;
u8 noFlip : 1;
@ -530,11 +540,6 @@ extern const u16 *const gLevelUpLearnsets[];
extern const u8 gFacilityClassToPicIndex[];
extern const u8 gFacilityClassToTrainerClass[];
u8 CountAliveMons(u8 caseId);
#define BATTLE_ALIVE_EXCEPT_ACTIVE 0
#define BATTLE_ALIVE_ATK_SIDE 1
#define BATTLE_ALIVE_DEF_SIDE 2
void ZeroBoxMonData(struct BoxPokemon *boxMon);
void ZeroMonData(struct Pokemon *mon);
void ZeroPlayerPartyMons(void);
@ -545,30 +550,32 @@ void CreateMonWithNature(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV,
void CreateMonWithGenderNatureLetter(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 gender, u8 nature, u8 unownLetter);
void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level);
void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality);
void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u32 otId);
void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread);
u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon);
void CreateBattleTowerMon(struct Pokemon *mon, struct BattleTowerPokemon *src);
void sub_803E23C(struct Pokemon *mon, struct BattleTowerPokemon *dest);
void CalculateMonStats(struct Pokemon *mon);
u8 GetLevelFromMonExp(struct Pokemon *mon);
void BoxMonToMon(struct BoxPokemon *src, struct Pokemon *dest);
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon);
u16 GiveMoveToMon(struct Pokemon *mon, u16 move);
u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move);
void MonRestorePP(struct Pokemon *mon);
void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot);
void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot);
void GiveMonInitialMoveset(struct Pokemon *mon);
void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon);
u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove);
void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move);
void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e);
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 battlerIdAtk, u8 battlerIdDef);
#define BATTLE_ALIVE_EXCEPT_ACTIVE 0
#define BATTLE_ALIVE_ATK_SIDE 1
#define BATTLE_ALIVE_DEF_SIDE 2
u8 CountAliveMonsInBattle(u8 caseId);
u8 GetDefaultMoveTarget(u8 battlerId);
u8 GetMonGender(struct Pokemon *mon);
u8 GetBoxMonGender(struct BoxPokemon *boxMon);
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
void EncryptBoxMon(struct BoxPokemon *boxMon);
void DecryptBoxMon(struct BoxPokemon *boxMon);
void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition);
void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosition);
// These are full type signatures for GetMonData() and GetBoxMonData(),
// but they are not used since some code erroneously omits the third arg.
@ -583,101 +590,81 @@ u32 GetMonData();
u32 GetBoxMonData();
#endif // IS_POKEMON_C
void SetMonData(struct Pokemon *mon, s32 field, const void *data);
void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *data);
void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg);
void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg);
void CopyMon(void *dest, void *src, size_t size);
u8 GiveMonToPlayer(struct Pokemon *mon);
u8 SendMonToPC(struct Pokemon *mon);
u8 CalculatePlayerPartyCount(void);
u8 CalculateEnemyPartyCount(void);
u8 GetMonsStateToDoubles(void);
u8 GetAbilityBySpecies(u16 species, bool8 altAbility);
u8 GetMonAbility(struct Pokemon *mon);
void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord);
u8 GetSecretBaseTrainerPicIndex(void);
u8 GetSecretBaseTrainerNameIndex(void);
bool8 IsPlayerPartyAndPokemonStorageFull(void);
bool8 IsPokemonStorageFull(void);
void GetSpeciesName(u8 *name, u16 species);
u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex);
void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex);
void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex);
void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex);
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 moveIndex, u8 e);
bool8 PokemonUseItemEffects2(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 moveIndex, u8 e);
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
const u8 *Battle_PrintStatBoosterEffectMessage(u16 itemId);
u8 GetNature(struct Pokemon *mon);
u8 GetNatureFromPersonality(u32 personality);
u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex);
void MonRestorePP(struct Pokemon *);
void BoxMonRestorePP(struct BoxPokemon *);
u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem);
u16 NationalPokedexNumToSpecies(u16 nationalNum);
u16 NationalToHoennOrder(u16);
u16 SpeciesToNationalPokedexNum(u16);
u16 HoennToNationalOrder(u16);
u16 SpeciesToNationalPokedexNum(u16 species);
u16 HoennToNationalOrder(u16 hoennNum);
u16 SpeciesToCryId(u16 species);
void DrawSpindaSpots(u16, u32, u8 *, u8);
void AdjustFriendship(struct Pokemon *, u8);
u8 CheckPartyHasHadPokerus(struct Pokemon *, u8);
void UpdatePartyPokerusTime(u16);
u32 CanMonLearnTMHM(struct Pokemon *, u8);
u32 CanSpeciesLearnTMHM(u16 species, u8 tm);
void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4);
void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies);
bool8 sub_80435E0(void);
bool8 GetLinkTrainerFlankId(u8 linkPlayerId);
s32 GetBankMultiplayerId(u16 a1);
u8 GetTrainerEncounterMusicId(u16 trainer);
void AdjustFriendship(struct Pokemon *mon, u8 event);
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
u16 GetMonEVCount(struct Pokemon *mon);
void sub_8043A68(void);
u8 CheckPartyPokerus(struct Pokemon *party, u8 selection);
u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection);
void sub_8043B40(void);
bool8 TryIncrementMonLevel(struct Pokemon *mon);
u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm);
u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves);
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
u8 GetNumberOfRelearnableMoves(struct Pokemon *mon);
u16 sub_8043F90(u16 species);
void ClearBattleMonForms(void);
void PlayBattleBGM(void);
void PlayMapChosenOrBattleBGM(u16 songId);
const u32 *GetMonFrontSpritePal(struct Pokemon *mon);
const u32 *GetFrontSpritePalFromSpeciesAndPersonality(u16, u32, u32);
const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32);
bool8 IsOtherTrainer(u32, u8 *);
void SetWildMonHeldItem(void);
u16 GetMonEVCount(struct Pokemon *);
const struct CompressedSpritePalette *sub_806E794(struct Pokemon *mon);
const u32 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality);
const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon);
const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality);
bool32 IsHMMove2(u16 move);
bool8 IsPokeSpriteNotFlipped(u16 species);
bool8 IsMonShiny(struct Pokemon *mon);
bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
s8 GetFlavorRelationByPersonality(u32 personality, u8 flavor);
bool8 IsTradedMon(struct Pokemon *mon);
bool8 IsOtherTrainer(u32 otId, u8 *otName);
void MonRestorePP(struct Pokemon *mon);
void BoxMonRestorePP(struct BoxPokemon *boxMon);
void sub_8044348(void);
void SetWildMonHeldItem(void);
bool8 IsMonShiny(struct Pokemon *mon);
u8 *GetTrainerPartnerName(void);
u8 GetPlayerPartyHighestLevel(void);
u16 FacilityClassToPicIndex(u16 facilityClass);
bool8 sub_804455C(u8 caseId, u8 battlerId);
void SetDeoxysStats(void);
u16 sub_80447AC(void);
u16 sub_80447F0(void);
void CreateObedientEnemyMon(void);
void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
s32 GetBankMultiplayerId(u16 a1);
bool16 sub_806D82C(u8 id);
u16 MonTryLearningNewMove(struct Pokemon* mon, bool8);
void sub_8068AA4(void); // sets stats for deoxys
bool8 HasTwoFramesAnimation(u16 species);
u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem);
void RandomlyGivePartyPokerus(struct Pokemon *party);
u8 CheckPartyPokerus(struct Pokemon *party, u8 selection);
u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection);
void UpdatePartyPokerusTime(u16 days);
void PartySpreadPokerus(struct Pokemon *party);
s8 GetMonFlavorRelation(struct Pokemon *mon, u8 a2);
s8 GetFlavorRelationByPersonality(u32 personality, u8 a2);
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
u8 GetDefaultMoveTarget(u8 atkBank);
u16 PlayerGenderToFrontTrainerPicId(u8 playerGender);
void sub_806A1C0(u16 arg0, u8 bankIdentity);
void sub_806A12C(u16 trainerSpriteId, u8 bankIdentity);
u8 GetSecretBaseTrainerPicIndex(void);
bool8 TryIncrementMonLevel(struct Pokemon *mon);
void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon);
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
bool8 HealStatusConditions(struct Pokemon *mon, u32 battlePartyId, u32 healMask, u8 battlerId);
#include "sprite.h"
void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
void BattleAnimateBackSprite(struct Sprite* sprite, u16 species);
void PlayMapChosenOrBattleBGM(u16 songId);
u8 GetMonsStateToDoubles(void);
void sub_803E0A4(struct Pokemon *mon, struct BattleTowerPokemon *src);
void SetMultiuseSpriteTemplateToPokemon(u16 trainerSpriteId, u8 battlerPosition);
const u8 * Battle_PrintStatBoosterEffectMessage(u16 itemId);
bool8 CheckBattleTypeGhost(struct Pokemon *mon, u8 bank);
struct OakSpeechNidoranFStruct *OakSpeechNidoranFSetup(u8 battlePosition, bool8 enable);
void OakSpeechNidoranFFreeResources(void);
void *OakSpeechNidoranFGetBuffer(u8 bufferId);
#endif // GUARD_POKEMON_H

View File

@ -1,12 +0,0 @@
#ifndef GUARD_POKEMON_3_H
#define GUARD_POKEMON_3_H
#include "global.h"
const u8* GetTrainerClassNameFromId(u16 trainerId);
const u8* GetTrainerNameFromId(u16 trainerId);
void * SetUpMonSpriteManagerMaybe(u8, u8);
void sub_8044D80(void);
void * sub_8044E00(u8 buffId);
#endif // GUARD_POKEMON_3_H

View File

@ -14,5 +14,6 @@ u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
void sub_808BCB4(u8 boxId, u8 monPosition);
u8 * GetBoxNamePtr(u8 boxId);
void sub_808CE60(void);
u8 StorageGetCurrentBox(void);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H

View File

@ -177,6 +177,17 @@ extern const u8 gUnknown_84166A7[];
extern const u8 gUnknown_84169DC[];
extern const u8 gUnknown_841623D[];
extern const u8 gUnknown_84162BD[];
extern const u8 gUnknown_841D148[];
// pokemon.c
extern const u8 BattleText_Rose[];
extern const u8 BattleText_UnknownString3[];
extern const u8 BattleText_GetPumped[];
extern const u8 BattleText_MistShroud[];
extern const u8 gText_EggNickname[];
extern const u8 gText_BadEgg[];
extern const u8 gText_PkmnsXPreventsSwitching[];
extern u8 *gUnknown_83FD5D0[];
// diploma
extern const u8 gUnknown_841B60E[];

View File

@ -76,7 +76,6 @@ SECTIONS {
asm/battle_ai_switch_items.o(.text);
asm/battle_controller_link_opponent.o(.text);
src/pokemon.o(.text);
asm/pokemon_3.o(.text);
src/trig.o(.text);
src/random.o(.text);
src/util.o(.text);
@ -381,6 +380,7 @@ SECTIONS {
src/bg_regs.o(.rodata);
src/string_util.o(.rodata);
data/data.o(.rodata);
src/pokemon.o(.rodata);
src/trig.o(.rodata);
src/util.o(.rodata);
src/daycare.o(.rodata);

View File

@ -1170,28 +1170,28 @@ static void BattleAICmd_get_ability(void)
return;
}
if (gBaseStats[gBattleMons[index].species].ability1 != ABILITY_NONE)
if (gBaseStats[gBattleMons[index].species].abilities[0] != ABILITY_NONE)
{
if (gBaseStats[gBattleMons[index].species].ability2 != ABILITY_NONE)
if (gBaseStats[gBattleMons[index].species].abilities[1] != ABILITY_NONE)
{
// AI has no knowledge of opponent, so it guesses which ability.
if (Random() % 2)
{
AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].ability1;
AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].abilities[0];
}
else
{
AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].ability2;
AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].abilities[1];
}
}
else
{
AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].ability1; // it's definitely ability 1.
AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].abilities[0]; // it's definitely ability 1.
}
}
else
{
AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].ability2; // AI cant actually reach this part since every mon has at least 1 ability.
AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].abilities[1]; // AI cant actually reach this part since every mon has at least 1 ability.
}
}
else

View File

@ -1,6 +1,6 @@
#include "global.h"
void CableCarUtil_FillWrapped(void *dest, u16 value, u8 left, u8 top, u8 width, u8 height)
static void CableCarUtil_FillWrapped(void *dest, u16 value, u8 left, u8 top, u8 width, u8 height)
{
u8 i;
u8 j;
@ -18,7 +18,7 @@ void CableCarUtil_FillWrapped(void *dest, u16 value, u8 left, u8 top, u8 width,
}
}
void CableCarUtil_CopyWrapped(void *dest, const u16 *src, u8 left, u8 top, u8 width, u8 height)
static void CableCarUtil_CopyWrapped(void *dest, const u16 *src, u8 left, u8 top, u8 width, u8 height)
{
u8 i;
u8 j;

4617
src/data/battle_moves.h Normal file

File diff suppressed because it is too large Load Diff

12031
src/data/pokemon/base_stats.h Normal file

File diff suppressed because it is too large Load Diff

140
src/data/pokemon/cry_ids.h Normal file
View File

@ -0,0 +1,140 @@
#define HOENN_MON_SPECIES_START 277
static const u16 sHoennSpeciesIdToCryId[] =
{
[SPECIES_TREECKO - HOENN_MON_SPECIES_START] = CRY_TREECKO,
[SPECIES_GROVYLE - HOENN_MON_SPECIES_START] = CRY_GROVYLE,
[SPECIES_SCEPTILE - HOENN_MON_SPECIES_START] = CRY_SCEPTILE,
[SPECIES_TORCHIC - HOENN_MON_SPECIES_START] = CRY_TORCHIC,
[SPECIES_COMBUSKEN - HOENN_MON_SPECIES_START] = CRY_COMBUSKEN,
[SPECIES_BLAZIKEN - HOENN_MON_SPECIES_START] = CRY_BLAZIKEN,
[SPECIES_MUDKIP - HOENN_MON_SPECIES_START] = CRY_MUDKIP,
[SPECIES_MARSHTOMP - HOENN_MON_SPECIES_START] = CRY_MARSHTOMP,
[SPECIES_SWAMPERT - HOENN_MON_SPECIES_START] = CRY_SWAMPERT,
[SPECIES_POOCHYENA - HOENN_MON_SPECIES_START] = CRY_POOCHYENA,
[SPECIES_MIGHTYENA - HOENN_MON_SPECIES_START] = CRY_MIGHTYENA,
[SPECIES_ZIGZAGOON - HOENN_MON_SPECIES_START] = CRY_ZIGZAGOON,
[SPECIES_LINOONE - HOENN_MON_SPECIES_START] = CRY_LINOONE,
[SPECIES_WURMPLE - HOENN_MON_SPECIES_START] = CRY_WURMPLE,
[SPECIES_SILCOON - HOENN_MON_SPECIES_START] = CRY_SILCOON,
[SPECIES_BEAUTIFLY - HOENN_MON_SPECIES_START] = CRY_BEAUTIFLY,
[SPECIES_CASCOON - HOENN_MON_SPECIES_START] = CRY_CASCOON,
[SPECIES_DUSTOX - HOENN_MON_SPECIES_START] = CRY_DUSTOX,
[SPECIES_LOTAD - HOENN_MON_SPECIES_START] = CRY_LOTAD,
[SPECIES_LOMBRE - HOENN_MON_SPECIES_START] = CRY_LOMBRE,
[SPECIES_LUDICOLO - HOENN_MON_SPECIES_START] = CRY_LUDICOLO,
[SPECIES_SEEDOT - HOENN_MON_SPECIES_START] = CRY_SEEDOT,
[SPECIES_NUZLEAF - HOENN_MON_SPECIES_START] = CRY_NUZLEAF,
[SPECIES_SHIFTRY - HOENN_MON_SPECIES_START] = CRY_SHIFTRY,
[SPECIES_NINCADA - HOENN_MON_SPECIES_START] = CRY_NINCADA,
[SPECIES_NINJASK - HOENN_MON_SPECIES_START] = CRY_NINJASK,
[SPECIES_SHEDINJA - HOENN_MON_SPECIES_START] = CRY_SHEDINJA,
[SPECIES_TAILLOW - HOENN_MON_SPECIES_START] = CRY_TAILLOW,
[SPECIES_SWELLOW - HOENN_MON_SPECIES_START] = CRY_SWELLOW,
[SPECIES_SHROOMISH - HOENN_MON_SPECIES_START] = CRY_SHROOMISH,
[SPECIES_BRELOOM - HOENN_MON_SPECIES_START] = CRY_BRELOOM,
[SPECIES_SPINDA - HOENN_MON_SPECIES_START] = CRY_SPINDA,
[SPECIES_WINGULL - HOENN_MON_SPECIES_START] = CRY_WINGULL,
[SPECIES_PELIPPER - HOENN_MON_SPECIES_START] = CRY_PELIPPER,
[SPECIES_SURSKIT - HOENN_MON_SPECIES_START] = CRY_SURSKIT,
[SPECIES_MASQUERAIN - HOENN_MON_SPECIES_START] = CRY_MASQUERAIN,
[SPECIES_WAILMER - HOENN_MON_SPECIES_START] = CRY_WAILMER,
[SPECIES_WAILORD - HOENN_MON_SPECIES_START] = CRY_WAILORD,
[SPECIES_SKITTY - HOENN_MON_SPECIES_START] = CRY_SKITTY,
[SPECIES_DELCATTY - HOENN_MON_SPECIES_START] = CRY_DELCATTY,
[SPECIES_KECLEON - HOENN_MON_SPECIES_START] = CRY_KECLEON,
[SPECIES_BALTOY - HOENN_MON_SPECIES_START] = CRY_BALTOY,
[SPECIES_CLAYDOL - HOENN_MON_SPECIES_START] = CRY_CLAYDOL,
[SPECIES_NOSEPASS - HOENN_MON_SPECIES_START] = CRY_NOSEPASS,
[SPECIES_TORKOAL - HOENN_MON_SPECIES_START] = CRY_TORKOAL,
[SPECIES_SABLEYE - HOENN_MON_SPECIES_START] = CRY_SABLEYE,
[SPECIES_BARBOACH - HOENN_MON_SPECIES_START] = CRY_BARBOACH,
[SPECIES_WHISCASH - HOENN_MON_SPECIES_START] = CRY_WHISCASH,
[SPECIES_LUVDISC - HOENN_MON_SPECIES_START] = CRY_LUVDISC,
[SPECIES_CORPHISH - HOENN_MON_SPECIES_START] = CRY_CORPHISH,
[SPECIES_CRAWDAUNT - HOENN_MON_SPECIES_START] = CRY_CRAWDAUNT,
[SPECIES_FEEBAS - HOENN_MON_SPECIES_START] = CRY_FEEBAS,
[SPECIES_MILOTIC - HOENN_MON_SPECIES_START] = CRY_MILOTIC,
[SPECIES_CARVANHA - HOENN_MON_SPECIES_START] = CRY_CARVANHA,
[SPECIES_SHARPEDO - HOENN_MON_SPECIES_START] = CRY_SHARPEDO,
[SPECIES_TRAPINCH - HOENN_MON_SPECIES_START] = CRY_TRAPINCH,
[SPECIES_VIBRAVA - HOENN_MON_SPECIES_START] = CRY_VIBRAVA,
[SPECIES_FLYGON - HOENN_MON_SPECIES_START] = CRY_FLYGON,
[SPECIES_MAKUHITA - HOENN_MON_SPECIES_START] = CRY_MAKUHITA,
[SPECIES_HARIYAMA - HOENN_MON_SPECIES_START] = CRY_HARIYAMA,
[SPECIES_ELECTRIKE - HOENN_MON_SPECIES_START] = CRY_ELECTRIKE,
[SPECIES_MANECTRIC - HOENN_MON_SPECIES_START] = CRY_MANECTRIC,
[SPECIES_NUMEL - HOENN_MON_SPECIES_START] = CRY_NUMEL,
[SPECIES_CAMERUPT - HOENN_MON_SPECIES_START] = CRY_CAMERUPT,
[SPECIES_SPHEAL - HOENN_MON_SPECIES_START] = CRY_SPHEAL,
[SPECIES_SEALEO - HOENN_MON_SPECIES_START] = CRY_SEALEO,
[SPECIES_WALREIN - HOENN_MON_SPECIES_START] = CRY_WALREIN,
[SPECIES_CACNEA - HOENN_MON_SPECIES_START] = CRY_CACNEA,
[SPECIES_CACTURNE - HOENN_MON_SPECIES_START] = CRY_CACTURNE,
[SPECIES_SNORUNT - HOENN_MON_SPECIES_START] = CRY_SNORUNT,
[SPECIES_GLALIE - HOENN_MON_SPECIES_START] = CRY_GLALIE,
[SPECIES_LUNATONE - HOENN_MON_SPECIES_START] = CRY_LUNATONE,
[SPECIES_SOLROCK - HOENN_MON_SPECIES_START] = CRY_SOLROCK,
[SPECIES_AZURILL - HOENN_MON_SPECIES_START] = CRY_AZURILL,
[SPECIES_SPOINK - HOENN_MON_SPECIES_START] = CRY_SPOINK,
[SPECIES_GRUMPIG - HOENN_MON_SPECIES_START] = CRY_GRUMPIG,
[SPECIES_PLUSLE - HOENN_MON_SPECIES_START] = CRY_PLUSLE,
[SPECIES_MINUN - HOENN_MON_SPECIES_START] = CRY_MINUN,
[SPECIES_MAWILE - HOENN_MON_SPECIES_START] = CRY_MAWILE,
[SPECIES_MEDITITE - HOENN_MON_SPECIES_START] = CRY_MEDITITE,
[SPECIES_MEDICHAM - HOENN_MON_SPECIES_START] = CRY_MEDICHAM,
[SPECIES_SWABLU - HOENN_MON_SPECIES_START] = CRY_SWABLU,
[SPECIES_ALTARIA - HOENN_MON_SPECIES_START] = CRY_ALTARIA,
[SPECIES_WYNAUT - HOENN_MON_SPECIES_START] = CRY_WYNAUT,
[SPECIES_DUSKULL - HOENN_MON_SPECIES_START] = CRY_DUSKULL,
[SPECIES_DUSCLOPS - HOENN_MON_SPECIES_START] = CRY_DUSCLOPS,
[SPECIES_ROSELIA - HOENN_MON_SPECIES_START] = CRY_ROSELIA,
[SPECIES_SLAKOTH - HOENN_MON_SPECIES_START] = CRY_SLAKOTH,
[SPECIES_VIGOROTH - HOENN_MON_SPECIES_START] = CRY_VIGOROTH,
[SPECIES_SLAKING - HOENN_MON_SPECIES_START] = CRY_SLAKING,
[SPECIES_GULPIN - HOENN_MON_SPECIES_START] = CRY_GULPIN,
[SPECIES_SWALOT - HOENN_MON_SPECIES_START] = CRY_SWALOT,
[SPECIES_TROPIUS - HOENN_MON_SPECIES_START] = CRY_TROPIUS,
[SPECIES_WHISMUR - HOENN_MON_SPECIES_START] = CRY_WHISMUR,
[SPECIES_LOUDRED - HOENN_MON_SPECIES_START] = CRY_LOUDRED,
[SPECIES_EXPLOUD - HOENN_MON_SPECIES_START] = CRY_EXPLOUD,
[SPECIES_CLAMPERL - HOENN_MON_SPECIES_START] = CRY_CLAMPERL,
[SPECIES_HUNTAIL - HOENN_MON_SPECIES_START] = CRY_HUNTAIL,
[SPECIES_GOREBYSS - HOENN_MON_SPECIES_START] = CRY_GOREBYSS,
[SPECIES_ABSOL - HOENN_MON_SPECIES_START] = CRY_ABSOL,
[SPECIES_SHUPPET - HOENN_MON_SPECIES_START] = CRY_SHUPPET,
[SPECIES_BANETTE - HOENN_MON_SPECIES_START] = CRY_BANETTE,
[SPECIES_SEVIPER - HOENN_MON_SPECIES_START] = CRY_SEVIPER,
[SPECIES_ZANGOOSE - HOENN_MON_SPECIES_START] = CRY_ZANGOOSE,
[SPECIES_RELICANTH - HOENN_MON_SPECIES_START] = CRY_RELICANTH,
[SPECIES_ARON - HOENN_MON_SPECIES_START] = CRY_ARON,
[SPECIES_LAIRON - HOENN_MON_SPECIES_START] = CRY_LAIRON,
[SPECIES_AGGRON - HOENN_MON_SPECIES_START] = CRY_AGGRON,
[SPECIES_CASTFORM - HOENN_MON_SPECIES_START] = CRY_CASTFORM,
[SPECIES_VOLBEAT - HOENN_MON_SPECIES_START] = CRY_VOLBEAT,
[SPECIES_ILLUMISE - HOENN_MON_SPECIES_START] = CRY_ILLUMISE,
[SPECIES_LILEEP - HOENN_MON_SPECIES_START] = CRY_LILEEP,
[SPECIES_CRADILY - HOENN_MON_SPECIES_START] = CRY_CRADILY,
[SPECIES_ANORITH - HOENN_MON_SPECIES_START] = CRY_ANORITH,
[SPECIES_ARMALDO - HOENN_MON_SPECIES_START] = CRY_ARMALDO,
[SPECIES_RALTS - HOENN_MON_SPECIES_START] = CRY_RALTS,
[SPECIES_KIRLIA - HOENN_MON_SPECIES_START] = CRY_KIRLIA,
[SPECIES_GARDEVOIR - HOENN_MON_SPECIES_START] = CRY_GARDEVOIR,
[SPECIES_BAGON - HOENN_MON_SPECIES_START] = CRY_BAGON,
[SPECIES_SHELGON - HOENN_MON_SPECIES_START] = CRY_SHELGON,
[SPECIES_SALAMENCE - HOENN_MON_SPECIES_START] = CRY_SALAMENCE,
[SPECIES_BELDUM - HOENN_MON_SPECIES_START] = CRY_BELDUM,
[SPECIES_METANG - HOENN_MON_SPECIES_START] = CRY_METANG,
[SPECIES_METAGROSS - HOENN_MON_SPECIES_START] = CRY_METAGROSS,
[SPECIES_REGIROCK - HOENN_MON_SPECIES_START] = CRY_REGIROCK,
[SPECIES_REGICE - HOENN_MON_SPECIES_START] = CRY_REGICE,
[SPECIES_REGISTEEL - HOENN_MON_SPECIES_START] = CRY_REGISTEEL,
[SPECIES_KYOGRE - HOENN_MON_SPECIES_START] = CRY_KYOGRE,
[SPECIES_GROUDON - HOENN_MON_SPECIES_START] = CRY_GROUDON,
[SPECIES_RAYQUAZA - HOENN_MON_SPECIES_START] = CRY_RAYQUAZA,
[SPECIES_LATIAS - HOENN_MON_SPECIES_START] = CRY_LATIAS,
[SPECIES_LATIOS - HOENN_MON_SPECIES_START] = CRY_LATIOS,
[SPECIES_JIRACHI - HOENN_MON_SPECIES_START] = CRY_JIRACHI,
[SPECIES_DEOXYS - HOENN_MON_SPECIES_START] = CRY_DEOXYS,
[SPECIES_CHIMECHO - HOENN_MON_SPECIES_START] = CRY_CHIMECHO,
};

View File

@ -0,0 +1,187 @@
const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
{
[SPECIES_BULBASAUR] = {{EVO_LEVEL, 16, SPECIES_IVYSAUR}},
[SPECIES_IVYSAUR] = {{EVO_LEVEL, 32, SPECIES_VENUSAUR}},
[SPECIES_CHARMANDER] = {{EVO_LEVEL, 16, SPECIES_CHARMELEON}},
[SPECIES_CHARMELEON] = {{EVO_LEVEL, 36, SPECIES_CHARIZARD}},
[SPECIES_SQUIRTLE] = {{EVO_LEVEL, 16, SPECIES_WARTORTLE}},
[SPECIES_WARTORTLE] = {{EVO_LEVEL, 36, SPECIES_BLASTOISE}},
[SPECIES_CATERPIE] = {{EVO_LEVEL, 7, SPECIES_METAPOD}},
[SPECIES_METAPOD] = {{EVO_LEVEL, 10, SPECIES_BUTTERFREE}},
[SPECIES_WEEDLE] = {{EVO_LEVEL, 7, SPECIES_KAKUNA}},
[SPECIES_KAKUNA] = {{EVO_LEVEL, 10, SPECIES_BEEDRILL}},
[SPECIES_PIDGEY] = {{EVO_LEVEL, 18, SPECIES_PIDGEOTTO}},
[SPECIES_PIDGEOTTO] = {{EVO_LEVEL, 36, SPECIES_PIDGEOT}},
[SPECIES_RATTATA] = {{EVO_LEVEL, 20, SPECIES_RATICATE}},
[SPECIES_SPEAROW] = {{EVO_LEVEL, 20, SPECIES_FEAROW}},
[SPECIES_EKANS] = {{EVO_LEVEL, 22, SPECIES_ARBOK}},
[SPECIES_PIKACHU] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU}},
[SPECIES_SANDSHREW] = {{EVO_LEVEL, 22, SPECIES_SANDSLASH}},
[SPECIES_NIDORAN_F] = {{EVO_LEVEL, 16, SPECIES_NIDORINA}},
[SPECIES_NIDORINA] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN}},
[SPECIES_NIDORAN_M] = {{EVO_LEVEL, 16, SPECIES_NIDORINO}},
[SPECIES_NIDORINO] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING}},
[SPECIES_CLEFAIRY] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE}},
[SPECIES_VULPIX] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES}},
[SPECIES_JIGGLYPUFF] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF}},
[SPECIES_ZUBAT] = {{EVO_LEVEL, 22, SPECIES_GOLBAT}},
[SPECIES_GOLBAT] = {{EVO_FRIENDSHIP, 0, SPECIES_CROBAT}},
[SPECIES_ODDISH] = {{EVO_LEVEL, 21, SPECIES_GLOOM}},
[SPECIES_GLOOM] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME},
{EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM}},
[SPECIES_PARAS] = {{EVO_LEVEL, 24, SPECIES_PARASECT}},
[SPECIES_VENONAT] = {{EVO_LEVEL, 31, SPECIES_VENOMOTH}},
[SPECIES_DIGLETT] = {{EVO_LEVEL, 26, SPECIES_DUGTRIO}},
[SPECIES_MEOWTH] = {{EVO_LEVEL, 28, SPECIES_PERSIAN}},
[SPECIES_PSYDUCK] = {{EVO_LEVEL, 33, SPECIES_GOLDUCK}},
[SPECIES_MANKEY] = {{EVO_LEVEL, 28, SPECIES_PRIMEAPE}},
[SPECIES_GROWLITHE] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE}},
[SPECIES_POLIWAG] = {{EVO_LEVEL, 25, SPECIES_POLIWHIRL}},
[SPECIES_POLIWHIRL] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH},
{EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}},
[SPECIES_ABRA] = {{EVO_LEVEL, 16, SPECIES_KADABRA}},
[SPECIES_KADABRA] = {{EVO_TRADE, 0, SPECIES_ALAKAZAM}},
[SPECIES_MACHOP] = {{EVO_LEVEL, 28, SPECIES_MACHOKE}},
[SPECIES_MACHOKE] = {{EVO_TRADE, 0, SPECIES_MACHAMP}},
[SPECIES_BELLSPROUT] = {{EVO_LEVEL, 21, SPECIES_WEEPINBELL}},
[SPECIES_WEEPINBELL] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL}},
[SPECIES_TENTACOOL] = {{EVO_LEVEL, 30, SPECIES_TENTACRUEL}},
[SPECIES_GEODUDE] = {{EVO_LEVEL, 25, SPECIES_GRAVELER}},
[SPECIES_GRAVELER] = {{EVO_TRADE, 0, SPECIES_GOLEM}},
[SPECIES_PONYTA] = {{EVO_LEVEL, 40, SPECIES_RAPIDASH}},
[SPECIES_SLOWPOKE] = {{EVO_LEVEL, 37, SPECIES_SLOWBRO},
{EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}},
[SPECIES_MAGNEMITE] = {{EVO_LEVEL, 30, SPECIES_MAGNETON}},
[SPECIES_DODUO] = {{EVO_LEVEL, 31, SPECIES_DODRIO}},
[SPECIES_SEEL] = {{EVO_LEVEL, 34, SPECIES_DEWGONG}},
[SPECIES_GRIMER] = {{EVO_LEVEL, 38, SPECIES_MUK}},
[SPECIES_SHELLDER] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER}},
[SPECIES_GASTLY] = {{EVO_LEVEL, 25, SPECIES_HAUNTER}},
[SPECIES_HAUNTER] = {{EVO_TRADE, 0, SPECIES_GENGAR}},
[SPECIES_ONIX] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}},
[SPECIES_DROWZEE] = {{EVO_LEVEL, 26, SPECIES_HYPNO}},
[SPECIES_KRABBY] = {{EVO_LEVEL, 28, SPECIES_KINGLER}},
[SPECIES_VOLTORB] = {{EVO_LEVEL, 30, SPECIES_ELECTRODE}},
[SPECIES_EXEGGCUTE] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR}},
[SPECIES_CUBONE] = {{EVO_LEVEL, 28, SPECIES_MAROWAK}},
[SPECIES_KOFFING] = {{EVO_LEVEL, 35, SPECIES_WEEZING}},
[SPECIES_RHYHORN] = {{EVO_LEVEL, 42, SPECIES_RHYDON}},
[SPECIES_CHANSEY] = {{EVO_FRIENDSHIP, 0, SPECIES_BLISSEY}},
[SPECIES_HORSEA] = {{EVO_LEVEL, 32, SPECIES_SEADRA}},
[SPECIES_SEADRA] = {{EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}},
[SPECIES_GOLDEEN] = {{EVO_LEVEL, 33, SPECIES_SEAKING}},
[SPECIES_STARYU] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE}},
[SPECIES_SCYTHER] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}},
[SPECIES_MAGIKARP] = {{EVO_LEVEL, 20, SPECIES_GYARADOS}},
[SPECIES_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}},
[SPECIES_PORYGON] = {{EVO_TRADE_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2}},
[SPECIES_OMANYTE] = {{EVO_LEVEL, 40, SPECIES_OMASTAR}},
[SPECIES_KABUTO] = {{EVO_LEVEL, 40, SPECIES_KABUTOPS}},
[SPECIES_DRATINI] = {{EVO_LEVEL, 30, SPECIES_DRAGONAIR}},
[SPECIES_DRAGONAIR] = {{EVO_LEVEL, 55, SPECIES_DRAGONITE}},
[SPECIES_CHIKORITA] = {{EVO_LEVEL, 16, SPECIES_BAYLEEF}},
[SPECIES_BAYLEEF] = {{EVO_LEVEL, 32, SPECIES_MEGANIUM}},
[SPECIES_CYNDAQUIL] = {{EVO_LEVEL, 14, SPECIES_QUILAVA}},
[SPECIES_QUILAVA] = {{EVO_LEVEL, 36, SPECIES_TYPHLOSION}},
[SPECIES_TOTODILE] = {{EVO_LEVEL, 18, SPECIES_CROCONAW}},
[SPECIES_CROCONAW] = {{EVO_LEVEL, 30, SPECIES_FERALIGATR}},
[SPECIES_SENTRET] = {{EVO_LEVEL, 15, SPECIES_FURRET}},
[SPECIES_HOOTHOOT] = {{EVO_LEVEL, 20, SPECIES_NOCTOWL}},
[SPECIES_LEDYBA] = {{EVO_LEVEL, 18, SPECIES_LEDIAN}},
[SPECIES_SPINARAK] = {{EVO_LEVEL, 22, SPECIES_ARIADOS}},
[SPECIES_CHINCHOU] = {{EVO_LEVEL, 27, SPECIES_LANTURN}},
[SPECIES_PICHU] = {{EVO_FRIENDSHIP, 0, SPECIES_PIKACHU}},
[SPECIES_CLEFFA] = {{EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY}},
[SPECIES_IGGLYBUFF] = {{EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF}},
[SPECIES_TOGEPI] = {{EVO_FRIENDSHIP, 0, SPECIES_TOGETIC}},
[SPECIES_NATU] = {{EVO_LEVEL, 25, SPECIES_XATU}},
[SPECIES_MAREEP] = {{EVO_LEVEL, 15, SPECIES_FLAAFFY}},
[SPECIES_FLAAFFY] = {{EVO_LEVEL, 30, SPECIES_AMPHAROS}},
[SPECIES_MARILL] = {{EVO_LEVEL, 18, SPECIES_AZUMARILL}},
[SPECIES_HOPPIP] = {{EVO_LEVEL, 18, SPECIES_SKIPLOOM}},
[SPECIES_SKIPLOOM] = {{EVO_LEVEL, 27, SPECIES_JUMPLUFF}},
[SPECIES_SUNKERN] = {{EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA}},
[SPECIES_WOOPER] = {{EVO_LEVEL, 20, SPECIES_QUAGSIRE}},
[SPECIES_PINECO] = {{EVO_LEVEL, 31, SPECIES_FORRETRESS}},
[SPECIES_SNUBBULL] = {{EVO_LEVEL, 23, SPECIES_GRANBULL}},
[SPECIES_TEDDIURSA] = {{EVO_LEVEL, 30, SPECIES_URSARING}},
[SPECIES_SLUGMA] = {{EVO_LEVEL, 38, SPECIES_MAGCARGO}},
[SPECIES_SWINUB] = {{EVO_LEVEL, 33, SPECIES_PILOSWINE}},
[SPECIES_REMORAID] = {{EVO_LEVEL, 25, SPECIES_OCTILLERY}},
[SPECIES_HOUNDOUR] = {{EVO_LEVEL, 24, SPECIES_HOUNDOOM}},
[SPECIES_PHANPY] = {{EVO_LEVEL, 25, SPECIES_DONPHAN}},
[SPECIES_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}},
[SPECIES_SMOOCHUM] = {{EVO_LEVEL, 30, SPECIES_JYNX}},
[SPECIES_ELEKID] = {{EVO_LEVEL, 30, SPECIES_ELECTABUZZ}},
[SPECIES_MAGBY] = {{EVO_LEVEL, 30, SPECIES_MAGMAR}},
[SPECIES_LARVITAR] = {{EVO_LEVEL, 30, SPECIES_PUPITAR}},
[SPECIES_PUPITAR] = {{EVO_LEVEL, 55, SPECIES_TYRANITAR}},
[SPECIES_TREECKO] = {{EVO_LEVEL, 16, SPECIES_GROVYLE}},
[SPECIES_GROVYLE] = {{EVO_LEVEL, 36, SPECIES_SCEPTILE}},
[SPECIES_TORCHIC] = {{EVO_LEVEL, 16, SPECIES_COMBUSKEN}},
[SPECIES_COMBUSKEN] = {{EVO_LEVEL, 36, SPECIES_BLAZIKEN}},
[SPECIES_MUDKIP] = {{EVO_LEVEL, 16, SPECIES_MARSHTOMP}},
[SPECIES_MARSHTOMP] = {{EVO_LEVEL, 36, SPECIES_SWAMPERT}},
[SPECIES_POOCHYENA] = {{EVO_LEVEL, 18, SPECIES_MIGHTYENA}},
[SPECIES_ZIGZAGOON] = {{EVO_LEVEL, 20, SPECIES_LINOONE}},
[SPECIES_WURMPLE] = {{EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON},
{EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON}},
[SPECIES_SILCOON] = {{EVO_LEVEL, 10, SPECIES_BEAUTIFLY}},
[SPECIES_CASCOON] = {{EVO_LEVEL, 10, SPECIES_DUSTOX}},
[SPECIES_LOTAD] = {{EVO_LEVEL, 14, SPECIES_LOMBRE}},
[SPECIES_LOMBRE] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO}},
[SPECIES_SEEDOT] = {{EVO_LEVEL, 14, SPECIES_NUZLEAF}},
[SPECIES_NUZLEAF] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY}},
[SPECIES_NINCADA] = {{EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK},
{EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA}},
[SPECIES_TAILLOW] = {{EVO_LEVEL, 22, SPECIES_SWELLOW}},
[SPECIES_SHROOMISH] = {{EVO_LEVEL, 23, SPECIES_BRELOOM}},
[SPECIES_WINGULL] = {{EVO_LEVEL, 25, SPECIES_PELIPPER}},
[SPECIES_SURSKIT] = {{EVO_LEVEL, 22, SPECIES_MASQUERAIN}},
[SPECIES_WAILMER] = {{EVO_LEVEL, 40, SPECIES_WAILORD}},
[SPECIES_SKITTY] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY}},
[SPECIES_BALTOY] = {{EVO_LEVEL, 36, SPECIES_CLAYDOL}},
[SPECIES_BARBOACH] = {{EVO_LEVEL, 30, SPECIES_WHISCASH}},
[SPECIES_CORPHISH] = {{EVO_LEVEL, 30, SPECIES_CRAWDAUNT}},
[SPECIES_FEEBAS] = {{EVO_BEAUTY, 170, SPECIES_MILOTIC}},
[SPECIES_CARVANHA] = {{EVO_LEVEL, 30, SPECIES_SHARPEDO}},
[SPECIES_TRAPINCH] = {{EVO_LEVEL, 35, SPECIES_VIBRAVA}},
[SPECIES_VIBRAVA] = {{EVO_LEVEL, 45, SPECIES_FLYGON}},
[SPECIES_MAKUHITA] = {{EVO_LEVEL, 24, SPECIES_HARIYAMA}},
[SPECIES_ELECTRIKE] = {{EVO_LEVEL, 26, SPECIES_MANECTRIC}},
[SPECIES_NUMEL] = {{EVO_LEVEL, 33, SPECIES_CAMERUPT}},
[SPECIES_SPHEAL] = {{EVO_LEVEL, 32, SPECIES_SEALEO}},
[SPECIES_SEALEO] = {{EVO_LEVEL, 44, SPECIES_WALREIN}},
[SPECIES_CACNEA] = {{EVO_LEVEL, 32, SPECIES_CACTURNE}},
[SPECIES_SNORUNT] = {{EVO_LEVEL, 42, SPECIES_GLALIE}},
[SPECIES_AZURILL] = {{EVO_FRIENDSHIP, 0, SPECIES_MARILL}},
[SPECIES_SPOINK] = {{EVO_LEVEL, 32, SPECIES_GRUMPIG}},
[SPECIES_MEDITITE] = {{EVO_LEVEL, 37, SPECIES_MEDICHAM}},
[SPECIES_SWABLU] = {{EVO_LEVEL, 35, SPECIES_ALTARIA}},
[SPECIES_WYNAUT] = {{EVO_LEVEL, 15, SPECIES_WOBBUFFET}},
[SPECIES_DUSKULL] = {{EVO_LEVEL, 37, SPECIES_DUSCLOPS}},
[SPECIES_SLAKOTH] = {{EVO_LEVEL, 18, SPECIES_VIGOROTH}},
[SPECIES_VIGOROTH] = {{EVO_LEVEL, 36, SPECIES_SLAKING}},
[SPECIES_GULPIN] = {{EVO_LEVEL, 26, SPECIES_SWALOT}},
[SPECIES_WHISMUR] = {{EVO_LEVEL, 20, SPECIES_LOUDRED}},
[SPECIES_LOUDRED] = {{EVO_LEVEL, 40, SPECIES_EXPLOUD}},
[SPECIES_CLAMPERL] = {{EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL},
{EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}},
[SPECIES_SHUPPET] = {{EVO_LEVEL, 37, SPECIES_BANETTE}},
[SPECIES_ARON] = {{EVO_LEVEL, 32, SPECIES_LAIRON}},
[SPECIES_LAIRON] = {{EVO_LEVEL, 42, SPECIES_AGGRON}},
[SPECIES_LILEEP] = {{EVO_LEVEL, 40, SPECIES_CRADILY}},
[SPECIES_ANORITH] = {{EVO_LEVEL, 40, SPECIES_ARMALDO}},
[SPECIES_RALTS] = {{EVO_LEVEL, 20, SPECIES_KIRLIA}},
[SPECIES_KIRLIA] = {{EVO_LEVEL, 30, SPECIES_GARDEVOIR}},
[SPECIES_BAGON] = {{EVO_LEVEL, 30, SPECIES_SHELGON}},
[SPECIES_SHELGON] = {{EVO_LEVEL, 50, SPECIES_SALAMENCE}},
[SPECIES_BELDUM] = {{EVO_LEVEL, 20, SPECIES_METANG}},
[SPECIES_METANG] = {{EVO_LEVEL, 45, SPECIES_METAGROSS}},
};

View File

@ -0,0 +1,844 @@
#define SQUARE(n)(n * n)
#define CUBE(n)(n * n * n)
#define EXP_SLOW(n)((5 * CUBE(n)) / 4) // (5 * (n)^3) / 4
#define EXP_FAST(n)((4 * CUBE(n)) / 5) // (4 * (n)^3) / 5
#define EXP_MEDIUM_FAST(n)(CUBE(n)) // (n)^3
#define EXP_MEDIUM_SLOW(n)((6 * CUBE(n)) / 5 - (15 * SQUARE(n)) + (100 * n) - 140) // (6 * (n)^3) / 5 - (15 * (n)^2) + (100 * n) - 140
#define EXP_ERRATIC(n) \
(n <= 50) ? ((100 - n) * CUBE(n) / 50) \
:(n <= 68) ? ((150 - n) * CUBE(n) / 100) \
:(n <= 98) ? (((1911 - 10 * n) / 3) * CUBE(n) / 500) \
: ((160 - n) * CUBE(n) / 100)
#define EXP_FLUCTUATING(n) \
(n <= 15) ? (((n + 1) / 3 + 24) * CUBE(n) / 50) \
:(n <= 36) ? ((n + 14) * CUBE(n) / 50) \
: (((n / 2) + 32) * CUBE(n) / 50)
const u32 gExperienceTables[][MAX_MON_LEVEL + 1] =
{
{ // Medium Fast
0, // 0
1, // 1
EXP_MEDIUM_FAST(2),
EXP_MEDIUM_FAST(3),
EXP_MEDIUM_FAST(4),
EXP_MEDIUM_FAST(5),
EXP_MEDIUM_FAST(6),
EXP_MEDIUM_FAST(7),
EXP_MEDIUM_FAST(8),
EXP_MEDIUM_FAST(9),
EXP_MEDIUM_FAST(10),
EXP_MEDIUM_FAST(11),
EXP_MEDIUM_FAST(12),
EXP_MEDIUM_FAST(13),
EXP_MEDIUM_FAST(14),
EXP_MEDIUM_FAST(15),
EXP_MEDIUM_FAST(16),
EXP_MEDIUM_FAST(17),
EXP_MEDIUM_FAST(18),
EXP_MEDIUM_FAST(19),
EXP_MEDIUM_FAST(20),
EXP_MEDIUM_FAST(21),
EXP_MEDIUM_FAST(22),
EXP_MEDIUM_FAST(23),
EXP_MEDIUM_FAST(24),
EXP_MEDIUM_FAST(25),
EXP_MEDIUM_FAST(26),
EXP_MEDIUM_FAST(27),
EXP_MEDIUM_FAST(28),
EXP_MEDIUM_FAST(29),
EXP_MEDIUM_FAST(30),
EXP_MEDIUM_FAST(31),
EXP_MEDIUM_FAST(32),
EXP_MEDIUM_FAST(33),
EXP_MEDIUM_FAST(34),
EXP_MEDIUM_FAST(35),
EXP_MEDIUM_FAST(36),
EXP_MEDIUM_FAST(37),
EXP_MEDIUM_FAST(38),
EXP_MEDIUM_FAST(39),
EXP_MEDIUM_FAST(40),
EXP_MEDIUM_FAST(41),
EXP_MEDIUM_FAST(42),
EXP_MEDIUM_FAST(43),
EXP_MEDIUM_FAST(44),
EXP_MEDIUM_FAST(45),
EXP_MEDIUM_FAST(46),
EXP_MEDIUM_FAST(47),
EXP_MEDIUM_FAST(48),
EXP_MEDIUM_FAST(49),
EXP_MEDIUM_FAST(50),
EXP_MEDIUM_FAST(51),
EXP_MEDIUM_FAST(52),
EXP_MEDIUM_FAST(53),
EXP_MEDIUM_FAST(54),
EXP_MEDIUM_FAST(55),
EXP_MEDIUM_FAST(56),
EXP_MEDIUM_FAST(57),
EXP_MEDIUM_FAST(58),
EXP_MEDIUM_FAST(59),
EXP_MEDIUM_FAST(60),
EXP_MEDIUM_FAST(61),
EXP_MEDIUM_FAST(62),
EXP_MEDIUM_FAST(63),
EXP_MEDIUM_FAST(64),
EXP_MEDIUM_FAST(65),
EXP_MEDIUM_FAST(66),
EXP_MEDIUM_FAST(67),
EXP_MEDIUM_FAST(68),
EXP_MEDIUM_FAST(69),
EXP_MEDIUM_FAST(70),
EXP_MEDIUM_FAST(71),
EXP_MEDIUM_FAST(72),
EXP_MEDIUM_FAST(73),
EXP_MEDIUM_FAST(74),
EXP_MEDIUM_FAST(75),
EXP_MEDIUM_FAST(76),
EXP_MEDIUM_FAST(77),
EXP_MEDIUM_FAST(78),
EXP_MEDIUM_FAST(79),
EXP_MEDIUM_FAST(80),
EXP_MEDIUM_FAST(81),
EXP_MEDIUM_FAST(82),
EXP_MEDIUM_FAST(83),
EXP_MEDIUM_FAST(84),
EXP_MEDIUM_FAST(85),
EXP_MEDIUM_FAST(86),
EXP_MEDIUM_FAST(87),
EXP_MEDIUM_FAST(88),
EXP_MEDIUM_FAST(89),
EXP_MEDIUM_FAST(90),
EXP_MEDIUM_FAST(91),
EXP_MEDIUM_FAST(92),
EXP_MEDIUM_FAST(93),
EXP_MEDIUM_FAST(94),
EXP_MEDIUM_FAST(95),
EXP_MEDIUM_FAST(96),
EXP_MEDIUM_FAST(97),
EXP_MEDIUM_FAST(98),
EXP_MEDIUM_FAST(99),
EXP_MEDIUM_FAST(100),
},
{ // Erratic
0, // 0
1, // 1
EXP_ERRATIC(2),
EXP_ERRATIC(3),
EXP_ERRATIC(4),
EXP_ERRATIC(5),
EXP_ERRATIC(6),
EXP_ERRATIC(7),
EXP_ERRATIC(8),
EXP_ERRATIC(9),
EXP_ERRATIC(10),
EXP_ERRATIC(11),
EXP_ERRATIC(12),
EXP_ERRATIC(13),
EXP_ERRATIC(14),
EXP_ERRATIC(15),
EXP_ERRATIC(16),
EXP_ERRATIC(17),
EXP_ERRATIC(18),
EXP_ERRATIC(19),
EXP_ERRATIC(20),
EXP_ERRATIC(21),
EXP_ERRATIC(22),
EXP_ERRATIC(23),
EXP_ERRATIC(24),
EXP_ERRATIC(25),
EXP_ERRATIC(26),
EXP_ERRATIC(27),
EXP_ERRATIC(28),
EXP_ERRATIC(29),
EXP_ERRATIC(30),
EXP_ERRATIC(31),
EXP_ERRATIC(32),
EXP_ERRATIC(33),
EXP_ERRATIC(34),
EXP_ERRATIC(35),
EXP_ERRATIC(36),
EXP_ERRATIC(37),
EXP_ERRATIC(38),
EXP_ERRATIC(39),
EXP_ERRATIC(40),
EXP_ERRATIC(41),
EXP_ERRATIC(42),
EXP_ERRATIC(43),
EXP_ERRATIC(44),
EXP_ERRATIC(45),
EXP_ERRATIC(46),
EXP_ERRATIC(47),
EXP_ERRATIC(48),
EXP_ERRATIC(49),
EXP_ERRATIC(50),
EXP_ERRATIC(51),
EXP_ERRATIC(52),
EXP_ERRATIC(53),
EXP_ERRATIC(54),
EXP_ERRATIC(55),
EXP_ERRATIC(56),
EXP_ERRATIC(57),
EXP_ERRATIC(58),
EXP_ERRATIC(59),
EXP_ERRATIC(60),
EXP_ERRATIC(61),
EXP_ERRATIC(62),
EXP_ERRATIC(63),
EXP_ERRATIC(64),
EXP_ERRATIC(65),
EXP_ERRATIC(66),
EXP_ERRATIC(67),
EXP_ERRATIC(68),
EXP_ERRATIC(69),
EXP_ERRATIC(70),
EXP_ERRATIC(71),
EXP_ERRATIC(72),
EXP_ERRATIC(73),
EXP_ERRATIC(74),
EXP_ERRATIC(75),
EXP_ERRATIC(76),
EXP_ERRATIC(77),
EXP_ERRATIC(78),
EXP_ERRATIC(79),
EXP_ERRATIC(80),
EXP_ERRATIC(81),
EXP_ERRATIC(82),
EXP_ERRATIC(83),
EXP_ERRATIC(84),
EXP_ERRATIC(85),
EXP_ERRATIC(86),
EXP_ERRATIC(87),
EXP_ERRATIC(88),
EXP_ERRATIC(89),
EXP_ERRATIC(90),
EXP_ERRATIC(91),
EXP_ERRATIC(92),
EXP_ERRATIC(93),
EXP_ERRATIC(94),
EXP_ERRATIC(95),
EXP_ERRATIC(96),
EXP_ERRATIC(97),
EXP_ERRATIC(98),
EXP_ERRATIC(99),
EXP_ERRATIC(100),
},
{ // Fluctuating
0, // 0
1, // 1
EXP_FLUCTUATING(2),
EXP_FLUCTUATING(3),
EXP_FLUCTUATING(4),
EXP_FLUCTUATING(5),
EXP_FLUCTUATING(6),
EXP_FLUCTUATING(7),
EXP_FLUCTUATING(8),
EXP_FLUCTUATING(9),
EXP_FLUCTUATING(10),
EXP_FLUCTUATING(11),
EXP_FLUCTUATING(12),
EXP_FLUCTUATING(13),
EXP_FLUCTUATING(14),
EXP_FLUCTUATING(15),
EXP_FLUCTUATING(16),
EXP_FLUCTUATING(17),
EXP_FLUCTUATING(18),
EXP_FLUCTUATING(19),
EXP_FLUCTUATING(20),
EXP_FLUCTUATING(21),
EXP_FLUCTUATING(22),
EXP_FLUCTUATING(23),
EXP_FLUCTUATING(24),
EXP_FLUCTUATING(25),
EXP_FLUCTUATING(26),
EXP_FLUCTUATING(27),
EXP_FLUCTUATING(28),
EXP_FLUCTUATING(29),
EXP_FLUCTUATING(30),
EXP_FLUCTUATING(31),
EXP_FLUCTUATING(32),
EXP_FLUCTUATING(33),
EXP_FLUCTUATING(34),
EXP_FLUCTUATING(35),
EXP_FLUCTUATING(36),
EXP_FLUCTUATING(37),
EXP_FLUCTUATING(38),
EXP_FLUCTUATING(39),
EXP_FLUCTUATING(40),
EXP_FLUCTUATING(41),
EXP_FLUCTUATING(42),
EXP_FLUCTUATING(43),
EXP_FLUCTUATING(44),
EXP_FLUCTUATING(45),
EXP_FLUCTUATING(46),
EXP_FLUCTUATING(47),
EXP_FLUCTUATING(48),
EXP_FLUCTUATING(49),
EXP_FLUCTUATING(50),
EXP_FLUCTUATING(51),
EXP_FLUCTUATING(52),
EXP_FLUCTUATING(53),
EXP_FLUCTUATING(54),
EXP_FLUCTUATING(55),
EXP_FLUCTUATING(56),
EXP_FLUCTUATING(57),
EXP_FLUCTUATING(58),
EXP_FLUCTUATING(59),
EXP_FLUCTUATING(60),
EXP_FLUCTUATING(61),
EXP_FLUCTUATING(62),
EXP_FLUCTUATING(63),
EXP_FLUCTUATING(64),
EXP_FLUCTUATING(65),
EXP_FLUCTUATING(66),
EXP_FLUCTUATING(67),
EXP_FLUCTUATING(68),
EXP_FLUCTUATING(69),
EXP_FLUCTUATING(70),
EXP_FLUCTUATING(71),
EXP_FLUCTUATING(72),
EXP_FLUCTUATING(73),
EXP_FLUCTUATING(74),
EXP_FLUCTUATING(75),
EXP_FLUCTUATING(76),
EXP_FLUCTUATING(77),
EXP_FLUCTUATING(78),
EXP_FLUCTUATING(79),
EXP_FLUCTUATING(80),
EXP_FLUCTUATING(81),
EXP_FLUCTUATING(82),
EXP_FLUCTUATING(83),
EXP_FLUCTUATING(84),
EXP_FLUCTUATING(85),
EXP_FLUCTUATING(86),
EXP_FLUCTUATING(87),
EXP_FLUCTUATING(88),
EXP_FLUCTUATING(89),
EXP_FLUCTUATING(90),
EXP_FLUCTUATING(91),
EXP_FLUCTUATING(92),
EXP_FLUCTUATING(93),
EXP_FLUCTUATING(94),
EXP_FLUCTUATING(95),
EXP_FLUCTUATING(96),
EXP_FLUCTUATING(97),
EXP_FLUCTUATING(98),
EXP_FLUCTUATING(99),
EXP_FLUCTUATING(100),
},
{ // Medium Slow
0, // 0
1, // 1
EXP_MEDIUM_SLOW(2),
EXP_MEDIUM_SLOW(3),
EXP_MEDIUM_SLOW(4),
EXP_MEDIUM_SLOW(5),
EXP_MEDIUM_SLOW(6),
EXP_MEDIUM_SLOW(7),
EXP_MEDIUM_SLOW(8),
EXP_MEDIUM_SLOW(9),
EXP_MEDIUM_SLOW(10),
EXP_MEDIUM_SLOW(11),
EXP_MEDIUM_SLOW(12),
EXP_MEDIUM_SLOW(13),
EXP_MEDIUM_SLOW(14),
EXP_MEDIUM_SLOW(15),
EXP_MEDIUM_SLOW(16),
EXP_MEDIUM_SLOW(17),
EXP_MEDIUM_SLOW(18),
EXP_MEDIUM_SLOW(19),
EXP_MEDIUM_SLOW(20),
EXP_MEDIUM_SLOW(21),
EXP_MEDIUM_SLOW(22),
EXP_MEDIUM_SLOW(23),
EXP_MEDIUM_SLOW(24),
EXP_MEDIUM_SLOW(25),
EXP_MEDIUM_SLOW(26),
EXP_MEDIUM_SLOW(27),
EXP_MEDIUM_SLOW(28),
EXP_MEDIUM_SLOW(29),
EXP_MEDIUM_SLOW(30),
EXP_MEDIUM_SLOW(31),
EXP_MEDIUM_SLOW(32),
EXP_MEDIUM_SLOW(33),
EXP_MEDIUM_SLOW(34),
EXP_MEDIUM_SLOW(35),
EXP_MEDIUM_SLOW(36),
EXP_MEDIUM_SLOW(37),
EXP_MEDIUM_SLOW(38),
EXP_MEDIUM_SLOW(39),
EXP_MEDIUM_SLOW(40),
EXP_MEDIUM_SLOW(41),
EXP_MEDIUM_SLOW(42),
EXP_MEDIUM_SLOW(43),
EXP_MEDIUM_SLOW(44),
EXP_MEDIUM_SLOW(45),
EXP_MEDIUM_SLOW(46),
EXP_MEDIUM_SLOW(47),
EXP_MEDIUM_SLOW(48),
EXP_MEDIUM_SLOW(49),
EXP_MEDIUM_SLOW(50),
EXP_MEDIUM_SLOW(51),
EXP_MEDIUM_SLOW(52),
EXP_MEDIUM_SLOW(53),
EXP_MEDIUM_SLOW(54),
EXP_MEDIUM_SLOW(55),
EXP_MEDIUM_SLOW(56),
EXP_MEDIUM_SLOW(57),
EXP_MEDIUM_SLOW(58),
EXP_MEDIUM_SLOW(59),
EXP_MEDIUM_SLOW(60),
EXP_MEDIUM_SLOW(61),
EXP_MEDIUM_SLOW(62),
EXP_MEDIUM_SLOW(63),
EXP_MEDIUM_SLOW(64),
EXP_MEDIUM_SLOW(65),
EXP_MEDIUM_SLOW(66),
EXP_MEDIUM_SLOW(67),
EXP_MEDIUM_SLOW(68),
EXP_MEDIUM_SLOW(69),
EXP_MEDIUM_SLOW(70),
EXP_MEDIUM_SLOW(71),
EXP_MEDIUM_SLOW(72),
EXP_MEDIUM_SLOW(73),
EXP_MEDIUM_SLOW(74),
EXP_MEDIUM_SLOW(75),
EXP_MEDIUM_SLOW(76),
EXP_MEDIUM_SLOW(77),
EXP_MEDIUM_SLOW(78),
EXP_MEDIUM_SLOW(79),
EXP_MEDIUM_SLOW(80),
EXP_MEDIUM_SLOW(81),
EXP_MEDIUM_SLOW(82),
EXP_MEDIUM_SLOW(83),
EXP_MEDIUM_SLOW(84),
EXP_MEDIUM_SLOW(85),
EXP_MEDIUM_SLOW(86),
EXP_MEDIUM_SLOW(87),
EXP_MEDIUM_SLOW(88),
EXP_MEDIUM_SLOW(89),
EXP_MEDIUM_SLOW(90),
EXP_MEDIUM_SLOW(91),
EXP_MEDIUM_SLOW(92),
EXP_MEDIUM_SLOW(93),
EXP_MEDIUM_SLOW(94),
EXP_MEDIUM_SLOW(95),
EXP_MEDIUM_SLOW(96),
EXP_MEDIUM_SLOW(97),
EXP_MEDIUM_SLOW(98),
EXP_MEDIUM_SLOW(99),
EXP_MEDIUM_SLOW(100),
},
{ // Fast
0, // 0
1, // 1
EXP_FAST(2),
EXP_FAST(3),
EXP_FAST(4),
EXP_FAST(5),
EXP_FAST(6),
EXP_FAST(7),
EXP_FAST(8),
EXP_FAST(9),
EXP_FAST(10),
EXP_FAST(11),
EXP_FAST(12),
EXP_FAST(13),
EXP_FAST(14),
EXP_FAST(15),
EXP_FAST(16),
EXP_FAST(17),
EXP_FAST(18),
EXP_FAST(19),
EXP_FAST(20),
EXP_FAST(21),
EXP_FAST(22),
EXP_FAST(23),
EXP_FAST(24),
EXP_FAST(25),
EXP_FAST(26),
EXP_FAST(27),
EXP_FAST(28),
EXP_FAST(29),
EXP_FAST(30),
EXP_FAST(31),
EXP_FAST(32),
EXP_FAST(33),
EXP_FAST(34),
EXP_FAST(35),
EXP_FAST(36),
EXP_FAST(37),
EXP_FAST(38),
EXP_FAST(39),
EXP_FAST(40),
EXP_FAST(41),
EXP_FAST(42),
EXP_FAST(43),
EXP_FAST(44),
EXP_FAST(45),
EXP_FAST(46),
EXP_FAST(47),
EXP_FAST(48),
EXP_FAST(49),
EXP_FAST(50),
EXP_FAST(51),
EXP_FAST(52),
EXP_FAST(53),
EXP_FAST(54),
EXP_FAST(55),
EXP_FAST(56),
EXP_FAST(57),
EXP_FAST(58),
EXP_FAST(59),
EXP_FAST(60),
EXP_FAST(61),
EXP_FAST(62),
EXP_FAST(63),
EXP_FAST(64),
EXP_FAST(65),
EXP_FAST(66),
EXP_FAST(67),
EXP_FAST(68),
EXP_FAST(69),
EXP_FAST(70),
EXP_FAST(71),
EXP_FAST(72),
EXP_FAST(73),
EXP_FAST(74),
EXP_FAST(75),
EXP_FAST(76),
EXP_FAST(77),
EXP_FAST(78),
EXP_FAST(79),
EXP_FAST(80),
EXP_FAST(81),
EXP_FAST(82),
EXP_FAST(83),
EXP_FAST(84),
EXP_FAST(85),
EXP_FAST(86),
EXP_FAST(87),
EXP_FAST(88),
EXP_FAST(89),
EXP_FAST(90),
EXP_FAST(91),
EXP_FAST(92),
EXP_FAST(93),
EXP_FAST(94),
EXP_FAST(95),
EXP_FAST(96),
EXP_FAST(97),
EXP_FAST(98),
EXP_FAST(99),
EXP_FAST(100),
},
{ // Slow
0, // 0
1, // 1
EXP_SLOW(2),
EXP_SLOW(3),
EXP_SLOW(4),
EXP_SLOW(5),
EXP_SLOW(6),
EXP_SLOW(7),
EXP_SLOW(8),
EXP_SLOW(9),
EXP_SLOW(10),
EXP_SLOW(11),
EXP_SLOW(12),
EXP_SLOW(13),
EXP_SLOW(14),
EXP_SLOW(15),
EXP_SLOW(16),
EXP_SLOW(17),
EXP_SLOW(18),
EXP_SLOW(19),
EXP_SLOW(20),
EXP_SLOW(21),
EXP_SLOW(22),
EXP_SLOW(23),
EXP_SLOW(24),
EXP_SLOW(25),
EXP_SLOW(26),
EXP_SLOW(27),
EXP_SLOW(28),
EXP_SLOW(29),
EXP_SLOW(30),
EXP_SLOW(31),
EXP_SLOW(32),
EXP_SLOW(33),
EXP_SLOW(34),
EXP_SLOW(35),
EXP_SLOW(36),
EXP_SLOW(37),
EXP_SLOW(38),
EXP_SLOW(39),
EXP_SLOW(40),
EXP_SLOW(41),
EXP_SLOW(42),
EXP_SLOW(43),
EXP_SLOW(44),
EXP_SLOW(45),
EXP_SLOW(46),
EXP_SLOW(47),
EXP_SLOW(48),
EXP_SLOW(49),
EXP_SLOW(50),
EXP_SLOW(51),
EXP_SLOW(52),
EXP_SLOW(53),
EXP_SLOW(54),
EXP_SLOW(55),
EXP_SLOW(56),
EXP_SLOW(57),
EXP_SLOW(58),
EXP_SLOW(59),
EXP_SLOW(60),
EXP_SLOW(61),
EXP_SLOW(62),
EXP_SLOW(63),
EXP_SLOW(64),
EXP_SLOW(65),
EXP_SLOW(66),
EXP_SLOW(67),
EXP_SLOW(68),
EXP_SLOW(69),
EXP_SLOW(70),
EXP_SLOW(71),
EXP_SLOW(72),
EXP_SLOW(73),
EXP_SLOW(74),
EXP_SLOW(75),
EXP_SLOW(76),
EXP_SLOW(77),
EXP_SLOW(78),
EXP_SLOW(79),
EXP_SLOW(80),
EXP_SLOW(81),
EXP_SLOW(82),
EXP_SLOW(83),
EXP_SLOW(84),
EXP_SLOW(85),
EXP_SLOW(86),
EXP_SLOW(87),
EXP_SLOW(88),
EXP_SLOW(89),
EXP_SLOW(90),
EXP_SLOW(91),
EXP_SLOW(92),
EXP_SLOW(93),
EXP_SLOW(94),
EXP_SLOW(95),
EXP_SLOW(96),
EXP_SLOW(97),
EXP_SLOW(98),
EXP_SLOW(99),
EXP_SLOW(100),
},
{ // Medium Fast copy 2 (unused? to-do: investigate)
0, // 0
1, // 1
EXP_MEDIUM_FAST(2),
EXP_MEDIUM_FAST(3),
EXP_MEDIUM_FAST(4),
EXP_MEDIUM_FAST(5),
EXP_MEDIUM_FAST(6),
EXP_MEDIUM_FAST(7),
EXP_MEDIUM_FAST(8),
EXP_MEDIUM_FAST(9),
EXP_MEDIUM_FAST(10),
EXP_MEDIUM_FAST(11),
EXP_MEDIUM_FAST(12),
EXP_MEDIUM_FAST(13),
EXP_MEDIUM_FAST(14),
EXP_MEDIUM_FAST(15),
EXP_MEDIUM_FAST(16),
EXP_MEDIUM_FAST(17),
EXP_MEDIUM_FAST(18),
EXP_MEDIUM_FAST(19),
EXP_MEDIUM_FAST(20),
EXP_MEDIUM_FAST(21),
EXP_MEDIUM_FAST(22),
EXP_MEDIUM_FAST(23),
EXP_MEDIUM_FAST(24),
EXP_MEDIUM_FAST(25),
EXP_MEDIUM_FAST(26),
EXP_MEDIUM_FAST(27),
EXP_MEDIUM_FAST(28),
EXP_MEDIUM_FAST(29),
EXP_MEDIUM_FAST(30),
EXP_MEDIUM_FAST(31),
EXP_MEDIUM_FAST(32),
EXP_MEDIUM_FAST(33),
EXP_MEDIUM_FAST(34),
EXP_MEDIUM_FAST(35),
EXP_MEDIUM_FAST(36),
EXP_MEDIUM_FAST(37),
EXP_MEDIUM_FAST(38),
EXP_MEDIUM_FAST(39),
EXP_MEDIUM_FAST(40),
EXP_MEDIUM_FAST(41),
EXP_MEDIUM_FAST(42),
EXP_MEDIUM_FAST(43),
EXP_MEDIUM_FAST(44),
EXP_MEDIUM_FAST(45),
EXP_MEDIUM_FAST(46),
EXP_MEDIUM_FAST(47),
EXP_MEDIUM_FAST(48),
EXP_MEDIUM_FAST(49),
EXP_MEDIUM_FAST(50),
EXP_MEDIUM_FAST(51),
EXP_MEDIUM_FAST(52),
EXP_MEDIUM_FAST(53),
EXP_MEDIUM_FAST(54),
EXP_MEDIUM_FAST(55),
EXP_MEDIUM_FAST(56),
EXP_MEDIUM_FAST(57),
EXP_MEDIUM_FAST(58),
EXP_MEDIUM_FAST(59),
EXP_MEDIUM_FAST(60),
EXP_MEDIUM_FAST(61),
EXP_MEDIUM_FAST(62),
EXP_MEDIUM_FAST(63),
EXP_MEDIUM_FAST(64),
EXP_MEDIUM_FAST(65),
EXP_MEDIUM_FAST(66),
EXP_MEDIUM_FAST(67),
EXP_MEDIUM_FAST(68),
EXP_MEDIUM_FAST(69),
EXP_MEDIUM_FAST(70),
EXP_MEDIUM_FAST(71),
EXP_MEDIUM_FAST(72),
EXP_MEDIUM_FAST(73),
EXP_MEDIUM_FAST(74),
EXP_MEDIUM_FAST(75),
EXP_MEDIUM_FAST(76),
EXP_MEDIUM_FAST(77),
EXP_MEDIUM_FAST(78),
EXP_MEDIUM_FAST(79),
EXP_MEDIUM_FAST(80),
EXP_MEDIUM_FAST(81),
EXP_MEDIUM_FAST(82),
EXP_MEDIUM_FAST(83),
EXP_MEDIUM_FAST(84),
EXP_MEDIUM_FAST(85),
EXP_MEDIUM_FAST(86),
EXP_MEDIUM_FAST(87),
EXP_MEDIUM_FAST(88),
EXP_MEDIUM_FAST(89),
EXP_MEDIUM_FAST(90),
EXP_MEDIUM_FAST(91),
EXP_MEDIUM_FAST(92),
EXP_MEDIUM_FAST(93),
EXP_MEDIUM_FAST(94),
EXP_MEDIUM_FAST(95),
EXP_MEDIUM_FAST(96),
EXP_MEDIUM_FAST(97),
EXP_MEDIUM_FAST(98),
EXP_MEDIUM_FAST(99),
EXP_MEDIUM_FAST(100),
},
{ // Medium Fast copy 3 (unused? to-do: investigate)
0, // 0
1, // 1
EXP_MEDIUM_FAST(2),
EXP_MEDIUM_FAST(3),
EXP_MEDIUM_FAST(4),
EXP_MEDIUM_FAST(5),
EXP_MEDIUM_FAST(6),
EXP_MEDIUM_FAST(7),
EXP_MEDIUM_FAST(8),
EXP_MEDIUM_FAST(9),
EXP_MEDIUM_FAST(10),
EXP_MEDIUM_FAST(11),
EXP_MEDIUM_FAST(12),
EXP_MEDIUM_FAST(13),
EXP_MEDIUM_FAST(14),
EXP_MEDIUM_FAST(15),
EXP_MEDIUM_FAST(16),
EXP_MEDIUM_FAST(17),
EXP_MEDIUM_FAST(18),
EXP_MEDIUM_FAST(19),
EXP_MEDIUM_FAST(20),
EXP_MEDIUM_FAST(21),
EXP_MEDIUM_FAST(22),
EXP_MEDIUM_FAST(23),
EXP_MEDIUM_FAST(24),
EXP_MEDIUM_FAST(25),
EXP_MEDIUM_FAST(26),
EXP_MEDIUM_FAST(27),
EXP_MEDIUM_FAST(28),
EXP_MEDIUM_FAST(29),
EXP_MEDIUM_FAST(30),
EXP_MEDIUM_FAST(31),
EXP_MEDIUM_FAST(32),
EXP_MEDIUM_FAST(33),
EXP_MEDIUM_FAST(34),
EXP_MEDIUM_FAST(35),
EXP_MEDIUM_FAST(36),
EXP_MEDIUM_FAST(37),
EXP_MEDIUM_FAST(38),
EXP_MEDIUM_FAST(39),
EXP_MEDIUM_FAST(40),
EXP_MEDIUM_FAST(41),
EXP_MEDIUM_FAST(42),
EXP_MEDIUM_FAST(43),
EXP_MEDIUM_FAST(44),
EXP_MEDIUM_FAST(45),
EXP_MEDIUM_FAST(46),
EXP_MEDIUM_FAST(47),
EXP_MEDIUM_FAST(48),
EXP_MEDIUM_FAST(49),
EXP_MEDIUM_FAST(50),
EXP_MEDIUM_FAST(51),
EXP_MEDIUM_FAST(52),
EXP_MEDIUM_FAST(53),
EXP_MEDIUM_FAST(54),
EXP_MEDIUM_FAST(55),
EXP_MEDIUM_FAST(56),
EXP_MEDIUM_FAST(57),
EXP_MEDIUM_FAST(58),
EXP_MEDIUM_FAST(59),
EXP_MEDIUM_FAST(60),
EXP_MEDIUM_FAST(61),
EXP_MEDIUM_FAST(62),
EXP_MEDIUM_FAST(63),
EXP_MEDIUM_FAST(64),
EXP_MEDIUM_FAST(65),
EXP_MEDIUM_FAST(66),
EXP_MEDIUM_FAST(67),
EXP_MEDIUM_FAST(68),
EXP_MEDIUM_FAST(69),
EXP_MEDIUM_FAST(70),
EXP_MEDIUM_FAST(71),
EXP_MEDIUM_FAST(72),
EXP_MEDIUM_FAST(73),
EXP_MEDIUM_FAST(74),
EXP_MEDIUM_FAST(75),
EXP_MEDIUM_FAST(76),
EXP_MEDIUM_FAST(77),
EXP_MEDIUM_FAST(78),
EXP_MEDIUM_FAST(79),
EXP_MEDIUM_FAST(80),
EXP_MEDIUM_FAST(81),
EXP_MEDIUM_FAST(82),
EXP_MEDIUM_FAST(83),
EXP_MEDIUM_FAST(84),
EXP_MEDIUM_FAST(85),
EXP_MEDIUM_FAST(86),
EXP_MEDIUM_FAST(87),
EXP_MEDIUM_FAST(88),
EXP_MEDIUM_FAST(89),
EXP_MEDIUM_FAST(90),
EXP_MEDIUM_FAST(91),
EXP_MEDIUM_FAST(92),
EXP_MEDIUM_FAST(93),
EXP_MEDIUM_FAST(94),
EXP_MEDIUM_FAST(95),
EXP_MEDIUM_FAST(96),
EXP_MEDIUM_FAST(97),
EXP_MEDIUM_FAST(98),
EXP_MEDIUM_FAST(99),
EXP_MEDIUM_FAST(100),
}
};

View File

@ -0,0 +1,420 @@
static const u8 sItemEffect_Potion[7] = {
[4] = ITEM4_HEAL_HP,
[6] = 20,
};
static const u8 sItemEffect_Antidote[6] = {
[3] = ITEM3_POISON,
};
static const u8 sItemEffect_BurnHeal[6] = {
[3] = ITEM3_BURN,
};
static const u8 sItemEffect_IceHeal[6] = {
[3] = ITEM3_FREEZE,
};
static const u8 sItemEffect_Awakening[6] = {
[3] = ITEM3_SLEEP,
};
static const u8 sItemEffect_ParalyzeHeal[6] = {
[3] = ITEM3_PARALYSIS,
};
static const u8 sItemEffect_FullRestore[7] = {
[3] = ITEM3_STATUS_ALL,
[4] = ITEM4_HEAL_HP,
[6] = -1,
};
static const u8 sItemEffect_MaxPotion[7] = {
[4] = ITEM4_HEAL_HP,
[6] = -1,
};
static const u8 sItemEffect_HyperPotion[7] = {
[4] = ITEM4_HEAL_HP,
[6] = 200,
};
static const u8 sItemEffect_SuperPotion[7] = {
[4] = ITEM4_HEAL_HP,
[6] = 50,
};
static const u8 sItemEffect_FullHeal[6] = {
[3] = ITEM3_STATUS_ALL,
};
static const u8 sItemEffect_Revive[7] = {
[4] = ITEM4_REVIVE | ITEM4_HEAL_HP,
[6] = -2,
};
static const u8 sItemEffect_MaxRevive[7] = {
[4] = ITEM4_REVIVE | ITEM4_HEAL_HP,
[6] = -1,
};
static const u8 sItemEffect_FreshWater[7] = {
[4] = ITEM4_HEAL_HP,
[6] = 50,
};
static const u8 sItemEffect_SodaPop[7] = {
[4] = ITEM4_HEAL_HP,
[6] = 60,
};
static const u8 sItemEffect_Lemonade[7] = {
[4] = ITEM4_HEAL_HP,
[6] = 80,
};
static const u8 sItemEffect_MoomooMilk[7] = {
[4] = ITEM4_HEAL_HP,
[6] = 100,
};
static const u8 sItemEffect_EnergyPowder[10] = {
[4] = ITEM4_HEAL_HP,
[5] = ITEM5_FRIENDSHIP_ALL,
[6] = 50,
[7] = -5,
[8] = -5,
[9] = -10,
};
static const u8 sItemEffect_EnergyRoot[10] = {
[4] = ITEM4_HEAL_HP,
[5] = ITEM5_FRIENDSHIP_ALL,
[6] = 200,
[7] = -10,
[8] = -10,
[9] = -15,
};
static const u8 sItemEffect_HealPowder[9] = {
[3] = ITEM3_STATUS_ALL,
[5] = ITEM5_FRIENDSHIP_ALL,
[6] = -5,
[7] = -5,
[8] = -10,
};
static const u8 sItemEffect_RevivalHerb[10] = {
[4] = ITEM4_REVIVE | ITEM4_HEAL_HP,
[5] = ITEM5_FRIENDSHIP_ALL,
[6] = -1,
[7] = -15,
[8] = -15,
[9] = -20,
};
static const u8 sItemEffect_Ether[7] = {
[4] = ITEM4_HEAL_PP_ONE | ITEM4_HEAL_PP_ALL,
[6] = 10,
};
static const u8 sItemEffect_MaxEther[7] = {
[4] = ITEM4_HEAL_PP_ONE | ITEM4_HEAL_PP_ALL,
[6] = 0x7F,
};
static const u8 sItemEffect_Elixir[7] = {
[4] = ITEM4_HEAL_PP_ALL,
[6] = 10,
};
static const u8 sItemEffect_MaxElixir[7] = {
[4] = ITEM4_HEAL_PP_ALL,
[6] = 0x7F,
};
static const u8 sItemEffect_LavaCookie[6] = {
[3] = ITEM3_STATUS_ALL,
};
static const u8 sItemEffect_BlueFlute[6] = {
[3] = ITEM3_SLEEP,
};
static const u8 sItemEffect_YellowFlute[6] = {
[3] = ITEM3_CONFUSION,
};
static const u8 sItemEffect_RedFlute[6] = {
[0] = ITEM0_INFATUATION,
};
static const u8 sItemEffect_BerryJuice[7] = {
[4] = ITEM4_HEAL_HP,
[6] = 20,
};
static const u8 sItemEffect_SacredAsh[7] = {
[0] = ITEM0_SACRED_ASH,
[4] = ITEM4_REVIVE | ITEM4_HEAL_HP,
[6] = -1,
};
static const u8 sItemEffect_HPUp[10] = {
[4] = ITEM4_EV_HP,
[5] = ITEM5_FRIENDSHIP_ALL,
[6] = 10,
[7] = 5,
[8] = 3,
[9] = 2,
};
static const u8 sItemEffect_Protein[10] = {
[4] = ITEM4_EV_ATK,
[5] = ITEM5_FRIENDSHIP_ALL,
[6] = 10,
[7] = 5,
[8] = 3,
[9] = 2,
};
static const u8 sItemEffect_Iron[10] = {
[5] = ITEM5_EV_DEF | ITEM5_FRIENDSHIP_ALL,
[6] = 10,
[7] = 5,
[8] = 3,
[9] = 2,
};
static const u8 sItemEffect_Carbos[10] = {
[5] = ITEM5_EV_SPEED | ITEM5_FRIENDSHIP_ALL,
[6] = 10,
[7] = 5,
[8] = 3,
[9] = 2,
};
static const u8 sItemEffect_Calcium[10] = {
[5] = ITEM5_EV_SPATK | ITEM5_FRIENDSHIP_ALL,
[6] = 10,
[7] = 5,
[8] = 3,
[9] = 2,
};
static const u8 sItemEffect_RareCandy[10] = {
[3] = ITEM3_LEVEL_UP,
[4] = ITEM4_REVIVE | ITEM4_HEAL_HP,
[5] = ITEM5_FRIENDSHIP_ALL,
[6] = 0xFD,
[7] = 5,
[8] = 3,
[9] = 2,
};
static const u8 sItemEffect_PPUp[9] = {
[4] = ITEM4_PP_UP,
[5] = ITEM5_FRIENDSHIP_ALL,
[6] = 5,
[7] = 3,
[8] = 2,
};
static const u8 sItemEffect_Zinc[10] = {
[5] = ITEM5_EV_SPDEF | ITEM5_FRIENDSHIP_ALL,
[6] = 10,
[7] = 5,
[8] = 3,
[9] = 2,
};
static const u8 sItemEffect_PPMax[9] = {
[5] = ITEM5_PP_MAX | ITEM5_FRIENDSHIP_ALL,
[6] = 5,
[7] = 3,
[8] = 2,
};
static const u8 sItemEffect_GuardSpec[8] = {
[3] = ITEM3_MIST,
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
[6] = 1,
[7] = 1,
};
static const u8 sItemEffect_DireHit[8] = {
[0] = 2 << 4,
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
[6] = 1,
[7] = 1,
};
static const u8 sItemEffect_XAttack[8] = {
[0] = 1,
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
[6] = 1,
[7] = 1,
};
static const u8 sItemEffect_XDefend[8] = {
[1] = 1 << 4,
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
[6] = 1,
[7] = 1,
};
static const u8 sItemEffect_XSpeed[8] = {
[1] = 1,
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
[6] = 1,
[7] = 1,
};
static const u8 sItemEffect_XAccuracy[8] = {
[2] = 1 << 4,
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
[6] = 1,
[7] = 1,
};
static const u8 sItemEffect_XSpecial[8] = {
[2] = 1,
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
[6] = 1,
[7] = 1,
};
static const u8 sItemEffect_SunStone[6] = {
[4] = ITEM4_EVO_STONE,
};
static const u8 sItemEffect_MoonStone[6] = {
[4] = ITEM4_EVO_STONE,
};
static const u8 sItemEffect_FireStone[6] = {
[4] = ITEM4_EVO_STONE,
};
static const u8 sItemEffect_ThunderStone[6] = {
[4] = ITEM4_EVO_STONE,
};
static const u8 sItemEffect_WaterStone[6] = {
[4] = ITEM4_EVO_STONE,
};
static const u8 sItemEffect_LeafStone[6] = {
[4] = ITEM4_EVO_STONE,
};
static const u8 sItemEffect_CheriBerry[6] = {
[3] = ITEM3_PARALYSIS,
};
static const u8 sItemEffect_ChestoBerry[6] = {
[3] = ITEM3_SLEEP,
};
static const u8 sItemEffect_PechaBerry[6] = {
[3] = ITEM3_POISON,
};
static const u8 sItemEffect_RawstBerry[6] = {
[3] = ITEM3_BURN,
};
static const u8 sItemEffect_AspearBerry[6] = {
[3] = ITEM3_FREEZE,
};
static const u8 sItemEffect_LeppaBerry[7] = {
[4] = ITEM4_HEAL_PP_ONE | ITEM4_HEAL_PP_ALL,
[6] = 10,
};
static const u8 sItemEffect_OranBerry[7] = {
[4] = ITEM4_HEAL_HP,
[6] = 10,
};
static const u8 sItemEffect_PersimBerry[6] = {
[3] = ITEM3_CONFUSION,
};
static const u8 sItemEffect_LumBerry[6] = {
[3] = ITEM3_STATUS_ALL,
};
static const u8 sItemEffect_SitrusBerry[7] = {
[4] = ITEM4_HEAL_HP,
[6] = 30,
};
const u8 *const gItemEffectTable[] =
{
[ITEM_POTION - ITEM_POTION] = sItemEffect_Potion,
[ITEM_ANTIDOTE - ITEM_POTION] = sItemEffect_Antidote,
[ITEM_BURN_HEAL - ITEM_POTION] = sItemEffect_BurnHeal,
[ITEM_ICE_HEAL - ITEM_POTION] = sItemEffect_IceHeal,
[ITEM_AWAKENING - ITEM_POTION] = sItemEffect_Awakening,
[ITEM_PARALYZE_HEAL - ITEM_POTION] = sItemEffect_ParalyzeHeal,
[ITEM_FULL_RESTORE - ITEM_POTION] = sItemEffect_FullRestore,
[ITEM_MAX_POTION - ITEM_POTION] = sItemEffect_MaxPotion,
[ITEM_HYPER_POTION - ITEM_POTION] = sItemEffect_HyperPotion,
[ITEM_SUPER_POTION - ITEM_POTION] = sItemEffect_SuperPotion,
[ITEM_FULL_HEAL - ITEM_POTION] = sItemEffect_FullHeal,
[ITEM_REVIVE - ITEM_POTION] = sItemEffect_Revive,
[ITEM_MAX_REVIVE - ITEM_POTION] = sItemEffect_MaxRevive,
[ITEM_FRESH_WATER - ITEM_POTION] = sItemEffect_FreshWater,
[ITEM_SODA_POP - ITEM_POTION] = sItemEffect_SodaPop,
[ITEM_LEMONADE - ITEM_POTION] = sItemEffect_Lemonade,
[ITEM_MOOMOO_MILK - ITEM_POTION] = sItemEffect_MoomooMilk,
[ITEM_ENERGY_POWDER - ITEM_POTION] = sItemEffect_EnergyPowder,
[ITEM_ENERGY_ROOT - ITEM_POTION] = sItemEffect_EnergyRoot,
[ITEM_HEAL_POWDER - ITEM_POTION] = sItemEffect_HealPowder,
[ITEM_REVIVAL_HERB - ITEM_POTION] = sItemEffect_RevivalHerb,
[ITEM_ETHER - ITEM_POTION] = sItemEffect_Ether,
[ITEM_MAX_ETHER - ITEM_POTION] = sItemEffect_MaxEther,
[ITEM_ELIXIR - ITEM_POTION] = sItemEffect_Elixir,
[ITEM_MAX_ELIXIR - ITEM_POTION] = sItemEffect_MaxElixir,
[ITEM_LAVA_COOKIE - ITEM_POTION] = sItemEffect_LavaCookie,
[ITEM_BLUE_FLUTE - ITEM_POTION] = sItemEffect_BlueFlute,
[ITEM_YELLOW_FLUTE - ITEM_POTION] = sItemEffect_YellowFlute,
[ITEM_RED_FLUTE - ITEM_POTION] = sItemEffect_RedFlute,
[ITEM_BERRY_JUICE - ITEM_POTION] = sItemEffect_BerryJuice,
[ITEM_SACRED_ASH - ITEM_POTION] = sItemEffect_SacredAsh,
[ITEM_HP_UP - ITEM_POTION] = sItemEffect_HPUp,
[ITEM_PROTEIN - ITEM_POTION] = sItemEffect_Protein,
[ITEM_IRON - ITEM_POTION] = sItemEffect_Iron,
[ITEM_CARBOS - ITEM_POTION] = sItemEffect_Carbos,
[ITEM_CALCIUM - ITEM_POTION] = sItemEffect_Calcium,
[ITEM_RARE_CANDY - ITEM_POTION] = sItemEffect_RareCandy,
[ITEM_PP_UP - ITEM_POTION] = sItemEffect_PPUp,
[ITEM_ZINC - ITEM_POTION] = sItemEffect_Zinc,
[ITEM_PP_MAX - ITEM_POTION] = sItemEffect_PPMax,
[ITEM_GUARD_SPEC - ITEM_POTION] = sItemEffect_GuardSpec,
[ITEM_DIRE_HIT - ITEM_POTION] = sItemEffect_DireHit,
[ITEM_X_ATTACK - ITEM_POTION] = sItemEffect_XAttack,
[ITEM_X_DEFEND - ITEM_POTION] = sItemEffect_XDefend,
[ITEM_X_SPEED - ITEM_POTION] = sItemEffect_XSpeed,
[ITEM_X_ACCURACY - ITEM_POTION] = sItemEffect_XAccuracy,
[ITEM_X_SPECIAL - ITEM_POTION] = sItemEffect_XSpecial,
[ITEM_SUN_STONE - ITEM_POTION] = sItemEffect_SunStone,
[ITEM_MOON_STONE - ITEM_POTION] = sItemEffect_MoonStone,
[ITEM_FIRE_STONE - ITEM_POTION] = sItemEffect_FireStone,
[ITEM_THUNDER_STONE - ITEM_POTION] = sItemEffect_ThunderStone,
[ITEM_WATER_STONE - ITEM_POTION] = sItemEffect_WaterStone,
[ITEM_LEAF_STONE - ITEM_POTION] = sItemEffect_LeafStone,
[ITEM_CHERI_BERRY - ITEM_POTION] = sItemEffect_CheriBerry,
[ITEM_CHESTO_BERRY - ITEM_POTION] = sItemEffect_ChestoBerry,
[ITEM_PECHA_BERRY - ITEM_POTION] = sItemEffect_PechaBerry,
[ITEM_RAWST_BERRY - ITEM_POTION] = sItemEffect_RawstBerry,
[ITEM_ASPEAR_BERRY - ITEM_POTION] = sItemEffect_AspearBerry,
[ITEM_LEPPA_BERRY - ITEM_POTION] = sItemEffect_LeppaBerry,
[ITEM_ORAN_BERRY - ITEM_POTION] = sItemEffect_OranBerry,
[ITEM_PERSIM_BERRY - ITEM_POTION] = sItemEffect_PersimBerry,
[ITEM_LUM_BERRY - ITEM_POTION] = sItemEffect_LumBerry,
[ITEM_SITRUS_BERRY - ITEM_POTION] = sItemEffect_SitrusBerry,
[LAST_BERRY_INDEX - ITEM_POTION] = NULL,
};

View File

@ -0,0 +1,415 @@
const u16 *const gLevelUpLearnsets[NUM_SPECIES] =
{
[SPECIES_NONE] = sBulbasaurLevelUpLearnset,
[SPECIES_BULBASAUR] = sBulbasaurLevelUpLearnset,
[SPECIES_IVYSAUR] = sIvysaurLevelUpLearnset,
[SPECIES_VENUSAUR] = sVenusaurLevelUpLearnset,
[SPECIES_CHARMANDER] = sCharmanderLevelUpLearnset,
[SPECIES_CHARMELEON] = sCharmeleonLevelUpLearnset,
[SPECIES_CHARIZARD] = sCharizardLevelUpLearnset,
[SPECIES_SQUIRTLE] = sSquirtleLevelUpLearnset,
[SPECIES_WARTORTLE] = sWartortleLevelUpLearnset,
[SPECIES_BLASTOISE] = sBlastoiseLevelUpLearnset,
[SPECIES_CATERPIE] = sCaterpieLevelUpLearnset,
[SPECIES_METAPOD] = sMetapodLevelUpLearnset,
[SPECIES_BUTTERFREE] = sButterfreeLevelUpLearnset,
[SPECIES_WEEDLE] = sWeedleLevelUpLearnset,
[SPECIES_KAKUNA] = sKakunaLevelUpLearnset,
[SPECIES_BEEDRILL] = sBeedrillLevelUpLearnset,
[SPECIES_PIDGEY] = sPidgeyLevelUpLearnset,
[SPECIES_PIDGEOTTO] = sPidgeottoLevelUpLearnset,
[SPECIES_PIDGEOT] = sPidgeotLevelUpLearnset,
[SPECIES_RATTATA] = sRattataLevelUpLearnset,
[SPECIES_RATICATE] = sRaticateLevelUpLearnset,
[SPECIES_SPEAROW] = sSpearowLevelUpLearnset,
[SPECIES_FEAROW] = sFearowLevelUpLearnset,
[SPECIES_EKANS] = sEkansLevelUpLearnset,
[SPECIES_ARBOK] = sArbokLevelUpLearnset,
[SPECIES_PIKACHU] = sPikachuLevelUpLearnset,
[SPECIES_RAICHU] = sRaichuLevelUpLearnset,
[SPECIES_SANDSHREW] = sSandshrewLevelUpLearnset,
[SPECIES_SANDSLASH] = sSandslashLevelUpLearnset,
[SPECIES_NIDORAN_F] = sNidoranFLevelUpLearnset,
[SPECIES_NIDORINA] = sNidorinaLevelUpLearnset,
[SPECIES_NIDOQUEEN] = sNidoqueenLevelUpLearnset,
[SPECIES_NIDORAN_M] = sNidoranMLevelUpLearnset,
[SPECIES_NIDORINO] = sNidorinoLevelUpLearnset,
[SPECIES_NIDOKING] = sNidokingLevelUpLearnset,
[SPECIES_CLEFAIRY] = sClefairyLevelUpLearnset,
[SPECIES_CLEFABLE] = sClefableLevelUpLearnset,
[SPECIES_VULPIX] = sVulpixLevelUpLearnset,
[SPECIES_NINETALES] = sNinetalesLevelUpLearnset,
[SPECIES_JIGGLYPUFF] = sJigglypuffLevelUpLearnset,
[SPECIES_WIGGLYTUFF] = sWigglytuffLevelUpLearnset,
[SPECIES_ZUBAT] = sZubatLevelUpLearnset,
[SPECIES_GOLBAT] = sGolbatLevelUpLearnset,
[SPECIES_ODDISH] = sOddishLevelUpLearnset,
[SPECIES_GLOOM] = sGloomLevelUpLearnset,
[SPECIES_VILEPLUME] = sVileplumeLevelUpLearnset,
[SPECIES_PARAS] = sParasLevelUpLearnset,
[SPECIES_PARASECT] = sParasectLevelUpLearnset,
[SPECIES_VENONAT] = sVenonatLevelUpLearnset,
[SPECIES_VENOMOTH] = sVenomothLevelUpLearnset,
[SPECIES_DIGLETT] = sDiglettLevelUpLearnset,
[SPECIES_DUGTRIO] = sDugtrioLevelUpLearnset,
[SPECIES_MEOWTH] = sMeowthLevelUpLearnset,
[SPECIES_PERSIAN] = sPersianLevelUpLearnset,
[SPECIES_PSYDUCK] = sPsyduckLevelUpLearnset,
[SPECIES_GOLDUCK] = sGolduckLevelUpLearnset,
[SPECIES_MANKEY] = sMankeyLevelUpLearnset,
[SPECIES_PRIMEAPE] = sPrimeapeLevelUpLearnset,
[SPECIES_GROWLITHE] = sGrowlitheLevelUpLearnset,
[SPECIES_ARCANINE] = sArcanineLevelUpLearnset,
[SPECIES_POLIWAG] = sPoliwagLevelUpLearnset,
[SPECIES_POLIWHIRL] = sPoliwhirlLevelUpLearnset,
[SPECIES_POLIWRATH] = sPoliwrathLevelUpLearnset,
[SPECIES_ABRA] = sAbraLevelUpLearnset,
[SPECIES_KADABRA] = sKadabraLevelUpLearnset,
[SPECIES_ALAKAZAM] = sAlakazamLevelUpLearnset,
[SPECIES_MACHOP] = sMachopLevelUpLearnset,
[SPECIES_MACHOKE] = sMachokeLevelUpLearnset,
[SPECIES_MACHAMP] = sMachampLevelUpLearnset,
[SPECIES_BELLSPROUT] = sBellsproutLevelUpLearnset,
[SPECIES_WEEPINBELL] = sWeepinbellLevelUpLearnset,
[SPECIES_VICTREEBEL] = sVictreebelLevelUpLearnset,
[SPECIES_TENTACOOL] = sTentacoolLevelUpLearnset,
[SPECIES_TENTACRUEL] = sTentacruelLevelUpLearnset,
[SPECIES_GEODUDE] = sGeodudeLevelUpLearnset,
[SPECIES_GRAVELER] = sGravelerLevelUpLearnset,
[SPECIES_GOLEM] = sGolemLevelUpLearnset,
[SPECIES_PONYTA] = sPonytaLevelUpLearnset,
[SPECIES_RAPIDASH] = sRapidashLevelUpLearnset,
[SPECIES_SLOWPOKE] = sSlowpokeLevelUpLearnset,
[SPECIES_SLOWBRO] = sSlowbroLevelUpLearnset,
[SPECIES_MAGNEMITE] = sMagnemiteLevelUpLearnset,
[SPECIES_MAGNETON] = sMagnetonLevelUpLearnset,
[SPECIES_FARFETCHD] = sFarfetchdLevelUpLearnset,
[SPECIES_DODUO] = sDoduoLevelUpLearnset,
[SPECIES_DODRIO] = sDodrioLevelUpLearnset,
[SPECIES_SEEL] = sSeelLevelUpLearnset,
[SPECIES_DEWGONG] = sDewgongLevelUpLearnset,
[SPECIES_GRIMER] = sGrimerLevelUpLearnset,
[SPECIES_MUK] = sMukLevelUpLearnset,
[SPECIES_SHELLDER] = sShellderLevelUpLearnset,
[SPECIES_CLOYSTER] = sCloysterLevelUpLearnset,
[SPECIES_GASTLY] = sGastlyLevelUpLearnset,
[SPECIES_HAUNTER] = sHaunterLevelUpLearnset,
[SPECIES_GENGAR] = sGengarLevelUpLearnset,
[SPECIES_ONIX] = sOnixLevelUpLearnset,
[SPECIES_DROWZEE] = sDrowzeeLevelUpLearnset,
[SPECIES_HYPNO] = sHypnoLevelUpLearnset,
[SPECIES_KRABBY] = sKrabbyLevelUpLearnset,
[SPECIES_KINGLER] = sKinglerLevelUpLearnset,
[SPECIES_VOLTORB] = sVoltorbLevelUpLearnset,
[SPECIES_ELECTRODE] = sElectrodeLevelUpLearnset,
[SPECIES_EXEGGCUTE] = sExeggcuteLevelUpLearnset,
[SPECIES_EXEGGUTOR] = sExeggutorLevelUpLearnset,
[SPECIES_CUBONE] = sCuboneLevelUpLearnset,
[SPECIES_MAROWAK] = sMarowakLevelUpLearnset,
[SPECIES_HITMONLEE] = sHitmonleeLevelUpLearnset,
[SPECIES_HITMONCHAN] = sHitmonchanLevelUpLearnset,
[SPECIES_LICKITUNG] = sLickitungLevelUpLearnset,
[SPECIES_KOFFING] = sKoffingLevelUpLearnset,
[SPECIES_WEEZING] = sWeezingLevelUpLearnset,
[SPECIES_RHYHORN] = sRhyhornLevelUpLearnset,
[SPECIES_RHYDON] = sRhydonLevelUpLearnset,
[SPECIES_CHANSEY] = sChanseyLevelUpLearnset,
[SPECIES_TANGELA] = sTangelaLevelUpLearnset,
[SPECIES_KANGASKHAN] = sKangaskhanLevelUpLearnset,
[SPECIES_HORSEA] = sHorseaLevelUpLearnset,
[SPECIES_SEADRA] = sSeadraLevelUpLearnset,
[SPECIES_GOLDEEN] = sGoldeenLevelUpLearnset,
[SPECIES_SEAKING] = sSeakingLevelUpLearnset,
[SPECIES_STARYU] = sStaryuLevelUpLearnset,
[SPECIES_STARMIE] = sStarmieLevelUpLearnset,
[SPECIES_MR_MIME] = sMrMimeLevelUpLearnset,
[SPECIES_SCYTHER] = sScytherLevelUpLearnset,
[SPECIES_JYNX] = sJynxLevelUpLearnset,
[SPECIES_ELECTABUZZ] = sElectabuzzLevelUpLearnset,
[SPECIES_MAGMAR] = sMagmarLevelUpLearnset,
[SPECIES_PINSIR] = sPinsirLevelUpLearnset,
[SPECIES_TAUROS] = sTaurosLevelUpLearnset,
[SPECIES_MAGIKARP] = sMagikarpLevelUpLearnset,
[SPECIES_GYARADOS] = sGyaradosLevelUpLearnset,
[SPECIES_LAPRAS] = sLaprasLevelUpLearnset,
[SPECIES_DITTO] = sDittoLevelUpLearnset,
[SPECIES_EEVEE] = sEeveeLevelUpLearnset,
[SPECIES_VAPOREON] = sVaporeonLevelUpLearnset,
[SPECIES_JOLTEON] = sJolteonLevelUpLearnset,
[SPECIES_FLAREON] = sFlareonLevelUpLearnset,
[SPECIES_PORYGON] = sPorygonLevelUpLearnset,
[SPECIES_OMANYTE] = sOmanyteLevelUpLearnset,
[SPECIES_OMASTAR] = sOmastarLevelUpLearnset,
[SPECIES_KABUTO] = sKabutoLevelUpLearnset,
[SPECIES_KABUTOPS] = sKabutopsLevelUpLearnset,
[SPECIES_AERODACTYL] = sAerodactylLevelUpLearnset,
[SPECIES_SNORLAX] = sSnorlaxLevelUpLearnset,
[SPECIES_ARTICUNO] = sArticunoLevelUpLearnset,
[SPECIES_ZAPDOS] = sZapdosLevelUpLearnset,
[SPECIES_MOLTRES] = sMoltresLevelUpLearnset,
[SPECIES_DRATINI] = sDratiniLevelUpLearnset,
[SPECIES_DRAGONAIR] = sDragonairLevelUpLearnset,
[SPECIES_DRAGONITE] = sDragoniteLevelUpLearnset,
[SPECIES_MEWTWO] = sMewtwoLevelUpLearnset,
[SPECIES_MEW] = sMewLevelUpLearnset,
[SPECIES_CHIKORITA] = sChikoritaLevelUpLearnset,
[SPECIES_BAYLEEF] = sBayleefLevelUpLearnset,
[SPECIES_MEGANIUM] = sMeganiumLevelUpLearnset,
[SPECIES_CYNDAQUIL] = sCyndaquilLevelUpLearnset,
[SPECIES_QUILAVA] = sQuilavaLevelUpLearnset,
[SPECIES_TYPHLOSION] = sTyphlosionLevelUpLearnset,
[SPECIES_TOTODILE] = sTotodileLevelUpLearnset,
[SPECIES_CROCONAW] = sCroconawLevelUpLearnset,
[SPECIES_FERALIGATR] = sFeraligatrLevelUpLearnset,
[SPECIES_SENTRET] = sSentretLevelUpLearnset,
[SPECIES_FURRET] = sFurretLevelUpLearnset,
[SPECIES_HOOTHOOT] = sHoothootLevelUpLearnset,
[SPECIES_NOCTOWL] = sNoctowlLevelUpLearnset,
[SPECIES_LEDYBA] = sLedybaLevelUpLearnset,
[SPECIES_LEDIAN] = sLedianLevelUpLearnset,
[SPECIES_SPINARAK] = sSpinarakLevelUpLearnset,
[SPECIES_ARIADOS] = sAriadosLevelUpLearnset,
[SPECIES_CROBAT] = sCrobatLevelUpLearnset,
[SPECIES_CHINCHOU] = sChinchouLevelUpLearnset,
[SPECIES_LANTURN] = sLanturnLevelUpLearnset,
[SPECIES_PICHU] = sPichuLevelUpLearnset,
[SPECIES_CLEFFA] = sCleffaLevelUpLearnset,
[SPECIES_IGGLYBUFF] = sIgglybuffLevelUpLearnset,
[SPECIES_TOGEPI] = sTogepiLevelUpLearnset,
[SPECIES_TOGETIC] = sTogeticLevelUpLearnset,
[SPECIES_NATU] = sNatuLevelUpLearnset,
[SPECIES_XATU] = sXatuLevelUpLearnset,
[SPECIES_MAREEP] = sMareepLevelUpLearnset,
[SPECIES_FLAAFFY] = sFlaaffyLevelUpLearnset,
[SPECIES_AMPHAROS] = sAmpharosLevelUpLearnset,
[SPECIES_BELLOSSOM] = sBellossomLevelUpLearnset,
[SPECIES_MARILL] = sMarillLevelUpLearnset,
[SPECIES_AZUMARILL] = sAzumarillLevelUpLearnset,
[SPECIES_SUDOWOODO] = sSudowoodoLevelUpLearnset,
[SPECIES_POLITOED] = sPolitoedLevelUpLearnset,
[SPECIES_HOPPIP] = sHoppipLevelUpLearnset,
[SPECIES_SKIPLOOM] = sSkiploomLevelUpLearnset,
[SPECIES_JUMPLUFF] = sJumpluffLevelUpLearnset,
[SPECIES_AIPOM] = sAipomLevelUpLearnset,
[SPECIES_SUNKERN] = sSunkernLevelUpLearnset,
[SPECIES_SUNFLORA] = sSunfloraLevelUpLearnset,
[SPECIES_YANMA] = sYanmaLevelUpLearnset,
[SPECIES_WOOPER] = sWooperLevelUpLearnset,
[SPECIES_QUAGSIRE] = sQuagsireLevelUpLearnset,
[SPECIES_ESPEON] = sEspeonLevelUpLearnset,
[SPECIES_UMBREON] = sUmbreonLevelUpLearnset,
[SPECIES_MURKROW] = sMurkrowLevelUpLearnset,
[SPECIES_SLOWKING] = sSlowkingLevelUpLearnset,
[SPECIES_MISDREAVUS] = sMisdreavusLevelUpLearnset,
[SPECIES_UNOWN] = sUnownLevelUpLearnset,
[SPECIES_WOBBUFFET] = sWobbuffetLevelUpLearnset,
[SPECIES_GIRAFARIG] = sGirafarigLevelUpLearnset,
[SPECIES_PINECO] = sPinecoLevelUpLearnset,
[SPECIES_FORRETRESS] = sForretressLevelUpLearnset,
[SPECIES_DUNSPARCE] = sDunsparceLevelUpLearnset,
[SPECIES_GLIGAR] = sGligarLevelUpLearnset,
[SPECIES_STEELIX] = sSteelixLevelUpLearnset,
[SPECIES_SNUBBULL] = sSnubbullLevelUpLearnset,
[SPECIES_GRANBULL] = sGranbullLevelUpLearnset,
[SPECIES_QWILFISH] = sQwilfishLevelUpLearnset,
[SPECIES_SCIZOR] = sScizorLevelUpLearnset,
[SPECIES_SHUCKLE] = sShuckleLevelUpLearnset,
[SPECIES_HERACROSS] = sHeracrossLevelUpLearnset,
[SPECIES_SNEASEL] = sSneaselLevelUpLearnset,
[SPECIES_TEDDIURSA] = sTeddiursaLevelUpLearnset,
[SPECIES_URSARING] = sUrsaringLevelUpLearnset,
[SPECIES_SLUGMA] = sSlugmaLevelUpLearnset,
[SPECIES_MAGCARGO] = sMagcargoLevelUpLearnset,
[SPECIES_SWINUB] = sSwinubLevelUpLearnset,
[SPECIES_PILOSWINE] = sPiloswineLevelUpLearnset,
[SPECIES_CORSOLA] = sCorsolaLevelUpLearnset,
[SPECIES_REMORAID] = sRemoraidLevelUpLearnset,
[SPECIES_OCTILLERY] = sOctilleryLevelUpLearnset,
[SPECIES_DELIBIRD] = sDelibirdLevelUpLearnset,
[SPECIES_MANTINE] = sMantineLevelUpLearnset,
[SPECIES_SKARMORY] = sSkarmoryLevelUpLearnset,
[SPECIES_HOUNDOUR] = sHoundourLevelUpLearnset,
[SPECIES_HOUNDOOM] = sHoundoomLevelUpLearnset,
[SPECIES_KINGDRA] = sKingdraLevelUpLearnset,
[SPECIES_PHANPY] = sPhanpyLevelUpLearnset,
[SPECIES_DONPHAN] = sDonphanLevelUpLearnset,
[SPECIES_PORYGON2] = sPorygon2LevelUpLearnset,
[SPECIES_STANTLER] = sStantlerLevelUpLearnset,
[SPECIES_SMEARGLE] = sSmeargleLevelUpLearnset,
[SPECIES_TYROGUE] = sTyrogueLevelUpLearnset,
[SPECIES_HITMONTOP] = sHitmontopLevelUpLearnset,
[SPECIES_SMOOCHUM] = sSmoochumLevelUpLearnset,
[SPECIES_ELEKID] = sElekidLevelUpLearnset,
[SPECIES_MAGBY] = sMagbyLevelUpLearnset,
[SPECIES_MILTANK] = sMiltankLevelUpLearnset,
[SPECIES_BLISSEY] = sBlisseyLevelUpLearnset,
[SPECIES_RAIKOU] = sRaikouLevelUpLearnset,
[SPECIES_ENTEI] = sEnteiLevelUpLearnset,
[SPECIES_SUICUNE] = sSuicuneLevelUpLearnset,
[SPECIES_LARVITAR] = sLarvitarLevelUpLearnset,
[SPECIES_PUPITAR] = sPupitarLevelUpLearnset,
[SPECIES_TYRANITAR] = sTyranitarLevelUpLearnset,
[SPECIES_LUGIA] = sLugiaLevelUpLearnset,
[SPECIES_HO_OH] = sHoOhLevelUpLearnset,
[SPECIES_CELEBI] = sCelebiLevelUpLearnset,
[SPECIES_OLD_UNOWN_B] = sSpecies252LevelUpLearnset,
[SPECIES_OLD_UNOWN_C] = sSpecies253LevelUpLearnset,
[SPECIES_OLD_UNOWN_D] = sSpecies254LevelUpLearnset,
[SPECIES_OLD_UNOWN_E] = sSpecies255LevelUpLearnset,
[SPECIES_OLD_UNOWN_F] = sSpecies256LevelUpLearnset,
[SPECIES_OLD_UNOWN_G] = sSpecies257LevelUpLearnset,
[SPECIES_OLD_UNOWN_H] = sSpecies258LevelUpLearnset,
[SPECIES_OLD_UNOWN_I] = sSpecies259LevelUpLearnset,
[SPECIES_OLD_UNOWN_J] = sSpecies260LevelUpLearnset,
[SPECIES_OLD_UNOWN_K] = sSpecies261LevelUpLearnset,
[SPECIES_OLD_UNOWN_L] = sSpecies262LevelUpLearnset,
[SPECIES_OLD_UNOWN_M] = sSpecies263LevelUpLearnset,
[SPECIES_OLD_UNOWN_N] = sSpecies264LevelUpLearnset,
[SPECIES_OLD_UNOWN_O] = sSpecies265LevelUpLearnset,
[SPECIES_OLD_UNOWN_P] = sSpecies266LevelUpLearnset,
[SPECIES_OLD_UNOWN_Q] = sSpecies267LevelUpLearnset,
[SPECIES_OLD_UNOWN_R] = sSpecies268LevelUpLearnset,
[SPECIES_OLD_UNOWN_S] = sSpecies269LevelUpLearnset,
[SPECIES_OLD_UNOWN_T] = sSpecies270LevelUpLearnset,
[SPECIES_OLD_UNOWN_U] = sSpecies271LevelUpLearnset,
[SPECIES_OLD_UNOWN_V] = sSpecies272LevelUpLearnset,
[SPECIES_OLD_UNOWN_W] = sSpecies273LevelUpLearnset,
[SPECIES_OLD_UNOWN_X] = sSpecies274LevelUpLearnset,
[SPECIES_OLD_UNOWN_Y] = sSpecies275LevelUpLearnset,
[SPECIES_OLD_UNOWN_Z] = sSpecies276LevelUpLearnset,
[SPECIES_TREECKO] = sTreeckoLevelUpLearnset,
[SPECIES_GROVYLE] = sGrovyleLevelUpLearnset,
[SPECIES_SCEPTILE] = sSceptileLevelUpLearnset,
[SPECIES_TORCHIC] = sTorchicLevelUpLearnset,
[SPECIES_COMBUSKEN] = sCombuskenLevelUpLearnset,
[SPECIES_BLAZIKEN] = sBlazikenLevelUpLearnset,
[SPECIES_MUDKIP] = sMudkipLevelUpLearnset,
[SPECIES_MARSHTOMP] = sMarshtompLevelUpLearnset,
[SPECIES_SWAMPERT] = sSwampertLevelUpLearnset,
[SPECIES_POOCHYENA] = sPoochyenaLevelUpLearnset,
[SPECIES_MIGHTYENA] = sMightyenaLevelUpLearnset,
[SPECIES_ZIGZAGOON] = sZigzagoonLevelUpLearnset,
[SPECIES_LINOONE] = sLinooneLevelUpLearnset,
[SPECIES_WURMPLE] = sWurmpleLevelUpLearnset,
[SPECIES_SILCOON] = sSilcoonLevelUpLearnset,
[SPECIES_BEAUTIFLY] = sBeautiflyLevelUpLearnset,
[SPECIES_CASCOON] = sCascoonLevelUpLearnset,
[SPECIES_DUSTOX] = sDustoxLevelUpLearnset,
[SPECIES_LOTAD] = sLotadLevelUpLearnset,
[SPECIES_LOMBRE] = sLombreLevelUpLearnset,
[SPECIES_LUDICOLO] = sLudicoloLevelUpLearnset,
[SPECIES_SEEDOT] = sSeedotLevelUpLearnset,
[SPECIES_NUZLEAF] = sNuzleafLevelUpLearnset,
[SPECIES_SHIFTRY] = sShiftryLevelUpLearnset,
[SPECIES_NINCADA] = sNincadaLevelUpLearnset,
[SPECIES_NINJASK] = sNinjaskLevelUpLearnset,
[SPECIES_SHEDINJA] = sShedinjaLevelUpLearnset,
[SPECIES_TAILLOW] = sTaillowLevelUpLearnset,
[SPECIES_SWELLOW] = sSwellowLevelUpLearnset,
[SPECIES_SHROOMISH] = sShroomishLevelUpLearnset,
[SPECIES_BRELOOM] = sBreloomLevelUpLearnset,
[SPECIES_SPINDA] = sSpindaLevelUpLearnset,
[SPECIES_WINGULL] = sWingullLevelUpLearnset,
[SPECIES_PELIPPER] = sPelipperLevelUpLearnset,
[SPECIES_SURSKIT] = sSurskitLevelUpLearnset,
[SPECIES_MASQUERAIN] = sMasquerainLevelUpLearnset,
[SPECIES_WAILMER] = sWailmerLevelUpLearnset,
[SPECIES_WAILORD] = sWailordLevelUpLearnset,
[SPECIES_SKITTY] = sSkittyLevelUpLearnset,
[SPECIES_DELCATTY] = sDelcattyLevelUpLearnset,
[SPECIES_KECLEON] = sKecleonLevelUpLearnset,
[SPECIES_BALTOY] = sBaltoyLevelUpLearnset,
[SPECIES_CLAYDOL] = sClaydolLevelUpLearnset,
[SPECIES_NOSEPASS] = sNosepassLevelUpLearnset,
[SPECIES_TORKOAL] = sTorkoalLevelUpLearnset,
[SPECIES_SABLEYE] = sSableyeLevelUpLearnset,
[SPECIES_BARBOACH] = sBarboachLevelUpLearnset,
[SPECIES_WHISCASH] = sWhiscashLevelUpLearnset,
[SPECIES_LUVDISC] = sLuvdiscLevelUpLearnset,
[SPECIES_CORPHISH] = sCorphishLevelUpLearnset,
[SPECIES_CRAWDAUNT] = sCrawdauntLevelUpLearnset,
[SPECIES_FEEBAS] = sFeebasLevelUpLearnset,
[SPECIES_MILOTIC] = sMiloticLevelUpLearnset,
[SPECIES_CARVANHA] = sCarvanhaLevelUpLearnset,
[SPECIES_SHARPEDO] = sSharpedoLevelUpLearnset,
[SPECIES_TRAPINCH] = sTrapinchLevelUpLearnset,
[SPECIES_VIBRAVA] = sVibravaLevelUpLearnset,
[SPECIES_FLYGON] = sFlygonLevelUpLearnset,
[SPECIES_MAKUHITA] = sMakuhitaLevelUpLearnset,
[SPECIES_HARIYAMA] = sHariyamaLevelUpLearnset,
[SPECIES_ELECTRIKE] = sElectrikeLevelUpLearnset,
[SPECIES_MANECTRIC] = sManectricLevelUpLearnset,
[SPECIES_NUMEL] = sNumelLevelUpLearnset,
[SPECIES_CAMERUPT] = sCameruptLevelUpLearnset,
[SPECIES_SPHEAL] = sSphealLevelUpLearnset,
[SPECIES_SEALEO] = sSealeoLevelUpLearnset,
[SPECIES_WALREIN] = sWalreinLevelUpLearnset,
[SPECIES_CACNEA] = sCacneaLevelUpLearnset,
[SPECIES_CACTURNE] = sCacturneLevelUpLearnset,
[SPECIES_SNORUNT] = sSnoruntLevelUpLearnset,
[SPECIES_GLALIE] = sGlalieLevelUpLearnset,
[SPECIES_LUNATONE] = sLunatoneLevelUpLearnset,
[SPECIES_SOLROCK] = sSolrockLevelUpLearnset,
[SPECIES_AZURILL] = sAzurillLevelUpLearnset,
[SPECIES_SPOINK] = sSpoinkLevelUpLearnset,
[SPECIES_GRUMPIG] = sGrumpigLevelUpLearnset,
[SPECIES_PLUSLE] = sPlusleLevelUpLearnset,
[SPECIES_MINUN] = sMinunLevelUpLearnset,
[SPECIES_MAWILE] = sMawileLevelUpLearnset,
[SPECIES_MEDITITE] = sMedititeLevelUpLearnset,
[SPECIES_MEDICHAM] = sMedichamLevelUpLearnset,
[SPECIES_SWABLU] = sSwabluLevelUpLearnset,
[SPECIES_ALTARIA] = sAltariaLevelUpLearnset,
[SPECIES_WYNAUT] = sWynautLevelUpLearnset,
[SPECIES_DUSKULL] = sDuskullLevelUpLearnset,
[SPECIES_DUSCLOPS] = sDusclopsLevelUpLearnset,
[SPECIES_ROSELIA] = sRoseliaLevelUpLearnset,
[SPECIES_SLAKOTH] = sSlakothLevelUpLearnset,
[SPECIES_VIGOROTH] = sVigorothLevelUpLearnset,
[SPECIES_SLAKING] = sSlakingLevelUpLearnset,
[SPECIES_GULPIN] = sGulpinLevelUpLearnset,
[SPECIES_SWALOT] = sSwalotLevelUpLearnset,
[SPECIES_TROPIUS] = sTropiusLevelUpLearnset,
[SPECIES_WHISMUR] = sWhismurLevelUpLearnset,
[SPECIES_LOUDRED] = sLoudredLevelUpLearnset,
[SPECIES_EXPLOUD] = sExploudLevelUpLearnset,
[SPECIES_CLAMPERL] = sClamperlLevelUpLearnset,
[SPECIES_HUNTAIL] = sHuntailLevelUpLearnset,
[SPECIES_GOREBYSS] = sGorebyssLevelUpLearnset,
[SPECIES_ABSOL] = sAbsolLevelUpLearnset,
[SPECIES_SHUPPET] = sShuppetLevelUpLearnset,
[SPECIES_BANETTE] = sBanetteLevelUpLearnset,
[SPECIES_SEVIPER] = sSeviperLevelUpLearnset,
[SPECIES_ZANGOOSE] = sZangooseLevelUpLearnset,
[SPECIES_RELICANTH] = sRelicanthLevelUpLearnset,
[SPECIES_ARON] = sAronLevelUpLearnset,
[SPECIES_LAIRON] = sLaironLevelUpLearnset,
[SPECIES_AGGRON] = sAggronLevelUpLearnset,
[SPECIES_CASTFORM] = sCastformLevelUpLearnset,
[SPECIES_VOLBEAT] = sVolbeatLevelUpLearnset,
[SPECIES_ILLUMISE] = sIllumiseLevelUpLearnset,
[SPECIES_LILEEP] = sLileepLevelUpLearnset,
[SPECIES_CRADILY] = sCradilyLevelUpLearnset,
[SPECIES_ANORITH] = sAnorithLevelUpLearnset,
[SPECIES_ARMALDO] = sArmaldoLevelUpLearnset,
[SPECIES_RALTS] = sRaltsLevelUpLearnset,
[SPECIES_KIRLIA] = sKirliaLevelUpLearnset,
[SPECIES_GARDEVOIR] = sGardevoirLevelUpLearnset,
[SPECIES_BAGON] = sBagonLevelUpLearnset,
[SPECIES_SHELGON] = sShelgonLevelUpLearnset,
[SPECIES_SALAMENCE] = sSalamenceLevelUpLearnset,
[SPECIES_BELDUM] = sBeldumLevelUpLearnset,
[SPECIES_METANG] = sMetangLevelUpLearnset,
[SPECIES_METAGROSS] = sMetagrossLevelUpLearnset,
[SPECIES_REGIROCK] = sRegirockLevelUpLearnset,
[SPECIES_REGICE] = sRegiceLevelUpLearnset,
[SPECIES_REGISTEEL] = sRegisteelLevelUpLearnset,
[SPECIES_KYOGRE] = sKyogreLevelUpLearnset,
[SPECIES_GROUDON] = sGroudonLevelUpLearnset,
[SPECIES_RAYQUAZA] = sRayquazaLevelUpLearnset,
[SPECIES_LATIAS] = sLatiasLevelUpLearnset,
[SPECIES_LATIOS] = sLatiosLevelUpLearnset,
[SPECIES_JIRACHI] = sJirachiLevelUpLearnset,
[SPECIES_DEOXYS] = sDeoxysLevelUpLearnset,
[SPECIES_CHIMECHO] = sChimechoLevelUpLearnset,
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,308 @@
// TODO: document trainer pic indices with macro
const u8 gFacilityClassToPicIndex[] =
{
[FACILITY_CLASS_AQUA_LEADER] = 0,
[FACILITY_CLASS_TEAM_AQUA] = 1,
[FACILITY_CLASS_TEAM_AQUA_2] = 2,
[FACILITY_CLASS_AROMA_LADY] = 3,
[FACILITY_CLASS_RUIN_MANIAC] = 4,
[FACILITY_CLASS_INTERVIEWER] = 5,
[FACILITY_CLASS_TUBER] = 6,
[FACILITY_CLASS_TUBER_2] = 7,
[FACILITY_CLASS_COOLTRAINER] = 8,
[FACILITY_CLASS_COOLTRAINER_2] = 9,
[FACILITY_CLASS_HEX_MANIAC] = 10,
[FACILITY_CLASS_LADY] = 11,
[FACILITY_CLASS_BEAUTY] = 12,
[FACILITY_CLASS_RICH_BOY] = 13,
[FACILITY_CLASS_POKEMANIAC] = 14,
[FACILITY_CLASS_SWIMMER_MALE] = 15,
[FACILITY_CLASS_BLACK_BELT] = 16,
[FACILITY_CLASS_GUITARIST] = 17,
[FACILITY_CLASS_KINDLER] = 18,
[FACILITY_CLASS_CAMPER] = 19,
[FACILITY_CLASS_BUG_MANIAC] = 20,
[FACILITY_CLASS_PSYCHIC] = 21,
[FACILITY_CLASS_PSYCHIC_2] = 22,
[FACILITY_CLASS_GENTLEMAN] = 23,
[FACILITY_CLASS_ELITE_FOUR] = 24,
[FACILITY_CLASS_ELITE_FOUR_2] = 25,
[FACILITY_CLASS_LEADER] = 26,
[FACILITY_CLASS_LEADER_2] = 27,
[FACILITY_CLASS_LEADER_3] = 28,
[FACILITY_CLASS_SCHOOL_KID] = 29,
[FACILITY_CLASS_SCHOOL_KID_2] = 30,
[FACILITY_CLASS_SR_AND_JR] = 31,
[FACILITY_CLASS_POKEFAN] = 32,
[FACILITY_CLASS_POKEFAN_2] = 33,
[FACILITY_CLASS_EXPERT] = 34,
[FACILITY_CLASS_EXPERT_2] = 35,
[FACILITY_CLASS_YOUNGSTER] = 36,
[FACILITY_CLASS_CHAMPION] = 37,
[FACILITY_CLASS_FISHERMAN] = 38,
[FACILITY_CLASS_TRIATHLETE] = 39,
[FACILITY_CLASS_TRIATHLETE_2] = 40,
[FACILITY_CLASS_TRIATHLETE_3] = 41,
[FACILITY_CLASS_TRIATHLETE_4] = 42,
[FACILITY_CLASS_TRIATHLETE_5] = 43,
[FACILITY_CLASS_TRIATHLETE_6] = 44,
[FACILITY_CLASS_DRAGON_TAMER] = 45,
[FACILITY_CLASS_BIRD_KEEPER] = 46,
[FACILITY_CLASS_NINJA_BOY] = 47,
[FACILITY_CLASS_BATTLE_GIRL] = 48,
[FACILITY_CLASS_PARASOL_LADY] = 49,
[FACILITY_CLASS_SWIMMER_FEMALE] = 50,
[FACILITY_CLASS_PICNICKER] = 51,
[FACILITY_CLASS_TWINS] = 52,
[FACILITY_CLASS_SAILOR] = 53,
[FACILITY_CLASS_BOARDER] = 36,
[FACILITY_CLASS_BOARDER_2] = 36,
[FACILITY_CLASS_COLLECTOR] = 54,
[FACILITY_CLASS_PKMN_TRAINER] = 55,
[FACILITY_CLASS_PKMN_TRAINER_2] = 56,
[FACILITY_CLASS_PKMN_TRAINER_3] = 56,
[FACILITY_CLASS_PKMN_TRAINER_4] = 56,
[FACILITY_CLASS_PKMN_TRAINER_5] = 57,
[FACILITY_CLASS_PKMN_TRAINER_6] = 57,
[FACILITY_CLASS_PKMN_TRAINER_7] = 57,
[FACILITY_CLASS_PKMN_BREEDER] = 58,
[FACILITY_CLASS_PKMN_BREEDER_2] = 59,
[FACILITY_CLASS_PKMN_RANGER] = 60,
[FACILITY_CLASS_PKMN_RANGER_2] = 61,
[FACILITY_CLASS_MAGMA_LEADER] = 62,
[FACILITY_CLASS_TEAM_MAGMA] = 63,
[FACILITY_CLASS_TEAM_MAGMA_2] = 64,
[FACILITY_CLASS_LASS] = 65,
[FACILITY_CLASS_BUG_CATCHER] = 66,
[FACILITY_CLASS_HIKER] = 67,
[FACILITY_CLASS_YOUNG_COUPLE] = 68,
[FACILITY_CLASS_OLD_COUPLE] = 69,
[FACILITY_CLASS_SIS_AND_BRO] = 70,
[FACILITY_CLASS_AQUA_ADMIN] = 71,
[FACILITY_CLASS_AQUA_ADMIN_2] = 72,
[FACILITY_CLASS_MAGMA_ADMIN] = 73,
[FACILITY_CLASS_MAGMA_ADMIN_2] = 74,
[FACILITY_CLASS_LEADER_4] = 75,
[FACILITY_CLASS_LEADER_5] = 76,
[FACILITY_CLASS_LEADER_6] = 77,
[FACILITY_CLASS_LEADER_7] = 78,
[FACILITY_CLASS_LEADER_8] = 79,
[FACILITY_CLASS_ELITE_FOUR_3] = 80,
[FACILITY_CLASS_ELITE_FOUR_4] = 81,
[FACILITY_CLASS_YOUNGSTER_2] = 82,
[FACILITY_CLASS_BUG_CATCHER_2] = 83,
[FACILITY_CLASS_LASS_2] = 84,
[FACILITY_CLASS_SAILOR_2] = 85,
[FACILITY_CLASS_CAMPER_2] = 86,
[FACILITY_CLASS_PICNICKER_2] = 87,
[FACILITY_CLASS_POKEMANIAC_2] = 88,
[FACILITY_CLASS_SUPER_NERD] = 89,
[FACILITY_CLASS_HIKER_2] = 90,
[FACILITY_CLASS_BIKER] = 91,
[FACILITY_CLASS_BURGLAR] = 92,
[FACILITY_CLASS_ENGINEER] = 93,
[FACILITY_CLASS_FISHERMAN_2] = 94,
[FACILITY_CLASS_SWIMMER_MALE_2] = 95,
[FACILITY_CLASS_CUE_BALL] = 96,
[FACILITY_CLASS_GAMER] = 97,
[FACILITY_CLASS_BEAUTY_2] = 98,
[FACILITY_CLASS_SWIMMER_FEMALE_2] = 99,
[FACILITY_CLASS_PSYCHIC_3] = 100,
[FACILITY_CLASS_ROCKER] = 101,
[FACILITY_CLASS_JUGGLER] = 102,
[FACILITY_CLASS_TAMER] = 103,
[FACILITY_CLASS_BIRD_KEEPER_2] = 104,
[FACILITY_CLASS_BLACK_BELT_2] = 105,
[FACILITY_CLASS_RIVAL] = 106,
[FACILITY_CLASS_SCIENTIST] = 107,
[FACILITY_CLASS_BOSS] = 108,
[FACILITY_CLASS_TEAM_ROCKET] = 109,
[FACILITY_CLASS_COOLTRAINER_3] = 110,
[FACILITY_CLASS_COOLTRAINER_4] = 111,
[FACILITY_CLASS_ELITE_FOUR_5] = 112,
[FACILITY_CLASS_ELITE_FOUR_6] = 113,
[FACILITY_CLASS_LEADER_9] = 116,
[FACILITY_CLASS_LEADER_10] = 117,
[FACILITY_CLASS_GENTLEMAN_2] = 123,
[FACILITY_CLASS_RIVAL_2] = 124,
[FACILITY_CLASS_CHAMPION_2] = 125,
[FACILITY_CLASS_CHANNELER] = 126,
[FACILITY_CLASS_TWINS_2] = 127,
[FACILITY_CLASS_COOL_COUPLE] = 128,
[FACILITY_CLASS_YOUNG_COUPLE_2] = 129,
[FACILITY_CLASS_CRUSH_KIN] = 130,
[FACILITY_CLASS_SIS_AND_BRO_2] = 131,
[FACILITY_CLASS_PKMN_PROF] = 132,
[FACILITY_CLASS_PLAYER] = 133,
[FACILITY_CLASS_PLAYER_2] = 134,
[FACILITY_CLASS_PLAYER_3] = 135,
[FACILITY_CLASS_PLAYER_4] = 136,
[FACILITY_CLASS_TEAM_ROCKET_2] = 137,
[FACILITY_CLASS_PSYCHIC_4] = 138,
[FACILITY_CLASS_CRUSH_GIRL] = 139,
[FACILITY_CLASS_TUBER_3] = 140,
[FACILITY_CLASS_PKMN_BREEDER_3] = 141,
[FACILITY_CLASS_PKMN_RANGER_3] = 142,
[FACILITY_CLASS_PKMN_RANGER_4] = 143,
[FACILITY_CLASS_AROMA_LADY_2] = 144,
[FACILITY_CLASS_RUIN_MANIAC_2] = 145,
[FACILITY_CLASS_LADY_2] = 146,
[FACILITY_CLASS_PAINTER] = 147,
[FACILITY_CLASS_ELITE_FOUR_7] = 112,
[FACILITY_CLASS_ELITE_FOUR_8] = 113,
[FACILITY_CLASS_CHAMPION_3] = 125,
};
const u8 gFacilityClassToTrainerClass[] =
{
[FACILITY_CLASS_AQUA_LEADER] = CLASS_AQUA_LEADER,
[FACILITY_CLASS_TEAM_AQUA] = CLASS_TEAM_AQUA,
[FACILITY_CLASS_TEAM_AQUA_2] = CLASS_TEAM_AQUA,
[FACILITY_CLASS_AROMA_LADY] = CLASS_AROMA_LADY,
[FACILITY_CLASS_RUIN_MANIAC] = CLASS_RUIN_MANIAC,
[FACILITY_CLASS_INTERVIEWER] = CLASS_INTERVIEWER,
[FACILITY_CLASS_TUBER] = CLASS_TUBER,
[FACILITY_CLASS_TUBER_2] = CLASS_TUBER_2,
[FACILITY_CLASS_COOLTRAINER] = CLASS_COOLTRAINER,
[FACILITY_CLASS_COOLTRAINER_2] = CLASS_COOLTRAINER,
[FACILITY_CLASS_HEX_MANIAC] = CLASS_HEX_MANIAC,
[FACILITY_CLASS_LADY] = CLASS_LADY,
[FACILITY_CLASS_BEAUTY] = CLASS_BEAUTY,
[FACILITY_CLASS_RICH_BOY] = CLASS_RICH_BOY,
[FACILITY_CLASS_POKEMANIAC] = CLASS_POKEMANIAC,
[FACILITY_CLASS_SWIMMER_MALE] = CLASS_SWIMMER_MALE,
[FACILITY_CLASS_BLACK_BELT] = CLASS_BLACK_BELT,
[FACILITY_CLASS_GUITARIST] = CLASS_GUITARIST,
[FACILITY_CLASS_KINDLER] = CLASS_KINDLER,
[FACILITY_CLASS_CAMPER] = CLASS_CAMPER,
[FACILITY_CLASS_BUG_MANIAC] = CLASS_BUG_MANIAC,
[FACILITY_CLASS_PSYCHIC] = CLASS_PSYCHIC,
[FACILITY_CLASS_PSYCHIC_2] = CLASS_PSYCHIC,
[FACILITY_CLASS_GENTLEMAN] = CLASS_GENTLEMAN,
[FACILITY_CLASS_ELITE_FOUR] = CLASS_ELITE_FOUR,
[FACILITY_CLASS_ELITE_FOUR_2] = CLASS_ELITE_FOUR,
[FACILITY_CLASS_LEADER] = CLASS_LEADER,
[FACILITY_CLASS_LEADER_2] = CLASS_LEADER,
[FACILITY_CLASS_LEADER_3] = CLASS_LEADER,
[FACILITY_CLASS_SCHOOL_KID] = CLASS_SCHOOL_KID,
[FACILITY_CLASS_SCHOOL_KID_2] = CLASS_SCHOOL_KID,
[FACILITY_CLASS_SR_AND_JR] = CLASS_SR_AND_JR,
[FACILITY_CLASS_POKEFAN] = CLASS_POKEFAN,
[FACILITY_CLASS_POKEFAN_2] = CLASS_POKEFAN,
[FACILITY_CLASS_EXPERT] = CLASS_EXPERT,
[FACILITY_CLASS_EXPERT_2] = CLASS_EXPERT,
[FACILITY_CLASS_YOUNGSTER] = CLASS_YOUNGSTER,
[FACILITY_CLASS_CHAMPION] = CLASS_CHAMPION,
[FACILITY_CLASS_FISHERMAN] = CLASS_FISHERMAN,
[FACILITY_CLASS_TRIATHLETE] = CLASS_TRIATHLETE,
[FACILITY_CLASS_TRIATHLETE_2] = CLASS_TRIATHLETE,
[FACILITY_CLASS_TRIATHLETE_3] = CLASS_TRIATHLETE,
[FACILITY_CLASS_TRIATHLETE_4] = CLASS_TRIATHLETE,
[FACILITY_CLASS_TRIATHLETE_5] = CLASS_TRIATHLETE,
[FACILITY_CLASS_TRIATHLETE_6] = CLASS_TRIATHLETE,
[FACILITY_CLASS_DRAGON_TAMER] = CLASS_DRAGON_TAMER,
[FACILITY_CLASS_BIRD_KEEPER] = CLASS_BIRD_KEEPER,
[FACILITY_CLASS_NINJA_BOY] = CLASS_NINJA_BOY,
[FACILITY_CLASS_BATTLE_GIRL] = CLASS_BATTLE_GIRL,
[FACILITY_CLASS_PARASOL_LADY] = CLASS_PARASOL_LADY,
[FACILITY_CLASS_SWIMMER_FEMALE] = CLASS_SWIMMER_FEMALE,
[FACILITY_CLASS_PICNICKER] = CLASS_PICNICKER,
[FACILITY_CLASS_TWINS] = CLASS_TWINS,
[FACILITY_CLASS_SAILOR] = CLASS_SAILOR,
[FACILITY_CLASS_BOARDER] = CLASS_BOARDER,
[FACILITY_CLASS_BOARDER_2] = CLASS_BOARDER,
[FACILITY_CLASS_COLLECTOR] = CLASS_COLLECTOR,
[FACILITY_CLASS_PKMN_TRAINER] = CLASS_PKMN_TRAINER_3,
[FACILITY_CLASS_PKMN_TRAINER_2] = CLASS_PKMN_TRAINER_3,
[FACILITY_CLASS_PKMN_TRAINER_3] = CLASS_PKMN_TRAINER_3,
[FACILITY_CLASS_PKMN_TRAINER_4] = CLASS_PKMN_TRAINER_3,
[FACILITY_CLASS_PKMN_TRAINER_5] = CLASS_PKMN_TRAINER_3,
[FACILITY_CLASS_PKMN_TRAINER_6] = CLASS_PKMN_TRAINER_3,
[FACILITY_CLASS_PKMN_TRAINER_7] = CLASS_PKMN_TRAINER_3,
[FACILITY_CLASS_PKMN_BREEDER] = CLASS_PKMN_BREEDER,
[FACILITY_CLASS_PKMN_BREEDER_2] = CLASS_PKMN_BREEDER,
[FACILITY_CLASS_PKMN_RANGER] = CLASS_PKMN_RANGER,
[FACILITY_CLASS_PKMN_RANGER_2] = CLASS_PKMN_RANGER,
[FACILITY_CLASS_MAGMA_LEADER] = CLASS_MAGMA_LEADER,
[FACILITY_CLASS_TEAM_MAGMA] = CLASS_TEAM_MAGMA,
[FACILITY_CLASS_TEAM_MAGMA_2] = CLASS_TEAM_MAGMA,
[FACILITY_CLASS_LASS] = CLASS_LASS,
[FACILITY_CLASS_BUG_CATCHER] = CLASS_BUG_CATCHER,
[FACILITY_CLASS_HIKER] = CLASS_HIKER,
[FACILITY_CLASS_YOUNG_COUPLE] = CLASS_YOUNG_COUPLE,
[FACILITY_CLASS_OLD_COUPLE] = CLASS_OLD_COUPLE,
[FACILITY_CLASS_SIS_AND_BRO] = CLASS_SIS_AND_BRO,
[FACILITY_CLASS_AQUA_ADMIN] = CLASS_AQUA_ADMIN,
[FACILITY_CLASS_AQUA_ADMIN_2] = CLASS_AQUA_ADMIN,
[FACILITY_CLASS_MAGMA_ADMIN] = CLASS_MAGMA_ADMIN,
[FACILITY_CLASS_MAGMA_ADMIN_2] = CLASS_MAGMA_ADMIN,
[FACILITY_CLASS_LEADER_4] = CLASS_LEADER,
[FACILITY_CLASS_LEADER_5] = CLASS_LEADER,
[FACILITY_CLASS_LEADER_6] = CLASS_LEADER,
[FACILITY_CLASS_LEADER_7] = CLASS_LEADER,
[FACILITY_CLASS_LEADER_8] = CLASS_LEADER,
[FACILITY_CLASS_ELITE_FOUR_3] = CLASS_ELITE_FOUR,
[FACILITY_CLASS_ELITE_FOUR_4] = CLASS_ELITE_FOUR,
[FACILITY_CLASS_YOUNGSTER_2] = CLASS_YOUNGSTER_2,
[FACILITY_CLASS_BUG_CATCHER_2] = CLASS_BUG_CATCHER_2,
[FACILITY_CLASS_LASS_2] = CLASS_LASS_2,
[FACILITY_CLASS_SAILOR_2] = CLASS_SAILOR_2,
[FACILITY_CLASS_CAMPER_2] = CLASS_CAMPER_2,
[FACILITY_CLASS_PICNICKER_2] = CLASS_PICNICKER_2,
[FACILITY_CLASS_POKEMANIAC_2] = CLASS_POKEMANIAC_2,
[FACILITY_CLASS_SUPER_NERD] = CLASS_SUPER_NERD,
[FACILITY_CLASS_HIKER_2] = CLASS_HIKER_2,
[FACILITY_CLASS_BIKER] = CLASS_BIKER,
[FACILITY_CLASS_BURGLAR] = CLASS_BURGLAR,
[FACILITY_CLASS_ENGINEER] = CLASS_ENGINEER,
[FACILITY_CLASS_FISHERMAN_2] = CLASS_FISHERMAN_2,
[FACILITY_CLASS_SWIMMER_MALE_2] = CLASS_SWIMMER_MALE_2,
[FACILITY_CLASS_CUE_BALL] = CLASS_CUE_BALL,
[FACILITY_CLASS_GAMER] = CLASS_GAMER,
[FACILITY_CLASS_BEAUTY_2] = CLASS_BEAUTY_2,
[FACILITY_CLASS_SWIMMER_FEMALE_2] = CLASS_SWIMMER_FEMALE_2,
[FACILITY_CLASS_PSYCHIC_3] = CLASS_PSYCHIC_2,
[FACILITY_CLASS_ROCKER] = CLASS_ROCKER,
[FACILITY_CLASS_JUGGLER] = CLASS_JUGGLER,
[FACILITY_CLASS_TAMER] = CLASS_TAMER,
[FACILITY_CLASS_BIRD_KEEPER_2] = CLASS_BIRD_KEEPER_2,
[FACILITY_CLASS_BLACK_BELT_2] = CLASS_BLACK_BELT_2,
[FACILITY_CLASS_RIVAL] = CLASS_RIVAL,
[FACILITY_CLASS_SCIENTIST] = CLASS_SCIENTIST,
[FACILITY_CLASS_BOSS] = CLASS_BOSS,
[FACILITY_CLASS_TEAM_ROCKET] = CLASS_TEAM_ROCKET,
[FACILITY_CLASS_COOLTRAINER_3] = CLASS_COOLTRAINER_2,
[FACILITY_CLASS_COOLTRAINER_4] = CLASS_COOLTRAINER_2,
[FACILITY_CLASS_ELITE_FOUR_5] = CLASS_ELITE_FOUR_2,
[FACILITY_CLASS_ELITE_FOUR_6] = CLASS_ELITE_FOUR_2,
[FACILITY_CLASS_LEADER_9] = CLASS_LEADER_2,
[FACILITY_CLASS_LEADER_10] = CLASS_LEADER_2,
[FACILITY_CLASS_GENTLEMAN_2] = CLASS_GENTLEMAN_2,
[FACILITY_CLASS_RIVAL_2] = CLASS_RIVAL_2,
[FACILITY_CLASS_CHAMPION_2] = CLASS_CHAMPION_2,
[FACILITY_CLASS_CHANNELER] = CLASS_CHANNELER,
[FACILITY_CLASS_TWINS_2] = CLASS_TWINS_2,
[FACILITY_CLASS_COOL_COUPLE] = CLASS_COOL_COUPLE,
[FACILITY_CLASS_YOUNG_COUPLE_2] = CLASS_YOUNG_COUPLE_2,
[FACILITY_CLASS_CRUSH_KIN] = CLASS_CRUSH_KIN,
[FACILITY_CLASS_SIS_AND_BRO_2] = CLASS_SIS_AND_BRO_2,
[FACILITY_CLASS_PKMN_PROF] = CLASS_PKMN_PROF,
[FACILITY_CLASS_PLAYER] = CLASS_PLAYER,
[FACILITY_CLASS_PLAYER_2] = CLASS_PLAYER,
[FACILITY_CLASS_PLAYER_3] = CLASS_PLAYER,
[FACILITY_CLASS_PLAYER_4] = CLASS_PLAYER,
[FACILITY_CLASS_TEAM_ROCKET_2] = CLASS_TEAM_ROCKET,
[FACILITY_CLASS_PSYCHIC_4] = CLASS_PSYCHIC_2,
[FACILITY_CLASS_CRUSH_GIRL] = CLASS_CRUSH_GIRL,
[FACILITY_CLASS_TUBER_3] = CLASS_TUBER_3,
[FACILITY_CLASS_PKMN_BREEDER_3] = CLASS_PKMN_BREEDER_2,
[FACILITY_CLASS_PKMN_RANGER_3] = CLASS_PKMN_RANGER_2,
[FACILITY_CLASS_PKMN_RANGER_4] = CLASS_PKMN_RANGER_2,
[FACILITY_CLASS_AROMA_LADY_2] = CLASS_AROMA_LADY_2,
[FACILITY_CLASS_RUIN_MANIAC_2] = CLASS_RUIN_MANIAC_2,
[FACILITY_CLASS_LADY_2] = CLASS_LADY_2,
[FACILITY_CLASS_PAINTER] = CLASS_PAINTER,
[FACILITY_CLASS_ELITE_FOUR_7] = CLASS_ELITE_FOUR_2,
[FACILITY_CLASS_ELITE_FOUR_8] = CLASS_ELITE_FOUR_2,
[FACILITY_CLASS_CHAMPION_3] = CLASS_CHAMPION_2,
};

View File

@ -14,7 +14,7 @@
#include "menu.h"
#include "help_system.h"
#include "new_menu_helpers.h"
#include "pokemon_3.h"
#include "pokemon.h"
#include "sound.h"
#include "event_scripts.h"
#include "scanline_effect.h"
@ -500,7 +500,7 @@ static void Task_OaksSpeech1(u8 taskId)
break;
case 1:
sOakSpeechResources = AllocZeroed(sizeof(*sOakSpeechResources));
SetUpMonSpriteManagerMaybe(1, 1);
OakSpeechNidoranFSetup(1, 1);
break;
case 2:
SetGpuReg(REG_OFFSET_WIN0H, 0);
@ -1513,7 +1513,7 @@ static void Task_OakSpeech41(u8 taskId)
static void Task_OakSpeech42(u8 taskId)
{
FreeAllWindowBuffers();
sub_8044D80();
OakSpeechNidoranFFreeResources();
Free(sOakSpeechResources);
sOakSpeechResources = NULL;
gTextFlags.canABSpeedUpPrint = FALSE;
@ -1612,7 +1612,7 @@ static void CreateNidoranFSprite(u8 taskId)
{
u8 spriteId;
DecompressPicFromTable(gUnknown_8235194, sub_8044E00(0), SPECIES_NIDORAN_F);
DecompressPicFromTable(gUnknown_8235194, OakSpeechNidoranFGetBuffer(0), SPECIES_NIDORAN_F);
LoadCompressedSpritePaletteUsingHeap(&gUnknown_82373F4);
SetMultiuseSpriteTemplateToPokemon(SPECIES_NIDORAN_F, 0);
spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x60, 0x60, 1);

File diff suppressed because it is too large Load Diff

View File

@ -26,7 +26,7 @@ void sub_812C334(s32 *, s32 *);
void sub_812BFDC(void)
{
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_DOME)) && (gBattleOutcome == B_OUTCOME_WON || gBattleOutcome == B_OUTCOME_CAUGHT))
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_POKEDUDE)) && (gBattleOutcome == B_OUTCOME_WON || gBattleOutcome == B_OUTCOME_CAUGHT))
{
struct QuestLogStruct_TrainerBattleRecord * questLogTrainerBattleRecord = Alloc(sizeof(struct QuestLogStruct_TrainerBattleRecord));
struct QuestLogStruct_WildBattleRecord * questLogWildBattleRecord = Alloc(sizeof(struct QuestLogStruct_WildBattleRecord));

View File

@ -1378,21 +1378,21 @@ void sub_815E9FC(void)
{
r2 = gUnknown_847A2EE[r5][r6];
gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2].level = r9;
sub_803E0A4(&gEnemyParty[r6], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2]);
CreateBattleTowerMon(&gEnemyParty[r6], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2]);
}
break;
case 1:
r2 = gUnknown_847A2FE[r5][0];
gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[0].unk_040[r2].level = r9;
sub_803E0A4(&gEnemyParty[0], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[0].unk_040[r2]);
CreateBattleTowerMon(&gEnemyParty[0], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[0].unk_040[r2]);
r2 = gUnknown_847A2FE[r5][1];
gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[1].unk_040[r2].level = r9;
sub_803E0A4(&gEnemyParty[1], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[1].unk_040[r2]);
CreateBattleTowerMon(&gEnemyParty[1], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[1].unk_040[r2]);
break;
case 2:
r2 = gUnknown_847A30E[r5][r4];
gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2].level = r9;
sub_803E0A4(&gEnemyParty[0], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2]);
CreateBattleTowerMon(&gEnemyParty[0], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2]);
break;
}
}

View File

@ -28,7 +28,7 @@ void sub_8159F40(void)
s32 opIdx = 0;
const struct UnkStruct_84792D0 * data;
gBattleTypeFlags = BATTLE_TYPE_DOME;
gBattleTypeFlags = BATTLE_TYPE_POKEDUDE;
ZeroPlayerPartyMons();
ZeroEnemyPartyMons();
data = gUnknown_84792D0[gSpecialVar_0x8004];

View File

@ -487,13 +487,7 @@ gUnknown_2024414: @ 2024414
gUnknown_2024478: @ 2024478
.space 0x64
gMultiuseSpriteTemplate: @ 20244DC
.space 0x18
gUnknown_20244F4: @ 20244F4
.space 0x4
.align 2
.include "src/pokemon.o"
.include "src/daycare.o"
.align 2
.include "src/load_save.o"