1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-10-16 22:57:38 +00:00

cell count is now displayed while editing range/detail; range is now editable in 3D even if smart range is on

This commit is contained in:
Zeno Rogue
2023-08-15 19:53:29 +02:00
parent b7f55e9f87
commit 9e999ef30f

View File

@@ -1374,10 +1374,12 @@ EX void initConfig() {
addsaver(vid.use_smart_range, "smart-range", 0); addsaver(vid.use_smart_range, "smart-range", 0);
param_f(vid.smart_range_detail, "smart-range-detail", 8) param_f(vid.smart_range_detail, "smart-range-detail", 8)
->editable(1, 50, 1, "minimum visible cell in pixels", "", 'd'); ->editable(1, 50, 1, "minimum visible cell in pixels", "", 'd')
->set_extra([] { add_cells_drawn('C'); });
param_f(vid.smart_range_detail_3, "smart-range-detail-3", 30) param_f(vid.smart_range_detail_3, "smart-range-detail-3", 30)
->editable(1, 50, 1, "minimum visible cell in pixels", "", 'd'); ->editable(1, 50, 1, "minimum visible cell in pixels", "", 'd')
->set_extra([] { add_cells_drawn('C'); });
param_b(vid.smart_area_based, "smart-area-based", false); param_b(vid.smart_area_based, "smart-area-based", false);
param_i(vid.cells_drawn_limit, "limit on cells drawn", 10000); param_i(vid.cells_drawn_limit, "limit on cells drawn", 10000);
@@ -1812,28 +1814,8 @@ EX void menuitem_sightrange_bonus(char c) {
}); });
} }
EX void edit_sightrange() { EX void edit_sightrange_3d(char key, bool fog) {
#if CAP_RUG dialog::addSelItem(XLAT(fog ? "3D sight range for the fog effect" : "3D sight range"), fts(sightranges[geometry]), key);
USING_NATIVE_GEOMETRY_IN_RUG;
#endif
cmode = sm::SIDE;
gamescreen();
dialog::init("sight range settings");
add_edit(vid.use_smart_range);
if(vid.use_smart_range)
add_edit(WDIM == 2 ? vid.smart_range_detail : vid.smart_range_detail_3);
else {
if(WDIM == 2) {
add_edit(sightrange_bonus);
if(GDIM == 3) {
dialog::addSelItem(XLAT("3D sight range for the fog effect"), fts(sightranges[geometry]), 'r');
dialog::add_action([] {
dialog::editNumber(sightranges[geometry], 0, TAU, 0.5, M_PI, XLAT("fog effect"), "");
});
}
}
if(WDIM == 3) {
dialog::addSelItem(XLAT("3D sight range"), fts(sightranges[geometry]), 'r');
dialog::add_action([] { dialog::add_action([] {
dialog::editNumber(sightranges[geometry], 0, TAU, 0.5, M_PI, XLAT("3D sight range"), dialog::editNumber(sightranges[geometry], 0, TAU, 0.5, M_PI, XLAT("3D sight range"),
XLAT( XLAT(
@@ -1845,18 +1827,40 @@ EX void edit_sightrange() {
"Sight range affects the gameplay, and monsters act iff they are visible. Monster generation takes this into account." "Sight range affects the gameplay, and monsters act iff they are visible. Monster generation takes this into account."
) )
); );
dialog::get_di().extra_options = [] { add_cells_drawn('C'); };
}); });
} }
EX void edit_sightrange() {
#if CAP_RUG
USING_NATIVE_GEOMETRY_IN_RUG;
#endif
cmode = sm::SIDE;
gamescreen();
dialog::init("sight range settings");
add_edit(vid.use_smart_range);
if(vid.use_smart_range) {
add_edit(WDIM == 2 ? vid.smart_range_detail : vid.smart_range_detail_3);
if(GDIM == 3) edit_sightrange_3d('r', true);
}
else {
if(WDIM == 2) {
add_edit(sightrange_bonus);
edit_sightrange_3d('r', true);
}
if(WDIM == 3) edit_sightrange_3d('r', false);
} }
#if CAP_SOLV #if CAP_SOLV
if(models::is_perspective(pmodel) && sol) { if(models::is_perspective(pmodel) && sol) {
dialog::addSelItem(XLAT("max difference in X/Y coordinates"), fts(sn::solrange_xy), 'x'); dialog::addSelItem(XLAT("max difference in X/Y coordinates"), fts(sn::solrange_xy), 'x');
dialog::add_action([] { dialog::add_action([] {
dialog::editNumber(sn::solrange_xy, 0.01, 200, 0.1, 50, XLAT("max difference in X/Y coordinates"), solhelp()), dialog::scaleLog(); dialog::editNumber(sn::solrange_xy, 0.01, 200, 0.1, 50, XLAT("max difference in X/Y coordinates"), solhelp()), dialog::scaleLog();
dialog::get_di().extra_options = [] { add_cells_drawn('C'); };
}); });
dialog::addSelItem(XLAT("max difference in Z coordinate"), fts(sn::solrange_z), 'z'); dialog::addSelItem(XLAT("max difference in Z coordinate"), fts(sn::solrange_z), 'z');
dialog::add_action([] { dialog::add_action([] {
dialog::editNumber(sn::solrange_z, 0, 20, 0.1, 6, XLAT("max difference in Z coordinates"), solhelp()); dialog::editNumber(sn::solrange_z, 0, 20, 0.1, 6, XLAT("max difference in Z coordinates"), solhelp());
dialog::get_di().extra_options = [] { add_cells_drawn('C'); };
}); });
} }
#endif #endif