From fdf2a6fa786f231717c618fb4edcb8a7553385cd Mon Sep 17 00:00:00 2001 From: notmatthewbeshay <92357869+NotMachow@users.noreply.github.com> Date: Wed, 11 Mar 2026 00:28:02 +1100 Subject: [PATCH] Remove DWORD from UI thumbnail callback headers --- .../UI/UIScene_InGameSaveManagementMenu.cpp | 14 +++++++++++--- .../UI/UIScene_InGameSaveManagementMenu.h | 4 +++- .../Platform/Common/UI/UIScene_LoadMenu.cpp | 14 +++++++++++--- .../Platform/Common/UI/UIScene_LoadMenu.h | 2 +- .../Common/UI/UIScene_LoadOrJoinMenu.cpp | 14 +++++++++++--- .../Platform/Common/UI/UIScene_LoadOrJoinMenu.h | 4 +++- .../Common/UI/UIScene_QuadrantSignin.cpp | 17 +++++++++++++++-- .../Platform/Common/UI/UIScene_QuadrantSignin.h | 6 +++++- 8 files changed, 60 insertions(+), 15 deletions(-) diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_InGameSaveManagementMenu.cpp b/Minecraft.Client/Platform/Common/UI/UIScene_InGameSaveManagementMenu.cpp index 6ce1bf18e..faaecf340 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_InGameSaveManagementMenu.cpp +++ b/Minecraft.Client/Platform/Common/UI/UIScene_InGameSaveManagementMenu.cpp @@ -6,7 +6,15 @@ #include #endif -int UIScene_InGameSaveManagementMenu::LoadSaveDataThumbnailReturned(void *lpParam, std::uint8_t *pbThumbnail, DWORD dwThumbnailBytes) +namespace +{ +int LoadSaveDataThumbnailReturnedThunk(void *lpParam, PBYTE pbThumbnail, DWORD dwThumbnailBytes) +{ + return UIScene_InGameSaveManagementMenu::LoadSaveDataThumbnailReturned(lpParam, reinterpret_cast(pbThumbnail), dwThumbnailBytes); +} +} + +int UIScene_InGameSaveManagementMenu::LoadSaveDataThumbnailReturned(void *lpParam, std::uint8_t *pbThumbnail, unsigned int dwThumbnailBytes) { UIScene_InGameSaveManagementMenu *pClass= (UIScene_InGameSaveManagementMenu *)lpParam; @@ -258,7 +266,7 @@ void UIScene_InGameSaveManagementMenu::tick() app.DebugPrintf("Requesting the first thumbnail\n"); // set the save to load PSAVE_DETAILS pSaveDetails=StorageManager.ReturnSavesInfo(); - C4JStorage::ESaveGameState eLoadStatus=StorageManager.LoadSaveDataThumbnail(&pSaveDetails->SaveInfoA[(int)m_iRequestingThumbnailId],&LoadSaveDataThumbnailReturned,this); + C4JStorage::ESaveGameState eLoadStatus=StorageManager.LoadSaveDataThumbnail(&pSaveDetails->SaveInfoA[(int)m_iRequestingThumbnailId],&LoadSaveDataThumbnailReturnedThunk,this); if(eLoadStatus!=C4JStorage::ESaveGame_GetSaveThumbnail) { @@ -323,7 +331,7 @@ void UIScene_InGameSaveManagementMenu::tick() app.DebugPrintf("Requesting another thumbnail\n"); // set the save to load PSAVE_DETAILS pSaveDetails=StorageManager.ReturnSavesInfo(); - C4JStorage::ESaveGameState eLoadStatus=StorageManager.LoadSaveDataThumbnail(&pSaveDetails->SaveInfoA[(int)m_iRequestingThumbnailId],&LoadSaveDataThumbnailReturned,this); + C4JStorage::ESaveGameState eLoadStatus=StorageManager.LoadSaveDataThumbnail(&pSaveDetails->SaveInfoA[(int)m_iRequestingThumbnailId],&LoadSaveDataThumbnailReturnedThunk,this); if(eLoadStatus!=C4JStorage::ESaveGame_GetSaveThumbnail) { // something went wrong diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_InGameSaveManagementMenu.h b/Minecraft.Client/Platform/Common/UI/UIScene_InGameSaveManagementMenu.h index f1a317da9..d012e149a 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_InGameSaveManagementMenu.h +++ b/Minecraft.Client/Platform/Common/UI/UIScene_InGameSaveManagementMenu.h @@ -1,5 +1,7 @@ #pragma once +#include + #include "UIScene.h" class UIScene_InGameSaveManagementMenu : public UIScene @@ -96,7 +98,7 @@ protected: public: - static int LoadSaveDataThumbnailReturned(void *lpParam, std::uint8_t *pbThumbnail, DWORD dwThumbnailBytes); + static int LoadSaveDataThumbnailReturned(void *lpParam, std::uint8_t *pbThumbnail, unsigned int thumbnailBytes); static int DeleteSaveDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); static int DeleteSaveDataReturned(void *lpParam,bool bRes); protected: diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_LoadMenu.cpp b/Minecraft.Client/Platform/Common/UI/UIScene_LoadMenu.cpp index dc2feeb50..d4df5a4e7 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_LoadMenu.cpp +++ b/Minecraft.Client/Platform/Common/UI/UIScene_LoadMenu.cpp @@ -23,6 +23,14 @@ #define CHECKFORAVAILABLETEXTUREPACKS_TIMER_TIME 50 #endif +namespace +{ +int LoadSaveDataThumbnailReturnedThunk(void *lpParam, PBYTE pbThumbnail, DWORD dwThumbnailBytes) +{ + return UIScene_LoadMenu::LoadSaveDataThumbnailReturned(lpParam, reinterpret_cast(pbThumbnail), dwThumbnailBytes); +} +} + int UIScene_LoadMenu::m_iDifficultyTitleSettingA[4]= { IDS_DIFFICULTY_TITLE_PEACEFUL, @@ -31,7 +39,7 @@ int UIScene_LoadMenu::m_iDifficultyTitleSettingA[4]= IDS_DIFFICULTY_TITLE_HARD }; -int UIScene_LoadMenu::LoadSaveDataThumbnailReturned(void *lpParam, std::uint8_t *pbThumbnail, DWORD dwThumbnailBytes) +int UIScene_LoadMenu::LoadSaveDataThumbnailReturned(void *lpParam, std::uint8_t *pbThumbnail, unsigned int dwThumbnailBytes) { UIScene_LoadMenu *pClass= (UIScene_LoadMenu *)lpParam; @@ -225,9 +233,9 @@ UIScene_LoadMenu::UIScene_LoadMenu(int iPad, void *initData, UILayer *parentLaye #ifdef _DURANGO // On Durango, we have an extra flag possible with LoadSaveDataThumbnail, which if true will force the loading of this thumbnail even if the save data isn't sync'd from // the cloud at this stage. This could mean that there could be a pretty large delay before the callback happens, in this case. - C4JStorage::ESaveGameState eLoadStatus=StorageManager.LoadSaveDataThumbnail(&pSaveDetails->SaveInfoA[(int)m_iSaveGameInfoIndex],&LoadSaveDataThumbnailReturned,this,true); + C4JStorage::ESaveGameState eLoadStatus=StorageManager.LoadSaveDataThumbnail(&pSaveDetails->SaveInfoA[(int)m_iSaveGameInfoIndex],&LoadSaveDataThumbnailReturnedThunk,this,true); #else - C4JStorage::ESaveGameState eLoadStatus=StorageManager.LoadSaveDataThumbnail(&pSaveDetails->SaveInfoA[(int)m_iSaveGameInfoIndex],&LoadSaveDataThumbnailReturned,this); + C4JStorage::ESaveGameState eLoadStatus=StorageManager.LoadSaveDataThumbnail(&pSaveDetails->SaveInfoA[(int)m_iSaveGameInfoIndex],&LoadSaveDataThumbnailReturnedThunk,this); #endif m_bShowTimer = true; } diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_LoadMenu.h b/Minecraft.Client/Platform/Common/UI/UIScene_LoadMenu.h index cb826e73c..7c33bb516 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_LoadMenu.h +++ b/Minecraft.Client/Platform/Common/UI/UIScene_LoadMenu.h @@ -118,7 +118,6 @@ private: static int LoadSaveDataReturned(void *pParam,bool bIsCorrupt, bool bIsOwner); static int TrophyDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); static int LoadDataComplete(void *pParam); - static int LoadSaveDataThumbnailReturned(void *lpParam, std::uint8_t *pbThumbnail, DWORD dwThumbnailBytes); static int CheckResetNetherReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); static int DeleteSaveDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); static int DeleteSaveDataReturned(void *pParam,bool bSuccess); @@ -129,5 +128,6 @@ private: #endif public: + static int LoadSaveDataThumbnailReturned(void *lpParam, std::uint8_t *pbThumbnail, unsigned int thumbnailBytes); static int StartGame_SignInReturned(void *pParam, bool, int); }; diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_LoadOrJoinMenu.cpp b/Minecraft.Client/Platform/Common/UI/UIScene_LoadOrJoinMenu.cpp index e5ec9b9fd..d63be77b0 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_LoadOrJoinMenu.cpp +++ b/Minecraft.Client/Platform/Common/UI/UIScene_LoadOrJoinMenu.cpp @@ -51,7 +51,15 @@ C4JStorage::SAVETRANSFER_FILE_DETAILS UIScene_LoadOrJoinMenu::m_debugTransferDet #endif #endif -int UIScene_LoadOrJoinMenu::LoadSaveDataThumbnailReturned(void *lpParam, std::uint8_t *pbThumbnail, DWORD dwThumbnailBytes) +namespace +{ +int LoadSaveDataThumbnailReturnedThunk(void *lpParam, PBYTE pbThumbnail, DWORD dwThumbnailBytes) +{ + return UIScene_LoadOrJoinMenu::LoadSaveDataThumbnailReturned(lpParam, reinterpret_cast(pbThumbnail), dwThumbnailBytes); +} +} + +int UIScene_LoadOrJoinMenu::LoadSaveDataThumbnailReturned(void *lpParam, std::uint8_t *pbThumbnail, unsigned int dwThumbnailBytes) { UIScene_LoadOrJoinMenu *pClass= (UIScene_LoadOrJoinMenu *)lpParam; @@ -639,7 +647,7 @@ void UIScene_LoadOrJoinMenu::tick() app.DebugPrintf("Requesting the first thumbnail\n"); // set the save to load PSAVE_DETAILS pSaveDetails=StorageManager.ReturnSavesInfo(); - C4JStorage::ESaveGameState eLoadStatus=StorageManager.LoadSaveDataThumbnail(&pSaveDetails->SaveInfoA[(int)m_iRequestingThumbnailId],&LoadSaveDataThumbnailReturned,this); + C4JStorage::ESaveGameState eLoadStatus=StorageManager.LoadSaveDataThumbnail(&pSaveDetails->SaveInfoA[(int)m_iRequestingThumbnailId],&LoadSaveDataThumbnailReturnedThunk,this); if(eLoadStatus!=C4JStorage::ESaveGame_GetSaveThumbnail) { @@ -702,7 +710,7 @@ void UIScene_LoadOrJoinMenu::tick() app.DebugPrintf("Requesting another thumbnail\n"); // set the save to load PSAVE_DETAILS pSaveDetails=StorageManager.ReturnSavesInfo(); - C4JStorage::ESaveGameState eLoadStatus=StorageManager.LoadSaveDataThumbnail(&pSaveDetails->SaveInfoA[(int)m_iRequestingThumbnailId],&LoadSaveDataThumbnailReturned,this); + C4JStorage::ESaveGameState eLoadStatus=StorageManager.LoadSaveDataThumbnail(&pSaveDetails->SaveInfoA[(int)m_iRequestingThumbnailId],&LoadSaveDataThumbnailReturnedThunk,this); if(eLoadStatus!=C4JStorage::ESaveGame_GetSaveThumbnail) { // something went wrong diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_LoadOrJoinMenu.h b/Minecraft.Client/Platform/Common/UI/UIScene_LoadOrJoinMenu.h index 4e4504739..7837308d2 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_LoadOrJoinMenu.h +++ b/Minecraft.Client/Platform/Common/UI/UIScene_LoadOrJoinMenu.h @@ -1,5 +1,7 @@ #pragma once +#include + #include "UIScene.h" class LevelGenerationOptions; @@ -145,7 +147,7 @@ protected: public: - static int LoadSaveDataThumbnailReturned(void *lpParam, std::uint8_t *pbThumbnail, DWORD dwThumbnailBytes); + static int LoadSaveDataThumbnailReturned(void *lpParam, std::uint8_t *pbThumbnail, unsigned int thumbnailBytes); static int LoadSaveCallback(void *lpParam,bool bRes); static int DeleteSaveDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); static int SaveOptionsDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_QuadrantSignin.cpp b/Minecraft.Client/Platform/Common/UI/UIScene_QuadrantSignin.cpp index 4f453c4f8..f5d59784b 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_QuadrantSignin.cpp +++ b/Minecraft.Client/Platform/Common/UI/UIScene_QuadrantSignin.cpp @@ -6,6 +6,11 @@ #include "../Network/Sony/SonyHttp.h" #endif +namespace +{ +int AvatarReturnedThunk(void *lpParam, PBYTE pbThumbnail, DWORD dwThumbnailBytes); +} + UIScene_QuadrantSignin::UIScene_QuadrantSignin(int iPad, void *_initData, UILayer *parentLayer) : UIScene(iPad, parentLayer) { // Setup all the Iggy references we need for this scene @@ -226,7 +231,7 @@ void UIScene_QuadrantSignin::updateState() if(!m_iconRequested[i]) { app.DebugPrintf(app.USER_SR, "Requesting avatar for %d\n", i); - if(ProfileManager.GetProfileAvatar(i, &UIScene_QuadrantSignin::AvatarReturned, this)) + if(ProfileManager.GetProfileAvatar(i, &AvatarReturnedThunk, this)) { m_iconRequested[i] = true; m_lastRequestedAvatar = i; @@ -251,6 +256,14 @@ void UIScene_QuadrantSignin::updateState() } } +namespace +{ +int AvatarReturnedThunk(void *lpParam, PBYTE pbThumbnail, DWORD dwThumbnailBytes) +{ + return UIScene_QuadrantSignin::AvatarReturned(lpParam, reinterpret_cast(pbThumbnail), dwThumbnailBytes); +} +} + void UIScene_QuadrantSignin::setControllerState(int iPad, EControllerStatus state) { if(m_controllerStatus[iPad] != state) @@ -269,7 +282,7 @@ void UIScene_QuadrantSignin::setControllerState(int iPad, EControllerStatus stat } } -int UIScene_QuadrantSignin::AvatarReturned(void *lpParam, std::uint8_t *pbThumbnail,DWORD dwThumbnailBytes) +int UIScene_QuadrantSignin::AvatarReturned(void *lpParam, std::uint8_t *pbThumbnail, unsigned int dwThumbnailBytes) { UIScene_QuadrantSignin *pClass = (UIScene_QuadrantSignin *)lpParam; app.DebugPrintf(app.USER_SR,"AvatarReturned callback\n"); diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_QuadrantSignin.h b/Minecraft.Client/Platform/Common/UI/UIScene_QuadrantSignin.h index b082f6fef..f85be56fc 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_QuadrantSignin.h +++ b/Minecraft.Client/Platform/Common/UI/UIScene_QuadrantSignin.h @@ -1,5 +1,7 @@ #pragma once +#include + #include "UIScene.h" class UIScene_QuadrantSignin : public UIScene @@ -99,7 +101,6 @@ public: private: static int SignInReturned(void *pParam,bool bContinue, int iPad); - static int AvatarReturned(void *lpParam, std::uint8_t *pbThumbnail, DWORD dwThumbnailBytes); void updateState(); void setControllerState(int iPad, EControllerStatus state); @@ -107,4 +108,7 @@ private: #ifdef _DURANGO static void checkAllPrivilegesCallback(void *lpParam, bool hasPrivileges, int iPad); #endif + +public: + static int AvatarReturned(void *lpParam, std::uint8_t *pbThumbnail, unsigned int thumbnailBytes); };