diff --git a/OpenRa.Game/Controller.cs b/OpenRa.Game/Controller.cs index d4e7573333..02c76f156e 100644 --- a/OpenRa.Game/Controller.cs +++ b/OpenRa.Game/Controller.cs @@ -58,8 +58,11 @@ namespace OpenRa.Game } if (mi.Button == MouseButtons.Right && mi.Event == MouseInputEvent.Down) - if (orderGenerator != null) - orderGenerator.Order(game, new int2((int)xy.X, (int)xy.Y)).Apply(game); + if (orderGenerator != null) + { + var order = orderGenerator.Order(game, new int2((int)xy.X, (int)xy.Y)); + if (order != null) order.Apply(game); + } } public Unit FindUnit(float2 a, float2 b) diff --git a/OpenRa.Game/Graphics/Sequence.cs b/OpenRa.Game/Graphics/Sequence.cs index c9fe749d10..ecce1b57b5 100644 --- a/OpenRa.Game/Graphics/Sequence.cs +++ b/OpenRa.Game/Graphics/Sequence.cs @@ -32,7 +32,7 @@ namespace OpenRa.Game.Graphics public Sprite GetSprite(int frame) { - return UnitSheetBuilder.sprites[frame + start]; + return UnitSheetBuilder.sprites[ ( frame % length ) + start ]; } } } diff --git a/OpenRa.Game/MainWindow.cs b/OpenRa.Game/MainWindow.cs index 5463fb671a..b283c771f9 100644 --- a/OpenRa.Game/MainWindow.cs +++ b/OpenRa.Game/MainWindow.cs @@ -38,24 +38,20 @@ namespace OpenRa.Game bool windowed = !settings.GetValue("fullscreen", false); renderer = new Renderer(this, GetResolution(settings), windowed); - SheetBuilder.Initialize( renderer ); + SheetBuilder.Initialize(renderer); - game = new Game( settings.GetValue( "map", "scm12ea.ini" ), renderer, new int2( ClientSize ) ); + game = new Game(settings.GetValue("map", "scg11eb.ini"), renderer, new int2(ClientSize)); SequenceProvider.ForcePrecache(); - Unit controlled; - - game.world.Add( new Unit( "mcv", new int2( 5, 5 ), game.players[ 3 ], game ) ); - game.world.Add( new Unit( "mcv", new int2( 7, 5 ), game.players[ 2 ], game ) ); - - game.world.Add(controlled = new Unit("mcv", new int2(9, 5), game.players[1], game)); - - game.controller.orderGenerator = controlled; + game.world.Add(new Unit("mcv", new int2(5, 5), game.players[3], game)); + game.world.Add(new Unit("mcv", new int2(7, 5), game.players[2], game)); + game.world.Add(new Unit("mcv", new int2(9, 5), game.players[1], game)); + game.world.Add(new TurretedUnit("jeep", new int2(9, 7), game.players[1], game)); sidebar = new Sidebar(Race.Soviet, renderer, game); - renderer.SetPalette( new HardwarePalette( renderer, game.map ) ); + renderer.SetPalette(new HardwarePalette(renderer, game.map)); } internal void Run() diff --git a/sequences.xml b/sequences.xml index 4068d697f3..0564c14b4c 100644 --- a/sequences.xml +++ b/sequences.xml @@ -13,7 +13,7 @@ also, creates a sequence that includes all frames after `start`. - + one day, we might support inheritance here too. standard sequence names: @@ -108,6 +108,14 @@ + + + + + + + + @@ -132,14 +140,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -148,6 +192,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +