From b4b83c53db8b79a2141ef43ce9d3567f482462ee Mon Sep 17 00:00:00 2001 From: Kirill Petrashin Date: Thu, 23 Apr 2026 14:42:55 +0300 Subject: Allow switching amount of directions with a keybind --- map.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'map.c') diff --git a/map.c b/map.c index 85cc073..11f9eb6 100644 --- a/map.c +++ b/map.c @@ -659,6 +659,7 @@ void map_editor(Map *map, size_t *width, size_t *height, Position *start, Positi * [a] - Toggle pathfinding * * [d] - Switch algorithms (A* or Dijsktra's) + * [4] - Switch amount of directions (4 or 8) * * [r] - Reverse path * @@ -719,6 +720,15 @@ void map_editor(Map *map, size_t *width, size_t *height, Position *start, Positi case 'd': if (path_func == astar_path) { set_message("Dijkstra's"); path_func = &dijkstra_path; } else { set_message("A*"); path_func = &astar_path; }; + + path_free(path, *height); + if (should_pathfind) path = path_func(dirs, *map, NULL, *width, *height, *start, *goal, visited, 0); + break; + + case '4': + if (dirs == 4) { set_message("8 directions"); dirs = 8; } + else { set_message("4 directions"); dirs = 4; }; + path_free(path, *height); if (should_pathfind) path = path_func(dirs, *map, NULL, *width, *height, *start, *goal, visited, 0); break; -- cgit v1.2.3