diff --git a/src/Battling/Flow/TurnHandler.cpp b/src/Battling/Flow/TurnHandler.cpp index e65cfcd..c94d264 100644 --- a/src/Battling/Flow/TurnHandler.cpp +++ b/src/Battling/Flow/TurnHandler.cpp @@ -52,7 +52,7 @@ void TurnHandler::ExecuteChoice(BaseTurnChoice* choice) { void TurnHandler::ExecuteAttackChoice(AttackTurnChoice* choice) { auto attackName = choice->GetAttack()->GetAttack()->GetName(); - HOOK(ChangeAttack, choice, choice, attackName); + HOOK(ChangeAttack, choice, choice, &attackName); if (attackName != choice->GetAttack()->GetAttack()->GetName()) { // TODO: Change attack } @@ -63,7 +63,7 @@ void TurnHandler::ExecuteAttackChoice(AttackTurnChoice* choice) { auto attack = new ExecutingAttack(targets, 1, choice->GetUser(), choice->GetAttack(), choice->GetAttackScript()); bool prevented = false; - HOOK(PreventAttack, attack, attack, prevented); + HOOK(PreventAttack, attack, attack, &prevented); if (prevented) { return; } @@ -76,7 +76,7 @@ void TurnHandler::ExecuteAttackChoice(AttackTurnChoice* choice) { // HOOK: check if attack fails bool fail = false; - HOOK(FailAttack, attack, attack, fail); + HOOK(FailAttack, attack, attack, &fail); if (fail) { // TODO: Fail handling. return; @@ -101,14 +101,14 @@ void TurnHandler::HandleAttackForTarget(ExecutingAttack* attack, Creature* targe ScriptSource* userSource = attack; bool fail = false; - HOOK(FailIncomingAttack, targetSource, attack, target, fail); + HOOK(FailIncomingAttack, targetSource, attack, target, &fail); if (fail) { // TODO: Fail handling. return; } bool invulnerable = fail; - HOOK(IsInvulnerable, targetSource, attack, target, invulnerable); + HOOK(IsInvulnerable, targetSource, attack, target, &invulnerable); if (invulnerable) { // TODO: We should probably do something when a target is invulnerable. return; @@ -136,7 +136,7 @@ void TurnHandler::HandleAttackForTarget(ExecutingAttack* attack, Creature* targe auto hit = targetData->GetHit(hitIndex); auto hitType = hit->GetType(); - HOOK(ChangeAttackType, targetSource, attack, target, hitIndex, hitType); + HOOK(ChangeAttackType, targetSource, attack, target, hitIndex, &hitType); hit->SetEffectiveness(library->GetTypeLibrary()->GetEffectiveness(hitType, target->GetTypes())); hit->SetCritical(library->GetMiscLibrary()->IsCritical(attack, target, hitIndex)); hit->SetBasePower(dmgLibrary->GetBasePower(attack, target, hitIndex)); @@ -169,7 +169,7 @@ void TurnHandler::HandleAttackForTarget(ExecutingAttack* attack, Creature* targe void TurnHandler::ExecuteSwitchChoice(CreatureLib::Battling::SwitchTurnChoice* choice) { bool preventSwitch = false; - HOOK(PreventSelfSwitch, choice, choice, preventSwitch); + HOOK(PreventSelfSwitch, choice, choice, &preventSwitch); if (preventSwitch) { return; } diff --git a/src/Battling/ScriptHandling/Script.hpp b/src/Battling/ScriptHandling/Script.hpp index 1f0d4f2..560f7b2 100644 --- a/src/Battling/ScriptHandling/Script.hpp +++ b/src/Battling/ScriptHandling/Script.hpp @@ -31,16 +31,16 @@ namespace CreatureLib::Battling { virtual void OnBeforeTurn(const BaseTurnChoice* choice){}; - virtual void ChangeAttack(AttackTurnChoice* choice, std::string& attack){}; - virtual void PreventAttack(ExecutingAttack* attack, bool& result){}; - virtual void FailAttack(ExecutingAttack* attack, bool& failed){}; + virtual void ChangeAttack(AttackTurnChoice* choice, std::string* attack){}; + virtual void PreventAttack(ExecutingAttack* attack, bool* result){}; + virtual void FailAttack(ExecutingAttack* attack, bool* failed){}; virtual void StopBeforeAttack(ExecutingAttack* attack){}; virtual void OnBeforeAttack(ExecutingAttack* attack){}; - virtual void FailIncomingAttack(ExecutingAttack* attack, Creature* target, bool& result){}; - virtual void IsInvulnerable(ExecutingAttack* attack, Creature* target, bool& result){}; + virtual void FailIncomingAttack(ExecutingAttack* attack, Creature* target, bool* result){}; + virtual void IsInvulnerable(ExecutingAttack* attack, Creature* target, bool* result){}; virtual void OnAttackMiss(ExecutingAttack* attack, Creature* target){}; - virtual void ChangeAttackType(ExecutingAttack* attack, Creature* target, uint8_t hitNumber, uint8_t& type){}; + virtual void ChangeAttackType(ExecutingAttack* attack, Creature* target, uint8_t hitNumber, uint8_t* type){}; virtual void OnStatusMove(const ExecutingAttack* attack, Creature* target, uint8_t hitNumber){}; virtual void PreventSecondaryEffects(const ExecutingAttack* attack, Creature* target, uint8_t hitNumber, bool& result){}; @@ -48,7 +48,7 @@ namespace CreatureLib::Battling { virtual void OnAfterHits(const ExecutingAttack* attack, Creature* target){}; - virtual void PreventSelfSwitch(const SwitchTurnChoice* choice, bool& result){}; + virtual void PreventSelfSwitch(const SwitchTurnChoice* choice, bool* result){}; }; }