Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
6.9 kB · 232 lines
C++
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233#include "stdafx.h"
#include <assert.h>#include "..\XUI\XUI_HowToPlayMenu.h"#include "..\XUI\XUI_HelpHowToPlay.h"
// strings for buttons in the list unsigned int CScene_HowToPlayMenu::m_uiHTPButtonNameA[]={ IDS_HOW_TO_PLAY_MENU_WHATSNEW, // eHTPButton_WhatsNew IDS_HOW_TO_PLAY_MENU_BASICS, // eHTPButton_Basics, IDS_HOW_TO_PLAY_MENU_MULTIPLAYER, // eHTPButton_Multiplayer IDS_HOW_TO_PLAY_MENU_HUD, // eHTPButton_Hud, IDS_HOW_TO_PLAY_MENU_CREATIVE, // eHTPButton_Creative, IDS_HOW_TO_PLAY_MENU_INVENTORY, // eHTPButton_Inventory, IDS_HOW_TO_PLAY_MENU_CHESTS, // eHTPButton_Chest, IDS_HOW_TO_PLAY_MENU_CRAFTING, // eHTPButton_Crafting, IDS_HOW_TO_PLAY_MENU_FURNACE, // eHTPButton_Furnace, IDS_HOW_TO_PLAY_MENU_DISPENSER, // eHTPButton_Dispenser,
IDS_HOW_TO_PLAY_MENU_BREWING, // eHTPButton_Brewing, IDS_HOW_TO_PLAY_MENU_ENCHANTMENT, // eHTPButton_Enchantment, IDS_HOW_TO_PLAY_MENU_ANVIL, IDS_HOW_TO_PLAY_MENU_FARMANIMALS, // eHTPButton_Breeding, IDS_HOW_TO_PLAY_MENU_BREEDANIMALS, // eHTPButton_Breeding, IDS_HOW_TO_PLAY_MENU_TRADING,
IDS_HOW_TO_PLAY_MENU_NETHERPORTAL, // eHTPButton_NetherPortal, IDS_HOW_TO_PLAY_MENU_THEEND, // eHTPButton_TheEnd, IDS_HOW_TO_PLAY_MENU_SOCIALMEDIA, // eHTPButton_SocialMedia, IDS_HOW_TO_PLAY_MENU_BANLIST, // eHTPButton_BanningLevels, IDS_HOW_TO_PLAY_MENU_HOSTOPTIONS, // eHTPButton_HostOptions,};
// mapping the buttons to a scene valueunsigned int CScene_HowToPlayMenu::m_uiHTPSceneA[]={ eHowToPlay_WhatsNew, eHowToPlay_Basics, eHowToPlay_Multiplayer, eHowToPlay_HUD, eHowToPlay_Creative, eHowToPlay_Inventory, eHowToPlay_Chest, eHowToPlay_InventoryCrafting, eHowToPlay_Furnace, eHowToPlay_Dispenser,
eHowToPlay_Brewing, eHowToPlay_Enchantment, eHowToPlay_Anvil, eHowToPlay_FarmingAnimals, eHowToPlay_Breeding, eHowToPlay_Trading,
eHowToPlay_NetherPortal, eHowToPlay_TheEnd, eHowToPlay_SocialMedia, eHowToPlay_BanList, eHowToPlay_HostOptions,};
//----------------------------------------------------------------------------------// Performs initialization tasks - retrieves controls.//----------------------------------------------------------------------------------HRESULT CScene_HowToPlayMenu::OnInit( XUIMessageInit* pInitData, BOOL& bHandled ){ m_iPad = *(int *)pInitData->pvInitData; // if we're not in the game, we need to use basescene 0 bool bNotInGame=(Minecraft::GetInstance()->level==NULL); bool bSplitscreen= app.GetLocalPlayerCount()>1; m_ButtonList=NULL;
//MapChildControls();
//m_iButtons=0; if(bSplitscreen) { app.AdjustSplitscreenScene(m_hObj,&m_OriginalPosition,m_iPad, false); }
// 4J-PB - changing all versions to use a list of buttons, since we're adding some // We're going to use a list of buttons here CXuiElement e = m_hObj; HRESULT hr = e.GetChildById(L"HowToListButtons", &m_ButtonList); m_iButtons=eHTPButton_Max; for(int i=0;i<eHTPButton_Max;i++) { //m_Buttons[i].SetShow(FALSE); //m_Buttons[i].SetEnable(FALSE); m_ButtonList.InsertItems( m_ButtonList.GetItemCount(), 1 ); }
// set the focus to the list m_ButtonList.SetFocus(m_iPad);
if((!RenderManager.IsHiDef() && !RenderManager.IsWidescreen()) || bSplitscreen) { if(bNotInGame) { CXuiSceneBase::ShowLogo( DEFAULT_XUI_MENU_USER, FALSE ); } else { CXuiSceneBase::ShowLogo( m_iPad, FALSE ); } } else if(bNotInGame) { CXuiSceneBase::ShowLogo( DEFAULT_XUI_MENU_USER, TRUE ); } else { CXuiSceneBase::ShowLogo( m_iPad, TRUE ); } // Display the tooltips // if we're not in the game, we need to use basescene 0 if(bNotInGame) { ui.SetTooltips( DEFAULT_XUI_MENU_USER, IDS_TOOLTIPS_SELECT,IDS_TOOLTIPS_BACK); } else { ui.SetTooltips( m_iPad, IDS_TOOLTIPS_SELECT,IDS_TOOLTIPS_BACK); }
return S_OK;}
HRESULT CScene_HowToPlayMenu::OnGetSourceDataText(XUIMessageGetSourceText *pGetSourceTextData, BOOL& bHandled){ if( pGetSourceTextData->bItemData ) { if( pGetSourceTextData->iItem < (int)eHTPButton_Max ) { pGetSourceTextData->szText = app.GetString(m_uiHTPButtonNameA[pGetSourceTextData->iItem]);//m_Buttons[pGetSourceTextData->iItem].GetText(); pGetSourceTextData->bDisplay = TRUE;
bHandled = TRUE; } } return S_OK;}
HRESULT CScene_HowToPlayMenu::OnGetItemCountAll(XUIMessageGetItemCount *pGetItemCountData, BOOL& bHandled){ pGetItemCountData->cItems = m_iButtons; bHandled = TRUE; return S_OK;}
HRESULT CScene_HowToPlayMenu::OnNotifySelChanged(HXUIOBJ hObjSource, XUINotifySelChanged *pNotifySelChangedData, BOOL& bHandled){ // In a list, we need to play the 'focus' sound ourselves if((pNotifySelChangedData->iOldItem!=-1) && m_ButtonList && (hObjSource==m_ButtonList.m_hObj)) { CXuiSceneBase::PlayUISFX(eSFX_Focus); }
return S_OK;}//----------------------------------------------------------------------------------// Handler for the button press message.//----------------------------------------------------------------------------------HRESULT CScene_HowToPlayMenu::OnNotifyPressEx(HXUIOBJ hObjPressed, XUINotifyPress* pNotifyPressData, BOOL& rfHandled){ // This assumes all buttons can only be pressed with the A button ui.AnimateKeyPress(pNotifyPressData->UserIndex, VK_PAD_A); unsigned int uiInitData; unsigned int uiButtonCounter=0;
// 4J-PB - now using a list for all resolutions //if((!RenderManager.IsHiDef() && !RenderManager.IsWidescreen()) || app.GetLocalPlayerCount()>1) { if(hObjPressed==m_ButtonList && m_ButtonList.TreeHasFocus() && (m_ButtonList.GetItemCount() > 0) && (m_ButtonList.GetCurSel() < (int)eHTPButton_Max) ) { uiButtonCounter=m_ButtonList.GetCurSel(); } } /*else { while((uiButtonCounter<BUTTONS_HTP_MAX) && (m_Buttons[uiButtonCounter]!=hObjPressed)) uiButtonCounter++; }*/
// Determine which button was pressed, // and call the appropriate function.
uiInitData = ( ( 1 << 31 ) | ( m_uiHTPSceneA[uiButtonCounter] << 16 ) | ( short )( m_iPad ) ); if(app.GetLocalPlayerCount()>1) { app.NavigateToScene(pNotifyPressData->UserIndex,eUIScene_HowToPlay, ( void* )( uiInitData ) ); } else { app.NavigateToScene(pNotifyPressData->UserIndex,eUIScene_HowToPlay, ( void* )( uiInitData ) ); } rfHandled=TRUE; return S_OK;}
HRESULT CScene_HowToPlayMenu::OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled){ ui.AnimateKeyPress(pInputData->UserIndex, pInputData->dwKeyCode);
switch(pInputData->dwKeyCode) {
case VK_PAD_B: case VK_ESCAPE: app.NavigateBack(pInputData->UserIndex); rfHandled = TRUE;
break; }
return S_OK;}
HRESULT CScene_HowToPlayMenu::OnNavReturn(HXUIOBJ hObj,BOOL& rfHandled){ ui.SetTooltips( m_iPad, IDS_TOOLTIPS_SELECT,IDS_TOOLTIPS_BACK);
return S_OK;}
HRESULT CScene_HowToPlayMenu::OnCustomMessage_Splitscreenplayer(bool bJoining, BOOL& bHandled){ bHandled=true; return app.AdjustSplitscreenScene_PlayerChanged(m_hObj,&m_OriginalPosition,m_iPad,bJoining,false);}