mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-02-04 21:29:19 +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);
|
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)
|
param_f(vid.camera, "camera", "3D camera level", 1)
|
||||||
->editable(0, 5, .1, "", "", 'c')
|
->editable(0, 5, .1, "", "", 'c')
|
||||||
->modif([] (float_setting* x) { x->menu_item_name = (GDIM == 2 ? "Camera level above the plane" : "Z shift"); })
|
->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 string invalid;
|
||||||
|
EX bool changing_embedded_settings;
|
||||||
|
|
||||||
EX ld actual_wall_height() {
|
EX ld actual_wall_height() {
|
||||||
if(mhybrid) return cgi.plevel;
|
if(mhybrid) return cgi.plevel;
|
||||||
@ -935,7 +936,7 @@ EX namespace geom3 {
|
|||||||
// tanh(depth) / tanh(camera) == pconf.alpha
|
// tanh(depth) / tanh(camera) == pconf.alpha
|
||||||
invalid = "";
|
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)
|
else if(vid.tc_alpha < vid.tc_depth && vid.tc_alpha < vid.tc_camera)
|
||||||
pconf.alpha = tan_auto(vid.depth) / tan_auto(vid.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) {
|
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);
|
if(vid.always3) swapdim(-1);
|
||||||
vid.always3 = !vid.always3;
|
vid.always3 = !vid.always3;
|
||||||
apply_always3();
|
apply_always3();
|
||||||
|
check_cgi(); cgi.prepare_basics();
|
||||||
if(vid.always3) swapdim(+1);
|
if(vid.always3) swapdim(+1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -1151,19 +1153,22 @@ EX namespace geom3 {
|
|||||||
|
|
||||||
EX void apply_settings_full() {
|
EX void apply_settings_full() {
|
||||||
if(vid.always3) {
|
if(vid.always3) {
|
||||||
|
changing_embedded_settings = true;
|
||||||
geom3::switch_fpp();
|
geom3::switch_fpp();
|
||||||
delete_sky();
|
delete_sky();
|
||||||
// not sure why this is needed...
|
// not sure why this is needed...
|
||||||
resetGL();
|
resetGL();
|
||||||
geom3::switch_fpp();
|
geom3::switch_fpp();
|
||||||
|
changing_embedded_settings = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EX void apply_settings_light() {
|
EX void apply_settings_light() {
|
||||||
if(vid.always3) {
|
if(vid.always3) {
|
||||||
|
changing_embedded_settings = true;
|
||||||
geom3::switch_always3();
|
geom3::switch_always3();
|
||||||
check_cgi(); cgi.prepare_basics();
|
|
||||||
geom3::switch_always3();
|
geom3::switch_always3();
|
||||||
|
changing_embedded_settings = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user