Commit graph

668 commits

Author SHA1 Message Date
Kp 180999eed1 Fix crash loading player.ngp with bare equal 2014-12-22 04:35:48 +00:00
Kp 45af2bb137 Move d_fname helper methods to base class ntstring 2014-12-22 04:35:47 +00:00
Kp 0e45146202 Return unique_ptr from ui_gadget_add 2014-12-20 04:36:12 +00:00
Kp 3f84b8e165 Move valptridx checks inline 2014-12-20 04:36:10 +00:00
Kp 2766114959 Make PHYSFSX_gets_line_t::line_t be array<> 2014-12-20 04:36:10 +00:00
Kp c53a8cc30f Initialize buttontext in UI_KEYPAD constructor 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 c43feee61d Return unique_ptr from ui_add_gadget_listbox 2014-12-20 04:36:10 +00:00
Kp 1d363bbd5d Return unique_ptr from ui_add_gadget_scrollbar 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 e1bb249176 Remove unused UI_GADGET_KEYTRAP 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 f1885ee4d4 Pass creation context to new windows 2014-12-20 04:36:09 +00:00
Kp cf5e5620aa Deduce input box text length 2014-12-20 04:36:09 +00:00
Kp f0c8482b8b Use unique_ptr for trigger_dialog 2014-12-20 04:36:08 +00:00
Kp cf1d08c1b6 Use unique_ptr for hostage_dialog 2014-12-20 04:36:08 +00:00
Kp b9ceceda3a Use array<char,100> for UI_KEYPAD::buttontext 2014-12-20 04:36:08 +00:00
Kp 9f44ccbbf3 Fix WORDS_NEED_ALIGNMENT build of interp.cpp 2014-12-19 02:19:29 +00:00
Kp 137746e442 List initialize credits to zero 2014-12-18 04:12:38 +00:00
Kp 3423d94729 Disallow converting valptridx to void* 2014-12-14 05:23:00 +00:00
Kp 80aa48efb4 Pass digi_*_start_sound soundobj as sound_object* 2014-12-14 05:22:59 +00:00
Kp 2c2b6c67d2 Use array<> for g3ds_tmap::verts 2014-12-13 17:46:55 +00:00
Kp 84e3721ef0 Use partial_range for render list 2014-12-13 16:57:09 +00:00
Kp 6e24954a97 Mark warn_printf static 2014-12-13 04:10:58 +00:00
Kp 7b234da185 Make digi_max_channels const 2014-12-11 02:35:55 +00:00
Kp 307ad30433 Remove unused digi_*_is_sound_playing 2014-12-11 02:34:54 +00:00
Kp 4d17f4e208 Remove unused r/g/b members of g3ds_vertex 2014-12-11 02:34:20 +00:00
Kp f91a378f6e Remove write-only per2_flag 2014-12-11 02:34:13 +00:00
Bradley Bell 73690ed525 always_inline d_debugbreak() so that debugger stops in the source instead of dxxerror.h 2014-12-07 19:03:41 -08:00
Kp 33c118f999 Enable Int3 as d_debugbreak
Change Int3 from a no-op to a platform-specific trap to debugger.

Requested by btb: https://github.com/dxx-rebirth/dxx-rebirth/pull/18
2014-12-07 23:43:51 +00:00
Kp bb8445f70c Fix some -Wsign-compare warnings 2014-12-05 04:11:37 +00:00
Bradley Bell fdf70b017e <string> required for std::string 2014-12-04 18:11:57 -08:00
Kp 8b3d9b9d31 Bypass NULL check copying valptr_t 2014-12-02 04:36:19 +00:00
Kp 3097a5b247 Pass gr_bitblt_find_transparent_area arg by & 2014-12-02 03:35:01 +00:00
Kp c990701d87 Pass show_fullscr arg by & 2014-12-02 03:35:01 +00:00
Kp c89e3b7452 Pass gr_bitmapm arg as & 2014-12-02 03:35:01 +00:00
Kp 355df375a0 Pass gr_bitmap arg as & 2014-12-02 03:35:01 +00:00
Kp 6334327ccc Remove unused gr_bm_bitblt 2014-12-02 03:35:01 +00:00
Kp 0375876a08 Pass gr_bm_ubitbltm arg by & 2014-12-02 03:35:01 +00:00
Kp 95539512d5 Pass pcx_read_bitmap arg by & 2014-12-02 03:35:01 +00:00
Kp 31d6b151da Pass gr_bm_ubitblt arg by & 2014-12-02 03:35:01 +00:00
Kp 15f9d5d3f5 Pass ogl_ubitblt arg by & 2014-12-02 03:35:01 +00:00
Kp e7aae37c8d Pass ogl_ubitblt_i arg by & 2014-12-02 03:35:01 +00:00
Kp 7031c809fc Pass gr_ubitmapm arg by & 2014-12-02 03:35:01 +00:00
Kp 5eddc2c197 Make bitmap bm_data const where easy 2014-12-02 03:24:38 +00:00
Kp 690dec3342 Workaround compilers mishandling template-template arguments
Visual Studio 2013 Update 4 and Clang 3.4 fail to parse
valptridx_template_t related argument lists because they misinterpret
the unspecialized inner template name as a reference to the current
specialization.  This seems to be nonconforming in C++11.

All gcc versions supported by Rebirth parse this sample program
correctly, but neither Visual Studio nor clang accept it.

    template <template <typename> class>
    struct A
    {
    };

    template <typename>
    struct B
    {
	    B(A<B>);
    };

In <https://stackoverflow.com/questions/17687459/clang-not-accepting-use-of-template-template-parameter-when-using-crtp>, a user saw a similar failure and received the answer:
    Your code is legal.

    From the C++11 Standard, section 14.6.1:

	Like normal (non-template) classes, class templates have an injected-class-name (Clause 9). The injected-class-name can be used as a template-name or a type-name. When it is used with a template-argument-list, as a template-argument for a template template-parameter, or as the final identifier in the elaborated-type- specifier of a friend class template declaration, it refers to the class template itself.

    Looks like your version of clang is still implementing the old rule.

This failure was first seen with Visual Studio 2013, but ignored because
Visual Studio has so many other problems parsing Rebirth.  Now that it
has been reported to affect clang as well, a workaround is clearly
needed.  A fix was suggested by btb
<2f9543f981>,
but that fix breaks gcc.

Rewrite the valptridx_template_t parameter passing to avoid mentioning
unspecialized template names as template parameters while defining the
class used as the parameter.

Reported by btb (clang): https://github.com/dxx-rebirth/dxx-rebirth/pull/12
2014-11-30 23:44:52 +00:00
Kp ea535b0e38 Pass gr_rle_expand_scanline arg as const 2014-11-30 22:09:22 +00:00
Kp 706782b275 Pass gr_rle_getsize arg as const 2014-11-30 22:09:22 +00:00
Kp 9b2ef9cfa4 Pass gr_rle_expand_scanline_generic arg by & 2014-11-30 22:09:22 +00:00
Kp 2697918223 Pass gr_bm_pixel arg by & 2014-11-30 22:09:22 +00:00
Kp 0b1aa34c43 Pass gr_set_super_transparent arg by &
Flip name of the boolean to match its function.
2014-11-30 22:09:21 +00:00
Kp 26f4aaa51b Pass gr_set_transparent arg by & 2014-11-30 22:09:21 +00:00
Kp e5acd8056d Pass gr_set_bitmap_flags arg by & 2014-11-30 22:09:21 +00:00
Kp efa7566821 Pass colormap as array<> 2014-11-30 22:09:21 +00:00
Kp d0abc13c94 Pass gr_create_sub_bitmap arg by & 2014-11-30 22:09:21 +00:00
Kp ef539be1ab Pass gr_init_bitmap_data arg by & 2014-11-30 22:09:21 +00:00
Kp f6dde1c593 Pass gr_init_bitmap_alloc arg by & 2014-11-30 22:09:21 +00:00
Kp 53ce29e789 Pass gr_init_bitmap arg by & 2014-11-30 22:09:20 +00:00
Kp 594c597621 Pass gr_init_bitmap_data arg by & 2014-11-30 22:09:20 +00:00
Kp 0672cdff1b Pass gr_set_bitmap_data grs_bitmap by & 2014-11-30 22:09:20 +00:00
Kp 97332b848c Pass gr_free_bitmap_data arg by & 2014-11-30 22:09:20 +00:00
Kp 0236c237ed Pass ogl_freebmtexture arg by & 2014-11-30 22:09:20 +00:00
Kp a86313e746 Pass ogl_init_texture arg by & 2014-11-30 22:09:19 +00:00
Kp bba9d90347 Use subscript notation in grs_bitmap bm_data 2014-11-30 22:09:19 +00:00
Kp 0790eda153 Use new/delete for grs_screen 2014-11-30 22:09:19 +00:00
Kp b4acc5b858 Pass gr_ubitmap arg by & 2014-11-30 22:09:19 +00:00
Kp 166f15617d Pass ogl_ubitmapm_cs arg by & 2014-11-30 22:09:18 +00:00
Kp 4cadc18e52 Pass merge_textures_new arg by & 2014-11-30 22:09:18 +00:00
Kp 968f7ddc97 Pass gr_gpixel arg by & 2014-11-30 22:09:18 +00:00
Kp ad3a240958 Pass ogl_ugpixel arg by & 2014-11-30 22:09:18 +00:00
Kp 634f97e8d2 Pass tmap drawer grs_bitmap by & 2014-11-30 22:09:18 +00:00
Kp dd4a0db47f Pass rle_expand_texture arg as const & 2014-11-30 22:09:17 +00:00
Kp 2c07191681 Pass ntexture_map_lighted_linear arg by const & 2014-11-30 22:09:17 +00:00
Kp f89b57047a Pass g3_draw_bitmap grs_bitmap by & 2014-11-30 22:09:17 +00:00
Kp 06b384e349 Pass scale_bitmap arg by & 2014-11-30 22:09:17 +00:00
Kp e7c0c639aa Include <memory>, not <utility> for std::addressof
Including utility works on Linux, but apparently fails on OS X 10.10.
Switch to <memory>, which also works on Linux, and which btb reports
works on OS X.

Reported by btb: https://github.com/dxx-rebirth/dxx-rebirth/pull/12
Fixed by btb: 2f4b2f031c
2014-11-30 17:04:49 +00:00
Kp d149b9b9e8 Include <string> in partial_range.h for std::string
Reported by btb: https://github.com/dxx-rebirth/dxx-rebirth/pull/12
Fixed by btb: 93a80e56cd
2014-11-30 17:00:03 +00:00
Kp 5f38c85e02 Improve compiler error messages on failed const T* -> T* conversions 2014-11-27 03:25:21 +00:00
Kp 327fe23586 Fix -Wnarrowing in valptridx operator- 2014-11-26 03:00:58 +00:00
Kp 388dfb98a0 Move valptridx helpers out of macro 2014-11-25 04:02:01 +00:00
Kp d0090225b3 Fix segment_first/object_first mismatch 2014-11-23 21:41:30 +00:00
Kp d63be88eb0 Propagate use of vsegptridx_t 2014-11-23 04:58:45 +00:00
Kp 4ad784028b Pass scale_bitmap points in array<grs_point, 3> 2014-11-21 03:34:50 +00:00
Kp e56fe128e0 Remove DosShell 2014-11-19 04:19:43 +00:00
Kp 57ed5c24fd Add developer option to test header completeness 2014-11-17 04:02:25 +00:00
Kp c72ec87296 Redirect g3_end_frame->ogl_end_frame 2014-11-16 19:14:51 +00:00
Kp cdf0d887f6 Move temporary points onto stack 2014-11-16 19:14:51 +00:00
Kp 855b249555 Make g3s_point const only in OGL 2014-11-16 19:14:51 +00:00
Kp 11769c5fc0 Pass draw_tmap* arg as const 2014-11-16 19:14:50 +00:00
Kp 501f5e8557 Narrow some graphics parameters 2014-11-15 03:31:41 +00:00
Kp 2df4bea9b5 Use range_for in rle 2014-11-15 03:10:09 +00:00
Kp c2d308807c Make various g3s_point * const 2014-11-15 03:10:06 +00:00
Kp 3a73f2c9d0 Pass g3_draw_line as const 2014-11-15 03:10:04 +00:00
Kp 8e0d85b666 Pass g3_draw_tmap arg by & 2014-11-13 03:44:04 +00:00
Kp 841e037e15 Pass ogl_loadbmtexture_f arg by & 2014-11-13 03:42:41 +00:00
Kp 9baeb31162 Pass rle_end arg by & 2014-11-13 03:41:38 +00:00
Kp baa39fe8f7 Add g3_rotate_point that returns result 2014-11-13 03:41:29 +00:00
Kp d9e42e6bf3 Pass g3_draw_rod_tmap arg by & 2014-11-13 03:34:42 +00:00
Kp 207dceba33 Pass g3_draw_sphere arg by & 2014-11-13 03:22:49 +00:00
Kp ff13155fc2 Pass g3_project_point arg by & 2014-11-13 03:21:33 +00:00
Kp aba13a0bd0 Pass g3_draw_line arg by & 2014-11-13 03:19:52 +00:00
Kp c5fd8cb859 Pass g3_code_point arg by & 2014-11-13 03:16:17 +00:00
Kp fda3fc33f3 Skip unnecessary sqrt for omega cannon 2014-11-11 04:25:47 +00:00
Kp e2741ce899 Add vm_extract_angles_matrix that returns result 2014-11-04 01:32:43 +00:00
Kp df6b4bd783 Add vm_vec_rotate that returns result 2014-11-04 01:31:22 +00:00
Kp 3a24b20e15 Add vm_vector_2_matrix that returns result 2014-11-04 01:27:55 +00:00
Kp 141a7602d0 Add vm_angles_2_matrix that returns result 2014-11-04 01:24:08 +00:00
Kp fd9a9a5166 Pass rotate_segment_new arg by & 2014-11-04 01:23:01 +00:00
Kp c97f1136fa Pass AttachSegmentNewAng arg by & 2014-11-04 01:20:07 +00:00
Kp f5717c7db7 Pass med_rotate_segment vms_matrix by & 2014-11-02 03:44:31 +00:00
Kp fed5d0e90f Add vm_vec_perp that returns result 2014-11-02 03:44:27 +00:00
Kp d76e259db5 Add vm_vec_cross that returns result 2014-11-02 03:44:12 +00:00
Kp 40eb2e6b01 Add vm_vec_scale_add that returns result 2014-11-02 03:43:57 +00:00
Kp b32f5e5df3 Add vm_vec_copy_scale that returns result 2014-11-02 03:43:47 +00:00
Kp 697bdcf078 Add vm_vec_normal that returns result 2014-11-01 03:17:48 +00:00
Kp 66a4b8b061 Add vm_vec_avg that returns result 2014-10-30 03:18:38 +00:00
Kp a09fcd7753 Add vm_vec_add that returns result 2014-10-30 03:11:06 +00:00
Kp 5bb9c88979 Add vm_vec_sub that returns result 2014-10-29 03:24:31 +00:00
Kp 22ff219877 Factor out dividing vms_vector elements by a fix 2014-10-29 03:10:30 +00:00
Kp 53aa70cecb Use vsegptridx_t 2014-10-28 03:08:51 +00:00
Kp b8b81ba5fc Move PHYSFSX_writeAngleVec to gamesave.cpp 2014-10-26 22:56:50 +00:00
Kp bf57d03930 Move PHYSFSX_writeMatrix to gamesave.cpp 2014-10-26 22:56:50 +00:00
Kp 44084ff261 Pass PHYSFSX_readVector vector by & 2014-10-26 22:08:58 +00:00
Kp af318b9eb2 Pass PHYSFSX_writeVector vector by const & 2014-10-26 22:08:58 +00:00
Kp f465c7972f Move PHYSFSX_readVectorX to ai.cpp 2014-10-26 22:08:58 +00:00
Kp 69c052ccf6 Pass vms_vector_swap arg by & 2014-10-26 22:08:58 +00:00
Kp f0d4c50fcc Pass create_curve arg by & 2014-10-26 22:08:58 +00:00
Kp ae6502f86b Pass set_matrix_based_on_side arg by & 2014-10-26 22:01:18 +00:00
Kp fc5b50c433 Pass med_create_new_segment arg by & 2014-10-26 22:01:13 +00:00
Kp 0e0eaff221 Pass g3_calc_point_depth arg by & 2014-10-26 22:01:04 +00:00
Kp 09835590f3 Pass g3_set_view_matrix arg by & 2014-10-26 22:01:00 +00:00
Kp c7b2735e74 Mark vm_vector_2_matrix vectors const 2014-10-26 21:37:13 +00:00
Kp 153ec60924 Remove unused vm_vec_to_angles 2014-10-26 21:36:57 +00:00
Kp 258d6b4a04 Pass place_object vms_vector arg by & 2014-10-26 21:36:10 +00:00
Kp 666dd75629 Return objptridx_t from find_escort 2014-10-25 16:40:20 +00:00
Kp 359fcb3ce7 Remove unused set_chase_matrix 2014-10-25 16:40:00 +00:00
Kp 019b572c0e Remove #define Segment2s Segments 2014-10-21 03:15:12 +00:00
Kp 32cb662f66 Remove unused s2s2(S) 2014-10-21 03:14:21 +00:00
Kp e7e23eb92e Make unused_window_userdata_t const 2014-10-16 02:30:29 +00:00
Kp fb641b3250 Wrap object iteration idiom 2014-10-12 23:05:46 +00:00
Kp c704cc9fc9 Add const void* conversion to various types
Add operator const void*() to prevent accidental use of pointer
comparison.  With the overload present, comparing two objects triggers
an ambiguous conversion to pointer, instead of comparing the pointer
values.
2014-10-12 22:11:28 +00:00
Kp c928c09884 Skip sqrt for homing check 2014-10-10 02:41:51 +00:00
Kp a8f853aa7a Pass d_event arg by const& 2014-10-04 22:36:13 +00:00
Kp 649704a37c Pass med_create_segment arg as & 2014-10-02 03:02:37 +00:00
Kp 51470e5b4a Pass sort_seg_list arg as & 2014-10-02 03:02:37 +00:00
Kp ca3a4524a2 Pass med_extract_*_vector_from_segment_side arg as & 2014-10-02 03:02:37 +00:00
Kp ad562e14a4 Remove unused curve_dir 2014-10-02 03:02:36 +00:00