Commit graph

2324 commits

Author SHA1 Message Date
Kp 14dd5b91aa Save objptridx for boss instead of recomputing it 2015-12-22 04:18:51 +00:00
Kp 8a22ca9594 Shorten multi_apply_goal_textures 2015-12-22 04:18:51 +00:00
Kp ab944ae8b1 Reuse measurement of TXT_GAME_OVER 2015-12-22 04:18:50 +00:00
Kp 20f432e5c6 Save & to con_buffer slot 2015-12-22 04:18:50 +00:00
Kp db9fb0ed42 Move more symbols into namespace dcx/dsx 2015-12-22 04:18:50 +00:00
Kp ea02aeeaab Move kill_matrix update up 2015-12-22 04:18:49 +00:00
Kp 132367ce27 Fix SDL-only build after namespace changes 2015-12-18 04:08:24 +00:00
Kp 28ee4c1804 Move DbgUseOldTextureMerge to CArg 2015-12-18 04:08:24 +00:00
Kp e0a88f4b7b Move TexFilt to CCfg 2015-12-18 04:08:23 +00:00
Kp 22901a6636 Move WindowMode to CCfg 2015-12-18 04:08:23 +00:00
Kp 0fa31dbe98 Force multi kill list sort order for (kills+deaths<=0) 2015-12-18 04:08:23 +00:00
Kp 1be2e52bf7 Force kmatrix to 0% efficiency for (kills+deaths<=0) 2015-12-18 04:08:23 +00:00
Kp 025c8dec31 Force kill gauge to 0% efficiency for (kills+deaths<=0) 2015-12-18 04:08:23 +00:00
Kp 2b51578ba6 Use enum class for Player_dead_state (formerly Player_is_dead) 2015-12-15 04:09:35 +00:00
zico 2e6dae1d8b Abbreviated some text strings to make menus fit better into a 4x3 game window. 2015-12-14 15:32:42 +01:00
zico 731fb5204e Adjusted keyboard ramp scaling based on observation that the original game uses a keyboard ramp of 8 frames. Full sensitivity should reflect 60FPS behaviour, half sensitivity reflects 30FPS behaviour (give or take a frame). Ramping should be properly time-scaled now. 2015-12-14 15:19:59 +01:00
Kp a1cf7b03fe Fix lifetime kill accounting in team hoard
`adjust` must be set to -1 for a team kill, but this was only done as a
side effect of updating game-local kill counts.  After 5f2ec67,
game-local kill counts are not updated in team hoard, but adjust is
still used.  Move the handling of adjust up to occur in all team games.

Fixes: 5f2ec6789f ("Restore !hoard guard for game-local kill accounting")
2015-12-13 18:00:49 +00:00
Kp fd3f7f7f4d Force lowest rank for (kills + deaths) <= 0 2015-12-13 18:00:49 +00:00
Kp 5f2ec6789f Restore !hoard guard for game-local kill accounting 2015-12-13 18:00:49 +00:00
Kp 26e948d5f1 Uninline namespace dsx 2015-12-13 18:00:49 +00:00
Kp dc8c0323d8 Uninline namespace dcx 2015-12-13 18:00:49 +00:00
Kp 32051298ae Use inline namespace dcx/dsx for more symbols 2015-12-13 18:00:48 +00:00
Kp 8109379fdd Use inline namespace dsx for similar/misc/ 2015-12-13 18:00:48 +00:00
Kp 232cc324f9 Use inline namespace dsx for similar/arch/sdl/ 2015-12-13 18:00:48 +00:00
zico 6c5bfaf0d1 Make sure Vulcan ammo shows for D1X in vertical HUD modes. Enabled vulcan ammo gauge for Cockpit and Status Bar modes 2015-12-11 13:37:30 +01:00
zico 7a78568b14 Bail out of multi_reset_object_texture() if object is a ghost. Prevents unnecessary calls and resulting bug messages from check_warn_object_type() 2015-12-11 12:50:01 +01:00
Kp 3d246427e1 Poison objects on level load
Objects are overwritten without using obj_allocate, so the normal poison
path is not triggered.  Poison objects explicitly to trap uninitialized
data from a previous level.

This also fixes an unreported issue where player shields always reset to
100 on entering a new level.  The game is supposed to raise shields to
100 if the player was lower on exiting the level.  However, it is not
supposed to reduce shields to 100 if the player had a higher value on
exiting the level.

This also fixes a demo consistency issue reported by zicodxx <https://github.com/dxx-rebirth/dxx-rebirth/issues/168>.

Fixes: 2e28a491f2 ("Move player shields to struct object")
2015-12-10 03:25:37 +00:00
Kp 34d89d5139 Use inline namespace dsx for segment.h 2015-12-05 22:57:25 +00:00
Kp e549f3451e Use inline namespace dsx for object.h 2015-12-05 22:57:25 +00:00
Kp 1e50c23a8c Use inline namespace dsx for inferno.cpp 2015-12-05 22:57:25 +00:00
Kp e784fd96fa Use inline namespace dcx for common/texmap 2015-12-05 22:57:24 +00:00
Kp af97689d98 Fix demo id check bug
Test for type OBJ_FIREBALL before comparing the object ID to a fireball
ID.
2015-12-05 15:51:29 +00:00
zico b286458119 Upon user request: reverted commits 1c8dc35 and 1431d3bc so the game will automatically close menus and automap upon taking damage in multiplayer - restoring the original game behavior 2015-12-05 13:12:21 +01:00
zico d493912bcc Fixed demo playback which would not transition to Descent 2 secret levels due to interpolated playback triggering ND_STATE_PAUSED and skipping oder ND_EVENT_SECRET_THINGY 2015-12-04 21:01:37 +01:00
Kp 8a97c173a3 Remove useless gr_remap_mono_fonts
gr_remap_mono_fonts searches for fonts with !(font->ft_flags & FT_COLOR)
and calls gr_remap_font on any it finds.

gr_remap_font starts with:

	if (!(font->ft_flags & FT_COLOR))
		return;
2015-12-04 03:36:32 +00:00
Kp ddc3cd0201 Make Boss_teleport_interval const in D1 2015-12-04 03:36:32 +00:00
Kp 515210ea50 Make Boss_cloak_interval const in D1 2015-12-04 03:36:32 +00:00
Kp b4cd091412 Combine D1/D2 gamedata_close 2015-12-04 03:36:32 +00:00
Kp 954d473d47 Remove unused Do_ai_flag 2015-12-04 03:36:32 +00:00
Kp 9231cfb853 Remove write-only D1 variable Boss_been_hit 2015-12-04 03:36:32 +00:00
Kp bc204403ba Remove write-only variable Ai_initialized 2015-12-04 03:36:31 +00:00
Kp 9b8a956431 Make palette_save static for D2 2015-12-04 03:36:31 +00:00
Kp ed55763603 Remove unused symbols 2015-12-04 03:36:31 +00:00
Kp 1adf34403e Compile out unused wclip_write
Unused since 547193c591 ("Compile out unused bm_write_all") disabled caller bm_write_all.
2015-12-04 03:36:31 +00:00
Kp edfd337c50 Compile out unused weapon_info_write
Unused since 547193c591 ("Compile out unused bm_write_all") disabled caller bm_write_all.
2015-12-04 03:36:31 +00:00
Kp a49fc821a0 Restrict listbox_get_window to _WIN32 2015-12-04 03:36:31 +00:00
Kp 143612df6a Make multi_send_message static 2015-12-04 03:36:30 +00:00
Kp a245ff8130 Mark multi_who_is_master static 2015-12-04 03:36:30 +00:00
Kp 111ac7f7f3 Fix player/marker confusion due to sorting
Fixes: 1d7418497e ("Condense collision table")
2015-12-03 03:26:49 +00:00
Kp 01c0280e82 Optimize marker map drawing 2015-12-03 03:26:49 +00:00
Kp 708dc0a7e1 Use vobjptr/vcobjptr for more Objects[] access 2015-12-03 03:26:49 +00:00
Kp b683b4cc68 Scope weapon type 2015-12-03 03:26:49 +00:00
Kp 31d538ebe2 Use helper for robot weapon type 2015-12-03 03:26:48 +00:00
Kp c45f93b503 Short out apply_damage_to_player friendly fire check 2015-11-27 03:56:13 +00:00
Kp 0fe724b229 Adjust multiplayer kill handling 2015-11-27 03:56:13 +00:00
Kp 0c75aecc45 Check most uses of object id 2015-11-27 03:56:13 +00:00
Kp 0a3d4cd711 Defer robot parent check in object_create_explosion_sub 2015-11-27 03:56:13 +00:00
Kp 1226731ffa Propagate OBJ_POWERUP into segment_contains_object 2015-11-27 03:56:12 +00:00
Kp bdbc129d14 Optimize out some object type warnings 2015-11-26 02:56:56 +00:00
Kp 9f26e2211e Warn on invalid object ID access 2015-11-26 02:56:56 +00:00
Kp 8fe9261aaf Treat hoard non-player kills as bad kills 2015-11-26 02:56:56 +00:00
Kp f72e739732 Defer initializing UDP bind address 2015-11-26 02:56:55 +00:00
Kp fee144261f Add if-D2 to Dont_start_sound_objects
Dont_start_sound_objects is defined for D1, but never set.  Restrict it
to D2 and let D1 skip the test.
2015-11-26 02:56:55 +00:00
Kp dad504cfef Fix some -Wshadow warnings 2015-11-26 02:56:54 +00:00
Kp 954f0f8603 Remove unused SOUND_3D_THRESHHOLD 2015-11-24 04:05:36 +00:00
Kp a579f75d05 Move SndDisableSdlMixer to CGameArg 2015-11-24 04:05:36 +00:00
Kp e33f7f751b Move SysShowCmdHelp to CGameArg
Both games support SysShowCmdHelp.  Move it to the common structure.
2015-11-24 04:05:35 +00:00
Kp 64dee5d52a Move SysMaxFPS to CGameArg
Both games support SysMaxFPS.  Move it to the common structure.
2015-11-24 04:05:35 +00:00
Kp 0d7809439c Make char copyright[] const 2015-11-24 04:05:35 +00:00
Kp 63ca0eb87b Make respawn-on-fire configurable
Requested-by: Mako88 <https://github.com/dxx-rebirth/dxx-rebirth/issues/162>
2015-11-21 18:12:13 +00:00
Kp 0fbccd609c Ignore lifetime kills/killed in cooperative games 2015-11-21 18:12:13 +00:00
Kp 90e3c29464 Fix visual off-by-one in energy bar
Reported-by: Ryusei117 <http://www.dxx-rebirth.com/frm/index.php/topic,2075.0.html>
2015-11-21 18:12:13 +00:00
Kp 472c492ac4 Prevent selecting secondaries with ammo==0
derhass reported that using demo content allows the user to select
non-demo weapons, which then render incorrectly.  derhass observed the
problem when the game automatically changed weapons, but affected users
can also select the missing weapon by hand.  Demo data sets non-demo
weapons to have zero ammo_usage, so a player has "enough" rounds even
when he has none.  Past releases blocked this through the dedicated
secondary_weapon_flags field.  Add an explicit check for non-zero ammo.

Reported-by: derhass <https://github.com/dxx-rebirth/dxx-rebirth/issues/165>
2015-11-19 03:23:35 +00:00
Kp ceafa62d64 Use enum class for CLI_insert_mode 2015-11-19 03:23:35 +00:00
Kp 82d0c2ed96 Make some implicit uses of ptridx construction explicit 2015-11-19 03:23:34 +00:00
Kp bae81b79d7 Defer computing cloak_end_time 2015-11-19 03:23:34 +00:00
Kp 62061b7988 Remove unnecessary cloak fadein/fadeout switch 2015-11-19 03:23:34 +00:00
Kp edc4015c97 Compute Boss_cloak_end_time as needed 2015-11-19 03:23:34 +00:00
Kp f2a0edfd35 Expand Boss_cloak_duration inline 2015-11-19 03:23:34 +00:00
Kp 66cbd4ae0a Move shields/energy up another line in large games 2015-11-15 22:30:41 +00:00
Kp 0d68cb0aa4 Cache locals in explode_model 2015-11-15 22:30:41 +00:00
Kp c0149be92a Use enum class explosion_vclip_stage for get_explosion_vclip 2015-11-15 22:30:41 +00:00
Kp f09635089e Compact track_track_goal 2015-11-15 22:30:41 +00:00
Kp 59069a7bb6 Compact do_physics_align_object 2015-11-15 22:30:41 +00:00
Kp 02e1f293dd Remove unused old-style floor levelling 2015-11-15 22:30:41 +00:00
Kp ec70edcc65 Use operator= to copy vms_vector 2015-11-15 22:30:40 +00:00
Kp 7d22139334 Fix vulcan ammo drop loop
Fixes: 6037372cdf ("Move player vulcan_ammo to object.ctype.player_info")
2015-11-14 23:42:27 +00:00
Kp 5f5fd23060 Use enum class for HUD type 2015-11-14 18:17:22 +00:00
Kp 0b8a34d56d Remove write-only sc_last_item 2015-11-14 18:17:22 +00:00
Kp 44753209d6 Move homing_object_dist to object.ctype.player_info 2015-11-14 18:17:22 +00:00
Kp 52051c427b Move invulnerable_time to object.ctype.player_info 2015-11-14 18:17:21 +00:00
Kp 9eb8aba4c9 Move cloak_time to object.ctype.player_info 2015-11-14 18:17:21 +00:00
Kp 794e7ddece Use reference_wrapper for cheat bits 2015-11-14 18:17:21 +00:00
Kp af3241098b Hide save/load game menu items for non-host
Only the host is allowed to save/load, so there is no reason to show the
items to non-hosts.
2015-11-14 18:17:21 +00:00
Kp 1fcffee1df Cache draw_polygon_object simple model decision 2015-11-14 18:17:21 +00:00
Kp 4c5d4a36e5 Skip compute_object_light if overridden by bright players 2015-11-14 18:17:20 +00:00
Kp cc80af87e8 Remove unnecessary save/restore of engine glow 2015-11-14 18:17:20 +00:00
Kp 7df905c1db Fix weapon selection after respawn
Commit 7da64d3 added the ability to select a weapon when firing stops.
However, it did not take into account that
select_primary_weapon/select_secondary_weapon do not check whether the
selected weapon is available.  The caller must perform that check.  The
draft version proposed by Mako88 in the original feature request mostly
avoided the problem by clearing the delayed auto-select when it was
first applied.  That version would only manifest the problem if the
player had a delayed auto-select and lost the weapon before resolving
it, whether due to death, a thief bot, or, in the case of mines,
direct-dropping the last mine by the "Drop Bomb" key.

The version that went in switched to using delayed==active to indicate
that no change was required.  Under that design, the incorrect
auto-select appears if the player loses the active weapon even if no
delayed selection was pending.

Add a check that the player has the weapon before switching to it and
reset delayed=current if the delayed weapon is not available.  This
fixes all known cases under which a spurious delayed selection could
activate a missing weapon and prevents repeated checks for weapon
availability.

Reported-by: Mako88 <https://github.com/dxx-rebirth/dxx-rebirth/issues/158>
Fixes: 7da64d3782 ("Add new autoselect-while-firing mode: "when firing stops"")
2015-11-12 02:57:45 +00:00
Kp 9a132977b9 Fix drop_player_eggs smart mine logic
The count of mines was not decremented, so a player who entered the loop
could continue to drop until (d_rand() < rthresh) became false.  Halving
rthresh on each pass guaranteed that it would stop, but with the right
string of random numbers, the player could drop more mines than he had.
Remove the ==1 qualifier, so that mines can spawn whenever one will be
lost to rounding.
2015-11-12 02:57:45 +00:00
Kp 93888b4e37 Move collide_two_objects swap back to top
Fixes: 1d7418497e ("Condense collision table")
2015-11-09 02:33:49 +00:00