From 2769ba6929b8aff2eadbb6c2e66ef4db25332e9b Mon Sep 17 00:00:00 2001 From: nathan Date: Wed, 5 Nov 2025 04:04:07 -0700 Subject: Lazyyyyy --- src/game.c | 10 ++++++++++ src/game.h | 5 ++++- src/messageArea.c | 15 +++++++++++++++ src/messageArea.h | 16 ++++++++++++++++ src/utils.c | 13 +++++++++++-- src/utils.h | 16 ++++++++++++++++ 6 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 src/messageArea.c create mode 100644 src/messageArea.h diff --git a/src/game.c b/src/game.c index e3f032c..878d45b 100644 --- a/src/game.c +++ b/src/game.c @@ -82,6 +82,9 @@ void initGame(Game* game) game->player.position = Vector3Scale(game->world.size, 0.5); disableGameCursor(game); + + // Message area. + initMessageArea(&game->messageArea); } void updateMainMenuScene(Game* game) @@ -122,6 +125,11 @@ void drawGameScreen(Game* game) } } +void updateGameUI(Game* game) +{ + updateMessageArea(&game->messageArea, game); +} + void updateGameScene(Game* game) { // Handle toggle cursor. @@ -157,6 +165,8 @@ void updateGameScene(Game* game) ClearBackground(BLACK); drawGameScreen(game); + + updateGameUI(game); } void handleGameResize(Game* game) diff --git a/src/game.h b/src/game.h index 612cfb1..5a0f4e8 100644 --- a/src/game.h +++ b/src/game.h @@ -4,6 +4,7 @@ #include "player.h" #include "world.h" #include "entity.h" +#include "messageArea.h" #ifndef GAME_H #define GAME_H @@ -17,12 +18,14 @@ typedef enum { } SceneId; struct Game { - SceneId sceneId; Settings settings; Assets assets; Player player; World world; Model skybox; + MessageArea messageArea; + + SceneId sceneId; bool isCursorEnabled; struct { diff --git a/src/messageArea.c b/src/messageArea.c new file mode 100644 index 0000000..bf2c70d --- /dev/null +++ b/src/messageArea.c @@ -0,0 +1,15 @@ +#include "messageArea.h" + +void initMessageArea(MessageArea* messageArea) +{ + memset(messageArea->text, 0, sizeof(char) * MESSAGE_AREA_MAX); + memcpy(messageArea->text, "meowmeowmeowmeowmeowmeowmeowmeowmweowiwiweioo", sizeof("meowmeowmeowmeowmeowmeowmeowmeowmweowiwiweioo")); + messageArea->bounds = (Rectangle){100.0, 100.0, 100.0, 100.0}; +} + +void updateMessageArea(MessageArea* messageArea, Game* game) +{ + DrawRectangleRec(messageArea->bounds, + GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); + GuiLabel(messageArea->bounds, messageArea->text); +} diff --git a/src/messageArea.h b/src/messageArea.h new file mode 100644 index 0000000..ec34452 --- /dev/null +++ b/src/messageArea.h @@ -0,0 +1,16 @@ +#include "utils.h" + +#ifndef MESSAGE_AREA_H +#define MESSAGE_AREA_H + +#define MESSAGE_AREA_MAX 255 + +typedef struct { + char text[MESSAGE_AREA_MAX]; + Rectangle bounds; +} MessageArea; + +void initMessageArea(MessageArea* messageArea); +void updateMessageArea(MessageArea* messageArea, Game* game); + +#endif diff --git a/src/utils.c b/src/utils.c index e49623c..e8e99cf 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,7 +1,5 @@ #include "utils.h" -#define RANDOM_DIRECTION_UNITS 4096 - Vector2 randomDirection2(int seed, int* nextSeed) { Vector2 direction; @@ -36,4 +34,15 @@ Vector3 randomDirection3(int seed, int* nextSeed) return Vector3Normalize(direction); } +void updateFloatWindow(FloatingWindow* window, const char* title) +{ +#ifndef RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT +#define RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT 24 +#endif + +#ifndef RAYGUI_WINDOW_CLOSEBUTTON_SIZE +#define RAYGUI_WINDOW_CLOSEBUTTON_SIZE 18 +#endif +} + // Why does the universe feel strange to exist in? diff --git a/src/utils.h b/src/utils.h index 0353dbe..8fb2282 100644 --- a/src/utils.h +++ b/src/utils.h @@ -54,6 +54,10 @@ #define PRINT_VECTOR2(v) printf("%f %f\n", v.x, v.y) #define PRINT_VECTOR3(v) printf("%f %f %f\n", v.x, v.y, v.z) +#define RANDOM_DIRECTION_UNITS 4096 + +typedef void (*DrawWindowContentCallback)(Rectangle rect); + // Typedef hackery. typedef struct Game Game; typedef struct World World; @@ -63,7 +67,19 @@ typedef enum FTError { FTSUCCESS = 0 } FTError; +typedef struct { + Rectangle rect; + bool minimized; + bool moving; + bool resizing; + DrawWindowContentCallback callback; + Vector2 contentSize; + Vector2 scroll; +} FloatingWindow; + Vector2 randomDirection2(int seed, int* nextSeed); Vector3 randomDirection3(int seed, int* nextSeed); +void updateFloatWindow(FloatingWindow* window, const char* title); + #endif -- cgit v1.2.3