I’ll start by saying that I compared your code to my older commit and I didn’t see anything wrong with your code. I verified that mine was working and yours wasn’t. I did some debugging and found that yours is always positioned in one of the 4 corners. Specifically in:
idx [ dist ] point
0 [62]: Point { x: 0, y: 0 }
79 [97]: Point { x: 79, y: 0 }
3920 [31]: Point { x: 0, y: 49 }
3999 [66]: Point { x: 79, y: 49 }
I also verified that all 4 corners are always walls, as they should be since all four edges are walls.
As a test, I added this to the mb.amulet_start
function:
.filter(|(idx, dist)| {
match mb.map.tiles[*idx] {
TileType::Floor => {
true
},
TileType::Wall => {
false
},
}
})
This resulted in the amulet being reachable.
That being said, I don’t have that code snippet in mine - but maybe that will help you track it down.