Nagivation mesh solving

As promised a while back I've written up a post about how I implemented navigation in my game this time around. It's different to previous games I've written because the playing field is irregular (not on a grid).