mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-30 15:39:54 +00:00
ads-game:: crash with walls
This commit is contained in:
parent
ae0ab132e1
commit
818d943827
@ -231,6 +231,25 @@ void handle_crashes() {
|
|||||||
gain_resource(r->resource);
|
gain_resource(r->resource);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hyperpoint h1 = normalize(h);
|
||||||
|
swap(h1[2], h1[3]);
|
||||||
|
bool crashed = false;
|
||||||
|
hybrid::in_actual([&] {
|
||||||
|
ads_point rel = ads_inverse(current * vctrV) * ads_point(h1, 0);
|
||||||
|
cell *c = vctr;
|
||||||
|
virtualRebase(c, rel.h);
|
||||||
|
optimize_shift(rel);
|
||||||
|
auto w = hybrid::get_where(c);
|
||||||
|
auto& ci = ci_at[w.first];
|
||||||
|
ld t = rel.shift + w.second * cgi.plevel;
|
||||||
|
if(ci.type == wtDestructible || ci.type == wtSolid || (ci.type == wtGate && (int(floor(t)) & 3) == 0)) {
|
||||||
|
if(!crashed && ship_pt > invincibility_pt) println(hlog, "crashed at t = ", t / TAU, " shift = ", rel.shift/TAU, " sec = ", w.second*cgi.plevel/TAU);
|
||||||
|
crashed = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if(crashed) crash_ship();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user