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; }
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]; }
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(); }
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); }