UI scaling: add a different scaling for minimap + add more scaling values...
This commit is contained in:
@@ -38,8 +38,24 @@
|
||||
<led name='easier' relative='pos-in pos' rel-anchor='prev' top='10' left='0' width='352'>Make game easier (monsters much weaker)</led>
|
||||
<led name='lesswm' relative='pos-in pos' rel-anchor='prev' top='10' left='0' width='340'>Fewer wandering monsters</led>
|
||||
<led name='skipsplash' relative='pos-in pos' rel-anchor='prev' top='10' left='0' width='340'>Skip splash screen on startup</led>
|
||||
<led name='scaleui' relative='pos-in pos' rel-anchor='prev' top='10' left='0' width='340'>Apply UI scaling</led>
|
||||
|
||||
<button name='okay' relative='abs pos' rel-anchor='prev' type='regular' top='7' left='354'>OK</button>
|
||||
<text name='scale-head' size='large' relative='neg pos' anchor='skipsplash' top='17' left='10' width='260' height='17'>Scale UI:</text>
|
||||
<group name='scaleui'>
|
||||
<led name='1' relative='pos-in pos' anchor='scale-head' top='4' left='15' width='33'>1</led>
|
||||
<led name='1_5' relative='pos-in pos' anchor='scale-head' top='4' left='55' width='33'>1.5</led>
|
||||
<led name='2' relative='pos-in pos' anchor='scale-head' top='4' left='95' width='33'>2</led>
|
||||
<led name='3' relative='pos-in pos' anchor='scale-head' top='4' left='135' width='33'>3</led>
|
||||
<led name='4' relative='pos-in pos' anchor='scale-head' top='4' left='175' width='33'>4</led>
|
||||
<led name='other' relative='pos-in pos' anchor='scale-head' top='4' left='215' width='43'>other</led>
|
||||
</group>
|
||||
<text name='scalemap-head' size='large' relative='neg pos' anchor='scale-head' top='17' left='0' width='260' height='17'>Scale Map:</text>
|
||||
<group name='scalemap'>
|
||||
<led name='1' relative='pos-in pos' anchor='scalemap-head' top='4' left='15' width='33'>1</led>
|
||||
<led name='1_5' relative='pos-in pos' anchor='scalemap-head' top='4' left='55' width='33'>1.5</led>
|
||||
<led name='2' relative='pos-in pos' anchor='scalemap-head' top='4' left='95' width='33'>2</led>
|
||||
<led name='3' relative='pos-in pos' anchor='scalemap-head' top='4' left='135' width='33'>3</led>
|
||||
<led name='4' relative='pos-in pos' anchor='scalemap-head' top='4' left='175' width='33'>4</led>
|
||||
<led name='other' relative='pos-in pos' anchor='scalemap-head' top='4' left='215' width='43'>other</led>
|
||||
</group>
|
||||
<button name='okay' relative='abs pos' anchor='scalemap-head' type='regular' top='17' left='354'>OK</button>
|
||||
<button name='cancel' relative='neg pos-in' anchor='okay' type='regular' def-key='esc' top='0' left='73'>Cancel</button>
|
||||
</dialog>
|
||||
|
@@ -1147,11 +1147,28 @@ static bool prefs_event_filter (cDialog& me, std::string id, eKeyMod) {
|
||||
if(dynamic_cast<cLed&>(me["resethelp"]).getState() == led_red) {
|
||||
reset_help = true;
|
||||
}
|
||||
cLed& ui_scale = dynamic_cast<cLed&>(me["scaleui"]);
|
||||
if(ui_scale.getState() == led_off)
|
||||
std::string scale = dynamic_cast<cLedGroup&>(me["scaleui"]).getSelected();
|
||||
if(scale == "1")
|
||||
set_pref("UIScale", 1.0);
|
||||
else if(ui_scale.getState() == led_red)
|
||||
else if(scale == "1_5")
|
||||
set_pref("UIScale", 1.5);
|
||||
else if(scale == "2")
|
||||
set_pref("UIScale", 2.0);
|
||||
else if(scale == "3")
|
||||
set_pref("UIScale", 3.0);
|
||||
else if(scale == "4")
|
||||
set_pref("UIScale", 4.0);
|
||||
std::string scale_map = dynamic_cast<cLedGroup&>(me["scalemap"]).getSelected();
|
||||
if(scale_map == "1")
|
||||
set_pref("UIScaleMap", 1.0);
|
||||
else if(scale_map == "1_5")
|
||||
set_pref("UIScaleMap", 1.5);
|
||||
else if(scale_map == "2")
|
||||
set_pref("UIScaleMap", 2.0);
|
||||
else if(scale_map == "3")
|
||||
set_pref("UIScaleMap", 3.0);
|
||||
else if(scale_map == "4")
|
||||
set_pref("UIScaleMap", 4.0);
|
||||
}
|
||||
save_prefs(reset_help);
|
||||
return true;
|
||||
@@ -1215,15 +1232,30 @@ void pick_preferences() {
|
||||
break;
|
||||
}
|
||||
|
||||
cLedGroup& uiScale = dynamic_cast<cLedGroup&>(prefsDlog["scaleui"]);
|
||||
float ui_scale = get_float_pref("UIScale", 1.0);
|
||||
dynamic_cast<cLed&>(prefsDlog["scaleui"]).setState(ui_scale == 1.0 ? led_off : (ui_scale == 2.0 ? led_red : led_green));
|
||||
if (ui_scale>0.95 && ui_scale<1.05) uiScale.setSelected("1");
|
||||
else if (ui_scale>1.45 && ui_scale<1.55) uiScale.setSelected("1_5");
|
||||
else if (ui_scale>1.95 && ui_scale<2.05) uiScale.setSelected("2");
|
||||
else if (ui_scale>2.95 && ui_scale<3.05) uiScale.setSelected("3");
|
||||
else if (ui_scale>3.95 && ui_scale<4.05) uiScale.setSelected("4");
|
||||
else uiScale.setSelected("other");
|
||||
|
||||
cLedGroup& uiMapScale = dynamic_cast<cLedGroup&>(prefsDlog["scalemap"]);
|
||||
float ui_map_scale = get_float_pref("UIScaleMap", 1.0);
|
||||
if (ui_map_scale>0.95 && ui_map_scale<1.05) uiMapScale.setSelected("1");
|
||||
else if (ui_map_scale>1.45 && ui_map_scale<1.55) uiMapScale.setSelected("1_5");
|
||||
else if (ui_map_scale>1.95 && ui_map_scale<2.05) uiMapScale.setSelected("2");
|
||||
else if (ui_map_scale>2.95 && ui_map_scale<3.05) uiMapScale.setSelected("3");
|
||||
else if (ui_map_scale>3.95 && ui_map_scale<4.05) uiMapScale.setSelected("4");
|
||||
else uiMapScale.setSelected("other");
|
||||
|
||||
void (*give_help)(short,short,cDialog&) = ::give_help;
|
||||
|
||||
int store_display_mode = get_int_pref("DisplayMode");
|
||||
prefsDlog.run(std::bind(give_help, 55, 0, std::ref(prefsDlog)));
|
||||
|
||||
if(get_int_pref("DisplayMode") != store_display_mode || get_float_pref("UIScale") != ui_scale)
|
||||
if(get_int_pref("DisplayMode") != store_display_mode || get_float_pref("UIScale") != ui_scale || get_float_pref("UIScaleMap") != ui_map_scale)
|
||||
changed_display_mode = true;
|
||||
}
|
||||
|
||||
|
@@ -673,7 +673,7 @@ short get_num_of_items(short max_num) {
|
||||
}
|
||||
|
||||
void init_mini_map() {
|
||||
float ui_scale = get_float_pref("UIScale", 1.0);
|
||||
float ui_scale = get_float_pref("UIScaleMap", 1.0);
|
||||
if (ui_scale < 0.1) ui_scale = 1.0;
|
||||
if (mini_map.isOpen()) mini_map.close();
|
||||
mini_map.create(sf::VideoMode(ui_scale*296,ui_scale*277), "Map", sf::Style::Titlebar | sf::Style::Close);
|
||||
|
Reference in New Issue
Block a user