Include all yaml and lua files in Map UID.
This commit is contained in:
@@ -102,23 +102,18 @@ namespace OpenRA
|
|||||||
public static string ComputeUID(IReadOnlyPackage package)
|
public static string ComputeUID(IReadOnlyPackage package)
|
||||||
{
|
{
|
||||||
// UID is calculated by taking an SHA1 of the yaml and binary data
|
// UID is calculated by taking an SHA1 of the yaml and binary data
|
||||||
|
var requiredFiles = new[] { "map.yaml", "map.bin" };
|
||||||
|
var contents = package.Contents.ToList();
|
||||||
|
foreach (var required in requiredFiles)
|
||||||
|
if (!contents.Contains(required))
|
||||||
|
throw new FileNotFoundException("Required file {0} not present in this map".F(required));
|
||||||
|
|
||||||
using (var ms = new MemoryStream())
|
using (var ms = new MemoryStream())
|
||||||
{
|
{
|
||||||
// Read the relevant data into the buffer
|
foreach (var filename in contents)
|
||||||
using (var s = package.GetStream("map.yaml"))
|
if (filename.EndsWith(".yaml") || filename.EndsWith(".bin") || filename.EndsWith(".lua"))
|
||||||
{
|
using (var s = package.GetStream(filename))
|
||||||
if (s == null)
|
s.CopyTo(ms);
|
||||||
throw new FileNotFoundException("Required file map.yaml not present in this map");
|
|
||||||
s.CopyTo(ms);
|
|
||||||
}
|
|
||||||
|
|
||||||
using (var s = package.GetStream("map.bin"))
|
|
||||||
{
|
|
||||||
if (s == null)
|
|
||||||
throw new FileNotFoundException("Required file map.bin not present in this map");
|
|
||||||
|
|
||||||
s.CopyTo(ms);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Take the SHA1
|
// Take the SHA1
|
||||||
ms.Seek(0, SeekOrigin.Begin);
|
ms.Seek(0, SeekOrigin.Begin);
|
||||||
|
|||||||
Reference in New Issue
Block a user