-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathInputSystem.cpp
More file actions
66 lines (54 loc) · 1.87 KB
/
Copy pathInputSystem.cpp
File metadata and controls
66 lines (54 loc) · 1.87 KB
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
#include "InputSystem.h"
/*********************************************************************************************/
/** \file InputSystem.cpp
\brief The CInputSystem class implementation */
/*********************************************************************************************/
/** CInputSystem class constructor
\param flags valid flags: IS_USEKEYBOARD, IS_USEMOUSE and IS_USEJOYSTICK.
Use (IS_USEKEYBOARD | IS_USEMOUSE) to get keyboard and mouse control.
Joystick control is not yet implemented.
**********************************************************************************************/
CInputSystem::CInputSystem(int flags): m_pKeyboard(NULL), m_pMouse(NULL), m_pJoystick(NULL)
{
if (flags & IS_USEKEYBOARD)
{
m_pKeyboard = new CKeyboard;
}
if (flags & IS_USEMOUSE)
{
m_pMouse = new CMouse;
}
if (flags & IS_USEJOYSTICK)
{
SDL_InitSubSystem(SDL_INIT_JOYSTICK);
m_pJoystick = new CJoystick;
}
}
/*********************************************************************************************/
/** CInputSystem class desstructor
**********************************************************************************************/
CInputSystem::~CInputSystem()
{
delete m_pKeyboard;
delete m_pMouse;
if (m_pJoystick)
{
delete m_pJoystick;
SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
}
}
/*********************************************************************************************/
/** Check input events to update keyboard and mouse state.
**********************************************************************************************/
bool CInputSystem::Update()
{
/* Pumps the event loop, gathering events from the input devices */
SDL_PumpEvents();
if (m_pKeyboard)
m_pKeyboard->Update();
if (m_pMouse)
m_pMouse->Update();
if (m_pJoystick)
m_pJoystick->Update();
return true;
}