diff options
Diffstat (limited to 'apps/plugins')
-rw-r--r-- | apps/plugins/rockblox.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c index 6676ace8b1..025e3b4e25 100644 --- a/apps/plugins/rockblox.c +++ b/apps/plugins/rockblox.c | |||
@@ -753,6 +753,7 @@ static struct _rockblox_status | |||
753 | int cf; | 753 | int cf; |
754 | int co; | 754 | int co; |
755 | int nf; | 755 | int nf; |
756 | bool dropped; | ||
756 | short board[BOARD_HEIGHT][BOARD_WIDTH]; /* 20 rows of 10 blocks */ | 757 | short board[BOARD_HEIGHT][BOARD_WIDTH]; /* 20 rows of 10 blocks */ |
757 | } rockblox_status; | 758 | } rockblox_status; |
758 | 759 | ||
@@ -1234,7 +1235,7 @@ static void draw_next_block (void) | |||
1234 | /* move the block to a relative location */ | 1235 | /* move the block to a relative location */ |
1235 | static void move_block (int x, int y, int o) | 1236 | static void move_block (int x, int y, int o) |
1236 | { | 1237 | { |
1237 | if (canMoveTo (rockblox_status.cx + x, rockblox_status.cy + y, o)) { | 1238 | if (!rockblox_status.dropped && canMoveTo (rockblox_status.cx + x, rockblox_status.cy + y, o)) { |
1238 | rockblox_status.cy += y; | 1239 | rockblox_status.cy += y; |
1239 | rockblox_status.cx += x; | 1240 | rockblox_status.cx += x; |
1240 | rockblox_status.co = o; | 1241 | rockblox_status.co = o; |
@@ -1251,6 +1252,7 @@ static void new_block (void) | |||
1251 | rockblox_status.nf = t_rand (BLOCKS_NUM); | 1252 | rockblox_status.nf = t_rand (BLOCKS_NUM); |
1252 | rockblox_status.gameover = !canMoveTo (rockblox_status.cx, | 1253 | rockblox_status.gameover = !canMoveTo (rockblox_status.cx, |
1253 | rockblox_status.cy, rockblox_status.co); | 1254 | rockblox_status.cy, rockblox_status.co); |
1255 | rockblox_status.dropped = false; | ||
1254 | 1256 | ||
1255 | draw_next_block (); | 1257 | draw_next_block (); |
1256 | } | 1258 | } |
@@ -1511,6 +1513,7 @@ static int rockblox_loop (void) | |||
1511 | #endif | 1513 | #endif |
1512 | while (canMoveTo (rockblox_status.cx, rockblox_status.cy + 1, rockblox_status.co)) | 1514 | while (canMoveTo (rockblox_status.cx, rockblox_status.cy + 1, rockblox_status.co)) |
1513 | move_block (0, 1, rockblox_status.co); | 1515 | move_block (0, 1, rockblox_status.co); |
1516 | rockblox_status.dropped = true; | ||
1514 | break; | 1517 | break; |
1515 | #ifdef ROCKBLOX_RESTART | 1518 | #ifdef ROCKBLOX_RESTART |
1516 | case ROCKBLOX_RESTART: | 1519 | case ROCKBLOX_RESTART: |