Commit Graph

270 Commits

Author SHA1 Message Date
onpon4 61d4c32b81 Fixed an incorrect SDL include. 2016-08-04 20:26:24 -04:00
Richard Smith 65c773cafb changed OS X style SDL includes back to Linux style 2016-08-04 20:58:38 +01:00
Richard Smith 6a165e8f0b Source code changes necessary to compile on OS X. 2016-08-04 16:51:46 +01:00
onpon4 dda76c8fe4 Added a message to make it clearer to newcomers that you can leave early.
The game previously didn't give any clear indication that secondary
objectives are optional. This message should make this feature more
obvious.
2016-06-02 11:19:07 -04:00
onpon4 ff48ca6204 Increased the shield bonus for Nightmare difficulty. 2016-06-01 11:04:45 -04:00
onpon4 ac5b31457b Removed a now unused function. 2016-04-04 21:20:45 -04:00
onpon4 59088cce0c Make mines simply disappear when they time out rather than exploding.
The explosions of mines off in the distance are extremely annoying in
the Mars mission, in particular. There's no real point in them
doing a timed off-screen explosion, anyway; if they just disappear,
the player won't notice.
2016-01-13 16:09:06 -05:00
onpon4 47c8dfd1d9 And thus ends the saga of stupidity. 2016-01-12 14:54:41 -05:00
onpon4 a3afb0a133 Whoops
Just... whoops. *game*.timeTaken, not *engine*.timeTaken. Fixed that...
2016-01-12 14:53:34 -05:00
onpon4 a2e2207a67 Reversed a ruinous change.
Dur... event times can be negative, and yet here I am changing it to
unsigned.
2016-01-12 14:43:42 -05:00
onpon4 3c35f4043d Added installation of starfighter.desktop and starfighter.png. 2016-01-12 14:03:08 -05:00
onpon4 a0f68d722b Fixed type inconsistency.
SDL_GetTicks() returns Uint32, but I was using the long int type,
which could mean signed or unsigned, not to mention any size. Changed
missionCompleteTimer and timeTaken to Uint32 for consistency.
2016-01-12 10:41:42 -05:00
onpon4 e6bd534cdf More magic numbers. 2016-01-11 22:42:45 -05:00
onpon4 c764c4d8b7 Added code to prevent loud sounds from being overtaken by quiet sounds.
This prevents the weird effect where you hear a bunch of sounds of
majorly different volumes starting and stopping. If, for example, you
have several mines exploding nearby as well as several mines exploding
far away at the same time, you will hear the near ones and not the far
ones.
2016-01-11 00:10:55 -05:00
onpon4 0929abf3a3 Added a Y component to audio_playSound, and reduction of volume by distance.
This makes it possible to remove code that made mines that exploded
off-screen completely inaudible.
2016-01-10 23:56:26 -05:00
onpon4 5ba8759804 Increased the chance of the cloak fighter running.
Also fixed the chance in Classic difficulty; accidentally made it
10 times as likely as in the original.
2016-01-10 19:07:16 -05:00
onpon4 1ada79e695 Don't hide the "Load Game" menu. 2016-01-09 22:30:25 -05:00
onpon4 285fb8e614 Made the Continue and Load options not appearing work again.
This must have been screwed up a loooong time ago. Anyway, it now
hides these menu options as it should when there is no autosave
available.
2016-01-09 22:26:31 -05:00
onpon4 9dedf500c8 Adjusted the status screen.
Several pointless lines have been removed, and I've added a workaround
to fix a segfault that was happening when Phoebe or Ursula were not
wingmates yet.
2016-01-09 22:15:28 -05:00
onpon4 edacc25821 Fixed incomplete transition to the new save format.
Had to slightly adjust the save format as well.
2016-01-09 22:00:20 -05:00
onpon4 b66bb4bf98 Replaced the struct dump "save format" with a proper save format.
This format is actually portable, and there isn't a risk of it just
breaking any time the format is changed, since the version number
can be read independently of everything else.
2016-01-09 19:58:07 -05:00
onpon4 290d44386a Treat distance between planets as always 1 if no interception chance. 2016-01-09 10:40:29 -05:00
onpon4 8793aaa780 Added a small chance of getting intercepted in Spirit.
These interceptions only have "dualfighters" on them, since that is
in-line with the normal difficulty of Spirit.
2016-01-09 10:26:15 -05:00
onpon4 0fb3c04b5e Removed the instant teleportation in Spirit.
I understand where this came from; obviously, this was how travel
originally worked, and then the version that made interceptions
possible was added later. But the thing is, making Spirit a special
case causes the interface to suddenly change on you, and that breaks
the flow of the game for no particular reason other than saving a
bit of time. So this special code which causes you to instantly
teleport in Spirit has now been removed. There is still no danger
of encountering interceptions, but I'll be changing that for all
non-Classic difficulties as well in another commit.
2016-01-09 10:13:32 -05:00
onpon4 d5a66ffc01 Changed the text hint for Comms screen to "Missions".
This is more to-the-point. It should lower the learning curve a bit.
2016-01-09 10:06:16 -05:00
onpon4 336c047d8e Removed the unnecessary "INCOMPLETE" text from the Comms view. 2016-01-09 10:04:55 -05:00
onpon4 fa43f2aabe Fixed the experimental fighter not running away from chargers.
This oddity was caused by exactly what I thought it was caused by:
the code assumed that all bullets are created equal, and each bullet
had a 1 in 50 chance of causing the ship to run away. Well, the
charger inflicts so much damage that 50 shots would be a ridiculous
amount of damage for even the experimental fighter.

So now, except in Classic difficulty, whether or not it runs away
is determined partly by how much damage a weapon inflicts.
Specifically, the chance is now the damage of the bullet out of 150.

High-damage weapons are still a useful idea; after all, a 100 damage
weapon is 100 guaranteed damage, even if the fighter is likely to flee.
However, it gets rid of the skewed nature of the fleeing behavior and
prevents the charger from subverting the purpose of the behavior.
2016-01-09 08:01:23 -05:00
onpon4 efb7a135be Some cleanup 2016-01-09 07:50:12 -05:00
onpon4 9104fcaa10 Changed the AI of the executive transport to "evasive".
This makes more sense; it's unarmed, after all. A quick test shows
that it doesn't cause any problems (like making the game annoying).
2016-01-09 07:37:36 -05:00
onpon4 9a474f1416 Some cleanup. 2016-01-08 22:57:06 -05:00
onpon4 ac844d8d54 Removed the "planets" data files.
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.
2016-01-08 21:33:40 -05:00
onpon4 14a9dace7e Let Kline switch weapons on Venus (except in Classic difficulty).
It's a modified version of the weapon switching: if Kline's health
is less than 1500, the spread shot replaces the concentrated triple
shot.

This also keeps Kline with bullet weapons during the third phase.

The main purpose of this change is to make Kline consistent. He now
switches his secondary weapon, and that's about it. The way it was
in the original, it started out much easier than previous encounters,
then it went to slightly easier than previous encounters, then
something completely unlike previous encounters, and finally
something noticeably harder than previous encounters. Now, it starts
out exactly the same as previous encounters, and then gets
progressively harder.
2016-01-08 18:09:35 -05:00
onpon4 66faa897a5 Permit Kline to drop mines in all of his appearances.
I don't understand why there is code to prevent Kline from dropping
mines after his first appearance. So except in Classic difficulty,
this limitation has been removed. He now drops mines in all of his
appearances.
2016-01-08 17:37:18 -05:00
onpon4 54eb5230fe Fixed failure to use left-pointing images for a couple ships.
Whoops!
2016-01-08 17:09:42 -05:00
onpon4 6c52a63bc3 Removed the code that caused you to briefly stop when you finished Ellesh.
This was just really weird-looking and had no particular benefit.
I guess theoretically you can use the couple of seconds to grab stuff
you missed, but in practice, there usually isn't much stuff there.
2016-01-08 16:56:07 -05:00
onpon4 0fb6e85eb6 Changed the target in the Poswic mission to Sid.
Sure, the escort is what you're supposedly after, but it's
invincible, and your real priority is to protect Sid. It helps that
it now says "Sid" when Sid is the target; that should prevent
any possible confusion. :)
2016-01-08 16:43:41 -05:00
onpon4 75029e45ee Fixed being able to get hurt after the mission is over.
There were two problems:

1. Some areas did not have any code to protect against this.

2. In one area that did have such code, it was malformed, and actually
   caused the "no damage" cheat to be negated after the mission was
   completed.

Both have been fixed.
2016-01-08 16:36:20 -05:00
onpon4 a889d43296 Fixed drones and small asteroids being given special alien slots.
This could cause small asteroids and drones to be given labels that
said "Sid", "Phoebe", "Ursula", or "Kline".
2016-01-08 12:10:50 -05:00
onpon4 8de37af9cd A little cleanup. 2016-01-08 11:27:28 -05:00
onpon4 0f6807d4ad Adjusted the price of plasma and rocket ammo.
There are two adjustments here:

First, Classic difficulty now gives these items the same price as
the original (50), which is important because the original made it
very easy to grind by filling up on plasma at interceptions and then
selling it. $25 is a lot more than $5.

Second, for every other difficulty, the price has been dropped down
from 10 to 1. The reason I'm doing this is unlike in the original,
you now pretty much have to routinely fill up on rockets and/or
plasma ammo to use these weapons, and it puts the weapons which
don't need ammo (laser and charger) at an unfair advantage, basically
turning use of rockets into a mistake. By making the prices very low,
you still want to conserve plasma and rockets, but the effect is more
to deprive you of their use later on in the mission than to drain
your money.
2016-01-08 11:13:56 -05:00
onpon4 62d14c57f0 Added special target text for Kline. 2016-01-08 11:09:13 -05:00
onpon4 f8e23ab061 Added special target text when Sid or Phoebe is the target.
This is because it may not be obvious that Sid or Phoebe is the
target now that the indicator for them says their names.
2016-01-08 10:52:34 -05:00
onpon4 e557d9920a Removed the suggestion from the Comms screen that Phoebe's name is unknown.
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.
2016-01-08 10:37:19 -05:00
onpon4 efc2311f7a Added special indicators for Sid, Phoebe, and Ursula. 2016-01-08 10:31:01 -05:00
onpon4 401a306793 Added green versions of arrows for friendly ships. 2016-01-08 09:39:12 -05:00
onpon4 79bbe56849 Replaced the previous arrow positioning with a more simplistic one.
The previous one positioned the arrows based on the difference between
their X distance and Y distance; objects that were further away
would be closer to the center. However, the code was confusing, and
a major practical effect of this was it was impossible to really know
exactly where an object was.

This new, simpler method makes aiming at targets that are off-screen
feasible, and it also utilizes the diagonal arrows.
2016-01-08 09:12:07 -05:00
onpon4 33a92b2294 Removed the code that actively prevented the "Target" text from showing.
It was triggered whenever there was a message being displayed.
Thing is, there's no legitimate reason to do this. It doesn't ever
obscure the radio message, and there wasn't some technical limitation
in place. It just did it... just because.
2016-01-07 23:15:01 -05:00
onpon4 409a2efe07 Updated copyright notices.
Apparently they've all been modified this year now. The earliest
modification date is alien.h, at January 2.
2016-01-07 21:32:40 -05:00
onpon4 e71e3b8a96 Moved the "brief" data files to C code. 2016-01-07 21:18:14 -05:00
onpon4 e7abfe30a6 Fixed the bug that caused mobile rays to shoot bullets.
This was a strange cause, and I wonder why it happened. Quite simply,
there was an assumption in the code that any alien's primary weapon
was a bullet, despite the fact that the secondary weapon code could
handle any weapon, including bullets. I've fixed this by getting rid
of the special primary weapon mechanism; the one for the secondary
weapons is used on primary weapons as well.
2016-01-07 19:01:25 -05:00