aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2014-08-19 00:00:54 +0200
committerjackpoz <giacomopoz@gmail.com>2014-08-19 00:00:54 +0200
commit4a3416627de4bac3c98c62a602fac93ebd94f1e4 (patch)
tree6fb0807e154a68bc3b38de653e8e0b5bc4b070c3
parenta60c902b45b39c4641ccb9442826b567ead60595 (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
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp2
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;
}