Skip to content

Skirmish Menus#10

Open
DevGeniusCode wants to merge 17 commits into
ElTioRata:mainfrom
DevGeniusCode:SkirmishGameMenu
Open

Skirmish Menus#10
DevGeniusCode wants to merge 17 commits into
ElTioRata:mainfrom
DevGeniusCode:SkirmishGameMenu

Conversation

@DevGeniusCode

@DevGeniusCode DevGeniusCode commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

UI Refactor: Redesign layout and align with Lobby styling in Skirmish Menus

This PR refactors the Skirmish UI (SkirmishGameOptionsMenu and SkirmishMapSelectMenu) to visually align with the existing Multiplayer Lobby design language. The overarching goal was to transition from the legacy horizontal bottom-bar button layout to a stacked, bottom-right configuration. Alongside these visual improvements, the underlying object tree was cleaned up, list dimensions were optimized for better UX, and extended the map list dimensions in SkirmishMapSelectMenu to show more items at once.

Key Changes:

  • 🧹 Cleaned up unused elements: Removed the unused Reset FPS button from SkirmishGameOptionsMenu and deleted the obsolete WinGadgetBorder from SkirmishMapSelectMenu to declutter the hierarchy.
  • 📏 Fine-tuned alignments: Completely repositioned the main action buttons into a bottom-right vertical stack. Adjusted coordinates for the Title, Statistics, Honors, Player List, and Map Selection elements to harmonize with the new layout. Extended the map list dimensions in SkirmishMapSelectMenu to show more items at once and replicated the map preview static text for consistency.
  • 📦 Reorganized the Object Tree: Initiated proper indentation blocks across the file for improved readability and maintainability. Increased the MAXDISPLAY value for the Army ComboBox to improve dropdown behavior.
  • ⚠️ Handled hardcoded obsolete elements: Attempted to wrap the Player ComboBox elements into a clean parent group, but had to revert this structure; the engine's group layer was consuming mouse events and preventing interaction with the dropdowns. The ComboBoxes remain flat in the hierarchy as a necessary workaround for engine constraints. Also the middle screen real estate was intentionally reserved to easily accommodate new options in future game patches
  • ⚠️ Handled hidden Reset Honors button: The Reset Honors button remains hidden but fully functional in the code. I intentionally left an empty space in the new bottom-right button stack for it. It is kept hidden to prevent accidental clicks since the engine currently lacks a confirmation dialog. Modders can easily re-enable it, or we can restore it in a future patch once a confirmation prompt is implemented.

Object Tree Diff:

└── [USER] SkirmishGameOptionsMenuParent
    └── [USER] SubParent
        ├── [PUSHBUTTON] ButtonStart
        ├── [PUSHBUTTON] ButtonReset
        ├── [PUSHBUTTON] ButtonBack
+        ├── [USER] BattleHonors
        ├── [SCROLLLISTBOX] ListboxInfo
        ├── [HORZSLIDER] SliderGameSpeed
        ├── [STATICTEXT] StaticTextGameSpeed
+      ├── [STATICTEXT] StaticTextGameSpeed1
        ├── [STATICTEXT] StaticTextStartingMoney
        ├── [CHECKBOX] CheckboxLimitSuperweapons
+        ├── [USER] Statistics
        │   ├── [STATICTEXT] StaticTextLosses
        │   ├── [STATICTEXT] StaticTextLossesValue
        │   ├── [STATICTEXT] StaticTextWins
        │   ├── [STATICTEXT] StaticTextWinsValue
        │   ├── [STATICTEXT] StaticTextStreak
        │   ├── [STATICTEXT] StaticTextStreakValue
        │   ├── [STATICTEXT] StaticTextBestStreak
        │   └── [STATICTEXT] StaticTextBestStreakValue
        ├── [PUSHBUTTON] ButtonSelectMap
+        ├── [COMBOBOX] ComboBoxStartingCash
        ├── [STATICTEXT] TextEntryMapDisplay
        ├── [USER] MapWindow
        │   ├── [PUSHBUTTON] ButtonMapStartPosition0
        │   ├── [PUSHBUTTON] ButtonMapStartPosition1
        │   ├── [PUSHBUTTON] ButtonMapStartPosition2
        │   ├── [PUSHBUTTON] ButtonMapStartPosition3
        │   ├── [PUSHBUTTON] ButtonMapStartPosition4
        │   ├── [PUSHBUTTON] ButtonMapStartPosition5
        │   ├── [PUSHBUTTON] ButtonMapStartPosition6
        │   └── [PUSHBUTTON] ButtonMapStartPosition7
        ├── [STATICTEXT] StaticTextMapPreview
        ├── [STATICTEXT] StaticTextTeam
        ├── [COMBOBOX] ComboBoxTeam7
        ├── [COMBOBOX] ComboBoxTeam6
        ├── [COMBOBOX] ComboBoxTeam5
        ├── [COMBOBOX] ComboBoxTeam4
        ├── [COMBOBOX] ComboBoxTeam3
        ├── [COMBOBOX] ComboBoxTeam2
        ├── [COMBOBOX] ComboBoxTeam1
        ├── [COMBOBOX] ComboBoxTeam0
        ├── [STATICTEXT] StaticTextFaction
        ├── [COMBOBOX] ComboBoxPlayerTemplate7
        ├── [COMBOBOX] ComboBoxPlayerTemplate6
        ├── [COMBOBOX] ComboBoxPlayerTemplate5
        ├── [COMBOBOX] ComboBoxPlayerTemplate4
        ├── [COMBOBOX] ComboBoxPlayerTemplate3
        ├── [COMBOBOX] ComboBoxPlayerTemplate2
        ├── [COMBOBOX] ComboBoxPlayerTemplate1
        ├── [COMBOBOX] ComboBoxPlayerTemplate0
        ├── [STATICTEXT] StaticTextColor
        ├── [COMBOBOX] ComboBoxColor7
        ├── [COMBOBOX] ComboBoxColor6
        ├── [COMBOBOX] ComboBoxColor5
        ├── [COMBOBOX] ComboBoxColor4
        ├── [COMBOBOX] ComboBoxColor3
        ├── [COMBOBOX] ComboBoxColor2
        ├── [COMBOBOX] ComboBoxColor1
        ├── [COMBOBOX] ComboBoxColor0
        ├── [STATICTEXT] StaticTextPlayers
        ├── [COMBOBOX] ComboBoxPlayer7
        ├── [COMBOBOX] ComboBoxPlayer6
        ├── [COMBOBOX] ComboBoxPlayer5
        ├── [COMBOBOX] ComboBoxPlayer4
        ├── [COMBOBOX] ComboBoxPlayer3
        ├── [COMBOBOX] ComboBoxPlayer2
        ├── [COMBOBOX] ComboBoxPlayer1
        ├── [ENTRYFIELD] TextEntryPlayerName
        ├── [USER] Line
        ├── [STATICTEXT] StaticTextTitle
-       └── [PUSHBUTTON] ButtonResetFPS

Screenshot:

Before:

sshot018
sshot019

After:

sshot016
sshot001.bmp

@DevGeniusCode DevGeniusCode changed the title Redesign layout and align with Lobby styling in Skirmish Menus Skirmish Menus Apr 10, 2026
@ElTioRata

ElTioRata commented Apr 16, 2026

Copy link
Copy Markdown
Owner
  1. There is an awkward amount of empty space here.
imagen
  1. Changing map preview proportions like this isn't recommended since it introduces issues with player position selection where it becomes unselectable if it's beyond the map preview boundaries. Also more awkward empty space on the right side buttons.
imagen
  1. Would highly recommend that you also add comparisons with current Improved Menus build.

@DevGeniusCode

Copy link
Copy Markdown
Contributor Author

Thanks for the feedback!

Regarding the empty space: This is an intentional design choice. A core philosophy of this UI refactor is standardizing the layout across all screens (LAN, WOL, Skirmish). By keeping a consistent right-aligned Vertical Action Stack, the buttons remain in the exact same screen position regardless of the menu you are in, which preserves muscle memory. The empty space simply accommodates dynamic buttons (like 'Cancel' during map selection) or extra buttons present in other menus. The same goes for the left side: stacking the settings vertically clears the center and matches the modern visual flow of the other screens. I believe we shouldn't be afraid of negative space if it serves modularity and consistency.

Regarding the map preview proportions: That is a fair technical point regarding engine limits and player position selection. Could you provide a specific map name or an example where this breaks?

@ElTioRata

ElTioRata commented Apr 18, 2026

Copy link
Copy Markdown
Owner

Here's the map. !TestAllFactionsBuildingsUnitsPromo.zip

I believe we shouldn't be afraid of negative space if it serves modularity and consistency.

Improved Menus attempts to fix what's already there while also trying to preserve familiarity, therefore, negative space feels out of place (no pun intended).

Regarding these windows specifically, the project only fixes inconsistencies between all three of them by taking WOL Game Options as reference because I think it is the most comfortable looking compared to the other two.

@DevGeniusCode

Copy link
Copy Markdown
Contributor Author

Thanks for the map! I've performed a thorough technical test with it.

Regarding the map preview: I’ve verified in-game that the blue rings remain 100% functional and clickable. There is no desync between the visuals and the engine's hitboxes. In fact, moving to a square (1:1) aspect ratio is a technical improvement; since the vast majority of maps are square, this layout represents the actual map geometry more accurately than the stretched legacy preview. It’s a UI-only change that enhances visual fidelity without breaking any underlying logic.

Regarding the empty space: If we compare this to the vanilla UI, the original menus actually had significantly more scattered and unmanaged "dead zones." This refactor manages screen real estate much more efficiently by grouping elements into logical stacks. The remaining negative space is intentional—it serves the game's natural symmetry and, more importantly, provides a future-proof buffer for adding new features or buttons without needing to overhaul the layout again.

The goal here is to apply modern UI/UX principles: consistency, scalability, and clarity. While I respect the "familiarity" aspect, I believe these changes offer a cleaner, more professional experience that aligns with the quality of a modern refactor.

@ElTioRata

Copy link
Copy Markdown
Owner

My advice is that you can try to look how other layouts are done (regarding the skirmish screen) in other RTS games and then see which one has a modern looking while also not looking out of place. I also have been thinking of implementing a skirmish screen more similar to the later CNC entries.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants