Age | Commit message (Collapse) | Author |
|
Follow-up to #39261.
|
|
Fix for Expression class: string inside an expression can't be single quoted
|
|
Enable zero padding with float specifier for format strings
|
|
Note:
Casting to the C++ classes and calling the methods there would work as well,
but would require including he header files for the specific object types handled
here, which wouldn't be OK either.
|
|
AStar: Make get_closest_point() deterministic for equidistant points
|
|
Closes godotengine/godot-docs#3667.
Supersedes #39405.
|
|
|
|
Each time `r_err_str` is set, we should return a parse error.
Removed redundant `return OK;` which were already handled after the big
`if`/`else if`/`else` for `TK_IDENTIFIER`.
Part of #17372.
|
|
Fixing wrong blending rect methods
|
|
|
|
|
|
Remove unused function get_key_value_ptr_array from hash_map.h and another tiny fix.
|
|
parameter name in function get_key_list.
|
|
Synced with gabomdq/SDL_GameControllerDB@6191f6333bd66644c6a208fabb9fd5dabf0a5d43.
|
|
Godot currently supports zero padding for integers, octals and
hexadecimals when using format strings, but not for floats.
This commit adds support for zero padding for floats, thus ensuring
consistent behavior for all types, and making Godot's format specifiers'
behavior closer to c's `printf()`.
Before: `print("<%07.2f>" % -0.2345)` prints `< -0.23>`.
Now: `print("<%07.2f>" % -0.2345)` prints `<-000.23>`.
`print("<%7.2f>" % -0.2345)` prints `< -0.23>`.
|
|
|
|
|
|
This partially addresses #32065.
|
|
Using Color.blend function instead of custom code
Fixed clang_format
Removed unnecessary help
|
|
Split `Geometry` singleton into `Geometry2D` and `Geometry3D`
|
|
And do the dedent and stripping for both translated and
non-translated strings for consistency, and so that we
don't need to do it at the call site.
|
|
`erase()` calls `find()` to get the index of the element to remove, if
any.
https://github.com/godotengine/godot/blob/c2151e18135817c9f926a5a00341016ac77301d4/core/local_vector.h#L77-L81
`find()` returns a signed integer. In particular, it returns -1 if
no element is found. Since `erase()` converts this to an unsigned type, the
wrong element may be erroneously removed from the vector.
Other ways to fix this would involve changing function signatures, so
this seemed to be the least disruptive change.
Fixes #38884
|
|
Extra `_2d` suffixes are removed from 2D methods accoringly.
|
|
Subsequent PRs adding and fixing support for bundled PCKs
did not update the documentation /o\
|
|
OAHashMap crash fix and copy feature.
|
|
(would cause division by 0)
- Added possibility to copy an OAHashMap
- Added unit tests
This code is generously donated by IMVU.
|
|
Fix Container sorting not working when overriding _sort_children in gdscript
|
|
Expose `Image.save_png_to_buffer` method
|
|
|
|
|
|
|
|
Semicolons are not necessary after function definitions or control flow
blocks, and having some code use them makes things inconsistent (and
occasionally can mess up `clang-format`'s formatting).
Removing them is tedious work though, I had to do this manually (regex
+ manual review) as I couldn't find a tool for that. All other code
folders would need to get the same treatment.
|
|
|
|
Removed const from OAHashMap iterator value
|
|
This changes the way the lifespan of items is managed to be consistent.
Bonus: Simplify cases of destroy-then-emplace.
|
|
Remove _sort_children from script bindings:
_sort_children is an internal method which shouldn't be exposed to scripts.
Added support for non-bound methods in MessageQueue:
So we can use deferred calls without exposing internal methods to scripts.
Added debug checks in CallableCustomMethodPointer:
Adding method pointer callables to the message queue was causing crashes
in case an object was destroyed and the same memory was allocated for
another one. The new object had a valid object id but the call was erroneous.
Release will be fixed later, along with Variant which has the same problem and
is also fixed for debug only.
|
|
As of Godot 3.0, HQ2X is no longer used to upscale the editor theme
and icons on hiDPI displays, which limited its effective uses.
HQ2X was also used to upscale the project theme when the "Use Hidpi"
project setting was enabled, but results were often less than ideal.
The new StyleBoxFlat and SVG support also make HQ2X less important
to have as a core feature.
This decreases binary sizes slightly (-150 KB on most platforms,
-212 KB on WebAssembly release).
This partially addresses #12419.
|
|
Error macros: Improve style of error messages
|
|
Document why the `if (1) {} else ((void)0)` construct is used.
|
|
Silence 'w' may be used uninitialized in image.cpp warning.
|
|
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
|
|
I couldn't find a tool that enforces it, so I went the manual route:
```
find -name "thirdparty" -prune \
-o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \
-o -name "*.glsl" > files
perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files)
misc/scripts/fix_style.sh -c
```
This adds a newline after all `}` on the first column, unless they
are followed by `#` (typically `#endif`). This leads to having lots
of places with two lines between function/class definitions, but
clang-format then fixes it as we enforce max one line of separation.
This doesn't fix potential occurrences of function definitions which
are indented (e.g. for a helper class defined in a .cpp), but it's
better than nothing. Also can't be made to run easily on CI/hooks so
we'll have to be careful with new code.
Part of #33027.
|
|
Which means that reduz' beloved style which we all became used to
will now be changed automatically to remove the first empty line.
This makes us lean closer to 1TBS (the one true brace style) instead
of hybridating it with some Allman-inspired spacing.
There's still the case of braces around single-statement blocks that
needs to be addressed (but clang-format can't help with that, but
clang-tidy may if we agree about it).
Part of #33027.
|
|
|
|
Rename `w` to the more meaningful `data_write`
|
|
Using clang-tidy's `modernize-use-bool-literals`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-bool-literals.html
|
|
Using clang-tidy's `modernize-use-nullptr`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
|
|
Using `clang-tidy`'s `modernize-use-default-member-init` check and
manual review of the changes, and some extra manual changes that
`clang-tidy` failed to do.
Also went manually through all of `core` to find occurrences that
`clang-tidy` couldn't handle, especially all initializations done
in a constructor without using initializer lists.
|
|
|
|
|