mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-24 17:10:36 +00:00
improved Rug in various models
This commit is contained in:
parent
e978ed9eac
commit
7f96c67755
@ -362,6 +362,14 @@ EX void initConfig() {
|
||||
addsaver(reserve_limit, "memory_reserve", 128);
|
||||
addsaver(show_memory_warning, "show_memory_warning");
|
||||
|
||||
auto& rconf = vid.rug_config;
|
||||
addsaverenum(rconf.model, "rug-projection", mdEquidistant);
|
||||
addsaver(rconf.scale, "rug-projection-scale", 1);
|
||||
addsaver(rconf.alpha, "rug-projection-alpha", 1);
|
||||
addsaver(rconf.clip_min, "rug-projection-clip-min", -1);
|
||||
addsaver(rconf.clip_max, "rug-projection-clip-max", +1);
|
||||
addsaver(rconf.stretch, "rug-projection-stretch", 1);
|
||||
addsaver(rconf.halfplane_scale, "rug-projection-halfplane scale", 1);
|
||||
addsaver(rug::renderonce, "rug-renderonce");
|
||||
addsaver(rug::rendernogl, "rug-rendernogl");
|
||||
addsaver(rug::texturesize, "rug-texturesize");
|
||||
@ -893,6 +901,7 @@ string solhelp() {
|
||||
}
|
||||
|
||||
EX void edit_sightrange() {
|
||||
USING_NATIVE_GEOMETRY_IN_RUG;
|
||||
if(vid.use_smart_range) {
|
||||
ld& det = WDIM == 2 ? vid.smart_range_detail : vid.smart_range_detail_3;
|
||||
dialog::editNumber(det, 1, 50, 1, WDIM == 2 ? 8 : 30, XLAT("minimum visible cell in pixels"), "");
|
||||
|
11
models.cpp
11
models.cpp
@ -343,18 +343,19 @@ EX namespace models {
|
||||
cmode = sm::SIDE | sm::MAYDARK | sm::CENTER;
|
||||
gamescreen(0);
|
||||
dialog::init(XLAT("models & projections"));
|
||||
USING_NATIVE_GEOMETRY_IN_RUG;
|
||||
|
||||
for(int i=0; i<mdGUARD; i++) {
|
||||
eModel m = eModel(i);
|
||||
if(m == mdFormula && ISMOBILE) continue;
|
||||
if(model_available(m)) {
|
||||
dialog::addBoolItem(get_model_name(m), pmodel == m, (i < 26 ? 'a'+i : 'A'+i-26));
|
||||
dialog::addBoolItem(get_model_name(m), vpconf.model == m, (i < 26 ? 'a'+i : 'A'+i-26));
|
||||
dialog::add_action([m] () {
|
||||
if(m == mdFormula) {
|
||||
edit_formula();
|
||||
return;
|
||||
}
|
||||
pmodel = m;
|
||||
vpconf.model = m;
|
||||
polygonal::solve();
|
||||
vpconf.alpha = 1; vpconf.scale = 1;
|
||||
if(pmodel == mdBand && sphere)
|
||||
@ -401,7 +402,7 @@ EX namespace models {
|
||||
USING_NATIVE_GEOMETRY_IN_RUG;
|
||||
dialog::init(XLAT("models & projections"));
|
||||
|
||||
dialog::addSelItem(XLAT("projection type"), get_model_name(pmodel), 'm');
|
||||
dialog::addSelItem(XLAT("projection type"), get_model_name(vpconf.model), 'm');
|
||||
dialog::add_action_push(model_list);
|
||||
|
||||
if(nonisotropic && !sl2)
|
||||
@ -527,7 +528,7 @@ EX namespace models {
|
||||
});
|
||||
}
|
||||
|
||||
if(is_3d(vpconf)) {
|
||||
if(is_3d(vpconf) && GDIM == 2) {
|
||||
dialog::addSelItem(XLAT("camera rotation in 3D models"), fts(vpconf.ballangle) + "°", 'b');
|
||||
dialog::add_action(config_camera_rotation);
|
||||
}
|
||||
@ -670,7 +671,7 @@ EX namespace models {
|
||||
dialog::addItem(XLAT("history mode"), 'a');
|
||||
dialog::add_action_push(history::history_menu);
|
||||
#if CAP_RUG
|
||||
if(GDIM == 2) {
|
||||
if(GDIM == 2 || rug::rugged) {
|
||||
dialog::addItem(XLAT("hypersian rug mode"), 'u');
|
||||
dialog::add_action_push(rug::show);
|
||||
}
|
||||
|
3
rug.cpp
3
rug.cpp
@ -1081,9 +1081,10 @@ EX void drawRugScene() {
|
||||
rug.V = rugView;
|
||||
rug.offset_texture = 0;
|
||||
rug.tinf = &tinf;
|
||||
rug.flags = POLY_TRIANGLES | POLY_FAT | POLY_PRINTABLE;
|
||||
rug.flags = POLY_TRIANGLES | POLY_FAT | POLY_PRINTABLE | POLY_ALWAYS_IN | POLY_ISSIDE;
|
||||
|
||||
dynamicval<projection_configuration> p(pconf, rconf);
|
||||
calcparam();
|
||||
|
||||
drawqueue();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user