summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2017-05-07 12:56:19 -0700
committerYamaArashi <shadow962@live.com>2017-05-07 12:56:19 -0700
commit5ac20d9896d1e3d3323311d7181e8c425ae6942a (patch)
treea9a5028e1ce9cf7591d5b3c0d6e6b60b69c68a80 /src
parent68ce0d8bb0369c2e3178241e97bdd5051eac53c9 (diff)
decompile level-up and TM function
Diffstat (limited to 'src')
-rw-r--r--src/pokemon_3.c36
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;
+ }
+}