Esempio n. 1
0
    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");
    }
Esempio n. 2
0
        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)));
        }
Esempio n. 3
0
 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));
 }