Exemple #1
0
        public TXT1(BCLYT.Header header, string name)
        {
            LoadDefaults();
            Name       = name;
            layoutFile = header;
            //Add new material
            var mat = new Material(this.Name, header);

            header.MaterialList.Materials.Add(mat);
            MaterialIndex = (ushort)header.MaterialList.Materials.IndexOf(mat);
            Material      = mat;

            Text = Encoding.Unicode.GetString(new byte[0]);

            FontIndex       = 0;
            FontName        = "";
            TextLength      = 4;
            MaxTextLength   = 4;
            TextAlignment   = 0;
            LineAlignment   = LineAlign.Unspecified;
            ItalicTilt      = 0;
            FontTopColor    = STColor8.White;
            FontBottomColor = STColor8.White;
            FontSize        = new Vector2F(92, 101);
            CharacterSpace  = 0;
            LineSpace       = 0;
            ShadowXY        = new Vector2F(1, -1);
            ShadowXYSize    = new Vector2F(1, 1);
            ShadowBackColor = STColor8.Black;
            ShadowForeColor = STColor8.Black;
            ShadowItalic    = 0;
        }
Exemple #2
0
        public PIC1(FileReader reader, BCLYT.Header header) : base(reader, header)
        {
            ParentLayout = header;

            ColorTopLeft     = STColor8.FromBytes(reader.ReadBytes(4));
            ColorTopRight    = STColor8.FromBytes(reader.ReadBytes(4));
            ColorBottomLeft  = STColor8.FromBytes(reader.ReadBytes(4));
            ColorBottomRight = STColor8.FromBytes(reader.ReadBytes(4));
            MaterialIndex    = reader.ReadUInt16();
            byte numUVs = reader.ReadByte();

            reader.Seek(1); //padding

            TexCoords = new TexCoord[numUVs];
            for (int i = 0; i < numUVs; i++)
            {
                TexCoords[i] = new TexCoord()
                {
                    TopLeft     = reader.ReadVec2SY(),
                    TopRight    = reader.ReadVec2SY(),
                    BottomLeft  = reader.ReadVec2SY(),
                    BottomRight = reader.ReadVec2SY(),
                };
            }

            Material = header.MaterialList.Materials[MaterialIndex];
        }
Exemple #3
0
        public PRT1(FileReader reader, BCLYT.Header header) : base(reader, header)
        {
            layoutFile = header;

            Properties    = new List <PartProperty>();
            StartPosition = reader.Position - 84;

            uint properyCount = reader.ReadUInt32();

            MagnifyX = reader.ReadSingle();
            MagnifyY = reader.ReadSingle();
            for (int i = 0; i < properyCount; i++)
            {
                Properties.Add(new PartProperty(reader, header, StartPosition));
            }

            LayoutFileName = reader.ReadZeroTerminatedString();
        }
Exemple #4
0
        public PartProperty(FileReader reader, BCLYT.Header header, long StartPosition)
        {
            Name              = reader.ReadString(0x18, true);
            UsageFlag         = reader.ReadByte();
            BasicUsageFlag    = reader.ReadByte();
            MaterialUsageFlag = reader.ReadByte();
            reader.ReadByte(); //padding
            uint propertyOffset  = reader.ReadUInt32();
            uint userDataOffset  = reader.ReadUInt32();
            uint panelInfoOffset = reader.ReadUInt32();

            long pos = reader.Position;

            if (propertyOffset != 0)
            {
                reader.SeekBegin(StartPosition + propertyOffset);

                long   startPos    = reader.Position;
                string signtature  = reader.ReadString(4, Encoding.ASCII);
                uint   sectionSize = reader.ReadUInt32();

                Console.WriteLine($"signtature " + signtature);

                switch (signtature)
                {
                case "pic1":
                    Property = new PIC1(reader, header);
                    break;

                case "txt1":
                    Property = new TXT1(reader, header);
                    break;

                case "wnd1":
                    Property = new WND1(reader, header);
                    break;

                case "bnd1":
                    Property = new BND1(reader, header);
                    break;

                case "prt1":
                    Property = new PRT1(reader, header);
                    break;

                default:
                    Console.WriteLine("Unknown section! " + signtature);
                    break;
                }
            }
            if (userDataOffset != 0)
            {
                reader.SeekBegin(StartPosition + userDataOffset);
                UserData = new USD1(reader, header);
            }
            if (panelInfoOffset != 0)
            {
                reader.SeekBegin(StartPosition + panelInfoOffset);
                PaneInfo = reader.ReadBytes(52);
            }

            reader.SeekBegin(pos);
        }