the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
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