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; } }
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; } }
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_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); break; case HIGHGUID_CORPSE: break; } 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; }