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;
public static bool skipMakeAnims = true;
public static XRandom CosmeticRandom = new XRandom(); // not synced
public static Renderer Renderer;

View File

@@ -17,20 +17,21 @@ namespace OpenRA.Mods.RA.Render
public class RenderBuildingInfo : RenderSimpleInfo
{
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 RenderBuilding( Actor self )
: this( self, () => 0 )
public RenderBuilding( ActorInitializer init )
: this( init, () => 0 )
{
}
public RenderBuilding(Actor self, Func<int> baseFacing)
: base(self, baseFacing)
public RenderBuilding( ActorInitializer init, Func<int> 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 ) ) );
else
anim.PlayThen( "make", () => self.World.AddFrameEndTask( _ => Complete( self ) ) );
@@ -74,7 +75,7 @@ namespace OpenRA.Mods.RA.Render
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 );
foreach (var s in self.Info.Traits.Get<BuildingInfo>().SellSounds)

View File

@@ -13,14 +13,14 @@ namespace OpenRA.Mods.RA.Render
class RenderBuildingChargeInfo : RenderBuildingInfo
{
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 */
public class RenderBuildingCharge : RenderBuilding
{
public RenderBuildingCharge(Actor self)
: base(self)
public RenderBuildingCharge( ActorInitializer init )
: base(init)
{
}

View File

@@ -14,13 +14,13 @@ namespace OpenRA.Mods.RA.Render
{
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
{
public RenderBuildingOre(Actor self)
: base(self)
public RenderBuildingOre( ActorInitializer init )
: base(init)
{
}

View File

@@ -14,13 +14,13 @@ namespace OpenRA.Mods.RA.Render
{
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
{
public RenderBuildingTurreted(Actor self)
: base(self, () => self.Trait<Turreted>().turretFacing)
public RenderBuildingTurreted( ActorInitializer init )
: base(init, () => init.self.Trait<Turreted>().turretFacing)
{
}

View File

@@ -15,7 +15,7 @@ namespace OpenRA.Mods.RA.Render
{
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
@@ -23,8 +23,8 @@ namespace OpenRA.Mods.RA.Render
string seqName;
int adjacentWalls = 0;
public RenderBuildingWall(Actor self)
: base(self)
public RenderBuildingWall( ActorInitializer init )
: base(init)
{
seqName = "idle";
anim.PlayFetchIndex(seqName, () => adjacentWalls);

View File

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