diff options
| author | Kirill Petrashin <kirill8201@yandex.ru> | 2026-04-23 14:29:15 +0300 |
|---|---|---|
| committer | Kirill Petrashin <kirill8201@yandex.ru> | 2026-04-23 14:29:15 +0300 |
| commit | 6834ffa31842ca249514854bac8bae0f0022f104 (patch) | |
| tree | e3b2c68ee6951727b65910b5bfe7876646c756bd /main.c | |
| parent | fbde58b3509184a687759bc822b5567e9a13d2bc (diff) | |
| download | astar-6834ffa31842ca249514854bac8bae0f0022f104.tar.xz | |
Make wraparound toggleable with a keybind
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 17 |
1 files changed, 16 insertions, 1 deletions
@@ -186,6 +186,8 @@ int main(int argc, char **argv) { * * [d] - Switch algorithms (A* or Dijsktra's) * + * [f] - Toggle wraparound + * * [r] - Reverse the path and switch start/end around * * [s] - Save the map to a bmp file @@ -271,13 +273,26 @@ int main(int argc, char **argv) { break; case 'd': - if (path_func == astar_path) { set_message("Dijkstra"); path_func = &dijkstra_path; } + 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); path = path_func(dirs, map, cell_costs, width, height, start_pos, end_pos, visited, anim); /* TODO: print time */ break; + case 'f': + wraparound_enabled = !wraparound_enabled; + if (wraparound_enabled) + set_message("Enabled wraparound, only works on Dijkstra's") + else + set_message("Disabled wraparound"); + + if (path_func == dijkstra_path) { + path_free(path, height); + path = path_func(dirs, map, cell_costs, width, height, start_pos, end_pos, visited, anim); + } + break; + case 'r': path_reverse(&path, width, height, &start_pos, &end_pos); break; |
