diff options
-rw-r--r-- | arm9/Makefile | 2 | ||||
-rw-r--r-- | arm9/asm/pokemon.s | 131 | ||||
-rw-r--r-- | arm9/global.inc | 2 | ||||
-rw-r--r-- | arm9/modules/11/asm/module_11.s | 4 | ||||
-rw-r--r-- | arm9/modules/14/asm/module_14.s | 2 | ||||
-rw-r--r-- | arm9/modules/16/asm/module_16.s | 4 | ||||
-rw-r--r-- | include/constants/species.h | 520 | ||||
-rw-r--r-- | include/pokemon.h | 4 |
8 files changed, 596 insertions, 73 deletions
diff --git a/arm9/Makefile b/arm9/Makefile index 0b880bd3..25999e21 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -183,7 +183,7 @@ OBJDUMP := $(CROSS)objdump OBJCOPY := $(CROSS)objcopy # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o -ASFLAGS = -proc arm5te -i .. +ASFLAGS = -proc arm5te -i ../include -i .. CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) CXXFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) LDFLAGS = -nodead -w off -proc v5te -interworking -map closure,unused -symtab sort -m _start diff --git a/arm9/asm/pokemon.s b/arm9/asm/pokemon.s index 77d0e35c..d83d5b41 100644 --- a/arm9/asm/pokemon.s +++ b/arm9/asm/pokemon.s @@ -1,5 +1,6 @@ .include "asm/macros.inc" .include "global.inc" + .include "constants/species.h" .extern gGameLanguage .extern gGameVersion @@ -26,24 +27,24 @@ UNK_020F7ED4: ; 0x020F7ED4 .global sLegendaryMonsList sLegendaryMonsList: ; 0x020F7EF2 - .short 0x0096 ; MEWTWO - .short 0x0097 ; MEW - .short 0x00FA ; LUGIA - .short 0x00F9 ; HO-OH - .short 0x00FB ; CELEBI - .short 0x017E ; KYOGRE - .short 0x017F ; GROUDON - .short 0x0180 ; RAYQUAZA - .short 0x0181 ; JIRACHI - .short 0x0182 ; DEOXYS - .short 0x01E3 ; DIALGA - .short 0x01E4 ; PALKIA - .short 0x01E7 ; GIRATINA - .short 0x01E9 ; PHIONE - .short 0x01EA ; MANAPHY - .short 0x01EB ; DARKRAI - .short 0x01EC ; SHAYMIN - .short 0x01ED ; ARCEUS + .short SPECIES_MEWTWO + .short SPECIES_MEW + .short SPECIES_HO_OH + .short SPECIES_LUGIA + .short SPECIES_CELEBI + .short SPECIES_KYOGRE + .short SPECIES_GROUDON + .short SPECIES_RAYQUAZA + .short SPECIES_JIRACHI + .short SPECIES_DEOXYS + .short SPECIES_DIALGA + .short SPECIES_PALKIA + .short SPECIES_GIRATINA + .short SPECIES_PHIONE + .short SPECIES_MANAPHY + .short SPECIES_DARKRAI + .short SPECIES_SHAYMIN + .short SPECIES_ARCEUS .global UNK_020F7F16 UNK_020F7F16: ; 0x020F7F16 @@ -1583,7 +1584,7 @@ _02067522: _0206753A: b _0206781A _0206753C: - ldr r4, _02067820 ; =0x000001EE + ldr r4, _02067820 ; =SPECIES_EGG b _0206781A _02067540: ldrh r0, [r5, #0x0] @@ -1597,7 +1598,7 @@ _0206754C: lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _0206755A - ldr r4, _02067820 ; =0x000001EE + ldr r4, _02067820 ; =SPECIES_EGG b _0206781A _0206755A: ldrh r4, [r5, #0x0] @@ -1804,7 +1805,7 @@ _0206769C: lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _020676B2 - ldr r0, _02067824 ; =0x000001EF + ldr r0, _02067824 ; =SPECIES_MANAPHY_EGG ldr r2, [sp, #0x8] add r1, r4, #0x0 bl FUN_0200A99C @@ -1833,7 +1834,7 @@ _020676D0: lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _020676F4 - ldr r0, _02067824 ; =0x000001EF + ldr r0, _02067824 ; =SPECIES_MANAPHY_EGG mov r1, #0x0 bl FUN_0200AA50 add r5, r0, #0x0 @@ -1981,7 +1982,7 @@ _020677D4: b _0206781A _020677D8: ldrh r0, [r5, #0x0] - ldr r1, _0206782C ; =0x000001ED + ldr r1, _0206782C ; =SPECIES_ARCEUS cmp r0, r1 bne _020677FC ldrb r1, [r5, #0xd] @@ -2003,7 +2004,7 @@ _020677FC: sub r2, #0xaa lsr r1, r1, #0x1b str r2, [sp, #0x4] - bl GetMonBaseStat_HandleUnownOrArceus + bl GetMonBaseStat_HandleFormeConversion add r4, r0, #0x0 b _0206781A _02067810: @@ -2016,10 +2017,10 @@ _0206781A: add sp, #0xc pop {r4-r7, pc} .balign 4 -_02067820: .word 0x000001EE -_02067824: .word 0x000001EF +_02067820: .word SPECIES_EGG +_02067824: .word SPECIES_MANAPHY_EGG _02067828: .word 0x0000FFFF -_0206782C: .word 0x000001ED +_0206782C: .word SPECIES_ARCEUS thumb_func_start FUN_02067830 FUN_02067830: ; 0x02067830 @@ -3970,11 +3971,11 @@ _0206864A: pop {r4, pc} .balign 4 - thumb_func_start GetMonBaseStat_HandleUnownOrArceus -GetMonBaseStat_HandleUnownOrArceus: ; 0x02068654 + thumb_func_start GetMonBaseStat_HandleFormeConversion +GetMonBaseStat_HandleFormeConversion: ; 0x02068654 push {r3-r5, lr} add r4, r2, #0x0 - bl ConvertUnownOrArceusSpecies + bl ResolveMonForme mov r1, #0x0 bl AllocAndLoadMonPersonal add r5, r0, #0x0 @@ -4331,7 +4332,7 @@ _02068900: lsl r0, r0, #0x10 lsr r1, r0, #0x10 beq _020689D4 - ldr r0, _020689D8 ; =0x000001EE + ldr r0, _020689D8 ; =SPECIES_EGG cmp r1, r0 beq _020689D4 add r0, r5, #0x0 @@ -4433,7 +4434,7 @@ _020689D4: add sp, #0x8 pop {r3-r7, pc} .balign 4 -_020689D8: .word 0x000001EE +_020689D8: .word SPECIES_EGG _020689DC: .word UNK_020F7ED4 thumb_func_start FUN_020689E0 @@ -4680,7 +4681,7 @@ FUN_02068B70: ; 0x02068B70 add r2, r1, #0x0 bl FUN_020672BC add r6, r0, #0x0 - ldr r0, _02068BF8 ; =0x000001EE + ldr r0, _02068BF8 ; =SPECIES_EGG cmp r4, r0 bne _02068BCA add r0, r5, #0x0 @@ -4717,7 +4718,7 @@ _02068BD8: add sp, #0x1c pop {r4-r7, pc} nop -_02068BF8: .word 0x000001EE +_02068BF8: .word SPECIES_EGG _02068BFC: .word 0x000001EA thumb_func_start FUN_02068C00 @@ -5050,7 +5051,7 @@ FUN_02068E1C: ; 0x02068E1C add r2, r1, #0x0 bl FUN_020672BC add r6, r0, #0x0 - ldr r0, _02068E80 ; =0x000001EE + ldr r0, _02068E80 ; =SPECIES_EGG cmp r4, r0 bne _02068E62 add r0, r5, #0x0 @@ -5081,7 +5082,7 @@ _02068E70: add sp, #0x8 pop {r3-r7, pc} .balign 4 -_02068E80: .word 0x000001EE +_02068E80: .word SPECIES_EGG _02068E84: .word 0x000001EA thumb_func_start FUN_02068E88 @@ -6037,7 +6038,7 @@ ReadFromPersonalPmsNarc: ; 0x02069558 mov r1, #0x0 add r0, sp, #0x0 strh r1, [r0, #0x0] - ldr r0, _020695A0 ; =0x000001EE + ldr r0, _020695A0 ; =SPECIES_EGG cmp r4, r0 blo _0206956E bl ErrorHandling @@ -6062,46 +6063,46 @@ _0206956E: add sp, #0x4c pop {r3-r4, pc} nop -_020695A0: .word 0x000001EE +_020695A0: .word SPECIES_EGG _020695A4: .word UNK_02105FC8 thumb_func_start GetEggSpecies GetEggSpecies: ; 0x020695A8 push {r3, lr} - cmp r0, #0xb9 + cmp r0, #SPECIES_SUDOWOODO bgt _020695CC - cmp r0, #0xb7 + cmp r0, #SPECIES_MARILL blt _020695BA beq _020695EC - cmp r0, #0xb9 + cmp r0, #SPECIES_SUDOWOODO beq _020695EC b _020695E8 _020695BA: - cmp r0, #0x7a + cmp r0, #SPECIES_MR_MIME bgt _020695C6 bge _020695EC - cmp r0, #0x71 + cmp r0, #SPECIES_CHANSEY beq _020695EC b _020695E8 _020695C6: - cmp r0, #0x8f + cmp r0, #SPECIES_SNORLAX beq _020695EC b _020695E8 _020695CC: - cmp r0, #0xe2 + cmp r0, #SPECIES_MANTINE bgt _020695D8 bge _020695EC - cmp r0, #0xca + cmp r0, #SPECIES_WOBBUFFET beq _020695EC b _020695E8 _020695D8: - ldr r1, _020695F0 ; =0x0000013B + ldr r1, _020695F0 ; =SPECIES_ROSELIA cmp r0, r1 bgt _020695E2 beq _020695EC b _020695E8 _020695E2: - add r1, #0x2b + add r1, #SPECIES_CHIMECHO-SPECIES_ROSELIA cmp r0, r1 beq _020695EC _020695E8: @@ -6109,7 +6110,7 @@ _020695E8: _020695EC: pop {r3, pc} nop -_020695F0: .word 0x0000013B +_020695F0: .word SPECIES_ROSELIA thumb_func_start FUN_020695F4 FUN_020695F4: ; 0x020695F4 @@ -7284,7 +7285,7 @@ FUN_02069ECC: ; 0x02069ECC mov r1, #0x6 mov r2, #0x0 bl FUN_020672BC - ldr r1, _02069F20 ; =0x000001ED + ldr r1, _02069F20 ; =SPECIES_ARCEUS cmp r4, r1 bne _02069F1C cmp r6, #0x79 @@ -7306,7 +7307,7 @@ _02069F1C: add sp, #0x4 pop {r3-r6, pc} .balign 4 -_02069F20: .word 0x000001ED +_02069F20: .word SPECIES_ARCEUS thumb_func_start GetArceusTypeByPlate GetArceusTypeByPlate: ; 0x02069F24 @@ -7393,7 +7394,7 @@ _02069F96: FUN_02069F9C: ; 0x02069F9C push {r4, lr} add r4, r2, #0x0 - bl ConvertUnownOrArceusSpecies + bl ResolveMonForme add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x21 ; NARC_POKETOOL_PERSONAL_WOTBL @@ -7540,13 +7541,13 @@ FUN_0206A094: ; 0x0206A094 ldr r1, [sp, #0x0] add r0, r6, #0x0 mov r2, #0x10 - bl GetMonBaseStat_HandleUnownOrArceus + bl GetMonBaseStat_HandleFormeConversion add r1, sp, #0x4 strh r0, [r1, #0x2] ldr r1, [sp, #0x0] add r0, r6, #0x0 mov r2, #0x11 - bl GetMonBaseStat_HandleUnownOrArceus + bl GetMonBaseStat_HandleFormeConversion add r1, sp, #0x4 strh r0, [r1, #0x0] ldrh r2, [r1, #0x2] @@ -7620,7 +7621,7 @@ FUN_0206A144: ; 0x0206A144 thumb_func_start FUN_0206A16C FUN_0206A16C: ; 0x0206A16C push {r4, lr} - ldr r3, _0206A1C0 ; =0x000001EE + ldr r3, _0206A1C0 ; =SPECIES_EGG cmp r0, r3 bne _0206A178 mov r0, #0x0 @@ -7658,7 +7659,7 @@ _0206A1A6: lsl r4, r2 mov r2, #0x20 _0206A1B0: - bl GetMonBaseStat_HandleUnownOrArceus + bl GetMonBaseStat_HandleFormeConversion tst r0, r4 beq _0206A1BC mov r0, #0x1 @@ -7667,7 +7668,7 @@ _0206A1BC: mov r0, #0x0 pop {r4, pc} .balign 4 -_0206A1C0: .word 0x000001EE +_0206A1C0: .word SPECIES_EGG thumb_func_start FUN_0206A1C4 FUN_0206A1C4: ; 0x0206A1C4 @@ -7884,7 +7885,7 @@ _0206A37C: .word ReadWholeNarcMemberByIdPair LoadMonBaseStats_HandleUnownOrArceus: ; 0x0206A380 push {r4, lr} add r4, r2, #0x0 - bl ConvertUnownOrArceusSpecies + bl ResolveMonForme add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2 ; NARC_POKETOOL_PERSONAL_PERSONAL @@ -8755,13 +8756,13 @@ _0206A8F8: add r0, r1, #0x0 pop {r3, pc} - thumb_func_start ConvertUnownOrArceusSpecies -ConvertUnownOrArceusSpecies: ; 0x0206A8FC - ldr r3, _0206A928 ; =0x00000182 + thumb_func_start ResolveMonForme +ResolveMonForme: ; 0x0206A8FC + ldr r3, _0206A928 ; =SPECIES_DEOXYS cmp r0, r3 beq _0206A90C add r2, r3, #0x0 - add r2, #0x1b + add r2, #SPECIES_WORMADAM-SPECIES_DEOXYS cmp r0, r2 beq _0206A91A bx lr @@ -8770,7 +8771,7 @@ _0206A90C: beq _0206A926 cmp r1, #0x3 bgt _0206A926 - add r3, #0x6d + add r3, #SPECIES_DEOXYS_ATK-SPECIES_DEOXYS-1 add r0, r1, r3 bx lr _0206A91A: @@ -8778,12 +8779,12 @@ _0206A91A: beq _0206A926 cmp r1, #0x2 bgt _0206A926 - add r3, #0x70 + add r3, #SPECIES_WORMADAM_SANDY-SPECIES_DEOXYS-1 add r0, r1, r3 _0206A926: bx lr .balign 4 -_0206A928: .word 0x00000182 +_0206A928: .word SPECIES_DEOXYS thumb_func_start MaskOfFlagNo MaskOfFlagNo: ; 0x0206A92C diff --git a/arm9/global.inc b/arm9/global.inc index 7897bc2c..90558421 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -4727,7 +4727,7 @@ .extern AllocAndLoadMonPersonal
.extern GetPersonalAttr
.extern FreeMonPersonal
-.extern GetMonBaseStat_HandleUnownOrArceus
+.extern GetMonBaseStat_HandleFormeConversion
.extern GetMonBaseStat
.extern FUN_02068698
.extern FUN_020686F8
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s index 7be295ce..c1216663 100644 --- a/arm9/modules/11/asm/module_11.s +++ b/arm9/modules/11/asm/module_11.s @@ -20687,7 +20687,7 @@ _02237900: ldr r0, [sp, #4]
add r1, r6, #0
mov r2, #1
- bl GetMonBaseStat_HandleUnownOrArceus
+ bl GetMonBaseStat_HandleFormeConversion
ldr r1, _02237AB0 ; =0x00002144
ldr r2, _02237AB4 ; =0x00003044
str r0, [r5, r1]
@@ -20719,7 +20719,7 @@ _02237900: mov r2, #2
lsl r1, r1, #0x1b
lsr r1, r1, #0x1b
- bl GetMonBaseStat_HandleUnownOrArceus
+ bl GetMonBaseStat_HandleFormeConversion
add r1, r0, #0
ldr r0, _02237AB0 ; =0x00002144
ldr r0, [r5, r0]
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 79050eac..8f67a51e 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -21843,7 +21843,7 @@ _021E204A: lsr r1, r0, #0x10 add r0, r7, #0 mov r2, #0x1b - bl GetMonBaseStat_HandleUnownOrArceus + bl GetMonBaseStat_HandleFormeConversion lsl r0, r0, #0x18 lsr r1, r0, #0x18 b _021E20AA diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 34107e9c..e5ec6c9f 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -30379,12 +30379,12 @@ MOD16_021E5554: ; 0x021E5554 ldr r1, [sp, #0x30] add r0, r7, #0 mov r2, #6 - bl GetMonBaseStat_HandleUnownOrArceus + bl GetMonBaseStat_HandleFormeConversion add r6, r0, #0 ldr r1, [sp, #0x30] add r0, r7, #0 mov r2, #7 - bl GetMonBaseStat_HandleUnownOrArceus + bl GetMonBaseStat_HandleFormeConversion add r7, r0, #0 add r0, r6, #0 bl MOD16_021E563C diff --git a/include/constants/species.h b/include/constants/species.h new file mode 100644 index 00000000..fcb9b6b7 --- /dev/null +++ b/include/constants/species.h @@ -0,0 +1,520 @@ +#ifndef GUARD_CONSTANTS_SPECIES_H +#define GUARD_CONSTANTS_SPECIES_H + +#define SPECIES_NONE 0 +#define SPECIES_BULBASAUR 1 +#define SPECIES_IVYSAUR 2 +#define SPECIES_VENUSAUR 3 +#define SPECIES_CHARMANDER 4 +#define SPECIES_CHARMELEON 5 +#define SPECIES_CHARIZARD 6 +#define SPECIES_SQUIRTLE 7 +#define SPECIES_WARTORTLE 8 +#define SPECIES_BLASTOISE 9 +#define SPECIES_CATERPIE 10 +#define SPECIES_METAPOD 11 +#define SPECIES_BUTTERFREE 12 +#define SPECIES_WEEDLE 13 +#define SPECIES_KAKUNA 14 +#define SPECIES_BEEDRILL 15 +#define SPECIES_PIDGEY 16 +#define SPECIES_PIDGEOTTO 17 +#define SPECIES_PIDGEOT 18 +#define SPECIES_RATTATA 19 +#define SPECIES_RATICATE 20 +#define SPECIES_SPEAROW 21 +#define SPECIES_FEAROW 22 +#define SPECIES_EKANS 23 +#define SPECIES_ARBOK 24 +#define SPECIES_PIKACHU 25 +#define SPECIES_RAICHU 26 +#define SPECIES_SANDSHREW 27 +#define SPECIES_SANDSLASH 28 +#define SPECIES_NIDORAN_F 29 +#define SPECIES_NIDORINA 30 +#define SPECIES_NIDOQUEEN 31 +#define SPECIES_NIDORAN_M 32 +#define SPECIES_NIDORINO 33 +#define SPECIES_NIDOKING 34 +#define SPECIES_CLEFAIRY 35 +#define SPECIES_CLEFABLE 36 +#define SPECIES_VULPIX 37 +#define SPECIES_NINETALES 38 +#define SPECIES_JIGGLYPUFF 39 +#define SPECIES_WIGGLYTUFF 40 +#define SPECIES_ZUBAT 41 +#define SPECIES_GOLBAT 42 +#define SPECIES_ODDISH 43 +#define SPECIES_GLOOM 44 +#define SPECIES_VILEPLUME 45 +#define SPECIES_PARAS 46 +#define SPECIES_PARASECT 47 +#define SPECIES_VENONAT 48 +#define SPECIES_VENOMOTH 49 +#define SPECIES_DIGLETT 50 +#define SPECIES_DUGTRIO 51 +#define SPECIES_MEOWTH 52 +#define SPECIES_PERSIAN 53 +#define SPECIES_PSYDUCK 54 +#define SPECIES_GOLDUCK 55 +#define SPECIES_MANKEY 56 +#define SPECIES_PRIMEAPE 57 +#define SPECIES_GROWLITHE 58 +#define SPECIES_ARCANINE 59 +#define SPECIES_POLIWAG 60 +#define SPECIES_POLIWHIRL 61 +#define SPECIES_POLIWRATH 62 +#define SPECIES_ABRA 63 +#define SPECIES_KADABRA 64 +#define SPECIES_ALAKAZAM 65 +#define SPECIES_MACHOP 66 +#define SPECIES_MACHOKE 67 +#define SPECIES_MACHAMP 68 +#define SPECIES_BELLSPROUT 69 +#define SPECIES_WEEPINBELL 70 +#define SPECIES_VICTREEBEL 71 +#define SPECIES_TENTACOOL 72 +#define SPECIES_TENTACRUEL 73 +#define SPECIES_GEODUDE 74 +#define SPECIES_GRAVELER 75 +#define SPECIES_GOLEM 76 +#define SPECIES_PONYTA 77 +#define SPECIES_RAPIDASH 78 +#define SPECIES_SLOWPOKE 79 +#define SPECIES_SLOWBRO 80 +#define SPECIES_MAGNEMITE 81 +#define SPECIES_MAGNETON 82 +#define SPECIES_FARFETCHD 83 +#define SPECIES_DODUO 84 +#define SPECIES_DODRIO 85 +#define SPECIES_SEEL 86 +#define SPECIES_DEWGONG 87 +#define SPECIES_GRIMER 88 +#define SPECIES_MUK 89 +#define SPECIES_SHELLDER 90 +#define SPECIES_CLOYSTER 91 +#define SPECIES_GASTLY 92 +#define SPECIES_HAUNTER 93 +#define SPECIES_GENGAR 94 +#define SPECIES_ONIX 95 +#define SPECIES_DROWZEE 96 +#define SPECIES_HYPNO 97 +#define SPECIES_KRABBY 98 +#define SPECIES_KINGLER 99 +#define SPECIES_VOLTORB 100 +#define SPECIES_ELECTRODE 101 +#define SPECIES_EXEGGCUTE 102 +#define SPECIES_EXEGGUTOR 103 +#define SPECIES_CUBONE 104 +#define SPECIES_MAROWAK 105 +#define SPECIES_HITMONLEE 106 +#define SPECIES_HITMONCHAN 107 +#define SPECIES_LICKITUNG 108 +#define SPECIES_KOFFING 109 +#define SPECIES_WEEZING 110 +#define SPECIES_RHYHORN 111 +#define SPECIES_RHYDON 112 +#define SPECIES_CHANSEY 113 +#define SPECIES_TANGELA 114 +#define SPECIES_KANGASKHAN 115 +#define SPECIES_HORSEA 116 +#define SPECIES_SEADRA 117 +#define SPECIES_GOLDEEN 118 +#define SPECIES_SEAKING 119 +#define SPECIES_STARYU 120 +#define SPECIES_STARMIE 121 +#define SPECIES_MR_MIME 122 +#define SPECIES_SCYTHER 123 +#define SPECIES_JYNX 124 +#define SPECIES_ELECTABUZZ 125 +#define SPECIES_MAGMAR 126 +#define SPECIES_PINSIR 127 +#define SPECIES_TAUROS 128 +#define SPECIES_MAGIKARP 129 +#define SPECIES_GYARADOS 130 +#define SPECIES_LAPRAS 131 +#define SPECIES_DITTO 132 +#define SPECIES_EEVEE 133 +#define SPECIES_VAPOREON 134 +#define SPECIES_JOLTEON 135 +#define SPECIES_FLAREON 136 +#define SPECIES_PORYGON 137 +#define SPECIES_OMANYTE 138 +#define SPECIES_OMASTAR 139 +#define SPECIES_KABUTO 140 +#define SPECIES_KABUTOPS 141 +#define SPECIES_AERODACTYL 142 +#define SPECIES_SNORLAX 143 +#define SPECIES_ARTICUNO 144 +#define SPECIES_ZAPDOS 145 +#define SPECIES_MOLTRES 146 +#define SPECIES_DRATINI 147 +#define SPECIES_DRAGONAIR 148 +#define SPECIES_DRAGONITE 149 +#define SPECIES_MEWTWO 150 +#define SPECIES_MEW 151 + +#define KANTO_DEX_COUNT SPECIES_MEW + +#define SPECIES_CHIKORITA 152 +#define SPECIES_BAYLEEF 153 +#define SPECIES_MEGANIUM 154 +#define SPECIES_CYNDAQUIL 155 +#define SPECIES_QUILAVA 156 +#define SPECIES_TYPHLOSION 157 +#define SPECIES_TOTODILE 158 +#define SPECIES_CROCONAW 159 +#define SPECIES_FERALIGATR 160 +#define SPECIES_SENTRET 161 +#define SPECIES_FURRET 162 +#define SPECIES_HOOTHOOT 163 +#define SPECIES_NOCTOWL 164 +#define SPECIES_LEDYBA 165 +#define SPECIES_LEDIAN 166 +#define SPECIES_SPINARAK 167 +#define SPECIES_ARIADOS 168 +#define SPECIES_CROBAT 169 +#define SPECIES_CHINCHOU 170 +#define SPECIES_LANTURN 171 +#define SPECIES_PICHU 172 +#define SPECIES_CLEFFA 173 +#define SPECIES_IGGLYBUFF 174 +#define SPECIES_TOGEPI 175 +#define SPECIES_TOGETIC 176 +#define SPECIES_NATU 177 +#define SPECIES_XATU 178 +#define SPECIES_MAREEP 179 +#define SPECIES_FLAAFFY 180 +#define SPECIES_AMPHAROS 181 +#define SPECIES_BELLOSSOM 182 +#define SPECIES_MARILL 183 +#define SPECIES_AZUMARILL 184 +#define SPECIES_SUDOWOODO 185 +#define SPECIES_POLITOED 186 +#define SPECIES_HOPPIP 187 +#define SPECIES_SKIPLOOM 188 +#define SPECIES_JUMPLUFF 189 +#define SPECIES_AIPOM 190 +#define SPECIES_SUNKERN 191 +#define SPECIES_SUNFLORA 192 +#define SPECIES_YANMA 193 +#define SPECIES_WOOPER 194 +#define SPECIES_QUAGSIRE 195 +#define SPECIES_ESPEON 196 +#define SPECIES_UMBREON 197 +#define SPECIES_MURKROW 198 +#define SPECIES_SLOWKING 199 +#define SPECIES_MISDREAVUS 200 +#define SPECIES_UNOWN 201 +#define SPECIES_WOBBUFFET 202 +#define SPECIES_GIRAFARIG 203 +#define SPECIES_PINECO 204 +#define SPECIES_FORRETRESS 205 +#define SPECIES_DUNSPARCE 206 +#define SPECIES_GLIGAR 207 +#define SPECIES_STEELIX 208 +#define SPECIES_SNUBBULL 209 +#define SPECIES_GRANBULL 210 +#define SPECIES_QWILFISH 211 +#define SPECIES_SCIZOR 212 +#define SPECIES_SHUCKLE 213 +#define SPECIES_HERACROSS 214 +#define SPECIES_SNEASEL 215 +#define SPECIES_TEDDIURSA 216 +#define SPECIES_URSARING 217 +#define SPECIES_SLUGMA 218 +#define SPECIES_MAGCARGO 219 +#define SPECIES_SWINUB 220 +#define SPECIES_PILOSWINE 221 +#define SPECIES_CORSOLA 222 +#define SPECIES_REMORAID 223 +#define SPECIES_OCTILLERY 224 +#define SPECIES_DELIBIRD 225 +#define SPECIES_MANTINE 226 +#define SPECIES_SKARMORY 227 +#define SPECIES_HOUNDOUR 228 +#define SPECIES_HOUNDOOM 229 +#define SPECIES_KINGDRA 230 +#define SPECIES_PHANPY 231 +#define SPECIES_DONPHAN 232 +#define SPECIES_PORYGON2 233 +#define SPECIES_STANTLER 234 +#define SPECIES_SMEARGLE 235 +#define SPECIES_TYROGUE 236 +#define SPECIES_HITMONTOP 237 +#define SPECIES_SMOOCHUM 238 +#define SPECIES_ELEKID 239 +#define SPECIES_MAGBY 240 +#define SPECIES_MILTANK 241 +#define SPECIES_BLISSEY 242 +#define SPECIES_RAIKOU 243 +#define SPECIES_ENTEI 244 +#define SPECIES_SUICUNE 245 +#define SPECIES_LARVITAR 246 +#define SPECIES_PUPITAR 247 +#define SPECIES_TYRANITAR 248 +#define SPECIES_LUGIA 249 +#define SPECIES_HO_OH 250 +#define SPECIES_CELEBI 251 + +#define JOHTO_DEX_COUNT SPECIES_CELEBI + +#define SPECIES_TREECKO 252 +#define SPECIES_GROVYLE 253 +#define SPECIES_SCEPTILE 254 +#define SPECIES_TORCHIC 255 +#define SPECIES_COMBUSKEN 256 +#define SPECIES_BLAZIKEN 257 +#define SPECIES_MUDKIP 258 +#define SPECIES_MARSHTOMP 259 +#define SPECIES_SWAMPERT 260 +#define SPECIES_POOCHYENA 261 +#define SPECIES_MIGHTYENA 262 +#define SPECIES_ZIGZAGOON 263 +#define SPECIES_LINOONE 264 +#define SPECIES_WURMPLE 265 +#define SPECIES_SILCOON 266 +#define SPECIES_BEAUTIFLY 267 +#define SPECIES_CASCOON 268 +#define SPECIES_DUSTOX 269 +#define SPECIES_LOTAD 270 +#define SPECIES_LOMBRE 271 +#define SPECIES_LUDICOLO 272 +#define SPECIES_SEEDOT 273 +#define SPECIES_NUZLEAF 274 +#define SPECIES_SHIFTRY 275 +#define SPECIES_TAILLOW 276 +#define SPECIES_SWELLOW 277 +#define SPECIES_WINGULL 278 +#define SPECIES_PELIPPER 279 +#define SPECIES_RALTS 280 +#define SPECIES_KIRLIA 281 +#define SPECIES_GARDEVOIR 282 +#define SPECIES_SURSKIT 283 +#define SPECIES_MASQUERAIN 284 +#define SPECIES_SHROOMISH 285 +#define SPECIES_BRELOOM 286 +#define SPECIES_SLAKOTH 287 +#define SPECIES_VIGOROTH 288 +#define SPECIES_SLAKING 289 +#define SPECIES_NINCADA 290 +#define SPECIES_NINJASK 291 +#define SPECIES_SHEDINJA 292 +#define SPECIES_WHISMUR 293 +#define SPECIES_LOUDRED 294 +#define SPECIES_EXPLOUD 295 +#define SPECIES_MAKUHITA 296 +#define SPECIES_HARIYAMA 297 +#define SPECIES_AZURILL 298 +#define SPECIES_NOSEPASS 299 +#define SPECIES_SKITTY 300 +#define SPECIES_DELCATTY 301 +#define SPECIES_SABLEYE 302 +#define SPECIES_MAWILE 303 +#define SPECIES_ARON 304 +#define SPECIES_LAIRON 305 +#define SPECIES_AGGRON 306 +#define SPECIES_MEDITITE 307 +#define SPECIES_MEDICHAM 308 +#define SPECIES_ELECTRIKE 309 +#define SPECIES_MANECTRIC 310 +#define SPECIES_PLUSLE 311 +#define SPECIES_MINUN 312 +#define SPECIES_VOLBEAT 313 +#define SPECIES_ILLUMISE 314 +#define SPECIES_ROSELIA 315 +#define SPECIES_GULPIN 316 +#define SPECIES_SWALOT 317 +#define SPECIES_CARVANHA 318 +#define SPECIES_SHARPEDO 319 +#define SPECIES_WAILMER 320 +#define SPECIES_WAILORD 321 +#define SPECIES_NUMEL 322 +#define SPECIES_CAMERUPT 323 +#define SPECIES_TORKOAL 324 +#define SPECIES_SPOINK 325 +#define SPECIES_GRUMPIG 326 +#define SPECIES_SPINDA 327 +#define SPECIES_TRAPINCH 328 +#define SPECIES_VIBRAVA 329 +#define SPECIES_FLYGON 330 +#define SPECIES_CACNEA 331 +#define SPECIES_CACTURNE 332 +#define SPECIES_SWABLU 333 +#define SPECIES_ALTARIA 334 +#define SPECIES_ZANGOOSE 335 +#define SPECIES_SEVIPER 336 +#define SPECIES_LUNATONE 337 +#define SPECIES_SOLROCK 338 +#define SPECIES_BARBOACH 339 +#define SPECIES_WHISCASH 340 +#define SPECIES_CORPHISH 341 +#define SPECIES_CRAWDAUNT 342 +#define SPECIES_BALTOY 343 +#define SPECIES_CLAYDOL 344 +#define SPECIES_LILEEP 345 +#define SPECIES_CRADILY 346 +#define SPECIES_ANORITH 347 +#define SPECIES_ARMALDO 348 +#define SPECIES_FEEBAS 349 +#define SPECIES_MILOTIC 350 +#define SPECIES_CASTFORM 351 +#define SPECIES_KECLEON 352 +#define SPECIES_SHUPPET 353 +#define SPECIES_BANETTE 354 +#define SPECIES_DUSKULL 355 +#define SPECIES_DUSCLOPS 356 +#define SPECIES_TROPIUS 357 +#define SPECIES_CHIMECHO 358 +#define SPECIES_ABSOL 359 +#define SPECIES_WYNAUT 360 +#define SPECIES_SNORUNT 361 +#define SPECIES_GLALIE 362 +#define SPECIES_SPHEAL 363 +#define SPECIES_SEALEO 364 +#define SPECIES_WALREIN 365 +#define SPECIES_CLAMPERL 366 +#define SPECIES_HUNTAIL 367 +#define SPECIES_GOREBYSS 368 +#define SPECIES_RELICANTH 369 +#define SPECIES_LUVDISC 370 +#define SPECIES_BAGON 371 +#define SPECIES_SHELGON 372 +#define SPECIES_SALAMENCE 373 +#define SPECIES_BELDUM 374 +#define SPECIES_METANG 375 +#define SPECIES_METAGROSS 376 +#define SPECIES_REGIROCK 377 +#define SPECIES_REGICE 378 +#define SPECIES_REGISTEEL 379 +#define SPECIES_LATIAS 380 +#define SPECIES_LATIOS 381 +#define SPECIES_KYOGRE 382 +#define SPECIES_GROUDON 383 +#define SPECIES_RAYQUAZA 384 +#define SPECIES_JIRACHI 385 +#define SPECIES_DEOXYS 386 + +#define HOENN_DEX_COUNT SPECIES_DEOXYS + +#define SPECIES_TURTWIG 387 +#define SPECIES_GROTLE 388 +#define SPECIES_TORTERRA 389 +#define SPECIES_CHIMCHAR 390 +#define SPECIES_MONFERNO 391 +#define SPECIES_INFERNAPE 392 +#define SPECIES_PIPLUP 393 +#define SPECIES_PRINPLUP 394 +#define SPECIES_EMPOLEON 395 +#define SPECIES_STARLY 396 +#define SPECIES_STARAVIA 397 +#define SPECIES_STARAPTOR 398 +#define SPECIES_BIDOOF 399 +#define SPECIES_BIBAREL 400 +#define SPECIES_KRICKETOT 401 +#define SPECIES_KRICKETUNE 402 +#define SPECIES_SHINX 403 +#define SPECIES_LUXIO 404 +#define SPECIES_LUXRAY 405 +#define SPECIES_BUDEW 406 +#define SPECIES_ROSERADE 407 +#define SPECIES_CRANIDOS 408 +#define SPECIES_RAMPARDOS 409 +#define SPECIES_SHIELDON 410 +#define SPECIES_BASTIODON 411 +#define SPECIES_BURMY 412 +#define SPECIES_WORMADAM 413 +#define SPECIES_MOTHIM 414 +#define SPECIES_COMBEE 415 +#define SPECIES_VESPIQUEN 416 +#define SPECIES_PACHIRISU 417 +#define SPECIES_BUIZEL 418 +#define SPECIES_FLOATZEL 419 +#define SPECIES_CHERUBI 420 +#define SPECIES_CHERRIM 421 +#define SPECIES_SHELLOS 422 +#define SPECIES_GASTRODON 423 +#define SPECIES_AMBIPOM 424 +#define SPECIES_DRIFLOON 425 +#define SPECIES_DRIFBLIM 426 +#define SPECIES_BUNEARY 427 +#define SPECIES_LOPUNNY 428 +#define SPECIES_MISMAGIUS 429 +#define SPECIES_HONCHKROW 430 +#define SPECIES_GLAMEOW 431 +#define SPECIES_PURUGLY 432 +#define SPECIES_CHINGLING 433 +#define SPECIES_STUNKY 434 +#define SPECIES_SKUNTANK 435 +#define SPECIES_BRONZOR 436 +#define SPECIES_BRONZONG 437 +#define SPECIES_BONSLY 438 +#define SPECIES_MIME_JR 439 +#define SPECIES_HAPPINY 440 +#define SPECIES_CHATOT 441 +#define SPECIES_SPIRITOMB 442 +#define SPECIES_GIBLE 443 +#define SPECIES_GABITE 444 +#define SPECIES_GARCHOMP 445 +#define SPECIES_MUNCHLAX 446 +#define SPECIES_RIOLU 447 +#define SPECIES_LUCARIO 448 +#define SPECIES_HIPPOPOTAS 449 +#define SPECIES_HIPPOWDON 450 +#define SPECIES_SKORUPI 451 +#define SPECIES_DRAPION 452 +#define SPECIES_CROAGUNK 453 +#define SPECIES_TOXICROAK 454 +#define SPECIES_CARNIVINE 455 +#define SPECIES_FINNEON 456 +#define SPECIES_LUMINEON 457 +#define SPECIES_MANTYKE 458 +#define SPECIES_SNOVER 459 +#define SPECIES_ABOMASNOW 460 +#define SPECIES_WEAVILE 461 +#define SPECIES_MAGNEZONE 462 +#define SPECIES_LICKILICKY 463 +#define SPECIES_RHYPERIOR 464 +#define SPECIES_TANGROWTH 465 +#define SPECIES_ELECTIVIRE 466 +#define SPECIES_MAGMORTAR 467 +#define SPECIES_TOGEKISS 468 +#define SPECIES_YANMEGA 469 +#define SPECIES_LEAFEON 470 +#define SPECIES_GLACEON 471 +#define SPECIES_GLISCOR 472 +#define SPECIES_MAMOSWINE 473 +#define SPECIES_PORYGON_Z 474 +#define SPECIES_GALLADE 475 +#define SPECIES_PROBOPASS 476 +#define SPECIES_DUSKNOIR 477 +#define SPECIES_FROSLASS 478 +#define SPECIES_ROTOM 479 +#define SPECIES_UXIE 480 +#define SPECIES_MESPRIT 481 +#define SPECIES_AZELF 482 +#define SPECIES_DIALGA 483 +#define SPECIES_PALKIA 484 +#define SPECIES_HEATRAN 485 +#define SPECIES_REGIGIGAS 486 +#define SPECIES_GIRATINA 487 +#define SPECIES_CRESSELIA 488 +#define SPECIES_PHIONE 489 +#define SPECIES_MANAPHY 490 +#define SPECIES_DARKRAI 491 +#define SPECIES_SHAYMIN 492 +#define SPECIES_ARCEUS 493 + +#define NATIONAL_DEX_COUNT SPECIES_ARCEUS + +#define SPECIES_EGG 494 +#define SPECIES_MANAPHY_EGG 495 +#define SPECIES_DEOXYS_ATK 496 +#define SPECIES_DEOXYS_DEF 497 +#define SPECIES_DEOXYS_SPD 498 +#define SPECIES_WORMADAM_SANDY 499 +#define SPECIES_WORMADAM_TRASH 500 + +#define NUM_SPECIES SPECIES_WORMADAM_TRASH + +#endif //GUARD_CONSTANTS_SPECIES_H diff --git a/include/pokemon.h b/include/pokemon.h index f4d72647..a0e70dc1 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -5,6 +5,8 @@ // Enums +#include "constants/species.h" + typedef enum { EGG = 0, EVENT = 0, @@ -196,7 +198,7 @@ struct PokemonData { PokemonDataBlock block4; }; -int GetMonBaseStat_HandleUnownOrArceus(int species, int form, int stat_id); +int GetMonBaseStat_HandleFormeConversion(int species, int form, int stat_id); int GetMonBaseStat(int species, int stat_id); int GetMonExpByLevel(int species, int level); void LoadGrowthTable(int species, int * table); |