Commit graph

11410 commits

Author SHA1 Message Date
Kp 9dca02a723 Report libpng version information in -verbose startup output 2021-08-31 02:20:06 +00:00
Kp 6fb57c2dc2 Update snapshot ebuild 2021-08-26 03:13:46 +00:00
Kp fb254d3986 Update PYTHON_COMPAT in Gentoo ebuild
Python 3.9 is now standard, and is used for running SCons.  Update
PYTHON_COMPAT accordingly.
2021-08-26 03:13:46 +00:00
Kp 2c3a258d17 Fix bogus clang -Wunused-variable warning 2021-08-26 03:13:46 +00:00
Kp 828cadd54f Use constexpr if in valptridx tests for allow_nullptr 2021-08-26 03:13:46 +00:00
Kp 5d39c52b0c Remote write-only field UI_GADGET::status 2021-08-26 03:13:46 +00:00
Kp be5061c072 Remove write-only field UI_GADGET::oldstatus 2021-08-26 03:13:46 +00:00
Kp 2a5562e671 Fix clang -Wformat warning in segment selection dialog
clang warns because %hu was used to format a value that is `unsigned`.
Change the format accordingly.
2021-08-26 03:13:46 +00:00
Kp 2b29f91edc Convert various PHYSFSX_printf to PHYSFSX_puts_literal
clang-12 warns when the format string checking logic indexes off the end
of a very short format string to PHYSFSX_printf.  In each case, the call
had no variadic arguments, so it can be switched to PHYSFSX_puts_literal
to make the code simpler and eliminate the warning.
2021-08-26 03:13:46 +00:00
Kp fb63a73bd1 Filter out robots at render time, not wakeup time
A robot that is rendered may be woken later, subject to some conditions.
Move the easily checked conditions into the renderer, so that robots
which will not be woken are never recorded.
2021-08-26 03:13:45 +00:00
Kp 40c22d0663 Move render_frame helper inline
Most call sites had the correct lifetime already, and those that did not
can easily gain it with an extra block scope.
2021-08-26 03:13:45 +00:00
Kp 079ab168a4 Move View_zoom out of global scope
It is only used briefly, so it can be local.
2021-08-26 03:13:45 +00:00
Kp f047629051 Move glow special-case above g3_check_normal_facing
Checking the glow special case should be cheaper than computing and
checking the normal, so check the glow case first.  Also, when the glow
values are defined, cache the result of reading from it to avoid
repeating the indexing logic farther down.
2021-08-26 03:13:45 +00:00
Kp f9ed412ba6 Move use of SQUARE into a helper
Give the compiler discretion over whether to inline the multiplications.
2021-08-26 03:13:45 +00:00
Kp 172c183d83 Reduce scope of font rendering variables 2021-08-26 03:13:45 +00:00
Kp 517919a473 Remove unused return value of gr_internal_color_string, ogl_internal_string 2021-08-26 03:13:45 +00:00
Kp 3b5134896f Remove unused return value of gr_bitmap_rle_compress 2021-08-26 03:13:45 +00:00
Kp 506ab6e5de Make prohibit_void_ptr methods constexpr 2021-08-26 03:13:45 +00:00
Kp 0f4c9f240e Make some SConstruct output respect SCons' -Q option 2021-08-26 03:13:45 +00:00
Kp 4b062bd7b2 Reorder check_effect_blowup tests to reduce D2 redundancy
Switch from ((a && b) || (!a && c)) to (!a ? c : b).
2021-08-26 03:13:45 +00:00
Kp d748e7bbfc Add support for xrange steps other than +1
Prior to this, an xrange always started at the begin term and
incremented by 1 per step until it reached the end term.  There was no
support for a step size other than 1.  Add support for custom step size.
It is the caller's responsibility to pick a step size that will
eventually lead to (iter != end) evaluating to false.
2021-08-26 03:13:45 +00:00
Kp e0820e2825 Skip autosave while in demo playback modes
Reported-by: polstomo <https://github.com/dxx-rebirth/dxx-rebirth/issues/598>
2021-07-25 23:00:56 +00:00
Kp 56c98f5345 Improve error reporting for PHYSFSX_openWriteBuffered
Return the PHYSFS error code on failure, so that callers can report why
the open failed.
2021-07-25 23:00:56 +00:00
Kp 1c13d3c8d3 Improve error reporting for PHYSFSX_openReadBuffered
Return the PHYSFS error code on failure, so that callers can report why
the open failed.
2021-07-25 23:00:56 +00:00
Kp b2968c55da Improve error reporting for read_sndfile
Move error reporting down into read_sndfile, so that individual failure
paths can have specific error messages.
2021-07-25 23:00:56 +00:00
Kp a7cbf60922 Return error code from PHYSFSRWOPS_openRead*
This improves error reporting for movies.
2021-07-25 23:00:56 +00:00
Kp b814301120 Pass PhysFS error code to callers of PHYSFSX_addRelToSearchPath
Use PHYSFS_getLastErrorCode on the result.  This allows init_movie to
report the reason a movie was unavailable.
2021-07-25 23:00:56 +00:00
Kp 1227625e7c Remove unused return code of PHYSFSX_removeRelFromSearchPath 2021-07-25 23:00:56 +00:00
Kp c26fd86450 Keep builtin movies loaded until the end of main
Commit d0d7545ec1 ("Unload robot movies on exit") intended to shorten
the lifetime of the loaded data, but failed to save the unique_ptr, so
the lifetime was shortened more than intended.  Save the unique_ptr so
that the movies remain loaded.

Also, add a [[nodiscard]] annotation so that the compiler can warn if
this mistake is repeated.

Reported-by: Q3BFG10K <https://github.com/dxx-rebirth/dxx-rebirth/issues/599>
Fixes: d0d7545ec1 ("Unload robot movies on exit")
2021-07-25 23:00:56 +00:00
Kp cae9c5f26c Reduce intensity of player spawn sound 2021-06-28 03:37:51 +00:00
Kp 679d2fc494 Reduce intensity of weapon fire sounds 2021-06-28 03:37:51 +00:00
Kp 5ca182f4da Link robot sounds to the object, not a position
This should produce more reasonable results if a robot is moved rapidly
while the sound plays.
2021-06-28 03:37:51 +00:00
Kp 20372ad3f3 Reduce intensity of Robot_sound_volume
Recent work increased the effective intensity of various sounds.  Reduce
this one to compensate.
2021-06-28 03:37:51 +00:00
Kp bc210c2c05 Halve the volume of weapon changes
The previous commit removed an incorrect double scaling of the player's
weapon sounds, which will make all such sounds louder.  Players with
their FX volume set to maximum will now have twice as loud a sound.
Halve the intensity in the source to return to the volume such players
would have had before.  Players with an FX volume less than maximum will
still get a somewhat louder sound than before.
2021-06-28 03:37:51 +00:00
Kp 20a0166cf4 Avoid double-scaling sounds at start time
The SDL_mixer library has already been instructed, via Mix_Volume, to
scale the volume of sounds on all channels, by an amount based on
digi_volume.  There is no need to manipulate the effective distance of a
particular sound to further scale it by digi_volume.  Even if this
second scale was needed, it was done incorrectly, because it was only
applied when the sound was started, but not re-applied when the sound's
volume was updated due to positional changes.  As a result, any sound
which was updated would switch to an unscaled version.  Sounds which
were never updated, such as those attached to the viewer object, would
retain their original scaled volume.

Update the implementation of digi_mixer_set_channel_volume to call
Mix_SetDistance in the same way as digi_mixer_start_sound, for
readability and consistency.
2021-06-28 03:37:51 +00:00
Kp 659be87a5b Saturate return value of fix2byte 2021-06-28 03:37:51 +00:00
Kp 7cba352c19 Split digi_get_sound_loc
Some callers need to update an existing sound_object.  Other callers
need a temporary copy of the data for external use.  Rearrange the code
so that the latter type of caller can obtain the data without a pointer
indirection.
2021-06-28 03:37:51 +00:00
Kp e0008cceb3 Use enum class for sound angle parameter 2021-06-28 03:37:51 +00:00
Kp f233115d84 Make savegame menu inherit from newmenu 2021-06-28 03:37:51 +00:00
Kp 13e29c64f3 In debug builds, initialize newmenu_item type,text to poison values
This improves the chance that an unset value will abort rather than
displaying strange results.  Release builds are unchanged.
2021-06-28 03:37:51 +00:00
Kp 86e8e1d4f9 Remove Python2 dict compatibility symbols
Switch to calling the methods directly on the dict instances.  This
eliminates use of a global variable at each call site.
2021-06-28 03:37:51 +00:00
Kp d980648823 Use structured bindings for more zip calls 2021-06-28 03:37:51 +00:00
Kp ec4d75d44e Switch decode_row from xrange to span to better express its operation 2021-06-28 03:37:51 +00:00
Kp 9c08b233a5 Move collision functions into namespaces 2021-06-28 03:37:51 +00:00
Kp 40b0b6c8fb Adjust indent to silence clang -Wmisleading-indentation
gcc treats the intervening lines since the last `if` as sufficient to
recognize this as not misleading.  clang does not.  Change the indent to
calm clang.
2021-06-28 03:37:51 +00:00
Kp f1606f7747 Simplify test for __builtin_bswap16
This test covered __builtin_bswap32 and __builtin_bswap16 separately,
because it was written to support gcc versions that predated the
introduction of __builtin_bswap16.  The minimum supported gcc version
now understands both intrinsics, so simplify the test to cover all three
at once.
2021-06-28 03:37:51 +00:00
Kp e1aac6949a Replace __attribute_warn_unused_result with C++17 [[nodiscard]]
This eliminates a configure test, and may help readers understand the
annotation more readily.
2021-06-28 03:37:51 +00:00
Kp 770ae0cea5 Replace __attribute_noreturn with C++11 [[noreturn]]
This eliminates a configure test, and may help readers understand the
annotation more readily.
2021-06-28 03:37:50 +00:00
Kp 15057af2f9 Replace __noreturn with C++11 [[noreturn]]
This allows non-GNU-C compilers to see the attribute.
2021-06-28 03:37:50 +00:00
Kp a3bf147768 Move create_vertex_list_from_invalid_side to dcx 2021-06-28 03:37:50 +00:00