rendered paste bodyIndex: SpellAuraDefines.h
===================================================================
--- SpellAuraDefines.h (revision 61)
+++ SpellAuraDefines.h (working copy)
@@ -23,8 +23,10 @@
enum AURA_FLAGS
{
- AFLAG_EMPTY = 0x0,
- AFLAG_SET = 0x9
+ AFLAG_EMPTY = 0x00,
+ AFLAG_NEGATIVE = 0x09,
+ AFLAG_POSITIVE = 0x1F,
+ AFLAG_MASK = 0xFF
};
//m_schoolAbsorb
Index: SpellAuras.cpp
===================================================================
--- SpellAuras.cpp (revision 61)
+++ SpellAuras.cpp (working copy)
@@ -785,12 +785,14 @@
{
m_target->SetUInt32Value((uint16)(UNIT_FIELD_AURA + slot), GetId());
- uint8 flagslot = slot >> 3;
+ uint8 flagslot = slot >> 2;
uint32 value = m_target->GetUInt32Value((uint16)(UNIT_FIELD_AURAFLAGS + flagslot));
- uint8 value1 = (slot & 7) << 2;
- value |= ((uint32)AFLAG_SET << value1);
-
+ uint8 value1 = (slot & 3) << 3;
+ if (IsPositive())
+ value |= ((uint32)AFLAG_POSITIVE << value1);
+ else
+ value |= ((uint32)AFLAG_NEGATIVE << value1);
m_target->SetUInt32Value((uint16)(UNIT_FIELD_AURAFLAGS + flagslot), value);
}
@@ -868,12 +870,12 @@
{
m_target->SetUInt32Value((uint16)(UNIT_FIELD_AURA + slot), 0);
- uint8 flagslot = slot >> 3;
+ uint8 flagslot = slot >> 2;
uint32 value = m_target->GetUInt32Value((uint16)(UNIT_FIELD_AURAFLAGS + flagslot));
- uint8 aurapos = (slot & 7) << 2;
- uint32 value1 = ~( AFLAG_SET << aurapos );
+ uint8 aurapos = (slot & 3) << 3;
+ uint32 value1 = ~( AFLAG_NEGATIVE << aurapos );
value &= value1;
m_target->SetUInt32Value((uint16)(UNIT_FIELD_AURAFLAGS + flagslot), value);