the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 150 lines 5.1 kB view raw
1#pragma once 2 3#include "../media/xuiscene_skinselect.h" 4#include "XUI_CustomMessages.h" 5#include "..\..\..\Minecraft.World\Definitions.h" 6#include "..\..\Textures.h" 7 8class DLCPack; 9 10class CXuiCtrlMinecraftSkinPreview; 11 12class CScene_SkinSelect : public CXuiSceneImpl 13{ 14private: 15 static WCHAR *wchDefaultNamesA[eDefaultSkins_Count]; 16 17 // 4J Stu - How many to show on each side of the main control 18 static const BYTE sidePreviewControls = 4; 19 20 enum ESkinSelectNavigation 21 { 22 eSkinNavigation_Pack, 23 eSkinNavigation_Skin, 24 25 eSkinNavigation_Count, 26 }; 27 28protected: 29 CXuiControl m_skinDetails, m_text, m_originText; 30 CXuiCtrlMinecraftSkinPreview *m_previewControl; 31 CXuiCtrlMinecraftSkinPreview *m_previewPreviousControls[sidePreviewControls]; 32 CXuiCtrlMinecraftSkinPreview *m_previewNextControls[sidePreviewControls]; 33 CXuiControl m_packGroup, m_charactersGroup; 34 CXuiControl m_packLeft, m_packRight, m_packCenter; 35 CXuiImageElement m_imagePadlock; 36 CXuiElement m_selectedGroup; 37 CXuiControl m_selectedText; 38 CXuiControl m_timer; 39 CXuiElement m_tabGroup; 40 CXuiElement m_normalTabs, m_selectedTabs; 41 42 // Message map. Here we tie messages to message handlers. 43 XUI_BEGIN_MSG_MAP() 44 XUI_ON_XM_INIT( OnInit ) 45 XUI_ON_XM_KEYDOWN( OnKeyDown ) 46 XUI_ON_XM_KEYUP( OnKeyUp ) 47 XUI_ON_XM_NOTIFY_PRESS_EX(OnNotifyPressEx) 48 XUI_ON_XM_TRANSITION_START(OnTransitionStart) 49 XUI_ON_XM_TIMELINE_END( OnTimelineEnd ) 50 XUI_ON_XM_SPLITSCREENPLAYER_MESSAGE(OnCustomMessage_Splitscreenplayer) 51 XUI_ON_XM_DLCLOADED_MESSAGE(OnCustomMessage_DLCMountingComplete) 52 XUI_ON_XM_BASE_POSITION_CHANGED_MESSAGE(OnBasePositionChanged) 53 XUI_ON_XM_DLCINSTALLED_MESSAGE(OnCustomMessage_DLCInstalled) 54 XUI_END_MSG_MAP() 55 56 BEGIN_CONTROL_MAP() 57 MAP_CONTROL(IDC_Timer, m_timer) 58 59 MAP_CONTROL(IDC_PackGroup, m_packGroup) 60 BEGIN_MAP_CHILD_CONTROLS( m_packGroup) 61 MAP_CONTROL(IDC_Left, m_packLeft) 62 MAP_CONTROL(IDC_Center, m_packCenter) 63 MAP_CONTROL(IDC_Right, m_packRight) 64 END_MAP_CHILD_CONTROLS() 65 66 MAP_CONTROL(IDC_TabBar, m_tabGroup) 67 BEGIN_MAP_CHILD_CONTROLS( m_tabGroup ) 68 MAP_CONTROL(IDC_Selected, m_selectedTabs ) 69 MAP_CONTROL(IDC_Normal, m_normalTabs ) 70 END_MAP_CHILD_CONTROLS() 71 72 MAP_CONTROL(IDC_SelectedGroup, m_selectedGroup) 73 BEGIN_MAP_CHILD_CONTROLS( m_selectedGroup ) 74 MAP_CONTROL(IDC_SelectedText, m_selectedText) 75 END_MAP_CHILD_CONTROLS() 76 77 MAP_CONTROL(IDC_Locked, m_imagePadlock) 78 79 MAP_CONTROL(IDC_SkinDetails, m_skinDetails) 80 BEGIN_MAP_CHILD_CONTROLS( m_skinDetails) 81 MAP_CONTROL(IDC_SkinName, m_text) 82 MAP_CONTROL(IDC_OriginName, m_originText) 83 END_MAP_CHILD_CONTROLS() 84 85 MAP_CONTROL(IDC_Characters, m_charactersGroup) 86 BEGIN_MAP_CHILD_CONTROLS( m_charactersGroup ) 87 MAP_OVERRIDE(IDC_Character, m_previewControl) 88 MAP_OVERRIDE(IDC_CharacterPrevious1, m_previewPreviousControls[0]) 89 MAP_OVERRIDE(IDC_CharacterPrevious2, m_previewPreviousControls[1]) 90 MAP_OVERRIDE(IDC_CharacterPrevious3, m_previewPreviousControls[2]) 91 MAP_OVERRIDE(IDC_CharacterPrevious4, m_previewPreviousControls[3]) 92 MAP_OVERRIDE(IDC_CharacterNext1, m_previewNextControls[0]) 93 MAP_OVERRIDE(IDC_CharacterNext2, m_previewNextControls[1]) 94 MAP_OVERRIDE(IDC_CharacterNext3, m_previewNextControls[2]) 95 MAP_OVERRIDE(IDC_CharacterNext4, m_previewNextControls[3]) 96 END_MAP_CHILD_CONTROLS() 97 END_CONTROL_MAP() 98 99 HRESULT OnInit( XUIMessageInit* pInitData, BOOL& bHandled ); 100 HRESULT OnKeyDown(XUIMessageInput *pInputData, BOOL& bHandled); 101 HRESULT OnNotifyPressEx(HXUIOBJ hObjPressed, XUINotifyPress* pNotifyPressData,BOOL& rfHandled); 102 HRESULT OnKeyUp(XUIMessageInput *pInputData, BOOL& bHandled); 103 HRESULT OnTransitionStart( XUIMessageTransition *pTransition, BOOL& bHandled ); 104 HRESULT OnTimelineEnd(HXUIOBJ hObjSource, BOOL& bHandled); 105 HRESULT OnCustomMessage_Splitscreenplayer(bool bJoining, BOOL& bHandled); 106 HRESULT OnCustomMessage_DLCInstalled(); 107 HRESULT OnCustomMessage_DLCMountingComplete(); 108 HRESULT OnBasePositionChanged(); 109 110 int m_iPad; 111 D3DXVECTOR3 m_OriginalPosition; 112 wstring m_currentSkinPath, m_selectedSkinPath, m_selectedCapePath; 113 vector<SKIN_BOX *> *m_vAdditionalSkinBoxes; 114 //vector<ModelPart *> *m_vAdditionalModelParts; 115 DWORD m_originalSkinId; 116 117 DLCPack *m_currentPack; 118 DWORD m_packIndex, m_skinIndex; 119public: 120 121 // Define the class. The class name must match the ClassOverride property 122 // set for the scene in the UI Authoring tool. 123 XUI_IMPLEMENT_CLASS( CScene_SkinSelect, L"CScene_SkinSelect", XUI_CLASS_SCENE ) 124 125private: 126 void handleSkinIndexChanged(); 127 void handlePackIndexChanged(); 128 void updatePackDisplay(); 129 void updateCurrentFocus(); 130 TEXTURE_NAME getTextureId(int skinIndex); 131 132 int getNextSkinIndex(DWORD sourceIndex); 133 int getPreviousSkinIndex(DWORD sourceIndex); 134 135 int getNextPackIndex(DWORD sourceIndex); 136 int getPreviousPackIndex(DWORD sourceIndex); 137 138 void updateClipping(); 139 140 static int UnlockSkinReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); 141 142 void AddFavoriteSkin(int iPad,int iSkinID); 143 144 bool m_bSlidingSkins, m_bAnimatingMove; 145 146 DWORD currentPackCount; 147 148 ESkinSelectNavigation m_currentNavigation; 149 bool m_bIgnoreInput; 150};