From 689dc7de760fad233f346f1d61c84d4ad30b8258 Mon Sep 17 00:00:00 2001
From: Yona-TYT <yonatan.el.amigo@gmail.com>
Date: Thu, 20 Oct 2022 16:12:03 -0400
Subject: [PATCH] Add New parameter to set transparency color in factories
 boost icons

---
 src/simutrans/gui/fabrik_info.cc                      | 6 +++---
 src/simutrans/gui/factorylist_stats.cc                | 6 +++---
 src/simutrans/gui/gui_theme.cc                        | 4 ++++
 src/simutrans/gui/gui_theme.h                         | 1 +
 src/simutrans/simcolor.h                              | 1 +
 themes.src/highcontrast-large/high-contrast-large.tab | 3 +++
 themes.src/highcontrast/high-contrast.tab             | 3 +++
 7 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/src/simutrans/gui/fabrik_info.cc b/src/simutrans/gui/fabrik_info.cc
index 410b68286..69bd2240c 100644
--- a/src/simutrans/gui/fabrik_info.cc
+++ b/src/simutrans/gui/fabrik_info.cc
@@ -241,9 +241,9 @@ void fabrik_info_t::draw(scr_coord pos, scr_size size)
 	update_components();
 
 	// boost stuff
-	boost_electric.set_transparent(fab->get_prodfactor_electric()>0 ? 0 : TRANSPARENT50_FLAG | OUTLINE_FLAG | color_idx_to_rgb(COL_BLACK));
-	boost_passenger.set_transparent(fab->get_prodfactor_pax()>0 ? 0 : TRANSPARENT50_FLAG | OUTLINE_FLAG | color_idx_to_rgb(COL_BLACK));
-	boost_mail.set_transparent(fab->get_prodfactor_mail()>0 ? 0 : TRANSPARENT50_FLAG | OUTLINE_FLAG | color_idx_to_rgb(COL_BLACK));
+	boost_electric.set_transparent(fab->get_prodfactor_electric()>0 ? 0 : TRANSPARENT50_FLAG | OUTLINE_FLAG | SYSCOL_IMAGE_TRANSPARENCY);
+	boost_passenger.set_transparent(fab->get_prodfactor_pax()>0 ? 0 : TRANSPARENT50_FLAG | OUTLINE_FLAG | SYSCOL_IMAGE_TRANSPARENCY);
+	boost_mail.set_transparent(fab->get_prodfactor_mail()>0 ? 0 : TRANSPARENT50_FLAG | OUTLINE_FLAG | SYSCOL_IMAGE_TRANSPARENCY);
 
 	indicator_color.set_color( color_idx_to_rgb(fabrik_t::status_to_color[fab->get_status()]) );
 
diff --git a/src/simutrans/gui/factorylist_stats.cc b/src/simutrans/gui/factorylist_stats.cc
index 61b4ed7de..7950c2a17 100644
--- a/src/simutrans/gui/factorylist_stats.cc
+++ b/src/simutrans/gui/factorylist_stats.cc
@@ -115,9 +115,9 @@ void factorylist_stats_t::draw(scr_coord pos)
 {
 	update_label();
 	// boost stuff
-	boost_electric.set_transparent(fab->get_prodfactor_electric()>0 ? 0 : TRANSPARENT50_FLAG | OUTLINE_FLAG | color_idx_to_rgb(COL_BLACK));
-	boost_passenger.set_transparent(fab->get_prodfactor_pax()>0 ? 0 : TRANSPARENT50_FLAG | OUTLINE_FLAG | color_idx_to_rgb(COL_BLACK));
-	boost_mail.set_transparent(fab->get_prodfactor_mail()>0 ? 0 : TRANSPARENT50_FLAG | OUTLINE_FLAG | color_idx_to_rgb(COL_BLACK));
+	boost_electric.set_transparent(fab->get_prodfactor_electric()>0 ? 0 : TRANSPARENT50_FLAG | OUTLINE_FLAG | SYSCOL_IMAGE_TRANSPARENCY);
+	boost_passenger.set_transparent(fab->get_prodfactor_pax()>0 ? 0 : TRANSPARENT50_FLAG | OUTLINE_FLAG | SYSCOL_IMAGE_TRANSPARENCY);
+	boost_mail.set_transparent(fab->get_prodfactor_mail()>0 ? 0 : TRANSPARENT50_FLAG | OUTLINE_FLAG | SYSCOL_IMAGE_TRANSPARENCY);
 
 	indicator.set_color( color_idx_to_rgb(fabrik_t::status_to_color[fab->get_status()]) );
 
diff --git a/src/simutrans/gui/gui_theme.cc b/src/simutrans/gui/gui_theme.cc
index e4bc2c7c3..2edda25e2 100644
--- a/src/simutrans/gui/gui_theme.cc
+++ b/src/simutrans/gui/gui_theme.cc
@@ -62,6 +62,7 @@ PIXVAL gui_theme_t::gui_color_loadingbar_progress;
 PIXVAL gui_theme_t::gui_color_obsolete;
 PIXVAL gui_theme_t::gui_color_chat_window_network_transparency;
 PIXVAL gui_theme_t::gui_color_empty;
+PIXVAL gui_theme_t::gui_color_image_transparency;
 
 /**
  * Max Kielland
@@ -183,6 +184,8 @@ void gui_theme_t::init_gui_defaults()
 	gui_color_obsolete                     = color_idx_to_rgb(COL_BLUE);
 	gui_color_empty                        = color_idx_to_rgb(COL_WHITE);
 
+	gui_color_image_transparency          = color_idx_to_rgb(COL_BLACK);
+
 	env_t::gui_player_color_bright = 4;
 	env_t::gui_player_color_dark   = 1;
 
@@ -536,6 +539,7 @@ bool gui_theme_t::themes_init(const char *file_name, bool init_fonts, bool init_
 	gui_theme_t::gui_color_obsolete                     = (PIXVAL)contents.get_color("gui_color_obsolete", SYSCOL_OBSOLETE);
 	gui_theme_t::gui_color_empty                        = (PIXVAL)contents.get_color("gui_color_empty", SYSCOL_EMPTY);
 	gui_theme_t::gui_color_chat_window_network_transparency = (PIXVAL)contents.get_color("gui_color_chat_window_network_transparency", gui_color_chat_window_network_transparency);
+	gui_theme_t::gui_color_image_transparency           = (PIXVAL)contents.get_color("gui_color_image_transparency", SYSCOL_IMAGE_TRANSPARENCY);
 
 	gui_theme_t::gui_waitingbar_width = (uint32)contents.get_int("gui_waitingbar_width", gui_theme_t::gui_waitingbar_width);
 
diff --git a/src/simutrans/gui/gui_theme.h b/src/simutrans/gui/gui_theme.h
index 2a9cb1565..28730b9a0 100644
--- a/src/simutrans/gui/gui_theme.h
+++ b/src/simutrans/gui/gui_theme.h
@@ -251,6 +251,7 @@ public:
 	static PIXVAL gui_color_obsolete;                     //@< Color for obsolete convois/server entries
 	static PIXVAL gui_color_empty;                        //@< Color for empty entries
 	static PIXVAL gui_color_chat_window_network_transparency; //@< Color if chat window is transparent in network mode
+	static PIXVAL gui_color_image_transparency;               //@< Transparency color for some icons/images
 	/// @}
 
 	/// @name GUI element sizes used by gui components
diff --git a/src/simutrans/simcolor.h b/src/simutrans/simcolor.h
index cb8d3a0f8..8356f8c92 100644
--- a/src/simutrans/simcolor.h
+++ b/src/simutrans/simcolor.h
@@ -157,5 +157,6 @@ typedef unsigned int FLAGGED_PIXVAL;
 #define SYSCOL_LOADINGBAR_PROGRESS          gui_theme_t::gui_color_loadingbar_progress
 #define SYSCOL_OBSOLETE                     gui_theme_t::gui_color_obsolete
 #define SYSCOL_EMPTY                        gui_theme_t::gui_color_empty
+#define SYSCOL_IMAGE_TRANSPARENCY           gui_theme_t::gui_color_image_transparency
 
 #endif
diff --git a/themes.src/highcontrast-large/high-contrast-large.tab b/themes.src/highcontrast-large/high-contrast-large.tab
index 89a992de7..30a6ea790 100644
--- a/themes.src/highcontrast-large/high-contrast-large.tab
+++ b/themes.src/highcontrast-large/high-contrast-large.tab
@@ -119,6 +119,9 @@ cursor_overlay_color = #000000
 gui_color_loadingbar_progress = #000000
 gui_color_loadingbar_inner = #868c86
 
+# Transparency color in factories boost icons (mail, energy, passengers)
+gui_color_image_transparency = #ffffff
+
 gui_player_color_dark = 5	
 gui_player_color_bright = 5
 
diff --git a/themes.src/highcontrast/high-contrast.tab b/themes.src/highcontrast/high-contrast.tab
index a3d8b24fe..fb8830c59 100644
--- a/themes.src/highcontrast/high-contrast.tab
+++ b/themes.src/highcontrast/high-contrast.tab
@@ -119,6 +119,9 @@ cursor_overlay_color = #000000
 gui_color_loadingbar_progress = #000000
 gui_color_loadingbar_inner = #868c86
 
+# Transparency color in factories boost icons (mail, energy, passengers)
+gui_color_image_transparency = #ffffff
+
 gui_player_color_dark = 5	
 gui_player_color_bright = 5
 
-- 
2.37.3

