Fission FSN
Loading...
Searching...
No Matches
fsCUserSavedData.h
Go to the documentation of this file.
1/********************************************************************
2*
3* Created: 28/3/2014 10:55
4*
5* File: fsCUserSavedData.h
6*
7* Author: Mick Waites
8*
9* Purpose: User settings
10*
11*********************************************************************/
12
13#ifndef fsCUserSavedDatahdr
14#define fsCUserSavedDatahdr
15
16#include <memory>
17
18#include <fsCore/fsStr.h>
20
21#include <fsCore/fsISavedData.h>
22
23
25{
26 friend class fsCProfileManager;
27
28public:
29
36
37 enum class eCHEAT_MODE
38 {
41 };
42
43
44 static const fsStr mGameChapter;
45
47 static const fsStr mVirtualCurrency;
48
49 static const fsStr mMusicVolumeKey;
51 static const fsStr mMuteAllKey;
52 static const fsStr mFullScreenKey;
55
56 static const fsStr mCurrentLocation;
57 static const fsStr mMapLocation;
58
59 static const fsStr mLevelDataPrefix;
61
62 static const fsStr mLastMainMenuGui;
63
64
65#if defined fsInAppPurchaseProcess
66 fsS32 levelsVisitedCountGet() const;
67#endif
68
69 fsBool cheatModeGet(eCHEAT_MODE pMode) const;
70
71 fsBool levelHasBeenVisitedGet(const fsStr& pLevel) const;
73
75 void difficultySet(eDIFFICULTY pDifficulty);
76
77 fsS32 countGet(const fsStr& pKey) const;
78 void countInc(const fsStr& pKey);
79
80 void s32Inc(const fsStr& pKey);
81
82 void resetForNewPlayer();
83 void resetGameProgress();
84
85 virtual ~fsCUserSavedData();
86
87 template <typename T>
88 static std::unique_ptr<T> create();
89
90protected:
91
92 virtual void resetForNewPlayerDo();
93 virtual void resetGameProgressDo();
94
95 void resetToDefaultsDo() override;
96
98
99private:
100
101 static const fsStr mCheatModeKey;
102
103 static const fsStr mGamelDifficulty;
104
105#if !defined fsRELEASE
106 fsBool mHierarchyCheckSuccess;
107#endif
108};
109
110template <typename T>
111std::unique_ptr<T> fsCUserSavedData::create()
112{
113 static fsBool created = false;
114 if (!created)
115 {
116 created = true;
117 std::unique_ptr<T> userData(new T());
118 userData->resetToDefaults();
119 userData->resetGameProgress();
120 return userData;
121 }
122 fsAssert(false, "Only one instance of hog user saved data!");
123 return nullptr;
124}
125
126#endif
static const fsStr mVirtualCurrency
Definition fsCUserSavedData.h:47
virtual void resetForNewPlayerDo()
Definition fsCUserSavedData.cpp:95
void countInc(const fsStr &pKey)
Definition fsCUserSavedData.cpp:68
eCHEAT_MODE
Definition fsCUserSavedData.h:38
@ eDEV
Definition fsCUserSavedData.h:40
@ eRELEASE
Definition fsCUserSavedData.h:39
fsBool cheatModeGet(eCHEAT_MODE pMode) const
Definition fsCUserSavedData.cpp:42
static const fsStr mMuteAllKey
Definition fsCUserSavedData.h:51
void resetGameProgress()
Definition fsCUserSavedData.cpp:102
eDIFFICULTY difficultyGet() const
Definition fsCUserSavedData.cpp:58
void resetToDefaultsDo() override
Definition fsCUserSavedData.cpp:123
fsBool gameHasBeenStartedGet() const
Definition fsCUserSavedData.cpp:53
static const fsStr mFacebookLoggedIn
Definition fsCUserSavedData.h:46
fsS32 countGet(const fsStr &pKey) const
Definition fsCUserSavedData.cpp:73
static const fsStr mLeftHandCursorsKey
Definition fsCUserSavedData.h:54
static const fsStr mLastMainMenuGui
Definition fsCUserSavedData.h:62
static const fsStr mLevelStatePrefix
Definition fsCUserSavedData.h:60
static const fsStr mFullScreenKey
Definition fsCUserSavedData.h:52
static const fsStr mCustomCursorsKey
Definition fsCUserSavedData.h:53
friend class fsCProfileManager
Definition fsCUserSavedData.h:26
static const fsStr mMapLocation
Definition fsCUserSavedData.h:57
static std::unique_ptr< T > create()
Definition fsCUserSavedData.h:111
static const fsStr mMusicVolumeKey
Definition fsCUserSavedData.h:49
fsCUserSavedData()
Definition fsCUserSavedData.cpp:154
static const fsStr mLevelDataPrefix
Definition fsCUserSavedData.h:59
fsBool levelHasBeenVisitedGet(const fsStr &pLevel) const
Definition fsCUserSavedData.cpp:48
static const fsStr mCurrentLocation
Definition fsCUserSavedData.h:56
static const fsStr mEffectsVolumeKey
Definition fsCUserSavedData.h:50
static const fsStr mGameChapter
Definition fsCUserSavedData.h:44
void difficultySet(eDIFFICULTY pDifficulty)
Definition fsCUserSavedData.cpp:63
virtual void resetGameProgressDo()
Definition fsCUserSavedData.cpp:114
void resetForNewPlayer()
Definition fsCUserSavedData.cpp:83
virtual ~fsCUserSavedData()
Definition fsCUserSavedData.cpp:161
eDIFFICULTY
Definition fsCUserSavedData.h:31
@ eEXTREME
Definition fsCUserSavedData.h:34
@ eCASUAL
Definition fsCUserSavedData.h:32
@ eCHALLENGE
Definition fsCUserSavedData.h:33
void s32Inc(const fsStr &pKey)
Definition fsCUserSavedData.cpp:78
fsISavedData()
Definition fsISavedData.cpp:27
Definition fsStr.h:23
#define fsAssert(pStatement, pFmtString,...)
Definition fsAssert.h:23
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20