Skip to content

fix: Display save thumbnail in world detail view on Windows64#1519

Open
dtentiion wants to merge 1 commit intoMCLCE:mainfrom
dtentiion:pr/win64-loadmenu-thumbnail
Open

fix: Display save thumbnail in world detail view on Windows64#1519
dtentiion wants to merge 1 commit intoMCLCE:mainfrom
dtentiion:pr/win64-loadmenu-thumbnail

Conversation

@dtentiion
Copy link
Copy Markdown
Contributor

@dtentiion dtentiion commented Apr 16, 2026

Description

Fixes the world detail screen (the menu you see after clicking on a save) not showing the save thumbnail on Windows 64-bit. The save list displayed thumbnails correctly after the 4JLibs upgrade, but clicking on a world showed an empty grey box where the thumbnail should be.

Changes

Previous Behavior

Clicking on a world in the save list opened the detail view with no thumbnail. The grey placeholder was always empty regardless of whether the save had a valid thumbnail in its thumbnails/thumbData.png file. This affected both game-created saves and converted Xbox 360 saves.

Screenshot 2026-04-16 031400

Root Cause

The UIScene_LoadMenu constructor had thumbnail handling code for PS3, Orbis, Durango, and PSVita behind a platform guard at line 202, but no _WINDOWS64 path. The existing Win64 block (line 251) only set the world name label and completely ignored the thumbnail data that the save list had already loaded. The m_pbThumbnailData and m_uiThumbnailSize members were also never initialized, leaving them as garbage values.

New Behavior

When opening the world detail view, the thumbnail is displayed correctly. If the save list already loaded the thumbnail (via LoadSaveDataThumbnail), it gets registered as a substitution texture and set on the bitmap icon directly. If the data wasn't loaded yet, the storage lib is called to fetch it. The thumbnail updates on every save, so re-saving a world will show the latest screenshot next time.

Screenshot 2026-04-16 031443

Fix

  • UIScene_LoadMenu.cpp - constructor: Added _WINDOWS64 thumbnail handling. Converts the save filename to a wide string for use as the texture name. If saveDetails->pbThumbnailData is already populated from the save list, registers it as a substitution texture and sets it on m_bitmapIcon directly (without going through m_bSaveThumbnailReady, which would trigger NavigateBack meant for dismissing the timer loading scene on console platforms). Otherwise falls back to StorageManager.LoadSaveDataThumbnail() to load it from disk. Also initializes m_pbThumbnailData and m_uiThumbnailSize to zero to prevent undefined reads.

AI Use Disclosure

No AI was used in the development of this pull request.

@codeHusky codeHusky self-assigned this Apr 17, 2026
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