private static SandboxContentHeader DeserializeContentHeader(StreamHelper streamHelper) { var content = new SandboxContentHeader(); streamHelper.SeekTo(0x138); if (!streamHelper.ReadAscii(4).Equals("mapv")) { throw new Exception("expected mapv magic."); } streamHelper.SeekTo(0x42); content.CreationDate = streamHelper.ReadInt32(); streamHelper.SeekTo(0x48); content.CreationVarientName = streamHelper.ReadUTF16(0x1F); streamHelper.SeekTo(0x68); content.CreationVarientDescription = streamHelper.ReadAscii(0x80); streamHelper.SeekTo(0xE8); content.CreationVarientAuthor = streamHelper.ReadAscii(0x13); streamHelper.SeekTo(0x114); content.ModificationDate = streamHelper.ReadInt32(); streamHelper.SeekTo(0x150); content.VarientName = streamHelper.ReadUTF16(0x1F); streamHelper.SeekTo(0x170); content.VarientDescription = streamHelper.ReadAscii(0x80); streamHelper.SeekTo(0x1F0); content.VarientAuthor = streamHelper.ReadAscii(0x13); streamHelper.SeekTo(0x228); content.MapID = streamHelper.ReadInt32(); streamHelper.SeekTo(0x246); content.SpawnedObjectCount = streamHelper.ReadInt16(); streamHelper.SeekTo(0x24C); content.WorldBoundsX = new SandboxContentHeader.WorldBound { Min = streamHelper.ReadFloat(), Max = streamHelper.ReadFloat() }; content.WorldBoundsY = new SandboxContentHeader.WorldBound { Min = streamHelper.ReadFloat(), Max = streamHelper.ReadFloat() }; content.WorldBoundsZ = new SandboxContentHeader.WorldBound { Min = streamHelper.ReadFloat(), Max = streamHelper.ReadFloat() }; streamHelper.SeekTo(0x268); content.MaximiumBudget = streamHelper.ReadFloat(); content.CurrentBudget = streamHelper.ReadFloat(); return(content); }
public static SandboxContentHeader DeserializeContentHeader(EndianStream stream) { var content = new SandboxContentHeader(); stream.SeekTo(0x138); if (!stream.ReadAscii(4).Equals("mapv")) { throw new InvalidDataException("expected mapv magic."); } stream.SeekTo(0x48); content.Name = stream.ReadUTF16(16); content.Description = stream.ReadAscii(128); content.Author = stream.ReadAscii(16); stream.SeekTo(0x108); content.Size = stream.ReadInt64(); content.Timestamp = stream.ReadInt64(); stream.SeekTo(0x120); content.MapId = stream.ReadInt32(); return(content); }