diff options
Diffstat (limited to 'src/paddle.c')
-rw-r--r-- | src/paddle.c | 60 |
1 files changed, 24 insertions, 36 deletions
diff --git a/src/paddle.c b/src/paddle.c index 0028892..1492ede 100644 --- a/src/paddle.c +++ b/src/paddle.c @@ -6,37 +6,29 @@ void update_paddle(struct paddle *pad) { - int min; - int max; - - pad->pos += pad->speed * pad->dir; - if (pad->type == PADDLE_TYPE_H) { - min = 3; - max = BOARD_WIDTH - 2; - } else { - min = 2; - max = BOARD_HEIGHT - 2; + *pad->pos += pad->speed * pad->dir; + if (*pad->pos < pad->min_pos + *pad->size / 2) { + *pad->pos = pad->min_pos + *pad->size / 2; + } + if (*pad->pos > pad->max_pos - *pad->size / 2) { + *pad->pos = pad->max_pos - *pad->size / 2; } - if (pad->pos < min + pad->size / 2) pad->pos = min + pad->size / 2; - if (pad->pos > max - pad->size / 2) pad->pos = max - pad->size / 2; } void clear_paddle(struct paddle *pad) { - int off; - int pos; + int x_off; + int y_off; + int x; + int y; - off = pad->pos; - off -= pad->size / 2; + x_off = pad->x - pad->width / 2; + y_off = pad->y - pad->height / 2; - if (pad->type == PADDLE_TYPE_H) { - for (pos = 0; pos < pad->size; ++pos) { - mvprintw(pad->track, off + pos, " "); - } - } else { - for (pos = 0; pos < pad->size; ++pos) { - mvprintw(off + pos, pad->track, " "); + for (x = 0; x < pad->width; ++x) { + for (y = 0; y < pad->height; ++y) { + mvprintw(y_off + y, x_off + x, " "); } } } @@ -44,23 +36,19 @@ clear_paddle(struct paddle *pad) void draw_paddle(struct paddle *pad) { - int off; - int pos; + int x_off; + int y_off; + int x; + int y; - off = pad->pos; - off -= pad->size / 2; + x_off = pad->x - pad->width / 2; + y_off = pad->y - pad->height / 2; attr_on(WA_REVERSE, NULL); - - if (pad->type == PADDLE_TYPE_H) { - for (pos = 0; pos < pad->size; ++pos) { - mvprintw(pad->track, off + pos, " "); - } - } else { - for (pos = 0; pos < pad->size; ++pos) { - mvprintw(off + pos, pad->track, " "); + for (x = 0; x < pad->width; ++x) { + for (y = 0; y < pad->height; ++y) { + mvprintw(y_off + y, x_off + x, " "); } } - attr_off(WA_REVERSE, NULL); } |