From c8b5065a45bc098d1c7dde0d88f6f78793223928 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Wed, 26 Jan 2022 17:15:20 -0500 Subject: maze: Factor out border line drawing --- (limited to 'src') diff --git a/src/maze.c b/src/maze.c index 05703a7..a59b4e9 100644 --- a/src/maze.c +++ b/src/maze.c @@ -234,7 +234,7 @@ mf_maze_new(int s, int w, int h, int show_all) } static int -_mf_maze_render_line(SDL_Renderer *renderer, int x, int y, int w, int h, int cw) +_mf_maze_draw_line(SDL_Renderer *renderer, int x, int y, int w, int h, int cw) { SDL_Rect rect; @@ -252,8 +252,7 @@ _mf_maze_render_line(SDL_Renderer *renderer, int x, int y, int w, int h, int cw) } int -mf_maze_render(struct mf_maze *m, SDL_Renderer *renderer, SDL_Color *color, - int cw) +mf_maze_render(struct mf_maze *m, SDL_Renderer *r, SDL_Color *color, int cw) { int e; int x; @@ -261,7 +260,7 @@ mf_maze_render(struct mf_maze *m, SDL_Renderer *renderer, SDL_Color *color, e = 0; - if (SDL_SetRenderDrawColor(renderer, + if (SDL_SetRenderDrawColor(r, color->r, color->g, color->b, color->a) < 0) { SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't set drawing color: %s", @@ -269,15 +268,11 @@ mf_maze_render(struct mf_maze *m, SDL_Renderer *renderer, SDL_Color *color, e = -1; } - x = m->w * cw - 1; - y = m->h * cw - 1; if ( - SDL_RenderDrawLine(renderer, 0, 0, x, 0) < 0 || - SDL_RenderDrawLine(renderer, 0, y, x, y) < 0 || - SDL_RenderDrawLine(renderer, 0, 0, 0, y) < 0 || - SDL_RenderDrawLine(renderer, x, 0, x, y) < 0) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, - "Couldn't draw line: %s", SDL_GetError()); + _mf_maze_draw_line(r, 0, 0, m->w, 0, cw) < 0 || + _mf_maze_draw_line(r, 0, m->h, m->w, 0, cw) < 0 || + _mf_maze_draw_line(r, 0, 0, 0, m->h, cw) < 0 || + _mf_maze_draw_line(r, m->w, 0, 0, m->h, cw) < 0) { e = -1; } @@ -286,7 +281,7 @@ mf_maze_render(struct mf_maze *m, SDL_Renderer *renderer, SDL_Color *color, if (y < m->h - 1 && mf_maze_is_wall(m, x, y, 0, 1) && _mf_maze_revealed_wall(m, x, y, 0, 1)) { /* Draw h line */ - if (_mf_maze_render_line(renderer, x , y+1, + if (_mf_maze_draw_line(r, x , y+1, 1, 0, cw) < 0) { e = -1; } @@ -294,7 +289,7 @@ mf_maze_render(struct mf_maze *m, SDL_Renderer *renderer, SDL_Color *color, if (x < m->w - 1 && mf_maze_is_wall(m, x, y, 1, 0) && _mf_maze_revealed_wall(m, x, y, 1, 0)) { /* Draw v line */ - if (_mf_maze_render_line(renderer, x+1, y , + if (_mf_maze_draw_line(r, x+1, y , 0, 1, cw) < 0) { e = -1; } diff --git a/src/maze.h b/src/maze.h index 4482f67..fb96358 100644 --- a/src/maze.h +++ b/src/maze.h @@ -41,8 +41,7 @@ struct mf_maze * mf_maze_new(int s, int w, int h, int show_all); int -mf_maze_render(struct mf_maze *m, SDL_Renderer *renderer, SDL_Color *color, - int cw); +mf_maze_render(struct mf_maze *m, SDL_Renderer *r, SDL_Color *color, int cw); void mf_maze_destroy(struct mf_maze **m_p); -- cgit v0.9.1