So, still working on this. I'm happy to report that I'm nearly done. Just a one more feature to add, and a quick re-factor and it should be good to go. The additional feature is to make
into a vector of allowed terrain types, rather than just the one terrain type.
Here's a spoiler, player movement wrapping around the world map (toroidal world topology). Note this world size is the much hoped for 1-screen worldmap size (46x26 tiles).