summaryrefslogtreecommitdiffstats
path: root/src/paddle.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/paddle.c')
-rw-r--r--src/paddle.c60
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);
}