From d93149d02e8bdb4e50b34ce3595beae37406cf3f Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Wed, 10 Jul 2024 22:29:59 +0200 Subject: [PATCH] add hints to settings that require upscaling --- config/ConfigFormUnit.cpp | 105 ++++++++++++++++++++++++++++++++++++++ config/ConfigFormUnit.dfm | 12 +++++ 2 files changed, 117 insertions(+) diff --git a/config/ConfigFormUnit.cpp b/config/ConfigFormUnit.cpp index 3954825..a327efc 100644 --- a/config/ConfigFormUnit.cpp +++ b/config/ConfigFormUnit.cpp @@ -117,6 +117,8 @@ void __fastcall TConfigForm::RestoreDefaultsBtnClick(TObject *Sender) void TConfigForm::ApplyTranslation(TIniFile *ini) { + Application->HintHidePause = 100 * 1000; + auto lang = LowerCase(ini->ReadString("ddraw", "configlang", "auto")); int priID = SysLocale.PriLangID; @@ -178,6 +180,18 @@ void TConfigForm::ApplyTranslation(TIniFile *ini) MaxgameticksCbx->AddItem(L"30tick每秒", NULL); MaxgameticksCbx->AddItem(L"25tick每秒", NULL); MaxgameticksCbx->AddItem(L"15tick每秒", NULL); + + auto upscaleHint = + L"必须启用升级才能使此设置发挥作用。\n\n" + "要启用放大功能,请将演示文稿设置为'拉伸至全屏'、\n" + "'无边框'或以'窗口化'模式启动游戏并调整窗口大小。"; + + MaintasLbl->Hint = upscaleHint; + MaintasChk->Hint = upscaleHint; + AdjmouseLbl->Hint = upscaleHint; + AdjmouseChk->Hint = upscaleHint; + BoxingLbl->Hint = upscaleHint; + BoxingChk->Hint = upscaleHint; } else if (lang == "spanish" || (lang == "auto" && priID == LANG_SPANISH)) { LanguageImg->Visible = true; @@ -237,6 +251,19 @@ void TConfigForm::ApplyTranslation(TIniFile *ini) MaxgameticksCbx->AddItem(L"30 tics por segundo", NULL); MaxgameticksCbx->AddItem(L"25 tics por segundo", NULL); MaxgameticksCbx->AddItem(L"15 tics por segundo", NULL); + + auto upscaleHint = + L"La ampliación debe estar habilitada para que esta configuración funcione. \n\n" + "Para habilitar la mejora, configura tu presentación en 'Sin bordes', \n" + "'Pantalla completa ampliada' o inicia el juego en modo 'Ventana' \n" + "y cambia el tamaño de la ventana."; + + MaintasLbl->Hint = upscaleHint; + MaintasChk->Hint = upscaleHint; + AdjmouseLbl->Hint = upscaleHint; + AdjmouseChk->Hint = upscaleHint; + BoxingLbl->Hint = upscaleHint; + BoxingChk->Hint = upscaleHint; } else if (lang == "german" || (lang == "auto" && priID == LANG_GERMAN)) { LanguageImg->Visible = true; @@ -296,6 +323,19 @@ void TConfigForm::ApplyTranslation(TIniFile *ini) MaxgameticksCbx->AddItem(L"30 Ticks pro Sekunde", NULL); MaxgameticksCbx->AddItem(L"25 Ticks pro Sekunde", NULL); MaxgameticksCbx->AddItem(L"15 Ticks pro Sekunde", NULL); + + auto upscaleHint = + L"Damit diese Einstellung funktioniert, muss die Hochskalierung aktiviert sein. \n\n" + "Um die Hochskalierung zu aktivieren, stellen Sie Ihre Präsentation \n" + "entweder auf 'Ränderfreies Fenster', 'Hochskaliertes Vollbild' ein \n" + "oder starten Sie das Spiel im 'Fenstermodus' und ändern Sie die Fenstergröße."; + + MaintasLbl->Hint = upscaleHint; + MaintasChk->Hint = upscaleHint; + AdjmouseLbl->Hint = upscaleHint; + AdjmouseChk->Hint = upscaleHint; + BoxingLbl->Hint = upscaleHint; + BoxingChk->Hint = upscaleHint; } else if (lang == "russian" || (lang == "auto" && priID == LANG_RUSSIAN)) { LanguageImg->Visible = true; @@ -356,6 +396,19 @@ void TConfigForm::ApplyTranslation(TIniFile *ini) MaxgameticksCbx->AddItem(L"30 тиков в секунду", NULL); MaxgameticksCbx->AddItem(L"25 тиков в секунду", NULL); MaxgameticksCbx->AddItem(L"15 тиков в секунду", NULL); + + auto upscaleHint = + L"Чтобы этот параметр работал, необходимо включить масштабирование. \n\n" + "Чтобы включить масштабирование, установите для презентации режим \n" + "'Без границ', 'Полноэкранный масштабированный' или запустите игру \n" + "в 'Оконный' режиме и измените размер окна."; + + MaintasLbl->Hint = upscaleHint; + MaintasChk->Hint = upscaleHint; + AdjmouseLbl->Hint = upscaleHint; + AdjmouseChk->Hint = upscaleHint; + BoxingLbl->Hint = upscaleHint; + BoxingChk->Hint = upscaleHint; } else if (lang == "hungarian" || (lang == "auto" && priID == LANG_HUNGARIAN)) { LanguageImg->Visible = true; @@ -415,6 +468,19 @@ void TConfigForm::ApplyTranslation(TIniFile *ini) MaxgameticksCbx->AddItem(L"30 tick másodpercenként", NULL); MaxgameticksCbx->AddItem(L"25 tick másodpercenként", NULL); MaxgameticksCbx->AddItem(L"15 tick másodpercenként", NULL); + + auto upscaleHint = + L"A beállítás működéséhez engedélyezni kell a felskálázást. \n\n" + "A felskálázás engedélyezéséhez állítsa be a prezentációt 'Keret nélkül', \n" + "'Teljes képernyő felskálázva' értékre, vagy indítsa el a játékot 'Ablakban' \n" + "módban, és méretezze át az ablakot."; + + MaintasLbl->Hint = upscaleHint; + MaintasChk->Hint = upscaleHint; + AdjmouseLbl->Hint = upscaleHint; + AdjmouseChk->Hint = upscaleHint; + BoxingLbl->Hint = upscaleHint; + BoxingChk->Hint = upscaleHint; } else if (lang == "french" || (lang == "auto" && priID == LANG_FRENCH)) { LanguageImg->Visible = true; @@ -474,6 +540,19 @@ void TConfigForm::ApplyTranslation(TIniFile *ini) MaxgameticksCbx->AddItem(L"30 tics par seconde", NULL); MaxgameticksCbx->AddItem(L"25 tics par seconde", NULL); MaxgameticksCbx->AddItem(L"15 tics par seconde", NULL); + + auto upscaleHint = + L"La mise à l'échelle doit être activée pour que ce paramètre fonctionne. \n\n" + "Pour activer la mise à l'échelle, définissez votre présentation sur 'Sans Bordure', \n" + "'Plein Écran Mis à l'Échelle' ou démarrez le jeu en mode 'Fenêtré' \n" + "et redimensionnez la fenêtre."; + + MaintasLbl->Hint = upscaleHint; + MaintasChk->Hint = upscaleHint; + AdjmouseLbl->Hint = upscaleHint; + AdjmouseChk->Hint = upscaleHint; + BoxingLbl->Hint = upscaleHint; + BoxingChk->Hint = upscaleHint; } else if (lang == "italian" || (lang == "auto" && priID == LANG_ITALIAN)) { LanguageImg->Visible = true; @@ -533,6 +612,19 @@ void TConfigForm::ApplyTranslation(TIniFile *ini) MaxgameticksCbx->AddItem(L"30 tick al secondo", NULL); MaxgameticksCbx->AddItem(L"25 tick al secondo", NULL); MaxgameticksCbx->AddItem(L"15 tick al secondo", NULL); + + auto upscaleHint = + L"Affinché questa impostazione funzioni, è necessario abilitare l'upscaling. \n\n" + "Per abilitare l'upscaling, imposta la presentazione su 'Senza Bordi', \n" + "'Schermo Intero Ridimensionato' oppure avvia il gioco in modalità \n" + "'In Finestra' e ridimensiona la finestra."; + + MaintasLbl->Hint = upscaleHint; + MaintasChk->Hint = upscaleHint; + AdjmouseLbl->Hint = upscaleHint; + AdjmouseChk->Hint = upscaleHint; + BoxingLbl->Hint = upscaleHint; + BoxingChk->Hint = upscaleHint; } else { IsEnglish = true; @@ -638,6 +730,19 @@ void TConfigForm::ApplyTranslation(TIniFile *ini) MaxgameticksCbx->AddItem(L"25 ticks per second", NULL); MaxgameticksCbx->AddItem(L"15 ticks per second", NULL); */ + + auto upscaleHint = + L"Upscaling must be enabled for this setting to work. \n\n" + "To enable upscaling, set your presentation to either 'Borderless', \n" + "'Fullscreen Upscaled' or start the game in 'Windowed' mode and \n" + "resize the window."; + + MaintasLbl->Hint = upscaleHint; + MaintasChk->Hint = upscaleHint; + AdjmouseLbl->Hint = upscaleHint; + AdjmouseChk->Hint = upscaleHint; + BoxingLbl->Hint = upscaleHint; + BoxingChk->Hint = upscaleHint; } ToggleWindowedKeyLbl->Caption = GetKeyText(VK_MENU) + L" +"; diff --git a/config/ConfigFormUnit.dfm b/config/ConfigFormUnit.dfm index 1805a5d..b1e29df 100644 --- a/config/ConfigFormUnit.dfm +++ b/config/ConfigFormUnit.dfm @@ -2727,6 +2727,8 @@ object ConfigForm: TConfigForm Font.Name = 'Segoe UI' Font.Style = [] ParentFont = False + ParentShowHint = False + ShowHint = True end object VsyncLbl: TLabel Left = 40 @@ -2755,6 +2757,8 @@ object ConfigForm: TConfigForm Font.Name = 'Segoe UI' Font.Style = [] ParentFont = False + ParentShowHint = False + ShowHint = True end object DevmodeLbl: TLabel Left = 40 @@ -2834,6 +2838,8 @@ object ConfigForm: TConfigForm Top = 132 Width = 50 Height = 20 + ParentShowHint = False + ShowHint = True ShowStateCaption = False TabOrder = 0 OnClick = MaintasChkClick @@ -2852,6 +2858,8 @@ object ConfigForm: TConfigForm Top = 268 Width = 50 Height = 20 + ParentShowHint = False + ShowHint = True ShowStateCaption = False TabOrder = 3 OnClick = AdjmouseChkClick @@ -3159,6 +3167,8 @@ object ConfigForm: TConfigForm Font.Name = 'Segoe UI' Font.Style = [] ParentFont = False + ParentShowHint = False + ShowHint = True end object RendererPbox: TPaintBox Left = 40 @@ -3273,6 +3283,8 @@ object ConfigForm: TConfigForm Top = 277 Width = 50 Height = 20 + ParentShowHint = False + ShowHint = True ShowStateCaption = False TabOrder = 5 OnClick = BoxingChkClick