More aggressive sanitization. Loads of integer definition fixes
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -1 +0,0 @@
|
||||
#include "BattleLibrary.hpp"
|
||||
@@ -12,9 +12,10 @@
|
||||
namespace PkmnLib::Battling {
|
||||
class BattleLibrary final : public CreatureLib::Battling::BattleLibrary {
|
||||
public:
|
||||
BattleLibrary(Library::PokemonLibrary* staticLib, StatCalculator* statCalculator, DamageLibrary* damageLibrary,
|
||||
PkmnLib::Battling::ExperienceLibrary* experienceLibrary, ScriptResolver* scriptResolver,
|
||||
PkmnLib::Battling::MiscLibrary* miscLibrary)
|
||||
BattleLibrary(Library::PokemonLibrary* non_null staticLib, StatCalculator* non_null statCalculator,
|
||||
DamageLibrary* non_null damageLibrary,
|
||||
PkmnLib::Battling::ExperienceLibrary* non_null experienceLibrary,
|
||||
ScriptResolver* non_null scriptResolver, PkmnLib::Battling::MiscLibrary* non_null miscLibrary)
|
||||
: CreatureLib::Battling::BattleLibrary(staticLib, statCalculator, damageLibrary, experienceLibrary,
|
||||
scriptResolver, miscLibrary) {}
|
||||
|
||||
@@ -43,7 +44,7 @@ namespace PkmnLib::Battling {
|
||||
return GetStaticLib()->GetNatureLibrary();
|
||||
}
|
||||
|
||||
static PkmnLib::Battling::ScriptResolver* CreateScriptResolver();
|
||||
static PkmnLib::Battling::ScriptResolver* non_null CreateScriptResolver();
|
||||
};
|
||||
}
|
||||
#endif // PKMNLIB_BATTLELIBRARY_HPP
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
#include "../PkmnScriptHook.hpp"
|
||||
|
||||
namespace PkmnLib::Battling {
|
||||
CaptureLibrary::CaptureResult CaptureLibrary::TryCatch(Pokemon* pokemon, Library::Item* catchItem,
|
||||
ArbUt::Random* random) const {
|
||||
CaptureLibrary::CaptureResult CaptureLibrary::TryCatch(Pokemon* non_null pokemon, Library::Item* non_null catchItem,
|
||||
ArbUt::Random* non_null random) const {
|
||||
auto hpMax = pokemon->GetMaxHealth();
|
||||
auto hpCurrent = pokemon->GetCurrentHealth();
|
||||
auto rate = pokemon->GetSpecies()->GetCaptureRate();
|
||||
|
||||
@@ -12,9 +12,9 @@ namespace PkmnLib::Battling {
|
||||
bool WasCritical;
|
||||
};
|
||||
|
||||
CaptureResult TryCatch(Pokemon* pokemon, Library::Item* catchItem, ArbUt::Random* random) const;
|
||||
CaptureResult TryCatch(Pokemon* non_null pokemon, Library::Item* non_null catchItem,
|
||||
ArbUt::Random* non_null random) const;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
#endif // PKMNLIB_CAPTURELIBRARY_HPP
|
||||
|
||||
@@ -9,18 +9,18 @@ namespace PkmnLib::Battling {
|
||||
public:
|
||||
explicit DamageLibrary(bool hasRandomness = true) : _hasRandomness(hasRandomness) {}
|
||||
|
||||
uint32_t GetDamage(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target,
|
||||
uint8_t hitIndex,
|
||||
uint32_t GetDamage(CreatureLib::Battling::ExecutingAttack* non_null attack,
|
||||
CreatureLib::Battling::Creature* non_null target, uint8_t hitIndex,
|
||||
const CreatureLib::Battling::ExecutingAttack::HitData& hitData) const override;
|
||||
|
||||
uint8_t GetBasePower(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target,
|
||||
uint8_t hitIndex,
|
||||
uint8_t GetBasePower(CreatureLib::Battling::ExecutingAttack* non_null attack,
|
||||
CreatureLib::Battling::Creature* non_null target, uint8_t hitIndex,
|
||||
const CreatureLib::Battling::ExecutingAttack::HitData& hitData) const override;
|
||||
float GetStatModifier(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target,
|
||||
uint8_t hitIndex,
|
||||
float GetStatModifier(CreatureLib::Battling::ExecutingAttack* non_null attack,
|
||||
CreatureLib::Battling::Creature* non_null target, uint8_t hitIndex,
|
||||
const CreatureLib::Battling::ExecutingAttack::HitData& hitData) const override;
|
||||
float GetDamageModifier(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target,
|
||||
uint8_t hitIndex,
|
||||
float GetDamageModifier(CreatureLib::Battling::ExecutingAttack* non_null attack,
|
||||
CreatureLib::Battling::Creature* non_null target, uint8_t hitIndex,
|
||||
const CreatureLib::Battling::ExecutingAttack::HitData& hitData) const override;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace PkmnLib::Battling {
|
||||
class ExperienceLibrary final : public CreatureLib::Battling::ExperienceLibrary {
|
||||
public:
|
||||
void HandleExperienceGain(
|
||||
CreatureLib::Battling::Creature* faintedMon,
|
||||
CreatureLib::Battling::Creature* non_null faintedMon,
|
||||
const std::unordered_set<ArbUt::BorrowedPtr<CreatureLib::Battling::Creature>>& opponents) const override;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
#include "../Pokemon/LearnedMove.hpp"
|
||||
#include "../Pokemon/Pokemon.hpp"
|
||||
|
||||
bool PkmnLib::Battling::MiscLibrary::IsCritical(CreatureLib::Battling::ExecutingAttack* attack,
|
||||
CreatureLib::Battling::Creature* target, uint8_t hit) const {
|
||||
bool PkmnLib::Battling::MiscLibrary::IsCritical(CreatureLib::Battling::ExecutingAttack* non_null attack,
|
||||
CreatureLib::Battling::Creature* non_null target, uint8_t hit) const {
|
||||
bool preventCrit = false;
|
||||
PKMN_HOOK(PreventIncomingCritical, target, attack, target, hit, &preventCrit);
|
||||
if (preventCrit) {
|
||||
@@ -26,13 +26,12 @@ bool PkmnLib::Battling::MiscLibrary::IsCritical(CreatureLib::Battling::Executing
|
||||
}
|
||||
}
|
||||
|
||||
bool PkmnLib::Battling::MiscLibrary::CanFlee(CreatureLib::Battling::FleeTurnChoice* switchChoice) const {
|
||||
bool PkmnLib::Battling::MiscLibrary::CanFlee(CreatureLib::Battling::FleeTurnChoice* non_null switchChoice) const {
|
||||
return CreatureLib::Battling::MiscLibrary::CanFlee(switchChoice);
|
||||
}
|
||||
|
||||
CreatureLib::Battling::BaseTurnChoice*
|
||||
PkmnLib::Battling::MiscLibrary::ReplacementAttack(CreatureLib::Battling::Creature* user,
|
||||
CreatureLib::Battling::CreatureIndex target) const {
|
||||
CreatureLib::Battling::BaseTurnChoice* non_null PkmnLib::Battling::MiscLibrary::ReplacementAttack(
|
||||
CreatureLib::Battling::Creature* non_null user, CreatureLib::Battling::CreatureIndex target) const {
|
||||
return new CreatureLib::Battling::AttackTurnChoice(user, GetReplacementAttack(), target);
|
||||
}
|
||||
|
||||
|
||||
@@ -30,12 +30,11 @@ namespace PkmnLib::Battling {
|
||||
MiscLibrary(std::function<PkmnLib::Library::TimeOfDay()> getTime) : _getTime(getTime) {}
|
||||
|
||||
~MiscLibrary() override = default;
|
||||
bool IsCritical(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target,
|
||||
uint8_t hit) const override;
|
||||
bool CanFlee(CreatureLib::Battling::FleeTurnChoice* switchChoice) const override;
|
||||
CreatureLib::Battling::BaseTurnChoice*
|
||||
ReplacementAttack(CreatureLib::Battling::Creature* user,
|
||||
CreatureLib::Battling::CreatureIndex target) const override;
|
||||
bool IsCritical(CreatureLib::Battling::ExecutingAttack* non_null attack,
|
||||
CreatureLib::Battling::Creature* non_null target, uint8_t hit) const override;
|
||||
bool CanFlee(CreatureLib::Battling::FleeTurnChoice* non_null switchChoice) const override;
|
||||
CreatureLib::Battling::BaseTurnChoice* non_null ReplacementAttack(
|
||||
CreatureLib::Battling::Creature* non_null user, CreatureLib::Battling::CreatureIndex target) const override;
|
||||
|
||||
bool CanEvolveFromLevelUp(const ArbUt::BorrowedPtr<const PkmnLib::Library::EvolutionData>& evolution,
|
||||
const ArbUt::BorrowedPtr<const Pokemon>& pokemon);
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
#include "StatCalculator.hpp"
|
||||
#include "../Pokemon/Pokemon.hpp"
|
||||
|
||||
uint32_t PkmnLib::Battling::StatCalculator::CalculateHealthStat(const Pokemon* pkmn) const {
|
||||
uint32_t base = pkmn->GetBaseStat(Library::Statistic::HealthPoints);
|
||||
uint32_t iv = pkmn->GetIndividualValue(Library::Statistic::HealthPoints);
|
||||
uint32_t ev = pkmn->GetEffortValue(Library::Statistic::HealthPoints);
|
||||
u32 PkmnLib::Battling::StatCalculator::CalculateHealthStat(const Pokemon* pkmn) const {
|
||||
u32 base = pkmn->GetBaseStat(Library::Statistic::HealthPoints);
|
||||
u32 iv = pkmn->GetIndividualValue(Library::Statistic::HealthPoints);
|
||||
u32 ev = pkmn->GetEffortValue(Library::Statistic::HealthPoints);
|
||||
uint8_t level = pkmn->GetLevel();
|
||||
return static_cast<uint32_t>(((2 * base + iv + static_cast<uint32_t>(ev / 4)) * level) / 100) + level + 10;
|
||||
return static_cast<u32>(((2 * base + iv + static_cast<u32>(ev / 4)) * level) / 100) + level + 10;
|
||||
}
|
||||
uint32_t PkmnLib::Battling::StatCalculator::CalculateOtherStat(const Pokemon* pkmn,
|
||||
CreatureLib::Library::Statistic stat) const {
|
||||
uint32_t base = pkmn->GetBaseStat(stat);
|
||||
uint32_t iv = pkmn->GetIndividualValue(stat);
|
||||
uint32_t ev = pkmn->GetEffortValue(stat);
|
||||
u32 PkmnLib::Battling::StatCalculator::CalculateOtherStat(const Pokemon* pkmn,
|
||||
CreatureLib::Library::Statistic stat) const {
|
||||
u32 base = pkmn->GetBaseStat(stat);
|
||||
u32 iv = pkmn->GetIndividualValue(stat);
|
||||
u32 ev = pkmn->GetEffortValue(stat);
|
||||
uint8_t level = pkmn->GetLevel();
|
||||
uint32_t unmodified = static_cast<uint32_t>(((2 * base + iv + static_cast<uint32_t>(ev / 4)) * level) / 100) + 5;
|
||||
return static_cast<uint32_t>(unmodified * pkmn->GetNature()->GetStatModifier(stat));
|
||||
u32 unmodified = static_cast<u32>(((2 * base + iv + static_cast<u32>(ev / 4)) * level) / 100) + 5;
|
||||
return static_cast<u32>(unmodified * pkmn->GetNature()->GetStatModifier(stat));
|
||||
}
|
||||
float PkmnLib::Battling::StatCalculator::GetStatBoostModifier(const CreatureLib::Battling::Creature* pkmn,
|
||||
CreatureLib::Library::Statistic stat) const {
|
||||
@@ -37,33 +37,32 @@ float PkmnLib::Battling::StatCalculator::GetStatBoostModifier(const CreatureLib:
|
||||
default: throw ArbUt::Exception("Stat boost was out of expected range of -6 till 6.");
|
||||
}
|
||||
}
|
||||
CreatureLib::Library::StatisticSet<uint32_t>
|
||||
CreatureLib::Library::StatisticSet<u32>
|
||||
PkmnLib::Battling::StatCalculator::CalculateFlatStats(CreatureLib::Battling::Creature* creature) const {
|
||||
auto pkmn = dynamic_cast<Pokemon*>(creature);
|
||||
return CreatureLib::Library::StatisticSet<uint32_t>(CalculateHealthStat(pkmn),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::PhysicalAttack),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::PhysicalDefense),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::SpecialAttack),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::SpecialDefense),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::Speed));
|
||||
return CreatureLib::Library::StatisticSet<u32>(CalculateHealthStat(pkmn),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::PhysicalAttack),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::PhysicalDefense),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::SpecialAttack),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::SpecialDefense),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::Speed));
|
||||
}
|
||||
CreatureLib::Library::StatisticSet<uint32_t>
|
||||
CreatureLib::Library::StatisticSet<u32>
|
||||
PkmnLib::Battling::StatCalculator::CalculateBoostedStats(CreatureLib::Battling::Creature* creature) const {
|
||||
return CreatureLib::Library::StatisticSet<uint32_t>(
|
||||
CalculateBoostedStat(creature, Library::Statistic::HealthPoints),
|
||||
CalculateBoostedStat(creature, Library::Statistic::PhysicalAttack),
|
||||
CalculateBoostedStat(creature, Library::Statistic::PhysicalDefense),
|
||||
CalculateBoostedStat(creature, Library::Statistic::SpecialAttack),
|
||||
CalculateBoostedStat(creature, Library::Statistic::SpecialDefense),
|
||||
CalculateBoostedStat(creature, Library::Statistic::Speed));
|
||||
return CreatureLib::Library::StatisticSet<u32>(CalculateBoostedStat(creature, Library::Statistic::HealthPoints),
|
||||
CalculateBoostedStat(creature, Library::Statistic::PhysicalAttack),
|
||||
CalculateBoostedStat(creature, Library::Statistic::PhysicalDefense),
|
||||
CalculateBoostedStat(creature, Library::Statistic::SpecialAttack),
|
||||
CalculateBoostedStat(creature, Library::Statistic::SpecialDefense),
|
||||
CalculateBoostedStat(creature, Library::Statistic::Speed));
|
||||
}
|
||||
uint32_t PkmnLib::Battling::StatCalculator::CalculateFlatStat(CreatureLib::Battling::Creature* creature,
|
||||
CreatureLib::Library::Statistic stat) const {
|
||||
u32 PkmnLib::Battling::StatCalculator::CalculateFlatStat(CreatureLib::Battling::Creature* creature,
|
||||
CreatureLib::Library::Statistic stat) const {
|
||||
if (stat == Library::Statistic::HealthPoints)
|
||||
return CalculateHealthStat(dynamic_cast<Pokemon*>(creature));
|
||||
return CalculateOtherStat(dynamic_cast<Pokemon*>(creature), stat);
|
||||
}
|
||||
uint32_t PkmnLib::Battling::StatCalculator::CalculateBoostedStat(CreatureLib::Battling::Creature* creature,
|
||||
CreatureLib::Library::Statistic stat) const {
|
||||
u32 PkmnLib::Battling::StatCalculator::CalculateBoostedStat(CreatureLib::Battling::Creature* creature,
|
||||
CreatureLib::Library::Statistic stat) const {
|
||||
return creature->GetFlatStat(stat) * GetStatBoostModifier(creature, stat);
|
||||
}
|
||||
|
||||
@@ -9,24 +9,24 @@ namespace PkmnLib::Battling {
|
||||
|
||||
class StatCalculator final : public CreatureLib::Battling::BattleStatCalculator {
|
||||
protected:
|
||||
virtual uint32_t CalculateHealthStat(const Pokemon* pkmn) const;
|
||||
virtual uint32_t CalculateOtherStat(const Pokemon* pkmn, CreatureLib::Library::Statistic stat) const;
|
||||
virtual float GetStatBoostModifier(const CreatureLib::Battling::Creature* pkmn,
|
||||
virtual u32 CalculateHealthStat(const Pokemon* non_null pkmn) const;
|
||||
virtual u32 CalculateOtherStat(const Pokemon* non_null pkmn, CreatureLib::Library::Statistic stat) const;
|
||||
virtual float GetStatBoostModifier(const CreatureLib::Battling::Creature* non_null pkmn,
|
||||
CreatureLib::Library::Statistic stat) const;
|
||||
|
||||
public:
|
||||
~StatCalculator() override = default;
|
||||
CreatureLib::Library::StatisticSet<uint32_t>
|
||||
CalculateFlatStats(CreatureLib::Battling::Creature* creature) const override;
|
||||
CreatureLib::Library::StatisticSet<u32>
|
||||
CalculateFlatStats(CreatureLib::Battling::Creature* non_null creature) const override;
|
||||
|
||||
CreatureLib::Library::StatisticSet<uint32_t>
|
||||
CalculateBoostedStats(CreatureLib::Battling::Creature* creature) const override;
|
||||
CreatureLib::Library::StatisticSet<u32>
|
||||
CalculateBoostedStats(CreatureLib::Battling::Creature* non_null creature) const override;
|
||||
|
||||
uint32_t CalculateFlatStat(CreatureLib::Battling::Creature* creature,
|
||||
CreatureLib::Library::Statistic stat) const override;
|
||||
u32 CalculateFlatStat(CreatureLib::Battling::Creature* non_null creature,
|
||||
CreatureLib::Library::Statistic stat) const override;
|
||||
|
||||
uint32_t CalculateBoostedStat(CreatureLib::Battling::Creature* creature,
|
||||
CreatureLib::Library::Statistic stat) const override;
|
||||
u32 CalculateBoostedStat(CreatureLib::Battling::Creature* non_null creature,
|
||||
CreatureLib::Library::Statistic stat) const override;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user