* 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

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)
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
int numReturned;
@@ -436,22 +436,22 @@ int main(int argc, char* argv[])
case KeyPress:
if (XKeycodeToKeysym(gXDisplay, event.xkey.keycode, 1) == XK_F)
fullscreen();
for (signed int i = gKeyCodes.size() - 1; i >= 0; --i)
if (event.xkey.keycode == gKeyCodes[i].first)
for (vector< pair<KeyCode, u32> >::iterator it = gKeyCodes.begin(); it != gKeyCodes.end(); ++it)
if (event.xkey.keycode == it->first)
{
if (!(gHolds & gKeyCodes[i].second))
gKeyBuffer.push(gKeyCodes[i]);
gControllerState |= gKeyCodes[i].second;
gHolds |= gKeyCodes[i].second;
if (!(gHolds & it->second))
gKeyBuffer.push(*it);
gControllerState |= it->second;
gHolds |= it->second;
break;
}
break;
case KeyRelease:
for (signed int i = sizeof(gKeyCodes)/sizeof(gKeyCodes[0]) - 1; i >= 0; --i)
if (event.xkey.keycode == gKeyCodes[i].first)
for (vector< pair<KeyCode, u32> >::iterator it = gKeyCodes.begin(); it != gKeyCodes.end(); ++it)
if (event.xkey.keycode == it->first)
{
gControllerState &= ~gKeyCodes[i].second;
gHolds &= ~gKeyCodes[i].second;
gControllerState &= ~it->second;
gHolds &= ~it->second;
break;
}
break;

View File

@@ -190,11 +190,9 @@ void JGEControl()
gOldButtons = gButtons;
gButtons = 0;
for (int i = gKeyCodes.size() - 1; i >= 0; --i)
{
if (g_keys[gKeyCodes[i].first])
gButtons |= gKeyCodes[i].second;
}
for (vector< pair<WPARAM, u32> >::iterator it = gKeyCodes.begin(); it != gKeyCodes.end(); ++it)
if (g_keys[it->first])
gButtons |= it->second;
}
@@ -601,9 +599,8 @@ LRESULT CALLBACK WndProc( HWND hWnd, // Handle For This Window
WPARAM wParam, // 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)
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
{
@@ -649,9 +646,9 @@ LRESULT CALLBACK WndProc( HWND hWnd, // Handle For This Window
if (false == g_holds[wParam])
{
g_holds[wParam] = true;
for (signed int i = gKeyCodes.size() - 1; i >= 0; --i)
if (gKeyCodes[i].first == wParam)
gKeyBuffer.push(gKeyCodes[i]);
for (vector< pair<WPARAM, u32> >::iterator it = gKeyCodes.begin(); it != gKeyCodes.end(); ++it)
if (it->first == wParam)
gKeyBuffer.push(*it);
}
return 0;
}