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 } }