//STORY - [2020-06-22 11:41:46]
#ifndef _STORY_H_
#define _STORY_H_

#include "XMATH.h"
#include "CFTTXmlReader.h"
#include "CFTTXmlReaderNode.h"
#include "CGPUDatabaseMode.h"
#include "CDeviceReimbursement.h"
#include "CStoryCore.h"
#include "CFTTAndroidGraphicsSettings.h"
#include "TPhoto.h"
#include "TStoryConfig.h"
#include "CFTTGraphicsDevice.h"
#include "GFXBALL.h"
#include "CMatchSetup.h"

/*
001E37F4 STORY_ShouldForceAdverts()
001E37F8 STORY_ConfigCleanup()
001E4100 STORY_DebugDrawButton(TRectI,char const*)
001E41F0 STORY_DebugRenderPlayerInfo()
001E42F0 STORY_DebugRender()
001E5E54 STORY_CreatePhotoTexture(TStoryPhoto const*,int,int,int,int,bool)
001E69B0 STORY_CreateStickerPhoto(TStickerInfo const*,int,int,bool)
001E6A28 STORY_CreatePolaroid(TStickerInfo const*,int,int,wchar_t const*,bool,bool,int)
001E6F90 STORY_AcquireCoverTexture(int)
001E7224 STORY_ReleaseCoverTexture(CFTTTexture *)
001E7228 STORY_PrepNextCoverTexture(int)
001E72E0 STORY_FreeCoverTextureResources()
001E72FC STORY_ClearCoverTextureCache()
001ED8D4 STORY_LoadStage(TStoryStage *,char const*)
001EE670 STORY_ReadPhoto(CFTTXmlReaderNode)
001EEB78 STORY_ReadStagesXML(TStoryStages *,char const*)
001EF65C STORY_PromoLanguagesFromXML(TStoryConfig *,CFTTXmlReader *)
001EF73C STORY_ReadPromoText(CFTTXmlReaderNode,TPromoText *)
001EF7C8 STORY_TimeAndRepeatNotificationsFromXML(TStoryConfig *,CFTTXmlReader *)
001EFAC8 STORY_FindLatestRepeatNotificationsFromXML(TStoryConfig *,CFTTXmlReader *,long &)
001EFC40 STORY_FindLatestTimeNotificationsFromXML(TStoryConfig *,CFTTXmlReader *,long &)
001EFD74 STORY_LoadAdverts(bool,TStoryConfig *,CFTTXmlReaderNode)
001F0310 STORY_ReadConfigXML(TStoryConfig *,CFTTXmlReader *)
001F1AF8 STORY_ReadReimburseXML(TStoryReimburse *,char const*)
001F1CC0 STORY_ReadGraphicsSpecs()
001F1D04 STORY_GetGfxQualityOverride(char const*,char const*,char const*,CGPUDatabaseMode &)

*/
// sizeof = 0x1C
struct TStoryPhoto_Info {
  int           field_0;
  TPointF3D     tPointF3D_4;
  int           field_10;
  int           iAnim_14;
  float         field_18;
};
// sizeof = unknown
struct TStoryPhoto {
  int               field_0;
  TStoryPhoto_Info  info_4[4];
  CFTTVector32      Vector32_74;
  float             float_80;
  int               field_84;
  int               field_88;
  int               field_8C;
  int               field_90;
  ETimeOfDay        ETimeOfDay_94;
  TPointF3D         tPointF3D_98;
  TPointF3D         tPointF3D_A4;
  CFTTVector32      Vector32_B0;
  uchar             unknown_BC[0x20];
  int               iBgJpg_DC;
  int               field_E0;
  int               iBool_E4;
  EBallType         EBallType_E8;
  TPointF3D         tBallPtF3D_EC;
  int               field_F8;
};

// sizeof = unknown
struct TStickerInfo {
  int field_0;
  int field_4;

  uint8         _unknown_0[0x54];
  TStoryPhoto   _tStoryPhoto_5C;
};

bool STORY_ShouldForceAdverts();                                                              //001E37F4
void STORY_ConfigCleanup();                                                                   //001E37F8
void STORY_DebugDrawButton(TRectI, char const *);                                             //001E4100
void STORY_DebugRenderPlayerInfo();                                                           //001E41F0
void STORY_DebugRender();                                                                     //001E42F0
CFTTTexture* STORY_CreatePhotoTexture(TStoryPhoto const *, int, int, int, int, bool);                 //001E5E54
CFTTTexture* STORY_CreateStickerPhoto(TStickerInfo const *, int, int, bool);                          //001E69B0
CFTTTexture* STORY_CreatePolaroid(TStickerInfo const *, int, int, wchar_t const *, bool, bool, int);  //001E6A28
void STORY_AcquireCoverTexture(int);                                                          //001E6F90
void STORY_ReleaseCoverTexture(CFTTTexture *);                                                //001E7224
void STORY_PrepNextCoverTexture(int);                                                         //001E7228
void STORY_FreeCoverTextureResources();                                                       //001E72E0
void STORY_ClearCoverTextureCache();                                                          //001E72FC
void STORY_LoadStage(TStoryStage *, char const *);                                            //001ED8D4
TPhoto STORY_ReadPhoto(CFTTXmlReaderNode);                                                    //001EE670
int STORY_ReadStagesXML(TStoryStages *, char const *);                                        //001EEB78
void STORY_PromoLanguagesFromXML(TStoryConfig *, CFTTXmlReader *);                            //001EF65C
void STORY_ReadPromoText(CFTTXmlReaderNode, TPromoText *);                                    //001EF73C
void STORY_TimeAndRepeatNotificationsFromXML(TStoryConfig *, CFTTXmlReader *);                //001EF7C8
void STORY_FindLatestRepeatNotificationsFromXML(TStoryConfig *, CFTTXmlReader *, long &);     //001EFAC8
void STORY_FindLatestTimeNotificationsFromXML(TStoryConfig *, CFTTXmlReader *, long &);       //001EFC40
void STORY_LoadAdverts(bool, TStoryConfig *, CFTTXmlReaderNode);                              //001EFD74
void STORY_ReadConfigXML(TStoryConfig *, CFTTXmlReader *);                                    //001F0310
bool STORY_ReadReimburseXML(TStoryReimburse *, char const *);                                 //001F1AF8
void STORY_ReadGraphicsSpecs();                                                               //001F1CC0
EAndroidGraphicsSettingsQuality STORY_GetGfxQualityOverride(char const *,
                                                            char const *,
                                                            char const *,
                                                            CGPUDatabaseMode &);  //001F1D04

#endif  //_STORY_H_