diff options
Diffstat (limited to 'src/server/game/Grids/Notifiers')
| -rw-r--r-- | src/server/game/Grids/Notifiers/GridNotifiers.cpp | 16 | ||||
| -rw-r--r-- | src/server/game/Grids/Notifiers/GridNotifiers.h | 6 |
2 files changed, 13 insertions, 9 deletions
diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.cpp b/src/server/game/Grids/Notifiers/GridNotifiers.cpp index 363d6927cc1..570819afca1 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.cpp +++ b/src/server/game/Grids/Notifiers/GridNotifiers.cpp @@ -106,10 +106,10 @@ void VisibleChangesNotifier::Visit(CreatureMapType &m) void VisibleChangesNotifier::Visit(DynamicObjectMapType &m) { for (DynamicObjectMapType::iterator iter = m.begin(); iter != m.end(); ++iter) - if (IS_PLAYER_GUID(iter->GetSource()->GetCasterGUID())) - if (Player* caster = (Player*)iter->GetSource()->GetCaster()) - if (caster->m_seer == iter->GetSource()) - caster->UpdateVisibilityOf(&i_object); + if (Unit* caster = iter->GetSource()->GetCaster()) + if (Player* player = caster->ToPlayer()) + if (player->m_seer == iter->GetSource()) + player->UpdateVisibilityOf(&i_object); } inline void CreatureUnitRelocationWorker(Creature* c, Unit* u) @@ -299,12 +299,12 @@ void MessageDistDeliverer::Visit(DynamicObjectMapType &m) if (target->GetExactDist2dSq(i_source) > i_distSq) continue; - if (IS_PLAYER_GUID(target->GetCasterGUID())) + if (Unit* caster = target->GetCaster()) { // Send packet back to the caster if the caster has vision of dynamic object - Player* caster = (Player*)target->GetCaster(); - if (caster && caster->m_seer == target) - SendPacket(caster); + Player* player = caster->ToPlayer(); + if (player && player->m_seer == target) + SendPacket(player); } } } diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index 6984321e55b..209d2527e0d 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -132,10 +132,14 @@ namespace Trinity Player const* skipped_receiver; MessageDistDeliverer(WorldObject* src, WorldPacket* msg, float dist, bool own_team_only = false, Player const* skipped = NULL) : i_source(src), i_message(msg), i_phaseMask(src->GetPhaseMask()), i_distSq(dist * dist) - , team((own_team_only && src->GetTypeId() == TYPEID_PLAYER) ? ((Player*)src)->GetTeam() : 0) + , team(0) , skipped_receiver(skipped) { + if (own_team_only) + if (Player* player = src->ToPlayer()) + team = player->GetTeam(); } + void Visit(PlayerMapType &m); void Visit(CreatureMapType &m); void Visit(DynamicObjectMapType &m); |
