Begin unhardcoding 128 map size; Trees; Waypoints

This commit is contained in:
Paul Chote
2010-03-03 09:42:45 +13:00
parent f1211e4414
commit ae2bbae16c
14 changed files with 295 additions and 249 deletions

View File

@@ -32,6 +32,7 @@ namespace OpenRA.FileFormats
public readonly string Title;
public readonly string Theater;
public readonly int MapSize;
public readonly int XOffset;
public readonly int YOffset;
public int2 Offset { get { return new int2( XOffset, YOffset ); } }
@@ -40,7 +41,7 @@ namespace OpenRA.FileFormats
public readonly int Height;
public int2 Size { get { return new int2(Width, Height); } }
public readonly TileReference[ , ] MapTiles = new TileReference[ 128, 128 ];
public readonly TileReference[ , ] MapTiles;
public readonly List<TreeReference> Trees = new List<TreeReference>();
public readonly IEnumerable<int2> SpawnPoints;
@@ -54,9 +55,7 @@ namespace OpenRA.FileFormats
public Map(IniFile file)
{
for (int j = 0; j < 128; j++)
for (int i = 0; i < 128; i++)
MapTiles[i, j] = new TileReference();
IniSection basic = file.GetSection("Basic");
Title = basic.GetValue("Name", "(null)");
@@ -70,25 +69,45 @@ namespace OpenRA.FileFormats
Width = int.Parse(map.GetValue("Width", "0"));
Height = int.Parse(map.GetValue("Height", "0"));
if (false) // RA map
{
MapSize = 128;
}
else
{
MapSize = 64;
}
MapTiles = new TileReference[ MapSize, MapSize ];
for (int j = 0; j < MapSize; j++)
for (int i = 0; i < MapSize; i++)
MapTiles[i, j] = new TileReference();
//UnpackTileData(ReadPackedSection(file.GetSection("MapPack")));
//UnpackOverlayData(ReadPackedSection(file.GetSection("OverlayPack")));
//ReadTrees(file);
if (false) // RA map
{
UnpackTileData(ReadPackedSection(file.GetSection("MapPack")));
UnpackOverlayData(ReadPackedSection(file.GetSection("OverlayPack")));
ReadTrees(file);
UnpackCncTileData(FileSystem.Open(BinaryPart));
}
else // CNC
{
UnpackBinaryTileData(FileSystem.Open(BinaryPart));
ReadCncTrees(file);
}
SpawnPoints = file.GetSection("Waypoints")
.Select(kv => Pair.New(int.Parse(kv.Key), new int2(int.Parse(kv.Value) % 128, int.Parse(kv.Value) / 128)))
.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();
}
void UnpackCncTileData( Stream ms )
void UnpackBinaryTileData( Stream ms )
{
for( int i = 0 ; i < 64 ; i++ )
for( int j = 0 ; j < 64 ; j++ )
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();
@@ -156,12 +175,12 @@ namespace OpenRA.FileFormats
void UnpackTileData( MemoryStream ms )
{
for( int i = 0 ; i < 128 ; i++ )
for( int j = 0 ; j < 128 ; j++ )
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 < 128 ; i++ )
for( int j = 0 ; j < 128 ; j++ )
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 )
@@ -171,8 +190,8 @@ namespace OpenRA.FileFormats
void UnpackOverlayData( MemoryStream ms )
{
for( int i = 0 ; i < 128 ; i++ )
for( int j = 0 ; j < 128 ; j++ )
for( int i = 0 ; i < MapSize ; i++ )
for( int j = 0 ; j < MapSize ; j++ )
MapTiles[ j, i ].overlay = ReadByte( ms );
}
@@ -183,7 +202,18 @@ namespace OpenRA.FileFormats
return;
foreach( KeyValuePair<string, string> kv in terrain )
Trees.Add( new TreeReference( int.Parse( kv.Key ), kv.Value ) );
Trees.Add( new TreeReference( int.Parse( kv.Key ), kv.Value, MapSize ) );
}
void ReadCncTrees( IniFile file )
{
IniSection terrain = file.GetSection( "TERRAIN", true );
if( terrain == null )
return;
foreach( KeyValuePair<string, string> kv in terrain )
// HACK: remove the ,none from the end
Trees.Add( new TreeReference( int.Parse( kv.Key ), kv.Value.Substring(0,kv.Value.Length-5), MapSize ) );
}
public bool IsInMap(int x, int y)

View File

@@ -47,7 +47,7 @@ namespace OpenRA.FileFormats
public class Global
{
public string Map = "scm01ea.ini";
public string Map = "scm02ea.ini";
public string[] Packages = {}; // filename:sha1 pairs.
public string[] Mods = { "ra" }; // mod names
public int OrderLatency = 3;

View File

@@ -89,10 +89,9 @@ namespace OpenRA.FileFormats
public byte[] GetBytes(TileReference r)
{
Terrain tile;
try {
if( tiles.TryGetValue( r.tile, out tile ) )
return tile.TileBitmapBytes[ r.image ];
} catch (System.ArgumentOutOfRangeException) {}
byte[] missingTile = new byte[ 24 * 24 ];
for( int i = 0 ; i < missingTile.Length ; i++ )

View File

@@ -28,10 +28,10 @@ namespace OpenRA.FileFormats
public readonly int Y;
public readonly string Image;
public TreeReference(int xy, string image)
public TreeReference(int xy, string image, int mapSize)
{
X = xy % 128;
Y = xy / 128;
X = xy % mapSize;
Y = xy / mapSize;
Image = image;
}

View File

@@ -39,7 +39,7 @@ namespace OpenRA.GameRules
// External game settings
public readonly string NetworkHost = "";
public readonly int NetworkPort = 0;
public readonly string Map = "scm01ea.ini";
public readonly string Map = "scm02ea.ini";
public readonly int Player = 1;
public readonly string Replay = "";
public readonly string PlayerName = "";

View File

@@ -1,4 +1,4 @@
#region Copyright & License Information
#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.
@@ -93,9 +93,9 @@ namespace OpenRA.Graphics
public static Bitmap RenderTerrainBitmap(Map map, TileSet tileset)
{
var colors = terrainTypeColors[map.Theater.ToLowerInvariant()];
var terrain = new Bitmap(128, 128);
for (var y = 0; y < 128; y++)
for (var x = 0; x < 128; x++)
var terrain = new Bitmap(map.MapSize, map.MapSize);
for (var y = 0; y < map.MapSize; y++)
for (var x = 0; x < map.MapSize; x++)
terrain.SetPixel(x, y, map.IsInMap(x, y)
? colors[tileset.GetWalkability(map.MapTiles[x, y])]
: shroudColor);

View File

@@ -35,10 +35,11 @@ namespace OpenRA
public PathFinder( World world )
{
this.world = world;
var map = world.Map;
for (var umt = UnitMovementType.Foot; umt <= UnitMovementType.Float; umt++)
passableCost[(int)umt] = new float[128, 128];
for( int x = 0 ; x < 128 ; x++ )
for( int y = 0 ; y < 128 ; y++ )
passableCost[(int)umt] = new float[map.MapSize, map.MapSize];
for( int x = 0 ; x < map.MapSize ; x++ )
for( int y = 0 ; y < map.MapSize ; y++ )
for (var umt = UnitMovementType.Foot; umt <= UnitMovementType.Float; umt++ )
passableCost[(int)umt][ x, y ] = ( world.Map.IsInMap( x, y ) )
? (float)TerrainCosts.Cost( umt, world.TileSet.GetWalkability( world.Map.MapTiles[ x, y ] ) )

View File

@@ -1,4 +1,4 @@
#region Copyright & License Information
#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.
@@ -36,8 +36,8 @@ namespace OpenRA.Traits
public UnitInfluence( Actor self )
{
for (int i = 0; i < 128; i++)
for (int j = 0; j < 128; j++)
for (int i = 0; i < self.World.Map.MapSize; i++)
for (int j = 0; j < self.World.Map.MapSize; j++)
influence[ i, j ] = new List<Actor>();
self.World.ActorRemoved += a => Remove( a, a.traits.GetOrDefault<IOccupySpace>() );
@@ -73,8 +73,8 @@ namespace OpenRA.Traits
[Conditional( "SANITY_CHECKS" )]
void SanityCheck( Actor self )
{
for( int y = 0 ; y < 128 ; y++ )
for( int x = 0 ; x < 128 ; x++ )
for( int y = 0 ; y < self.World.Map.MapSize ; y++ )
for( int x = 0 ; x < self.World.Map.MapSize ; x++ )
if( influence[ x, y ] != null )
foreach (var a in influence[ x, y ])
if (!a.traits.Get<IOccupySpace>().OccupiedCells().Contains( new int2( x, y ) ) )

View File

@@ -56,8 +56,8 @@ namespace OpenRA
public void Draw( World world )
{
if (ShowUnitDebug)
for (var j = 0; j < 128; j++)
for (var i = 0; i < 128; i++)
for (var j = 0; j < world.Map.MapSize; j++)
for (var i = 0; i < world.Map.MapSize; i++)
if (world.WorldActor.traits.Get<UnitInfluence>().GetUnitsAt(new int2(i, j)).Any())
spriteRenderer.DrawSprite(unitDebug, Game.CellSize * new float2(i, j), "terrain");
}

View File

@@ -32,11 +32,3 @@ BR3:
Footprint: ____ ____
Dimensions: 4,2
HP: 1000
MINE:
Inherits: ^Building
RenderBuilding:
Palette: terrain
SeedsResource:
ResourceType: Tiberium
-Selectable:

View File

@@ -47,6 +47,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.xml: Obsolete; will disappear once done converting
Chrome:

192
mods/cnc/sequences-map.xml Normal file
View File

@@ -0,0 +1,192 @@
<?xml version="1.0" encoding="utf-8"?>
<sequences>
<unit name="rock1">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="rock2">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="rock3">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="rock4">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="rock5">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="rock6">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="rock7">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="tc04">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="tc05">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="tc03">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="tc02">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="tc01">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t18">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t17">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t16">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t15">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="10" />
</unit>
<unit name="t14">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t13">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t12">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t11">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="10" />
</unit>
<unit name="t10">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t08">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t07">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t06">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t05">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t03">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t02">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t01">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="v01">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v02">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v03">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v04">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="2" length="1" />
<sequence name="active" start="1" length="1" />
<sequence name="damaged-active" start="3" length="1" />
</unit>
<unit name="v05">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="2" length="1" />
</unit>
<unit name="v06">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v07">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="2" length="1" />
</unit>
<unit name="v08">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v09">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v10">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v11">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v12">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v13">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v14">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v15">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v16">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v17">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v18">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v19">
<sequence name="idle" start="0" length="14" />
<sequence name="damaged-idle" start="14" length="15" />
</unit>
<unit name="barl">
<sequence name="idle" start="0" length="3" />
</unit>
<unit name="brl3">
<sequence name="idle" start="0" length="3" />
</unit>
</sequences>

View File

@@ -85,116 +85,6 @@
<sequence name="loop" start="49" length="42" />
<sequence name="end" start="0" length="26" />
</unit>
<unit name="tc04">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="tc05">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="tc03">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="tc02">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="tc01">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t17">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t16">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t15">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="10" />
</unit>
<unit name="t14">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t13">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t12">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t11">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="10" />
</unit>
<unit name="t10">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t08">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t07">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t06">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t05">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t03">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t02">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="t01">
<sequence name="idle" start="0" length="1" />
<sequence name="burn" start="1" length="9" />
</unit>
<unit name="boxes01">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="boxes02">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="boxes03">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="boxes04">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="boxes05">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="boxes06">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="boxes07">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="boxes08">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="boxes09">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="mine">
<sequence name="idle" start="0" length="1" />
</unit>
<unit name="dragon">
<sequence name="idle" start="0" facings="32" />
</unit>
@@ -210,90 +100,6 @@
<unit name="moveflsh">
<sequence name="idle" start="0" length="5" />
</unit>
<unit name="v01">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v02">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v03">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v04">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="2" length="1" />
<sequence name="active" start="1" length="1" />
<sequence name="damaged-active" start="3" length="1" />
</unit>
<unit name="v05">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="2" length="1" />
</unit>
<unit name="v06">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v07">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="2" length="1" />
</unit>
<unit name="v08">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v09">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v10">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v11">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v12">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v13">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v14">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v15">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v16">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v17">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v18">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="1" length="1" />
</unit>
<unit name="v19">
<sequence name="idle" start="0" length="14" />
<sequence name="damaged-idle" start="14" length="15" />
</unit>
<unit name="barl">
<sequence name="idle" start="0" length="3" />
</unit>
<unit name="brl3">
<sequence name="idle" start="0" length="3" />
</unit>
<unit name="miss">
<sequence name="idle" start="0" length="1" />
<sequence name="damaged-idle" start="2" length="1" />

View File

@@ -1,3 +1,23 @@
SPLIT3:
Inherits: ^Building
RenderBuilding:
Palette: terrain
SeedsOre:
-Selectable:
ROCK1:
Inherits: ^Tree
ROCK2:
Inherits: ^Tree
ROCK3:
Inherits: ^Tree
ROCK4:
Inherits: ^Tree
ROCK5:
Inherits: ^Tree
ROCK6:
Inherits: ^Tree
ROCK7:
Inherits: ^Tree
T01:
Inherits: ^Tree
@@ -55,6 +75,11 @@ T16:
T17:
Inherits: ^Tree
Building:
Footprint: ___ xx_
Dimensions: 3,2
T18:
Inherits: ^Tree
TC01:
Inherits: ^Tree