diff --git a/OpenRA.Game/Graphics/Renderer.cs b/OpenRA.Game/Graphics/Renderer.cs index 5a3c6fd7e0..8b51267a60 100644 --- a/OpenRA.Game/Graphics/Renderer.cs +++ b/OpenRA.Game/Graphics/Renderer.cs @@ -42,6 +42,9 @@ namespace OpenRA.Graphics Queue> tempBuffersV = new Queue>(); + public enum FontType { Regular, Bold, Title, Tiny, TinyBold, BigBold } + public Dictionary Fonts; + public Renderer() { SpriteShader = device.CreateShader("world-shp"); @@ -61,6 +64,16 @@ namespace OpenRA.Graphics TinyFont = new SpriteFont("FreeSans.ttf", 10); TinyBoldFont = new SpriteFont("FreeSansBold.ttf", 10); + Fonts = new Dictionary() + { + {FontType.Regular, RegularFont}, + {FontType.Bold, BoldFont}, + {FontType.Title, TitleFont}, + {FontType.Tiny, TinyFont}, + {FontType.TinyBold, TinyBoldFont}, + {FontType.BigBold, BigBoldFont} + }; + for( int i = 0 ; i < TempBufferCount ; i++ ) tempBuffersV.Enqueue( device.CreateVertexBuffer( TempBufferSize ) ); } diff --git a/OpenRA.Game/Widgets/LabelWidget.cs b/OpenRA.Game/Widgets/LabelWidget.cs index 51b211cf82..68c05eec2e 100644 --- a/OpenRA.Game/Widgets/LabelWidget.cs +++ b/OpenRA.Game/Widgets/LabelWidget.cs @@ -19,12 +19,11 @@ namespace OpenRA.Widgets { public enum TextAlign { Left, Center, Right } public enum TextVAlign { Top, Middle, Bottom } - public enum LabelFont { Regular, Bold, Title, Tiny, TinyBold, BigBold } public string Text = null; public string Background = null; public TextAlign Align = TextAlign.Left; public TextVAlign VAlign = TextVAlign.Middle; - public LabelFont Font = LabelFont.Regular; + public Renderer.FontType Font = Renderer.FontType.Regular; public Color Color = Color.White; public bool Bold = false; // Legacy flag. TODO: Remove public bool Contrast = false; @@ -62,29 +61,10 @@ namespace OpenRA.Widgets if (bg != null) WidgetUtils.DrawPanel(bg, RenderBounds ); - if (Font == LabelFont.Regular && Bold) - Font = LabelFont.Bold; + if (Font == Renderer.FontType.Regular && Bold) + Font = Renderer.FontType.Bold; - // TODO: Hardcoded font types are stupid - SpriteFont font = Game.Renderer.RegularFont; - switch (Font) - { - case LabelFont.Bold: - font = Game.Renderer.BoldFont; - break; - case LabelFont.Tiny: - font = Game.Renderer.TinyFont; - break; - case LabelFont.TinyBold: - font = Game.Renderer.TinyBoldFont; - break; - case LabelFont.Title: - font = Game.Renderer.TitleFont; - break; - case LabelFont.BigBold: - font = Game.Renderer.BigBoldFont; - break; - } + SpriteFont font = Game.Renderer.Fonts[Font]; var text = GetText(); if (text == null) return;