This fixes an oversight with pwrlv average calculation that causes
the total to overflow with enough players or high enough pwrlv.
Hopefully this might fix that bug where pwrlv is shown as negative
on the server select menu.
Maintainer note: This is still imprecise but it fixes the overflow
without potentially disrupting game code.
The hypothesis for this patch is that the operating system has not actually
finished writing the file to disk when moving the tmp file into place. The
move operation is atomic, but the write is not, even when flushed or using
unbuffered IO. So we reorder these operations, make the old save .bak
atomically and write the new save in place.
I doubt saving this backup will actually be useful given the frequency of
saves in the game, but at the very least it leaves _some_ backup in place in
the event of failure.
Like with position bulbs, the position number takes a large portion of
the screen and flashes rapidly. This slows that rate to 25% of what it
is when Reduce VFX is off.
In green resolutions, especially past 12 players, these bulbs take up a
large part of the screen and flash in a particularly intense way for
people with heightened photosensitivity. This disables the animations
while still presenting them effectively.
Instead of using the install baked in the image, let's clone vcpkg
and set up a separate binary cache that can survive being cleaned.
This allows us to reuse built artifacts from the vcpkg manifest
baseline very quickly.
The "clone" strategy clones the entire repository, which takes
a significant amount of time. It's not needed, because the default
"fetch" strategy will reuse the executor's local clone and clean it
before the job scripts run.
The last stable version of rapidjson was in 2016, and it is
unlikely that neither rapidjson nor discord-rpc will receive a
stable release ever again. However, rapidjson has a lot of fixes
merged in their tree, so in order to fix gcc 14 compilation issues,
let's pull in that tree.
The upstream changes for libvpx on Windows were merged and so this
overlay is no longer needed.
Updating the baseline requires everyone to update their vcpkg repo
locally (git pull). It also upgrades all dependencies used.
Instead of using the install baked in the image, let's clone vcpkg
and set up a separate binary cache that can survive being cleaned.
This allows us to reuse built artifacts from the vcpkg manifest
baseline very quickly.