Remove dead space when viewing the observer menu stats.

This commit is contained in:
Paul Chote
2016-03-26 20:29:16 +00:00
committed by Oliver Brakmann
parent 2490e4d67e
commit 10738b0c77
4 changed files with 91 additions and 74 deletions

View File

@@ -25,19 +25,17 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public GameInfoStatsLogic(Widget widget, World world, OrderManager orderManager) public GameInfoStatsLogic(Widget widget, World world, OrderManager orderManager)
{ {
var player = world.RenderPlayer ?? world.LocalPlayer; var player = world.RenderPlayer ?? world.LocalPlayer;
var playerPanel = widget.Get<ScrollPanelWidget>("PLAYER_LIST");
var checkbox = widget.Get<CheckboxWidget>("STATS_CHECKBOX");
var missionLabel = widget.Get<LabelWidget>("MISSION");
var statusLabel = widget.Get<LabelWidget>("STATS_STATUS");
checkbox.IsVisible = () => player != null && !player.NonCombatant;
missionLabel.IsVisible = () => player != null && !player.NonCombatant;
statusLabel.IsVisible = () => player != null && !player.NonCombatant;
if (player != null && !player.NonCombatant) if (player != null && !player.NonCombatant)
{ {
var checkbox = widget.Get<CheckboxWidget>("STATS_CHECKBOX");
var statusLabel = widget.Get<LabelWidget>("STATS_STATUS");
checkbox.IsChecked = () => player.WinState != WinState.Undefined; checkbox.IsChecked = () => player.WinState != WinState.Undefined;
checkbox.GetCheckType = () => player.WinState == WinState.Won ? checkbox.GetCheckType = () => player.WinState == WinState.Won ?
"checked" : "crossed"; "checked" : "crossed";
if (player.HasObjectives) if (player.HasObjectives)
{ {
var mo = player.PlayerActor.Trait<MissionObjectives>(); var mo = player.PlayerActor.Trait<MissionObjectives>();
@@ -49,8 +47,18 @@ namespace OpenRA.Mods.Common.Widgets.Logic
statusLabel.GetColor = () => player.WinState == WinState.Won ? Color.LimeGreen : statusLabel.GetColor = () => player.WinState == WinState.Won ? Color.LimeGreen :
player.WinState == WinState.Lost ? Color.Red : Color.White; player.WinState == WinState.Lost ? Color.Red : Color.White;
} }
else
{
// Expand the stats window to cover the hidden objectives
var objectiveGroup = widget.Get("OBJECTIVE");
var statsHeader = widget.Get("STATS_HEADERS");
objectiveGroup.Visible = false;
statsHeader.Bounds.Y -= objectiveGroup.Bounds.Height;
playerPanel.Bounds.Y -= objectiveGroup.Bounds.Height;
playerPanel.Bounds.Height += objectiveGroup.Bounds.Height;
}
var playerPanel = widget.Get<ScrollPanelWidget>("PLAYER_LIST");
var playerTemplate = playerPanel.Get("PLAYER_TEMPLATE"); var playerTemplate = playerPanel.Get("PLAYER_TEMPLATE");
playerPanel.RemoveChildren(); playerPanel.RemoveChildren();

View File

@@ -3,7 +3,10 @@ Container@SKIRMISH_STATS:
Width: PARENT_RIGHT Width: PARENT_RIGHT
Logic: GameInfoStatsLogic Logic: GameInfoStatsLogic
Children: Children:
Label@STATS_OBJECTIVE: Container@OBJECTIVE:
Height: 75
Children:
Label@MISSION:
X: 15 X: 15
Y: 10 Y: 10
Width: 85 Width: 85

View File

@@ -2,6 +2,9 @@ Container@SKIRMISH_STATS:
Height: PARENT_BOTTOM Height: PARENT_BOTTOM
Width: PARENT_RIGHT Width: PARENT_RIGHT
Logic: GameInfoStatsLogic Logic: GameInfoStatsLogic
Children:
Container@OBJECTIVE:
Height: 75
Children: Children:
Label@MISSION: Label@MISSION:
X: 20 X: 20

View File

@@ -2,6 +2,9 @@ Container@SKIRMISH_STATS:
Height: PARENT_BOTTOM Height: PARENT_BOTTOM
Width: PARENT_RIGHT Width: PARENT_RIGHT
Logic: GameInfoStatsLogic Logic: GameInfoStatsLogic
Children:
Container@OBJECTIVE:
Height: 75
Children: Children:
Label@MISSION: Label@MISSION:
X: 20 X: 20