remove Game.skipMakeAnims

This commit is contained in:
Bob
2010-08-20 17:14:20 +12:00
parent e610c4d7fc
commit 0e71af25f4
7 changed files with 31 additions and 28 deletions

View File

@@ -41,8 +41,6 @@ namespace OpenRA
internal static OrderManager orderManager; internal static OrderManager orderManager;
public static bool skipMakeAnims = true;
public static XRandom CosmeticRandom = new XRandom(); // not synced public static XRandom CosmeticRandom = new XRandom(); // not synced
public static Renderer Renderer; public static Renderer Renderer;

View File

@@ -17,20 +17,21 @@ namespace OpenRA.Mods.RA.Render
public class RenderBuildingInfo : RenderSimpleInfo public class RenderBuildingInfo : RenderSimpleInfo
{ {
public readonly bool HasMakeAnimation = true; public readonly bool HasMakeAnimation = true;
public override object Create(ActorInitializer init) { return new RenderBuilding(init.self);} public override object Create(ActorInitializer init) { return new RenderBuilding(init);}
} }
public class RenderBuilding : RenderSimple, INotifyDamage, INotifySold public class RenderBuilding : RenderSimple, INotifyDamage, INotifySold
{ {
public RenderBuilding( Actor self ) public RenderBuilding( ActorInitializer init )
: this( self, () => 0 ) : this( init, () => 0 )
{ {
} }
public RenderBuilding(Actor self, Func<int> baseFacing) public RenderBuilding( ActorInitializer init, Func<int> baseFacing )
: base(self, baseFacing) : base(init.self, baseFacing)
{ {
if( Game.skipMakeAnims || !self.Info.Traits.Get<RenderBuildingInfo>().HasMakeAnimation ) var self = init.self;
if( init.Contains<SkipMakeAnimsInit>() || !self.Info.Traits.Get<RenderBuildingInfo>().HasMakeAnimation )
anim.PlayThen( "idle", () => self.World.AddFrameEndTask( _ => Complete( self ) ) ); anim.PlayThen( "idle", () => self.World.AddFrameEndTask( _ => Complete( self ) ) );
else else
anim.PlayThen( "make", () => self.World.AddFrameEndTask( _ => Complete( self ) ) ); anim.PlayThen( "make", () => self.World.AddFrameEndTask( _ => Complete( self ) ) );
@@ -74,7 +75,7 @@ namespace OpenRA.Mods.RA.Render
public void Selling( Actor self ) public void Selling( Actor self )
{ {
if( !Game.skipMakeAnims && self.Info.Traits.Get<RenderBuildingInfo>().HasMakeAnimation ) if( self.Info.Traits.Get<RenderBuildingInfo>().HasMakeAnimation )
anim.PlayBackwardsThen( "make", null ); anim.PlayBackwardsThen( "make", null );
foreach (var s in self.Info.Traits.Get<BuildingInfo>().SellSounds) foreach (var s in self.Info.Traits.Get<BuildingInfo>().SellSounds)

View File

@@ -13,14 +13,14 @@ namespace OpenRA.Mods.RA.Render
class RenderBuildingChargeInfo : RenderBuildingInfo class RenderBuildingChargeInfo : RenderBuildingInfo
{ {
public readonly string ChargeAudio = "tslachg2.aud"; public readonly string ChargeAudio = "tslachg2.aud";
public override object Create(ActorInitializer init) { return new RenderBuildingCharge(init.self); } public override object Create(ActorInitializer init) { return new RenderBuildingCharge(init); }
} }
/* used for tesla */ /* used for tesla */
public class RenderBuildingCharge : RenderBuilding public class RenderBuildingCharge : RenderBuilding
{ {
public RenderBuildingCharge(Actor self) public RenderBuildingCharge( ActorInitializer init )
: base(self) : base(init)
{ {
} }

View File

@@ -14,13 +14,13 @@ namespace OpenRA.Mods.RA.Render
{ {
class RenderBuildingOreInfo : RenderBuildingInfo class RenderBuildingOreInfo : RenderBuildingInfo
{ {
public override object Create(ActorInitializer init) { return new RenderBuildingOre(init.self); } public override object Create(ActorInitializer init) { return new RenderBuildingOre(init); }
} }
class RenderBuildingOre : RenderBuilding, INotifyBuildComplete class RenderBuildingOre : RenderBuilding, INotifyBuildComplete
{ {
public RenderBuildingOre(Actor self) public RenderBuildingOre( ActorInitializer init )
: base(self) : base(init)
{ {
} }

View File

@@ -14,13 +14,13 @@ namespace OpenRA.Mods.RA.Render
{ {
class RenderBuildingTurretedInfo : RenderBuildingInfo class RenderBuildingTurretedInfo : RenderBuildingInfo
{ {
public override object Create(ActorInitializer init) { return new RenderBuildingTurreted(init.self); } public override object Create(ActorInitializer init) { return new RenderBuildingTurreted( init ); }
} }
class RenderBuildingTurreted : RenderBuilding, INotifyBuildComplete class RenderBuildingTurreted : RenderBuilding, INotifyBuildComplete
{ {
public RenderBuildingTurreted(Actor self) public RenderBuildingTurreted( ActorInitializer init )
: base(self, () => self.Trait<Turreted>().turretFacing) : base(init, () => init.self.Trait<Turreted>().turretFacing)
{ {
} }

View File

@@ -15,7 +15,7 @@ namespace OpenRA.Mods.RA.Render
{ {
class RenderBuildingWallInfo : RenderBuildingInfo class RenderBuildingWallInfo : RenderBuildingInfo
{ {
public override object Create(ActorInitializer init) { return new RenderBuildingWall(init.self); } public override object Create(ActorInitializer init) { return new RenderBuildingWall(init); }
} }
class RenderBuildingWall : RenderBuilding class RenderBuildingWall : RenderBuilding
@@ -23,8 +23,8 @@ namespace OpenRA.Mods.RA.Render
string seqName; string seqName;
int adjacentWalls = 0; int adjacentWalls = 0;
public RenderBuildingWall(Actor self) public RenderBuildingWall( ActorInitializer init )
: base(self) : base(init)
{ {
seqName = "idle"; seqName = "idle";
anim.PlayFetchIndex(seqName, () => adjacentWalls); anim.PlayFetchIndex(seqName, () => adjacentWalls);

View File

@@ -22,12 +22,16 @@ namespace OpenRA.Mods.RA
public void GameStarted(World world) public void GameStarted(World world)
{ {
Game.skipMakeAnims = true; // rude hack foreach( var actorReference in world.Map.Actors )
{
foreach (var actorReference in world.Map.Actors) var initDict = actorReference.Value.InitDict;
Actors[actorReference.Key] = world.CreateActor(actorReference.Value.Type, actorReference.Value.InitDict); initDict.Add( new SkipMakeAnimsInit() );
Actors[ actorReference.Key ] = world.CreateActor( actorReference.Value.Type, initDict );
Game.skipMakeAnims = false;
} }
} }
}
public class SkipMakeAnimsInit : IActorInit
{
}
} }