mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-02-04 13:19:20 +00:00
embeddings:: fixed setting changing
This commit is contained in:
parent
1295ea7920
commit
c5e05bd199
@ -2619,7 +2619,13 @@ EX int config3 = addHook(hooks_configfile, 100, [] {
|
||||
}
|
||||
dialog::addHelp(help);
|
||||
})
|
||||
->set_reaction(geom3::apply_settings_light);
|
||||
->set_reaction([] {
|
||||
bool b = vid.tc_alpha < vid.tc_camera;
|
||||
if(vid.tc_alpha >= vid.tc_depth) vid.tc_alpha = vid.depth - 1;
|
||||
if(vid.tc_camera >= vid.tc_depth) vid.tc_camera = vid.depth - 1;
|
||||
if(vid.tc_alpha == vid.tc_camera) (b ? vid.tc_alpha : vid.tc_camera)--;
|
||||
geom3::apply_settings_light();
|
||||
});
|
||||
param_f(vid.camera, "camera", "3D camera level", 1)
|
||||
->editable(0, 5, .1, "", "", 'c')
|
||||
->modif([] (float_setting* x) { x->menu_item_name = (GDIM == 2 ? "Camera level above the plane" : "Z shift"); })
|
||||
|
@ -918,6 +918,7 @@ EX namespace geom3 {
|
||||
}
|
||||
|
||||
EX string invalid;
|
||||
EX bool changing_embedded_settings;
|
||||
|
||||
EX ld actual_wall_height() {
|
||||
if(mhybrid) return cgi.plevel;
|
||||
@ -935,7 +936,7 @@ EX namespace geom3 {
|
||||
// tanh(depth) / tanh(camera) == pconf.alpha
|
||||
invalid = "";
|
||||
|
||||
if(GDIM == 3 || flipped) ;
|
||||
if(GDIM == 3 || flipped || changing_embedded_settings);
|
||||
else if(vid.tc_alpha < vid.tc_depth && vid.tc_alpha < vid.tc_camera)
|
||||
pconf.alpha = tan_auto(vid.depth) / tan_auto(vid.camera);
|
||||
else if(vid.tc_depth < vid.tc_alpha && vid.tc_depth < vid.tc_camera) {
|
||||
@ -1091,6 +1092,7 @@ EX namespace geom3 {
|
||||
if(vid.always3) swapdim(-1);
|
||||
vid.always3 = !vid.always3;
|
||||
apply_always3();
|
||||
check_cgi(); cgi.prepare_basics();
|
||||
if(vid.always3) swapdim(+1);
|
||||
}
|
||||
#endif
|
||||
@ -1151,19 +1153,22 @@ EX namespace geom3 {
|
||||
|
||||
EX void apply_settings_full() {
|
||||
if(vid.always3) {
|
||||
changing_embedded_settings = true;
|
||||
geom3::switch_fpp();
|
||||
delete_sky();
|
||||
// not sure why this is needed...
|
||||
resetGL();
|
||||
geom3::switch_fpp();
|
||||
changing_embedded_settings = false;
|
||||
}
|
||||
}
|
||||
|
||||
EX void apply_settings_light() {
|
||||
if(vid.always3) {
|
||||
changing_embedded_settings = true;
|
||||
geom3::switch_always3();
|
||||
check_cgi(); cgi.prepare_basics();
|
||||
geom3::switch_always3();
|
||||
changing_embedded_settings = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user