aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Item/Item.cpp10
-rw-r--r--src/server/game/Entities/Item/Item.h3
-rw-r--r--src/server/game/Entities/Object/Object.cpp42
-rw-r--r--src/server/game/Entities/Object/Object.h14
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp30
-rw-r--r--src/server/game/Entities/Unit/Unit.h10
-rw-r--r--src/server/game/Maps/Map.cpp4
-rw-r--r--src/server/game/Server/Protocol/Handlers/QuestHandler.cpp6
8 files changed, 14 insertions, 105 deletions
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index ed17cf4154c..6efc320d3d2 100644
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -257,16 +257,6 @@ Item::Item()
m_paidExtendedCost = 0;
}
-inline Bag* Item::ToBag()
-{
- return dynamic_cast<Bag*>(this);
-}
-
-inline const Bag* Item::ToBag() const
-{
- return dynamic_cast<const Bag*>(this);
-}
-
bool Item::Create(uint32 guidlow, uint32 itemid, Player const* owner)
{
Object::_Create(guidlow, 0, HIGHGUID_ITEM);
diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h
index fc77edd1204..c2b18badf9b 100644
--- a/src/server/game/Entities/Item/Item.h
+++ b/src/server/game/Entities/Item/Item.h
@@ -347,9 +347,6 @@ class Item : public Object
void BuildUpdate(UpdateDataMapType&);
- Bag* ToBag();
- const Bag* ToBag() const;
-
private:
std::string m_text;
uint8 m_slot;
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index b2344f21873..203b6a3e1b6 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -101,7 +101,7 @@ Object::~Object()
{
sLog.outCrash("Object::~Object - guid="UI64FMTD", typeid=%d, entry=%u deleted but still in world!!", GetGUID(), GetTypeId(), GetEntry());
if (isType(TYPEMASK_ITEM))
- sLog.outCrash("Item slot %u", this->ToItem()->GetSlot());
+ sLog.outCrash("Item slot %u", ((Item*)this)->GetSlot());
ASSERT(false);
RemoveFromWorld();
}
@@ -1135,46 +1135,6 @@ bool Object::PrintIndexError(uint32 index, bool set) const
return false;
}
-inline Unit* Object::ToUnit()
-{
- return dynamic_cast<Unit*>(this);
-}
-
-inline const Unit* Object::ToUnit() const
-{
- return dynamic_cast<const Unit*>(this);
-}
-
-inline Player* Object::ToPlayer()
-{
- return dynamic_cast<Player*>(this);
-}
-
-inline const Player* Object::ToPlayer() const
-{
- return dynamic_cast<const Player*>(this);
-}
-
-inline Creature* Object::ToCreature()
-{
- return dynamic_cast<Creature*>(this);
-}
-
-inline const Creature* Object::ToCreature() const
-{
- return dynamic_cast<const Creature*>(this);
-}
-
-inline Item* Object::ToItem()
-{
- return dynamic_cast<Item*>(this);
-}
-
-inline const Item* Object::ToItem() const
-{
- return dynamic_cast<const Item*>(this);
-}
-
bool Position::HasInLine(const Unit * const target, float distance, float width) const
{
if (!HasInArc(M_PI, target) || !target->IsWithinDist3d(m_positionX, m_positionY, m_positionZ, distance))
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index af0c7fb76c5..af501823d4a 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -116,8 +116,6 @@ class CreatureAI;
class ZoneScript;
class Unit;
class Transport;
-class Item;
-
typedef UNORDERED_MAP<Player*, UpdateData> UpdateDataMapType;
@@ -321,14 +319,10 @@ class Object
// FG: some hacky helpers
void ForceValuesUpdateAtIndex(uint32);
- Unit* ToUnit();
- const Unit* ToUnit() const;
- Player* ToPlayer();
- const Player* ToPlayer() const;
- Creature* ToCreature();
- const Creature* ToCreature() const;
- Item* ToItem();
- const Item* ToItem() const;
+ Player* ToPlayer(){ if (GetTypeId() == TYPEID_PLAYER) return reinterpret_cast<Player*>(this); else return NULL; }
+ const Player* ToPlayer() const { if (GetTypeId() == TYPEID_PLAYER) return (const Player*)((Player*)this); else return NULL; }
+ Creature* ToCreature(){ if (GetTypeId() == TYPEID_UNIT) return reinterpret_cast<Creature*>(this); else return NULL; }
+ const Creature* ToCreature() const {if (GetTypeId() == TYPEID_UNIT) return (const Creature*)((Creature*)this); else return NULL; }
protected:
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 240a4e290cf..6f39eb63af8 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -16740,36 +16740,6 @@ uint32 Unit::GetRemainingDotDamage(uint64 caster, uint32 spellId, uint8 effectIn
return amount;
}
-inline Pet* Unit::ToPet()
-{
- return dynamic_cast<Pet*>(this);
-}
-
-inline const Pet* Unit::ToPet() const
-{
- return dynamic_cast<const Pet*>(this);
-}
-
-inline Totem* Unit::ToTotem()
-{
- return dynamic_cast<Totem*>(this);
-}
-
-inline const Totem* Unit::ToTotem() const
-{
- return dynamic_cast<const Totem*>(this);
-}
-
-inline TempSummon* Unit::ToTempSummon()
-{
- return dynamic_cast<TempSummon*>(this);
-}
-
-inline const TempSummon* Unit::ToTempSummon() const
-{
- return dynamic_cast<const TempSummon*>(this);
-}
-
void CharmInfo::SetIsCommandAttack(bool val)
{
m_isCommandAttack = val;
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 7958fe055dc..de919cccec2 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -1980,12 +1980,10 @@ class Unit : public WorldObject
virtual bool isBeingLoaded() const { return false;}
bool IsDuringRemoveFromWorld() const {return m_duringRemoveFromWorld;}
- Pet* ToPet();
- const Pet* ToPet() const;
- Totem* ToTotem();
- const Totem* ToTotem() const;
- TempSummon* ToTempSummon();
- const TempSummon* ToTempSummon() const;
+ Pet* ToPet(){ if (isPet()) return reinterpret_cast<Pet*>(this); else return NULL; }
+ Totem* ToTotem(){ if (isTotem()) return reinterpret_cast<Totem*>(this); else return NULL; }
+ TempSummon* ToTempSummon() { if (isSummon()) return reinterpret_cast<TempSummon*>(this); else return NULL; }
+ const TempSummon* ToTempSummon() const { if (isSummon()) return reinterpret_cast<const TempSummon*>(this); else return NULL; }
protected:
explicit Unit ();
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index bb37c748e0f..eed56efd026 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -2787,7 +2787,7 @@ void Map::ScriptsStart(ScriptMapMap const& scripts, uint32 id, Object* source, O
// prepare static data
uint64 sourceGUID = source ? source->GetGUID() : (uint64)0; //some script commands doesn't have source
uint64 targetGUID = target ? target->GetGUID() : (uint64)0;
- uint64 ownerGUID = (source->GetTypeId() == TYPEID_ITEM) ? source->ToItem()->GetOwnerGUID() : (uint64)0;
+ uint64 ownerGUID = (source->GetTypeId() == TYPEID_ITEM) ? ((Item*)source)->GetOwnerGUID() : (uint64)0;
///- Schedule script execution for all scripts in the script map
ScriptMap const *s2 = &(s->second);
@@ -2822,7 +2822,7 @@ void Map::ScriptCommandStart(ScriptInfo const& script, uint32 delay, Object* sou
// prepare static data
uint64 sourceGUID = source ? source->GetGUID() : (uint64)0;
uint64 targetGUID = target ? target->GetGUID() : (uint64)0;
- uint64 ownerGUID = (source->GetTypeId() == TYPEID_ITEM) ? source->ToItem()->GetOwnerGUID() : (uint64)0;
+ uint64 ownerGUID = (source->GetTypeId() == TYPEID_ITEM) ? ((Item*)source)->GetOwnerGUID() : (uint64)0;
ScriptAction sa;
sa.sourceGUID = sourceGUID;
diff --git a/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp b/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp
index 0f336892c79..8c7b87be79c 100644
--- a/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp
@@ -193,13 +193,13 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket & recv_data)
case TYPEID_ITEM:
case TYPEID_CONTAINER:
{
- sScriptMgr.ItemQuestAccept(_player, pObject->ToItem(), qInfo);
+ sScriptMgr.ItemQuestAccept(_player, ((Item*)pObject), qInfo);
// destroy not required for quest finish quest starting item
bool destroyItem = true;
for (int i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)
{
- if (qInfo->ReqItemId[i] == pObject->ToItem()->GetEntry() && pObject->ToItem()->GetProto()->MaxCount > 0)
+ if ((qInfo->ReqItemId[i] == ((Item*)pObject)->GetEntry()) && (((Item*)pObject)->GetProto()->MaxCount > 0))
{
destroyItem = false;
break;
@@ -207,7 +207,7 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPacket & recv_data)
}
if (destroyItem)
- _player->DestroyItem(pObject->ToItem()->GetBagSlot(), pObject->ToItem()->GetSlot(),true);
+ _player->DestroyItem(((Item*)pObject)->GetBagSlot(), ((Item*)pObject)->GetSlot(),true);
break;
}