sequences for the rest of the buildable buildings, and fixes to make HBOX and MSLO work
- HBOX and MSLO sprites are in temperat/snow mixes with .tem/.sno extensions (and not present in interior)
This commit is contained in:
@@ -26,5 +26,20 @@ namespace OpenRa.FileFormats
|
|||||||
|
|
||||||
throw new FileNotFoundException("File not found", filename);
|
throw new FileNotFoundException("File not found", filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Stream OpenWithExts( string filename, params string[] exts )
|
||||||
|
{
|
||||||
|
foreach( var ext in exts )
|
||||||
|
{
|
||||||
|
foreach( IFolder folder in mountedFolders )
|
||||||
|
{
|
||||||
|
Stream s = folder.GetContent( filename + ext );
|
||||||
|
if( s != null )
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new FileNotFoundException( "File not found", filename );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ namespace OpenRa.Game
|
|||||||
{
|
{
|
||||||
unitInfo = Rules.UnitInfo.Get( name );
|
unitInfo = Rules.UnitInfo.Get( name );
|
||||||
Location = location;
|
Location = location;
|
||||||
|
CenterLocation = new float2( 12, 12 ) + 24 * (float2)Location;
|
||||||
Owner = owner;
|
Owner = owner;
|
||||||
|
|
||||||
switch( name )
|
switch( name )
|
||||||
@@ -29,7 +30,7 @@ namespace OpenRa.Game
|
|||||||
///// vehicles /////
|
///// vehicles /////
|
||||||
case "mcv":
|
case "mcv":
|
||||||
traits.Add( new Traits.Mobile( this ) );
|
traits.Add( new Traits.Mobile( this ) );
|
||||||
traits.Add( new Traits.RenderUnit( this, name ) );
|
traits.Add( new Traits.RenderUnit( this ) );
|
||||||
traits.Add( new Traits.McvDeploy( this ) );
|
traits.Add( new Traits.McvDeploy( this ) );
|
||||||
break;
|
break;
|
||||||
case "mnly":
|
case "mnly":
|
||||||
@@ -37,7 +38,7 @@ namespace OpenRa.Game
|
|||||||
case "v2rl":
|
case "v2rl":
|
||||||
case "arty":
|
case "arty":
|
||||||
traits.Add( new Traits.Mobile( this ) );
|
traits.Add( new Traits.Mobile( this ) );
|
||||||
traits.Add( new Traits.RenderUnit( this, name ) );
|
traits.Add( new Traits.RenderUnit( this ) );
|
||||||
break;
|
break;
|
||||||
case "jeep":
|
case "jeep":
|
||||||
case "1tnk":
|
case "1tnk":
|
||||||
@@ -48,11 +49,11 @@ namespace OpenRa.Game
|
|||||||
case "mgg":
|
case "mgg":
|
||||||
traits.Add( new Traits.Mobile( this ) );
|
traits.Add( new Traits.Mobile( this ) );
|
||||||
traits.Add( new Traits.Turreted( this ) );
|
traits.Add( new Traits.Turreted( this ) );
|
||||||
traits.Add( new Traits.RenderUnitTurreted( this, name ) );
|
traits.Add( new Traits.RenderUnitTurreted( this ) );
|
||||||
break;
|
break;
|
||||||
case "harv":
|
case "harv":
|
||||||
traits.Add( new Traits.Mobile( this ) );
|
traits.Add( new Traits.Mobile( this ) );
|
||||||
traits.Add( new Traits.RenderUnit( this, name ) );
|
traits.Add( new Traits.RenderUnit( this ) );
|
||||||
break;
|
break;
|
||||||
///// TODO: infantry /////
|
///// TODO: infantry /////
|
||||||
|
|
||||||
@@ -66,7 +67,6 @@ namespace OpenRa.Game
|
|||||||
case "mslo":
|
case "mslo":
|
||||||
case "atek":
|
case "atek":
|
||||||
case "stek":
|
case "stek":
|
||||||
case "weap":
|
|
||||||
case "fact":
|
case "fact":
|
||||||
case "proc":
|
case "proc":
|
||||||
case "silo":
|
case "silo":
|
||||||
@@ -79,7 +79,8 @@ namespace OpenRa.Game
|
|||||||
case "tent":
|
case "tent":
|
||||||
case "kenn":
|
case "kenn":
|
||||||
case "fix":
|
case "fix":
|
||||||
//SYRD, SPEN
|
case "spen":
|
||||||
|
case "syrd":
|
||||||
//GAP
|
//GAP
|
||||||
//SBAG, BRIK, FENC
|
//SBAG, BRIK, FENC
|
||||||
//FACF, WEAF, SYRF, SPEF, DOMF
|
//FACF, WEAF, SYRF, SPEF, DOMF
|
||||||
@@ -88,14 +89,18 @@ namespace OpenRa.Game
|
|||||||
case "tsla":
|
case "tsla":
|
||||||
case "ftur":
|
case "ftur":
|
||||||
traits.Add( new Traits.Building( this ) );
|
traits.Add( new Traits.Building( this ) );
|
||||||
traits.Add( new Traits.RenderBuilding( this, name ) );
|
traits.Add( new Traits.RenderBuilding( this ) );
|
||||||
|
break;
|
||||||
|
case "weap":
|
||||||
|
traits.Add( new Traits.Building( this ) );
|
||||||
|
traits.Add( new Traits.RenderWarFactory( this ) );
|
||||||
break;
|
break;
|
||||||
case "gun":
|
case "gun":
|
||||||
case "agun":
|
case "agun":
|
||||||
case "sam":
|
case "sam":
|
||||||
traits.Add( new Traits.Building( this ) );
|
traits.Add( new Traits.Building( this ) );
|
||||||
traits.Add( new Traits.Turreted( this ) );
|
traits.Add( new Traits.Turreted( this ) );
|
||||||
traits.Add( new Traits.RenderBuildingTurreted( this, name ) );
|
traits.Add( new Traits.RenderBuildingTurreted( this ) );
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new NotImplementedException( "Actor traits for " + name );
|
throw new NotImplementedException( "Actor traits for " + name );
|
||||||
@@ -114,7 +119,7 @@ namespace OpenRa.Game
|
|||||||
tick.Tick( this, game, dt );
|
tick.Tick( this, game, dt );
|
||||||
}
|
}
|
||||||
|
|
||||||
public float2 CenterLocation { get { return new float2( 12, 12 ) + 24 * (float2)Location; } }
|
public float2 CenterLocation;
|
||||||
public float2 SelectedSize { get { return Render().FirstOrDefault().First.size; } }
|
public float2 SelectedSize { get { return Render().FirstOrDefault().First.size; } }
|
||||||
|
|
||||||
public IEnumerable<Pair<Sprite, float2>> Render()
|
public IEnumerable<Pair<Sprite, float2>> Render()
|
||||||
@@ -152,9 +157,9 @@ namespace OpenRa.Game
|
|||||||
{
|
{
|
||||||
public Animation anim;
|
public Animation anim;
|
||||||
|
|
||||||
public RenderSimple( Actor self, string unitName )
|
public RenderSimple( Actor self )
|
||||||
{
|
{
|
||||||
anim = new Animation( unitName );
|
anim = new Animation( self.unitInfo.Name );
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract IEnumerable<Pair<Sprite, float2>> Render( Actor self );
|
public abstract IEnumerable<Pair<Sprite, float2>> Render( Actor self );
|
||||||
@@ -167,10 +172,10 @@ namespace OpenRa.Game
|
|||||||
|
|
||||||
class RenderBuilding : RenderSimple
|
class RenderBuilding : RenderSimple
|
||||||
{
|
{
|
||||||
public RenderBuilding( Actor self, string unitName )
|
public RenderBuilding( Actor self )
|
||||||
: base( self, unitName )
|
: base( self )
|
||||||
{
|
{
|
||||||
anim.PlayThen( "make", () => anim.Play( "idle" ) );
|
anim.PlayThen( "make", () => anim.PlayRepeating( "idle" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerable<Pair<Sprite, float2>> Render( Actor self )
|
public override IEnumerable<Pair<Sprite, float2>> Render( Actor self )
|
||||||
@@ -181,17 +186,48 @@ namespace OpenRa.Game
|
|||||||
|
|
||||||
class RenderBuildingTurreted : RenderBuilding
|
class RenderBuildingTurreted : RenderBuilding
|
||||||
{
|
{
|
||||||
public RenderBuildingTurreted( Actor self, string unitName )
|
public RenderBuildingTurreted( Actor self )
|
||||||
: base( self, unitName )
|
: base( self )
|
||||||
{
|
{
|
||||||
anim.PlayThen( "make", () => anim.PlayFetchIndex( "idle", () => self.traits.Get<Turreted>().turretFacing ) );
|
anim.PlayThen( "make", () => anim.PlayFetchIndex( "idle", () => self.traits.Get<Turreted>().turretFacing ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class RenderWarFactory : RenderBuilding
|
||||||
|
{
|
||||||
|
public Animation roof;
|
||||||
|
bool doneBuilding;
|
||||||
|
|
||||||
|
public RenderWarFactory( Actor self )
|
||||||
|
: base( self )
|
||||||
|
{
|
||||||
|
roof = new Animation( self.unitInfo.Name );
|
||||||
|
anim.PlayThen( "make", () =>
|
||||||
|
{
|
||||||
|
doneBuilding = true;
|
||||||
|
anim.Play( "idle" );
|
||||||
|
roof.Play( "idle-top" );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
|
public override IEnumerable<Pair<Sprite, float2>> Render( Actor self )
|
||||||
|
{
|
||||||
|
yield return Pair.New( anim.Image, 24f * (float2)self.Location );
|
||||||
|
if( doneBuilding )
|
||||||
|
yield return Pair.New( roof.Image, 24f * (float2)self.Location );
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Tick( Actor self, Game game, int dt )
|
||||||
|
{
|
||||||
|
base.Tick( self, game, dt );
|
||||||
|
roof.Tick( dt );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class RenderUnit : RenderSimple
|
class RenderUnit : RenderSimple
|
||||||
{
|
{
|
||||||
public RenderUnit( Actor self, string unitName )
|
public RenderUnit( Actor self )
|
||||||
:base( self, unitName )
|
: base( self )
|
||||||
{
|
{
|
||||||
anim.PlayFetchIndex( "idle", () => self.traits.Get<Mobile>().facing );
|
anim.PlayFetchIndex( "idle", () => self.traits.Get<Mobile>().facing );
|
||||||
}
|
}
|
||||||
@@ -215,20 +251,18 @@ namespace OpenRa.Game
|
|||||||
{
|
{
|
||||||
public Animation turretAnim;
|
public Animation turretAnim;
|
||||||
|
|
||||||
public RenderUnitTurreted( Actor self, string unitName )
|
public RenderUnitTurreted( Actor self )
|
||||||
: base( self, unitName )
|
: base( self )
|
||||||
{
|
{
|
||||||
turretAnim = new Animation( unitName );
|
turretAnim = new Animation( self.unitInfo.Name );
|
||||||
turretAnim.PlayFetchIndex( "turret", () => self.traits.Get<Turreted>().turretFacing );
|
turretAnim.PlayFetchIndex( "turret", () => self.traits.Get<Turreted>().turretFacing );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerable<Pair<Sprite, float2>> Render( Actor self )
|
public override IEnumerable<Pair<Sprite, float2>> Render( Actor self )
|
||||||
{
|
{
|
||||||
var mobile = self.traits.Get<Mobile>();
|
var mobile = self.traits.Get<Mobile>();
|
||||||
float fraction = ( mobile.moveFraction > 0 ) ? (float)mobile.moveFraction / mobile.moveFractionTotal : 0f;
|
yield return Centered( anim.Image, self.CenterLocation );
|
||||||
var centerLocation = new float2( 12, 12 ) + 24 * float2.Lerp( mobile.fromCell, mobile.toCell, fraction );
|
yield return Centered( turretAnim.Image, self.CenterLocation );
|
||||||
yield return Centered( anim.Image, centerLocation );
|
|
||||||
yield return Centered( turretAnim.Image, centerLocation );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Tick( Actor self, Game game, int dt )
|
public override void Tick( Actor self, Game game, int dt )
|
||||||
@@ -287,7 +321,19 @@ namespace OpenRa.Game
|
|||||||
return highest;
|
return highest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UpdateCenterLocation()
|
||||||
|
{
|
||||||
|
float fraction = ( moveFraction > 0 ) ? (float)moveFraction / moveFractionTotal : 0f;
|
||||||
|
self.CenterLocation = new float2( 12, 12 ) + 24 * float2.Lerp( fromCell, toCell, fraction );
|
||||||
|
}
|
||||||
|
|
||||||
public void Tick( Actor self, Game game, int dt )
|
public void Tick( Actor self, Game game, int dt )
|
||||||
|
{
|
||||||
|
Move( self, game, dt );
|
||||||
|
UpdateCenterLocation();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Move( Actor self, Game game, int dt )
|
||||||
{
|
{
|
||||||
if( fromCell != toCell )
|
if( fromCell != toCell )
|
||||||
{
|
{
|
||||||
@@ -385,7 +431,10 @@ namespace OpenRa.Game
|
|||||||
public void Tick( Actor self, Game game, int dt )
|
public void Tick( Actor self, Game game, int dt )
|
||||||
{
|
{
|
||||||
if( first && self.Owner == game.LocalPlayer )
|
if( first && self.Owner == game.LocalPlayer )
|
||||||
|
{
|
||||||
self.Owner.TechTree.Build( self.unitInfo.Name, true );
|
self.Owner.TechTree.Build( self.unitInfo.Name, true );
|
||||||
|
self.CenterLocation = 24 * (float2)self.Location + 0.5f * self.SelectedSize;
|
||||||
|
}
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ namespace OpenRa.Game.GameRules
|
|||||||
|
|
||||||
public BaseInfo( string name, IniSection ini )
|
public BaseInfo( string name, IniSection ini )
|
||||||
{
|
{
|
||||||
Name = name;
|
Name = name.ToLowerInvariant();
|
||||||
|
|
||||||
foreach( var x in ini )
|
foreach( var x in ini )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace OpenRa.Game.Graphics
|
|||||||
|
|
||||||
int low = sprites.Count;
|
int low = sprites.Count;
|
||||||
|
|
||||||
ShpReader reader = new ShpReader(FileSystem.Open(name + ".shp"));
|
ShpReader reader = new ShpReader( FileSystem.OpenWithExts( name, ".shp", ".tem", ".sno", ".int" ) );
|
||||||
foreach (ImageHeader h in reader)
|
foreach (ImageHeader h in reader)
|
||||||
sprites.Add(SheetBuilder.Add(h.Image, reader.Size));
|
sprites.Add(SheetBuilder.Add(h.Image, reader.Size));
|
||||||
|
|
||||||
|
|||||||
119
sequences.xml
119
sequences.xml
@@ -31,7 +31,6 @@
|
|||||||
<sequences>
|
<sequences>
|
||||||
|
|
||||||
<!-- construction yard -->
|
<!-- construction yard -->
|
||||||
|
|
||||||
<unit name="fact">
|
<unit name="fact">
|
||||||
<sequence name="idle" start="0"/>
|
<sequence name="idle" start="0"/>
|
||||||
<sequence name="make" start="0" length="32" src="factmake" />
|
<sequence name="make" start="0" length="32" src="factmake" />
|
||||||
@@ -41,15 +40,20 @@
|
|||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- refinery -->
|
<!-- refinery -->
|
||||||
|
|
||||||
<unit name="proc">
|
<unit name="proc">
|
||||||
<sequence name="idle" start="0"/>
|
<sequence name="idle" start="0"/>
|
||||||
<sequence name="damaged-idle" start="1"/>
|
<sequence name="damaged-idle" start="1"/>
|
||||||
<sequence name="make" start="0" length="*" src="procmake" />
|
<sequence name="make" start="0" length="*" src="procmake" />
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- power plant -->
|
<!-- silo -->
|
||||||
|
<unit name="silo">
|
||||||
|
<sequence name="idle" start="0" length="5"/>
|
||||||
|
<sequence name="damaged-idle" start="5" length="5"/>
|
||||||
|
<sequence name="make" start="0" length="*" src="silomake" />
|
||||||
|
</unit>
|
||||||
|
|
||||||
|
<!-- power plant -->
|
||||||
<unit name="powr">
|
<unit name="powr">
|
||||||
<sequence name="idle" start="0"/>
|
<sequence name="idle" start="0"/>
|
||||||
<sequence name="damaged-idle" start="1"/>
|
<sequence name="damaged-idle" start="1"/>
|
||||||
@@ -57,7 +61,6 @@
|
|||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- advanced power plant -->
|
<!-- advanced power plant -->
|
||||||
|
|
||||||
<unit name="apwr">
|
<unit name="apwr">
|
||||||
<sequence name="idle" start="0"/>
|
<sequence name="idle" start="0"/>
|
||||||
<sequence name="damaged-idle" start="1"/>
|
<sequence name="damaged-idle" start="1"/>
|
||||||
@@ -65,7 +68,6 @@
|
|||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- soviet barracks -->
|
<!-- soviet barracks -->
|
||||||
|
|
||||||
<unit name="barr">
|
<unit name="barr">
|
||||||
<sequence name="idle" start="0" length="10"/>
|
<sequence name="idle" start="0" length="10"/>
|
||||||
<sequence name="damaged-idle" start="10" length="10"/>
|
<sequence name="damaged-idle" start="10" length="10"/>
|
||||||
@@ -73,15 +75,20 @@
|
|||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- allied barracks -->
|
<!-- allied barracks -->
|
||||||
|
|
||||||
<unit name="tent">
|
<unit name="tent">
|
||||||
<sequence name="idle" start="0" length="10"/>
|
<sequence name="idle" start="0" length="10"/>
|
||||||
<sequence name="damaged-idle" start="10" length="10"/>
|
<sequence name="damaged-idle" start="10" length="10"/>
|
||||||
<sequence name="make" start="0" length="*" src="tentmake" />
|
<sequence name="make" start="0" length="*" src="tentmake" />
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- radar dome -->
|
<!-- kennel -->
|
||||||
|
<unit name="kenn">
|
||||||
|
<sequence name="idle" start="0"/>
|
||||||
|
<sequence name="damaged-idle" start="1"/>
|
||||||
|
<sequence name="make" start="0" length="*" src="kennmake" />
|
||||||
|
</unit>
|
||||||
|
|
||||||
|
<!-- radar dome -->
|
||||||
<unit name="dome">
|
<unit name="dome">
|
||||||
<sequence name="idle" start="0"/>
|
<sequence name="idle" start="0"/>
|
||||||
<sequence name="damaged-idle" start="1"/>
|
<sequence name="damaged-idle" start="1"/>
|
||||||
@@ -89,7 +96,6 @@
|
|||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- allied tech center -->
|
<!-- allied tech center -->
|
||||||
|
|
||||||
<unit name="atek">
|
<unit name="atek">
|
||||||
<sequence name="idle" start="0"/>
|
<sequence name="idle" start="0"/>
|
||||||
<sequence name="damaged-idle" start="1"/>
|
<sequence name="damaged-idle" start="1"/>
|
||||||
@@ -97,7 +103,6 @@
|
|||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- soviet tech center -->
|
<!-- soviet tech center -->
|
||||||
|
|
||||||
<unit name="stek">
|
<unit name="stek">
|
||||||
<sequence name="idle" start="0"/>
|
<sequence name="idle" start="0"/>
|
||||||
<sequence name="damaged-idle" start="1"/>
|
<sequence name="damaged-idle" start="1"/>
|
||||||
@@ -105,7 +110,6 @@
|
|||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- war factory -->
|
<!-- war factory -->
|
||||||
|
|
||||||
<unit name="weap">
|
<unit name="weap">
|
||||||
<sequence name="idle" start="0"/>
|
<sequence name="idle" start="0"/>
|
||||||
<sequence name="damaged-idle" start="1"/>
|
<sequence name="damaged-idle" start="1"/>
|
||||||
@@ -116,28 +120,101 @@
|
|||||||
<sequence name="damaged-idle_top" start="4" length="1" src="weap2" />
|
<sequence name="damaged-idle_top" start="4" length="1" src="weap2" />
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- allied gun turret -->
|
<!-- helipad -->
|
||||||
|
<unit name="hpad">
|
||||||
|
<sequence name="idle" start="0" length="7"/>
|
||||||
|
<sequence name="damaged-idle" start="7" length="7"/>
|
||||||
|
<sequence name="make" start="0" length="*" src="hpadmake" />
|
||||||
|
</unit>
|
||||||
|
|
||||||
|
<!-- airfield -->
|
||||||
|
<unit name="afld">
|
||||||
|
<sequence name="idle" start="0" length="8"/>
|
||||||
|
<sequence name="damaged-idle" start="8" length="8"/>
|
||||||
|
<sequence name="make" start="0" length="*" src="afldmake" />
|
||||||
|
</unit>
|
||||||
|
|
||||||
|
<!-- sub pen -->
|
||||||
|
<unit name="spen">
|
||||||
|
<sequence name="idle" start="0"/>
|
||||||
|
<sequence name="damaged-idle" start="1"/>
|
||||||
|
<sequence name="make" start="0" length="*" src="spenmake" />
|
||||||
|
</unit>
|
||||||
|
|
||||||
|
<!-- shipyard -->
|
||||||
|
<unit name="syrd">
|
||||||
|
<sequence name="idle" start="0"/>
|
||||||
|
<sequence name="damaged-idle" start="1"/>
|
||||||
|
<sequence name="make" start="0" length="*" src="syrdmake" />
|
||||||
|
</unit>
|
||||||
|
|
||||||
|
<!-- repair pad -->
|
||||||
|
<unit name="fix">
|
||||||
|
<sequence name="idle" start="0" length="7"/>
|
||||||
|
<sequence name="damaged-idle" start="7" length="7"/>
|
||||||
|
<sequence name="make" start="0" length="*" src="fixmake" />
|
||||||
|
</unit>
|
||||||
|
|
||||||
|
<!-- allied gun turret -->
|
||||||
<unit name="gun">
|
<unit name="gun">
|
||||||
<sequence name="idle" start="0" length="32"/>
|
<sequence name="idle" start="0" length="32"/>
|
||||||
<sequence name="damaged-idle" start="1" length="32"/>
|
<sequence name="damaged-idle" start="32" length="32"/>
|
||||||
<sequence name="make" start="0" length="*" src="gunmake" />
|
<sequence name="make" start="0" length="*" src="gunmake" />
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- mcv -->
|
<!-- sam site -->
|
||||||
|
<unit name="sam">
|
||||||
|
<sequence name="idle" start="0" length="32"/>
|
||||||
|
<sequence name="damaged-idle" start="34" length="32"/>
|
||||||
|
<sequence name="make" start="0" length="*" src="sammake" />
|
||||||
|
</unit>
|
||||||
|
|
||||||
|
<!-- flame turret -->
|
||||||
|
<unit name="ftur">
|
||||||
|
<sequence name="idle" start="0"/>
|
||||||
|
<sequence name="damaged-idle" start="1"/>
|
||||||
|
<sequence name="make" start="0" length="*" src="fturmake" />
|
||||||
|
</unit>
|
||||||
|
|
||||||
|
<!-- tesla coil -->
|
||||||
|
<unit name="tsla">
|
||||||
|
<sequence name="idle" start="0" length="10"/>
|
||||||
|
<sequence name="damaged-idle" start="10" length="10"/>
|
||||||
|
<sequence name="make" start="0" length="*" src="tslamake" />
|
||||||
|
</unit>
|
||||||
|
|
||||||
|
<!-- iron curtain -->
|
||||||
|
<unit name="iron">
|
||||||
|
<sequence name="idle" start="0" length="11"/>
|
||||||
|
<sequence name="damaged-idle" start="11" length="11"/>
|
||||||
|
<sequence name="make" start="0" length="*" src="ironmake" />
|
||||||
|
</unit>
|
||||||
|
|
||||||
|
<!-- chronosphere -->
|
||||||
|
<unit name="pdox">
|
||||||
|
<sequence name="idle" start="0" length="29"/>
|
||||||
|
<sequence name="damaged-idle" start="29" length="29"/>
|
||||||
|
<sequence name="make" start="0" length="*" src="pdoxmake" />
|
||||||
|
</unit>
|
||||||
|
|
||||||
|
<!-- nuclear missile silo -->
|
||||||
|
<unit name="mslo">
|
||||||
|
<sequence name="idle" start="0" length="8"/>
|
||||||
|
<sequence name="damaged-idle" start="8" length="8"/>
|
||||||
|
<sequence name="make" start="0" length="*" src="mslomake" />
|
||||||
|
</unit>
|
||||||
|
|
||||||
|
<!-- mcv -->
|
||||||
<unit name="mcv">
|
<unit name="mcv">
|
||||||
<sequence name="idle" start="0" length="*"/>
|
<sequence name="idle" start="0" length="*"/>
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- truck -->
|
<!-- truck -->
|
||||||
|
|
||||||
<unit name="truk">
|
<unit name="truk">
|
||||||
<sequence name="idle" start="0" length="*"/>
|
<sequence name="idle" start="0" length="*"/>
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- harv -->
|
<!-- harv -->
|
||||||
|
|
||||||
<unit name="harv">
|
<unit name="harv">
|
||||||
<sequence name="idle" start="0" length="32"/>
|
<sequence name="idle" start="0" length="32"/>
|
||||||
<sequence name="harvest0" start="32" length="8"/>
|
<sequence name="harvest0" start="32" length="8"/>
|
||||||
@@ -152,35 +229,30 @@
|
|||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- light tank -->
|
<!-- light tank -->
|
||||||
|
|
||||||
<unit name="1tnk">
|
<unit name="1tnk">
|
||||||
<sequence name="idle" start="0" length="32"/>
|
<sequence name="idle" start="0" length="32"/>
|
||||||
<sequence name="turret" start="32" length="32"/>
|
<sequence name="turret" start="32" length="32"/>
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- medium tank -->
|
<!-- medium tank -->
|
||||||
|
|
||||||
<unit name="2tnk">
|
<unit name="2tnk">
|
||||||
<sequence name="idle" start="0" length="32"/>
|
<sequence name="idle" start="0" length="32"/>
|
||||||
<sequence name="turret" start="32" length="32"/>
|
<sequence name="turret" start="32" length="32"/>
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- heavy tank -->
|
<!-- heavy tank -->
|
||||||
|
|
||||||
<unit name="3tnk">
|
<unit name="3tnk">
|
||||||
<sequence name="idle" start="0" length="32"/>
|
<sequence name="idle" start="0" length="32"/>
|
||||||
<sequence name="turret" start="32" length="32"/>
|
<sequence name="turret" start="32" length="32"/>
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- mammoth tank -->
|
<!-- mammoth tank -->
|
||||||
|
|
||||||
<unit name="4tnk">
|
<unit name="4tnk">
|
||||||
<sequence name="idle" start="0" length="32"/>
|
<sequence name="idle" start="0" length="32"/>
|
||||||
<sequence name="turret" start="32" length="32"/>
|
<sequence name="turret" start="32" length="32"/>
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- v2 rocket launcher -->
|
<!-- v2 rocket launcher -->
|
||||||
|
|
||||||
<unit name="v2rl">
|
<unit name="v2rl">
|
||||||
<sequence name="idle" start="0" length="32"/>
|
<sequence name="idle" start="0" length="32"/>
|
||||||
<sequence name="reloading" start="32" length="32"/>
|
<sequence name="reloading" start="32" length="32"/>
|
||||||
@@ -188,47 +260,40 @@
|
|||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- artillery -->
|
<!-- artillery -->
|
||||||
|
|
||||||
<unit name="arty">
|
<unit name="arty">
|
||||||
<sequence name="idle" start="0" length="32"/>
|
<sequence name="idle" start="0" length="32"/>
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- jeep -->
|
<!-- jeep -->
|
||||||
|
|
||||||
<unit name="jeep">
|
<unit name="jeep">
|
||||||
<sequence name="idle" start="0" length="32"/>
|
<sequence name="idle" start="0" length="32"/>
|
||||||
<sequence name="turret" start="32" length="32"/>
|
<sequence name="turret" start="32" length="32"/>
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- apc -->
|
<!-- apc -->
|
||||||
|
|
||||||
<unit name="apc">
|
<unit name="apc">
|
||||||
<sequence name="idle" start="0" length="32"/>
|
<sequence name="idle" start="0" length="32"/>
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- mine layer -->
|
<!-- mine layer -->
|
||||||
|
|
||||||
<unit name="mnly">
|
<unit name="mnly">
|
||||||
<sequence name="idle" start="0" length="32"/>
|
<sequence name="idle" start="0" length="32"/>
|
||||||
<!-- and 16 "lay mine" sprites, not used in real-ra -->
|
<!-- and 16 "lay mine" sprites, not used in real-ra -->
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- radar jammer -->
|
<!-- radar jammer -->
|
||||||
|
|
||||||
<unit name="mrj">
|
<unit name="mrj">
|
||||||
<sequence name="idle" start="0" length="32"/>
|
<sequence name="idle" start="0" length="32"/>
|
||||||
<sequence name="turret" start="32" length="32"/>
|
<sequence name="turret" start="32" length="32"/>
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- mobile gap generator -->
|
<!-- mobile gap generator -->
|
||||||
|
|
||||||
<unit name="mgg">
|
<unit name="mgg">
|
||||||
<sequence name="idle" start="0" length="32"/>
|
<sequence name="idle" start="0" length="32"/>
|
||||||
<sequence name="turret" start="32" length="8"/>
|
<sequence name="turret" start="32" length="8"/>
|
||||||
</unit>
|
</unit>
|
||||||
|
|
||||||
<!-- build clock - hacked in -->
|
<!-- build clock - hacked in -->
|
||||||
|
|
||||||
<unit name="clock">
|
<unit name="clock">
|
||||||
<sequence name="idle" start="0" length="*"/>
|
<sequence name="idle" start="0" length="*"/>
|
||||||
</unit>
|
</unit>
|
||||||
|
|||||||
Reference in New Issue
Block a user