aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/game.c10
-rw-r--r--src/game.h5
-rw-r--r--src/messageArea.c15
-rw-r--r--src/messageArea.h16
-rw-r--r--src/utils.c13
-rw-r--r--src/utils.h16
6 files changed, 72 insertions, 3 deletions
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