aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjoschiwald <joschiwald.trinity@gmail.com>2017-05-05 13:31:25 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-05-05 13:31:25 +0200
commit272d2a29e5e581c0d447ef55e5a3834e366fd282 (patch)
tree0f3377faacc0e22e2315ed417f45bb5aa65513cd /src
parent1a305fb6b9723052b2ccb95e5812896dcc035b27 (diff)
Core/Entities: Tweak WorldObject::IsNeverVisible to pass the seer
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp4
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h3
-rw-r--r--src/server/game/Entities/Object/Object.h2
-rw-r--r--src/server/game/Entities/Player/Player.cpp4
-rw-r--r--src/server/game/Entities/Player/Player.h2
-rw-r--r--src/server/game/Server/Packets/SpellPackets.h2
6 files changed, 8 insertions, 9 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index e2dfed4fb8c..99633402afe 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -1039,9 +1039,9 @@ void GameObject::SaveRespawnTime()
GetMap()->SaveGORespawnTime(m_spawnId, m_respawnTime);
}
-bool GameObject::IsNeverVisible() const
+bool GameObject::IsNeverVisibleFor(WorldObject const* seer) const
{
- if (WorldObject::IsNeverVisible())
+ if (WorldObject::IsNeverVisibleFor(seer))
return true;
if (GetGoType() == GAMEOBJECT_TYPE_SPELL_FOCUS && GetGOInfo()->spellFocus.serverOnly == 1)
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index 7e265ebf2cd..49b91159d94 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -1091,8 +1091,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
void TriggeringLinkedGameObject(uint32 trapEntry, Unit* target);
- bool IsNeverVisible() const override;
-
+ bool IsNeverVisibleFor(WorldObject const* seer) const override;
bool IsAlwaysVisibleFor(WorldObject const* seer) const override;
bool IsInvisibleDueToDespawn() const override;
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index 71ce53919ce..bf21bd1db21 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -742,7 +742,7 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
void SetLocationMapId(uint32 _mapId) { m_mapId = _mapId; }
void SetLocationInstanceId(uint32 _instanceId) { m_InstanceId = _instanceId; }
- virtual bool IsNeverVisible() const { return !IsInWorld(); }
+ virtual bool IsNeverVisibleFor(WorldObject const* /*seer*/) const { return !IsInWorld(); }
virtual bool IsAlwaysVisibleFor(WorldObject const* /*seer*/) const { return false; }
virtual bool IsInvisibleDueToDespawn() const { return false; }
//difference from IsAlwaysVisibleFor: 1. after distance check; 2. use owner or charmer as seer
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index a7e773a9039..6b83425c65c 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -22963,9 +22963,9 @@ bool Player::HaveAtClient(Object const* u) const
return u == this || m_clientGUIDs.find(u->GetGUID()) != m_clientGUIDs.end();
}
-bool Player::IsNeverVisible() const
+bool Player::IsNeverVisibleFor(WorldObject const* seer) const
{
- if (Unit::IsNeverVisible())
+ if (Unit::IsNeverVisibleFor(seer))
return true;
if (GetSession()->PlayerLogout() || GetSession()->PlayerLoading())
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 19ccb7ce3e7..1e43aaf88ff 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -2346,7 +2346,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
bool HaveAtClient(Object const* u) const;
- bool IsNeverVisible() const override;
+ bool IsNeverVisibleFor(WorldObject const* seer) const override;
bool IsVisibleGloballyFor(Player const* player) const;
diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h
index bc0cd40713e..32c05af10af 100644
--- a/src/server/game/Server/Packets/SpellPackets.h
+++ b/src/server/game/Server/Packets/SpellPackets.h
@@ -786,7 +786,7 @@ namespace WorldPackets
bool SpeedAsTime = false;
float TravelSpeed = 0.0f;
float UnkZero = 0.0f; // Always zero
- G3D::Vector3 SourceOrientation; // Orientation is z
+ G3D::Vector3 SourceOrientation; // Vector of rotations, Orientation is z
G3D::Vector3 TargetLocation; // Exclusive with Target
};