Mercurial > LightClone
comparison LightClone/Source/InputManager.cpp @ 15:ee1c2510096d
Work on GUI system
author | koryspansel <koryspansel@bendbroadband.com> |
---|---|
date | Wed, 14 Sep 2011 11:04:18 -0700 |
parents | 7081e8e6008c |
children | 3a63df04f3c0 |
comparison
equal
deleted
inserted
replaced
14:7081e8e6008c | 15:ee1c2510096d |
---|---|
1 /* | 1 /* |
2 * InputManager | 2 * InputManager |
3 */ | 3 */ |
4 | 4 |
5 #include "InputManager.h" | 5 #include "InputManager.h" |
6 #include "EventSystem.h" | |
6 | 7 |
7 /* | 8 /* |
8 * fMouseSensitivity | 9 * fMouseSensitivity |
9 */ | 10 */ |
10 static const float fMouseSensitivity = 1.5f; | 11 static const float fMouseSensitivity = 1.5f; |
124 { | 125 { |
125 hResult = pKeyboard->Acquire(); | 126 hResult = pKeyboard->Acquire(); |
126 if(SUCCEEDED(hResult)) | 127 if(SUCCEEDED(hResult)) |
127 { | 128 { |
128 hResult = pKeyboard->GetDeviceState(sizeof(kCurrentKeyboardState), kCurrentKeyboardState); | 129 hResult = pKeyboard->GetDeviceState(sizeof(kCurrentKeyboardState), kCurrentKeyboardState); |
129 | 130 } |
130 for(uint32 i = 0; i < sizeof(kCurrentKeyboardState) / sizeof(kCurrentKeyboardState[0]); ++i) | 131 } |
131 { | 132 |
132 // check for key up events | 133 for(uint32 i = 0; i < sizeof(kCurrentKeyboardState) / sizeof(kCurrentKeyboardState[0]); ++i) |
133 if(kPreviousKeyboardState[i] & 0x80) | 134 { |
134 { | 135 // check for key up events |
135 if(!(kCurrentKeyboardState[i] & 0x80)) | 136 if(kPreviousKeyboardState[i] & 0x80) |
136 { | 137 { |
137 InputEvent kEvent; | 138 if(!(kCurrentKeyboardState[i] & 0x80)) |
138 kEvent.nType = InputEventType_KeyUp; | 139 { |
139 kEvent.nKey = i; | 140 InputEvent kEvent; |
140 kEvent.nDuration = 0; | 141 kEvent.nType = InputEventType_KeyUp; |
141 | 142 kEvent.nKey = i; |
142 pEventSystem->Post(kEvent); | 143 kEvent.nDuration = 0; |
143 } | 144 |
144 } | 145 pEventSystem->Post(kEvent); |
145 else | 146 } |
146 { | 147 } |
147 if(kCurrentKeyboardState[i] & 0x80) | 148 else |
148 { | 149 { |
149 InputEvent kEvent; | 150 if(kCurrentKeyboardState[i] & 0x80) |
150 kEvent.nType = InputEventType_KeyDown; | 151 { |
151 kEvent.nKey = i; | 152 InputEvent kEvent; |
152 kEvent.nDuration = 0; | 153 kEvent.nType = InputEventType_KeyDown; |
153 | 154 kEvent.nKey = i; |
154 pEventSystem->Post(kEvent); | 155 kEvent.nDuration = 0; |
155 } | 156 |
156 } | 157 pEventSystem->Post(kEvent); |
157 } | 158 } |
158 } | 159 } |
159 } | 160 } |
160 } | 161 } |
161 | 162 |
173 } | 174 } |
174 } | 175 } |
175 | 176 |
176 fMouseX = Clamp(fMouseX + fMouseSensitivity * kCurrentMouseState.lX, kMouseBounds.X, kMouseBounds.X + kMouseBounds.Width - 1.0f); | 177 fMouseX = Clamp(fMouseX + fMouseSensitivity * kCurrentMouseState.lX, kMouseBounds.X, kMouseBounds.X + kMouseBounds.Width - 1.0f); |
177 fMouseY = Clamp(fMouseY + fMouseSensitivity * kCurrentMouseState.lY, kMouseBounds.Y, kMouseBounds.Y + kMouseBounds.Height - 1.0f); | 178 fMouseY = Clamp(fMouseY + fMouseSensitivity * kCurrentMouseState.lY, kMouseBounds.Y, kMouseBounds.Y + kMouseBounds.Height - 1.0f); |
179 | |
180 for(uint32 i = 0; i < sizeof(kCurrentMouseState.rgbButtons) / sizeof(kCurrentMouseState.rgbButtons[0]); ++i) | |
181 { | |
182 if(kPreviousMouseState.rgbButtons[i] & 0x80) | |
183 { | |
184 if(!(kCurrentMouseState.rgbButtons[i] & 0x80)) | |
185 { | |
186 InputEvent kEvent; | |
187 kEvent.nType = InputEventType_MouseUp; | |
188 kEvent.nButton = i; | |
189 kEvent.nDuration = 0; | |
190 | |
191 pEventSystem->Post(kEvent); | |
192 } | |
193 } | |
194 else | |
195 { | |
196 if(kCurrentMouseState.rgbButtons[i] & 0x80) | |
197 { | |
198 InputEvent kEvent; | |
199 kEvent.nType = InputEventType_MouseDown; | |
200 kEvent.nButton = i; | |
201 kEvent.nDuration = 0; | |
202 | |
203 pEventSystem->Post(kEvent); | |
204 } | |
205 } | |
206 } | |
207 | |
208 if(kCurrentMouseState.lX != 0 || kCurrentMouseState.lY != 0) | |
209 { | |
210 InputEvent kEvent; | |
211 kEvent.nType = InputEventType_MouseMove; | |
212 kEvent.fX = fMouseX; | |
213 kEvent.fY = fMouseY; | |
214 | |
215 pEventSystem->Post(kEvent); | |
216 } | |
178 } | 217 } |
179 } | 218 } |
180 | 219 |
181 /* | 220 /* |
182 * SetBounds | 221 * SetBounds |