//CFTTSaveFile - [2020-04-13 11:57:46]
#ifndef _CFTTSAVEFILE_H_
#define _CFTTSAVEFILE_H_

#include "CFTTSerialize.h"

/*
002676C4 CFTTSaveFile::Initialise(CFTTSaveFileProjectSettings const&)
00267710 CFTTSaveFile::SetAllowCloud(bool)
00267774 CFTTSaveFile::Shutdown(bool)
002677A0 CFTTSaveFile::ShutdownCloud()
002677CC CFTTSaveFile::BeginLoadFromDisk(char const*)
00267804 CFTTSaveFile::BeginLoadInternal(char const*,bool &)
002678F8 CFTTSaveFile::EndLoad(CFTTSerialize *,bool)
00267924 CFTTSaveFile::BeginSave()
00267974 CFTTSaveFile::EndSave(CFTTSerialize *,char *)
002679DC CFTTSaveFile::EndSaveToCloud(CFTTSerialize *,char *)
00267A7C CFTTSaveFile::EndSaveShared(CFTTSerialize *,char const*,bool)
00267C80 CFTTSaveFile::IsCloudActive()
00267CA8 CFTTSaveFile::InitCloud()
00267D88 CFTTSaveFile::TurnOffCloud()
00267DB4 CFTTSaveFile::GetCloudInitResult(bool)
00267E08 CFTTSaveFile::BeginLoadFromCloud(bool &,bool)
00267E50 CFTTSaveFile::BeginSaveToCloud()
00267E94 CFTTSaveFile::LoadAndCheckFile(char const*,CFTTSaveFileHeader &,bool &)
00267FA8 CFTTSaveFile::OnCloudSync(char const*)
00268048 CFTTSaveFile::OnICloudAvailable()
00268090 CFTTSaveFile::OnICloudUnavailable()
002680A0 CFTTSaveFile::OnGoogleSavedGamesSync(bool,char const*)
002680C8 CFTTSaveFile::AllowSaveFromWrongThread(bool)
*/

struct CFTTSaveFileProjectSettings {
  const char *v1;
  const char *v2;
  const char *v3;
  const char *v4;
  const char *v5;
  const char *v6;
  const char *v7;
  const char *v8;
  int v9;
  int v10;
  int v11;
  unsigned int v12;
  unsigned int v13;
  unsigned int v14;
  unsigned int v15;
};

class CFTTSaveFileHeader {
public:
  int un_0;
};

class CFTTSaveFile {
public:
  static void Initialise(struct CFTTSaveFileProjectSettings const &);  //002676C4
  static void SetAllowCloud(bool);                                     //00267710
  static void Shutdown(bool);                                          //00267774
  void ShutdownCloud();                                                //002677A0
  static CFTTSerialize *BeginLoadFromDisk(char const *);               //002677CC
  void BeginLoadInternal(char const *, bool &);                        //00267804
  static bool EndLoad(CFTTSerialize *, bool);                          //002678F8
  static CFTTSerialize *BeginSave();                                   //00267924
  static int EndSave(CFTTSerialize *, char *);                         //00267974
  void EndSaveToCloud(CFTTSerialize *, char *);                        //002679DC
  void EndSaveShared(CFTTSerialize *, char const *, bool);             //00267A7C
  static int IsCloudActive();                                          //00267C80
  void InitCloud();                                                    //00267CA8
  void TurnOffCloud();                                                 //00267D88
  void GetCloudInitResult(bool);                                       //00267DB4
  void BeginLoadFromCloud(bool &, bool);                               //00267E08
  void BeginSaveToCloud();                                             //00267E50
  void LoadAndCheckFile(char const *, CFTTSaveFileHeader &, bool &);   //00267E94
  void OnCloudSync(char const *);                                      //00267FA8
  void OnICloudAvailable();                                            //00268048
  void OnICloudUnavailable();                                          //00268090
  void OnGoogleSavedGamesSync(bool, char const *);                     //002680A0
  void AllowSaveFromWrongThread(bool);                                 //002680C8

  static bool s_bIsInitialised;
  static int s_eCloudState;
  static bool s_bCloudAllowed;
};

#endif  //_CFTTSAVEFILE_H_