Example #1
0
 public static void CreateBuffers <T>(RTSRenderer renderer, T[] verts, VertexDeclaration vd, short[] inds, out VertexBuffer vb, out IndexBuffer ib, BufferUsage bu = BufferUsage.WriteOnly) where T : struct, IVertexType
 {
     vb = renderer.CreateVertexBuffer(vd, verts.Length, bu);
     vb.SetData(verts);
     ib = renderer.CreateIndexBuffer(IndexElementSize.SixteenBits, inds.Length, bu);
     ib.SetData(inds);
 }
Example #2
0
        public override void OnEntry(GameTime gameTime)
        {
            DevConsole.OnNewCommand += DevConsole_OnNewCommand;
            KeyboardEventDispatcher.OnKeyPressed += KeyboardEventDispatcher_OnKeyPressed;
            input.Refresh();
            sP.Hook();
            sS.Hook();
            sT.Hook();
            RendererInitArgs ria = ZXParser.ParseFile(@"Content\FX\RIA.txt", typeof(RendererInitArgs)) as RendererInitArgs;

            renderer = new RTSRenderer(game.Graphics, game.Content, ria, game.Window);

            // Rendering Effect
            fx = new RTSFXEntity(renderer.LoadEffect(FX_FILE_PATH));

            // Default Team
            sP.Color         = RTSColorScheme.Default.Primary;
            sS.Color         = RTSColorScheme.Default.Secondary;
            sT.Color         = RTSColorScheme.Default.Tertiary;
            colorScheme.Name = RTSColorScheme.Default.Name;

            // Create Camera
            camera       = new OrbitingCamera(Vector3.Zero, 4f, G.Viewport.AspectRatio);
            camera.Pitch = MathHelper.PiOver4;
            camera.Yaw   = 0;
            camera.FOV   = MathHelper.PiOver4;

            unitDataFiles = new List <FileInfo>();
            schemeFiles   = new List <FileInfo>();

            FindAllData();
            curUnit = 0;
        }
Example #3
0
 public void Build(RTSRenderer renderer, string rootPath, string model, string[] tex)
 {
     using (var sModel = File.OpenRead(Path.Combine(rootPath, model))) {
         View = new RTSBuildingModel(renderer, sModel);
     }
     View.ModelTexture     = renderer.LoadTexture2D(Path.Combine(rootPath, tex[0]));
     View.ColorCodeTexture = renderer.LoadTexture2D(Path.Combine(rootPath, tex[1]));
 }
Example #4
0
        public RTSUnitDataPanel(RTSRenderer renderer, WidgetRenderer wr, UICUnitData _uic, UICCombatStats _uicCS)
        {
            uic     = _uic;
            iconLib = renderer.IconLibrary;

            WidgetBase        = new RectWidget(wr, renderer.LoadTexture2D(uic.PanelImage));
            WidgetBase.Width  = uic.PanelSize.X;
            WidgetBase.Height = uic.PanelSize.Y;
            WidgetBase.Color  = uic.PanelColor;

            icon        = new RectWidget(wr);
            icon.Width  = uic.IconSize;
            icon.Height = uic.IconSize;
            icon.Color  = Color.White;
            icon.Offset = new Point(uic.IconBuffer, uic.IconBuffer);
            icon.Parent = WidgetBase;

            rectHealthBack              = new RectWidget(wr);
            rectHealthBack.Width        = uic.IconSize;
            rectHealthBack.Height       = uic.HealthHeight;
            rectHealthBack.AlignX       = Alignment.MID;
            rectHealthBack.OffsetAlignX = Alignment.MID;
            rectHealthBack.OffsetAlignY = Alignment.BOTTOM;
            rectHealthBack.Offset       = new Point(0, uic.IconBuffer);
            rectHealthBack.Color        = UserConfig.MainScheme.WidgetBorder;
            rectHealthBack.Parent       = icon;

            rectHealthFore              = new RectWidget(wr);
            rectHealthFore.Width        = uic.IconSize;
            rectHealthFore.Height       = uic.HealthHeight;
            rectHealthFore.AlignX       = Alignment.MID;
            rectHealthFore.AlignY       = Alignment.MID;
            rectHealthFore.OffsetAlignX = Alignment.MID;
            rectHealthFore.OffsetAlignY = Alignment.MID;
            rectHealthFore.Offset       = new Point(0, 0);
            rectHealthFore.Color        = uic.HealthMaxColor;
            rectHealthFore.Parent       = rectHealthBack;

            txtName              = new TextWidget(wr);
            txtName.Height       = uic.TextHeight;
            txtName.OffsetAlignX = Alignment.RIGHT;
            txtName.Offset       = new Point(uic.IconBuffer, 0);
            txtName.Color        = UserConfig.MainScheme.Text;
            txtName.Parent       = icon;

            combatData              = new RectButton(wr, uic.CombatSize, uic.CombatSize, Color.Gray, Color.White, renderer.LoadTexture2D(uic.CombatImage));
            combatData.AlignX       = Alignment.RIGHT;
            combatData.AlignY       = Alignment.BOTTOM;
            combatData.OffsetAlignX = Alignment.RIGHT;
            combatData.OffsetAlignY = Alignment.BOTTOM;
            combatData.Parent       = WidgetBase;

            uiCStats = new RTSUICombatStats(wr, _uicCS);
            uiCStats.WidgetBase.AlignY = Alignment.BOTTOM;
            uiCStats.WidgetBase.Anchor = new Point(1000000, 1000000);

            uiCSHover = new RTSUIHoverPanel(combatData, uiCStats.WidgetBase);
        }
Example #5
0
 private void BuildMinimap(RTSRenderer renderer, UICMinimap uic)
 {
     Minimap = new RTSUIMinimap(renderer, wrMain, renderer.Minimap.Terrain, null, uic);
     Minimap.WidgetBase.AlignX       = Alignment.RIGHT;
     Minimap.WidgetBase.AlignY       = Alignment.BOTTOM;
     Minimap.WidgetBase.OffsetAlignX = Alignment.RIGHT;
     Minimap.WidgetBase.OffsetAlignY = Alignment.BOTTOM;
     Minimap.WidgetBase.Parent       = rectBounds;
 }
Example #6
0
 public void Build(RTSRenderer renderer, string rootPath, string model, string[] tex)
 {
     using (var sModel = File.OpenRead(Path.Combine(rootPath, model))) {
         Texture2D tAnim = AnimationFromBitmap(renderer, Path.Combine(rootPath, tex[0]));
         View = new RTSUnitModel(renderer, sModel, tAnim);
     }
     View.ModelTexture     = renderer.LoadTexture2D(Path.Combine(rootPath, tex[1]));
     View.ColorCodeTexture = renderer.LoadTexture2D(Path.Combine(rootPath, tex[2]));
 }
Example #7
0
 private void BuildBuildingDataPanel(RTSRenderer renderer)
 {
     BuildingDataPanel = new RTSBuildingDataPanel(renderer, wrMain, uic.UICBuildingData);
     BuildingDataPanel.WidgetBase.AlignX       = Alignment.LEFT;
     BuildingDataPanel.WidgetBase.AlignY       = Alignment.BOTTOM;
     BuildingDataPanel.WidgetBase.OffsetAlignX = Alignment.RIGHT;
     BuildingDataPanel.WidgetBase.OffsetAlignY = Alignment.BOTTOM;
     BuildingDataPanel.WidgetBase.Offset       = new Point(0, 0);
     BuildingDataPanel.WidgetBase.Parent       = BBPanel.BackPanel;
 }
        public WorldManager(Game game)
        {
            this.game   = game;
            world       = new SimulatorWorld();
            rtsRenderer = new RTSRenderer();

            NUM_CARS         = 0;
            rng              = new Random(2);
            lastCarAddedTime = 0;
        }
Example #9
0
        public void Draw(RTSRenderer renderer, SpriteBatch batch)
        {
            wrMain.Draw(batch);
            Rectangle rMap = new Rectangle(Minimap.MapRect.X, Minimap.MapRect.Y, Minimap.MapRect.Width, Minimap.MapRect.Height);

            batch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, SamplerState.PointClamp, DepthStencilState.None, RasterizerState.CullNone);
            batch.Draw(renderer.Minimap.TeamMap, rMap, Color.White);
            batch.End();
            renderer.Minimap.DrawCamera(renderer, rMap);
        }
Example #10
0
 private void BuildUnitDataPanel(RTSRenderer renderer)
 {
     UnitDataPanel = new RTSUnitDataPanel(renderer, wrMain, uic.UICUnitData, uic.UICCombatStats);
     UnitDataPanel.WidgetBase.AlignX       = Alignment.LEFT;
     UnitDataPanel.WidgetBase.AlignY       = Alignment.BOTTOM;
     UnitDataPanel.WidgetBase.OffsetAlignX = Alignment.RIGHT;
     UnitDataPanel.WidgetBase.OffsetAlignY = Alignment.BOTTOM;
     UnitDataPanel.WidgetBase.Offset       = new Point(0, 0);
     UnitDataPanel.WidgetBase.Parent       = BBPanel.BackPanel;
 }
Example #11
0
 private void BuildBBPanel(RTSRenderer renderer)
 {
     BBPanel = new RTSUIBuildingButtonPanel(wrMain, uic.BBRows, uic.BBColumns, uic.BBIconSize, uic.BBIconBuffer);
     BBPanel.BackPanel.Texture      = renderer.LoadTexture2D(uic.BBTexture);
     BBPanel.BackPanel.Parent       = rectBounds;
     BBPanel.BackPanel.AlignY       = Alignment.BOTTOM;
     BBPanel.BackPanel.OffsetAlignY = Alignment.BOTTOM;
     BBPanel.BackPanel.Offset       = new Point(0, 0);
     BBPanel.IconLibrary            = renderer.IconLibrary;
     BBPanel.BackPanel.Color        = UserConfig.MainScheme.WidgetBase;
 }
Example #12
0
 private void BuildSelectionPanel(RTSRenderer renderer)
 {
     SelectionPanel = new RTSUISelectionPanel(wrMain, uic.SelectionRows, uic.SelectionColumns, uic.SelectionIconSize, uic.SelectionIconBuffer);
     SelectionPanel.BackPanel.Texture      = renderer.LoadTexture2D(uic.SelectionTexture);
     SelectionPanel.IconLibrary            = renderer.IconLibrary;
     SelectionPanel.BackPanel.AlignX       = Alignment.LEFT;
     SelectionPanel.BackPanel.AlignY       = Alignment.BOTTOM;
     SelectionPanel.BackPanel.OffsetAlignX = Alignment.RIGHT;
     SelectionPanel.BackPanel.OffsetAlignY = Alignment.BOTTOM;
     SelectionPanel.BackPanel.Color        = UserConfig.MainScheme.WidgetBase;
     SelectionPanel.BackPanel.Offset       = new Point(0, 0);
     SelectionPanel.BackPanel.Parent       = BBPanel.BackPanel;
 }
Example #13
0
        public void Build(RTSRenderer renderer)
        {
            // Create UI
            UI = new RTSUI(renderer, @"Packs\Default\scripts\input\player\RTS.uic", showBuild);
            UI.SetTeam(Team);
            OnNewSelection    += UI.SelectionPanel.OnNewSelection;
            OnNewSelection    += UI.BBPanel.OnNewSelection;
            OnNewSelection    += Player_OnNewSelection;
            GameState.OnAlert += UI.AlertQueue.OnAlert;

            Team.OnPopulationChange    += (t, c) => { UI.TeamDataPanel.Population = Team.Population; };
            Team.OnPopulationCapChange += (t, c) => { UI.TeamDataPanel.PopulationCap = Team.PopulationCap; };
            Team.OnCapitalChange       += (t, c) => { UI.TeamDataPanel.Capital = Team.Capital; };
        }
Example #14
0
 private void BuildBounds(RTSRenderer renderer)
 {
     rectBounds        = new RectWidget(wrMain);
     rectBounds.Color  = Color.Transparent;
     rectBounds.Anchor = new Point(0, 0);
     rectBounds.AlignX = Alignment.LEFT;
     rectBounds.AlignY = Alignment.TOP;
     rectBounds.Width  = renderer.G.Viewport.Width;
     rectBounds.Height = renderer.G.Viewport.Height;
     renderer.Window.ClientSizeChanged += (sender, args) => {
         rectBounds.Width  = renderer.G.Viewport.Width;
         rectBounds.Height = renderer.G.Viewport.Height;
     };
     rectBounds.LayerDepth = 1f;
 }
Example #15
0
        public static RTSUnitModel ParseModel(RTSRenderer renderer, FileInfo infoFile, RTSRace race)
        {
            // Check File Existence
            if (infoFile == null || !infoFile.Exists)
            {
                return(null);
            }

            ZXParser.SetEnvironment("FILEROOTDIR", infoFile.Directory.FullName);
            ZXParser.SetEnvironment("RENDERER", renderer);
            ZXParser.SetEnvironment("RACE", race);
            RTSUnitViewData vd = ZXParser.ParseFile(infoFile.FullName, typeof(RTSUnitViewData)) as RTSUnitViewData;

            return(vd.View);
        }
Example #16
0
        private static Texture2D AnimationFromBitmap(RTSRenderer renderer, string fi)
        {
            Texture2D t;

            float[] sData = null;
            int     w, h;

            using (var bmp = System.Drawing.Bitmap.FromFile(fi) as System.Drawing.Bitmap) {
                w     = bmp.Width;
                h     = bmp.Height;
                sData = new float[w * h];
                System.Drawing.Imaging.BitmapData data = bmp.LockBits(new System.Drawing.Rectangle(0, 0, w, h), System.Drawing.Imaging.ImageLockMode.ReadOnly, bmp.PixelFormat);
                System.Runtime.InteropServices.Marshal.Copy(data.Scan0, sData, 0, (data.Stride * data.Height) >> 2);
                bmp.UnlockBits(data);
            }
            t = renderer.CreateTexture2D(w, h, SurfaceFormat.Single);
            t.SetData(sData);
            return(t);
        }
Example #17
0
        public RTSUIMinimap(RTSRenderer renderer, WidgetRenderer wr, Texture2D tPhys, Texture2D tImp, UICMinimap uic)
        {
            tPhysical = tPhys;
            tImpact   = tImp;

            WidgetBase        = new RectWidget(wr);
            WidgetBase.Width  = uic.ButtonWidth + uic.MapSize + uic.Buffer * 2;
            WidgetBase.Height = uic.MapSize + uic.Buffer * 2;
            WidgetBase.Color  = uic.BaseColor;

            int bh = uic.MapSize / 2;

            btnPhysical = new RectButton(wr, uic.ButtonWidth, bh,
                                         uic.PhysicalInactiveColor,
                                         uic.PhysicalActiveColor,
                                         renderer.LoadTexture2D(uic.PhysicalTexture)
                                         );
            btnImpact = new RectButton(wr, uic.ButtonWidth, bh,
                                       uic.ImpactInactiveColor,
                                       uic.ImpactActiveColor,
                                       renderer.LoadTexture2D(uic.ImpactTexture)
                                       );

            btnPhysical.Offset     = new Point(uic.Buffer, uic.Buffer);
            btnPhysical.Parent     = WidgetBase;
            btnImpact.OffsetAlignY = Alignment.BOTTOM;
            btnImpact.Parent       = btnPhysical;

            MapRect              = new RectWidget(wr, tPhysical);
            MapRect.Width        = uic.MapSize;
            MapRect.Height       = uic.MapSize;
            MapRect.Color        = Color.White;
            MapRect.OffsetAlignX = Alignment.RIGHT;
            MapRect.Parent       = btnPhysical;

            btnPhysical.OnButtonPress += (b, p) => {
                MapRect.Texture = tPhysical;
            };
            btnImpact.OnButtonPress += (b, p) => {
                MapRect.Texture = tImpact;
            };
        }
Example #18
0
        public override void OnEntry(GameTime gameTime)
        {
            tPopup = null;
            end    = false;
            MouseEventDispatcher.OnMousePress     += OnMP;
            KeyboardEventDispatcher.OnKeyPressed  += OnKP;
            KeyboardEventDispatcher.OnKeyReleased += OnKR;
            DevConsole.OnNewCommand += DevConsole_OnNewCommand;

            team = 0;
            type = 0;

            state             = game.LoadScreen.LoadedState;
            state.OnNewPopup += OnNewPopup;
            camera            = game.LoadScreen.LoadedCamera;
            renderer          = game.LoadScreen.LoadedRenderer;
            renderer.UseFOW   = true;
            gameInput         = (from t in state.teams
                                 where t.Input != null && t.Input.Type == RTSInputType.Player
                                 select t.Input).FirstOrDefault();
            vInput         = gameInput == null ? null : gameInput as IVisualInputController;
            playController = game.LoadScreen.LoadedGPlay;

            sfDebug = renderer.LoadFont(@"Fonts\CourierNew32");


            // Create Game Engine Thread
            playController.BeginPlaying(state);
            tEngine          = new Thread(EngineThread);
            tEngine.Priority = ThreadPriority.Highest;
            tEngine.TrySetApartmentState(ApartmentState.MTA);
            tEngine.IsBackground = true;
            playing     = 1;
            pauseEngine = false;
            pauseRender = false;
            tEngine.Start();

            // Create Background Music
            jukeBox = new Jukebox();
            jukeBox.LoadFromDirectory(new DirectoryInfo(BS_SOUND_DIR));
        }
Example #19
0
        public RTSUI(RTSRenderer renderer, string uicFile, bool showBuildPanel)
        {
            uic = ZXParser.ParseFile(uicFile, typeof(UICRTS)) as UICRTS;

            SpriteFont font = renderer.LoadFont(uic.Font);

            wrButtonPanel = new WidgetRenderer(renderer.G, font);
            wrMain        = new WidgetRenderer(renderer.G, font);

            BuildBounds(renderer);
            BuildMinimap(renderer, uic.UICMinimap);
            BuildBBPanel(renderer);
            BuildBuildingPanel(showBuildPanel);
            BuildSelectionPanel(renderer);
            BuildUnitDataPanel(renderer);
            BuildBuildingDataPanel(renderer);
            BuildTeamDataPanel();
            AlertQueue = new RTSUIAlertQueue(wrMain, uic.UICAlertQueue);
            AlertQueue.WidgetBase.Parent = Minimap.WidgetBase;
            SelectionToggle = 0;
        }
Example #20
0
 public void Update(RTSRenderer renderer, GameState s)
 {
     UI.AlertQueue.Update();
     UI.BuildingDataPanel.Update();
 }
Example #21
0
        private void WorkThread()
        {
            try {
                // Start With Default Values
                isLoaded       = false;
                loadException  = null;
                LoadedRenderer = null;

                // Grab The Initialization Info
                loadData = game.LobbyScreen.InitInfo;

                // Build The Local Game State
                LoadedState = new GameState();
                if (LoadFile == null)
                {
                    GameEngine.BuildLocal(LoadedState, LoadData, new DirectoryInfo(@"Packs"), game.LobbyScreen.Races);
                }
                else
                {
                    GameEngine.Load(LoadedState, new DirectoryInfo(@"Packs"), LoadFile.FullName);
                }

                // Create The Input Controllers
                for (int ti = 0; ti < LoadedState.teams.Length; ti++)
                {
                    if (string.IsNullOrWhiteSpace(LoadData.Teams[ti].InputController))
                    {
                        continue;
                    }
                    GameEngine.SetInput(LoadedState, ti, LoadedState.Scripts[LoadData.Teams[ti].InputController].CreateInstance <ACInputController>());
                }


                // Create Camera
                LoadedCamera = new Camera(G.Viewport);
                LoadedCamera.Controller.Hook(game.Window);

                // Load The Renderer
                RendererInitArgs ria = ZXParser.ParseFile(@"Content\FX\RIA.txt", typeof(RendererInitArgs)) as RendererInitArgs;
                LoadedRenderer = new RTSRenderer(game.Graphics, game.Content, ria, game.Window);
                LoadedRenderer.HookToGame(LoadedState, 0, LoadedCamera);

                // Initialize Inputs
                int teami = -1;
                foreach (var t in LoadedState.teams)
                {
                    teami++;
                    if (t == null)
                    {
                        continue;
                    }

                    // Set Camera
                    var vInput = t.Input as IVisualInputController;
                    if (vInput != null)
                    {
                        vInput.Camera = LoadedCamera;
                    }

                    // Init
                    t.Input.Init(LoadedState, t.Index, loadData.Teams[teami].InputInitArgs);

                    // Build
                    if (vInput != null)
                    {
                        vInput.Build(LoadedRenderer);
                    }
                }

                // Create Gameplay
                LoadedGPlay = new GameplayController();
                GCInitArgs gca = new GCInitArgs()
                {
                    GameTypeScript = LoadData.GTController
                };
                LoadedGPlay.Init(LoadedState, gca);
            }
            catch (Exception e) {
                if (LoadedRenderer != null)
                {
                    LoadedRenderer.Dispose();
                }
                loadException = e;
            }
            isLoaded = true;
        }
Example #22
0
 public void Draw(RTSRenderer renderer, SpriteBatch batch)
 {
     UI.Draw(renderer, batch);
 }
Example #23
0
        public RTSBuildingDataPanel(RTSRenderer renderer, WidgetRenderer wr, UICBuildingData _uic)
        {
            uic     = _uic;
            iconLib = renderer.IconLibrary;

            WidgetBase        = new RectWidget(wr, renderer.LoadTexture2D(uic.PanelImage));
            WidgetBase.Width  = uic.PanelSize.X;
            WidgetBase.Height = uic.PanelSize.Y;
            WidgetBase.Color  = uic.PanelColor;

            icon        = new RectWidget(wr);
            icon.Width  = uic.IconSize;
            icon.Height = uic.IconSize;
            icon.Color  = Color.White;
            icon.Offset = new Point(uic.IconBuffer, uic.IconBuffer);
            icon.Parent = WidgetBase;

            rectHealthBack              = new RectWidget(wr);
            rectHealthBack.Width        = uic.IconSize;
            rectHealthBack.Height       = uic.HealthHeight;
            rectHealthBack.AlignX       = Alignment.MID;
            rectHealthBack.OffsetAlignX = Alignment.MID;
            rectHealthBack.OffsetAlignY = Alignment.BOTTOM;
            rectHealthBack.Offset       = new Point(0, uic.IconBuffer);
            rectHealthBack.Color        = UserConfig.MainScheme.WidgetBorder;
            rectHealthBack.Parent       = icon;

            rectHealthFore              = new RectWidget(wr);
            rectHealthFore.Width        = uic.IconSize;
            rectHealthFore.Height       = rectHealthBack.Height;
            rectHealthFore.AlignX       = Alignment.MID;
            rectHealthFore.AlignY       = Alignment.MID;
            rectHealthFore.OffsetAlignX = Alignment.MID;
            rectHealthFore.OffsetAlignY = Alignment.MID;
            rectHealthFore.Offset       = new Point(0, 0);
            rectHealthFore.Color        = uic.HealthMaxColor;
            rectHealthFore.Parent       = rectHealthBack;

            queueButtons                 = new RectButton[6];
            queueButtons[0]              = new RectButton(wr, uic.QueueIconMainSize, uic.QueueIconMainSize, Color.White, uic.QueueButtonHighlightColor);
            queueButtons[0].AlignY       = Alignment.BOTTOM;
            queueButtons[0].OffsetAlignY = Alignment.BOTTOM;
            queueButtons[0].OffsetAlignX = Alignment.RIGHT;
            queueButtons[0].Offset       = new Point(uic.IconBuffer, 0);
            queueButtons[0].Parent       = rectHealthBack;
            for (int i = 1; i < 6; i++)
            {
                queueButtons[i]              = new RectButton(wr, uic.QueueIconQueuedSize, uic.QueueIconQueuedSize, Color.White, uic.QueueButtonHighlightColor);
                queueButtons[i].AlignY       = Alignment.BOTTOM;
                queueButtons[i].OffsetAlignY = Alignment.BOTTOM;
                queueButtons[i].OffsetAlignX = Alignment.RIGHT;
                queueButtons[i].Parent       = queueButtons[i - 1];
            }

            rectQueueBack              = new RectWidget(wr);
            rectQueueBack.Width        = uic.QueueIconQueuedSize * 5;
            rectQueueBack.Height       = uic.QueueIconMainSize - uic.QueueIconQueuedSize;
            rectQueueBack.OffsetAlignX = Alignment.RIGHT;
            rectQueueBack.Color        = UserConfig.MainScheme.WidgetBorder;
            rectQueueBack.Parent       = queueButtons[0];

            rectQueueFore              = new RectWidget(wr);
            rectQueueFore.Width        = uic.IconSize;
            rectQueueFore.Height       = rectQueueBack.Height;
            rectQueueFore.AlignY       = Alignment.MID;
            rectQueueFore.OffsetAlignY = Alignment.MID;
            rectQueueFore.Offset       = new Point(0, 0);
            rectQueueFore.Color        = uic.QueueMaxColor;
            rectQueueFore.Parent       = rectQueueBack;

            txtName              = new TextWidget(wr);
            txtName.Height       = uic.TextHeight;
            txtName.OffsetAlignX = Alignment.RIGHT;
            txtName.Offset       = new Point(uic.IconBuffer, 0);
            txtName.Color        = UserConfig.MainScheme.Text;
            txtName.Parent       = icon;
        }