diff --git a/OpenRA.FileFormats/Map/Map.cs b/OpenRA.FileFormats/Map/Map.cs
index d7bef056ff..0f77ce8fcc 100644
--- a/OpenRA.FileFormats/Map/Map.cs
+++ b/OpenRA.FileFormats/Map/Map.cs
@@ -1,268 +1,229 @@
-#region Copyright & License Information
-/*
- * Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford.
- * This file is part of OpenRA.
- *
- * OpenRA is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenRA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with OpenRA. If not, see .
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-
-namespace OpenRA.FileFormats
-{
- public class OldMap
- {
- public readonly string Title;
- public readonly string Theater;
- public readonly int INIFormat;
-
- public readonly int MapSize;
- public readonly int XOffset;
- public readonly int YOffset;
- public int2 Offset { get { return new int2( XOffset, YOffset ); } }
-
- public readonly int Width;
- public readonly int Height;
- public int2 Size { get { return new int2(Width, Height); } }
-
- public readonly OldTileReference[ , ] MapTiles;
- public readonly List Actors = new List();
-
- public readonly IEnumerable SpawnPoints;
-
- static string Truncate( string s, int maxLength )
- {
- return s.Length <= maxLength ? s : s.Substring(0,maxLength );
- }
-
- public OldMap(string filename)
- {
- IniFile file = new IniFile(FileSystem.Open(filename));
-
- IniSection basic = file.GetSection("Basic");
- Title = basic.GetValue("Name", "(null)");
- INIFormat = int.Parse(basic.GetValue("NewINIFormat", "0"));
-
- IniSection map = file.GetSection("Map");
- Theater = Truncate(map.GetValue("Theater", "TEMPERAT"), 8);
-
- XOffset = int.Parse(map.GetValue("X", "0"));
- YOffset = int.Parse(map.GetValue("Y", "0"));
-
- Width = int.Parse(map.GetValue("Width", "0"));
- Height = int.Parse(map.GetValue("Height", "0"));
- MapSize = (INIFormat == 3) ? 128 : 64;
-
- MapTiles = new OldTileReference[ MapSize, MapSize ];
- for (int j = 0; j < MapSize; j++)
- for (int i = 0; i < MapSize; i++)
- MapTiles[i, j] = new OldTileReference();
-
-
- if (INIFormat == 3) // RA map
- {
- UnpackRATileData(ReadPackedSection(file.GetSection("MapPack")));
- UnpackRAOverlayData(ReadPackedSection(file.GetSection("OverlayPack")));
- ReadRATrees(file);
- }
- else // CNC
- {
- UnpackCncTileData(FileSystem.Open(filename.Substring(0,filename.Length-4)+".bin"));
- ReadCncOverlay(file);
- ReadCncTrees(file);
- }
-
- LoadActors(file, "STRUCTURES");
- LoadActors(file, "UNITS");
- LoadActors(file, "INFANTRY");
-
- SpawnPoints = file.GetSection("Waypoints")
- .Where(kv => int.Parse(kv.Value) > 0)
- .Select(kv => Pair.New(int.Parse(kv.Key), new int2(int.Parse(kv.Value) % MapSize, int.Parse(kv.Value) / MapSize)))
- .Where(a => a.First < 8)
- .Select(a => a.Second)
- .ToArray();
- }
-
- static MemoryStream ReadPackedSection(IniSection mapPackSection)
- {
- StringBuilder sb = new StringBuilder();
- for (int i = 1; ; i++)
- {
- string line = mapPackSection.GetValue(i.ToString(), null);
- if (line == null)
- break;
-
- sb.Append(line.Trim());
- }
-
- byte[] data = Convert.FromBase64String(sb.ToString());
- List chunks = new List();
- BinaryReader reader = new BinaryReader(new MemoryStream(data));
-
- try
- {
- while (true)
- {
- uint length = reader.ReadUInt32() & 0xdfffffff;
- byte[] dest = new byte[8192];
- byte[] src = reader.ReadBytes((int)length);
-
- /*int actualLength =*/ Format80.DecodeInto(src, dest);
-
- chunks.Add(dest);
- }
- }
- catch (EndOfStreamException) { }
-
- MemoryStream ms = new MemoryStream();
- foreach (byte[] chunk in chunks)
- ms.Write(chunk, 0, chunk.Length);
-
- ms.Position = 0;
-
- return ms;
- }
-
- static byte ReadByte( Stream s )
- {
- int ret = s.ReadByte();
- if( ret == -1 )
- throw new NotImplementedException();
- return (byte)ret;
- }
-
- static ushort ReadWord(Stream s)
- {
- ushort ret = ReadByte(s);
- ret |= (ushort)(ReadByte(s) << 8);
-
- return ret;
- }
-
- void UnpackRATileData( MemoryStream ms )
- {
- for( int i = 0 ; i < MapSize ; i++ )
- for( int j = 0 ; j < MapSize ; j++ )
- MapTiles[j, i].tile = ReadWord(ms);
-
- for( int i = 0 ; i < MapSize ; i++ )
- for( int j = 0 ; j < MapSize ; j++ )
- {
- MapTiles[j, i].image = (byte)ms.ReadByte();
- if( MapTiles[ j, i ].tile == 0xff || MapTiles[ j, i ].tile == 0xffff )
- MapTiles[ j, i ].image = (byte)( i % 4 + ( j % 4 ) * 4 );
- }
- }
-
- static string[] raOverlayNames =
- {
- "sbag", "cycl", "brik", "fenc", "wood",
- "gold01", "gold02", "gold03", "gold04",
- "gem01", "gem02", "gem03", "gem04",
- "v12", "v13", "v14", "v15", "v16", "v17", "v18",
- "fpls", "wcrate", "scrate", "barb", "sbag",
- };
-
- void UnpackRAOverlayData( MemoryStream ms )
- {
- for( int i = 0 ; i < MapSize ; i++ )
- for( int j = 0 ; j < MapSize ; j++ )
- {
- byte o = ReadByte( ms );
- MapTiles[ j, i ].overlay = (o == 255) ? null : raOverlayNames[o];
- }
- }
-
- void ReadRATrees( IniFile file )
- {
- IniSection terrain = file.GetSection( "TERRAIN", true );
- if( terrain == null )
- return;
-
- foreach( KeyValuePair kv in terrain )
- {
- var loc = int.Parse( kv.Key );
- Actors.Add( new ActorReference(kv.Value, new int2(loc % MapSize, loc / MapSize), null ) );
- }
- }
-
- void UnpackCncTileData( Stream ms )
- {
- for( int i = 0 ; i < MapSize ; i++ )
- for( int j = 0 ; j < MapSize ; j++ )
- {
- MapTiles[j, i].tile = (byte)ms.ReadByte();
- MapTiles[j, i].image = (byte)ms.ReadByte();
-
- if( MapTiles[ j, i ].tile == 0xff )
- MapTiles[ j, i ].image = (byte)( i % 4 + ( j % 4 ) * 4 );
- }
- }
-
- void ReadCncOverlay( IniFile file )
- {
- IniSection overlay = file.GetSection( "OVERLAY", true );
- if( overlay == null )
- return;
-
- foreach( KeyValuePair kv in overlay )
- {
- var loc = int.Parse( kv.Key );
- int2 cell = new int2(loc % MapSize, loc / MapSize);
- MapTiles[ cell.X, cell.Y ].overlay = kv.Value.ToLower();
- }
- }
-
-
- void ReadCncTrees( IniFile file )
- {
- IniSection terrain = file.GetSection( "TERRAIN", true );
- if( terrain == null )
- return;
-
- foreach( KeyValuePair kv in terrain )
- {
- var loc = int.Parse( kv.Key );
- Actors.Add( new ActorReference( kv.Value.Split(',')[0], new int2(loc % MapSize, loc / MapSize),null));
- }
- }
-
- void LoadActors(IniFile file, string section)
- {
- foreach (var s in file.GetSection(section, true))
- {
- //num=owner,type,health,location,facing,...
- var parts = s.Value.Split( ',' );
- var loc = int.Parse(parts[3]);
- Actors.Add( new ActorReference( parts[1].ToLowerInvariant(), new int2(loc % MapSize, loc / MapSize), parts[0]));
- }
- }
-
- public bool IsInMap(int2 xy)
- {
- return IsInMap(xy.X,xy.Y);
- }
-
- public bool IsInMap(int x, int y)
- {
- return (x >= XOffset && y >= YOffset && x < XOffset + Width && y < YOffset + Height);
- }
- }
-}
+#region Copyright & License Information
+/*
+ * Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford.
+ * This file is part of OpenRA.
+ *
+ * OpenRA is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * OpenRA is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with OpenRA. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Reflection;
+
+namespace OpenRA.FileFormats
+{
+ public class Map
+ {
+ // Yaml map data
+ public int MapFormat = 1;
+ public string Title;
+ public string Description;
+ public string Author;
+ public int PlayerCount;
+ public string Preview;
+ public string Tileset;
+
+ public Dictionary Actors = new Dictionary();
+ public Dictionary Waypoints = new Dictionary();
+ public Dictionary Rules = new Dictionary();
+
+ // Binary map data
+ public string Tiledata;
+ public byte TileFormat = 1;
+ public int2 MapSize;
+
+ public int2 TopLeft;
+ public int2 BottomRight;
+
+ public TileReference[ , ] MapTiles;
+ public TileReference[ , ] MapResources;
+
+
+ // Temporary compat hacks
+ public int XOffset {get {return TopLeft.X;}}
+ public int YOffset {get {return TopLeft.Y;}}
+ public int Width {get {return BottomRight.X-TopLeft.X;}}
+ public int Height {get {return BottomRight.Y-TopLeft.Y;}}
+ public string Theater {get {return Tileset;}}
+ public IEnumerable SpawnPoints {get {return Waypoints.Select(kv => kv.Value);}}
+
+ List SimpleFields = new List() {
+ "MapFormat", "Title", "Description", "Author", "PlayerCount", "Tileset", "Tiledata", "Preview", "MapSize", "TopLeft", "BottomRight"
+ };
+
+ public Map() {}
+
+ public Map(string filename)
+ {
+ var yaml = MiniYaml.FromFileInPackage(filename);
+
+ // 'Simple' metadata
+ foreach (var field in SimpleFields)
+ {
+ if (!yaml.ContainsKey(field)) continue;
+ FieldLoader.LoadField(this,field,yaml[field].Value);
+ }
+
+ // Waypoints
+ foreach (var wp in yaml["Waypoints"].Nodes)
+ {
+ string[] loc = wp.Value.Value.Split(',');
+ Waypoints.Add(wp.Key, new int2(int.Parse(loc[0]),int.Parse(loc[1])));
+ }
+
+ // TODO: Players
+
+ // Actors
+ foreach (var kv in yaml["Actors"].Nodes.ToPairs())
+ {
+ string[] vals = kv.Second.Split(' ');
+ string[] loc = vals[2].Split(',');
+ var a = new ActorReference(vals[0], new int2(int.Parse(loc[0]),int.Parse(loc[1])) ,vals[1]);
+ Actors.Add(kv.First,a);
+ }
+
+ // Rules
+ Rules = yaml["Rules"].Nodes;
+
+ LoadBinaryData(Tiledata);
+ }
+
+
+ public void Save(string filepath)
+ {
+ Dictionary root = new Dictionary();
+ var d = new Dictionary();
+ foreach (var field in SimpleFields)
+ {
+ FieldInfo f = this.GetType().GetField(field);
+ if (f.GetValue(this) == null) continue;
+ root.Add(field,new MiniYaml(FieldSaver.FormatValue(this,f),null));
+ }
+ root.Add("Actors",MiniYaml.FromDictionary(Actors));
+ root.Add("Waypoints",MiniYaml.FromDictionary(Waypoints));
+
+ // TODO: Players
+
+ root.Add("Rules",new MiniYaml(null,Rules));
+ SaveBinaryData(Tiledata);
+ root.WriteToFile(filepath);
+ }
+
+ static byte ReadByte( Stream s )
+ {
+ int ret = s.ReadByte();
+ if( ret == -1 )
+ throw new NotImplementedException();
+ return (byte)ret;
+ }
+
+ static ushort ReadWord(Stream s)
+ {
+ ushort ret = ReadByte(s);
+ ret |= (ushort)(ReadByte(s) << 8);
+
+ return ret;
+ }
+
+ public void LoadBinaryData(string filename)
+ {
+ Console.Write("path: {0}",filename);
+
+ Stream dataStream = FileSystem.Open(filename);
+
+ // Load header info
+ byte version = ReadByte(dataStream);
+ MapSize.X = ReadWord(dataStream);
+ MapSize.Y = ReadWord(dataStream);
+
+ MapTiles = new TileReference[ MapSize.X, MapSize.Y ];
+ MapResources = new TileReference[ MapSize.X, MapSize.Y ];
+
+ // Load tile data
+ for( int i = 0 ; i < MapSize.X ; i++ )
+ for( int j = 0 ; j < MapSize.Y ; j++ )
+ {
+ ushort tile = ReadWord(dataStream);
+ byte index = ReadByte(dataStream);
+ byte image = (index == byte.MaxValue) ? (byte)( i % 4 + ( j % 4 ) * 4 ) : index;
+ MapTiles[i,j] = new TileReference(tile,index, image);
+ }
+
+ // Load resource data
+ for( int i = 0 ; i < MapSize.X ; i++ )
+ for( int j = 0 ; j < MapSize.Y ; j++ )
+ MapResources[i,j] = new TileReference(ReadByte(dataStream),ReadByte(dataStream));
+ }
+
+ public void SaveBinaryData(string filepath)
+ {
+ FileStream dataStream = new FileStream(filepath+".tmp", FileMode.Create, FileAccess.Write);
+ BinaryWriter writer = new BinaryWriter( dataStream );
+ writer.BaseStream.Seek(0, SeekOrigin.Begin);
+
+ // File header consists of a version byte, followed by 2 ushorts for width and height
+ writer.Write(TileFormat);
+ writer.Write((ushort)MapSize.X);
+ writer.Write((ushort)MapSize.Y);
+
+ // Tile data
+ for( int i = 0 ; i < MapSize.X ; i++ )
+ for( int j = 0 ; j < MapSize.Y ; j++ )
+ {
+ writer.Write( MapTiles[i,j].type );
+ writer.Write( MapTiles[i,j].index );
+ }
+
+ // Resource data
+ for( int i = 0 ; i < MapSize.X ; i++ )
+ for( int j = 0 ; j < MapSize.Y ; j++ )
+ {
+ writer.Write( MapResources[i,j].type );
+ writer.Write( MapResources[i,j].index );
+ }
+
+ writer.Flush();
+ writer.Close();
+ File.Move(filepath+".tmp",filepath);
+ }
+
+ public bool IsInMap(int2 xy)
+ {
+ return IsInMap(xy.X,xy.Y);
+ }
+
+ public bool IsInMap(int x, int y)
+ {
+ return (x >= TopLeft.X && y >= TopLeft.Y && x < BottomRight.X && y < BottomRight.Y);
+ }
+
+ public void DebugContents()
+ {
+ foreach (var field in SimpleFields)
+ Console.WriteLine("Loaded {0}: {1}", field, this.GetType().GetField(field).GetValue(this));
+
+ Console.WriteLine("Loaded Waypoints:");
+ foreach (var wp in Waypoints)
+ Console.WriteLine("\t{0} => {1}",wp.Key,wp.Value);
+
+ Console.WriteLine("Loaded Actors:");
+ foreach (var wp in Actors)
+ Console.WriteLine("\t{0} => {1} {2} {3}",wp.Key,wp.Value.Name, wp.Value.Owner,wp.Value.Location);
+ }
+ }
+}
diff --git a/OpenRA.FileFormats/Map/NewMap.cs b/OpenRA.FileFormats/Map/NewMap.cs
deleted file mode 100644
index 0f77ce8fcc..0000000000
--- a/OpenRA.FileFormats/Map/NewMap.cs
+++ /dev/null
@@ -1,229 +0,0 @@
-#region Copyright & License Information
-/*
- * Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford.
- * This file is part of OpenRA.
- *
- * OpenRA is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenRA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with OpenRA. If not, see .
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Reflection;
-
-namespace OpenRA.FileFormats
-{
- public class Map
- {
- // Yaml map data
- public int MapFormat = 1;
- public string Title;
- public string Description;
- public string Author;
- public int PlayerCount;
- public string Preview;
- public string Tileset;
-
- public Dictionary Actors = new Dictionary();
- public Dictionary Waypoints = new Dictionary();
- public Dictionary Rules = new Dictionary();
-
- // Binary map data
- public string Tiledata;
- public byte TileFormat = 1;
- public int2 MapSize;
-
- public int2 TopLeft;
- public int2 BottomRight;
-
- public TileReference[ , ] MapTiles;
- public TileReference[ , ] MapResources;
-
-
- // Temporary compat hacks
- public int XOffset {get {return TopLeft.X;}}
- public int YOffset {get {return TopLeft.Y;}}
- public int Width {get {return BottomRight.X-TopLeft.X;}}
- public int Height {get {return BottomRight.Y-TopLeft.Y;}}
- public string Theater {get {return Tileset;}}
- public IEnumerable SpawnPoints {get {return Waypoints.Select(kv => kv.Value);}}
-
- List SimpleFields = new List() {
- "MapFormat", "Title", "Description", "Author", "PlayerCount", "Tileset", "Tiledata", "Preview", "MapSize", "TopLeft", "BottomRight"
- };
-
- public Map() {}
-
- public Map(string filename)
- {
- var yaml = MiniYaml.FromFileInPackage(filename);
-
- // 'Simple' metadata
- foreach (var field in SimpleFields)
- {
- if (!yaml.ContainsKey(field)) continue;
- FieldLoader.LoadField(this,field,yaml[field].Value);
- }
-
- // Waypoints
- foreach (var wp in yaml["Waypoints"].Nodes)
- {
- string[] loc = wp.Value.Value.Split(',');
- Waypoints.Add(wp.Key, new int2(int.Parse(loc[0]),int.Parse(loc[1])));
- }
-
- // TODO: Players
-
- // Actors
- foreach (var kv in yaml["Actors"].Nodes.ToPairs())
- {
- string[] vals = kv.Second.Split(' ');
- string[] loc = vals[2].Split(',');
- var a = new ActorReference(vals[0], new int2(int.Parse(loc[0]),int.Parse(loc[1])) ,vals[1]);
- Actors.Add(kv.First,a);
- }
-
- // Rules
- Rules = yaml["Rules"].Nodes;
-
- LoadBinaryData(Tiledata);
- }
-
-
- public void Save(string filepath)
- {
- Dictionary root = new Dictionary();
- var d = new Dictionary();
- foreach (var field in SimpleFields)
- {
- FieldInfo f = this.GetType().GetField(field);
- if (f.GetValue(this) == null) continue;
- root.Add(field,new MiniYaml(FieldSaver.FormatValue(this,f),null));
- }
- root.Add("Actors",MiniYaml.FromDictionary(Actors));
- root.Add("Waypoints",MiniYaml.FromDictionary(Waypoints));
-
- // TODO: Players
-
- root.Add("Rules",new MiniYaml(null,Rules));
- SaveBinaryData(Tiledata);
- root.WriteToFile(filepath);
- }
-
- static byte ReadByte( Stream s )
- {
- int ret = s.ReadByte();
- if( ret == -1 )
- throw new NotImplementedException();
- return (byte)ret;
- }
-
- static ushort ReadWord(Stream s)
- {
- ushort ret = ReadByte(s);
- ret |= (ushort)(ReadByte(s) << 8);
-
- return ret;
- }
-
- public void LoadBinaryData(string filename)
- {
- Console.Write("path: {0}",filename);
-
- Stream dataStream = FileSystem.Open(filename);
-
- // Load header info
- byte version = ReadByte(dataStream);
- MapSize.X = ReadWord(dataStream);
- MapSize.Y = ReadWord(dataStream);
-
- MapTiles = new TileReference[ MapSize.X, MapSize.Y ];
- MapResources = new TileReference[ MapSize.X, MapSize.Y ];
-
- // Load tile data
- for( int i = 0 ; i < MapSize.X ; i++ )
- for( int j = 0 ; j < MapSize.Y ; j++ )
- {
- ushort tile = ReadWord(dataStream);
- byte index = ReadByte(dataStream);
- byte image = (index == byte.MaxValue) ? (byte)( i % 4 + ( j % 4 ) * 4 ) : index;
- MapTiles[i,j] = new TileReference(tile,index, image);
- }
-
- // Load resource data
- for( int i = 0 ; i < MapSize.X ; i++ )
- for( int j = 0 ; j < MapSize.Y ; j++ )
- MapResources[i,j] = new TileReference(ReadByte(dataStream),ReadByte(dataStream));
- }
-
- public void SaveBinaryData(string filepath)
- {
- FileStream dataStream = new FileStream(filepath+".tmp", FileMode.Create, FileAccess.Write);
- BinaryWriter writer = new BinaryWriter( dataStream );
- writer.BaseStream.Seek(0, SeekOrigin.Begin);
-
- // File header consists of a version byte, followed by 2 ushorts for width and height
- writer.Write(TileFormat);
- writer.Write((ushort)MapSize.X);
- writer.Write((ushort)MapSize.Y);
-
- // Tile data
- for( int i = 0 ; i < MapSize.X ; i++ )
- for( int j = 0 ; j < MapSize.Y ; j++ )
- {
- writer.Write( MapTiles[i,j].type );
- writer.Write( MapTiles[i,j].index );
- }
-
- // Resource data
- for( int i = 0 ; i < MapSize.X ; i++ )
- for( int j = 0 ; j < MapSize.Y ; j++ )
- {
- writer.Write( MapResources[i,j].type );
- writer.Write( MapResources[i,j].index );
- }
-
- writer.Flush();
- writer.Close();
- File.Move(filepath+".tmp",filepath);
- }
-
- public bool IsInMap(int2 xy)
- {
- return IsInMap(xy.X,xy.Y);
- }
-
- public bool IsInMap(int x, int y)
- {
- return (x >= TopLeft.X && y >= TopLeft.Y && x < BottomRight.X && y < BottomRight.Y);
- }
-
- public void DebugContents()
- {
- foreach (var field in SimpleFields)
- Console.WriteLine("Loaded {0}: {1}", field, this.GetType().GetField(field).GetValue(this));
-
- Console.WriteLine("Loaded Waypoints:");
- foreach (var wp in Waypoints)
- Console.WriteLine("\t{0} => {1}",wp.Key,wp.Value);
-
- Console.WriteLine("Loaded Actors:");
- foreach (var wp in Actors)
- Console.WriteLine("\t{0} => {1} {2} {3}",wp.Key,wp.Value.Name, wp.Value.Owner,wp.Value.Location);
- }
- }
-}
diff --git a/OpenRA.FileFormats/Map/NewTileReference.cs b/OpenRA.FileFormats/Map/NewTileReference.cs
deleted file mode 100644
index 275d916d25..0000000000
--- a/OpenRA.FileFormats/Map/NewTileReference.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-#region Copyright & License Information
-/*
- * Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford.
- * This file is part of OpenRA.
- *
- * OpenRA is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenRA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with OpenRA. If not, see .
- */
-#endregion
-
-namespace OpenRA.FileFormats
-{
- public struct TileReference
- {
- public T type;
- public U index;
- public U image;
-
- public TileReference(T t, U i)
- {
- type = t;
- index = i;
- image = i;
- }
-
- public TileReference(T t, U i, U im)
- {
- type = t;
- index = i;
- image = im;
- }
-
- public override int GetHashCode() { return type.GetHashCode() ^ index.GetHashCode(); }
- }
-}
diff --git a/OpenRA.FileFormats/Map/TileReference.cs b/OpenRA.FileFormats/Map/TileReference.cs
index c57533728f..275d916d25 100644
--- a/OpenRA.FileFormats/Map/TileReference.cs
+++ b/OpenRA.FileFormats/Map/TileReference.cs
@@ -1,44 +1,45 @@
-#region Copyright & License Information
-/*
- * Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford.
- * This file is part of OpenRA.
- *
- * OpenRA is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenRA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with OpenRA. If not, see .
- */
-#endregion
-
-namespace OpenRA.FileFormats
-{
- public struct OldTileReference
- {
- public ushort tile;
- public byte image;
- public string overlay;
- public byte smudge;
-
- public override int GetHashCode() { return tile.GetHashCode() ^ image.GetHashCode(); }
-
- public override bool Equals( object obj )
- {
- if( obj == null )
- return false;
-
- OldTileReference r = (OldTileReference)obj;
- return ( r.image == image && r.tile == tile );
- }
-
- public static bool operator ==( OldTileReference a, OldTileReference b ) { return a.Equals( b ); }
- public static bool operator !=( OldTileReference a, OldTileReference b ) { return !a.Equals( b ); }
- }
-}
+#region Copyright & License Information
+/*
+ * Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford.
+ * This file is part of OpenRA.
+ *
+ * OpenRA is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * OpenRA is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with OpenRA. If not, see .
+ */
+#endregion
+
+namespace OpenRA.FileFormats
+{
+ public struct TileReference
+ {
+ public T type;
+ public U index;
+ public U image;
+
+ public TileReference(T t, U i)
+ {
+ type = t;
+ index = i;
+ image = i;
+ }
+
+ public TileReference(T t, U i, U im)
+ {
+ type = t;
+ index = i;
+ image = im;
+ }
+
+ public override int GetHashCode() { return type.GetHashCode() ^ index.GetHashCode(); }
+ }
+}
diff --git a/OpenRA.FileFormats/OpenRA.FileFormats.csproj b/OpenRA.FileFormats/OpenRA.FileFormats.csproj
index 0f4f531478..b1d9e1ab9e 100644
--- a/OpenRA.FileFormats/OpenRA.FileFormats.csproj
+++ b/OpenRA.FileFormats/OpenRA.FileFormats.csproj
@@ -79,7 +79,6 @@
-
@@ -101,7 +100,6 @@
-