#include "utils.h" #include "entity.h" #include "world.h" #ifndef UI_H #define UI_H #define INTERACTION_COLUMN_MAX 80 typedef char InteractionItems[INTERACTION_MENU_MAX][INTERACTION_LABEL_MAX]; typedef struct { char text[INTERACTION_CHAT_MAX]; char displayedText[INTERACTION_CHAT_MAX]; size_t textSize; int displayUpTo; // Used for cool animation. double lastCharacterUpdate; Rectangle rect; bool visible; EntityId entityId; } InteractionChat; typedef struct { InteractionItems items; int itemCount; Rectangle rect; bool visible; EntityId entityId; } InteractionMenu; // Interaction chat procedures. void initInteractionChat(InteractionChat* chat, const Settings* settings); void showInteractionChat(InteractionChat* chat); void hideInteractionChat(InteractionChat* chat); void setInteractionChat(InteractionChat* chat, const char* text); void writeToInteractionChat(InteractionChat* chat, const char* text); void clearInteractionChat(InteractionChat* chat); bool isInteractionChatAnimationDone(InteractionChat* chat); void endInteractionChatAnimation(InteractionChat* chat); void updateInteractionChat(InteractionChat* chat, Game* game); // Interaction menu procedures. void initInteractionMenu(InteractionMenu* menu, const Settings* settings); void setInteractionMenu(InteractionMenu* menu, const InteractionItems items, int itemCount); void resetInteractionMenu(InteractionMenu* menu); void showInteractionMenu(InteractionMenu* menu); void hideInteractionMenu(InteractionMenu* menu); void updateInteractionMenu(InteractionMenu* menu, Game* game); #endif