From 8c12227687454abe5bdd0b8796f84f15fd3817d8 Mon Sep 17 00:00:00 2001 From: LogicParrot Date: Sat, 16 Jan 2016 14:16:47 +0200 Subject: Fix crash when tamed wolf is hit by arrows --- src/Mobs/Wolf.cpp | 6 +++++- src/Mobs/Wolf.h | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'src/Mobs') diff --git a/src/Mobs/Wolf.cpp b/src/Mobs/Wolf.cpp index e074cfe2e..174fee9b1 100644 --- a/src/Mobs/Wolf.cpp +++ b/src/Mobs/Wolf.cpp @@ -73,8 +73,12 @@ bool cWolf::Attack(std::chrono::milliseconds a_Dt) -void cWolf::NearbyPlayerIsFighting(cPlayer * a_Player, cEntity * a_Opponent) +void cWolf::NearbyPlayerIsFighting(cPlayer * a_Player, cPawn * a_Opponent) { + if (a_Opponent == nullptr) + { + return; + } if ((m_Target == nullptr) && (a_Player->GetName() == m_OwnerName) && !IsSitting() && (a_Opponent->IsPawn())) { m_Target = a_Opponent; diff --git a/src/Mobs/Wolf.h b/src/Mobs/Wolf.h index 57178a3f4..90d38f15c 100644 --- a/src/Mobs/Wolf.h +++ b/src/Mobs/Wolf.h @@ -51,7 +51,7 @@ public: - The wolf is not already attacking a mob. - The wolf is not sitting. This is called by cPlayer::NotifyFriendlyWolves whenever a player takes or deals damage and a wolf is nearby. */ - void NearbyPlayerIsFighting(cPlayer * a_Player, cEntity * a_Opponent); + void NearbyPlayerIsFighting(cPlayer * a_Player, cPawn * a_Opponent); virtual void InStateIdle(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) override; -- cgit v1.2.3