diff --git a/.clang-format b/.clang-format index 7d012b8..658d238 100644 --- a/.clang-format +++ b/.clang-format @@ -116,8 +116,8 @@ Standard: Cpp11 StatementMacros: - Q_UNUSED - QT_REQUIRE_VERSION - - Assert - - AssertNotNull + - Ensure + - EnsureNotNull - Try TabWidth: 8 UseTab: Never diff --git a/src/Battling/Flow/ChoiceQueue.cpp b/src/Battling/Flow/ChoiceQueue.cpp index cb9f4ee..a68e97f 100644 --- a/src/Battling/Flow/ChoiceQueue.cpp +++ b/src/Battling/Flow/ChoiceQueue.cpp @@ -1,7 +1,7 @@ #include "ChoiceQueue.hpp" bool CreatureLib::Battling::ChoiceQueue::MoveCreatureChoiceNext(CreatureLib::Battling::Creature* creature) { - AssertNotNull(creature) + EnsureNotNull(creature) // Find which index the creature choice is at. size_t choiceIndex = SIZE_MAX; for (size_t index = _current; index < _queue.size(); index++) { diff --git a/src/Battling/Flow/TurnHandler.cpp b/src/Battling/Flow/TurnHandler.cpp index efa4959..4287733 100644 --- a/src/Battling/Flow/TurnHandler.cpp +++ b/src/Battling/Flow/TurnHandler.cpp @@ -7,16 +7,14 @@ using namespace CreatureLib::Battling; void TurnHandler::RunTurn(ArbUt::BorrowedPtr queue) { - AssertNotNull(queue) for (auto choice : queue->GetInnerQueue()) { HOOK(OnBeforeTurn, choice, choice.get()); } while (queue->HasNext()) { auto item = queue->Dequeue(); - AssertNotNull(item) - AssertNotNull(item->GetUser()) - Assert(item->GetUser()->GetBattle().HasValue()) - Assert(item->GetUser()->GetBattleSide().HasValue()) + EnsureNotNull(item) + Ensure(item->GetUser()->GetBattle().HasValue()) + Ensure(item->GetUser()->GetBattleSide().HasValue()) auto index = (uint32_t)item->GetUser()->GetBattleSide().GetValue()->GetCreatureIndex(item->GetUser()); try_creature(ExecuteChoice(item.get()), @@ -30,13 +28,11 @@ void TurnHandler::RunTurn(ArbUt::BorrowedPtr queue) { } void TurnHandler::ExecuteChoice(ArbUt::BorrowedPtr choice) { - AssertNotNull(choice) auto choiceKind = choice->GetKind(); if (choiceKind == TurnChoiceKind::Pass) { return; } auto user = choice->GetUser(); - AssertNotNull(user) if (!user->GetBattle().HasValue()) return; auto battle = user->GetBattle().GetValue(); @@ -68,7 +64,6 @@ void TurnHandler::ExecuteChoice(ArbUt::BorrowedPtr choice) { } void TurnHandler::ExecuteAttackChoice(const ArbUt::BorrowedPtr& choice) { - AssertNotNull(choice) auto battle = choice->GetUser()->GetBattle(); auto attackName = choice->GetAttack()->GetAttack()->GetName(); HOOK(ChangeAttack, choice, choice.GetRaw(), &attackName); @@ -78,7 +73,7 @@ void TurnHandler::ExecuteAttackChoice(const ArbUt::BorrowedPtr auto targetType = choice->GetAttack()->GetAttack()->GetTarget(); ArbUt::List> targets; - Assert(battle.HasValue()); + Ensure(battle.HasValue()); try_creature(targets = TargetResolver::ResolveTargets(choice->GetTarget(), targetType, battle.GetValue()); , "Exception during target determination"); @@ -124,12 +119,10 @@ void TurnHandler::ExecuteAttackChoice(const ArbUt::BorrowedPtr } void TurnHandler::HandleAttackForTarget(ExecutingAttack* attack, const ArbUt::BorrowedPtr& target) { - AssertNotNull(attack) + EnsureNotNull(attack) auto& user = attack->GetUser(); - AssertNotNull(user) - AssertNotNull(target) auto& battle = user->GetBattle(); - Assert(battle.HasValue()) + Ensure(battle.HasValue()) if (battle.GetValue()->HasEnded()) return; @@ -155,18 +148,15 @@ void TurnHandler::HandleAttackForTarget(ExecutingAttack* attack, const ArbUt::Bo } auto& learnedAttack = attack->GetAttack(); - AssertNotNull(learnedAttack); auto& attackData = learnedAttack->GetAttack(); - AssertNotNull(attackData); auto& library = battle.GetValue()->GetLibrary(); - AssertNotNull(library) auto& dmgLibrary = library->GetDamageLibrary(); auto& typeLibrary = library->GetTypeLibrary(); auto& miscLibrary = library->GetMiscLibrary(); - AssertNotNull(dmgLibrary) - AssertNotNull(typeLibrary) - AssertNotNull(miscLibrary) + EnsureNotNull(dmgLibrary) + EnsureNotNull(typeLibrary) + EnsureNotNull(miscLibrary) auto hitIterator = attack->GetTargetIteratorBegin(target); for (uint8_t hitIndex = 0; hitIndex < numberOfHits; hitIndex++) { @@ -229,7 +219,7 @@ void TurnHandler::HandleAttackForTarget(ExecutingAttack* attack, const ArbUt::Bo hasSecondaryEffect = true; } else { auto random = battle.GetValue()->GetRandom(); - AssertNotNull(random); + EnsureNotNull(random); hasSecondaryEffect = random->EffectChance(effect->GetChance(), attack, target.GetRaw()); } if (hasSecondaryEffect) { diff --git a/src/Battling/Flow/TurnOrdering.cpp b/src/Battling/Flow/TurnOrdering.cpp index 637f396..5766c8c 100644 --- a/src/Battling/Flow/TurnOrdering.cpp +++ b/src/Battling/Flow/TurnOrdering.cpp @@ -15,8 +15,8 @@ public: if (aKind == TurnChoiceKind::Attack) { auto aAttack = std::dynamic_pointer_cast(a); auto bAttack = std::dynamic_pointer_cast(b); - AssertNotNull(aAttack); - AssertNotNull(bAttack); + EnsureNotNull(aAttack); + EnsureNotNull(bAttack); auto aPriority = aAttack->GetPriority(); auto bPriority = bAttack->GetPriority(); if (aPriority != bPriority) @@ -24,8 +24,6 @@ public: } auto aUser = a->GetUser(); auto bUser = b->GetUser(); - AssertNotNull(aUser); - AssertNotNull(bUser); auto aSpeed = aUser->GetBoostedStat(Library::Statistic::Speed); auto bSpeed = bUser->GetBoostedStat(Library::Statistic::Speed); if (aSpeed != bSpeed) @@ -37,10 +35,10 @@ public: void TurnOrdering::OrderChoices(std::vector>& vec) { for (const auto& item : vec) { - AssertNotNull(item); + EnsureNotNull(item); if (item->GetKind() == TurnChoiceKind::Attack) { auto attackChoice = std::dynamic_pointer_cast(item); - AssertNotNull(attackChoice); + EnsureNotNull(attackChoice); auto priority = attackChoice->GetPriority(); HOOK(ChangePriority, attackChoice, attackChoice.get(), &priority); attackChoice->SetPriority(priority); diff --git a/src/Battling/Library/BattleLibrary.cpp b/src/Battling/Library/BattleLibrary.cpp index 212a708..34941fe 100644 --- a/src/Battling/Library/BattleLibrary.cpp +++ b/src/Battling/Library/BattleLibrary.cpp @@ -7,12 +7,12 @@ BattleLibrary::BattleLibrary(const CreatureLib::Library::DataLibrary* staticLib, ScriptResolver* scriptResolver, MiscLibrary* miscLibrary) : _staticLib(staticLib), _statCalculator(statCalculator), _damageLibrary(damageLibrary), _experienceLibrary(experienceLibrary), _scriptResolver(scriptResolver), _miscLibrary(miscLibrary) { - AssertNotNull(_staticLib); - AssertNotNull(_statCalculator); - AssertNotNull(_damageLibrary); - AssertNotNull(_experienceLibrary); - AssertNotNull(_scriptResolver); - AssertNotNull(_miscLibrary); + EnsureNotNull(_staticLib); + EnsureNotNull(_statCalculator); + EnsureNotNull(_damageLibrary); + EnsureNotNull(_experienceLibrary); + EnsureNotNull(_scriptResolver); + EnsureNotNull(_miscLibrary); } const std::unique_ptr& BattleLibrary::GetSettings() const noexcept { diff --git a/src/Battling/Library/BattleStatCalculator.cpp b/src/Battling/Library/BattleStatCalculator.cpp index 647e375..5cc19ad 100644 --- a/src/Battling/Library/BattleStatCalculator.cpp +++ b/src/Battling/Library/BattleStatCalculator.cpp @@ -23,14 +23,14 @@ Battling::BattleStatCalculator::CalculateBoostedStats(Battling::Creature* creatu } uint32_t CalculateHealthStat(Battling::Creature* creature) { - AssertNotNull(creature) + EnsureNotNull(creature) auto level = creature->GetLevel(); float a = (creature->GetBaseStat(Library::Statistic::Health)) * 2.0 * level; return static_cast(floor(a / 100.0) + level + 10); } uint32_t CalculateOtherStat(Battling::Creature* creature, Library::Statistic stat) { - AssertNotNull(creature) + EnsureNotNull(creature) auto level = creature->GetLevel(); float a = (creature->GetBaseStat(stat)) * 2.0 * level; return static_cast(floor(a / 100.0) + 5); diff --git a/src/Battling/Library/DamageLibrary.cpp b/src/Battling/Library/DamageLibrary.cpp index cd2e2f4..20c660d 100644 --- a/src/Battling/Library/DamageLibrary.cpp +++ b/src/Battling/Library/DamageLibrary.cpp @@ -4,8 +4,8 @@ using namespace CreatureLib::Battling; uint32_t DamageLibrary::GetDamage(ExecutingAttack* attack, Creature* target, uint8_t hitIndex, const ExecutingAttack::HitData& hitData) const { - AssertNotNull(attack) - AssertNotNull(target) + EnsureNotNull(attack) + EnsureNotNull(target) auto levelMod = static_cast(2 * attack->GetUser()->GetLevel()) / 5 + 2; auto bp = hitData.GetBasePower(); auto statMod = GetStatModifier(attack, target, hitIndex, hitData); @@ -18,8 +18,8 @@ uint32_t DamageLibrary::GetDamage(ExecutingAttack* attack, Creature* target, uin uint8_t DamageLibrary::GetBasePower(ExecutingAttack* attack, Creature* target, uint8_t hitIndex, [[maybe_unused]] const ExecutingAttack::HitData& hitData) const { - AssertNotNull(attack) - AssertNotNull(target) + EnsureNotNull(attack) + EnsureNotNull(target) auto bp = attack->GetAttack()->GetAttack()->GetBasePower(); HOOK(OverrideBasePower, attack, attack, target, hitIndex, &bp); return bp; @@ -27,10 +27,10 @@ uint8_t DamageLibrary::GetBasePower(ExecutingAttack* attack, Creature* target, u float DamageLibrary::GetStatModifier(ExecutingAttack* attack, Creature* target, uint8_t hitIndex, const ExecutingAttack::HitData& hitData) const { - AssertNotNull(attack) - AssertNotNull(target) + EnsureNotNull(attack) + EnsureNotNull(target) auto user = attack->GetUser().GetRaw(); - AssertNotNull(user) + EnsureNotNull(user) HOOK(ChangeDamageStatsUser, attack, attack, target, hitIndex, &user); Library::Statistic offensiveStat; Library::Statistic defensiveStat; @@ -66,8 +66,8 @@ float DamageLibrary::GetStatModifier(ExecutingAttack* attack, Creature* target, float DamageLibrary::GetDamageModifier(ExecutingAttack* attack, Creature* target, uint8_t hitIndex, const ExecutingAttack::HitData& hitData) const { - AssertNotNull(attack) - AssertNotNull(target) + EnsureNotNull(attack) + EnsureNotNull(target) float mod = 1; mod *= hitData.GetEffectiveness(); HOOK(ModifyDamageModifier, attack, attack, target, hitIndex, &mod); diff --git a/src/Battling/Library/ExperienceLibrary.cpp b/src/Battling/Library/ExperienceLibrary.cpp index 93e6356..58ab90d 100644 --- a/src/Battling/Library/ExperienceLibrary.cpp +++ b/src/Battling/Library/ExperienceLibrary.cpp @@ -5,8 +5,6 @@ void CreatureLib::Battling::ExperienceLibrary::HandleExperienceGain( CreatureLib::Battling::Creature* faintedMon, const std::unordered_set>& opponents) const { for (auto opponent : opponents) { - if (opponent == nullptr) - continue; if (opponent->IsFainted()) continue; if (!opponent->AllowedExperienceGain()) diff --git a/src/Battling/Library/MiscLibrary.cpp b/src/Battling/Library/MiscLibrary.cpp index 7a35f9c..de4e6f3 100644 --- a/src/Battling/Library/MiscLibrary.cpp +++ b/src/Battling/Library/MiscLibrary.cpp @@ -5,8 +5,8 @@ bool CreatureLib::Battling::MiscLibrary::IsCritical([[maybe_unused]] CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target, [[maybe_unused]] uint8_t hit) const { - AssertNotNull(target) - Assert(target->GetBattle().HasValue()) + EnsureNotNull(target) + Ensure(target->GetBattle().HasValue()) auto rand = target->GetBattle().GetValue()->GetRandom(); return rand->Get(10) <= 0; } @@ -35,8 +35,8 @@ static CreatureLib::Battling::LearnedAttack* GetReplacementAttack() { bool CreatureLib::Battling::MiscLibrary::CanFlee([[maybe_unused]] FleeTurnChoice* switchChoice) const { return true; } CreatureLib::Battling::BaseTurnChoice* CreatureLib::Battling::MiscLibrary::ReplacementAttack(Creature* user, [[maybe_unused]] CreatureIndex target) const { - AssertNotNull(user) - Assert(user->GetBattleSide().HasValue()) + EnsureNotNull(user) + Ensure(user->GetBattleSide().HasValue()) auto sideTarget = 0; if (user->GetBattleSide().GetValue()->GetSideIndex() == 0) sideTarget = 1; diff --git a/src/Battling/Models/Battle.cpp b/src/Battling/Models/Battle.cpp index bacc189..55770c4 100644 --- a/src/Battling/Models/Battle.cpp +++ b/src/Battling/Models/Battle.cpp @@ -9,7 +9,6 @@ using namespace CreatureLib::Battling; const ArbUt::BorrowedPtr& Battle::GetLibrary() const noexcept { return _library; } bool Battle::CanUse(const ArbUt::BorrowedPtr& choice) { - AssertNotNull(choice) if (choice->GetKind() == TurnChoiceKind::Attack) { // HOOK: change number of uses needed. return choice.ForceAs()->GetAttack()->GetRemainingUses() >= 1; @@ -18,10 +17,10 @@ bool Battle::CanUse(const ArbUt::BorrowedPtr& choice) { } bool Battle::TrySetChoice(BaseTurnChoice* choice) { - AssertNotNull(choice) + EnsureNotNull(choice) if (!CanUse(choice)) return false; - Assert(choice->GetUser()->GetBattleSide().HasValue()) + Ensure(choice->GetUser()->GetBattleSide().HasValue()) choice->GetUser()->GetBattleSide().GetValue()->SetChoice(choice); CheckChoicesSetAndRun(); return true; @@ -51,7 +50,7 @@ void Battle::CheckChoicesSetAndRun() { try { for (auto side : _sides) { for (auto choice : side->GetChoices()) { - AssertNotNull(choice) + EnsureNotNull(choice) if (choice->GetKind() == TurnChoiceKind::Attack) { auto attack = std::static_pointer_cast(choice); uint8_t uses = 1; @@ -99,7 +98,6 @@ ArbUt::BorrowedPtr Battle::GetCurrentTurnQueue() const noexcept { r BattleRandom* Battle::GetRandom() noexcept { return &_random; } bool Battle::CreatureInField(ArbUt::BorrowedPtr creature) const { - AssertNotNull(creature) return std::any_of(_sides.begin(), _sides.end(), [creature](auto c) { return c->CreatureOnSide(creature); }); } diff --git a/src/Battling/Models/Battle.hpp b/src/Battling/Models/Battle.hpp index 243cec3..a8aed17 100644 --- a/src/Battling/Models/Battle.hpp +++ b/src/Battling/Models/Battle.hpp @@ -41,7 +41,7 @@ namespace CreatureLib::Battling { .count()) : _library(library), _parties(parties.GetStdList()), _canFlee(canFlee), _numberOfSides(numberOfSides), _creaturesPerSide(creaturesPerSide), _sides(numberOfSides), _random(randomSeed) { - AssertAllNotNull(parties); + EnsureAllNotNull(parties); for (size_t i = 0; i < numberOfSides; i++) { _sides.Append(new BattleSide(i, this, creaturesPerSide)); diff --git a/src/Battling/Models/BattleParty.hpp b/src/Battling/Models/BattleParty.hpp index 7711dc8..7cbcdf5 100644 --- a/src/Battling/Models/BattleParty.hpp +++ b/src/Battling/Models/BattleParty.hpp @@ -11,9 +11,7 @@ namespace CreatureLib::Battling { public: BattleParty(CreatureParty* party, const ArbUt::List& responsibleIndices) - : _party(party), _responsibleIndices(responsibleIndices) { - AssertNotNull(_party) - } + : _party(party), _responsibleIndices(responsibleIndices) {} inline const ArbUt::BorrowedPtr& GetParty() const { return _party; } inline const ArbUt::List& GetResponsibleIndices() const { return _responsibleIndices; } diff --git a/src/Battling/Models/BattleSide.cpp b/src/Battling/Models/BattleSide.cpp index be6066c..da48384 100644 --- a/src/Battling/Models/BattleSide.cpp +++ b/src/Battling/Models/BattleSide.cpp @@ -7,7 +7,6 @@ using namespace CreatureLib::Battling; bool BattleSide::AllChoicesSet() const noexcept { return _choicesSet == _creaturesPerSide; } bool BattleSide::AllPossibleSlotsFilled() const { - AssertNotNull(_battle) try { for (size_t i = 0; i < _creatures.Count(); i++) { auto c = _creatures[i]; @@ -30,7 +29,7 @@ void BattleSide::ResetChoices() noexcept { } void BattleSide::SetChoice(BaseTurnChoice* choice) { - AssertNotNull(choice) + EnsureNotNull(choice) try { for (size_t i = 0; i < _creatures.Count(); i++) { auto& c = _creatures[i]; @@ -60,9 +59,6 @@ void BattleSide::SetCreature(ArbUt::OptionalBorrowedPtr creature, uint } creature.GetValue()->SetBattleData(_battle, this); creature.GetValue()->SetOnBattleField(true); - if (_battle == nullptr) { - return; - } for (auto* side : _battle->GetSides()) { if (side == this) { continue; @@ -91,6 +87,5 @@ size_t BattleSide::ScriptCount() const { return _battle->ScriptCount() + 1; } uint8_t BattleSide::GetRandomCreatureIndex() { // TODO: Consider adding parameter to only get index for available creatures. - AssertNotNull(_battle) return _battle->GetRandom()->Get(_creaturesPerSide); } diff --git a/src/Battling/Models/Creature.cpp b/src/Battling/Models/Creature.cpp index f0fd710..a0d2f9a 100644 --- a/src/Battling/Models/Creature.cpp +++ b/src/Battling/Models/Creature.cpp @@ -25,8 +25,6 @@ namespace CreatureLib::Battling { void Creature::ChangeSpecies(const ArbUt::BorrowedPtr& species, const ArbUt::BorrowedPtr& variant) { - AssertNotNull(species); - AssertNotNull(variant); _species = species; // If the creature is genderless, but it's new species is not, we want to set its gender @@ -51,7 +49,6 @@ namespace CreatureLib::Battling { } void Creature::ChangeVariant(const ArbUt::BorrowedPtr& variant) { - AssertNotNull(variant) _variant = variant; // Set the types to the new variant. @@ -145,8 +142,8 @@ namespace CreatureLib::Battling { bool Creature::IsFainted() const noexcept { return this->_currentHealth == 0; } void Creature::OnFaint() { - AssertNotNull(_battle) - AssertNotNull(_side) + EnsureNotNull(_battle) + EnsureNotNull(_side) // HOOK: On Faint if (_battle.HasValue()) { _battle.GetValue()->TriggerEventListener(this); diff --git a/src/Battling/Models/ExecutingAttack.hpp b/src/Battling/Models/ExecutingAttack.hpp index 21bfd6b..c7b8d91 100644 --- a/src/Battling/Models/ExecutingAttack.hpp +++ b/src/Battling/Models/ExecutingAttack.hpp @@ -43,8 +43,6 @@ namespace CreatureLib::Battling { const std::unique_ptr