|
19 | 19 | using System.Windows.Media; |
20 | 20 | using System.Windows.Threading; |
21 | 21 | using UnityLauncherPro.Helpers; |
| 22 | +using UnityLauncherPro.Properties; |
22 | 23 |
|
23 | 24 | namespace UnityLauncherPro |
24 | 25 | { |
@@ -410,49 +411,55 @@ static bool CheckCrashBackupScene(string projectPath) |
410 | 411 | var recoveryFile = Path.Combine(projectPath, "Temp", "__Backupscenes", "0.backup"); |
411 | 412 | if (File.Exists(recoveryFile)) |
412 | 413 | { |
413 | | - File.Delete(recoveryFile); |
414 | | - Directory.Delete(Path.GetDirectoryName(recoveryFile)); |
415 | | - |
416 | | - // var result = MessageBox.Show("Crash recovery scene found, do you want to MOVE it into Assets/_Recovery/-folder?", "UnityLauncherPro - Scene Recovery", MessageBoxButton.YesNo, MessageBoxImage.Question); |
417 | | - // if (result == MessageBoxResult.Yes) |
418 | | - // { |
419 | | - // var restoreFolder = Path.Combine(projectPath, "Assets", "_Recovery"); |
420 | | - // if (Directory.Exists(restoreFolder) == false) |
421 | | - // { |
422 | | - // Directory.CreateDirectory(restoreFolder); |
423 | | - // } |
424 | | - // if (Directory.Exists(restoreFolder) == true) |
425 | | - // { |
426 | | - // Int32 unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; |
427 | | - // var uniqueFileName = "Recovered_Scene" + unixTimestamp + ".unity"; |
428 | | - // |
429 | | - // try |
430 | | - // { |
431 | | - // File.Move(recoveryFile, Path.Combine(restoreFolder, uniqueFileName)); |
432 | | - // // remove folder, otherwise unity 6000.2 asks for recovery |
433 | | - // Directory.Delete(Path.Combine(projectPath, "Temp", "__Backupscenes"), true); |
434 | | - // |
435 | | - // Console.WriteLine("moved file to " + uniqueFileName); |
436 | | - // } |
437 | | - // catch (IOException) |
438 | | - // { |
439 | | - // // if move failed, try copy |
440 | | - // File.Copy(recoveryFile, Path.Combine(restoreFolder, uniqueFileName)); |
441 | | - // Console.WriteLine("copied file"); |
442 | | - // } |
443 | | - // |
444 | | - // Console.WriteLine("Recovered crashed scene into: " + restoreFolder); |
445 | | - // } |
446 | | - // else |
447 | | - // { |
448 | | - // Console.WriteLine("Error: Failed to create restore folder: " + restoreFolder); |
449 | | - // cancelRunningUnity = true; |
450 | | - // } |
451 | | - // } |
452 | | - // else if (result == MessageBoxResult.Cancel) // dont do restore, but run Unity |
453 | | - // { |
454 | | - // cancelRunningUnity = true; |
455 | | - // } |
| 414 | + if (Settings.Default.deleteRecoveredScene) |
| 415 | + { |
| 416 | + File.Delete(recoveryFile); |
| 417 | + Directory.Delete(Path.GetDirectoryName(recoveryFile)); |
| 418 | + } |
| 419 | + else |
| 420 | + { |
| 421 | + var result = MessageBox.Show("Crash recovery scene found, do you want to MOVE it into Assets/_Recovery/-folder?", "UnityLauncherPro - Scene Recovery", MessageBoxButton.YesNo, MessageBoxImage.Question); |
| 422 | + if (result == MessageBoxResult.Yes) |
| 423 | + { |
| 424 | + var restoreFolder = Path.Combine(projectPath, "Assets", "_Recovery"); |
| 425 | + if (Directory.Exists(restoreFolder) == false) |
| 426 | + { |
| 427 | + Directory.CreateDirectory(restoreFolder); |
| 428 | + } |
| 429 | + |
| 430 | + if (Directory.Exists(restoreFolder) == true) |
| 431 | + { |
| 432 | + Int32 unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; |
| 433 | + var uniqueFileName = "Recovered_Scene" + unixTimestamp + ".unity"; |
| 434 | + |
| 435 | + try |
| 436 | + { |
| 437 | + File.Move(recoveryFile, Path.Combine(restoreFolder, uniqueFileName)); |
| 438 | + // remove folder, otherwise unity 6000.2 asks for recovery |
| 439 | + Directory.Delete(Path.Combine(projectPath, "Temp", "__Backupscenes"), true); |
| 440 | + |
| 441 | + Console.WriteLine("moved file to " + uniqueFileName); |
| 442 | + } |
| 443 | + catch (IOException) |
| 444 | + { |
| 445 | + // if move failed, try copy |
| 446 | + File.Copy(recoveryFile, Path.Combine(restoreFolder, uniqueFileName)); |
| 447 | + Console.WriteLine("copied file"); |
| 448 | + } |
| 449 | + |
| 450 | + Console.WriteLine("Recovered crashed scene into: " + restoreFolder); |
| 451 | + } |
| 452 | + else |
| 453 | + { |
| 454 | + Console.WriteLine("Error: Failed to create restore folder: " + restoreFolder); |
| 455 | + cancelRunningUnity = true; |
| 456 | + } |
| 457 | + } |
| 458 | + else if (result == MessageBoxResult.Cancel) // dont do restore, but run Unity |
| 459 | + { |
| 460 | + cancelRunningUnity = true; |
| 461 | + } |
| 462 | + } |
456 | 463 | } |
457 | 464 | return cancelRunningUnity; |
458 | 465 | } |
|
0 commit comments