blob: f0946408437a562094c6c4d0debc809f43e14eac (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Histacom2.Engine;
using System.IO;
namespace Histacom2.SaveDialogs
{
public partial class SaveFileTroubleShooter : Form
{
public string log;
Save savedata;
string json;
public SaveFileTroubleShooter()
{
InitializeComponent();
}
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
private void SaveFileTroubleShooter_Load(object sender, EventArgs e)
{
BeginScan();
}
void WriteToLog(string toWrite)
{
log += toWrite + Environment.NewLine;
}
void BeginScan()
{
WriteToLog("Started scanning profile: " + SaveSystem.ProfileName);
// Check if the main.save file exists
string savefile = Path.Combine(SaveSystem.ProfileDirectory, "main.save");
if (!File.Exists(savefile))
{
WriteToLog("ISSUE FOUND! File main.save doesn't exist");
WriteToLog("Creating one...");
SaveSystem.NewGame();
WriteToLog("Created one!");
EndScan(true);
return;
} else {
WriteToLog("File main.save does exist - checking contents");
try
{
savedata = SaveSystem.ReadSave(savefile);
} catch
{
WriteToLog("ISSUE FOUND! File main.save is unreadable");
WriteToLog("Sorry, there is no repairing it easily, your data will be lost");
string backupfile = Path.Combine(SaveSystem.ProfileDirectory, "main.backup");
if (Directory.Exists(backupfile)) Directory.Delete(backupfile);
File.Copy(savefile, backupfile);
SaveSystem.NewGame();
// Make sure the username is set
SaveSystem.CurrentSave.Username = SaveSystem.ProfileName;
WriteToLog($"The corrupt file has been stored in {backupfile}");
EndScan(true);
}
// Check the values
if (savedata.CurrentOS == null || savedata.CurrentOS == "")
{
WriteToLog("ISSUE FOUND! Data for CurrentOS is null! Giving default value...");
savedata.CurrentOS = "95";
EndScan(true);
}
if (savedata.ExperiencedStories == null)
{
WriteToLog("ISSUE FOUND! Data for ExperiencedStories is null! Giving default value...");
savedata.ExperiencedStories = new List<string>();
}
if (savedata.ThemeName == null || savedata.ThemeName == "")
{
WriteToLog("ISSUE FOUND! Data for ThemeName is null! Giving default value...");
savedata.ThemeName = "95normal";
}
}
string folderspath = Path.Combine(SaveSystem.ProfileDirectory, "folders");
if (!Directory.Exists(folderspath))
{
WriteToLog("ISSUE FOUND! Directory 'folders' doesn't exist! Creating one...");
Directory.CreateDirectory(folderspath);
SaveSystem.CheckFiles();
}
}
void EndScan(bool successful)
{
pnlResolved.Visible = true;
if (successful == true)
{
label2.Text = "The issue has been resolved.";
// Set CurrentSave to the resolved one
SaveSystem.CurrentSave = savedata;
// Set the main.save file to the resolved one
SaveSystem.WriteSave(Path.Combine(SaveSystem.ProfileDirectory, "main.save"), savedata);
textBox1.Text = log;
} else {
label2.Text = "The issue has not been resolved, sorry";
textBox1.Text = log;
}
}
}
}
|