Commit Graph

273 Commits

Author SHA1 Message Date
Guus Sliepen 96996ce167 Redo the whole plasma system.
- We now have both minPlasma* and maxPlasma* variables.
- *PlasmaRate now goes from 1 to 5 just like Damage and Output.
- Internally, plasma now goes into the primary weapon, there is no
  temporary weapon anymore.
- When upgrading the primary weapon, the new minimum amount of Damage,
  Output and Rate immediately goes into effect when starting the next
  msision.
- Super Charge now works exactly the same again as in the original.
- But shows blinkenlights in the bottom status bar when it is in use.
2011-09-11 21:57:57 +02:00
Guus Sliepen 2c64485272 Toggle fullscreen mode with F11 or Alt+Enter. 2011-09-05 22:13:11 +02:00
Guus Sliepen 7a59631189 Simplify bullet code even more. 2011-09-05 21:55:23 +02:00
Guus Sliepen bde2d5c8cf Update credits.
- 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.
2011-09-05 13:56:04 +02:00
Guus Sliepen 350aabfa23 Pause the game when the window loses input focus. 2011-09-05 11:41:03 +02:00
Guus Sliepen f8c4a72170 Display "PAUSED" when paused. 2011-09-05 11:40:35 +02:00
Guus Sliepen e7f5c3825b Simplify spread bullet code.
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.
2011-09-04 18:24:54 +02:00
Guus Sliepen 45664437e1 Replace maledeath sound by one from OLPC. 2011-09-04 17:14:32 +02:00
Guus Sliepen 8bbe48b4bd Use bitwise operations for flags. 2011-09-04 14:43:17 +02:00
Guus Sliepen 4d747db620 Respect LDFLAGS and link LIBS after object files. 2011-08-29 22:44:46 +02:00
Guus Sliepen 4779481f30 Smoother appearance of aliens on left hand side of title screen. 2011-08-29 17:28:06 +02:00
Guus Sliepen 4e1316054a Don't display target arrow if engine.targetIndex is invalid. 2011-08-29 13:08:55 +02:00
Astrid S. de Wijn 2ddeb41360 Updated drone and pod graphics. 2011-08-29 11:01:40 +02:00
Guus Sliepen 7607bc4142 Fix write past end of array.
Found by cppcheck.
2011-08-29 10:58:17 +02:00
Guus Sliepen ac71e3d3ec Explicit limits for the maximum amount of rockets.
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.
2011-08-29 09:31:16 +02:00
Guus Sliepen 744f1977e1 Reset charge cannon charge and laser heat after each mission.
This prevents these variables from turning into a huge amount of missiles when
buying a missile launcher in the shop.

This fixes Debian bug #286933.
2011-08-29 09:10:50 +02:00
Astrid S. de Wijn bad5739c62 Add DFSG-compatible replacement sound.
All sound was taken from OpenGameArt.org.
2011-08-28 13:38:27 +02:00
Guus Sliepen 12d4fcaeab Don't use .wav anymore, use .ogg for all sound effects. 2011-08-28 13:32:34 +02:00
Guus Sliepen 81905236cc Fix two spelling errors. 2011-08-28 12:28:05 +02:00
Guus Sliepen 6bfba4064b Make wrap() functions really wrap.
Before, if a value was over one of the limits, it would be set to the
other limit. For most usecases, that was fine, however for the starfield
this would cause stars to become aligned to each other after a while.
2011-08-27 23:30:44 +02:00
Guus Sliepen 1abf5d8c67 Add "optimise" target which optimises PNG and JPEG files. 2011-08-27 22:37:26 +02:00
Astrid S. de Wijn e292e98c88 Updated graphics sources document. 2011-08-27 22:33:38 +02:00
Astrid S. de Wijn 61fb3d2035 Update Executive Transport and Pluto boss graphics. 2011-08-27 22:13:55 +02:00
Guus Sliepen bf39080d6f Make cargo pods appear again.
Cargo items were always set inactive after the conversion of variables
from signed char to bool.
2011-08-27 22:08:08 +02:00
Guus Sliepen 6c6fa1ec2e Make makefile more similar to the one of Blobwars. 2011-08-27 21:52:46 +02:00
Guus Sliepen 7768b4cc6d Add Makefile option to select whether or not to use a .pak file. 2011-08-27 21:29:08 +02:00
Guus Sliepen 44fa119ab7 Fix two spelling errors. 2011-08-27 21:21:43 +02:00
Astrid S. de Wijn f0eff0b0b8 Updated graphics sources document. 2011-08-27 17:33:43 +02:00
Guus Sliepen acf5c5d1f4 Move sources document out of the gfx directory. 2011-08-27 17:31:08 +02:00
Astrid S. de Wijn af07946e24 Remove unused graphics. 2011-08-27 17:29:35 +02:00
Astrid S. de Wijn 75a6b07823 Updated explosion graphics. 2011-08-27 17:28:58 +02:00
Guus Sliepen 4d78603139 Converted one signed char to bool too many.
This prevented new aliens from being generated throughout the mission,
making certain missions impossible to complete.
2011-08-27 17:17:54 +02:00
Astrid S. de Wijn d80d1af89c Add DFSG-compatible replacement graphics.
Some images are made from scratch, others are taken from various sources
with CC0, CC-BY, CC-BY-SA and GPL licenses, mostly from OpenGameArt.org
and NASA.
2011-08-27 16:20:42 +02:00
Guus Sliepen d6c17d176f Don't use .bmp and .gif anymore, use .png for all lossless graphics. 2011-08-27 16:18:29 +02:00
Guus Sliepen 3dcea6c81f Fix a spelling error. 2011-08-27 12:24:37 +02:00
Guus Sliepen b8ba61c75e Minor spelling and punctuation fixes. 2011-08-27 10:53:31 +02:00
Guus Sliepen c13267d63d Use whole screen for credits, and allow arrow keys to be used. 2011-08-27 00:29:23 +02:00
Guus Sliepen 5629a2ad73 Move isOnScreen() to explosions.cpp.
It is only used there, and can then be turned into a static function.
2011-08-27 00:29:01 +02:00
Guus Sliepen d7d6dc37bc Flatten Graphics object.
All functions and variables are now defined in graphics.cpp.
Before, the functions would be compiled again and again for every source
file, now it is compiled only once, halving the size of the stripped
starfighter binary.
2011-08-26 23:53:46 +02:00
Guus Sliepen 878e559b6a Flatten objects which only contain static functions.
There is no reason to have objects which contain only static functions
and no variables. These functions have been moved to the global
namespace and are now defined in .cpp files. The math functions are very
small and have been put in math.h and made static inline.
2011-08-26 23:27:16 +02:00
Guus Sliepen 931d110692 Fix "random" behaviour of sound, music and fullscreen options.
The state of these options was not only stored in the global config
file, but also in each saved game. When loading a game or clicking on
"continue game" from the title screen, the state of these options would
also be loaded from the save game file. If this changed the state of
sound and music, this would only take effect when starting a mission or
going back to the title screen. If it changed the state of the
fullscreen option, it would never toggle the state, but would
desynchronise the actual state of the window and the fullscreen option.

This is now fixed by moving these options from the currentGame variable
to the engine variable, where they are not in danger of being
overwritten.
2011-08-26 22:48:52 +02:00
Guus Sliepen 6ea4744832 Bring sanity to the header files.
Most .h files were not used to declare the externally visible variables
and functions of the .cpp files, but only to #include things and declare
things that were needed by that .cpp file itself. This resulted in a lot
of duplication.

Now the .h files only declare what is externally visible from the
corresponding .cpp files. Starfighter.h includes all the other .h files,
and all .cpp files only #include "Starfighter.h". Functions and
variables that were not used outside the .cpp file that contained them
were marked static. Variables defined in .h files were moved to the
appropriate .cpp files.
2011-08-26 21:29:04 +02:00
Guus Sliepen 8b34e90bcf More bools. 2011-08-26 16:55:46 +02:00
Guus Sliepen 277d34dabd Turn signed chars into bools where appropriate. 2011-08-26 16:14:58 +02:00
Guus Sliepen c710b8df7c Recalculate shop prices before giving money back on sold items.
This fixes a bug where one could get more than half the item price back. In
particularly, a level 2 Plasma Cooling Booster would sell for more than you
bought it for.

This fixes Debian bug #253380.
2011-08-26 15:35:03 +02:00
Guus Sliepen 3d1b5ab67b Import data/ directory.
This has already some typos fixed that were fixed in the Debian package of starfighter.
2011-08-26 14:50:08 +02:00
Guus Sliepen 9d43e3ca27 Add pack/unpack utilities.
These are made by Josh Triplett and were used in the Debian package of starfighter.
2011-08-26 14:46:44 +02:00
Guus Sliepen 48e8e12b07 Remove 1 second delays. 2011-08-26 14:41:34 +02:00
Guus Sliepen c42ee44271 Don't blit unnecessarily.
During the game, a lot of images were blitted outside the visible area. Also,
addBuffer() was called even when the destination surface was not the screen,
resulting in unnecessary blits in unBuffer().
2011-08-25 15:34:47 +02:00
Guus Sliepen 70d0b13ea2 Use textSurfaces instead of calling drawString() in doInfo().
This increases efficiency significantly. Before, callgrind estimated that 58%
of the CPU time was spent in doInfo(), taking roughly 1.6 kcycles on average
per call. After, only 0.13 kcycles on average per call are used (12x speedup),
and only 14% of the CPU time is spent in doInfo().
2011-08-25 14:00:27 +02:00