Added hide chat setting and clearified chat width setting

This commit is contained in:
iZePlayzYT 2025-09-28 07:15:56 +02:00
parent b2f029bea7
commit b0ebaeed63
16 changed files with 117 additions and 5 deletions

View file

@ -324,6 +324,15 @@ PAUSE_IN_SINGLEPLAYER = "Pauza v hře s jedním hráčem"
DISABLE_POPUPS = "Vypnout vyskakovací okna"
USE_STANDARD_KEY_BINDINGS_CHAT = "Použít ovládání chatu Terminal/CMD"
CHAT_WIDTH = "Šířka chatu"
CHAT_WIDTH_TINY = "Drobná"
CHAT_WIDTH_VERY_SMALL = "Velmi malá"
CHAT_WIDTH_SMALL = "Malá"
CHAT_WIDTH_NORMAL = "Normální"
CHAT_WIDTH_BIG = "Velká"
CHAT_WIDTH_VERY_BIG = "Velmi velká"
CHAT_WIDTH_HUGE = "Obrovská"
CHAT_CHAR_COUNTER = "Zobrazit počitadlo znaků chatu"
DISABLE_CHAT_WHEN_CLOSED = "Skrýt chat, když je zavřený"
MENU_OPTIONS = "Nastavení hlavního menu"
INFORMATION = "Informace"
DEBUG = "Debug"

View file

@ -324,6 +324,15 @@ PAUSE_IN_SINGLEPLAYER = "Pauzeer in een speler"
DISABLE_POPUPS = "Popups uitzetten"
USE_STANDARD_KEY_BINDINGS_CHAT = "Terminal/CMD Chatbox besturingen gebruiken"
CHAT_WIDTH = "Chatbreedte"
CHAT_WIDTH_TINY = "Zeer klein"
CHAT_WIDTH_VERY_SMALL = "Erg klein"
CHAT_WIDTH_SMALL = "Klein"
CHAT_WIDTH_NORMAL = "Normaal"
CHAT_WIDTH_BIG = "Groot"
CHAT_WIDTH_VERY_BIG = "Zeer groot"
CHAT_WIDTH_HUGE = "Enorm"
CHAT_CHAR_COUNTER = "Chat-tekensteller weergeven"
DISABLE_CHAT_WHEN_CLOSED = "Chat verbergen wanneer gesloten"
MENU_OPTIONS = "Menu Instellingen"
INFORMATION = "Informatie"
DEBUG = "Debug"

View file

@ -324,6 +324,15 @@ PAUSE_IN_SINGLEPLAYER = "Pause In Singleplayer"
DISABLE_POPUPS = "Disable Popups"
USE_STANDARD_KEY_BINDINGS_CHAT = "Use Terminal/CMD Chatbox Controls"
CHAT_WIDTH = "Chat Width"
CHAT_WIDTH_TINY = "Tiny"
CHAT_WIDTH_VERY_SMALL = "Very Small"
CHAT_WIDTH_SMALL = "Small"
CHAT_WIDTH_NORMAL = "Normal"
CHAT_WIDTH_BIG = "Big"
CHAT_WIDTH_VERY_BIG = "Very Big"
CHAT_WIDTH_HUGE = "Huge"
CHAT_CHAR_COUNTER = "Show Chat Character Counter"
DISABLE_CHAT_WHEN_CLOSED = "Hide Chat When Closed"
MENU_OPTIONS = "Menu Options"
INFORMATION = "Info"
DEBUG = "Debug"

View file

@ -324,6 +324,15 @@ PAUSE_IN_SINGLEPLAYER = "Pause en Solo"
DISABLE_POPUPS = "Désactiver les Pop-ups"
USE_STANDARD_KEY_BINDINGS_CHAT = "Utiliser les contrôles de chat Terminal/CMD"
CHAT_WIDTH = "Largeur du chat"
CHAT_WIDTH_TINY = "Minuscule"
CHAT_WIDTH_VERY_SMALL = "Très petite"
CHAT_WIDTH_SMALL = "Petite"
CHAT_WIDTH_NORMAL = "Normale"
CHAT_WIDTH_BIG = "Grande"
CHAT_WIDTH_VERY_BIG = "Très grande"
CHAT_WIDTH_HUGE = "Énorme"
CHAT_CHAR_COUNTER = "Afficher le compteur de caractères du chat"
DISABLE_CHAT_WHEN_CLOSED = "Masquer le chat lorsqu'il est fermé"
MENU_OPTIONS = "Options du menu"
INFORMATION = "Information"
DEBUG = "Débogage"

View file

@ -324,6 +324,15 @@ PAUSE_IN_SINGLEPLAYER = "Pause im Einzelspieler"
DISABLE_POPUPS = "Pop-ups deaktivieren"
USE_STANDARD_KEY_BINDINGS_CHAT = "Terminal/CMD Chatbox-Steuerung verwenden"
CHAT_WIDTH = "Chatbreite"
CHAT_WIDTH_TINY = "Winzig"
CHAT_WIDTH_VERY_SMALL = "Sehr klein"
CHAT_WIDTH_SMALL = "Klein"
CHAT_WIDTH_NORMAL = "Normal"
CHAT_WIDTH_BIG = "Groß"
CHAT_WIDTH_VERY_BIG = "Sehr groß"
CHAT_WIDTH_HUGE = "Riesig"
CHAT_CHAR_COUNTER = "Chat-Zeichenzähler anzeigen"
DISABLE_CHAT_WHEN_CLOSED = "Verstecke Chat wenn geschlossen"
MENU_OPTIONS = "Menüoptionen"
INFORMATION = "Info"
DEBUG = "Debug"

View file

@ -322,6 +322,15 @@ PAUSE_IN_SINGLEPLAYER = "Pausa in Giocatore Singolo"
DISABLE_POPUPS = "Disabilita Popup"
USE_STANDARD_KEY_BINDINGS_CHAT = "Usa controlli chat Terminale/CMD"
CHAT_WIDTH = "Larghezza chat"
CHAT_WIDTH_TINY = "Minuscola"
CHAT_WIDTH_VERY_SMALL = "Molto piccola"
CHAT_WIDTH_SMALL = "Piccola"
CHAT_WIDTH_NORMAL = "Normale"
CHAT_WIDTH_BIG = "Grande"
CHAT_WIDTH_VERY_BIG = "Molto grande"
CHAT_WIDTH_HUGE = "Enorme"
CHAT_CHAR_COUNTER = "Mostra contatore caratteri della chat"
DISABLE_CHAT_WHEN_CLOSED = "Nascondi chat quando è chiusa"
MENU_OPTIONS = "Opzioni Menù"
INFORMATION = "Informazione"
DEBUG = "Debug"

View file

@ -325,6 +325,15 @@ PAUSE_IN_SINGLEPLAYER = "ソロプレイでの一時停止"
DISABLE_POPUPS = "ポップアップを無効にする"
USE_STANDARD_KEY_BINDINGS_CHAT = "ターミナル/CMDチャットボックスコントロールを使用"
CHAT_WIDTH = "チャット幅"
CHAT_WIDTH_TINY = "とても小さい"
CHAT_WIDTH_VERY_SMALL = "かなり小さい"
CHAT_WIDTH_SMALL = "小さい"
CHAT_WIDTH_NORMAL = "標準"
CHAT_WIDTH_BIG = "大きい"
CHAT_WIDTH_VERY_BIG = "とても大きい"
CHAT_WIDTH_HUGE = "巨大"
CHAT_CHAR_COUNTER = "チャットの文字数カウンターを表示"
DISABLE_CHAT_WHEN_CLOSED = "閉じているときはチャットを隠す"
MENU_OPTIONS = "メニューの設定"
INFORMATION = "情報"
DEBUG = "デバッグ"

View file

@ -324,6 +324,15 @@ PAUSE_IN_SINGLEPLAYER = "Pauza w Trybie Pojedynczego Gracza"
DISABLE_POPUPS = "Wyłącz Dymki Powiadomień"
USE_STANDARD_KEY_BINDINGS_CHAT = "Użyj sterowania czatu Terminal/CMD"
CHAT_WIDTH = "Szerokość czatu"
CHAT_WIDTH_TINY = "Maleńka"
CHAT_WIDTH_VERY_SMALL = "Bardzo mała"
CHAT_WIDTH_SMALL = "Mała"
CHAT_WIDTH_NORMAL = "Normalna"
CHAT_WIDTH_BIG = "Duża"
CHAT_WIDTH_VERY_BIG = "Bardzo duża"
CHAT_WIDTH_HUGE = "Ogromna"
CHAT_CHAR_COUNTER = "Pokaż licznik znaków czatu"
DISABLE_CHAT_WHEN_CLOSED = "Ukryj czat, gdy jest zamknięty"
MENU_OPTIONS = "Opcje Menu"
INFORMATION = "Informacja"
DEBUG = "Debugowanie"

View file

@ -324,6 +324,15 @@ PAUSE_IN_SINGLEPLAYER = "Pausar com apenas um jogador"
DISABLE_POPUPS = "Desativar pop-ups"
USE_STANDARD_KEY_BINDINGS_CHAT = "Usar controles de chat Terminal/CMD"
CHAT_WIDTH = "Largura do chat"
CHAT_WIDTH_TINY = "Minúsculo"
CHAT_WIDTH_VERY_SMALL = "Muito pequena"
CHAT_WIDTH_SMALL = "Pequena"
CHAT_WIDTH_NORMAL = "Normal"
CHAT_WIDTH_BIG = "Grande"
CHAT_WIDTH_VERY_BIG = "Muito grande"
CHAT_WIDTH_HUGE = "Enorme"
CHAT_CHAR_COUNTER = "Mostrar contador de caracteres do chat"
DISABLE_CHAT_WHEN_CLOSED = "Ocultar chat quando fechado"
MENU_OPTIONS = "Opções de menu"
INFORMATION = "Informações"
DEBUG = "Debug"

View file

@ -323,6 +323,15 @@ PAUSE_IN_SINGLEPLAYER = "Пауза в одиночной игре"
DISABLE_POPUPS = "Отключить всплывающие окна"
USE_STANDARD_KEY_BINDINGS_CHAT = "Использовать управление чатом Terminal/CMD"
CHAT_WIDTH = "Ширина чата"
CHAT_WIDTH_TINY = "Крошечная"
CHAT_WIDTH_VERY_SMALL = "Очень маленькая"
CHAT_WIDTH_SMALL = "Маленькая"
CHAT_WIDTH_NORMAL = "Обычная"
CHAT_WIDTH_BIG = "Большая"
CHAT_WIDTH_VERY_BIG = "Очень большая"
CHAT_WIDTH_HUGE = "Огромная"
CHAT_CHAR_COUNTER = "Показывать счётчик символов чата"
DISABLE_CHAT_WHEN_CLOSED = "Скрывать чат, когда он закрыт"
MENU_OPTIONS = "Параметры меню"
INFORMATION = "Информация"
DEBUG = "Отладка"

View file

@ -324,6 +324,15 @@ PAUSE_IN_SINGLEPLAYER = "Pausa en modo de un jugador"
DISABLE_POPUPS = "Deshabilitar mensajes emergentes"
USE_STANDARD_KEY_BINDINGS_CHAT = "Usar controles de chat Terminal/CMD"
CHAT_WIDTH = "Ancho del chat"
CHAT_WIDTH_TINY = "Minúsculo"
CHAT_WIDTH_VERY_SMALL = "Muy pequeño"
CHAT_WIDTH_SMALL = "Pequeño"
CHAT_WIDTH_NORMAL = "Normal"
CHAT_WIDTH_BIG = "Grande"
CHAT_WIDTH_VERY_BIG = "Muy grande"
CHAT_WIDTH_HUGE = "Enorme"
CHAT_CHAR_COUNTER = "Mostrar contador de caracteres del chat"
DISABLE_CHAT_WHEN_CLOSED = "Ocultar chat cuando esté cerrado"
MENU_OPTIONS = "Opciones del menú"
INFORMATION = "Información"
DEBUG = "Depuración"

View file

@ -133,6 +133,8 @@ unsigned int configGamepadNumber = 0;
bool configBackgroundGamepad = true;
bool configDisableGamepads = false;
bool configUseStandardKeyBindingsChat = true;
bool configChatCharCounter = true;
bool configDisableChatWhenClosed = false;
unsigned int configChatWidth = 800;
bool configSmoothScrolling = false;
// free camera settings
@ -281,6 +283,8 @@ 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_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},
{.name = "stick_rotate_left", .type = CONFIG_TYPE_BOOL, .boolValue = &configStick.rotateLeft},
{.name = "stick_invert_left_x", .type = CONFIG_TYPE_BOOL, .boolValue = &configStick.invertLeftX},

View file

@ -96,6 +96,8 @@ extern unsigned int configGamepadNumber;
extern bool configBackgroundGamepad;
extern bool configDisableGamepads;
extern bool configUseStandardKeyBindingsChat;
extern bool configChatCharCounter;
extern bool configDisableChatWhenClosed;
extern unsigned int configChatWidth;
extern bool configSmoothScrolling;
// free camera settings

View file

@ -28,6 +28,8 @@ static bool djui_chat_message_render(struct DjuiBase* base) {
djui_base_set_color(ctBase, 255, 255, 255, 255);
djui_base_set_size_type(base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
djui_base_set_size(base, 1.0f, chatMessage->base.height.value);
} else if (configDisableChatWhenClosed) {
return false;
} else if (f <= 0.1f) {
return false;
} else {

View file

@ -8,6 +8,7 @@
#include "pc/pc_main.h"
#include "game/segment2.h"
#include "pc/controller/controller_keyboard.h"
#include "pc/configfile.h"
#define DJUI_INPUTBOX_YOFF (-2)
#define DJUI_INPUTBOX_MAX_BLINK 50
@ -736,7 +737,7 @@ static bool djui_inputbox_render(struct DjuiBase* base) {
gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW);
gSPDisplayList(gDisplayListHead++, dl_ia_text_end);
if (isChatInput && djui_interactable_is_input_focus(&inputbox->base)) {
if (isChatInput && djui_interactable_is_input_focus(&inputbox->base) && configChatCharCounter) {
char charCountText[32];
int currentLength = djui_unicode_len(inputbox->buffer);
snprintf(charCountText, sizeof(charCountText), "%d", currentLength);

View file

@ -42,6 +42,9 @@ void djui_panel_controls_create(struct DjuiBase* caller) {
#endif
djui_checkbox_create(body, DLANG(MISC, USE_STANDARD_KEY_BINDINGS_CHAT), &configUseStandardKeyBindingsChat, NULL);
djui_checkbox_create(body, DLANG(MISC, CHAT_CHAR_COUNTER), &configChatCharCounter, NULL);
djui_checkbox_create(body, DLANG(MISC, DISABLE_CHAT_WHEN_CLOSED), &configDisableChatWhenClosed, NULL);
static unsigned int sChatWidthIndex = 3;
switch (configChatWidth) {
case 500: sChatWidthIndex = 0; break;
@ -50,19 +53,20 @@ void djui_panel_controls_create(struct DjuiBase* caller) {
case 800: sChatWidthIndex = 3; break;
case 900: sChatWidthIndex = 4; break;
case 1000: sChatWidthIndex = 5; break;
case 1100: sChatWidthIndex = 6; break;
default: sChatWidthIndex = 3; break;
}
char* chatWidthChoices[] = { "500", "600", "700", "800", "900", "1000" };
void on_chat_width_change(struct DjuiBase* b) {
char* chatWidthChoices[] = { DLANG(MISC, CHAT_WIDTH_TINY), DLANG(MISC, CHAT_WIDTH_VERY_SMALL), DLANG(MISC, CHAT_WIDTH_SMALL), DLANG(MISC, CHAT_WIDTH_NORMAL), DLANG(MISC, CHAT_WIDTH_BIG), DLANG(MISC, CHAT_WIDTH_VERY_BIG), DLANG(MISC, CHAT_WIDTH_HUGE) };
void on_chat_width_change(UNUSED struct DjuiBase* b) {
unsigned int idx = sChatWidthIndex;
unsigned int widths[] = {500,600,700,800,900,1000};
unsigned int widths[] = {500,600,700,800,900,1000,1100};
configChatWidth = widths[idx];
if (gDjuiChatBox != NULL) {
djui_base_set_size(&gDjuiChatBox->base, configChatWidth, gDjuiChatBox->base.height.value);
}
}
djui_selectionbox_create(body, DLANG(MISC, CHAT_WIDTH), chatWidthChoices, 6, &sChatWidthIndex, on_chat_width_change);
djui_selectionbox_create(body, DLANG(MISC, CHAT_WIDTH), chatWidthChoices, 7, &sChatWidthIndex, on_chat_width_change);
#ifdef HAVE_SDL2
int numJoys = SDL_NumJoysticks();