Use macros to ensure that `text`, `xl_text` and `id` are always set
using the same logic.
Fixes#25519.
Also fixes up #26914 when `p_id == -1` handling was only added for a
couple methods instead of all of them.
(cherry picked from commit 58dd5d0c78)
When relaying messages in multiplayer mode.
Could cause a crash in case a malicious client sends a bogus packet and
for those cases where a peer has just disconnected and a message arrive
from another peer with the disconnected one as destination.
(cherry picked from commit 17be67b8c7)
Both methods check against containers using relative paths as index,
so the `res://` part needs to be stripped.
Fixes#26009.
(cherry picked from commit ad8746e0de)
The WebSocketMultiplayerPeer was relaying the same message two times,
both in _server_relay and _process_multiplayer (which was only supposed
to store the packet, given the server was one of the destination).
_process_multiplayer now only store the packet, and calls _server_relay
which will relay the message to other clients if needed.
(cherry picked from commit d1539db2c6)
This makes iteration faster as you don't need to monitor your phone
to allow the installation each time.
Fixes#32183.
(cherry picked from commit 9d96f04138)
It looks like the SCsub for cvtt was copied from squish and it left
the `if env['build_squish']:` line intact. This means that using
`scons builtin_squish=no modules/cvtt` would fail and overal builds
would also fail because they'd fail to find `ConvectionKernels.h`
(cherry picked from commit 0fbd00f656)
This can happen if users somehow got wrong user permissions assigned to
their Godot cache, config or data paths (e.g. `~/.config/godot`).
The error messages should give them a hint as to what the issue may be.
Fixes#33199.
There may be other situations that still lead to a crash, we need to
review all uses of `FileAccess::open` with `FileAccess::WRITE` mode to
ensure that proper pointer validation is done.
(cherry picked from commit 565f7183aa)
New contributors added to AUTHORS:
@creikey, @IronicallySerious, @LikeLakers2, @minraws, @NilsIrl,
@profan, @raphael10241024
New Platinum sponsor, added to splash screen:
Heroic Labs
Merged some duplicates via .mailmap to allow better tracking of
commit counts with `git shortlog -s -n -e --no-merges`.
Thanks to all contributors and donors for making Godot possible!
(cherry picked from commit 664d7e7336)
If bake interval is a multiple of the curve length, the curve would return NaN for some offset values (when `frac == 0.0`, it matches the start and end of the curve segment so `fmod == 0.0`, `frac` becomes NaN)
```
# Godot 3.1.1
var c = Curve3D.new()
c.add_point(Vector3())
c.add_point(Vector3(0.5,0,0))
c.add_point(Vector3(1,0,0))
c.bake_interval = 0.5
c.interpolate_baked(0.5) == Vector3(NAN, NAN, NAN)
```
(cherry picked from commit 6bd271139d)