Transfer pokemon .rodata to C

This commit is contained in:
PikalaxALT
2020-06-12 16:23:27 -04:00
parent 09514ee0e6
commit 6e12ebdda8
2 changed files with 101 additions and 97 deletions

View File

@@ -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

View File

@@ -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));