Turns out, for all this time, I never enabled FreeType's
mono-hinting.
Now, the English font looks pretty good. I can't say the same for the
Japanese one though - that one looks identical. I guess Noto doesn't
come with hinting data? FreeType's auto-hinter just makes it look
worse...
This will make it easier to integrate into the enhanced branch, and
also improved audio quality slightly (samples are mixed as 16-bit
instead of 8-bit).
The mixer itself is integer-only, but the millibel stuff is still
float-based (I don't know if it's worth adding a 10001-value-long
lookup table to replace it).
Anyway, according to a quick test, this new mixer is significantly
faster than the old floating-point one - rarely going above 100
clock() ticks per callback, with the old one almost always running
above that.
For now, only the SDL2 backend supports it - I'll add the others in
upcoming commits.
This will no-doubt cause problems with the enhanced (lite) branch,
where clownaudio always outputs float samples.
Since Nicalis reobtained the 'Cave Story' trademark back in April,
it looks like we're going to have to go the route of the Wine project
and change what the abbreviation is short for...
Can't Sue Everyone 2?
Clownacy Saga, Episode 2?
Code-Stealing Eyesore 2?
I realised GZDoom is a pretty poor comparison, since that thing goes
out of its way to add stuff like swimming, crouching, and jumping.
Boom specifically prioritised preserving the 'feel' of Doom, which I
think makes it much closer to CSE2E.
This commit changes which variables are static: the Mac (and
presumably the Linux) debug data tells you what variables are static,
by prefixing their names with double_underscores.
The variable names themselves also hint at this: global variables are
prefixed with 'g', and use upper-camelcase, while static variables
use whatever_you_call_this.