1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-27 14:37:16 +00:00

fixup to simple_impossible

This commit is contained in:
Zeno Rogue 2023-01-30 01:02:02 +01:00
parent c21d5373e5
commit 439850f74c

View File

@ -21,8 +21,8 @@ hyperpoint last_loc;
transmatrix to_iso, from_iso; transmatrix to_iso, from_iso;
hyperpoint from_heis(hyperpoint h) { hyperpoint to_rot(hyperpoint h) {
return nilv::checked_convert(h, nilv::nmHeis, nilv::model_used); return nilv::checked_convert(h, nilv::model_used, nilv::nmSym);
} }
hyperpoint from_rot(hyperpoint h) { hyperpoint from_rot(hyperpoint h) {
@ -90,7 +90,7 @@ void place_brick(euc::coord co, color_t col = 0xFFD500, int which = -1) {
hyperpoint start = mvertices[a]; hyperpoint start = mvertices[a];
hyperpoint end = inverse(eupush(root_loc)) * eupush(next_loc) * mvertices[b]; hyperpoint end = inverse(eupush(root_loc)) * eupush(next_loc) * mvertices[b];
end = inverse(eupush(start)) * end; end = inverse(eupush(start)) * end;
end = from_heis(end); end = to_rot(end);
vertices[b] = inverse(eupush(bri.location)) * eupush(root_loc) * eupush(start) * from_rot(lerp(C0, end, p0)); vertices[b] = inverse(eupush(bri.location)) * eupush(root_loc) * eupush(start) * from_rot(lerp(C0, end, p0));
vertices[a] = inverse(eupush(bri.location)) * eupush(root_loc) * eupush(start) * from_rot(lerp(C0, end, p1)); vertices[a] = inverse(eupush(bri.location)) * eupush(root_loc) * eupush(start) * from_rot(lerp(C0, end, p1));
@ -140,7 +140,7 @@ bool walls_created = false;
const int darkval_e6[6] = {0,4,6,0,4,6}; const int darkval_e6[6] = {0,4,6,0,4,6};
bool spinning = true; bool spinning = false;
void draw_ro() { void draw_ro() {
@ -328,14 +328,14 @@ void build_stair() {
transmatrix T = spin(90._deg*diy); transmatrix T = spin(90._deg*diy);
hs[0] = T * point31(+xx, -xx, -hei); hs[0] = T * point31(+xx, -xx, -hei);
hs[1] = T * point31(+xx, +xx, -hei); hs[1] = T * point31(+xx, +xx, -hei);
hs[2] = from_heis(eupush(C0 + shift) * from_rot(T * point31(-xx, +xx, -hei))); hs[2] = to_rot(eupush(C0 + shift) * from_rot(T * point31(-xx, +xx, -hei)));
hs[3] = from_heis(eupush(C0 + shift) * from_rot(T * point31(-xx, -xx, -hei))); hs[3] = to_rot(eupush(C0 + shift) * from_rot(T * point31(-xx, -xx, -hei)));
} }
else { else {
transmatrix T = spin(90._deg*diy); transmatrix T = spin(90._deg*diy);
hyperpoint lshift = step ? shift : spin270() * shift; hyperpoint lshift = step ? shift : spin270() * shift;
hs[0] = from_heis(eupush(C0 - lshift) * from_rot(T * point31(-xx, +xx, hei))); hs[0] = to_rot(eupush(C0 - lshift) * from_rot(T * point31(-xx, +xx, hei)));
hs[1] = from_heis(eupush(C0 - lshift) * from_rot(T * point31(-xx, -xx, hei))); hs[1] = to_rot(eupush(C0 - lshift) * from_rot(T * point31(-xx, -xx, hei)));
hs[2] = T * point31(+xx, -xx, hei); hs[2] = T * point31(+xx, -xx, hei);
hs[3] = T * point31(+xx, +xx, hei); hs[3] = T * point31(+xx, +xx, hei);
} }
@ -366,7 +366,7 @@ hyperpoint interp(ld t) {
hyperpoint next = path[(ti+1)%no]; hyperpoint next = path[(ti+1)%no];
hyperpoint n = inverse(eupush(prev)) * next; hyperpoint n = inverse(eupush(prev)) * next;
n = from_heis(n); n = to_rot(n);
n = lerp(C0, n, t); n = lerp(C0, n, t);
return eupush(prev) * from_rot(n); return eupush(prev) * from_rot(n);