The compiler may or may not recognize that the temporary T{} passed to
make_unique can be omitted. Help it by passing nothing, then explicitly
clearing the returned data as a separate step.
All users of physfs_list.h included fwd-partial_range.h or
partial_range.h; physfs_list.h did not include either, but assumed one
would be available. Include fwd to fix check_header_includes=1 build.
Fixes: ff67afd440 ("Propagate partial_range up into PHYSFSX_findFiles family")
Building with Boost.Array fails due to name lookup errors. These could
be fixed, but since no one has reported them and they are fairly old,
Boost.Array appears to be unused. Remove support for it.
Building with std::tr1::array fails due to missing features in
std::tr1:array relative to std::array. No one has reported this either,
so remove support for std::tr1:array.
Move the test for std::array into the Cxx11RequiredFeature list so that
it is run as part of the group test, rather than as a separate
statement.
Mako88 reports that using `-pilot Mixed` on Windows causes crashes
during multiplayer setup, but `-pilot mixed` does not crash. This is
not reproducible on case sensitive filesystems, probably because case
sensitive systems recognize that `Mixed.plr` and `mixed.plr` are not the
same file. In both cases, the underlying plr file name was all
lowercase. Coerce the pilot name to lowercase when it is converted to a
plr file name. This also fixes a minor bug where the check for a
user-specified extension of `.plr` would recognize `-pilot alice.plr`,
but not recognize `-pilot alice.PLR`.
This is a workaround for a bug in the network code, which becomes
confused and crashes when the player's callsign contains mixed case.
Reported-by: Mako88 <https://github.com/dxx-rebirth/dxx-rebirth/issues/188>
Callers are expected to filter out invalid numbers. Even if they do
not, the only use of the number is to match entries in Stuck_objects.
An invalid match could cause a call to vobjptr() with an invalid index,
but that would be diagnosed by the valptridx checking, so no invalid
memory access will occur.
Many callers of kill_stuck_objects call it twice, once for each of two
walls. Move the flush_fcd_cache up to occur only once, rather than once
per wall.