Commit Graph

94 Commits

Author SHA1 Message Date
diligentcircle 344c5d3c82 Improved the CHANCE implementation a bit.
This makes the implementation more uniform (avoiding skew caused
by %).
2021-08-20 17:48:18 -04:00
Layla Marchant 3d0e36916d
Added a new original Project: Starfighter theme: Android Oppression
This is a new theme for Starfighter! This version represents mystery
and the ominous presence of WEAPCO. Other versions will be used for
other situations, and a sort of combination between this and Last
Cyber Dance will serve as the music for the final Kline battle. That's
the theory anyway.
2021-04-28 15:30:01 -04:00
Layla Marchant 5b29033700
Changed our credits to "The Diligent Circle". 2020-12-26 00:10:10 -05:00
Layla Marchant 6d71317514
Implemented emulation of smaller Kline health bars.
This makes it so that Kline's one health bar is displayed as many
smaller health bars, like the original, for Classic difficulty.
2020-12-25 21:46:58 -05:00
Layla Marchant ca11cdea27 Implemented use of the game controller SDL API.
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.
2020-07-27 11:29:35 -04:00
Layla Marchant 82b35c5ce0 Added a text speed option, improved cutscene controls.
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.
2020-07-16 13:22:16 -04:00
Layla Marchant 13a2f0fba5 Added proper analog support. 2020-06-21 22:19:28 -04:00
Layla Marchant 5c9b69dd0c Added a super-easy difficulty. 2020-05-26 15:51:04 -04:00
Layla Marchant 9863aef0ba Fixed the warp escape delay bug.
That's embarassing.
2020-05-23 21:10:45 -04:00
Layla Marchant cdf555f17b Removed my old name.
I go by "Layla" now. Updated that. Also updated my email address.
2020-03-05 15:05:56 -05:00
Julie Marchant 75327aa3f8 Allow aliens to attack "less desirable" targets if they can't find a good one.
The way it previously was, in particular, Sid 100% refused to attack
fighting vessels and Phoebe and Ursula 100% refused to attack
non-fighting vessels.  This was most notable with the Urusor mission,
where Sid would just become completely idle after disabling the last
non-combat vessel and would often just drift off into the distance
as a result (especially annoying in Classic difficulty as this
could make it very difficult to find the remaining enemies).

So now, instead these targets are treated as "undesirables", which
normally will be avoided but will be accepted after 30 frames.
This stops allies from idling around forever.

This rule has also been applied to a rule that didn't allow targeting
enemies beyond a particular distance.

I'm keeping it in Classic difficulty for now, but might add an
exception later.
2019-06-22 08:34:57 -04:00
Julie Marchant 28c68842a1 Fixed some size/position things
Now I gotta figure out why renderer_reset double-frees, and why
the collision behavior is causing segfaults...
2019-06-13 02:25:58 -04:00
Julie Marchant cea10fd3fb Moar translation support 2019-06-10 09:23:56 -04:00
Julie Marchant 268637343c Everything is translatable! (I think) 2019-06-07 00:18:24 -04:00
Julie Marchant 94f23dc39e More cleanup 2019-06-06 09:46:30 -04:00
Julie Marchant 3f1febc2fc Some code cleanup. 2019-06-06 09:30:22 -04:00
Julie Marchant caf963ba19 Added translation support.
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.
2019-06-05 22:13:48 -04:00
Julie Marchant 24f44e509f Implemented Unicode text rendering... I think?
I'm in a bit of a rush so I can't check yet (also it's deactivated
for now). But I think I'm finished? Will check later.
2019-06-02 11:30:39 -04:00
Julie Marchant 04033b332e Added "desktop" fullscreen back in, plus removed key repeats. 2019-05-30 11:32:50 -04:00
Julie Marchant d7dc0844c8 Adjusted the delay of ray damage, plus some misc code fixes. 2019-05-24 22:05:09 -04:00
Julie Marchant b251acb4fe Removed the now unnecessary casting for malloc calls. 2019-05-23 11:07:03 -04:00
Julie Marchant 908a6059ac Finished C conversion! Hoorah!
Note: Autoconf files must be cleaned up and regenerated to ensure
proper compilation.
2019-05-23 11:02:48 -04:00
Julie Marchant 371896eb60 Updated copyright dates. 2019-05-21 18:47:32 -04:00
Julie Marchant 5670032156 Added difficulty indicator to the status screen. 2019-05-21 18:36:45 -04:00
Julie Marchant e398440a56 Made Classic difficulty almost exactly like the original.
There are only a couple changes that I've left in:

1. On normal missions, the edge of the screen still doesn't slow you down.
2. The shop still does not have the old bug where selling was based on the price of the next item.
3. Not sure about this, but some powerups don't spawn if they're of no use to you; I believe this was not in the original, but it's been left in anyway.
4. Not sure about this either, but I believe the original had the 3-way spread much wider. This has not been adjusted for Classic difficulty.

Other than those three, Classic difficulty is now exactly the same,
including a re-implementation of the whole "score" system where destroying
a ship nets you money instantly and the absurd system where you buy only
10 plasma capacity at a time. I might adjust 1, 3, and/or 4 above later
on.
2019-05-21 13:17:07 -04:00
Julie Marchant e22a2bc168 Converted consts to #define calls. 2019-05-21 01:51:39 -04:00
Julie Marchant aa9d673aab Changed screenWidth and screenHeight to #defines. 2019-05-20 11:25:05 -04:00
Julie Marchant 3b7bb45e28 Improved damaged nerfing
Limited damage prevention to only at the "low" and "critical" levels,
plus added a delay for when damage is first inflicted by rays.

This prevents ships with multiple concentrated shots from having
a disadvantage, and it helps make rays easier to avoid at the same
time (just get out of the ray in time and you don't take damage).
Of course, neither of these apply to Classic difficulty, although
the ray damage delay does apply to Nightmare difficulty (which,
given how unpredictable rays are, I think is quite reasonable).
2019-05-11 02:15:36 -04:00
onpon4 abc3fbd7c0 Prevent screen sizes smaller than 640x480. 2017-03-28 11:03:53 -04:00
onpon4 e36a1e82e7 Changed the game to use true fullscreen.
The fake "windowed fullscreen" is less invasive, but it sometimes
causes ugly artifacts and as a general rule isn't really all that
useful.

However, I also defined it in defs.h, so that it can be more easily
changed in the future.
2017-02-05 16:40:59 -05:00
onpon4 fd6949120e Fixed a Windows compatibility.
drand48 isn't available on Windows, so I replaced it with a custom
"DRAND" definition.
2017-02-01 09:19:12 -05:00
onpon4 682c233250 Several tweaks toward making the intermission adaptable to diff sizes. 2016-11-26 00:36:33 -05:00
onpon4 d336bb2c83 More cleanup. 2016-11-25 18:21:31 -05:00
onpon4 c8e561eeec Added a "Credits" option to the main menu. 2016-11-25 17:23:23 -05:00
onpon4 de1cd7c674 Cleaned up the "missions" module, renamed to "mission". 2016-11-25 12:29:15 -05:00
onpon4 800d278f78 Added a "NOBANTER" flag for ships that shouldn't cause it.
This is mainly for the asteroids, but it's also useful for the bosses
and Krass's team.
2016-11-19 12:29:26 -05:00
onpon4 063020df22 More cleanup. 2016-11-16 19:43:03 -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 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 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 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 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 822ff849e4 Removed the very last of the image-related magic numbers (in source code).
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.
2016-01-06 20:35:37 -05:00
onpon4 4be080225b Fixed more magic numbers.
God, this one was definitely the biggest headache of all of the
magic number erasing. Never did I expect such cryptic problems.

The first problem was that the entirety of the player's weapon
struct was a part of the save file, *including the weapon's "image
indexes"*. Since the indexes have been changed, and the originally
used one is now unavailable when it's requested, this was causing
a segfault later on. Had to fix this by setting the image index
when the game is loaded.

The second problem was related to another bug I've been confused
about for years: the one that causes mobile rays to fire 5 green
shots. The entire reason those shots were green was because
the weapon's image indexes were undefined, and *that was causing
them to default to 0*. 0 was simply the index of green plasma.
Of course, though, now attempting to use that image causes a
segfault, so for now, I've fixed this by changing the image index
of the mobile rays to the red plasma bolts.

There are still some magic numbers left, related to the intermission
screen. But the hardest part is now done, thank God.
2016-01-05 22:12:29 -05:00
onpon4 4a921947c1 NONE -> M_NONE 2016-01-05 07:07:04 -05:00
onpon4 6189a66866 Added CHANCE macro to replace difficult-to-read special rand() uses.
I found myself confused by the interception chances, because it looked
like the chance of interceptions was decreasing slowly over time.
Turns out, it was the denominator in a fraction; a "chance" of 300
meant that there was a 1 / 300 chance.
2016-01-05 06:59:37 -05:00
onpon4 97f1f441c2 Removed more magic numbers. 2016-01-05 06:44:26 -05:00