This image doesn't illustrate this well. There should be other blocking Things affecting the path.
The idea is to, instead of generating a PathMap for the entire dungeon and trying to keep it persistent, we generate in little chunks,on-the-fly, as a Rect2 with a pos/size dictated by the positions of the pathfinder and his destination cell (or, the chasing monster and the player's current position). This will probably be a fairly involved task, but once it's done we'll have a powerful new tool at our disposal, that is infinitely scalable, and implemented in a user-friendly way.
We could create a new function for our DataMap class, which returns a section of its floor matrix, given a Rect2 argument. This can then get passed over to PathMap to generate an A* map and find a path. (this is a new idea, and will need some testing)
This image doesn't illustrate this well. There should be other blocking Things affecting the path.
The idea is to, instead of generating a PathMap for the entire dungeon and trying to keep it persistent, we generate in little chunks,on-the-fly, as a Rect2 with a pos/size dictated by the positions of the pathfinder and his destination cell (or, the chasing monster and the player's current position). This will probably be a fairly involved task, but once it's done we'll have a powerful new tool at our disposal, that is infinitely scalable, and implemented in a user-friendly way.
We could create a new function for our DataMap class, which returns a section of its floor matrix, given a Rect2 argument. This can then get passed over to PathMap to generate an A* map and find a path.
(this is a new idea, and will need some testing)