There was a function that wasn't working correctly for boundary conditions.
It was a function that from some point in directx space it should return the index of a tile in an array, that's formatted in a nice grid on the screen. (i.e. a map). Due to the nature of my program, the map might start anywhere in space, so it's not aligned to an nice origin of 0,0 for instance.
It's fixed now, which means I can work my way back up to the blocking problem - which probably would be spontaneously fixed too ... but I ripped out all the code and scattered it liberally through several text files - yay me.
Okay blocking seems to be basically back in. That's nice. At some point I also managed to break fullscreen mode. So that's potentially back on the list of todos as well.
Unit test-tastic. The yellow light means I haven't written the innards to the test. Also I've only put old code in unit tests if it was causing me trouble. 58 tests taking a whopping 1.8 seconds to run.