From 11db52cd096117914608e62b5cc3e33f5427f72a Mon Sep 17 00:00:00 2001 From: iZePlayz <69536095+iZePlayzYT@users.noreply.github.com> Date: Thu, 20 Nov 2025 22:10:40 +0100 Subject: [PATCH] added chat height setting --- lang/Czech.ini | 1 + lang/Dutch.ini | 1 + lang/English.ini | 1 + lang/French.ini | 1 + lang/German.ini | 1 + lang/Italian.ini | 1 + lang/Japanese.ini | 1 + lang/Polish.ini | 1 + lang/Portuguese.ini | 1 + lang/Russian.ini | 1 + lang/Spanish.ini | 1 + src/pc/configfile.c | 2 ++ src/pc/configfile.h | 1 + src/pc/djui/djui_chat_box.c | 2 +- src/pc/djui/djui_panel_chat.c | 27 ++++++++++++++++++++++++--- 15 files changed, 39 insertions(+), 4 deletions(-) diff --git a/lang/Czech.ini b/lang/Czech.ini index bc054f3e5..575809668 100644 --- a/lang/Czech.ini +++ b/lang/Czech.ini @@ -333,6 +333,7 @@ L_BUTTON = "Tlačítko L - Znovu načíst aktivní mody" [CHAT_OPTIONS] USE_STANDARD_KEY_BINDINGS_CHAT = "Použít ovládání chatu Terminal/CMD" CHAT_WIDTH = "Šířka chatu" +CHAT_HEIGHT = "Výška chatu" CHAT_SIZE_TINY = "Drobná" CHAT_SIZE_VERY_SMALL = "Velmi malá" CHAT_SIZE_SMALL = "Malá" diff --git a/lang/Dutch.ini b/lang/Dutch.ini index b67324f3e..f8102a025 100644 --- a/lang/Dutch.ini +++ b/lang/Dutch.ini @@ -333,6 +333,7 @@ L_BUTTON = "L-knop - Actieve mods opnieuw laden" [CHAT_OPTIONS] USE_STANDARD_KEY_BINDINGS_CHAT = "Terminal/CMD Chatbox besturingen gebruiken" CHAT_WIDTH = "Chatbreedte" +CHAT_HEIGHT = "Chathoogte" CHAT_SIZE_TINY = "Zeer klein" CHAT_SIZE_VERY_SMALL = "Erg klein" CHAT_SIZE_SMALL = "Klein" diff --git a/lang/English.ini b/lang/English.ini index dda40313d..39522fd3d 100644 --- a/lang/English.ini +++ b/lang/English.ini @@ -333,6 +333,7 @@ L_BUTTON = "L Button - Reload Active Mods" [CHAT_OPTIONS] USE_STANDARD_KEY_BINDINGS_CHAT = "Use Terminal/CMD Chatbox Controls" CHAT_WIDTH = "Chat Width" +CHAT_HEIGHT = "Chat Height" CHAT_SIZE_TINY = "Tiny" CHAT_SIZE_VERY_SMALL = "Very Small" CHAT_SIZE_SMALL = "Small" diff --git a/lang/French.ini b/lang/French.ini index 721238ac1..1bc493986 100644 --- a/lang/French.ini +++ b/lang/French.ini @@ -333,6 +333,7 @@ L_BUTTON = "Bouton L - Recharger les mods actifs" [CHAT_OPTIONS] USE_STANDARD_KEY_BINDINGS_CHAT = "Utiliser les contrôles de chat Terminal/CMD" CHAT_WIDTH = "Largeur du chat" +CHAT_HEIGHT = "Hauteur du chat" CHAT_SIZE_TINY = "Minuscule" CHAT_SIZE_VERY_SMALL = "Très petite" CHAT_SIZE_SMALL = "Petite" diff --git a/lang/German.ini b/lang/German.ini index 43b11d89e..863764320 100644 --- a/lang/German.ini +++ b/lang/German.ini @@ -333,6 +333,7 @@ L_BUTTON = "L-Taste - Aktive Mods neu laden" [CHAT_OPTIONS] USE_STANDARD_KEY_BINDINGS_CHAT = "Terminal/CMD Chatbox-Steuerung verwenden" CHAT_WIDTH = "Chatbreite" +CHAT_HEIGHT = "Chathöhe" CHAT_SIZE_TINY = "Winzig" CHAT_SIZE_VERY_SMALL = "Sehr klein" CHAT_SIZE_SMALL = "Klein" diff --git a/lang/Italian.ini b/lang/Italian.ini index 4e591e293..1b83a37b5 100644 --- a/lang/Italian.ini +++ b/lang/Italian.ini @@ -331,6 +331,7 @@ L_BUTTON = "Pulsante L - Ricarica Mod Attive" [CHAT_OPTIONS] USE_STANDARD_KEY_BINDINGS_CHAT = "Usa controlli chat Terminale/CMD" CHAT_WIDTH = "Larghezza chat" +CHAT_HEIGHT = "Altezza chat" CHAT_SIZE_TINY = "Minuscola" CHAT_SIZE_VERY_SMALL = "Molto piccola" CHAT_SIZE_SMALL = "Piccola" diff --git a/lang/Japanese.ini b/lang/Japanese.ini index e12694a6b..87652bf27 100644 --- a/lang/Japanese.ini +++ b/lang/Japanese.ini @@ -334,6 +334,7 @@ L_BUTTON = "Lボタン - アクティブなMODを再読み込み" [CHAT_OPTIONS] USE_STANDARD_KEY_BINDINGS_CHAT = "ターミナル/CMDチャットボックスコントロールを使用" CHAT_WIDTH = "チャット幅" +CHAT_HEIGHT = "チャットの高さ" CHAT_SIZE_TINY = "とても小さい" CHAT_SIZE_VERY_SMALL = "かなり小さい" CHAT_SIZE_SMALL = "小さい" diff --git a/lang/Polish.ini b/lang/Polish.ini index fcd055e9d..2ba5aa602 100644 --- a/lang/Polish.ini +++ b/lang/Polish.ini @@ -333,6 +333,7 @@ L_BUTTON = "Przycisk L - Przeładuj aktywne mody" [CHAT_OPTIONS] USE_STANDARD_KEY_BINDINGS_CHAT = "Użyj sterowania czatu Terminal/CMD" CHAT_WIDTH = "Szerokość czatu" +CHAT_HEIGHT = "Wysokość czatu" CHAT_SIZE_TINY = "Maleńka" CHAT_SIZE_VERY_SMALL = "Bardzo mała" CHAT_SIZE_SMALL = "Mała" diff --git a/lang/Portuguese.ini b/lang/Portuguese.ini index 1ea910d15..cebbe11ac 100644 --- a/lang/Portuguese.ini +++ b/lang/Portuguese.ini @@ -333,6 +333,7 @@ L_BUTTON = "Botão L - Recarregar mods ativos" [CHAT_OPTIONS] USE_STANDARD_KEY_BINDINGS_CHAT = "Usar controles de chat Terminal/CMD" CHAT_WIDTH = "Largura do chat" +CHAT_HEIGHT = "Altura do chat" CHAT_SIZE_TINY = "Minúsculo" CHAT_SIZE_VERY_SMALL = "Muito pequena" CHAT_SIZE_SMALL = "Pequena" diff --git a/lang/Russian.ini b/lang/Russian.ini index 2a711e3a0..c3bee8abc 100644 --- a/lang/Russian.ini +++ b/lang/Russian.ini @@ -332,6 +332,7 @@ L_BUTTON = "Кнопка L - Перезагрузить активные мод [CHAT_OPTIONS] USE_STANDARD_KEY_BINDINGS_CHAT = "Использовать управление чатом Terminal/CMD" CHAT_WIDTH = "Ширина чата" +CHAT_HEIGHT = "Высота чата" CHAT_SIZE_TINY = "Крошечная" CHAT_SIZE_VERY_SMALL = "Очень маленькая" CHAT_SIZE_SMALL = "Маленькая" diff --git a/lang/Spanish.ini b/lang/Spanish.ini index 0aa0191a2..13775924b 100644 --- a/lang/Spanish.ini +++ b/lang/Spanish.ini @@ -333,6 +333,7 @@ L_BUTTON = "Botón L - Recargar mods activos" [CHAT_OPTIONS] USE_STANDARD_KEY_BINDINGS_CHAT = "Usar controles de chat Terminal/CMD" CHAT_WIDTH = "Ancho del chat" +CHAT_HEIGHT = "Altura del chat" CHAT_SIZE_TINY = "Minúsculo" CHAT_SIZE_VERY_SMALL = "Muy pequeño" CHAT_SIZE_SMALL = "Pequeño" diff --git a/src/pc/configfile.c b/src/pc/configfile.c index 76e08e158..3d9de327d 100644 --- a/src/pc/configfile.c +++ b/src/pc/configfile.c @@ -136,6 +136,7 @@ bool configUseStandardKeyBindingsChat = true; bool configChatCharCounter = true; bool configDisableChatWhenClosed = false; unsigned int configChatWidth = 800; +unsigned int configChatHeight = 400; bool configSmoothScrolling = false; // free camera settings bool configEnableFreeCamera = false; @@ -283,6 +284,7 @@ static const struct ConfigOption options[] = { #endif {.name = "use_standard_key_bindings_chat", .type = CONFIG_TYPE_BOOL, .boolValue = &configUseStandardKeyBindingsChat}, {.name = "chat_width", .type = CONFIG_TYPE_UINT, .uintValue = &configChatWidth}, + {.name = "chat_height", .type = CONFIG_TYPE_UINT, .uintValue = &configChatHeight}, {.name = "chat_char_counter", .type = CONFIG_TYPE_BOOL, .boolValue = &configChatCharCounter}, {.name = "disable_chat_when_closed", .type = CONFIG_TYPE_BOOL, .boolValue = &configDisableChatWhenClosed}, {.name = "smooth_scrolling", .type = CONFIG_TYPE_BOOL, .boolValue = &configSmoothScrolling}, diff --git a/src/pc/configfile.h b/src/pc/configfile.h index 1048baea1..babeffede 100644 --- a/src/pc/configfile.h +++ b/src/pc/configfile.h @@ -99,6 +99,7 @@ extern bool configUseStandardKeyBindingsChat; extern bool configChatCharCounter; extern bool configDisableChatWhenClosed; extern unsigned int configChatWidth; +extern unsigned int configChatHeight; extern bool configSmoothScrolling; // free camera settings extern bool configEnableFreeCamera; diff --git a/src/pc/djui/djui_chat_box.c b/src/pc/djui/djui_chat_box.c index d02aca227..9dacb917d 100644 --- a/src/pc/djui/djui_chat_box.c +++ b/src/pc/djui/djui_chat_box.c @@ -645,7 +645,7 @@ struct DjuiChatBox* djui_chat_box_create(void) { djui_base_init(&gDjuiRoot->base, base, djui_chat_box_render, djui_chat_box_destroy); djui_base_set_size_type(base, DJUI_SVT_ABSOLUTE, DJUI_SVT_ABSOLUTE); - djui_base_set_size(base, configChatWidth, 400); + djui_base_set_size(base, configChatWidth, configChatHeight); djui_base_set_alignment(base, DJUI_HALIGN_LEFT, DJUI_VALIGN_BOTTOM); djui_base_set_color(base, 0, 0, 0, 0); djui_base_set_padding(base, 0, 8, 8, 8); diff --git a/src/pc/djui/djui_panel_chat.c b/src/pc/djui/djui_panel_chat.c index 80d09ce4f..2c045c760 100644 --- a/src/pc/djui/djui_panel_chat.c +++ b/src/pc/djui/djui_panel_chat.c @@ -25,7 +25,19 @@ void djui_panel_chat_create(struct DjuiBase* caller) { default: sChatWidthIndex = 3; break; } - char* chatWidthChoices[] = { + static unsigned int sChatHeightIndex = 3; + switch (configChatHeight) { + case 250: sChatHeightIndex = 0; break; + case 300: sChatHeightIndex = 1; break; + case 350: sChatHeightIndex = 2; break; + case 400: sChatHeightIndex = 3; break; + case 450: sChatHeightIndex = 4; break; + case 500: sChatHeightIndex = 5; break; + case 550: sChatHeightIndex = 6; break; + default: sChatHeightIndex = 3; break; + } + + char* chatSizeChoices[] = { DLANG(CHAT_OPTIONS, CHAT_SIZE_TINY), DLANG(CHAT_OPTIONS, CHAT_SIZE_VERY_SMALL), DLANG(CHAT_OPTIONS, CHAT_SIZE_SMALL), @@ -34,7 +46,7 @@ void djui_panel_chat_create(struct DjuiBase* caller) { DLANG(CHAT_OPTIONS, CHAT_SIZE_VERY_BIG), DLANG(CHAT_OPTIONS, CHAT_SIZE_HUGE) }; - void on_CHAT_SIZE_change(UNUSED struct DjuiBase* b) { + void on_chat_width_change(UNUSED struct DjuiBase* b) { unsigned int idx = sChatWidthIndex; unsigned int widths[] = { 500, 600, 700, 800, 900, 1000, 1100 }; configChatWidth = widths[idx]; @@ -42,7 +54,16 @@ void djui_panel_chat_create(struct DjuiBase* caller) { djui_base_set_size(&gDjuiChatBox->base, configChatWidth, gDjuiChatBox->base.height.value); } } - djui_selectionbox_create(body, DLANG(CHAT_OPTIONS, CHAT_WIDTH), chatWidthChoices, 7, &sChatWidthIndex, on_CHAT_SIZE_change); + void on_chat_height_change(UNUSED struct DjuiBase* b) { + unsigned int idx = sChatHeightIndex; + unsigned int heights[] = { 250, 300, 350, 400, 450, 500, 550 }; + configChatHeight = heights[idx]; + if (gDjuiChatBox != NULL) { + djui_base_set_size(&gDjuiChatBox->base, gDjuiChatBox->base.width.value, configChatHeight); + } + } + djui_selectionbox_create(body, DLANG(CHAT_OPTIONS, CHAT_WIDTH), chatSizeChoices, 7, &sChatWidthIndex, on_chat_width_change); + djui_selectionbox_create(body, DLANG(CHAT_OPTIONS, CHAT_HEIGHT), chatSizeChoices, 7, &sChatHeightIndex, on_chat_height_change); djui_button_create(body, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back); }