private static long HeaderPositionIn(Stream stream) { var reader = new BinaryReader(stream); reader.Advance(32); var pageSize = reader.ReadInt32(); reader.Advance(4); var pageCount = reader.ReadInt32(); reader.Advance(pageSize - 44); const uint magic = 0x1312e94; int page = 0; for (int i = 1; i < pageCount; i++) { if (magic == reader.ReadUInt32()) { page = i; break; } reader.Advance(pageSize - 4); } return(page * pageSize); }
public static async Task <SaveEntry> Create() { await using var file = File.OpenRead(Data.SaveFile); using var reader = new BinaryReader(file, Encoding.UTF8, true); reader.Advance(8); var advancedValue = reader.ReadInt32(); var difficultyValue = reader.ReadInt32(); reader.Advance(16); var shipName = reader.ReadUtf8PrefixString(); var shipId = reader.ReadUtf8PrefixString(); var hasLayoutSuffix = shipId[^ 2] == '_' && Char.IsDigit(shipId[^ 1]);
public void Load(BinaryReader br, UInt32 address) { br.Jump(address); Name = br.ReadStringFromOffset(); width = br.ReadUInt32(); height = br.ReadUInt32(); box = new Rectangle(); box.X = (int)br.ReadUInt32(); // Left box.Width = (int)br.ReadUInt32() - box.X; // Right UInt32 bottom = br.ReadUInt32(); box.Y = (int)br.ReadUInt32(); // Top box.Height = (int)bottom - box.Y; // Bottom br.Advance(12); // Unknown[4] boundingBoxMode = br.ReadUInt32(); sepMasks = br.ReadUInt32(); originX = br.ReadUInt32(); originY = br.ReadUInt32(); UInt32 textureCount = br.ReadUInt32(); texturePages = new TexturePage[textureCount]; for (int i = 0; i < texturePages.Length; i++) { UInt32 offset = br.ReadUInt32(); TexturePage tp = new TexturePage(); tp.Load(br, offset); texturePages[i] = tp; } br.JumpBack(); }
public void Load(BinaryReader br, UInt32 address) { br.Jump(address); Name = br.ReadStringFromOffset(); br.Advance(12); // Unknown[3] UInt32 tpOff = br.ReadUInt32(); texturePage = new TexturePage(); texturePage.Load(br, tpOff); br.JumpBack(); }
protected override void LoadData(BinaryReader br) { base.LoadData(br); byte debug = br.ReadByte(); Debug = debug == 1; Unknown1 = (br.ReadUInt16() << 8) | br.ReadByte(); Filename = br.ReadStringFromOffset(); br.Advance(12); // ConfigOffset, LastObj, LastTile GameID = br.ReadUInt32(); br.Advance(16); // Unknown2[4] Name = br.ReadStringFromOffset(); MajorVersion = br.ReadUInt32(); MinorVersion = br.ReadUInt32(); ReleaseVersion = br.ReadUInt32(); BuildVersion = br.ReadUInt32(); br.Advance(40); // DefaultWindowWidth, DefaultWindowHeight, Info, LicenseMD5[0x10], LicenseCRC32, Timestamp DisplayName = br.ReadStringFromOffset(); br.Advance(20); // ActiveTargets, Unknown3[4] SteamAppID = br.ReadUInt32(); }