CFE.h 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. // CFE - [2020-04-13 11:57:46]
  2. #ifndef _CFE_H_
  3. #define _CFE_H_
  4. #include "XMATH.h"
  5. #include "CFTTTexture.h"
  6. #include "CFTTJobQueue.h"
  7. #include "CFEScreen.h"
  8. #include "CGameLoop.h"
  9. #include "CFTTTexLoadOptions.h"
  10. #include "FTTMutex.h"
  11. /*
  12. 001199F4 CFE::StoreUniformSpaceDimensions(float f1, float f2)
  13. 00119A10 CFE::SetToUniformSpace()
  14. 00119AC0 CFE::SetViewport_Uniform()
  15. 00119BCC CFE::Begin2DScene()
  16. 00119BE0 CFE::SetupUniformRes()
  17. 00119C28 CFE::BeginCustom2DScene(float f1)
  18. 00119C58 CFE::SetupCustomRes(float d1)
  19. 00119D60 CFE::ResetCustom2DScene()
  20. 00119D8C CFE::End2DScene()
  21. 00119D90 CFE::GetUniformXFromNativeX(float f1)
  22. 00119DCC CFE::GetUniformYFromNativeY(float f1)
  23. 00119E08 CFE::GetNativeXFromUniformX(float f1)
  24. 00119E48 CFE::GetNativeYFromUniformY(float f1)
  25. 00119E88 CFE::RoundToNativeXPixel(float f1)
  26. 00119ED4 CFE::RoundToNativeYPixel(float f1)
  27. 00119F20 CFE::SetNativeHardwareSize(float f1, float f2)
  28. 00119F30 CFE::ResolveScreenDims()
  29. 001522AC CFE::Init()
  30. 00152394 CFE::Forward(int a1, bool b1, bool b2)
  31. 00152464 CFE::Exit()
  32. 0015249C CFE::InitialiseBannerAds()
  33. 001524BC CFE::AllowBannerAds()
  34. 00152508 CFE::RemoveBannerAd()
  35. 0015251C CFE::ShutDown()
  36. 001525B4 CFE::PauseSoundForRecording()
  37. 001525C6 CFE::PlaySoundAfterRecording()
  38. 001525CC CFE::CheckMusic()
  39. 0015261C CFE::ProcessAdverts()
  40. 0015263C CFE::AttemptToPlayVideoAd(bool b1, int a2 ,bool b3 ,bool b4)
  41. 00152714 CFE::AttemptToDisplayInterstitialAd()
  42. 00152770 CFE::AttemptToStartVideoAdNetworks()
  43. 00152864 CFE::AllowVideoAds(EVideoAdZones)
  44. 00152914 CFE::VideoAnalytics(int a1)
  45. 00152918 CFE::PlayRewardedVideo(int a1, void * pdat)
  46. 00152998 CFE::VideoAdEnergyRewardCallback(int a1, int a2, bool b3, char const* pdata)
  47. 00152A74 CFE::VideoAdCurrencyRewardCallback(int a1, int a2, bool b1, char const* pdata)
  48. 00152BB8 CFE::ReadyToPlayVideoAd(bool b1, int a2, bool b3)
  49. 00152C08 CFE::PassedVideoTime()
  50. 00152C44 CFE::UpdateAdvertTimings(bool b)
  51. 00152CD4 CFE::PassedFullScreenTime()
  52. 00152D0C CFE::AndroidExitAppCB(int a1, void * pdata)
  53. 00152D50 CFE::GetAnalyticsVideoSourceFromZone(EVideoAdZones e)
  54. 00152D94 CFE::Process(float f)
  55. 0015307C CFE::DeleteTopScreen()
  56. 001530C8 CFE::SetupStack(int * pdata, int a2)
  57. 001530EC CFE::Back(bool b1, bool b2)
  58. 00153190 CFE::RenderScreen(int a1)
  59. 001531AC CFE::RenderAdBackground(bool b)
  60. 00153208 CFE::RenderFrameRate()
  61. 0015320C CFE::Render()
  62. 00153274 CFE::RenderInner()
  63. 00153318 CFE::GetScreenID()
  64. 00153348 CFE::NewScreen(int)
  65. 00153528 CFE::BackToScreen(int a1, bool b)
  66. 001535B4 CFE::GetBGTexture()
  67. 00153618 CFE::DisplayInitialMessage()
  68. 001536AC CFE::ShopCB(int a1, void * pdata)
  69. 001536B6 CFE::ShowShop(bool b)
  70. 001536FC CFE::OpenFacebookLink()
  71. 0015371C CFE::OpenTwitterLink()
  72. 0015373C CFE::DeleteScreenStack()
  73. 00153758 CFE::LoadSideStoryFirstNISIfExists()
  74. 00153820 CFE::SetInitialAdvertTimings()
  75. 00153884 CFE::AllowInterstitials()
  76. 001538DC CFE::AlwaysShowLevelSelectVideoAds()
  77. 00153908 CFE::CouldHaveVideoAds(EVideoAdZones)
  78. 0015399C CFE::CouldHaveInterstitials()
  79. 001539D8 CFE::AddBannerAd()
  80. 001539F4 CFE::CurrentScreenHasBackButton()
  81. 00153A20 CFE::OpenTermsOfServiceURL()
  82. 00153A2C CFE::OpenPrivacyPolicyURL()
  83. 00153A38 CFE::OpenTermsOfService()
  84. 00153A88 CFE::OpenPrivacyPolicy()
  85. 00153AD8 CFE::ContinueTermsOfServiceNativeDialog()
  86. 00153B4C CFE::ShowNativeDialogForTerms()
  87. 00153BEC CFE::StoreMinimiseTime()
  88. 00153C04 CFE::CheckTimeMinimised()
  89. 00153C3C CFE::PerformHousekeeping()
  90. 00153CC4 CFE::DeleteHeadshot()
  91. 共79个函数
  92. */
  93. enum EVideoAdZones {
  94. EVideoAdZones_0,
  95. EVideoAdZones_1,
  96. EVideoAdZones_2,
  97. EVideoAdZones_3,
  98. EVideoAdZones_4,
  99. };
  100. class CFE {
  101. public:
  102. // 001199F4
  103. static void StoreUniformSpaceDimensions(float w, float h);
  104. // 00119A10
  105. static void SetToUniformSpace();
  106. // 00119AC0
  107. static void SetViewport_Uniform();
  108. // 00119BCC
  109. static void Begin2DScene();
  110. // 00119BE0
  111. static void SetupUniformRes();
  112. // 00119C28
  113. static void BeginCustom2DScene(float f1);
  114. // 00119C58
  115. static void SetupCustomRes(float d1);
  116. // 00119D60
  117. static void ResetCustom2DScene();
  118. // 00119D8C
  119. static void End2DScene();
  120. // 00119D90
  121. static float GetUniformXFromNativeX(float f1);
  122. // 00119DCC
  123. static float GetUniformYFromNativeY(float f1);
  124. // 00119E08
  125. static float GetNativeXFromUniformX(float f1);
  126. // 00119E48
  127. static float GetNativeYFromUniformY(float f1);
  128. // 00119E88
  129. static float RoundToNativeXPixel(float f1);
  130. // 00119ED4
  131. static float RoundToNativeYPixel(float f1);
  132. // 00119F20
  133. static void SetNativeHardwareSize(float fw, float fh);
  134. // 00119F30
  135. static void ResolveScreenDims();
  136. // 001522AC
  137. static void Init();
  138. // 00152394
  139. static void Forward(int a1, bool b1, bool b2);
  140. // 00152464
  141. static void Exit();
  142. // 0015249C
  143. static void InitialiseBannerAds();
  144. // 001524BC
  145. static bool AllowBannerAds();
  146. // 00152508
  147. static void RemoveBannerAd();
  148. // 0015251C
  149. static void ShutDown();
  150. // 001525B4
  151. static void PauseSoundForRecording();
  152. // 001525C6
  153. static void PlaySoundAfterRecording();
  154. // 001525CC
  155. static bool CheckMusic();
  156. // 0015261C give up
  157. static bool ProcessAdverts();
  158. // 0015263C
  159. static void AttemptToPlayVideoAd(bool b1, int a2, bool b3, bool b4);
  160. // 00152714 give up
  161. static int AttemptToDisplayInterstitialAd();
  162. // 00152770 give up
  163. static void AttemptToStartVideoAdNetworks();
  164. // 00152864 give up
  165. static bool AllowVideoAds(EVideoAdZones);
  166. // 00152914 empty
  167. static void VideoAnalytics(int a1);
  168. // 00152918 give up
  169. static void PlayRewardedVideo(int a1, void* pdat);
  170. // 00152998 give up
  171. static void VideoAdEnergyRewardCallback(int a1, int a2, bool b3, char const* pdata);
  172. // 00152A74 give up
  173. static void VideoAdCurrencyRewardCallback(int a1, int a2, bool b1, char const* pdata);
  174. // 00152BB8
  175. static bool ReadyToPlayVideoAd(bool b1, int a2, bool b3);
  176. // 00152C08 give up
  177. static bool PassedVideoTime();
  178. // 00152C44
  179. static void UpdateAdvertTimings(bool b);
  180. // 00152CD4 give up
  181. static bool PassedFullScreenTime();
  182. // 00152D0C
  183. static void AndroidExitAppCB(int a1, void* pData);
  184. // 00152D50 give up
  185. static EVideoAdZones GetAnalyticsVideoSourceFromZone(EVideoAdZones e);
  186. // 00152D94
  187. static int Process(float f);
  188. // 0015307C
  189. static void DeleteTopScreen();
  190. // 001530C8
  191. static void SetupStack(int* pdata, int dCount);
  192. // 001530EC
  193. static void Back(bool b1, bool b2);
  194. // 00153190
  195. static void RenderScreen(int a1);
  196. // 001531AC
  197. static void RenderAdBackground(bool b);
  198. // 00153208
  199. static void RenderFrameRate();
  200. // 0015320C
  201. static void Render();
  202. // 00153274
  203. static void RenderInner();
  204. // 00153318
  205. static int GetScreenID();
  206. // 00153348
  207. static CFEScreen* NewScreen(int);
  208. // 00153528
  209. static void BackToScreen(int a1, bool b2);
  210. // 001535B4
  211. static CFTTTexture* GetBGTexture();
  212. // 00153618
  213. static void DisplayInitialMessage();
  214. // 001536AC
  215. static void ShopCB(int a1, void* pdata);
  216. // 001536B6
  217. static void ShowShop(bool b);
  218. // 001536FC
  219. static void OpenFacebookLink();
  220. // 0015371C
  221. static void OpenTwitterLink();
  222. // 0015373C
  223. static void DeleteScreenStack();
  224. // 00153758
  225. static void LoadSideStoryFirstNISIfExists();
  226. // 00153820
  227. static void SetInitialAdvertTimings();
  228. // 00153884
  229. static bool AllowInterstitials();
  230. // 001538DC
  231. static bool AlwaysShowLevelSelectVideoAds();
  232. // 00153908
  233. static bool CouldHaveVideoAds(EVideoAdZones);
  234. // 0015399C
  235. static bool CouldHaveInterstitials();
  236. // 001539D8
  237. static void AddBannerAd();
  238. // 001539F4
  239. static bool CurrentScreenHasBackButton();
  240. // 00153A20
  241. static void OpenTermsOfServiceURL();
  242. // 00153A2C
  243. static void OpenPrivacyPolicyURL();
  244. // 00153A38
  245. static void OpenTermsOfService();
  246. // 00153A88
  247. static void OpenPrivacyPolicy();
  248. // 00153AD8
  249. static void ContinueTermsOfServiceNativeDialog();
  250. // 00153B4C
  251. static bool ShowNativeDialogForTerms();
  252. // 00153BEC
  253. static void StoreMinimiseTime();
  254. // 00153C04
  255. static void CheckTimeMinimised();
  256. // 00153C3C
  257. static void PerformHousekeeping();
  258. // 00153CC4
  259. static void DeleteHeadshot();
  260. static float s_fUniformWidth;
  261. static float s_fUniformHeight;
  262. static float s_fHardwareWidth;
  263. static float s_fHardwareHeight;
  264. static TRect s_tOffsetAndResolution_Software;
  265. static TRect s_tOffsetAndResolution_Hardware;
  266. static TRect tOffsetAndResolution_SoftwareNative;
  267. static TRect tOffsetAndResolution_HardwareNative;
  268. static float ms_fDestCustomViewportPercentage;
  269. static float ms_fCustomViewportPercentage;
  270. static bool ms_bCustomViewportActive;
  271. static time_t m_tMinimiseTime;
  272. static int m_iScreenStackPos;
  273. static CFEScreen* m_apScreenStack[16];
  274. static EFEScreen m_apScreenStackID[16];
  275. static CFTTTexture* s_pBGTexture;
  276. static bool ms_bShuttingDown;
  277. static int s_iUnpauseSoundCounter;
  278. static CFTTJobQueue* ms_pJobQueue;
  279. static bool m_bDeleteTopScreen;
  280. static int m_eScreen;
  281. static int m_eLastFlowDirection; //??? enum
  282. static int ms_iFrame;
  283. static int m_iFirstInGameScreen;
  284. static int ms_iProcessFrames;
  285. static bool s_bCouldHaveBannerAds;
  286. static bool s_bShutdownBannerInterstitialAds;
  287. static FTTMutex s_tRenderMutex; // 00354170
  288. };
  289. extern int SCR_SAFE_TOP;
  290. extern int SCR_SAFE_BOTTOM;
  291. extern int SCR_SAFE_LEFT;
  292. extern int SCR_SAFE_RIGHT;
  293. extern int SCR_WID; // 003365EC
  294. extern int SCR_HEI; // 003365F0
  295. #endif //_CFE_H_