Example #1
0
        public WND1(BxlytHeader header, string name)
        {
            layoutHeader = header;
            LoadDefaults();
            Name = name;

            Content = new BxlytWindowContent(header, this.Name);
            UseOneMaterialForAll = true;
            UseVertexColorForAll = true;
            WindowKind           = WindowKind.Around;
            NotDrawnContent      = false;

            StretchLeft  = 0;
            StretchRight = 0;
            StretchTop   = 0;
            StretchBottm = 0;

            Width  = 70;
            Height = 80;

            FrameElementLeft  = 16;
            FrameElementRight = 16;
            FrameElementTop   = 16;
            FrameElementBottm = 16;
            FrameCount        = 1;

            WindowFrames = new List <BxlytWindowFrame>();
            SetFrames(header);
        }
Example #2
0
        public WIN1(FileReader reader, BLOHeader header) : base(reader, header)
        {
            byte  numParams = reader.ReadByte();
            short transX    = reader.ReadInt16();
            short transY    = reader.ReadInt16();

            Width  = reader.ReadInt16();
            Height = reader.ReadInt16();

            Translate = GetPosition() + new Syroot.Maths.Vector3F(transX, transY, 0);

            Content                      = new BxlytWindowContent(header);
            Content.Material             = new Material();
            Content.Material.TextureMaps = new BxlytTextureRef[0];

            Console.WriteLine($"numParams {numParams}");
            FrameCount = 4;
            WindowKind = WindowKind.Around;

            numParams -= 5;
            if (numParams > 0)
            {
                WindowFrames = new List <BxlytWindowFrame>();
                for (int i = 0; i < 4; i++)
                {
                    string texName = BloResource.Read(reader, header);
                    Console.WriteLine($"texName {texName}");

                    var frame = new WindowFrame(texName);
                    WindowFrames.Add(frame);
                }
            }

            /*       if (numParams > 0) {
             *         PaletteName = BloResource.Read(reader, header);
             *         numParams--;
             *     }
             *
             *     PaletteName = BloResource.Read(reader, header);
             *     byte src = reader.ReadByte();
             *
             *     for (int i = 0; i < 4; i++)
             *     {
             *         var mirror = (byte)((src >> (6 - (i * 2))) & 0x3);
             *         if (mirror == 1)
             *             WindowFrames[i].TextureFlip = WindowFrameTexFlip.FlipV;
             *     }*/
        }
Example #3
0
        public WND1(BxlytHeader header, FileReader reader) : base(reader, header)
        {
            layoutHeader = header;
            WindowFrames = new List <BxlytWindowFrame>();

            long pos = reader.Position - 0x4C;

            StretchLeft       = reader.ReadUInt16();
            StretchRight      = reader.ReadUInt16();
            StretchTop        = reader.ReadUInt16();
            StretchBottm      = reader.ReadUInt16();
            FrameElementLeft  = reader.ReadUInt16();
            FrameElementRight = reader.ReadUInt16();
            FrameElementTop   = reader.ReadUInt16();
            FrameElementBottm = reader.ReadUInt16();
            FrameCount        = reader.ReadByte();
            _flag             = reader.ReadByte();
            reader.ReadUInt16();//padding
            uint contentOffset  = reader.ReadUInt32();
            uint frameOffsetTbl = reader.ReadUInt32();

            WindowKind = (WindowKind)((_flag >> 2) & 3);

            reader.SeekBegin(pos + contentOffset);
            Content = new BxlytWindowContent(reader, header);

            reader.SeekBegin(pos + frameOffsetTbl);

            var offsets = reader.ReadUInt32s(FrameCount);

            foreach (int offset in offsets)
            {
                reader.SeekBegin(pos + offset);
                WindowFrames.Add(new BxlytWindowFrame(reader, header));
            }
        }