From 7771a08d033335e8857687dd0da258280908d345 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Fri, 17 Sep 2021 10:25:13 +0200 Subject: [PATCH] Translatable mainpanel --- CMakeLists.txt | 1 + Packaging/resources/devilutionx.mpq | Bin 1006967 -> 1014845 bytes Source/DiabloUI/diabloui.cpp | 14 +-- Source/DiabloUI/mainmenu.cpp | 4 +- Source/DiabloUI/selconn.cpp | 22 ++-- Source/DiabloUI/selgame.cpp | 64 +++++----- Source/DiabloUI/selhero.cpp | 66 +++++------ Source/DiabloUI/selok.cpp | 8 +- Source/DiabloUI/selyesno.cpp | 6 +- Source/DiabloUI/title.cpp | 2 +- Source/DiabloUI/ui_item.h | 57 +++++---- Source/control.cpp | 77 ++++++------ Source/control.h | 3 + Source/controls/modifier_hints.cpp | 2 +- Source/diablo.cpp | 12 +- Source/engine/render/text_render.cpp | 101 ++++++++++++---- Source/engine/render/text_render.hpp | 17 ++- Source/gmenu.cpp | 2 +- Source/help.cpp | 6 +- Source/inv.cpp | 4 +- Source/items.cpp | 2 +- Source/items.h | 4 +- Source/minitext.cpp | 2 +- Source/panels/charpanel.cpp | 32 ++--- Source/panels/mainpanel.cpp | 128 ++++++++++++++++++++ Source/panels/mainpanel.hpp | 14 +++ Source/plrmsg.cpp | 2 +- Source/qol/monhealthbar.cpp | 4 +- Source/qol/xpbar.cpp | 4 +- Source/quests.cpp | 2 +- Source/stores.cpp | 170 +++++++++++++-------------- 31 files changed, 532 insertions(+), 300 deletions(-) create mode 100644 Source/panels/mainpanel.cpp create mode 100644 Source/panels/mainpanel.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 698b09cb9..07034a4d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -461,6 +461,7 @@ set(libdevilutionx_SRCS Source/DiabloUI/title.cpp Source/DiabloUI/ttf_render_wrapped.cpp Source/panels/charpanel.cpp + Source/panels/mainpanel.cpp Source/dvlnet/abstract_net.cpp Source/dvlnet/base.cpp Source/dvlnet/cdwrap.cpp diff --git a/Packaging/resources/devilutionx.mpq b/Packaging/resources/devilutionx.mpq index 3a8c5af4cf649c691aafc2a607aa82991151e79d..f4987f22ca68c71d5c57e4938a6f9b21428f4917 100644 GIT binary patch delta 8866 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 Zh}n~_JrrBEf7TkWNFI+YXS_>2bHH4Tmkj^_ diff --git a/Source/DiabloUI/diabloui.cpp b/Source/DiabloUI/diabloui.cpp index fd176b93d..a828bffc0 100644 --- a/Source/DiabloUI/diabloui.cpp +++ b/Source/DiabloUI/diabloui.cpp @@ -544,13 +544,13 @@ void UiInitialize() { LoadUiGFX(); - LoadFont(GameFont12, ColorSilver, "fonts\\grayuis.trn"); - LoadFont(GameFont12, ColorGold, "fonts\\golduis.trn"); - LoadFont(GameFont24, ColorSilver, "fonts\\grayui.trn"); - LoadFont(GameFont24, ColorGold, "fonts\\goldui.trn"); - LoadFont(GameFont30, ColorSilver, "fonts\\grayui.trn"); - LoadFont(GameFont30, ColorGold, "fonts\\goldui.trn"); - LoadFont(GameFont42, ColorGold, "fonts\\goldui.trn"); + LoadFont(GameFont12, ColorUiSilverDark); + LoadFont(GameFont12, ColorUiGoldDark); + LoadFont(GameFont24, ColorUiSilver); + LoadFont(GameFont24, ColorUiGold); + LoadFont(GameFont30, ColorUiSilver); + LoadFont(GameFont30, ColorUiGold); + LoadFont(GameFont42, ColorUiGold); if (ArtCursor.surface != nullptr) { if (SDL_ShowCursor(SDL_DISABLE) <= -1) { diff --git a/Source/DiabloUI/mainmenu.cpp b/Source/DiabloUI/mainmenu.cpp index f6940e051..33d313651 100644 --- a/Source/DiabloUI/mainmenu.cpp +++ b/Source/DiabloUI/mainmenu.cpp @@ -51,10 +51,10 @@ void MainmenuLoad(const char *name, void (*fnSound)(const char *file)) UiAddBackground(&vecMainMenuDialog); UiAddLogo(&vecMainMenuDialog); - vecMainMenuDialog.push_back(std::make_unique(vecMenuItems, PANEL_LEFT + 64, (UI_OFFSET_Y + 192), 510, 43, UiFlags::FontSize42 | UiFlags::ColorGold | UiFlags::AlignCenter, 5)); + vecMainMenuDialog.push_back(std::make_unique(vecMenuItems, PANEL_LEFT + 64, (UI_OFFSET_Y + 192), 510, 43, UiFlags::FontSize42 | UiFlags::ColorUiGold | UiFlags::AlignCenter, 5)); SDL_Rect rect = { 17, (Sint16)(gnScreenHeight - 36), 605, 21 }; - vecMainMenuDialog.push_back(std::make_unique(name, rect, UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecMainMenuDialog.push_back(std::make_unique(name, rect, UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); UiInitList(vecMenuItems.size(), nullptr, UiMainMenuSelect, MainmenuEsc, vecMainMenuDialog, true); } diff --git a/Source/DiabloUI/selconn.cpp b/Source/DiabloUI/selconn.cpp index a8d82bde7..2088e2177 100644 --- a/Source/DiabloUI/selconn.cpp +++ b/Source/DiabloUI/selconn.cpp @@ -44,36 +44,36 @@ void SelconnLoad() UiAddLogo(&vecSelConnDlg); SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 24), (Sint16)(Sint16)(UI_OFFSET_Y + 161), 590, 35 }; - vecSelConnDlg.push_back(std::make_unique(_("Multi Player Game"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelConnDlg.push_back(std::make_unique(_("Multi Player Game"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 35), (Sint16)(UI_OFFSET_Y + 218), DESCRIPTION_WIDTH, 21 }; - vecSelConnDlg.push_back(std::make_unique(selconn_MaxPlayers, rect2, UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelConnDlg.push_back(std::make_unique(selconn_MaxPlayers, rect2, UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect3 = { (Sint16)(PANEL_LEFT + 35), (Sint16)(UI_OFFSET_Y + 256), DESCRIPTION_WIDTH, 21 }; - vecSelConnDlg.push_back(std::make_unique(_("Requirements:"), rect3, UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelConnDlg.push_back(std::make_unique(_("Requirements:"), rect3, UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect4 = { (Sint16)(PANEL_LEFT + 35), (Sint16)(UI_OFFSET_Y + 275), DESCRIPTION_WIDTH, 66 }; - vecSelConnDlg.push_back(std::make_unique(selconn_Description, rect4, UiFlags::FontSize12 | UiFlags::ColorSilver, 1, 16)); + vecSelConnDlg.push_back(std::make_unique(selconn_Description, rect4, UiFlags::FontSize12 | UiFlags::ColorUiSilverDark, 1, 16)); SDL_Rect rect5 = { (Sint16)(PANEL_LEFT + 30), (Sint16)(UI_OFFSET_Y + 356), 220, 31 }; - vecSelConnDlg.push_back(std::make_unique(_("no gateway needed"), rect5, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorSilver, 0)); + vecSelConnDlg.push_back(std::make_unique(_("no gateway needed"), rect5, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorUiSilver, 0)); SDL_Rect rect6 = { (Sint16)(PANEL_LEFT + 35), (Sint16)(UI_OFFSET_Y + 393), DESCRIPTION_WIDTH, 21 }; - vecSelConnDlg.push_back(std::make_unique(selconn_Gateway, rect6, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelConnDlg.push_back(std::make_unique(selconn_Gateway, rect6, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect7 = { (Sint16)(PANEL_LEFT + 300), (Sint16)(UI_OFFSET_Y + 211), 295, 33 }; - vecSelConnDlg.push_back(std::make_unique(_("Select Connection"), rect7, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelConnDlg.push_back(std::make_unique(_("Select Connection"), rect7, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect8 = { (Sint16)(PANEL_LEFT + 16), (Sint16)(UI_OFFSET_Y + 427), 250, 35 }; - vecSelConnDlg.push_back(std::make_unique(_("Change Gateway"), nullptr, rect8, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold | UiFlags::ElementHidden)); + vecSelConnDlg.push_back(std::make_unique(_("Change Gateway"), nullptr, rect8, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold | UiFlags::ElementHidden)); - vecSelConnDlg.push_back(std::make_unique(vecConnItems, PANEL_LEFT + 305, (UI_OFFSET_Y + 256), 285, 26, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::ColorGold)); + vecSelConnDlg.push_back(std::make_unique(vecConnItems, PANEL_LEFT + 305, (UI_OFFSET_Y + 256), 285, 26, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::VerticalCenter | UiFlags::ColorUiGoldDark)); SDL_Rect rect9 = { (Sint16)(PANEL_LEFT + 299), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelConnDlg.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect9, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelConnDlg.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect9, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); SDL_Rect rect10 = { (Sint16)(PANEL_LEFT + 454), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelConnDlg.push_back(std::make_unique(_("Cancel"), &UiFocusNavigationEsc, rect10, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelConnDlg.push_back(std::make_unique(_("Cancel"), &UiFocusNavigationEsc, rect10, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); UiInitList(vecConnItems.size(), SelconnFocus, SelconnSelect, SelconnEsc, vecSelConnDlg, true); } diff --git a/Source/DiabloUI/selgame.cpp b/Source/DiabloUI/selgame.cpp index 0eadfc6ed..b6d1890fb 100644 --- a/Source/DiabloUI/selgame.cpp +++ b/Source/DiabloUI/selgame.cpp @@ -74,27 +74,27 @@ void selgame_GameSelection_Init() UiAddLogo(&vecSelGameDialog); SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 24), (Sint16)(UI_OFFSET_Y + 161), 590, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("Client-Server (TCP)"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelGameDialog.push_back(std::make_unique(_("Client-Server (TCP)"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 35), (Sint16)(UI_OFFSET_Y + 211), 205, 192 }; - vecSelGameDialog.push_back(std::make_unique(_("Description:"), rect2, UiFlags::FontSize24 | UiFlags::ColorSilver)); + vecSelGameDialog.push_back(std::make_unique(_("Description:"), rect2, UiFlags::FontSize24 | UiFlags::ColorUiSilver)); SDL_Rect rect3 = { (Sint16)(PANEL_LEFT + 35), (Sint16)(UI_OFFSET_Y + 256), DESCRIPTION_WIDTH, 192 }; - vecSelGameDialog.push_back(std::make_unique(selgame_Description, rect3, UiFlags::FontSize12 | UiFlags::ColorSilver, 1, 16)); + vecSelGameDialog.push_back(std::make_unique(selgame_Description, rect3, UiFlags::FontSize12 | UiFlags::ColorUiSilverDark, 1, 16)); SDL_Rect rect4 = { (Sint16)(PANEL_LEFT + 300), (Sint16)(UI_OFFSET_Y + 211), 295, 33 }; - vecSelGameDialog.push_back(std::make_unique(_("Select Action"), rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelGameDialog.push_back(std::make_unique(_("Select Action"), rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); vecSelGameDlgItems.push_back(std::make_unique(_("Create Game"), 0)); vecSelGameDlgItems.push_back(std::make_unique(_("Join Game"), 1)); - vecSelGameDialog.push_back(std::make_unique(vecSelGameDlgItems, PANEL_LEFT + 305, (UI_OFFSET_Y + 255), 285, 26, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(vecSelGameDlgItems, PANEL_LEFT + 305, (UI_OFFSET_Y + 255), 285, 26, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorUiGold)); SDL_Rect rect5 = { (Sint16)(PANEL_LEFT + 299), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect5, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect5, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); SDL_Rect rect6 = { (Sint16)(PANEL_LEFT + 449), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("CANCEL"), &UiFocusNavigationEsc, rect6, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(_("CANCEL"), &UiFocusNavigationEsc, rect6, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); UiInitList(vecSelGameDlgItems.size(), selgame_GameSelection_Focus, selgame_GameSelection_Select, selgame_GameSelection_Esc, vecSelGameDialog, true); } @@ -138,32 +138,32 @@ void selgame_GameSelection_Select(int value) UiAddLogo(&vecSelGameDialog); SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 24), (Sint16)(UI_OFFSET_Y + 161), 590, 35 }; - vecSelGameDialog.push_back(std::make_unique(&title, rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelGameDialog.push_back(std::make_unique(&title, rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 34), (Sint16)(UI_OFFSET_Y + 211), 205, 33 }; - vecSelGameDialog.push_back(std::make_unique(selgame_Label, rect2, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelGameDialog.push_back(std::make_unique(selgame_Label, rect2, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect3 = { (Sint16)(PANEL_LEFT + 35), (Sint16)(UI_OFFSET_Y + 256), DESCRIPTION_WIDTH, 192 }; - vecSelGameDialog.push_back(std::make_unique(selgame_Description, rect3, UiFlags::FontSize12 | UiFlags::ColorSilver, 1, 16)); + vecSelGameDialog.push_back(std::make_unique(selgame_Description, rect3, UiFlags::FontSize12 | UiFlags::ColorUiSilverDark, 1, 16)); switch (value) { case 0: { title = _("Create Game"); SDL_Rect rect4 = { (Sint16)(PANEL_LEFT + 299), (Sint16)(UI_OFFSET_Y + 211), 295, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("Select Difficulty"), rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelGameDialog.push_back(std::make_unique(_("Select Difficulty"), rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); vecSelGameDlgItems.push_back(std::make_unique(_("Normal"), DIFF_NORMAL)); vecSelGameDlgItems.push_back(std::make_unique(_("Nightmare"), DIFF_NIGHTMARE)); vecSelGameDlgItems.push_back(std::make_unique(_("Hell"), DIFF_HELL)); - vecSelGameDialog.push_back(std::make_unique(vecSelGameDlgItems, PANEL_LEFT + 300, (UI_OFFSET_Y + 282), 295, 26, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(vecSelGameDlgItems, PANEL_LEFT + 300, (UI_OFFSET_Y + 282), 295, 26, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorUiGold)); SDL_Rect rect5 = { (Sint16)(PANEL_LEFT + 299), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect5, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect5, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); SDL_Rect rect6 = { (Sint16)(PANEL_LEFT + 449), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("CANCEL"), &UiFocusNavigationEsc, rect6, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(_("CANCEL"), &UiFocusNavigationEsc, rect6, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); UiInitList(vecSelGameDlgItems.size(), selgame_Diff_Focus, selgame_Diff_Select, selgame_Diff_Esc, vecSelGameDialog, true); break; @@ -172,16 +172,16 @@ void selgame_GameSelection_Select(int value) title = _("Join TCP Games"); SDL_Rect rect4 = { (Sint16)(PANEL_LEFT + 305), (Sint16)(UI_OFFSET_Y + 211), 285, 33 }; - vecSelGameDialog.push_back(std::make_unique(_("Enter address"), rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelGameDialog.push_back(std::make_unique(_("Enter address"), rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect5 = { (Sint16)(PANEL_LEFT + 305), (Sint16)(UI_OFFSET_Y + 314), 285, 33 }; - vecSelGameDialog.push_back(std::make_unique(_("Enter address"), selgame_Ip, 128, rect5, UiFlags::FontSize24 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(_("Enter address"), selgame_Ip, 128, rect5, UiFlags::FontSize24 | UiFlags::ColorUiGold)); SDL_Rect rect6 = { (Sint16)(PANEL_LEFT + 299), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect6, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect6, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); SDL_Rect rect7 = { (Sint16)(PANEL_LEFT + 449), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("CANCEL"), &UiFocusNavigationEsc, rect7, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(_("CANCEL"), &UiFocusNavigationEsc, rect7, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); UiInitList(0, nullptr, selgame_Password_Init, selgame_GameSelection_Init, vecSelGameDialog); break; @@ -292,29 +292,29 @@ void selgame_GameSpeedSelection() UiAddLogo(&vecSelGameDialog); SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 24), (Sint16)(UI_OFFSET_Y + 161), 590, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("Create Game"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelGameDialog.push_back(std::make_unique(_("Create Game"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 34), (Sint16)(UI_OFFSET_Y + 211), 205, 33 }; - vecSelGameDialog.push_back(std::make_unique(selgame_Label, rect2, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelGameDialog.push_back(std::make_unique(selgame_Label, rect2, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect3 = { (Sint16)(PANEL_LEFT + 35), (Sint16)(UI_OFFSET_Y + 256), DESCRIPTION_WIDTH, 192 }; - vecSelGameDialog.push_back(std::make_unique(selgame_Description, rect3, UiFlags::FontSize12 | UiFlags::ColorSilver, 1, 16)); + vecSelGameDialog.push_back(std::make_unique(selgame_Description, rect3, UiFlags::FontSize12 | UiFlags::ColorUiSilverDark, 1, 16)); SDL_Rect rect4 = { (Sint16)(PANEL_LEFT + 299), (Sint16)(UI_OFFSET_Y + 211), 295, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("Select Game Speed"), rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelGameDialog.push_back(std::make_unique(_("Select Game Speed"), rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); vecSelGameDlgItems.push_back(std::make_unique(_("Normal"), 20)); vecSelGameDlgItems.push_back(std::make_unique(_("Fast"), 30)); vecSelGameDlgItems.push_back(std::make_unique(_("Faster"), 40)); vecSelGameDlgItems.push_back(std::make_unique(_("Fastest"), 50)); - vecSelGameDialog.push_back(std::make_unique(vecSelGameDlgItems, PANEL_LEFT + 300, (UI_OFFSET_Y + 279), 295, 26, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(vecSelGameDlgItems, PANEL_LEFT + 300, (UI_OFFSET_Y + 279), 295, 26, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorUiGold)); SDL_Rect rect5 = { (Sint16)(PANEL_LEFT + 299), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect5, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect5, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); SDL_Rect rect6 = { (Sint16)(PANEL_LEFT + 449), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("CANCEL"), &UiFocusNavigationEsc, rect6, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(_("CANCEL"), &UiFocusNavigationEsc, rect6, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); UiInitList(vecSelGameDlgItems.size(), selgame_Speed_Focus, selgame_Speed_Select, selgame_Speed_Esc, vecSelGameDialog, true); } @@ -369,25 +369,25 @@ void selgame_Password_Init(int /*value*/) UiAddLogo(&vecSelGameDialog); SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 24), (Sint16)(UI_OFFSET_Y + 161), 590, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("Client-Server (TCP)"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelGameDialog.push_back(std::make_unique(_("Client-Server (TCP)"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 35), (Sint16)(UI_OFFSET_Y + 211), 205, 192 }; - vecSelGameDialog.push_back(std::make_unique(_("Description:"), rect2, UiFlags::FontSize24 | UiFlags::ColorSilver)); + vecSelGameDialog.push_back(std::make_unique(_("Description:"), rect2, UiFlags::FontSize24 | UiFlags::ColorUiSilver)); SDL_Rect rect3 = { (Sint16)(PANEL_LEFT + 35), (Sint16)(UI_OFFSET_Y + 256), DESCRIPTION_WIDTH, 192 }; - vecSelGameDialog.push_back(std::make_unique(selgame_Description, rect3, UiFlags::FontSize12 | UiFlags::ColorSilver, 1, 16)); + vecSelGameDialog.push_back(std::make_unique(selgame_Description, rect3, UiFlags::FontSize12 | UiFlags::ColorUiSilverDark, 1, 16)); SDL_Rect rect4 = { (Sint16)(PANEL_LEFT + 305), (Sint16)(UI_OFFSET_Y + 211), 285, 33 }; - vecSelGameDialog.push_back(std::make_unique(_("Enter Password"), rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelGameDialog.push_back(std::make_unique(_("Enter Password"), rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect5 = { (Sint16)(PANEL_LEFT + 305), (Sint16)(UI_OFFSET_Y + 314), 285, 33 }; - vecSelGameDialog.push_back(std::make_unique(_("Enter Password"), selgame_Password, 15, rect5, UiFlags::FontSize24 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(_("Enter Password"), selgame_Password, 15, rect5, UiFlags::FontSize24 | UiFlags::ColorUiGold)); SDL_Rect rect6 = { (Sint16)(PANEL_LEFT + 299), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect6, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect6, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); SDL_Rect rect7 = { (Sint16)(PANEL_LEFT + 449), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelGameDialog.push_back(std::make_unique(_("CANCEL"), &UiFocusNavigationEsc, rect7, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelGameDialog.push_back(std::make_unique(_("CANCEL"), &UiFocusNavigationEsc, rect7, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); UiInitList(0, nullptr, selgame_Password_Select, selgame_Password_Esc, vecSelGameDialog); } diff --git a/Source/DiabloUI/selhero.cpp b/Source/DiabloUI/selhero.cpp index 49ba245a1..95a87620d 100644 --- a/Source/DiabloUI/selhero.cpp +++ b/Source/DiabloUI/selhero.cpp @@ -131,7 +131,7 @@ void SelheroListFocus(int value) if (selhero_SaveCount != 0 && index < selhero_SaveCount) { memcpy(&selhero_heroInfo, &selhero_heros[index], sizeof(selhero_heroInfo)); SelheroSetStats(); - SELLIST_DIALOG_DELETE_BUTTON->m_iFlags = baseFlags | UiFlags::ColorGold; + SELLIST_DIALOG_DELETE_BUTTON->m_iFlags = baseFlags | UiFlags::ColorUiGold; selhero_deleteEnabled = true; return; } @@ -143,7 +143,7 @@ void SelheroListFocus(int value) strncpy(textStats[3], "--", sizeof(textStats[3]) - 1); strncpy(textStats[4], "--", sizeof(textStats[4]) - 1); strncpy(textStats[5], "--", sizeof(textStats[5]) - 1); - SELLIST_DIALOG_DELETE_BUTTON->m_iFlags = baseFlags | UiFlags::ColorSilver | UiFlags::ElementDisabled; + SELLIST_DIALOG_DELETE_BUTTON->m_iFlags = baseFlags | UiFlags::ColorUiSilver | UiFlags::ElementDisabled; selhero_deleteEnabled = false; } @@ -160,7 +160,7 @@ void SelheroListSelect(int value) vecSelDlgItems.clear(); SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 264), (Sint16)(UI_OFFSET_Y + 211), 320, 33 }; - vecSelDlgItems.push_back(std::make_unique(_("Choose Class"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelDlgItems.push_back(std::make_unique(_("Choose Class"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); vecSelHeroDlgItems.clear(); int itemH = 33; @@ -179,13 +179,13 @@ void SelheroListSelect(int value) if (vecSelHeroDlgItems.size() > 4) itemH = 26; int itemY = 246 + (176 - vecSelHeroDlgItems.size() * itemH) / 2; - vecSelDlgItems.push_back(std::make_unique(vecSelHeroDlgItems, PANEL_LEFT + 264, (UI_OFFSET_Y + itemY), 320, itemH, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorGold)); + vecSelDlgItems.push_back(std::make_unique(vecSelHeroDlgItems, PANEL_LEFT + 264, (UI_OFFSET_Y + itemY), 320, itemH, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorUiGold)); SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 279), (Sint16)(UI_OFFSET_Y + 429), 140, 35 }; - vecSelDlgItems.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect2, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelDlgItems.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect2, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); SDL_Rect rect3 = { (Sint16)(PANEL_LEFT + 429), (Sint16)(UI_OFFSET_Y + 429), 140, 35 }; - vecSelDlgItems.push_back(std::make_unique(_("Cancel"), &UiFocusNavigationEsc, rect3, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelDlgItems.push_back(std::make_unique(_("Cancel"), &UiFocusNavigationEsc, rect3, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); UiInitList(vecSelHeroDlgItems.size(), SelheroClassSelectorFocus, SelheroClassSelectorSelect, SelheroClassSelectorEsc, vecSelDlgItems, true); memset(&selhero_heroInfo.name, 0, sizeof(selhero_heroInfo.name)); @@ -199,18 +199,18 @@ void SelheroListSelect(int value) vecSelDlgItems.clear(); SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 264), (Sint16)(UI_OFFSET_Y + 211), 320, 33 }; - vecSelDlgItems.push_back(std::make_unique(_("Save File Exists"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelDlgItems.push_back(std::make_unique(_("Save File Exists"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); vecSelHeroDlgItems.clear(); vecSelHeroDlgItems.push_back(std::make_unique(_("Load Game"), 0)); vecSelHeroDlgItems.push_back(std::make_unique(_("New Game"), 1)); - vecSelDlgItems.push_back(std::make_unique(vecSelHeroDlgItems, PANEL_LEFT + 265, (UI_OFFSET_Y + 285), 320, 33, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorGold)); + vecSelDlgItems.push_back(std::make_unique(vecSelHeroDlgItems, PANEL_LEFT + 265, (UI_OFFSET_Y + 285), 320, 33, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorUiGold)); SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 279), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelDlgItems.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect2, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelDlgItems.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect2, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); SDL_Rect rect3 = { (Sint16)(PANEL_LEFT + 429), (Sint16)(UI_OFFSET_Y + 427), 140, 35 }; - vecSelDlgItems.push_back(std::make_unique(_("Cancel"), &UiFocusNavigationEsc, rect3, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelDlgItems.push_back(std::make_unique(_("Cancel"), &UiFocusNavigationEsc, rect3, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); UiInitList(vecSelHeroDlgItems.size(), SelheroLoadFocus, SelheroLoadSelect, selhero_List_Init, vecSelDlgItems, true); title = _("Single Player Characters"); @@ -271,16 +271,16 @@ void SelheroClassSelectorSelect(int value) strncpy(selhero_heroInfo.name, SelheroGenerateName(selhero_heroInfo.heroclass), sizeof(selhero_heroInfo.name) - 1); vecSelDlgItems.clear(); SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 264), (Sint16)(UI_OFFSET_Y + 211), 320, 33 }; - vecSelDlgItems.push_back(std::make_unique(_("Enter Name"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelDlgItems.push_back(std::make_unique(_("Enter Name"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 265), (Sint16)(UI_OFFSET_Y + 317), 320, 33 }; - vecSelDlgItems.push_back(std::make_unique(_("Enter Name"), selhero_heroInfo.name, 15, rect2, UiFlags::FontSize24 | UiFlags::ColorGold)); + vecSelDlgItems.push_back(std::make_unique(_("Enter Name"), selhero_heroInfo.name, 15, rect2, UiFlags::FontSize24 | UiFlags::ColorUiGold)); SDL_Rect rect3 = { (Sint16)(PANEL_LEFT + 279), (Sint16)(UI_OFFSET_Y + 429), 140, 35 }; - vecSelDlgItems.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect3, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelDlgItems.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect3, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); SDL_Rect rect4 = { (Sint16)(PANEL_LEFT + 429), (Sint16)(UI_OFFSET_Y + 429), 140, 35 }; - vecSelDlgItems.push_back(std::make_unique(_("Cancel"), &UiFocusNavigationEsc, rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelDlgItems.push_back(std::make_unique(_("Cancel"), &UiFocusNavigationEsc, rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); UiInitList(0, nullptr, SelheroNameSelect, SelheroNameEsc, vecSelDlgItems); } @@ -456,7 +456,7 @@ void selhero_Init() vecSelDlgItems.clear(); SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 24), (Sint16)(UI_OFFSET_Y + 161), 590, 35 }; - vecSelHeroDialog.push_back(std::make_unique(&title, rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelHeroDialog.push_back(std::make_unique(&title, rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 30), (Sint16)(UI_OFFSET_Y + 211), 180, 76 }; auto heroImg = std::make_unique(&ArtHero, rect2, UiFlags::None, /*bAnimated=*/false, static_cast(enum_size::value)); @@ -464,38 +464,38 @@ void selhero_Init() vecSelHeroDialog.push_back(std::move(heroImg)); SDL_Rect rect3 = { (Sint16)(PANEL_LEFT + 39), (Sint16)(UI_OFFSET_Y + 323), 110, 21 }; - vecSelHeroDialog.push_back(std::make_unique(_("Level:"), rect3, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelHeroDialog.push_back(std::make_unique(_("Level:"), rect3, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect4 = { (Sint16)(PANEL_LEFT + 39), (Sint16)(UI_OFFSET_Y + 323), 110, 21 }; - vecSelHeroDialog.push_back(std::make_unique(_("Level:"), rect4, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelHeroDialog.push_back(std::make_unique(_("Level:"), rect4, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect5 = { (Sint16)(PANEL_LEFT + 159), (Sint16)(UI_OFFSET_Y + 323), 40, 21 }; - vecSelHeroDialog.push_back(std::make_unique(textStats[0], rect5, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelHeroDialog.push_back(std::make_unique(textStats[0], rect5, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect6 = { (Sint16)(PANEL_LEFT + 39), (Sint16)(UI_OFFSET_Y + 358), 110, 21 }; - vecSelHeroDialog.push_back(std::make_unique(_("Strength:"), rect6, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelHeroDialog.push_back(std::make_unique(_("Strength:"), rect6, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect7 = { (Sint16)(PANEL_LEFT + 159), (Sint16)(UI_OFFSET_Y + 358), 40, 21 }; - vecSelHeroDialog.push_back(std::make_unique(textStats[1], rect7, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelHeroDialog.push_back(std::make_unique(textStats[1], rect7, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect8 = { (Sint16)(PANEL_LEFT + 39), (Sint16)(UI_OFFSET_Y + 380), 110, 21 }; - vecSelHeroDialog.push_back(std::make_unique(_("Magic:"), rect8, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelHeroDialog.push_back(std::make_unique(_("Magic:"), rect8, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect9 = { (Sint16)(PANEL_LEFT + 159), (Sint16)(UI_OFFSET_Y + 380), 40, 21 }; - vecSelHeroDialog.push_back(std::make_unique(textStats[2], rect9, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelHeroDialog.push_back(std::make_unique(textStats[2], rect9, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect10 = { (Sint16)(PANEL_LEFT + 39), (Sint16)(UI_OFFSET_Y + 401), 110, 21 }; - vecSelHeroDialog.push_back(std::make_unique(_("Dexterity:"), rect10, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelHeroDialog.push_back(std::make_unique(_("Dexterity:"), rect10, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect11 = { (Sint16)(PANEL_LEFT + 159), (Sint16)(UI_OFFSET_Y + 401), 40, 21 }; - vecSelHeroDialog.push_back(std::make_unique(textStats[3], rect11, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelHeroDialog.push_back(std::make_unique(textStats[3], rect11, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect12 = { (Sint16)(PANEL_LEFT + 39), (Sint16)(UI_OFFSET_Y + 422), 110, 21 }; - vecSelHeroDialog.push_back(std::make_unique(_("Vitality:"), rect12, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelHeroDialog.push_back(std::make_unique(_("Vitality:"), rect12, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect13 = { (Sint16)(PANEL_LEFT + 159), (Sint16)(UI_OFFSET_Y + 422), 40, 21 }; - vecSelHeroDialog.push_back(std::make_unique(textStats[4], rect13, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelHeroDialog.push_back(std::make_unique(textStats[4], rect13, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); #if _DEBUG SDL_Rect rect14 = { (Sint16)(PANEL_LEFT + 39), (Sint16)(UI_OFFSET_Y + 443), 110, 21 }; - vecSelHeroDialog.push_back(std::make_unique(_("Savegame:"), rect14, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelHeroDialog.push_back(std::make_unique(_("Savegame:"), rect14, UiFlags::AlignRight | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); SDL_Rect rect15 = { (Sint16)(PANEL_LEFT + 159), (Sint16)(UI_OFFSET_Y + 443), 40, 21 }; - vecSelHeroDialog.push_back(std::make_unique(textStats[5], rect15, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorSilver)); + vecSelHeroDialog.push_back(std::make_unique(textStats[5], rect15, UiFlags::AlignCenter | UiFlags::FontSize12 | UiFlags::ColorUiSilverDark)); #endif } @@ -505,7 +505,7 @@ void selhero_List_Init() vecSelDlgItems.clear(); SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 264), (Sint16)(UI_OFFSET_Y + 211), 320, 33 }; - vecSelDlgItems.push_back(std::make_unique(_("Select Hero"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelDlgItems.push_back(std::make_unique(_("Select Hero"), rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); vecSelHeroDlgItems.clear(); const size_t numViewportHeroes = std::min(selhero_SaveCount + 1, MaxViewportItems); @@ -514,7 +514,7 @@ void selhero_List_Init() } SelheroUpdateViewportItems(); - vecSelDlgItems.push_back(std::make_unique(vecSelHeroDlgItems, PANEL_LEFT + 265, (UI_OFFSET_Y + 256), 320, 26, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorGold)); + vecSelDlgItems.push_back(std::make_unique(vecSelHeroDlgItems, PANEL_LEFT + 265, (UI_OFFSET_Y + 256), 320, 26, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorUiGold)); SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 585), (Sint16)(UI_OFFSET_Y + 244), 25, 178 }; auto pinnedScrollBar = std::make_unique(&ArtScrollBarBackground, &ArtScrollBarThumb, &ArtScrollBarArrow, rect2); @@ -522,15 +522,15 @@ void selhero_List_Init() vecSelDlgItems.push_back(std::move(pinnedScrollBar)); SDL_Rect rect3 = { (Sint16)(PANEL_LEFT + 239), (Sint16)(UI_OFFSET_Y + 429), 120, 35 }; - vecSelDlgItems.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect3, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelDlgItems.push_back(std::make_unique(_("OK"), &UiFocusNavigationSelect, rect3, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); SDL_Rect rect4 = { (Sint16)(PANEL_LEFT + 364), (Sint16)(UI_OFFSET_Y + 429), 120, 35 }; - auto setlistDialogDeleteButton = std::make_unique(_("Delete"), &SelheroUiFocusNavigationYesNo, rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver | UiFlags::ElementDisabled); + auto setlistDialogDeleteButton = std::make_unique(_("Delete"), &SelheroUiFocusNavigationYesNo, rect4, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver | UiFlags::ElementDisabled); SELLIST_DIALOG_DELETE_BUTTON = setlistDialogDeleteButton.get(); vecSelDlgItems.push_back(std::move(setlistDialogDeleteButton)); SDL_Rect rect5 = { (Sint16)(PANEL_LEFT + 489), (Sint16)(UI_OFFSET_Y + 429), 120, 35 }; - vecSelDlgItems.push_back(std::make_unique(_("Cancel"), &UiFocusNavigationEsc, rect5, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelDlgItems.push_back(std::make_unique(_("Cancel"), &UiFocusNavigationEsc, rect5, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); UiInitList(selhero_SaveCount + 1, SelheroListFocus, SelheroListSelect, SelheroListEsc, vecSelDlgItems, false, SelheroListDeleteYesNo); UiInitScrollBar(scrollBar, MaxViewportItems, &listOffset); diff --git a/Source/DiabloUI/selok.cpp b/Source/DiabloUI/selok.cpp index 9ba77b89c..b3491b584 100644 --- a/Source/DiabloUI/selok.cpp +++ b/Source/DiabloUI/selok.cpp @@ -56,17 +56,17 @@ void UiSelOkDialog(const char *title, const char *body, bool background) if (title != nullptr) { SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 24), (Sint16)(UI_OFFSET_Y + 161), 590, 35 }; - vecSelOkDialog.push_back(std::make_unique(title, rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelOkDialog.push_back(std::make_unique(title, rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 140), (Sint16)(UI_OFFSET_Y + 210), 560, 168 }; - vecSelOkDialog.push_back(std::make_unique(dialogText, rect2, UiFlags::FontSize24 | UiFlags::ColorSilver)); + vecSelOkDialog.push_back(std::make_unique(dialogText, rect2, UiFlags::FontSize24 | UiFlags::ColorUiSilver)); } else { SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 140), (Sint16)(UI_OFFSET_Y + 197), 560, 168 }; - vecSelOkDialog.push_back(std::make_unique(dialogText, rect1, UiFlags::FontSize24 | UiFlags::ColorSilver)); + vecSelOkDialog.push_back(std::make_unique(dialogText, rect1, UiFlags::FontSize24 | UiFlags::ColorUiSilver)); } vecSelOkDialogItems.push_back(std::make_unique(_("OK"), 0)); - vecSelOkDialog.push_back(std::make_unique(vecSelOkDialogItems, PANEL_LEFT + 230, (UI_OFFSET_Y + 390), 180, 35, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelOkDialog.push_back(std::make_unique(vecSelOkDialogItems, PANEL_LEFT + 230, (UI_OFFSET_Y + 390), 180, 35, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); strncpy(dialogText, body, sizeof(dialogText) - 1); WordWrapString(dialogText, MESSAGE_WIDTH, GameFont24); diff --git a/Source/DiabloUI/selyesno.cpp b/Source/DiabloUI/selyesno.cpp index 91b751686..c4446ed5a 100644 --- a/Source/DiabloUI/selyesno.cpp +++ b/Source/DiabloUI/selyesno.cpp @@ -46,14 +46,14 @@ bool UiSelHeroYesNoDialog(const char *title, const char *body) UiAddLogo(&vecSelYesNoDialog); SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 24), (Sint16)(UI_OFFSET_Y + 161), 590, 35 }; - vecSelYesNoDialog.push_back(std::make_unique(title, rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorSilver, 3)); + vecSelYesNoDialog.push_back(std::make_unique(title, rect1, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiSilver, 3)); SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 120), (Sint16)(UI_OFFSET_Y + 236), MESSAGE_WIDTH, 168 }; - vecSelYesNoDialog.push_back(std::make_unique(selyesno_confirmationMessage, rect2, UiFlags::FontSize24 | UiFlags::ColorSilver)); + vecSelYesNoDialog.push_back(std::make_unique(selyesno_confirmationMessage, rect2, UiFlags::FontSize24 | UiFlags::ColorUiSilver)); vecSelYesNoDialogItems.push_back(std::make_unique(_("Yes"), 0)); vecSelYesNoDialogItems.push_back(std::make_unique(_("No"), 1)); - vecSelYesNoDialog.push_back(std::make_unique(vecSelYesNoDialogItems, PANEL_LEFT + 230, (UI_OFFSET_Y + 390), 180, 35, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorGold)); + vecSelYesNoDialog.push_back(std::make_unique(vecSelYesNoDialogItems, PANEL_LEFT + 230, (UI_OFFSET_Y + 390), 180, 35, UiFlags::AlignCenter | UiFlags::FontSize30 | UiFlags::ColorUiGold)); strncpy(selyesno_confirmationMessage, body, sizeof(selyesno_confirmationMessage) - 1); WordWrapString(selyesno_confirmationMessage, MESSAGE_WIDTH, GameFont24); diff --git a/Source/DiabloUI/title.cpp b/Source/DiabloUI/title.cpp index a512f3010..6c2bf7f90 100644 --- a/Source/DiabloUI/title.cpp +++ b/Source/DiabloUI/title.cpp @@ -41,7 +41,7 @@ void UiTitleDialog() UiAddLogo(&vecTitleScreen, LOGO_BIG, 182); SDL_Rect rect = { (Sint16)(PANEL_LEFT), (Sint16)(UI_OFFSET_Y + 410), 640, 26 }; - vecTitleScreen.push_back(std::make_unique(_("Copyright © 1996-2001 Blizzard Entertainment"), rect, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorSilver)); + vecTitleScreen.push_back(std::make_unique(_("Copyright © 1996-2001 Blizzard Entertainment"), rect, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorUiSilver)); } TitleLoad(); diff --git a/Source/DiabloUI/ui_item.h b/Source/DiabloUI/ui_item.h index c6ebe7798..d9e5f43b5 100644 --- a/Source/DiabloUI/ui_item.h +++ b/Source/DiabloUI/ui_item.h @@ -24,31 +24,38 @@ enum class UiType { enum class UiFlags { // clang-format off - None = 0, - - FontSize12 = 1 << 0, - FontSize24 = 1 << 1, - FontSize30 = 1 << 2, - FontSize42 = 1 << 3, - FontSize46 = 1 << 4, - - ColorSilver = 1 << 5, - ColorGold = 1 << 6, - ColorRed = 1 << 7, - ColorBlue = 1 << 8, - ColorBlack = 1 << 9, - - AlignCenter = 1 << 10, - AlignRight = 1 << 11, - VerticalCenter = 1 << 12, - - KerningFitSpacing = 1 << 13, - - ElementDisabled = 1 << 14, - ElementHidden = 1 << 15, - - PentaCursor = 1 << 16, - TextCursor = 1 << 17, + None = 0, + + FontSize12 = 1 << 0, + FontSize24 = 1 << 1, + FontSize30 = 1 << 2, + FontSize42 = 1 << 3, + FontSize46 = 1 << 4, + + ColorUiGold = 1 << 5, + ColorUiSilver = 1 << 6, + ColorUiGoldDark = 1 << 7, + ColorUiSilverDark = 1 << 8, + ColorGold = 1 << 9, + ColorBlack = 1 << 10, + ColorWhite = 1 << 11, + ColorWhitegold = 1 << 12, + ColorRed = 1 << 13, + ColorBlue = 1 << 14, + ColorButtonface = 1 << 15, + ColorButtonpushed = 1 << 16, + + AlignCenter = 1 << 17, + AlignRight = 1 << 18, + VerticalCenter = 1 << 19, + + KerningFitSpacing = 1 << 20, + + ElementDisabled = 1 << 21, + ElementHidden = 1 << 22, + + PentaCursor = 1 << 23, + TextCursor = 1 << 24, // clang-format on }; diff --git a/Source/control.cpp b/Source/control.cpp index f9bd8e168..b3c1c1cf7 100644 --- a/Source/control.cpp +++ b/Source/control.cpp @@ -10,6 +10,8 @@ #include +#include "DiabloUI/art.h" +#include "DiabloUI/art_draw.h" #include "DiabloUI/diabloui.h" #include "automap.h" #include "controls/keymapper.hpp" @@ -26,6 +28,7 @@ #include "minitext.h" #include "missiles.h" #include "panels/charpanel.hpp" +#include "panels/mainpanel.hpp" #include "qol/xpbar.h" #include "stores.h" #include "towners.h" @@ -70,6 +73,7 @@ bool spselflag; Rectangle MainPanel; Rectangle LeftPanel; Rectangle RightPanel; +std::optional pBtmBuff; extern std::array quickSpellActionIndexes; @@ -81,9 +85,22 @@ Rectangle ChrBtnsRect[4] = { { { 137, 223 }, { 41, 22 } } }; +/** Positions of panel buttons. */ +SDL_Rect PanBtnPos[8] = { + // clang-format off + { 9, 9, 71, 19 }, // char button + { 9, 35, 71, 19 }, // quests button + { 9, 75, 71, 19 }, // map button + { 9, 101, 71, 19 }, // menu button + { 560, 9, 71, 19 }, // inv button + { 560, 35, 71, 19 }, // spells button + { 87, 91, 33, 32 }, // chat button + { 527, 91, 33, 32 }, // friendly fire button + // clang-format on +}; + namespace { -std::optional pBtmBuff; std::optional pLifeBuff; std::optional pManaBuff; std::optional talkButtons; @@ -175,19 +192,6 @@ enum panel_button_id { PanelButtonFriendly, }; -/** Positions of panel buttons. */ -SDL_Rect PanBtnPos[8] = { - // clang-format off - { 9, 9, 71, 19 }, // char button - { 9, 35, 71, 19 }, // quests button - { 9, 75, 71, 19 }, // map button - { 9, 101, 71, 19 }, // menu button - { 560, 9, 71, 19 }, // inv button - { 560, 35, 71, 19 }, // spells button - { 87, 91, 33, 32 }, // chat button - { 527, 91, 33, 32 }, // friendly fire button - // clang-format on -}; /** Maps from panel_button_id to hotkey name. */ const char *const PanBtnHotKey[8] = { "'c'", "'q'", N_("Tab"), N_("Esc"), "'i'", "'b'", N_("Enter"), nullptr }; /** Maps from panel_button_id to panel button description. */ @@ -311,7 +315,7 @@ void PrintSBookHotkey(const Surface &out, Point position, const std::string &tex // Draw a drop shadow below and to the left of the text DrawString(out, text, position + Displacement { -1, 1 }, UiFlags::ColorBlack); // Then draw the text over the top - DrawString(out, text, position, UiFlags::ColorSilver); + DrawString(out, text, position, UiFlags::ColorWhite); } /** @@ -457,7 +461,7 @@ int DrawDurIcon4Item(const Surface &out, Item &pItem, int x, int c) void PrintSBookStr(const Surface &out, Point position, const char *text) { - DrawString(out, text, { GetPanelPosition(UiPanels::Spell, { SPLICONLENGTH + position.x, position.y }), { 222, 0 } }, UiFlags::ColorSilver); + DrawString(out, text, { GetPanelPosition(UiPanels::Spell, { SPLICONLENGTH + position.x, position.y }), { 222, 0 } }, UiFlags::ColorWhite); } spell_type GetSBookTrans(spell_id ii, bool townok) @@ -643,6 +647,8 @@ bool GetSpellListSelection(spell_id &pSpell, spell_type &pSplType) return false; } +} // namespace + bool IsChatAvailable() { #ifdef _DEBUG @@ -652,8 +658,6 @@ bool IsChatAvailable() #endif } -} // namespace - void DrawSpell(const Surface &out) { auto &myPlayer = Players[MyPlayerId]; @@ -930,6 +934,7 @@ void InitControlPan() for (bool &talkButtonDown : TalkButtonsDown) talkButtonDown = false; } + LoadMainPanel(); panelflag = false; lvlbtndown = false; pPanelButtons = LoadCel("CtrlPan\\Panel8bu.CEL", 71); @@ -995,10 +1000,13 @@ void DrawCtrlPan(const Surface &out) void DrawCtrlBtns(const Surface &out) { for (int i = 0; i < 6; i++) { - if (!PanelButtons[i]) + if (!PanelButtons[i]) { DrawPanelBox(out, { PanBtnPos[i].x, PanBtnPos[i].y + 16, 71, 20 }, { PanBtnPos[i].x + PANEL_X, PanBtnPos[i].y + PANEL_Y }); - else - CelDrawTo(out, { PanBtnPos[i].x + PANEL_X, PanBtnPos[i].y + PANEL_Y + 18 }, *pPanelButtons, i + 1); + } else { + Point position { PanBtnPos[i].x + PANEL_X, PanBtnPos[i].y + PANEL_Y + 18 }; + CelDrawTo(out, position, *pPanelButtons, i + 1); + DrawArt(out, position + Displacement { 4, -18 }, &PanelButtonDown, i); + } } if (PanelButtonIndex == 8) { CelDrawTo(out, { 87 + PANEL_X, 122 + PANEL_Y }, *multiButtons, PanelButtons[6] ? 2 : 1); @@ -1149,13 +1157,13 @@ void CheckPanelInfo() strcpy(tempstr, fmt::format(_("Hotkey: {:s}"), _(PanBtnHotKey[i])).c_str()); AddPanelString(tempstr); } - InfoColor = UiFlags::ColorSilver; + InfoColor = UiFlags::ColorWhite; panelflag = true; } } if (!spselflag && MousePosition.x >= 565 + PANEL_LEFT && MousePosition.x < 621 + PANEL_LEFT && MousePosition.y >= 64 + PANEL_TOP && MousePosition.y < 120 + PANEL_TOP) { strcpy(infostr, _("Select current spell button")); - InfoColor = UiFlags::ColorSilver; + InfoColor = UiFlags::ColorWhite; panelflag = true; strcpy(tempstr, _("Hotkey: 's'")); AddPanelString(tempstr); @@ -1305,6 +1313,7 @@ void FreeControlPan() pSBkBtnCel = std::nullopt; pSBkIconCels = std::nullopt; pGBoxBuff = std::nullopt; + FreeMainPanel(); FreeCharPanel(); } @@ -1313,11 +1322,11 @@ void DrawInfoBox(const Surface &out) DrawPanelBox(out, { 177, 62, 288, 60 }, { PANEL_X + 177, PANEL_Y + 46 }); if (!panelflag && !trigflag && pcursinvitem == -1 && !spselflag) { infostr[0] = '\0'; - InfoColor = UiFlags::ColorSilver; + InfoColor = UiFlags::ColorWhite; ClearPanel(); } if (spselflag || trigflag) { - InfoColor = UiFlags::ColorSilver; + InfoColor = UiFlags::ColorWhite; } else if (pcurs >= CURSOR_FIRSTITEM) { auto &myPlayer = Players[MyPlayerId]; if (myPlayer.HoldItem._itype == ItemType::Gold) { @@ -1341,11 +1350,11 @@ void DrawInfoBox(const Surface &out) if (pcursmonst != -1) { const auto &monster = Monsters[pcursmonst]; if (leveltype != DTYPE_TOWN) { - InfoColor = UiFlags::ColorSilver; + InfoColor = UiFlags::ColorWhite; strcpy(infostr, monster.mName); ClearPanel(); if (monster._uniqtype != 0) { - InfoColor = UiFlags::ColorGold; + InfoColor = UiFlags::ColorWhitegold; PrintUniqueHistory(); } else { PrintMonstHistory(monster.MType->mtype); @@ -1357,7 +1366,7 @@ void DrawInfoBox(const Surface &out) } } if (pcursplr != -1) { - InfoColor = UiFlags::ColorGold; + InfoColor = UiFlags::ColorWhitegold; auto &target = Players[pcursplr]; strcpy(infostr, target._pName); ClearPanel(); @@ -1390,7 +1399,7 @@ void DrawLevelUpIcon(const Surface &out) { if (stextflag == STORE_NONE) { int nCel = lvlbtndown ? 3 : 2; - DrawString(out, _("Level Up"), { { PANEL_LEFT + 0, PANEL_TOP - 62 }, { 120, 0 } }, UiFlags::ColorSilver | UiFlags::AlignCenter); + DrawString(out, _("Level Up"), { { PANEL_LEFT + 0, PANEL_TOP - 62 }, { 120, 0 } }, UiFlags::ColorWhite | UiFlags::AlignCenter); CelDrawTo(out, { 40 + PANEL_X, -17 + PANEL_Y }, *pChrButtons, nCel); } } @@ -1610,7 +1619,7 @@ void DrawGoldSplit(const Surface &out, int amount) // The split gold dialog is roughly 4 lines high, but we need at least one line for the player to input an amount. // Using a clipping region 50 units high (approx 3 lines with a lineheight of 17) to ensure there is enough room left // for the text entered by the player. - DrawString(out, tempstr, { GetPanelPosition(UiPanels::Inventory, { dialogX + 31, 75 }), { 200, 50 } }, UiFlags::ColorGold | UiFlags::AlignCenter, 1, 17); + DrawString(out, tempstr, { GetPanelPosition(UiPanels::Inventory, { dialogX + 31, 75 }), { 200, 50 } }, UiFlags::ColorWhitegold | UiFlags::AlignCenter, 1, 17); tempstr[0] = '\0'; if (amount > 0) { @@ -1619,7 +1628,7 @@ void DrawGoldSplit(const Surface &out, int amount) } // Even a ten digit amount of gold only takes up about half a line. There's no need to wrap or clip text here so we // use the Point form of DrawString. - DrawString(out, tempstr, GetPanelPosition(UiPanels::Inventory, { dialogX + 37, 128 }), UiFlags::ColorSilver | UiFlags::PentaCursor); + DrawString(out, tempstr, GetPanelPosition(UiPanels::Inventory, { dialogX + 37, 128 }), UiFlags::ColorWhite | UiFlags::PentaCursor); } void control_drop_gold(char vkey) @@ -1678,7 +1687,7 @@ void DrawTalkPan(const Surface &out) int x = PANEL_LEFT + 200; int y = PANEL_Y + 10; - int idx = DrawString(out, msg, { { x, y }, { 250, 27 } }, UiFlags::ColorSilver | UiFlags::PentaCursor, 1, 13); + int idx = DrawString(out, msg, { { x, y }, { 250, 27 } }, UiFlags::ColorWhite | UiFlags::PentaCursor, 1, 13); msg[idx] = '\0'; x += 46; @@ -1690,16 +1699,18 @@ void DrawTalkPan(const Surface &out) UiFlags color = UiFlags::ColorRed; const Point talkPanPosition { 172 + PANEL_X, 84 + 18 * talkBtn + PANEL_Y }; if (WhisperList[i]) { - color = UiFlags::ColorGold; + color = UiFlags::ColorWhitegold; if (TalkButtonsDown[talkBtn]) { int nCel = talkBtn != 0 ? 4 : 3; CelDrawTo(out, talkPanPosition, *talkButtons, nCel); + DrawArt(out, talkPanPosition + Displacement { 4, -15 }, &TalkButton, 2); } } else { int nCel = talkBtn != 0 ? 2 : 1; if (TalkButtonsDown[talkBtn]) nCel += 4; CelDrawTo(out, talkPanPosition, *talkButtons, nCel); + DrawArt(out, talkPanPosition + Displacement { 4, -15 }, &TalkButton, TalkButtonsDown[talkBtn] ? 1 : 0); } auto &player = Players[i]; if (player.plractive) { diff --git a/Source/control.h b/Source/control.h index c3d4ee85d..9f771ebd2 100644 --- a/Source/control.h +++ b/Source/control.h @@ -52,7 +52,10 @@ extern bool spselflag; extern Rectangle MainPanel; extern Rectangle LeftPanel; extern Rectangle RightPanel; +extern std::optional pBtmBuff; +extern SDL_Rect PanBtnPos[8]; +bool IsChatAvailable(); /** * @brief Check if the UI can cover the game area entierly */ diff --git a/Source/controls/modifier_hints.cpp b/Source/controls/modifier_hints.cpp index 8ab376821..15403a3b1 100644 --- a/Source/controls/modifier_hints.cpp +++ b/Source/controls/modifier_hints.cpp @@ -95,7 +95,7 @@ bool IsLeftActive(const CircleMenuHint &hint) UiFlags CircleMenuHintTextColor(bool active) { - return active ? UiFlags::ColorBlue : UiFlags::ColorGold; + return active ? UiFlags::ColorBlue : UiFlags::ColorWhitegold; } /** diff --git a/Source/diablo.cpp b/Source/diablo.cpp index c071716c0..7a5f04a6f 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -1493,14 +1493,14 @@ void InitKeymapActions() void LoadGameFonts() { - LoadFont(GameFont12, ColorSilver, "fonts\\white.trn"); - LoadFont(GameFont12, ColorGold, "fonts\\whitegold.trn"); - LoadFont(GameFont12, ColorRed, "fonts\\red.trn"); - LoadFont(GameFont12, ColorBlue, "fonts\\blue.trn"); - LoadFont(GameFont12, ColorBlack, "fonts\\black.trn"); + LoadFont(GameFont12, ColorWhite); + LoadFont(GameFont12, ColorWhitegold); + LoadFont(GameFont12, ColorRed); + LoadFont(GameFont12, ColorBlue); + LoadFont(GameFont12, ColorBlack); LoadFont(GameFont30, ColorGold); LoadFont(GameFont46, ColorGold); - LoadFont(GameFont46, ColorBlack, "fonts\\black.trn"); + LoadFont(GameFont46, ColorBlack); } } // namespace diff --git a/Source/engine/render/text_render.cpp b/Source/engine/render/text_render.cpp index d2e6f15cc..e3fd7cc5e 100644 --- a/Source/engine/render/text_render.cpp +++ b/Source/engine/render/text_render.cpp @@ -32,18 +32,78 @@ std::array FontSizes = { 12, 24, 30, 42, 46 }; std::array LineHeights = { 12, 26, 38, 42, 50 }; std::array BaseLineOffset = { -3, -2, -3, -6, -7 }; +std::array ColorTranlations = { + "fonts\\goldui.trn", + "fonts\\grayui.trn", + "fonts\\golduis.trn", + "fonts\\grayuis.trn", + + nullptr, + "fonts\\black.trn", + + "fonts\\white.trn", + "fonts\\whitegold.trn", + "fonts\\red.trn", + "fonts\\blue.trn", + + "fonts\\buttonface.trn", + "fonts\\buttonpushed.trn", +}; + +GameFontTables GetSizeFromFlags(UiFlags flags) +{ + if (HasAnyOf(flags, UiFlags::FontSize24)) + return GameFont24; + else if (HasAnyOf(flags, UiFlags::FontSize30)) + return GameFont30; + else if (HasAnyOf(flags, UiFlags::FontSize42)) + return GameFont42; + else if (HasAnyOf(flags, UiFlags::FontSize46)) + return GameFont46; + + return GameFont12; +} + +text_color GetColorFromFlags(UiFlags flags) +{ + if (HasAnyOf(flags, UiFlags::ColorWhite)) + return ColorWhite; + else if (HasAnyOf(flags, UiFlags::ColorBlue)) + return ColorBlue; + else if (HasAnyOf(flags, UiFlags::ColorRed)) + return ColorRed; + else if (HasAnyOf(flags, UiFlags::ColorBlack)) + return ColorBlack; + else if (HasAnyOf(flags, UiFlags::ColorGold)) + return ColorGold; + else if (HasAnyOf(flags, UiFlags::ColorUiGold)) + return ColorUiGold; + else if (HasAnyOf(flags, UiFlags::ColorUiSilver)) + return ColorUiSilver; + else if (HasAnyOf(flags, UiFlags::ColorUiGoldDark)) + return ColorUiGoldDark; + else if (HasAnyOf(flags, UiFlags::ColorUiSilverDark)) + return ColorUiSilverDark; + else if (HasAnyOf(flags, UiFlags::ColorButtonface)) + return ColorButtonface; + else if (HasAnyOf(flags, UiFlags::ColorButtonpushed)) + return ColorButtonpushed; + + return ColorWhitegold; +} + } // namespace -void LoadFont(GameFontTables size, text_color color, const char *translationFile) +void LoadFont(GameFontTables size, text_color color) { auto font = std::make_unique(); char path[32]; sprintf(path, "fonts\\%i-00.pcx", FontSizes[size]); - if (translationFile != nullptr) { + if (ColorTranlations[color] != nullptr) { std::array colorMapping; - LoadFileInMem(translationFile, colorMapping); + LoadFileInMem(ColorTranlations[color], colorMapping); LoadMaskedArt(path, font.get(), 256, 1, &colorMapping); } else { LoadMaskedArt(path, font.get(), 256, 1); @@ -56,6 +116,19 @@ void LoadFont(GameFontTables size, text_color color, const char *translationFile LoadFileInMem(path, FontKerns[size]); } +void UnloadFont(GameFontTables size, text_color color) +{ + uint32_t fontId = (color << 24) | (size << 16); + + for (auto font = Fonts.begin(); font != Fonts.end();) { + if ((font->first & 0xFFFF0000) == fontId) { + Fonts.erase(font++); + } else { + font++; + } + } +} + void UnloadFonts() { Fonts.clear(); @@ -136,25 +209,8 @@ void WordWrapString(char *text, size_t width, GameFontTables size, int spacing) */ uint32_t DrawString(const Surface &out, string_view text, const Rectangle &rect, UiFlags flags, int spacing, int lineHeight) { - GameFontTables size = GameFont12; - if (HasAnyOf(flags, UiFlags::FontSize24)) - size = GameFont24; - else if (HasAnyOf(flags, UiFlags::FontSize30)) - size = GameFont30; - else if (HasAnyOf(flags, UiFlags::FontSize42)) - size = GameFont42; - else if (HasAnyOf(flags, UiFlags::FontSize46)) - size = GameFont46; - - text_color color = ColorGold; - if (HasAnyOf(flags, UiFlags::ColorSilver)) - color = ColorSilver; - else if (HasAnyOf(flags, UiFlags::ColorBlue)) - color = ColorBlue; - else if (HasAnyOf(flags, UiFlags::ColorRed)) - color = ColorRed; - else if (HasAnyOf(flags, UiFlags::ColorBlack)) - color = ColorBlack; + GameFontTables size = GetSizeFromFlags(flags); + text_color color = GetColorFromFlags(flags); int charactersInLine = 0; int lineWidth = 0; @@ -222,6 +278,7 @@ uint32_t DrawString(const Surface &out, string_view text, const Rectangle &rect, if (text[i] != '\n') characterPosition.x += FontKerns[size][frame] + spacing; } + if (HasAnyOf(flags, UiFlags::PentaCursor)) { CelDrawTo(out, characterPosition + Displacement { 0, lineHeight - BaseLineOffset[size] }, *pSPentSpn2Cels, PentSpn2Spin()); } else if (HasAnyOf(flags, UiFlags::TextCursor) && GetAnimationFrame(2, 500) != 0) { diff --git a/Source/engine/render/text_render.hpp b/Source/engine/render/text_render.hpp index 9446c2dc5..0ae97fa8f 100644 --- a/Source/engine/render/text_render.hpp +++ b/Source/engine/render/text_render.hpp @@ -27,16 +27,27 @@ enum GameFontTables : uint8_t { }; enum text_color : uint8_t { - ColorSilver, + ColorUiGold, + ColorUiSilver, + ColorUiGoldDark, + ColorUiSilverDark, + ColorGold, + ColorBlack, + + ColorWhite, + ColorWhitegold, ColorRed, ColorBlue, - ColorBlack, + + ColorButtonface, + ColorButtonpushed, }; extern std::optional pSPentSpn2Cels; -void LoadFont(GameFontTables size, text_color color, const char *translationFile = nullptr); +void LoadFont(GameFontTables size, text_color color); +void UnloadFont(GameFontTables size, text_color color); /** * @brief Calculate pixel width of first line of text, respecting kerning diff --git a/Source/gmenu.cpp b/Source/gmenu.cpp index b62e356fe..cd200dace 100644 --- a/Source/gmenu.cpp +++ b/Source/gmenu.cpp @@ -163,7 +163,7 @@ void gmenu_draw_pause(const Surface &out) RedBack(out); if (sgpCurrentMenu == nullptr) { LightTableIndex = 0; - DrawString(out, _("Pause"), { { 0, 0 }, { gnScreenWidth, PANEL_TOP } }, UiFlags::FontSize46 | UiFlags::AlignCenter | UiFlags::VerticalCenter, 2); + DrawString(out, _("Pause"), { { 0, 0 }, { gnScreenWidth, PANEL_TOP } }, UiFlags::FontSize46 | UiFlags::ColorGold | UiFlags::AlignCenter | UiFlags::VerticalCenter, 2); } } diff --git a/Source/help.cpp b/Source/help.cpp index 3b302e548..b6c2da454 100644 --- a/Source/help.cpp +++ b/Source/help.cpp @@ -130,7 +130,7 @@ void DrawHelp(const Surface &out) title = gbIsSpawn ? _("Shareware Hellfire Help") : _("Hellfire Help"); else title = gbIsSpawn ? _("Shareware Diablo Help") : _("Diablo Help"); - PrintSString(out, 0, 2, title, UiFlags::ColorGold | UiFlags::AlignCenter); + PrintSString(out, 0, 2, title, UiFlags::ColorWhitegold | UiFlags::AlignCenter); DrawSLine(out, 5); @@ -144,7 +144,7 @@ void DrawHelp(const Surface &out) } int offset = 0; - UiFlags style = UiFlags::ColorSilver; + UiFlags style = UiFlags::ColorWhite; if (line[0] == '$') { offset = 1; style = UiFlags::ColorRed; @@ -153,7 +153,7 @@ void DrawHelp(const Surface &out) DrawString(out, &line[offset], { { sx, sy + i * 12 }, { 577, 12 } }, style); } - PrintSString(out, 0, 23, _("Press ESC to end or the arrow keys to scroll."), UiFlags::ColorGold | UiFlags::AlignCenter); + PrintSString(out, 0, 23, _("Press ESC to end or the arrow keys to scroll."), UiFlags::ColorWhitegold | UiFlags::AlignCenter); } void DisplayHelp() diff --git a/Source/inv.cpp b/Source/inv.cpp index df87ef663..18e0f2313 100644 --- a/Source/inv.cpp +++ b/Source/inv.cpp @@ -1247,7 +1247,7 @@ void DrawInvBelt(const Surface &out) && myPlayer.SpdList[i]._iStatFlag && myPlayer.SpdList[i]._itype != ItemType::Gold) { snprintf(tempstr, sizeof(tempstr) / sizeof(*tempstr), "%i", i + 1); - DrawString(out, tempstr, { position - Displacement { 0, 12 }, InventorySlotSizeInPixels }, UiFlags::ColorSilver | UiFlags::AlignRight); + DrawString(out, tempstr, { position - Displacement { 0, 12 }, InventorySlotSizeInPixels }, UiFlags::ColorWhite | UiFlags::AlignRight); } } } @@ -1837,7 +1837,7 @@ int8_t CheckInvHLight() return -1; int8_t rv = -1; - InfoColor = UiFlags::ColorSilver; + InfoColor = UiFlags::ColorWhite; Item *pi = nullptr; auto &myPlayer = Players[MyPlayerId]; diff --git a/Source/items.cpp b/Source/items.cpp index 08ae1c69c..84dbfab91 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -4141,7 +4141,7 @@ void DrawUniqueInfo(const Surface &out) break; rect.position.y += 2 * 12; PrintItemPower(power.type, &curruitem); - DrawString(out, tempstr, rect, UiFlags::ColorSilver | UiFlags::AlignCenter); + DrawString(out, tempstr, rect, UiFlags::ColorWhite | UiFlags::AlignCenter); } } diff --git a/Source/items.h b/Source/items.h index 34e5277bd..cde37819a 100644 --- a/Source/items.h +++ b/Source/items.h @@ -363,9 +363,9 @@ struct Item { case ITEM_QUALITY_MAGIC: return UiFlags::ColorBlue; case ITEM_QUALITY_UNIQUE: - return UiFlags::ColorGold; + return UiFlags::ColorWhitegold; default: - return UiFlags::ColorSilver; + return UiFlags::ColorWhite; } } diff --git a/Source/minitext.cpp b/Source/minitext.cpp index 7b8e00297..1d3c1e605 100644 --- a/Source/minitext.cpp +++ b/Source/minitext.cpp @@ -117,7 +117,7 @@ void DrawQTextContent(const Surface &out) continue; } - DrawString(out, line, { { sx, sy + i * LineHeight }, { 543, LineHeight } }, UiFlags::FontSize30); + DrawString(out, line, { { sx, sy + i * LineHeight }, { 543, LineHeight } }, UiFlags::FontSize30 | UiFlags::ColorGold); } } diff --git a/Source/panels/charpanel.cpp b/Source/panels/charpanel.cpp index e89d8c3e1..e951578ca 100644 --- a/Source/panels/charpanel.cpp +++ b/Source/panels/charpanel.cpp @@ -44,15 +44,15 @@ struct PanelEntry { UiFlags GetBaseStatColor(CharacterAttribute attr) { - UiFlags style = UiFlags::ColorSilver; + UiFlags style = UiFlags::ColorWhite; if (MyPlayer->GetBaseAttributeValue(attr) == MyPlayer->GetMaximumAttributeValue(attr)) - style = UiFlags::ColorGold; + style = UiFlags::ColorWhitegold; return style; } UiFlags GetCurrentStatColor(CharacterAttribute attr) { - UiFlags style = UiFlags::ColorSilver; + UiFlags style = UiFlags::ColorWhite; int current = MyPlayer->GetCurrentAttributeValue(attr); int base = MyPlayer->GetBaseAttributeValue(attr); if (current > base) @@ -64,7 +64,7 @@ UiFlags GetCurrentStatColor(CharacterAttribute attr) UiFlags GetValueColor(int value, bool flip = false) { - UiFlags style = UiFlags::ColorSilver; + UiFlags style = UiFlags::ColorWhite; if (value > 0) style = (flip ? UiFlags::ColorRed : UiFlags::ColorBlue); if (value < 0) @@ -74,12 +74,12 @@ UiFlags GetValueColor(int value, bool flip = false) UiFlags GetMaxManaColor() { - return MyPlayer->_pMaxMana > MyPlayer->_pMaxManaBase ? UiFlags::ColorBlue : UiFlags::ColorSilver; + return MyPlayer->_pMaxMana > MyPlayer->_pMaxManaBase ? UiFlags::ColorBlue : UiFlags::ColorWhite; } UiFlags GetMaxHealthColor() { - return MyPlayer->_pMaxHP > MyPlayer->_pMaxHPBase ? UiFlags::ColorBlue : UiFlags::ColorSilver; + return MyPlayer->_pMaxHP > MyPlayer->_pMaxHPBase ? UiFlags::ColorBlue : UiFlags::ColorWhite; } std::pair GetDamage() @@ -99,11 +99,11 @@ StyledText GetResistInfo(int8_t resist) { UiFlags style = UiFlags::ColorBlue; if (resist == 0) - style = UiFlags::ColorSilver; + style = UiFlags::ColorWhite; else if (resist < 0) style = UiFlags::ColorRed; else if (resist >= MAXRESIST) - style = UiFlags::ColorGold; + style = UiFlags::ColorWhitegold; return { style, (resist >= MAXRESIST ? _("MAX") : fmt::format("{:d}%", resist)) @@ -112,20 +112,20 @@ StyledText GetResistInfo(int8_t resist) PanelEntry panelEntries[] = { { "", { 9, 14 }, 150, 0, - []() { return StyledText { UiFlags::ColorSilver, MyPlayer->_pName }; } }, + []() { return StyledText { UiFlags::ColorWhite, MyPlayer->_pName }; } }, { "", { 161, 14 }, 149, 0, - []() { return StyledText { UiFlags::ColorSilver, _(ClassStrTbl[static_cast(MyPlayer->_pClass)]) }; } }, + []() { return StyledText { UiFlags::ColorWhite, _(ClassStrTbl[static_cast(MyPlayer->_pClass)]) }; } }, { N_("Level"), { 57, 52 }, 57, 45, - []() { return StyledText { UiFlags::ColorSilver, fmt::format("{:d}", MyPlayer->_pLevel) }; } }, + []() { return StyledText { UiFlags::ColorWhite, fmt::format("{:d}", MyPlayer->_pLevel) }; } }, { N_("Experience"), { 211, 52 }, 99, 91, - []() { return StyledText { UiFlags::ColorSilver, fmt::format("{:d}", MyPlayer->_pExperience) }; } }, + []() { return StyledText { UiFlags::ColorWhite, fmt::format("{:d}", MyPlayer->_pExperience) }; } }, { N_("Next level"), { 211, 80 }, 99, 198, []() { if (MyPlayer->_pLevel == MAXCHARLEVEL - 1) { - return StyledText { UiFlags::ColorGold, _("None") }; + return StyledText { UiFlags::ColorWhitegold, _("None") }; } else { - return StyledText { UiFlags::ColorSilver, fmt::format("{:d}", MyPlayer->_pNextExper) }; + return StyledText { UiFlags::ColorWhite, fmt::format("{:d}", MyPlayer->_pNextExper) }; } } }, @@ -153,7 +153,7 @@ PanelEntry panelEntries[] = { { N_("Gold"), { 211, 107 }, 0, 98 }, { "", { 211, 127 }, 99, 0, - []() { return StyledText { UiFlags::ColorSilver, fmt::format("{:d}", MyPlayer->_pGold) }; } }, + []() { return StyledText { UiFlags::ColorWhite, fmt::format("{:d}", MyPlayer->_pGold) }; } }, { N_("Armor class"), { 253, 163 }, 57, 67, []() { return StyledText { GetValueColor(MyPlayer->_pIBonusAC), fmt::format("{:d}", MyPlayer->GetArmor()) }; } }, @@ -222,7 +222,7 @@ void DrawShadowString(const Surface &out, const PanelEntry &entry) } DrawString(out, text, { labelPosition + Displacement { -2, 2 }, { entry.labelLength, 20 } }, style | UiFlags::ColorBlack, spacing, 10); - DrawString(out, text, { labelPosition, { entry.labelLength, 20 } }, style | UiFlags::ColorSilver, spacing, 10); + DrawString(out, text, { labelPosition, { entry.labelLength, 20 } }, style | UiFlags::ColorWhite, spacing, 10); } void DrawStatButtons(const Surface &out) diff --git a/Source/panels/mainpanel.cpp b/Source/panels/mainpanel.cpp new file mode 100644 index 000000000..bb50dc861 --- /dev/null +++ b/Source/panels/mainpanel.cpp @@ -0,0 +1,128 @@ +#include "panels/mainpanel.hpp" + +#include "control.h" +#include "engine/render/cel_render.hpp" +#include "engine/render/text_render.hpp" +#include "utils/display.h" +#include "utils/language.h" +#include "utils/sdl_compat.h" +#include "utils/sdl_geometry.h" + +namespace devilution { + +Art PanelButtonDown; +Art TalkButton; + +namespace { + +Art PanelButton; +Art PanelButtonGrime; +Art PanelButtonDownGrime; + +void DrawButtonText(const Surface &out, const char *text, Rectangle placment, UiFlags style, int spacing = 1) +{ + DrawString(out, text, { placment.position + Displacement { 0, 1 }, placment.size }, UiFlags::AlignCenter | UiFlags::KerningFitSpacing | UiFlags::ColorBlack, spacing); + DrawString(out, text, placment, UiFlags::AlignCenter | UiFlags::KerningFitSpacing | style, spacing); +} + +void DrawButtonOnPanel(Point position, const char *text, int frame) +{ + DrawArt(*pBtmBuff, position, &PanelButton, frame); + int spacing = 2; + int width = std::min(GetLineWidth(text, GameFont12, spacing), PanelButton.w()); + if (width > 38) { + spacing = 1; + width = std::min(GetLineWidth(text, GameFont12, spacing), PanelButton.w()); + } + DrawArt(*pBtmBuff, position + Displacement { (PanelButton.w() - width) / 2, 7 }, &PanelButtonGrime, frame, width); + DrawButtonText(*pBtmBuff, text, { position, { PanelButton.w(), 0 } }, UiFlags::ColorButtonface, spacing); +} + +void RenderMainButton(int buttonId, const char *text, int frame) +{ + Point panelPosition { PanBtnPos[buttonId].x + 4, PanBtnPos[buttonId].y + 17 }; + DrawButtonOnPanel(panelPosition, text, frame); + if (IsChatAvailable()) + DrawButtonOnPanel(panelPosition + Displacement { 0, PANEL_HEIGHT + 16 }, text, frame); + + const Surface out(PanelButtonDown.surface.get()); + Point position { 0, 19 * buttonId }; + int spacing = 2; + int width = std::min(GetLineWidth(text, GameFont12, spacing), PanelButton.w()); + if (width > 38) { + spacing = 1; + width = std::min(GetLineWidth(text, GameFont12, spacing), PanelButton.w()); + } + DrawArt(out, position + Displacement { (PanelButton.w() - width) / 2, 9 }, &PanelButtonDownGrime, frame, width); + DrawButtonText(out, text, { position + Displacement { 0, 2 }, { PanelButtonDown.w(), 0 } }, UiFlags::ColorButtonpushed, spacing); +} + +void DrawTalkButton(int buttonId) +{ + const char *text = _("voice"); + Point position { 176, PANEL_HEIGHT + 101 + 18 * buttonId }; + DrawArt(*pBtmBuff, position, &TalkButton); + int width = std::min(GetLineWidth(text, GameFont12, 1), PanelButton.w()); + DrawArt(*pBtmBuff, position + Displacement { (TalkButton.w() - width) / 2, 6 }, &PanelButtonGrime, 1, width, 9); + DrawButtonText(*pBtmBuff, text, { position, { TalkButton.w(), 0 } }, UiFlags::ColorButtonface); +} + +} // namespace + +void LoadMainPanel() +{ + LoadArt("data\\panel8buc.pcx", &PanelButton, 2); + LoadArt("data\\dirtybuc.pcx", &PanelButtonGrime, 2); + LoadArt("data\\panel8bucp.pcx", &PanelButtonDown, 6); + LoadArt("data\\dirtybucp.pcx", &PanelButtonDownGrime, 2); + + // Load palette to render targets + UpdatePalette(&PanelButtonDown); + if (SDLC_SetSurfaceColors(pBtmBuff->surface, PalSurface->format->palette) <= -1) + ErrSdl(); + + LoadFont(GameFont12, ColorButtonface); + LoadFont(GameFont12, ColorButtonpushed); + + RenderMainButton(0, _("char"), 0); + RenderMainButton(1, _("quests"), 1); + RenderMainButton(2, _("map"), 1); + RenderMainButton(3, _("menu"), 0); + RenderMainButton(4, _("inv"), 1); + RenderMainButton(5, _("spells"), 0); + + if (IsChatAvailable()) { + LoadArt("data\\talkbutton.pcx", &TalkButton, 3); + UpdatePalette(&TalkButton); + + // Must be done before adding the text to TalkButton + DrawTalkButton(0); + DrawTalkButton(1); + DrawTalkButton(2); + + const Surface talkSurface(TalkButton.surface.get()); + int muteWidth = GetLineWidth(_("mute"), GameFont12, 2); + DrawArt(talkSurface, { (TalkButton.w() - muteWidth) / 2, 6 }, &PanelButtonGrime, 1, muteWidth, 9); + DrawButtonText(talkSurface, _("mute"), { { 0, 0 }, { TalkButton.w(), 0 } }, UiFlags::ColorButtonface); + DrawArt(talkSurface, { (TalkButton.w() - muteWidth) / 2, 23 }, &PanelButtonGrime, 1, muteWidth, 9); + DrawButtonText(talkSurface, _("mute"), { { 0, 17 }, { TalkButton.w(), 0 } }, UiFlags::ColorButtonpushed); + int voiceWidth = GetLineWidth(_("voice"), GameFont12, 2); + DrawArt(talkSurface, { (TalkButton.w() - voiceWidth) / 2, 39 }, &PanelButtonGrime, 1, voiceWidth, 9); + DrawButtonText(talkSurface, _("voice"), { { 0, 33 }, { TalkButton.w(), 0 } }, UiFlags::ColorButtonpushed); + } + + UnloadFont(GameFont12, ColorButtonface); + UnloadFont(GameFont12, ColorButtonpushed); + + PanelButton.Unload(); + PanelButtonGrime.Unload(); + PanelButtonDownGrime.Unload(); +} + +void FreeMainPanel() +{ + PanelButtonDown.Unload(); + TalkButton.Unload(); +} + +} // namespace devilution diff --git a/Source/panels/mainpanel.hpp b/Source/panels/mainpanel.hpp new file mode 100644 index 000000000..1877f2e69 --- /dev/null +++ b/Source/panels/mainpanel.hpp @@ -0,0 +1,14 @@ +#pragma once + +#include "DiabloUI/art.h" +#include "DiabloUI/art_draw.h" + +namespace devilution { + +extern Art PanelButtonDown; +extern Art TalkButton; + +void LoadMainPanel(); +void FreeMainPanel(); + +} // namespace devilution diff --git a/Source/plrmsg.cpp b/Source/plrmsg.cpp index 42352807b..af8878233 100644 --- a/Source/plrmsg.cpp +++ b/Source/plrmsg.cpp @@ -22,7 +22,7 @@ uint8_t plr_msg_slot; _plrmsg plr_msgs[PMSG_COUNT]; /** Maps from player_num to text color, as used in chat messages. */ -const UiFlags TextColorFromPlayerId[MAX_PLRS + 1] = { UiFlags::ColorSilver, UiFlags::ColorSilver, UiFlags::ColorSilver, UiFlags::ColorSilver, UiFlags::ColorGold }; +const UiFlags TextColorFromPlayerId[MAX_PLRS + 1] = { UiFlags::ColorWhite, UiFlags::ColorWhite, UiFlags::ColorWhite, UiFlags::ColorWhite, UiFlags::ColorWhitegold }; void PrintChatMessage(const Surface &out, int x, int y, int width, char *text, UiFlags style) { diff --git a/Source/qol/monhealthbar.cpp b/Source/qol/monhealthbar.cpp index bbbf67dcf..ca35ad0c6 100644 --- a/Source/qol/monhealthbar.cpp +++ b/Source/qol/monhealthbar.cpp @@ -112,11 +112,11 @@ void DrawMonsterHealthBar(const Surface &out) UiFlags style = UiFlags::AlignCenter | UiFlags::VerticalCenter; DrawString(out, monster.mName, { position + Displacement { -1, 1 }, width, height }, style | UiFlags::ColorBlack); if (monster._uniqtype != 0) - style |= UiFlags::ColorGold; + style |= UiFlags::ColorWhitegold; else if (monster.leader != 0) style |= UiFlags::ColorBlue; else - style |= UiFlags::ColorSilver; + style |= UiFlags::ColorWhite; DrawString(out, monster.mName, { position, width, height }, style); if (monster._uniqtype != 0 || MonsterKillCounts[monster.MType->mtype] >= 15) { diff --git a/Source/qol/xpbar.cpp b/Source/qol/xpbar.cpp index 49088d55c..13ad8e206 100644 --- a/Source/qol/xpbar.cpp +++ b/Source/qol/xpbar.cpp @@ -127,7 +127,7 @@ bool CheckXPBarInfo() if (charLevel == MAXCHARLEVEL - 1) { // Show a maximum level indicator for max level players. - InfoColor = UiFlags::ColorGold; + InfoColor = UiFlags::ColorWhitegold; strcpy(tempstr, _("Experience: ")); PrintWithSeparator(tempstr + strlen(tempstr), ExpLvlsTbl[charLevel - 1]); @@ -138,7 +138,7 @@ bool CheckXPBarInfo() return true; } - InfoColor = UiFlags::ColorSilver; + InfoColor = UiFlags::ColorWhite; strcpy(tempstr, _("Experience: ")); PrintWithSeparator(tempstr + strlen(tempstr), player._pExperience); diff --git a/Source/quests.cpp b/Source/quests.cpp index f9969d4ab..b7bd636d3 100644 --- a/Source/quests.cpp +++ b/Source/quests.cpp @@ -270,7 +270,7 @@ void PrintQLString(const Surface &out, int x, int y, const char *str, bool marke if (marked) { CelDrawTo(out, GetPanelPosition(UiPanels::Quest, { x - 20, y + 13 }), *pSPentSpn2Cels, PentSpn2Spin()); } - DrawString(out, str, { GetPanelPosition(UiPanels::Quest, { x, y }), { 257, 0 } }, disabled ? UiFlags::ColorGold : UiFlags::ColorSilver); + DrawString(out, str, { GetPanelPosition(UiPanels::Quest, { x, y }), { 257, 0 } }, disabled ? UiFlags::ColorWhitegold : UiFlags::ColorWhite); if (marked) { CelDrawTo(out, GetPanelPosition(UiPanels::Quest, { x + width + 7, y + 13 }), *pSPentSpn2Cels, PentSpn2Spin()); } diff --git a/Source/stores.cpp b/Source/stores.cpp index 9936055e9..0ae198ba8 100644 --- a/Source/stores.cpp +++ b/Source/stores.cpp @@ -240,15 +240,15 @@ void StartSmith() { stextsize = false; stextscrl = false; - AddSText(0, 1, _("Welcome to the"), UiFlags::ColorGold | UiFlags::AlignCenter, false); - AddSText(0, 3, _("Blacksmith's shop"), UiFlags::ColorGold | UiFlags::AlignCenter, false); - AddSText(0, 7, _("Would you like to:"), UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, _("Welcome to the"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); + AddSText(0, 3, _("Blacksmith's shop"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); + AddSText(0, 7, _("Would you like to:"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSText(0, 10, _("Talk to Griswold"), UiFlags::ColorBlue | UiFlags::AlignCenter, true); - AddSText(0, 12, _("Buy basic items"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); - AddSText(0, 14, _("Buy premium items"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); - AddSText(0, 16, _("Sell items"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); - AddSText(0, 18, _("Repair items"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); - AddSText(0, 20, _("Leave the shop"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 12, _("Buy basic items"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); + AddSText(0, 14, _("Buy premium items"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); + AddSText(0, 16, _("Sell items"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); + AddSText(0, 18, _("Repair items"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); + AddSText(0, 20, _("Leave the shop"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); AddSLine(5); storenumh = 20; } @@ -288,11 +288,11 @@ void StartSmithBuy() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("I have these items for sale: Your gold: {:d}"), Players[MyPlayerId]._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); ScrollSmithBuy(stextsval); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, false); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, false); OffsetSTextY(22, 6); storenumh = 0; @@ -350,10 +350,10 @@ bool StartSmithPremiumBuy() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("I have these premium items for sale: Your gold: {:d}"), Players[MyPlayerId]._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, false); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, false); OffsetSTextY(22, 6); stextsmax = std::max(storenumh - 4, 0); @@ -473,10 +473,10 @@ void StartSmithSell() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("You have nothing I want. Your gold: {:d}"), myPlayer._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); OffsetSTextY(22, 6); return; } @@ -488,11 +488,11 @@ void StartSmithSell() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("Which item is for sale? Your gold: {:d}"), myPlayer._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); ScrollSmithSell(stextsval); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); OffsetSTextY(22, 6); } @@ -563,10 +563,10 @@ void StartSmithRepair() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("You have nothing to repair. Your gold: {:d}"), myPlayer._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); OffsetSTextY(22, 6); return; } @@ -578,11 +578,11 @@ void StartSmithRepair() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("Repair which item? Your gold: {:d}"), myPlayer._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); ScrollSmithSell(stextsval); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); OffsetSTextY(22, 6); } @@ -606,13 +606,13 @@ void StartWitch() FillManaPlayer(); stextsize = false; stextscrl = false; - AddSText(0, 2, _("Witch's shack"), UiFlags::ColorGold | UiFlags::AlignCenter, false); - AddSText(0, 9, _("Would you like to:"), UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 2, _("Witch's shack"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); + AddSText(0, 9, _("Would you like to:"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSText(0, 12, _("Talk to Adria"), UiFlags::ColorBlue | UiFlags::AlignCenter, true); - AddSText(0, 14, _("Buy items"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); - AddSText(0, 16, _("Sell items"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); - AddSText(0, 18, _("Recharge staves"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); - AddSText(0, 20, _("Leave the shack"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 14, _("Buy items"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); + AddSText(0, 16, _("Sell items"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); + AddSText(0, 18, _("Recharge staves"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); + AddSText(0, 20, _("Leave the shack"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); AddSLine(5); storenumh = 20; } @@ -653,11 +653,11 @@ void StartWitchBuy() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("I have these items for sale: Your gold: {:d}"), Players[MyPlayerId]._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); ScrollWitchBuy(stextsval); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, false); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, false); OffsetSTextY(22, 6); storenumh = 0; @@ -745,10 +745,10 @@ void StartWitchSell() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("You have nothing I want. Your gold: {:d}"), myPlayer._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); OffsetSTextY(22, 6); return; } @@ -760,11 +760,11 @@ void StartWitchSell() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("Which item is for sale? Your gold: {:d}"), myPlayer._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); ScrollSmithSell(stextsval); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); OffsetSTextY(22, 6); } @@ -826,10 +826,10 @@ void StartWitchRecharge() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("You have nothing to recharge. Your gold: {:d}"), myPlayer._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); OffsetSTextY(22, 6); return; } @@ -841,11 +841,11 @@ void StartWitchRecharge() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("Recharge which item? Your gold: {:d}"), myPlayer._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); ScrollSmithSell(stextsval); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); OffsetSTextY(22, 6); } @@ -855,7 +855,7 @@ void StoreNoMoney() stextscrl = false; stextsize = true; ClearSText(5, 23); - AddSText(0, 14, _("You do not have enough gold"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 14, _("You do not have enough gold"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); } void StoreNoRoom() @@ -863,7 +863,7 @@ void StoreNoRoom() StartStore(stextshold); stextscrl = false; ClearSText(5, 23); - AddSText(0, 14, _("You do not have enough room in inventory"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 14, _("You do not have enough room in inventory"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); } void StoreConfirm() @@ -924,27 +924,27 @@ void StoreConfirm() default: app_fatal("Unknown store dialog %i", stextshold); } - AddSText(0, 15, tempstr, UiFlags::ColorSilver | UiFlags::AlignCenter, false); - AddSText(0, 18, _("Yes"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); - AddSText(0, 20, _("No"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 15, tempstr, UiFlags::ColorWhite | UiFlags::AlignCenter, false); + AddSText(0, 18, _("Yes"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); + AddSText(0, 20, _("No"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); } void StartBoy() { stextsize = false; stextscrl = false; - AddSText(0, 2, _("Wirt the Peg-legged boy"), UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 2, _("Wirt the Peg-legged boy"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(5); if (!boyitem.isEmpty()) { AddSText(0, 8, _("Talk to Wirt"), UiFlags::ColorBlue | UiFlags::AlignCenter, true); - AddSText(0, 12, _("I have something for sale,"), UiFlags::ColorGold | UiFlags::AlignCenter, false); - AddSText(0, 14, _("but it will cost 50 gold"), UiFlags::ColorGold | UiFlags::AlignCenter, false); - AddSText(0, 16, _("just to take a look. "), UiFlags::ColorGold | UiFlags::AlignCenter, false); - AddSText(0, 18, _("What have you got?"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); - AddSText(0, 20, _("Say goodbye"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 12, _("I have something for sale,"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); + AddSText(0, 14, _("but it will cost 50 gold"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); + AddSText(0, 16, _("just to take a look. "), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); + AddSText(0, 18, _("What have you got?"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); + AddSText(0, 20, _("Say goodbye"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); } else { AddSText(0, 12, _("Talk to Wirt"), UiFlags::ColorBlue | UiFlags::AlignCenter, true); - AddSText(0, 18, _("Say goodbye"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 18, _("Say goodbye"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); } } @@ -956,7 +956,7 @@ void SStartBoyBuy() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("I have this item for sale: Your gold: {:d}"), Players[MyPlayerId]._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); UiFlags itemColor = boyitem.getTextColorWithStatCheck(); @@ -971,7 +971,7 @@ void SStartBoyBuy() else AddSTextVal(10, boyitem._iIvalue + (boyitem._iIvalue / 2)); PrintStoreItem(&boyitem, 11, itemColor); - AddSText(0, 22, _("Leave"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 22, _("Leave"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); OffsetSTextY(22, 6); } @@ -992,12 +992,12 @@ void StartHealer() HealPlayer(); stextsize = false; stextscrl = false; - AddSText(0, 1, _("Welcome to the"), UiFlags::ColorGold | UiFlags::AlignCenter, false); - AddSText(0, 3, _("Healer's home"), UiFlags::ColorGold | UiFlags::AlignCenter, false); - AddSText(0, 9, _("Would you like to:"), UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, _("Welcome to the"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); + AddSText(0, 3, _("Healer's home"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); + AddSText(0, 9, _("Would you like to:"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSText(0, 12, _("Talk to Pepin"), UiFlags::ColorBlue | UiFlags::AlignCenter, true); - AddSText(0, 14, _("Buy items"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); - AddSText(0, 16, _("Leave Healer's home"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 14, _("Buy items"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); + AddSText(0, 16, _("Leave Healer's home"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); AddSLine(5); storenumh = 20; } @@ -1031,11 +1031,11 @@ void StartHealerBuy() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("I have these items for sale: Your gold: {:d}"), Players[MyPlayerId]._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); ScrollHealerBuy(stextsval); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, false); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, false); OffsetSTextY(22, 6); storenumh = 0; @@ -1050,11 +1050,11 @@ void StartStoryteller() { stextsize = false; stextscrl = false; - AddSText(0, 2, _("The Town Elder"), UiFlags::ColorGold | UiFlags::AlignCenter, false); - AddSText(0, 9, _("Would you like to:"), UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 2, _("The Town Elder"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); + AddSText(0, 9, _("Would you like to:"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSText(0, 12, _("Talk to Cain"), UiFlags::ColorBlue | UiFlags::AlignCenter, true); - AddSText(0, 14, _("Identify an item"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); - AddSText(0, 18, _("Say goodbye"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 14, _("Identify an item"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); + AddSText(0, 18, _("Say goodbye"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); AddSLine(5); } @@ -1148,10 +1148,10 @@ void StartStorytellerIdentify() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("You have nothing to identify. Your gold: {:d}"), myPlayer._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); OffsetSTextY(22, 6); return; } @@ -1163,11 +1163,11 @@ void StartStorytellerIdentify() /* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */ strcpy(tempstr, fmt::format(_("Identify which item? Your gold: {:d}"), myPlayer._pGold).c_str()); - AddSText(0, 1, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(3); AddSLine(21); ScrollSmithSell(stextsval); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); OffsetSTextY(22, 6); } @@ -1181,10 +1181,10 @@ void StartStorytellerIdentifyShow() UiFlags itemColor = item.getTextColorWithStatCheck(); - AddSText(0, 7, _("This item is:"), UiFlags::ColorSilver | UiFlags::AlignCenter, false); + AddSText(0, 7, _("This item is:"), UiFlags::ColorWhite | UiFlags::AlignCenter, false); AddSText(20, 11, item._iIName, itemColor, false); PrintStoreItem(&item, 12, itemColor); - AddSText(0, 18, _("Done"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 18, _("Done"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); } void StartTalk() @@ -1194,15 +1194,15 @@ void StartTalk() stextsize = false; stextscrl = false; strcpy(tempstr, fmt::format(_("Talk to {:s}"), TownerNames[talker]).c_str()); - AddSText(0, 2, tempstr, UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 2, tempstr, UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSLine(5); if (gbIsSpawn) { strcpy(tempstr, fmt::format(_("Talking to {:s}"), TownerNames[talker]).c_str()); - AddSText(0, 10, tempstr, UiFlags::ColorSilver | UiFlags::AlignCenter, false); - AddSText(0, 12, _("is not available"), UiFlags::ColorSilver | UiFlags::AlignCenter, false); - AddSText(0, 14, _("in the shareware"), UiFlags::ColorSilver | UiFlags::AlignCenter, false); - AddSText(0, 16, _("version"), UiFlags::ColorSilver | UiFlags::AlignCenter, false); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 10, tempstr, UiFlags::ColorWhite | UiFlags::AlignCenter, false); + AddSText(0, 12, _("is not available"), UiFlags::ColorWhite | UiFlags::AlignCenter, false); + AddSText(0, 14, _("in the shareware"), UiFlags::ColorWhite | UiFlags::AlignCenter, false); + AddSText(0, 16, _("version"), UiFlags::ColorWhite | UiFlags::AlignCenter, false); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); return; } @@ -1224,23 +1224,23 @@ void StartTalk() for (auto &quest : Quests) { if (quest._qactive == QUEST_ACTIVE && QuestDialogTable[talker][quest._qidx] != TEXT_NONE && quest._qlog) { - AddSText(0, sn, _(QuestsData[quest._qidx]._qlstr), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, sn, _(QuestsData[quest._qidx]._qlstr), UiFlags::ColorWhite | UiFlags::AlignCenter, true); sn += la; } } AddSText(0, sn2, _("Gossip"), UiFlags::ColorBlue | UiFlags::AlignCenter, true); - AddSText(0, 22, _("Back"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 22, _("Back"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); } void StartTavern() { stextsize = false; stextscrl = false; - AddSText(0, 1, _("Welcome to the"), UiFlags::ColorGold | UiFlags::AlignCenter, false); - AddSText(0, 3, _("Rising Sun"), UiFlags::ColorGold | UiFlags::AlignCenter, false); - AddSText(0, 9, _("Would you like to:"), UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 1, _("Welcome to the"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); + AddSText(0, 3, _("Rising Sun"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); + AddSText(0, 9, _("Would you like to:"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSText(0, 12, _("Talk to Ogden"), UiFlags::ColorBlue | UiFlags::AlignCenter, true); - AddSText(0, 18, _("Leave the tavern"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 18, _("Leave the tavern"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); AddSLine(5); storenumh = 20; } @@ -1249,10 +1249,10 @@ void StartBarmaid() { stextsize = false; stextscrl = false; - AddSText(0, 2, "Gillian", UiFlags::ColorGold | UiFlags::AlignCenter, false); - AddSText(0, 9, _("Would you like to:"), UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 2, "Gillian", UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); + AddSText(0, 9, _("Would you like to:"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSText(0, 12, _("Talk to Gillian"), UiFlags::ColorBlue | UiFlags::AlignCenter, true); - AddSText(0, 18, _("Say goodbye"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 18, _("Say goodbye"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); AddSLine(5); storenumh = 20; } @@ -1261,10 +1261,10 @@ void StartDrunk() { stextsize = false; stextscrl = false; - AddSText(0, 2, _("Farnham the Drunk"), UiFlags::ColorGold | UiFlags::AlignCenter, false); - AddSText(0, 9, _("Would you like to:"), UiFlags::ColorGold | UiFlags::AlignCenter, false); + AddSText(0, 2, _("Farnham the Drunk"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); + AddSText(0, 9, _("Would you like to:"), UiFlags::ColorWhitegold | UiFlags::AlignCenter, false); AddSText(0, 12, _("Talk to Farnham"), UiFlags::ColorBlue | UiFlags::AlignCenter, true); - AddSText(0, 18, _("Say Goodbye"), UiFlags::ColorSilver | UiFlags::AlignCenter, true); + AddSText(0, 18, _("Say Goodbye"), UiFlags::ColorWhite | UiFlags::AlignCenter, true); AddSLine(5); storenumh = 20; }