diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 60 |
1 files changed, 37 insertions, 23 deletions
@@ -7,6 +7,10 @@ #include <stdio.h> #include <stdlib.h> +static Game *game = NULL; + +static void deinit(void); + int main(void) { if (LZY_Init("hyperultra!", 30, "res/tset.png", "res/font.png")) { @@ -15,10 +19,15 @@ int main(void) return 1; } - Game *const game = malloc(sizeof(Game)); + if (atexit(deinit)) { + perror("atexit(deinit)"); + deinit(); + return 1; + } + + game = malloc(sizeof(Game)); if (game == NULL) { LZY_Log("malloc failed"); - LZY_Quit(); return 1; } game_init(game); @@ -47,28 +56,26 @@ int main(void) hold = 0; } - LZY_DrawBegin(); + if (LZY_DrawBegin()) return LZY_LogError(1); LZY_DrawSetColor(WHITE); - LZY_DrawClear(); + (void)LZY_DrawClear(); LZY_DrawSetColor(BLACK); int y = -16; if (stage == 1) { - LZY_DrawText(48, y += 32, "WALKING is AUTOMATIC"); - LZY_DrawText(48, y += 32, "press SHIFT to jump"); - LZY_DrawText(48, y += 32, "hold UP to jump HIGHER"); - LZY_DrawText(48, y += 32, "hold DOWN to jump LOWER"); - } - else { - LZY_DrawText(48, y += 32, "HYPERULTRA"); - LZY_DrawText(48, y += 32, "a game made by KDX.re"); - LZY_DrawText(48, y += 32, "powered by GINT and SDL"); - y += 32; + (void)LZY_DrawText(48, y += 32, "WALKING is AUTOMATIC"); + (void)LZY_DrawText(48, y += 32, "press SHIFT to jump"); + (void)LZY_DrawText(48, y += 32, "hold UP to jump HIGHER"); + (void)LZY_DrawText(48, y += 32, "hold DOWN to jump LOWER"); + } else { + (void)LZY_DrawText(48, y += 32, "HYPERULTRA"); + (void)LZY_DrawText(48, y += 32, "a game made by KDX.re"); + (void)LZY_DrawText(48, y += 32, "powered by GINT and SDL"); } - LZY_DrawText(48, y += 48, "hold SHIFT to continue"); + (void)LZY_DrawText(48, y += 48, "hold SHIFT to continue"); if (hold) - LZY_DrawFillRect(0, DISPLAY_HEIGHT - 24, hold * 8, 24); + (void)LZY_FillRect(0, DISPLAY_HEIGHT - 24, hold * 8, 24); background_draw(); - LZY_DrawEnd(); + if (LZY_DrawEnd()) return LZY_LogError(1); } while (!LZY_ShouldQuit()) { @@ -77,16 +84,23 @@ int main(void) game_update(game); background_update(game); - LZY_DrawBegin(); + if (LZY_DrawBegin()) return LZY_LogError(1); LZY_DrawSetColor(WHITE); - LZY_DrawClear(); + if (LZY_DrawClear()) return LZY_LogError(1); game_draw(game); background_draw(); - LZY_DrawEnd(); + if (LZY_DrawClear()) return LZY_LogError(1); } - game_deinit(game); - free(game); - LZY_Quit(); return 0; } + +static void +deinit(void) +{ + if (game != NULL) { + game_deinit(game); + free(game); + } + LZY_Quit(); +} |