1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-12-27 10:30:36 +00:00

radar fixes

This commit is contained in:
Zeno Rogue 2022-12-18 00:16:18 +01:00
parent c2dc16f8ca
commit 547c0785ef

View File

@ -5097,14 +5097,26 @@ EX void make_actual_view() {
ld z = -tC0(view_inverse(T)) [2]; ld z = -tC0(view_inverse(T)) [2];
transmatrix R = actual_view_transform; transmatrix R = actual_view_transform;
R = (logical_to_actual()) * R; R = (logical_to_actual()) * R;
if(R[0][2] || R[2][2])
R = cspin(0, 2, -atan2(R[0][2], R[2][2])) * R;
if(R[1][2] || R[2][2]) if(R[1][2] || R[2][2])
R = cspin(1, 2, -atan2(R[1][2], R[2][2])) * R; R = cspin(1, 2, -atan2(R[1][2], R[2][2])) * R;
if(R[0][2] || R[2][2])
R = cspin(0, 2, -atan2(R[0][2], R[2][2])) * R;
if(geom3::hyp_in_solnih()) R = Id; if(geom3::hyp_in_solnih()) R = Id;
R = inverse(logical_to_actual()) * R; R = inverse(logical_to_actual()) * R;
current_display->radar_transform = inverse(R) * zpush(-z); current_display->radar_transform = inverse(R) * zpush(-z);
} }
else if(gproduct) {
transmatrix T = View;
ld z = zlevel(tC0(inverse(T)));
transmatrix R = NLP;
if(R[1][2] || R[2][2])
R = cspin(1, 2, -atan2(R[1][2], R[2][2])) * R;
if(R[0][2] || R[2][2])
R = cspin(0, 2, -atan2(R[0][2], R[2][2])) * R;
current_display->radar_transform = R * zpush(z);
}
else { else {
transmatrix T = actual_view_transform * View; transmatrix T = actual_view_transform * View;
transmatrix U = view_inverse(T); transmatrix U = view_inverse(T);