Age | Commit message (Collapse) | Author |
|
Not doing this was a bit of an oversight
|
|
Fix Dictionary set_named
|
|
|
|
Reduz optimized field indexing in 3c85703 but the changes didn't apply
to dictionary so this code remained untouched. However, the logic for
validity checking was changed but not updated for the dictionary case.
|
|
Implement operator != on Pool*Array types
|
|
boost to GDScript.
|
|
These types previously had equality checks but not inequality checks.
Add these too.
This fixes #11466
|
|
Uninitialzed values in GDScript are of type NIL so not allowing null
comparisons did end up breaking some code.
This commit reenables NULL equality checks for all types. We're going to
have to figure out how to make this fast for the compiler later.
|
|
We now allow booleanization of all types. This means that empty versions
of all types now evaluate to false. So a Vector2(0,0), Dictionary(),
etc.
This allows you to write GDScript like:
if not Dictionary():
print("Empty dict")
Booleanization can now also no longer fail. There is no more valid flag,
this changes Variant and GDNative API.
|
|
After a short discussion with @reduz and @karroffel we decided to make
all non number/number comparisons return type errors on comparisons.
Now bool == bool is allowed but Vector2 == Vector3 is a type error and
no longer 'not equal'. The same has been done for the != operators.
In addition I forgot to add some failures to some Object operators
meaning that there was a potential for a crasher.
|
|
|
|
In an effort to make GDScript a little faster replace the double
switch() with a computed goto on compilers that set __GNUC__. For
compilers that don't support computed goto it will fall back to regular
switch/case statements.
In addition disable using boolean values in a mathematical context. Now
boolean values can only be compared with other booleans. Booleans will
also no longer be coerced to integers.
This PR replaces #11308 and fixes #11291
|
|
|
|
|
|
This fixes #10717
|
|
|
|
-Added ability to set/get a field in GetSet, as well as assignment ops
-Added a Select node
-Fixed update bugs related to variable list and exported properties, closes #9458
|
|
-Label and Button reload translation on the fly
-Resources are loaded and reload depending on locale
|
|
Fixes #8278, fixup of bfef8de1bc4f7a7b9617a7b181881129033a0b0e
|
|
|
|
|
|
this might cause bugs I haven't found yet..
|
|
Also cleanup comments on variant types.
|
|
|
|
|
|
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?
I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon
A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format
A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
|
|
- Add FIXME tags comments to some unfixed potential bugs
- Remove some checks (always false: unsigned never < 0)
- Fix some if statements based on reviews.
- Bunch of missing `else` statements
|
|
|
|
After discussing this with Reduz this seemed like the best way to
fix #7354. This will make composite values that contain NaN in the same
places as well as the same other values compare as the same.
Additionally non-composite values now also compare equal if they are
both NaN. This breaks IEEE specifications but this is probably what most
users expect. There is a GDScript function check for NaN if the user
needs this information.
This fixes #7354 and probably also fixes #6947
|
|
Made sure files in core/ and tools/ have a proper Godot license header
when written by us. Also renamed aabb.{cpp,h} and object_type_db.{cpp,h}
to rect3.{cpp,h} and class_db.{cpp,h} respectively.
Also added a proper header to core/io/base64.{c,h} after clarifying
the licensing with the original author (public domain).
|
|
|
|
to it.
|
|
|
|
Matrix32 -> Transform2D
Matrix3 -> Basis
AABB -> Rect3
RawArray -> PoolByteArray
IntArray -> PoolIntArray
FloatArray -> PoolFloatArray
Vector2Array -> PoolVector2Array
Vector3Array -> PoolVector3Array
ColorArray -> PoolColorArray
|
|
|
|
|
|
renamed to PoolVector
|
|
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer
with state-of-the-art rendering techniques tuned to work as low as middle
end handheld devices - without compromising with the possibilities given
for higher end desktop games of course. Great times ahead for the Godot
community and the gamers that will play our games!
|
|
|
|
Since strings are null-terminated, size() returns incorrect length,
so use length() instead.
fixes #6287
|
|
Adds default cases in switches where needed, and replaces '0;' with ';;'
in macro expansions (as suggested by @vnen in #5587).
|
|
|
|
Scripts can now evaluate the following cases:
- (quat * real) and (quat / real)
- (quat + quat) and (quat - quat)
|
|
Negative indexing is a useful feature in Python, especially when combined
with array slicing. Array slicing will hopefully be implemented later, but
negative indexing is useful in its own right.
A negative index is indexing from the end of an array,
"array[-1] == array[array.size()-1]", using a negative index
larger/smaller than the length of the array is still an error.
While primarily useful for arrays and strings, support is also added to
"array like" structures like Vector3 and Color. This is done just
to be consistent; vector3[2] is much clearer than vector3[-1], but disallowing
it while allowing it for an array with 3 elements seems confusing.
|
|
In preparation for the following "allow negative indexing" commit,
replace the repetitive array "set index" and "get index" code with
macros.
no functional changes were made, the resulting machine code is unchanged.
|
|
According to the class doc, these should be int.
Also fixed a little bug: the setter for 'r8' changed the green value
|
|
This might break some animations that use int tracks in continuous mode, but it should provide a more uniform interpolation for things like sprite frames.
|
|
|
|
|
|
Variant:
- zero() sets a Variant to the appropriate type of zero value
- blend() blends part of one Variant on top of another.
|