diff options
Diffstat (limited to 'Minecraft.Client/Common/UI/UIScene_InGameSaveManagementMenu.h')
| -rw-r--r-- | Minecraft.Client/Common/UI/UIScene_InGameSaveManagementMenu.h | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/Minecraft.Client/Common/UI/UIScene_InGameSaveManagementMenu.h b/Minecraft.Client/Common/UI/UIScene_InGameSaveManagementMenu.h new file mode 100644 index 00000000..3f9ace3a --- /dev/null +++ b/Minecraft.Client/Common/UI/UIScene_InGameSaveManagementMenu.h @@ -0,0 +1,104 @@ +#pragma once + +#include "UIScene.h" + +class UIScene_InGameSaveManagementMenu : public UIScene +{ +private: + enum EControls + { + eControl_SavesList, +#if defined(_XBOX_ONE) || defined(__ORBIS__) + eControl_SpaceIndicator, +#endif + }; + + enum EState + { + e_SavesIdle, + e_SavesRepopulate, + e_SavesRepopulateAfterDelete + }; + + static const int JOIN_LOAD_CREATE_BUTTON_INDEX = 0; + + SaveListDetails *m_saveDetails; + int m_iSaveDetailsCount; + +protected: + UIControl_SaveList m_buttonListSaves; + UIControl_Label m_labelSavesListTitle; + UIControl m_controlSavesTimer; +#if defined(_XBOX_ONE) || defined(__ORBIS__) + UIControl_SpaceIndicatorBar m_spaceIndicatorSaves; +#endif + +private: + UI_BEGIN_MAP_ELEMENTS_AND_NAMES(UIScene) + UI_MAP_ELEMENT( m_buttonListSaves, "SavesList") + + UI_MAP_ELEMENT( m_labelSavesListTitle, "SavesListTitle") + + UI_MAP_ELEMENT( m_controlSavesTimer, "SavesTimer") + +#if defined(_XBOX_ONE) || defined(__ORBIS__) + UI_MAP_ELEMENT( m_spaceIndicatorSaves, "SaveSizeBar") +#endif + UI_END_MAP_ELEMENTS_AND_NAMES() + + int m_iState; + + vector<File *> *m_saves; + + bool m_bIgnoreInput; + bool m_bAllLoaded; + bool m_bRetrievingSaveThumbnails; + bool m_bSaveThumbnailReady; + int m_iRequestingThumbnailId; + SAVE_DETAILS *m_pSaveDetails; + bool m_bSavesDisplayed; + bool m_bExitScene; + int m_iSaveInfoC; + int m_iSaveListIndex; + //int *m_iConfigA; // track the texture packs that we don't have installed + + bool m_bUpdateSaveSize; + +public: + UIScene_InGameSaveManagementMenu(int iPad, void *initData, UILayer *parentLayer); + virtual ~UIScene_InGameSaveManagementMenu(); + + virtual void updateTooltips(); + + virtual void handleReload(); + virtual void handleGainFocus(bool navBack); + // INPUT + virtual void handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled); + virtual void handleFocusChange(F64 controlId, F64 childId); + virtual void handleInitFocus(F64 controlId, F64 childId); + + virtual EUIScene getSceneType() { return eUIScene_LoadOrJoinMenu;} + + // Returns true if lower scenes in this scenes layer, or in any layer below this scenes layers should be hidden + virtual bool hidesLowerScenes() { return true; } + + virtual bool hasFocus(int iPad); + + virtual void tick(); + +private: + void Initialise(); + void GetSaveInfo(); + +protected: + // TODO: This should be pure virtual in this class + virtual wstring getMoviePath(); + +public: + + static int LoadSaveDataThumbnailReturned(LPVOID lpParam,PBYTE pbThumbnail,DWORD dwThumbnailBytes); + static int DeleteSaveDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); + static int DeleteSaveDataReturned(LPVOID lpParam,bool bRes); +protected: + void handlePress(F64 controlId, F64 childId); +}; |
