aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-02-26 20:43:35 -0600
committermegamage <none@none>2009-02-26 20:43:35 -0600
commitd3a69006675bb5317fab76584d5990b36c2fd5a5 (patch)
tree8a0f3e0033eb694d5aba06db5c1ecc02b690099e /src/game/Unit.cpp
parent39c513776c5dde8b5732df5ba2467d9e9e3e84fd (diff)
parentbc54e91afff9b9a53902439441fa2e63e3da1a9a (diff)
*Merge.
--HG-- branch : trunk
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 52d858f8542..dbffb58c481 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -396,7 +396,7 @@ void Unit::SendMonsterMoveByPath(Path const& path, uint32 start, uint32 end)
data << getMSTime();
data << uint8( 0 );
- data << uint32(((GetUnitMovementFlags() & MOVEMENTFLAG_LEVITATING) || isInFlight())? MOVEFLAG_FLY : MOVEFLAG_WALK);
+ data << uint32(((GetUnitMovementFlags() & MOVEMENTFLAG_LEVITATING) || isInFlight())? (MOVEFLAG_FLY|MOVEFLAG_WALK) : MOVEFLAG_WALK);
data << uint32( traveltime );
data << uint32( pathSize );
data.append( (char*)path.GetNodes(start), pathSize * 4 * 3 );
@@ -4922,7 +4922,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
// 41409 Dementia: Every 5 seconds either gives you -5% damage/healing. (Druid, Shaman, Priest, Warlock, Mage, Paladin)
case 39446:
{
- if(GetTypeId() != TYPEID_PLAYER)
+ if(GetTypeId() != TYPEID_PLAYER || !this->isAlive())
return false;
// Select class defined buff
@@ -7765,25 +7765,19 @@ Unit* Unit::GetNextRandomRaidMemberOrPet(float radius)
void Unit::AddPlayerToVision(Player* plr)
{
- if (m_sharedVision.empty() && GetTypeId() == TYPEID_UNIT
- && !((Creature*)this)->isPet() && !((Creature*)this)->isVehicle())
- {
- setActive(true);
- GetMap()->SwitchGridContainers((Creature*)this, true);
- }
+ setActive(true);
+ if(m_sharedVision.empty())
+ SetWorldObject(true);
m_sharedVision.push_back(plr);
plr->SetFarsightTarget(this);
}
void Unit::RemovePlayerFromVision(Player* plr)
{
+ setActive(false);
m_sharedVision.remove(plr);
- if (m_sharedVision.empty() && GetTypeId() == TYPEID_UNIT
- && !((Creature*)this)->isPet() && !((Creature*)this)->isVehicle())
- {
- setActive(false);
- GetMap()->SwitchGridContainers((Creature*)this, false);
- }
+ if(m_sharedVision.empty())
+ SetWorldObject(false);
plr->ClearFarsight();
}