The tasks submitted to the executor compute and set the archive hashes, but the hashes are required by CacheStorage to save them. Ensure the tasks are complete first before saving.
There is a rare bug which can cause multiple timers to appear at once,
and although I cannot figure out what is wrong with the existing code,
this simplifies the logic sufficiently that it shouldn't happen anymore.
Co-authored-by: Alexsuperfly <alexcsumner@gmail.com>
This uses IPPROTO_ICMP sockets, which most modern linux systems support.
This allows directly sending icmp echo requests without having to use
the tcp ping check. As a fallback the old tcp ping method is used if
socket setup fails.
In masses it has been observed that the players damage counter can
increment after the last hitsplat has been applied, which causes
the final damage summary message to be incorrect
If a var changes after the marked objects are loaded, causing the object's name
to match a marked object, it would not be identified due to it not firing spawn
events
I can't figure out why this was originally added, but this shouldn't
care about the chatbox focus state since the script event is in the
script which builds the chatbox input widget. This is currently causing
an issue where the input rebuild script runs immediately before the
chatbox input keylistener is reapplied when closing input dialogs.
This allows using opencl as an alternative to opengl compute shaders on
macos, which does not support compute shaders. Now, macos can finally
use the extended draw distance feature of the gpu plugin.
This also includes code for using opencl with Windows and Linux if we
want to enable that in the future. A copy of the existing compute
shaders have been checked in and ported to opencl, keeping support for
opengl compute shaders on Windows and Linux.
Co-authored-by: Paul Norton <napkinorton@gmail.com>
This stores the underlying message node, which may be updated much later with a
new message value if a command is used, and replays that. Previously
this was storing and replaying the raw RL formatted message, which is
why colors would be stripped off of RL-formatted messages on replay.
This also no longer triggers chat message events from history replay,
which fixes commands incorrectly refiring from replay (and thus the nbsp
hack), and fixes the chat notifier sending notifications for replayed
messages.
With multiple clients with different configs saving at once, the same temp file was being used, which can cause it to not save or to move() a temp file from a different client
MacOS does not support fallback fonts, and any character not in our RS
fonts do not render correctly.
We only render unicode characters a handful of places, mostly for the
check mark/cross in overlays, and on the icon text field suggestion
button. So this sets the font of those places to the default system font
which can render them correctly.
There is only one legitimate use of this, which is in the hiscore
plugin, but it is simple to replace it with a normal menu option clicked
event. Additionally the world hopper was incorrectly using this event
for the Hop option, so it has been changed to use the menu option
clicked event.
gradle does not look at classifiers when doing dependency conflict
resolution, causing it to not correctly handle having multiple
dependencies of differing versions and classifiers. It picks the highest
version of any of the dependencies with the same groupId and artifactId
and uses that for every other dependency regardless of classifier.
This renames the osx natives artifacts to have a unique artifact name to
workaround this issue
The size was being computed from the enum names during the getPreferredSize() call due to not having the renderer set yet. Additionally the old prototype display value was not being used during this as it was not set yet, either.
The position returned by getCameraX/Y/Z are not yet updated when this is
called, causing it to be from the previous frame's camera position.
This was introduced in 0fc1a94088 when the
uniform code was copied from draw.
This allows configuring spec thresholds which a notification will be sent for
when reached. Additionally it colors the infobox text red or green based on if
the threshold has been reached.
Co-authored-by: Dylan <dylanhe@gmail.com>
Co-authored-by: jgozon <47003557+jgozon@users.noreply.github.com>
These are commonly attacked during boss fights or whilst speccing down bosses and shouldn't reset the counter
Co-authored-by: vitorebom <vitorebom@users.noreply.github.com>
This clamps layouted overlays to their parent's bounds, and also adjusts
the snap corner for the shifted position that is a result of the clamp,
so that the following overlays correctly get layouted.
This moves the compute shaders to run immediately after scene draw,
instead of in the draw() callback, which happens much later. All models
in the scene have been queued by the time, but since it is so early in
the ui drawing, it gives a few more ms for the compute to run before the
result needs to be used to draw the next frame.
This adjusts the draw callbacks api to take in the color of the full
screen overlay the client would have rendered. This is primarily used in
godwars, underwater, darkmeyer, etc. Having them rasterized on the cpu
is slow, especially with gpu on since we additionally have to compute
the alpha per-pixel.
While nothing passed to comp_unordered uses orientation, the uniform
block is not bound in this shader, and rotate() accesses sinCosTable. So
I'm not sure why this has ever worked.