the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at master 221 lines 7.2 kB view raw
1#pragma once 2 3class C4JStringTable; 4#include <np_toolkit.h> 5 6#include "..\..\Common\Network\Sony\SonyCommerce.h" 7#include "..\..\Common\Network\Sony\SonyRemoteStorage.h" 8 9#define PRODUCT_CODE_SIZE 9 10#define SAVEFOLDERPREFIX_SIZE 10 11#define COMMERCE_CATEGORY_SIZE 19 12#define UPGRADE_KEY_SIZE 59 13#define SKU_POSTFIX_SIZE 4 14 15enum EProductSKU 16{ 17 e_sku_SCEE, 18 e_sku_SCEA, 19 e_sku_SCEJ 20}; 21 22typedef struct 23{ 24 char chProductCode[PRODUCT_CODE_SIZE+1]; 25 char chSaveFolderPrefix[SAVEFOLDERPREFIX_SIZE+1]; 26 char chDiscSaveFolderPrefix[SAVEFOLDERPREFIX_SIZE+1]; 27 char chCommerceCategory[COMMERCE_CATEGORY_SIZE+1]; 28 char chTexturePackID[SCE_TOOLKIT_NP_COMMERCE_CATEGORY_ID_LEN+1]; 29 char chUpgradeKey[UPGRADE_KEY_SIZE+1]; 30 char chSkuPostfix[SKU_POSTFIX_SIZE+1]; 31 EProductSKU eProductSKU; 32} 33PRODUCTCODES; 34 35class SonyRemoteStorage; 36 37// MGH - moved these to the storage lib, as we need this data when parsing the DLC folders 38// enum e_SONYDLCType 39// { 40// eSONYDLCType_SkinPack=0, 41// eSONYDLCType_TexturePack, 42// eSONYDLCType_MashUpPack, 43// eSONYDLCType_All 44// }; 45// 46// typedef struct 47// { 48// char chDLCKeyname[16]; 49// //char chDLCTitle[64]; 50// e_SONYDLCType eDLCType; 51// int iFirstSkin; 52// int iConfig; // used for texture pack data files 53// } 54// SONYDLC; 55// 56 57class CConsoleMinecraftApp : public CMinecraftApp 58{ 59 ImageFileBuffer m_ThumbnailBuffer; 60 ImageFileBuffer m_SaveImageBuffer; 61public: 62 CConsoleMinecraftApp(); 63 64 virtual void SetRichPresenceContext(int iPad, int contextId); 65 66 virtual void StoreLaunchData(); 67 virtual void ExitGame(); 68 virtual void FatalLoadError(); 69 70 virtual void CaptureSaveThumbnail(); 71 virtual void GetSaveThumbnail(PBYTE*,DWORD*) {}; // NOT USED 72 virtual void GetSaveThumbnail(PBYTE *ppbThumbnailData,DWORD *pdwThumbnailSize,PBYTE *ppbDataImage,DWORD *pdwSizeImage); 73 virtual void ReleaseSaveThumbnail(); 74 virtual void GetScreenshot(int iPad,PBYTE *pbData,DWORD *pdwSize); 75 76 int LoadLocalTMSFile(char *chTMSFile); 77 int LoadLocalDLCImage(SONYDLC *pDLCInfo); 78 int LoadLocalDLCImages(); 79 void FreeLocalDLCImages(); 80 81 virtual int LoadLocalTMSFile(WCHAR *wchTMSFile); 82 virtual int LoadLocalTMSFile(WCHAR *wchTMSFile, eFileExtensionType eExt); 83 virtual void FreeLocalTMSFiles(eTMSFileType eType); 84 virtual int GetLocalTMSFileIndex(WCHAR *wchTMSFile,bool bFilenameIncludesExtension,eFileExtensionType eEXT=eFileExtensionType_PNG); 85 86 // BANNED LEVEL LIST 87 virtual void ReadBannedList(int iPad, eTMSAction action=(eTMSAction)0, bool bCallback=false) {} 88 89 C4JStringTable *GetStringTable() { return NULL;} 90 91 // original code 92 virtual void TemporaryCreateGameStart(); 93 94 95 96 97 BOOL ReadProductCodes(); 98 char *GetProductCode(); 99 char *GetSaveFolderPrefix(); 100 char *GetCommerceCategory(); 101 char *GetTexturePacksCategoryID(); 102 char *GetUpgradeKey(); 103 EProductSKU GetProductSKU(); 104 bool IsJapaneseSKU(); 105 bool IsEuropeanSKU(); 106 bool IsAmericanSKU(); 107 //char *GetSKUPostfix(); 108 SONYDLC *GetSONYDLCInfo(char *pchTitle); 109 SONYDLC *GetSONYDLCInfoFromKeyname(char *pchKeyName); 110 111 int GetiFirstSkinFromName(char *pchName); 112 int GetiConfigFromName(char *pchName); 113 eDLCContentType GetDLCTypeFromName(char *pchDLCName); 114 bool GetTrialFromName(char *pchDLCName); 115 116 // PS3 COMMERCE 117 enum eUI_DLC_State 118 { 119 eCommerce_State_Offline, 120 eCommerce_State_Online, 121 eCommerce_State_Error, 122 eCommerce_State_Init, 123 eCommerce_State_Init_Pending, 124 eCommerce_State_GetCategories, 125 eCommerce_State_GetCategories_Pending, 126 eCommerce_State_GetProductList, 127 eCommerce_State_GetProductList_Pending, 128 eCommerce_State_AddProductInfoDetailed, 129 eCommerce_State_AddProductInfoDetailed_Pending, 130 eCommerce_State_RegisterDLC, 131 eCommerce_State_Checkout, 132 eCommerce_State_Checkout_WaitingForSession, 133 eCommerce_State_Checkout_SessionStarted, 134 eCommerce_State_Checkout_Pending, 135 eCommerce_State_DownloadAlreadyPurchased, 136 eCommerce_State_DownloadAlreadyPurchased_WaitingForSession, 137 eCommerce_State_DownloadAlreadyPurchased_SessionStarted, 138 eCommerce_State_DownloadAlreadyPurchased_Pending, 139 eCommerce_State_UpgradeTrial, 140 eCommerce_State_UpgradeTrial_WaitingForSession, 141 eCommerce_State_UpgradeTrial_SessionStarted, 142 eCommerce_State_UpgradeTrial_Pending, 143 }; 144 145 void SystemServiceTick(); 146 void SaveDataDialogTick(); 147 void CommerceInit(); 148 void CommerceTick(); 149 bool GetCommerceCategoriesRetrieved(); 150 bool GetCommerceProductListRetrieved(); 151 bool GetCommerceProductListInfoRetrieved(); 152 int GetCommerceState(); 153 SonyCommerce* GetCommerce() { return m_pCommerce; } 154 SonyCommerce::CategoryInfo *GetCategoryInfo(); 155 std::vector<SonyCommerce::ProductInfo>* GetProductList(int iIndex); // default to fail if the additional details are not retrieved 156 SonyCommerce::ProductInfoDetailed *GetProductInfoDetailed(); 157 void ClearCommerceDetails(); // wipe out details on a PSN sign out 158 void Checkout(char *pchSkuID); 159 void DownloadAlreadyPurchased(char *pchSkuID); 160 bool UpgradeTrial(); 161 bool DLCAlreadyPurchased(char *pchTitle); 162 char *GetSkuIDFromProductList(); 163 void GetDLCSkuIDFromProductList(char *,char *); 164 unordered_map<wstring, SONYDLC *>* GetSonyDLCMap() { return &m_SONYDLCMap; } 165 static void CommerceInitCallback(LPVOID lpParam,int err); 166 static void CommerceGetCategoriesCallback(LPVOID lpParam,int err); 167 static void CommerceGetProductListCallback(LPVOID lpParam,int err); 168 // static void CommerceGetDetailedProductInfoCallback(LPVOID lpParam,int err); 169 static void CommerceAddDetailedProductInfoCallback(LPVOID lpParam,int err); 170 static void CommerceCheckoutCallback(LPVOID lpParam,int err); 171 172 static void CheckoutSessionStartedCallback(LPVOID lpParam,int err); 173 static void DownloadAlreadyPurchasedSessionStartedCallback(LPVOID lpParam,int err); 174 static void UpgradeTrialSessionStartedCallback(LPVOID lpParam,int err); 175 176 static void Callback_SaveGameIncomplete(void *pParam, C4JStorage::ESaveIncompleteType saveIncompleteType, int blocksRequired); 177 static int Callback_SaveGameIncompleteMessageBoxReturned(void *pParam,int iPad,C4JStorage::EMessageResult result); 178 179 bool CheckForEmptyStore(int iPad); 180 181 SonyRemoteStorage* getRemoteStorage() { return m_pRemoteStorage; } 182 183 void SetOptionsSaveDataDialogRunning(bool bVal) {m_bOptionsSaveDataDialogRunning=bVal;} 184 bool GetOptionsSaveDataDialogRunning() {return m_bOptionsSaveDataDialogRunning;} 185 186 void ShowPatchAvailableError(); 187 void PatchAvailableDialogTick(); 188private: 189 bool m_bPatchAvailableDialogRunning; 190 bool m_bSaveDataDialogRunning; 191 bool m_bOptionsSaveDataDialogRunning; 192 C4JStorage::ESaveIncompleteType m_eSaveIncompleteType; 193 194 bool m_bCommerceCategoriesRetrieved; 195 bool m_bCommerceInitialised; 196 bool m_bCommerceProductListRetrieved; 197 bool m_bProductListAdditionalDetailsRetrieved; 198 char m_pchSkuID[48]; 199 200 int m_eCommerce_State; 201 int m_ProductListRetrievedC; 202 int m_ProductListAdditionalDetailsC; 203 int m_ProductListCategoriesC; 204 int m_iCurrentCategory; 205 int m_iCurrentProduct; 206 207 SonyCommerce *m_pCommerce; 208 SonyCommerce::CategoryInfo m_CategoryInfo; 209 std::vector<SonyCommerce::ProductInfo>* m_ProductListA; 210 // SonyCommerce::ProductInfoDetailed m_ProductInfoDetailed; 211 212 PRODUCTCODES ProductCodes; 213 unordered_map<wstring, SONYDLC *> m_SONYDLCMap; 214 215 216 bool m_bVoiceChatAndUGCRestricted; 217 SonyRemoteStorage* m_pRemoteStorage; 218}; 219 220extern CConsoleMinecraftApp app; 221