Merge branch 'master' of git://github.com/beedee/OpenRA
This commit is contained in:
@@ -62,6 +62,7 @@ namespace OpenRa.Game
|
||||
///// TODO: planes /////
|
||||
|
||||
///// buildings /////
|
||||
//TODO: SBAG, BRIK, FENC, etc
|
||||
case "iron":
|
||||
case "pdox":
|
||||
case "mslo":
|
||||
@@ -81,13 +82,16 @@ namespace OpenRa.Game
|
||||
case "fix":
|
||||
case "spen":
|
||||
case "syrd":
|
||||
//GAP
|
||||
//SBAG, BRIK, FENC
|
||||
//FACF, WEAF, SYRF, SPEF, DOMF
|
||||
case "gap":
|
||||
case "pbox":
|
||||
case "hbox":
|
||||
case "tsla":
|
||||
case "ftur":
|
||||
case "facf":
|
||||
case "weaf":
|
||||
case "syrf":
|
||||
case "spef":
|
||||
case "domf":
|
||||
traits.Add( new Traits.Building( this ) );
|
||||
traits.Add( new Traits.RenderBuilding( this ) );
|
||||
break;
|
||||
@@ -102,6 +106,7 @@ namespace OpenRa.Game
|
||||
traits.Add( new Traits.Turreted( this ) );
|
||||
traits.Add( new Traits.RenderBuildingTurreted( this ) );
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new NotImplementedException( "Actor traits for " + name );
|
||||
}
|
||||
@@ -159,7 +164,7 @@ namespace OpenRa.Game
|
||||
|
||||
public RenderSimple( Actor self )
|
||||
{
|
||||
anim = new Animation( self.unitInfo.Name );
|
||||
anim = new Animation( self.unitInfo.Image ?? self.unitInfo.Name );
|
||||
}
|
||||
|
||||
public abstract IEnumerable<Pair<Sprite, float2>> Render( Actor self );
|
||||
|
||||
@@ -96,7 +96,7 @@ namespace OpenRa.Game.GameRules
|
||||
field.SetValue( this, float.Parse( x.Value ) );
|
||||
|
||||
else if( field.FieldType == typeof( string ) )
|
||||
field.SetValue( this, x.Value );
|
||||
field.SetValue( this, x.Value.ToLowerInvariant() );
|
||||
|
||||
else if( field.FieldType == typeof( ArmorType ) )
|
||||
field.SetValue( this, Enum<ArmorType>.Parse(x.Value) );
|
||||
|
||||
@@ -14,7 +14,33 @@ namespace OpenRa.Game.Graphics
|
||||
"gold01", "gold02", "gold03", "gold04",
|
||||
"gem01", "gem02", "gem03", "gem04",
|
||||
"v12", "v13", "v14", "v15", "v16", "v17", "v18",
|
||||
"fpls", "wcrate", "scrate", "barb", "sbag"
|
||||
"fpls", "wcrate", "scrate", "barb", "sbag",
|
||||
};
|
||||
static bool[] overlayIsFence = new bool[]
|
||||
{
|
||||
true, true, true, true, true,
|
||||
false, false, false, false,
|
||||
false, false, false, false,
|
||||
false, false, false, false, false, false, false,
|
||||
false, false, false, true, true,
|
||||
};
|
||||
|
||||
static bool[] overlayIsOre = new bool[]
|
||||
{
|
||||
false, false, false, false, false,
|
||||
true, true, true, true,
|
||||
false, false, false, false,
|
||||
false, false, false, false, false, false, false,
|
||||
false, false, false, false, false,
|
||||
};
|
||||
|
||||
static bool[] overlayIsGems = new bool[]
|
||||
{
|
||||
false, false, false, false, false,
|
||||
false, false, false, false,
|
||||
true, true, true, true,
|
||||
false, false, false, false, false, false, false,
|
||||
false, false, false, false, false,
|
||||
};
|
||||
Sprite[][] overlaySprites;
|
||||
|
||||
@@ -41,12 +67,41 @@ namespace OpenRa.Game.Graphics
|
||||
{
|
||||
var location = new int2( x, y );
|
||||
var sprites = overlaySprites[ map.MapTiles[ x, y ].overlay ];
|
||||
spriteRenderer.DrawSprite( sprites[ sprites.Length / 2-1 ], 24 * (float2)( location - map.Offset ), 0 );
|
||||
var spriteIndex = 0;
|
||||
if( overlayIsFence[ map.MapTiles[ x, y ].overlay ] )
|
||||
spriteIndex = NearbyFences( x, y );
|
||||
else if( overlayIsOre[ map.MapTiles[ x, y ].overlay ] )
|
||||
spriteIndex = 11;
|
||||
else if( overlayIsGems[ map.MapTiles[ x, y ].overlay ] )
|
||||
spriteIndex = 2;
|
||||
spriteRenderer.DrawSprite( sprites[ spriteIndex ], 24 * (float2)( location - map.Offset ), 0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
spriteRenderer.Flush();
|
||||
}
|
||||
|
||||
bool IsFence( int x, int y )
|
||||
{
|
||||
var o = map.MapTiles[ x, y ].overlay;
|
||||
if( o < overlayIsFence.Length )
|
||||
return overlayIsFence[ o ];
|
||||
return false;
|
||||
}
|
||||
|
||||
int NearbyFences( int x, int y )
|
||||
{
|
||||
int ret = 0;
|
||||
if( IsFence( x, y - 1 ) )
|
||||
ret |= 1;
|
||||
if( IsFence( x + 1, y ) )
|
||||
ret |= 2;
|
||||
if( IsFence( x, y + 1 ) )
|
||||
ret |= 4;
|
||||
if( IsFence( x - 1, y ) )
|
||||
ret |= 8;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ namespace OpenRa.Game
|
||||
FileSystem.Mount(new Package("redalert.mix"));
|
||||
FileSystem.Mount(new Package("conquer.mix"));
|
||||
FileSystem.Mount(new Package("hires.mix"));
|
||||
FileSystem.Mount(new Package("general.mix"));
|
||||
|
||||
FormBorderStyle = FormBorderStyle.None;
|
||||
BackColor = Color.Black;
|
||||
|
||||
@@ -478,10 +478,10 @@ width=3
|
||||
height=2
|
||||
tiletype0=8
|
||||
tiletype1=8
|
||||
tiletype0=5
|
||||
tiletype1=0
|
||||
tiletype0=5
|
||||
tiletype1=6
|
||||
tiletype2=5
|
||||
tiletype3=0
|
||||
tiletype4=5
|
||||
tiletype5=6
|
||||
|
||||
[TEM33]
|
||||
Name=SH31
|
||||
@@ -1282,7 +1282,7 @@ tiletype8=5
|
||||
tiletype9=5
|
||||
tiletype10=3
|
||||
tiletype11=3
|
||||
tiletype11=3
|
||||
tiletype12=3
|
||||
tiletype13=3
|
||||
tiletype14=3
|
||||
tiletype16=3
|
||||
|
||||
Reference in New Issue
Block a user