Commit graph

3269 commits

Author SHA1 Message Date
Kp 90de22b2a5 Fix invalid access reading demos
Fixes: 74dfa29d31 ("Convert most Trigger references to valptridx")
2016-02-14 18:40:57 +00:00
Kp e36abb25cb Fix invalid access reading demos
Casting the address of a short to `sbyte*` invites trouble.  In this
case, it allows uninitialized garbage to be used as the high bits of the
wall index.

Fixes: 553b313099 ("Use vwallptr")
2016-02-14 18:40:57 +00:00
zico 081e5d5e3c Removed rounding offset of x starting coordinate in ogl_ulinec which should hopefully unwanted horizontal offsets in Status Bar energy and afterburner gauges (without causing more problems) if Multisampling is applied 2016-02-14 13:59:02 +01:00
zico a055aecee5 Apply count cap in maybe_drop_secondary_weapon_egg to bombs only 2016-02-14 12:49:45 +01:00
zico ed25a5c38d Eliminate frame dependent damage with blast weapons - as seen in DXX-Retro 532f271af26d6341563d3763d5bb2dce33de7582 2016-02-14 12:15:30 +01:00
Kp 6091b65707 Move score to screen edge for CM_FULL_SCREEN
The score is moved in from the edge to avoid overlapping the cockpit
graphic, but the move was applied even when no cockpit was shown.
Change it to align the score when running without the cockpit graphic.

Reported-by: roncli <https://github.com/dxx-rebirth/dxx-rebirth/issues/175>
2016-02-12 04:02:28 +00:00
Kp 6edab5ca0a Pass cv_font to get_centered_x 2016-02-12 04:02:28 +00:00
Kp a92ab4079f Cache font extent while drawing 2016-02-12 04:02:28 +00:00
Kp 85129248c9 Combine gr_internal_string0_template VideoOffset updates 2016-02-12 04:02:28 +00:00
Kp 938032e51d Unify gauges draw paths 2016-02-12 04:02:28 +00:00
Kp cc18ad2b68 Fix some -Wshadow warnings 2016-02-12 04:02:28 +00:00
Kp 08de1bbff0 Remove cv_color
It is only ever set to 0 or copied from other canvases.  Set it to zero
everywhere.
2016-02-12 04:02:28 +00:00
Kp f4e1ebb576 Remove unnecessary gr_setcolor calls 2016-02-12 04:02:28 +00:00
Kp 5f073b6546 Avoid reloading cv_color in reticle drawer 2016-02-12 04:02:28 +00:00
Kp 972654c140 Pass color to draw_listed_segments 2016-02-12 04:02:28 +00:00
Kp 9d2659ab26 Pass color to draw_wall_side 2016-02-12 04:02:28 +00:00
Kp 12bd8bce35 Pass color to draw_trigger_side 2016-02-12 04:02:28 +00:00
Kp cc8bed5b95 Pass color to draw_side_edge 2016-02-12 04:02:28 +00:00
Kp 7694fff456 Pass color to draw_seg_side 2016-02-12 04:02:28 +00:00
Kp fd834f0924 Pass color to draw_segment 2016-02-12 04:02:28 +00:00
Kp 8066361076 Pass color to draw_player 2016-02-12 04:02:28 +00:00
Kp 68cf7939a2 Pass color to draw_line 2016-02-12 04:02:28 +00:00
Kp d08bfc3170 Pass color to g3_draw_sphere 2016-02-12 04:02:28 +00:00
Kp 1b4b6673ee Pass color to g3_draw_poly 2016-02-12 04:02:28 +00:00
Kp 8c24eaa721 Pass color to g3_draw_line 2016-02-12 04:02:28 +00:00
Kp 36bd39babe Pass color to gr_line 2016-02-12 04:02:28 +00:00
Kp 3c73d44771 Pass color to gr_disk 2016-02-12 04:02:28 +00:00
Kp ecb71ba22e Pass color to gr_ucircle 2016-02-12 04:02:28 +00:00
Kp edd2acc86b Pass color to gr_box 2016-02-12 04:02:28 +00:00
Kp de08a67321 Pass color to gr_ubox 2016-02-12 04:02:28 +00:00
Kp 23047b1165 Pass color to gr_rect 2016-02-12 04:02:28 +00:00
Kp 35a4736df0 Pass color to gr_urect 2016-02-12 04:02:28 +00:00
Kp f235d6b12b Pass color to gr_pixel 2016-02-12 04:02:28 +00:00
Kp 053901b62b Pass color to gr_uline 2016-02-12 04:02:28 +00:00
Kp 0dcfa6fba5 Pass color to ogl_urect 2016-02-12 04:02:28 +00:00
Kp 228bbe999a Unify draw_automap key color lookup 2016-02-12 04:02:28 +00:00
Kp d2d9d2bf5a Unify op_flatpoly color setup 2016-02-12 04:02:28 +00:00
Kp 1c04cb70d9 Change ogl_ubitmapm_cs constant -1 to const white 2016-02-12 04:02:28 +00:00
Kp 2a50243a07 Separate out ogl_ubitmapm_cs color setup 2016-02-12 04:02:28 +00:00
Kp 553b313099 Use vwallptr 2016-02-12 04:02:28 +00:00
Kp 2fd6a425b0 Remove highest_valid 2016-02-12 04:02:28 +00:00
Kp e07c9a5f87 Combine ft_chars, ft_allocdata into one allocation 2016-02-12 04:02:28 +00:00
Kp 4aea3b8fdc Shorten ogl_set_blending 2016-02-12 04:02:28 +00:00
Kp 230f2dbb19 Make cv_blend_func OGL-specific 2016-02-12 04:02:28 +00:00
Kp b57f08c798 Use partial_const_range 2016-02-12 04:02:28 +00:00
Kp 31716bbf42 Factor out draw_special_segments color lookup 2016-02-11 03:25:52 +00:00
Kp 2acad85061 Remove unnecessary zero-fill in ogl_ubitmapm_cs 2016-02-11 03:25:52 +00:00
Kp 17c750a101 Cache font scale values at function scope 2016-02-10 03:58:05 +00:00
Kp 5c75d19dba Fold ogl_internal_string calls to ogl_ubitmapm_cs 2016-02-10 03:58:05 +00:00
Kp c5f4daa11b Remove write-only trigger field time 2016-02-06 22:12:55 +00:00
Kp 6e20d86941 Move OF_PLAYER_DROPPED into drop_powerup
This fixes an issue where calling drop_powerup with num > 1 only tagged
one powerup as player-dropped.

This also changes powerups dropped by the thief to be "player-dropped",
since, aside from the initial shields/energy, they came from the player
originally.
2016-02-06 22:12:55 +00:00
Kp 08248331a9 Unify do_door_close 2016-02-06 22:12:55 +00:00
Kp 1f9e69b0b7 Replace highest_valid(V,offset) with partial_range 2016-02-06 22:12:55 +00:00
Kp 71d4c3a0e1 Reuse gr_init_font for gr_remap_font 2016-02-06 22:12:55 +00:00
Kp 5d9c64e8fc Fuse gr_string test/add 2016-02-06 22:12:55 +00:00
Kp 198540d080 Use range_for in bm.cpp 2016-02-06 22:12:54 +00:00
Kp ec025d4e88 Pass common highest_valid to vptr factory 2016-02-06 22:12:54 +00:00
Kp 0101f98905 Use wallnum_t in more places 2016-02-06 22:12:54 +00:00
Kp bb5d1bb7e5 Use valptridx array type for Walls 2016-02-06 22:12:54 +00:00
Kp 72d2844070 Use enum for trigger flags 2016-02-06 22:12:54 +00:00
Kp 74dfa29d31 Convert most Trigger references to valptridx 2016-02-06 22:12:54 +00:00
Kp 4f0cbcffa9 Use valptridx array type for Triggers 2016-02-06 22:12:53 +00:00
Kp 4d72f88ae1 Preprocess out PHYSFSX_writeAngleVec
This is unused now that jointpos_write is preprocessed out.

Fixes: ed55763603 ("Remove unused symbols")
2016-02-02 03:10:53 +00:00
Kp 0d1dd636ca Move extraAccessory into if(D2)
It is only used in D2, so do not use the space when compiling D1.
2016-02-02 03:10:53 +00:00
Kp e283a22709 Use enum class for check_volatile_wall 2016-01-29 04:05:47 +00:00
Kp bc488a8f57 Improve check_volatile_wall 2016-01-29 04:05:47 +00:00
Kp 905d935a6b Remove write-only cv_drawmode 2016-01-29 04:05:47 +00:00
Kp d8292300ab Switch select_file_subfunction_t to anonymous template typedef 2016-01-29 04:05:47 +00:00
Kp ff67afd440 Propagate partial_range up into PHYSFSX_findFiles family 2016-01-29 04:05:47 +00:00
Kp 92625ff2d0 Fix clang build of CGameArg
clang is confused by the use of a class named dcx.  Move the declaration
into a namespace{} block to avoid this.
2016-01-29 04:05:47 +00:00
Kp 1eb54bcf4f Fix clang build of CGameCfg
clang is confused by the use of a class named dcx.  Move the declaration
into a namespace{} block to avoid this.
2016-01-29 04:05:47 +00:00
Kp 5b9ccda8e8 Simplify update_flicker 2016-01-26 03:45:08 +00:00
Kp e3033d939e Simplify wall_restore_all flags update 2016-01-26 03:45:08 +00:00
Kp 3d13e66f6a Use C++ array in more places 2016-01-26 03:45:08 +00:00
Kp 7fced24bbd Use ={} to clear unused UVL during load 2016-01-26 03:45:08 +00:00
Kp 38bc1fb28f Use range_for for medwall CountedWalls 2016-01-26 03:45:08 +00:00
Kp 8cbc672080 Factor out draw_special_wall BM_XRGB 2016-01-26 03:45:07 +00:00
Kp 994f2edc4d Factor out draw_special_wall color choice 2016-01-26 03:45:07 +00:00
Kp c476c42e8e Factor out kill names in multi_compute_kill 2016-01-26 03:45:07 +00:00
Kp c641a0404a Use range_for for multi_message_feedback team_name 2016-01-26 03:45:06 +00:00
Kp bad07b668e Fix misplaced preprocessor directive 2016-01-26 03:45:06 +00:00
Kp 4e29e2625d Move multi_endlevel_poll* lookups to menu creation 2016-01-26 03:45:06 +00:00
Kp 124a2ee09c Move net_udp.cpp specific defines out of header 2016-01-26 03:45:06 +00:00
Kp 08f7d850e0 Fix SDL build failure 2016-01-26 03:45:06 +00:00
Kp 9e174a0e0e Factor out primary/secondary search/reorder 2016-01-17 17:36:48 +00:00
Kp b8026fa2d5 Factor out some texture precache calls 2016-01-17 05:19:10 +00:00
Kp ba7e64bec5 Cache obj->size in draw_player 2016-01-17 05:19:10 +00:00
Kp 1880648c2b Use ?: for endlevel glitz menu 2016-01-10 21:18:09 +00:00
Kp 499060ef4c Use open_font[] only for color fonts 2016-01-10 21:18:09 +00:00
Kp 677c70c64e Move font filename into grs_font 2016-01-10 21:18:09 +00:00
Kp 54d5ab84ca Refactor gr_string delegation 2016-01-10 21:18:09 +00:00
Kp 609f4e9261 Remove vsprintf in 2d/font.cpp 2016-01-10 21:18:08 +00:00
Kp 5d4fff1534 Combine gr_printf/gr_uprintf into template 2016-01-10 21:18:08 +00:00
Kp 7386094bc3 Rename menu macros to reduce token pasting 2016-01-09 16:38:17 +00:00
Kp 2b34547b05 Remove redundant DXX_UDP_MENU_OPTIONS(ENUM) 2016-01-09 16:38:17 +00:00
Kp de6b66a9cb Remove sprintf from main/state.cpp 2016-01-09 16:38:17 +00:00
Kp c07c7e204f Remove sprintf from editor/mine.cpp 2016-01-09 16:38:17 +00:00
Kp c140f8aae4 Remove sprintf from editor/medwall.cpp 2016-01-09 16:38:17 +00:00
Kp 858c3e26e0 Remove sprintf from editor/medrobot.cpp 2016-01-09 16:38:17 +00:00
Kp 4e863716d9 Remove sprintf from editor/med.cpp 2016-01-09 16:38:16 +00:00
Kp 8ea6e67d1c Remove sprintf from editor/kmine.cpp 2016-01-09 16:38:16 +00:00
Kp 8602245c5e Remove sprintf from editor/kgame.cpp 2016-01-09 16:38:16 +00:00
Kp 78830627da Remove sprintf from editor/group.cpp 2016-01-09 16:38:16 +00:00
Kp dacf771d43 Remove sprintf from OGL gr.cpp 2016-01-09 16:38:16 +00:00
Kp 28649da083 Remove stub support for demo editor 2016-01-09 16:38:16 +00:00
Kp 079c4d8b5c Move netgame setup strings to param_opt 2016-01-09 16:38:15 +00:00
Kp bc392aaaf3 Move net_udp start_poll data onto stack 2016-01-09 16:38:15 +00:00
Kp 15c947d732 Remove unused step_up/step_down direction argument 2016-01-09 16:38:15 +00:00
Kp 7b5d74fddb Remove write-only last_scroll_check 2016-01-09 16:38:15 +00:00
Kp 548af4475d Factor some newmenu function calls 2016-01-09 16:38:15 +00:00
Kp e39b609553 Factor out calls to draw_weapon_info_sub 2016-01-09 16:38:15 +00:00
Kp dd877f52c2 Remove unused weapon defines 2016-01-09 16:38:15 +00:00
Kp 25feb65a6f Remove unnecessary pointer subtraction in laser.cpp
`parent` can be compared to `Viewer` without converting `Viewer` to an
index.
2016-01-09 16:38:14 +00:00
Kp fd64d3284c Cache ConsoleObject in move_player_2_segment 2016-01-09 16:38:14 +00:00
Kp 86709f547b Fix capitalization of PHYSFS_File
Per comment in physfs.h, the spelling PHYSFS_file is deprecated.
Replace all instances with PHYSFS_File.
2016-01-09 16:38:14 +00:00
Kp a3ae630829 Remove default argument for basic_ptridx(index) 2016-01-09 16:38:14 +00:00
Kp 9ceedc96a8 Propagate valptridx requirement up 2016-01-09 16:38:14 +00:00
Kp cefc79f869 Construct find_point_seg segptridx explicitly 2016-01-09 16:38:13 +00:00
Kp d6359d0eb7 Use template for object rotation functions 2016-01-09 16:38:13 +00:00
Kp 988df1cc42 Factor out marker index number 2016-01-09 16:38:13 +00:00
Kp a32d9f01a1 Remove return value truncation in find_object_seg 2016-01-09 16:38:13 +00:00
Kp 98f5afa9f8 Remove default argument for basic_ptr(pointer,array &) 2016-01-09 16:38:13 +00:00
Kp d17b12da31 Remove default argument for basic_ptr(index,array &) 2016-01-09 16:38:12 +00:00
Kp 8a30fc656b Factor out editor special segment drawing 2016-01-09 16:38:12 +00:00
Kp 7064fcccba Skip setting segnum/signature of non-objects 2016-01-09 16:38:12 +00:00
Kp 96898bab0a Block direct changes to Highest_segment_index
Route updates through helper functions.
2016-01-09 16:38:12 +00:00
Kp f48eddeece Block direct changes to Highest_object_index
Route updates through helper functions.
2016-01-09 16:38:12 +00:00
Kp 1cd77754ee Remove write-only Highest_ever_object_index 2016-01-09 16:38:12 +00:00
Kp 1f91897f5d Move some game symbols to namespaces 2016-01-09 16:38:12 +00:00
Kp 8dc0f3bd37 Remove unnecessary newmenu_free_background 2016-01-09 16:38:11 +00:00
Kp fe1c0ee59b Remove unnecessary free_text
The text is stored in a global unique_ptr, so running global destructors
will free the text.
2016-01-09 16:38:11 +00:00
Kp 100af92d3f Remove unnecessary error_init(NULL) 2016-01-09 16:38:11 +00:00
Kp 7cc8920736 Pass new_wall_type to do_change_walls
Each caller knows the trigger type, so pass new_wall_type from the
caller instead of recomputing it inside do_change_walls.
2016-01-09 16:38:11 +00:00
Kp c2c95e7b4b Factor out trigger segment loop 2016-01-09 16:38:11 +00:00
Kp 0635dbf108 Pass trigger & 2016-01-09 16:38:11 +00:00
Kp e24f84298f Skip rescan walls for force fields
Record force fields in the on/off path instead of scanning the array
again.
2016-01-09 16:38:11 +00:00
Kp 3aefd0bf2f Defer change_segment_light multiply
If light_intensity is zero, skip the multiplication.
2016-01-09 16:38:11 +00:00
Kp 4770d3a35e Factor out wall_illusion_* common logic 2016-01-09 16:38:10 +00:00
Kp 16c754f3a2 Split key_toggle_repeat paths at compile time
Every caller passes a literal truth value.  Split the implementation by
the truth value.  This saves loading the value before the call and
testing it inside the call.
2016-01-09 16:38:10 +00:00
Kp 23d6735f7a Use .reset() for free_endlevel_data bm 2016-01-09 16:38:10 +00:00
Kp 31360adb9c Combine command line help printf calls 2016-01-09 16:38:10 +00:00
Kp 68a31121ee Use menu macros for sound menu 2016-01-09 16:38:10 +00:00
Kp 410b09a330 Expand macro Player_exploded 2016-01-09 16:38:10 +00:00
Kp 7c8b36ec1d Use automatic cleanup of GL client state 2016-01-09 16:38:10 +00:00
Kp 47190be8e9 Fold Player_exploded into Player_dead_state 2016-01-09 16:38:10 +00:00
Kp 608cfdbf07 Combine Mission::enhanced with Mission::descent_version 2016-01-09 16:38:09 +00:00
Kp 0c0dff9def Fix fvi sqrt
A previous optimization restructured the code in a way that lost the
>>16 normally applied to the product of two fix values.

Fixes: 707b69220d ("Skip sqrt,square in check_vector_to_sphere_1")
2016-01-03 20:21:36 +00:00
Kp e3e77f8724 Remove sprintf from automap.cpp 2016-01-03 20:21:36 +00:00
Kp 3acfdcd00a Remove sprintf from game.cpp 2016-01-03 20:21:36 +00:00
Kp b2882fd48f Remove sprintf from gamerend.cpp 2016-01-03 20:21:36 +00:00
Kp e222a13495 Remove sprintf from gameseq.cpp 2016-01-03 20:21:36 +00:00
Kp 0d15877010 Remove sprintf from gauges.cpp 2016-01-03 20:21:36 +00:00
Kp 421fd8a11c Remove sprintf from newmenu.cpp 2016-01-03 20:21:36 +00:00
Kp 842756630f Remove sprintf from piggy.cpp 2016-01-03 20:21:36 +00:00
Kp 4afe97fd71 Remove sprintf from piggy_is_substitutable_bitmap 2016-01-03 20:21:36 +00:00
Kp fd85e3cfc0 Remove sprintf from scores.cpp 2016-01-03 20:21:35 +00:00
Kp 24e902d4cf Simplify find_connect_side 2016-01-03 20:21:35 +00:00
Kp 5ba5910e7a Use symbolic side_none for testing find_connect_side result 2016-01-03 20:21:35 +00:00
Kp 2ef83ad002 Remove redundant segptr computation 2016-01-03 20:21:35 +00:00
Kp 34df375032 Cache remove_trigger wall_num 2016-01-03 20:21:35 +00:00
Kp d7890e37cb Skip copying segment normals in render_side 2016-01-03 20:21:35 +00:00
Kp 2e8900ab73 Remove unused lcnt_save,scnt_save 2016-01-03 20:21:35 +00:00
Kp 3428ea6392 Remove Show_only_curside
Show_only_curside was locked to 0 in EDITOR builds, but only EDITOR
builds could render the current side.
2016-01-03 20:21:35 +00:00
Kp c57db299ba Make first_terminal_seg local 2016-01-03 20:21:34 +00:00
Kp 823ff63126 Move MplTrackerAddr to CArg 2015-12-24 04:01:29 +00:00
Kp 0b87ff267f Move MplTrackerPort to CArg 2015-12-24 04:01:29 +00:00
Kp 3f9f1f2b49 Move MplUdpMyPort to CArg 2015-12-24 04:01:29 +00:00
Kp 56e77d4fec Move MplUdpHostPort to CArg 2015-12-24 04:01:28 +00:00
Kp 0fb84b883f Move DbgAltTex to CArg 2015-12-24 04:01:28 +00:00
Kp b0e0f48058 Move DbgTexMap to CArg 2015-12-24 04:01:28 +00:00
Kp a91ef00a86 Move DbgNoCompressPigBitmap to CArg 2015-12-24 04:01:28 +00:00
Kp 96b9f606d7 Invert game_render_frame_mono argument 2015-12-24 04:01:28 +00:00
Kp 834258fffa Move DbgNoDoubleBuffer to CArg 2015-12-24 04:01:28 +00:00
Kp 048615f95e Move DbgRenderStats to CArg 2015-12-24 04:01:28 +00:00
Kp 45a287f44b Move DbgNoRun to CArg 2015-12-24 04:01:28 +00:00
Kp ee98ef18f3 Move DbgSdlASyncBlit to CArg 2015-12-24 04:01:28 +00:00
Kp 94616f5e1c Move DbgSdlHWSurface to CArg 2015-12-24 04:01:27 +00:00
Kp 4f14be6056 Move MplUdpHostAddr to CArg 2015-12-24 04:01:27 +00:00
Kp 2c3f64478d Move OglSyncWait to CArg 2015-12-24 04:01:27 +00:00
Kp 9ec7e766cf Move OglSyncMethod to CArg 2015-12-24 04:01:27 +00:00
Kp d7c694b126 Move OglFixedFont to CArg 2015-12-24 04:01:27 +00:00
Kp 679e0adf3d Move SysAutoDemo to CArg 2015-12-24 04:01:27 +00:00
Kp cbd2cd7c54 Move SysNoTitles to CArg 2015-12-24 04:01:27 +00:00
Kp 948fa32f9c Move SysNoBorders to CArg 2015-12-24 04:01:27 +00:00
Kp 4ac7055928 Move SysWindow to CArg 2015-12-24 04:01:27 +00:00
Kp 2629b5b3d9 Move SysAutoRecordDemo to CArg 2015-12-24 04:01:27 +00:00
Kp 93f3162a41 Move SysLowMem to CArg 2015-12-24 04:01:26 +00:00
Kp 2b4447f927 Move SysUsePlayersDir to CArg 2015-12-24 04:01:26 +00:00
Kp 2cea05d0a7 Move SysRecordDemoNameTemplate to CArg 2015-12-24 04:01:26 +00:00
Kp 63cd2dbb6b Move SysPilot to CArg 2015-12-24 04:01:26 +00:00
Kp 584e2ce408 Move SysHogDir to CArg 2015-12-24 04:01:26 +00:00
Kp 9f1abe1910 Move SndNoMusic to CArg 2015-12-24 04:01:26 +00:00
Kp bb3a386b47 Move GfxSkipHiresFNT to CArg 2015-12-24 04:01:26 +00:00
Kp 23bb4c5826 Move SysNoNiceFPS to CArg 2015-12-24 04:01:26 +00:00
Kp 29e305c6df Use namespace dcx for SDL save_screen_shot 2015-12-23 03:28:18 +00:00
Kp 70ffee39cd Use namespace dcx for WORDS_BIGENDIAN/WORDS_NEED_ALIGNMENT functions
Reported-by: derhass <https://github.com/dxx-rebirth/dxx-rebirth/pull/171>
Fixes: 32051298ae ("Use inline namespace dcx/dsx for more symbols")
2015-12-23 03:28:17 +00:00
Kp e3a0ca472a Move SDL gr_palette_load to namespace dcx 2015-12-23 03:28:17 +00:00
Kp be04d3a4f9 Rewrite CLI
Remove artificial length limit on input.
Enable multi-line display of input.
2015-12-22 04:18:52 +00:00
Kp 287a74f88b Multiplex do_laser_firing_player flags 2015-12-22 04:18:52 +00:00
Kp f4a5040a60 Remove write-only Last_laser_fired_time 2015-12-22 04:18:52 +00:00