Fission FSN
Loading...
Searching...
No Matches
gfCPickListGui.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsCPickListGui.h
4*
5* Purpose: Selects and displays entities required for collection.
6* Controls PickListEntry children.
7*
8*********************************************************************/
9
10#ifndef gfCPickListGuihdr
11#define gfCPickListGuihdr
12
13#include <vector>
14
17
20
21
23{
24 friend class fsCComponentFactory;
25
26public:
27
28 const std::vector<gfIPickListEntryGui*> entriesGet() const;
29
30 gfIPickListEntryGui* entryLocate(const fsStr& pLocalisedEntName) const;
31
32 static const fsCUniqueId mTypeId;
33
34 virtual ~gfCPickListGui() = default;
35
36protected:
37
38 void serialiseDo() override;
39 void deserialiseDo() override;
40 void postLoadDo() override;
41
42 void listenersDeregisterDo() override;
43 void listenersRegisterDo() override;
44 fsBool messageProcessDo(const fsCUniqueId& pMessageType,
45 const fsIMessageDispatcher::sMessageParameters& pParam) override;
46 void initialiseFromVariableTableDo(const fsCVariableTable& pVars) override;
47
48 static fsIComponent* create(fsCEntity* pParent);
49
50 gfCPickListGui(fsCEntity* pParent);
51
52private:
53
54 class fsSEntityTypes
55 {
56 public:
57 void tagAdd(fsStr const& pTag);
58 void typeAdd(const std::type_info* pType);
59
60 std::vector<fsCEntity*> entitiesGet() const;
61
62 private:
63
64 std::vector<const std::type_info*> mEntityTypes;
65 std::vector<fsStr> mTags;
66 };
67
68 void levelDataInitialise(const fsCVariableTable& pLevelSettings);
69
70 void totEntitiesToCollectSet(fsS32 pTotEntities);
71 void repeatedHOGItemCollectionCountSet(fsS32 pSize) { mRepeatedHOGItemCount = pSize; }
72
73 void updateDo(fsS32 pDeltaMs) override;
74
75 void reset();
76
77 static void chooseEntsWithMatchingNameAndStripFromCollectableCollection(
78 std::vector<fsCEntity*>& pCollectableCollection,
79 std::vector<fsCEntity*>& pChosenEntities, std::vector<fsCEntity*>::iterator& pEntIt, const fsStr& pMatch);
80
81 void entitiesRelinkWithGuiSlots();
82 std::vector<fsCEntity*> collectableEntitesGet() const;
83
84 fsS32 allEntitiesCountGet() const;
85 static fsS32 numUniqueEntityNamesGet(const std::vector<fsCEntity*>& pEnts);
86
87 void itemCountUpdate() const;
88
89 fsBool hintActivate();
90 std::vector<fsCEntity*> hintableEntitiesGet() const;
91 std::vector<fsCEntity*> draggableEntitiesGet() const;
92
93 void completionRequirementClear() const;
94 void completionRequirementRegister() const;
95
96 void listCompleteProcess();
97 void updateCollectionCount();
98
99 void slotsGather();
100 void entityTypesGather(fsSEntityTypes& pTypes, fsStr pEntsStr);
101
102 fsU32 availableSlotsCount() const;
103
104 void entityAddToList();
105
106 std::vector<fsCEntity*> entityOfTypesGet(fsSEntityTypes const& pTypes) const;
107 static void collectedEntitiesRemove(std::vector<fsCEntity*>& pCandidateEntities);
108 static void nonCollectableEntitiesRemove(std::vector<fsCEntity*>& pCandidateEntities);
109 static void entitiesWithSameTextGet(std::vector<fsCEntity*>& pChosenEntities,
110 const std::vector<fsCEntity*>& pShuffledEntities);
111
112 gfIPickListEntryGui* randomAvailableSlotGet() const;
113
114 void taskEntityRegisterWithRollOver(gfCTaskComponent* pTaskComponent, fsCEntity* pSlot);
115
116 void listSetupHandle();
117 void listCompletedHandle();
118
119
120 std::vector<gfIPickListEntryGui*> mEntries;
121
122 fsSEntityTypes mPriorityEntityTypes;
123 fsSEntityTypes mRandomEntityTypes;
124
125 fsS32 mNextNewEntryDelay;
126
127 fsS32 mRepeatedHOGItemCount;
128 fsS32 mTotEntitiesToCollect;
129 fsS32 mTotEntitiesAddedToList;
130 fsBool mGroupEntitiesByName;
131 fsBool mRequiredForActCompletion;
132
133 fsS32 mNumEntitiesCollected;
134
135 fsBool mOrdered;
136
137 fsBool mHideWhenDone;
138 fsBool mLevelSkipped;
139#if !defined fsRELEASE
140 fsBool mWarnedAboutLackOfItems;
141#endif
142};
143
144#endif
Definition fsCEntity.h:39
Definition fsCUniqueId.h:21
Definition fsCVariableTable.h:27
fsIComponent(fsCEntity *pParent)
Definition fsIComponent.cpp:86
void reset()
Definition fsIComponent.cpp:16
fsIMessageListenerGuiComponent(fsCEntity *pParent, fsS32 pPriority)
Definition fsIMessageListenerGuiComponent.cpp:4
Definition fsStr.h:23
gfCPickListGui(fsCEntity *pParent)
Definition gfCPickListGui.cpp:622
void initialiseFromVariableTableDo(const fsCVariableTable &pVars) override
Definition gfCPickListGui.cpp:358
friend class fsCComponentFactory
Definition gfCPickListGui.h:24
void listenersRegisterDo() override
Definition gfCPickListGui.cpp:200
static const fsCUniqueId mTypeId
Definition gfCPickListGui.h:32
void deserialiseDo() override
Definition gfCPickListGui.cpp:157
virtual ~gfCPickListGui()=default
fsBool messageProcessDo(const fsCUniqueId &pMessageType, const fsIMessageDispatcher::sMessageParameters &pParam) override
Definition gfCPickListGui.cpp:209
void listenersDeregisterDo() override
Definition gfCPickListGui.cpp:191
const std::vector< gfIPickListEntryGui * > entriesGet() const
Definition gfCPickListGui.cpp:32
gfIPickListEntryGui * entryLocate(const fsStr &pLocalisedEntName) const
Definition gfCPickListGui.cpp:166
void serialiseDo() override
Definition gfCPickListGui.cpp:150
void postLoadDo() override
Definition gfCPickListGui.cpp:145
static fsIComponent * create(fsCEntity *pParent)
Definition gfCPickListGui.cpp:617
Definition gfCTaskComponent.h:20
Definition gfIPickListEntryGui.h:23
unsigned int fsU32
Definition fsBaseTypes.h:21
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
Definition fsIMessageDispatcher.h:32