Modern Starfighter starts you in the center, but originally you started
at (200, 200). This matters particularly for boss fights, since since
the off-center start position meant you didn't start in the same vertical
position as the bosses.
Should be harmless since empty strings are ignored in
radio_getRandomMessage, but it's still supposed to be in a form
that uses \n only as necessary; the trailing newline was a mistake.
Fixes#7
Designed to use the game controller API if possible, or fall back
to the regular joystick API otherwise.
This also makes it so that all connected controllers can be used,
rather than just the first one.
Since the original actually constantly had you drain Kline's health
to zero and then re-adjusted it, there were effectively stop points
limiting the amount of damage you could do to the amount designated
for the current stage. This has been simulated by setting the shield
to the proper amount of shield for the respective stage if the
difficulty is DIFFICULTY_ORIGINAL.
That's the right character to pick. It's actually still broken; will
look into more later. Will also need to make it so that it ignores
leading whitespace.
This ensures that series of radio messages are stiched together
properly. An exception was given for the first Kline encounter;
timing stays the same for that one simply to make sure the music
cue isn't ruined.
This is a pretty big one! Someone I know suggested that I should
make the textboxes able to stay on the screen for longer, so I've
added an option for that! In the process I also changed Fire and
Altfire to advance to the next box immediately (rather than skipping
outright), so that if you select a slower speed you can still make
the text go to the next one after you're finished reading one.
This makes mines much less frequent and spreads the asteroids out
much more. The other super-easy mode nerfs don't work on Mars, so
these custom nerfs are necessary to keep the difficulty consistent.
The code caused Kline's systemPower to be restored to full when
disabled. This would have had no effect on the code; the systemPower
variable is only used to add the FL_DISABLED flag when it reaches
0, and restoring systemPower has no effect on this. This might have
been an attempt to make it impossible to disable Kline, but it
wouldn't have worked that way (it might simply not have been noticed
because disabling Kline would take a ridiculous amount of time and
is unlikely to happen without conscious effort).
I had set it this way because it's how version 1.2 behaves, but
having experimented and looked at the 1.1 source code, the way I
changed it to is actually the original behavior! So, now it spreads
as in the original.