I was messing about making the details of the main Pod load from a config file rather than be hard coded and randomly gave Pod a radius of greater than 24, so a diameter of more than 48, which is the size of a map cell.
My map sampling method, which basically returns shapes based on the cells within a 2x2 grid but welds certain pairs of shapes together into one shape, to avoid the problems I described a few weeks ago, now no longer works. Obviously.
So the current system can't cope with map collisions with anything larger than a map block, which is a bit rubbish.
Moving to sampling and welding from a 3x3 grid creates so many possible combinations of shapes that it would be horrible, and would just throw a 86x86 limit on the size of a moving entity, so isn't really a viable solution.
I think I might have to find a way to collide against edges rather than shapes, so standard SAT will be out of the question. Unless I can find some kind of hacky way to mark horizontal edges with rectangular regions somehow. But then it creates a lot of extra work at the level design stage.
Pain in the bum, all this. It is going to take some thinking about and possibly a complete rethink about how collision physics is handled.
Anyway, off out to a fireworks display now with the missus. Hopefully that might trigger some inspiration. Be more chance if I had a problem with particle systems I guess but you never know.
Having slept on the problem, the most robust solution seems to be one that is going to mean a bit of extra work at the level design stage.
Basically after the visual look of the level has been laid out as a tilemap, I plan to then have the facility to define convex polygons around the level features that are solid. The game will then just check collisions against this list of polygons.
The extra work at level design stage is the only downside. If necessary, I can use a quadtree to save checking against every polygon in the level, although on another recent project I found that this was unnecessary even with hundreds of level polygons provided I did an AABB test first on each poly pair to reject any definate non-collisions.
So next step is to either update the existing generic map editor, or write a new one specific to Pod.