1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-10-18 06:30:41 +00:00

Merge pull request #381 from jlmjlm/tabsd

Select the keyboard push-subdirection with Tab.
This commit is contained in:
Zeno Rogue 2024-10-11 12:50:54 +02:00 committed by GitHub
commit 74dcd03ac6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 14 additions and 7 deletions

View File

@ -149,6 +149,7 @@ EX void movepckeydir(int d) {
if(protect_memory()) return;
movedir md = vectodir(move_destination_vec(d));
md.subdir = keybd_subdir ? 1 : -1;
if(!canmove) movepcto(md), remission(); else movepcto(md);
}
@ -618,6 +619,10 @@ EX void handleKeyNormal(int sym, int uni) {
else restart_game();
}
if(sym == SDLK_TAB) {
keybd_subdir = !keybd_subdir;
}
if(sym == SDLK_ESCAPE) {
if(bow::fire_mode)
bow::switch_fire_mode();

View File

@ -3597,8 +3597,9 @@ EX transmatrix applyDowndir(cell *c, const cellfunction& cf) {
return ddspin180(c, patterns::downdir(c, cf));
}
void draw_movement_arrows(cell *c, const transmatrix& V, int df) {
EX bool keybd_subdir;
void draw_movement_arrows(cell *c, const transmatrix& V, int df) {
if(viewdists) return;
string keylist = "";
@ -3628,8 +3629,8 @@ void draw_movement_arrows(cell *c, const transmatrix& V, int df) {
if((c->type & 1) && (isStunnable(c->monst) || isPushable(c->wall))) {
transmatrix Centered = rgpushxto0(unshift(tC0(cwtV)));
int sd = md.subdir;
int sd = keybd_subdir ? 1 : -1;
transmatrix T = iso_inverse(Centered) * rgpushxto0(Centered * tC0(V)) * lrspintox(Centered*tC0(V)) * spin(-sd * M_PI/S7) * xpush(0.2);
if(vid.axes >= 5)

View File

@ -259,7 +259,7 @@ string pushtext(stringpar p) {
"\n\nNote: when pushing %the1 off a heptagonal cell, you can control the pushing direction "
"by clicking left or right half of the heptagon.", p);
#if !ISMOBILE
s += XLAT(" With the keyboard, you can rotate the view for a similar effect (Page Up/Down).");
s += XLAT(" With the keyboard, you can press Tab to invert the way the pushing direction leans.");
#endif
return s;
}
@ -678,7 +678,7 @@ EX string generateHelpForMonster(eMonster m) {
}
s += XLAT(minf[m].help);
if(m == moPalace || m == moSkeleton)
if(isStunnable(m))
s += pushtext(m);
if(m == moTroll) s += XLAT(trollhelp2);

View File

@ -275,7 +275,8 @@ EX bool movepcto(int d, int subdir IS(1), bool checkonly IS(false)) {
checked_move_issue.type = miVALID;
pcmove pcm;
pcm.checkonly = checkonly;
pcm.d = d; pcm.subdir = subdir;
pcm.d = d;
pcm.subdir = subdir;
auto b = pcm.movepcto();
global_pushto = pcm.mip.t;
return b;
@ -1855,4 +1856,4 @@ EX void movecost(cell* from, cell *to, int phase) {
}
}
}
}