From 45e2b4dfe9570aefe3e5f2a8b7af956b7365f522 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sat, 7 May 2016 15:19:41 +0200 Subject: games/mahjongg: off by one in bmatch(), fix hint() redraw (thanks Kenji) --- sys/src/games/mahjongg/graphics.c | 28 ++++++++++++++++++---------- 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 -- cgit v1.2.3