From 9d2f33d42cfa9093e51254fbdfd1c7df72b42070 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 27 Dec 2014 19:00:03 +0100 Subject: [PATCH 1/2] add a World type --- OpenRA.Game/Game.cs | 9 +++++---- OpenRA.Game/Graphics/WorldRenderer.cs | 4 ++-- OpenRA.Game/Network/UnitOrders.cs | 2 +- OpenRA.Game/World.cs | 12 ++++++++---- OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs | 2 +- 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index 0315daef3c..4dad5599d2 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -135,7 +135,7 @@ namespace OpenRA } public static event Action BeforeGameStart = () => { }; - internal static void StartGame(string mapUID, bool isShellmap) + internal static void StartGame(string mapUID, WorldType type) { Cursor.SetCursor(null); BeforeGameStart(); @@ -146,14 +146,15 @@ namespace OpenRA map = ModData.PrepareMap(mapUID); using (new PerfTimer("NewWorld")) { - OrderManager.World = new World(map, OrderManager, isShellmap); + OrderManager.World = new World(map, OrderManager, type); OrderManager.World.Timestep = Timestep; } if (worldRenderer != null) worldRenderer.Dispose(); + worldRenderer = new WorldRenderer(OrderManager.World); - + using (new PerfTimer("LoadComplete")) OrderManager.World.LoadComplete(worldRenderer); @@ -375,7 +376,7 @@ namespace OpenRA var shellmap = ChooseShellmap(); using (new PerfTimer("StartGame")) - StartGame(shellmap, true); + StartGame(shellmap, WorldType.Shellmap); } static string ChooseShellmap() diff --git a/OpenRA.Game/Graphics/WorldRenderer.cs b/OpenRA.Game/Graphics/WorldRenderer.cs index 072adf1635..17408f9fc7 100644 --- a/OpenRA.Game/Graphics/WorldRenderer.cs +++ b/OpenRA.Game/Graphics/WorldRenderer.cs @@ -107,7 +107,7 @@ namespace OpenRA.Graphics { RefreshPalette(); - if (World.IsShellmap && !Game.Settings.Game.ShowShellmap) + if (World.Type == WorldType.Shellmap && !Game.Settings.Game.ShowShellmap) return; var renderables = GenerateRenderables(); @@ -156,7 +156,7 @@ namespace OpenRA.Graphics foreach (var r in g) r.RenderDebugGeometry(this); - if (!World.IsShellmap && Game.Settings.Game.AlwaysShowStatusBars) + if (World.Type == WorldType.Regular && Game.Settings.Game.AlwaysShowStatusBars) { foreach (var g in World.Actors.Where(a => !a.Destroyed && a.HasTrait() diff --git a/OpenRA.Game/Network/UnitOrders.cs b/OpenRA.Game/Network/UnitOrders.cs index 359e59e486..2c9727e6bd 100644 --- a/OpenRA.Game/Network/UnitOrders.cs +++ b/OpenRA.Game/Network/UnitOrders.cs @@ -103,7 +103,7 @@ namespace OpenRA.Network } Game.AddChatLine(Color.White, "Server", "The game has started."); - Game.StartGame(orderManager.LobbyInfo.GlobalSettings.Map, false); + Game.StartGame(orderManager.LobbyInfo.GlobalSettings.Map, WorldType.Regular); break; } diff --git a/OpenRA.Game/World.cs b/OpenRA.Game/World.cs index 73f9b07f77..83fd3e0224 100644 --- a/OpenRA.Game/World.cs +++ b/OpenRA.Game/World.cs @@ -22,6 +22,8 @@ using OpenRA.Traits; namespace OpenRA { + public enum WorldType { Regular, Shellmap } + public class World { static readonly Func FalsePredicate = (u, v) => false; @@ -109,6 +111,8 @@ namespace OpenRA public readonly TileSet TileSet; public readonly ActorMap ActorMap; public readonly ScreenMap ScreenMap; + public readonly WorldType Type; + readonly GameInformation gameInfo; public void IssueOrder(Order o) { OrderManager.IssueOrder(o); } /* avoid exposing the OM to mod code */ @@ -146,9 +150,9 @@ namespace OpenRA } } - internal World(Map map, OrderManager orderManager, bool isShellmap) + internal World(Map map, OrderManager orderManager, WorldType type) { - IsShellmap = isShellmap; + Type = type; OrderManager = orderManager; orderGenerator = new UnitOrderGenerator(); Map = map; @@ -242,7 +246,7 @@ namespace OpenRA public bool Paused { get; internal set; } public bool PredictedPaused { get; internal set; } public bool PauseStateLocked { get; set; } - public bool IsShellmap = false; + public int WorldTick { get; private set; } public void SetPauseState(bool paused) @@ -261,7 +265,7 @@ namespace OpenRA public void Tick() { - if (!Paused && (!IsShellmap || Game.Settings.Game.ShowShellmap)) + if (!Paused && (Type != WorldType.Shellmap || Game.Settings.Game.ShowShellmap)) { WorldTick++; diff --git a/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs index e73115be0e..bb7ee73634 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/MusicPlayerLogic.cs @@ -84,7 +84,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic var installButton = widget.GetOrNull("INSTALL_BUTTON"); if (installButton != null) { - installButton.IsDisabled = () => world == null || !world.IsShellmap; + installButton.IsDisabled = () => world == null || world.Type != WorldType.Shellmap; var args = new string[] { "Install.Music=true" }; installButton.OnClick = () => { From d4d55bb6dcfcd1c35ec655b0d86b2a9515a97866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 27 Dec 2014 18:53:52 +0100 Subject: [PATCH 2/2] modularize the remaining legacy ingame interface widgets and consolidate chrome root initialization --- .../Traits/World/LoadWidgetAtGameStart.cs | 14 +- .../LoadIngamePlayerOrObserverUILogic.cs | 1 - OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj | 2 +- .../Widgets/Logic/IngameChromeLogic.cs | 122 ------------------ .../Widgets/Logic/SlidingRadarBinLogic.cs | 60 +++++++++ mods/cnc/maps/shellmap/map.yaml | 2 - mods/cnc/rules/world.yaml | 2 +- mods/d2k/chrome.yaml | 8 +- mods/d2k/chrome/ingame-player.yaml | 3 + mods/d2k/chrome/ingame.yaml | 2 +- mods/d2k/maps/shellmap/map.yaml | 2 - mods/d2k/rules/world.yaml | 1 - mods/ra/maps/desert-shellmap/map.yaml | 2 - mods/ra/rules/world.yaml | 1 - mods/ts/chrome.yaml | 5 +- mods/ts/chrome/ingame-player.yaml | 3 + mods/ts/chrome/ingame.yaml | 2 +- mods/ts/maps/blank-shellmap/map.yaml | 1 - mods/ts/rules/world.yaml | 1 - 19 files changed, 84 insertions(+), 150 deletions(-) delete mode 100644 OpenRA.Mods.D2k/Widgets/Logic/IngameChromeLogic.cs create mode 100644 OpenRA.Mods.D2k/Widgets/Logic/SlidingRadarBinLogic.cs diff --git a/OpenRA.Mods.Common/Traits/World/LoadWidgetAtGameStart.cs b/OpenRA.Mods.Common/Traits/World/LoadWidgetAtGameStart.cs index 0112471355..fc0cae3c01 100644 --- a/OpenRA.Mods.Common/Traits/World/LoadWidgetAtGameStart.cs +++ b/OpenRA.Mods.Common/Traits/World/LoadWidgetAtGameStart.cs @@ -9,6 +9,7 @@ #endregion using OpenRA.Graphics; +using OpenRA.Mods.Common.Widgets; using OpenRA.Traits; using OpenRA.Widgets; @@ -16,14 +17,22 @@ namespace OpenRA.Mods.Common.Traits { public class LoadWidgetAtGameStartInfo : ITraitInfo { - public readonly string Widget = null; + [Desc("The widget tree to open when a shellmap is loaded (i.e. the main menu).")] + public readonly string ShellmapRoot = "MAINMENU"; + + [Desc("The widget tree to open when a regular map is loaded (i.e. the ingame UI).")] + public readonly string IngameRoot = "INGAME_ROOT"; + + [Desc("Remove any existing UI when a map is loaded.")] public readonly bool ClearRoot = true; + public object Create(ActorInitializer init) { return new LoadWidgetAtGameStart(this); } } public class LoadWidgetAtGameStart : IWorldLoaded { readonly LoadWidgetAtGameStartInfo info; + public LoadWidgetAtGameStart(LoadWidgetAtGameStartInfo info) { this.info = info; @@ -35,7 +44,8 @@ namespace OpenRA.Mods.Common.Traits if (info.ClearRoot) Ui.ResetAll(); - Game.LoadWidget(world, info.Widget, Ui.Root, new WidgetArgs()); + var widget = world.Type == WorldType.Shellmap ? info.ShellmapRoot : info.IngameRoot; + Game.LoadWidget(world, widget, Ui.Root, new WidgetArgs()); } } } \ No newline at end of file diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs index 1e8fc96a07..da900fb03f 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs @@ -8,7 +8,6 @@ */ #endregion -using System; using OpenRA.Widgets; namespace OpenRA.Mods.Common.Widgets.Logic diff --git a/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj b/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj index efaee4287b..cb51a2f0a2 100644 --- a/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj +++ b/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj @@ -92,11 +92,11 @@ - + diff --git a/OpenRA.Mods.D2k/Widgets/Logic/IngameChromeLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/IngameChromeLogic.cs deleted file mode 100644 index aa64a72e42..0000000000 --- a/OpenRA.Mods.D2k/Widgets/Logic/IngameChromeLogic.cs +++ /dev/null @@ -1,122 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2014 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System; -using System.Drawing; -using System.Linq; -using OpenRA.Mods.Common.Traits; -using OpenRA.Mods.Common.Widgets; -using OpenRA.Mods.D2k.Widgets; -using OpenRA.Mods.RA; -using OpenRA.Mods.RA.Widgets; -using OpenRA.Mods.RA.Widgets.Logic; -using OpenRA.Traits; -using OpenRA.Widgets; - -namespace OpenRA.Mods.D2k.Widgets.Logic -{ - public class IngameChromeLogic - { - readonly Widget ingameRoot; - readonly Widget worldRoot; - readonly Widget menuRoot; - readonly Widget playerRoot; - readonly World world; - - [ObjectCreator.UseCtor] - public IngameChromeLogic(World world) - { - this.world = world; - ingameRoot = Ui.Root.Get("INGAME_ROOT"); - worldRoot = ingameRoot.Get("WORLD_ROOT"); - menuRoot = ingameRoot.Get("MENU_ROOT"); - playerRoot = worldRoot.Get("PLAYER_ROOT"); - - InitRootWidgets(); - if (world.LocalPlayer == null) - InitObserverWidgets(); - else - InitPlayerWidgets(); - } - - void InitRootWidgets() - { - Game.LoadWidget(world, "CHAT_PANEL", worldRoot, new WidgetArgs()); - - world.GameOver += () => - { - worldRoot.RemoveChildren(); - menuRoot.RemoveChildren(); - Game.LoadWidget(world, "LEAVE_MAP_WIDGET", menuRoot, new WidgetArgs()); - }; - } - - void InitObserverWidgets() - { - Game.LoadWidget(world, "OBSERVER_WIDGETS", playerRoot, new WidgetArgs()); - } - - enum RadarBinState { Closed, BinAnimating, RadarAnimating, Open } - void InitPlayerWidgets() - { - var playerWidgets = Game.LoadWidget(world, "PLAYER_WIDGETS", playerRoot, new WidgetArgs()); - - var radarActive = false; - var binState = RadarBinState.Closed; - var radarBin = playerWidgets.Get("INGAME_RADAR_BIN"); - radarBin.IsOpen = () => radarActive || binState > RadarBinState.BinAnimating; - radarBin.AfterOpen = () => binState = RadarBinState.RadarAnimating; - radarBin.AfterClose = () => binState = RadarBinState.Closed; - - var radarMap = radarBin.Get("RADAR_MINIMAP"); - radarMap.IsEnabled = () => radarActive && binState >= RadarBinState.RadarAnimating; - radarMap.AfterOpen = () => binState = RadarBinState.Open; - radarMap.AfterClose = () => binState = RadarBinState.BinAnimating; - - radarBin.Get("RADAR_BIN_BG").GetImageCollection = () => "chrome-" + world.LocalPlayer.Country.Race; - - var powerManager = world.LocalPlayer.PlayerActor.Trait(); - var powerBar = radarBin.Get("POWERBAR"); - powerBar.IndicatorCollection = "power-" + world.LocalPlayer.Country.Race; - powerBar.GetProvided = () => powerManager.PowerProvided; - powerBar.GetUsed = () => powerManager.PowerDrained; - powerBar.TooltipFormat = "Power Usage: {0}/{1}"; - powerBar.GetBarColor = () => - { - if (powerManager.PowerState == PowerState.Critical) - return Color.Red; - if (powerManager.PowerState == PowerState.Low) - return Color.Orange; - return Color.LimeGreen; - }; - - var cachedRadarActive = false; - var sidebarTicker = playerWidgets.Get("SIDEBAR_TICKER"); - sidebarTicker.OnTick = () => - { - // Update radar bin - radarActive = world.ActorsWithTrait() - .Any(a => a.Actor.Owner == world.LocalPlayer && a.Trait.IsActive); - - if (radarActive != cachedRadarActive) - Sound.PlayNotification(world.Map.Rules, null, "Sounds", radarActive ? "RadarUp" : "RadarDown", null); - cachedRadarActive = radarActive; - - // Switch to observer mode after win/loss - if (world.ObserveAfterWinOrLose && world.LocalPlayer.WinState != WinState.Undefined) - Game.RunAfterTick(() => - { - playerRoot.RemoveChildren(); - InitObserverWidgets(); - }); - }; - } - } -} diff --git a/OpenRA.Mods.D2k/Widgets/Logic/SlidingRadarBinLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/SlidingRadarBinLogic.cs new file mode 100644 index 0000000000..ecc8758bdc --- /dev/null +++ b/OpenRA.Mods.D2k/Widgets/Logic/SlidingRadarBinLogic.cs @@ -0,0 +1,60 @@ +#region Copyright & License Information +/* + * Copyright 2007-2014 The OpenRA Developers (see AUTHORS) + * This file is part of OpenRA, which is free software. It is made + * available to you under the terms of the GNU General Public License + * as published by the Free Software Foundation. For more information, + * see COPYING. + */ +#endregion + +using System; +using System.Drawing; +using System.Linq; +using OpenRA.Mods.Common.Traits; +using OpenRA.Mods.Common.Widgets; +using OpenRA.Mods.D2k.Widgets; +using OpenRA.Mods.RA; +using OpenRA.Mods.RA.Widgets; +using OpenRA.Mods.RA.Widgets.Logic; +using OpenRA.Traits; +using OpenRA.Widgets; + +namespace OpenRA.Mods.D2k.Widgets.Logic +{ + public class SlidingRadarBinLogic + { + enum RadarBinState { Closed, BinAnimating, RadarAnimating, Open } + + [ObjectCreator.UseCtor] + public SlidingRadarBinLogic(Widget widget, World world) + { + var radarActive = false; + var binState = RadarBinState.Closed; + var radarBin = widget.Get("INGAME_RADAR_BIN"); + radarBin.IsOpen = () => radarActive || binState > RadarBinState.BinAnimating; + radarBin.AfterOpen = () => binState = RadarBinState.RadarAnimating; + radarBin.AfterClose = () => binState = RadarBinState.Closed; + + var radarMap = radarBin.Get("RADAR_MINIMAP"); + radarMap.IsEnabled = () => radarActive && binState >= RadarBinState.RadarAnimating; + radarMap.AfterOpen = () => binState = RadarBinState.Open; + radarMap.AfterClose = () => binState = RadarBinState.BinAnimating; + + radarBin.Get("RADAR_BIN_BG").GetImageCollection = () => "chrome-" + world.LocalPlayer.Country.Race; + + var cachedRadarActive = false; + var radarTicker = widget.Get("RADAR_TICKER"); + radarTicker.OnTick = () => + { + // Update radar bin + radarActive = world.ActorsWithTrait() + .Any(a => a.Actor.Owner == world.LocalPlayer && a.Trait.IsActive); + + if (radarActive != cachedRadarActive) + Sound.PlayNotification(world.Map.Rules, null, "Sounds", radarActive ? "RadarUp" : "RadarDown", null); + cachedRadarActive = radarActive; + }; + } + } +} diff --git a/mods/cnc/maps/shellmap/map.yaml b/mods/cnc/maps/shellmap/map.yaml index 74fec2a1ef..01e992d66c 100644 --- a/mods/cnc/maps/shellmap/map.yaml +++ b/mods/cnc/maps/shellmap/map.yaml @@ -997,8 +997,6 @@ Rules: Loop: true LuaScript: Scripts: shellmap.lua - LoadWidgetAtGameStart: - Widget: MENU_BACKGROUND LST: Mobile: Speed: 42 diff --git a/mods/cnc/rules/world.yaml b/mods/cnc/rules/world.yaml index a26240673b..7b9aabb8f4 100644 --- a/mods/cnc/rules/world.yaml +++ b/mods/cnc/rules/world.yaml @@ -6,7 +6,7 @@ World: ScreenMap: ActorMap: LoadWidgetAtGameStart: - Widget: INGAME_ROOT + ShellmapRoot: MENU_BACKGROUND MenuPaletteEffect: MenuEffect: Desaturated CloakPaletteEffect: diff --git a/mods/d2k/chrome.yaml b/mods/d2k/chrome.yaml index 93421d2a01..a3274fce3b 100644 --- a/mods/d2k/chrome.yaml +++ b/mods/d2k/chrome.yaml @@ -6,7 +6,7 @@ chrome-atreides: chrome-atreides.png radar: 297,31,210,222 tooltip-bg: 0,288,272,136 -power-atreides: chrome-atreides.png +sidebar-bits: chrome-atreides.png power-indicator: 187,4,4,7 palette-atreides: chrome-atreides.png @@ -43,9 +43,6 @@ chrome-harkonnen: chrome-harkonnen.png radar: 297,31,210,222 tooltip-bg: 0,288,272,136 -power-harkonnen: chrome-harkonnen.png - power-indicator: 187,4,4,7 - palette-harkonnen: chrome-harkonnen.png top: 297,288,201,9 dock-top: 498,274,14,23 @@ -80,9 +77,6 @@ chrome-ordos: chrome-ordos.png radar: 297,31,210,222 tooltip-bg: 0,288,272,136 -power-ordos: chrome-ordos.png - power-indicator: 187,4,4,7 - palette-ordos: chrome-ordos.png top: 297,288,201,9 dock-top: 498,274,14,23 diff --git a/mods/d2k/chrome/ingame-player.yaml b/mods/d2k/chrome/ingame-player.yaml index 608e3ff541..4ecbb6598b 100644 --- a/mods/d2k/chrome/ingame-player.yaml +++ b/mods/d2k/chrome/ingame-player.yaml @@ -34,12 +34,14 @@ Container@PLAYER_WIDGETS: Font: Bold Key: escape Shift SlidingContainer@INGAME_RADAR_BIN: + Logic: SlidingRadarBinLogic X: WINDOW_RIGHT-215 Y: 0 OpenOffset: 0,29 ClosedOffset: 0,-166 AnimationLength: 15 Children: + LogicTicker@RADAR_TICKER: Image@RADAR_BIN_BG: ImageName: radar Radar@RADAR_MINIMAP: @@ -48,6 +50,7 @@ Container@PLAYER_WIDGETS: Width: 192 Height: 192 ResourceBar@POWERBAR: + Logic: IngamePowerBarLogic X: 42 Y: 205 Width: 138 diff --git a/mods/d2k/chrome/ingame.yaml b/mods/d2k/chrome/ingame.yaml index 56ac6acc44..92823c536f 100644 --- a/mods/d2k/chrome/ingame.yaml +++ b/mods/d2k/chrome/ingame.yaml @@ -1,5 +1,5 @@ Container@INGAME_ROOT: - Logic: IngameChromeLogic + Logic: LoadIngamePlayerOrObserverUILogic Children: Container@WORLD_ROOT: Children: diff --git a/mods/d2k/maps/shellmap/map.yaml b/mods/d2k/maps/shellmap/map.yaml index a5d7c55b1d..031f4040c7 100644 --- a/mods/d2k/maps/shellmap/map.yaml +++ b/mods/d2k/maps/shellmap/map.yaml @@ -116,8 +116,6 @@ Smudges: Rules: World: - LoadWidgetAtGameStart: - Widget: MAINMENU -CrateSpawner: -SpawnMPUnits: -MPStartLocations: diff --git a/mods/d2k/rules/world.yaml b/mods/d2k/rules/world.yaml index 3a16fa2556..78827c2ef4 100644 --- a/mods/d2k/rules/world.yaml +++ b/mods/d2k/rules/world.yaml @@ -6,7 +6,6 @@ World: ScreenMap: ActorMap: LoadWidgetAtGameStart: - Widget: INGAME_ROOT ScreenShaker: BuildingInfluence: ChooseBuildTabOnSelect: diff --git a/mods/ra/maps/desert-shellmap/map.yaml b/mods/ra/maps/desert-shellmap/map.yaml index 712a4b131a..6692772afd 100644 --- a/mods/ra/maps/desert-shellmap/map.yaml +++ b/mods/ra/maps/desert-shellmap/map.yaml @@ -1274,8 +1274,6 @@ Rules: ValuePerUnit: 0 LuaScript: Scripts: desert-shellmap.lua - LoadWidgetAtGameStart: - Widget: MAINMENU -StartGameNotification: OILB: CashTrickler: diff --git a/mods/ra/rules/world.yaml b/mods/ra/rules/world.yaml index 3d9681f316..8cffc74687 100644 --- a/mods/ra/rules/world.yaml +++ b/mods/ra/rules/world.yaml @@ -6,7 +6,6 @@ World: ScreenMap: ActorMap: LoadWidgetAtGameStart: - Widget: INGAME_ROOT ScreenShaker: MenuPaletteEffect: WaterPaletteRotation: diff --git a/mods/ts/chrome.yaml b/mods/ts/chrome.yaml index b8551e74da..90e8d08e2c 100644 --- a/mods/ts/chrome.yaml +++ b/mods/ts/chrome.yaml @@ -6,7 +6,7 @@ chrome-gdi: chrome-gdi.png tooltip-bg: 0,288,272,136 radar: 297,31,210,222 -power-gdi: chrome-gdi.png +sidebar-bits: chrome-gdi.png power-indicator: 187,4,4,7 palette-gdi: chrome-gdi.png @@ -43,9 +43,6 @@ chrome-nod: chrome-nod.png tooltip-bg: 0,288,272,136 radar: 297,31,210,222 -power-nod: chrome-nod.png - power-indicator: 187,4,4,7 - palette-nod: chrome-nod.png top: 297,288,201,9 dock-top: 498,274,14,23 diff --git a/mods/ts/chrome/ingame-player.yaml b/mods/ts/chrome/ingame-player.yaml index 9a9cba3a0c..5ad92d9205 100644 --- a/mods/ts/chrome/ingame-player.yaml +++ b/mods/ts/chrome/ingame-player.yaml @@ -36,12 +36,14 @@ Container@PLAYER_WIDGETS: Font: Bold Key: escape Shift SlidingContainer@INGAME_RADAR_BIN: + Logic: SlidingRadarBinLogic X: WINDOW_RIGHT-215 Y: 0 OpenOffset: 0,29 ClosedOffset: 0,-166 AnimationLength: 15 Children: + LogicTicker@RADAR_TICKER: Image@RADAR_BIN_BG: ImageName: radar Radar@RADAR_MINIMAP: @@ -50,6 +52,7 @@ Container@PLAYER_WIDGETS: Width: 192 Height: 192 ResourceBar@POWERBAR: + Logic: IngamePowerBarLogic X: 42 Y: 205 Width: 138 diff --git a/mods/ts/chrome/ingame.yaml b/mods/ts/chrome/ingame.yaml index a547fccddf..76899d4801 100644 --- a/mods/ts/chrome/ingame.yaml +++ b/mods/ts/chrome/ingame.yaml @@ -1,5 +1,5 @@ Container@INGAME_ROOT: - Logic: IngameChromeLogic + Logic: LoadIngamePlayerOrObserverUILogic Children: Container@WORLD_ROOT: Children: diff --git a/mods/ts/maps/blank-shellmap/map.yaml b/mods/ts/maps/blank-shellmap/map.yaml index 94ed7f7e74..e2771579c1 100644 --- a/mods/ts/maps/blank-shellmap/map.yaml +++ b/mods/ts/maps/blank-shellmap/map.yaml @@ -41,7 +41,6 @@ Rules: -SpawnMPUnits: -MPStartLocations: LoadWidgetAtGameStart: - Widget: MAINMENU Sequences: diff --git a/mods/ts/rules/world.yaml b/mods/ts/rules/world.yaml index 7064ed2afe..82ce3da423 100644 --- a/mods/ts/rules/world.yaml +++ b/mods/ts/rules/world.yaml @@ -6,7 +6,6 @@ World: ScreenMap: ActorMap: LoadWidgetAtGameStart: - Widget: INGAME_ROOT MenuPaletteEffect: BuildingInfluence: ChooseBuildTabOnSelect: