From 5b8432792c1ab476bc1faff61ebeb5502f59f37b Mon Sep 17 00:00:00 2001 From: Ali El Gariani Date: Wed, 9 Sep 2009 23:28:38 +0000 Subject: [PATCH] Add and use a second red-to-green color scale for font (darker, adjusted to the not-fully-white color of normal wesnoth font) --- data/game_config.cfg | 3 ++- src/game_config.cpp | 22 +++++++++++++++------- src/game_config.hpp | 11 +++++++---- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/data/game_config.cfg b/data/game_config.cfg index ed4fadf2a86..8a8b2ada247 100644 --- a/data/game_config.cfg +++ b/data/game_config.cfg @@ -83,7 +83,8 @@ flag_image="flags/flag-1.png:150,flags/flag-2.png:150,flags/flag-3.png:150,flags/flag-4.png:150" flag_icon_image="flags/flag-icon.png" flag_rgb=flag_green - red_to_green_scale="ff0500,ff3700,ff6900,ff9b00,ffcd00,ffff00,cdff00,9bff00,69ff00,37ff00,05ff00" + red_green_scale="ff0500,ff3700,ff6900,ff9b00,ffcd00,ffff00,cdff00,9bff00,69ff00,37ff00,05ff00" + red_green_scale_text="dd0000,dd2c00,dd5800,dd8400,ddb000,dddd00,b0dd00,84dd00,58dd00,2cdd00,00dd00" cross_image="misc/cross.png" diff --git a/src/game_config.cpp b/src/game_config.cpp index a22d5ec2bb3..9cf1c82ba72 100644 --- a/src/game_config.cpp +++ b/src/game_config.cpp @@ -73,7 +73,8 @@ namespace game_config std::string flag_image = "flags/flag-1.png:150,flags/flag-2.png:150,flags/flag-3.png:150,flags/flag-4.png:150"; std::string flag_icon_image = "flags/flag_icon.png"; std::string flag_rgb = "flag_green"; - std::vector red_to_green_scale; + std::vector red_green_scale; + std::vector red_green_scale_text; double hp_bar_scaling = 0.666; double xp_bar_scaling = 0.5; @@ -212,9 +213,14 @@ namespace game_config if( !flag_rgb.size()){ flag_rgb="flag_green"; } - red_to_green_scale = string2rgb(v["red_to_green_scale"]); - if (red_to_green_scale.empty()) { - red_to_green_scale.push_back(0x00FFFF00); + + red_green_scale = string2rgb(v["red_green_scale"]); + if (red_green_scale.empty()) { + red_green_scale.push_back(0x00FFFF00); + } + red_green_scale_text = string2rgb(v["red_green_scale_text"]); + if (red_green_scale_text.empty()) { + red_green_scale_text.push_back(0x00FFFF00); } server_list.clear(); @@ -305,10 +311,12 @@ namespace game_config return i->second; } - Uint32 red_to_green(int val){ + Uint32 red_to_green(int val, bool for_text){ + const std::vector& color_scale = + for_text ? red_green_scale_text : red_green_scale; val = std::max(0, std::min(val, 100)); - int lvl = (red_to_green_scale.size()-1) * val / 100; - return red_to_green_scale[lvl]; + int lvl = (color_scale.size()-1) * val / 100; + return color_scale[lvl]; } } // game_config diff --git a/src/game_config.hpp b/src/game_config.hpp index 8f1b17e1267..e32c8a4c005 100644 --- a/src/game_config.hpp +++ b/src/game_config.hpp @@ -77,7 +77,8 @@ namespace game_config extern double hp_bar_scaling, xp_bar_scaling; extern std::string flag_rgb; - extern std::vector red_to_green_scale; + extern std::vector red_green_scale; + extern std::vector red_green_scale_text; extern std::vector foot_speed_prefix; extern std::string foot_teleport_enter, foot_teleport_exit; @@ -115,9 +116,11 @@ namespace game_config /** * Return a color corresponding to the value val * red for val=0 to green for val=100, passing by yellow. - * Colors are defined in red_to_green_scale from [game_config] - */ - Uint32 red_to_green(int val); + * Colors are defined by [game_config] keys + * red_green_scale and red_green_scale_text + */ + + Uint32 red_to_green(int val, bool for_text = true); extern const version_info wesnoth_version; extern const version_info min_savegame_version;