Skip to content

feat: the Alt quick menu as OMSI 2's grid of icon tiles, with pages and keys - #3335

Merged
turbo-devv merged 2 commits into
openOMSI-org:mainfrom
rafaelkaiz:feat/alt-menu-omsi2-tiles
Oct 26, 2026
Merged

turbo-devv merged 2 commits into
openOMSI-org:mainfrom
rafaelkaiz:feat/alt-menu-omsi2-tiles

Conversation

@rafaelkaiz

@rafaelkaiz rafaelkaiz commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

What changes for the player?

Tapping Alt opens a quick menu that looks and works like OMSI 2's: a 5x3 grid of large square icon tiles in OMSI 2's order, the chosen tile's name under the grid, and an arrow at the bottom right for the next page. Lit tiles (route arrows on, a tour being driven) are orange as in OMSI 2, and tiles that cannot be used right now are greyed. The menu also works from the keyboard.

How to test

Any map and bus. Tap Alt:

  • Page 1 holds place / change / remove / reset vehicle, city map, timetable, destination, repair, refuel, wash, route arrows, time, weather, controls and statistics. Each tile does what it did before; Time and Weather open their own tabs of the world options.
  • Hover a tile: it is chosen and its name is shown under the grid.
  • Arrow keys move the choice (past the left or right edge onto the other page), Enter starts the tile, Tab / Page Up / Page Down turn the page, Alt or Esc closes.
  • The › arrow (or Tab) shows page 2: camera, vehicle and world options, options, back to my bus, save, save to a slot, screenshot, photo mode, skip the next stop, end the tour, player list, administration. Tiles the pause menu does not offer right now (skip stop without a tour, multiplayer ones offline, back to my bus while seated) are greyed and do nothing.
  • Turn the route arrows on: their tile turns orange. Start a tour: the timetable tile turns orange.

Screenshots

20261026172741_1 20261026172734_1 20261026172747_1

What does this change, and why?

  • Kind::Tile gets focus and off; a tile with no text is drawn as a square of its icon alone (omsi-plugin-ui/src/square.rs), with an accent ring when focused and greyed when off. Tiles are only built by the game, not by Lua plugins.
  • quick_menu.rs keeps the page and the chosen tile, builds the grid and the footer, and handles the keys (game_panel_key) and the hover (from the hit under the cursor, only when the cursor moves, so the keyboard choice is kept while the mouse is still).
  • The pause menu's line actions move out of menu_choose into game_menu_action(id) (unchanged otherwise), so the page-2 tiles run exactly the pause menu's code. Which tiles are greyed comes from game_menu_items().

What could break?

While the quick menu is open, the arrow keys, Enter, Tab and Page Up/Down go to the menu, not to the bus. The pause menu's lines now go through game_menu_action; its behaviour is unchanged (load, quit and plugin lines stay in menu_choose). Not tested in VR (the menu is not shown there) or on a server.

Performance

No feature with a runtime cost: the panel is laid out again only when it changes (page, choice, lit or greyed tiles).

Checklist

  • cargo test --workspace and cargo build --release pass (tested: omsi-app, omsi-plugin, omsi-plugin-ui tests and the Windows release build)
  • The pull request contains a single change
  • Before/after screenshots are in the description if anything changes on screen
  • A new feature has its performance table filled in
  • New or changed interface texts are in crates/omsi-app/locales/app.yml, in every language I can (only existing texts are used)
  • Online play, saves, settings and mods made for the previous release still work, or the description says what changes
  • No original OMSI 2 content and no file of a megabyte or more in the commits

…nd keys

The quick menu shows 5x3 square tiles of the icon alone, in OMSI 2's order,
with the chosen tile's name under the grid and an arrow to the next page.
Lit tiles (route arrows on, a tour driven) are orange as in OMSI 2; tiles
the game menu does not offer now are greyed and take no clicks. The arrow
keys choose (across pages at the sides), Enter starts, Tab and the page
keys turn the page. The second page has the game menu's own lines (camera,
options, saving, screenshots, photo mode, skip stop, end the tour...),
run through the game menu's code, now game_menu_action.
@github-actions

Copy link
Copy Markdown
Contributor

Test builds for 4f42a2b

Platform Download
Android (arm64) android.zip
Linux x64 (game and dedicated server) linux-x64.zip
macOS (Apple silicon) macos-arm64.zip
Windows x64 (game and dedicated server) windows-x64.zip
  • Unpack the download into a new folder, not over your openOMSI. The launcher shows the version as ...-pr3335, and a test build is never updated. It shares your settings and OMSI 2 folder; mods you installed into your openOMSI folder are only seen when you unpack it into a copy of that folder.
  • Android: the download holds an APK that installs as a separate app, openOMSI PR feat: the Alt quick menu as OMSI 2's grid of icon tiles, with pages and keys #3335, beside the release, and shares its openOMSI folder.
  • What to try is under How to test in the description. Please comment with what you found and the version the launcher shows.
  • The links work for 14 days after the build.

@turbo-devv turbo-devv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good: the pause menu's actions move into game_menu_action unchanged, greyed tiles take no clicks on mouse or keyboard, the key handling and paging are covered by tests, CI green. Thanks!

@turbo-devv
turbo-devv merged commit fd8cfec into openOMSI-org:main Oct 26, 2026
12 checks passed
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