diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-06-12 16:23:27 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-06-12 17:53:50 -0400 |
commit | 6e12ebdda862b77eb4d6afa6533e82373e5834ce (patch) | |
tree | a4c5251244b0b79c8833bc98f63ac121617738b7 | |
parent | 09514ee0e6982c61d884682b4b747a4383f0d1b8 (diff) |
Transfer pokemon .rodata to C
-rw-r--r-- | arm9/asm/pokemon_s.s | 102 | ||||
-rw-r--r-- | arm9/src/pokemon.c | 96 |
2 files changed, 101 insertions, 97 deletions
diff --git a/arm9/asm/pokemon_s.s b/arm9/asm/pokemon_s.s index ab47775b..0371e142 100644 --- a/arm9/asm/pokemon_s.s +++ b/arm9/asm/pokemon_s.s @@ -4,103 +4,11 @@ .extern gGameLanguage .extern gGameVersion - - .section .rodata - - .global sItemOdds -sItemOdds: ; 0x020F7ECC - .short 0x002D, 0x005F - .short 0x0014, 0x0050 - - .global sFriendshipModTable -sFriendshipModTable: ; 0x020F7ED4 - .byte 5, 3, 2 - .byte 5, 3, 2 - .byte 1, 1, 0 - .byte 3, 2, 1 - .byte 1, 1, 0 - .byte 1, 1, 1 - .byte -1, -1, -1 - .byte -5, -5, -10 - .byte -5, -5, -10 - .byte 3, 2, 1 - - .global sLegendaryMonsList -sLegendaryMonsList: ; 0x020F7EF2 - .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 - .byte 0, 0, 0, 0, 0 - .byte 1, 0, 0, 0, -1 - .byte 1, 0, -1, 0, 0 - .byte 1, -1, 0, 0, 0 - .byte 1, 0, 0, -1, 0 - .byte -1, 0, 0, 0, 1 - .byte 0, 0, 0, 0, 0 - .byte 0, 0, -1, 0, 1 - .byte 0, -1, 0, 0, 1 - .byte 0, 0, 0, -1, 1 - .byte -1, 0, 1, 0, 0 - .byte 0, 0, 1, 0, -1 - .byte 0, 0, 0, 0, 0 - .byte 0, -1, 1, 0, 0 - .byte 0, 0, 1, -1, 0 - .byte -1, 1, 0, 0, 0 - .byte 0, 1, 0, 0, -1 - .byte 0, 1, -1, 0, 0 - .byte 0, 0, 0, 0, 0 - .byte 0, 1, 0, -1, 0 - .byte -1, 0, 0, 1, 0 - .byte 0, 0, 0, 1, -1 - .byte 0, 0, -1, 1, 0 - .byte 0, -1, 0, 1, 0 - .byte 0, 0, 0, 0, 0 - - .global sNatureStatMods -sNatureStatMods: ; 0x020F7F93 - .byte 0, 0, 0, 0, 0 - .byte 1, -1, 0, 0, 0 - .byte 1, 0, -1, 0, 0 - .byte 1, 0, 0, -1, 0 - .byte 1, 0, 0, 0, -1 - .byte -1, 1, 0, 0, 0 - .byte 0, 0, 0, 0, 0 - .byte 0, 1, -1, 0, 0 - .byte 0, 1, 0, -1, 0 - .byte 0, 1, 0, 0, -1 - .byte -1, 0, 1, 0, 0 - .byte 0, -1, 1, 0, 0 - .byte 0, 0, 0, 0, 0 - .byte 0, 0, 1, -1, 0 - .byte 0, 0, 1, 0, -1 - .byte -1, 0, 0, 1, 0 - .byte 0, -1, 0, 1, 0 - .byte 0, 0, -1, 1, 0 - .byte 0, 0, 0, 0, 0 - .byte 0, 0, 0, 1, -1 - .byte -1, 0, 0, 0, 1 - .byte 0, -1, 0, 0, 1 - .byte 0, 0, -1, 0, 1 - .byte 0, 0, 0, -1, 1 - .byte 0, 0, 0, 0, 0 + .extern sItemOdds + .extern sFriendshipModTable + .extern sLegendaryMonsList + .extern UNK_020F7F16 + .extern sNatureStatMods .section .data diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c index 7905046d..591bf401 100644 --- a/arm9/src/pokemon.c +++ b/arm9/src/pokemon.c @@ -31,6 +31,102 @@ int ApplyNatureModToStat(u8 nature, u16 statval, u32 statno); < 8u) #define CALC_UNOWN_LETTER(pid) ((u32)((((pid) & 0x3000000) >> 18) | (((pid) & 0x30000) >> 12) | (((pid) & 0x300) >> 6) | (((pid) & 0x3) >> 0)) % 28u) +const u16 sItemOdds[2][2] = { + { 45, 95 }, + { 20, 80 }, +}; + +const s8 sFriendshipModTable[][3] = { + { 5, 3, 2 }, + { 5, 3, 2 }, + { 1, 1, 0 }, + { 3, 2, 1 }, + { 1, 1, 0 }, + { 1, 1, 1 }, + { -1, -1, -1 }, + { -5, -5, -10 }, + { -5, -5, -10 }, + { 3, 2, 1 }, +}; + +const u16 sLegendaryMonsList[] = { + SPECIES_MEWTWO, + SPECIES_MEW, + SPECIES_HO_OH, + SPECIES_LUGIA, + SPECIES_CELEBI, + SPECIES_KYOGRE, + SPECIES_GROUDON, + SPECIES_RAYQUAZA, + SPECIES_JIRACHI, + SPECIES_DEOXYS, + SPECIES_DIALGA, + SPECIES_PALKIA, + SPECIES_GIRATINA, + SPECIES_PHIONE, + SPECIES_MANAPHY, + SPECIES_DARKRAI, + SPECIES_SHAYMIN, + SPECIES_ARCEUS, +}; + +const s8 UNK_020F7F16[][5] = { + // Atk, Def, Spd, SpA, SpD + { 0, 0, 0, 0, 0}, + { 1, 0, 0, 0, -1}, + { 1, 0, -1, 0, 0}, + { 1, -1, 0, 0, 0}, + { 1, 0, 0, -1, 0}, + { -1, 0, 0, 0, 1}, + { 0, 0, 0, 0, 0}, + { 0, 0, -1, 0, 1}, + { 0, -1, 0, 0, 1}, + { 0, 0, 0, -1, 1}, + { -1, 0, 1, 0, 0}, + { 0, 0, 1, 0, -1}, + { 0, 0, 0, 0, 0}, + { 0, -1, 1, 0, 0}, + { 0, 0, 1, -1, 0}, + { -1, 1, 0, 0, 0}, + { 0, 1, 0, 0, -1}, + { 0, 1, -1, 0, 0}, + { 0, 0, 0, 0, 0}, + { 0, 1, 0, -1, 0}, + { -1, 0, 0, 1, 0}, + { 0, 0, 0, 1, -1}, + { 0, 0, -1, 1, 0}, + { 0, -1, 0, 1, 0}, + { 0, 0, 0, 0, 0}, +}; + +const u8 sNatureStatMods[][5] = { + { 0, 0, 0, 0, 0 }, + { 1, -1, 0, 0, 0 }, + { 1, 0, -1, 0, 0 }, + { 1, 0, 0, -1, 0 }, + { 1, 0, 0, 0, -1 }, + { -1, 1, 0, 0, 0 }, + { 0, 0, 0, 0, 0 }, + { 0, 1, -1, 0, 0 }, + { 0, 1, 0, -1, 0 }, + { 0, 1, 0, 0, -1 }, + { -1, 0, 1, 0, 0 }, + { 0, -1, 1, 0, 0 }, + { 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0 }, + { 0, 0, 1, 0, -1 }, + { -1, 0, 0, 1, 0 }, + { 0, -1, 0, 1, 0 }, + { 0, 0, -1, 1, 0 }, + { 0, 0, 0, 0, 0 }, + { 0, 0, 0, 1, -1 }, + { -1, 0, 0, 0, 1 }, + { 0, -1, 0, 0, 1 }, + { 0, 0, -1, 0, 1 }, + { 0, 0, 0, -1, 1 }, + { 0, 0, 0, 0, 0 }, +}; + void ZeroMonData(struct Pokemon * pokemon) { MIi_CpuClearFast(0, pokemon, sizeof(struct Pokemon)); |