From 4e2017ea1cb01ce02d65f67cd0fb373f4951a6ab Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Mon, 20 May 2013 21:18:10 -0400 Subject: Move paddle updating code into new function. --- diff --git a/src/game.c b/src/game.c index cce4497..7eb4712 100644 --- a/src/game.c +++ b/src/game.c @@ -4,6 +4,7 @@ #include "game.h" #include "player.h" +#include "paddle.h" static void draw_paddles(struct game *g); static void wait(struct game *g); @@ -83,31 +84,10 @@ input(struct game *g) static void update(struct game *g) { - struct paddle *pad; - - /* Player 1 horizontal paddle */ - pad = &g->players[0]->paddle_h; - pad->pos += pad->speed * pad->dir; - if (pad->pos < pad->size / 2 + 2) pad->pos = pad->size / 2 + 2; - if (pad->pos > 78 - pad->size / 2) pad->pos = 78 - pad->size / 2; - - /* Player 1 vertical paddle */ - pad = &g->players[0]->paddle_v; - pad->pos += pad->speed * pad->dir; - if (pad->pos < pad->size / 2 + 2) pad->pos = pad->size / 2 + 2; - if (pad->pos > 23 - pad->size / 2) pad->pos = 23 - pad->size / 2; - - /* Player 2 horizontal paddle */ - pad = &g->players[1]->paddle_h; - pad->pos += pad->speed * pad->dir; - if (pad->pos < pad->size / 2 + 2) pad->pos = pad->size / 2 + 2; - if (pad->pos > 78 - pad->size / 2) pad->pos = 78 - pad->size / 2; - - /* Player 2 vertical paddle */ - pad = &g->players[1]->paddle_v; - pad->pos += pad->speed * pad->dir; - if (pad->pos < pad->size / 2 + 2) pad->pos = pad->size / 2 + 2; - if (pad->pos > 23 - pad->size / 2) pad->pos = 23 - pad->size / 2; + update_paddle(&g->players[0]->paddle_h); + update_paddle(&g->players[0]->paddle_v); + update_paddle(&g->players[1]->paddle_h); + update_paddle(&g->players[1]->paddle_v); } static void diff --git a/src/local.mk b/src/local.mk index 199d4e5..3f3338d 100644 --- a/src/local.mk +++ b/src/local.mk @@ -1,4 +1,5 @@ src_SOURCES = \ src/main.c \ src/game.c \ - src/player.c + src/player.c \ + src/paddle.c diff --git a/src/paddle.c b/src/paddle.c new file mode 100644 index 0000000..57cdbb5 --- /dev/null +++ b/src/paddle.c @@ -0,0 +1,16 @@ +#include "paddle.h" + +void +update_paddle(struct paddle *pad) +{ + int max; + + pad->pos += pad->speed * pad->dir; + if (pad->type == PADDLE_TYPE_H) { + max = 78; + } else { + max = 23; + } + if (pad->pos < pad->size / 2 + 2) pad->pos = pad->size / 2 + 2; + if (pad->pos > max - pad->size / 2) pad->pos = max - pad->size / 2; +} diff --git a/src/paddle.h b/src/paddle.h index 5f7de67..46891ba 100644 --- a/src/paddle.h +++ b/src/paddle.h @@ -7,12 +7,19 @@ static const int PADDLE_H_SIZE_NORMAL = 8; static const int PADDLE_V_SIZE_NORMAL = 4; static const int PADDLE_H_SPEED_NORMAL = 2; static const int PADDLE_V_SPEED_NORMAL = 1; +enum paddle_type { + PADDLE_TYPE_H, + PADDLE_TYPE_V +}; struct paddle { int pos; int size; int speed; int dir; + int type; }; +void update_paddle(struct paddle *pad); + #endif diff --git a/src/player.c b/src/player.c index a0cf7bb..ad0166a 100644 --- a/src/player.c +++ b/src/player.c @@ -22,6 +22,8 @@ new_player(void) p->paddle_v.speed = PADDLE_V_SPEED_NORMAL; p->paddle_h.dir = 0; p->paddle_v.dir = 0; + p->paddle_h.type = PADDLE_TYPE_H; + p->paddle_v.type = PADDLE_TYPE_V; return p; } -- cgit v0.9.1