diff --git a/src/Battling/Flow/ResolveTarget.cpp b/src/Battling/Flow/ResolveTarget.cpp index 453da04..80da173 100644 --- a/src/Battling/Flow/ResolveTarget.cpp +++ b/src/Battling/Flow/ResolveTarget.cpp @@ -95,7 +95,7 @@ TargetList TargetResolver::ResolveTargets(const CreatureIndex& index, AttackTarg return arr; } } - THROW("Unknown attack target kind: '" << AttackTargetHelper::ToString(target) << "'.") + THROW("Unknown attack target kind: '", AttackTargetHelper::ToString(target), "'.") } bool TargetResolver::IsValidTarget(const CreatureIndex& index, CreatureLib::Library::AttackTarget target, @@ -149,5 +149,5 @@ bool TargetResolver::IsValidTarget(const CreatureIndex& index, CreatureLib::Libr return index == userIndex; } } - THROW("Unknown attack target kind: '" << AttackTargetHelper::ToString(target) << "'.") + THROW("Unknown attack target kind: '", AttackTargetHelper::ToString(target), "'.") } diff --git a/src/Battling/Flow/TurnHandler.cpp b/src/Battling/Flow/TurnHandler.cpp index 533e3ad..e2d2740 100644 --- a/src/Battling/Flow/TurnHandler.cpp +++ b/src/Battling/Flow/TurnHandler.cpp @@ -15,14 +15,7 @@ void TurnHandler::RunTurn(const ArbUt::BorrowedPtr& queue, const Ar 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()), - "Executing choice failed for choice by mon on side " - << ((uint32_t)item->GetUser()->GetBattleSide().GetValue()->GetSideIndex()) << " and index " - << index << ". Choice had choice kind " - << CreatureLib::Battling::TurnChoiceKindHelper::ToString(item->GetKind()) << " " - << " with message"); + ExecuteChoice(item.get()); } if (!battle->HasEnded()) { ArbUt::List scripts; @@ -250,7 +243,7 @@ void TurnHandler::HandleAttackForTarget(ExecutingAttack* attack, const ArbUt::Bo } catch (const ArbUt::Exception& e) { throw e; } catch (const std::exception& e) { - THROW("Exception during status attack effect handling: " << e.what() << "."); + THROW("Exception during status attack effect handling: ", e.what(), "."); } } } else { @@ -282,7 +275,7 @@ void TurnHandler::HandleAttackForTarget(ExecutingAttack* attack, const ArbUt::Bo } catch (const ArbUt::Exception& e) { throw e; } catch (const std::exception& e) { - THROW("Exception during offensive attack secondary effect handling: " << e.what() << "."); + THROW("Exception during offensive attack secondary effect handling: ", e.what(), "."); } } } diff --git a/src/Battling/Models/Battle.cpp b/src/Battling/Models/Battle.cpp index c4f7989..0759ec6 100644 --- a/src/Battling/Models/Battle.cpp +++ b/src/Battling/Models/Battle.cpp @@ -50,7 +50,7 @@ void Battle::CheckChoicesSetAndRun() { } catch (const ArbUt::Exception& e) { throw e; } catch (const std::exception& e) { - THROW("Exception during choices set validation: '" << e.what() << "'.") + THROW("Exception during choices set validation: '", e.what(), "'.") } auto begin = std::chrono::steady_clock::now(); @@ -77,13 +77,13 @@ void Battle::CheckChoicesSetAndRun() { side->ResetChoices(); } } catch (const std::exception& e) { - THROW("Exception during turn initialization: '" << e.what() << "'.") + THROW("Exception during turn initialization: '", e.what(), "'.") } _currentTurn++; try { TurnOrdering::OrderChoices(choices); } catch (const std::exception& e) { - THROW("Exception during turn ordering: '" << e.what() << "'.") + THROW("Exception during turn ordering: '", e.what(), "'.") } this->_currentTurnQueue = std::make_unique(choices); TriggerEventListener(); @@ -92,7 +92,7 @@ void Battle::CheckChoicesSetAndRun() { } catch (const ArbUt::Exception& e) { throw e; } catch (const std::exception& e) { - THROW("Error during running a turn: '" << e.what() << "'."); + THROW("Error during running a turn: '", e.what(), "'."); } if (this->_currentTurnQueue->HasCompletedQueue) { this->_currentTurnQueue = nullptr; @@ -169,7 +169,7 @@ BattleScript* Battle::AddVolatileScript(const ArbUt::StringView& key) { } script = _library->LoadScript(this, ScriptCategory::Battle, key); if (!script.HasValue()) { - THROW("Invalid volatile script requested for battle: '" << key.c_str() << "'."); + THROW("Invalid volatile script requested for battle: '", key.c_str(), "'."); } return _volatile.Add(script.GetValue()); } diff --git a/src/Battling/Models/BattleSide.cpp b/src/Battling/Models/BattleSide.cpp index 189680b..8654d7f 100644 --- a/src/Battling/Models/BattleSide.cpp +++ b/src/Battling/Models/BattleSide.cpp @@ -18,7 +18,7 @@ bool BattleSide::AllPossibleSlotsFilled() const { } } } catch (const std::exception& e) { - THROW("Exception during AllPossibleSlotsFilled check: '" << e.what() << "'."); + THROW("Exception during AllPossibleSlotsFilled check: '", e.what(), "'."); } return true; } @@ -45,7 +45,7 @@ void BattleSide::SetChoice(BaseTurnChoice* choice) { } } } catch (const std::exception& e) { - THROW("Error during setting choice: '" << e.what() << "'."); + THROW("Error during setting choice: '", e.what(), "'."); } THROW("User not found"); } @@ -147,7 +147,7 @@ BattleScript* BattleSide::AddVolatileScript(const ArbUt::StringView& key) { } script = _battle->GetLibrary()->LoadScript(this, ScriptCategory::Side, key); if (!script.HasValue()) { - THROW("Invalid volatile script requested for battleside: '" << key.c_str() << "'."); + THROW("Invalid volatile script requested for battleside: '", key.c_str(), "'."); } return _volatile.Add(script.GetValue()); } diff --git a/src/Battling/Models/CreateCreature.cpp b/src/Battling/Models/CreateCreature.cpp index 0a9c3e9..9b87632 100644 --- a/src/Battling/Models/CreateCreature.cpp +++ b/src/Battling/Models/CreateCreature.cpp @@ -50,7 +50,7 @@ Creature* CreateCreature::Create() { if (!this->_heldItem.IsEmpty()) { auto val = _library->GetItemLibrary()->TryGet(this->_heldItem.GetHash()); if (!val.has_value()) { - THROW("Invalid held item '" << this->_heldItem.c_str() << "'."); + THROW("Invalid held item '", this->_heldItem.c_str(), "'."); } heldItem = val.value(); } diff --git a/src/Battling/Models/Creature.cpp b/src/Battling/Models/Creature.cpp index ddce6e5..6cdb628 100644 --- a/src/Battling/Models/Creature.cpp +++ b/src/Battling/Models/Creature.cpp @@ -302,7 +302,7 @@ namespace CreatureLib::Battling { void Creature::SetHeldItem(const ArbUt::BasicStringView& itemName) { auto v = _library->GetItemLibrary()->TryGet(itemName.GetHash()); if (!v.has_value()) { - THROW("Item not found '" << itemName.c_str() << "'."); + THROW("Item not found '", itemName.c_str(), "'."); } _heldItem = v.value(); } @@ -322,7 +322,7 @@ namespace CreatureLib::Battling { } script = this->_library->LoadScript(this, ScriptCategory::Creature, name); if (!script.HasValue()) { - THROW("Invalid volatile script requested for creature: '" << name.c_str() << "'."); + THROW("Invalid volatile script requested for creature: '", name.c_str(), "'."); } return _volatile.Add(script.GetValue()); } @@ -360,7 +360,7 @@ namespace CreatureLib::Battling { if (_attacks.Count() < _library->GetStaticLib()->GetSettings()->GetMaximalAttacks()) { _attacks.Append(attack); } - THROW("Can't replace attack at index " << index << ". Number of attacks is " << _attacks.Count() << "."); + THROW("Can't replace attack at index ", index, ". Number of attacks is ", _attacks.Count(), "."); } _attacks.Set(index, attack); } diff --git a/src/Battling/ScriptHandling/ScriptMacros.hpp b/src/Battling/ScriptHandling/ScriptMacros.hpp index 21b86fb..c127ad5 100644 --- a/src/Battling/ScriptHandling/ScriptMacros.hpp +++ b/src/Battling/ScriptHandling/ScriptMacros.hpp @@ -10,13 +10,13 @@ try { \ next->hookName(__VA_ARGS__); \ } catch (const std::exception& e) { \ - THROW("Exception running script hook '" #hookName "': " << e.what()) \ + THROW("Exception running script hook '" #hookName "': ", e.what()) \ } \ } \ } catch (const ArbUt::Exception& e) { \ throw e; \ } catch (const std::exception& e) { \ - THROW("Exception setting up script hook '" #hookName "': " << e.what()) \ + THROW("Exception setting up script hook '" #hookName "': ", e.what()) \ } \ } @@ -41,6 +41,6 @@ } catch (const ArbUt::Exception& e) { \ throw e; \ } catch (const std::exception& e) { \ - THROW("Exception setting up script hook '" #hookName "': " << e.what()) \ + THROW("Exception setting up script hook '" #hookName "': ", e.what()) \ } \ } diff --git a/src/Library/CreatureData/LearnableAttacks.cpp b/src/Library/CreatureData/LearnableAttacks.cpp index 2872c06..997bbb2 100644 --- a/src/Library/CreatureData/LearnableAttacks.cpp +++ b/src/Library/CreatureData/LearnableAttacks.cpp @@ -28,7 +28,7 @@ namespace CreatureLib::Library { inline bool HasAttacksForLevel(level_int_t level) const noexcept { return _learnedByLevel.Has(level); } inline const ArbUt::List>& GetAttacksForLevel(level_int_t level) const { if (!_learnedByLevel.Has(level)) { - THROW("No attacks found for level " << (uint32_t)level << "."); + THROW("No attacks found for level ", (uint32_t)level, "."); } return _learnedByLevel.Get(level); } diff --git a/src/Library/EffectParameter.hpp b/src/Library/EffectParameter.hpp index 471e795..9e06d48 100644 --- a/src/Library/EffectParameter.hpp +++ b/src/Library/EffectParameter.hpp @@ -26,7 +26,7 @@ namespace CreatureLib::Library { inline EffectParameterType GetType() const noexcept { return _type; } bool AsBool() const { if (_type != EffectParameterType::Bool) { - THROW("Cast effect parameter to bool, but was " << EffectParameterTypeHelper::ToString(_type)); + THROW("Cast effect parameter to bool, but was ", EffectParameterTypeHelper::ToString(_type)); } return std::get(_value); } @@ -35,7 +35,7 @@ namespace CreatureLib::Library { if (_type == EffectParameterType::Float) { return static_cast(std::get(_value)); } - THROW("Cast effect parameter to int, but was " << EffectParameterTypeHelper::ToString(_type)); + THROW("Cast effect parameter to int, but was ", EffectParameterTypeHelper::ToString(_type)); } return std::get(_value); } @@ -44,13 +44,13 @@ namespace CreatureLib::Library { if (_type == EffectParameterType::Int) { return static_cast(std::get(_value)); } - THROW("Cast effect parameter to float, but was " << EffectParameterTypeHelper::ToString(_type)); + THROW("Cast effect parameter to float, but was ", EffectParameterTypeHelper::ToString(_type)); } return std::get(_value); } const ArbUt::StringView& AsString() const { if (_type != EffectParameterType::String) { - THROW("Cast effect parameter to string, but was " << EffectParameterTypeHelper::ToString(_type)); + THROW("Cast effect parameter to string, but was ", EffectParameterTypeHelper::ToString(_type)); } return std::get(_value); } diff --git a/src/Library/Exceptions/CreatureException.hpp b/src/Library/Exceptions/CreatureException.hpp index 5ddb929..b88fc94 100644 --- a/src/Library/Exceptions/CreatureException.hpp +++ b/src/Library/Exceptions/CreatureException.hpp @@ -7,6 +7,6 @@ } catch (const ArbUt::Exception& e) { \ throw e; \ } catch (const std::exception& e) { \ - THROW(msg << ": '" << e.what() << "'."); \ + THROW(msg, ": '", e.what(), "'."); \ } #endif // CREATURELIB_CREATUREEXCEPTION_HPP diff --git a/src/Library/TypeLibrary.cpp b/src/Library/TypeLibrary.cpp index 4780958..2854cc7 100644 --- a/src/Library/TypeLibrary.cpp +++ b/src/Library/TypeLibrary.cpp @@ -20,5 +20,5 @@ const ArbUt::StringView& TypeLibrary::GetTypeName(uint8_t type) const { return kv.first; } } - THROW("Name requested for unknown type: " << (uint32_t)type); + THROW("Name requested for unknown type: ", (uint32_t)type); } diff --git a/src/Library/TypeLibrary.hpp b/src/Library/TypeLibrary.hpp index edd832c..fc2ce4a 100644 --- a/src/Library/TypeLibrary.hpp +++ b/src/Library/TypeLibrary.hpp @@ -21,8 +21,8 @@ namespace CreatureLib::Library { try { return _effectiveness[attacking][defensive]; } catch (const std::exception& e) { - THROW("Unknown type indices were requested for effectiveness: " << (uint32_t)attacking << " and " - << (uint32_t)defensive); + THROW("Unknown type indices were requested for effectiveness: ", (uint32_t)attacking, " and ", + (uint32_t)defensive); } } [[nodiscard]] inline float GetEffectiveness(uint8_t attacking, const std::vector& defensive) const { diff --git a/tests/ExceptionTests.cpp b/tests/ExceptionTests.cpp index 66b7e6c..1028034 100644 --- a/tests/ExceptionTests.cpp +++ b/tests/ExceptionTests.cpp @@ -10,7 +10,7 @@ TEST_CASE("When throwing exception, what() is readable") { } catch (const ArbUt::Exception& e) { hasCaught = true; INFO(e.what()); - REQUIRE(std::string(e.what()) == "[ExceptionTests.cpp:9] foobar"); + REQUIRE(std::string(e.what()) == "[ExceptionTests.cpp:9] \"foobar\""); } REQUIRE(hasCaught); }