summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/defs.h26
-rw-r--r--src/local.mk1
-rw-r--r--src/main.c98
3 files changed, 125 insertions, 0 deletions
diff --git a/src/defs.h b/src/defs.h
new file mode 100644
index 0000000..7fa89b4
--- /dev/null
+++ b/src/defs.h
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2021 P. J. McDermott
+ *
+ * This file is part of Maze Fight
+ *
+ * Maze Fight is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Maze Fight is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Maze Fight. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef MF_DEFS_H_
+#define MF_DEFS_H_
+
+#define MF_WINDOW_W 640 /* Window width */
+#define MF_WINDOW_H 480 /* Window height */
+
+#endif /* MF_DEFS_H_ */
diff --git a/src/local.mk b/src/local.mk
index 1cd44cd..84fefc6 100644
--- a/src/local.mk
+++ b/src/local.mk
@@ -1,2 +1,3 @@
mazefight_SOURCES += \
+ %reldir%/defs.h \
%reldir%/main.c
diff --git a/src/main.c b/src/main.c
index e69de29..648bac8 100644
--- a/src/main.c
+++ b/src/main.c
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2021 P. J. McDermott
+ *
+ * This file is part of Maze Fight
+ *
+ * Maze Fight is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Maze Fight is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Maze Fight. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <SDL.h>
+#include <SDL_ttf.h>
+#include <stdlib.h>
+#include "defs.h"
+
+static SDL_Window *_mf_window;
+static SDL_Renderer *_mf_renderer;
+
+static int
+_mf_init(void)
+{
+ if (SDL_Init(SDL_INIT_VIDEO) < 0) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
+ "Couldn't initialize SDL: %s",
+ SDL_GetError());
+ return -1;
+ }
+
+ if (TTF_Init() < 0) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
+ "Couldn't initialize SDL_ttf: %s",
+ SDL_GetError());
+ SDL_Quit();
+ return -1;
+ }
+
+ _mf_window = SDL_CreateWindow("Maze Fight",
+ SDL_WINDOWPOS_UNDEFINED,
+ SDL_WINDOWPOS_UNDEFINED,
+ MF_WINDOW_W, MF_WINDOW_H, 0);
+ if (_mf_window == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
+ "Couldn't create window: %s",
+ SDL_GetError());
+ TTF_Quit();
+ SDL_Quit();
+ return -1;
+ }
+
+ _mf_renderer = SDL_CreateRenderer(_mf_window, -1, 0);
+ if (_mf_renderer == NULL) {
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
+ "Couldn't create renderer: %s",
+ SDL_GetError());
+ SDL_DestroyWindow(_mf_window);
+ TTF_Quit();
+ SDL_Quit();
+ return -1;
+ }
+
+ SDL_DisableScreenSaver();
+
+ return 0;
+}
+
+static void
+_mf_quit(void)
+{
+ SDL_EnableScreenSaver();
+ SDL_DestroyRenderer(_mf_renderer);
+ SDL_DestroyWindow(_mf_window);
+ TTF_Quit();
+ SDL_Quit();
+}
+
+int
+main(int argc __attribute__((__unused__)),
+ char *argv[] __attribute__((__unused__)))
+{
+ /* Initialize SDL libraries */
+ if (_mf_init() < 0) {
+ return EXIT_FAILURE;
+ }
+
+ /* Quit SDL libraries */
+ _mf_quit();
+
+ return EXIT_SUCCESS;
+}