Commit graph

2245 commits

Author SHA1 Message Date
Kp 17b8b64980 Use macro get_local_player_flags for player's flags 2015-10-30 02:52:56 +00:00
Kp 92f78caf22 Use macro get_local_player_vulcan_ammo for player's vulcan_ammo 2015-10-30 02:52:56 +00:00
Kp dc5dfb80e8 Use macro get_local_player_secondary_ammo for player's secondary_ammo 2015-10-30 02:52:56 +00:00
Kp ea5b7a08c1 Use macro get_local_player_energy for local player's energy 2015-10-30 02:52:55 +00:00
Kp 3ffd207e44 Use macro get_local_player_shields for local player's shields 2015-10-30 02:52:55 +00:00
Kp 85ed489642 Use ?: for multi sounds 2015-10-30 02:52:55 +00:00
Kp 731e287329 Clean up trailing whitespace on rank strings 2015-10-30 02:52:55 +00:00
Kp 1af81af4ec Reorder show_HUD_names bool tests
This improves the generated code by ~60 instructions.
2015-10-30 02:52:55 +00:00
Kp f50189dc23 Factor out gauge box color computation 2015-10-30 02:52:55 +00:00
Kp 070444157e Use type safe player flags 2015-10-30 02:52:55 +00:00
Kp 7ac2840bfe Rename Netgame.player_flags to .net_player_flags
The simple name conflicts with an upcoming change.
2015-10-30 02:52:54 +00:00
Kp cc345aa83d Simplify demo cloak/invul processing 2015-10-30 02:52:54 +00:00
Kp 6b831b08ec Update demo caching variables sooner 2015-10-30 02:52:54 +00:00
Kp 9a6d027e63 Factor out weapon cycling 2015-10-30 02:52:54 +00:00
Kp ff2c88c498 Factor out cockpit/statusbar key gauges 2015-10-30 02:52:54 +00:00
Kp 64c161c4b2 Remove unnecessary zero of .invulnerable_time 2015-10-30 02:52:54 +00:00
Kp 4882558d6e Remove unnecessary zero of .cloak_time 2015-10-30 02:52:54 +00:00
Kp e130ea7b36 Remove unnecessary secondary_weapon_flags 2015-10-30 02:52:53 +00:00
Kp ea3c4a8986 Switch const multi text to array<> 2015-10-29 03:01:43 +00:00
zico bd391e2363 Reduced the level rendering from 3 passes to 2 while maintinaing the original function (may need optimization, tho); Rendering level parts with transparency effects (force fields, energy center sparks) in same pass as objects to prevent them from making objects invisible behind them; Changed object sorting to they render back to front to prevent rendering issues (robots disappearing behind explosions, further away powerup rendered over a closer one, etc) 2015-10-25 18:16:34 +01:00
Kp 2ac6c0e72b Factor out red/gold/blue key messages 2015-10-24 03:13:11 +00:00
Kp 1c84b7ab9c Use enum class for wall_hit_process_t 2015-10-24 03:13:11 +00:00
Kp 0c303bc539 Use ?: for drop_player_eggs flag 2015-10-24 03:13:11 +00:00
Kp 8b61b9f0db Remove unused symbols 2015-10-24 03:13:11 +00:00
Kp cf9f777187 Simplify select_tmap
Remove unreachable nullptr case.  Use case-sensitive comparison.  Remove
unsupported entry i386 from documentation.
2015-10-21 02:45:44 +00:00
Kp 48af374924 Reduce direct use of Segments[] 2015-10-21 02:45:43 +00:00
Kp 21057db809 Move DbgSafelog, DbgVerbose to CArg 2015-10-18 21:01:21 +00:00
Kp b0541daf19 Remove dead code in D1 demo fixup 2015-10-18 21:01:21 +00:00
Kp 682b845b9d Reorder gameseg distance tests 2015-10-18 21:01:20 +00:00
Kp 54e12654bb Factor out side_pokes_out 2015-10-18 21:01:20 +00:00
Kp f5abe5bc5e Combine gameseg vm_dist_to_plane calls 2015-10-18 21:01:20 +00:00
Kp 6f94cc933c Fold create_abs_vertex_lists into create_all_vertnum_lists 2015-10-18 21:01:20 +00:00
Kp af2d8f7deb Factor out create_vert*_lists switch 2015-10-18 21:01:20 +00:00
Kp 228dd75260 Switch Side_to_verts to unsigned 2015-10-18 21:01:20 +00:00
Kp ed668b611f Record start time in demo 2015-10-18 21:01:20 +00:00
Kp 1f63bfeee5 Reduce lifetime of returned get_seg_masks result 2015-10-18 21:01:19 +00:00
Kp 4163510b09 Move compare_func into render_compare_context_t 2015-10-18 21:01:19 +00:00
Kp c172d2c4c4 Omit OBJ_PLAYER from window.rendered_robots
The only user of rendered_robots filters for type OBJ_ROBOT.
2015-10-18 21:01:19 +00:00
Kp 6d714520ee Skip rendering Viewer sooner
Move the skip-Viewer check from render_object up to build_object_lists
so that, instead of skipping the viewer, the viewer is not scheduled
to be rendered.
2015-10-18 21:01:19 +00:00
Kp f4f451606b Pass vobjptridx_t to compute_light_emission 2015-10-18 21:01:19 +00:00
Kp ae338abdc7 Make compute_seg_dynamic_light static 2015-10-18 21:01:19 +00:00
Kp c5f6878f72 Use bitset for set_dynamic_light vertex visit tracking 2015-10-18 21:01:19 +00:00
Kp 6259e80206 Remove useless Omega blob light hack
The code immediately overwrites the computed value with a standard
value.  Optimizing compilers deleted the `light_intensity=0` store as
dead.  Delete the entire block to save a d_rand call.
2015-10-18 21:01:19 +00:00
Kp c0d45ab0d4 Compact compute_light_emission OBJ_FIREBALL path 2015-10-18 21:01:19 +00:00
Kp 5d79694584 Cache rotate_list global references 2015-10-18 21:01:18 +00:00
Kp faf698703e Make rotate_list result anonymous 2015-10-18 21:01:18 +00:00
Kp d767f7cd5e Pass vcsegptridx to render_face 2015-10-18 21:01:18 +00:00
Kp 309426e024 Use enum class for descent_version 2015-10-18 21:01:18 +00:00
Kp f46a2802aa Simplify object_nearby_aux return 2015-10-18 21:01:18 +00:00
Kp 533f1cb3bb Qualify references to primary weapons 2015-10-18 21:01:18 +00:00
Kp 7da64d3782 Add new autoselect-while-firing mode: "when firing stops"
Mako88 reports that some users want not to autoselect while firing, but
do not notice when a new weapon is added to the HUD, and end up never
activating a preferred weapon.  Add a new autoselect mode that remembers
what would be selected and switches to it once the player ceases firing.

Changes since Mako88's proposed version:
- Use `enum class` for autoselection mode and a radio button to
  represent the decision of Immediate/Never/Delayed.
- Handle delayed autoselect for vulcan ammo.
- Set Delayed_primary == Primary_weapon to indicate no change is needed,
  rather than Delayed_primary==-1.  This lets some paths use
  Delayed_primary without checking for a magic value.
- Likewise Delayed_secondary / Secondary_weapon.
- Update Delayed_primary/Delayed_secondary when changing active
  primary/secondary weapon, so that a player who changes weapons while
  firing will automatically clear any deferred change.

Requested-by: Mako88 <https://github.com/dxx-rebirth/dxx-rebirth/issues/97>
Based-on-patch-by: Mako88 <https://github.com/dxx-rebirth/dxx-rebirth/pull/147>
2015-10-18 18:11:57 +00:00
Kp 5f29170702 Move valptridx error reporting out of main header 2015-10-13 02:43:25 +00:00
Kp 8f656c40db Use range_for for validate_path 2015-10-13 02:43:24 +00:00
John Ackerman a606caa2b4 Improve .ini files and help message output 2015-10-11 22:21:00 +00:00
Kp a37bae4b4f Track output size for PHYSFSX_getRealPath 2015-10-11 22:21:00 +00:00
Kp ddf1ded74c Simplify add_missions_to_list 2015-10-11 22:21:00 +00:00
Kp ad8c64d7ff Remove unnecessary extension strip in promote 2015-10-11 22:21:00 +00:00
Kp 61f6c81f74 Use std::replace for rewriting count to wide 1s 2015-10-10 03:44:14 +00:00
Kp 4585faa461 Cache reference to secondary_ammo 2015-10-10 03:44:14 +00:00
Kp 36c52f7437 Reduce pointer->int->pointer conversions for thief 2015-10-10 03:44:14 +00:00
Kp 48b7416433 Factor out gauge width string 2015-10-09 02:46:11 +00:00
Kp a47c6e599d Shrink menu_bit_wrapper_t when B is empty 2015-10-09 02:46:11 +00:00
Kp 927618e650 Remove useless PHYSFS_eof tests
Each test triggers a system seek call.  EOF will be signalled by
PHYSFSX_fgets returning nullptr.
2015-10-09 02:46:11 +00:00
Kp 1ecbeb6bf9 Remove redundant use of PHYSFSX_exists 2015-10-09 02:46:11 +00:00
Kp 61fe046ba2 Reuse show_first_found_title_screen for Descent 1
This avoids an Error call if none of the titles are available.
2015-10-09 02:46:11 +00:00
Kp 1d99084026 Use UserError when main hog is missing
Error traps to the debugger and then aborts, which is not appropriate
for a user setup error.
2015-10-09 02:46:11 +00:00
Kp 5fc3e44bee Simplify setup of linked ham 2015-10-09 02:46:11 +00:00
Kp ffd6c113ae Move fwdwall.h -> fwd-wall.h for consistency 2015-10-09 02:46:10 +00:00
Kp 78de0ac119 Add fwd-event.h with forward declarations of event.h 2015-10-09 02:46:10 +00:00
Kp 72400b1a4c Remove unused read_player_dxx return value 2015-10-09 02:46:10 +00:00
Kp 8032aee461 Enable ammo-based auto-select for Gauss
Autoselect from pick_up_vulcan_ammo only ever armed the Vulcan cannon,
even if the user has and prefers a Gauss cannon.  This is probably an
oversight from when D2 weapons were added.  Rework the pickup logic in
D2 so that the more desirable of Vulcan or Gauss is picked.
2015-10-09 02:46:10 +00:00
Kp 29f79f0a6b Enable -notitles for Descent 2 2015-10-09 02:46:09 +00:00
Kp 71bde6f35f Use range_for for properties_read_cmp 2015-10-09 02:46:09 +00:00
Kp 8d2d69d663 Always run mini-autoselect for bombs
Autoselect events are gated on the player having none of the item prior
to this pickup, so making the mini-autoselect more aggressive should not
cause unwanted switches.

Since the main autoselect is complicated, requiring the mini-autoselect
to happen only when the main autoselect is skipped makes it complicated
for players to reason about whether the mini-autoselect will happen.
2015-10-09 02:46:09 +00:00
Kp 7034b68357 Manage world time automatically where possible
For all cases where world time nests, use automatic management.  Some
sites disable time in one function and enable it elsewhere.  These are
untouched.
2015-10-09 02:46:09 +00:00
Kp 8dd1f7c2cf Move texture_list_index into local scope 2015-10-09 02:46:09 +00:00
Kp 745161a2d1 Tighten alt_textures test 2015-10-09 02:46:09 +00:00
Kp 75104b80f0 Fix operand ordering for team kills
Fixes: 4a0a2b7da5 ("Use team_kills in team games")
2015-10-04 22:30:02 +00:00
Kp 9da2a938d8 Make team_kills signed
Suicides can make kill counts negative.
2015-10-03 22:15:17 +00:00
Kp 4a0a2b7da5 Use team_kills in team games 2015-10-03 22:15:17 +00:00
Kp b447adcce1 Initialize all vertices in create_abs_vertex_lists
Some compiler configurations warn that vertices[4] and vertices[5] may
be used uninitialized.  Initialize them to a bogus value so that any
actual use will trap, but the comparisons will be well defined.
2015-10-03 17:17:50 +00:00
Kp 111fc56b00 Return objptridx from maybe_drop_primary_weapon_egg 2015-10-03 17:17:50 +00:00
Kp 3d2591f1ad Remove unnecessary scores_rprintf macro 2015-10-03 17:17:50 +00:00
Kp 9df40a86cb Use uint8 for secondary ammo counts
Maximum non-cheating is 40 missiles, which fits in a signed 8 bit value.
Maximum cheating is 200 missiles, which fits in an unsigned 8 bit value.
2015-10-03 17:17:49 +00:00
Kp 9ba1369d58 Remove useless do_powerup test
Remote player shields are not tracked.  Remove the test on their value.
2015-10-03 17:17:49 +00:00
Kp 9d4a55ae47 Move fvi globals into anonymous namespace 2015-10-03 17:17:49 +00:00
Kp e2c6e8449f Factor out cloak/invul timer display 2015-10-03 17:17:49 +00:00
Kp 85d9f1f3b0 Fix various issues from splitting sensitivity
Remove redundant undefine/redefine of helper macros.
Clean up loop conditional.
2015-10-03 17:17:49 +00:00
Kp aa1a1c5a6a Fix regressions from changes to advanced host menu
Non-static globals were initialized at wrong scope, leading to netgame
duplicate options being forgotten across program restart.
Netgame.DuplicatePowerups is not initialized until well after global
initialization runs.

Literal strings were copied into a local buffer.  Replace with a pointer
to the appropriate literal string.

Fixes: aa9a5df0d4 ("Rearrange Advanced Hosting Menu")
2015-10-03 17:17:49 +00:00
Kp 271c465a7c Use <algorithm> for adjust_segment_limit 2015-10-03 17:17:49 +00:00
Kp d4df692d30 Use range_for in draw_all_edges 2015-10-03 17:17:49 +00:00
Kp a6d6eceea3 Reduce indirection in automap drawingListBright 2015-10-03 17:17:48 +00:00
Kp bf52ebf4cd Skip do_weapon_n_item_stuff if Player_is_dead
Fixes: 29aa820dc0 ("Only respawn when the player presses fire")
2015-09-30 02:41:55 +00:00
Christian ab85c6f0e9 Merge pull request #144 from Mako88/new-menu
Rearrange Advanced Hosting Menu (by Mako88/A Future Pilot)
2015-09-29 13:41:12 +02:00
Christian b09cb8f738 Merge pull request #145 from Mako88/calibration-menu
Split Sensitivity into Separate Menus (by Mako88/A Future Pilot)
2015-09-29 13:36:58 +02:00
zico a96ceb2a46 Enabled multi_do_ranking() for D1X 2015-09-29 11:58:42 +02:00
Kp edccaa91f6 Check return of pick_connected_segment before use 2015-09-29 02:41:22 +00:00
Kp 6224b53581 Use operator?: for flash_cursor gr_set_fontcolor 2015-09-29 02:41:22 +00:00
Kp 43d634a4aa Use operator?: for newmenu_draw gr_string strings 2015-09-29 02:41:22 +00:00
Kp 50f672ba34 Reuse computed string length 2015-09-29 02:41:22 +00:00
Kp 3d37b01177 Refactor draw_numerical_display 2015-09-29 02:41:22 +00:00
Kp af949820b6 Use ?: for show_bomb_count gr_set_fontcolor 2015-09-29 02:41:22 +00:00
Kp 574555029f Simplify sb_show_score sprintf 2015-09-29 02:41:22 +00:00
Kp 78926b0aa8 Simplify con_draw while loop condition 2015-09-29 02:41:22 +00:00
Kp d9cef82f81 Allow nullptr for gr_get_string_size 2015-09-29 02:41:22 +00:00
Kp 71ffbdf719 Replace fill(0) with ={} 2015-09-29 02:41:22 +00:00
Kp c45a8a8427 Override PRIi64 on Win32 also
Some outdated mingw32 headers also set the POSIX value when used on
Windows.  Expand the override to force the non-standard Microsoft format
for all Windows platforms.
2015-09-29 02:41:22 +00:00
John Ackerman 0e73b2a209 Revert "Change friendly fire wording"
This reverts commit 8128d68e3d.
2015-09-27 12:40:14 -05:00
zico 9292431396 Merge branch 'unification/master' of github.com:dxx-rebirth/dxx-rebirth into unification/master 2015-09-27 10:52:04 +02:00
zico cbe0b4ec69 Added Cloak and Invulnerability Timers to Cockpit and Statusbar and made this feature optional (defaults to off) 2015-09-27 10:51:37 +02:00
Kp 35cd1261df Respect autoselect order for granted items
Additionally, improve handling of Primary_last_was_super.  Previously,
it was cleared to 0, which made sense if the ship starts with only
lasers.  Now that the ship can start with other weapons, clearing
Primary_last_was_super to 0 may override a player's choice.  Preserve
player's last-was-super choice when the grant gives both the base and
super forms of a weapon.

Requested-by: Mako88 <https://github.com/dxx-rebirth/dxx-rebirth/issues/140> [for the Primary_weapon part]
2015-09-26 21:17:14 +00:00
Kp 230bc630ed Store FriendMissileView inside MissileViewEnabled
This allows it to persist silently when configuration files are read and
rewritten by versions of Rebirth which do not understand
FriendMissileView.
2015-09-26 21:17:14 +00:00
Kp 80e98ce2d3 Fix invalid access reading demos 2015-09-26 21:17:14 +00:00
Kp ad14362db0 Simplify do_invulnerable_stuff 2015-09-26 21:17:13 +00:00
Kp de3575a647 Shorten fuelcen_check_for_goal 2015-09-26 21:17:13 +00:00
Kp 39bf7c2206 Simplify apply_damage_to_controlcen time calculation 2015-09-26 21:17:13 +00:00
Kp 467c82ec31 Cache get_local_player in ai.cpp 2015-09-26 21:17:13 +00:00
Kp d6059a3abf Rework pickup of weapon powerups 2015-09-26 21:17:12 +00:00
zico a175812000 Reworded text for Descent 1 bomb counter 2015-09-26 20:45:59 +02:00
zico 69353631f0 Made missile views from friendly players optional (off by default) 2015-09-26 20:28:49 +02:00
zico db2ed6d766 Cleaned up options menu with clearer structure, added hud options under graphics menu and sorted existing items 2015-09-26 19:48:57 +02:00
John Ackerman d5c580845e Split Sensitivity into separate menus 2015-09-25 16:59:20 -05:00
John Ackerman 8128d68e3d Change friendly fire wording 2015-09-25 16:52:41 -05:00
John Ackerman aa9a5df0d4 Rearrange Advanced Hosting Menu 2015-09-25 15:31:42 -05:00
zico f8f9843f35 Mouse overrun improvements: Reduced the range of Overrun (from 32 to 16) based on feedbach and restored original mouse base divisor for mouse X/Y axes (changed in 5a36ffdb17) 2015-09-25 12:07:30 +02:00
zico d3660207d2 Added Mouse Overrun Buffer option as proposed by kp 2015-09-24 16:31:10 +02:00
Kp da4d1e0670 Remove bool SysNoHogDir on non-unix 2015-09-22 02:28:38 +00:00
Kp f9469ffe18 Fix clang warning for powerup caps 2015-09-22 02:28:38 +00:00
Kp c0e7f70638 Update reactor life text as slider moves
Reported-by: Mako88 <https://github.com/dxx-rebirth/dxx-rebirth/issues/125>
2015-09-22 02:28:38 +00:00
zico b984243d8e Fixed a bunch of uninitialized object variables Valgrind complained about 2015-09-20 19:24:25 +02:00
Kp 7673bba50d Factor out special handling of super laser 2015-09-19 23:04:36 +00:00
Kp 155cd3c928 Remove literal snprintf 2015-09-19 23:04:35 +00:00
Kp 69e3762933 Return joystick axis values by reference 2015-09-19 23:04:34 +00:00
zico 41983dc051 Reworked Advanced Netgame Menu to fit on all possible resolutions and added tracker address to seperate line as newmenu does not really like \n (yet) 2015-09-17 13:55:19 +02:00
Kp 2f927c68f9 Improve support for using exact_type with valptridx 2015-09-15 02:48:04 +00:00
Kp 1cdd4ac2ce Pass object & to [gs]et_*_id 2015-09-15 02:48:04 +00:00
Kp be62f446f1 Use range_for for clear_stuck_objects 2015-09-15 02:48:03 +00:00
Kp ff8aab4694 Move guided missile logic to helper function
Fix original bug that tested wrong field for guided missile signature
check.
2015-09-15 02:48:03 +00:00
Kp 3823f0f414 Fix spelling errors in help text
keymoard -> keyboard
immedaitely -> immediately
2015-09-13 21:02:19 +00:00
Kp cd0b3965a4 Use little endian for control center triggers 2015-09-13 21:02:19 +00:00
Kp 888cfddabd Combine gauges left/right window boxes 2015-09-13 21:02:19 +00:00
Kp 83f77fbc48 Use fill_n to store runs of cockpitbuf TRANSPARENCY_COLOR 2015-09-13 21:02:19 +00:00
Kp c4a8432081 Remove WORDS_NEED_ALIGNMENT memcpy src cast to const uint8_t*
The cast provokes a warning on systems that require alignment, so remove
it.  memcpy takes const void* input, so the cast is unnecessary.

Reported-by: MattWatt <https://github.com/dxx-rebirth/dxx-rebirth/issues/119>
2015-09-13 21:02:19 +00:00
Kp 204b608fa6 Normalize MACH&&APPLE vs APPLE&&MACH 2015-09-13 20:23:05 +00:00
zico e0785251c4 Reset homing_object_dist along with d_homer_tick_step instead of every frame to make sure lock indicator is visible in frames where homers wait for a new chance to turn; Also moved call of calc_d_tick() to calc_frame_time() - shouldn't be nested in calc_d_homer_tick() 2015-09-10 14:11:30 +02:00
zico cbaac96324 Fixed (hacked) homing missiles fired by bots that would not track players if player with lowest objnum is dead 2015-09-10 13:19:34 +02:00
zico 6ba89b5abd If sending robot fire of a non-controlled robot, send fire packet immediately (as the comment suggests); also reformatted robot fire send/do functions to improve readability a bit 2015-09-10 13:05:10 +02:00
Kp bdbd56c024 Use C++ <cinclude> style 2015-09-09 03:27:52 +00:00
zico 4a562bf098 Added multi_send_theif_frame() function to update thief bot more frequently (by PPS) and even if it is not controlled by a player to counter discrepancies caused by client side AI movement of the bot 2015-09-03 15:13:56 +02:00
zico 51049794ce Break screenshot numbering on 9999 instead of 99999 due to formatting of the string (it's still enough) 2015-09-01 19:06:14 +02:00