#include "ui.h" #include "game.h" #include "settings.h" void resizeInteractionChat(InteractionChat* chat, const Settings* settings) { float renderWidth = GetRenderWidth(); float renderHeight = GetRenderHeight(); float height = settings->interactionChatHeight; chat->rect = (Rectangle){ 0.0, renderHeight - height, renderWidth, height }; } void initInteractionChat(InteractionChat* chat, const Settings* settings) { memset(&chat->text, 0, INTERACTION_CHAT_MAX * sizeof(char)); chat->visible = false; chat->entityId = ENTITY_NONE; resizeInteractionChat(chat, settings); } 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, &game->settings); } if (!chat->visible) { return; } 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, 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); }