The only magic numbers left now are related to positioning, image
sizing, and the remaining "data" files (the "planets" and "brief" ones).
At least, I'm pretty sure that's the case.
Like "scripts", these definitions in text files make absolutely no
sense. They are completely unreadable, and Starfighter's engine is
inflexible anyway.
I'm going to do this for all of the stuff in the "data" directory.
It was obviously an attempt to make Starfighter more flexible
somehow, but it fails at that entirely. More importantly, these
things are both unreadable and easy to make mistakes on. Simple
C code is much easier to read.
The only disadvantage is that recompiling is now needed to change
the "scripts", but considering that they had hidden limits and
no one was making custom missions to begin with, I don't consider
this to be a real loss.
To my recollection, actually, this bug has *always* been present.
At first, I fixed it (the problem was the entry in script13.txt
was malformed), but when I did that, it caused the objective of
destroying Ursula's ship to be considered completed. In other words,
the game doesn't even have code to handle this as a failure
condition! So I've decided to remove it instead. It wasn't that
great of an idea, anyway.
I don't feel it's really necessary, and besides, it's annoying that
due to the way it's implemented it prevents you from doing anything
while it's shown.
The claim made sense with the original graphics, but with the current
graphics replacements, the Firefly and his ship look nothing alike.
To remedy this, the mercenary's dialog no longer calls it an
"upgrade to the standard Firefly". He just thanks Chris and says that
he made it.
In most cases, this has also resulted in limits being lifted. (The
only place I haven't done this is for planets in intermission.cpp,
but I think I'll take away that 10-planet limit as well.)
The source code contains routines to initialise all these resources, but also
functions to load from and store to external files. Support for external files
has now been removed; this removes a potential difference between compiling
with or without USEPAK, and makes it easier to change missions in the code.
Before, all the ships were moving at exactly the same speed, making them appear
static on screen. Now, Chris is moving slowly to the right, but the WEAPCO
fighters are changing velocity now and then, both horizontally and vertically,
never quite reaching Chris but increasing their attempts.
- Explicitly mention all the authors and licenses used for the new graphics
and sounds.
- Remove credits for the old music.
- Mention Valgrind and cppcheck under the Quality Assurance section.
- Add myself as additional programmer, Astrid as replacement graphics and sound
finder.
There were three flags, WF_STRAIGHT, WF_THIN_SPREAD and WF_WIDE_SPREAD,
when only one flag, WF_SPREAD suffices. This makes the code simpler and
gets rid of some duplication.
Put the maximum amount of rockets that can be caried in the description, and
also adjust the amount of rocket pods one has when buying a secondary weapon.
The laser and charge beam will remove all rocket capacity. To soften the blow,
you get at least capacity for 5 rockets when buying homing missile systems,
or 10 when buying normal missile system.