aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-10-11 01:43:14 -0300
committerariel- <ariel-@users.noreply.github.com>2016-10-11 01:43:14 -0300
commitb8a1a18a5a44185c0e84d23910c35ebf2706e1b5 (patch)
treea5f322b3c62fcbf907d4a16ddcdd7026cb353336 /src
parente2a8cf6809bdb2fbe118d38f3cdf49bbee3078f9 (diff)
Core/Creature: Call SetSpawnHealth after JustReachedHome in HomeMovementGenerator
Fixes issues with quests that rely on this behaviour (eg Free your Mind) Also updated SetSpawnHealth so it doesn't do anything in case spawn is manual (SetHealth(GetHealth()) does modify things depending on deathstate)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp20
-rw-r--r--src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp2
2 files changed, 10 insertions, 12 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index fa603b9509e..a7b826b4bf8 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -1450,23 +1450,21 @@ void Creature::LoadEquipment(int8 id, bool force /*= true*/)
void Creature::SetSpawnHealth()
{
+ if (!m_creatureData)
+ return;
+
uint32 curhealth;
if (!m_regenHealth)
{
- if (m_creatureData)
+ curhealth = m_creatureData->curhealth;
+ if (curhealth)
{
- curhealth = m_creatureData->curhealth;
- if (curhealth)
- {
- curhealth = uint32(curhealth*_GetHealthMod(GetCreatureTemplate()->rank));
- if (curhealth < 1)
- curhealth = 1;
- }
- SetPower(POWER_MANA, m_creatureData->curmana);
+ curhealth = uint32(curhealth*_GetHealthMod(GetCreatureTemplate()->rank));
+ if (curhealth < 1)
+ curhealth = 1;
}
- else
- curhealth = GetHealth();
+ SetPower(POWER_MANA, m_creatureData->curmana);
}
else
{
diff --git a/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp
index bae8e541ddc..61916504758 100644
--- a/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/HomeMovementGenerator.cpp
@@ -34,8 +34,8 @@ void HomeMovementGenerator<Creature>::DoFinalize(Creature* owner)
owner->ClearUnitState(UNIT_STATE_EVADE);
owner->SetWalk(true);
owner->LoadCreaturesAddon();
- owner->SetSpawnHealth();
owner->AI()->JustReachedHome();
+ owner->SetSpawnHealth();
}
}