mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-23 21:07:17 +00:00
pointing-to-directions now checks for the cell which is the most towards the given direction
This commit is contained in:
parent
96d7496043
commit
50052f27f5
@ -87,7 +87,9 @@ EX movedir vectodir(hyperpoint P) {
|
||||
for(int i=0; i<cwt.at->type; i++) {
|
||||
transmatrix T;
|
||||
if(compute_relamatrix((cwt+i).peek(), cwt.at, i, T)) {
|
||||
dirdist[i] = quickdist(U * T * C0, Centered * P);
|
||||
ld d1 = geo_dist(U * T * C0, Centered * P, iTable);
|
||||
ld d2 = geo_dist(U * T * C0, Centered * C0, iTable);
|
||||
dirdist[i] = d1 - d2;
|
||||
}
|
||||
//xspinpush0(-i * 2 * M_PI /cwt.at->type, .5), P);
|
||||
}
|
||||
@ -238,7 +240,7 @@ EX void checkjoy() {
|
||||
if(sq < joyvalue1) { joydir.d = -1; return; }
|
||||
}
|
||||
|
||||
joydir = vectodir(hpxy(jx, jy));
|
||||
joydir = vectodir(tangent_length(point2(jx, jy), 0.01));
|
||||
}
|
||||
|
||||
EX void checkpanjoy(double t) {
|
||||
@ -1074,7 +1076,7 @@ EX bool handleCompass() {
|
||||
if(h < rad) {
|
||||
if(h < rad*SKIPFAC) movepcto(MD_WAIT);
|
||||
else {
|
||||
hyperpoint param = hpxy(dx * 1. / rad, dy * 1. / rad);
|
||||
hyperpoint param = tangent_length(point2(dx, dy), .01);
|
||||
|
||||
movedir md = vectodir(param);
|
||||
|
||||
|
@ -7246,9 +7246,10 @@ EX void precise_mouseover() {
|
||||
if(WDIM == 3) {
|
||||
mouseover2 = mouseover = viewcenter();
|
||||
ld best = HUGE_VAL;
|
||||
hyperpoint h = direct_exp(lp_iapply(ztangent(1)), 100);
|
||||
hyperpoint h = direct_exp(lp_iapply(ztangent(0.01)), 100);
|
||||
forCellEx(c1, mouseover2) {
|
||||
ld dist = hdist(tC0(ggmatrix(c1)), h);
|
||||
hyperpoint h1 = tC0(ggmatrix(c1));
|
||||
ld dist = geo_dist(h1, h, iTable) - geo_dist(C0, h1, iTable);
|
||||
if(dist < best) mouseover = c1, best = dist;
|
||||
}
|
||||
return;
|
||||
|
@ -1118,6 +1118,6 @@ hyperpoint lp_apply(const hyperpoint h) {
|
||||
return nisot::local_perspective_used() ? nisot::local_perspective * h : h;
|
||||
}
|
||||
|
||||
EX hyperpoint smalltangent() { return xtangent((sphere || hybri) ?.5 : 1); }
|
||||
EX hyperpoint smalltangent() { return xtangent(.1); }
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user