1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-12-19 07:20:25 +00:00

product:: animations fixed

This commit is contained in:
Zeno Rogue 2019-08-18 22:27:55 +02:00
parent 3c5a5f455a
commit b0f954f422

View File

@ -2311,10 +2311,20 @@ bool applyAnimation(cell *c, transmatrix& V, double& footphase, int layer) {
return false;
}
else {
hyperpoint wnow;
if(a.attacking == 1)
a.wherenow = a.wherenow * rspintox(tC0(inverse(a.wherenow) * a.attackat));
wnow = tC0(inverse(a.wherenow) * a.attackat);
else
a.wherenow = a.wherenow * rspintox(tC0(inverse(a.wherenow)));
wnow = tC0(inverse(a.wherenow));
if(prod) {
auto d = product_decompose(wnow);
ld dist = d.first / R * aspd;
if(abs(dist) > abs(d.first)) dist = -d.first;
a.wherenow = mscale(a.wherenow, dist);
aspd *= sqrt(R*R - d.first * d.first) / R;
}
a.wherenow = a.wherenow * rspintox(wnow);
a.wherenow = a.wherenow * xpush(aspd);
fixmatrix(a.wherenow);
a.footphase += a.attacking == 2 ? -aspd : aspd;