From 8e1dd37b820e8dd0dca53f1b1e68e5a1a2703a62 Mon Sep 17 00:00:00 2001 From: demenik Date: Mon, 24 Nov 2025 13:37:30 +0100 Subject: [PATCH] fix: Pom diagonal movement #50 --- src/plugins/pom.rs | 7 ++++--- src/utils/pathfinding.rs | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/plugins/pom.rs b/src/plugins/pom.rs index fac28a4..71eefda 100644 --- a/src/plugins/pom.rs +++ b/src/plugins/pom.rs @@ -53,10 +53,11 @@ fn handle_move( ) { for message in move_messages.read() { for (grid_pos, mut path_queue) in pom_query.iter_mut() { - let start = (grid_pos.x, grid_pos.y); + let grid_start = (grid_pos.x, grid_pos.y); + let start = path_queue.steps.front().unwrap_or(&grid_start); let end = (message.x, message.y); - match find_path(start, end, &grid, &tile_query) { + match find_path(*start, end, &grid, &tile_query) { Some(new_path) => { path_queue.steps = new_path; } @@ -65,7 +66,7 @@ fn handle_move( "Cannot move to ({}, {}). Path blocked or invalid.", message.x, message.y ); - dbg!(msg); + dbg!(&msg); invalid_move_messages.write(InvalidMoveMessage { message: msg }); } } diff --git a/src/utils/pathfinding.rs b/src/utils/pathfinding.rs index 0317fd4..8f660d2 100644 --- a/src/utils/pathfinding.rs +++ b/src/utils/pathfinding.rs @@ -64,6 +64,7 @@ pub fn find_path( path.push_front(curr); curr = *came_from.get(&curr).unwrap(); } + path.push_front(start); return Some(path); }