diff options
author | Jacob Janzen <jjanzenn@proton.me> | 2024-05-02 20:33:11 -0500 |
---|---|---|
committer | Jacob Janzen <jjanzenn@proton.me> | 2024-05-02 20:33:11 -0500 |
commit | 3cd1ec2279e98f9569587b38008ad0011f97e602 (patch) | |
tree | 8751ee024e444ee0b1208fad4a0cb3f6a4360f44 | |
parent | 39cfe71bffeadefdac980d153fa41ee41b712a65 (diff) |
-rw-r--r-- | configure.ac | 5 | ||||
-rw-r--r-- | src/display.c | 25 | ||||
-rw-r--r-- | src/main.c | 2 |
3 files changed, 14 insertions, 18 deletions
diff --git a/configure.ac b/configure.ac index 6cd8084..5ded62c 100644 --- a/configure.ac +++ b/configure.ac @@ -4,8 +4,9 @@ AC_CONFIG_SRCDIR([src/main.c]) AC_CONFIG_AUX_DIR([build-aux]) AC_PROG_CC -AC_CHECK_LIB([curses], [initscr]) -AC_CHECK_HEADERS([curses.h]) +AC_CHECK_LIB([ncurses], [initscr]) +AC_CHECK_LIB([tinfo], [stdscr]) +AC_CHECK_HEADERS([ncurses.h]) AM_INIT_AUTOMAKE([foreign -Wall -Werror]) diff --git a/src/display.c b/src/display.c index 28bd823..e79ed2c 100644 --- a/src/display.c +++ b/src/display.c @@ -14,6 +14,7 @@ received a copy of the GNU General Public License along with urlg. If not, see #include <curses.h> #include <locale.h> #include <stdlib.h> +#include <string.h> #include "entity.h" @@ -135,19 +136,13 @@ void display_map(display_t *disp, struct map *map, ht_t *entities) case WALL : if (map_i > 0 && map->map[(map_i - 1) * map->width + map_j] != WALL) { - mvwprintw(disp->main, i, j, "█"); - } else if (map_i < map->width - 1 && - map->map[(map_i + 1) * map->width + map_j] != - WALL) { - mvwprintw(disp->main, i, j, "█"); - } else if (map_j > 0 && - map->map[map_i * map->width + map_j - 1] != - WALL) { - mvwprintw(disp->main, i, j, "█"); - } else if (map_j < map->width - 1 && - map->map[map_i * map->width + map_j + 1] != - WALL) { - mvwprintw(disp->main, i, j, "█"); + mvwaddch(disp->main, i, j, ACS_BLOCK); + } else if (map_i < map->width - 1 && map->map[(map_i + 1) * map->width + map_j] != WALL) { + mvwaddch(disp->main, i, j, ACS_BLOCK); + } else if (map_j > 0 && map->map[map_i * map->width + map_j - 1] != WALL) { + mvwaddch(disp->main, i, j, ACS_BLOCK); + } else if (map_j < map->width - 1 && map->map[map_i * map->width + map_j + 1] != WALL) { + mvwaddch(disp->main, i, j, ACS_BLOCK); } else { mvwaddch(disp->main, i, j, ' '); } @@ -164,9 +159,9 @@ void display_map(display_t *disp, struct map *map, ht_t *entities) while (kvp.key) { struct entity *e = kvp.val; if (e->visible) { - mvwprintw( + mvwaddch( disp->main, e->p.y - camera->p.y + 1, e->p.x - camera->p.x + 1, - e->disp_ch + e->disp_ch[0] ); } @@ -149,7 +149,7 @@ int main(int argc, char **argv) // create the camera struct entity camera; - camera.disp_ch = ""; + camera.disp_ch = " "; camera.solid = false; camera.visible = false; ht_insert(entities, "camera", &camera); |