From 4a3416627de4bac3c98c62a602fac93ebd94f1e4 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Tue, 19 Aug 2014 00:00:54 +0200 Subject: 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 --- src/server/game/Entities/Creature/Creature.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') 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; } -- cgit v1.2.3