summaryrefslogtreecommitdiff
path: root/src/T2DLL/T2PoolDef.h
blob: eb347ee551e827613f5f2131310de0130d7f4932 (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#ifndef T2DLL_T2POOLDEF_H
#define T2DLL_T2POOLDEF_H
#include "../common.h"

enum {
    kPoolUnitSize = 20
};

// actual name unknown
struct PeopleElem {
	unsigned char mSilhouetteType;
	unsigned char mEconoType;
	unsigned char mTransportType;
	unsigned char mRate;
	unsigned int m4;
};

class T2PoolTimeZoneDef {
public:
	T2PoolTimeZoneDef(CResFile &resFile);
	void Initialize();
	~T2PoolTimeZoneDef();
	PeopleElem *GetPeopleElem(unsigned int index) const;

	// p sure this exists (1005f090)
	unsigned int GetNumOfElems() const { return mNumOfElems; }

	unsigned int mNumOfElems;
	PeopleElem *mPeopleElems;
};

// actual name unknown
struct TimeZoneInfo {
	int m0;
	unsigned int m4;
};

class T2PoolDefDemandElem {
public:
	T2PoolDefDemandElem();
	void Initialize(CResFile &resFile);
	~T2PoolDefDemandElem();
	TimeZoneInfo *GetTimeZoneInfo(unsigned int index) const;

	unsigned int mNumOfElems;
	TimeZoneInfo *mElems;
};

class T2PoolGradeDef {
public:
	T2PoolGradeDef(CResFile &resFile);
	void Initialize();
	virtual ~T2PoolGradeDef();
	T2PoolDefDemandElem *GetDemandElem(unsigned int index) const;

	unsigned int mNumOfElems;
	T2PoolDefDemandElem *mDemandElems;
};

// actual name unknown
struct DemandInfo {
	int a;
	unsigned char b;
};

class T2PoolDef {
public:
	T2PoolDef(CResFile &resFile, T2WorldPlugin *worldPlugin);
	void Initialize();
	virtual ~T2PoolDef();
	HINSTANCE GetModuleHandle();
	DemandInfo *GetDemandInfo(unsigned int index) const;
	int GetGradeDefResID(unsigned int inIndex) const;

	unsigned char Get20() const { return m20; }
    unsigned char GetNumOfDemand() const { return mNumOfDemand; }

	T2WorldPlugin *mWorldPlugin;
	int m8;
	int mGradeDefResID[5];
	unsigned char m20;
	unsigned char mNumOfDemand;
	DemandInfo *mDemand;
};
#endif