public void ReadData(MemoryStream stream) { var origPos = stream.Position; var pos = stream.SearchForBytePattern(MagicStuff.MiscMagic); if (pos == -1) { return; } stream.Seek(pos + MagicStuff.SafeMagic.Length + 4, SeekOrigin.Begin); Health = stream.ReadFloat(); Stasis = stream.ReadFloat(); Air = stream.ReadFloat(); Nodes = stream.ReadUInt32(); Unk1 = stream.ReadInt32(); var activeSuitId = stream.ReadGuid(); ActiveSuit = MagicStuff.GetItemDescriptor(activeSuitId, ItemType.Suit); UnlockedLogChapters = stream.ReadInt32(); InventorySlots = stream.ReadInt32(); DamageRatio = stream.ReadFloat(); Unk3 = stream.ReadInt32(); stream.Read(Flags, 0, 8); stream.Position = origPos; }
public void ReadData(MemoryStream stream) { var origPos = stream.Position; var currPos = stream.SearchForBytePattern(MagicStuff.WeaponMagic); if (currPos == -1) { return; } Items = new List <WeaponEntity>(); stream.Seek(currPos + MagicStuff.InventoryMagic.Length, SeekOrigin.Begin); var size = stream.ReadInt16() - 8; stream.Seek(2, SeekOrigin.Current); ActiveSlots = stream.ReadInt32(); Unk1 = stream.ReadInt32(); if (size < ItemSize) { return; } for (int i = 0; i < size / ItemSize; i++) { var id = stream.ReadGuid(); var slot = stream.ReadUInt32(); var quantity = stream.ReadUInt32(); var desc = MagicStuff.GetItemDescriptor(id, ItemType.Weapon); Items.Add(new WeaponEntity { Slot = slot, Quantity = quantity, Descriptor = desc }); } stream.Position = origPos; }
public void ReadData(MemoryStream stream) { var origPos = stream.Position; var currPos = stream.SearchForBytePattern(MagicStuff.ShopMagic); if (currPos == -1) { return; } Items = new List <ShopEntity>(); stream.Seek(currPos + MagicStuff.ShopMagic.Length, SeekOrigin.Begin); var size = stream.ReadInt16() - 4; stream.Seek(2, SeekOrigin.Current); Unk1 = stream.ReadInt32(); if (size < ItemSize) { return; } for (int i = 0; i < size / ItemSize; i++) { var id = stream.ReadGuid(); var unk = stream.ReadInt32(); var desc = MagicStuff.GetItemDescriptor(id); Items.Add(new ShopEntity { Unk1 = unk, Descriptor = desc }); } stream.Position = origPos; }