From df802b561aa7898aa1b3025e531d83d2c08c715e Mon Sep 17 00:00:00 2001
From: Deukhoofd <deukhoofd@gmail.com>
Date: Sat, 25 Apr 2020 16:31:57 +0200
Subject: [PATCH] Update to latest CreatureLib.

---
 src/Battling/Library/DamageLibrary.cpp | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/Battling/Library/DamageLibrary.cpp b/src/Battling/Library/DamageLibrary.cpp
index 2856c53..0673e24 100644
--- a/src/Battling/Library/DamageLibrary.cpp
+++ b/src/Battling/Library/DamageLibrary.cpp
@@ -3,8 +3,8 @@
 uint32_t PkmnLib::Battling::DamageLibrary::GetDamage(CreatureLib::Battling::ExecutingAttack* attack,
                                                 CreatureLib::Battling::Creature* target, uint8_t hitIndex) const {
     auto levelMod = static_cast<float>(2 * attack->GetUser()->GetLevel());
-    auto hit = attack->GetAttackDataForTarget(target)->GetHit(hitIndex);
-    auto bp = hit->GetBasePower();
+    auto hit = attack->GetAttackDataForTarget(target).GetHit(hitIndex);
+    auto bp = hit.GetBasePower();
     auto statMod = GetStatModifier(attack, target, hitIndex);
     // HOOK: Modify stat modifier
     int damage = static_cast<int>((((levelMod * static_cast<float>(bp) * statMod) / 50) + 2) *
@@ -23,10 +23,10 @@ float PkmnLib::Battling::DamageLibrary::GetStatModifier(CreatureLib::Battling::E
                                                         uint8_t hitIndex) const {
     auto user = attack->GetUser();
     // HOOK: allow overriding for which users stat we use.
-    auto hit = attack->GetAttackDataForTarget(target)->GetHit(hitIndex);
+    auto hit = attack->GetAttackDataForTarget(target).GetHit(hitIndex);
     CreatureLib::Library::Statistic offensiveStat;
     CreatureLib::Library::Statistic defensiveStat;
-    auto learnedMove = dynamic_cast<LearnedMove*>(attack->GetAttack());
+    auto learnedMove = static_cast<LearnedMove*>(attack->GetAttack());
     auto moveData = learnedMove->GetMoveData();
     if (moveData->GetCategory() == Library::MoveCategory::Physical) {
         offensiveStat = Library::Statistic::PhysicalAttack;
@@ -36,9 +36,9 @@ float PkmnLib::Battling::DamageLibrary::GetStatModifier(CreatureLib::Battling::E
         defensiveStat = Library::Statistic::SpecialDefense;
     }
 
-    auto bypassDefensive = hit->IsCritical() && target->GetStatBoost(defensiveStat) > 0;
+    auto bypassDefensive = hit.IsCritical() && target->GetStatBoost(defensiveStat) > 0;
     // HOOK: allow bypassing defensive stat modifiers.
-    auto bypassOffensive = hit->IsCritical() && user->GetStatBoost(offensiveStat) < 0;
+    auto bypassOffensive = hit.IsCritical() && user->GetStatBoost(offensiveStat) < 0;
     // HOOK: Allow bypassing offensive stat modifiers.
 
     float offensiveValue;
@@ -61,8 +61,8 @@ float PkmnLib::Battling::DamageLibrary::GetDamageModifier(CreatureLib::Battling:
                                                           CreatureLib::Battling::Creature* target,
                                                           uint8_t hitIndex) const {
     float mod = 1;
-    auto hit = attack->GetAttackDataForTarget(target)->GetHit(hitIndex);
-    mod *= hit->GetEffectiveness();
+    auto hit = attack->GetAttackDataForTarget(target).GetHit(hitIndex);
+    mod *= hit.GetEffectiveness();
     // HOOK: Modify damage modifier.
     return mod;
 }