aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui.c
diff options
context:
space:
mode:
authornathan <nathansmith@disroot.org>2025-12-18 10:23:19 +0000
committernathan <nathansmith@disroot.org>2025-12-18 10:23:19 +0000
commitbcdd09d5075c9755538a93db8e3ca2690a803cc1 (patch)
tree25a9e2e307bcc7d0908a81f7de6f365ab9230ff1 /src/ui.c
parentedaafadf2c5de7f23dfc20d420e973ed9dc92039 (diff)
downloadFindThings-bcdd09d5075c9755538a93db8e3ca2690a803cc1.tar.gz
FindThings-bcdd09d5075c9755538a93db8e3ca2690a803cc1.tar.bz2
FindThings-bcdd09d5075c9755538a93db8e3ca2690a803cc1.zip
Finally getting interaction stuff done
Diffstat (limited to 'src/ui.c')
-rw-r--r--src/ui.c44
1 files changed, 33 insertions, 11 deletions
diff --git a/src/ui.c b/src/ui.c
index a250b01..ae9341f 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -2,13 +2,11 @@
#include "game.h"
#include "settings.h"
-// TODO: byebye magic numbers
-
-void resizeInteractionChat(InteractionChat* chat)
+void resizeInteractionChat(InteractionChat* chat, const Settings* settings)
{
float renderWidth = GetRenderWidth();
float renderHeight = GetRenderHeight();
- float height = 200.0;
+ float height = settings->interactionChatHeight;
chat->rect = (Rectangle){
0.0,
@@ -18,13 +16,13 @@ void resizeInteractionChat(InteractionChat* chat)
};
}
-void initInteractionChat(InteractionChat* chat)
+void initInteractionChat(InteractionChat* chat, const Settings* settings)
{
memset(&chat->text, 0, INTERACTION_CHAT_MAX * sizeof(char));
- chat->visible = true;
+ chat->visible = false;
+ chat->entityId = ENTITY_NONE;
- resizeInteractionChat(chat);
- writeToInteractionChat(chat, "test test test test test\ntest test test test test test test test");
+ resizeInteractionChat(chat, settings);
}
void showInteractionChat(InteractionChat* chat)
@@ -51,7 +49,7 @@ void updateInteractionChat(InteractionChat* chat, Game* game)
{
if (IsWindowResized())
{
- resizeInteractionChat(chat);
+ resizeInteractionChat(chat, &game->settings);
}
if (!chat->visible)
@@ -62,7 +60,31 @@ void updateInteractionChat(InteractionChat* chat, Game* game)
Color background = DARKGRAY;
background.a = game->settings.interactionChatAlpha;
DrawRectangleRec(chat->rect, background);
+
+ float lineThickness = 2.0;
+ float border = 3.0;
+ int fontSize = game->settings.interactionChatFontSize;
- DrawRectangleLinesEx(chat->rect, 2.0, BLACK);
- DrawText(chat->text, chat->rect.x + 3.0, chat->rect.y + 3.0, 20, GREEN);
+ DrawRectangleLinesEx(chat->rect, lineThickness, BLACK);
+
+ if (chat->entityId != ENTITY_NONE)
+ {
+ DrawText(TextFormat("%s says:", getEntityName(chat->entityId)),
+ chat->rect.x + border,
+ chat->rect.y + border,
+ fontSize,
+ WHITE);
+ }
+
+ DrawText(chat->text,
+ chat->rect.x + border,
+ chat->rect.y + (border * 2.0) + fontSize,
+ fontSize,
+ GREEN);
+
+ DrawText("Hit enter to continue...",
+ chat->rect.x + border,
+ chat->rect.y + chat->rect.height - fontSize - border,
+ fontSize,
+ WHITE);
}