diff options
Diffstat (limited to 'src/ui.c')
| -rw-r--r-- | src/ui.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/ui.c b/src/ui.c new file mode 100644 index 0000000..a250b01 --- /dev/null +++ b/src/ui.c @@ -0,0 +1,68 @@ +#include "ui.h" +#include "game.h" +#include "settings.h" + +// TODO: byebye magic numbers + +void resizeInteractionChat(InteractionChat* chat) +{ + float renderWidth = GetRenderWidth(); + float renderHeight = GetRenderHeight(); + float height = 200.0; + + chat->rect = (Rectangle){ + 0.0, + renderHeight - height, + renderWidth, + height + }; +} + +void initInteractionChat(InteractionChat* chat) +{ + memset(&chat->text, 0, INTERACTION_CHAT_MAX * sizeof(char)); + chat->visible = true; + + resizeInteractionChat(chat); + writeToInteractionChat(chat, "test test test test test\ntest test test test test test test test"); +} + +void showInteractionChat(InteractionChat* chat) +{ + chat->visible = true; +} + +void hideInteractionChat(InteractionChat* chat) +{ + chat->visible = false; +} + +void writeToInteractionChat(InteractionChat* chat, const char* text) +{ + strncat(chat->text, text, INTERACTION_CHAT_MAX * sizeof(char) - 1); +} + +void clearInteractionChat(InteractionChat* chat) +{ + memset(&chat->text, 0, INTERACTION_CHAT_MAX * sizeof(char)); +} + +void updateInteractionChat(InteractionChat* chat, Game* game) +{ + if (IsWindowResized()) + { + resizeInteractionChat(chat); + } + + if (!chat->visible) + { + return; + } + + Color background = DARKGRAY; + background.a = game->settings.interactionChatAlpha; + DrawRectangleRec(chat->rect, background); + + DrawRectangleLinesEx(chat->rect, 2.0, BLACK); + DrawText(chat->text, chat->rect.x + 3.0, chat->rect.y + 3.0, 20, GREEN); +} |
