diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-05-07 15:19:41 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-05-07 15:19:41 +0200 |
commit | 45e2b4dfe9570aefe3e5f2a8b7af956b7365f522 (patch) | |
tree | 85bc2e274f4200c6e29995a00d53fbac39d59f6b /sys | |
parent | 8ac8b3e064f26a1e490accd16d1da30f9d6bb926 (diff) |
games/mahjongg: off by one in bmatch(), fix hint() redraw (thanks Kenji)
Diffstat (limited to 'sys')
-rw-r--r-- | sys/src/games/mahjongg/graphics.c | 28 | ||||
-rw-r--r-- | sys/src/games/mahjongg/logic.c | 2 |
2 files changed, 19 insertions, 11 deletions
diff --git a/sys/src/games/mahjongg/graphics.c b/sys/src/games/mahjongg/graphics.c index f93811d4a..c406f7953 100644 --- a/sys/src/games/mahjongg/graphics.c +++ b/sys/src/games/mahjongg/graphics.c @@ -135,7 +135,7 @@ void hint(void) { int d = 0, x = 0, y = 0; - Brick *b = nil; + Brick *a, *b = nil; if(level.c.d != -1) { if((b = bmatch(level.c)) != nil) { @@ -154,24 +154,32 @@ hint(void) Matched: if (b == nil) return; - level.board[d][x][y].clicked = 1; + + a = &level.board[d][x][y]; + a->clicked = 1; + a->redraw = 1; b->clicked = 1; b->redraw = 1; updatelevel(); - sleep(500); - if(level.c.d == -1) - level.board[d][x][y].clicked = 0; + sleep(100); + if(level.c.d == -1){ + a->clicked = 0; + a->redraw = 1; + } b->clicked = 0; b->redraw = 1; updatelevel(); - sleep(500); - level.board[d][x][y].clicked = 1; + sleep(100); + a->clicked = 1; + a->redraw = 1; b->clicked = 1; b->redraw = 1; updatelevel(); - sleep(500); - if(level.c.d == -1) - level.board[d][x][y].clicked = 0; + sleep(100); + if(level.c.d == -1){ + a->clicked = 0; + a->redraw = 1; + } b->clicked = 0; b->redraw = 1; updatelevel(); diff --git a/sys/src/games/mahjongg/logic.c b/sys/src/games/mahjongg/logic.c index ff65d457a..be4d23687 100644 --- a/sys/src/games/mahjongg/logic.c +++ b/sys/src/games/mahjongg/logic.c @@ -77,7 +77,7 @@ bmatch(Click c) { Click lc; - lc = cmatch(c, Depth); + lc = cmatch(c, Depth - 1); if(lc.d == -1) return nil; else |