From fe63823ba6549b07c7480b60bd2b0952687a1a94 Mon Sep 17 00:00:00 2001 From: girst Date: Sun, 20 May 2018 18:36:08 +0200 Subject: [PATCH] find, till, after x --- README.md | 2 +- mines.c | 8 +++++++- mines.h | 6 +++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 10a2915..417d80d 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Complete documentation and screenshots can be found on the | `i` | flag / unflag | | `o` | open / chord | | space | modeful, either open or flag | -| `a` | toggle mode for space (open/flag) | +| `e` | toggle mode for space (open/flag) | | `r` | restart game | | Ctrl-L | redraw screen | | `q` | quit | diff --git a/mines.c b/mines.c index 63e3f4c..22a7a06 100644 --- a/mines.c +++ b/mines.c @@ -136,7 +136,7 @@ int minesviiper(void) { if (g.s == MODE_FLAG) goto flag_cell; if (g.s == MODE_QUESM) goto quesm_cell; break; - case 'a': + case 'e': g.s = (g.s+1)%(op.mode+1); show_minefield (g.c?SHOWMINES:NORMAL); break; @@ -180,6 +180,8 @@ int minesviiper(void) { case 'F': find(getch_wrapper(), '<'); break; case 't': till(getch_wrapper(), '>'); break; case 'T': till(getch_wrapper(), '<'); break; + case 'a': after(getch_wrapper(),'>'); break; + case 'A': after(getch_wrapper(),'<'); break; case WRAPPER_EMOTICON: case 'r': timer_setup(0); return GAME_NEW; case 'q': return GAME_QUIT; @@ -448,6 +450,10 @@ void till (int what, char direction) { /* if we found what we were looking for move one cell back */ if (find (what, direction)) move_hi(g.p[0], g.p[1]-(direction-'=')); } +void after (int what, char direction) { + /* if we found what we were looking for move one more cell */ + if (find (what, direction)) move_hi(g.p[0], g.p[1]+(direction-'=')); +} char* cell2schema (int l, int c, int mode) { struct minecell cell = f.c[l][c]; diff --git a/mines.h b/mines.h index ac2d78f..d0b20cd 100644 --- a/mines.h +++ b/mines.h @@ -22,9 +22,12 @@ " o: open/choord\n" \ " i: flag/unflag\n" \ " space:modeful cursor (either open or flag)\n" \ - " a: toggle mode for space (open/flag)\n" \ + " e: toggle mode for space (open/flag)\n" \ " mX: set a mark for letter X\n" \ " `X: move to mark X (aliased to ')\n" \ + " f/F x:find forward/backward [012345678 ocf?]\n" \ + " t/T x:'til forward/backward [012345678 ocf?]\n" \ + " a/A x:after forward/backward [012345678 ocf?]\n" \ " r: start a new game\n" \ " q: quit\n" @@ -67,6 +70,7 @@ void move_hi (int, int); void to_next_boundary (int, int, char); int find (int, char); void till (int, char); +void after(int, char); int getch (unsigned char*); int getch_wrapper (void); int getctrlseq (unsigned char*); -- 2.39.3