No, really, just added the whole thing. This took literally the
entire day. I'm soooo glad it's working now!
Also includes tons of other small fixes I didn't bother to keep
track of.
I considered rewriting it, but I don't think the intro text really
adds anything. Starfighter is an action game, not an adventure game,
so it's just out of place to show a paragraph of backstory before
the game starts.
This is the last of the data files I wanted to remove.
This commit also includes some dialog changes.
I copied some of this code into a comment elsewhere, because I want
to use it as a reference when creating a new save format.
I think this might partly be because of my dialog changes, but this
causes a minor continuity error, since the mission clearly states
that you're rescuing "Phoebe Lexx", and there's also the fact that
the indicator now says "Phoebe" instead of "Target". I figure just
make her name known from the start; the explanation can be that the
ship automatically transmits the name.
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.