Fix map loading; some cleanups

This commit is contained in:
Paul Chote
2010-03-03 22:55:14 +13:00
parent d405523378
commit 5c26386b2e
6 changed files with 26 additions and 27 deletions

View File

@@ -53,24 +53,22 @@ namespace OpenRA.FileFormats
public string TileSuffix { get { return "." + Truncate(Theater, 3); } }
public Map(string Filename)
public Map(string filename)
{
IniFile file = new IniFile(FileSystem.Open(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", "DESERT"), 8);
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"));
Log.Write("Map format is {0}",INIFormat);
MapSize = (INIFormat == 3) ? 128 : 64;
MapTiles = new TileReference[ MapSize, MapSize ];
@@ -87,7 +85,7 @@ namespace OpenRA.FileFormats
}
else // CNC
{
UnpackCncTileData(FileSystem.Open(Filename.Substring(0,Filename.Length-4)+".bin"));
UnpackCncTileData(FileSystem.Open(filename.Substring(0,filename.Length-4)+".bin"));
ReadCncTrees(file);
}

View File

@@ -101,7 +101,7 @@ namespace OpenRA
Timer.Time( "ChromeProv, SeqProv, viewport: {0}" );
skipMakeAnims = true;
foreach (var actorReference in Game.world.Map.Actors)
foreach (var actorReference in world.Map.Actors)
world.CreateActor(actorReference.Name, actorReference.Location, world.players.Values.FirstOrDefault(p => p.InternalName == actorReference.Owner) ?? world.players[0]);
skipMakeAnims = false;
Timer.Time( "map actors: {0}" );

View File

@@ -22,6 +22,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml;
using System.IO;
using OpenRA.FileFormats;
namespace OpenRA.Graphics
@@ -65,12 +66,14 @@ namespace OpenRA.Graphics
static void LoadSequencesForUnit(XmlElement eUnit)
{
string unitName = eUnit.GetAttribute("name");
Log.Write("Loading sequence {0}", unitName);
var sequences = eUnit.SelectNodes("./sequence").OfType<XmlElement>()
.Select(e => new Sequence(unitName, e))
.ToDictionary(s => s.Name);
units.Add(unitName, sequences);
// Log.Write("Loading sequence {0}", unitName);
try {
var sequences = eUnit.SelectNodes("./sequence").OfType<XmlElement>()
.Select(e => new Sequence(unitName, e))
.ToDictionary(s => s.Name);
units.Add(unitName, sequences);
} catch (FileNotFoundException) {} // Do nothing; we can crash later if we actually wanted art
}
public static Sequence GetSequence(string unitName, string sequenceName)

View File

@@ -18,16 +18,9 @@ Packages:
mods/cnc/packages/temperat.mix
mods/cnc/packages/winter.mix
mods/cnc/packages/desert.mix
# Cannot qualify the RA names because they may live inside a mix
# TODO: Obsolete conquer.mix
~main.mix
redalert.mix
speech.mix
temperat.mix
snow.mix
interior.mix
# general.mix
conquer.mix
sounds.mix
LegacyRules:
mods/cnc/minimal.ini: Minimal rules definitions
@@ -47,7 +40,7 @@ Sequences:
mods/cnc/sequences-structures.xml:
mods/cnc/sequences-vehicles.xml:
mods/cnc/sequences-infantry.xml:
mods/cnc/sequences-map.xml:
mods/cnc/sequences-map.xml: Trees etc
mods/cnc/sequences.xml: Obsolete; will disappear once done converting
Chrome:
@@ -56,7 +49,3 @@ Chrome:
Assemblies:
mods/cnc/OpenRA.Mods.Cnc.dll: Cnc mod traits
mods/ra/OpenRA.Mods.RA.dll: Red alert mod traits
Maps:
scg01ea.ini: GDI Mission 1
scm01ea.ini: Green Acres

View File

@@ -1,6 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<sequences>
<!-- Blossom Tree -->
<!-- Blossom Trees -->
<unit name="split2">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="split3">
<sequence name="idle" start="0" length="1" />
</unit>

View File

@@ -1,3 +1,9 @@
SPLIT2:
Inherits: ^Building
RenderBuilding:
Palette: terrain
SeedsOre:
-Selectable:
SPLIT3:
Inherits: ^Building
RenderBuilding: