mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-25 01:20:37 +00:00
fixed in_smart_range adjusting to the screen resolution rather than the current texture
This commit is contained in:
parent
48c15ce297
commit
036abd2091
18
hypgraph.cpp
18
hypgraph.cpp
@ -692,10 +692,12 @@ bool in_smart_range(const transmatrix& T) {
|
|||||||
if(std::isinf(h1[0]) || std::isinf(h1[1])) return false;
|
if(std::isinf(h1[0]) || std::isinf(h1[1])) return false;
|
||||||
ld x = current_display->xcenter + current_display->radius * h1[0];
|
ld x = current_display->xcenter + current_display->radius * h1[0];
|
||||||
ld y = current_display->ycenter + current_display->radius * h1[1] * vid.stretch;
|
ld y = current_display->ycenter + current_display->radius * h1[1] * vid.stretch;
|
||||||
if(x > vid.xres * 2) return false;
|
|
||||||
if(x < -vid.xres) return false;
|
if(x > current_display->xtop + current_display->xsize * 2)return false;
|
||||||
if(y > vid.yres * 2) return false;
|
if(x < current_display->xtop - current_display->xsize * 1) return false;
|
||||||
if(y < -vid.yres) return false;
|
if(y > current_display->ytop + current_display->ysize * 2)return false;
|
||||||
|
if(y < current_display->ytop - current_display->ysize * 1) return false;
|
||||||
|
|
||||||
ld epsilon = 0.01;
|
ld epsilon = 0.01;
|
||||||
applymodel(T * xpush0(epsilon), h2);
|
applymodel(T * xpush0(epsilon), h2);
|
||||||
ld x1 = current_display->radius * abs(h2[0] - h1[0]) / epsilon;
|
ld x1 = current_display->radius * abs(h2[0] - h1[0]) / epsilon;
|
||||||
@ -707,10 +709,10 @@ bool in_smart_range(const transmatrix& T) {
|
|||||||
if(svg::in) scale /= svg::divby;
|
if(svg::in) scale /= svg::divby;
|
||||||
return
|
return
|
||||||
scale > vid.smart_range_detail &&
|
scale > vid.smart_range_detail &&
|
||||||
x - 2 * max(x1, x2) < vid.xres &&
|
x - 2 * max(x1, x2) < current_display->xtop + current_display->xsize &&
|
||||||
x + 2 * max(x1, x2) > 0 &&
|
x + 2 * max(x1, x2) > current_display->xtop &&
|
||||||
y - 2 * max(y1, y2) < vid.yres &&
|
y - 2 * max(y1, y2) < current_display->ytop + current_display->ysize &&
|
||||||
y + 2 * max(y1, y2) > 0;
|
y + 2 * max(y1, y2) > current_display->ytop;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace gp {
|
namespace gp {
|
||||||
|
Loading…
Reference in New Issue
Block a user