From 08ef84f6d62d11f11a2b7b1a40b396c418b64410 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Mon, 3 Aug 2020 17:44:29 +0200 Subject: [PATCH] Defensive programming. --- src/Battling/Flow/TurnHandler.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Battling/Flow/TurnHandler.cpp b/src/Battling/Flow/TurnHandler.cpp index f0814ef..7845afe 100644 --- a/src/Battling/Flow/TurnHandler.cpp +++ b/src/Battling/Flow/TurnHandler.cpp @@ -14,10 +14,15 @@ void TurnHandler::RunTurn(ArbUt::BorrowedPtr queue) { } while (queue->HasNext()) { auto item = queue->Dequeue(); + AssertNotNull(item) + AssertNotNull(item->GetUser()) + AssertNotNull(item->GetUser()->GetBattle()) + AssertNotNull(item->GetUser()->GetBattleSide()) + auto index = (uint32_t)item->GetUser()->GetBattleSide()->GetCreatureIndex(item->GetUser()); + try_creature(ExecuteChoice(item.get()), "Executing choice failed for choice by mon on side " - << ((uint32_t)item.get()->GetUser()->GetBattleSide()->GetSideIndex()) << " and index " - << ((uint32_t)item.get()->GetUser()->GetBattleSide()->GetCreatureIndex(item->GetUser())) + << ((uint32_t)item->GetUser()->GetBattleSide()->GetSideIndex()) << " and index " << index << ". Choice had choice kind " << CreatureLib::Battling::TurnChoiceKindHelper::ToString(item->GetKind()) << " " << " with message"); @@ -106,7 +111,7 @@ void TurnHandler::ExecuteAttackChoice(ArbUt::BorrowedPtr choic for (uint8_t i = 0; i < attack.GetTargetCount(); i++) { auto target = attack.GetTargets()[i]; - try_creature(HandleAttackForTarget(&attack, target), "Exception occured during handling attack for target"); + try_creature(HandleAttackForTarget(&attack, target), "Exception occurred during handling attack for target"); } }