From d67fc3baa8180703f2280738d13335cb9665b348 Mon Sep 17 00:00:00 2001 From: nathan Date: Thu, 3 Jul 2025 15:34:28 -0600 Subject: first commit --- src/Makefile | 17 +++++++++++++++++ src/game.c | 25 +++++++++++++++++++++++++ src/game.h | 15 +++++++++++++++ src/implement.c | 4 ++++ src/main.c | 15 +++++++++++++++ src/settings.c | 9 +++++++++ src/settings.h | 14 ++++++++++++++ src/utils.c | 2 ++ src/utils.h | 30 ++++++++++++++++++++++++++++++ 9 files changed, 131 insertions(+) create mode 100644 src/Makefile create mode 100644 src/game.c create mode 100644 src/game.h create mode 100644 src/implement.c create mode 100644 src/main.c create mode 100644 src/settings.c create mode 100644 src/settings.h create mode 100644 src/utils.c create mode 100644 src/utils.h (limited to 'src') diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..b0b0677 --- /dev/null +++ b/src/Makefile @@ -0,0 +1,17 @@ +CFLAGS = -Isrc -I../include -std=gnu99 +LDFLAGS = -lm -lraylib + +TARGET = FindThings +SOURCES = $(shell find -name "*.c") +OBJECTS = $(SOURCES:.c=.o) + +%.o: %.c + $(CC) -c $(CFLAGS) -o $@ $< +$(TARGET): $(OBJECTS) + $(CC) $(CFLAGS) -o $(TARGET) $(OBJECTS) $(LDFLAGS) + +.PHONY: clean +clean: + rm *.o + rm $(TARGET) + diff --git a/src/game.c b/src/game.c new file mode 100644 index 0000000..807220c --- /dev/null +++ b/src/game.c @@ -0,0 +1,25 @@ +#include "game.h" +#include "utils.h" + +void initGame(Game* game) +{ + // Settings. + game->settings = defaultSettings(); + + // Window. + InitWindow(game->settings.windowWidth, game->settings.windowHeight, + "Find Things"); +} + +void updateGame(Game* game) +{ + BeginDrawing(); + ClearBackground(RAYWHITE); + + EndDrawing(); +} + +void closeGame(Game* game) +{ + CloseWindow(); +} diff --git a/src/game.h b/src/game.h new file mode 100644 index 0000000..bc0fc8c --- /dev/null +++ b/src/game.h @@ -0,0 +1,15 @@ +#include "utils.h" +#include "settings.h" + +#ifndef GAME_H +#define GAME_H + +typedef struct Game { + Settings settings; +} Game; + +void initGame(Game* game); +void updateGame(Game* game); +void closeGame(Game* game); + +#endif diff --git a/src/implement.c b/src/implement.c new file mode 100644 index 0000000..be0ea1a --- /dev/null +++ b/src/implement.c @@ -0,0 +1,4 @@ +#include + +#define RAYGUI_IMPLEMENTATION +#include "raygui.h" diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..9cc6f5e --- /dev/null +++ b/src/main.c @@ -0,0 +1,15 @@ +#include "game.h" + +int main (int argc, char** argv) +{ + Game game; + initGame(&game); + + while (!WindowShouldClose()) + { + updateGame(&game); + } + + closeGame(&game); + return 0; +} diff --git a/src/settings.c b/src/settings.c new file mode 100644 index 0000000..26aad2f --- /dev/null +++ b/src/settings.c @@ -0,0 +1,9 @@ +#include "settings.h" + +Settings defaultSettings() +{ + return (Settings){ + .windowWidth = 960, + .windowHeight = 720 + }; +} diff --git a/src/settings.h b/src/settings.h new file mode 100644 index 0000000..2d2c4f4 --- /dev/null +++ b/src/settings.h @@ -0,0 +1,14 @@ +#include "utils.h" + +#ifndef SETTINGS_H +#define SETTINGS_H + +typedef struct Settings { + // Window. + int windowWidth; + int windowHeight; +} Settings; + +Settings defaultSettings(); + +#endif diff --git a/src/utils.c b/src/utils.c new file mode 100644 index 0000000..2916c30 --- /dev/null +++ b/src/utils.c @@ -0,0 +1,2 @@ +#include "utils.h" + diff --git a/src/utils.h b/src/utils.h new file mode 100644 index 0000000..e3b52ed --- /dev/null +++ b/src/utils.h @@ -0,0 +1,30 @@ +#include +#include +#include + +#include +#include "raylib.h" + +#ifndef UTIL_H +#define UTIL_H + +#define FT_NAMEMAX 256 + +// Memory management. +#define FT_MALLOC(size) malloc(size) +#define FT_CALLOC(nmemb, size) calloc(nmemb, size) +#define FT_REALLOC(ptr, size) realloc(ptr, size) +#define FT_REALLOCARRAY(ptr, nmemb, size) reallocarray(ptr, nmemb, size) +//#define FT_REALLOCARRAY(ptr, nmemb, size) realloc(ptr, nmemb * size) +#define FT_FREE(ptr) free(ptr) + +// Errors. +#define ALLOCATION_ERROR TraceLog(LOG_ERROR, "Allocation error in %s:%d", \ + __FILE__, __LINE__); + +typedef enum FTError { + FTERROR = -1, + FTSUCCESS = 0 +} FTError; + +#endif -- cgit v1.2.3