Example #1
0
        public void ReadFromFile(BinaryReader reader)
        {
            unk0 = reader.ReadUInt32();
            uint count1 = reader.ReadUInt32();
            uint count2 = reader.ReadUInt32();

            PaintCombinations = new PaintCombinationsTableItem[count1];

            for (int i = 0; i < count1; i++)
            {
                PaintCombinationsTableItem item = new PaintCombinationsTableItem();
                item.ID              = reader.ReadInt32();
                item.Unk01           = reader.ReadInt32();
                item.MinOccurs       = reader.ReadInt32();
                item.MaxOccurs       = reader.ReadInt32();
                item.CarName         = StringHelpers.ReadStringBuffer(reader, 32).Trim('\0');
                PaintCombinations[i] = item;
            }

            for (int i = 0; i < count1; i++)
            {
                var item = PaintCombinations[i];
                item.ColorIndex = new int[item.MaxOccurs];
                for (int z = 0; z < item.MaxOccurs; z++)
                {
                    item.ColorIndex[z] = reader.ReadInt32();
                }
                PaintCombinations[i] = item;
            }
        }
Example #2
0
        public void WriteToFile(XBinWriter writer)
        {
            writer.Write(unk0);
            writer.Write(PaintCombinations.Length);
            writer.Write(PaintCombinations.Length);

            for (int i = 0; i < PaintCombinations.Length; i++)
            {
                PaintCombinationsTableItem Item = PaintCombinations[i];
                writer.Write(Item.ID);
                writer.Write(Item.Unk01);
                writer.Write(Item.MinOccurs);
                writer.Write(Item.MaxOccurs);
                StringHelpers.WriteString32(writer, Item.CarName);
            }

            for (int i = 0; i < PaintCombinations.Length; i++)
            {
                PaintCombinationsTableItem Item = PaintCombinations[i];
                for (int z = 0; z < Item.MaxOccurs; z++)
                {
                    writer.Write(Item.ColorIndex[z]);
                }
            }
        }
Example #3
0
        public void SetFromTreeNodes(TreeNode Root)
        {
            PaintCombinations = new PaintCombinationsTableItem[Root.Nodes.Count];

            for (int i = 0; i < PaintCombinations.Length; i++)
            {
                TreeNode ChildNode = Root.Nodes[i];
                PaintCombinationsTableItem Entry = (PaintCombinationsTableItem)ChildNode.Tag;
                PaintCombinations[i] = Entry;
            }
        }