|
- using System;
-
- public static class ConflictResolver
- {
- public static ConflictResolver.ConflictSolution Resolve(LocalGameState localGameState, CloudGameState cloudGameState)
- {
- if (cloudGameState.GameVersion > localGameState.LocalGameVersion)
- {
- return ConflictResolver.ConflictSolution.InvalidGameVersion;
- }
- if (cloudGameState.SaveGame != null && !string.IsNullOrEmpty(cloudGameState.SaveGuid) && localGameState.IsNewInstall)
- {
- return ConflictResolver.ConflictSolution.PickCloud;
- }
- if (cloudGameState.SaveStateGuid == localGameState.LocalSaveStateGuid)
- {
- return ConflictResolver.ConflictSolution.None;
- }
- if (cloudGameState.InstallGuid == localGameState.InstallGuid)
- {
- return ConflictResolver.ConflictSolution.PickLocal;
- }
- return ConflictResolver.ConflictSolution.AskPlayer;
- }
-
- public enum ConflictSolution
- {
- None,
- AskPlayer,
- PickLocal,
- PickCloud,
- InvalidGameVersion
- }
- }
|