From acfc18b6a8f6914e5b4eeb78fe23bc81919f425f Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Fri, 6 May 2022 21:08:15 +0200 Subject: [PATCH] nilrider:: reduce quality feature --- rogueviz/nilrider/level.cpp | 1 + rogueviz/nilrider/nilrider.cpp | 1 + rogueviz/nilrider/nilrider.h | 2 ++ rogueviz/nilrider/timestamp.cpp | 2 +- 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/rogueviz/nilrider/level.cpp b/rogueviz/nilrider/level.cpp index 06e11a8c..106f836f 100644 --- a/rogueviz/nilrider/level.cpp +++ b/rogueviz/nilrider/level.cpp @@ -95,6 +95,7 @@ void level::init_shapes() { int prec = 16; if(s == 2) prec *= 4; int cdiv = prec / steps_per_block; + prec >>= reduce_quality; bool need_uniltinf = uniltinf.tvertices.empty(); diff --git a/rogueviz/nilrider/nilrider.cpp b/rogueviz/nilrider/nilrider.cpp index 640efc99..2edbd6d5 100644 --- a/rogueviz/nilrider/nilrider.cpp +++ b/rogueviz/nilrider/nilrider.cpp @@ -545,6 +545,7 @@ auto celldemo = arg::add3("-unilcycle", initialize) + arg::add3("-unilplan", [] + arg::add3("-nilgeo", nil_set_geodesic) + arg::add3("-nilper", nil_set_perspective) + arg::add3("-nilrider", initialize_all) + + arg::add3("-nilrider-q", [] { arg::shift(); reduce_quality = arg::argi(); }) + addHook(hooks_configfile, 100, [] { param_f(aimspeed_key_x, "nilrider_key_x") ->editable(-5, 5, 0.1, "navigation sensitivity (keyboard)", "press Left/Right to navigate (lCtrl to fine-tune)", 'n'); diff --git a/rogueviz/nilrider/nilrider.h b/rogueviz/nilrider/nilrider.h index 102f9444..8cfc38e2 100644 --- a/rogueviz/nilrider/nilrider.h +++ b/rogueviz/nilrider/nilrider.h @@ -206,5 +206,7 @@ extern int reversals; extern bool loaded_or_planned; extern bool planning_mode; +inline int reduce_quality = 0; + void save(); } diff --git a/rogueviz/nilrider/timestamp.cpp b/rogueviz/nilrider/timestamp.cpp index a21f274d..b8fb06ee 100644 --- a/rogueviz/nilrider/timestamp.cpp +++ b/rogueviz/nilrider/timestamp.cpp @@ -15,7 +15,7 @@ EX hyperpoint sym_to_heis(hyperpoint H) { } void timestamp::draw_unilcycle(const shiftmatrix& V) { - const int points = 60; + const int points = 60 / (1 + reduce_quality); const int spoke_each = 5; hyperpoint whpoint[points+1];