format XUI

This commit is contained in:
Tropical
2026-03-22 12:40:22 -05:00
parent a403bf5a4a
commit 4b2f614326
175 changed files with 31285 additions and 30912 deletions

View File

@@ -4,235 +4,284 @@
#include "XUI_HelpHowToPlay.h"
#include "../../Minecraft.World/Util/StringHelpers.h"
static SHowToPlayPageDef gs_aPageDefs[ eHowToPlay_NumPages ] =
{
{ eHowToPlay_WhatsNew, IDS_HOW_TO_PLAY_WHATSNEW, eHowToPlay_ImageNone, 0, 0}, // eHowToPlay_WhatsNew
{ eHowToPlay_TextBasics, IDS_HOW_TO_PLAY_BASICS, eHowToPlay_ImageNone, 0, 0}, // eHowToPlay_Basics
{ eHowToPlay_TextMultiplayer, IDS_HOW_TO_PLAY_MULTIPLAYER, eHowToPlay_ImageNone, 0, 0}, // eHowToPlay_Multiplayer
{ eHowToPlay_TextHUD, IDS_HOW_TO_PLAY_HUD, eHowToPlay_ImageHUD, 0, 0}, // eHowToPlay_HUD
{ eHowToPlay_TextCreative, IDS_HOW_TO_PLAY_CREATIVE, eHowToPlay_ImageCreative, eHowToPlay_LabelCreativeInventory, 1}, // eHowToPlay_Creative
{ eHowToPlay_TextInventory, IDS_HOW_TO_PLAY_INVENTORY, eHowToPlay_ImageInventory, eHowToPlay_LabelIInventory, 1}, // eHowToPlay_Inventory
{ eHowToPlay_TextSmallChest, IDS_HOW_TO_PLAY_CHEST, eHowToPlay_ImageChest, eHowToPlay_LabelSCInventory, 2}, // eHowToPlay_Chest
{ eHowToPlay_TextLargeChest, IDS_HOW_TO_PLAY_LARGECHEST, eHowToPlay_ImageLargeChest, eHowToPlay_LabelLCInventory, 2}, // eHowToPlay_LargeChest
{ eHowToPlay_TextEnderchest, IDS_HOW_TO_PLAY_ENDERCHEST, eHowToPlay_ImageEnderChest, 0, 0}, // eHowToPlay_EnderChest
{ eHowToPlay_TextCrafting, IDS_HOW_TO_PLAY_CRAFTING, eHowToPlay_ImageInventoryCrafting, eHowToPlay_LabelCItem, 3}, // eHowToPlay_InventoryCrafting
{ eHowToPlay_TextCraftTable, IDS_HOW_TO_PLAY_CRAFT_TABLE, eHowToPlay_ImageCraftingTable, eHowToPlay_LabelCTItem, 3}, // eHowToPlay_CraftTable
{ eHowToPlay_TextFurnace, IDS_HOW_TO_PLAY_FURNACE, eHowToPlay_ImageFurnace, eHowToPlay_LabelFFuel, 4}, // eHowToPlay_Furnace
{ eHowToPlay_TextDispenser, IDS_HOW_TO_PLAY_DISPENSER, eHowToPlay_ImageDispenser, eHowToPlay_LabelDText, 2}, // eHowToPlay_Dispenser
{ eHowToPlay_TextBrewing, IDS_HOW_TO_PLAY_BREWING, eHowToPlay_ImageBrewing, eHowToPlay_LabelBBrew, 2}, // eHowToPlay_Brewing
{ eHowToPlay_TextEnchantment, IDS_HOW_TO_PLAY_ENCHANTMENT, eHowToPlay_ImageEnchantment, eHowToPlay_LabelEEnchant, 2}, // eHowToPlay_Enchantment
{ eHowToPlay_TextAnvil, IDS_HOW_TO_PLAY_ANVIL, eHowToPlay_ImageAnvil, eHowToPlay_LabelAnvil_Inventory, 3}, // eHowToPlay_Anvil
{ eHowToPlay_TextFarmingAnimals,IDS_HOW_TO_PLAY_FARMANIMALS, eHowToPlay_ImageFarmingAnimals, 0, 0}, // eHowToPlay_Farming
{ eHowToPlay_TextBreeding, IDS_HOW_TO_PLAY_BREEDANIMALS, eHowToPlay_ImageBreeding, 0, 0}, // eHowToPlay_Breeding
{ eHowToPlay_TextTrading, IDS_HOW_TO_PLAY_TRADING, eHowToPlay_ImageTrading, eHowToPlay_LabelTrading_Inventory, 5}, // eHowToPlay_Trading
{ eHowToPlay_TextNetherPortal, IDS_HOW_TO_PLAY_NETHERPORTAL, eHowToPlay_ImageNetherPortal, 0, 0}, // eHowToPlay_NetherPortal
{ eHowToPlay_TextTheEnd, IDS_HOW_TO_PLAY_THEEND, eHowToPlay_ImageTheEnd, 0, 0}, // eHowToPlay_TheEnd
{ eHowToPlay_TextSocialMedia, IDS_HOW_TO_PLAY_SOCIALMEDIA, eHowToPlay_ImageNone, 0, 0}, // eHowToPlay_SocialMedia
{ eHowToPlay_TextBanList, IDS_HOW_TO_PLAY_BANLIST, eHowToPlay_ImageNone, 0, 0}, // eHowToPlay_BanList
{ eHowToPlay_TextHostOptions, IDS_HOW_TO_PLAY_HOSTOPTIONS, eHowToPlay_ImageNone, 0, 0}, // eHowToPlay_HostOptions
static SHowToPlayPageDef gs_aPageDefs[eHowToPlay_NumPages] = {
{eHowToPlay_WhatsNew, IDS_HOW_TO_PLAY_WHATSNEW, eHowToPlay_ImageNone, 0,
0}, // eHowToPlay_WhatsNew
{eHowToPlay_TextBasics, IDS_HOW_TO_PLAY_BASICS, eHowToPlay_ImageNone, 0,
0}, // eHowToPlay_Basics
{eHowToPlay_TextMultiplayer, IDS_HOW_TO_PLAY_MULTIPLAYER,
eHowToPlay_ImageNone, 0, 0}, // eHowToPlay_Multiplayer
{eHowToPlay_TextHUD, IDS_HOW_TO_PLAY_HUD, eHowToPlay_ImageHUD, 0,
0}, // eHowToPlay_HUD
{eHowToPlay_TextCreative, IDS_HOW_TO_PLAY_CREATIVE,
eHowToPlay_ImageCreative, eHowToPlay_LabelCreativeInventory,
1}, // eHowToPlay_Creative
{eHowToPlay_TextInventory, IDS_HOW_TO_PLAY_INVENTORY,
eHowToPlay_ImageInventory, eHowToPlay_LabelIInventory,
1}, // eHowToPlay_Inventory
{eHowToPlay_TextSmallChest, IDS_HOW_TO_PLAY_CHEST, eHowToPlay_ImageChest,
eHowToPlay_LabelSCInventory, 2}, // eHowToPlay_Chest
{eHowToPlay_TextLargeChest, IDS_HOW_TO_PLAY_LARGECHEST,
eHowToPlay_ImageLargeChest, eHowToPlay_LabelLCInventory,
2}, // eHowToPlay_LargeChest
{eHowToPlay_TextEnderchest, IDS_HOW_TO_PLAY_ENDERCHEST,
eHowToPlay_ImageEnderChest, 0, 0}, // eHowToPlay_EnderChest
{eHowToPlay_TextCrafting, IDS_HOW_TO_PLAY_CRAFTING,
eHowToPlay_ImageInventoryCrafting, eHowToPlay_LabelCItem,
3}, // eHowToPlay_InventoryCrafting
{eHowToPlay_TextCraftTable, IDS_HOW_TO_PLAY_CRAFT_TABLE,
eHowToPlay_ImageCraftingTable, eHowToPlay_LabelCTItem,
3}, // eHowToPlay_CraftTable
{eHowToPlay_TextFurnace, IDS_HOW_TO_PLAY_FURNACE, eHowToPlay_ImageFurnace,
eHowToPlay_LabelFFuel, 4}, // eHowToPlay_Furnace
{eHowToPlay_TextDispenser, IDS_HOW_TO_PLAY_DISPENSER,
eHowToPlay_ImageDispenser, eHowToPlay_LabelDText,
2}, // eHowToPlay_Dispenser
{eHowToPlay_TextBrewing, IDS_HOW_TO_PLAY_BREWING, eHowToPlay_ImageBrewing,
eHowToPlay_LabelBBrew, 2}, // eHowToPlay_Brewing
{eHowToPlay_TextEnchantment, IDS_HOW_TO_PLAY_ENCHANTMENT,
eHowToPlay_ImageEnchantment, eHowToPlay_LabelEEnchant,
2}, // eHowToPlay_Enchantment
{eHowToPlay_TextAnvil, IDS_HOW_TO_PLAY_ANVIL, eHowToPlay_ImageAnvil,
eHowToPlay_LabelAnvil_Inventory, 3}, // eHowToPlay_Anvil
{eHowToPlay_TextFarmingAnimals, IDS_HOW_TO_PLAY_FARMANIMALS,
eHowToPlay_ImageFarmingAnimals, 0, 0}, // eHowToPlay_Farming
{eHowToPlay_TextBreeding, IDS_HOW_TO_PLAY_BREEDANIMALS,
eHowToPlay_ImageBreeding, 0, 0}, // eHowToPlay_Breeding
{eHowToPlay_TextTrading, IDS_HOW_TO_PLAY_TRADING, eHowToPlay_ImageTrading,
eHowToPlay_LabelTrading_Inventory, 5}, // eHowToPlay_Trading
{eHowToPlay_TextNetherPortal, IDS_HOW_TO_PLAY_NETHERPORTAL,
eHowToPlay_ImageNetherPortal, 0, 0}, // eHowToPlay_NetherPortal
{eHowToPlay_TextTheEnd, IDS_HOW_TO_PLAY_THEEND, eHowToPlay_ImageTheEnd, 0,
0}, // eHowToPlay_TheEnd
{eHowToPlay_TextSocialMedia, IDS_HOW_TO_PLAY_SOCIALMEDIA,
eHowToPlay_ImageNone, 0, 0}, // eHowToPlay_SocialMedia
{eHowToPlay_TextBanList, IDS_HOW_TO_PLAY_BANLIST, eHowToPlay_ImageNone, 0,
0}, // eHowToPlay_BanList
{eHowToPlay_TextHostOptions, IDS_HOW_TO_PLAY_HOSTOPTIONS,
eHowToPlay_ImageNone, 0, 0}, // eHowToPlay_HostOptions
};
//----------------------------------------------------------------------------------
// Performs initialization tasks - retrieves controls.
//----------------------------------------------------------------------------------
HRESULT CScene_HowToPlay::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
{
// Extract pad and required page from init data. We just put the data into the pointer rather than using it as an address.
size_t uiInitData = ( size_t )( pInitData->pvInitData );
HRESULT CScene_HowToPlay::OnInit(XUIMessageInit* pInitData, BOOL& bHandled) {
// Extract pad and required page from init data. We just put the data into
// the pointer rather than using it as an address.
size_t uiInitData = (size_t)(pInitData->pvInitData);
m_iPad = ( int )( ( short )( uiInitData & 0xFFFF ) );
EHowToPlayPage eStartPage = ( EHowToPlayPage )( ( uiInitData >> 16 ) & 0xFFF ); // Ignores MSB which is set to 1!
m_iPad = (int)((short)(uiInitData & 0xFFFF));
EHowToPlayPage eStartPage =
(EHowToPlayPage)((uiInitData >> 16) &
0xFFF); // Ignores MSB which is set to 1!
TelemetryManager->RecordMenuShown(m_iPad, eUIScene_HowToPlay, (ETelemetry_HowToPlay_SubMenuId)eStartPage);
TelemetryManager->RecordMenuShown(
m_iPad, eUIScene_HowToPlay, (ETelemetry_HowToPlay_SubMenuId)eStartPage);
MapChildControls();
MapChildControls();
std::wstring wsTemp, inventoryString = app.GetString(IDS_INVENTORY);
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelCTItem],app.GetString(IDS_ITEM_HATCHET_WOOD));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelCTGroup],app.GetString(IDS_GROUPNAME_TOOLS));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelCTInventory3x3],inventoryString.c_str());
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelCItem],app.GetString(IDS_TILE_WORKBENCH));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelCGroup],app.GetString(IDS_GROUPNAME_STRUCTURES));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelCInventory2x2],inventoryString.c_str());
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelFFuel],app.GetString(IDS_FUEL));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelFInventory],inventoryString.c_str());
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelFIngredient],app.GetString(IDS_INGREDIENT));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelFChest],app.GetString(IDS_FURNACE));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelLCInventory],inventoryString.c_str());
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelCreativeInventory],app.GetString(IDS_GROUPNAME_BUILDING_BLOCKS));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelLCChest],app.GetString(IDS_CHEST));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelSCInventory],inventoryString.c_str());
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelSCChest],app.GetString(IDS_CHEST));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelIInventory],inventoryString.c_str());
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelDInventory],inventoryString.c_str());
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelDText],app.GetString(IDS_DISPENSER));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelEEnchant],app.GetString(IDS_ENCHANT));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelEInventory],inventoryString.c_str());
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelBBrew],app.GetString(IDS_BREWING_STAND));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelBInventory],inventoryString.c_str());
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelAnvil_Inventory], inventoryString.c_str());
wsTemp = app.GetString(IDS_REPAIR_COST);
wsTemp.replace( wsTemp.find(L"%d"), 2, std::wstring(L"8") );
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelAnvil_Cost], wsTemp.c_str());
std::wstring wsTemp, inventoryString = app.GetString(IDS_INVENTORY);
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelCTItem],
app.GetString(IDS_ITEM_HATCHET_WOOD));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelCTGroup],
app.GetString(IDS_GROUPNAME_TOOLS));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelCTInventory3x3],
inventoryString.c_str());
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelCItem],
app.GetString(IDS_TILE_WORKBENCH));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelCGroup],
app.GetString(IDS_GROUPNAME_STRUCTURES));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelCInventory2x2],
inventoryString.c_str());
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelFFuel],
app.GetString(IDS_FUEL));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelFInventory],
inventoryString.c_str());
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelFIngredient],
app.GetString(IDS_INGREDIENT));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelFChest],
app.GetString(IDS_FURNACE));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelLCInventory],
inventoryString.c_str());
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelCreativeInventory],
app.GetString(IDS_GROUPNAME_BUILDING_BLOCKS));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelLCChest],
app.GetString(IDS_CHEST));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelSCInventory],
inventoryString.c_str());
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelSCChest],
app.GetString(IDS_CHEST));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelIInventory],
inventoryString.c_str());
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelDInventory],
inventoryString.c_str());
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelDText],
app.GetString(IDS_DISPENSER));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelEEnchant],
app.GetString(IDS_ENCHANT));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelEInventory],
inventoryString.c_str());
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelBBrew],
app.GetString(IDS_BREWING_STAND));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelBInventory],
inventoryString.c_str());
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelAnvil_Inventory],
inventoryString.c_str());
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelAnvil_ARepairAndName], app.GetString(IDS_REPAIR_AND_NAME));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelTrading_Inventory], inventoryString.c_str());
//XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelTrading_Offer2], app.GetString(IDS_ITEM_HATCHET_DIAMOND));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelTrading_Offer1], app.GetString(IDS_ITEM_EMERALD));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelTrading_NeededForTrade], app.GetString(IDS_REQUIRED_ITEMS_FOR_TRADE));
wsTemp = app.GetString(IDS_REPAIR_COST);
wsTemp.replace(wsTemp.find(L"%d"), 2, std::wstring(L"8"));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelAnvil_Cost],
wsTemp.c_str());
wsTemp = app.GetString(IDS_VILLAGER_OFFERS_ITEM);
wsTemp = replaceAll(wsTemp,L"{*VILLAGER_TYPE*}",app.GetString(IDS_VILLAGER_PRIEST));
wsTemp.replace(wsTemp.find(L"%s"),2, app.GetString(IDS_TILE_LIGHT_GEM));
XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelTrading_VillagerOffers], wsTemp.c_str());
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelAnvil_ARepairAndName],
app.GetString(IDS_REPAIR_AND_NAME));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelTrading_Inventory],
inventoryString.c_str());
// XuiControlSetText(m_aLabelControls[ eHowToPlay_LabelTrading_Offer2],
// app.GetString(IDS_ITEM_HATCHET_DIAMOND));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelTrading_Offer1],
app.GetString(IDS_ITEM_EMERALD));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelTrading_NeededForTrade],
app.GetString(IDS_REQUIRED_ITEMS_FOR_TRADE));
if(app.GetLocalPlayerCount()>1)
{
app.AdjustSplitscreenScene(m_hObj,&m_OriginalPosition,m_iPad);
}
wsTemp = app.GetString(IDS_VILLAGER_OFFERS_ITEM);
wsTemp = replaceAll(wsTemp, L"{*VILLAGER_TYPE*}",
app.GetString(IDS_VILLAGER_PRIEST));
wsTemp.replace(wsTemp.find(L"%s"), 2, app.GetString(IDS_TILE_LIGHT_GEM));
XuiControlSetText(m_aLabelControls[eHowToPlay_LabelTrading_VillagerOffers],
wsTemp.c_str());
if (app.GetLocalPlayerCount() > 1) {
app.AdjustSplitscreenScene(m_hObj, &m_OriginalPosition, m_iPad);
}
StartPage( eStartPage );
StartPage(eStartPage);
return S_OK;
return S_OK;
}
HRESULT CScene_HowToPlay::OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled)
{
ui.AnimateKeyPress(pInputData->UserIndex, pInputData->dwKeyCode);
// Explicitly handle B button presses
switch(pInputData->dwKeyCode)
{
case VK_PAD_B:
case VK_ESCAPE:
{
app.NavigateBack(pInputData->UserIndex);
rfHandled = TRUE;
}
break;
case VK_PAD_A:
{
// Next page
int iNextPage = ( int )( m_eCurrPage ) + 1;
if ( iNextPage != eHowToPlay_NumPages )
{
StartPage( ( EHowToPlayPage )( iNextPage ) );
CXuiSceneBase::PlayUISFX(eSFX_Press);
}
rfHandled = TRUE;
}
break;
case VK_PAD_X:
{
// Next page
int iPrevPage = ( int )( m_eCurrPage ) - 1;
if ( iPrevPage >= 0 )
{
StartPage( ( EHowToPlayPage )( iPrevPage ) );
CXuiSceneBase::PlayUISFX(eSFX_Press);
}
rfHandled = TRUE;
}
break;
}
return S_OK;
HRESULT CScene_HowToPlay::OnKeyDown(XUIMessageInput* pInputData,
BOOL& rfHandled) {
ui.AnimateKeyPress(pInputData->UserIndex, pInputData->dwKeyCode);
// Explicitly handle B button presses
switch (pInputData->dwKeyCode) {
case VK_PAD_B:
case VK_ESCAPE: {
app.NavigateBack(pInputData->UserIndex);
rfHandled = TRUE;
} break;
case VK_PAD_A: {
// Next page
int iNextPage = (int)(m_eCurrPage) + 1;
if (iNextPage != eHowToPlay_NumPages) {
StartPage((EHowToPlayPage)(iNextPage));
CXuiSceneBase::PlayUISFX(eSFX_Press);
}
rfHandled = TRUE;
} break;
case VK_PAD_X: {
// Next page
int iPrevPage = (int)(m_eCurrPage)-1;
if (iPrevPage >= 0) {
StartPage((EHowToPlayPage)(iPrevPage));
CXuiSceneBase::PlayUISFX(eSFX_Press);
}
rfHandled = TRUE;
} break;
}
return S_OK;
}
void CScene_HowToPlay::StartPage(EHowToPlayPage ePage) {
int iBaseSceneUser;
// if we're not in the game, we need to use basescene 0
if (Minecraft::GetInstance()->level == NULL) {
iBaseSceneUser = DEFAULT_XUI_MENU_USER;
} else {
iBaseSceneUser = m_iPad;
}
m_eCurrPage = ePage;
void CScene_HowToPlay::StartPage( EHowToPlayPage ePage )
{
int iBaseSceneUser;
// if we're not in the game, we need to use basescene 0
if(Minecraft::GetInstance()->level==NULL)
{
iBaseSceneUser=DEFAULT_XUI_MENU_USER;
}
else
{
iBaseSceneUser=m_iPad;
}
m_eCurrPage = ePage;
// Turn off everything.
for (int i = 0; i < eHowToPlay_NumTexts; ++i) {
m_aTextControls[i].SetShow(FALSE);
}
for (int i = 0; i < eHowToPlay_NumImages; ++i) {
m_aImageControls[i].SetShow(FALSE);
}
for (int i = 0; i < eHowToPlay_NumLabels; ++i) {
m_aLabelControls[i].SetShow(FALSE);
}
// Turn off everything.
for ( int i = 0; i < eHowToPlay_NumTexts; ++i )
{
m_aTextControls[ i ].SetShow( FALSE );
}
for ( int i = 0; i < eHowToPlay_NumImages; ++i )
{
m_aImageControls[ i ].SetShow( FALSE );
}
for ( int i = 0; i < eHowToPlay_NumLabels; ++i )
{
m_aLabelControls[ i ].SetShow( FALSE );
}
// Turn on just what we need for this screen.
SHowToPlayPageDef* pDef = &(gs_aPageDefs[m_eCurrPage]);
// Turn on just what we need for this screen.
SHowToPlayPageDef* pDef = &( gs_aPageDefs[ m_eCurrPage ] );
if (pDef->m_iTextControlIndex != eHowToPlay_TextNone) {
// Replace button identifiers in the text with actual button images.
std::wstring replacedText =
app.FormatHTMLString(m_iPad, app.GetString(pDef->m_iTextStringID));
if ( pDef->m_iTextControlIndex != eHowToPlay_TextNone )
{
// Replace button identifiers in the text with actual button images.
std::wstring replacedText = app.FormatHTMLString(m_iPad, app.GetString( pDef->m_iTextStringID ));
// 4J-PB - replace the title with the platform specific title, and the
// platform name
replacedText = replaceAll(replacedText, L"{*PLATFORM_NAME*}",
app.GetString(IDS_PLATFORM_NAME));
replacedText = replaceAll(replacedText, L"{*BACK_BUTTON*}",
app.GetString(IDS_BACK_BUTTON));
replacedText =
replaceAll(replacedText, L"{*DISABLES_ACHIEVEMENTS*}",
app.GetString(IDS_HOST_OPTION_DISABLES_ACHIEVEMENTS));
// 4J-PB - replace the title with the platform specific title, and the platform name
replacedText = replaceAll(replacedText,L"{*PLATFORM_NAME*}",app.GetString(IDS_PLATFORM_NAME));
replacedText = replaceAll(replacedText,L"{*BACK_BUTTON*}",app.GetString(IDS_BACK_BUTTON));
replacedText = replaceAll(replacedText,L"{*DISABLES_ACHIEVEMENTS*}",app.GetString(IDS_HOST_OPTION_DISABLES_ACHIEVEMENTS));
// Set the text colour
std::wstring finalText(replacedText.c_str());
wchar_t startTags[64];
swprintf(startTags, 64, L"<font color=\"#%08x\">",
app.GetHTMLColour(eHTMLColor_White));
finalText = startTags + finalText;
// Set the text colour
std::wstring finalText(replacedText.c_str() );
wchar_t startTags[64];
swprintf(startTags,64,L"<font color=\"#%08x\">",app.GetHTMLColour(eHTMLColor_White));
finalText = startTags + finalText;
// Set the text in the xui scene.
m_aTextControls[pDef->m_iTextControlIndex].SetText(finalText.c_str());
// Set the text in the xui scene.
m_aTextControls[ pDef->m_iTextControlIndex ].SetText( finalText.c_str() );
// Make it visible.
m_aTextControls[pDef->m_iTextControlIndex].SetShow(TRUE);
// Make it visible.
m_aTextControls[ pDef->m_iTextControlIndex ].SetShow( TRUE );
XuiElementSetUserFocus(
m_aTextControls[pDef->m_iTextControlIndex].m_hObj, m_iPad);
}
XuiElementSetUserFocus(m_aTextControls[ pDef->m_iTextControlIndex ].m_hObj, m_iPad);
}
if (pDef->m_iLabelCount != 0) {
for (int i = pDef->m_iLabelStartIndex;
i < (pDef->m_iLabelStartIndex + pDef->m_iLabelCount); i++) {
m_aLabelControls[i].SetShow(TRUE);
}
}
if(pDef->m_iLabelCount!=0)
{
for(int i=pDef->m_iLabelStartIndex;i<(pDef->m_iLabelStartIndex+pDef->m_iLabelCount);i++)
{
m_aLabelControls[i].SetShow( TRUE );
}
}
if (pDef->m_iImageControlIndex != eHowToPlay_ImageNone) {
m_aImageControls[pDef->m_iImageControlIndex].SetShow(TRUE);
}
if ( pDef->m_iImageControlIndex != eHowToPlay_ImageNone )
{
m_aImageControls[ pDef->m_iImageControlIndex ].SetShow( TRUE );
}
// Tool tips.
int iPage = (int)(m_eCurrPage);
if (iPage == 0) {
// No previous page.
ui.SetTooltips(iBaseSceneUser, IDS_HOW_TO_PLAY_NEXT, IDS_TOOLTIPS_BACK,
-1);
} else if ((iPage + 1) == eHowToPlay_NumPages) {
// No next page.
ui.SetTooltips(iBaseSceneUser, -1, IDS_TOOLTIPS_BACK,
IDS_HOW_TO_PLAY_PREV);
} else {
ui.SetTooltips(iBaseSceneUser, IDS_HOW_TO_PLAY_NEXT, IDS_TOOLTIPS_BACK,
IDS_HOW_TO_PLAY_PREV);
}
// Tool tips.
int iPage = ( int )( m_eCurrPage );
if ( iPage == 0 )
{
// No previous page.
ui.SetTooltips( iBaseSceneUser, IDS_HOW_TO_PLAY_NEXT, IDS_TOOLTIPS_BACK, -1 );
}
else if ( ( iPage + 1 ) == eHowToPlay_NumPages )
{
// No next page.
ui.SetTooltips( iBaseSceneUser, -1, IDS_TOOLTIPS_BACK, IDS_HOW_TO_PLAY_PREV );
}
else
{
ui.SetTooltips( iBaseSceneUser, IDS_HOW_TO_PLAY_NEXT, IDS_TOOLTIPS_BACK, IDS_HOW_TO_PLAY_PREV );
}
TelemetryManager->RecordMenuShown(m_iPad, eUIScene_HowToPlay, (ETelemetry_HowToPlay_SubMenuId)ePage);
TelemetryManager->RecordMenuShown(m_iPad, eUIScene_HowToPlay,
(ETelemetry_HowToPlay_SubMenuId)ePage);
}
HRESULT CScene_HowToPlay::OnCustomMessage_Splitscreenplayer(bool bJoining, BOOL& bHandled)
{
bHandled=true;
return app.AdjustSplitscreenScene_PlayerChanged(m_hObj,&m_OriginalPosition,m_iPad,bJoining);
HRESULT CScene_HowToPlay::OnCustomMessage_Splitscreenplayer(bool bJoining,
BOOL& bHandled) {
bHandled = true;
return app.AdjustSplitscreenScene_PlayerChanged(m_hObj, &m_OriginalPosition,
m_iPad, bJoining);
}