From cd7ddcf78ec0ee4ae645d1862f92ec23246af949 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Mon, 3 Feb 2020 19:11:44 +0100 Subject: [PATCH] Actually implement handling of StopBeforeAttack script hook --- src/Battling/Flow/TurnHandler.cpp | 6 +++++- src/Battling/ScriptHandling/Script.hpp | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Battling/Flow/TurnHandler.cpp b/src/Battling/Flow/TurnHandler.cpp index 14ba706..8283da8 100644 --- a/src/Battling/Flow/TurnHandler.cpp +++ b/src/Battling/Flow/TurnHandler.cpp @@ -82,7 +82,11 @@ void TurnHandler::ExecuteAttackChoice(AttackTurnChoice* choice) { return; } - HOOK(StopBeforeAttack, attack, attack); + bool stopBeforeAttack = false; + HOOK(StopBeforeAttack, attack, attack, &stopBeforeAttack); + if (stopBeforeAttack) { + return; + } HOOK(OnBeforeAttack, attack, attack); for (auto& kv : attack->GetTargets()) { diff --git a/src/Battling/ScriptHandling/Script.hpp b/src/Battling/ScriptHandling/Script.hpp index b104220..5e83a65 100644 --- a/src/Battling/ScriptHandling/Script.hpp +++ b/src/Battling/ScriptHandling/Script.hpp @@ -30,7 +30,7 @@ namespace CreatureLib::Battling { virtual void ChangeAttack(AttackTurnChoice* choice, std::string* outAttack){}; virtual void PreventAttack(ExecutingAttack* attack, bool* outResult){}; virtual void FailAttack(ExecutingAttack* attack, bool* outFailed){}; - virtual void StopBeforeAttack(ExecutingAttack* attack){}; + virtual void StopBeforeAttack(ExecutingAttack* attack, bool* outResult){}; virtual void OnBeforeAttack(ExecutingAttack* attack){}; virtual void FailIncomingAttack(ExecutingAttack* attack, Creature* target, bool* outResult){};