Skip to content

Commit 9a2d430

Browse files
committed
Temporary patch 1.3 compatibility fix.
1 parent e132349 commit 9a2d430

File tree

2 files changed

+69
-38
lines changed

2 files changed

+69
-38
lines changed

CP2077SaveEditor/Views/Form1.cs

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ public partial class Form1 : Form
3232
private bool cancelLoad = false;
3333
private int saveType = 0;
3434
private Random globalRand = new Random();
35-
public static bool psDataEnabled = true;
35+
public static bool psDataEnabled = false;
36+
public static bool statsSystemEnabled = false;
3637
public static bool wipEnabled = false;
3738

3839
//GUI
@@ -521,14 +522,19 @@ private void openSaveButton_Click(object sender, EventArgs e)
521522
parsers.AddRange(new INodeParser[] {
522523
new CharacterCustomizationAppearancesParser(), new InventoryParser(), new ItemDataParser(), new FactsDBParser(),
523524
new FactsTableParser(), new GameSessionConfigParser(), new ItemDropStorageManagerParser(), new ItemDropStorageParser(),
524-
new StatsSystemParser(), new ScriptableSystemsContainerParser()
525+
new ScriptableSystemsContainerParser()
525526
});
526527

527528
if (psDataEnabled)
528529
{
529530
parsers.Add(new PSDataParser());
530531
}
531532

533+
if (statsSystemEnabled)
534+
{
535+
parsers.Add(new StatsSystemParser());
536+
}
537+
532538
var newSave = new SaveFileHelper(parsers);
533539
editorPanel.Enabled = false;
534540
optionsPanel.Enabled = false;
@@ -758,14 +764,19 @@ private void saveChangesButton_Click(object sender, EventArgs e)
758764
parsers.AddRange(new INodeParser[] {
759765
new CharacterCustomizationAppearancesParser(), new InventoryParser(), new ItemDataParser(), new FactsDBParser(),
760766
new FactsTableParser(), new GameSessionConfigParser(), new ItemDropStorageManagerParser(), new ItemDropStorageParser(),
761-
new StatsSystemParser(), new ScriptableSystemsContainerParser()
767+
new ScriptableSystemsContainerParser()
762768
});
763769

764770
if (psDataEnabled)
765771
{
766772
parsers.Add(new PSDataParser());
767773
}
768774

775+
if (statsSystemEnabled)
776+
{
777+
parsers.Add(new StatsSystemParser());
778+
}
779+
769780
var testFile = new SaveFileHelper(parsers);
770781
try
771782
{
@@ -1142,6 +1153,11 @@ private void clearQuestFlagsButton_Click(object sender, EventArgs e)
11421153

11431154
private void additionalPlayerStatsButton_Click(object sender, EventArgs e)
11441155
{
1156+
if (!statsSystemEnabled)
1157+
{
1158+
MessageBox.Show("Stats system disabled.");
1159+
return;
1160+
}
11451161
var i = Array.FindIndex(activeSaveFile.GetStatsMap().Keys, x => x.EntityHash == 1);
11461162
var details = new ItemDetails();
11471163
details.LoadStatsOnly(activeSaveFile.GetStatsMap().Values[i].Seed, activeSaveFile, "Player");

CP2077SaveEditor/Views/ItemDetails.cs

Lines changed: 50 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -110,50 +110,59 @@ public bool ReloadData()
110110
}
111111

112112
//Stats parsing
113-
if (activeSaveFile.GetItemStatData(activeItem) == null)
114-
{
115-
detailsTabControl.TabPages.Remove(statsTab);
116-
}
117-
else
113+
if (Form1.statsSystemEnabled)
118114
{
119-
detailsTabControl.TabPages.Remove(statsPlaceholderTab);
120-
statsListView.Items.Clear();
121-
var listRows = new List<ListViewItem>();
122-
var statsData = activeSaveFile.GetItemStatData(activeItem);
123-
if (statsData.StatModifiers != null)
115+
if (activeSaveFile.GetItemStatData(activeItem) == null)
124116
{
125-
foreach (Handle<GameStatModifierData> modifier in statsData.StatModifiers)
117+
detailsTabControl.TabPages.Remove(statsTab);
118+
}
119+
else
120+
{
121+
detailsTabControl.TabPages.Remove(statsPlaceholderTab);
122+
statsListView.Items.Clear();
123+
var listRows = new List<ListViewItem>();
124+
var statsData = activeSaveFile.GetItemStatData(activeItem);
125+
if (statsData.StatModifiers != null)
126126
{
127-
var row = new string[] { "Constant", modifier.Value.ModifierType.ToString(), modifier.Value.StatType.ToString(), "" };
128-
129-
if (modifier.Value is GameCombinedStatModifierData combinedData)
130-
{
131-
row[0] = "Combined";
132-
row[3] = combinedData.Value.ToString();
133-
}
134-
else if (modifier.Value is GameConstantStatModifierData constantData)
127+
foreach (Handle<GameStatModifierData> modifier in statsData.StatModifiers)
135128
{
136-
row[3] = constantData.Value.ToString();
137-
}
138-
else
139-
{
140-
row[0] = "Curve";
129+
var row = new string[] { "Constant", modifier.Value.ModifierType.ToString(), modifier.Value.StatType.ToString(), "" };
130+
131+
if (modifier.Value is GameCombinedStatModifierData combinedData)
132+
{
133+
row[0] = "Combined";
134+
row[3] = combinedData.Value.ToString();
135+
}
136+
else if (modifier.Value is GameConstantStatModifierData constantData)
137+
{
138+
row[3] = constantData.Value.ToString();
139+
}
140+
else
141+
{
142+
row[0] = "Curve";
143+
}
144+
145+
var newItem = new ListViewItem(row);
146+
newItem.Tag = modifier;
147+
listRows.Add(newItem);
141148
}
142149

143-
var newItem = new ListViewItem(row);
144-
newItem.Tag = modifier;
145-
listRows.Add(newItem);
150+
statsListView.BeginUpdate();
151+
statsListView.Items.AddRange(listRows.ToArray());
152+
statsListView.EndUpdate();
153+
}
154+
else
155+
{
156+
statsData.StatModifiers = new Handle<GameStatModifierData>[0];
146157
}
147-
148-
statsListView.BeginUpdate();
149-
statsListView.Items.AddRange(listRows.ToArray());
150-
statsListView.EndUpdate();
151-
}
152-
else
153-
{
154-
statsData.StatModifiers = new Handle<GameStatModifierData>[0];
155158
}
156159
}
160+
else
161+
{
162+
detailsTabControl.TabPages.Remove(statsTab);
163+
detailsTabControl.TabPages.Remove(statsPlaceholderTab);
164+
}
165+
157166

158167
if (!statsOnly)
159168
{
@@ -176,6 +185,12 @@ public void LoadItem(ItemData item, object _saveFile, Func<bool> callback1, Rand
176185

177186
public void LoadStatsOnly(uint seed, object _saveFile, string name)
178187
{
188+
if (!Form1.statsSystemEnabled)
189+
{
190+
MessageBox.Show("Stats system disabled.");
191+
this.Close();
192+
}
193+
179194
callbackFunc1 = delegate{ return true; };
180195
var dummyItem = new ItemData();
181196
dummyItem.Header.Seed = seed;

0 commit comments

Comments
 (0)