From 62ffe4aeafb6459ffe4225d888e9c8cb84a0d9a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Thu, 5 Dec 2013 22:48:37 +0100 Subject: [PATCH 1/5] StyleCop --- OpenRA.Game/GameRules/Settings.cs | 44 +++++++++++++++---------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/OpenRA.Game/GameRules/Settings.cs b/OpenRA.Game/GameRules/Settings.cs index 682dbbb76b..644154e195 100644 --- a/OpenRA.Game/GameRules/Settings.cs +++ b/OpenRA.Game/GameRules/Settings.cs @@ -85,7 +85,7 @@ namespace OpenRA.GameRules { public string Renderer = "Gl"; public WindowMode Mode = WindowMode.PseudoFullscreen; - public int2 FullscreenSize = new int2(0,0); + public int2 FullscreenSize = new int2(0, 0); public int2 WindowedSize = new int2(1024, 768); public bool PixelDouble = false; public bool CapFramerate = true; @@ -187,7 +187,7 @@ namespace OpenRA.GameRules public class Settings { - string SettingsFile; + string settingsFile; public PlayerSettings Player = new PlayerSettings(); public GameSettings Game = new GameSettings(); @@ -202,31 +202,31 @@ namespace OpenRA.GameRules public Settings(string file, Arguments args) { - SettingsFile = file; + settingsFile = file; Sections = new Dictionary() { - {"Player", Player}, - {"Game", Game}, - {"Sound", Sound}, - {"Graphics", Graphics}, - {"Server", Server}, - {"Debug", Debug}, - {"Keys", Keys}, - {"Irc", Irc} + { "Player", Player }, + { "Game", Game }, + { "Sound", Sound }, + { "Graphics", Graphics }, + { "Server", Server }, + { "Debug", Debug }, + { "Keys", Keys }, + { "Irc", Irc } }; // Override fieldloader to ignore invalid entries var err1 = FieldLoader.UnknownFieldAction; var err2 = FieldLoader.InvalidValueAction; - FieldLoader.UnknownFieldAction = (s,f) => + FieldLoader.UnknownFieldAction = (s, f) => { - Console.WriteLine( "Ignoring unknown field `{0}` on `{1}`".F( s, f.Name ) ); + Console.WriteLine("Ignoring unknown field `{0}` on `{1}`".F(s, f.Name)); }; - if (File.Exists(SettingsFile)) + if (File.Exists(settingsFile)) { - var yaml = MiniYaml.DictFromFile(SettingsFile); + var yaml = MiniYaml.DictFromFile(settingsFile); foreach (var kv in Sections) if (yaml.ContainsKey(kv.Key)) @@ -236,8 +236,8 @@ namespace OpenRA.GameRules // Override with commandline args foreach (var kv in Sections) foreach (var f in kv.Value.GetType().GetFields()) - if (args.Contains(kv.Key+"."+f.Name)) - FieldLoader.LoadField( kv.Value, f.Name, args.GetValue(kv.Key+"."+f.Name, "") ); + if (args.Contains(kv.Key + "." + f.Name)) + FieldLoader.LoadField(kv.Value, f.Name, args.GetValue(kv.Key + "." + f.Name, "")); FieldLoader.UnknownFieldAction = err1; FieldLoader.InvalidValueAction = err2; @@ -246,19 +246,19 @@ namespace OpenRA.GameRules public void Save() { var root = new List(); - foreach( var kv in Sections ) - root.Add( new MiniYamlNode( kv.Key, FieldSaver.SaveDifferences(kv.Value, Activator.CreateInstance(kv.Value.GetType())) ) ); + foreach (var kv in Sections) + root.Add(new MiniYamlNode(kv.Key, FieldSaver.SaveDifferences(kv.Value, Activator.CreateInstance(kv.Value.GetType())))); - root.WriteToFile(SettingsFile); + root.WriteToFile(settingsFile); } void LoadSectionYaml(MiniYaml yaml, object section) { var defaults = Activator.CreateInstance(section.GetType()); - FieldLoader.InvalidValueAction = (s,t,f) => + FieldLoader.InvalidValueAction = (s, t, f) => { var ret = defaults.GetType().GetField(f).GetValue(defaults); - Console.WriteLine("FieldLoader: Cannot parse `{0}` into `{2}:{1}`; substituting default `{3}`".F(s,t.Name,f,ret) ); + Console.WriteLine("FieldLoader: Cannot parse `{0}` into `{2}:{1}`; substituting default `{3}`".F(s, t.Name, f, ret)); return ret; }; From 3bf385b485252f275cfe999c899b93419110b8b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Thu, 5 Dec 2013 23:01:27 +0100 Subject: [PATCH 2/5] added a new Launch.Replay=$FilePath parameter that does not persist in settings.yaml --- OpenRA.Game/Game.cs | 6 ++++-- OpenRA.Mods.RA/Widgets/Logic/ModBrowserLogic.cs | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index 7b2ee2870e..83b37ed116 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -318,13 +318,13 @@ namespace OpenRA foreach (var mod in Mod.AllMods) Console.WriteLine("\t{0}: {1} ({2})", mod.Key, mod.Value.Title, mod.Value.Version); - InitializeWithMod(Settings.Game.Mod); + InitializeWithMod(Settings.Game.Mod, args.GetValue("Launch.Replay", null)); if (Settings.Server.DiscoverNatDevices) RunAfterDelay(Settings.Server.NatDiscoveryTimeout, UPnP.TryStoppingNatDiscovery); } - public static void InitializeWithMod(string mod) + public static void InitializeWithMod(string mod, string replay) { // Clear static state if we have switched mods LobbyInfoChanged = () => { }; @@ -396,6 +396,8 @@ namespace OpenRA { modData.LoadScreen.StartGame(); Settings.Save(); + if (!string.IsNullOrEmpty(replay)) + Game.JoinReplay(replay); } } diff --git a/OpenRA.Mods.RA/Widgets/Logic/ModBrowserLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/ModBrowserLogic.cs index fb6d96927d..ac8fe155db 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/ModBrowserLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/ModBrowserLogic.cs @@ -51,7 +51,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic { Ui.CloseWindow(); onSwitch(); - Game.InitializeWithMod(mod); + Game.InitializeWithMod(mod, null); }); } } From 10cf992265fdc9cbd788da2d1ff6df4631de0363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 4 Jan 2014 09:20:06 +0100 Subject: [PATCH 3/5] update CHANGELOG --- CHANGELOG | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG b/CHANGELOG index 3e488ef2d5..e8aa0085b7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -16,6 +16,7 @@ NEW: Added initial support for Tmp(TS) sprites. Added GainsUnitUpgrades trait for leveling specific unit upgrades - firepower, armor, speed. Added support for crates to level up specific unit upgrades. + Added a new Launch.Replay=$FILEPATH parameter for OpenRA.Game.exe to instantly start watching a *.rep file. Asset Browser: Filenames are now listed in alphabetical order Map Editor: From c2df142df4245f27c6f4879253f1b916af37b7e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Fri, 6 Dec 2013 13:57:31 +0100 Subject: [PATCH 4/5] don't hardcode the default mod here --- OpenRA.Game/Game.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index 83b37ed116..a4c66b63ac 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -339,9 +339,9 @@ namespace OpenRA if (orderManager != null) orderManager.Dispose(); - // Fall back to RA if the mod doesn't exist + // Fall back to default if the mod doesn't exist if (!Mod.AllMods.ContainsKey(mod)) - mod = "ra"; + mod = new GameSettings().Mod; Console.WriteLine("Loading mod: {0}", mod); Settings.Game.Mod = mod; From fc5185d552fccf063bbac73acd920adcc885a604 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Fri, 27 Dec 2013 14:09:58 +0100 Subject: [PATCH 5/5] added a bash script to test open-with on .rep files --- launch-replay.sh | 3 +++ 1 file changed, 3 insertions(+) create mode 100755 launch-replay.sh diff --git a/launch-replay.sh b/launch-replay.sh new file mode 100755 index 0000000000..2190b61bb6 --- /dev/null +++ b/launch-replay.sh @@ -0,0 +1,3 @@ +#!/bin/bash +cd ${0%/*} +exec mono OpenRA.Game.exe Launch.Replay="$@" \ No newline at end of file