Esempio n. 1
0
    public int getSimMeshPackId(int attribId, int optIndex, bool getOffset)
    {
        if (attribId == 0 || attribId == 1 || attribId == 8)
        {
            int num1 = 0;
            for (int packId = 0; packId < this.m_packCount; ++packId)
            {
                DLCPack dlcPack = this.getDLCPack(packId);
                int     num2    = optIndex - num1;
                int     length  = dlcPack.d_simAttribTextureFilenames[attribId][0].Length;
                if (num2 < length)
                {
                    return(getOffset ? num2 : packId);
                }
                num1 += length;
            }
        }
        int num3 = 0;

        for (int packId = 0; packId < this.m_packCount; ++packId)
        {
            DLCPack dlcPack = this.getDLCPack(packId);
            int     num1    = optIndex - num3;
            int     length  = dlcPack.d_simAttribUserIds[attribId].Length;
            if (num1 < length)
            {
                return(getOffset ? num1 : packId);
            }
            num3 += length;
        }
        return(-1);
    }
Esempio n. 2
0
    public int getSimTextureIdCount(int attribId, int optIndex)
    {
        if (attribId == 0 || attribId == 1 || attribId == 8)
        {
            int num = 0;
            for (int packId = 0; packId < this.m_packCount; ++packId)
            {
                DLCPack dlcPack = this.getDLCPack(packId);
                num += dlcPack.d_simAttribTextureFilenames[attribId][optIndex].Length;
            }
            return(num);
        }
        int num1 = 0;

        for (int packId = 0; packId < this.m_packCount; ++packId)
        {
            DLCPack dlcPack = this.getDLCPack(packId);
            int     index   = optIndex - num1;
            int     length  = dlcPack.d_simAttribUserIds[attribId].Length;
            if (index < length)
            {
                return(dlcPack.d_simAttribTextureFilenames[attribId][index].Length);
            }
            num1 += length;
        }
        return(0);
    }
Esempio n. 3
0
    public int getSimMeshUserIdCount(int attribId)
    {
        int num = 0;

        for (int packId = 0; packId < this.m_packCount; ++packId)
        {
            DLCPack dlcPack = this.getDLCPack(packId);
            num += dlcPack.d_simAttribUserIds[attribId].Length;
        }
        return(num);
    }
Esempio n. 4
0
    public Image getPackTag(int packId)
    {
        DLCPack dlcPack = this.getDLCPack(packId);

        if (dlcPack.m_tagImage == null)
        {
            string str  = this.m_packSellIds[packId].ToString();
            string name = this.m_rootFolder + DLCManager.pathSeparatorChar + str + DLCManager.pathSeparatorChar + DLCManager.TAGPNG_FILENAME;
            if (name != null)
            {
                Image image = Image.createImage(name);
                dlcPack.m_tagImage = image;
            }
        }
        return(dlcPack.m_tagImage);
    }
Esempio n. 5
0
    public void initPacks()
    {
        TextManager textManager = AppEngine.getCanvas().getTextManager();

        this.loadDLCData();
        this.m_totalObjects = 0;
        this.m_totalItems   = 0;
        for (int packId = 0; packId < this.m_packCount; ++packId)
        {
            DLCPack dlcPack = this.loadPack(packId, this.m_packSellIds[packId]);
            if (dlcPack != null)
            {
                this.m_totalObjects += dlcPack.d_objectRecords.Length;
                this.m_totalItems   += dlcPack.d_itemRecords.Length;
                this.m_packs.Add(dlcPack);
            }
        }
        this.initObjectIndex();
        textManager.setCurrentLocale(textManager.getCurrentLocale());
    }
Esempio n. 6
0
    public int getSimAttribIdLocal(int attribId, int packId, int index)
    {
        int num = 0;

        for (int packId1 = 0; packId1 < packId; ++packId1)
        {
            DLCPack dlcPack = this.getDLCPack(packId1);
            switch (attribId)
            {
            case 0:
            case 1:
            case 8:
                int length1 = dlcPack.d_simAttribTextureFilenames[attribId][0].Length;
                num += length1;
                break;

            default:
                int length2 = dlcPack.d_simAttribUserIds[attribId].Length;
                num += length2;
                break;
            }
        }
        return(num + index);
    }
Esempio n. 7
0
    private DLCPack loadPack(int packId, int sellId)
    {
        AppEngine    canvas       = AppEngine.getCanvas();
        SimWorld     simWorld     = canvas.getSimWorld();
        SimData      simData      = canvas.getSimData();
        TextManager  textManager  = canvas.getTextManager();
        DLCPack      dlcPack      = new DLCPack();
        StringBuffer stringBuffer = new StringBuffer();

        stringBuffer.setLength(0);
        stringBuffer.append(this.m_rootFolder);
        stringBuffer.append(DLCManager.pathSeparatorChar);
        stringBuffer.append(sellId);
        string str1 = stringBuffer.toString();

        stringBuffer.setLength(0);
        stringBuffer.append(str1);
        stringBuffer.append(DLCManager.pathSeparatorChar);
        stringBuffer.append(DLCManager.PACKDATA_FILENAME);
        DataInputStream dis = new DataInputStream(JavaLib.getResourceAsStream(stringBuffer.toString(), false));

        stringBuffer.setLength(0);
        stringBuffer.append(str1);
        stringBuffer.append(DLCManager.pathSeparatorChar);
        stringBuffer.append(DLCManager.STRINGS_DLC_FILENAME);
        string filename      = stringBuffer.toString();
        int    stringPooldId = textManager.addStringsFile(filename);

        dis.readInt();
        dlcPack.d_packId   = dis.readInt();
        dlcPack.d_packName = RecObject.readXMLtoBinString(dis);
        string str2 = this.readXMLtoBinFilename(dis, str1);

        dlcPack.d_objectTextureFilename = str2;
        string str3 = this.readXMLtoBinFilename(dis, str1);

        dlcPack.d_objectScrollingTextureFilename = str3;
        dlcPack.d_objectScrollingTextureTiming   = dis.readInt();
        string str4 = this.readXMLtoBinFilename(dis, str1);

        dlcPack.d_simMaleFilename = str4;
        string str5 = this.readXMLtoBinFilename(dis, str1);

        dlcPack.d_simFemaleFilename = str5;
        string str6 = this.readXMLtoBinFilename(dis, str1);

        dlcPack.d_miniCarModelFilename = str6;
        string str7 = this.readXMLtoBinFilename(dis, str1);

        dlcPack.d_miniCarTextureFilename = str7;
        int length1 = (int)dis.readByte();

        short[] numArray1 = new short[length1];
        for (int index = 0; index < length1; ++index)
        {
            int action = (int)dis.readShort();
            numArray1[index] = (short)action;
            simData.unlockAction(action, packId);
        }
        int length2 = (int)dis.readShort();

        RecObject[] recObjectArray = new RecObject[length2];
        for (int index = 0; index < length2; ++index)
        {
            recObjectArray[index] = new RecObject();
            recObjectArray[index].readDLC(dis, packId, index, stringPooldId, str1);
        }
        int length3 = (int)dis.readByte();

        RecItem[] recItemArray = new RecItem[length3];
        for (int index = 0; index < length3; ++index)
        {
            recItemArray[index] = new RecItem();
            recItemArray[index].readDLC(dis, packId, index, stringPooldId, str1);
        }
        int length4 = (int)dis.readByte();

        short[] numArray2 = new short[length4];
        for (int index = 0; index < length4; ++index)
        {
            int wallId = (int)dis.readShort();
            numArray2[index] = (short)wallId;
            simWorld.unlockWall(wallId, packId);
        }
        int length5 = (int)dis.readByte();

        short[] numArray3 = new short[length5];
        for (int index = 0; index < length5; ++index)
        {
            int floorId = (int)dis.readShort();
            numArray3[index] = (short)floorId;
            simWorld.unlockFloor(floorId, packId);
        }
        int num     = (int)dis.readByte();
        int length6 = 15;

        short[][]    numArray4 = new short[length6][];
        int[][]      numArray5 = new int[length6][];
        string[][][] strArray1 = new string[length6][][];
        for (int index1 = 0; index1 < length6; ++index1)
        {
            int        length7   = (int)dis.readByte();
            short[]    numArray6 = new short[length7];
            int[]      numArray7 = new int[length7];
            string[][] strArray2 = new string[length7][];
            for (int index2 = 0; index2 < length7; ++index2)
            {
                numArray6[index2] = (short)dis.readInt();
                numArray7[index2] = dis.readInt();
                int      length8   = (int)dis.readByte();
                string[] strArray3 = new string[length8];
                for (int index3 = 0; index3 < length8; ++index3)
                {
                    string str8 = this.readXMLtoBinFilename(dis, str1);
                    strArray3[index3] = str8;
                }
                strArray2[index2] = strArray3;
            }
            numArray4[index1] = numArray6;
            numArray5[index1] = numArray7;
            strArray1[index1] = strArray2;
        }
        dlcPack.d_objectRecords             = recObjectArray;
        dlcPack.d_itemRecords               = recItemArray;
        dlcPack.d_simAttribUserIds          = numArray4;
        dlcPack.d_simAttribFlags            = numArray5;
        dlcPack.d_simAttribTextureFilenames = strArray1;
        return(dlcPack);
    }