Cleanup and comments

This commit is contained in:
Clownacy 2020-04-01 21:52:18 +01:00
parent 0182ab6eb3
commit db2f079266

View file

@ -30,173 +30,177 @@ static void KeyCallback(GLFWwindow *window, int key, int scancode, int action, i
(void)scancode; (void)scancode;
(void)mods; (void)mods;
if (action == GLFW_PRESS) switch (action)
{ {
switch (key) case GLFW_PRESS:
{ switch (key)
case GLFW_KEY_ESCAPE: {
gKey |= KEY_ESCAPE; case GLFW_KEY_ESCAPE:
break; gKey |= KEY_ESCAPE;
break;
case GLFW_KEY_W: case GLFW_KEY_W:
gKey |= KEY_MAP; gKey |= KEY_MAP;
break; break;
case GLFW_KEY_LEFT: case GLFW_KEY_LEFT:
gKey |= KEY_LEFT; gKey |= KEY_LEFT;
break; break;
case GLFW_KEY_RIGHT: case GLFW_KEY_RIGHT:
gKey |= KEY_RIGHT; gKey |= KEY_RIGHT;
break; break;
case GLFW_KEY_UP: case GLFW_KEY_UP:
gKey |= KEY_UP; gKey |= KEY_UP;
break; break;
case GLFW_KEY_DOWN: case GLFW_KEY_DOWN:
gKey |= KEY_DOWN; gKey |= KEY_DOWN;
break; break;
case GLFW_KEY_X: case GLFW_KEY_X:
gKey |= KEY_X; gKey |= KEY_X;
break; break;
case GLFW_KEY_Z: case GLFW_KEY_Z:
gKey |= KEY_Z; gKey |= KEY_Z;
break; break;
case GLFW_KEY_S: case GLFW_KEY_S:
gKey |= KEY_ARMS; gKey |= KEY_ARMS;
break; break;
case GLFW_KEY_A: case GLFW_KEY_A:
gKey |= KEY_ARMSREV; gKey |= KEY_ARMSREV;
break; break;
case GLFW_KEY_LEFT_SHIFT: case GLFW_KEY_LEFT_SHIFT:
case GLFW_KEY_RIGHT_SHIFT: case GLFW_KEY_RIGHT_SHIFT:
gKey |= KEY_SHIFT; gKey |= KEY_SHIFT;
break; break;
case GLFW_KEY_F1: case GLFW_KEY_F1:
gKey |= KEY_F1; gKey |= KEY_F1;
break; break;
case GLFW_KEY_F2: case GLFW_KEY_F2:
gKey |= KEY_F2; gKey |= KEY_F2;
break; break;
case GLFW_KEY_Q: case GLFW_KEY_Q:
gKey |= KEY_ITEM; gKey |= KEY_ITEM;
break; break;
case GLFW_KEY_COMMA: case GLFW_KEY_COMMA:
gKey |= KEY_ALT_LEFT; gKey |= KEY_ALT_LEFT;
break; break;
case GLFW_KEY_PERIOD: case GLFW_KEY_PERIOD:
gKey |= KEY_ALT_DOWN; gKey |= KEY_ALT_DOWN;
break; break;
case GLFW_KEY_SLASH: case GLFW_KEY_SLASH:
gKey |= KEY_ALT_RIGHT; gKey |= KEY_ALT_RIGHT;
break; break;
case GLFW_KEY_L: case GLFW_KEY_L:
gKey |= KEY_L; gKey |= KEY_L;
break; break;
case GLFW_KEY_EQUAL: case GLFW_KEY_EQUAL:
gKey |= KEY_PLUS; gKey |= KEY_PLUS;
break; break;
case GLFW_KEY_F5: case GLFW_KEY_F5:
gbUseJoystick = FALSE; gbUseJoystick = FALSE;
break; break;
} }
}
else if (action == GLFW_RELEASE)
{
switch (key)
{
case GLFW_KEY_ESCAPE:
gKey &= ~KEY_ESCAPE;
break;
case GLFW_KEY_W: break;
gKey &= ~KEY_MAP;
break;
case GLFW_KEY_LEFT: case GLFW_RELEASE:
gKey &= ~KEY_LEFT; switch (key)
break; {
case GLFW_KEY_ESCAPE:
gKey &= ~KEY_ESCAPE;
break;
case GLFW_KEY_RIGHT: case GLFW_KEY_W:
gKey &= ~KEY_RIGHT; gKey &= ~KEY_MAP;
break; break;
case GLFW_KEY_UP: case GLFW_KEY_LEFT:
gKey &= ~KEY_UP; gKey &= ~KEY_LEFT;
break; break;
case GLFW_KEY_DOWN: case GLFW_KEY_RIGHT:
gKey &= ~KEY_DOWN; gKey &= ~KEY_RIGHT;
break; break;
case GLFW_KEY_X: case GLFW_KEY_UP:
gKey &= ~KEY_X; gKey &= ~KEY_UP;
break; break;
case GLFW_KEY_Z: case GLFW_KEY_DOWN:
gKey &= ~KEY_Z; gKey &= ~KEY_DOWN;
break; break;
case GLFW_KEY_S: case GLFW_KEY_X:
gKey &= ~KEY_ARMS; gKey &= ~KEY_X;
break; break;
case GLFW_KEY_A: case GLFW_KEY_Z:
gKey &= ~KEY_ARMSREV; gKey &= ~KEY_Z;
break; break;
case GLFW_KEY_LEFT_SHIFT: case GLFW_KEY_S:
case GLFW_KEY_RIGHT_SHIFT: gKey &= ~KEY_ARMS;
gKey &= ~KEY_SHIFT; break;
break;
case GLFW_KEY_F1: case GLFW_KEY_A:
gKey &= ~KEY_F1; gKey &= ~KEY_ARMSREV;
break; break;
case GLFW_KEY_F2: case GLFW_KEY_LEFT_SHIFT:
gKey &= ~KEY_F2; case GLFW_KEY_RIGHT_SHIFT:
break; gKey &= ~KEY_SHIFT;
break;
case GLFW_KEY_Q: case GLFW_KEY_F1:
gKey &= ~KEY_ITEM; gKey &= ~KEY_F1;
break; break;
case GLFW_KEY_COMMA: case GLFW_KEY_F2:
gKey &= ~KEY_ALT_LEFT; gKey &= ~KEY_F2;
break; break;
case GLFW_KEY_PERIOD: case GLFW_KEY_Q:
gKey &= ~KEY_ALT_DOWN; gKey &= ~KEY_ITEM;
break; break;
case GLFW_KEY_SLASH: case GLFW_KEY_COMMA:
gKey &= ~KEY_ALT_RIGHT; gKey &= ~KEY_ALT_LEFT;
break; break;
case GLFW_KEY_L: case GLFW_KEY_PERIOD:
gKey &= ~KEY_L; gKey &= ~KEY_ALT_DOWN;
break; break;
case GLFW_KEY_EQUAL: case GLFW_KEY_SLASH:
gKey &= ~KEY_PLUS; gKey &= ~KEY_ALT_RIGHT;
break; break;
}
case GLFW_KEY_L:
gKey &= ~KEY_L;
break;
case GLFW_KEY_EQUAL:
gKey &= ~KEY_PLUS;
break;
}
break;
} }
} }
@ -220,6 +224,7 @@ static void WindowSizeCallback(GLFWwindow *window, int width, int height)
static void DragAndDropCallback(GLFWwindow *window, int count, const char **paths) static void DragAndDropCallback(GLFWwindow *window, int count, const char **paths)
{ {
(void)window; (void)window;
(void)count;
LoadProfile(paths[0]); LoadProfile(paths[0]);
} }
@ -247,6 +252,7 @@ void PlatformBackend_PostWindowCreation(void)
BOOL PlatformBackend_GetBasePath(char *string_buffer) BOOL PlatformBackend_GetBasePath(char *string_buffer)
{ {
// GLFW3 doesn't seem to have a mechanism for this
return FALSE; return FALSE;
} }
@ -257,6 +263,7 @@ void PlatformBackend_HideMouse(void)
void PlatformBackend_SetWindowIcon(const unsigned char *rgb_pixels, unsigned int width, unsigned int height) void PlatformBackend_SetWindowIcon(const unsigned char *rgb_pixels, unsigned int width, unsigned int height)
{ {
// Convert to RGBA, since that's the only think GLFW3 accepts
unsigned char *rgba_pixels = (unsigned char*)malloc(width * height * 4); unsigned char *rgba_pixels = (unsigned char*)malloc(width * height * 4);
const unsigned char *rgb_pointer = rgb_pixels; const unsigned char *rgb_pointer = rgb_pixels;
@ -284,6 +291,7 @@ void PlatformBackend_SetWindowIcon(const unsigned char *rgb_pixels, unsigned int
void PlatformBackend_SetCursor(const unsigned char *rgb_pixels, unsigned int width, unsigned int height) void PlatformBackend_SetCursor(const unsigned char *rgb_pixels, unsigned int width, unsigned int height)
{ {
// Convert to RGBA, since that's the only think GLFW3 accepts
unsigned char *rgba_pixels = (unsigned char*)malloc(width * height * 4); unsigned char *rgba_pixels = (unsigned char*)malloc(width * height * 4);
const unsigned char *rgb_pointer = rgb_pixels; const unsigned char *rgb_pointer = rgb_pixels;
@ -295,7 +303,7 @@ void PlatformBackend_SetCursor(const unsigned char *rgb_pixels, unsigned int wid
{ {
for (unsigned int x = 0; x < width; ++x) for (unsigned int x = 0; x < width; ++x)
{ {
if (rgb_pointer[0] == 0xFF && rgb_pointer[1] == 0 && rgb_pointer[2] == 0xFF) if (rgb_pointer[0] == 0xFF && rgb_pointer[1] == 0 && rgb_pointer[2] == 0xFF) // Colour-key
{ {
*rgba_pointer++ = *rgb_pointer++; *rgba_pointer++ = *rgb_pointer++;
*rgba_pointer++ = *rgb_pointer++; *rgba_pointer++ = *rgb_pointer++;
@ -338,34 +346,12 @@ BOOL PlatformBackend_SystemTask(void)
while (!bActive) while (!bActive)
glfwWaitEvents(); glfwWaitEvents();
/*
while (SDL_PollEvent(NULL) || !bActive)
{
SDL_Event event;
if (!SDL_WaitEvent(&event))
return FALSE;
switch (event.type)
{
case SDL_DROPFILE:
LoadProfile(event.drop.file);
SDL_free(event.drop.file);
break;
case SDL_RENDER_TARGETS_RESET:
Backend_HandleRenderTargetLoss();
break;
}
}
*/
return TRUE; return TRUE;
} }
void PlatformBackend_ShowMessageBox(const char *title, const char *message) void PlatformBackend_ShowMessageBox(const char *title, const char *message)
{ {
// GLFW3 doesn't have a message box
printf("ShowMessageBox - '%s' - '%s'\n", title, message); printf("ShowMessageBox - '%s' - '%s'\n", title, message);
} }
@ -376,5 +362,6 @@ unsigned long PlatformBackend_GetTicks(void)
void PlatformBackend_Delay(unsigned int ticks) void PlatformBackend_Delay(unsigned int ticks)
{ {
// GLFW3 doesn't have a delay function, so here's some butt-ugly C++11
std::this_thread::sleep_for(std::chrono::milliseconds(ticks)); std::this_thread::sleep_for(std::chrono::milliseconds(ticks));
} }