Fix missing map files preventing map saves
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user