public override void SerializeImpl(SerializerObject s) { s.DoChecksum(new ChecksumCRC32Calculator(), () => { FileSize = s.Serialize <int>(FileSize, name: nameof(FileSize)); Entries = s.SerializeObjectArrayUntil <Unity_PlayerPrefsEntry>(Entries, _ => s.CurrentFileOffset >= s.CurrentLength, name: nameof(Entries)); }, ChecksumPlacement.Before, name: "Checksum"); }
public override void SerializeImpl(SerializerObject s) { StartPositionsPointer = s.SerializePointer(StartPositionsPointer, name: nameof(StartPositionsPointer)); MultiplayerFlagsPointer = s.SerializePointer(MultiplayerFlagsPointer, name: nameof(MultiplayerFlagsPointer)); MultiplayerCrownsPointer = s.SerializePointer(MultiplayerCrownsPointer, name: nameof(MultiplayerCrownsPointer)); ObjectsPointer = s.SerializePointer(ObjectsPointer, name: nameof(ObjectsPointer)); TargetObjectsPointer = s.SerializePointer(TargetObjectsPointer, name: nameof(TargetObjectsPointer)); if (!SerializeData) { return; } StartPositions = s.DoAt(StartPositionsPointer, () => s.SerializeObjectArray <GBAVV_Isometric_Position>(StartPositions, IsMultiplayer ? 2 : 1, name: nameof(StartPositions))); MultiplayerFlags = s.DoAt(MultiplayerFlagsPointer, () => s.SerializeObjectArrayUntil <GBAVV_Isometric_MultiplayerFlag>(MultiplayerFlags, x => x.XPos == 0, name: nameof(MultiplayerFlags))); MultiplayerCrowns = s.DoAt(MultiplayerCrownsPointer, () => s.SerializeObjectArrayUntil <GBAVV_Isometric_MultiplayerCrown>(MultiplayerCrowns, x => x.XPos == 0, name: nameof(MultiplayerCrowns))); Objects = s.DoAt(ObjectsPointer, () => s.SerializeObjectArrayUntil <GBAVV_Isometric_Object>(Objects, x => x.ObjType == GBAVV_Isometric_Object.GBAVV_Isometric_ObjType.Invalid, name: nameof(Objects))); TargetObjects = s.DoAt(TargetObjectsPointer, () => s.SerializeObjectArrayUntil <GBAVV_Isometric_TargetObject>(TargetObjects, x => x.ObjType == GBAVV_Isometric_TargetObject.GBAVV_Isometric_TargetObjType.Invalid, name: nameof(TargetObjects))); }
public override void SerializeImpl(SerializerObject s) { Objects = s.SerializeObjectArrayUntil <Object>(Objects, (o) => (s.CurrentPointer.AbsoluteOffset) >= (Offset + ResourceSize).AbsoluteOffset, includeLastObj: true, name: nameof(Objects)); }
public override void SerializeImpl(SerializerObject s) { ResourceList = s.SerializeObjectArrayUntil <ResourceReference>(ResourceList, (o) => (s.CurrentPointer.AbsoluteOffset) >= (Offset + ResourceSize).AbsoluteOffset, includeLastObj: true, name: nameof(ResourceList)); }