From f7fdd885fb6a5e10f0de090d54edcdfb618c3428 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Sat, 20 Aug 2011 14:23:09 +1200 Subject: [PATCH] produce much better exceptions for missing files in map packages --- OpenRA.Game/Map.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/OpenRA.Game/Map.cs b/OpenRA.Game/Map.cs index c730d96cd7..d062b7aada 100644 --- a/OpenRA.Game/Map.cs +++ b/OpenRA.Game/Map.cs @@ -103,10 +103,21 @@ namespace OpenRA public string Owner = null; } + void AssertExists(string filename) + { + using(var s = Container.GetContent(filename)) + if (s == null) + throw new InvalidOperationException("Required file {0} not present in this map".F(filename)); + } + public Map(string path) { Path = path; Container = FileSystem.OpenPackage(path, int.MaxValue); + + AssertExists("map.yaml"); + AssertExists("map.bin"); + var yaml = new MiniYaml( null, MiniYaml.FromStream(Container.GetContent("map.yaml")) ); FieldLoader.Load(this, yaml); Uid = ComputeHash();