#pragma once #include "../Media/xuiscene_multi_create.h" #include "XUI_Ctrl_4JEdit.h" #include "XUI_Ctrl_SliderWrapper.h" #include "XUI_MultiGameLaunchMoreOptions.h" class CXuiCtrl4JList; class CXuiCtrl4JIcon; class CScene_MultiGameCreate : public CXuiSceneImpl { protected: CXuiScene m_MainScene; CXuiScene m_TexturePackDetails; CXuiControl m_NewWorld; CXuiControl m_labelWorldName; CXuiControl m_labelSeed; CXuiControl m_labelRandomSeed; CXuiControl m_MoreOptions; CXuiCtrl4JEdit m_EditSeed; CXuiCtrl4JEdit m_EditWorldName; CXuiControl m_ButtonGameMode; CXuiCtrlSliderWrapper m_SliderDifficulty; CXuiCtrl4JList* m_pTexturePacksList; CXuiControl m_texturePackTitle, m_texturePackDescription; CXuiCtrl4JIcon *m_texturePackIcon, *m_texturePackComparison; XUI_BEGIN_MSG_MAP() XUI_ON_XM_INIT(OnInit) XUI_ON_XM_KEYDOWN(OnKeyDown) XUI_ON_XM_NOTIFY_PRESS_EX(OnNotifyPressEx) XUI_ON_XM_NOTIFY_VALUE_CHANGED(OnNotifyValueChanged) XUI_ON_XM_CONTROL_NAVIGATE(OnControlNavigate) XUI_ON_XM_TIMER(OnTimer) XUI_ON_XM_TRANSITION_START(OnTransitionStart) XUI_ON_XM_TRANSITION_END(OnTransitionEnd) XUI_ON_XM_NOTIFY_SELCHANGED(OnNotifySelChanged) XUI_ON_XM_NOTIFY_KILL_FOCUS(OnNotifyKillFocus) XUI_ON_XM_DLCINSTALLED_MESSAGE(OnCustomMessage_DLCInstalled) XUI_ON_XM_DLCLOADED_MESSAGE(OnCustomMessage_DLCMountingComplete) XUI_ON_XM_DESTROY(OnDestroy) XUI_END_MSG_MAP() BEGIN_CONTROL_MAP() MAP_CONTROL(IDC_MainScene, m_MainScene) BEGIN_MAP_CHILD_CONTROLS(m_MainScene) MAP_CONTROL(IDC_XuiLabelWorldName, m_labelWorldName) MAP_CONTROL(IDC_XuiLabelSeed, m_labelSeed) MAP_CONTROL(IDC_XuiLabelRandomSeed, m_labelRandomSeed) MAP_CONTROL(IDC_XuiGameModeToggle, m_ButtonGameMode) MAP_CONTROL(IDC_XuiNewWorld, m_NewWorld) MAP_CONTROL(IDC_XuiMoreOptions, m_MoreOptions) MAP_CONTROL(IDC_XuiEditSeed, m_EditSeed) MAP_CONTROL(IDC_XuiEditWorldName, m_EditWorldName) MAP_CONTROL(IDC_XuiSliderDifficulty, m_SliderDifficulty) MAP_OVERRIDE(IDC_TexturePacksList, m_pTexturePacksList) END_MAP_CHILD_CONTROLS() MAP_CONTROL(IDC_TexturePackDetails, m_TexturePackDetails) BEGIN_MAP_CHILD_CONTROLS(m_TexturePackDetails) MAP_CONTROL(IDC_TexturePackName, m_texturePackTitle) MAP_CONTROL(IDC_TexturePackDescription, m_texturePackDescription) MAP_OVERRIDE(IDC_Icon, m_texturePackIcon) MAP_OVERRIDE(IDC_ComparisonPic, m_texturePackComparison) END_MAP_CHILD_CONTROLS() END_CONTROL_MAP() HRESULT OnInit(XUIMessageInit* pInitData, BOOL& bHandled); HRESULT OnNotifyPressEx(HXUIOBJ hObjPressed, XUINotifyPress* pNotifyPressData, BOOL& rfHandled); HRESULT OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled); HRESULT OnNotifyValueChanged(HXUIOBJ hObjSource, XUINotifyValueChanged* pValueChangedData, BOOL& rfHandled); HRESULT OnControlNavigate(XUIMessageControlNavigate* pControlNavigateData, BOOL& bHandled); HRESULT OnTimer(XUIMessageTimer* pTimer, BOOL& bHandled); HRESULT OnTransitionStart(XUIMessageTransition* pTransition, BOOL& bHandled); HRESULT OnTransitionEnd(XUIMessageTransition* pTransition, BOOL& bHandled); HRESULT OnNotifySelChanged(HXUIOBJ hObjSource, XUINotifySelChanged* pNotifySelChangedData, BOOL& bHandled); HRESULT OnNotifyKillFocus(HXUIOBJ hObjSource, XUINotifyFocus* pNotifyFocusData, BOOL& bHandled); HRESULT OnCustomMessage_DLCInstalled(); HRESULT OnCustomMessage_DLCMountingComplete(); HRESULT OnDestroy(); public: // Define the class. The class name must match the ClassOverride property // set for the scene in the UI Authoring tool. XUI_IMPLEMENT_CLASS(CScene_MultiGameCreate, L"CScene_MultiGameCreate", XUI_CLASS_SCENE) private: static int LoadSaveDataReturned(void* pParam, bool bContinue); static int StartGame_SignInReturned(void* pParam, bool bContinue, int iPad); static void CreateGame(CScene_MultiGameCreate* pClass, DWORD dwLocalUsersMask); static int ConfirmCreateReturned(void* pParam, int iPad, C4JStorage::EMessageResult result); static int UnlockTexturePackReturned(void* pParam, int iPad, C4JStorage::EMessageResult result); static int WarningTrialTexturePackReturned( void* pParam, int iPad, C4JStorage::EMessageResult result); static int TexturePackDialogReturned(void* pParam, int iPad, C4JStorage::EMessageResult result); void ToggleShowSaveList(); void UpdateTexturePackDescription(int index); void ClearTexturePackDescription(); void UpdateCurrentTexturePack(); bool m_bMultiplayerAllowed; int m_iPad; int m_CurrentDifficulty; static int m_iDifficultyTitleSettingA[4]; LaunchMoreOptionsMenuInitData m_MoreOptionsParams; bool m_bGameModeSurvival; bool m_bIgnoreInput; unsigned int m_currentTexturePackIndex; DLCPack* m_pDLCPack; bool m_bSetup; bool m_texturePackDescDisplayed; HXUIBRUSH m_hTexturePackIconBrush; HXUIBRUSH m_hTexturePackComparisonBrush; int* m_iConfigA; // track the texture packs that we don't have installed int m_iTexturePacksNotInstalled; };