Fixup ModifyStatByNature

This commit is contained in:
PokeCodec 2020-09-05 11:47:24 -04:00
parent 16ecbc6446
commit a7a64ecba0
2 changed files with 19 additions and 22 deletions

View File

@ -181,40 +181,36 @@ u32 GetMewMoveDirection(void)
{
if (ShouldMewMoveEast(mew, 1))
return GetRandomMewDirectionCandidate(2);
else if (ShouldMewMoveWest(mew, 1))
if (ShouldMewMoveWest(mew, 1))
return GetRandomMewDirectionCandidate(2);
else
return DIR_NORTH;
return DIR_NORTH;
}
if (ShouldMewMoveSouth(mew, 0))
{
if (ShouldMewMoveEast(mew, 1))
return GetRandomMewDirectionCandidate(2);
else if (ShouldMewMoveWest(mew, 1))
if (ShouldMewMoveWest(mew, 1))
return GetRandomMewDirectionCandidate(2);
else
return DIR_SOUTH;
return DIR_SOUTH;
}
if (ShouldMewMoveEast(mew, 0))
{
if (ShouldMewMoveNorth(mew, 1))
return GetRandomMewDirectionCandidate(2);
else if (ShouldMewMoveSouth(mew, 1))
if (ShouldMewMoveSouth(mew, 1))
return GetRandomMewDirectionCandidate(2);
else
return DIR_EAST;
return DIR_EAST;
}
if (ShouldMewMoveWest(mew, 0))
{
if (ShouldMewMoveNorth(mew, 1))
return GetRandomMewDirectionCandidate(2);
else if (ShouldMewMoveSouth(mew, 1))
if (ShouldMewMoveSouth(mew, 1))
return GetRandomMewDirectionCandidate(2);
else
return DIR_WEST;
return DIR_WEST;
}
// If this point is reached, Mew cannot move without getting closer to the player
@ -315,8 +311,7 @@ static u8 GetValidMewMoveDirection(u8 ignoredDir)
if (count > 1)
return sMewDirectionCandidates[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % count];
else
return sMewDirectionCandidates[0];
return sMewDirectionCandidates[0];
}
void UpdateFarawayIslandStepCounter(void)

View File

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