diff options
author | aaaaaa123456789 <aaaaaa123456789@acidch.at> | 2020-10-26 12:16:36 -0300 |
---|---|---|
committer | aaaaaa123456789 <aaaaaa123456789@acidch.at> | 2020-10-26 12:16:36 -0300 |
commit | 1c3d75f6736445324fdcba31d5dbd858997e22c4 (patch) | |
tree | e0a94bdb8c2a3323048c9dc9540fa6b5af004c83 /src/pokemon.c | |
parent | fe40c0c4663d732c8ba9ca5f5e00b3c14a17d304 (diff) | |
parent | 585f313c646cb9494bed48395572daf1502978a5 (diff) |
Merge branch 'master' into reverts
Diffstat (limited to 'src/pokemon.c')
-rw-r--r-- | src/pokemon.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/pokemon.c b/src/pokemon.c index a38ad12de..3621284d6 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -44,7 +44,6 @@ #include "constants/layouts.h" #include "constants/moves.h" #include "constants/songs.h" -#include "constants/species.h" #include "constants/trainers.h" struct SpeciesItem @@ -2837,9 +2836,9 @@ void CalculateMonStats(struct Pokemon *mon) newMaxHP = (((n + hpEV / 4) * level) / 100) + level + 10; } - gBattleScripting.field_23 = newMaxHP - oldMaxHP; - if (gBattleScripting.field_23 == 0) - gBattleScripting.field_23 = 1; + gBattleScripting.levelUpHP = newMaxHP - oldMaxHP; + if (gBattleScripting.levelUpHP == 0) + gBattleScripting.levelUpHP = 1; SetMonData(mon, MON_DATA_MAX_HP, &newMaxHP); @@ -2861,6 +2860,8 @@ void CalculateMonStats(struct Pokemon *mon) if (currentHP == 0 && oldMaxHP == 0) currentHP = newMaxHP; else if (currentHP != 0) + // BUG: currentHP is unintentionally able to become <= 0 after the instruction below. This causes the pomeg berry glitch. + // To fix that set currentHP = 1 if currentHP <= 0. currentHP += newMaxHP - oldMaxHP; else return; @@ -4911,19 +4912,21 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov break; } } + + // Get amount of HP to restore dataUnsigned = itemEffect[var_3C++]; switch (dataUnsigned) { - case 0xFF: + case ITEM6_HEAL_FULL: dataUnsigned = GetMonData(mon, MON_DATA_MAX_HP, NULL) - GetMonData(mon, MON_DATA_HP, NULL); break; - case 0xFE: + case ITEM6_HEAL_HALF: dataUnsigned = GetMonData(mon, MON_DATA_MAX_HP, NULL) / 2; if (dataUnsigned == 0) dataUnsigned = 1; break; - case 0xFD: - dataUnsigned = gBattleScripting.field_23; + case ITEM6_HEAL_LVL_UP: + dataUnsigned = gBattleScripting.levelUpHP; break; } if (GetMonData(mon, MON_DATA_MAX_HP, NULL) != GetMonData(mon, MON_DATA_HP, NULL)) |