support for the interior tileSet. trees don't work. mounted all 3 of the tileSet mixen; this means there are name-clashes in some cases.

This commit is contained in:
Bob
2010-01-29 14:19:44 +13:00
parent 5bd6c32aff
commit 95b98a78bb
8 changed files with 838 additions and 13 deletions

View File

@@ -11,6 +11,7 @@ namespace OpenRa.FileFormats
foreach (var x in ini)
{
var field = self.GetType().GetField(x.Key.Trim());
if( field != null )
field.SetValue(self, GetValue(field.FieldType, x.Value.Trim()));
}
}

View File

@@ -27,6 +27,10 @@ namespace OpenRa.FileFormats
FileSystem.Mount( new Package( "speech.mix" ) );
FileSystem.Mount( new Package( "allies.mix" ) );
FileSystem.Mount( new Package( "russian.mix" ) );
FileSystem.Mount( new Package( "temperat.mix" ) );
FileSystem.Mount( new Package( "snow.mix" ) );
FileSystem.Mount( new Package( "interior.mix" ) );
}
public static void MountAftermathPackages()

View File

@@ -6,7 +6,7 @@ namespace OpenRa.FileFormats
{
public class TileTemplate
{
public int Index;
public int Index; // not valid for `interior` stuff. only used for bridges.
public string Name;
public int2 Size;
public string Bridge;
@@ -36,10 +36,11 @@ namespace OpenRa.FileFormats
p => int.Parse(p.Key.Substring(8)),
p => int.Parse(p.Value)),
Name = section.GetValue("Name", null).ToLowerInvariant(),
Index = int.Parse(section.Name.Substring(3)),
Bridge = section.GetValue("bridge", null),
HP = float.Parse(section.GetValue("hp", "0"))
};
tile.Index = -1;
int.TryParse(section.Name.Substring(3), out tile.Index);
walkability[tile.Name] = tile;
}

View File

@@ -46,7 +46,6 @@ namespace OpenRa
Game.changePending = false;
Game.mapName = mapName;
SheetBuilder.Initialize(renderer);
SpriteSheetBuilder.Initialize();
FileSystem.UnmountTemporaryPackages();
Timer.Time( "reset: {0}" );
@@ -71,8 +70,8 @@ namespace OpenRa
Timer.Time( "SeqProv, viewport: {0}" );
skipMakeAnims = true;
foreach (var treeReference in Game.world.Map.Trees)
world.CreateActor(treeReference.Image, new int2(treeReference.Location), null);
//foreach (var treeReference in Game.world.Map.Trees)
// world.CreateActor(treeReference.Image, new int2(treeReference.Location), null);
Timer.Time( "trees: {0}" );
world.LoadMapActors(Rules.AllRules);

View File

@@ -6,13 +6,19 @@ namespace OpenRa.Graphics
{
static class SpriteSheetBuilder
{
public static void Initialize()
public static void Initialize( Map map )
{
exts = new[] {
"." + map.Theater.Substring( 0, 3 ).ToLowerInvariant(),
".shp",
".tem",
".sno",
".int" };
sprites = new Cache<string, Sprite[]>( LoadSprites );
}
static Cache<string, Sprite[]> sprites;
static readonly string[] exts = { ".tem", ".sno", ".int", ".shp" };
static string[] exts;
static Sprite[] LoadSprites(string filename)
{

View File

@@ -56,9 +56,8 @@ namespace OpenRa
Map = new Map( Rules.AllRules );
Timer.Time( "new Map: {0}" );
FileSystem.MountTemporary( new Package( Map.Theater + ".mix" ) );
Timer.Time( "mount temporary packages: {0}" );
TileSet = new TileSet( Map.TileSuffix );
SpriteSheetBuilder.Initialize( Map );
Timer.Time( "Tileset: {0}" );
BuildingInfluence = new BuildingInfluenceMap( this );

View File

@@ -76,8 +76,6 @@ namespace SequenceEditor
}
catch( FileNotFoundException ){}
FileSystem.MountTemporary(new Package("temperat.mix"));
XmlFilename = args.FirstOrDefault( x => x.EndsWith(".xml") ) ?? "sequences.xml";
Doc = new XmlDocument();
Doc.Load(XmlFilename);

View File

@@ -2835,6 +2835,823 @@ tiletype19=2
tiletype23=2
tiletype24=2
; interior tiles
;;;;;; the interior `clear` tile is incompatible with the temperat/snow ones.
;[INT_clear1]
;Name=clear1
;width=1
;height=1
;tiletype0=7
[INT_arro0001]
Name=arro0001
width=1
height=1
tiletype0=0
[INT_arro0002]
Name=arro0002
width=1
height=1
tiletype0=0
[INT_arro0003]
Name=arro0003
width=1
height=1
tiletype0=0
[Blah]
Name=arro0004
width=1
height=1
tiletype0=0
[INT_arro0005]
Name=arro0005
width=1
height=1
tiletype0=0
[INT_arro0006]
Name=arro0006
width=1
height=1
tiletype0=0
[INT_arro0007]
Name=arro0007
width=1
height=1
tiletype0=0
[INT_arro0008]
Name=arro0008
width=1
height=1
tiletype0=0
[INT_arro0009]
Name=arro0009
width=1
height=1
tiletype0=0
[INT_arro0010]
Name=arro0010
width=1
height=1
tiletype0=0
[INT_arro0011]
Name=arro0011
width=1
height=1
tiletype0=0
[INT_arro0012]
Name=arro0012
width=1
height=1
tiletype0=0
[INT_arro0013]
Name=arro0013
width=1
height=1
tiletype0=0
[INT_arro0014]
Name=arro0014
width=1
height=1
tiletype0=0
[INT_arro0015]
Name=arro0015
width=1
height=1
tiletype0=0
[INT_flor0001]
Name=flor0001
width=1
height=1
tiletype0=0
[INT_flor0002]
Name=flor0002
width=1
height=1
tiletype0=0
[INT_flor0003]
Name=flor0003
width=1
height=1
tiletype0=0
[INT_flor0004]
Name=flor0004
width=1
height=1
tiletype0=0
[INT_flor0005]
Name=flor0005
width=1
height=1
tiletype0=0
[INT_flor0006]
Name=flor0006
width=1
height=1
tiletype0=0
[INT_flor0007]
Name=flor0007
width=1
height=1
tiletype0=0
[INT_gflr0001]
Name=gflr0001
width=1
height=1
tiletype0=0
[INT_gflr0002]
Name=gflr0002
width=1
height=1
tiletype0=0
[INT_gflr0003]
Name=gflr0003
width=1
height=1
tiletype0=0
[INT_gflr0004]
Name=gflr0004
width=1
height=1
tiletype0=0
[INT_gflr0005]
Name=gflr0005
width=1
height=1
tiletype0=0
[INT_gstr0001]
Name=gstr0001
width=1
height=1
tiletype0=0
[INT_gstr0002]
Name=gstr0002
width=1
height=1
tiletype0=0
[INT_gstr0003]
Name=gstr0003
width=1
height=1
tiletype0=0
[INT_gstr0004]
Name=gstr0004
width=1
height=1
tiletype0=0
[INT_gstr0005]
Name=gstr0005
width=1
height=1
tiletype0=0
[INT_gstr0006]
Name=gstr0006
width=1
height=1
tiletype0=0
[INT_gstr0007]
Name=gstr0007
width=1
height=1
tiletype0=0
[INT_gstr0008]
Name=gstr0008
width=1
height=1
tiletype0=0
[INT_gstr0009]
Name=gstr0009
width=1
height=1
tiletype0=0
[INT_gstr0010]
Name=gstr0010
width=1
height=1
tiletype0=0
[INT_gstr0011]
Name=gstr0011
width=1
height=1
tiletype0=0
[INT_lwal0001]
Name=lwal0001
width=1
height=1
tiletype0=7
[INT_lwal0002]
Name=lwal0002
width=1
height=1
tiletype0=7
[INT_lwal0003]
Name=lwal0003
width=1
height=1
tiletype0=7
[INT_lwal0004]
Name=lwal0004
width=1
height=1
tiletype0=7
[INT_lwal0005]
Name=lwal0005
width=1
height=1
tiletype0=7
[INT_lwal0006]
Name=lwal0006
width=1
height=1
tiletype0=7
[INT_lwal0007]
Name=lwal0007
width=1
height=1
tiletype0=7
[INT_lwal0008]
Name=lwal0008
width=1
height=1
tiletype0=7
[INT_lwal0009]
Name=lwal0009
width=1
height=1
tiletype0=7
[INT_lwal0010]
Name=lwal0010
width=1
height=1
tiletype0=7
[INT_lwal0011]
Name=lwal0011
width=1
height=1
tiletype0=7
[INT_lwal0012]
Name=lwal0012
width=1
height=1
tiletype0=7
[INT_lwal0013]
Name=lwal0013
width=1
height=1
tiletype0=7
[INT_lwal0014]
Name=lwal0014
width=1
height=1
tiletype0=7
[INT_lwal0015]
Name=lwal0015
width=1
height=1
tiletype0=7
[INT_lwal0016]
Name=lwal0016
width=1
height=1
tiletype0=7
[INT_lwal0017]
Name=lwal0017
width=1
height=1
tiletype0=7
[INT_lwal0018]
Name=lwal0018
width=1
height=1
tiletype0=7
[INT_lwal0019]
Name=lwal0019
width=1
height=1
tiletype0=7
[INT_lwal0020]
Name=lwal0020
width=1
height=1
tiletype0=7
[INT_lwal0021]
Name=lwal0021
width=1
height=1
tiletype0=7
[INT_lwal0022]
Name=lwal0022
width=1
height=1
tiletype0=7
[INT_lwal0023]
Name=lwal0023
width=1
height=1
tiletype0=7
[INT_lwal0024]
Name=lwal0024
width=1
height=1
tiletype0=7
[INT_lwal0025]
Name=lwal0025
width=1
height=1
tiletype0=7
[INT_lwal0026]
Name=lwal0026
width=1
height=1
tiletype0=7
[INT_lwal0027]
Name=lwal0027
width=1
height=1
tiletype0=7
[INT_strp0001]
Name=strp0001
width=1
height=1
tiletype0=0
[INT_strp0002]
Name=strp0002
width=1
height=1
tiletype0=0
[INT_strp0003]
Name=strp0003
width=1
height=1
tiletype0=0
[INT_strp0004]
Name=strp0004
width=1
height=1
tiletype0=0
[INT_strp0005]
Name=strp0005
width=1
height=1
tiletype0=0
[INT_strp0006]
Name=strp0006
width=1
height=1
tiletype0=0
[INT_strp0007]
Name=strp0007
width=1
height=1
tiletype0=0
[INT_strp0008]
Name=strp0008
width=1
height=1
tiletype0=0
[INT_strp0009]
Name=strp0009
width=1
height=1
tiletype0=0
[INT_strp0010]
Name=strp0010
width=1
height=1
tiletype0=0
[INT_strp0011]
Name=strp0011
width=1
height=1
tiletype0=0
[INT_wall0001]
Name=wall0001
width=1
height=1
tiletype0=7
[INT_wall0002]
Name=wall0002
width=1
height=1
tiletype0=7
[INT_wall0003]
Name=wall0003
width=1
height=1
tiletype0=7
[INT_wall0004]
Name=wall0004
width=1
height=1
tiletype0=7
[INT_wall0005]
Name=wall0005
width=1
height=1
tiletype0=7
[INT_wall0006]
Name=wall0006
width=1
height=1
tiletype0=7
[INT_wall0007]
Name=wall0007
width=1
height=1
tiletype0=7
[INT_wall0008]
Name=wall0008
width=1
height=1
tiletype0=7
[INT_wall0009]
Name=wall0009
width=1
height=1
tiletype0=7
[INT_wall0010]
Name=wall0010
width=1
height=1
tiletype0=7
[INT_wall0011]
Name=wall0011
width=1
height=1
tiletype0=7
[INT_wall0012]
Name=wall0012
width=1
height=1
tiletype0=7
[INT_wall0013]
Name=wall0013
width=1
height=1
tiletype0=7
[INT_wall0014]
Name=wall0014
width=1
height=1
tiletype0=7
[INT_wall0015]
Name=wall0015
width=1
height=1
tiletype0=7
[INT_wall0016]
Name=wall0016
width=1
height=1
tiletype0=7
[INT_wall0017]
Name=wall0017
width=1
height=1
tiletype0=7
[INT_wall0018]
Name=wall0018
width=1
height=1
tiletype0=7
[INT_wall0019]
Name=wall0019
width=1
height=1
tiletype0=7
[INT_wall0020]
Name=wall0020
width=1
height=1
tiletype0=7
[INT_wall0021]
Name=wall0021
width=1
height=1
tiletype0=7
[INT_wall0022]
Name=wall0022
width=1
height=1
tiletype0=7
[INT_wall0023]
Name=wall0023
width=2
height=2
tiletype0=7
tiletype1=7
tiletype2=7
[INT_wall0024]
Name=wall0024
width=2
height=2
tiletype0=7
tiletype1=7
tiletype2=7
[INT_wall0025]
Name=wall0025
width=2
height=2
tiletype0=7
tiletype1=7
tiletype2=7
[INT_wall0026]
Name=wall0026
width=2
height=2
tiletype0=7
tiletype1=7
tiletype2=7
[INT_wall0027]
Name=wall0027
width=2
height=2
tiletype0=7
tiletype1=7
tiletype3=7
[INT_wall0028]
Name=wall0028
width=2
height=2
tiletype0=7
tiletype1=7
tiletype3=7
[INT_wall0029]
Name=wall0029
width=2
height=2
tiletype0=7
tiletype1=7
tiletype3=7
[INT_wall0030]
Name=wall0030
width=2
height=2
tiletype0=7
tiletype1=7
tiletype3=7
[INT_wall0031]
Name=wall0031
width=2
height=2
tiletype0=7
tiletype2=7
tiletype3=7
[INT_wall0032]
Name=wall0032
width=2
height=2
tiletype0=7
tiletype2=7
tiletype3=7
[INT_wall0033]
Name=wall0033
width=2
height=2
tiletype0=7
tiletype2=7
tiletype3=7
[INT_wall0034]
Name=wall0034
width=2
height=2
tiletype0=7
tiletype2=7
tiletype3=7
[INT_wall0035]
Name=wall0035
width=2
height=2
tiletype1=7
tiletype2=7
tiletype3=7
[INT_wall0036]
Name=wall0036
width=2
height=2
tiletype1=7
tiletype2=7
tiletype3=7
[INT_wall0037]
Name=wall0037
width=2
height=2
tiletype1=7
tiletype2=7
tiletype3=7
[INT_wall0038]
Name=wall0038
width=2
height=2
tiletype1=7
tiletype2=7
tiletype3=7
[INT_wall0039]
Name=wall0039
width=2
height=3
tiletype0=7
tiletype2=7
tiletype3=7
tiletype4=7
[INT_wall0040]
Name=wall0040
width=2
height=3
tiletype0=7
tiletype2=7
tiletype3=7
tiletype4=7
[INT_wall0041]
Name=wall0041
width=2
height=3
tiletype1=7
tiletype2=7
tiletype3=7
tiletype5=7
[INT_wall0042]
Name=wall0042
width=2
height=3
tiletype1=7
tiletype2=7
tiletype3=7
tiletype5=7
[INT_wall0043]
Name=wall0043
width=3
height=2
tiletype1=7
tiletype3=7
tiletype4=7
tiletype5=7
[INT_wall0044]
Name=wall0044
width=3
height=2
tiletype1=7
tiletype3=7
tiletype4=7
tiletype5=7
[INT_wall0045]
Name=wall0045
width=3
height=2
tiletype1=7
tiletype3=7
tiletype4=7
tiletype5=7
[INT_wall0046]
Name=wall0046
width=3
height=2
tiletype1=7
tiletype3=7
tiletype4=7
tiletype5=7
[INT_wall0047]
Name=wall0047
width=3
height=2
tiletype0=7
tiletype1=7
tiletype2=7
tiletype4=7
[INT_wall0048]
Name=wall0048
width=3
height=2
tiletype0=7
tiletype1=7
tiletype2=7
tiletype4=7
[INT_wall0049]
Name=wall0049
width=3
height=3
tiletype1=7
tiletype3=7
tiletype4=7
tiletype5=7
tiletype7=7
[INT_xtra0001]
Name=xtra0001
width=1
height=1
tiletype0=7
[INT_xtra0002]
Name=xtra0002
width=2
height=1
tiletype0=7
tiletype1=0
[INT_xtra0003]
Name=xtra0003
width=1
height=1
tiletype0=7
[INT_xtra0004]
Name=xtra0004
width=1
height=2
tiletype0=7
tiletype1=0
[INT_xtra0005]
Name=xtra0005
width=1
height=1
tiletype0=7
[INT_xtra0006]
Name=xtra0006
width=2
height=1
tiletype0=7
tiletype1=0
[INT_xtra0007]
Name=xtra0007
width=1
height=1
tiletype0=7
[INT_xtra0008]
Name=xtra0008
width=1
height=2
tiletype0=7
tiletype1=0
[INT_xtra0009]
Name=xtra0009
width=1
height=1
tiletype0=7
[INT_xtra0010]
Name=xtra0010
width=1
height=1
tiletype0=7
[INT_xtra0011]
Name=xtra0011
width=1
height=1
tiletype0=7
[INT_xtra0012]
Name=xtra0012
width=1
height=2
tiletype0=7
tiletype1=0
[INT_xtra0013]
Name=xtra0013
width=1
height=2
tiletype0=7
tiletype1=0
[INT_xtra0014]
Name=xtra0014
width=3
height=2
tiletype0=0
tiletype1=7
tiletype2=0
tiletype3=0
tiletype4=0
tiletype5=0
[INT_xtra0015]
Name=xtra0015
width=3
height=2
tiletype0=7
tiletype1=7
tiletype2=7
tiletype3=7
tiletype4=7
tiletype5=7
[INT_xtra0016]
Name=xtra0016
width=2
height=4
tiletype0=7
tiletype1=7
tiletype2=7
tiletype3=7
tiletype4=7
tiletype5=7
tiletype6=7
tiletype7=7
; special tile
[TEM65534]
Name=Bogus
width=1