Commit graph

4199 commits

Author SHA1 Message Date
Kp 1ebfb6c6e5 Cache canvas in draw_keys_state 2017-02-19 19:33:40 +00:00
Kp 4b1c0f4198 Combine draw_keys_state subtypes 2017-02-19 19:33:40 +00:00
Kp 205b9ddae4 Pass multires_gauge_graphic to HUD_SCALE_X_AR, HUD_SCALE_Y_AR 2017-02-19 19:33:40 +00:00
Kp e3699252f7 Pass multires_gauge_graphic to HUD_SCALE_X, HUD_SCALE_Y 2017-02-19 19:33:40 +00:00
Kp c64152fe79 Pass multires_gauge_graphic to BASE_WIDTH, BASE_HEIGHT 2017-02-19 19:33:40 +00:00
Kp 463fe1f643 Pass canvas to sb_show_score 2017-02-19 19:33:40 +00:00
Kp 7c25caafa6 Pass canvas to hud_show_score_added 2017-02-19 19:33:39 +00:00
Kp 19318b7e74 Pass canvas to hud_show_timer_count 2017-02-19 19:33:39 +00:00
Kp 960ba8a9d2 Pass canvas to hud_show_score 2017-02-19 19:33:39 +00:00
Kp 530856f909 Pass canvas to hud_gauge_bitblt 2017-02-19 19:33:39 +00:00
Kp d0bc9c1703 Pass canvas to hud_bitblt 2017-02-19 19:33:39 +00:00
Kp d98a18583b Pass canvas to hud_bitblt_free 2017-02-19 19:33:39 +00:00
Kp 1e13617c3e Pass canvas to hud_show_afterburner 2017-02-19 19:33:39 +00:00
Kp 4947779952 Pass canvas to hud_show_energy 2017-02-19 19:33:38 +00:00
Kp fbd02b5fbe Factor out template functor of create_vertex_lists_by_predicate 2017-02-19 19:33:38 +00:00
Kp b918760b3f Move find_connect_side body to dcx 2017-02-19 19:33:38 +00:00
Kp b82d9d2b51 Move get_side_verts body to dcx 2017-02-19 19:33:38 +00:00
Kp 9821a77372 Simplify use of get_num_faces 2017-02-19 19:33:38 +00:00
Kp cdb193c053 Use unsigned for sides/verts in more places 2017-02-19 19:33:38 +00:00
Kp 0f00cf51b0 Make segment vertices unsigned 2017-02-19 19:33:37 +00:00
Kp 3e51705de6 Shorten get_verts_for_normal 2017-02-19 19:33:37 +00:00
Kp 0202765322 Simplify create_walls_on_side 2017-02-19 19:33:37 +00:00
Kp c0fc6aa419 Factor out side normal initialization 2017-02-19 19:33:37 +00:00
Kp b2ca2e35df Fold add_side_as_2_triangles temporaries 2017-02-19 19:33:37 +00:00
Kp a815541ef5 Fix check_header_includes=1 poison.h 2017-02-19 19:33:36 +00:00
zico b36c6f20c7 Made scrape_player_on_wall() based on a timer. Due to the player being pushed away from the lava/water surface in every frame in a random vector (wrong, too), player movement per frame was not enough to counter this on FPS rates > ~120 which made damage scaling per frame nonsensical in these situations. Instead, execute scrape results in intevals based on DESIGNATED_GAME_FRAMETIME (or per frame if FrameTime>DESIGNATED_GAME_FRAMETIME) which fixes the issues and generally works much better for the purpose of this function. 2017-02-13 11:00:21 +01:00
Kp 569d64e927 Propagate Hack_DblClick_MenuMode 2017-02-11 21:42:47 +00:00
Kp 3de4a0b3e0 Cache canvas in show_netplayerinfo 2017-02-11 21:42:46 +00:00
Kp b116939ace Cache canvas in con_draw 2017-02-11 21:42:46 +00:00
Kp aadf18e694 Cache canvas in draw_automap 2017-02-11 21:42:46 +00:00
Kp b390ce2da0 Use cached canvas in gr_string 2017-02-11 21:42:46 +00:00
Kp fb53bc9257 Pass canvas to player_dead_message 2017-02-11 21:42:46 +00:00
Kp 00492073d2 Pass canvas to render_countdown_gauge 2017-02-11 21:42:45 +00:00
Kp 2ee8e31f9f Pass canvas to draw_window_label 2017-02-11 21:42:45 +00:00
Kp 1327dd7de6 Pass canvas to show_framerate 2017-02-11 21:42:45 +00:00
Kp 6c83d56219 Pass canvas to game_draw_marker_message 2017-02-11 21:42:45 +00:00
Kp 5fcbc44c7f Pass canvas to game_draw_multi_message 2017-02-11 21:42:45 +00:00
Kp 5736804a23 Fold gr_set_curfont calls in credits_handler 2017-02-11 21:42:45 +00:00
Kp 5f855437ed Pass canvas to name_frame 2017-02-11 21:42:45 +00:00
Kp a23f33a34d Pass canvas to draw_player 2017-02-11 21:42:44 +00:00
Kp 9ad724f32f Pass canvas to DrawMarkers 2017-02-11 21:42:44 +00:00
Kp 24c4a030a1 Pass canvas to DrawMarkerNumber 2017-02-11 21:42:44 +00:00
Kp 05905ced06 Pass font to gr_get_string_wrap 2017-02-11 21:42:44 +00:00
Kp 46be18e7f9 Pass canvas to get_centered_x 2017-02-11 21:42:44 +00:00
Kp 0fd80b12df Prevent out-of-bounds read when sorting segment sides
GCC 6 `std::sort` sometimes compares an element to itself.  For a normal
implementation of comparison, this is useless, but not harmful.  The
render comparison predicate relies on accessing A[B[a][b]] when
comparing `a` and `b`.  Array `B` has `-1` in positions where `a == b`,
which causes an access to `A[-1]`, which is undefined behavior.  This
crashes when using _GLIBCXX_DEBUG:

    Error: attempt to subscript container with out-of-bounds index -1, but
    container only holds 8 elements.

    Objects involved in the operation:
	sequence "this" @ 0x0x335adf0 {
	  type = std::__debug::array<int, 8ul>::_Array_check_subscript<8ul>;
	}

Since this is undefined behavior, non-debug builds might also misbehave.
Current data layouts make it likely that the failure would not have
externally observable consequences.

Prevent the invalid access by short-circuiting the result if `a == b`.
2017-02-11 21:42:43 +00:00
Kp ceb510566f Avoid passing reference to null weapon_object
Rebirth built with `gcc -fsanitize=undefined` warns when binding a
reference to nullptr, even if that reference is never followed.  This
could be reproduced using a guided missile against the first PIG in
Descent 2: Counterstrike level 1.

This object pointer is used only to test for address equality, so
nullptr is safe here.  Switch to pass it as a pointer to prevent the
warning.
2017-02-11 21:42:43 +00:00
Kp 40f5ad42d1 Use PUT_INTEL_INT to handle alignment when updating bitmap size 2017-02-11 21:42:43 +00:00
Kp 17208cca79 Disallow int for vm_distance_squared 2017-02-11 21:42:43 +00:00
Kp d8638c6c89 Pass canvas to UP_ARROW_MARKER, DOWN_ARROW_MARKER 2017-02-11 21:42:43 +00:00
Kp 6b8f08142f Pass canvas to LINE_SPACING
Macro LINE_SPACING previously used global grd_curcanv implicitly.
Change it to take a canvas argument.  Change all callers to pass
grd_curcanv, so that usage is explicit.
2017-02-11 21:42:42 +00:00