mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-25 17:40:36 +00:00
shmup should work in euc_in_product
This commit is contained in:
parent
6d0c0daa40
commit
8e49baef0e
@ -1838,7 +1838,8 @@ EX void apply_shift_object(transmatrix& Position, const transmatrix orientation,
|
||||
}
|
||||
|
||||
EX void rotate_object(transmatrix& Position, transmatrix& orientation, transmatrix R) {
|
||||
if(gproduct && WDIM == 3) orientation = orientation * R;
|
||||
if(geom3::euc_in_product()) orientation = orientation * R;
|
||||
else if(gproduct && WDIM == 3) orientation = orientation * R;
|
||||
else Position = Position * R;
|
||||
}
|
||||
|
||||
|
@ -2078,7 +2078,10 @@ EX void centerpc(ld aspd) {
|
||||
if(gproduct) NLP = ortho_inverse(pc->ori);
|
||||
if(WDIM == 2) {
|
||||
if(vid.wall_height < 0) rotate_view(cspin180(2, 1));
|
||||
rotate_view( cspin(2, 1, -90._deg - shmup::playerturny[id]) * default_spin());
|
||||
if(gproduct)
|
||||
rotate_view( cspin(2, 1, -90._deg - shmup::playerturny[id]) * cspin90(0, 1));
|
||||
else
|
||||
rotate_view( cspin(2, 1, -90._deg - shmup::playerturny[id]) * default_spin());
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -69,6 +69,7 @@ struct monster {
|
||||
stunoff = 0; blowoff = 0; fragoff = 0; footphase = 0;
|
||||
inertia = Hypc; ori = Id; vel = 0;
|
||||
swordangle = 0;
|
||||
if(geom3::euc_in_product()) ori = cgi.intermediate_to_logical_scaled;
|
||||
}
|
||||
|
||||
monster() {
|
||||
@ -939,7 +940,10 @@ void movePlayer(monster *m, int delta) {
|
||||
|
||||
if(playerturn[cpid] && canmove && !blown && WDIM == 2) {
|
||||
m->swordangle -= playerturn[cpid];
|
||||
rotate_object(nat.T, m->ori, spin(playerturn[cpid]));
|
||||
if(geom3::euc_in_product())
|
||||
rotate_object(nat.T, m->ori, cspin(0, 1, playerturn[cpid]));
|
||||
else
|
||||
rotate_object(nat.T, m->ori, spin(playerturn[cpid]));
|
||||
if(inertia_based) m->inertia = spin(-playerturn[cpid]) * m->inertia;
|
||||
}
|
||||
shiftmatrix nat0 = nat;
|
||||
|
Loading…
Reference in New Issue
Block a user