summaryrefslogtreecommitdiff
path: root/src/T2DLL/T2Pool.h
blob: 54489f9f077b2728b990168a3ff2b4d99c5cb89a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#pragma once
#include "common.h"

class AFX_CLASS_EXPORT T2Pool {
public:
	T2Pool(T2PoolDef* inDef, T2SeasonParamDef* inSeason, T2TemplatePluginList* inPluginList, T2PeopleArrayList* inPeopleList, int inLevel, unsigned int inIndex, unsigned int inSomeNum, T2WorldDef* inWorldDef);
	T2Pool(T2Archive& inArchive, T2PoolDef* inDef, T2SeasonParamDef* inSeason, T2TemplatePluginList* inPluginList, T2PeopleArrayList* inPeopleList, T2WorldDef* inWorldDef);
	virtual ~T2Pool();
	void GameLevelChanged(int inLevel);
	void IncHour(T2DateTime* inDateTime);
	BOOL IsChangePopulation();
	BOOL Find(T2TenantMemberDef* inMember, int inEconoType, unsigned int inTransportType, BOOL inCheckOnlyFirstEconoType) const;
	BOOL Find(T2TenantMemberTableDef* inTable, int inEconoType, unsigned int inTransportType, BOOL inCheckOnlyFirstEconoType) const;
	T2People* Call(T2TenantMemberDef* inTenantMemberDef, int inEconoType, unsigned int inTransportType, unsigned int inSpecialFlag);
	void Enter(T2People* inPeople);
	void Leave(T2People* inPeople);
    void DuplicatePeople(T2PeopleType* inPeopleType);
    void RemovePeople(T2People* inPeople);
    T2People* BornVIP(int inSilhouetteType, int inEconoType = -1);
    void DeadVIP(T2People* inPeople);
    void Write(T2Archive& inArchive);
    int GetPopulation() const;

protected:
    void DayChanged();
	T2People* RecoverPeople(T2PeopleType* inPeopleType);
	void ShrinkPeople(T2People* inPeople, T2PeopleType& outPeopleType);

    T2PeopleDemandList *mDemandList;
    int mLevel;
    unsigned int mSpecialFlag;
    int _10;
    int mPopulation;
    int mLostPopulation;
    int mPrevPopulation;
    T2PoolDef *mPoolDef;
    T2TemplatePluginList *mPlugins;
    T2PeopleArrayList *mPeopleList;
};

inline int T2Pool::GetPopulation() const {
    return mPopulation;
}