mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-23 10:09:43 +01:00
Refactor KeyPoll::Poll() to use case-switch statements
Reduces the amount of copy-pasted if-expressions.
This commit is contained in:
parent
a87ebd2945
commit
2662cd4d06
1 changed files with 59 additions and 64 deletions
|
@ -73,9 +73,11 @@ void KeyPoll::Poll()
|
||||||
{
|
{
|
||||||
SDL_Event evt;
|
SDL_Event evt;
|
||||||
while (SDL_PollEvent(&evt))
|
while (SDL_PollEvent(&evt))
|
||||||
|
{
|
||||||
|
switch (evt.type)
|
||||||
{
|
{
|
||||||
/* Keyboard Input */
|
/* Keyboard Input */
|
||||||
if (evt.type == SDL_KEYDOWN)
|
case SDL_KEYDOWN:
|
||||||
{
|
{
|
||||||
keymap[evt.key.keysym.sym] = true;
|
keymap[evt.key.keysym.sym] = true;
|
||||||
|
|
||||||
|
@ -115,82 +117,76 @@ void KeyPoll::Poll()
|
||||||
keybuffer += SDL_GetClipboardText();
|
keybuffer += SDL_GetClipboardText();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else if (evt.type == SDL_KEYUP)
|
case SDL_KEYUP:
|
||||||
{
|
|
||||||
keymap[evt.key.keysym.sym] = false;
|
keymap[evt.key.keysym.sym] = false;
|
||||||
if (evt.key.keysym.sym == SDLK_BACKSPACE)
|
if (evt.key.keysym.sym == SDLK_BACKSPACE)
|
||||||
{
|
{
|
||||||
pressedbackspace = false;
|
pressedbackspace = false;
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
else if (evt.type == SDL_TEXTINPUT)
|
case SDL_TEXTINPUT:
|
||||||
{
|
|
||||||
keybuffer += evt.text.text;
|
keybuffer += evt.text.text;
|
||||||
}
|
break;
|
||||||
|
|
||||||
/* Mouse Input */
|
/* Mouse Input */
|
||||||
else if (evt.type == SDL_MOUSEMOTION)
|
case SDL_MOUSEMOTION:
|
||||||
{
|
|
||||||
mx = evt.motion.x;
|
mx = evt.motion.x;
|
||||||
my = evt.motion.y;
|
my = evt.motion.y;
|
||||||
}
|
break;
|
||||||
else if (evt.type == SDL_MOUSEBUTTONDOWN)
|
case SDL_MOUSEBUTTONDOWN:
|
||||||
{
|
switch (evt.button.button)
|
||||||
if (evt.button.button == SDL_BUTTON_LEFT)
|
|
||||||
{
|
{
|
||||||
|
case SDL_BUTTON_LEFT:
|
||||||
mx = evt.button.x;
|
mx = evt.button.x;
|
||||||
my = evt.button.y;
|
my = evt.button.y;
|
||||||
leftbutton = 1;
|
leftbutton = 1;
|
||||||
}
|
break;
|
||||||
else if (evt.button.button == SDL_BUTTON_RIGHT)
|
case SDL_BUTTON_RIGHT:
|
||||||
{
|
|
||||||
mx = evt.button.x;
|
mx = evt.button.x;
|
||||||
my = evt.button.y;
|
my = evt.button.y;
|
||||||
rightbutton = 1;
|
rightbutton = 1;
|
||||||
}
|
break;
|
||||||
else if (evt.button.button == SDL_BUTTON_MIDDLE)
|
case SDL_BUTTON_MIDDLE:
|
||||||
{
|
|
||||||
mx = evt.button.x;
|
mx = evt.button.x;
|
||||||
my = evt.button.y;
|
my = evt.button.y;
|
||||||
middlebutton = 1;
|
middlebutton = 1;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
else if (evt.type == SDL_MOUSEBUTTONUP)
|
case SDL_MOUSEBUTTONUP:
|
||||||
{
|
switch (evt.button.button)
|
||||||
if (evt.button.button == SDL_BUTTON_LEFT)
|
|
||||||
{
|
{
|
||||||
|
case SDL_BUTTON_LEFT:
|
||||||
mx = evt.button.x;
|
mx = evt.button.x;
|
||||||
my = evt.button.y;
|
my = evt.button.y;
|
||||||
leftbutton=0;
|
leftbutton=0;
|
||||||
}
|
break;
|
||||||
else if (evt.button.button == SDL_BUTTON_RIGHT)
|
case SDL_BUTTON_RIGHT:
|
||||||
{
|
|
||||||
mx = evt.button.x;
|
mx = evt.button.x;
|
||||||
my = evt.button.y;
|
my = evt.button.y;
|
||||||
rightbutton=0;
|
rightbutton=0;
|
||||||
}
|
break;
|
||||||
else if (evt.button.button == SDL_BUTTON_MIDDLE)
|
case SDL_BUTTON_MIDDLE:
|
||||||
{
|
|
||||||
mx = evt.button.x;
|
mx = evt.button.x;
|
||||||
my = evt.button.y;
|
my = evt.button.y;
|
||||||
middlebutton=0;
|
middlebutton=0;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
|
|
||||||
/* Controller Input */
|
/* Controller Input */
|
||||||
else if (evt.type == SDL_CONTROLLERBUTTONDOWN)
|
case SDL_CONTROLLERBUTTONDOWN:
|
||||||
{
|
|
||||||
buttonmap[(SDL_GameControllerButton) evt.cbutton.button] = true;
|
buttonmap[(SDL_GameControllerButton) evt.cbutton.button] = true;
|
||||||
}
|
break;
|
||||||
else if (evt.type == SDL_CONTROLLERBUTTONUP)
|
case SDL_CONTROLLERBUTTONUP:
|
||||||
{
|
|
||||||
buttonmap[(SDL_GameControllerButton) evt.cbutton.button] = false;
|
buttonmap[(SDL_GameControllerButton) evt.cbutton.button] = false;
|
||||||
}
|
break;
|
||||||
else if (evt.type == SDL_CONTROLLERAXISMOTION)
|
case SDL_CONTROLLERAXISMOTION:
|
||||||
{
|
switch (evt.caxis.axis)
|
||||||
if (evt.caxis.axis == SDL_CONTROLLER_AXIS_LEFTX)
|
|
||||||
{
|
{
|
||||||
|
case SDL_CONTROLLER_AXIS_LEFTX:
|
||||||
if ( evt.caxis.value > -sensitivity &&
|
if ( evt.caxis.value > -sensitivity &&
|
||||||
evt.caxis.value < sensitivity )
|
evt.caxis.value < sensitivity )
|
||||||
{
|
{
|
||||||
|
@ -200,9 +196,8 @@ void KeyPoll::Poll()
|
||||||
{
|
{
|
||||||
xVel = (evt.caxis.value > 0) ? 1 : -1;
|
xVel = (evt.caxis.value > 0) ? 1 : -1;
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
if (evt.caxis.axis == SDL_CONTROLLER_AXIS_LEFTY)
|
case SDL_CONTROLLER_AXIS_LEFTY:
|
||||||
{
|
|
||||||
if ( evt.caxis.value > -sensitivity &&
|
if ( evt.caxis.value > -sensitivity &&
|
||||||
evt.caxis.value < sensitivity )
|
evt.caxis.value < sensitivity )
|
||||||
{
|
{
|
||||||
|
@ -212,9 +207,10 @@ void KeyPoll::Poll()
|
||||||
{
|
{
|
||||||
yVel = (evt.caxis.value > 0) ? 1 : -1;
|
yVel = (evt.caxis.value > 0) ? 1 : -1;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
else if (evt.type == SDL_CONTROLLERDEVICEADDED)
|
case SDL_CONTROLLERDEVICEADDED:
|
||||||
{
|
{
|
||||||
SDL_GameController *toOpen = SDL_GameControllerOpen(evt.cdevice.which);
|
SDL_GameController *toOpen = SDL_GameControllerOpen(evt.cdevice.which);
|
||||||
printf(
|
printf(
|
||||||
|
@ -223,27 +219,28 @@ void KeyPoll::Poll()
|
||||||
SDL_GameControllerName(toOpen)
|
SDL_GameControllerName(toOpen)
|
||||||
);
|
);
|
||||||
controllers[SDL_JoystickInstanceID(SDL_GameControllerGetJoystick(toOpen))] = toOpen;
|
controllers[SDL_JoystickInstanceID(SDL_GameControllerGetJoystick(toOpen))] = toOpen;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else if (evt.type == SDL_CONTROLLERDEVICEREMOVED)
|
case SDL_CONTROLLERDEVICEREMOVED:
|
||||||
{
|
{
|
||||||
SDL_GameController *toClose = controllers[evt.cdevice.which];
|
SDL_GameController *toClose = controllers[evt.cdevice.which];
|
||||||
controllers.erase(evt.cdevice.which);
|
controllers.erase(evt.cdevice.which);
|
||||||
printf("Closing %s\n", SDL_GameControllerName(toClose));
|
printf("Closing %s\n", SDL_GameControllerName(toClose));
|
||||||
SDL_GameControllerClose(toClose);
|
SDL_GameControllerClose(toClose);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Window Events */
|
/* Window Events */
|
||||||
else if (evt.type == SDL_WINDOWEVENT)
|
case SDL_WINDOWEVENT:
|
||||||
|
switch (evt.window.event)
|
||||||
{
|
{
|
||||||
/* Window Resize */
|
/* Window Resize */
|
||||||
if (evt.window.event == SDL_WINDOWEVENT_RESIZED)
|
case SDL_WINDOWEVENT_RESIZED:
|
||||||
{
|
|
||||||
resetWindow = true;
|
resetWindow = true;
|
||||||
}
|
break;
|
||||||
|
|
||||||
/* Window Focus */
|
/* Window Focus */
|
||||||
else if (evt.window.event == SDL_WINDOWEVENT_FOCUS_GAINED)
|
case SDL_WINDOWEVENT_FOCUS_GAINED:
|
||||||
{
|
|
||||||
isActive = true;
|
isActive = true;
|
||||||
if (!useFullscreenSpaces)
|
if (!useFullscreenSpaces)
|
||||||
{
|
{
|
||||||
|
@ -257,9 +254,8 @@ void KeyPoll::Poll()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SDL_DisableScreenSaver();
|
SDL_DisableScreenSaver();
|
||||||
}
|
break;
|
||||||
else if (evt.window.event == SDL_WINDOWEVENT_FOCUS_LOST)
|
case SDL_WINDOWEVENT_FOCUS_LOST:
|
||||||
{
|
|
||||||
isActive = false;
|
isActive = false;
|
||||||
if (!useFullscreenSpaces)
|
if (!useFullscreenSpaces)
|
||||||
{
|
{
|
||||||
|
@ -271,23 +267,22 @@ void KeyPoll::Poll()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
SDL_EnableScreenSaver();
|
SDL_EnableScreenSaver();
|
||||||
}
|
break;
|
||||||
|
|
||||||
/* Mouse Focus */
|
/* Mouse Focus */
|
||||||
else if (evt.window.event == SDL_WINDOWEVENT_ENTER)
|
case SDL_WINDOWEVENT_ENTER:
|
||||||
{
|
|
||||||
SDL_DisableScreenSaver();
|
SDL_DisableScreenSaver();
|
||||||
}
|
break;
|
||||||
else if (evt.window.event == SDL_WINDOWEVENT_LEAVE)
|
case SDL_WINDOWEVENT_LEAVE:
|
||||||
{
|
|
||||||
SDL_EnableScreenSaver();
|
SDL_EnableScreenSaver();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
|
|
||||||
/* Quit Event */
|
/* Quit Event */
|
||||||
else if (evt.type == SDL_QUIT)
|
case SDL_QUIT:
|
||||||
{
|
|
||||||
quitProgram = true;
|
quitProgram = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue