the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 168 lines 6.1 kB view raw
1#pragma once 2using namespace std; 3#include <vector> 4#include "..\Media\xuiscene_multi_joinload.h" 5#include "XUI_CustomMessages.h" 6 7 8#define JOIN_LOAD_CREATE_BUTTON_INDEX 0 9 10#define JOIN_LOAD_ONLINE_TIMER_ID 0 11#define JOIN_LOAD_ONLINE_TIMER_TIME 100 12#define JOIN_LOAD_SEARCH_MINIMUM_TIMER_ID 1 13#define JOIN_LOAD_SEARCH_MINIMUM_TIMER_TIME 2000 14#define JOIN_LOAD_SCROLL_GAME_NAMES_TIMER_ID 2 15#define JOIN_LOAD_SCROLL_GAME_NAMES_TIMER_TIME 1000 16 17class CXuiCtrl4JList; 18class LevelGenerationOptions; 19class CScene_MultiGameInfo; 20 21class CScene_MultiGameJoinLoad : public CXuiSceneImpl 22{ 23protected: 24 CXuiCtrl4JList *m_pSavesList; 25 CXuiCtrl4JList *m_pGamesList; 26 CXuiList m_SavesList; 27 CXuiList m_GamesList; 28 CXuiControl m_SavesListTimer; 29 CXuiControl m_NetGamesListTimer; 30 CXuiControl m_LabelNoGames; 31 int m_iPad; 32 33 bool m_bShowingPartyGamesOnly; 34 bool m_bInParty; 35 36 XUI_BEGIN_MSG_MAP() 37 XUI_ON_XM_INIT( OnInit ) 38 XUI_ON_XM_DESTROY(OnDestroy) 39 XUI_ON_XM_KEYDOWN(OnKeyDown) 40 XUI_ON_XM_NOTIFY_PRESS_EX(OnNotifyPressEx) 41 XUI_ON_XM_NAV_RETURN(OnNavReturn) 42 XUI_ON_XM_NOTIFY_SELCHANGED(OnNotifySelChanged) 43 XUI_ON_XM_NOTIFY_SET_FOCUS(OnNotifySetFocus) 44 XUI_ON_XM_NOTIFY_KILL_FOCUS(OnNotifyKillFocus) 45 XUI_ON_XM_TIMER( OnTimer ) 46 XUI_ON_XM_TRANSITION_START(OnTransitionStart) 47 XUI_ON_XM_FONTRENDERERCHANGE_MESSAGE(OnFontRendererChange) 48 XUI_ON_XM_DLCINSTALLED_MESSAGE(OnCustomMessage_DLCInstalled) 49 XUI_ON_XM_DLCLOADED_MESSAGE(OnCustomMessage_DLCMountingComplete) 50 51 XUI_END_MSG_MAP() 52 53 BEGIN_CONTROL_MAP() 54 MAP_CONTROL(IDC_GamesList, m_GamesList) 55 MAP_CONTROL(IDC_SavesTimer, m_SavesListTimer) 56 MAP_CONTROL(IDC_Timer, m_NetGamesListTimer) 57 MAP_CONTROL(IDC_LabelNoGames, m_LabelNoGames) 58 MAP_CONTROL(IDC_SavesList, m_SavesList) 59 END_CONTROL_MAP() 60 61 62 HRESULT OnInit( XUIMessageInit* pInitData, BOOL& bHandled ); 63 HRESULT OnDestroy(); 64 HRESULT OnNotifyPressEx(HXUIOBJ hObjPressed, XUINotifyPress* pNotifyPressData,BOOL& rfHandled); 65 HRESULT OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled); 66 HRESULT OnNavReturn(HXUIOBJ hObj,BOOL& rfHandled); 67 HRESULT OnNotifySelChanged(HXUIOBJ hObjSource, XUINotifySelChanged *pNotifySelChangedData, BOOL& bHandled); 68 HRESULT OnNotifySetFocus(HXUIOBJ hObjSource, XUINotifyFocus *pNotifyFocusData, BOOL& bHandled); 69 HRESULT OnNotifyKillFocus(HXUIOBJ hObjSource, XUINotifyFocus *pNotifyFocusData, BOOL& bHandled); 70 HRESULT OnTimer( XUIMessageTimer *pTimer, BOOL& bHandled ); 71 HRESULT OnTransitionStart( XUIMessageTransition *pTransition, BOOL& bHandled ); 72 HRESULT OnFontRendererChange(); 73 HRESULT OnCustomMessage_DLCInstalled(); 74 HRESULT OnCustomMessage_DLCMountingComplete(); 75 76 77public: 78 79 // Define the class. The class name must match the ClassOverride property 80 // set for the scene in the UI Authoring tool. 81 XUI_IMPLEMENT_CLASS( CScene_MultiGameJoinLoad, L"CScene_MultiGameJoinLoad", XUI_CLASS_SCENE ) 82 83private: 84 bool DoesSavesListHaveFocus(); 85 bool DoesGamesListHaveFocus(); 86 bool DoesMashUpWorldHaveFocus(); 87 88public: 89 static void UpdateGamesListCallback(LPVOID pParam); 90 91private: 92 void AddDefaultButtons(); 93 void UpdateGamesList(); 94 void UpdateGamesList(DWORD dwNumResults, IQNetGameSearch *pGameSearch); 95 //void UpdateGamesListLabels(); 96 static void SearchForGameCallback(void *hObj, DWORD dwNumResults, IQNetGameSearch *pGameSearch); 97 static int DeviceSelectReturned(void *pParam,bool bContinue); 98 99 unsigned char m_localPlayers; 100 101 HRESULT GetSaveInfo( ); 102 static int LoadSaveDataReturned(void *pParam,bool bContinue); 103 static int DeleteSaveDataReturned(void *pParam,bool bSuccess); 104 105 unsigned int m_uiSaveC; 106 void LoadLevelGen(LevelGenerationOptions *levelGen); 107 void LoadSaveFromDisk(File *saveFile); 108 109 // callback 110#ifdef _XBOX 111 static bool GetSavesInfoCallback(LPVOID pParam,int iInstalledC, C4JStorage::CACHEINFOSTRUCT *InfoA, int iPad, HRESULT hRes); 112#else 113 static int GetSavesInfoCallback(LPVOID lpParam,const bool); 114#endif 115 static int DeleteSaveDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); 116 static int SaveOptionsDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); 117 static int DeviceRemovedDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); 118 static int StartGame_SignInReturned(void *pParam,bool bContinue, int iPad); 119 static int CopySaveReturned(void *pParam,bool bResult); 120 static int LoadSaveDataForRenameReturned(void *pParam,bool bContinue); 121 static int KeyboardReturned(void *pParam,bool bSet); 122 static void StartGameFromSave(CScene_MultiGameJoinLoad* pClass, DWORD dwLocalUsersMask); 123 static int TexturePackDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); 124 static int SaveTransferDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); 125 126 static int Progress(void *pParam,float fProgress); 127 static int TransferComplete(void *pParam,int i1, int i2); 128 static int DeleteComplete(void *pParam,int i1, int i2); 129 static int UploadSaveForXboxOneThreadProc( LPVOID lpParameter ); 130 static void DeleteFile(CScene_MultiGameJoinLoad *pClass, char *filename); 131 static void UploadFile(CScene_MultiGameJoinLoad *pClass, char *filename, LPVOID data, DWORD size); 132 static bool WaitForTransferComplete( CScene_MultiGameJoinLoad *pClass ); 133 static void CancelSaveUploadCallback(LPVOID lpParam); 134 static void SaveUploadCompleteCallback(LPVOID lpParam); 135 136 137 bool m_bIgnoreInput; 138 vector<File *> *m_saves; 139 140 int m_iSaveInfoC; 141 int m_iDefaultButtonsC; 142 int m_iMashUpButtonsC; 143 int m_iChangingSaveGameInfoIndex; 144 145 bool m_bMultiplayerAllowed; 146 bool m_bKillSaveInfoEnumerate; 147 148 vector<FriendSessionInfo *> currentSessions; 149 bool m_bReady; 150 bool m_bRetrievingSaveInfo; 151 //bool m_bSaveRenamed; 152 WCHAR m_wchNewName[XCONTENT_MAX_DISPLAYNAME_LENGTH]; 153 unsigned char m_szSeed[50]; 154 155 vector<LevelGenerationOptions *> *m_generators; 156 JoinMenuInitData *m_initData; 157 158 UINT m_DefaultMinecraftIconSize; 159 PBYTE m_DefaultMinecraftIconData; 160 int *m_iConfigA; // track the texture packs that we don't have installed 161 int m_iTexturePacksNotInstalled; 162 PBYTE m_pbSaveTransferData; 163 164 float m_fProgress; 165 bool m_bTransferComplete; 166 bool m_bTransferFail; 167 bool m_bSaveTransferInProgress; 168};