public void DisplayFiles(List <SetupFile> SetupFiles_)
 {
     this.fileFound_lv.View = View.Details;
     this.fileFound_lv.Columns.Add("Title", -2, HorizontalAlignment.Center);
     this.fileFound_lv.Columns.Add("Address", -2, HorizontalAlignment.Left);
     for (int index = 0; index < SetupFiles_.Count; ++index)
     {
         SetupFile setupFile = SetupFiles_[index];
         this.fileFound_lv.Items.Add(new ListViewItem(setupFile.name)
         {
             SubItems =
             {
                 "0x" + setupFile.pointer.ToString("x")
             }
         });
     }
 }
Example #2
0
        public WrittenFile createBinaryFileObjects(
            string inDir_,
            string outDir_,
            SetupFile file_,
            List <ObjectData> objects_,
            List <ObjectData> structs_,
            List <BKPath> paths_,
            List <CameraObject> cams_,
            List <LevelEntryPoint> entries_,
            bool includeTriggers,
            BoundingBox maxBounds,
            string replacementModel_,
            string replacementModelB_,
            bool allObjsErased_,
            string filename_)
        {
            ObjectData objectData1 = new ObjectData((short)0, 0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0);

            for (int index = 0; index < objects_.Count <ObjectData>(); ++index)
            {
                if (objects_[index].name == "Start Point")
                {
                    objectData1 = objects_[index];
                }
            }
            for (int index = 0; index < entries_.Count <LevelEntryPoint>(); ++index)
            {
                short      specialScript_ = 6412;
                ObjectData objectData2    = new ObjectData((short)entries_[index].objectId, 0, objectData1.locX, objectData1.locY, objectData1.locZ, objectData1.rot, objectData1.size, specialScript_);
                objects_.Add(objectData2);
            }
            List <int> intList = new List <int>();

            for (int index = 0; index < cams_.Count; ++index)
            {
                intList.Add((int)cams_[index].id);
            }
            short        num1      = 4352;
            List <short> shortList = new List <short>();

            for (int index = 0; index < paths_.Count <BKPath>(); ++index)
            {
                objects_.AddRange((IEnumerable <ObjectData>)paths_[index].nodes);
            }
            for (int index = 0; index < objects_.Count <ObjectData>(); ++index)
            {
                shortList.Add((short)((int)objects_[index].obj16 * 256 + (int)objects_[index].obj17));
            }
            shortList.Add((short)1200);
            shortList.Add((short)1232);
            shortList.Add((short)1744);
            shortList.Add((short)1184);
            shortList.Add((short)6032);
            for (int index = 0; index < objects_.Count; ++index)
            {
                if (objects_[index].obj16 == (byte)0 && objects_[index].obj17 == (byte)0)
                {
                    while (shortList.Contains(num1))
                    {
                        num1 += (short)32;
                    }
                    objects_[index].obj16 = (byte)((uint)num1 >> 8);
                    objects_[index].obj17 = (byte)num1;
                    num1 += (short)32;
                }
            }
            List <byte> source = new List <byte>();

            source.Add((byte)1);
            source.Add((byte)1);
            int num2 = 999999999;
            int num3 = 999999999;
            int num4 = 999999999;
            int num5 = -999999999;
            int num6 = -999999999;
            int num7 = -999999999;

            for (int index = 0; index < objects_.Count; ++index)
            {
                ObjectData objectData2 = objects_[index];
                if (objectData2.objectID != short.MinValue && this.objectInBounds(objectData2, maxBounds))
                {
                    if (num2 > (int)objectData2.locX)
                    {
                        num2 = (int)objectData2.locX;
                    }
                    if (num3 > (int)objectData2.locY)
                    {
                        num3 = (int)objectData2.locY;
                    }
                    if (num4 > (int)objectData2.locZ)
                    {
                        num4 = (int)objectData2.locZ;
                    }
                    if (num5 < (int)objectData2.locX)
                    {
                        num5 = (int)objectData2.locX;
                    }
                    if (num6 < (int)objectData2.locY)
                    {
                        num6 = (int)objectData2.locY;
                    }
                    if (num7 < (int)objectData2.locZ)
                    {
                        num7 = (int)objectData2.locZ;
                    }
                }
            }
            for (int index = 0; index < structs_.Count; ++index)
            {
                ObjectData objectData2 = structs_[index];
                if (this.objectInBounds(objectData2, maxBounds))
                {
                    if (num2 > (int)objectData2.locX)
                    {
                        num2 = (int)objectData2.locX;
                    }
                    if (num3 > (int)objectData2.locY)
                    {
                        num3 = (int)objectData2.locY;
                    }
                    if (num4 > (int)objectData2.locZ)
                    {
                        num4 = (int)objectData2.locZ;
                    }
                    if (num5 < (int)objectData2.locX)
                    {
                        num5 = (int)objectData2.locX;
                    }
                    if (num6 < (int)objectData2.locY)
                    {
                        num6 = (int)objectData2.locY;
                    }
                    if (num7 < (int)objectData2.locZ)
                    {
                        num7 = (int)objectData2.locZ;
                    }
                }
            }
            int number1 = num2 / 1000;

            if (num2 % 1000 != 0)
            {
                --number1;
            }
            int number2 = num3 / 1000;

            if (num3 % 1000 != 0)
            {
                --number2;
            }
            int number3 = num4 / 1000;

            if (num4 % 1000 != 0)
            {
                --number3;
            }
            int number4 = num5 / 1000;
            int num8    = num5 % 1000;
            int number5 = num6 / 1000;
            int num9    = num6 % 1000;
            int number6 = num7 / 1000;
            int num10   = num7 % 1000;

            byte[]      byteArray1 = this.Int32ToByteArray(number1);
            byte[]      byteArray2 = this.Int32ToByteArray(number2);
            byte[]      byteArray3 = this.Int32ToByteArray(number3);
            byte[]      byteArray4 = this.Int32ToByteArray(number4);
            byte[]      byteArray5 = this.Int32ToByteArray(number5);
            byte[]      byteArray6 = this.Int32ToByteArray(number6);
            BoundingBox bb_        = new BoundingBox();

            bb_.smallX = number1;
            bb_.smallY = number2;
            bb_.smallZ = number3;
            bb_.largeX = number4;
            bb_.largeY = number5;
            bb_.largeZ = number6;
            source.Add(byteArray1[0]);
            source.Add(byteArray1[1]);
            source.Add(byteArray1[2]);
            source.Add(byteArray1[3]);
            source.Add(byteArray2[0]);
            source.Add(byteArray2[1]);
            source.Add(byteArray2[2]);
            source.Add(byteArray2[3]);
            source.Add(byteArray3[0]);
            source.Add(byteArray3[1]);
            source.Add(byteArray3[2]);
            source.Add(byteArray3[3]);
            source.Add(byteArray4[0]);
            source.Add(byteArray4[1]);
            source.Add(byteArray4[2]);
            source.Add(byteArray4[3]);
            source.Add(byteArray5[0]);
            source.Add(byteArray5[1]);
            source.Add(byteArray5[2]);
            source.Add(byteArray5[3]);
            source.Add(byteArray6[0]);
            source.Add(byteArray6[1]);
            source.Add(byteArray6[2]);
            source.Add(byteArray6[3]);
            int num11 = Math.Abs(number1) + number4 + 1;

            if (number1 > 0)
            {
                num11 = number4 - number1 + 1;
            }
            int num12 = Math.Abs(number2) + number5 + 1;

            if (number2 > 0)
            {
                num12 = number5 - number2 + 1;
            }
            int num13 = Math.Abs(number3) + number6 + 1;

            if (number3 > 0)
            {
                num13 = number6 - number3 + 1;
            }
            for (int index1 = 0; index1 < num11; ++index1)
            {
                for (int index2 = 0; index2 < num12; ++index2)
                {
                    for (int index3 = 0; index3 < num13; ++index3)
                    {
                        List <byte> byteList = new List <byte>();
                        byteList.Add((byte)3);
                        byteList.Add((byte)10);
                        byteList.Add((byte)0);
                        int  num14  = (number1 + index1) * 1000;
                        int  num15  = num14 + 1000;
                        int  num16  = (number2 + index2) * 1000;
                        int  num17  = num16 + 1000;
                        int  num18  = (number3 + index3) * 1000;
                        int  num19  = num18 + 1000;
                        bool flag1  = false;
                        bool flag2  = false;
                        byte num20  = 0;
                        byte num21  = 0;
                        int  index4 = 2;
                        try
                        {
                            for (int index5 = 0; index5 < objects_.Count <ObjectData>(); ++index5)
                            {
                                ObjectData objectData2 = objects_[index5];
                                bool       flag3       = true;
                                if (objectData2.specialScript == (short)-1518 && !intList.Contains((int)objectData2.objectID))
                                {
                                    flag3 = false;
                                }
                                if (objectData2.specialScript == (short)-1518 && !includeTriggers)
                                {
                                    flag3 = false;
                                }
                                if ((((int)objectData2.locX < num14 || (int)objectData2.locX >= num15 || ((int)objectData2.locY < num16 || (int)objectData2.locY >= num17) || (int)objectData2.locZ < num18 ? 0 : ((int)objectData2.locZ < num19 ? 1 : 0)) & (flag3 ? 1 : 0)) != 0)
                                {
                                    if (!flag1)
                                    {
                                        flag1 = true;
                                        byteList.Add((byte)11);
                                    }
                                    ++num20;
                                    objects_.RemoveAt(index5);
                                    --index5;
                                    byte[] numArray = new byte[20];
                                    if (objectData2.type != ObjectType.SPath)
                                    {
                                        byte[] byteArray7  = this.Int16ToByteArray(objectData2.locX);
                                        byte[] byteArray8  = this.Int16ToByteArray(objectData2.locY);
                                        byte[] byteArray9  = this.Int16ToByteArray(objectData2.locZ);
                                        byte[] byteArray10 = this.Int16ToByteArray(objectData2.specialScript);
                                        byte   num22       = (byte)((uint)objectData2.rot / 2U);
                                        byte[] byteArray11 = this.Int16ToByteArray(objectData2.size);
                                        byte[] byteArray12 = this.Int16ToByteArray(objectData2.objectID);
                                        numArray[0]  = byteArray7[0];
                                        numArray[1]  = byteArray7[1];
                                        numArray[2]  = byteArray8[0];
                                        numArray[3]  = byteArray8[1];
                                        numArray[4]  = byteArray9[0];
                                        numArray[5]  = byteArray9[1];
                                        numArray[6]  = byteArray10[0];
                                        numArray[7]  = byteArray10[1];
                                        numArray[8]  = byteArray12[0];
                                        numArray[9]  = byteArray12[1];
                                        numArray[10] = objectData2.obj10;
                                        numArray[11] = objectData2.obj11;
                                        numArray[12] = num22;
                                        numArray[13] = objectData2.obj13;
                                        numArray[14] = byteArray11[0];
                                        numArray[15] = byteArray11[1];
                                        numArray[16] = objectData2.obj16;
                                        numArray[17] = objectData2.obj17;
                                        numArray[18] = objectData2.obj18;
                                        numArray[19] = objectData2.obj19;
                                        if (objectData2.name == "Start Point")
                                        {
                                            numArray[17] = (byte)32;
                                        }
                                        else if (objectData2.name == "Jiggy Flag")
                                        {
                                            numArray[14] = (byte)0;
                                            numArray[15] = (byte)0;
                                        }
                                        if (numArray[16] == (byte)0 && numArray[17] == (byte)0 && (numArray[19] == (byte)0 && !(objectData2.name == "Blue Jinjo")))
                                        {
                                            if (objectData2.name == "Yellow Jinjo")
                                            {
                                                numArray[19] = (byte)208;
                                            }
                                            else if (objectData2.name == "Green Jinjo")
                                            {
                                                numArray[19] = (byte)64;
                                            }
                                            else if (objectData2.name == "Purple Jinjo")
                                            {
                                                numArray[19] = (byte)192;
                                            }
                                            else if (objectData2.name == "Orange Jinjo")
                                            {
                                                numArray[19] = (byte)80;
                                            }
                                            else if (objectData2.name.Contains("SNS Egg"))
                                            {
                                                numArray[19] = (byte)70;
                                            }
                                        }
                                        if (objectData2.name == "Warp" && numArray[16] == (byte)0)
                                        {
                                            int num23 = (int)numArray[17];
                                        }
                                        int objectId = (int)objectData2.objectID;
                                        if (numArray[19] == (byte)0 && objectData2.type != ObjectType.SPath)
                                        {
                                            numArray[19] = (byte)64;
                                        }
                                    }
                                    else
                                    {
                                        byte[] bytes = BitConverter.GetBytes(objectData2.activationPercent);
                                        numArray[0]  = bytes[3];
                                        numArray[1]  = bytes[2];
                                        numArray[2]  = bytes[1];
                                        numArray[3]  = bytes[0];
                                        numArray[4]  = (byte)(objectData2.pw1 >> 24);
                                        numArray[5]  = (byte)(objectData2.pw1 >> 16);
                                        numArray[6]  = (byte)(objectData2.pw1 >> 8);
                                        numArray[7]  = (byte)objectData2.pw1;
                                        numArray[8]  = (byte)(objectData2.pw2 >> 24);
                                        numArray[9]  = (byte)(objectData2.pw2 >> 16);
                                        numArray[10] = (byte)(objectData2.pw2 >> 8);
                                        numArray[11] = (byte)objectData2.pw2;
                                        numArray[12] = (byte)(objectData2.pw3 >> 24);
                                        numArray[13] = (byte)(objectData2.pw3 >> 16);
                                        numArray[14] = (byte)(objectData2.pw3 >> 8);
                                        numArray[15] = (byte)objectData2.pw3;
                                        numArray[16] = objectData2.obj16;
                                        numArray[17] = objectData2.obj17;
                                        numArray[18] = objectData2.obj18;
                                        numArray[19] = objectData2.obj19;
                                    }
                                    byteList.AddRange((IEnumerable <byte>)numArray);
                                }
                            }
                            byteList[index4] = num20;
                            byteList.Add((byte)8);
                            int num24 = byteList.Count - 1;
                            byteList.Add((byte)0);
                            for (int index5 = 0; index5 < structs_.Count; ++index5)
                            {
                                ObjectData objectData2 = structs_[index5];
                                if ((int)objectData2.locX >= num14 && (int)objectData2.locX < num15 && ((int)objectData2.locY >= num16 && (int)objectData2.locY < num17) && ((int)objectData2.locZ >= num18 && (int)objectData2.locZ < num19))
                                {
                                    if (!flag2)
                                    {
                                        flag2 = true;
                                        byteList.Add((byte)9);
                                    }
                                    ++num21;
                                    structs_.RemoveAt(index5);
                                    --index5;
                                    byte[] byteArray7 = this.Int16ToByteArray(objectData2.locX);
                                    byte[] byteArray8 = this.Int16ToByteArray(objectData2.locY);
                                    byte[] byteArray9 = this.Int16ToByteArray(objectData2.locZ);
                                    this.Int16ToByteArray(objectData2.specialScript);
                                    byte[] byteArray10 = this.Int16ToByteArray(objectData2.size);
                                    byte[] byteArray11 = this.Int16ToByteArray(objectData2.objectID);
                                    byte[] numArray    = new byte[12];
                                    numArray[0] = byteArray11[0];
                                    numArray[1] = byteArray11[1];
                                    numArray[2] = objectData2.struct2;
                                    numArray[3] = objectData2.struct3;
                                    if (objectData2.struct3 == (byte)0)
                                    {
                                        if (objectData2.name == "Red Feather")
                                        {
                                            numArray[3] = (byte)220;
                                        }
                                        if (objectData2.name == "Gold Feather")
                                        {
                                            numArray[3] = (byte)222;
                                        }
                                        if (objectData2.name == "Note")
                                        {
                                            numArray[3] = (byte)180;
                                        }
                                        if (objectData2.name == "Blue Egg")
                                        {
                                            numArray[3] = (byte)162;
                                        }
                                        if (objectData2.name == "Fire 2D")
                                        {
                                            numArray[2] = (byte)1;
                                            numArray[3] = (byte)144;
                                        }
                                        if (objectData2.name == "Blue Flowers")
                                        {
                                            numArray[2] = (byte)1;
                                            numArray[3] = (byte)78;
                                        }
                                        if (objectData2.name == "Red Flowers")
                                        {
                                            numArray[2] = (byte)0;
                                            numArray[3] = (byte)230;
                                        }
                                        if (objectData2.name == "Yellow Red Flowers")
                                        {
                                            numArray[2] = (byte)1;
                                            numArray[3] = (byte)74;
                                        }
                                        if (objectData2.name == "MM Tree" || objectData2.name == "TTC Tree")
                                        {
                                            numArray[2] = (byte)179;
                                            numArray[3] = (byte)0;
                                        }
                                        if (objectData2.name == "Conga's Tree")
                                        {
                                            numArray[2] = (byte)11;
                                            numArray[3] = (byte)0;
                                        }
                                        if (objectData2.name == "Orange 2D")
                                        {
                                            numArray[2] = (byte)0;
                                            numArray[3] = (byte)108;
                                        }
                                        if (objectData2.name == "Another Crate")
                                        {
                                            numArray[2] = (byte)0;
                                            numArray[3] = (byte)0;
                                        }
                                        if (objectData2.name == "Dark Crate")
                                        {
                                            numArray[2] = (byte)59;
                                            numArray[3] = (byte)177;
                                        }
                                        if (objectData2.name == "Light Crate")
                                        {
                                            numArray[2] = (byte)21;
                                            numArray[3] = (byte)2;
                                        }
                                    }
                                    numArray[4]  = byteArray7[0];
                                    numArray[5]  = byteArray7[1];
                                    numArray[6]  = byteArray8[0];
                                    numArray[7]  = byteArray8[1];
                                    numArray[8]  = byteArray9[0];
                                    numArray[9]  = byteArray9[1];
                                    numArray[10] = byteArray10[1];
                                    numArray[11] = objectData2.structB;
                                    if (objectData2.structB == (byte)0)
                                    {
                                        if (objectData2.name == "SM Tree")
                                        {
                                            numArray[11] = (byte)18;
                                        }
                                        if (objectData2.name == "MM Tree")
                                        {
                                            numArray[11] = (byte)210;
                                        }
                                        if (objectData2.name == "TTC Tree")
                                        {
                                            numArray[11] = (byte)18;
                                        }
                                        if (objectData2.name == "GV Tree")
                                        {
                                            numArray[11] = (byte)146;
                                        }
                                        if (objectData2.name == "Conga's Tree")
                                        {
                                            numArray[11] = (byte)82;
                                        }
                                        if (objectData2.name == "Another Crate")
                                        {
                                            numArray[11] = (byte)210;
                                        }
                                        if (objectData2.name == "Dark Crate")
                                        {
                                            numArray[11] = (byte)146;
                                        }
                                        if (objectData2.name == "Light Crate")
                                        {
                                            numArray[11] = (byte)210;
                                        }
                                        if (objectData2.name.Contains("Toxic"))
                                        {
                                            numArray[11] = (byte)210;
                                        }
                                    }
                                    if (objectData2.structB == (byte)0 && objectData2.structA == (byte)0)
                                    {
                                        if (objectData2.name == "Blue Flowers")
                                        {
                                            numArray[10] = (byte)6;
                                            numArray[11] = (byte)80;
                                        }
                                        if (objectData2.name == "Red Flowers")
                                        {
                                            numArray[10] = (byte)6;
                                            numArray[11] = (byte)48;
                                        }
                                        if (objectData2.name == "Yellow Red Flowers")
                                        {
                                            numArray[10] = (byte)1;
                                            numArray[11] = (byte)16;
                                        }
                                        if (objectData2.name == "Orange 2D")
                                        {
                                            numArray[10] = (byte)2;
                                            numArray[11] = (byte)80;
                                        }
                                    }
                                    byteList.AddRange((IEnumerable <byte>)numArray);
                                }
                            }
                            byteList.Add((byte)1);
                            byteList[num24 + 1] = num21;
                            if (!flag1 && !flag2)
                            {
                                source.Add((byte)1);
                            }
                            else
                            {
                                source.AddRange((IEnumerable <byte>)byteList);
                            }
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                }
            }
            source.Add((byte)0);
            source.Add((byte)3);
            for (int index = 0; index < cams_.Count; ++index)
            {
                if (cams_[index].type == 3 || cams_[index].type == 2 || cams_[index].type == 1)
                {
                    source.Add((byte)1);
                    source.Add((byte)0);
                    source.Add((byte)cams_[index].id);
                    source.Add((byte)2);
                    source.Add((byte)cams_[index].type);
                    source.Add((byte)1);
                    byte[] bytes1 = BitConverter.GetBytes(cams_[index].x);
                    byte[] bytes2 = BitConverter.GetBytes(cams_[index].y);
                    byte[] bytes3 = BitConverter.GetBytes(cams_[index].z);
                    source.Add(bytes1[3]);
                    source.Add(bytes1[2]);
                    source.Add(bytes1[1]);
                    source.Add(bytes1[0]);
                    source.Add(bytes2[3]);
                    source.Add(bytes2[2]);
                    source.Add(bytes2[1]);
                    source.Add(bytes2[0]);
                    source.Add(bytes3[3]);
                    source.Add(bytes3[2]);
                    source.Add(bytes3[1]);
                    source.Add(bytes3[0]);
                    source.Add((byte)2);
                    if (cams_[index].type == 2)
                    {
                        byte[] bytes4 = BitConverter.GetBytes(cams_[index].pitch);
                        byte[] bytes5 = BitConverter.GetBytes(cams_[index].yaw);
                        byte[] bytes6 = BitConverter.GetBytes(cams_[index].roll);
                        source.Add(bytes4[3]);
                        source.Add(bytes4[2]);
                        source.Add(bytes4[1]);
                        source.Add(bytes4[0]);
                        source.Add(bytes5[3]);
                        source.Add(bytes5[2]);
                        source.Add(bytes5[1]);
                        source.Add(bytes5[0]);
                        source.Add(bytes6[3]);
                        source.Add(bytes6[2]);
                        source.Add(bytes6[1]);
                        source.Add(bytes6[0]);
                    }
                    if (cams_[index].type == 3 || cams_[index].type == 1)
                    {
                        byte[] bytes4 = BitConverter.GetBytes(cams_[index].camHSpeed);
                        byte[] bytes5 = BitConverter.GetBytes(cams_[index].camVSpeed);
                        source.Add(bytes4[3]);
                        source.Add(bytes4[2]);
                        source.Add(bytes4[1]);
                        source.Add(bytes4[0]);
                        source.Add(bytes5[3]);
                        source.Add(bytes5[2]);
                        source.Add(bytes5[1]);
                        source.Add(bytes5[0]);
                        source.Add((byte)3);
                        byte[] bytes6 = BitConverter.GetBytes(cams_[index].camRotation);
                        byte[] bytes7 = BitConverter.GetBytes(cams_[index].camAccel);
                        source.Add(bytes6[3]);
                        source.Add(bytes6[2]);
                        source.Add(bytes6[1]);
                        source.Add(bytes6[0]);
                        source.Add(bytes7[3]);
                        source.Add(bytes7[2]);
                        source.Add(bytes7[1]);
                        source.Add(bytes7[0]);
                        source.Add((byte)4);
                        byte[] bytes8  = BitConverter.GetBytes(cams_[index].pitch3);
                        byte[] bytes9  = BitConverter.GetBytes(cams_[index].yaw3);
                        byte[] bytes10 = BitConverter.GetBytes(cams_[index].roll3);
                        source.Add(bytes8[3]);
                        source.Add(bytes8[2]);
                        source.Add(bytes8[1]);
                        source.Add(bytes8[0]);
                        source.Add(bytes9[3]);
                        source.Add(bytes9[2]);
                        source.Add(bytes9[1]);
                        source.Add(bytes9[0]);
                        source.Add(bytes10[3]);
                        source.Add(bytes10[2]);
                        source.Add(bytes10[1]);
                        source.Add(bytes10[0]);
                        source.Add((byte)5);
                        byte[] byteArray7 = this.Int32ToByteArray(cams_[index].Type3Arg5);
                        source.Add(byteArray7[0]);
                        source.Add(byteArray7[1]);
                        source.Add(byteArray7[2]);
                        source.Add(byteArray7[3]);
                        if (cams_[index].type == 3)
                        {
                            source.Add((byte)6);
                            byte[] bytes11 = BitConverter.GetBytes(cams_[index].camCDist);
                            byte[] bytes12 = BitConverter.GetBytes(cams_[index].camFDist);
                            source.Add(bytes11[3]);
                            source.Add(bytes11[2]);
                            source.Add(bytes11[1]);
                            source.Add(bytes11[0]);
                            source.Add(bytes12[3]);
                            source.Add(bytes12[2]);
                            source.Add(bytes12[1]);
                            source.Add(bytes12[0]);
                        }
                    }
                }
                source.Add((byte)0);
            }
            source.Add((byte)0);
            source.Add((byte)4);
            source.Add((byte)0);
            source.Add((byte)0);
            int num25 = 0;

            if (File.Exists(inDir_ + file_.pointer.ToString("x")))
            {
                BinaryReader binaryReader = new BinaryReader((Stream)File.Open(inDir_ + file_.pointer.ToString("x"), FileMode.Open));
                num25 = (int)binaryReader.BaseStream.Length;
                binaryReader.Close();
            }
            source.Count <byte>();
            FileStream   fileStream   = !(filename_ == "") ? File.Create(filename_) : File.Create(outDir_ + file_.pointer.ToString("x"));
            BinaryWriter binaryWriter = new BinaryWriter((Stream)fileStream);

            binaryWriter.Write(source.ToArray());
            binaryWriter.Close();
            fileStream.Close();
            this.writtenFile = new WrittenFile(file_.pointer.ToString("x"), bb_, file_.pointer, file_.modelAPointer, file_.modelBPointer, replacementModel_, replacementModelB_);
            return(this.writtenFile);
        }