PDA

Просмотр полной версии : Fix bug causing last periodic tick to not happen


newsbot
03.09.2017, 21:40
Автор: killerwife


<pre style='white-space:pre-wrap;width:81ex'>Fix bug causing last periodic tick to not happen

If a spell was cast in the middle of Unit::Update, specifically in spell
update or aura update, it received one update tick right away, causing
duration to be actually MAX - one tick for all affected auras in real
time (simulation still did whole duration properly)
This ties into second issue, which meant Channel spell and Channel aura
had desynced values, meaning aura tick was always one tick ahead. If
this tick happened to be bigger than the last one, last tick could
easily fail. The issue was most visible on BG Rezz tick because its one
long 30 second channel with one trigger. Now, if we add an aura in the
middle of spell/aura updates, we skip the current update and only start
updating on next one. This results in aura being removed on channel end,
hence why I added the skip for the removal of the Channel aura on
channel end. Auras with duration are removed on their own in Holder
update as intended. Only cornercase are Channels with infinite duration
- duration index 21, for which we need to remove auras immediately,
because they would be stuck on the aura targets.</pre>


Подробнее... (https://github.com/cmangos/mangos-wotlk/commit/5f35d48d2748149f88f6fc3933bb36a12de9a8d7)