diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h index 5b1ed3b0b0b..97333c937eb 100644 --- a/src/server/game/Entities/GameObject/GameObject.h +++ b/src/server/game/Entities/GameObject/GameObject.h @@ -402,8 +402,8 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject TransportBase* ToTransportBase() { return const_cast(const_cast(this)->ToTransportBase()); } TransportBase const* ToTransportBase() const; - Transport* ToTransport() { if (GetGOInfo()->type == GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT) return reinterpret_cast(this); else return nullptr; } - Transport const* ToTransport() const { if (GetGOInfo()->type == GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT) return reinterpret_cast(this); else return nullptr; } + Transport* ToTransport() { return GetGoType() == GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT ? reinterpret_cast(this) : nullptr; } + Transport const* ToTransport() const { return GetGoType() == GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT ? reinterpret_cast(this) : nullptr; } Position const& GetStationaryPosition() const override { return m_stationaryPosition; } void RelocateStationaryPosition(float x, float y, float z, float o) { m_stationaryPosition.Relocate(x, y, z, o); } diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h index bb3bc76436a..874f1a898f1 100644 --- a/src/server/game/Entities/Item/Item.h +++ b/src/server/game/Entities/Item/Item.h @@ -246,8 +246,8 @@ class TC_GAME_API Item : public Object void SaveRefundDataToDB(); void DeleteRefundDataFromDB(CharacterDatabaseTransaction* trans); - Bag* ToBag() { if (IsBag()) return reinterpret_cast(this); else return nullptr; } - Bag const* ToBag() const { if (IsBag()) return reinterpret_cast(this); else return nullptr; } + Bag* ToBag() { return IsBag() ? reinterpret_cast(this) : nullptr; } + Bag const* ToBag() const { return IsBag() ? reinterpret_cast(this) : nullptr; } AzeriteItem* ToAzeriteItem() { return IsAzeriteItem() ? reinterpret_cast(this) : nullptr; } AzeriteItem const* ToAzeriteItem() const { return IsAzeriteItem() ? reinterpret_cast(this) : nullptr; } AzeriteEmpoweredItem* ToAzeriteEmpoweredItem() { return IsAzeriteEmpoweredItem() ? reinterpret_cast(this) : nullptr; } diff --git a/src/server/game/Entities/Object/BaseEntity.h b/src/server/game/Entities/Object/BaseEntity.h index 6bde140c4f3..bed8fa3ae51 100644 --- a/src/server/game/Entities/Object/BaseEntity.h +++ b/src/server/game/Entities/Object/BaseEntity.h @@ -151,8 +151,8 @@ class TC_GAME_API BaseEntity virtual void AddToWorld(); virtual void RemoveFromWorld(); - static ObjectGuid GetGUID(BaseEntity const* o) { return o ? o->GetGUID() : ObjectGuid::Empty; } ObjectGuid const& GetGUID() const { return m_guid; } + static ObjectGuid GetGUID(BaseEntity const* o) { return o ? o->GetGUID() : ObjectGuid::Empty; } TypeID GetTypeId() const { return m_objectTypeId; } bool isType(TypeMask mask) const { return (ObjectTypeMask[m_objectTypeId] & mask) != 0; } diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 33fc45d5617..a045de03222 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -797,29 +797,32 @@ float WorldObject::GetVisibilityRange() const float WorldObject::GetSightRange(WorldObject const* target) const { - if (ToUnit()) + if (IsUnit()) { - if (ToPlayer()) + if (Player const* player = ToPlayer()) { - if (target && target->IsVisibilityOverridden() && !target->ToPlayer()) - return *target->m_visibilityDistanceOverride; - else if (target && target->IsFarVisible() && !target->ToPlayer()) - return MAX_VISIBILITY_DISTANCE; - else if (ToPlayer()->GetCinematicMgr()->IsOnCinematic()) + if (target && !target->IsPlayer()) + { + if (target->IsVisibilityOverridden()) + return *target->m_visibilityDistanceOverride; + if (target->IsFarVisible()) + return MAX_VISIBILITY_DISTANCE; + } + + if (player->GetCinematicMgr()->IsOnCinematic()) return DEFAULT_VISIBILITY_INSTANCE; - else - return GetMap()->GetVisibilityRange(); + + return GetMap()->GetVisibilityRange(); } - else if (ToCreature()) - return ToCreature()->m_SightDistance; - else - return SIGHT_RANGE_UNIT; + + if (Creature const* creature = ToCreature()) + return creature->m_SightDistance; + + return SIGHT_RANGE_UNIT; } - if (ToDynObject() && isActiveObject()) - { + if (IsDynObject() && isActiveObject()) return GetMap()->GetVisibilityRange(); - } return 0.0f; } @@ -1589,8 +1592,8 @@ ObjectGuid WorldObject::GetCharmerOrOwnerOrOwnGUID() const { ObjectGuid guid = GetCharmerOrOwnerGUID(); if (!guid.IsEmpty()) - return guid; - return GetGUID(); + guid = GetGUID(); + return guid; } Unit* WorldObject::GetOwner() const diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index f5cdd6185e4..9be5f274dc0 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -105,60 +105,60 @@ class TC_GAME_API Object : public BaseEntity virtual bool hasQuest(uint32 /* quest_id */) const { return false; } virtual bool hasInvolvedQuest(uint32 /* quest_id */) const { return false; } - static WorldObject* ToWorldObject(Object* o) { return o ? o->ToWorldObject() : nullptr; } - static WorldObject const* ToWorldObject(Object const* o) { return o ? o->ToWorldObject() : nullptr; } - WorldObject* ToWorldObject() { if (IsWorldObject()) return reinterpret_cast(this); else return nullptr; } - WorldObject const* ToWorldObject() const { if (IsWorldObject()) return reinterpret_cast(this); else return nullptr; } + WorldObject* ToWorldObject() { return IsWorldObject() ? reinterpret_cast(this) : nullptr; } + WorldObject const* ToWorldObject() const { return IsWorldObject() ? reinterpret_cast(this) : nullptr; } + static WorldObject* ToWorldObject(Object* o) { return o && o->IsWorldObject() ? reinterpret_cast(o) : nullptr; } + static WorldObject const* ToWorldObject(Object const* o) { return o && o->IsWorldObject() ? reinterpret_cast(o) : nullptr; } - static Item* ToItem(Object* o) { return o ? o->ToItem() : nullptr; } - static Item const* ToItem(Object const* o) { return o ? o->ToItem() : nullptr; } - Item* ToItem() { if (IsItem()) return reinterpret_cast(this); else return nullptr; } - Item const* ToItem() const { if (IsItem()) return reinterpret_cast(this); else return nullptr; } + Item* ToItem() { return IsItem() ? reinterpret_cast(this) : nullptr; } + Item const* ToItem() const { return IsItem() ? reinterpret_cast(this) : nullptr; } + static Item* ToItem(Object* o) { return o && o->IsItem() ? reinterpret_cast(o) : nullptr; } + static Item const* ToItem(Object const* o) { return o && o->IsItem() ? reinterpret_cast(o) : nullptr; } - static Player* ToPlayer(Object* o) { return o ? o->ToPlayer() : nullptr; } - static Player const* ToPlayer(Object const* o) { return o ? o->ToPlayer() : nullptr; } - Player* ToPlayer() { if (IsPlayer()) return reinterpret_cast(this); else return nullptr; } - Player const* ToPlayer() const { if (IsPlayer()) return reinterpret_cast(this); else return nullptr; } + Unit* ToUnit() { return IsUnit() ? reinterpret_cast(this) : nullptr; } + Unit const* ToUnit() const { return IsUnit() ? reinterpret_cast(this) : nullptr; } + static Unit* ToUnit(Object* o) { return o && o->IsUnit() ? reinterpret_cast(o) : nullptr; } + static Unit const* ToUnit(Object const* o) { return o && o->IsUnit() ? reinterpret_cast(o) : nullptr; } - static Creature* ToCreature(Object* o) { return o ? o->ToCreature() : nullptr; } - static Creature const* ToCreature(Object const* o) { return o ? o->ToCreature() : nullptr; } - Creature* ToCreature() { if (IsCreature()) return reinterpret_cast(this); else return nullptr; } - Creature const* ToCreature() const { if (IsCreature()) return reinterpret_cast(this); else return nullptr; } + Creature* ToCreature() { return IsCreature() ? reinterpret_cast(this) : nullptr; } + Creature const* ToCreature() const { return IsCreature() ? reinterpret_cast(this) : nullptr; } + static Creature* ToCreature(Object* o) { return o && o->IsCreature() ? reinterpret_cast(o) : nullptr; } + static Creature const* ToCreature(Object const* o) { return o && o->IsCreature() ? reinterpret_cast(o) : nullptr; } - static Unit* ToUnit(Object* o) { return o ? o->ToUnit() : nullptr; } - static Unit const* ToUnit(Object const* o) { return o ? o->ToUnit() : nullptr; } - Unit* ToUnit() { if (IsUnit()) return reinterpret_cast(this); else return nullptr; } - Unit const* ToUnit() const { if (IsUnit()) return reinterpret_cast(this); else return nullptr; } + Player* ToPlayer() { return IsPlayer() ? reinterpret_cast(this) : nullptr; } + Player const* ToPlayer() const { return IsPlayer() ? reinterpret_cast(this) : nullptr; } + static Player* ToPlayer(Object* o) { return o && o->IsPlayer() ? reinterpret_cast(o) : nullptr; } + static Player const* ToPlayer(Object const* o) { return o && o->IsPlayer() ? reinterpret_cast(o) : nullptr; } - static GameObject* ToGameObject(Object* o) { return o ? o->ToGameObject() : nullptr; } - static GameObject const* ToGameObject(Object const* o) { return o ? o->ToGameObject() : nullptr; } - GameObject* ToGameObject() { if (IsGameObject()) return reinterpret_cast(this); else return nullptr; } - GameObject const* ToGameObject() const { if (IsGameObject()) return reinterpret_cast(this); else return nullptr; } + GameObject* ToGameObject() { return IsGameObject() ? reinterpret_cast(this) : nullptr; } + GameObject const* ToGameObject() const { return IsGameObject() ? reinterpret_cast(this) : nullptr; } + static GameObject* ToGameObject(Object* o) { return o && o->IsGameObject() ? reinterpret_cast(o) : nullptr; } + static GameObject const* ToGameObject(Object const* o) { return o && o->IsGameObject() ? reinterpret_cast(o) : nullptr; } - static Corpse* ToCorpse(Object* o) { return o ? o->ToCorpse() : nullptr; } - static Corpse const* ToCorpse(Object const* o) { return o ? o->ToCorpse() : nullptr; } - Corpse* ToCorpse() { if (IsCorpse()) return reinterpret_cast(this); else return nullptr; } - Corpse const* ToCorpse() const { if (IsCorpse()) return reinterpret_cast(this); else return nullptr; } + Corpse* ToCorpse() { return IsCorpse() ? reinterpret_cast(this) : nullptr; } + Corpse const* ToCorpse() const { return IsCorpse() ? reinterpret_cast(this) : nullptr; } + static Corpse* ToCorpse(Object* o) { return o && o->IsCorpse() ? reinterpret_cast(o) : nullptr; } + static Corpse const* ToCorpse(Object const* o) { return o && o->IsCorpse() ? reinterpret_cast(o) : nullptr; } - static DynamicObject* ToDynObject(Object* o) { return o ? o->ToDynObject() : nullptr; } - static DynamicObject const* ToDynObject(Object const* o) { return o ? o->ToDynObject() : nullptr; } - DynamicObject* ToDynObject() { if (IsDynObject()) return reinterpret_cast(this); else return nullptr; } - DynamicObject const* ToDynObject() const { if (IsDynObject()) return reinterpret_cast(this); else return nullptr; } + DynamicObject* ToDynObject() { return IsDynObject() ? reinterpret_cast(this) : nullptr; } + DynamicObject const* ToDynObject() const { return IsDynObject() ? reinterpret_cast(this) : nullptr; } + static DynamicObject* ToDynObject(Object* o) { return o && o->IsDynObject() ? reinterpret_cast(o) : nullptr; } + static DynamicObject const* ToDynObject(Object const* o) { return o && o->IsDynObject() ? reinterpret_cast(o) : nullptr; } - static AreaTrigger* ToAreaTrigger(Object* o) { return o ? o->ToAreaTrigger() : nullptr; } - static AreaTrigger const* ToAreaTrigger(Object const* o) { return o ? o->ToAreaTrigger() : nullptr; } - AreaTrigger* ToAreaTrigger() { if (IsAreaTrigger()) return reinterpret_cast(this); else return nullptr; } - AreaTrigger const* ToAreaTrigger() const { if (IsAreaTrigger()) return reinterpret_cast(this); else return nullptr; } + AreaTrigger* ToAreaTrigger() { return IsAreaTrigger() ? reinterpret_cast(this) : nullptr; } + AreaTrigger const* ToAreaTrigger() const { return IsAreaTrigger() ? reinterpret_cast(this) : nullptr; } + static AreaTrigger* ToAreaTrigger(Object* o) { return o && o->IsAreaTrigger() ? reinterpret_cast(o) : nullptr; } + static AreaTrigger const* ToAreaTrigger(Object const* o) { return o && o->IsAreaTrigger() ? reinterpret_cast(o) : nullptr; } - static SceneObject* ToSceneObject(Object* o) { return o ? o->ToSceneObject() : nullptr; } - static SceneObject const* ToSceneObject(Object const* o) { return o ? o->ToSceneObject() : nullptr; } - SceneObject* ToSceneObject() { if (IsSceneObject()) return reinterpret_cast(this); else return nullptr; } - SceneObject const* ToSceneObject() const { if (IsSceneObject()) return reinterpret_cast(this); else return nullptr; } + SceneObject* ToSceneObject() { return IsSceneObject() ? reinterpret_cast(this) : nullptr; } + SceneObject const* ToSceneObject() const { return IsSceneObject() ? reinterpret_cast(this) : nullptr; } + static SceneObject* ToSceneObject(Object* o) { return o && o->IsSceneObject() ? reinterpret_cast(o) : nullptr; } + static SceneObject const* ToSceneObject(Object const* o) { return o && o->IsSceneObject() ? reinterpret_cast(o) : nullptr; } - static Conversation* ToConversation(Object* o) { return o ? o->ToConversation() : nullptr; } - static Conversation const* ToConversation(Object const* o) { return o ? o->ToConversation() : nullptr; } - Conversation* ToConversation() { if (IsConversation()) return reinterpret_cast(this); else return nullptr; } - Conversation const* ToConversation() const { if (IsConversation()) return reinterpret_cast(this); else return nullptr; } + Conversation* ToConversation() { return IsConversation() ? reinterpret_cast(this) : nullptr; } + Conversation const* ToConversation() const { return IsConversation() ? reinterpret_cast(this) : nullptr; } + static Conversation* ToConversation(Object* o) { return o && o->IsConversation() ? reinterpret_cast(o) : nullptr; } + static Conversation const* ToConversation(Object const* o) { return o && o->IsConversation() ? reinterpret_cast(o) : nullptr; } UF::UpdateField m_objectData; diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index ed291549b04..8964e1408d8 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1812,14 +1812,14 @@ class TC_GAME_API Unit : public WorldObject virtual bool IsLoading() const { return false; } bool IsDuringRemoveFromWorld() const {return m_duringRemoveFromWorld;} - Pet* ToPet() { if (IsPet()) return reinterpret_cast(this); else return nullptr; } - Pet const* ToPet() const { if (IsPet()) return reinterpret_cast(this); else return nullptr; } + Pet* ToPet() { return IsPet() ? reinterpret_cast(this) : nullptr; } + Pet const* ToPet() const { return IsPet() ? reinterpret_cast(this) : nullptr; } - Totem* ToTotem() { if (IsTotem()) return reinterpret_cast(this); else return nullptr; } - Totem const* ToTotem() const { if (IsTotem()) return reinterpret_cast(this); else return nullptr; } + Totem* ToTotem() { return IsTotem() ? reinterpret_cast(this) : nullptr; } + Totem const* ToTotem() const { return IsTotem() ? reinterpret_cast(this) : nullptr; } - TempSummon* ToTempSummon() { if (IsSummon()) return reinterpret_cast(this); else return nullptr; } - TempSummon const* ToTempSummon() const { if (IsSummon()) return reinterpret_cast(this); else return nullptr; } + TempSummon* ToTempSummon() { return IsSummon() ? reinterpret_cast(this) : nullptr; } + TempSummon const* ToTempSummon() const { return IsSummon() ? reinterpret_cast(this) : nullptr; } ObjectGuid GetTarget() const { return m_unitData->Target; } virtual void SetTarget(ObjectGuid const& /*guid*/) = 0; diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h index d78bb09700b..6c5147727d3 100644 --- a/src/server/game/Maps/Map.h +++ b/src/server/game/Maps/Map.h @@ -487,11 +487,11 @@ class TC_GAME_API Map : public GridRefManager return nullptr; } - InstanceMap* ToInstanceMap() { if (IsDungeon()) return reinterpret_cast(this); else return nullptr; } - InstanceMap const* ToInstanceMap() const { if (IsDungeon()) return reinterpret_cast(this); return nullptr; } + InstanceMap* ToInstanceMap() { return IsDungeon() ? reinterpret_cast(this) : nullptr; } + InstanceMap const* ToInstanceMap() const { return IsDungeon() ? reinterpret_cast(this) : nullptr; } - BattlegroundMap* ToBattlegroundMap() { if (IsBattlegroundOrArena()) return reinterpret_cast(this); else return nullptr; } - BattlegroundMap const* ToBattlegroundMap() const { if (IsBattlegroundOrArena()) return reinterpret_cast(this); return nullptr; } + BattlegroundMap* ToBattlegroundMap() { return IsBattlegroundOrArena() ? reinterpret_cast(this) : nullptr; } + BattlegroundMap const* ToBattlegroundMap() const { return IsBattlegroundOrArena() ? reinterpret_cast(this) : nullptr; } bool isInLineOfSight(PhaseShift const& phaseShift, float x1, float y1, float z1, float x2, float y2, float z2, LineOfSightChecks checks, VMAP::ModelIgnoreFlags ignoreFlags) const; void Balance() { _dynamicTree.balance(); }