Skip to content

Inventory screen: live character over the paused world (pairs with Kazarov#3) - #27

Closed
Jeffiest wants to merge 7 commits into
TheMoonPeople:masterfrom
Jeffiest:port/inventory-screen-2026-10-13
Closed

Jeffiest wants to merge 7 commits into
TheMoonPeople:masterfrom
Jeffiest:port/inventory-screen-2026-10-13

Conversation

@Jeffiest

@Jeffiest Jeffiest commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Pairs with TheMoonPeople/Kazarov#3 ("Inventory screen: UI anchor width limit for centred layouts"), on the same branch name (inventory-screen-2026-10-13). This PR pins that Kazarov commit (5918d300), so it stays a draft until Kazarov#3 is merged and the pin can point at Kazarov main.

What

The Item/Bag menu no longer shows the brown retail backdrop. It shows the paused game world with the live inventory character standing in it.

  • Snapshot: opening the town or dungeon menu waits for the player to stop. It then swings the gameplay camera to the player's front, where its own collision check keeps it clear of scenery, and hides the player and their shadow. It frames that spot at a fixed distance between the quick-select circles and the status bars, with depth of field off, and grabs the frame.
  • Sharp backdrop: the Item pages draw the window-resolution picture of that frame from a texture of their own.
  • Live character: the menu character is drawn through the same camera at the player's spot, so gear changes show at once. The Ridepod and Monica's monster form are scaled to fit.
  • On exit: the camera is restored, and the last character shown becomes the world character, through the regular character-change path.
  • Ultrawide: the layout stays inside a centred 16:9 area, using UiAnchor::max_aspect from Kazarov#3.
  • Grab fix: the grab's CPU image is filled too. The menus reuse the grab texture's slot, and the texture then falls back to that image, which showed as noise.

Testing

  • Windows Release build and CTest: 1302/1302 pass. MenuDrawGrab.GrabRoundTrip is updated for the filled CPU image.
  • Checked by eye in a visible game window: Palm Brinks, Rainbow Butterfly Wood and Starlight Canyon; Max, Monica and the Ridepod; standing and running; 1280x720 and ultrawide.

Not in this PR

  • The live model in the pause-menu circle, and a weapon on/off toggle.
  • Mouse hit tests for the panels moved on wide screens. Pad navigation works.

Jeffie added 4 commits October 13, 2026 15:48
While the world backdrop is active on the Item/Bag page, skip the MENUFORM_DTYPE_MAINFRM and MENUFORM_DTYPE_MAINIMG forms so they cannot repaint the brown retail lens over the world. Other inventory forms still draw.

Include the graphics header's standard-library dependencies before the forced memcpy macro is in effect, so <filesystem> parses.
Opening the town or dungeon menu now waits for the player to stop, swings the gameplay camera to the player's front (its own collision check keeps it clear of scenery), hides the player and shadow, frames them at a fixed distance between the quick-select circles and the status bars with depth of field off, and grabs that frame. The Item pages draw the window-resolution picture of it from a texture of their own, and the live menu character through the same camera at the player's spot, so gear changes show at once. Leaving the menu makes the last shown character the world character and restores the camera.

The grab's CPU image is filled as well: the menus reuse the grab texture's slot, and the texture then falls back to that image, which showed as noise. The Item menu keeps its layout inside a centred 16:9 area on wider windows (UiAnchor::max_aspect, in the Kazarov submodule). Also guards the bag form loop so the PS2 build compiles.
Points tools/kazarov at 5918d300 (TheMoonPeople/Kazarov#3), which adds UiAnchor::max_aspect; the Item menu uses it to keep its layout inside a centred 16:9 area.
@Adubbz

Adubbz commented Oct 14, 2026

Copy link
Copy Markdown
Member

Please don’t edit any source files in the ps2 directory, they shouldn’t contain port changes beyond disabling assembly that won’t compile

@Jeffiest

Copy link
Copy Markdown
Contributor Author

Fixed. I dont think it will pass checks until the TheMoonPeople/Kazarov#3 is approved.

Adubbz pushed a commit that referenced this pull request Oct 18, 2026
The town and dungeon main menus wait while the following camera frames the
player: it swings to the player's front, settles against the scenery and holds
a close framing with the player and shadow hidden and depth of field off. The
Item page draws that frame at window resolution in place of its black fill and
retail backdrop forms, and draws the menu character through the world camera at
the player's spot. Other pages keep retail's grab of the world as it was when
the menu was asked for. Closing the menu restores the camera and the player.

The panels spread to the edges of a centred 16:9 area (UiAnchor::max_aspect);
the selection frame and command popup move with their panel, a carried item is
drawn at the pointer, and mouse hit tests map back to the retail layout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Adubbz Adubbz closed this Oct 18, 2026
Adubbz pushed a commit that referenced this pull request Oct 21, 2026
#137)

#136 pinned b93a533, the head of Kazarov #27's branch. #27 was squash-merged
into Kazarov master as 96c2d95, which has the same tree, so nothing in the
build changes. The pin now names a commit on the branch .gitmodules follows,
rather than one only kept by the pull request.

Co-authored-by: carrdylan52 <17089587+carrdylan52@users.noreply.github.com>
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