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; return false;
} }
else { else {
if(a.attacking == 1) hyperpoint wnow;
a.wherenow = a.wherenow * rspintox(tC0(inverse(a.wherenow) * a.attackat)); if(a.attacking == 1)
wnow = tC0(inverse(a.wherenow) * a.attackat);
else 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); a.wherenow = a.wherenow * xpush(aspd);
fixmatrix(a.wherenow); fixmatrix(a.wherenow);
a.footphase += a.attacking == 2 ? -aspd : aspd; a.footphase += a.attacking == 2 ? -aspd : aspd;