mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-27 14:37:16 +00:00
3d:: an option to limit cell generation
This commit is contained in:
parent
16c4108a8d
commit
8388a448e7
@ -355,6 +355,7 @@ void initConfig() {
|
||||
addsaver(vid.smart_range_detail, "smart-range-detail", 8);
|
||||
addsaver(vid.smart_range_detail_3, "smart-range-detail", 30);
|
||||
addsaver(vid.cells_drawn_limit, "limit on cells drawn", 10000);
|
||||
addsaver(vid.cells_generated_limit, "limit on cells generated", 25);
|
||||
|
||||
addsaver(vid.skiprope, "mobius", 0);
|
||||
|
||||
@ -629,6 +630,14 @@ void add_cells_drawn(char c = 'C') {
|
||||
);
|
||||
dialog::scaleLog();
|
||||
});
|
||||
if(WDIM == 3 || vid.use_smart_range == 2) {
|
||||
dialog::addSelItem(XLAT("limit generation per frame"), its(vid.cells_generated_limit), 'L');
|
||||
dialog::add_action([] () {
|
||||
dialog::editNumber(vid.cells_generated_limit, 1, 1000, log(10), 25, XLAT("limit generation per frame"),
|
||||
XLAT("In the 3D mode, lowering this value may help if the game lags while exploring new areas.")
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void edit_sightrange() {
|
||||
|
1
hyper.h
1
hyper.h
@ -1160,6 +1160,7 @@ struct videopar {
|
||||
ld smart_range_detail;// minimum visible cell for modes 1 and 2
|
||||
ld smart_range_detail_3;// minimum visible cell in 3D (for mode 2, there is no mode 1)
|
||||
int cells_drawn_limit;
|
||||
int cells_generated_limit; // limit on cells generated per frame
|
||||
|
||||
ld skiprope;
|
||||
|
||||
|
10
hypgraph.cpp
10
hypgraph.cpp
@ -1272,7 +1272,7 @@ void panning(hyperpoint hf, hyperpoint ht) {
|
||||
playermoved = false;
|
||||
}
|
||||
|
||||
int cells_drawn;
|
||||
int cells_drawn, cells_generated;
|
||||
|
||||
void fullcenter() {
|
||||
conformal::path_for_lineanimation.clear();
|
||||
@ -1690,6 +1690,8 @@ bool do_draw(cell *c, const transmatrix& T) {
|
||||
if(cells_drawn > vid.cells_drawn_limit) return false;
|
||||
if(vid.use_smart_range) {
|
||||
if(cells_drawn >= 50 && !in_smart_range(T)) return false;
|
||||
if(c->mpdist > 7 && cells_generated > vid.cells_generated_limit) return false;
|
||||
cells_generated++;
|
||||
setdist(c, 7, c);
|
||||
}
|
||||
else {
|
||||
@ -1720,7 +1722,11 @@ bool do_draw(cell *c, const transmatrix& T) {
|
||||
if(cells_drawn > vid.cells_drawn_limit) return false;
|
||||
bool usr = vid.use_smart_range || quotient || euwrap;
|
||||
if(usr && cells_drawn >= 50 && !in_smart_range(T)) return false;
|
||||
if(vid.use_smart_range == 2) setdist(c, 7, c);
|
||||
if(vid.use_smart_range == 2) {
|
||||
if(cells_generated > vid.cells_generated_limit) return false;
|
||||
setdist(c, 7, c);
|
||||
cells_generated++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -312,6 +312,7 @@ void take(string fname, const function<void()>& what) {
|
||||
dynamicval<bool> v2(inHighQual, true);
|
||||
dynamicval<bool> v6(auraNOGL, true);
|
||||
dynamicval<bool> vn(nohud, nohud || hide_hud);
|
||||
dynamicval<int> cgl(vid.cells_generated_limit, 9999999);
|
||||
|
||||
vid.smart_range_detail *= multiplier;
|
||||
darken = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user