Commit graph

90 commits

Author SHA1 Message Date
Kp c636dc4b98 Convert various static const expressions to constexpr 2016-07-16 16:52:04 +00:00
Kp b282bea173 Rewrite simple integer casts from C style to static_cast<>
This pass only targets commonly used standard types.

s/(\(\s*\(\(un\)\?signed\|int\|char\|short\|long\|float\|double\|s\?size_t\|\(u\?int[[:digit:]]\+_t\)\)\)\s*)\s*(/static_cast<\1>(/g
2016-06-05 01:04:26 +00:00
Kp 7fdce88558 Add parentheses around target of simple casts
C casts do not require parentheses.  C++ casts require grouping around
the target.  Prepare for conversion to C++ casts by adding otherwise
unnecessary parentheses around the target of simple C casts.

This pass does not attempt to process expressions that involve
any subexpression that can nest arbitrarily, such as parentheses or
brackets.  It also works only on commonly used standard types.

	(int) a->b;	// changed
	(int) a[b];	// not changed

s/\((\s*\(\(un\)\?signed\|int\|char\|short\|long\|float\|double\|s\?size_t\|\(u\?int[[:digit:]]\+_t\)\)\s*\**\s*)\s*\)\([&+-]\?\)\([[:alnum:]_.]\+\s*->\s*\)*\([[:alnum:]_.]\+\)\(\s*\([];+>)*\/^%,|&<>]\)\|$\|\(\s*-\s*[^>]\)\)/\1(\5\6\7)\8/g
2016-06-05 01:04:25 +00:00
Kp 604778248d Fix -Wshadow warning in get_chunks_state
get_chunks_state has a member named `data` and its constructor took a
parameter named `data`.  This is unambiguous in the language, but causes
a warning from gcc's -Wshadow when building with WORDS_NEED_ALIGNMENT.
Rename the parameter to eliminate the warning.

Reported-by: derhass <https://github.com/dxx-rebirth/dxx-rebirth/pull/196>
2016-05-29 17:46:32 +00:00
Kp daaad3b049 Factor out 3d interpreter functions 2016-03-19 19:08:10 +00:00
Kp 27cef20eb3 Move namespace dsx handling to dsx-ns.h 2016-03-19 19:08:10 +00:00
Kp 4a5b2c0999 Remove morphing model stub glow_num support
Simplify the code by removing the dead path.
2016-03-04 04:12:35 +00:00
Kp f4e1ebb576 Remove unnecessary gr_setcolor calls 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 d2d9d2bf5a Unify op_flatpoly color setup 2016-02-12 04:02:28 +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 26e948d5f1 Uninline namespace dsx 2015-12-13 18:00:49 +00:00
Kp dc8c0323d8 Uninline namespace dcx 2015-12-13 18:00:49 +00:00
Kp d4857f4257 Use inline namespace dsx for similar/3d 2015-12-13 18:00:48 +00:00
derhass 85691b3784 Restore inclusion of byteutil.h in similiar/3d/interp.cpp
4a84320817b9e02f86f3ec2dd2678e3367cddcc removed lots of inclusions of
byteutil.h in various source files. However, when building with
WORDS_NEED_ALIGNMENT, interp.cpp makes use of the INTEL_SHORT and
GET_INTEL_SHORT macros defined there.

Fixes: c4a8432081  ("Remove WORDS_NEED_ALIGNMENT memcpy src cast to const uint8_t*")
2015-09-29 18:36:01 +00:00
Kp fcab519693 Remove extern for vms_vector_swap
It is only used in the interpreter.
2015-09-19 23:04:36 +00:00
Kp c4a8432081 Remove WORDS_NEED_ALIGNMENT memcpy src cast to const uint8_t*
The cast provokes a warning on systems that require alignment, so remove
it.  memcpy takes const void* input, so the cast is unnecessary.

Reported-by: MattWatt <https://github.com/dxx-rebirth/dxx-rebirth/issues/119>
2015-09-13 21:02:19 +00:00
Kp 3905f1a668 Enable -Wcast-qual 2015-06-13 22:42:21 +00:00
Kp ae604225c8 Fix gcc-4.6 interpreter build
gcc-4.6 chokes on `static constexpr type value{};`, but accepts
`static constexpr auto value = type{};`

Fixes: 77ec36b9c3 ("Convert g3_draw_morphing_model to class")
2015-05-22 03:33:19 +00:00
Kp 6792c1bc4b Enable -Wunused-parameter 2015-04-26 20:15:56 +00:00
Kp 3da71f79cc Move WORDS_BIGENDIAN functions into #ifdef guard 2015-03-22 18:49:21 +00:00
Kp c5f6a115ec Add <stdexcept> for files that throw std::runtime_error 2015-03-22 04:16:49 +00:00
Kp 3a37b41192 Fix startup trap with D1 shareware data
D1 shareware models handle textures in a way that requires starting
highest_texture_num at -1.

Reported-by: derhass <https://github.com/dxx-rebirth/dxx-rebirth/issues/46>
Fixes: 68be3baeca ("Track highest_texture_num locally")
2015-03-20 03:30:20 +00:00
Kp cb83156132 Fix -O0 build
btb reports that clang fails to link
<77ec36b9c3 (commitcomment-9992820)>.
When building at -O0, static member glow_num has its address referenced
because the compiler does not inline non-static method
glow_num_stub::operator=.  Add a definition of this symbol.

Fixes: 77ec36b9c3 ("Convert g3_draw_morphing_model to class")
2015-03-03 04:36:16 +00:00
Kp 14530d43ea Guard g3d_interp_outline by defined(EDITOR) 2015-02-28 22:34:07 +00:00
Kp 2397bc9a02 Cache &Polygon_models[N_polygon_models] 2015-02-28 22:34:07 +00:00
Kp 86800b1515 Simplify op_sortnorm 2015-02-28 22:34:06 +00:00
Kp 68be3baeca Track highest_texture_num locally 2015-02-28 22:34:06 +00:00
Kp 87516a5b1b Always update glow_num
If !glow_values, the update will be ignored later.
2015-02-28 22:34:06 +00:00
Kp 1833ea6bfa Factor out polymodel init_sub switch 2015-02-28 22:34:06 +00:00
Kp c0a8f598c2 Factor out polymodel morph switch 2015-02-28 22:34:06 +00:00
Kp c0eb4391ba Factor out polymodel draw switch 2015-02-28 22:34:06 +00:00
Kp 655dc60850 Factor out polymodel color switch 2015-02-28 22:34:06 +00:00
Kp aafe252c6d Factor out polymodel chunk switch 2015-02-28 22:34:06 +00:00
Kp 2085fcca34 Factor out record size 2015-02-28 22:34:06 +00:00
Kp e19237c105 Factor out polymodel swap switch 2015-02-28 22:34:06 +00:00
Kp 1a0f409648 Convert init_model_sub to class 2015-02-28 22:34:05 +00:00
Kp 77ec36b9c3 Convert g3_draw_morphing_model to class 2015-02-28 22:34:05 +00:00
Kp c080f65e81 Convert g3_draw_polygon_model to class 2015-02-28 22:34:05 +00:00
Kp 0ec4a876c5 Convert g3_poly_get_color to class 2015-02-28 22:34:05 +00:00
Kp a07ae16d93 Convert get_chunks to class 2015-02-28 22:34:05 +00:00
Kp 8338cc7640 Convert swap_polygon_model_data to class 2015-02-28 22:34:05 +00:00
Kp 69fa0ee00c Centralize swap_polygon_model_data op update 2015-02-25 04:19:12 +00:00
Kp 31df9268bf Use C++ casts for interpreter casts 2015-02-22 01:29:43 +00:00
Kp 2fa2e17a82 Make chunk.old_base const 2015-02-22 01:29:43 +00:00
Kp 5ddab4818d Make rotate_point_list src const 2015-02-22 01:29:43 +00:00
Kp 8e4493a534 Fix WORDS_BIGENDIAN breaks 2015-02-22 01:29:43 +00:00
Kp d1f45f85b2 Wrap submodel angles 2015-02-14 22:48:28 +00:00
Kp 2daaacaa26 Move robot_points onto stack 2015-02-05 03:03:50 +00:00
Kp 9f44ccbbf3 Fix WORDS_NEED_ALIGNMENT build of interp.cpp 2014-12-19 02:19:29 +00:00