From 3640c9757590eed46b2b5226cada7a82aea64962 Mon Sep 17 00:00:00 2001 From: Tropical <42101043+tropicaaal@users.noreply.github.com> Date: Sun, 22 Mar 2026 13:14:16 -0500 Subject: [PATCH] more strings, UIScene fixes --- .../Windows64Media/loc/en-EN/strings.lang | 120 +++++++ .../Common/UI/UIScene_DLCOffersMenu.cpp | 63 ++-- .../Platform/Common/UI/UIScene_JoinMenu.cpp | 339 +++++++++--------- 3 files changed, 318 insertions(+), 204 deletions(-) diff --git a/Minecraft.Assets/Windows64Media/loc/en-EN/strings.lang b/Minecraft.Assets/Windows64Media/loc/en-EN/strings.lang index 8124eff99..b6d08ab23 100644 --- a/Minecraft.Assets/Windows64Media/loc/en-EN/strings.lang +++ b/Minecraft.Assets/Windows64Media/loc/en-EN/strings.lang @@ -7667,7 +7667,127 @@ You can upload a world save to the save transfer area using Minecraft: PlayStati A network error has occurred. Exiting to Main Menu. + + Show all Mash-up Worlds + + + Hide + + + + Minecraft: PlayStation®3 Edition + + + + Options + + + + Save Cache + + + + A network error has occurred. + + + + Network Error + + + + A network error has occurred. Exiting to Main Menu. + + + + Online service is disabled on your Sony Entertainment Network account due to chat restrictions. + + + + Online service is disabled on your Sony Entertainment Network account due to parental control settings. + + + + Online Service + + + + You have been signed out from the "PSN". Online features of the game will not be available until you sign back into the "PSN". + + + + You have been signed out from the "PSN". Online features of the game will not be available until you sign back into the "PSN". Exiting to Main Menu. + + + + Choose user for player %d (or cancel to play as guest) + + + + Free + + + + Your Options file is corrupt and needs to be deleted. + + + + Delete options file. + + + + Retry loading options file. + + + + Your Save Cache file is corrupt and needs to be deleted. + + + + Trophies Disabled + + + + Trophies will be disabled because this save belongs to another user. + + + + Fatal error: Trophy Initialization failed. Please exit game. + + + + View Game Invites + + + + Corrupt File + + + + Controller Disconnected + + + + Your controller has been disconnected. Please reconnect the controller. + + + + Online service is disabled on your Sony Entertainment Network account due to parental control settings for one of your local players. + + + Online features are disabled due to a game update being available. + + + There are no downloadable content offers available for this title at the moment. + + + + Invitation + + + + Please come and play a game of Minecraft: PlayStation®Vita Edition! +  diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_DLCOffersMenu.cpp b/Minecraft.Client/Platform/Common/UI/UIScene_DLCOffersMenu.cpp index 078ad5b66..7eef0d067 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_DLCOffersMenu.cpp +++ b/Minecraft.Client/Platform/Common/UI/UIScene_DLCOffersMenu.cpp @@ -1,13 +1,13 @@ -#include "../../Minecraft.World/Platform/stdafx.h" +#include "../../stdafx.h" #include "UI.h" #include "UIScene_DLCOffersMenu.h" -#include "../../Minecraft.World/Util/StringHelpers.h" +#include "../../../../Minecraft.World/Util/StringHelpers.h" #if defined(__PS3__) || defined(__ORBIS__) || defined(__PSVITA__) -#include "../Network/Sony/SonyHttp.h" +#include "Common/Network/Sony/SonyHttp.h" #endif #ifdef __PSVITA__ -#include "../../Minecraft.Client/Platform/PSVita/Network/SonyCommerce_Vita.h" +#include "PSVita/Network/SonyCommerce_Vita.h" #endif #define PLAYER_ONLINE_TIMER_ID 0 @@ -186,35 +186,35 @@ void UIScene_DLCOffersMenu::handleInput(int iPad, int key, bool repeat, case 0: m_labelHTMLSellText.init("Voici un fantastique mini-pack de 24 apparences pour personnaliser votre personnage Minecraft et vous mettre dans -l'ambiance des fêtes de fin d'année.

1-4 joueurs
2-8 joueurs en -réseau

Cet article fait l’objet d’une licence ou d’une sous-licence de -Sony Computer Entertainment America, et est soumis aux conditions générales du -service du réseau, au contrat d’utilisateur, aux restrictions d’utilisation de +l'ambiance des f�tes de fin d'ann�e.

1-4 joueurs
2-8 joueurs en +r�seau

Cet article fait l�objet d�une licence ou d�une sous-licence de +Sony Computer Entertainment America, et est soumis aux conditions g�n�rales du +service du r�seau, au contrat d�utilisateur, aux restrictions d�utilisation de cet article et aux autres conditions applicables, disponibles sur le site www.us.playstation.com/support/useragreements. Si vous ne souhaitez pas accepter -ces conditions, ne téléchargez pas ce produit. Cet article peut être utilisé -avec un maximum de deux systèmes PlayStation®3 activés associés à ce compte Sony -Entertainment Network. 

'Minecraft' est une marque commerciale de Notch +ces conditions, ne t�l�chargez pas ce produit. Cet article peut �tre utilis� +avec un maximum de deux syst�mes PlayStation�3 activ�s associ�s � ce compte Sony +Entertainment Network.�

'Minecraft' est une marque commerciale de Notch Development AB."); break; case 1: m_labelHTMLSellText.init("Un fabuloso minipack de 24 aspectos para personalizar tu personaje de Minecraft y ponerte a tono con las fiestas.

1-4 jugadores
2-8 jugadores en red

Sony Computer -Entertainment America le concede la licencia o sublicencia de este artículo, que -está sujeto a los términos de servicio y al acuerdo de usuario de la red. Las -restricciones de uso de este artículo, así como otros términos aplicables, se +Entertainment America le concede la licencia o sublicencia de este art�culo, que +est� sujeto a los t�rminos de servicio y al acuerdo de usuario de la red. Las +restricciones de uso de este art�culo, as� como otros t�rminos aplicables, se encuentran en www.us.playstation.com/support/useragreements. Si no desea aceptar -todos estos términos, no descargue este artículo. Este artículo puede usarse en -hasta dos sistemas PlayStation®3 activados asociados con esta cuenta de Sony -Entertainment Network. 

'Minecraft' es una marca comercial de Notch -Development AB."); break; case 2: m_labelHTMLSellText.init("Este é um incrível +todos estos t�rminos, no descargue este art�culo. Este art�culo puede usarse en +hasta dos sistemas PlayStation�3 activados asociados con esta cuenta de Sony +Entertainment Network.�

'Minecraft' es una marca comercial de Notch +Development AB."); break; case 2: m_labelHTMLSellText.init("Este � um incr�vel pacote com 24 capas para personalizar seu personagem no Minecraft e entrar no clima de final de ano.

1-4 Jogadores
Jogadores em rede 2-8

-Este item está sendo licenciado ou sublicenciado para você pela Sony Computer -Entertainment America e está sujeito aos Termos de Serviço da Rede e Acordo do -Usuário, as restrições de uso deste item e outros termos aplicáveis estão -localizados em www.us.playstation.com/support/useragreements. Caso não queira -aceitar todos esses termos, não baixe este item. Este item pode ser usado com -até 2 sistemas PlayStation®3 ativados associados a esta Conta de Rede Sony -Entertainment. 

'Minecraft' é uma marca registrada da Notch Development +Este item est� sendo licenciado ou sublicenciado para voc� pela Sony Computer +Entertainment America e est� sujeito aos Termos de Servi�o da Rede e Acordo do +Usu�rio, as restri��es de uso deste item e outros termos aplic�veis est�o +localizados em www.us.playstation.com/support/useragreements. Caso n�o queira +aceitar todos esses termos, n�o baixe este item. Este item pode ser usado com +at� 2 sistemas PlayStation�3 ativados associados a esta Conta de Rede Sony +Entertainment.�

'Minecraft' � uma marca registrada da Notch Development AB"); break; } iTextC++; @@ -279,7 +279,7 @@ void UIScene_DLCOffersMenu::handlePress(F64 controlId, F64 childId) { #else int iIndex = (int)childId; - ULONGLONG ullIndexA[1]; + uint64_t ullIndexA[1]; ullIndexA[0] = StorageManager.GetOffer(iIndex).qwOfferID; StorageManager.InstallOffer(1, ullIndexA, NULL, NULL); #endif @@ -396,8 +396,8 @@ void UIScene_DLCOffersMenu::tick() { bDLCIsAvailable = true; } } -#else // __ORBIS__ - // is the item purchasable? +#else // __ORBIS__ + // is the item purchasable? if (info.purchasabilityFlag == SCE_TOOLKIT_NP_COMMERCE_NOT_PURCHASED) { // can be bought @@ -431,8 +431,7 @@ void UIScene_DLCOffersMenu::tick() { } // get the image - if we haven't already - std::wstring textureName = - filenametostd::wstring(info.imageUrl); + std::wstring textureName = filenametowstring(info.imageUrl); if (hasRegisteredSubstitutionTexture(textureName) == false) { @@ -554,7 +553,7 @@ void UIScene_DLCOffersMenu::tick() { // get the image // then retrieve from the web - std::wstring textureName = filenametostd::wstring(info.imageUrl); + std::wstring textureName = filenametowstring(info.imageUrl); if (hasRegisteredSubstitutionTexture(textureName) == false) { PBYTE pbImageData; @@ -887,4 +886,4 @@ void UIScene_DLCOffersMenu::HandleDLCInstalled() { // app.DebugPrintf(4,"UIScene_SkinSelectMenu::HandleDLCMountingComplete\n"); //} -#endif +#endif \ No newline at end of file diff --git a/Minecraft.Client/Platform/Common/UI/UIScene_JoinMenu.cpp b/Minecraft.Client/Platform/Common/UI/UIScene_JoinMenu.cpp index d073a2530..7271f1752 100644 --- a/Minecraft.Client/Platform/Common/UI/UIScene_JoinMenu.cpp +++ b/Minecraft.Client/Platform/Common/UI/UIScene_JoinMenu.cpp @@ -406,42 +406,42 @@ int UIScene_JoinMenu::StartGame_SignInReturned(void* pParam, bool bContinue, } return 0; } +} - // Shared function to join the game that is the same whether we used the - // sign-in UI or not - void UIScene_JoinMenu::JoinGame(UIScene_JoinMenu * pClass) { - bool noPrivileges = false; - int signedInUsers = 0; - int localUsersMask = 0; - DWORD dwLocalUsersMask = 0; - bool isSignedInLive = true; - int iPadNotSignedInLive = -1; +// Shared function to join the game that is the same whether we used the +// sign-in UI or not +void UIScene_JoinMenu::JoinGame(UIScene_JoinMenu* pClass) { + bool noPrivileges = false; + int signedInUsers = 0; + int localUsersMask = 0; + DWORD dwLocalUsersMask = 0; + bool isSignedInLive = true; + int iPadNotSignedInLive = -1; - ProfileManager.SetLockedProfile(0); // TEMP! + ProfileManager.SetLockedProfile(0); // TEMP! - // If we're in SD mode, then only the primary player gets to play - if (app.IsLocalMultiplayerAvailable()) { - for (unsigned int index = 0; index < XUSER_MAX_COUNT; ++index) { - if (ProfileManager.IsSignedIn(index)) { - if (isSignedInLive && - !ProfileManager.IsSignedInLive(index)) { - // Record the first non signed in live pad - iPadNotSignedInLive = index; - } - - if (!ProfileManager.AllowedToPlayMultiplayer(index)) - noPrivileges = true; - dwLocalUsersMask |= - CGameNetworkManager::GetLocalPlayerMask(index); - isSignedInLive = - isSignedInLive && ProfileManager.IsSignedInLive(index); + // If we're in SD mode, then only the primary player gets to play + if (app.IsLocalMultiplayerAvailable()) { + for (unsigned int index = 0; index < XUSER_MAX_COUNT; ++index) { + if (ProfileManager.IsSignedIn(index)) { + if (isSignedInLive && !ProfileManager.IsSignedInLive(index)) { + // Record the first non signed in live pad + iPadNotSignedInLive = index; } - } - } else { - if (ProfileManager.IsSignedIn(ProfileManager.GetPrimaryPad())) { - if (!ProfileManager.AllowedToPlayMultiplayer( - ProfileManager.GetPrimaryPad())) + + if (!ProfileManager.AllowedToPlayMultiplayer(index)) noPrivileges = true; + dwLocalUsersMask |= + CGameNetworkManager::GetLocalPlayerMask(index); + isSignedInLive = + isSignedInLive && ProfileManager.IsSignedInLive(index); + } + } + } else { + if (ProfileManager.IsSignedIn(ProfileManager.GetPrimaryPad())) { + if (!ProfileManager.AllowedToPlayMultiplayer( + ProfileManager.GetPrimaryPad())) + noPrivileges = true; ProfileManager.GetPrimaryPad()); isSignedInLive = ProfileManager.IsSignedInLive( @@ -451,169 +451,164 @@ int UIScene_JoinMenu::StartGame_SignInReturned(void* pParam, bool bContinue, SQRNetworkManager_AdHoc_Vita::GetAdhocStatus()) isSignedInLive = true; #endif - } } + } - // If this is an online game but not all players are signed in to Live, - // stop! - if (!isSignedInLive) { + // If this is an online game but not all players are signed in to Live, + // stop! + if (!isSignedInLive) { #ifdef __ORBIS__ - // Check if PSN is unavailable because of age restriction - int npAvailability = - ProfileManager.getNPAvailability(iPadNotSignedInLive); - if (npAvailability == SCE_NP_ERROR_AGE_RESTRICTION) { - pClass->m_bIgnoreInput = false; - // 4J Stu - This is a bit messy and is due to the library - // incorrectly returning false for IsSignedInLive if the - // npAvailability isn't SCE_OK - unsigned int uiIDA[1]; - uiIDA[0] = IDS_OK; - ui.RequestErrorMessage(IDS_ONLINE_SERVICE_TITLE, - IDS_CONTENT_RESTRICTION, uiIDA, 1, - iPadNotSignedInLive); - } else -#endif - { - pClass->m_bIgnoreInput = false; - unsigned int uiIDA[1]; - uiIDA[0] = IDS_CONFIRM_OK; - ui.RequestErrorMessage(IDS_PRO_NOTONLINE_TITLE, - IDS_PRO_NOTONLINE_TEXT, uiIDA, 1, - ProfileManager.GetPrimaryPad()); - } - return; - } - - // Check if user-created content is allowed, as we cannot play - // multiplayer if it's not - bool noUGC = false; - bool pccAllowed = true; - bool pccFriendsAllowed = true; - -#if defined(__PS3__) || defined(__PSVITA__) - if (isSignedInLive) { - ProfileManager.GetChatAndContentRestrictions( - ProfileManager.GetPrimaryPad(), false, &noUGC, NULL, NULL); - } -#else - ProfileManager.AllowedPlayerCreatedContent( - ProfileManager.GetPrimaryPad(), false, &pccAllowed, - &pccFriendsAllowed); - if (!pccAllowed && !pccFriendsAllowed) noUGC = true; -#endif - -#ifdef __PSVITA__ - if (CGameNetworkManager::usingAdhocMode()) { - noPrivileges = false; - noUGC = false; - } -#endif - - if (noUGC) { - pClass->setVisible(true); + // Check if PSN is unavailable because of age restriction + int npAvailability = + ProfileManager.getNPAvailability(iPadNotSignedInLive); + if (npAvailability == SCE_NP_ERROR_AGE_RESTRICTION) { pClass->m_bIgnoreInput = false; - - int messageText = - IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_SINGLE_LOCAL; - if (dwSignedInUsers > 1) - messageText = IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_ALL_LOCAL; - - ui.RequestUGCMessageBox(IDS_CONNECTION_FAILED, messageText); - } else if (noPrivileges) { - pClass->setVisible(true); + // 4J Stu - This is a bit messy and is due to the library + // incorrectly returning false for IsSignedInLive if the + // npAvailability isn't SCE_OK + unsigned int uiIDA[1]; + uiIDA[0] = IDS_OK; + ui.RequestErrorMessage(IDS_ONLINE_SERVICE_TITLE, + IDS_CONTENT_RESTRICTION, uiIDA, 1, + iPadNotSignedInLive); + } else +#endif + { pClass->m_bIgnoreInput = false; unsigned int uiIDA[1]; uiIDA[0] = IDS_CONFIRM_OK; - ui.RequestErrorMessage(IDS_NO_MULTIPLAYER_PRIVILEGE_TITLE, - IDS_NO_MULTIPLAYER_PRIVILEGE_JOIN_TEXT, - uiIDA, 1, ProfileManager.GetPrimaryPad()); - } else { -#if defined(__ORBIS__) || defined(__PSVITA__) - bool chatRestricted = false; - ProfileManager.GetChatAndContentRestrictions( - ProfileManager.GetPrimaryPad(), false, &chatRestricted, NULL, - NULL); - if (chatRestricted) { - ProfileManager.DisplaySystemMessage( - SCE_MSG_DIALOG_SYSMSG_TYPE_TRC_PSN_CHAT_RESTRICTION, - ProfileManager.GetPrimaryPad()); - } + ui.RequestErrorMessage(IDS_PRO_NOTONLINE_TITLE, + IDS_PRO_NOTONLINE_TEXT, uiIDA, 1, + ProfileManager.GetPrimaryPad()); + } + return; + } + + // Check if user-created content is allowed, as we cannot play + // multiplayer if it's not + bool noUGC = false; + bool pccAllowed = true; + bool pccFriendsAllowed = true; + +#if defined(__PS3__) || defined(__PSVITA__) + if (isSignedInLive) { + ProfileManager.GetChatAndContentRestrictions( + ProfileManager.GetPrimaryPad(), false, &noUGC, NULL, NULL); + } +#else + ProfileManager.AllowedPlayerCreatedContent( + ProfileManager.GetPrimaryPad(), false, &pccAllowed, &pccFriendsAllowed); + if (!pccAllowed && !pccFriendsAllowed) noUGC = true; #endif - CGameNetworkManager::eJoinGameResult result = - g_NetworkManager.JoinGame(pClass->m_selectedSession, - dwLocalUsersMask); - // Alert the app the we no longer want to be informed of ethernet - // connections - app.SetLiveLinkRequired(false); +#ifdef __PSVITA__ + if (CGameNetworkManager::usingAdhocMode()) { + noPrivileges = false; + noUGC = false; + } +#endif - if (result != CGameNetworkManager::JOINGAME_SUCCESS) { - int exitReasonStringId = -1; - switch (result) { - case CGameNetworkManager::JOINGAME_FAIL_SERVER_FULL: - exitReasonStringId = IDS_DISCONNECTED_SERVER_FULL; - break; - default: - break; - } + if (noUGC) { + pClass->setVisible(true); + pClass->m_bIgnoreInput = false; - if (exitReasonStringId == -1) { - ui.NavigateBack(pClass->m_iPad); - } else { - unsigned int uiIDA[1]; - uiIDA[0] = IDS_CONFIRM_OK; - ui.RequestErrorMessage(IDS_CONNECTION_FAILED, - exitReasonStringId, uiIDA, 1, - ProfileManager.GetPrimaryPad()); - exitReasonStringId = -1; + int messageText = IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_SINGLE_LOCAL; + if (dwSignedInUsers > 1) + messageText = IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_ALL_LOCAL; - ui.NavigateToHomeMenu(); - } + ui.RequestUGCMessageBox(IDS_CONNECTION_FAILED, messageText); + } else if (noPrivileges) { + pClass->setVisible(true); + pClass->m_bIgnoreInput = false; + unsigned int uiIDA[1]; + uiIDA[0] = IDS_CONFIRM_OK; + ui.RequestErrorMessage(IDS_NO_MULTIPLAYER_PRIVILEGE_TITLE, + IDS_NO_MULTIPLAYER_PRIVILEGE_JOIN_TEXT, uiIDA, 1, + ProfileManager.GetPrimaryPad()); + } else { +#if defined(__ORBIS__) || defined(__PSVITA__) + bool chatRestricted = false; + ProfileManager.GetChatAndContentRestrictions( + ProfileManager.GetPrimaryPad(), false, &chatRestricted, NULL, NULL); + if (chatRestricted) { + ProfileManager.DisplaySystemMessage( + SCE_MSG_DIALOG_SYSMSG_TYPE_TRC_PSN_CHAT_RESTRICTION, + ProfileManager.GetPrimaryPad()); + } +#endif + CGameNetworkManager::eJoinGameResult result = g_NetworkManager.JoinGame( + pClass->m_selectedSession, dwLocalUsersMask); + + // Alert the app the we no longer want to be informed of ethernet + // connections + app.SetLiveLinkRequired(false); + + if (result != CGameNetworkManager::JOINGAME_SUCCESS) { + int exitReasonStringId = -1; + switch (result) { + case CGameNetworkManager::JOINGAME_FAIL_SERVER_FULL: + exitReasonStringId = IDS_DISCONNECTED_SERVER_FULL; + break; + default: + break; + } + + if (exitReasonStringId == -1) { + ui.NavigateBack(pClass->m_iPad); + } else { + unsigned int uiIDA[1]; + uiIDA[0] = IDS_CONFIRM_OK; + ui.RequestErrorMessage(IDS_CONNECTION_FAILED, + exitReasonStringId, uiIDA, 1, + ProfileManager.GetPrimaryPad()); + exitReasonStringId = -1; + + ui.NavigateToHomeMenu(); } } } +} - void UIScene_JoinMenu::handleTimerComplete(int id) { - switch (id) { - case UPDATE_PLAYERS_TIMER_ID: { +void UIScene_JoinMenu::handleTimerComplete(int id) { + switch (id) { + case UPDATE_PLAYERS_TIMER_ID: { #if TO_BE_IMPLEMENTED - PlayerUID selectedPlayerXUID = - m_selectedSession->data.players[playersList.GetCurSel()]; + PlayerUID selectedPlayerXUID = + m_selectedSession->data.players[playersList.GetCurSel()]; - bool success = g_NetworkManager.GetGameSessionInfo( - m_iPad, m_selectedSession->sessionId, m_selectedSession); + bool success = g_NetworkManager.GetGameSessionInfo( + m_iPad, m_selectedSession->sessionId, m_selectedSession); - if (success) { - playersList.DeleteItems(0, playersList.GetItemCount()); - int selectedIndex = 0; - for (unsigned int i = 0; i < MINECRAFT_NET_MAX_PLAYERS; - ++i) { - if (m_selectedSession->data.players[i] != NULL) { - if (m_selectedSession->data.players[i] == - selectedPlayerXUID) - selectedIndex = i; - playersList.InsertItems(i, 1); + if (success) { + playersList.DeleteItems(0, playersList.GetItemCount()); + int selectedIndex = 0; + for (unsigned int i = 0; i < MINECRAFT_NET_MAX_PLAYERS; ++i) { + if (m_selectedSession->data.players[i] != NULL) { + if (m_selectedSession->data.players[i] == + selectedPlayerXUID) + selectedIndex = i; + playersList.InsertItems(i, 1); #ifndef _CONTENT_PACKAGE - if (app.DebugSettingsOn() && - (app.GetGameSettingsDebugMask() & - (1L << eDebugSetting_DebugLeaderboards))) { - playersList.SetText(i, L"WWWWWWWWWWWWWWWW"); - } else + if (app.DebugSettingsOn() && + (app.GetGameSettingsDebugMask() & + (1L << eDebugSetting_DebugLeaderboards))) { + playersList.SetText(i, L"WWWWWWWWWWWWWWWW"); + } else #endif - { - playersList.SetText( - i, convStringToWstring( - m_selectedSession->data.szPlayers[i]) - .c_str()); - } - } else { - // Leave the loop when we hit the first NULL player - break; + { + playersList.SetText( + i, convStringToWstring( + m_selectedSession->data.szPlayers[i]) + .c_str()); } + } else { + // Leave the loop when we hit the first NULL player + break; } - playersList.SetCurSel(selectedIndex); } + playersList.SetCurSel(selectedIndex); + } #endif - } break; - }; - } + } break; + }; +}