diff --git a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs index 9a53a0842e..04b7f5f4ab 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs @@ -751,7 +751,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic } else { - LobbyUtils.SetupNameWidget(template, client, orderManager, worldRenderer); + LobbyUtils.SetupNameWidget(template, client, orderManager, worldRenderer, map); LobbyUtils.SetupTeamWidget(template, client); LobbyUtils.SetupHandicapWidget(template, client); LobbyUtils.SetupSpawnWidget(template, client); @@ -803,7 +803,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic LobbyUtils.SetupPlayerActionWidget(template, client, orderManager, worldRenderer, lobby, () => panel = PanelType.Kick, () => panel = PanelType.Players); else - LobbyUtils.SetupNameWidget(template, client, orderManager, worldRenderer); + LobbyUtils.SetupNameWidget(template, client, orderManager, worldRenderer, map); if (client.IsAdmin) LobbyUtils.SetupReadyWidget(template, client); diff --git a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyUtils.cs b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyUtils.cs index fa642e4aa0..a1213d08d2 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyUtils.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyUtils.cs @@ -425,14 +425,16 @@ namespace OpenRA.Mods.Common.Widgets.Logic HideChildWidget(parent, "SLOT_OPTIONS"); } - public static void SetupNameWidget(Widget parent, Session.Client c, OrderManager orderManager, WorldRenderer worldRenderer) + public static void SetupNameWidget(Widget parent, Session.Client c, OrderManager orderManager, WorldRenderer worldRenderer, MapPreview map) { var label = parent.Get("NAME"); label.IsVisible = () => true; var font = Game.Renderer.Fonts[label.Font]; - var name = c.IsBot ? FluentProvider.GetMessage(c.Name) : c.Name; - var text = WidgetUtils.TruncateText(name, label.Bounds.Width, font); - label.GetText = () => text; + + var clientName = new CachedTransform(s => + WidgetUtils.TruncateText(c.IsBot ? map.GetMessage(c.Name) : c.Name, label.Bounds.Width, font)); + + label.GetText = () => clientName.Update(map.Status); SetupProfileWidget(parent, c, orderManager, worldRenderer); } @@ -450,9 +452,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic var closed = FluentProvider.GetMessage(Closed); var open = FluentProvider.GetMessage(Open); + + var clientName = new CachedTransform(s => c.IsBot ? map.GetMessage(c.Name) : c.Name); slot.GetText = () => truncated.Update(c != null ? - c.IsBot ? map.GetMessage(c.Name) : c.Name - : s.Closed ? closed : open); + clientName.Update(map.Status) + : s.Closed ? closed : open); slot.OnMouseDown = _ => ShowSlotDropDown(slot, s, c, orderManager, map, modData);