Commit Graph

541 Commits

Author SHA1 Message Date
onpon4 e258921987 Moved all "script" files to C code.
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.
2016-01-02 22:37:44 -05:00
onpon4 d911426c06 More cleanup. 2016-01-02 17:37:19 -05:00
onpon4 85de61e2cd Changed struct definitions to use typedef (C style) 2016-01-02 17:15:50 -05:00
onpon4 ce94477b70 More cleanup. 2016-01-02 16:59:48 -05:00
onpon4 651a7f55fb Did some more cleanup, removing more "shape" magic numbers. 2015-12-31 10:47:27 -05:00
onpon4 1d02b3c71e More cleanup. 2015-11-20 14:11:12 -05:00
onpon4 17b5f60958 More cleanup. Also rewrote the method of frame delaying a bit.
I rewrote the method because what it was doing was so confusing, I
couldn't figure out whether it actually worked right or not. I think
it did, and it's only 2/3 of a milllisecond anyway (not noticeable
at all), but this new way of writing it is much clearer.
2015-11-06 21:35:07 -05:00
onpon4 7694d668ff More cleanup. 2015-11-06 19:43:34 -05:00
onpon4 4bdf871e66 drawString -> screen_renderString 2015-11-06 19:36:20 -05:00
onpon4 67d464433d Removed the second "drawString" function.
It wasn't very useful. All it did was offer the option to center
text and take away the option to wrap text. I've moved the text
centering option to gfx_renderString and replaced all uses of this
function with that function.
2015-11-06 10:12:57 -05:00
onpon4 7c67112a8b Some more cleanup. 2015-11-03 20:26:56 -05:00
onpon4 cce6d11510 More cleanup. 2015-11-02 17:53:05 -05:00
onpon4 9e6ff10c57 More cleanup. 2015-10-26 20:07:31 -04:00
onpon4 134a52e5f0 Some more cleanup. 2015-10-11 12:04:52 -04:00
onpon4 c68cb3f920 More cleanup. 2015-09-26 08:49:21 -04:00
onpon4 0f10c6d5c7 Converted the three "collision" functions to four differently-named ones.
The fourth is simply a duplicate of ship_collision for bullets. A
bit redundant, but I figure it's clearer of a definition. Besides,
this opens up the door to possibly making bullets a different struct
type in the future, if that turns out to be desirable.
2015-09-25 16:28:09 -04:00
onpon4 8375c36433 Added a patch by Guus Sliepen fixing mouse cursor position. 2015-07-05 00:31:36 -04:00
onpon4 9a211d773c More reorganization. 2015-06-20 11:59:09 -04:00
onpon4 1c833b1818 More reorganization.
Added colors.cpp and colors.h to contain some of the stuff in
graphics.
2015-06-20 11:31:41 -04:00
onpon4 3850f8e946 Removed "asteroid collision damage" message. 2015-06-16 10:36:42 -04:00
onpon4 e95f55565c Improvements to text display.
Starfighter uses an absurdly crude method for wrapping text which
basically fails very frequently when large words are chosen. The only
reason it got away with it is because text strings don't vary. Well,
I've been quite annoyed by having to test for this and rework my
text so much, so I've added in a secondary system: if it's really
close to the edge, and the next three characters are going to be
letters, it adds a hyphen and moves on to the next line. This still
isn't 100% fool-proof, but it should catch most problems.

Also removed the "temp fix" which shifted the letters by a pixel in
code, and just shifted them in the actual image. I don't understand
why the "temp fix" was there in the first place, to be honest.
2015-06-15 23:56:20 -04:00
onpon4 6fa0321d31 Edited dialog.
Mainly to better match Chris's new portrait.
2015-06-11 12:51:57 -04:00
onpon4 30ace4d67b Returned the obscene power of the original charger to origial difficulty.
Also made some tweaks to the code that displays the charge shots
to make it look a little better.
2015-06-09 01:06:26 -04:00
onpon4 5964066969 Sell for only half price in original difficulty. 2015-06-07 22:51:16 -04:00
onpon4 9be21cbd3a Made it possible to hit the Uranus boss via its wings.
The idea is clearly supposed to be breaking the boss in two and then
destroying the halves, so it makes no sense for the wings you break
off to also act as shields, which they did. Pretty much all this did
was cause a lot of shots to be wasted.
2015-06-02 12:43:06 -04:00
onpon4 51ae0dc659 Made *all* enemies face forward in Ellesh mission.
I don't really understand why this code was implemented only for the
boss and not for anyone else. My only guess is it was designed to make
the level harder by letting enemies fire backwards while you can't,
but mine-droppers can already effectively do that.

The primary reason I decided to make sure they all face forward is I
was finding it to be nearly impossible to get through this level in
Nightmare difficulty; those ships being able to shoot backwards is
a HUGE advantage, because it's almost impossible to position yourself
in an area that's safe.

It may be that the unfair previous behavior was put in to compensate
for the AI's frankly asinine movement pattern. The random movement is
fine most places, but here, it's blatantly obvious that it's random,
and the enemy ships pay a steep price for it. What the ships should
be doing is positioning themselves so that they end up shooting or
dropping mines at the player. But the boss itself also has such a
positioning problem anyway; that should be properly fixed in the
future, so I might as well do the same for the smaller ships when
that time comes.
2015-06-01 20:09:33 -04:00
onpon4 c6735cd88b More cleanup 2015-05-28 06:51:45 -04:00
onpon4 533d74447f Made auto-pausing an option. 2015-05-21 18:49:04 -04:00
onpon4 e4664b9b1a Revert "Removed the game's automatic pausing when window focus is lost."
This reverts commit d4ff9213b5.
2015-05-21 18:30:23 -04:00
onpon4 46a80eb30b More reorganization. 2015-05-20 19:49:37 -04:00
onpon4 f306825636 Removed the "nomove" and "nofire" cheats.
I honestly don't understand why these cheats were here. Preventing
enemies from moving breaks some missions and doesn't do anything
useful, and preventing enemies from firing is basically no better
than the invincibility cheat (and might even be worse, if it applies
to Sid; I didn't check).
2015-05-20 19:41:43 -04:00
onpon4 3559106ff5 Allow skipping the credits with the fire and alt fire buttons. 2015-05-20 10:53:10 -04:00
onpon4 d4ff9213b5 Removed the game's automatic pausing when window focus is lost.
This feature is just annoying if for some reason you want to leave
the game to do something else while you wait for something. That
would normally be a defect, but I can't count the number of times
I've been rushing through to get to a particular area, using cheats,
and had to wait for some mission condition, and this is only made
worse by not being able to do some other work while I wait for it.
2015-05-20 10:43:04 -04:00
onpon4 1c42d07906 Made the ammo cheat work on the laser and charge cannon.
The laser never overheats with infinite ammo, and the charge cannon
fires at full blast immediately.
2015-05-20 10:39:30 -04:00
onpon4 8698125f5f In original difficulty, no moving the camera on autoscrolling missions. 2015-05-20 10:27:21 -04:00
onpon4 87685a69de Doubled the amount of money pickups give you in "original" difficulty.
This is to compensate for the loss of the money bonus that used to
be there, to make the money you get more or less the same as in
version 1.2.
2015-05-01 20:04:51 -04:00
onpon4 98a74e0d44 More code cleanup. 2015-04-30 18:51:26 -04:00
onpon4 a806de8513 Fixed failure to redden ships.
This long-standing bug was caused by using blending when trying to
copy an image, though for some reason it was inconsistent. Thanks to
everyone on the SDL mailing list for helping me solve this one!
2015-04-29 21:24:01 -04:00
onpon4 425d3a385b Some cleanup. 2015-04-26 22:38:45 -04:00
onpon4 bca1c618f0 Minor fix 2015-04-26 18:49:18 -04:00
onpon4 6ede2722a0 Pause music when pausing the game. (Untested.) 2015-04-26 07:45:58 -04:00
onpon4 60968c7b0e Some more touch-ups. 2015-04-26 07:37:30 -04:00
onpon4 95d31b8039 Removed now empty debris.cpp and debris.h. 2015-04-24 22:45:50 -04:00
onpon4 75990d42f8 Moved stuff in comms.cpp to intermission.cpp as static functions. 2015-04-24 22:40:50 -04:00
onpon4 59a15eb6f3 Removed the shock damage messages, fixed a mistake. 2015-04-24 16:37:55 -04:00
onpon4 5982fcc0d8 Some reorganization. 2015-04-24 16:27:07 -04:00
onpon4 c002b97d96 Added some fake difficulty to the Dorim level.
The way it was previously, you always knew exactly where the WEAPCO
scientist was. I don't remember if this was the case in the original
game (I don't think it was), but regardless, this makes the mission
seem incredibly short and easy, and it ends up centering on the
secondary objective rather than the primary objective. Now, you have
to search through all the asteroids until you find the right one,
and you have to pay close attention to explosions. Collecting ore is
just something you do along the way.

It may be fake difficulty, but after all, tropes are not bad.
2015-04-14 18:55:15 -04:00
onpon4 fdd780ca0f Fixed a duplicate variable.
The only effect I noticed was creating asteroid explosions in the
wrong places, but it could be that it had far more disasterous results.
2015-04-14 18:50:07 -04:00
onpon4 dd6723ffc2 Fixed division by 0 error 2015-04-14 17:15:06 -04:00
onpon4 96fb688601 Changed player's plasma weapon to spread by default. 2015-04-08 20:58:21 -04:00
onpon4 ae15b66e60 Fixed shop bug which caused loss of super charge. 2015-04-08 20:33:53 -04:00
onpon4 5a1954dd24 Revert "Implemented an old super charge bug as a feature in "original" difficulty."
This reverts commit 84978b6c6b.
2015-04-08 20:26:59 -04:00
onpon4 84978b6c6b Implemented an old super charge bug as a feature in "original" difficulty.
The bug in question caused the super charge to be stripped away when
you collected powerups; each powerup would limit that aspect of your
weapon to its maximum. This put a limit on how long you could keep the
super charge, so I've added it back in for "original" difficulty.
2015-04-08 20:09:43 -04:00
onpon4 c0f3310376 Changed plasma spread to the original version.
I don't know why it was changed, but the changed version caused
full spread rather than partial spread with the triple shot, and it
also caused the quaduple shot to be arguably worse than the triple
shot.
2015-04-07 21:14:30 -04:00
onpon4 e5ed96e1c6 More cleanup. 2015-04-07 19:16:46 -04:00
onpon4 4775b3fad4 Some code cleanup. 2015-04-07 16:09:17 -04:00
onpon4 fe96584d7f Added Y as a possible fire button (for QWERTZ layout users) 2015-04-07 15:19:14 -04:00
onpon4 3346af8299 Proper fix. 2015-04-05 17:26:37 -04:00
onpon4 970a6fda7f Fixed a formatting mistake. 2015-04-05 16:21:04 -04:00
onpon4 0e1cd4b86f Changed timeTaken from int to long int.
This guarantees that it will be able to store at least about 68 years.
2015-03-31 15:23:17 -04:00
onpon4 47fb2dc82a One more flag that has to be long 2015-03-31 13:15:08 -04:00
onpon4 e0809c02b0 Fixed a potential compatibility problem.
The plain int type is only guaranteed to be at least 16 bits, and
yet the flags variable was expecting at least 22 bits. This turns
out to be true for x86 and x86-64 systems, but to ensure compatibility,
the variable has been changed to an unsigned long int. Also added
the "L" suffix to flags that were more than 16 bits.
2015-03-31 13:02:09 -04:00
onpon4 08260b1d6c Minor changes 2015-03-30 07:52:44 -04:00
onpon4 826b3dfe5c Fixed controls being stuck, but still on, at the end of Venus.
Now the controls are cleared, so the intended effect always happens.
2015-03-29 16:49:33 -04:00
onpon4 0a08df38f0 Removed some odd limits on what certain aliens could drop. 2015-03-29 15:36:25 -04:00
onpon4 9f7809de1c Made the mines in Mars more sparse and numerous.
There. Together with spreading out the asteroids, this has the effect
of getting rid of the sort of boxed-in feel this mission originally
had, and preventing the mission from being beaten simply by going
up or down forever.
2015-03-29 14:27:29 -04:00
onpon4 f9da05655d In the Mars mission, create asteroids more sparsely. 2015-03-29 14:18:19 -04:00
onpon4 5019244da1 Added an enum for missions/areas.
Eliminating another set of magic numbers, and God, that was tedious.
2015-03-29 13:11:12 -04:00
onpon4 576d254e4a Replaced rrand function with RANDRANGE macro. 2015-03-29 10:19:53 -04:00
onpon4 b00bf9d7b2 Fixed an infinite loop. 2015-03-29 08:58:03 -04:00
onpon4 139fe8bd9e Some small tweaks/fixes. 2015-03-28 22:33:11 -04:00
onpon4 4a72111a46 Adjusted shop prices.
I noticed that in "original" difficulty, plasma upgrades are basically
prohibitively expensive, which is not at all like the original. To
fix this, I've given that difficulty the original prices for those.
I've also slightly reduced the normal cost of permanent upgrades.
2015-03-28 19:52:03 -04:00
onpon4 388ffcc9c5 Fixed shield bonus being unavailable in Original difficulty. 2015-03-28 16:50:20 -04:00
onpon4 6dd3ac1919 More added to "original" difficulty.
In particular:
* The charge cannon in that difficulty now behaves as originally.
* Cash is now rare, not nonexistent, on interceptions in that difficulty.
2015-03-28 13:59:33 -04:00
onpon4 5155a8ac68 Fixed spacing/indent problems. 2015-03-28 13:18:37 -04:00
onpon4 e105d6a1cc Added a new "original" difficulty.
This difficulty is meant to imitate the original Project: Starfighter
as closely as possible, for purists.
2015-03-28 09:51:49 -04:00
onpon4 7e69ee79ad Replaced the Sourceforge link in various places with a Savannah link. 2015-03-26 22:25:12 -04:00
onpon4 af11caac2b Changed the "counter" variables to the proper type (Uint32). 2015-03-24 18:55:09 -04:00
onpon4 1567595def Changed all the various unnecessarily specifically defined types to "int".
Most of these were defining various integers as char types, probably
in the naive belief that this is necessarily good because it uses less
RAM. There were also several unnecessary unsigned ints, though.
These have all been changed to just "int", so the compiler can decide
exactly what type to use.
2015-03-24 18:51:12 -04:00
onpon4 b28effb17d Tweaked handling of powerups.
Now, rather than powerups being replaced with ammo, their collection
effect has been changed from "make the plasma ammo at least 50" to
"add the powerup's amount to the plasma ammo" (i.e. powerups are also
treated as plasma ammo). This left the initial ammo of a powerup a
little low, so to compensate, I increased the collectValue of the
transport ship from 30 to 40.

Additionally, transport ships now show up in interceptions again,
but powerups, when collected, do *not* increase ammo. If you have
no ammo at the time, the powerup does nothing. If this happens with
the Super Charge, you get a humorous message.
2015-03-23 21:33:15 -04:00
onpon4 6ea311a046 Small tweaks 2015-03-20 13:05:14 -04:00
onpon4 4d8ceec9c4 Small tweak. 2015-03-17 22:09:00 -04:00
onpon4 f124b71310 Substantially increased the chance of the experimental fighter appearing.
It previosly spawned half of the time. Now it spawns 4/5 of the time.
This makes waiting for it to show up so you can fight it a lot less
painful, even if it doesn't make a whole lot of sense.
2015-03-17 22:04:58 -04:00
onpon4 ec7fb908a3 Fixed failure to sell double rockets when buying another special. 2015-03-17 19:20:04 -04:00
onpon4 ad8a2f2ad9 Replaced various "limit" functions with LIMIT and LIMIT_ADD macros.
This is mainly because the old "limit" functions were all restricted
to certain types, which is incredibly silly given how simple they are.
Macros are much simpler, and a warning gets raised if they're used
improperly with multiple types, anyway.

In the process, I also found and fixed a bug: it seems the original
author intended for escaping enemies to gradually accelerate to
fleeing speed, but the low value was indicated as the max value, and
the way limitFloat was written, that caused the max value to be used
(it was supposed to reduce the speed to a minimum of -15, but it
instead effectively assigned the speed to -15). It might be a good
idea to re-implement the old buggy behavior intentionally; depends
on whether the acceleration of jumping looks better or worse than
just immediately going to jump speed.
2015-03-17 19:00:13 -04:00
onpon4 05c370feb4 Capitalized "max" and "min" macros. 2015-03-17 16:54:00 -04:00
onpon4 6610cddeac Fixed some problems with the charge cannon.
Specifically:
- When an enemy is hit, its damage is reduced, not its lifetime.
- When the shot's lifetime ends, it no longer explodes.
2015-03-17 13:03:20 -04:00
onpon4 717d56755c Moved fireRay to the ship module.
Also removed a really bad convention where a variable called "anEnemy"
was used, rather than just "aliens[i]".
2015-03-17 10:34:29 -04:00
onpon4 f58e15615b Changed "DAMAGEOWNER" flag to work when damaged, rather than destroyed.
This change in behavior has some very significant effects:

1. Damaging a child alien isn't rendered meaningless if you are
   primarily attacking the owner. This could be especially annoying
   with the miner bosses, which have tiny parts that are completely
   impractical to aim at.
2. Again, for the miner boss: previously, you couldn't see how much
   total health the ship had; the health bar only uselessly showed
   whether or not you defeated half of the ship (which you could
   already tell by looking at it). Now, the health bar tells you
   how much more damage you have to do in total.
2015-03-14 21:06:37 -04:00
onpon4 b44037f05a Fixed cash being made available on interceptions in Nightmare mode. 2015-03-13 19:11:14 -04:00
onpon4 645513cbf9 Loop the death music. 2015-03-13 19:02:28 -04:00
onpon4 2a0234c300 Added ship module, moved fireBullet to it (as ship_fireBullet).
For functions that are used by both aliens and the player.
2015-03-13 10:10:58 -04:00
onpon4 8842d7775b Removed the code that prevented transports from spawning based on player state.
Since it now gives you money if you're not able to power up, there's
no point in preventing it from spawning when you can't power up.
2015-03-12 23:12:21 -04:00
onpon4 6f768c88a6 Added some starting money for nightmare difficulty.
As a result, you're not stuck with the weakest weapon in the game
anymore. You have to choose between the double rockets, plasma
permanently upgraded in one area, plasma temporarily upgraded in
some areas, or some combination.
2015-03-12 22:14:07 -04:00
onpon4 932341f0e6 Better method of finding the user home directory. 2015-03-12 12:38:17 -04:00
onpon4 ea33be4591 Removed the "LINUX" definition.
This is silly. The libraries used have absolutely nothing to do with
"Linux". They're POSIX standard libraries, and will work just as
well on Mac OS X and BSD. The actual code might need to be replaced,
but in any case, this isn't something to limit to "Linux" systems.
2015-03-12 11:41:23 -04:00
onpon4 1834011314 Organization stuff 2015-03-11 15:36:42 -04:00
onpon4 199ee7a58b Changed horizontal location bullets are spawned.
The previous method was inconsistent between the left and right
directions; it placed the left edge of the bullet on the left edge of
the ship when going to the right, and in the center of the ship when
going left. This was barely noticeable with small ships, but more
noticeable with large ships. The method also sometimes made the backs
of bullets visible behind the smaller ships, which looked kind of
ugly.

Now, the back edge of the bullet is consistently placed in the center
of the ship.
2015-03-11 15:11:06 -04:00
onpon4 1c73a37c8e aliens.{cpp|h} -> alien.{cpp|h} 2015-03-09 19:32:03 -04:00
onpon4 d08da08f85 Moved alien_destroy to aliens module. 2015-03-09 09:36:24 -04:00
onpon4 ce5df0013d Some tweaks.
Mostly to the charge cannon, but also to Kline.
2015-03-08 22:01:37 -04:00
onpon4 31a8383f90 Changed the way Kline works.
Kline previously had a maximum of 500 or 750 health, and uses some
hacks to cause it to flee just as it was destroyed, and to advance
to new stages in the final battle.

I've replaced this with a much larger amount of health, and progression
being based on how much health he has.

Also some other stuff.
2015-03-08 20:59:33 -04:00
onpon4 982d39278c Removed the dialog from the start of mission 26.
I feel it's unnecessary, and it can be an annoying wait if you're
struggling with Kline.
2015-03-08 17:56:38 -04:00
onpon4 912ff8b86c Modified script for mission 11 to better match the music. 2015-03-08 16:19:41 -04:00
onpon4 28cc1fcc6d Updated audio module. 2015-03-08 10:38:58 -04:00
onpon4 f54579a41f Reverted amount of stuff cloak fighter drops. 2015-03-07 22:41:15 -05:00
onpon4 da35b44179 Brought Kline's health in the final battle back down.
The increase worked well in mission 25, but not so much in mission
26.
2015-03-07 17:13:37 -05:00
onpon4 4b3cb9c1d3 Fixed some problems. 2015-03-07 15:34:47 -05:00
onpon4 0baa48e7ef Don't try to home in on immortal enemies.
It's annoying when this happens. There's no point in attacking an
immortal enemy.
2015-03-07 12:34:07 -05:00
onpon4 22fcdae8cc Several adjustments for difficulty purposes.
Started out adjusting prices, then ended up doing other things
while testing. Committing this now before I start doing other
random stuff!

But all of the changes are related to balancing difficulty, mostly
with prices, except for a couple bugfixes in the shop. Most notably:

* Ammo now costs $10, not $50. You no longer have to worry about
  saving ammo quite as much as a result.
* Plasma upgrades' cost is now calculated differently, and the result
  is slightly lower prices than before.
* Easy mode now grants the player more max ammo than other difficulties.
* Increasing max plasma ammo now costs less at the start, and increases
  in cost faster.
* You increase max plasma ammo by 25 at a time, not 10. (10 was just too
  small of a number.)
* Destroying enemy ships no longer gives you money. I found that, even
  in hard mode, I had *way* too much money coming in, and this cuts it
  down substantially. It also makes the shield bonus at the end of missions
  much more significant. To compensate for the loss of massive bonuses
  bosses used to give, these bosses now drop a lot more stuff.
* Kline has decreased health in his first encounter, and increased health
  in his last two encounters (the numbers have been reversed).
2015-03-07 12:19:35 -05:00
onpon4 a3efbc06cc Substantially increased the cost of plasma upgrades.
I feel these were extremely underpriced. $1000 for triple bullets?
That's dirt-cheap! Even in hard mode, I have no trouble getting that.
2015-03-07 09:42:24 -05:00
onpon4 9974848ce8 Moved some things. 2015-03-06 23:18:31 -05:00
onpon4 37befa8d3c Automatically sell things that are removed when buying new things.
Previously, when you bought something that took the place of something
you already had, such as buying a new secondary weapon, the old one
was just discarded. Now, it is sold, so you get money back for it
(the same as if you had manually sold everything).
2015-03-06 19:51:25 -05:00
onpon4 604b8644b5 Give the player full price when selling, not half price.
All the half-price penalty does is punish you for upgrading early
when it turns out that you need to change weaponry.
2015-03-06 16:30:33 -05:00
onpon4 09e1f1f72e Some adjustments to weapons.
* Modified the upgrade limits, to both be uniform and allow upgrades for
  every factor. (In fact, each one can be upgraded exactly once now.)
* Gave triple-spread weapon double damage.
* Micro rocket damage down from 7 to 6. Total damage is now equal to
  double rockets.
2015-03-06 16:25:12 -05:00
onpon4 dad8a41114 Improved shop code. 2015-03-06 15:22:10 -05:00
onpon4 19936f67c9 Substantially reduced the amount you can upgrade your plasma cannons.
I've tested this a lot, and I think these are good numbers to go by.
Plasma damage has been limited the most, because it is the upgrade
that quickly breaks the balance of the weapons, making the plasma
cannon the obviously most powerful weapon. I don't want this; the
powerful weapon should be the secondary weapon, while the plasma
cannon is the fast-firing weapon with much more ammo.

Basically, I want to make a tactic I found myself using, which was
to carefully keep my plasma power at maximum and take out most
enemies in one plasma shot, obsolete. As a result, missiles should
now be much more cost-effective (because even a single missile's
power of 15 greatly exceeds plasma's maximum power of 3*2=6).

None of these reductions in limits apply to easy mode; that mode
still has the old limits of 3 for min and 5 for max.
2015-03-06 12:36:02 -05:00
onpon4 cbfd6ff153 Make permanent upgrades cost more when you don't have the temporary ones.
The way it was previously, it was tactically beneficial to ignore
temporary upgrades, if you were going to do a permanent upgrade to
that level anyway. This is silly. Now, you don't lose anything by
making the temporary upgrade first. You just get lesser access to
the upgrade earlier on.
2015-03-06 11:48:45 -05:00
onpon4 50122bb0ef Don't charge more for increased firing rate.
I don't really understand why the original developer felt that
increased firing rate was so superior to the other upgrades as to
justify a far more inflated cost. Frankly, I find this upgrade to
be *inferior* to the power and output upgrades, for two reasons:
one, it doesn't increase the amount of damage inflicted per second
much; two, it increases plasma ammo usage as well, whereas the output
and power upgrades have no effect on plasma ammo usage. If anything,
firing rate upgrades should be *cheaper*, not more expensive!
2015-03-06 11:36:08 -05:00
onpon4 8a8da04560 Don't restrict enemies from passing through other enemies.
This was inconsistent and had no particular benefits. The only minor
benefit I can see is that it prevents smaller enemies from hiding
inside bigger enemies, and in my test run through Spirit, this only
happened once. Not at all significant compared to how incredibly
awkward the aliens look when they're acting as if they can't move
through other ships.

This commit also includes more function name changes and other minor
style fixes.
2015-03-06 09:37:21 -05:00
onpon4 7ed2d1a991 More name updates... 2015-03-05 10:47:30 -05:00
onpon4 3f4c3b894a Increased the damage of micro rockets.
3 damage? Really?! No wonder this weapon felt so weak compared to
the double rockets!

I've increased the damage to 7, which causes the total damage of the
weapon to be 35 (slightly more than the total damage of the double
rockets, which is 30).
2015-03-05 08:19:44 -05:00
onpon4 9efaff2783 Started renaming functions.
I'm going to completely reorganize this absolute mess of a codebase.
First thing is to fix the names so that it's more obvious what files
they're defined in. Second thing is to move around some functions,
and rename some of the cpp and h files, to organize them better.
I'm doing these both at once.
2015-03-04 21:30:23 -05:00
onpon4 aa187ef5f7 Prevent inclusion of headers multiple times, on an individual level.
Previously, Starfighter depended on a single check in Starfighter.h
to prevent this. Now, the proper code is in all header files.
2015-03-04 09:11:04 -05:00
onpon4 60783849e4 Removed the extro text from the credits.
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.
2015-03-04 08:20:11 -05:00
onpon4 3d1ad2b674 Autosave when changing planets and when buying/selling.
Previously, it just saved after completing a mission, so it wasn't
something you could really rely on. Now it saves every time something
changes.
2015-03-03 19:28:15 -05:00
onpon4 cc6989328d Fixed the ammo limit of double missiles. 2015-03-03 09:25:32 -05:00
onpon4 87f67e02fa Added Sound and Silence music track.
Also made the first mission always play the same music.
2015-03-03 01:08:47 -05:00
onpon4 1f2ef8ac50 Dedicated autosave slot + much improved menu code.
I found it kind of odd to be able to manually save to the autosave
slot, *and* have no reliable way to even know what the autosave
slot is. I noticed that it's an actual problem when my brothers
played Starfighter; one of them used an autosave slot, and the
other unwittingly ended up erasing the first one's save because of
this. To fix this, I have replaced the behavior of allowing the
player to define a slot as autosave, with a dedicated autosave
slot.

While I was there, I had no choice but to vastly improve on this
game's *atrocious* menu system. Granted, I didn't do much more
than replace the magic numbers with enums, but it makes the code
much more clear and more easy to edit.
2015-03-02 23:32:48 -05:00
onpon4 39254f42bb If a powerup is currently useless, replace it with plasma ammo. 2015-03-02 21:21:31 -05:00
onpon4 eef98d1795 Changed the usual music volume to match the usual sound effect volume. 2015-03-02 10:51:17 -05:00
onpon4 cfeac68b36 Updated joystick controls to work well with most gamepads.
All gamepads I've come across work OK with button 2 or 3 as the primary
button, and button 1 or 4 as the secondary button. For the rest,
basically invariably, buttons 5 and 7 are the left shoulder buttons,
buttons 6 and 8 are the right shoulder buttons, button 9 is "Select"
or "Back", and button 10 is "Start". Based on this, I've changed
the gamepad controls to something that should work for most gamepads.

Also fixed some bad HTML in the documentation, and removed the
build instructions from there (they will soon be obsolete; I'm
working on replacing the hand-made Makefile with GNU Autoconf).
2015-03-01 19:59:27 -05:00
onpon4 9959c47f98 Updated copyright notices on all files based on git-blame. 2015-03-01 15:37:32 -05:00
onpon4 288d96a39b Include SDL headers properly.
Using <SDL/SDL.h>, or in this case <SDL2/SDL.h>, and others like this
is not the proper way to include SDL headers. The proper way is to
pass the -lSDL2 flag to the compiler. The place I put it might be
awkward, but I'm planning to replace this hand-written makefile with
Autoconf/Automake scripts, anyway.
2015-03-01 14:26:14 -05:00
onpon4 23d95f99b6 Fixed a problem. 2015-03-01 04:48:47 -05:00
onpon4 23a92bb594 Define compile-time options in defs.h, unless already defined. 2015-03-01 04:30:11 -05:00
onpon4 8c51811b3e More style corrections 2015-02-28 21:49:56 -05:00
onpon4 6d939729a3 Minor style corrections 2015-02-28 21:49:06 -05:00
onpon4 f620334510 Caused charge cannon damage to be reduced in a different way. 2015-02-28 20:20:36 -05:00
onpon4 224b3ea8b1 Increased max missiles for double homing to 15.
It's incredibly silly for it to be 10; what's the advantage of the
double homing missile launcher over the regular homing missile launcher
otherwise? It's just much slower and less versatile. Now it should
be slightly better, because you can effectively shoot 30 missiles
total, instead of just 20.

(Micro homing missiles are different; the advantage of having several
weak missiles instead of a smaller numer of strong missiles is
actually quite significant.)
2015-02-28 19:06:11 -05:00
onpon4 98bd62be46 Made the multi-homing missiles cheaper.
These weapons are severely overpriced. They should be expensive,
but not *that* expensive.
2015-02-28 19:01:18 -05:00
onpon4 901000245b Changed Klein's position in the final battle.
And something else I don't remember.
2015-02-28 18:56:24 -05:00
onpon4 2bac42ce61 Don't spawn transports if you can't benefit from bonuses. 2015-02-28 15:22:27 -05:00
onpon4 86a8ca4efa Fixed Uranus boss being placed right on top of you.
Such that it's riding Uranus, you could say. Unfair and annoying.
2015-02-28 12:34:48 -05:00
onpon4 1c691323d0 When you move slower or faster in mission 18, don't make enemies do the same. 2015-02-28 12:10:51 -05:00
onpon4 03dfdd69fb Removed enemy ships with missiles from the cargo capture mission. 2015-02-28 10:32:20 -05:00
onpon4 81663aca52 Fixed not being able to complete missions after destroying interceptions.
There was a check that was supposed to prevent completing missions on
death, but it also prevented completing missions after an area was
finished. This was in particular a problem in interceptions, where
rescuing slaves after destroying interceptions didn't have any effect
on the slave rescue mission.
2015-02-28 10:03:27 -05:00
onpon4 2eaa3b94c2 Completely eliminate the chance of grinding at interceptions.
It was previously just ineffective. Now it's impossible.

The reason I'm doing this is when you *can* grind (in this case, by
constantly getting free plasma and selling it), it kind of feels
like an obligation to do so.

It's still possible to grind within missions whose progress depends
on your pace, which aren't timed and keep generating more enemies
until you win. Namely: the missile boat mission, the miner mission,
and the third boss. (There might be others.) However, grinding in
these situations is quite dangerous and likely to take away the much
larger shield bonus at the end, and plus if you mess up when trying
to do this you're set back quite a bit, so I think these are sufficiently
worthless activities that no one will do them. (I never did.)
2015-02-28 09:45:26 -05:00
onpon4 cc68479156 Deny the Supercharge on bosses, except when on easy difficulty.
A supercharge at this point can suddenly make bosses much easier
(especially the case with the Star Killer). This kind of takes away
the tension, so it's undesired. (It's fine for Easy difficulty,
because it's possible to take in a Supercharge from an earlier level
anyway.)
2015-02-28 09:22:15 -05:00
onpon4 edda015169 Fixed shop's min rocket ammo for double/micro missiles. 2015-02-28 08:47:26 -05:00
onpon4 91fa93b448 Reduced charger's max charge, make it fire when it reaches max.
The original charge cannon is so overpowered it's ridiculous. The
strongest weapon in the game, unlimited ammo, and the only setback
it has is that you need to charge it a bit. The lack of balance
obsoletes the laser weapon, which is fine, but it also obsoletes
homing missile weapons, *including* ones that are newer and more
expensive than the charge cannon!

Now, it's much more balanced. You actually need to shoot the thing
before it hits max (or have your target in sight when it does),
rather than being able to just hold the button at max forever and
release when optimal like you previously could. Basically, the charge
cannon is still the weapon which does the most damage, but it's now
much harder to use. Incidentally, not only should homing missiles
be a sensible option now, even the laser cannon has a place after
the charge cannon becomes available.
2015-02-28 08:36:04 -05:00
onpon4 26a82a6385 Some code cleanup.
Fixed some cases where I put spaces instead of tabs earlier, and
changed all cases of "weapons[0]" with "weapons[W_PLAYER_WEAPON]".
2015-02-28 08:15:53 -05:00
onpon4 71abee2a16 Fixed camera jerking in a direction really fast. 2015-02-27 23:14:33 -05:00
onpon4 ee9ad14584 Always show normal engine when max shield is 1. 2015-02-27 22:22:27 -05:00
onpon4 66c413f913 Don't drop shield bonuses in Nightmare difficulty. 2015-02-27 22:16:53 -05:00
onpon4 c9fb4e793c Remove the Super Charge effect after leaving battle, unless on easy mode. 2015-02-27 22:03:06 -05:00
onpon4 d44f3f9fcc Money earned from kills now counts toward collection missions.
This prevents the bizarre situation in these missions where avoiding
money allows you to get more money because of the mission never ending.
2015-02-27 20:09:07 -05:00
onpon4 01b5b73dba Fixed defaulting to "easy" difficulty. 2015-02-27 19:52:55 -05:00
onpon4 c03c2f404c Added Enter as a possible fire key.
Not meant for use during actual gameplay, but rather for the menus.
2015-02-27 19:23:19 -05:00
onpon4 b87a432653 Make cargo indestructible in easy difficulty.
Avoiding destroying the cargo is rather tough, so it's really
not appropriate for easy difficulty.
2015-02-27 18:45:21 -05:00
onpon4 98da910493 Added some buffs for easy difficulty and some nerfs for nightmare difficulty. 2015-02-27 18:11:59 -05:00
onpon4 d4d64dda6b Corrected bad use of fscanf.
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.)
2015-02-27 17:59:25 -05:00
onpon4 e6c59d2a24 Some cleanup, bumped version number. 2015-02-27 14:53:23 -05:00
onpon4 e6f8b3a65f Removed support for the old cheats.
It was broken, and I don't think it's worth fixing.
2015-02-27 13:35:47 -05:00
onpon4 a5aaba379f Updated cutscenes, fixed bug with scrolling levels 2015-02-27 09:30:30 -05:00
onpon4 5965f44bb1 Made camera centering more gentle. 2015-02-27 01:10:27 -05:00
onpon4 8e753d9525 Added code to center the camera when not moving. 2015-02-27 00:26:29 -05:00
onpon4 4a9c99f4bc Fixed using smx where I should have used smy. 2015-02-26 23:31:26 -05:00
onpon4 02c93d8b52 Added a separate constant for each view border direction. 2015-02-26 23:28:31 -05:00
onpon4 c404e3611e Fixed edges of the screen slowing you down.
And unlike a fix I previously did, this one is perfect. Rather than
fiddling with ssx and ssy, I just added some new variables, smx and
smy.
2015-02-26 23:23:08 -05:00
onpon4 775be7afb4 Fixed the player's 1 shield in Nightmare difficulty not being called low 2015-02-26 22:35:49 -05:00
onpon4 93d6195a31 Removed Grey Sector. Changed random music selection to always see all of them. 2015-02-26 22:30:26 -05:00
onpon4 3d28058027 Added in a variation of the "Humans do it better" cheat code. 2015-02-26 22:16:45 -05:00
onpon4 4319051fd0 Removed Big Boss. (Just doesn't feel like it fits.) 2015-02-26 21:39:11 -05:00
onpon4 182ea70ba1 Removed gameplay option, have different max shield based on difficulty 2015-02-26 20:52:20 -05:00
onpon4 bf844b25eb More music 2015-02-26 19:55:52 -05:00
onpon4 9d43547982 Small fix to credits. 2015-02-26 19:27:38 -05:00
onpon4 491bb2641b Removed choice of targeting systems.
This is silly. I can see that someone decided to restrict targeting
to one ship as a difficulty setting, but that's not a very good way
to achieve different levels of difficulty.

Also added more music and slowed down RE.ogg.
2015-02-26 18:46:45 -05:00
onpon4 9b814979f9 Added more music. 2015-02-26 15:52:18 -05:00
onpon4 fecf957cd5 Started adding some new music, fixed ship aiming off-screen at the end. 2015-02-26 14:18:27 -05:00
onpon4 f385c9448e Upgraded to GPLv3. 2015-02-26 11:20:36 -05:00
onpon4 555ee4fe15 Removed support for PAK files.
These are really unnecessary, and their support makes converting
the music from MOD to Ogg Vorbis more complicated than it needs to
be.
2015-02-26 11:09:28 -05:00
onpon4 ed621bf3a4 Changed from 48000 Hz to 44100 Hz.
48000 Hz was causing problems with the sound. Who chose such an odd
number?
2015-02-26 10:22:22 -05:00
Guus Sliepen 36f0e7a85d Merge remote-tracking branch 'origin/sdl2'
Conflicts:
	src/player.cpp
2014-05-13 16:22:11 +02:00
Julian e44c25018a Fixed indentation. 2014-03-12 15:18:41 -04:00
Julian b1ae2a4128 Added the changes I proposed a while back.
So now, when currentGame.gamePlay is set to GAMEPLAY_ONPON:
- You start with 50 shield, and never gain any increased capacity.
- You can't charge the charge cannon and shoot at the same time; if
  you shoot the plasma gun, the charge cannon shoots as well (as if
  you had released the charge key).

I didn't add in the feature to keep the view from slowing you down,
because the method I used was imperfect anyway.
2014-03-12 14:35:24 -04:00
Guus Sliepen b285643a82 Fix color keys. 2013-10-01 14:33:33 +02:00
Guus Sliepen 593ea01386 Initial conversion to SDL2. 2013-09-30 16:52:43 +02:00
Guus Sliepen c357c28966 Ensure the joystick is usable in the title screen. 2013-07-13 15:10:29 +02:00
Guus Sliepen 8810b090fa Remove external files for missions, shop items, aliens and weapons.
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.
2013-07-11 15:29:37 +02:00
Guus Sliepen bd4a449e10 Rename code/ to src/. 2013-07-11 14:24:37 +02:00