Quantcast

Preserve auras applied by already-cast instant-cast spells between updates.

Author Johnny C. Lam <jlam88@gmail.com>
Author date 2014-05-03 00:25:35
Author local date 2014-05-03 00:25:35 +0000
Committer Johnny C. Lam <jlam88@gmail.com>
Committer date 2014-05-03 00:25:35
Committer local date 2014-05-03 00:25:35 +0000
Commit 3f07c156c6dc9f60a3e8b155490fe0b9242b54a6
Tree 89b2dc255d256bbf3e2c83aedb1e4e18eba140de
Parent 84922acc0176bc43404e643c76f120355e7674d2
Preserve auras applied by already-cast instant-cast spells between updates.

This fixes the problem where an instant-cast spell cast in the simulator
applies a debuff on the target which is added to the state machine, then
instantly removed before being added to the true aura database.  For
example, a subtlety rogue's Hemorrhage applies a DoT on the target, but
there is a small lag betwen the spell hitting the target and the DoT being
applied.  When the user casts the spell, OvaleFuture queues it up to the
cast in the simulator, which applies a DoT to the target in the simulator.
However, the simulator's state is reset on every update, so the debuff was
being lost until it appeared on the actual target.  During that brief lag,
Ovale thinks Hemorrhage still needs to be cast to apply the DoT.

Instead of dumping the entire state aura database for each update, just
remove state auras that are older than the corresponding auras in the true
aura database.  This preserves debuffs applied in the simulator that are
the result of instant-cast spells until they appear in the true aura
database.

git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1354 d5049fe3-3747-40f7-a4b5-f36d6801af5f