Commit graph

1845 commits

Author SHA1 Message Date
Kp bca8889695 Simplify Primary_ammo_max 2015-01-17 18:31:42 +00:00
Kp b3050a8aa1 Fix adding string to empty string_array_t 2015-01-17 18:31:42 +00:00
Kp 63353ae4ad Factor out net_udp_create_monitor_vector bitmap array 2015-01-17 18:31:42 +00:00
Kp 5eb0c0cdf9 Record state_callback choice directly 2015-01-17 18:31:42 +00:00
Kp f7815810e8 Use RAIIPHYSFS_File to manage PHYSFS_File
Fixes a few leaks on error paths.
2015-01-17 18:31:42 +00:00
Kp 68d705a85a Use bool conversion to test PHYSFS_File pointer 2015-01-17 18:31:42 +00:00
Kp 5b48c184af Swap order of Mac sound tests
Simplify the code by removing a now-redundant array test.
2015-01-17 18:31:41 +00:00
Kp eb09eb4396 Refactor newmenu reordering 2015-01-17 18:31:41 +00:00
Kp 28a31a223f Centralize window_close calls 2015-01-17 18:31:41 +00:00
Kp 9a3796d9d1 Pass window_get_next arg by & 2015-01-17 18:31:41 +00:00
Kp 4984f46ef4 Pass window_set_visible arg by & 2015-01-17 18:31:41 +00:00
Kp e7c632b741 Pass window_is_modal arg by & 2015-01-17 18:31:40 +00:00
Kp ee50d45e72 Pass window_send_event arg by & 2015-01-17 18:31:40 +00:00
Kp f2797ddf1e Pass gr_init_canvas arg by & 2015-01-17 18:31:40 +00:00
Kp fccb6814f8 Pass gr_create_sub_canvas arg by & 2015-01-17 18:31:40 +00:00
Kp c731558a94 Pass gr_init_sub_canvas arg by & 2015-01-17 18:31:40 +00:00
Kp c2b7990550 Pass window_get_canvas arg by & 2015-01-17 18:31:40 +00:00
Kp fcc4f7dba5 Use unique_ptr for briefing_screen
Add workaround for briefing use of global Briefing_screens.
2015-01-17 18:31:40 +00:00
Kp a961b2c534 Reorder compare_children operations
Fold find_joining_side_norms into compare_children, then reorder to
defer unnecessary work.
2015-01-17 18:31:39 +00:00
Kp 80eda337cd Continue out of dead render segments sooner 2015-01-17 04:31:17 +00:00
Kp 229603b184 Rotate segment vertices once, not per side 2015-01-17 04:31:17 +00:00
Kp 2d0e8259ef Remove unnecessary multi-pass child sort 2015-01-17 04:31:17 +00:00
Kp c993c5d039 Fix truncation of D1 level names 2015-01-15 04:30:04 +00:00
Kp 8b48f5900c Centralize buddy search 2015-01-15 04:30:03 +00:00
Kp ab326e9c8b Reduce writes trimming endlevel input 2015-01-15 04:30:03 +00:00
Kp d443e28147 Reuse mle_path as Mission_path 2015-01-15 04:30:03 +00:00
Kp b175c944ef Simplify mle_path 2015-01-14 02:26:20 +00:00
Kp ea3c789f64 Fix Windows build break due to strchr losing const
Mingw32 headers and Apple libc++ both strip const from strchr.  Store
the result into a const char* to restore const to the pointer.
2015-01-14 02:26:20 +00:00
Kp 24bdbfb933 Move mle path carefully 2015-01-13 04:19:42 +00:00
Kp fd01d4c673 Reorder wall_is_doorway to favor likely results 2015-01-12 00:26:03 +00:00
Kp 1c4c33513b Copy secret level name without modification 2015-01-12 00:26:03 +00:00
Kp ddc40a6634 Copy level name without modification 2015-01-12 00:26:03 +00:00
Kp 8c27a7d68e Require known size for PHYSFSX_fgets 2015-01-12 00:26:03 +00:00
Kp b6a3735f53 Add convenience d_strnicmp for literal right side 2015-01-12 00:26:03 +00:00
Kp fc30cdcc9b Use ntstring for NetworkMessageMacro name 2015-01-12 00:26:02 +00:00
Kp 12770802ab Use ntstring for guidebot name 2015-01-12 00:26:02 +00:00
Kp 44d5ae69c6 Pack wall 2015-01-12 00:26:02 +00:00
Kp 98acd3e261 Poison PHYSFSX_fgets buffer on read failure 2015-01-12 00:26:02 +00:00
Kp 6ccf6ae96b Use range_for in segment.cpp 2015-01-12 00:26:02 +00:00
Kp ff493fcfce Inline vm_vec_make 2015-01-12 00:26:02 +00:00
Kp 5402e8c546 Add unchecked_partial_range for ranges without end 2015-01-11 05:08:30 +00:00
Kp fc9218d7ab Replace Int3 with message for out-of-range object 2015-01-11 05:08:30 +00:00
Kp 6a872da54a Pass UDP socket by & 2015-01-03 23:44:32 +00:00
Kp d5d416c62c Use ntstring for Netgame.mission_name 2015-01-03 23:44:32 +00:00
Kp 4be02cd9c5 Add support for poison=overwrite 2015-01-03 23:44:32 +00:00
Kp 0dd3f1bdfc Fix !SDLMIXER build 2015-01-03 23:44:32 +00:00
Kp 76bec9f31f Fix spelling of "available" in help text 2015-01-03 23:44:31 +00:00
Kp 030a811661 Pass nullptr for Descent 1 state_save_all filename_override 2014-12-30 02:09:23 +00:00
Kp bd9513b080 Fix sending uninitialized bytes in light request 2014-12-30 02:09:21 +00:00
Kp fbac119095 Propagate use of objptridx_t 2014-12-23 04:20:27 +00:00
Kp 499b1d3b66 Use range_for for NumNetPlayerPositions 2014-12-23 04:20:27 +00:00
Kp b96b6eb4cb Make do_ai_robot_hit_attack player vobjptridx_t 2014-12-23 04:20:27 +00:00
Kp 8b2c0235c6 Fix polyobj for WORDS_NEED_ALIGNMENT 2014-12-22 04:35:49 +00:00
Kp 102c3c057f Pass physics_set_rotvel_and_saturate arg by & 2014-12-22 04:35:49 +00:00
Kp 702ea40ade Move segment declarations to fwdsegment.h 2014-12-22 04:35:49 +00:00
Kp 2d8f8b5d4a Reduce inclusion of wall.h 2014-12-22 04:35:49 +00:00
Kp 754c5342f9 Move wall declarations to fwdwall.h 2014-12-22 04:35:48 +00:00
Kp ac1340e3c9 Use ntstring for mission_name 2014-12-22 04:35:48 +00:00
Kp 03370ed3e5 Use ntstring for Netgame.mission_name 2014-12-22 04:35:48 +00:00
Kp e166846dd1 Use ntstring for Netgame.game_name 2014-12-22 04:35:48 +00:00
Kp bf97634b27 Hide marker _ when buffer full 2014-12-22 04:35:48 +00:00
Kp 180999eed1 Fix crash loading player.ngp with bare equal 2014-12-22 04:35:48 +00:00
Kp 628156dbf7 Use array<ntstring> for CMMiscMusic 2014-12-22 04:35:48 +00:00
Kp c7ae54c62a Use ntstring for CMLevelMusicPath 2014-12-22 04:35:47 +00:00
Kp 1344fb2779 Fix crash choosing jukebox directory
newmenu_listbox1 returns immediately
2014-12-22 04:35:47 +00:00
Kp 626f2a6dbc Reset Current_level_name where needed 2014-12-22 04:35:47 +00:00
Kp 681a6b3a9d Fix crash loading descent.cfg with bare equal
Remove obsolete check for trailing newlines in strings.  Fix failure to
null terminate strings.  Refuse overlong strings.  Refuse integers with
trailing garbage.  Refuse integers out of range.
2014-12-22 04:35:47 +00:00
Kp 35bcb3c404 Centralize NGP strings 2014-12-20 04:36:11 +00:00
Kp 3864bff448 Write current_tmap_list carefully 2014-12-20 04:36:11 +00:00
Kp b68a403e41 Use partial_range to load textures 2014-12-20 04:36:11 +00:00
Kp 2b1ac84613 Remove unnecessary Auto_file 2014-12-20 04:36:11 +00:00
Kp 2b2da39d84 Fix unique invocation in string_array_t tidy 2014-12-20 04:36:11 +00:00
Kp 5aed22bfce Centralize Windows drive change text 2014-12-20 04:36:11 +00:00
Kp aef7dbad33 Move config.cpp strings to preprocessor constants
Some compilers only use string pooling for anonymous constants.  Make
these anonymous.
2014-12-20 04:36:11 +00:00
Kp 2766114959 Make PHYSFSX_gets_line_t::line_t be array<> 2014-12-20 04:36:10 +00:00
Kp 7c8c55b80c Clean PHYSFSX_fgets buffer uniformly 2014-12-20 04:36:10 +00:00
Kp 0bf2a6eb80 Return unique_ptr from ui_add_gadget_button 2014-12-20 04:36:10 +00:00
Kp 3b4fbd0bd5 Return unique_ptr from ui_add_gadget_radio 2014-12-20 04:36:10 +00:00
Kp b16e8ecbec Return unique_ptr from ui_add_gadget_checkbox 2014-12-20 04:36:09 +00:00
Kp 413a316154 Return unique_ptr from ui_add_gadget_inputbox 2014-12-20 04:36:09 +00:00
Kp 89b1ff8795 Return unique_ptr from ui_add_gadget_userbox 2014-12-20 04:36:09 +00:00
Kp 8d487b4883 Return unique_ptr from ui_add_gadget_icon 2014-12-20 04:36:09 +00:00
Kp bcfd6a77f0 Use unique_ptr for object_dialog 2014-12-20 04:36:09 +00:00
Kp cf5e5620aa Deduce input box text length 2014-12-20 04:36:09 +00:00
Kp 6735a94f3b Use unique_ptr for wall_dialog 2014-12-20 04:36:09 +00:00
Kp 63ee79d988 Use unique_ptr for robot_dialog 2014-12-20 04:36:08 +00:00
Kp 7e4e8f3501 Use unique_ptr for centers_dialog 2014-12-20 04:36:08 +00:00
Kp f0c8482b8b Use unique_ptr for trigger_dialog 2014-12-20 04:36:08 +00:00
Kp 0f30d4eb72 Use PHYSFSX_gets_line_t for Current_level_palette 2014-12-20 04:36:08 +00:00
Kp 90666ba19b Use PHYSFSX_gets_line_t for Current_level_name 2014-12-20 04:36:07 +00:00
Kp 9f44ccbbf3 Fix WORDS_NEED_ALIGNMENT build of interp.cpp 2014-12-19 02:19:29 +00:00
Kp 6a00d387af Combine secret/non-secret level glitz 2014-12-18 04:12:39 +00:00
Kp 137746e442 List initialize credits to zero 2014-12-18 04:12:38 +00:00
Kp da6632a917 Use array<> for Robot_joints 2014-12-18 04:12:38 +00:00
Kp 630f11945e Cache Viewer in digiobj 2014-12-18 04:12:38 +00:00
Kp 9ffd958d3d Create window_rendered_data locally 2014-12-18 04:12:38 +00:00
Kp b0b2704961 Allocate ND_EVENT_VIEWER_OBJECT objects from Objects 2014-12-14 21:02:40 +00:00
Kp 9916406d8f Fix debug-build abort on matcen triggers 2014-12-14 21:02:40 +00:00
Kp fddc8cedb4 Remove unused Debug_spew 2014-12-14 21:02:40 +00:00
Kp 2199bd4e25 Override PRIi64 for mingw/Win64 2014-12-14 21:02:40 +00:00
Kp 9ee9e176c8 Convert newdemo.cpp to use range_for 2014-12-14 05:23:01 +00:00
Kp 16113a2908 Propagate for variable in newdemo 2014-12-14 05:23:00 +00:00
Kp 227dab543c Combine shortpos scan loop 2014-12-14 05:23:00 +00:00
Kp e42b1f5b71 Return vertex_array_list_t from create_all_vertnum_lists 2014-12-14 05:23:00 +00:00
Kp 1960a2ebad Return vertex_array_list_t from create_abs_vertex_lists 2014-12-14 05:23:00 +00:00
Kp 601290e674 Return vertex_array_list_t from create_all_vertex_lists 2014-12-14 05:23:00 +00:00
Kp 51b6fb1c95 Return get_side_verts by value 2014-12-14 05:23:00 +00:00
Kp 2af91c9a3a Pass automap_find_edge result by & 2014-12-14 05:22:59 +00:00
Kp e54c2c79df Use array<> for Sounds 2014-12-14 05:22:59 +00:00
Kp 1a96bf7f2f Use range_for for SoundObjects 2014-12-14 05:22:59 +00:00
Kp cf97b028b7 Pass digi_start_sound_object arg by & 2014-12-14 05:22:59 +00:00
Kp 80aa48efb4 Pass digi_*_start_sound soundobj as sound_object* 2014-12-14 05:22:59 +00:00
Kp 657e7da49e Rework digi dispatch
Build function tables at compile time.  If !SDLMIXER, compile out the
pointer indirections.  If SDLMIXER && PIE, keep function pointers in
read-only memory.
2014-12-13 17:47:16 +00:00
Kp 9ea8c8d7f1 Mark digi variables static 2014-12-13 17:47:10 +00:00
Kp a622aecd58 Pass vcobjptridx_t to digi_ functions 2014-12-13 17:47:06 +00:00
Kp adbff232c5 Split seg/obj vars of find_seg_side_face 2014-12-13 17:47:01 +00:00
Kp 3f52e3426a Skip unnecessary segment rendering phases
Make object rendering traverse only the subrange of segments with
objects.

Make alpha rendering traverse only the subrange of segments with alpha
blended textures.
2014-12-13 17:19:28 +00:00
Kp 0b086b1b0d Optimize rendering
- Make Max_linear_depth_objects const
- Skip setup of object rendering if no objects to render
- Defer setting globals until after conditional confirms a segment will
  render
2014-12-13 17:18:07 +00:00
Kp 84e3721ef0 Use partial_range for render list 2014-12-13 16:57:09 +00:00
Kp 69bc81681a Move render_windows to per_segment_state_t::render_window 2014-12-13 16:54:16 +00:00
Kp 6b56a3020a Fix crash playing credits with poison enabled 2014-12-13 04:11:41 +00:00
Kp 7c98dea8be Pass render_frame arg by & 2014-12-13 04:11:21 +00:00
Kp b79e432a3e Pass render_mine arg by & 2014-12-13 04:11:16 +00:00
Kp 032332343d Pass do_render_object arg by & 2014-12-13 04:11:12 +00:00
Kp 4bcf451745 Pass wake_up_rendered_objects arg by & 2014-12-13 04:11:07 +00:00
Kp e027c821c9 Pass update_rendered_data arg by & 2014-12-13 04:11:04 +00:00
Kp 1a204f61d8 Use range_for for SoundSlots 2014-12-11 02:36:01 +00:00
Kp 7b234da185 Make digi_max_channels const 2014-12-11 02:35:55 +00:00
Kp 664e8abaac Fix !SDLMIXER build
Fixes: bd1c6d8c5d
2014-12-11 02:35:03 +00:00
Kp 307ad30433 Remove unused digi_*_is_sound_playing 2014-12-11 02:34:54 +00:00
Kp 53366488ac Remove unused digi_set_volume 2014-12-11 02:34:38 +00:00
Kp 6d2b707c3e Move debug-only digi functions into !RELEASE 2014-12-11 02:34:32 +00:00
Kp 489c4e00a3 Store temporary rect locally 2014-12-11 02:33:55 +00:00
Kp cc60f765b3 Cache render lookups 2014-12-11 02:33:50 +00:00
Kp 84011e55d2 Use partial_range when searching HighestLevels 2014-12-08 04:49:20 +00:00
Kp 78cdb70959 Use partial_range on Triggers 2014-12-08 04:19:26 +00:00
Kp 7c24f6896f Stop briefing search on dot or null
Mission names are passed in without an extension.  Short mission names
read beyond the end of the buffer, causing AddressSanitizer to kill the
program.

Reported by btb: https://github.com/dxx-rebirth/dxx-rebirth/issues/20
2014-12-08 03:54:11 +00:00
Kp cf9675c505 Fix uninitialized variable in render reprocess 2014-12-08 01:02:08 +00:00
Bradley Bell 5d6e6dc2e4 check for GM_MULTI before trying to do network jobs 2014-12-06 22:14:22 -08:00
Kp 0c8191db94 Fix player clear range 2014-12-07 00:49:18 +00:00
Kp a0727f4f84 Throw on net_udp_read_sync_packet failure
Callers expect sane Player_num, but on failure, it is invalid.
Returning a failure status causes net_udp_level_sync to fault using
Players[Player_num].connected, so throw an exception instead.
2014-12-07 00:00:22 +00:00
Kp 2b627f0158 Pass net_udp buffers as const 2014-12-06 23:59:34 +00:00
Kp 9d700aab08 Make kill_matrix uint16_t, not short 2014-12-06 23:30:55 +00:00
Kp 1b924c5dd3 Truncate pilot name at null 2014-12-06 23:13:38 +00:00
Kp 73b0a016a8 Fix loading robots-?.mvl
Rework movie loading to fix loading built-in robot movies.  The previous
code always ignored loading the last entry in the movie array, which was
blank until 18f6919b33.  The last entry
was unused after d38a3d1362, so it was
removed, which caused the code to skip the robots entry.

Commit d38a3d1362 broke unloading add-on
movies by removing the strcpy which saved their name.  Add code to save
the name to extra_robot_movie_mission and call it when switching
missions.

Reported by btb: https://github.com/dxx-rebirth/dxx-rebirth/pull/17
2014-12-06 17:56:56 +00:00
Kp cfe0f89dae Use array<> for team_kills 2014-12-06 04:52:53 +00:00
Kp a55028d5b4 Fix crash on UDP initialization 2014-12-06 02:16:28 +00:00
Kp 7338bb2402 Extend in-game esc menu with options and saving 2014-12-06 01:38:30 +00:00
Kp bb8445f70c Fix some -Wsign-compare warnings 2014-12-05 04:11:37 +00:00
Kp 241b3140fd Use range_for in light rendering 2014-12-05 04:11:37 +00:00