Esempio n. 1
0
    public WorldObject GetObjectByTypeMask(WorldObject p, ObjectGuid guid, TypeMask typemask)
    {
        switch (guid.GetHigh())
        {
        case HighGuid.Item:
            if (typemask.HasAnyFlag(TypeMask.Item) && p.IsTypeId(TypeId.Player))
            {
                return(((Player)p).GetItemByGuid(guid));
            }
            break;

        case HighGuid.Player:
            if (typemask.HasAnyFlag(TypeMask.Player))
            {
                return(GetPlayer(p, guid));
            }
            break;

        case HighGuid.Transport:
        case HighGuid.GameObject:
            if (typemask.HasAnyFlag(TypeMask.GameObject))
            {
                return(GetGameObject(p, guid));
            }
            break;

        case HighGuid.Creature:
        case HighGuid.Vehicle:
            if (typemask.HasAnyFlag(TypeMask.Unit))
            {
                return(GetCreature(p, guid));
            }
            break;

        case HighGuid.Pet:
            if (typemask.HasAnyFlag(TypeMask.Unit))
            {
                return(GetPet(p, guid));
            }
            break;

        case HighGuid.DynamicObject:
            if (typemask.HasAnyFlag(TypeMask.DynamicObject))
            {
                return(GetDynamicObject(p, guid));
            }
            break;

        case HighGuid.AreaTrigger:
            if (typemask.HasAnyFlag(TypeMask.AreaTrigger))
            {
                return(GetAreaTrigger(p, guid));
            }
            break;

        case HighGuid.Conversation:
            if (typemask.HasAnyFlag(TypeMask.Conversation))
            {
                return(GetConversation(p, guid));
            }
            break;

        case HighGuid.Corpse:
            break;
        }

        return(null);
    }