diff options
author | PokeCodec <67983839+PokeCodec@users.noreply.github.com> | 2020-09-05 11:47:24 -0400 |
---|---|---|
committer | PokeCodec <67983839+PokeCodec@users.noreply.github.com> | 2020-09-05 11:47:24 -0400 |
commit | a7a64ecba052566b1ae5b530cc6f28ccab191af1 (patch) | |
tree | bb5000becf00cc8b1bdd210a95b285e5596b05cb /src/pokemon.c | |
parent | 16ecbc6446f4e8d308e71aa5e649c69acb8a6b3e (diff) |
Fixup ModifyStatByNature
Diffstat (limited to 'src/pokemon.c')
-rw-r--r-- | src/pokemon.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/pokemon.c b/src/pokemon.c index 188624d6a..782c22d28 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5746,25 +5746,27 @@ u8 GetTrainerEncounterMusicId(u16 trainerOpponentId) u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex) { + u16 retVal; // Dont modify HP, Accuracy, or Evasion by nature if (statIndex <= STAT_HP || statIndex > NUM_NATURE_STATS) { - // Should just be "return n", but it wouldn't match without this. - u16 retVal = n; - retVal++; - retVal--; - return retVal; + return n; } switch (gNatureStatTable[nature][statIndex - 1]) { case 1: - return (u16)(n * 110) / 100; // NOTE: will overflow for n > 595 because the intermediate value is cast to u16 before the division. Fix by removing (u16) cast + retVal = (u16)(n * 110) / 100; // NOTE: will overflow for n > 595 because the intermediate value is cast to u16 before the division. Fix by removing (u16) cast + break; case -1: - return (u16)(n * 90) / 100; // NOTE: will overflow for n > 728, see above + retVal = (u16)(n * 90) / 100; // NOTE: will overflow for n > 728, see above + break; + default: + retVal = n; + break; } - return n; + return retVal; } #define IS_LEAGUE_BATTLE \ |