summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2013-05-20 21:18:10 (EDT)
committer P. J. McDermott <pjm@nac.net>2013-05-20 21:18:10 (EDT)
commit4e2017ea1cb01ce02d65f67cd0fb373f4951a6ab (patch)
treead85544ddcaf9da2456d44477a1dde4c88aeb86c
parent71c35972a5403c762e04a68baa9cb2dd28a714fe (diff)
downloadcursespong-4e2017ea1cb01ce02d65f67cd0fb373f4951a6ab.zip
cursespong-4e2017ea1cb01ce02d65f67cd0fb373f4951a6ab.tar.gz
cursespong-4e2017ea1cb01ce02d65f67cd0fb373f4951a6ab.tar.bz2
Move paddle updating code into new function.
-rw-r--r--src/game.c30
-rw-r--r--src/local.mk3
-rw-r--r--src/paddle.c16
-rw-r--r--src/paddle.h7
-rw-r--r--src/player.c2
5 files changed, 32 insertions, 26 deletions
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;
}