Make Script functions use pointers for out variables, instead of references.
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Deukhoofd 2020-01-11 16:05:39 +01:00
parent 836a201b2d
commit c3877e0151
Signed by: Deukhoofd
GPG Key ID: ADF2E9256009EDCE
2 changed files with 14 additions and 14 deletions

View File

@ -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;
}

View File

@ -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){};
};
}