BM_XRGB doubles its inputs. 35a4736 doubled the inputs explicitly, but
passed them back to BM_XRGB, which doubled them again. Switch to a
direct call to gr_find_closest_color to skip the second double pass.
Reported-by: Mako88 <https://github.com/dxx-rebirth/dxx-rebirth/issues/192>
Fixes: 35a4736df0 ("Pass color to gr_urect")
gameseq_init_network_players updates the Players array after loading a
level. This should always be done, since players may change their
object number across levels. Move the call into LoadLevel since some
callers failed to do it.
Windows 2000 has no support for getaddrinfo. Five years ago (Apr 5
2011), the addition of tracker support
(7f18afd5d7) brought a requirement for
getaddrinfo. Recently, someone with a working Windows 2000 system
reported that Rebirth no longer starts on Windows 2000. Although such
systems should not be connected to the Internet, they may still need
name resolution on a LAN. Add a configure test to probe for getaddrinfo
support and fall back to gethostbyname if needed.
Compiling a binary that works on Windows 2000 requires one of:
* using an ancient SDK that does not declare getaddrinfo
* defining _WIN32_WINNT to exclude Windows XP support
* overriding the SConf test to force failure
Fixes: 7f18afd5d7 ("Client-side implementation for Tracker support by Matt 1360 Vandermeulen including improvements in udp_dns_filladdr and IPv4/IPv6 compability; Very little adjustments by me, too including IPv6 support for Windows (untested); Actual tracker code will follow later as seperate branch when it's done")
Sync non-template types to make helper a better match. Rename helper to
clarify code flow for readers.
Reported-by: kreatordxx <https://github.com/dxx-rebirth/dxx-rebirth/issues/183>
Fixes: ff67afd440 ("Propagate partial_range up into PHYSFSX_findFiles family")
Fixes: cf512cd368 ("In MultiLevelInv_Count, use range_for for powerup-object and StolenItems loops. Also do not set unwanted objects to 0 in switch cases as this is redundant due to initialization at the beginning of the function.")
Clang fails to compile update_flicker<0x80000000>(...); gcc handles it
properly. A template is not necessary here, so switch to passing the
value as an argument. Both compilers accept this.
Reported-by: kreatordxx <private mail>
Fixes: 5b9ccda8e8 ("Simplify update_flicker")
Demo files do not record cloak/invulnerability times, so the playback
code sets a fake time of "50% elapsed" for the entire time that the
effect is active. This causes two problems in playback. The first,
which always applied, but was mostly ignored, is that the viewer does
not get the blinking warning that the effect will expire soon. The
second, which became visible with the addition of cloak/invulnerability
digital timers, is that demos always report "15" as the time remaining,
for the entire time that the effect is active. Old demos cannot be
fixed, so hide the problem by forcing the timers to be hidden when
viewing a demo.