dxx-rebirth/common
Kp a24490033f Allow players to remove thief at level start
Commit f4b21088a0 ("Track vulcan ammo explicitly") fixed an original
retail bug that prevented the thief from stealing energy weapons,
because the thief could only steal weapons for which the player had ammo
and energy weapons never have ammo.  This went unremarked for several
years, until a recent report of the new semantics as a game-breaking
regression because the thief is now "ridiculously potent".

Address this report, as well as an intermittently raised issue from
various users over time, by adding two new knobs to both the single
player "Gameplay" menu and the multiplayer setup screen: "Remove Thief
at level start" and "Prevent Thief Stealing Energy Weapons".

"Remove Thief" deletes the thief object during level load.  It has no
impact on save games, and changing it after entering a level has no
effect on any thief already in the level.

"Prevent Thief Stealing" is checked at the moment of theft and, when
enabled, prevents stealing primary weapons other than Vulcan/Gauss.
This can be changed at will in single player and is immediately
effective.  In multiplayer, this option can only be changed by the game
host in the pre-game setup.

For both knobs, there is one pair of checkboxes to control this as a
player preference, which applies in single player games.  There is a
second pair of checkboxes in the multiplayer setup, which applies only
to multiplayer games.  Therefore, in multiplayer, the host chooses thief
settings and all clients use the host's choice.  The host may configure
the thief differently in multiplayer from how the host plays in single
player.

For users who wanted to remove the thief, no specific tally has been
kept for who requested it or when.  Now that the code is being updated,
this is thrown in as an easy addition.

Reported-by: MegaDescent <http://forum.dxx-rebirth.com/showthread.php?tid=980> (for the thief stealing energy weapons as a game-breaking regression)
2017-08-26 19:47:52 +00:00
..
2d Work around i686-w64-mingw32-g++ compiler crash 2017-04-22 21:23:55 +00:00
3d Simplify calc_rod_corners loops 2017-08-26 19:47:51 +00:00
arch Decorate OpenGL messages 2017-08-26 19:47:51 +00:00
editor Cache canvas in print_clock 2017-02-11 21:42:34 +00:00
include Require vms_angvec &for g3_start_instance_angles 2017-08-26 19:47:51 +00:00
main Allow players to remove thief at level start 2017-08-26 19:47:52 +00:00
maths Move EDITOR to dxxsconf.h; rename to DXX_USE_EDITOR 2016-09-11 18:49:16 +00:00
mem Use array<> for memdebug data 2016-10-29 23:16:15 +00:00
misc Simplify reporting fatal errors 2017-08-11 23:43:52 +00:00
texmap Simplify draw_tmap interpolation 2017-03-10 01:22:24 +00:00
ui Expand tt:: indirection to std:: 2017-06-25 20:46:03 +00:00