Add and use a second red-to-green color scale for font

(darker, adjusted to the not-fully-white color of normal wesnoth font)
This commit is contained in:
Ali El Gariani 2009-09-09 23:28:38 +00:00
parent d1206ab4bc
commit 5b8432792c
3 changed files with 24 additions and 12 deletions

View file

@ -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"

View file

@ -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<Uint32> red_to_green_scale;
std::vector<Uint32> red_green_scale;
std::vector<Uint32> 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<Uint32>& color_scale =
for_text ? red_green_scale_text : red_green_scale;
val = std::max<int>(0, std::min<int>(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

View file

@ -77,7 +77,8 @@ namespace game_config
extern double hp_bar_scaling, xp_bar_scaling;
extern std::string flag_rgb;
extern std::vector<Uint32> red_to_green_scale;
extern std::vector<Uint32> red_green_scale;
extern std::vector<Uint32> red_green_scale_text;
extern std::vector<std::string> 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;