summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c60
1 files changed, 37 insertions, 23 deletions
diff --git a/src/main.c b/src/main.c
index 2a6e425..0ed1117 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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();
+}