-
Notifications
You must be signed in to change notification settings - Fork 4
/
Game.h
91 lines (80 loc) · 2.21 KB
/
Game.h
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
86
87
88
89
90
91
#ifndef __GAME_H__
#define __GAME_H__
#include "JMDefs.h"
//#include "Render.h"
//#include "Player.h"
//#include "Dungeon.h"
//#include "DisplayText.h"
//#include "States.h"
class CRender;
class CDungeon;
class CPlayer;
class CDisplayText;
class CStateBase;
class CCmdState;
class CModState;
class CUseState;
class CStringInputState;
class CEndGameState;
class CClockStepState;
class CRestState;
class CAIMgr;
class CGame
{
public:
CGame();
~CGame() { Quit(0); };
JResult Init();
bool Update(float fCurTime); // someday figure out why this doesn't work...
void HandleEvents(int &isActive, int &done);
void Draw();
CRender *GetRender() { return m_pRender; };
CDungeon *GetDungeon() { return m_pDungeon; };
CPlayer *GetPlayer() { return m_pPlayer; };
CDisplayText *GetMsgs() { return m_pMsgsDT; };
CDisplayText *GetStats() { return m_pStatsDT; };
CDisplayText *GetInv() { return m_pInvDT; };
CDisplayText *GetEquip() { return m_pEquipDT; };
CDisplayText *GetUse() { return m_pUseDT; };
CDisplayText *GetEnd() { return m_pEndGameDT; };
CAIMgr *GetAIMgr() { return m_pAIMgr; };
void Quit( int returncode );
void SetState( int eNewState );
CStateBase *GetGameState() { return m_pCurState; };
float GetFTime() { return m_fGameTime; }
int GetITime() { return (int)m_fGameTime; }
int GetTime() { return GetITime(); }
#ifdef TURN_BASED
void SetReadyForUpdate( const bool isReady ) { m_bReadyForUpdate = isReady; }
#endif
#ifdef CLOCKSTEP
bool WaitForTick();
#endif
protected:
CDungeon *m_pDungeon;
CPlayer *m_pPlayer;
CAIMgr *m_pAIMgr;
CDisplayText *m_pMsgsDT;
CDisplayText *m_pStatsDT;
CDisplayText *m_pInvDT;
CDisplayText *m_pEquipDT;
CDisplayText *m_pUseDT;
CDisplayText *m_pEndGameDT;
CStateBase *m_pCurState;
int m_eCurState;
CCmdState *m_pCmdState;
CModState *m_pModState;
CUseState *m_pUseState;
CStringInputState *m_pStringInputState;
CEndGameState *m_pEndGameState;
CClockStepState *m_pClockStepState;
CRestState *m_pRestState;
private:
CRender *m_pRender;
int m_dwNextTime;
float m_fGameTime;
#ifdef TURN_BASED
bool m_bReadyForUpdate;
#endif
};
#endif // __GAME_H__