diff --git a/lang/Czech.ini b/lang/Czech.ini index 69ec4a118..8fdf9be3e 100644 --- a/lang/Czech.ini +++ b/lang/Czech.ini @@ -348,7 +348,7 @@ CHAT_SIZE_VERY_HUGE = "Obří" CHAT_SIZE_MAXIMUM = "Maximum" CHAT_TEXT_SCALE = "Velikost textu chatu" CHAT_OPACITY = "Průhlednost chatu" -CHAT_LIFETIME = "Doba zobrazení zpráv (s)" +CHAT_LIFETIME = "Doba zobrazení zpráv" CHAT_CHAR_COUNTER = "Zobrazit počitadlo znaků chatu" DISABLE_CHAT_WHEN_CLOSED = "Skrýt chat, když je zavřený" diff --git a/lang/Dutch.ini b/lang/Dutch.ini index 022337dad..7840f14a9 100644 --- a/lang/Dutch.ini +++ b/lang/Dutch.ini @@ -348,7 +348,7 @@ CHAT_SIZE_VERY_HUGE = "Gigantisch" CHAT_SIZE_MAXIMUM = "Maximum" CHAT_TEXT_SCALE = "Chat-tekstgrootte" CHAT_OPACITY = "Chat-transparantie" -CHAT_LIFETIME = "Weergaveduur berichten (s)" +CHAT_LIFETIME = "Weergaveduur berichten" CHAT_CHAR_COUNTER = "Chat-tekensteller weergeven" DISABLE_CHAT_WHEN_CLOSED = "Chat verbergen wanneer gesloten" diff --git a/lang/English.ini b/lang/English.ini index f1cbe101f..28febb944 100644 --- a/lang/English.ini +++ b/lang/English.ini @@ -347,7 +347,7 @@ CHAT_SIZE_VERY_HUGE = "Very Huge" CHAT_SIZE_MAXIMUM = "Maximum" CHAT_TEXT_SCALE = "Chat Text Size" CHAT_OPACITY = "Chat Opacity" -CHAT_LIFETIME = "Chat Message Lifetime (s)" +CHAT_LIFETIME = "Chat Message Lifetime" CHAT_CHAR_COUNTER = "Show Chat Character Counter" DISABLE_CHAT_WHEN_CLOSED = "Hide Chat When Closed" diff --git a/lang/French.ini b/lang/French.ini index efa035a08..9294f702f 100644 --- a/lang/French.ini +++ b/lang/French.ini @@ -348,7 +348,7 @@ CHAT_SIZE_VERY_HUGE = "Gigantesque" CHAT_SIZE_MAXIMUM = "Maximum" CHAT_TEXT_SCALE = "Taille du texte du chat" CHAT_OPACITY = "Opacité du chat" -CHAT_LIFETIME = "Durée d'affichage des messages (s)" +CHAT_LIFETIME = "Durée d'affichage des messages" CHAT_CHAR_COUNTER = "Afficher le compteur de caractères du chat" DISABLE_CHAT_WHEN_CLOSED = "Masquer le chat lorsqu'il est fermé" diff --git a/lang/German.ini b/lang/German.ini index 497090412..fcae9224e 100644 --- a/lang/German.ini +++ b/lang/German.ini @@ -348,7 +348,7 @@ CHAT_SIZE_VERY_HUGE = "Gigantisch" CHAT_SIZE_MAXIMUM = "Maximal" CHAT_TEXT_SCALE = "Chat-Textgröße" CHAT_OPACITY = "Chat-Transparenz" -CHAT_LIFETIME = "Chat-Anzeigedauer (s)" +CHAT_LIFETIME = "Chat-Anzeigedauer" CHAT_CHAR_COUNTER = "Chat-Zeichenzähler anzeigen" DISABLE_CHAT_WHEN_CLOSED = "Verstecke Chat wenn geschlossen" diff --git a/lang/Italian.ini b/lang/Italian.ini index 5be987254..3142804a3 100644 --- a/lang/Italian.ini +++ b/lang/Italian.ini @@ -346,7 +346,7 @@ CHAT_SIZE_VERY_HUGE = "Enormissima" CHAT_SIZE_MAXIMUM = "Massimo" CHAT_TEXT_SCALE = "Dimensione testo chat" CHAT_OPACITY = "Opacità chat" -CHAT_LIFETIME = "Durata messaggi chat (s)" +CHAT_LIFETIME = "Durata messaggi chat" CHAT_CHAR_COUNTER = "Mostra contatore caratteri della chat" DISABLE_CHAT_WHEN_CLOSED = "Nascondi chat quando è chiusa" diff --git a/lang/Japanese.ini b/lang/Japanese.ini index 624294d24..7f81a0adf 100644 --- a/lang/Japanese.ini +++ b/lang/Japanese.ini @@ -349,7 +349,7 @@ CHAT_SIZE_VERY_HUGE = "超巨大" CHAT_SIZE_MAXIMUM = "最大" CHAT_TEXT_SCALE = "チャット文字サイズ" CHAT_OPACITY = "チャットの不透明度" -CHAT_LIFETIME = "メッセージ表示時間 (秒)" +CHAT_LIFETIME = "メッセージ表示時間" CHAT_CHAR_COUNTER = "チャットの文字数カウンターを表示" DISABLE_CHAT_WHEN_CLOSED = "閉じているときはチャットを隠す" diff --git a/lang/Polish.ini b/lang/Polish.ini index c4205f56b..85c8399c7 100644 --- a/lang/Polish.ini +++ b/lang/Polish.ini @@ -348,7 +348,7 @@ CHAT_SIZE_VERY_HUGE = "Olbrzymia" CHAT_SIZE_MAXIMUM = "Maksimum" CHAT_TEXT_SCALE = "Rozmiar tekstu czatu" CHAT_OPACITY = "Przezroczystość czatu" -CHAT_LIFETIME = "Czas wyświetlania wiadomości (s)" +CHAT_LIFETIME = "Czas wyświetlania wiadomości" CHAT_CHAR_COUNTER = "Pokaż licznik znaków czatu" DISABLE_CHAT_WHEN_CLOSED = "Ukryj czat, gdy jest zamknięty" diff --git a/lang/Portuguese.ini b/lang/Portuguese.ini index 7563f6f3c..d49f73e47 100644 --- a/lang/Portuguese.ini +++ b/lang/Portuguese.ini @@ -348,7 +348,7 @@ CHAT_SIZE_VERY_HUGE = "Enorme demais" CHAT_SIZE_MAXIMUM = "Máximo" CHAT_TEXT_SCALE = "Tamanho do texto do chat" CHAT_OPACITY = "Opacidade do chat" -CHAT_LIFETIME = "Duração da mensagem do chat (s)" +CHAT_LIFETIME = "Duração da mensagem do chat" CHAT_CHAR_COUNTER = "Mostrar contador de caracteres do chat" DISABLE_CHAT_WHEN_CLOSED = "Ocultar chat quando fechado" diff --git a/lang/Russian.ini b/lang/Russian.ini index 2bc8f5ca4..449623478 100644 --- a/lang/Russian.ini +++ b/lang/Russian.ini @@ -346,7 +346,7 @@ CHAT_SIZE_VERY_HUGE = "Гигантская" CHAT_SIZE_MAXIMUM = "Максимум" CHAT_TEXT_SCALE = "Размер текста чата" CHAT_OPACITY = "Прозрачность чата" -CHAT_LIFETIME = "Время показа сообщений (с)" +CHAT_LIFETIME = "Время показа сообщений" CHAT_CHAR_COUNTER = "Показывать счётчик символов чата" DISABLE_CHAT_WHEN_CLOSED = "Скрывать чат, когда он закрыт" diff --git a/lang/Spanish.ini b/lang/Spanish.ini index 0039007cc..24304e6eb 100644 --- a/lang/Spanish.ini +++ b/lang/Spanish.ini @@ -348,7 +348,7 @@ CHAT_SIZE_VERY_HUGE = "Enorme+" CHAT_SIZE_MAXIMUM = "Máximo" CHAT_TEXT_SCALE = "Tamaño de texto del chat" CHAT_OPACITY = "Opacidad del chat" -CHAT_LIFETIME = "Duración del mensaje de chat (s)" +CHAT_LIFETIME = "Duración del mensaje de chat" CHAT_CHAR_COUNTER = "Mostrar contador de caracteres del chat" DISABLE_CHAT_WHEN_CLOSED = "Ocultar chat cuando esté cerrado" diff --git a/src/pc/djui/djui_chat_message.c b/src/pc/djui/djui_chat_message.c index 479a76cb3..f6a7ee665 100644 --- a/src/pc/djui/djui_chat_message.c +++ b/src/pc/djui/djui_chat_message.c @@ -17,8 +17,8 @@ static bool djui_chat_message_render(struct DjuiBase* base) { struct DjuiBase* ctBase = &chatMessage->message->base; f32 lifeTime = (f32)configChatMessageLifetime; - if (lifeTime < 3.0f) lifeTime = 3.0f; - if (lifeTime > 60.0f) lifeTime = 60.0f; + if (lifeTime < 1.0f) lifeTime = 1.0f; + if (lifeTime > 120.0f) lifeTime = 120.0f; f32 seconds = clock_elapsed() - chatMessage->createTime; f32 f = 1.0f; diff --git a/src/pc/djui/djui_panel_chat.c b/src/pc/djui/djui_panel_chat.c index 17f262a32..e2aa5ef90 100644 --- a/src/pc/djui/djui_panel_chat.c +++ b/src/pc/djui/djui_panel_chat.c @@ -4,6 +4,54 @@ #include "pc/utils/misc.h" #include "pc/configfile.h" +static struct DjuiText* sChatTextScaleLabel = NULL; +static struct DjuiText* sChatOpacityLabel = NULL; +static struct DjuiText* sChatLifetimeLabel = NULL; + +static void djui_panel_chat_update_value_labels(void) { + if (sChatTextScaleLabel != NULL) { + char buf[16]; + snprintf(buf, sizeof(buf), "%u%%", configChatTextScale); + djui_text_set_text(sChatTextScaleLabel, buf); + struct DjuiBase* base = &sChatTextScaleLabel->base; + if (configChatTextScale < 100) { + djui_base_set_color(base, 64, 64, 255, 255); + } else if (configChatTextScale == 100) { + djui_base_set_color(base, 48, 224, 48, 255); + } else { + djui_base_set_color(base, 255, 64, 64, 255); + } + } + + if (sChatOpacityLabel != NULL) { + char buf[16]; + snprintf(buf, sizeof(buf), "%u%%", configChatOpacity); + djui_text_set_text(sChatOpacityLabel, buf); + struct DjuiBase* base = &sChatOpacityLabel->base; + if (configChatOpacity < 70) { + djui_base_set_color(base, 64, 64, 255, 255); + } else if (configChatOpacity == 70) { + djui_base_set_color(base, 48, 224, 48, 255); + } else { + djui_base_set_color(base, 255, 64, 64, 255); + } + } + + if (sChatLifetimeLabel != NULL) { + char buf[16]; + snprintf(buf, sizeof(buf), "%us", configChatMessageLifetime); + djui_text_set_text(sChatLifetimeLabel, buf); + struct DjuiBase* base = &sChatLifetimeLabel->base; + if (configChatMessageLifetime < 10) { + djui_base_set_color(base, 64, 64, 255, 255); + } else if (configChatMessageLifetime == 10) { + djui_base_set_color(base, 64, 255, 64, 255); + } else { + djui_base_set_color(base, 255, 64, 64, 255); + } + } +} + void djui_panel_chat_create(struct DjuiBase* caller) { struct DjuiThreePanel* panel = djui_panel_menu_create(DLANG(CHAT_OPTIONS, CHAT), false); struct DjuiBase* body = djui_three_panel_get_body(panel); @@ -91,11 +139,38 @@ void djui_panel_chat_create(struct DjuiBase* caller) { } djui_base_set_color(&gDjuiChatBox->chatFlow->base, 0, 0, 0, alpha); } + djui_panel_chat_update_value_labels(); + } + void on_chat_lifetime_change(UNUSED struct DjuiBase* b) { + djui_panel_chat_update_value_labels(); } - djui_slider_create(body, DLANG(CHAT_OPTIONS, CHAT_TEXT_SCALE), &configChatTextScale, 50, 150, on_chat_style_change); - djui_slider_create(body, DLANG(CHAT_OPTIONS, CHAT_OPACITY), &configChatOpacity, 0, 100, on_chat_style_change); - djui_slider_create(body, DLANG(CHAT_OPTIONS, CHAT_LIFETIME), &configChatMessageLifetime, 3, 60, NULL); + struct DjuiSlider* sliderTextScale = djui_slider_create(body, DLANG(CHAT_OPTIONS, CHAT_TEXT_SCALE), &configChatTextScale, 50, 150, on_chat_style_change); + struct DjuiSlider* sliderOpacity = djui_slider_create(body, DLANG(CHAT_OPTIONS, CHAT_OPACITY), &configChatOpacity, 0, 100, on_chat_style_change); + struct DjuiSlider* sliderLifetime = djui_slider_create(body, DLANG(CHAT_OPTIONS, CHAT_LIFETIME), &configChatMessageLifetime, 1, 120, on_chat_lifetime_change); + + sChatTextScaleLabel = djui_text_create(&sliderTextScale->rect->base, ""); + djui_base_set_alignment(&sChatTextScaleLabel->base, DJUI_HALIGN_CENTER, DJUI_VALIGN_CENTER); + djui_base_set_size_type(&sChatTextScaleLabel->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE); + djui_base_set_size(&sChatTextScaleLabel->base, 1.0f, 1.0f); + djui_text_set_alignment(sChatTextScaleLabel, DJUI_HALIGN_CENTER, DJUI_VALIGN_CENTER); + djui_text_set_drop_shadow(sChatTextScaleLabel, 64, 64, 64, 100); + + sChatOpacityLabel = djui_text_create(&sliderOpacity->rect->base, ""); + djui_base_set_alignment(&sChatOpacityLabel->base, DJUI_HALIGN_CENTER, DJUI_VALIGN_CENTER); + djui_base_set_size_type(&sChatOpacityLabel->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE); + djui_base_set_size(&sChatOpacityLabel->base, 1.0f, 1.0f); + djui_text_set_alignment(sChatOpacityLabel, DJUI_HALIGN_CENTER, DJUI_VALIGN_CENTER); + djui_text_set_drop_shadow(sChatOpacityLabel, 64, 64, 64, 100); + + sChatLifetimeLabel = djui_text_create(&sliderLifetime->rect->base, ""); + djui_base_set_alignment(&sChatLifetimeLabel->base, DJUI_HALIGN_CENTER, DJUI_VALIGN_CENTER); + djui_base_set_size_type(&sChatLifetimeLabel->base, DJUI_SVT_RELATIVE, DJUI_SVT_RELATIVE); + djui_base_set_size(&sChatLifetimeLabel->base, 1.0f, 1.0f); + djui_text_set_alignment(sChatLifetimeLabel, DJUI_HALIGN_CENTER, DJUI_VALIGN_CENTER); + djui_text_set_drop_shadow(sChatLifetimeLabel, 64, 64, 64, 100); + + djui_panel_chat_update_value_labels(); djui_button_create(body, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_menu_back); }