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); }
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; * }*/ }
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)); } }