These are just XML so relatively git-friendly. They're needed for the
game and should be syncronised to the version of the code so they
really ought to be checked in.
It's now no longer using the bounding box on objects anywhere, but
we're going to want that soon anyway for culling off-screen entities
so I decided to leave it in.
This fixes an issue where the player could get stuck to an edge when
being aligned to the pixel grid due to the rounded coordinate being
outside an invalid tile but the truncated position being inside. Also
we should be doing it anyway.
SDL2 seems to use some unintialized memory in SDL_Init() so ASAN just
kills the program right away if it's enabled (sad). UBSAN is still
very useful in its own right, though, so makes sense to have an option
to enable only that.
Also changed the game_update() interface to take dt in seconds as a
double (rather than milliseconds as an unsigned integer) as we're now
computing the refresh interval as a double anyway (by querying the
display mode). To my eye (and on my machine), all chunkiness is now
gone; the game feels very smooth.
This fixes an issue where tiles around the right and bottom edges
would not be drawn when vpos was just under a tile boundary. I'm
guessing it wasn't noticable before fixing the frame rate as the buggy
frames were only on-screen for a hilariously short amount of time.