Go to file
Kp 2e682e140d Prevent sound stacking when all primary weapons are exhausted
ziplantil reported that in Descent 1, if a player has an empty Vulcan
cannon, and no energy, then attempting to fire a weapon would play the
SOUND_ALREADY_SELECTED clip every frame until the player ceased trying
to fire.  The problem does not impact Descent 2 since Descent 2 does not
play this sound sample when trying to activate a weapon that is already
active.

If the current weapon is already LASER_INDEX, then
select_primary_weapon(LASER_INDEX) simplifies to:

```

	// Pointless, player already using this weapon
	newdemo_record_player_weapon(LASER_INDEX)
	if (Primary_weapon != LASER_INDEX) {
		// skipped, path is false
	}
	else
	{
		if (wait_for_rearm)	// true for this path
			// Bad, plays every frame
			digi_play_sample(SOUND_ALREADY_SELECTED);
	}
	// Pointless, Primary_weapon already is LASER_INDEX
	Primary_weapon = LASER_INDEX;
	if (weapon_name)
	{
		// skipped, path is false
	}

```

Skipping the call avoids two pointless statements, one bad statement,
and nothing useful.  Therefore, the simplest fix for the problem is to
call select_primary_weapon(LASER_INDEX) only if the primary weapon is
not currently LASER_INDEX.

Reported-by: ziplantil <https://github.com/dxx-rebirth/dxx-rebirth/issues/499>
2020-03-28 17:09:28 +00:00
.github/ISSUE_TEMPLATE Update to new multi-template issue template system 2019-05-26 21:53:38 +00:00
common Allocate morph_data vectors dynamically 2020-02-26 05:07:34 +00:00
contrib Version 20191227 2019-12-31 13:10:12 +01:00
d1x-rebirth Remove references to DXX forum 2020-03-25 02:31:10 +00:00
d2x-rebirth Remove references to DXX forum 2020-03-25 02:31:10 +00:00
Documentation Switch most in-tree http:// links to https:// 2018-09-02 00:57:29 +00:00
similar Prevent sound stacking when all primary weapons are exhausted 2020-03-28 17:09:28 +00:00
.gitattributes Instruct git-archive to insert a commit ID in SConstruct 2019-12-29 22:24:20 +00:00
.gitignore ignore XCode user data 2014-12-06 22:43:12 -08:00
COPYING.txt corrected typo in COPYING.txt (it's to its) 2014-06-06 13:18:52 +02:00
GPL-3.txt Changed custom D1X license to GPLv3 2014-06-01 19:55:23 +02:00
INSTALL.markdown Add documentation warning not to use paths with spaces 2019-12-28 21:26:37 +00:00
README.md Remove references to DXX forum 2020-03-25 02:31:10 +00:00
SConstruct Add unit test for zip iterator 2020-02-26 05:07:34 +00:00

                         __________
__________/ DXX-Rebirth /

https://www.dxx-rebirth.com

0. Introduction:

DXX-Rebirth is based on the late D1X and D2X source ports (which, in turn, were based on the original Descent source and LDescent). The Rebirth Team has spent a lot of time working to improve the source code by fixing old bugs and adding some improvements, while always staying true to our philosophy: Keep it Descent!

It is the goal of DXX-Rebirth to keep Descent 1 & 2 alive and well, updating them for modern PCs while also keeping them the same games you remember playing back in 1995!

Now Material Defender...Prepare for Descent!

1. Features:

DXX-Rebirth has every little feature you may remember from the original Descent 1&2 and much more.

For example:

  • Full compatibility with Descent and Descent 2, including all expansions and third-party levels.
  • DXX-Rebirth runs on your favourite Operating System. We officially support Linux (and other *NIXs), Mac OS X and Windows. The source code can also be compiled on many other systems!
  • OpenGL provides fast and smooth rendering - even on low-end systems.
  • Optionally you can enable several effects like Transparency, Colored Lighting, Texture Filtering, FSAA, etc.
  • Thanks to SDL, a wide variety of Joysticks are supported. Also you can use more Joysticks, buttons and axes than you can ever operate in your state of evolution.
  • Joystick, Keyboard and Mouse can be used simultaneously.
  • The games can display all resolutions and aspects supported by your monitor, including an option for VSync.
  • Besides MIDI and CD-Audio (Redbook), you can play your own custom Music from your hard drive or a separate AddOn.
  • Both games can utilize special AddOn packs to replace or expand the original game content.
  • Multiplayer via UDP protocol provides a fast and easy-to-use LAN and Online action. This includes reliable communication causing less glitches due to lost packets.
  • The ingame Demo-recording system has been improved. Demos are less glitchy and smaller while still still being backwards-compatible to earlier versions of the games.
  • Higher game speed will not cause glitches such as unacceptable fast homing projectiles, incredible high damage caused by several collisions or Fusion cannon, etc.
  • Player files, Savegames, Demos and Missions from DOS-Versions of the games can freely be used in DXX-Rebirth and vice versa.
  • Mac Command keys are now working - see F1 Help. Command-Q works much like a normal Mac program
  • Even more ...

2. Installation:

See INSTALL.markdown.

3. Multiplayer:

DXX-Rebirth supports Multiplayer over UDP/IP.Using UDP/IP works over LAN and Internet.

By default, each game communicates over UDP-Port 42424. This can be changed via the menus, command-line argument or .ini files.

Please be aware that if you host a game and players want to join your game online via direct IP connection, your specified game port should be forwarded on your router.

If you host your game on the Online Tracker and other players join via this method, port forwarding should not be necessary.

If you only want to join a game, or host a game on LAN (not online), port forwarding should not be necessary. If you do experience problems, please check your NAT settings and/or Firewall.

See COPYING.txt and GPL-3.txt

5. Contact:

6. Issue Reporting

Use GitHub issues tab report a new issue, be sure to add as much detail as possible in the template provided.