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 3a8c5af4c..f4987f22c 100644 Binary files a/Packaging/resources/devilutionx.mpq and b/Packaging/resources/devilutionx.mpq differ 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; }