diff options
author | jackpoz <giacomopoz@gmail.com> | 2014-08-19 00:00:54 +0200 |
---|---|---|
committer | jackpoz <giacomopoz@gmail.com> | 2014-08-19 00:00:54 +0200 |
commit | 4a3416627de4bac3c98c62a602fac93ebd94f1e4 (patch) | |
tree | 6fb0807e154a68bc3b38de653e8e0b5bc4b070c3 /src | |
parent | a60c902b45b39c4641ccb9442826b567ead60595 (diff) |
Core/Creatures: Fixed an arithmetic error in respawn code
Creatures should now respawn correctly in their correct time.
Issue was caused by single-precision floating-point format losing precision on lower digits with high numbers, for reference http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
Closes #12428
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 7103654e90f..c04f2845110 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2277,7 +2277,7 @@ void Creature::AllLootRemovedFromCorpse() if (loot.loot_type == LOOT_SKINNING) m_corpseRemoveTime = now; else - m_corpseRemoveTime = now + m_corpseDelay * decayRate; + m_corpseRemoveTime = now + uint32(m_corpseDelay * decayRate); m_respawnTime = m_corpseRemoveTime + m_respawnDelay; } |