4jcraft/Minecraft.Client/Platform/Common/UI/UIScene_DLCOffersMenu.cpp
2026-03-30 02:17:54 -05:00

190 lines
7.4 KiB
C++
Raw Blame History

#include "../../stdafx.h"
#include "UI.h"
#include "UIScene_DLCOffersMenu.h"
#include "../../../../Minecraft.World/Util/StringHelpers.h"
#define PLAYER_ONLINE_TIMER_ID 0
#define PLAYER_ONLINE_TIMER_TIME 100
UIScene_DLCOffersMenu::UIScene_DLCOffersMenu(int iPad, void* initData,
UILayer* parentLayer)
: UIScene(iPad, parentLayer) {
m_bProductInfoShown = false;
DLCOffersParam* param = (DLCOffersParam*)initData;
m_iProductInfoIndex = param->iType;
m_iCurrentDLC = 0;
m_iTotalDLC = 0;
m_bAddAllDLCButtons = true;
// Setup all the Iggy references we need for this scene
initialiseMovie();
// Alert the app the we want to be informed of ethernet connections
app.SetLiveLinkRequired(true);
m_bIsSD = !RenderManager.IsHiDef() && !RenderManager.IsWidescreen();
m_labelOffers.init(app.GetString(IDS_DOWNLOADABLE_CONTENT_OFFERS));
m_buttonListOffers.init(eControl_OffersList);
m_labelHTMLSellText.init(L" ");
m_labelPriceTag.init(L" ");
TelemetryManager->RecordMenuShown(m_iPad, eUIScene_DLCOffersMenu, 0);
m_bHasPurchased = false;
m_bIsSelected = false;
if (m_loadedResolution == eSceneResolution_1080) {
m_labelXboxStore.init(L"");
}
}
UIScene_DLCOffersMenu::~UIScene_DLCOffersMenu() {
// Alert the app the we no longer want to be informed of ethernet
// connections
app.SetLiveLinkRequired(false);
}
void UIScene_DLCOffersMenu::handleTimerComplete(int id) {}
int UIScene_DLCOffersMenu::ExitDLCOffersMenu(
void* pParam, int iPad, C4JStorage::EMessageResult result) {
UIScene_DLCOffersMenu* pClass = (UIScene_DLCOffersMenu*)pParam;
ui.NavigateToHomeMenu(); // iPad,eUIScene_MainMenu);
return 0;
}
std::wstring UIScene_DLCOffersMenu::getMoviePath() { return L"DLCOffersMenu"; }
void UIScene_DLCOffersMenu::updateTooltips() {
int iA = -1;
if (m_bIsSelected) {
if (!m_bHasPurchased) {
iA = IDS_TOOLTIPS_INSTALL;
} else {
iA = IDS_TOOLTIPS_REINSTALL;
}
}
ui.SetTooltips(m_iPad, iA, IDS_TOOLTIPS_BACK);
}
void UIScene_DLCOffersMenu::handleInput(int iPad, int key, bool repeat,
bool pressed, bool released,
bool& handled) {
// app.DebugPrintf("UIScene_DebugOverlay handling input for pad %d, key %d,
// down- %s, pressed- %s, released- %s\n", iPad, key, down?"true":"false",
// pressed?"true":"false", released?"true":"false");
ui.AnimateKeyPress(m_iPad, key, repeat, pressed, released);
switch (key) {
case ACTION_MENU_CANCEL:
if (pressed) {
navigateBack();
}
break;
case ACTION_MENU_OK:
sendInputToMovie(key, repeat, pressed, released);
break;
case ACTION_MENU_UP:
if (pressed) {
// 4J - TomK don't proceed if there is no DLC to navigate
// through
if (m_iTotalDLC > 0) {
if (m_iCurrentDLC > 0) m_iCurrentDLC--;
m_bProductInfoShown = false;
}
}
sendInputToMovie(key, repeat, pressed, released);
break;
case ACTION_MENU_DOWN:
if (pressed) {
// 4J - TomK don't proceed if there is no DLC to navigate
// through
if (m_iTotalDLC > 0) {
if (m_iCurrentDLC < (m_iTotalDLC - 1)) m_iCurrentDLC++;
m_bProductInfoShown = false;
}
}
sendInputToMovie(key, repeat, pressed, released);
break;
case ACTION_MENU_LEFT:
/*
#if defined(_DEBUG)
static int iTextC=0;
switch(iTextC)
{
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<6E>e.<br><br>1-4 joueurs<br>2-8 joueurs en
r<EFBFBD>seau<br><br> 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<EFBFBD>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<EFBFBD>chargez pas ce produit. Cet article peut <20>tre utilis<69>
avec un maximum de deux syst<73>mes PlayStation<6F>3 activ<69>s associ<63>s <20> ce compte Sony
Entertainment Network.<2E><br><br>'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.<br><br>1-4 jugadores<br>2-8 jugadores en red<br><br> Sony Computer
Entertainment America le concede la licencia o sublicencia de este art<72>culo, que
est<EFBFBD> sujeto a los t<>rminos de servicio y al acuerdo de usuario de la red. Las
restricciones de uso de este art<72>culo, as<61> 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<72>culo. Este art<72>culo puede usarse en
hasta dos sistemas PlayStation<6F>3 activados asociados con esta cuenta de Sony
Entertainment Network.<2E><br><br>'Minecraft' es una marca comercial de Notch
Development AB."); break; case 2: m_labelHTMLSellText.init("Este <20> um incr<63>vel
pacote com 24 capas para personalizar seu personagem no Minecraft e entrar no
clima de final de ano.<br><br>1-4 Jogadores<br>Jogadores em rede 2-8<br><br>
Este item est<73> sendo licenciado ou sublicenciado para voc<6F> pela Sony Computer
Entertainment America e est<73> sujeito aos Termos de Servi<76>o da Rede e Acordo do
Usu<EFBFBD>rio, as restri<72><69>es de uso deste item e outros termos aplic<69>veis est<73>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<EFBFBD> 2 sistemas PlayStation<6F>3 ativados associados a esta Conta de Rede Sony
Entertainment.<2E><br><br>'Minecraft' <20> uma marca registrada da Notch Development
AB"); break;
}
iTextC++;
if(iTextC>2) iTextC=0;
#endif
*/
case ACTION_MENU_RIGHT:
case ACTION_MENU_OTHER_STICK_DOWN:
case ACTION_MENU_OTHER_STICK_UP:
// don't pass down PageUp or PageDown because this will cause
// conflicts between the buttonlist and scrollable html text
// component
// case ACTION_MENU_PAGEUP:
// case ACTION_MENU_PAGEDOWN:
sendInputToMovie(key, repeat, pressed, released);
break;
}
}
void UIScene_DLCOffersMenu::handlePress(F64 controlId, F64 childId) {
switch ((int)controlId) {
case eControl_OffersList: {
int iIndex = (int)childId;
uint64_t ullIndexA[1];
ullIndexA[0] = StorageManager.GetOffer(iIndex).qwOfferID;
StorageManager.InstallOffer(1, ullIndexA, nullptr, nullptr);
} break;
}
}
void UIScene_DLCOffersMenu::handleSelectionChanged(F64 selectedId) {}
void UIScene_DLCOffersMenu::handleFocusChange(F64 controlId, F64 childId) {
app.DebugPrintf("UIScene_DLCOffersMenu::handleFocusChange\n");
}
void UIScene_DLCOffersMenu::tick() { UIScene::tick(); }