mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-18 15:00:26 +00:00
gp:: improved adj
This commit is contained in:
parent
e5120bca38
commit
21cc2f6a7d
@ -466,14 +466,25 @@ int neighborId(heptagon *h1, heptagon *h2) {
|
||||
}
|
||||
|
||||
transmatrix hrmap_standard::adj(cell *c, int i) {
|
||||
if(GOLDBERG && gp::do_adjm) {
|
||||
if(GOLDBERG) {
|
||||
transmatrix T = master_relative(c, true);
|
||||
transmatrix U = master_relative(c->cmove(i), false);
|
||||
heptagon *h = c->master, *h1 = c->cmove(i)->master;
|
||||
static bool first = true;
|
||||
if(h == h1)
|
||||
return T * U;
|
||||
else if(gp::do_adjm) {
|
||||
if(gp::gp_adj.count(make_pair(c,i))) {
|
||||
return T * gp::get_adj(c,i) * U;
|
||||
}
|
||||
else
|
||||
println(hlog, "gpadj not found");
|
||||
if(first) { first = false; println(hlog, "no gp_adj"); }
|
||||
}
|
||||
else for(int i=0; i<h->type; i++) if(h->move(i) == h1)
|
||||
return T * adj(h, i) * U;
|
||||
if(first) {
|
||||
first = false;
|
||||
println(hlog, "not adjacent");
|
||||
}
|
||||
}
|
||||
if(NONSTDVAR || WDIM == 3) {
|
||||
return calc_relative_matrix(c->cmove(i), c, C0);
|
||||
|
Loading…
Reference in New Issue
Block a user