Fix missing map files preventing map saves

This commit is contained in:
Gustas
2024-02-17 20:26:40 +02:00
committed by abcdefg30
parent cf21c8e906
commit 150e28a672

View File

@@ -650,21 +650,24 @@ namespace OpenRA
foreach (var file in Package.Contents) foreach (var file in Package.Contents)
toPackage.Update(file, Package.GetStream(file).ReadAllBytes()); toPackage.Update(file, Package.GetStream(file).ReadAllBytes());
if (!LockPreview) void UpdatePackage(string filename, byte[] data)
{ {
var previewData = SavePreview(); if (Package != toPackage)
if (Package != toPackage || !Enumerable.SequenceEqual(previewData, Package.GetStream("map.png").ReadAllBytes())) toPackage.Update(filename, data);
toPackage.Update("map.png", previewData); else
{
var stream = Package.GetStream(filename);
if (stream == null || !Enumerable.SequenceEqual(data, stream.ReadAllBytes()))
toPackage.Update(filename, data);
}
} }
// Update the package with the new map data if (!LockPreview)
var textData = Encoding.UTF8.GetBytes(root.WriteToString()); UpdatePackage("map.png", SavePreview());
if (Package != toPackage || !Enumerable.SequenceEqual(textData, Package.GetStream("map.yaml").ReadAllBytes()))
toPackage.Update("map.yaml", textData);
var binaryData = SaveBinaryData(); // Update the package with the new map data
if (Package != toPackage || !Enumerable.SequenceEqual(binaryData, Package.GetStream("map.bin").ReadAllBytes())) UpdatePackage("map.yaml", Encoding.UTF8.GetBytes(root.WriteToString()));
toPackage.Update("map.bin", binaryData); UpdatePackage("map.bin", SaveBinaryData());
Package = toPackage; Package = toPackage;