diff options
author | YamaArashi <shadow962@live.com> | 2017-05-07 12:56:19 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2017-05-07 12:56:19 -0700 |
commit | 5ac20d9896d1e3d3323311d7181e8c425ae6942a (patch) | |
tree | a9a5028e1ce9cf7591d5b3c0d6e6b60b69c68a80 /src | |
parent | 68ce0d8bb0369c2e3178241e97bdd5051eac53c9 (diff) |
decompile level-up and TM function
Diffstat (limited to 'src')
-rw-r--r-- | src/pokemon_3.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 9f13e0e1c..857eb5935 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -82,6 +82,8 @@ extern u16 gTrainerBattleOpponent; extern u16 gBattleTypeFlags; extern struct BaseStats gBaseStats[]; extern u32 gBitTable[]; +extern u32 gExperienceTables[8][101]; +extern u32 gTMHMLearnsets[][2]; extern u8 gUnknown_082082F8[]; extern u8 gUnknown_083FFDB3[]; @@ -977,3 +979,37 @@ void PartySpreadPokerus(struct Pokemon *party) } } } + +bool8 TryIncrementMonLevel(struct Pokemon *mon) +{ + u16 species = GetMonData(mon, MON_DATA_SPECIES, 0); + u8 nextLevel = GetMonData(mon, MON_DATA_LEVEL, 0) + 1; + if (GetMonData(mon, MON_DATA_EXP, 0) > gExperienceTables[gBaseStats[species].growthRate][nextLevel]) + { + SetMonData(mon, MON_DATA_LEVEL, &nextLevel); + return TRUE; + } + else + { + return FALSE; + } +} + +u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm) +{ + u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0); + if (species == SPECIES_EGG) + { + return 0; + } + else if (tm < 32) + { + u32 mask = 1 << tm; + return gTMHMLearnsets[species][0] & mask; + } + else + { + u32 mask = 1 << (tm - 32); + return gTMHMLearnsets[species][1] & mask; + } +} |