Age | Commit message (Collapse) | Author |
|
Fix properties being lost when reloading placeholder GDScript instance
|
|
Some used 'is_valid()' checks, others not. Validity is already checked in 'unref()',
and 'remove_resource_format_*()' has an ERR_FAIL condition on 'is_null()' already
(which shouldn't happen since we're only unregistering things that we previously
registered.
Also add missing GDCLASS statement in ResourceFormatLoaderVideoStreamGDNative,
missed in #20552 which was last amended before #19501 was merged.
|
|
During reloading in `GDScriptLanguage::reload_all_scripts` a placeholder instance that must remain so is replaced with a new placeholder instance. The state is then restored by calling `ScriptInstance::set` for each property. This does not work if the script is missing the properties due to build/parse failing.
The fix for such cases is to call `placeholder_set_fallback` instead of `set` on the script instance.
I took this chance to move the `build_failed` flag from `PlaceHolderScriptInstance` to `Script`. That improves the code a lot. I also renamed it to `placeholder_fallback_enabled` which is a much better name (`build_failed` could lead to misunderstandings).
|
|
support.
|
|
little fix to function types
|
|
Background: lstrip and rstrip were broken by changes to String in:
0e29f7974b59e4440cf02e1388fb9d8ab2b5c5fd
which removed it's access to Vector::find(CharType).
Moved Vector's find up into CowData so it can be shared by Vector and String.
Added String::find_char using CowData::find.
Implemented rstrip and lstrip using find_char.
Added a few tests for String rstrip and lstrip.
|
|
String[size()] should return a default constructed CharType
|
|
As per the C++ standard 21.3.4.1 for std::string:
Returns: If pos < size(), returns data()[pos]. Otherwise, if pos ==
size(), the const version returns charT(). Otherwise, the behavior is
undefined.
Since the behavior is undefined Godot now does the same thing for const
and non-const versions of operator[].
This fixes #21242 and fixes #22221.
|
|
Fix crash when checking empty string for valid hex number
|
|
Optimizations for trivial types
|
|
|
|
Relying on various compiler primitives we can reduce the work done
in our memory allocators and CowData. For types with trivial ctors or
dtors we can skip looping over all elements when creating, resizing,
and destroying lists of objects.
These primitives are supported by clang, msvc, and GCC. However, once
we've moved to C++11 we can rely on several std:: primitives that do
the same thing and are standardized.
In my testing the extra conditionals introduced here get removed from
the generated program entirely as the results for these primitives is
known at compile time.
|
|
Happy new year to the wonderful Godot community!
|
|
Fix various code formatting issues and argument names.
|
|
|
|
|
|
When opening projects for edition through the project manager, the
following checks are now done:
1. If the config_version is lower than the one used by the current
engine version, users are asked if they want to convert to the new
format or abort editing. Fixes #20626.
2. If the config_version is higher than the expected one (project
from a more recent and incompatible engine version), projects are
grayed out and can't be edited. Fixes #18758.
When editing from the command line, the behaviour is unchanged:
projects in situation (1) are automatically converted, while projects
in situation (2) show an error message (made more explicit).
The "Run" option from the project manager was not changed, so it will
still run (1) projects without converting them, and fail running (2)
projects.
Co-authored-by: groud <gilles.roudiere@gmail.com>
|
|
Core: Drop unused global_defaults logic
|
|
It used to be used for Android and iOS to specify platform-specific
project settings overrides, but we now have feature tags for that.
|
|
|
|
Removed error message arriving whenever csv file changed
|
|
Reduce String CoW
|
|
By introducing an intermediate proxy class for the array subscript
operator for String and CharString we can control better when CowData
will actually CoW.
This should improve performance of String usage for most cases.
|
|
Added basic support for custom resource savers and loaders
|
|
|
|
|
|
By relying on the fact that a struct or class's first member has the
same address as the struct itself we can cast VectorWriteProxy<T> to
Vector<T> and access the CowData field.
This allows a Vector to be moved in memory without invalidating the
pointer to the cowdata field.
|
|
Fix undo redo not showing errors
|
|
Add application/config/project_settings_override option to override project settings
|
|
settings
|
|
Added ranged integer generation function to RNG class
|
|
Moved member variables to initializer list
|
|
|
|
Changes IME to make it possible to use it from gdscript/gdnative
|
|
22478: Can't duplicate folder with another folder inside
|
|
[x11] Use "application/config/name" for WM_CLASS
|
|
Make thumbnail cache less tasking on the message queue
|
|
Fixes #23567
|
|
|
|
Fix blitting from negative position
|
|
|
|
|
|
|
|
Construct Transform from Transform2D bug
|
|
|
|
|
|
Construct Transform from Transform2D
|
|
Fix errors 2, 3, 4, 6, 8, 9, 11, 12, 13, 14, and 15.
|
|
tools), fixes #17070
|
|
|