At first I was going to just not bother with the resizing thing, but
then I found out that SDL actually has a scaling function built-in.
So rather than depending on SDL_gfx for this one purpose that never
sees the light of day in practice, I have handed that job over to
that function.
The fake "windowed fullscreen" is less invasive, but it sometimes
causes ugly artifacts and as a general rule isn't really all that
useful.
However, I also defined it in defs.h, so that it can be more easily
changed in the future.
In particular, sizes larger than the background work properly now
(in general; there are of course some things positioned badly still,
but everything updates correctly at any rate).
Ultimately, the following were removed:
* The portrait of Chris on top, which was superfluous.
* The text telling you who you were communicating with. Both superfluous and prone to inconsistencies.
* The button allowing you to return to the list of missions. Instead, you can click anywhere to do so, or just click on the "Missions" button again.
So now, the only thing left preventing 640x480 from being a usable
resolution is the shop. That's going to be a tough one...
It's not perfect, but I honestly just can't be arsed to figure out
how to use the Windows API to do the same thing that pwd.h does.
At the very least, Starfighter can now be successfully compiled for
Windows with MinGW simply by defining the "SF_WINDOWS" environment
variable to 1 (or any other non-empty value). The only downside is
that it uses the current working directory to decide where
.config/starfighter should go, meaning it can't be installed into
restricted directories like Program Files.
gfx_drawLine only supported drawing straight horizontal and vertical
lines anyway, so the method it used was completely pointless. It also
wasn't used anywhere other than gfx_drawRect.
I've made a couple of improvements here:
1. There is now a limit to how much value can be in a single
collectable. This means, most importantly, that there will be
no more 1000 plasma collectables or anything else ridiculous
like that. It also means that bosses now tend to drop a ton of
different collectable objects.
2. Collectables dropped by ships now live longer if a lot of
collectables were dropped. In practice, this only affects bosses;
no normal enemy drops enough to trigger this.
The combined results of these changes are that you're less likely
to get stuck with a useless item when you kill a boss (such as
plasma you don't need) rather than money, and you are more capable
of collecting the huge wads of cash left behind by the bosses that
drop more.