#pragma once #include "common.h" class AFX_CLASS_EXPORT T2Pool { public: T2Pool(T2PoolDef* inDef, T2SeasonParamDef* inSeason, T2TemplatePluginList* inPluginList, T2PeopleArrayList* inPeopleList, int inLevel, unsigned int inMonth, unsigned int inHour, 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; friend class T2PoolView; }; inline int T2Pool::GetPopulation() const { return mPopulation; }