All pastes #616758 Raw Edit

Untitled

public java v1 · immutable
·published 2007-07-12 20:41 UTC
rendered paste body
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.// Jad home page: http://www.kpdus.com/jad.html// Decompiler options: packimports(3) public final class ObjectDef{    public static ObjectDef forID(int i)    {        for(int j = 0; j < 20; j++)            if(cache[j].type == i)                return cache[j];        cacheIndex = (cacheIndex + 1) % 20;        ObjectDef class46 = cache[cacheIndex];        stream.currentOffset = streamIndices[i];        class46.type = i;        class46.setDefaults();        class46.readValues(stream);        return class46;    }    private void setDefaults()    {        anIntArray773 = null;        anIntArray776 = null;        name = null;        description = null;        modifiedModelColors = null;        originalModelColors = null;        anInt744 = 1;        anInt761 = 1;        aBoolean767 = true;        aBoolean757 = true;        hasActions = false;        aBoolean762 = false;        aBoolean769 = false;        aBoolean764 = false;        anInt781 = -1;        anInt775 = 16;        aByte737 = 0;        aByte742 = 0;        actions = null;        anInt746 = -1;        anInt758 = -1;        aBoolean751 = false;        aBoolean779 = true;        anInt748 = 128;        anInt772 = 128;        anInt740 = 128;        anInt768 = 0;        anInt738 = 0;        anInt745 = 0;        anInt783 = 0;        aBoolean736 = false;        aBoolean766 = false;        anInt760 = -1;        anInt774 = -1;        anInt749 = -1;        childrenIDs = null;    }    public void method574(OnDemandFetcher class42_sub1)    {        if(anIntArray773 == null)            return;        for(int j = 0; j < anIntArray773.length; j++)            class42_sub1.method560(anIntArray773[j] & 0xffff, 0);    }    public static void nullLoader()    {        mruNodes1 = null;        mruNodes2 = null;        streamIndices = null;        cache = null;stream = null;    }    public static void unpackConfig(StreamLoader streamLoader)    {        stream = new Stream(streamLoader.getDataForName("loc.dat"));        Stream stream = new Stream(streamLoader.getDataForName("loc.idx"));        int totalObjects = stream.readUnsignedWord();        streamIndices = new int[totalObjects];        int i = 2;        for(int j = 0; j < totalObjects; j++)        {            streamIndices[j] = i;            i += stream.readUnsignedWord();        }        cache = new ObjectDef[20];        for(int k = 0; k < 20; k++)            cache[k] = new ObjectDef();    }    public boolean method577(int i)    {        if(anIntArray776 == null)        {            if(anIntArray773 == null)                return true;            if(i != 10)                return true;            boolean flag1 = true;            for(int k = 0; k < anIntArray773.length; k++)                flag1 &= Model.method463(anIntArray773[k] & 0xffff);            return flag1;        }        for(int j = 0; j < anIntArray776.length; j++)            if(anIntArray776[j] == i)                return Model.method463(anIntArray773[j] & 0xffff);        return true;    }    public Model method578(int i, int j, int k, int l, int i1, int j1, int k1)    {        Model model = method581(i, k1, j);        if(model == null)            return null;        if(aBoolean762 || aBoolean769)            model = new Model(aBoolean762, aBoolean769, model);        if(aBoolean762)        {            int l1 = (k + l + i1 + j1) / 4;            for(int i2 = 0; i2 < model.anInt1626; i2++)            {                int j2 = model.anIntArray1627[i2];                int k2 = model.anIntArray1629[i2];                int l2 = k + ((l - k) * (j2 + 64)) / 128;                int i3 = j1 + ((i1 - j1) * (j2 + 64)) / 128;                int j3 = l2 + ((i3 - l2) * (k2 + 64)) / 128;                model.anIntArray1628[i2] += j3 - l1;            }            model.method467();        }        return model;    }    public boolean method579()    {        if(anIntArray773 == null)            return true;        boolean flag1 = true;        for(int i = 0; i < anIntArray773.length; i++)            flag1 &= Model.method463(anIntArray773[i] & 0xffff);            return flag1;    }    public ObjectDef method580()    {        int i = -1;        if(anInt774 != -1)        {            VarBit varBit = VarBit.cache[anInt774];            int j = varBit.anInt648;            int k = varBit.anInt649;            int l = varBit.anInt650;            int i1 = client.anIntArray1232[l - k];            i = clientInstance.variousSettings[j] >> k & i1;        } else        if(anInt749 != -1)            i = clientInstance.variousSettings[anInt749];        if(i < 0 || i >= childrenIDs.length || childrenIDs[i] == -1)            return null;        else            return forID(childrenIDs[i]);    }    private Model method581(int j, int k, int l)    {        Model model = null;        long l1;        if(anIntArray776 == null)        {            if(j != 10)                return null;            l1 = (long)((type << 6) + l) + ((long)(k + 1) << 32);            Model model_1 = (Model) mruNodes2.insertFromCache(l1);            if(model_1 != null)                return model_1;            if(anIntArray773 == null)                return null;            boolean flag1 = aBoolean751 ^ (l > 3);            int k1 = anIntArray773.length;            for(int i2 = 0; i2 < k1; i2++)            {                int l2 = anIntArray773[i2];                if(flag1)                    l2 += 0x10000;                model = (Model) mruNodes1.insertFromCache(l2);                if(model == null)                {                    model = Model.method462(l2 & 0xffff);                    if(model == null)                        return null;                    if(flag1)                        model.method477();                    mruNodes1.removeFromCache(model, l2);                }                if(k1 > 1)                    aModelArray741s[i2] = model;            }            if(k1 > 1)                model = new Model(k1, aModelArray741s);        } else        {            int i1 = -1;            for(int j1 = 0; j1 < anIntArray776.length; j1++)            {                if(anIntArray776[j1] != j)                    continue;                i1 = j1;                break;            }            if(i1 == -1)                return null;            l1 = (long)((type << 6) + (i1 << 3) + l) + ((long)(k + 1) << 32);            Model model_2 = (Model) mruNodes2.insertFromCache(l1);            if(model_2 != null)                return model_2;            int j2 = anIntArray773[i1];            boolean flag3 = aBoolean751 ^ (l > 3);            if(flag3)                j2 += 0x10000;            model = (Model) mruNodes1.insertFromCache(j2);            if(model == null)            {                model = Model.method462(j2 & 0xffff);                if(model == null)                    return null;                if(flag3)                    model.method477();                mruNodes1.removeFromCache(model, j2);            }        }        boolean flag;        flag = anInt748 != 128 || anInt772 != 128 || anInt740 != 128;        boolean flag2;        flag2 = anInt738 != 0 || anInt745 != 0 || anInt783 != 0;        Model model_3 = new Model(modifiedModelColors == null, Class36.method532(k), l == 0 && k == -1 && !flag && !flag2, model);        if(k != -1)        {            model_3.method469();            model_3.method470(k);            model_3.anIntArrayArray1658 = null;            model_3.anIntArrayArray1657 = null;        }        while(l-- > 0)             model_3.method473();        if(modifiedModelColors != null)        {            for(int k2 = 0; k2 < modifiedModelColors.length; k2++)                model_3.method476(modifiedModelColors[k2], originalModelColors[k2]);        }        if(flag)            model_3.method478(anInt748, anInt740, anInt772);        if(flag2)            model_3.method475(anInt738, anInt745, anInt783);        model_3.method479(64 + aByte737, 768 + aByte742 * 5, -50, -10, -50, !aBoolean769);        if(anInt760 == 1)            model_3.anInt1654 = model_3.modelHeight;        mruNodes2.removeFromCache(model_3, l1);        return model_3;    }    private void readValues(Stream stream)    {        int i = -1;label0:        do        {            int j;            do            {                j = stream.readUnsignedByte();                if(j == 0)                    break label0;                if(j == 1)                {                    int k = stream.readUnsignedByte();                    if(k > 0)                        if(anIntArray773 == null || lowMem)                        {                            anIntArray776 = new int[k];                            anIntArray773 = new int[k];                            for(int k1 = 0; k1 < k; k1++)                            {                                anIntArray773[k1] = stream.readUnsignedWord();                                anIntArray776[k1] = stream.readUnsignedByte();                            }                        } else                        {                            stream.currentOffset += k * 3;                        }                } else                if(j == 2)                    name = stream.readString();                else                if(j == 3)                    description = stream.readBytes();                else                if(j == 5)                {                    int l = stream.readUnsignedByte();                    if(l > 0)                        if(anIntArray773 == null || lowMem)                        {                            anIntArray776 = null;                            anIntArray773 = new int[l];                            for(int l1 = 0; l1 < l; l1++)                                anIntArray773[l1] = stream.readUnsignedWord();                        } else                        {                            stream.currentOffset += l * 2;                        }                } else                if(j == 14)                    anInt744 = stream.readUnsignedByte();                else                if(j == 15)                    anInt761 = stream.readUnsignedByte();                else                if(j == 17)                    aBoolean767 = false;                else                if(j == 18)                    aBoolean757 = false;                else                if(j == 19)                {                    i = stream.readUnsignedByte();                    if(i == 1)                        hasActions = true;                } else                if(j == 21)                    aBoolean762 = true;                else                if(j == 22)                    aBoolean769 = true;                else                if(j == 23)                    aBoolean764 = true;                else                if(j == 24)                {                    anInt781 = stream.readUnsignedWord();                    if(anInt781 == 65535)                        anInt781 = -1;                } else                if(j == 28)                    anInt775 = stream.readUnsignedByte();                else                if(j == 29)                    aByte737 = stream.readSignedByte();                else                if(j == 39)                    aByte742 = stream.readSignedByte();                else                if(j >= 30 && j < 39)                {                    if(actions == null)                        actions = new String[5];                    actions[j - 30] = stream.readString();                    if(actions[j - 30].equalsIgnoreCase("hidden"))                        actions[j - 30] = null;                } else                if(j == 40)                {                    int i1 = stream.readUnsignedByte();                    modifiedModelColors = new int[i1];                    originalModelColors = new int[i1];                    for(int i2 = 0; i2 < i1; i2++)                    {                        modifiedModelColors[i2] = stream.readUnsignedWord();                        originalModelColors[i2] = stream.readUnsignedWord();                    }                } else                if(j == 60)                    anInt746 = stream.readUnsignedWord();                else                if(j == 62)                    aBoolean751 = true;                else                if(j == 64)                    aBoolean779 = false;                else                if(j == 65)                    anInt748 = stream.readUnsignedWord();                else                if(j == 66)                    anInt772 = stream.readUnsignedWord();                else                if(j == 67)                    anInt740 = stream.readUnsignedWord();                else                if(j == 68)                    anInt758 = stream.readUnsignedWord();                else                if(j == 69)                    anInt768 = stream.readUnsignedByte();                else                if(j == 70)                    anInt738 = stream.readSignedWord();                else                if(j == 71)                    anInt745 = stream.readSignedWord();                else                if(j == 72)                    anInt783 = stream.readSignedWord();                else                if(j == 73)                    aBoolean736 = true;                else                if(j == 74)                {                    aBoolean766 = true;                } else                {                    if(j != 75)                        continue;                    anInt760 = stream.readUnsignedByte();                }                continue label0;            } while(j != 77);            anInt774 = stream.readUnsignedWord();            if(anInt774 == 65535)                anInt774 = -1;            anInt749 = stream.readUnsignedWord();            if(anInt749 == 65535)                anInt749 = -1;            int j1 = stream.readUnsignedByte();            childrenIDs = new int[j1 + 1];            for(int j2 = 0; j2 <= j1; j2++)            {                childrenIDs[j2] = stream.readUnsignedWord();                if(childrenIDs[j2] == 65535)                    childrenIDs[j2] = -1;            }        } while(true);        if(i == -1)        {            hasActions = anIntArray773 != null && (anIntArray776 == null || anIntArray776[0] == 10);            if(actions != null)                hasActions = true;        }        if(aBoolean766)        {            aBoolean767 = false;            aBoolean757 = false;        }        if(anInt760 == -1)            anInt760 = aBoolean767 ? 1 : 0;    }    private ObjectDef()    {        type = -1;    }    public boolean aBoolean736;    private byte aByte737;    private int anInt738;    public String name;    private int anInt740;    private static final Model[] aModelArray741s = new Model[4];    private byte aByte742;    public int anInt744;    private int anInt745;    public int anInt746;    private int[] originalModelColors;    private int anInt748;    public int anInt749;    private boolean aBoolean751;    public static boolean lowMem;    private static Stream stream;    public int type;    private static int[] streamIndices;    public boolean aBoolean757;    public int anInt758;    public int childrenIDs[];    private int anInt760;    public int anInt761;    public boolean aBoolean762;    public boolean aBoolean764;    public static client clientInstance;    private boolean aBoolean766;    public boolean aBoolean767;    public int anInt768;    private boolean aBoolean769;    private static int cacheIndex;    private int anInt772;    private int[] anIntArray773;    public int anInt774;    public int anInt775;    private int[] anIntArray776;    public byte description[];    public boolean hasActions;    public boolean aBoolean779;    public static MRUNodes mruNodes2 = new MRUNodes(30);    public int anInt781;    private static ObjectDef[] cache;    private int anInt783;    private int[] modifiedModelColors;    public static MRUNodes mruNodes1 = new MRUNodes(500);    public String actions[];}