Commit graph

2396 commits

Author SHA1 Message Date
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
Kp f5fc9cc324 Prevent selecting slider above maximum value 2015-11-08 18:55:51 +00:00
Kp 36716a9770 Add shift+page(up|down) to move autoselect entry to end 2015-11-08 18:55:51 +00:00
Kp 44c4eb9dc3 Combine exception paths 2015-11-08 18:55:51 +00:00
Kp 1d7418497e Condense collision table 2015-11-08 18:55:50 +00:00
Kp 1a2e4205f6 Combine related call_object_create_egg calls 2015-11-07 21:56:00 +00:00
Kp 9c5b5b3e36 Start ammunition-driven autoselect at 0 2015-11-07 21:56:00 +00:00
Kp 899c335158 Factor out cloak duration lookup for draw_cloaked_object 2015-11-07 21:56:00 +00:00
Kp 6b353cb9ac Move player powerup_flags to object.ctype.player_info 2015-11-07 21:55:59 +00:00
Kp 8a81e25ab0 Move player laser_level to object.ctype.player_info 2015-11-07 21:55:59 +00:00
Kp b788d0b563 Move player primary_weapon_flags to object.ctype.player_info 2015-11-07 21:55:59 +00:00
Kp 8d6949efa6 Move player killer_objnum to object.ctype.player_info 2015-11-07 21:55:59 +00:00
Kp 6037372cdf Move player vulcan_ammo to object.ctype.player_info 2015-11-07 21:55:59 +00:00
Kp e227ef1b32 Move player secondary_ammo to object.ctype.player_info 2015-11-07 21:55:58 +00:00
Kp 6fd6436f14 Move player energy to object.ctype.player_info 2015-11-07 21:55:58 +00:00
Kp 2e28a491f2 Move player shields to struct object 2015-11-07 21:55:58 +00:00
Kp 6eb1676ada Bulk clear secondary_ammo 2015-11-07 21:55:58 +00:00
Kp a0a5aaef8d Fix bogus "You have no" selecting missiles
Fixes: e130ea7b36 ("Remove unnecessary secondary_weapon_flags")
2015-11-06 03:51:10 +00:00
Kp 4d2673594e Fix placement of invulnerability timer 2015-11-06 03:51:10 +00:00
Kp c0ca1248fd Simplify hostage lost message 2015-11-06 03:51:10 +00:00
Kp ccee595321 Remove Interpolation_method from OGL build 2015-11-06 03:51:10 +00:00
Kp 19e0a3041c Fix -O0 build
Fixes: 9a6d027e63 ("Factor out weapon cycling")
2015-11-06 03:51:10 +00:00
Kp 7d6ba1bb27 Fix objects disappearing in demos
As usual, demos break the rules.  Redirect demo objects into a fixed
slot in the Objects array so that object linkage does not get trashed.
2015-11-03 03:08:11 +00:00
Kp 6111e5adbf Allow configuring max joysticks at build time 2015-11-01 21:15:40 +00:00
Kp add7a80bfc Fix binding mouse button to arm fusion/omega cannon
Commit 3adc5fe77a added the ability to
bind mouse buttons to change weapons, but a copying error bound the
fusion/omega entry to joystick instead of mouse.  Switch it to mouse as
clearly intended.

This fix is needed for any commit with the underlying feature, but only
applies cleanly to 0.58.1 after applying cleanup commits:

    00381b2652 ("Abstract out weapon names")
    d035fb258a ("Remove unused kc_item->id")
    fc1e00dae6 ("Pre-compute labelx+inputx")
    a4f3c93247 ("Separate mutable and const kconfig data")
    953a1888d7 ("Combine state pointer and count pointer")
    2bd302cddd ("Move Controls ubyte values into substructure")
    ff8db8d39e ("Reduce relocations for Controls members")
    593d0b25ff ("Remove duplicate kconfig labels")
    dc36ee3ab3 ("Store kconfig labels separately")

Fixes: 3adc5fe77a ("Saving  weapon keys in PLX like in D1X-Rebirth" ...)
2015-11-01 21:15:38 +00:00
Kp 3a4adbc917 Let kconfig skip zero-width kc_item cells 2015-11-01 21:15:38 +00:00
Kp 545b71c1cc Use enum class for kconfig subtype 2015-11-01 21:15:38 +00:00
Kp 47ebd05bc3 Use ?: for homing warning gauge 2015-10-30 02:52:57 +00:00
Kp df5e02aed0 Use macro get_local_player_invulnerable_time for player's invulnerable_time 2015-10-30 02:52:56 +00:00
Kp 0285efe49d Use macro get_local_player_cloak_time for player's cloak_time 2015-10-30 02:52:56 +00:00
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
zico dcd91636d8 Do not duplicate objects for latecoming players as they will get dups from the host 2015-09-01 19:00:33 +02:00
zico 1aeb8505ee Rearranged some calls of start_time() and stop_time() (+ limited usage to single functions) to make sure time_paused does not go out of balance 2015-08-30 14:04:59 +02:00
zico 818017398d Added a little failsafe to screenshot function to make sure the game will not cause an endless loop if savenum ever rolls over 2015-08-30 12:47:47 +02:00
zico b5ac86c4f0 Slightly modified keyboard pitch and heading sensitivity so highest setting matches the original game running at ~60 FPS 2015-08-29 15:46:03 +02:00
zico 15757d552f Added STATE_MATCEN_VERSION for reading/writing matcen_info in savestates (equal to GAME_VERSION) instead of using STATE_VERSION 2015-08-27 18:55:14 +02:00
Kp fd5d7b800d Move reactor gun loop into calc_controlcen_gun_point 2015-08-26 03:15:10 +00:00
Kp 4434559e8e Write old matcen_info to D1 savegames
Fixes: 92814475a9 ("Use array<> for RobotCenters")
2015-08-26 03:15:10 +00:00
Kp 9ed4754009 Remove typedef valptridx<T>::array_managed_type managed_type##_array_t 2015-08-22 20:43:04 +00:00
Kp cc0e29d7a2 Blank out non-robot AI on save 2015-08-22 20:43:04 +00:00
Kp 2155c417cb Move array_managed_type into valptridx<T> 2015-08-22 20:43:04 +00:00
Kp f8008ca34f Only define object_array_t::object_array_t if VALGRIND 2015-08-22 20:43:04 +00:00
Kp e976a823df Shorten paging_touch_robot_maker 2015-08-22 20:43:03 +00:00
Kp 0f4d38ea6d Shorten paging_touch_robot 2015-08-22 20:43:03 +00:00
Kp 6a50a904a3 Shorten paging_touch_weapon 2015-08-22 20:43:03 +00:00
Kp 9bf8b8212d Shorten paging_touch_model 2015-08-22 20:43:03 +00:00
Kp 6265431fd9 Pass & to paging_touch_vclip 2015-08-22 20:43:03 +00:00
Kp 423c1c3f10 Use range_for for fuelcen.cpp 2015-08-22 20:43:03 +00:00
Kp 64ff1cda89 Only restore non-alpha when alpha was used 2015-08-21 03:12:35 +00:00
zico 30e909226f Fixed Primary weapon info position in HiRes cockpit mode; Removed redundant vulcan ammo display in Fullscreen Alt HUD #1 2015-08-18 19:17:24 +02:00
Kp 66da9c136e Cache do_explosion_sequence Robot_info lookups 2015-08-17 02:44:56 +00:00
Kp 080e052d65 Reorder fvi_sub object tests
Change to individual continue statements to reduce number of negations.
2015-08-17 02:44:56 +00:00
Kp 2eeca09ae1 Improve create_smart_children
Use accurate squared distance instead of quick non-squared distance.
Simplify target choice loop.
2015-08-17 02:44:56 +00:00
Kp 947145a194 Simplify player-got-hit sound check 2015-08-17 02:44:56 +00:00
zico fb6ea072e4 Repositioned (non Release) HUD level time output and FPS counter to fixed positions across all cockpit modes; Slight reformat for FPS counter and added FrameTime display (in ms) if -verbose is given 2015-08-16 15:37:30 +02:00
zico 57b4bd0281 Community wish: If friendly fire is disabled, also protect players from explosion damage caused by friendly players. This also protects against splash damage caused by oneself. 2015-08-16 13:25:07 +02:00
Kp 655e7b6f72 Optimize clearing ConsoleObject anim_angles 2015-08-14 03:02:04 +00:00
Kp e5683593ef Expand ZERO_VECTOR inline 2015-08-13 03:15:53 +00:00
Kp 5922d3cf9e Update endlevel !SHORT_SEQUENCE code
This rotted long ago, but the fixes are easy.  Clean it up in case
someone wants to activate it.
2015-08-13 03:15:52 +00:00
Kp c4118ee014 Improve caching when duplicating items 2015-08-13 03:15:52 +00:00
Kp 17b1943c5e Mark various per-file structures as static 2015-08-12 03:11:46 +00:00
Kp bc7c469ab2 Use array<> for more globals 2015-08-12 03:11:46 +00:00
Kp f15116f2cb Simplify multiplayer sound handling 2015-08-05 02:59:02 +00:00
Kp 6870b48710 Remove unused return value of digi_link_sound_to_object* 2015-08-05 02:59:02 +00:00
Kp 9fb9aef509 Remove unused return value of digi_link_sound_to_pos 2015-08-05 02:59:02 +00:00
Kp c80d12319a Use unqualified begin/end
Most call sites use unqualified begin/end and rely on using declarations
to pick an appropriate implementation.  Fix the sites that explicitly
requested std::begin/std::end.
2015-08-03 03:11:25 +00:00
Kp 49b0868230 Fix ambiguous return when constructor inheritance is missing
gcc-4.7 (and, if constructor inheritance is suppressed, later versions)
reject

	return objnum == object_none ? vcobjptr(static_cast<objnum_t>(object_first)) : objnum;

where objnum is a cobjptridx:

similar/main/digiobj.cpp: In lambda function:
similar/main/digiobj.cpp:564:85: error: operands to ?: have different types 'valptridx<object>::vcptr' and 'valptridx<object>::cptridx'
similar/main/digiobj.cpp:564:85: error: inconsistent types '<type error>' and 'valptridx<object>::vcptr' deduced for lambda return type

Fix it by removing the ternary operator and adding an appropriate
conversion cast.
2015-08-03 03:11:25 +00:00
Kp 555ff20ae9 Move render_state.h up for gcc-4.7 static_assert
In gcc-4.7, <bits/hashtable.h> uses static_assert in a way that the
preprocessor considers to have 3 arguments.  Move render_state.h up to
ensure that <bits/hashtable.h> is included before
"compiler-static_assert.h" converts static_assert into a 2 argument
macro.
2015-08-03 03:11:25 +00:00
Kp 2fb03da475 Inline multi_send_endlevel_start secret for D2 2015-08-03 03:11:25 +00:00
Kp 84bd64a14c Remove default argument for basic_ptridx(magic,array) 2015-07-29 03:05:28 +00:00
Kp 4d8ae44794 Add helper macro DXX_CONSTANT_TRUE 2015-07-29 03:05:28 +00:00
Kp a2816617fe Pass reactor& to read_model_guns 2015-07-25 23:10:48 +00:00
Kp c9dff229f1 Remove dead AI fire leading code 2015-07-25 23:10:47 +00:00
Kp c942d28197 Use accessor for grs_bitmap::bm_type 2015-07-25 23:10:47 +00:00
Kp 37a830f400 Switch AI key lookup 2015-07-25 23:10:46 +00:00
Kp b8cc2f4172 Inline multi_i_am_master 2015-07-25 23:10:46 +00:00
Kp 81abf3666b Reorder hoard kill tests 2015-07-25 23:10:46 +00:00
Kp bda7fef3a0 Use get_local_player to compute reference to local player 2015-07-25 23:10:46 +00:00
Kp f38e80c053 Use get_local_plrobj to compute reference to object of local player 2015-07-25 23:10:45 +00:00
Kp f00725f740 Use forward-declaration header for player.h 2015-07-25 23:10:45 +00:00