Autoselect from pick_up_vulcan_ammo only ever armed the Vulcan cannon,
even if the user has and prefers a Gauss cannon. This is probably an
oversight from when D2 weapons were added. Rework the pickup logic in
D2 so that the more desirable of Vulcan or Gauss is picked.
Autoselect events are gated on the player having none of the item prior
to this pickup, so making the mini-autoselect more aggressive should not
cause unwanted switches.
Since the main autoselect is complicated, requiring the mini-autoselect
to happen only when the main autoselect is skipped makes it complicated
for players to reason about whether the mini-autoselect will happen.
Some compiler configurations warn that vertices[4] and vertices[5] may
be used uninitialized. Initialize them to a bogus value so that any
actual use will trap, but the comparisons will be well defined.
Non-static globals were initialized at wrong scope, leading to netgame
duplicate options being forgotten across program restart.
Netgame.DuplicatePowerups is not initialized until well after global
initialization runs.
Literal strings were copied into a local buffer. Replace with a pointer
to the appropriate literal string.
Fixes: aa9a5df0d4 ("Rearrange Advanced Hosting Menu")
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*")
Some outdated mingw32 headers also set the POSIX value when used on
Windows. Expand the override to force the non-standard Microsoft format
for all Windows platforms.