aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-05-06 13:34:11 -0500
committermegamage <none@none>2009-05-06 13:34:11 -0500
commitfa1dcd16cf8bc09cd0c0878020b59e7128e71d09 (patch)
tree46062e99b9b8494520351b83e8f71a8e77e2a818 /src/game/Unit.cpp
parent5d3a64517eff8db5781f299ece29a338b6e2f7a2 (diff)
*Update summon system.
--HG-- branch : trunk
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp60
1 files changed, 29 insertions, 31 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 85b5c04e545..4003a769284 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -8183,25 +8183,14 @@ void Unit::SetMinion(Minion *minion, bool apply)
}
}
- // Check priority.
- if(Minion *oldMinion = GetFirstMinion())
+ //if(minion->HasSummonMask(SUMMON_MASK_GUARDIAN))
{
- if(minion->HasSummonMask(SUMMON_MASK_GUARDIAN)
- && !oldMinion->HasSummonMask(SUMMON_MASK_GUARDIAN))
- SetMinionGUID(0);
- }
-
- // Set first minion
- if(AddUInt64Value(UNIT_FIELD_SUMMON, minion->GetGUID()))
- {
- if(GetTypeId() == TYPEID_PLAYER && !GetCharmGUID() && minion->HasSummonMask(SUMMON_MASK_GUARDIAN))
+ if(AddUInt64Value(UNIT_FIELD_SUMMON, minion->GetGUID()))
{
- if(minion->isPet())
- ((Player*)this)->PetSpellInitialize();
- else
- ((Player*)this)->CharmSpellInitialize();
}
}
+ //else if(minion->m_Properties && minion->m_Properties->Type == SUMMON_TYPE_MINIPET)
+ // AddUInt64Value(UNIT_FIELD_CRITTER, minion->GetGUID());
// FIXME: hack, speed must be set only at follow
if(HasByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP))
@@ -8227,30 +8216,39 @@ void Unit::SetMinion(Minion *minion, bool apply)
SetPetGUID(0);
}
- if(RemoveUInt64Value(UNIT_FIELD_SUMMON, minion->GetGUID()))
+ //if(minion->HasSummonMask(SUMMON_MASK_GUARDIAN))
{
- //Check if there is another minion
- for(ControlList::iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr)
+ if(RemoveUInt64Value(UNIT_FIELD_SUMMON, minion->GetGUID()))
{
- if(GetCharmGUID() == (*itr)->GetGUID())
- continue;
-
- assert((*itr)->GetOwnerGUID() == GetGUID());
- assert((*itr)->GetTypeId() == TYPEID_UNIT);
- if(AddUInt64Value(UNIT_FIELD_SUMMON, (*itr)->GetGUID()))
+ //Check if there is another minion
+ for(ControlList::iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr)
{
- //show another pet bar if there is no charm bar
- if(GetTypeId() == TYPEID_PLAYER && !GetCharmGUID() && ((Creature*)(*itr))->HasSummonMask(SUMMON_MASK_GUARDIAN))
+ if(GetCharmGUID() == (*itr)->GetGUID())
+ continue;
+
+ assert((*itr)->GetOwnerGUID() == GetGUID());
+ assert((*itr)->GetTypeId() == TYPEID_UNIT);
+
+ if(!((Creature*)(*itr))->HasSummonMask(SUMMON_MASK_GUARDIAN))
+ continue;
+
+ if(AddUInt64Value(UNIT_FIELD_SUMMON, (*itr)->GetGUID()))
{
- if(((Creature*)(*itr))->isPet())
- ((Player*)this)->PetSpellInitialize();
- else
- ((Player*)this)->CharmSpellInitialize();
+ //show another pet bar if there is no charm bar
+ if(GetTypeId() == TYPEID_PLAYER && !GetCharmGUID() && ((Creature*)(*itr))->HasSummonMask(SUMMON_MASK_GUARDIAN))
+ {
+ if(((Creature*)(*itr))->isPet())
+ ((Player*)this)->PetSpellInitialize();
+ else
+ ((Player*)this)->CharmSpellInitialize();
+ }
}
+ break;
}
- break;
}
}
+ //else if(minion->m_Properties && minion->m_Properties->Type == SUMMON_TYPE_MINIPET)
+ // RemoveUInt64Value(UNIT_FIELD_CRITTER, minion->GetGUID());
}
}