Skip to content

Save load replay - #11

Open
DevGeniusCode wants to merge 12 commits into
ElTioRata:mainfrom
DevGeniusCode:SaveLoadReplay
Open

Save load replay #11
DevGeniusCode wants to merge 12 commits into
ElTioRata:mainfrom
DevGeniusCode:SaveLoadReplay

Conversation

@DevGeniusCode

Copy link
Copy Markdown
Contributor

UI Refactor: Redesign layout and stack buttons in SaveLoad, ReplayMenu, and PopupSaveLoad

This PR structurally and visually updates the save/load and replay interfaces to unify them with the game's updated design language. The overarching goal was to transition away from the legacy Horizontal Action Bar layout to a cleaner, modern Vertical Action Stack (right-aligned column layout) across all three related menus (SaveLoad, ReplayMenu, and PopupSaveLoad). Alongside this visual modernization, column widths were standardized across all lists, and underlying engine dependencies were carefully managed to ensure absolute stability.

Note: The PopupReplay file is intentionally excluded from this PR's scope. It will be refactored and submitted together with the ScoreScreen file in a future update.

Key Changes:

  • 🧹 Cleaned up unused elements: Streamlined overall layout dimensions across the menus to accommodate the new right-aligned structure, removing the necessity for wide, horizontal button spacing.
  • 📏 Fine-tuned alignments: Adjusted coordinates for the window layouts, listboxes, and dialogs in PopupSaveLoad, SaveLoad, and ReplayMenu. Standardized the column widths across all file lists for visual consistency. All action buttons are perfectly aligned into the new bottom-right vertical stacks.
  • 📦 Reorganized the Object Tree: Restructured the internal hierarchy to logically group the stacked buttons in all three menus, ensuring the underlying object tree accurately reflects the new vertical visual flow.
  • ⚠️ Handled hardcoded obsolete elements: The Save button and the "Are you sure you want to load?" confirmation dialog remain in the full-screen SaveLoad tree despite being inactive in that specific layout. These elements are inherently designed for popup mode, but they possess hardcoded engine dependencies. Keeping them safely in the layout prevents the engine from crashing while maintaining a clean active UI.

Mockups:

Before:
SaveLoad
image

ReplayMenu
image

PopupSaveLoad
image

After:
SaveLoad
image

ReplayMenu
image

PopupSaveLoad
image

@ElTioRata

Copy link
Copy Markdown
Owner

Please add in-game comparisons (vanilla and Improved Menus).

@DevGeniusCode

DevGeniusCode commented Apr 18, 2026

Copy link
Copy Markdown
Contributor Author

SaveLoad

sshot005.bmp

sshot027.bmp

PopupSaveDialog

sshot006.bmp

sshot030.bmp

Replay

sshot007.bmp

sshot031.bmp

PopupSaveLoad

image image

@ElTioRata

ElTioRata commented Apr 18, 2026

Copy link
Copy Markdown
Owner

I'm not too convinced with having the "Are you sure" tab at the right side. I personally keep it on the center but with less height. The rest looks better.

@DevGeniusCode

Copy link
Copy Markdown
Contributor Author

My logic for placing the confirmation tab on the right was twofold. First, it significantly reduces mouse travel: if a user clicks "Delete" on the right side, having the "Yes/No" prompt appear directly under their cursor feels much smoother and faster.

Second, it follows a natural Left-to-Right (LTR) visual flow. In LTR interfaces, the left side is used for scanning primary content (the save list), while the right side acts as the terminal point for actions and decisions. By keeping the confirmation dialog on the right, the user's focus naturally progresses to the action area without obstructing the actual list they are making a decision about.

However, I completely understand the classic UX convention of centering critical warnings (like deleting a save) to intentionally break the user's flow and demand attention.

for example, see how the 'Host Game' popup anchors cleanly above the main right-side buttons
image

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