void Awake() { if (Instance != null) { Destroy(gameObject); return; } Instance = this; DontDestroyOnLoad(gameObject); Formatter <DefaultResolver, UserDataV1> .Register(new UserDataV1Formatter <DefaultResolver>()); UserDataFilePath = Path.Combine(Application.persistentDataPath, UserDataV1.USER_DATA_FILE_NAME); if (File.Exists(UserDataFilePath)) { UserData = ZeroFormatterSerializer.Deserialize <UserDataV1>(File.ReadAllBytes(UserDataFilePath)); } else { UserData = new UserDataV1(); } Formatter <DefaultResolver, PuzzleDataV1> .Register(new PuzzleDataV1Formatter <DefaultResolver>()); PuzzleDataFilePath = Path.Combine(Application.persistentDataPath, PuzzleDataV1.PUZZLE_DATA_FILE_NAME); if (File.Exists(PuzzleDataFilePath)) { PuzzleData = ZeroFormatterSerializer.Deserialize <PuzzleDataV1>(File.ReadAllBytes(PuzzleDataFilePath)); } else { PuzzleData = new PuzzleDataV1(); } Formatter <DefaultResolver, ReplayDataV1> .Register(new ReplayDataV1Formatter <DefaultResolver>()); ReplayDataFilePath = Path.Combine(Application.persistentDataPath, ReplayDataV1.REPLAY_DATA_FILE_NAME); if (File.Exists(ReplayDataFilePath)) { ReplayData = ZeroFormatterSerializer.Deserialize <ReplayDataV1>(File.ReadAllBytes(ReplayDataFilePath)); } else { ReplayData = new ReplayDataV1(); } }
public override int Serialize(ref byte[] bytes, int offset, PuzzleDataV1 value) { int startOffset = offset; offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Row); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Col); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Color); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Link); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Direction); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Time); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Stop); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.CountDisp); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Garbage); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.WriteCount); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Practice); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Reserved11); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Reserved12); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Reserved13); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Reserved14); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Reserved15); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Reserved16); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Reserved17); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Reserved18); offset += Formatter <TTypeResolver, int> .Default.Serialize(ref bytes, offset, value.Reserved19); return(offset - startOffset); }
public override PuzzleDataV1 Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize) { PuzzleDataV1 value = new PuzzleDataV1(); value.Row = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Col = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Color = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Link = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Direction = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Time = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Stop = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.CountDisp = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Garbage = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.WriteCount = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Practice = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Reserved11 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Reserved12 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Reserved13 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Reserved14 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Reserved15 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Reserved16 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Reserved17 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Reserved18 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; value.Reserved19 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize); offset += 4; return(value); }