Fission FSN
Loading...
Searching...
No Matches
gfCAchievementsTriggerComponent.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: gfCAchievementsTriggerComponent.h
4*
5* Purpose: Generic control for what happens when an achievement
6* might unlock: perfect-game tracking, mini-game and
7* hint-free-level bonuses, the achievement-effect popup
8* callback, and the per-collectible/per-purchase counters.
9* Was CGameSpecificAchievementsComponent — turned out
10* identical in every title sampled, including
11* bonusBonusCount: its achievement name isn't hardcoded
12* anywhere, it's read from whichever entry in the title's
13* own achievementsMap.txt has SaveKey=bonusBonusCount — the
14* same file already drives everything else here. No-op if
15* a title's map has no such entry.
16*
17*********************************************************************/
18
19#ifndef gfCAchievementsTriggerComponenthdr
20#define gfCAchievementsTriggerComponenthdr
21
22#include <vector>
23
25
26class fsStr;
27struct fsPoint;
28
30{
31public:
32
33 static const fsCUniqueId mTypeId;
34 static const fsStr mAchievementKey;
35
36 static fsIComponent* create(fsCEntity* pParent);
37
38 static void callback(const fsStr& pAchievment, const fsPoint& pPos);
39
42
43protected:
44
45 void listenersRegisterDo() override;
46 void listenersDeregisterDo() override;
47 fsBool messageProcessDo(const fsCUniqueId& pMessageType,
48 const fsIMessageDispatcher::sMessageParameters& pParam) override;
49
50 // External achievement-service id for hintsFreeLevelUpdate(); empty by default.
51 virtual fsStr platformHintAchievementIdGet() const;
52
53 void perfectGameUpdate();
55
56 fsBool perfectGameGet() const;
57
61
62 fsBool achievementAward(const fsStr& pAchievment, const fsPoint& pPos);
63
65
66 void photoCount(fsCEntity* pEnt);
67 void souvenirCount(fsCEntity* pEnt);
68 void birdCount(fsCEntity* pEnt);
69 void insectCount(fsCEntity* pEnt);
70 void endangeredCount(fsCEntity* pEnt);
71
72 void bonusBonusCount(fsCEntity* pEnt);
73
76
78
79 std::vector<fsStr> mAchievmentNames;
80
81 // Achievement name whose achievementsMap.txt entry has
82 // SaveKey=bonusBonusCount, filled in by achievementsRegister(). Empty if
83 // the title's map has no such entry.
85};
86
87#endif
Definition fsCEntity.h:39
Definition fsCUniqueId.h:21
fsIComponent(fsCEntity *pParent)
Definition fsIComponent.cpp:86
fsIMessageListenerComponent(fsCEntity *pParent)
Definition fsIMessageListenerComponent.cpp:9
Definition fsStr.h:23
static const fsCUniqueId mTypeId
Definition gfCAchievementsTriggerComponent.h:33
static fsIComponent * create(fsCEntity *pParent)
Definition gfCAchievementsTriggerComponent.cpp:340
void insectCount(fsCEntity *pEnt)
Definition gfCAchievementsTriggerComponent.cpp:109
std::vector< fsStr > mAchievmentNames
Definition gfCAchievementsTriggerComponent.h:79
void birdCount(fsCEntity *pEnt)
Definition gfCAchievementsTriggerComponent.cpp:100
void completedMiniGamesUpdate()
Definition gfCAchievementsTriggerComponent.cpp:179
fsS32 mSprinterGameTime
Definition gfCAchievementsTriggerComponent.h:74
fsStr mBonusBonusAchievementKey
Definition gfCAchievementsTriggerComponent.h:84
void perfectGameUpdate()
Definition gfCAchievementsTriggerComponent.cpp:267
fsBool achievementAward(const fsStr &pAchievment, const fsPoint &pPos)
Definition gfCAchievementsTriggerComponent.cpp:275
void listenersDeregisterDo() override
Definition gfCAchievementsTriggerComponent.cpp:54
void achievementsRegister()
Definition gfCAchievementsTriggerComponent.cpp:306
void hintsFreeLevelUpdate()
Definition gfCAchievementsTriggerComponent.cpp:199
void endangeredCount(fsCEntity *pEnt)
Definition gfCAchievementsTriggerComponent.cpp:91
virtual ~gfCAchievementsTriggerComponent()
Definition gfCAchievementsTriggerComponent.cpp:358
fsBool perfectGameGet() const
Definition gfCAchievementsTriggerComponent.cpp:123
virtual fsStr platformHintAchievementIdGet() const
Definition gfCAchievementsTriggerComponent.cpp:118
fsBool perfectThisLevel() const
Definition gfCAchievementsTriggerComponent.cpp:156
fsS32 mMiniGameTime
Definition gfCAchievementsTriggerComponent.h:75
void souvenirCount(fsCEntity *pEnt)
Definition gfCAchievementsTriggerComponent.cpp:83
void photoCount(fsCEntity *pEnt)
Definition gfCAchievementsTriggerComponent.cpp:64
void bonusBonusCount(fsCEntity *pEnt)
Definition gfCAchievementsTriggerComponent.cpp:74
gfCAchievementsTriggerComponent(fsCEntity *pParent)
Definition gfCAchievementsTriggerComponent.cpp:345
static const fsStr mAchievementKey
Definition gfCAchievementsTriggerComponent.h:34
static gfCAchievementsTriggerComponent * mInstance
Definition gfCAchievementsTriggerComponent.h:77
void listenersRegisterDo() override
Definition gfCAchievementsTriggerComponent.cpp:44
void completedGameUpdate()
Definition gfCAchievementsTriggerComponent.cpp:162
fsBool messageProcessDo(const fsCUniqueId &pMessageType, const fsIMessageDispatcher::sMessageParameters &pParam) override
Definition gfCAchievementsTriggerComponent.cpp:223
static void callback(const fsStr &pAchievment, const fsPoint &pPos)
Definition gfCAchievementsTriggerComponent.cpp:288
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
Definition fsIMessageDispatcher.h:32
Definition fsPoint.h:17