diff options
Diffstat (limited to 'src/game.c')
-rw-r--r-- | src/game.c | 52 |
1 files changed, 52 insertions, 0 deletions
@@ -1,8 +1,11 @@ #include <stdlib.h> +#include <curses.h> #include "game.h" #include "player.h" +static void draw_paddles(struct game *g); + struct game * new_game(void) { @@ -27,3 +30,52 @@ free_game(struct game *g) free(g); } + +void +draw_game(struct game *g) +{ + draw_paddles(g); +} + +static void +draw_paddles(struct game *g) +{ + int off; + int pos; + + /* Player 1 horizontal paddle */ + off = g->players[0]->paddle_h.pos; + off -= g->players[0]->paddle_h.size / 2; + for (pos = 0; pos < g->players[0]->paddle_h.size; ++pos) { + attr_on(WA_REVERSE, NULL); + mvprintw(23, off + pos, " "); + attr_off(WA_REVERSE, NULL); + } + + /* Player 1 vertical paddle */ + off = g->players[0]->paddle_v.pos; + off -= g->players[0]->paddle_v.size / 2; + for (pos = 0; pos < g->players[0]->paddle_v.size; ++pos) { + attr_on(WA_REVERSE, NULL); + mvprintw(off + pos, 1, " "); + attr_off(WA_REVERSE, NULL); + } + + /* Player 2 horizontal paddle */ + off = g->players[1]->paddle_h.pos; + off -= g->players[1]->paddle_h.size / 2; + for (pos = 0; pos < g->players[1]->paddle_h.size; ++pos) { + attr_on(WA_REVERSE, NULL); + mvprintw(1, off + pos, " "); + attr_off(WA_REVERSE, NULL); + } + + /* Player 2 vertical paddle */ + off = g->players[1]->paddle_v.pos; + off -= g->players[1]->paddle_v.size / 2; + for (pos = 0; pos < g->players[1]->paddle_v.size; ++pos) { + attr_on(WA_REVERSE, NULL); + mvprintw(off + pos, 78, " "); + attr_off(WA_REVERSE, NULL); + } +} |