Object* ObjectAccessor::GetObjectByTypeMask(WorldObject const& p, uint64 guid, uint32 typemask) { switch (GUID_HIPART(guid)) { case HIGHGUID_ITEM: if (typemask & TYPEMASK_ITEM && p.GetTypeId() == TYPEID_PLAYER) return ((Player const&)p).GetItemByGuid(guid); break; case HIGHGUID_PLAYER: if (typemask & TYPEMASK_PLAYER) return GetPlayer(p, guid); break; case HIGHGUID_TRANSPORT: case HIGHGUID_MO_TRANSPORT: case HIGHGUID_GAMEOBJECT: if (typemask & TYPEMASK_GAMEOBJECT) return GetGameObject(p, guid); break; case HIGHGUID_UNIT: case HIGHGUID_PET: if (typemask & TYPEMASK_UNIT) return GetPet(p, guid); break; case HIGHGUID_DYNAMICOBJECT: if (typemask & TYPEMASK_DYNAMICOBJECT) return GetDynamicObject(p, guid); break; case HIGHGUID_CORPSE: break; } return NULL; }
WorldObject* ObjectAccessor::GetWorldObject(WorldObject const& p, uint64 guid) { switch (GUID_HIPART(guid)) { case HIGHGUID_PLAYER: return GetPlayer(p, guid); case HIGHGUID_TRANSPORT: case HIGHGUID_MO_TRANSPORT: case HIGHGUID_GAMEOBJECT: return GetGameObject(p, guid); case HIGHGUID_VEHICLE: case HIGHGUID_UNIT: return GetCreature(p, guid); case HIGHGUID_PET: return GetPet(p, guid); case HIGHGUID_DYNAMICOBJECT: return GetDynamicObject(p, guid); case HIGHGUID_AREATRIGGER: return GetAreaTrigger(p, guid); case HIGHGUID_CORPSE: return GetCorpse(p, guid); default: return NULL; } }
Object* MapMgr::_GetObject(const uint64 & guid) { if(!guid) return NULL; switch(GET_TYPE_FROM_GUID(guid)) { case HIGHGUID_TYPE_GAMEOBJECT: return GetGameObject(GET_LOWGUID_PART(guid)); break; case HIGHGUID_TYPE_UNIT: case HIGHGUID_TYPE_VEHICLE: return GetCreature(GET_LOWGUID_PART(guid)); break; case HIGHGUID_TYPE_DYNAMICOBJECT: return GetDynamicObject((uint32)guid); break; case HIGHGUID_TYPE_TRANSPORTER: return objmgr.GetTransporter(Arcemu::Util::GUID_LOPART(guid)); break; default: return GetUnit(guid); break; } }
WorldObject* ObjectAccessor::GetWorldObject(WorldObject const& p, ObjectGuid const& guid) { switch (guid.GetHigh()) { case HighGuid::Player: return GetPlayer(p, guid); case HighGuid::Transport: case HighGuid::GameObject: return GetGameObject(p, guid); case HighGuid::Vehicle: case HighGuid::Creature: return GetCreature(p, guid); case HighGuid::Pet: return GetPet(p, guid); case HighGuid::DynamicObject: return GetDynamicObject(p, guid); case HighGuid::AreaTrigger: return GetAreaTrigger(p, guid); case HighGuid::Corpse: return GetCorpse(p, guid); default: return nullptr; } }
WorldObject* ObjectAccessor::GetWorldObject(WorldObject const& p, ObjectGuid guid) { switch (guid.GetHigh()) { case HIGHGUID_PLAYER: return GetPlayer(p, guid); case HIGHGUID_TRANSPORT: case HIGHGUID_MO_TRANSPORT: case HIGHGUID_GAMEOBJECT: return GetGameObject(p, guid); case HIGHGUID_VEHICLE: case HIGHGUID_UNIT: return GetCreature(p, guid); case HIGHGUID_PET: return GetPet(p, guid); case HIGHGUID_DYNAMICOBJECT: return GetDynamicObject(p, guid); case HIGHGUID_CORPSE: return GetCorpse(p, guid); default: return NULL; } }
Object* ObjectAccessor::GetObjectByTypeMask(WorldObject const& p, ObjectGuid const& guid, uint32 typemask) { switch (guid.GetHigh()) { case HighGuid::Item: if (typemask & TYPEMASK_ITEM && p.GetTypeId() == TYPEID_PLAYER) return ((Player const&)p).GetItemByGuid(guid); break; case HighGuid::Player: if (typemask & TYPEMASK_PLAYER) return GetPlayer(p, guid); break; case HighGuid::Transport: case HighGuid::GameObject: if (typemask & TYPEMASK_GAMEOBJECT) return GetGameObject(p, guid); break; case HighGuid::Creature: case HighGuid::Vehicle: if (typemask & TYPEMASK_UNIT) return GetCreature(p, guid); break; case HighGuid::Pet: if (typemask & TYPEMASK_UNIT) return GetPet(p, guid); break; case HighGuid::DynamicObject: if (typemask & TYPEMASK_DYNAMICOBJECT) return GetDynamicObject(p, guid); break; case HighGuid::AreaTrigger: if (typemask & TYPEMASK_AREATRIGGER) return GetAreaTrigger(p, guid); case HighGuid::Corpse: break; default: break; } return nullptr; }
Object* ObjectAccessor::GetObjectByTypeMask(WorldObject const &p, uint64 guid, uint32 typemask) { Object *obj = NULL; if(typemask & TYPEMASK_PLAYER) { obj = FindPlayer(guid); if(obj) return obj; } if(typemask & TYPEMASK_UNIT) { obj = GetCreatureOrPetOrVehicle(p,guid); if(obj) return obj; } if(typemask & TYPEMASK_GAMEOBJECT) { obj = GetGameObject(p,guid); if(obj) return obj; } if(typemask & TYPEMASK_DYNAMICOBJECT) { obj = GetDynamicObject(p,guid); if(obj) return obj; } if(typemask & TYPEMASK_ITEM && p.GetTypeId() == TYPEID_PLAYER) { obj = ((Player const &)p).GetItemByGuid( guid ); if(obj) return obj; } return NULL; }