Files
4jcraft/Minecraft.Client/Platform/Common/UI/UIScene_DLCOffersMenu.cpp
T
MatthewBeshay dfb0e3b03e refactor: replace NULL with nullptr across C++ codebase
Excludes vendored C libs (zlib, Miles, DirectXMath, boost, Iggy).
2026-03-30 16:25:52 +11:00

205 lines
7.4 KiB
C++

#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 ftes de fin d'anne.<br><br>1-4 joueurs<br>2-8 joueurs en
rseau<br><br> Cet article fait lobjet dune licence ou dune sous-licence de
Sony Computer Entertainment America, et est soumis aux conditions gnrales du
service du rseau, au contrat dutilisateur, aux restrictions dutilisation 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 tlchargez pas ce produit. Cet article peut tre utilis
avec un maximum de deux systmes PlayStation3 activs associs ce compte Sony
Entertainment Network.<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 artculo, que
est sujeto a los trminos de servicio y al acuerdo de usuario de la red. Las
restricciones de uso de este artculo, as como otros trminos aplicables, se
encuentran en www.us.playstation.com/support/useragreements. Si no desea aceptar
todos estos trminos, no descargue este artculo. Este artculo puede usarse en
hasta dos sistemas PlayStation3 activados asociados con esta cuenta de Sony
Entertainment Network.<br><br>'Minecraft' es una marca comercial de Notch
Development AB."); break; case 2: m_labelHTMLSellText.init("Este um incrvel
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 sendo licenciado ou sublicenciado para voc pela Sony Computer
Entertainment America e est sujeito aos Termos de Servio da Rede e Acordo do
Usurio, as restries de uso deste item e outros termos aplicveis esto
localizados em www.us.playstation.com/support/useragreements. Caso no queira
aceitar todos esses termos, no baixe este item. Este item pode ser usado com
at 2 sistemas PlayStation3 ativados associados a esta Conta de Rede Sony
Entertainment.<br><br>'Minecraft' 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();
}