mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-19 07:20:25 +00:00
using viewcenter() consistently
This commit is contained in:
parent
6958cbcbd9
commit
95da7ff09e
@ -163,7 +163,7 @@ EX transmatrix &ggmatrix(cell *c) {
|
||||
t = View * eumove(cell_to_vec(c) - cellwalker_to_vec(centerover));
|
||||
}
|
||||
else
|
||||
t = actualV(viewctr, actual_view_transform * View) * calc_relative_matrix(c, viewctr.at->c7, C0);
|
||||
t = actualV(viewctr, actual_view_transform * View) * calc_relative_matrix(c, viewcenter(), C0);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
10
graph.cpp
10
graph.cpp
@ -861,7 +861,7 @@ EX bool drawItemType(eItem it, cell *c, const transmatrix& V, color_t icol, int
|
||||
|
||||
if(GDIM == 3 && mapeditor::drawUserShape(V, mapeditor::sgItem, it, darkena(icol, 0, 0xFF), c)) return false;
|
||||
|
||||
if(WDIM == 3 && c == viewctr.at->c7 && in_perspective() && hdist0(tC0(V)) < cgi.orbsize * 0.25) return false;
|
||||
if(WDIM == 3 && c == viewcenter() && in_perspective() && hdist0(tC0(V)) < cgi.orbsize * 0.25) return false;
|
||||
|
||||
transmatrix Vit = V;
|
||||
if(GDIM == 3 && WDIM == 2 && c && it != itBabyTortoise) Vit = mscale(V, cgi.STUFF);
|
||||
@ -5995,8 +5995,8 @@ EX void drawcell(cell *c, transmatrix V, int spinv, bool mirrored) {
|
||||
for(int a=0; a<c->type; a++)
|
||||
if(c->move(a) && !isWall3(c->move(a), dummy)) {
|
||||
if(pmodel == mdPerspective && !sphere && !quotient && !penrose && !nonisotropic) {
|
||||
if(a < 4 && among(geometry, gHoroTris, gBinary3) && celldistAlt(c) >= celldistAlt(viewctr.at->c7)) continue;
|
||||
else if(a < 2 && among(geometry, gHoroRec) && celldistAlt(c) >= celldistAlt(viewctr.at->c7)) continue;
|
||||
if(a < 4 && among(geometry, gHoroTris, gBinary3) && celldistAlt(c) >= celldistAlt(viewcenter())) continue;
|
||||
else if(a < 2 && among(geometry, gHoroRec) && celldistAlt(c) >= celldistAlt(viewcenter())) continue;
|
||||
else if(c->move(a)->master->distance > c->master->distance && c->master->distance > viewctr.at->distance && !quotient) continue;
|
||||
}
|
||||
else if(sol && in_perspective()) {
|
||||
@ -7149,7 +7149,7 @@ EX void make_actual_view() {
|
||||
if(GDIM == 3) {
|
||||
ld max = WDIM == 2 ? vid.camera : vid.yshift;
|
||||
if(max)
|
||||
actual_view_transform = solmul(zpush(wall_radar((masterless ? centerover.at : viewctr.at->c7), inverse(View), max)), actual_view_transform * View) * inverse(View);
|
||||
actual_view_transform = solmul(zpush(wall_radar((masterless ? centerover.at : viewcenter()), inverse(View), max)), actual_view_transform * View) * inverse(View);
|
||||
camera_level = asin_auto(tC0(inverse(actual_view_transform * View))[2]);
|
||||
}
|
||||
if(nonisotropic) {
|
||||
@ -7185,7 +7185,7 @@ EX transmatrix cview() {
|
||||
|
||||
EX void precise_mouseover() {
|
||||
if(WDIM == 3) {
|
||||
mouseover2 = mouseover = viewctr.at->c7;
|
||||
mouseover2 = mouseover = viewcenter();
|
||||
ld best = HUGE_VAL;
|
||||
hyperpoint h =
|
||||
nisot::local_perspective_used() ? inverse(nisot::local_perspective) * cpush(2, 1) * C0 : cpush(2, 1) * C0;
|
||||
|
@ -444,7 +444,7 @@ EX namespace history {
|
||||
xpos += bwidth;
|
||||
}
|
||||
|
||||
last_base = viewctr.at->c7;
|
||||
last_base = viewcenter();
|
||||
last_relative = inverse(ggmatrix(last_base)) * C0;
|
||||
}
|
||||
}
|
||||
|
@ -524,7 +524,7 @@ void moved() {
|
||||
save_memory();
|
||||
return;
|
||||
}
|
||||
setdist(masterless ? centerover.at : viewctr.at->c7, 7 - getDistLimit() - genrange_bonus, NULL);
|
||||
setdist(viewcenter(), 7 - getDistLimit() - genrange_bonus, NULL);
|
||||
}
|
||||
playermoved = false;
|
||||
}
|
||||
@ -613,8 +613,8 @@ EX void apply() {
|
||||
cspin(0, GDIM-1, -movement_angle * degree), View);
|
||||
moved();
|
||||
if(clearup) {
|
||||
viewctr.at->c7->wall = waNone;
|
||||
forCellEx(c1, viewctr.at->c7) c1->wall = waNone;
|
||||
viewcenter()->wall = waNone;
|
||||
forCellEx(c1, viewcenter()) c1->wall = waNone;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -637,7 +637,7 @@ EX void apply() {
|
||||
moved();
|
||||
View = cspin(0, GDIM-1, 2 * M_PI * t / period) * View;
|
||||
if(clearup) {
|
||||
viewctr.at->c7->wall = waNone;
|
||||
viewcenter()->wall = waNone;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1013,7 +1013,7 @@ bool texture_config::save() {
|
||||
targetgeometry = geometry;
|
||||
targetvariation = variation;
|
||||
|
||||
cell *ctr = euclid ? centerover.at : viewctr.at->c7;
|
||||
cell *ctr = viewcenter();
|
||||
si_save = patterns::getpatterninfo0(ctr);
|
||||
|
||||
if(archimedean) csymbol = arcm::current.symbol;
|
||||
@ -1072,7 +1072,7 @@ bool texture_config::load() {
|
||||
celllister cl(currentmap->gamestart(), 20, 10000, NULL);
|
||||
bool found = false;
|
||||
for(cell *c: cl.lst) if(euclid || ctof(c)) {
|
||||
cell *ctr = euclid ? centerover.at : viewctr.at->c7;
|
||||
cell *ctr = viewcenter();
|
||||
auto si_here = patterns::getpatterninfo0(c);
|
||||
if(si_here.id == si_save.id && si_here.reflect == si_save.reflect && si_here.dir == si_save.dir) {
|
||||
if(euclid) centerover.at = ctr;
|
||||
|
Loading…
Reference in New Issue
Block a user