public static GenericSaveId ReadFrom(IReader reader) { int num1 = (int)reader.ReadByte(); TypeSaveId baseId = TypeSaveId.ReadFrom(reader); byte num2 = reader.ReadByte(); List <SaveId> saveIdList = new List <SaveId>(); for (int index = 0; index < (int)num2; ++index) { SaveId saveId = (SaveId)null; switch (reader.ReadByte()) { case 0: saveId = (SaveId)TypeSaveId.ReadFrom(reader); break; case 1: saveId = (SaveId)GenericSaveId.ReadFrom(reader); break; case 2: saveId = (SaveId)ContainerSaveId.ReadFrom(reader); break; } saveIdList.Add(saveId); } return(new GenericSaveId(baseId, saveIdList.ToArray())); }
public static ContainerSaveId ReadFrom(IReader reader) { ContainerType containerType = (ContainerType)reader.ReadByte(); int num = containerType == ContainerType.Dictionary ? 2 : 1; List <SaveId> saveIdList = new List <SaveId>(); for (int index = 0; index < num; ++index) { SaveId saveId = (SaveId)null; switch (reader.ReadByte()) { case 0: saveId = (SaveId)TypeSaveId.ReadFrom(reader); break; case 1: saveId = (SaveId)GenericSaveId.ReadFrom(reader); break; case 2: saveId = (SaveId)ContainerSaveId.ReadFrom(reader); break; } saveIdList.Add(saveId); } SaveId keyId = saveIdList[0]; SaveId valueId = saveIdList.Count > 1 ? saveIdList[1] : (SaveId)null; return(new ContainerSaveId(containerType, keyId, valueId)); }
public static SaveId ReadSaveIdFrom(IReader reader) { byte num = reader.ReadByte(); SaveId saveId = (SaveId)null; switch (num) { case 0: saveId = (SaveId)TypeSaveId.ReadFrom(reader); break; case 1: saveId = (SaveId)GenericSaveId.ReadFrom(reader); break; case 2: saveId = (SaveId)ContainerSaveId.ReadFrom(reader); break; } return(saveId); }