Happy new year to the wonderful Godot community!
We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.
Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
- Add new handle icons for path/polygon editors
- Add smooth path point icons and curve tangent icons
- Use a gray color for tangent lines in the Path2D and Path editors
- Use antialiasing for Path2D lines
It seems to stay compatible with formatting done by clang-format 6.0 and 7.0,
so contributors can keep using those versions for now (they will not undo those
changes).
Fixes this warning raised by Travis CI on macOS:
```
editor/plugins/polygon_2d_editor_plugin.cpp:95:6: warning: variable 'skeleton' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (!node->has_node(node->get_skeleton())) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
editor/plugins/polygon_2d_editor_plugin.cpp:106:7: note: uninitialized use occurs here
if (!skeleton) {
^~~~~~~~
editor/plugins/polygon_2d_editor_plugin.cpp:95:2: note: remove the 'if' if its condition is always false
if (!node->has_node(node->get_skeleton())) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
editor/plugins/polygon_2d_editor_plugin.cpp:94:22: note: initialize the variable 'skeleton' to silence this warning
Skeleton2D *skeleton;
^
= NULL
```
Fixes GCC 5 warnings of the form:
core/io/http_client.cpp:288:9: warning: enumeration value 'STATUS_SSL_HANDSHAKE_ERROR' not handled in switch [-Wswitch]
core/io/marshalls.cpp:806:9: warning: enumeration value 'AABB' not handled in switch [-Wswitch]
Those can be trivial cases where adding a default fallback is the solution,
or more complex issues/hidden bugs where missed values are actually meant
to be handled.
This allows more consistency in the manner we include core headers,
where previously there would be a mix of absolute, relative and
include path-dependent includes.
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
editing nodes in the polygon2d editor now updates the polygon in realtime; the previous outline is shown, but this can be disabled via a new editor setting
Currently we rely on some undefined behavior when Object->cast_to() gets
called with a Null pointer. This used to work fine with GCC < 6 but
newer versions of GCC remove all codepaths in which the this pointer is
Null. However, the non-static cast_to() was supposed to be null safe.
This patch makes cast_to() Null safe and removes the now redundant Null
checks where they existed.
It is explained in this article: https://www.viva64.com/en/b/0226/