Commit graph

566 commits

Author SHA1 Message Date
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
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