Commit graph

575 commits

Author SHA1 Message Date
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
Kp 07be2e3951 Pass curve_dist p0 by & 2014-10-02 03:02:36 +00:00
Kp 2ceabf5034 Pass g3_add_delta_vec arg by & 2014-10-02 03:02:36 +00:00
Kp adae9888b9 Pass g3_rotate_delta_vec arg by & 2014-10-02 03:02:36 +00:00
Kp 8aa9f071e6 Pass med_point_2_vec v by & 2014-10-02 03:02:36 +00:00
Kp d0dd976fdb Pass g3_point_2_vec v by & 2014-10-02 03:02:36 +00:00
Kp 2434b20445 Pass g3_draw_bitmap pos by const & 2014-10-02 03:02:35 +00:00
Kp 68211d20d3 Pass g3_rotate_point arg by & 2014-10-02 03:02:35 +00:00
Kp ade7aa2a5f Pass g3_start_instance_angles arg by const & 2014-10-02 03:02:35 +00:00
Kp dc5a0bcb98 Pass g3_start_instance_matrix arg by & 2014-10-02 03:02:35 +00:00
Kp b2ab0e48da Pass g3_check_normal_facing arg by & 2014-10-02 03:02:35 +00:00
Kp 6b93309ae5 Pass vm_vec_make arg by & 2014-10-02 03:02:35 +00:00
Kp ff37e54087 Change Vertices to array<vertex> 2014-10-02 03:02:34 +00:00
Kp 04de7920ed Pass vm_dist_to_plane arg by & 2014-10-01 02:28:42 +00:00
Kp b65e9ecb61 Pass vm_extract_angles_vector arg by & 2014-10-01 02:28:42 +00:00
Kp faeeef9b52 Pass vm_extract_angles_matrix arg by & 2014-10-01 02:28:42 +00:00
Kp 83ccb15459 Pass vm_matrix_x_matrix arg by & 2014-10-01 02:28:42 +00:00
Kp 5af79382a5 Pass vm_vec_rotate arg by & 2014-10-01 02:28:42 +00:00
Kp 99f681c8ea Pass vm_vector_2_matrix arg by & 2014-10-01 02:28:42 +00:00
Kp e6cb533007 Pass vm_vec_ang_2_matrix arg by & 2014-10-01 02:28:42 +00:00
Kp d238b4a562 Pass vm_angles_2_matrix arg by & 2014-10-01 02:28:42 +00:00
Kp b26f385b0e Pass vm_vec_delta_ang_norm arg by & 2014-10-01 02:28:42 +00:00
Kp feb7d028e4 Pass vm_vec_delta_ang arg by & 2014-10-01 02:28:42 +00:00
Kp ee7e23482e Pass vm_vec_perp arg by & 2014-10-01 02:28:42 +00:00
Kp f509b49dc3 Pass vm_vec_normal arg by & 2014-10-01 02:28:42 +00:00
Kp 7ed6a9a250 Rename vm_vec_crossprod -> vm_vec_cross 2014-10-01 02:28:42 +00:00
Kp a99466f8c8 Pass vm_vec_crossprod arg by & 2014-10-01 02:28:42 +00:00
Kp 73545f1dab Pass vm_vec_normalized_dir_quick arg by & 2014-10-01 02:28:41 +00:00
Kp b5f443f21e Pass vm_vec_normalized_dir arg by & 2014-10-01 02:28:41 +00:00
Kp 63eeb60be1 Pass vm_vec_copy_normalize_quick arg by & 2014-10-01 02:28:41 +00:00
Kp 0b691365a7 Pass vm_vec_copy_normalize arg by & 2014-10-01 02:28:41 +00:00
Kp 1fff2db9a8 Pass vm_vec_dist_quick arg by & 2014-10-01 02:28:41 +00:00
Kp ac39749382 Pass vm_vec_dist arg by & 2014-10-01 02:28:41 +00:00
Kp c6aba5bb19 Remove unnecessary string_array_t constructor 2014-10-01 02:22:11 +00:00
Kp 2ad59572e0 Use vector to manage string array memory 2014-09-29 00:02:43 +00:00
Kp 05a91f9b58 Pass vm_vec_scale_add2 arguments by & 2014-09-28 21:43:14 +00:00
Kp 4104bf4f11 Pass vm_vec_scale_add arguments by & 2014-09-28 21:43:14 +00:00
Kp b5949cc4a0 Pass vm_vec_copy_scale arguments by & 2014-09-28 21:43:14 +00:00
Kp 7dff3c7fa9 Pass vm_vec_avg arguments by & 2014-09-28 21:43:01 +00:00
Kp d6c06e40e7 Pass vm_vec_sub2 arguments by & 2014-09-28 21:43:00 +00:00
Kp 0b2636d535 Pass vm_vec_add2 arguments by & 2014-09-28 21:43:00 +00:00
Kp ba0b91554c Remove vm_vec_dotprod -> vm_vec_dot redirect 2014-09-28 21:41:59 +00:00
Kp 0e65268037 Detect writing pointers 2014-09-28 21:41:06 +00:00
Kp 6b7b991bc4 Detect writing excessive data from non-integers 2014-09-28 21:37:37 +00:00
Kp 00b59c3058 Pass vm_vec_dot arguments by & 2014-09-28 21:11:48 +00:00
Kp 321bbe37d8 Pass vm_vec_sub arguments by & 2014-09-28 21:11:45 +00:00
Kp 2107b52764 Pass vm_vec_add arguments by & 2014-09-28 21:11:40 +00:00
Kp 6c30bb5d98 Pass vm_vec_scale2 dest by & 2014-09-28 21:11:36 +00:00
Kp 74925e9b45 Pass vm_vec_scale dest by & 2014-09-28 21:11:05 +00:00
Kp 69968349cb Pass vm_transpose_matrix m by & 2014-09-28 21:11:04 +00:00
Kp f12273746f Pass vm_vec_zero v by & 2014-09-28 21:11:04 +00:00
Kp a620a59bda Pass vm_vec_normalize_quick v by & 2014-09-28 21:11:04 +00:00
Kp a550673639 Pass vm_vec_normalize v by & 2014-09-28 21:11:03 +00:00
Kp dfdd4ddd29 Pass vm_vec_mag_quick v by const& 2014-09-28 21:11:03 +00:00
Kp 1e6bf36e20 Pass vm_vec_mag v by const& 2014-09-28 21:11:03 +00:00
Kp 7ddba1d15e Pass vm_vec_negate v by reference 2014-09-28 21:09:37 +00:00
Kp 89a77c4869 Remove never used vm_vec_avg4 2014-09-28 21:09:32 +00:00
Kp c0023cad51 Fix memory leak writing hoard data 2014-09-27 23:14:50 +00:00
Kp dc511d0a5c Pass array<> to iff_read_animbrush 2014-09-27 23:06:33 +00:00
Kp 8be687984b Remove unneeded rle_position_t constructor 2014-09-26 02:57:03 +00:00
Kp 3f3b8084d1 Fix non-gcc build of physfsx.h 2014-09-22 03:34:08 +00:00
Kp 703f60ac3f Fix -Wtype-limits warnings 2014-09-21 21:41:55 +00:00
Kp 2c8a07cfa7 Use vector<uint8_t> to manage current_music_hndlbuf 2014-09-20 23:14:03 +00:00
Kp ba907fd6e3 Eliminate message<...> for common UDT serialization 2014-09-20 23:04:16 +00:00
Kp d889dd9b7d Pass serial::pad by-value 2014-09-20 22:44:46 +00:00
Kp fece9f51a4 Optimize serial using __builtin_bswap if available 2014-09-20 22:15:32 +00:00
Kp c7d9477fca Optimize serial copies of byte arrays
Switch from a range_for copying bytes to use of copy_n.
2014-09-20 18:14:00 +00:00
Kp d263380179 Force partial_range offset/length to size_t 2014-09-19 02:58:25 +00:00
Kp e22923e004 Use unique_ptr for grs_canvas 2014-09-17 02:45:12 +00:00
Kp cdda53a2e8 Compact pad_storage 2014-09-17 02:44:45 +00:00
Kp 5571cf75ef Ignore -udp_myport requests for reserved port 2014-09-17 02:16:33 +00:00
Kp 039bf2f0b7 Fix crash on failure to create afterburner blob
Fix crash on failure to recreate thief.
2014-09-13 22:01:17 +00:00
Kp 41bb341777 Split valptridx_t into pieces 2014-09-12 03:22:34 +00:00
Kp 0387a2c771 Disallow using RAIIdmem::operator T* on rvalues 2014-09-07 23:56:37 +00:00
Kp 7d166a70e0 Prevent accidental RAIIdmem construction 2014-09-07 23:56:37 +00:00
Kp 425c4242c1 Use std::string for UI_GADGET_BUTTON text 2014-09-07 21:21:57 +00:00
Kp e8f4b20d1d Use special type for PHYSFSX_fgets 2014-09-07 20:07:20 +00:00
Kp 07176ece8b Add Valgrind poison stubs 2014-09-07 19:39:18 +00:00
Kp a02f78a171 Move saving window pointer into helper 2014-09-07 19:04:07 +00:00
Kp ff31905181 Use unique_ptr for grs_subcanvas 2014-09-07 19:04:06 +00:00
Kp 8321b90a9a Use C++ inheritance for UI gadgets 2014-09-07 19:04:06 +00:00
Kp 5576a65dac Check length of g3 tmap inputs 2014-09-04 03:02:21 +00:00
Kp 8c527c8e0a Name serial unaligned_storage union 2014-09-04 01:57:04 +00:00
Kp e503a64e31 Support other endian serialization 2014-09-04 01:53:11 +00:00
Kp df3f2fe2fe Simplify ogl/sdl texture mapping 2014-09-02 22:13:15 +00:00
Kp efbd624f61 Disallow implicitly copying bytebuffer_t 2014-09-02 22:11:31 +00:00
Kp cdaa4a8329 Make g3_check_and_draw_* inline 2014-08-27 03:16:51 +00:00
Kp f9e9f0faa9 Use RAIIdmem for gadgets 2014-08-27 03:15:06 +00:00
Kp 1f0bf71c5e Fix off-by-one in PHYSFSX_puts_literal 2014-08-26 02:41:33 +00:00
Kp 94550355a8 Use make_unique instead of bare new 2014-08-24 18:28:09 +00:00
Kp b95759aecc Propagate use of objptridx 2014-08-23 23:53:56 +00:00
Kp eefdce5b04 Reduce nesting of vms_vector::{x,y,z} 2014-08-22 02:27:13 +00:00
Kp af0759af59 Remove vms_vector::xyz 2014-08-22 02:27:00 +00:00
Kp c102a507df Move render Rotated_last into g3s_point p3_pad 2014-08-20 01:28:22 +00:00
Kp 774d01ddcc Use enable_if dispatching for serial message_type 2014-08-17 23:24:24 +00:00
Kp f5a85b0f65 Enable converting vvalptridx->valptridx for subtypes 2014-08-17 22:09:32 +00:00
Kp 3ea6b0eb18 Explicitly delete nullptr construction of valptridx 2014-08-17 20:41:59 +00:00
Kp 66cb80c343 Propagate use of objptridx 2014-08-17 20:31:18 +00:00
Kp 56557a0443 Explicitly delete vvalptridx(valptridx&&) 2014-08-17 19:32:16 +00:00
Kp d74e36507c Propagate NULL arguments to g3_check_and_draw_poly 2014-08-16 21:54:48 +00:00
Kp 353e22d314 Default construct g3s_codes to 0/ff 2014-08-16 18:14:11 +00:00
Kp 2a3176dc98 Use array<> for segment members 2014-08-16 18:14:00 +00:00
Kp 0ec8b6671f Use native int64 math for fixmulaccum 2014-08-16 17:43:56 +00:00
Kp ceeaadb940 Add native int64 to quadint struct 2014-08-16 17:42:34 +00:00
Kp e1cdd44998 Remove unused return value for g3_check_and_draw_poly 2014-08-16 17:35:44 +00:00
Kp 913a095be7 Remove unused return value of g3_draw_tmap 2014-08-16 17:35:44 +00:00
Kp a42a403198 Remove unused return value of g3_draw_morphing_model 2014-08-16 17:35:44 +00:00
Kp 0228b067c1 Remove unused return value of g3_draw_polygon_model 2014-08-16 17:35:44 +00:00
Kp 38c55434e4 Remove Microsoft-specific #define inline
Microsoft compilers currently cannot compile Rebirth, but even if they
could, they now understand the standard keyword inline.
2014-08-16 17:34:09 +00:00
Kp c85819ac94 Forbid d_free on non-POD 2014-08-16 04:18:58 +00:00
Kp 55063abade Use static_assert to reject invalid vvalptridx_t constants 2014-08-13 22:10:20 +00:00
Kp 915b78b5e1 Add vvalptridx_t for always-valid valptridx values 2014-08-13 03:19:12 +00:00
Kp 125d9257be Use special type names for segment/object numbers 2014-08-13 02:57:12 +00:00
Kp bc721dbc8f Remove unused g3_draw_rod_tmap return value 2014-08-12 02:58:46 +00:00
Kp b5693e65e0 Remove serial detail class_type_indirection 2014-08-12 02:56:59 +00:00
Kp 903258f54b Make valptridx constructors ready for constexpr
Wait on constexpr marking since array in <gcc-4.8 is not constexpr.
2014-08-09 17:38:45 +00:00
Kp d13e0c9840 Add compile time check to partial_range 2014-08-09 04:14:59 +00:00
Kp 104333391f Print more information from partial_range_error_t 2014-08-09 03:59:49 +00:00
Kp 9308162c80 Make alloc_vert/free_vert static 2014-08-08 03:02:24 +00:00
Kp 62c656c00c Pass quadint to quad_sqrt 2014-08-08 02:53:57 +00:00
Kp 279d39a2d7 Inline fixdivquadlong 2014-08-08 02:53:26 +00:00
Kp 52527e48ee Optimize out unused g3_set_special_render arguments 2014-08-08 02:52:35 +00:00
Kp b276590998 Change gr_fade_table to array<array<>> 2014-08-08 02:50:27 +00:00
Kp f47aa29cd9 Use color_t for color values 2014-08-08 02:07:47 +00:00
Kp 1560dd43e1 Use unique_ptr for font->ft_bitmaps 2014-08-07 03:09:28 +00:00
Kp fd6a7c218e Use unique_ptr for font->ft_chars 2014-08-07 03:05:48 +00:00
Kp 4acbb40ad7 Use enum for window event result 2014-08-07 02:47:48 +00:00
Kp 5c5eb1f1f7 Let WINDOW_SEND_EVENT return a value 2014-08-05 02:34:06 +00:00
Kp ee32a200ea Change window_create<void> to be non-template 2014-08-05 02:33:40 +00:00
Kp efb8c495f6 Use unique_ptr for hmp_track data 2014-08-05 02:31:03 +00:00
Kp 81cb86f2e3 Use unique_ptr for hmp_file 2014-08-05 02:29:43 +00:00
Kp d9f6e944c9 Use template aliases when available 2014-08-03 03:08:15 +00:00
Kp d667772b21 Move valptridx operator- into DEFINE_VALPTRIDX_SUBTYPE 2014-08-02 00:46:56 +00:00
Kp b29f2ef7bd Replace hashtable with std::map 2014-08-02 00:46:56 +00:00
Kp 9c6cc3b3c9 Allow constructing valptridx_t(index_type) from ~0 2014-08-01 03:34:08 +00:00
Kp f1713f2fec Rewrite DXX_PHYSFS_CHECK_* to avoid if 2014-08-01 03:34:08 +00:00
Kp 0fc376d92a Simplify DXX_VALPTRIDX_STATIC_CHECK 2014-08-01 03:34:08 +00:00
Kp 51fdeea84b Use unique_ptr for model_data 2014-07-26 04:01:35 +00:00
Kp ebb1b70350 Fix polymodel writing on x64
Packed writing a structure containing a pointer, but reading it as an
int, is wrong on x64.
2014-07-26 04:01:35 +00:00
Kp ba05b20c3c Forbid MALLOC of non-POD types 2014-07-25 01:47:21 +00:00
Kp 9778c1a151 Use unique_ptr to manage sub bitmaps 2014-07-22 23:48:24 +00:00
Kp 323e796cd0 Use unique_ptr to manage grs_bitmap 2014-07-22 23:48:24 +00:00
Kp c1d184240d Use unique_ptr to manage fonts 2014-07-22 23:48:23 +00:00
Kp bd1c6d8c5d Reduce header includes of physfsx.h 2014-07-22 23:48:23 +00:00
Kp b4a778ed9d Use DXX_ALWAYS_ERROR_FUNCTION for printf check
Enable printf check without relying on embedded compound statements.
2014-07-19 21:15:01 +00:00
Kp eec1cfdc34 Add <cstdint> to gr.h for old compilers 2014-07-19 18:01:15 +00:00
Kp 3a35179e50 List initialize avg_color_rgb 2014-07-19 03:09:58 +00:00
Kp a4f7f607db List initialize input to vm_vec_zero 2014-07-19 03:09:26 +00:00
Kp d3d457cf19 Pass array<> to gr_list_modes to preserve size information 2014-07-17 03:29:57 +00:00
Kp 07036e7962 Use consistent static on process_buffer(message) 2014-07-16 03:21:04 +00:00
Kp cf75bb6699 Define away printf %s check if __builtin_constant_p not available 2014-07-16 03:14:57 +00:00
Kp 5f9b981380 Move cstring_tie.p init to member initialization 2014-07-16 03:14:51 +00:00
Kp 9f685a0d0a List initialize unicode_frame_buffer 2014-07-16 03:14:04 +00:00
Kp dc87c78fd2 Mark grs_bitmap as prohibit_void_ptr 2014-07-16 03:14:04 +00:00
Kp b97ff9d496 Simplify cstring_tie 2014-07-14 02:27:11 +00:00
Kp 166253f4c2 Compact grs_canvas 2014-07-14 02:17:40 +00:00
Kp 2a8e0a78c6 Use partial_range with RBAudio 2014-07-14 02:17:40 +00:00
Kp afeaa09e9a Replace vm_copy_transpose_matrix with vm_transposed_matrix
Also, delete obsolete broken inlining support.
2014-07-14 02:17:40 +00:00
Kp 4c7249a016 Return vms_matrix from vm_matrix_x_matrix 2014-07-14 02:17:40 +00:00
Kp 03574d0f5e Change vm_vec_* macros to inline functions 2014-07-13 03:43:32 +00:00
Kp 082bb43ede Fold valptridx_t features into template 2014-07-13 03:43:32 +00:00
Kp d94139c79d Remove redundant partial_range iterator specification 2014-07-06 03:34:43 +00:00
Kp 229dbe1b47 Add runtime exception reporting to valptridx 2014-07-05 22:00:08 +00:00
Kp 689c2496d0 Unify IFF palette handling 2014-07-05 03:48:57 +00:00
Matt Vandermeulen 28f307eb85 Fixes #5 - Byteswap header renamed to byteutil, plus sed magic
[Kp: switch to #pragma for byteutil.h]
2014-07-03 02:03:08 +00:00
Kp 7a1b103ed1 Reduce template recursion in serializer 2014-07-02 03:08:44 +00:00
Kp 6222b58bbc Move uvl_list into g3_draw_rod_tmap 2014-07-01 03:10:56 +00:00
Kp b6033c49f2 Use unsigned transparent bitmap bounds 2014-07-01 01:34:16 +00:00
Kp 3abc33d6cc Optimize gr_rle_decode 2014-06-30 23:56:51 +00:00
Kp 8958a0dfbe Remove unnecessary typename usage 2014-06-30 03:25:47 +00:00
Kp d35b021ac6 Fix misspelled C++ guard in loadgl.h 2014-06-28 03:57:57 +00:00
Kp 90300d54d9 Precompute fix_recip table 2014-06-23 04:46:07 +00:00
Kp 7836562a24 Switch serial pad constants to static const 2014-06-22 22:12:17 +00:00
Kp 77ba463614 Compile out unneeded pad initialization 2014-06-22 22:04:23 +00:00
Kp b3c953375c Read lines in blocks 2014-06-22 21:56:03 +00:00
Kp ad3e540b62 Simplify lengthof header 2014-06-22 21:05:08 +00:00
Kp 599520fabb Add operator bool to exact_type<T> 2014-06-22 21:03:23 +00:00
Kp 794572b771 Enable using count_array_t<T,S> with prohibit_void_ptr<T> 2014-06-22 19:06:52 +00:00
Kp dc42dad15a Check that types passed to PHYSFS_read are POD
More is needed to trap some misuses, but those traps flag existing code.
2014-06-22 18:52:00 +00:00
Kp e6a691c5c7 Check that types passed to PHYSFS_write are POD
More is needed to trap some misuses, but those traps flag existing code.
2014-06-22 03:54:35 +00:00
Kp f6631ce742 Unpack various structures
Prohibit conversion to void* to avoid accidental use with memcpy
2014-06-21 23:56:27 +00:00
Kp 57a3541424 Fix serial::pad for gcc 4.5 2014-06-21 23:21:30 +00:00
Kp c016ace90b Fix partial_range.h for gcc 4.5 2014-06-21 23:21:03 +00:00
Kp 2e95d8c0a8 Use array<> for Walls 2014-06-20 02:59:53 +00:00
Kp d3ecca360c Read matcen_info structures carefully 2014-06-20 02:59:53 +00:00
Kp cb498b3b38 Make padding value customizable 2014-06-20 02:59:53 +00:00
Kp 958f452d2e Improve UDT static_assert messages 2014-06-15 22:19:26 +00:00
Kp 488e46b562 Return reasonable type from deleted partial_range
Avoid secondary errors related to binding void as a range.
2014-06-14 01:15:33 +00:00
Kp b5701bf202 Add __attribute__((warn_unused_result)) to partial_range 2014-06-08 00:05:33 +00:00
Kp 5c14cf870f Add optional offset to partial_range 2014-06-08 00:05:33 +00:00
Kp 0257b9ca1c Disallow using signed offsets with partial_range 2014-06-08 00:05:32 +00:00
zico ad7cb106bc Changed custom D1X license to GPLv3 2014-06-01 19:55:23 +02:00
Kp 9b0fb5da0a Write eclip structures carefully 2014-02-01 18:55:18 +00:00
Kp 917ef39258 Use array<> for Vclip 2014-01-23 03:48:25 +00:00