* Use iterators on vectors instead of indexes.
This commit is contained in:
jean.chalard
2008-11-24 08:00:02 +00:00
parent efff231ac3
commit a9e70c0bdc
2 changed files with 18 additions and 21 deletions
+11 -11
View File
@@ -210,7 +210,7 @@ BOOL CreateGLWindow(char* title, int width, int height, int bits __attribute__((
} }
for (signed int i = sizeof(gDefaultBindings)/sizeof(gDefaultBindings[0]) - 1; i >= 0; --i) for (signed int i = sizeof(gDefaultBindings)/sizeof(gDefaultBindings[0]) - 1; i >= 0; --i)
gKeyCodes[i] = make_pair(XKeysymToKeycode(gXDisplay, gDefaultBindings[i].keysym), gDefaultBindings[i].pspCode); gKeyCodes.push_back(make_pair(XKeysymToKeycode(gXDisplay, gDefaultBindings[i].keysym), gDefaultBindings[i].pspCode));
// Get a suitable framebuffer config // Get a suitable framebuffer config
int numReturned; int numReturned;
@@ -436,22 +436,22 @@ int main(int argc, char* argv[])
case KeyPress: case KeyPress:
if (XKeycodeToKeysym(gXDisplay, event.xkey.keycode, 1) == XK_F) if (XKeycodeToKeysym(gXDisplay, event.xkey.keycode, 1) == XK_F)
fullscreen(); fullscreen();
for (signed int i = gKeyCodes.size() - 1; i >= 0; --i) for (vector< pair<KeyCode, u32> >::iterator it = gKeyCodes.begin(); it != gKeyCodes.end(); ++it)
if (event.xkey.keycode == gKeyCodes[i].first) if (event.xkey.keycode == it->first)
{ {
if (!(gHolds & gKeyCodes[i].second)) if (!(gHolds & it->second))
gKeyBuffer.push(gKeyCodes[i]); gKeyBuffer.push(*it);
gControllerState |= gKeyCodes[i].second; gControllerState |= it->second;
gHolds |= gKeyCodes[i].second; gHolds |= it->second;
break; break;
} }
break; break;
case KeyRelease: case KeyRelease:
for (signed int i = sizeof(gKeyCodes)/sizeof(gKeyCodes[0]) - 1; i >= 0; --i) for (vector< pair<KeyCode, u32> >::iterator it = gKeyCodes.begin(); it != gKeyCodes.end(); ++it)
if (event.xkey.keycode == gKeyCodes[i].first) if (event.xkey.keycode == it->first)
{ {
gControllerState &= ~gKeyCodes[i].second; gControllerState &= ~it->second;
gHolds &= ~gKeyCodes[i].second; gHolds &= ~it->second;
break; break;
} }
break; break;
+7 -10
View File
@@ -190,11 +190,9 @@ void JGEControl()
gOldButtons = gButtons; gOldButtons = gButtons;
gButtons = 0; gButtons = 0;
for (int i = gKeyCodes.size() - 1; i >= 0; --i) for (vector< pair<WPARAM, u32> >::iterator it = gKeyCodes.begin(); it != gKeyCodes.end(); ++it)
{ if (g_keys[it->first])
if (g_keys[gKeyCodes[i].first]) gButtons |= it->second;
gButtons |= gKeyCodes[i].second;
}
} }
@@ -601,9 +599,8 @@ LRESULT CALLBACK WndProc( HWND hWnd, // Handle For This Window
WPARAM wParam, // Additional Message Information WPARAM wParam, // Additional Message Information
LPARAM lParam) // Additional Message Information LPARAM lParam) // Additional Message Information
{ {
gKeyCodes.reserve(sizeof(gDefaultBindings)/sizeof(gDefaultBindings[0]));
for (signed int i = sizeof(gDefaultBindings)/sizeof(gDefaultBindings[0]) - 1; i >= 0; --i) for (signed int i = sizeof(gDefaultBindings)/sizeof(gDefaultBindings[0]) - 1; i >= 0; --i)
gKeyCodes[i] = make_pair(gDefaultBindings[i].keysym, gDefaultBindings[i].pspCode); gKeyCodes.push_back(make_pair(gDefaultBindings[i].keysym, gDefaultBindings[i].pspCode));
switch (uMsg) // Check For Windows Messages switch (uMsg) // Check For Windows Messages
{ {
@@ -649,9 +646,9 @@ LRESULT CALLBACK WndProc( HWND hWnd, // Handle For This Window
if (false == g_holds[wParam]) if (false == g_holds[wParam])
{ {
g_holds[wParam] = true; g_holds[wParam] = true;
for (signed int i = gKeyCodes.size() - 1; i >= 0; --i) for (vector< pair<WPARAM, u32> >::iterator it = gKeyCodes.begin(); it != gKeyCodes.end(); ++it)
if (gKeyCodes[i].first == wParam) if (it->first == wParam)
gKeyBuffer.push(gKeyCodes[i]); gKeyBuffer.push(*it);
} }
return 0; return 0;
} }