summaryrefslogtreecommitdiff
path: root/src/T2DLL/T2Maru_Reggae.h
blob: 8d33238eacb0f39b5d893d5b4a3e7d63707bbfa0 (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
#ifndef T2DLL_T2MARU_REGGAE_H
#define T2DLL_T2MARU_REGGAE_H
#include "../common.h"
#include "T2EventItem.h"

class T2Guardman;

enum {
	kMaruReggaeStatus0 = 0,
	kMaruReggaeStatus1 = 1,
	kMaruReggaeStatus2 = 2,
	kMaruReggaeStatus3 = 3,
	kMaruReggaeStatus4 = 4,
	kMaruReggaeStatus5 = 5,
	kMaruReggaeStatus6 = 6,
	kMaruReggaeStatus7 = 7,
	kMaruReggaeStatus8 = 8,
	kMaruReggaeStatus9 = 9,
	kMaruReggaeStatus10 = 10,
	kMaruReggaeStatus11 = 11,
};

class AFX_CLASS_EXPORT T2Maru_Reggae : public T2EventItem {
public:
	T2Maru_Reggae(T2TowerEvent* inTowerEvent, CResFile* inResFile, int inSubID);
	virtual ~T2Maru_Reggae();
	virtual DWORD GetID() { return 'MaEv'; }
	virtual BOOL Start(T2TowerDoc* inDoc);
	virtual int Exec(T2TowerDoc* inDoc);
	virtual void Write(T2Archive& inArchive);
	virtual void Read(T2Archive& inArchive);
	T2People* GetReggaeMan();
	T2Tenant* GetVisitTenant();

	BOOL IsReggae() { return mIsReggae; }

private:
	BOOL DoReception(T2TowerDoc* inDoc);
	void MaruReception(T2TowerDoc* inDoc, T2People* inPeople);
	void ReggaeReception(T2TowerDoc* inDoc, T2People* inPeople);
	void MakeClaimMessage(T2TowerDoc* inDoc, T2Tenant* inTenant, CString& outStr);
	T2Tenant* FindTargetTenant(T2TowerDoc* inDoc);
	unsigned int FindNextTenant(T2TowerDoc* inDoc);

	int mAnimResID;
	int mSilhouetteType;
	int mTargetTenantCategory;
	int m3C;
	CString mReggaeName;
	unsigned int mReggaeManID;
	unsigned int mVisitTenantID;
	int mLastStatus;
	unsigned int mLastMinutes;
	unsigned int mCounter;
	BOOL mDidSetSilhouetteDef;
	BOOL mDidChangeDirection;
	BOOL mIsReggae;
	T2Guardman *mGuardman;
};

class T2Guardman {
public:
	T2Guardman(T2Maru_Reggae *inOwner, T2TowerDoc *inDoc, T2Tenant *inTenant);
	~T2Guardman();
	BOOL DoReception(T2TowerDoc *inDoc);
	void GoHome();

	T2Maru_Reggae *mOwner;
	T2People *mPeople;
};
#endif