Age | Commit message (Collapse) | Author |
|
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
|
|
|
|
|
|
Make cast_to a static member of Object.
|
|
|
|
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/
|
|
-Disabled GDNative and GDNativeScript so build compiles again
|
|
The initial version of the pattern matcher in GDScript does not
allow matching on nested identifiers, only one identifiers available
in the current scope.
With the introduction of enums to GDScript that's a huge missing
feature. This commit makes the parser accept indexed constants and
variables to properly support enums.
|
|
|
|
closes #6111
|
|
|
|
This removes `not` from the variable safe list of
keywords.
Before that this was a valid expression:
self.!(some_arg)
The other fix is just a forgotten boolean negation.
|
|
Fixes #8085
Added some comments around the use of is_token_literal, as discussed.
|
|
Fixes #8278, fixup of bfef8de1bc4f7a7b9617a7b181881129033a0b0e
|
|
Replaces the `extends` keyword with `is` in the context of testing for type compatibility.
`extends` is still used for declaring class inheritance.
Example:
```gdscript
extends Node2D
func _input(ev):
if ev is InputEventKey:
print("yay, key event")
```
|
|
|
|
|
|
Should close #8315
Please test, I'm still unsure I did it correctly...
|
|
|
|
|
|
Make inline blocks in GDScript more (or less) pythonic
|
|
From https://github.com/lucasdemarchi/codespell
|
|
Fixes #8001
|
|
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
|
|
|
|
Allow preload to accept a const string.
|
|
In preload() parsing this code will lookup the identifier in the local
constant database. If the identifier corresponds to a string constant
it is used as the path for preload().
Currently this does not work for global constants, only constants
declared in the same class as the preload is happening. We can implement
a full fix too. Maybe we can use this PR to discuss the possibilities.
This (partially) fixes #6798
|
|
-fixes to make scenes exported from godot 2.x work
|
|
problem was a segmentation fault caused by trying to access Vector constants[0] which isn't there if op->arguments.size() is not bigger than one.
- the changed OR condition didn't make sense (always true), should be AND
- changes the "constant" variable to be false per default and gets set to true when there is actually something pushed to "constants"
|
|
|
|
|
|
|
|
|
|
Adds pattern matching to GDScript
|
|
Redefine var results in an error
|
|
They do not play well with clang-format which aligns the `//` part
with the rest of the code block, thus producing badly indented commented code.
|
|
to it.
|
|
Allow typing hints for Array class (in GDScript and Inspector)
|
|
|
|
changed comments
|
|
|
|
|
|
|
|
|
|
-Added ability to request nodes using $Name in GDScript :)
|
|
Variant.
All usages of "type" to refer to classes were renamed to "class"
ClassDB has been exposed to GDScript.
OBJ_TYPE() macro is now GDCLASS()
|
|
Fixes #7412.
|
|
Disallow assignment to constants and expressions
|
|
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!
|
|
Fixes #6221, fixes #6824
|