Commit Graph

1677 Commits

Author SHA1 Message Date
Poommetee Ketson
459f526119 Fix typos 'a' and 'an' 2017-09-02 21:19:06 +07:00
Hein-Pieter van Braam
9c63ab99f0 Fix use of unitialized variables
The second in my quest to make Godot 3.x compile with -Werror on GCC7
2017-09-02 01:59:26 +02:00
Rémi Verschelde
dac150108a Merge pull request #10846 from hpvb/fix-sign-compare
Fix signed and unsigned comparisons
2017-09-01 21:52:55 +02:00
Ignacio Etcheverry
6209b72b07 Merge pull request #10862 from neikeq/fix-defvals-methodinfo
Fixes reversed order of default arguments in MethodInfo
2017-09-01 21:19:58 +02:00
Karroffel
95a0886f93 added StringBuilder class
When doing large string concatenations the default push_back on the
String class can slow down things quite a bit. This is because it
has to constantly reallocate the memory and copy the contents. This
StringBuilder class delays the concatenation until the size of the
resulting string is known.
2017-09-01 19:52:32 +02:00
Ignacio Etcheverry
27ca7e7313 Fixes reversed order of default arguments in MethodInfo 2017-09-01 16:33:16 +02:00
Poommetee Ketson
ed606ded52 Fix files header 2017-09-01 21:07:55 +07:00
Rémi Verschelde
1e0fc4dc4e Merge pull request #10318 from endragor/ordered-hash-map
Implement OrderedHashMap
2017-09-01 13:09:30 +02:00
Hein-Pieter van Braam
2ea5d33358 Has_method is already provided by Object
c812c17633 introduces some extra gdscript bindings for signal discovery
and adds a binding for has_method() to Script objects. This method is
already provided by the ancestor Object.

This fixes the startup message:
ERROR: bind_methodfi: Class Script already has a method has_method
   At: core/class_db.cpp:1178.
2017-09-01 09:04:08 +02:00
Hein-Pieter van Braam
f9467ec1ea Fix signed and unsigned comparisons
The first in my quest to make Godot 3.x compile with -Werror on GCC7
2017-09-01 08:13:12 +02:00
Juan Linietsky
d39e79e7ec Fix issues regarding reload of resources in imported scenes. Closes #10017 2017-08-31 18:57:44 -03:00
Rémi Verschelde
f00760b22c Merge pull request #10382 from toger5/dark_icons
Light Theme
2017-08-31 11:47:18 +02:00
toger5
426c6b2c49 added to_ABGR32() to core/Color 2017-08-30 21:20:01 +02:00
Ferenc Arn
5ad8d310f2 Add a new decomposition to Basis.
This new decomposition splits the basis into a rotation-reflection matrix and a positive scaling matrix, which is required for physics calculations.
2017-08-30 09:37:18 -04:00
Ferenc Arn
a0bbf5c9af Remove Basis::set_scale and Basis::set_rotation_* functions.
Those functions were added in #8277 but they did more harm than good. They're subtle, don't do what people think and requires users to understand the non-uniqueness of polar decomposition. They ended up confusing people.

Until we store additional information enough to make a unique polar decomposition, these functions shouldn't be a part of Basis.
2017-08-29 21:47:59 -04:00
Juan Linietsky
145ff58277 Fix constant reimport on broken files, closes #9930 2017-08-29 20:17:59 -03:00
Juan Linietsky
9c3bddfac2 Merge pull request #10745 from neikeq/fix-docdata-and-stuff
DocData and virtual method type hints fixes
2017-08-29 20:11:07 -03:00
Ignacio Etcheverry
ddb1ce08c3 Fixes missing default arguments in MethodInfo 2017-08-29 19:40:28 +02:00
Ignacio Etcheverry
c16d00591b DocData and type hints fixes
- Makes vararg methods automatically use PROPERTY_USAGE_NIL_IS_VARIANT on return types
- Completely removes the ":type" suffix for method names. Virtual methods must use the MethodInfo constructors that takes Variant::Type or PropertyHint as the first parameter for the return type (with CLASS_INFO as a helper to get the PropertyInfo). Parameters must use PROPERTY_HINT_RESOURCE_TYPE and hint string.
- PROPERTY_USAGE_NIL_IS_VARIANT is no longer needed for parameters, because parameters cannot be void.
- Adds missing PROPERTY_USAGE_NIL_IS_VARIANT to virtual and built-in methods that return Variant.
2017-08-29 19:40:21 +02:00
Juan Linietsky
c812c17633 Made some methods to check method/signal availability in GDScript, closes #9800 2017-08-29 14:33:27 -03:00
Wilson E. Alvarez
b9d0579be9 Removed ParamDef and ParamHint structs 2017-08-29 04:28:17 -04:00
Juan Linietsky
8fce79aaee -Some fixes to code completion.
-Fix getter in code completion being displayed when it shouldn't
-Clean up preview generation for editors and exposed it as editor plugin
2017-08-28 00:04:24 -03:00
Matthias Hoelzl
b6e1e47e3a Make build scripts Python3 compatible
- The Windows, UWP, Android (on Windows) and Linux builds are
  tested with Scons 3.0 alpha using Python 3.
- OSX and iOS should hopefully work but are not tested since
  I don't have a Mac.
- Builds using SCons 2.5 and Python 2 should not be impacted.
2017-08-27 23:05:39 +02:00
Rémi Verschelde
7ad14e7a3e Dead code tells no tales 2017-08-27 22:13:45 +02:00
Rémi Verschelde
bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Rémi Verschelde
c90bfcb1c6 Re-apply clang-format to all files
Some badly formatted code has managed to pass through our CI...
2017-08-27 14:16:32 +02:00
Ignacio Etcheverry
b50a937fe6 MethodBind: Adds operator== to compare by id 2017-08-26 21:41:25 +02:00
Rémi Verschelde
53c0010932 Merge pull request #10658 from henkz1/android-build
Fix Android build
2017-08-26 20:32:23 +02:00
Poommetee Ketson
4950ef7478 Fix double single quotes in connect error print 2017-08-27 00:46:33 +07:00
Henrik Andersson
3cd3c1da5f Fix refactored Object::cast_to in NO_SAFE_CAST branch 2017-08-26 18:59:37 +02:00
Rémi Verschelde
9f1e3903df Merge pull request #10648 from Xrayez/image-get-size
Add handy get_size() method to Image class
2017-08-26 18:37:08 +02:00
Rémi Verschelde
565600e844 Cleanup tons of obsolete commented out code
Mostly in EditorNode, dropping some obsolete editor plugins and also a
cleanup of ProjectSettings/EditorSettings.
2017-08-26 17:47:57 +02:00
Andrii Doroshenko (Xrayez)
4de96518c8 Add handy get_size() method to Image class 2017-08-26 15:01:21 +03:00
Hein-Pieter van Braam
cacced7e50 Convert Object::cast_to() to the static version
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/
2017-08-24 23:08:24 +02:00
Hein-Pieter van Braam
4aa2c18cb4 Add a static version of Object::cast_to()
This is to prepare to replace all instances of the member version of
cast_to().
2017-08-24 23:08:24 +02:00
volzhs
62bb600b5c Show proper string with InputEvent.as_text() 2017-08-25 01:14:36 +09:00
Juan Linietsky
05a6785344 GCC fixes 2017-08-24 00:50:16 -03:00
Juan Linietsky
36e0a72c77 -Code completion for enumerations
-Disabled GDNative and GDNativeScript so build compiles again
2017-08-24 00:06:56 -03:00
Juan Linietsky
3d1c031871 Changed MethodBind API to request information from methods. It's much claner now.
Also changed PropertyInfo to include informatino about class names.
2017-08-23 19:11:11 -03:00
Wilson E. Alvarez
298a6934b6 Moved member variables to initializer list 2017-08-22 11:47:50 -04:00
Juan Linietsky
8a4e05a440 Merge pull request #10520 from RandomShaper/fix-double-parsing
Fix tokenization of doubles
2017-08-22 10:02:42 -03:00
Rémi Verschelde
7f49e2a7a0 Merge pull request #10487 from marcelofg55/curscr_as_default
p_screen param from get_screen_* funcs now default to the current screen
2017-08-22 08:12:04 +02:00
Rémi Verschelde
df590fc2d3 Merge pull request #10340 from Rubonnek/remove-unnecessary-assignments
Removed unnecessary assignments
2017-08-22 00:58:12 +02:00
Rémi Verschelde
13f879587d Merge pull request #10254 from marcelofg55/master
Added notification const NOTIFICATION_WM_ABOUT
2017-08-22 00:56:31 +02:00
Juan Linietsky
2cc8309249 Merge pull request #10351 from neikeq/enums-are-for-the-weak
ClassDB: Provide the enum name of integer constants
2017-08-21 19:56:08 -03:00
Rémi Verschelde
92410df24c Merge pull request #10415 from tagcup/euler_hack
Fix incorrect workaround for pure Y (X) rotations in XYZ (YXZ) conven…
2017-08-22 00:54:39 +02:00
Rémi Verschelde
135027a2f6 Merge pull request #10225 from Noshyaar/map
GDScript Built-in: add inverse_lerp & range_lerp
2017-08-22 00:31:46 +02:00
Pedro J. Estébanez
6759a28050 Fix tokenization of doubles
Fixes #9600.
2017-08-21 23:59:29 +02:00
Rémi Verschelde
e9c43cecbf Merge pull request #10433 from djrm/pr_svg_support
SVG support
2017-08-21 23:49:07 +02:00
Marcelo Fernandez
63f847b306 p_screen param from get_screen_* funcs now default to the current screen 2017-08-21 18:28:29 -03:00
Rémi Verschelde
de261ef380 Merge pull request #10484 from Sipaha/pr_mt_queue_deadlock_fix
Fix deadlock in CommandQueueMT
2017-08-21 22:55:07 +02:00
Wilson E. Alvarez
738d2ab969 Removed unnecessary assignments 2017-08-21 15:15:55 -04:00
Rémi Verschelde
4717d37bfa Merge pull request #10471 from akien-mga/args-doubledash
Third take at making command-line arguments more UNIX-like + main.cpp and help cleanup
2017-08-21 21:01:19 +02:00
Juan Linietsky
1be30f35a6 Fix binary object marshalling, closes #9472 2017-08-21 11:22:08 -03:00
Rémi Verschelde
93f1fb1c2f Fixes for new two-dash long command line arguments
- Fixes some single-dash leftovers that were missed in the previous commit
- Reorder the help output for clarity, and document missing options
- Drop obsolete options: --noop, --pack, --editor-scene, --level, --import, --import-script, --no-quit
- Improve error message on malformed arguments and do not display help on error
- Always use long form of arguments when starting a new Godot process from C++, for clarity and easy grepping
- Cleanup obsolete code here and there
2017-08-21 08:09:22 +02:00
Juan Linietsky
533014b88c simplify the way window is allowed to steal focus, no longer relying on project.godot. Closes #9459 2017-08-20 23:42:54 -03:00
Ignacio Etcheverry
32dd9a9f66 ClassDB: Provide the enum name of integer constants 2017-08-20 22:07:43 +02:00
Daniel J. Ramirez
da8fecf25e Added support for SVG 2017-08-20 13:53:02 -05:00
Sipaha
f6ee4cac39 Move wait_for_flush out of queue lock 2017-08-21 01:10:44 +07:00
Juan Linietsky
541fdffc0a Merge pull request #10319 from neikeq/pr-engine-editor-hint
Adds Engine::is_editor_hint() method
2017-08-20 12:55:46 -03:00
Rémi Verschelde
f6c39830cb Merge pull request #10481 from neikeq/water-store-remark
Fixes Ref's GetTypeInfo missing with ptrcall disabled
2017-08-20 16:34:38 +02:00
Ignacio Etcheverry
af4c4397df Fixes Ref's GetTypeInfo missing with ptrcall disabled 2017-08-20 14:28:22 +02:00
Przemysław Gołąb (n-pigeon)
6d56c73de7 Exposed Transform.interpolate_with()
Additionaly changed values names for 2D version to more descriptive ones.
2017-08-20 00:09:45 +02:00
Juan Linietsky
b9dcebb37c Revert "Second take at making command-line arguments more UNIX-like + main.cpp and help cleanup" 2017-08-19 17:47:27 -03:00
Rémi Verschelde
70b0857f6c Fixes for new two-dash long command line arguments
- Fixes some single-dash leftovers that were missed in the previous commit
- Reorder the help output for clarity, and document missing options
- Drop obsolete options: --noop, --pack, --editor-scene, --level, --import, --import-script, --no-quit
- Improve error message on malformed arguments and do not display help on error
- Cleanup obsolete code here and there
2017-08-19 16:48:11 +02:00
Ignacio Etcheverry
fd69604bd9 Adds editor_hint to Engine class 2017-08-19 01:03:12 +02:00
Rémi Verschelde
18a7315381 Rename localization method to tr again
Partial revert of #10380 based on contributor ~~bullying~~ feedback.
2017-08-18 22:38:38 +02:00
Juan Linietsky
72be8876ea Properly manage drawing of primitives when they lack an area, fixes #8930 2017-08-18 15:12:48 -03:00
Poommetee Ketson
d28da86f9f GDScript Built-in: add inverse_lerp & range_lerp 2017-08-18 21:49:03 +07:00
Juan Linietsky
dc62389739 -Properly check limits to objects sent (regarding to size), fixes #9034
-Changed the way objects are marshalled and sent to the debugger
-Editing debugged objects happens in the remote inspector now
2017-08-18 10:59:31 -03:00
Rémi Verschelde
1a92906b68 Merge pull request #10406 from marcelofg55/closest_power_of_2
Add closest_power_of_2 func and implement mix_rate/latency on OS X
2017-08-18 08:12:56 +02:00
Ferenc Arn
94aa4092f5 Fix incorrect workaround for pure Y (X) rotations in XYZ (YXZ) convention.
Fixes #10352.
2017-08-18 01:45:36 -04:00
Marcelo Fernandez
eab850524e Add closest_power_of_2 func and implement mix_rate/latency on OS X 2017-08-17 19:51:13 -03:00
Rémi Verschelde
ee59e627de Merge pull request #10380 from akien-mga/XL_MESSAGE
Rename `XL_MESSAGE`/`tr` to `localize`
2017-08-17 22:41:55 +02:00
Rémi Verschelde
c72529baf0 Rename XL_MESSAGE aka tr to localize
Also renames `set_message_translation` to `set_message_localization`
for consistency.
2017-08-17 18:10:22 +02:00
Marcelo Fernandez
aae29c7a0e Added notification const NOTIFICATION_WM_ABOUT 2017-08-17 11:28:45 -03:00
Rémi Verschelde
a8a6082dc0 Merge pull request #8899 from toger5/BetterFlatStylebox
Better flat stylebox with rounded corners
2017-08-16 18:15:04 +02:00
TwistedTwigleg
00f6c85928 Synchronize parameter names in definition and declaration
Fixes #10244.
2017-08-16 17:22:23 +02:00
Rémi Verschelde
035d74f54a Rename cull_AABB to cull_aabb
Part of #8830.
2017-08-16 17:01:05 +02:00
Rémi Verschelde
a8207b2dc7 Merge pull request #10264 from Rubonnek/use-const-reference
Use const reference where favorable
2017-08-16 16:41:35 +02:00
kubecz3k
edd6dce622 Merge pull request #10334 from Faless/fix_spbuffer_utf8
Fix StreamPeer put_utf8_string not working
2017-08-15 23:06:40 +02:00
toger5
c39ac8650d Added Corner Enum 2017-08-15 19:36:34 +02:00
Andreas Haas
155402dc1b
Removing a Resource also deletes imported files. 2017-08-15 01:13:41 +02:00
Wilson E. Alvarez
21d281c4a9 Use const reference where favorable 2017-08-14 13:28:06 -04:00
Juan Linietsky
b7571582ed Ability to save objects to binary format 2017-08-14 11:59:23 -03:00
Fabio Alessandrelli
74795b98da Fix StreamPeer put_utf8_string not working 2017-08-14 13:19:02 +02:00
Rémi Verschelde
0e81053de8 Merge pull request #10296 from raymoo/fixstreampeerbuffer
Fix broken stream reading in StreamPeerBuffer
2017-08-13 17:24:49 +02:00
Ruslan Mustakov
8d26748f80 Implement OrderedHashMap 2017-08-13 17:38:00 +07:00
Andreas Haas
5052cb2b91
InputEventJoypadMotion: Add missing is_pressed() method. 2017-08-12 13:04:14 +02:00
Raymoo
f87100780e Fix broken stream reading in StreamPeerBuffer 2017-08-12 01:19:50 -07:00
Rémi Verschelde
5c6e41cc13 Merge pull request #10190 from tagcup/euler_yxz
Use YXZ convention for Euler angles.
2017-08-11 10:38:46 +02:00
Rémi Verschelde
7ed64327a9 Merge pull request #10163 from ISylvox/resoucre-to-resource
Core/io: Fix typo in resource_format_binary
2017-08-11 10:36:33 +02:00
Rémi Verschelde
5cb09d31d8 Merge pull request #10142 from bruvzg/3.0-osx-ime
Add IME support (macOS)
2017-08-11 10:35:10 +02:00
Rémi Verschelde
306c0471f7 Merge pull request #9987 from Rubonnek/move-members-to-initilization-list
Moved member variables from constructor to initialization list
2017-08-11 10:31:04 +02:00
Ignacio Etcheverry
78619a5866 Fixes method definitions with extra number of arguments 2017-08-10 07:17:51 +02:00
Ignacio Etcheverry
b8420cda9c Removes type information from vararg method binds 2017-08-10 07:17:51 +02:00
Ignacio Etcheverry
2f290038d6 Removes type information from method binds 2017-08-10 07:17:50 +02:00
Ignacio Etcheverry
1e74f27f8f Adds missing type information to virtual method binds 2017-08-10 07:17:50 +02:00
Ignacio Etcheverry
46fdf16399 Improves method bind detection of signature types 2017-08-10 07:17:44 +02:00
bruvzg
8aa86cb9bc Implement NSTextInputClient protocol for IME 2017-08-09 19:09:33 +03:00
Ferenc Arn
53c23b0222 Use YXZ convention for Euler angles.
As discussed in issues #1479 and #9782, choosing the up axis (which is Y in Godot) as the axis of the last (or first) rotation is helpful in practical use cases.
This also aligns Godot's convention with Unity, helping with a smoother transition for people who are used to working with Unity (issue #9905).

Internally, both XYZ and YXZ functions are kept, for potential future applications.
2017-08-09 09:05:37 -04:00
Wilson E. Alvarez
6d112a68b6 Moved member variables from constructor to initialization list 2017-08-08 21:43:19 -04:00
Juan Linietsky
90a595ac42 Set some reasonable limits for sending information to the debugger, closes #5848 2017-08-08 20:55:22 -03:00
Indah Sylvia
51f56a4282 core/io: fix typo 'resoucre' to 'resource' 2017-08-08 12:02:49 +07:00
Juan Linietsky
cd9539f85d Display the Y angle properly when rotating from gizmo, partially helps #1479 2017-08-07 15:09:08 -03:00
Rémi Verschelde
e12b422c90 Merge pull request #10112 from ISylvox/completely-renaming-path_db
Renames Leftover 'path_db' -->> 'node_path'

[ci skip]
2017-08-07 15:09:43 +02:00
Indah Sylvia
83691fec4e renames leftover 'path_db' to node_path 2017-08-07 20:03:58 +07:00
Indah Sylvia
5ae78fdf6a Makes all Godot API's methods Lower Case 2017-08-07 18:24:35 +07:00
Juan Linietsky
134b3edf5a Merge pull request #10123 from bojidar-bg/7695-key-kp-enter
Rename KEY_RETURN to KEY_ENTER and KEY_ENTER to KEY_KP_ENTER
2017-08-06 21:04:11 -03:00
Bojidar Marinov
7b7c7c8dc0
Rename KEY_RETURN to KEY_ENTER and KEY_ENTER to KEY_KP_ENTER
Closes #7695
2017-08-06 16:26:07 +03:00
Juan Linietsky
475e8b28b2 keep default exported script values unless overriden, closes #8127 2017-08-06 09:33:59 -03:00
Ruslan Mustakov
789815466a Fix is_class check typo in ObjectDB::cleanup 2017-08-06 16:04:35 +07:00
Ignacio Etcheverry
97e942dd42 Merge pull request #10117 from neikeq/pr-classdb-getpropidx
ClassDB: Adds get_property_index method
2017-08-06 07:26:49 +02:00
Juan Linietsky
37adf936ab few bugs fixed thanks to explicit bool constructor and clang.
explicit bool constructor has thus now been removed, as it served it's mission!
2017-08-05 21:43:10 -03:00
Ignacio Etcheverry
aee99ab59f ClassDB: Adds get_property_index method 2017-08-06 02:04:10 +02:00
Juan Linietsky
a3a7fb83e6 Made bool constructor explicit in Variant to avoid bugs, fixes #7843 2017-08-05 19:50:53 -03:00
Juan Linietsky
cfe4b30941 renamed node path, closes #5691 2017-08-05 09:13:59 -03:00
Juan Linietsky
5c361485db -Added GLTF scene support (still missing animations and .glb extension)
-Fixed bugs regarding tangent generation in SurfaceTool
2017-08-02 15:43:49 -03:00
Pedro J. Estébanez
02607b3103 Use atomics for memory use tracking
Plus:
- An allocation is counted only after checking its success.
- Max usage is updated after growing reallocs as well.
- Drop unused header.
- Changed the 0xFFF.. at get_mem_available() to -1 with a comment telling it's the same, but more universal.
2017-08-01 01:50:56 +02:00
Rémi Verschelde
597ffa03b3 Merge pull request #9826 from RandomShaper/improve-atomics
Improve/add atomics
2017-07-31 23:30:07 +02:00
Rémi Verschelde
62464839ad Merge pull request #8567 from BastiaanOlij/ar_vr_server
AR/VR base classes and position tracker support
2017-07-31 13:29:18 +02:00
Rémi Verschelde
76005a8e75 Style: Apply clang-format on all files
Thus fixing some invalid changes that had still made it to the master branch.
2017-07-30 22:53:40 +02:00
Ruslan Mustakov
5804308c57 Fix passing Refs via ptrcall
There was no constructor for Ref from const pointer, so compiler decided
to construct Variant from pointer and then construct Ref from Variant
which turned it into NULL, because the Variant had null ref field.
2017-07-28 22:51:17 +07:00
Rémi Verschelde
3866829115 Merge pull request #9879 from RandomShaper/fix-mutating-settings-file
Fix mutating project.godot
2017-07-28 11:10:59 +02:00
BastiaanOlij
d2ba2d0873 Adding base classes and structures for ARVR support
Added ArVrScriptInterface

Added ARVRCamera, ARVRController and ARVROrigin helper objects
2017-07-28 10:39:15 +10:00
Karroffel
135c2112ad added an optional parameter to OS symbol lookup
When looking up a symbol from a library, previously an error was
shown when the symbol did not exist. That caused confusion when the
lookup was completely optional.
This adds a new parameter to that method so that those errors can
be handled manually if needed.
2017-07-27 11:13:21 +02:00
Rémi Verschelde
6645c7cc18 Merge pull request #9872 from bruvzg/3.0-num-enter-fix
Remove duplicate keycode constant for Numpad Enter key (3.0)
2017-07-27 08:52:52 +02:00
Pedro J. Estébanez
9aecc83cda Merge pull request #9892 from RandomShaper/fix-err-format
Fix misplaced quote in error messsage
2017-07-27 01:29:22 +02:00
Pedro J. Estébanez
748240b090 Fix misplaced quote in error messsage 2017-07-27 01:26:30 +02:00
Thomas Herzog
18e23ad4dc Merge pull request #9882 from endragor/nativescript-refcount
Forward refcount changes to NativeScriptInstance
2017-07-26 21:29:26 +02:00
Ruslan Mustakov
db9dcbddbc Forward refcount changes to NativeScriptInstance
This also changes Reference::unreference() to always invoke
refcount_decremented. Previously it was not invoked until the count
reached zero due to short-circuit evalution of boolean expressions.
2017-07-26 22:36:57 +07:00
Pedro J. Estébanez
1619aabfe1 Fix mutating project.godot
Namely:
- comment block lost on first save;
- config_version doubled as 3 and null on second save;
- format change on first save.
2017-07-26 16:13:38 +02:00
Thomas Herzog
9caf9fa76f Merge pull request #9720 from endragor/stack-bottom
Add a way to retrieve stack bottom of the main thread
2017-07-26 15:30:04 +02:00
Rémi Verschelde
668f4f437f Merge pull request #9873 from Noshyaar/pr-prop
Fix various property not found errors
2017-07-26 15:20:15 +02:00
Poommetee Ketson
0154098531 Fix various property not found errors 2017-07-26 20:03:13 +07:00
bruvzg
7de7ca8ae4 Remove duplicate keycode constant for Numpad Enter key. 2017-07-26 14:43:02 +03:00
Marcelo Fernandez
2144093fe6 Fix cvs files freezing the editor when a double quote is not closed 2017-07-25 22:38:28 -03:00
Rémi Verschelde
a931052c79 Merge pull request #9731 from Xrayez/gdscript-completion
Update GDScript completion names for Pool*Arrays
2017-07-25 21:05:42 +02:00
Rémi Verschelde
e4fe194fe5 Add newline after config_version and fix custom_features hint
Fixes #9818.
2017-07-25 21:02:38 +02:00
Andrii Doroshenko (Xrayez)
72436956dd Update GDScript completion names for Pool*Arrays
Notice: GDScript tokenizer used the old PoolFloatArray name.
Renamed PoolFloatArray to PoolRealArray.

Moved "project_settings.h" down one line to comply with the clang-format rules.

Fixes #9638

Closed pull request #9714 because I messed up with commits, sorry!
2017-07-25 12:14:40 +03:00
Ruslan Mustakov
3b88476130 Add a way to retrieve stack bottom of the main thread
I'm working on Nim bindings and Nim GC needs to know the stack
boundaries to check whether certain pointers are located on the stack
or in the heap. This commit adds godot_get_stack_bottom procedure
to gdnative module which returns pointer to the stack bottom of the
main thread. Later on this may be improved to return stack bottom of
the current thread.
2017-07-25 10:53:31 +07:00
Pedro J. Estébanez
27637b9e7f Improve/add atomics
- Remove use of non-builtin overloaded `InterlockedExhangeSubtract()` for Windows. Moreover, it was wrongly being used as if it hadn't a 64-bit version instead of being overloaded.
- Implement exchange-if-greater (as a CAS loop).
2017-07-25 01:49:22 +02:00
Rémi Verschelde
374cffaa11 Merge pull request #9764 from Noshyaar/pr-fix2
Add object type hint for docs
2017-07-24 08:07:32 +02:00
George Marques
f514fabf61
UWP: Fix build issue caused by atomic operations 2017-07-23 21:29:01 -03:00
Juan Linietsky
cf286ed287 Requesting for dictionary keys also respects insertion order, closes #9161 2017-07-23 12:24:03 -03:00
Thomas Herzog
9e483604a5 Merge pull request #9718 from endragor/ptrcall-fixes
Use specific size for numeric types in ptrcall
2017-07-23 16:35:10 +02:00
Poommetee Ketson
2777f81d29 Add object type hint for docs 2017-07-23 18:57:03 +07:00
L. Krause
aa798ebf8f Fix atomic operations in NO_THREADS builds 2017-07-22 22:06:01 +02:00
Juan Linietsky
3b2dfae5af function to add script and instance at once, as needed by neikeq 2017-07-22 16:57:56 -03:00
Juan Linietsky
0ad1a8f3d0 Script languges are uninitialized properly now. 2017-07-22 16:11:56 -03:00
Ruslan Mustakov
30176b0bb1 Use specific size for numeric types in ptrcall
The script system does not provide information about specific int
sizes, so we should establish convention to use the largest size
(64 bits). For real types double is always used.
2017-07-20 11:50:18 +07:00
Juan Linietsky
25678b1876 -Renamed GlobalConfig to ProjectSettings, makes more sense.
-Added system for feature overrides, it's pretty cool :)
2017-07-19 17:06:03 -03:00
Thomas Herzog
45b498c4e0 Merge pull request #9699 from RameshRavone/master
[gdnative] `Object::_get` return type and dynamic property
2017-07-19 13:07:06 +02:00
Rémi Verschelde
c5ba9d9b7c Merge pull request #9703 from Noshyaar/docs
Add object type hint for docs
2017-07-19 10:00:20 +02:00
geequlim
5a2500f580 Fix errors with global config names no more sorrys please 2017-07-19 09:25:50 +08:00
Poommetee Ketson
49c7620326 Add object type hint for docs 2017-07-19 02:03:34 +07:00
Ramesh Ravone
826c51c70e
_get return type fix 2017-07-18 21:09:46 +05:30
Rémi Verschelde
e089989777 Merge pull request #9608 from RandomShaper/more-atomics
Implement more atomic ops
2017-07-18 07:48:25 +02:00
Juan Linietsky
bbada82f80 -Reorganized all properties of project settings (Sorry, Again).
(Lot's of bloat accumulated, so it was time for clean up.)
-Made EditorSettings and ProjectSettings search more useful (search in sections too)
2017-07-17 22:18:58 -03:00
Pedro J. Estébanez
00d60125df Implement add & subtract atomics 2017-07-17 23:26:53 +02:00
Rémi Verschelde
8691355158 Merge pull request #9634 from vnen/gzip-compression
Add GZIP compression support
2017-07-17 22:40:47 +02:00
Juan Linietsky
4366b7c8b0 Added a simpler/faster way to bind script languages instance wrappers to Godot 2017-07-16 12:40:23 -03:00
Andreas Haas
2b7b67b7b1
Bindings: Fix Object::get_meta return type.
The method was shown as void in the docs.
2017-07-16 11:57:08 +02:00
Juan Linietsky
741145febd -Fix for multiple reflection probes causing issues.
-Fix for positional sound corruption to avoid making people deaf.
2017-07-15 18:42:06 -03:00
Juan Linietsky
2e73be99d8 Lots of work on Audio & Physics engine:
-Added new 3D stream player node
-Added ability for Area to capture sound from streams
-Added small features in physics to be able to properly guess distance to areas for sound
-Fixed 3D CollisionObject so shapes are added the same as in 2D, directly from children
-Fixed KinematicBody API to make it the same as 2D.
2017-07-15 08:32:34 -03:00
George Marques
0f765c86e5
Add GZIP compression support
- Fix a wrong call in PoolByteArray::compress
2017-07-13 14:41:10 -03:00
Poommetee Ketson
fdd2a87b8f Ignore fuzzy translations 2017-07-12 21:49:22 +07:00
Pedro J. Estébanez
9a868cd846 Add atomics for 64-bit integers
The public API looks the same but with added overloads.
The implementation uses templates or overloads depending on the context
to avoid code duplication.
2017-07-11 17:17:25 +02:00
Rémi Verschelde
a5bb77d523 Merge pull request #9366 from GodotExplorer/pr-ime-position-flow-cursor
IME window follow the input cursor.
2017-07-11 17:07:14 +02:00
Rémi Verschelde
faae28c955 Merge pull request #9607 from Noshyaar/astar
AStar: add bool has_point(id)
2017-07-11 16:45:38 +02:00
Rémi Verschelde
b708546f50 Merge pull request #9602 from ducdetronquito/master
[#7212] Fixed missing 'Variant' return values in documentation.
2017-07-11 16:44:21 +02:00
Poommetee Ketson
2c9f6312e2 AStar: add bool has_point(id) 2017-07-11 21:06:30 +07:00
Rémi Verschelde
711ebafa71 Revert "Improve reliability of memory stats" 2017-07-11 14:26:34 +02:00
Pedro J. Estébanez
6758ba0d93 Merge pull request #9014 from RandomShaper/improve-mem-stats
Improve reliability of memory stats
Memory block byte tagging
2017-07-11 14:19:45 +02:00
ducdetronquito
074801e7a9 [#7212] Fixed missing 'Variant' return values in documentation. 2017-07-11 13:25:51 +02:00
geequlim
7358766ff6 IME window follow the input cursor.
Abstruct set_ime_position to OS class.
Update ime position for LineEdit and TextEdit.
2017-07-11 18:36:20 +08:00
Poommetee Ketson
5a9eb5ef58 Include Git hash in the engine 2017-07-11 15:57:52 +07:00
Poommetee Ketson
2fd204c35e Refactor 'treshold' to 'threshold' 2017-07-08 22:24:56 +07:00
ducdetronquito
566655adc1 [#9292] Renamed Image.put_pixel() to set_pixel(). 2017-07-07 19:05:45 +02:00
Rémi Verschelde
6f63a01302 Merge pull request #8943 from RandomShaper/fix-error-handling
Implement well-defined handling of unrecoverable errors
2017-07-05 10:55:11 +02:00
Pedro J. Estébanez
779693a79b Implement byte-tagging of memory
Using a magic value for memory allocated but uninitialized and another one for memory about-to-be-released. Helps in debugging unitialized members, dangling pointerts, etc.

Disabled by default. Can be enabled for debug builds by defining `DEBUG_MEMORY_TAGGING`.
2017-07-05 10:31:13 +02:00
Pedro J. Estébanez
490a2ff0b9 Improve reliability of memory stats
The allocation count is managed atomically and where it actually should
change (for instance, not counting an allocation before its success has
been checked).

Bonus: Improve readability of the pre-pad checks.
2017-07-05 10:26:55 +02:00
Pedro J. Estébanez
211c451890 Implement well-defined handling of unrecoverable errors
Plus the addition of some convenience CRASH_* error macros.
Plus transient avoidance of the flood of warnings emitted by Clang when checking 'this' for NULL.
Plus explanation about the do-while(0) loop in some error macros.
2017-07-05 09:31:44 +02:00
Juan Linietsky
7263137dba Implemented environment arrays for skybox reflection and roughness, quality increase is enormous. 2017-07-04 23:53:08 -03:00
Rémi Verschelde
e54c7d5715 Merge pull request #9457 from TwistedTwigleg/Fixed_Vector3_snap
Fixed syntax inconsistency in Vector3.snap and Vector3.snapped
2017-07-03 23:43:33 +02:00
TwistedTwigleg
44ecfb028d Fixed syntax inconsistency in Vector3.snap and Vector3.snapped 2017-07-03 16:29:03 -04:00
Juan Linietsky
2a3e00c8c7 -Many fixes to VisualScript, fixed property names, etc.
-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
2017-06-30 21:35:05 -03:00
Juan Linietsky
db3b05d289 Reworked translation system
-Label and Button reload translation on the fly
-Resources are loaded and reload depending on locale
2017-06-28 17:01:35 -03:00
Rémi Verschelde
6f0762ba5d Merge pull request #9195 from kubecz3k/obj-incoming-connections
Ability to get a list of signals that are targeting given object
2017-06-27 00:06:42 +02:00
Juan Linietsky
760cdbe1a3 -Added folding to property editor, persistent on objects it edits
-Some changes to tree to support this properly
2017-06-25 17:31:22 -03:00
geequlim
4b2a44054a Fix crash with String copy from with NULL string parameter 2017-06-25 21:57:06 +08:00
Rémi Verschelde
87fd71244b Merge pull request #9334 from Noshyaar/pr-genh
BuildSystem: generated files have .gen.extension
2017-06-25 11:08:36 +02:00
Rémi Verschelde
8efd835009 Merge pull request #9348 from bojidar-bg/9299-save-device-ids
Make the InputEvent device property get saved
2017-06-25 10:55:03 +02:00
Poommetee Ketson
e3998528e0 BuildSystem: generated files have .gen.extension 2017-06-25 07:55:01 +07:00
Rémi Verschelde
9c186a754f Merge pull request #8783 from bojidar-bg/fix-range-loop-type
Fix for..in range() resulting in floats instead of ints
2017-06-24 23:39:55 +02:00
dumitru-stama
9ce0538ab3 Added 'blit_rect_mask' for 3.0 too 2017-06-24 08:53:54 -07:00
Bojidar Marinov
7542896046
Make the InputEvent device property get saved
Fixes #9299
2017-06-24 16:28:19 +03:00
Juan Linietsky
00e5ba3143 Remove methods from code completion which are already exposed by properties, makes completion cleaner and more close to the documentation. 2017-06-23 15:10:46 -03:00
Ignacio Etcheverry
a87c7f1328 Image: Fix wrong method DEFVAL 2017-06-23 03:51:36 +02:00
Juan Linietsky
3f2cd75c6f Fix shortcuts, make them visible again and work. 2017-06-22 19:57:59 -03:00
Bojidar Marinov
26a51c3c0b
Reimplement for..in range() so that it always results in ints
Fixes #8278, fixup of bfef8de1bc
2017-06-22 20:41:52 +03:00
Pedro J. Estébanez
0b776f9a30 Add atomics for 64-bit integers 2017-06-22 05:29:58 +02:00
Karroffel
40bb90fabd fixed ptrcall cast for const Ref<T>
Some methods require a const Ref<T> argument,
the ptrcall method wrappers cast `void *` to the
apropriate types. The problem is that there is no `Ref(const T *)`
constructor, but since Ref modifies the refcount of a Reference
anyway there's no point in a const version.

The problem is that with a `const T *` constructor call, the
argument gets converted to Variant first and loses all the
reference information, resulting in a null reference as the
argument to the constructor.
2017-06-20 21:38:21 +02:00
dumitru-stama
82d8da2a48 Fixed a string class bug 2017-06-19 20:08:31 -07:00
Thomas Herzog
b6b225f4c5 Merge pull request #8870 from tagcup/pathfollow
Fix PathFollow rotations.
2017-06-19 23:30:40 +02:00
Thomas Herzog
9d67be447a Merge pull request #9274 from vnen/compress-functions
Expose compression functions to GDScript
2017-06-19 22:59:24 +02:00
George Marques
5c779c574a
Add compression support for File object 2017-06-19 16:38:37 -03:00
George Marques
af7d590206
Add basic compression functions to PoolBaseArray 2017-06-19 16:38:10 -03:00
d
053a4fdcd9 Added two new methods to 3.0 'blend_rect_mask' and 'fill' 2017-06-18 11:29:37 -07:00
Juan Linietsky
5c6cac4e53 Add normalmap support for drawing in all low level primitives. Only added support in Sprite so far. 2017-06-17 23:27:42 -03:00
George Marques
b1537da605 Merge pull request #9231 from dumitru-stama/constimg
Fixed a bug in get_pixel not being const
2017-06-16 22:09:26 -03:00
Juan Linietsky
b19225bfce -Fix freezes caused by etccomp2, closes #9183
-Normalmaps are now detected and imported as RGTC, both in S3TC and ETC2, this improves their quality.
2017-06-16 21:49:37 -03:00
dumitru.stama
7787700aca Fixed a bug in get_pixel not being const 2017-06-16 17:29:05 -07:00
Rémi Verschelde
3fadbe2172 Merge pull request #9201 from vnen/rename-extensions
Rename Godot-specific resource extensions
2017-06-16 13:01:10 +02:00
Marc Gilleron
4dbe0967d5 Fixed memory leaks
- PoolVector leak
- mesh_remove_surface leak
2017-06-16 02:39:16 +02:00
George Marques
e42d59f01e
Rename Godot-specific resource extensions 2017-06-15 21:35:20 -03:00
Rémi Verschelde
43a84429ff doc: Sync classref with current source
Tried to salvage what I could of the Image and InputEvent changes.
2017-06-15 20:52:51 +02:00
Rémi Verschelde
4f8d9f0915 Merge pull request #9177 from tagcup/gcc5_isinf
Use inline code for isinf with gcc versions <6.
2017-06-15 20:46:10 +02:00
Jakub Grzesik
8ff5e50513 Ability to get a list of signals that are targeting object 2017-06-15 15:32:30 +02:00
Ferenc Arn
cd1e14b1da Use inline code for isinf as a workaround for libstdc++ versions from gcc 5.x era.
Fixes #9166.
2017-06-14 18:30:22 -05:00
Rémi Verschelde
108d8bcfc0 Merge pull request #9157 from capnm/fix-https-request
Don't append standard ports to the request header.
2017-06-14 23:15:38 +02:00
Rémi Verschelde
19017a760c Merge pull request #9158 from Hinsbart/script_templates
Add ability to use custom script templates.
2017-06-14 23:11:41 +02:00
Rémi Verschelde
a91b62e4c7 Merge pull request #9175 from bd339/iss9156
Correct Image::blit_rect
2017-06-14 22:46:10 +02:00
Rémi Verschelde
c769a38c07 Merge pull request #9155 from kubecz3k/check-process-type
Ability to check if we are in fixed thread, solves: #3698
2017-06-14 17:21:54 +02:00
Benjamin Dahse
075997c563 Rewrite Image::blit_rect to use the following algorithm:
1. Let r1 be the source rectangle clipped against the entire source image rectangle.
2. Let r2 be r1 offset by p_dest, clipped against the entire destination image rectangle.
3. Copy pixels from r1 to r2.
2017-06-14 15:56:58 +02:00
Juan Linietsky
a8e845a474 Merge pull request #8548 from tagcup/etc2comp
Add ETC1/ETC2 compression support though etc2comp.
2017-06-13 19:17:13 -03:00
Martin Capitanio
5cabe5f0fc Don't append standard ports to the request header.
Breaks the SSL communication with some servers,
do the same that the other curl, wget, firefox & co clients do.

Fixes #9146
2017-06-13 22:58:23 +02:00
Andreas Haas
8361b1ce07 Add ability to use custom script templates.
Templates will be loaded from .godot/script_templates
For now they're disabled for GDNative.

Ideas for further improvements:

- Add a "Save as Template" option to the script editor, as it can normally only save to res://
- Support more placeholders / custom placeholders
2017-06-13 20:03:08 +00:00
kubeczek
a81b706e09 Fixed thread check, solves: #3698 2017-06-13 17:49:28 +02:00
Ferenc Arn
98261e2df2 Expose zstd and zlib compression levels as global config. 2017-06-11 20:27:07 -05:00
Juan Linietsky
12b2652ecb Merge pull request #9104 from tagcup/zstd
Add zstd compression support.
2017-06-11 18:41:56 -03:00
Zher Huei Lee
9ecdf522bd Added EditorPlugin.remove_import_plugin()
Allows addons with import extensions to clean up properly on
removal.
2017-06-11 17:18:22 +08:00
alexholly
935f730170 renamed all Rect3.pos to Rect3.position 2017-06-09 15:54:02 +02:00
Ferenc Arn
f177c15347 Add zstd compression support.
zstd has much better compression speed and ratio, and better decompression speed than currently available methods.
Also set zstd as the default compression method for Compression as well as FileAccessCompressed functions.
2017-06-08 23:48:14 -05:00
Juan Linietsky
612ab8fcdb -Restored multithread capability to VisualServer
-Restored resource previews!
2017-06-09 00:24:18 -03:00
Poommetee Ketson
fcaddeccbb
Fix build error, commit bee81d5 2017-06-08 12:48:59 +07:00
Rémi Verschelde
b52466f793 Merge pull request #9002 from Hinsbart/key_action_match
InputEvent: Restore old behaviour for matching key events to actions.
2017-06-08 07:43:18 +02:00
Rémi Verschelde
bee81d5214 Merge pull request #8981 from toger5/addedGrowFunction
implemented grow(left,top,right,bottom) function
2017-06-08 07:41:54 +02:00
Rémi Verschelde
71ada5bc2c Merge pull request #9015 from mcanders/mcanders/ParseObjectVariantFix
Fix Variant::OBJECT token parsing
2017-06-07 07:51:32 +02:00
toger5
66b308925c added grow functions to Rect2
- grow_individual
 - grow_margin
2017-06-05 01:11:00 -07:00
Carter Anderson
0a8de39bb1 Fix Variant::OBJECT token parsing 2017-06-04 21:33:09 -07:00
alexholly
a3c90b0293 renamed all Rect2.pos to Rect2.position 2017-06-04 02:09:17 +02:00
Andreas Haas
9bc5348961
InputEvent: Renamed "pos" property to "position"
Make the naming consistent with other classes.
2017-06-03 11:26:39 +02:00
Rémi Verschelde
5a6d4971e1 Merge pull request #8973 from thomas-goerlich/8957_rand_range_bugfix
Fixed rand_range not returning correct random values on windows
2017-06-03 08:44:07 +02:00
Rémi Verschelde
59322d4cc4 Merge pull request #9011 from karroffel/ptrcall-nightmare-fix
fixed PowerState enum cast
2017-06-01 09:42:05 +02:00
Ferenc Arn
6a9c990da7 Add ETC1/ETC2 compression support though etc2comp.
Remove rg-etc1 code. Also updated travis to use ubuntu 14.04.

Fixes #8457.
2017-05-31 18:59:00 -05:00
Juan Linietsky
a134f58fb3 rewritten PBR implementation to make it friendlier with Blender 2017-05-31 20:29:56 -03:00
Karroffel
6bda2876f1 fixed PowerState enum cast
Quite a while ago I made a commit (131631b) where I did a weird
thing to fix compilation with PTRCALL_ENABLED. And I couldn't
sleep because of this after all these months. So here is the
proper version.
2017-06-01 00:16:33 +02:00
Ferenc Arn
a1c8896d9d Fix PathFollow rotations.
Used parallel transport to move the object along the curve. Also introduced a few more math checks useful for debugging.
2017-05-31 13:58:31 -05:00
Andreas Haas
c218390864
InputEvent: Restore old behaviour for matching key events to actions.
Original code in 9100db7
2017-05-30 22:27:55 +02:00
Juan Linietsky
5567e898d1 Several fixes related to PBR and Environment 2017-05-30 08:56:19 -03:00
Thomas Görlich
2c6449c4fc Changed enum to const because enum with uint64 size does not work on VSC++ Compiler 2017-05-29 23:56:21 +02:00
Poommetee Ketson
ff03d846eb NaturalSort: strings start with . treated differently 2017-05-29 09:59:02 +07:00
Juan Linietsky
bb20f230ad -Added .hdr format support
-Added default environment editor setting
-Added environment created by default in new projects
-Removed default light and ambient from spatial editor, to make the editor more PBR compliant
2017-05-28 21:48:05 -03:00
Rémi Verschelde
378ebffb23 Merge pull request #8936 from Hinsbart/fix_action
Fix InputEvent actions.
2017-05-27 11:29:05 +02:00
Andreas Haas
3204befd1e
Fix InputEvent actions.
The `InputEvent::is_action(pressed|released)` methods weren't implemented yet.
Also fixed a typo in `InputDefault` that prevented `Input.is_action(pressed|released)` from working.
2017-05-27 10:52:57 +02:00
Juan Linietsky
f89641907f -Added EXR supprot for HDR (no BC6 compression yet though)
-Improvements to texture importer
-Proper detection of S3TC compression modes, and added all modes to Image
-Fixes to non-power of 2 compressed textures, which should all be supported by GLES3
2017-05-26 22:31:32 -03:00
Andreas Haas
3744d9fd55
Fix virtual methods in InputEventKey.
This fixes a lot of problems with key input in the engine.
2017-05-25 21:56:54 +02:00
Juan Linietsky
7c89e00d46 Merge pull request #8590 from tagcup/s3tc_stuff
Use libsquish to decompress DXT textures.
2017-05-25 16:29:04 -03:00
Rémi Verschelde
7592c2380d Merge pull request #8898 from vnen/screentouch-struct-class
Change InputEventScreenTouch from struct to class
2017-05-25 08:40:27 +02:00
George Marques
452caf3f80
Change InputEventScreenTouch from struct to class 2017-05-24 16:06:07 -03:00
Martin Capitanio
29c5b4c7e6 Fix 2D-editor mouse wheel zoom (x11).
Fixes #8888
2017-05-24 10:02:43 +02:00
Juan Linietsky
afcce9eb12 -Fix the "set_val" call deferred, it was the only one.. closes #8742
-Removed redundant bind in input_event
2017-05-23 09:06:22 -03:00
Juan Linietsky
6161e731d0 fixed crash on code that checks InputEvent 2017-05-23 08:13:11 -03:00
Rémi Verschelde
ce51138b38 Merge pull request #8786 from bojidar-bg/fix-astar-weight-scale
Fix weigth scale of A* being applied to the whole estimation
2017-05-22 15:16:20 +02:00
Bojidar Marinov
bd91730347
Fix weigth scale of A* being applied to the whole path and estimation
Attempt to fix #8584
2017-05-22 15:55:49 +03:00
Ferenc Arn
e4eb093c62 Avoid overestimating the cost in AStar heuristics.
This is a necessary condition for finding optimal solutions.
This is achieved by simply requiring/ensuring that no weights are smaller than 1.

Fixes #8584.
2017-05-21 15:13:09 -05:00
Juan Linietsky
5b3709d309 Removal of InputEvent as built-in Variant type..
this might cause bugs I haven't found yet..
2017-05-20 17:05:38 -03:00
Rémi Verschelde
c7650c363b Merge pull request #8829 from supagu/astar-bidirectional
Added bool to allow astar points to be connected in one direction only
2017-05-20 09:49:28 +02:00
Emmanuel Leblond
abcb044bf3
Finish implementation of GDnative builtins bindings 2017-05-19 23:28:15 +02:00
Fabian Mathews
2262a59ab3 Added bool to allow astar points to be connected in one direction only 2017-05-19 20:46:45 +09:30
Ferenc Arn
3c175115eb Use libsquish to decompress DXT textures. 2017-05-18 16:57:53 -05:00
Rémi Verschelde
1f62c33141 Merge pull request #8807 from RandomShaper/mq-flush-reentrant
Make MessageQueue::flush() reentrant
2017-05-18 18:52:55 +02:00
Rémi Verschelde
c2854381b3 Merge pull request #8649 from neikeq/pr-ringbuffer-find
RingBuffer: Adds find() method
2017-05-18 13:42:56 +02:00
Pedro J. Estébanez
983fd3a7bb Make MessageQueue::flush() reentrant 2017-05-18 13:02:49 +02:00
Rémi Verschelde
c3baf5eb3c Fix two typos from previous commit
Also cleanup comments on variant types.
2017-05-17 18:45:56 +02:00
Juan Linietsky
98a3296702 Removal of Image from Variant, converted to a Resource. 2017-05-17 07:37:45 -03:00
Damian Day
f2564ca97f Fix natural sorting order in EditorFileDialog, FileDialog and EditorFileSystemDirectory
Make EditorFileDialog, FileDialog and EditorFileSystemDirectory alphanumerical sorting more natural

Added a new method 'naturalnocasecmp_to' and comparator 'NaturalNoCaseComparator' to String.

Fixes #8712.
2017-05-12 13:02:25 +01:00
Marcelo Fernandez
bba8f1db30 Fixed the IP resolver code blocking the main thread, it uses a Mutex now to lock its own thread. 2017-05-08 21:30:48 +02:00
toger5
304a1f5b5a Implemented scrolling factor for smooth trackpad scrolling
Working platforms platform: OSX, Windows.
Support for almost all ui elements, including project list.
2017-05-07 14:23:56 +02:00
Rémi Verschelde
18df047f0b Merge pull request #8658 from Faless/explain_out_of_mem_msg_queue_master
Better explain out of memory error in message queue
2017-05-05 23:09:30 +02:00
Rémi Verschelde
e58519eb31 Merge pull request #8642 from RandomShaper/fix-pack-get-curr-dir
Fix infinite loop in DirAccessPack::get_current_dir()
2017-05-05 23:02:07 +02:00
Fabio Alessandrelli
1a7aafa90d Better explain out of memory error in message queue
Also effectively saves one unnecessary call when everything is fine.
2017-05-05 19:56:54 +02:00
Ignacio Etcheverry
803a54d93c RingBuffer: Adds find() method 2017-05-05 02:09:43 +02:00
Pedro J. Estébanez
5c0188b5c3 Fix infinite loop in DirAccessPack::get_current_dir() 2017-05-04 02:20:53 +02:00
Rémi Verschelde
7ce8342ac5 Rename project file to "project.godot"
Slimmed down variant from the reverted #8375.
The rationale behind the name change is to give Godot's project file a unique
extension (".godot") that can be registered on the OS to be associated with
the Godot binary (OS registration not implemented here).

This PR also adds the possibility to start the game or editor if launched
with the project.godot passed as argument, which paves the way for allowing
a similar behaviour on a double-click in the OS file manager (code originally
by @Hinsbart).

Closes #6915.
2017-05-01 17:50:19 +02:00
Rémi Verschelde
de7eba887e Merge pull request #8572 from akien-mga/thirdparty
Moving more thirdparty stuff (minizip, some single-file external libs) to the thirdparty directory
2017-04-29 22:57:49 +02:00
Juan Linietsky
6d2f985db4 Revert "Use .godot as file extension for project files." 2017-04-29 17:56:51 +02:00
Rémi Verschelde
d4029aa51a Move other lone thirdparty files to thirdparty/misc
Also move Box2D ConvexDecomposition contrib code to
thirdparty/b2d_convexdecomp.
2017-04-28 21:19:25 +02:00
Rémi Verschelde
c5f830d6b9 Split thirdparty smaz.c out of compressed_translation.cpp
Code comes from 150e125cba/smaz.c

With a small modification to match Godot expectations:
```
diff --git a/thirdparty/core/smaz.c b/thirdparty/core/smaz.c
index 9b1ebc2..555dfea 100644
--- a/thirdparty/core/smaz.c
+++ b/thirdparty/core/smaz.c
@@ -14,7 +14,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 #include <string.h>

 /* Our compression codebook, used for compression */
-static char *Smaz_cb[241] = {
+static const char *Smaz_cb[241] = {
 "\002s,\266", "\003had\232\002leW", "\003on \216", "", "\001yS",
 "\002ma\255\002li\227", "\003or \260", "", "\002ll\230\003s t\277",
 "\004fromg\002mel", "", "\003its\332", "\001z\333", "\003ingF", "\001>\336",
@@ -89,7 +89,7 @@ static char *Smaz_rcb[254] = {
 "e, ", " it", "whi", " ma", "ge", "x", "e c", "men", ".com"
 };

-int smaz_compress(char *in, int inlen, char *out, int outlen) {
+int smaz_compress(const char *in, int inlen, char *out, int outlen) {
     unsigned int h1,h2,h3=0;
     int verblen = 0, _outlen = outlen;
     char verb[256], *_out = out;
@@ -167,7 +167,7 @@ out:
     return out-_out;
 }

-int smaz_decompress(char *in, int inlen, char *out, int outlen) {
+int smaz_decompress(const char *in, int inlen, char *out, int outlen) {
     unsigned char *c = (unsigned char*) in;
     char *_out = out;
     int _outlen = outlen;
@@ -192,7 +192,7 @@ int smaz_decompress(char *in, int inlen, char *out, int outlen) {
             inlen -= 2+len;
         } else {
             /* Codebook entry */
-            char *s = Smaz_rcb[*c];
+            const char *s = Smaz_rcb[*c];
             int len = strlen(s);

             if (outlen < len) return _outlen+1;
diff --git a/thirdparty/core/smaz.h b/thirdparty/core/smaz.h
index a547d89..a9d8a33 100644
--- a/thirdparty/core/smaz.h
+++ b/thirdparty/core/smaz.h
@@ -14,7 +14,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 #ifndef _SMAZ_H
 #define _SMAZ_H

-int smaz_compress(char *in, int inlen, char *out, int outlen);
-int smaz_decompress(char *in, int inlen, char *out, int outlen);
+int smaz_compress(const char *in, int inlen, char *out, int outlen);
+int smaz_decompress(const char *in, int inlen, char *out, int outlen);

 #endif
```
2017-04-28 21:19:24 +02:00
Rémi Verschelde
2398eb6ed4 Move core thirdparty files to thirdparty/{minizip,misc} 2017-04-28 21:19:23 +02:00
Andreas Haas
c530d8f43c
Fix recognition of resource extensions.
Also removes a related debug print.
2017-04-26 23:07:23 +02:00
volzhs
ec1c7ce6c3 Fix wrong fallback for locale 2017-04-26 04:48:03 +09:00
Rémi Verschelde
1dc689b513 Merge pull request #8506 from iam13islucky/patch-1
[3.0] Fix bug in Image::_get_pixelb
2017-04-24 12:02:10 +02:00
Rémi Verschelde
bd885ed704 Merge pull request #8469 from Melix19/patch-2
Update snake_case splitting
2017-04-24 11:38:36 +02:00
Rémi Verschelde
68870af214 Merge pull request #8420 from magyar123/pr-script-files-as-base
Added the ability to select files as base when creating scripts
2017-04-24 11:28:36 +02:00
Rémi Verschelde
5ae1e172da Merge pull request #8277 from tagcup/math_checks
Added various functions basic math classes. Also enabled math checks …
2017-04-24 11:16:20 +02:00
iam13islucky
73a9a85bc9 [3.0] Fix bug in Image::_get_pixelb
Fixes issue:
 https://github.com/godotengine/godot/issues/8158
2017-04-23 22:51:35 -06:00
Marco Melorio
4677c0fbb8 Update snake_case splitting 2017-04-23 23:03:16 +02:00
Rémi Verschelde
515f92d03b Fix property warnings and hide some debug prints
"ALL IS GOOD" was a lie.

In particular, removes verbose "path not recognized" false positive.

The actual logic is to (somewhat naively) check all ResourceFormatLoaders
and to pick the first good match, so no need to warn about the formats
that do not match the type hint.
2017-04-23 11:17:32 +02:00
Rémi Verschelde
99529fb80d Move VERSION_MKSTRING logic to version.h
Fixes a bug where the VERSION_PATCH define is not yet in scope if
typedefs.h is included before version.h at compilation time.

(cherry picked from commit 3b687c5474)
2017-04-20 12:14:34 +02:00
Rémi Verschelde
22b9c0207b Merge pull request #8417 from neikeq/hello-there
External editor improvements and fixes
2017-04-20 02:20:04 +02:00
Marco Melorio
1ac38846e8 Fixed that playing the project opens the project manager
Fixes #8445
2017-04-18 15:46:37 +02:00
Rémi Verschelde
7088d9e30f Merge pull request #8441 from tagcup/seed_fix
Fix PRNG randomization.
2017-04-18 00:06:41 +02:00
Rémi Verschelde
474f18512a Merge pull request #8375 from Hinsbart/project_extension
Use .godot as file extension for project files.
2017-04-17 23:28:15 +02:00
Ferenc Arn
ceb699f5ec Fix PRNG randomization.
PCG32 doesn't like small seeds, which leads to zero random values (prior to #7532, zero values were handled as special cases).

Use a large default seed, and also add a shift in Math::randomize.

Fixes #8423.
2017-04-17 14:05:02 -05:00
Ignacio Etcheverry
4b8568006d External editor improvements and fixes
Notable changes:

- Now ScriptLanguages have the option to override the global external editor setting.
If `ScriptLanguage::open_in_external_editor()` returns `ERR_UNAVAILABLE` (which it does by default), then the global external editor option will be used.
- Added formatting to the external editor execution arguments. Now it's possible to write something like this: `{project} -g {file}:{line}:{col}`.
- `VisualScript::get_member_line()` now can return the line of functions (well, it returns the id of the _Function_ node of the function). I guess there is nothing else we can get a "line" from.

Fixes:

- Fixes a bug where `ScriptEditor::script_goto_method()` would not work if the script is not already open in the built-in editor.
- Fixes wrong DEFVAL for `cursor_set_column` and `cursor_set_line` in TextEdit.
- `Script::get_member_line()` now returns -1 ("found nothing") by default.
2017-04-17 01:51:30 +02:00
Andreas Haas
c06a2db63a
Use .godot as file extension for project files.
Now project files don't have to be named "godot.cfg" anymore, they can have any name so as long as it ends with *.godot.
Also godot will automatically start the editor now if launched with a project file as an argument.
This allows for double-clicking of projects to open them :)

Code-wise this should be complete, but there's still work to do:

- Make a nice icon for godot projects.
- Work on installers/packaging -> register the extension and icon with godot.
- Update the 2.1 to 3.0 exporter.

Tested on linux and windows so far.
2017-04-16 10:19:07 +02:00
mbalint12
a3afec588c Added the ability to select files as base when creating scripts 2017-04-15 23:29:09 +02:00
Hein-Pieter van Braam
8ff6e53833 Correct Variant::hash_compare()
There was a logic error in #7815 which made
Variant.hash_compare() == Variant.hash_compare() always true.
In an attempt to short-circuit the NaN check I made an (in hindsight) obvious
error: 10 == 12 || is_nan(10) == is_nan(12)

This will be true for all inputs, except for the NaN, not-NaN case. The macro
has been updated to now generate:

(10 == 12) || (is_nan(10) && is_nan(10))

so:

(10 == 12)   || (is_nan(10)  && is_nan(12))  = false
   False  or (False and False) is False
(10 == 10)   || (is_nan(10)  && is_nan(10))  = true
   True or (False and False) is True
(Nan == 10)  || (is_nan(NaN) && is_nan(10))  = false
   False or (True and False) is False
(Nan == Nan) || (is_nan(NaN) && is_nan(NaN)) = true
   False or (True and True) is True

Which is correct for all cases.

This bug was triggered because the hash function for floating point numbers
can very easily generate collisions for the tested Vector3(). I've also added
an extra hashing step to the float hash function to make this less likely to
occur.

This fixes #8081 and probably many more random weirdness.
2017-04-14 11:31:18 +02:00
Bojidar Marinov
c37840c69f
Fix a pesky bug in marshalls.cpp/encode_variant
Fixes #7556 running game from editor on LLVM builds.
2017-04-11 20:17:56 +03:00
Sergey Pusnei
8589ca3903 Rename [gs]et_pos to [gs]et_position for Controls
Control set_pos -> set_position
Control set_global_pos -> set_global_position
[gs]et_mouse_pos -> [gs]et_mouse_position
[gs]et_global_mouse_pos -> [gs]et_global_mouse_position
fixes #8005
2017-04-10 08:27:34 +02:00
Rémi Verschelde
f29dc079dc Merge pull request #8333 from touilleMan/classdb-class_sget_property-binding
Add _ClassDB.class_[g|s]et_property to ClassDB exposed methods
2017-04-09 17:46:35 +02:00
Emmanuel Leblond
42eba57bad
Add return value in ClassDB.class_[g|s]et_property bindings 2017-04-09 14:04:01 +02:00
Emmanuel Leblond
23c310be7b
Add _ClassDB.class_[g|s]et_property to ClassDB exposed methods 2017-04-09 13:27:07 +02:00
Juan Linietsky
4286aef693 Particle system is complete. Rejoice! 2017-04-08 22:40:06 -03:00
Rémi Verschelde
df61dc4b2b Add "Godot Engine contributors" copyright line 2017-04-08 00:11:42 +02:00
Juan Linietsky
74808ac4d9 New particle system, mostly working, some small features missing. 2017-04-06 23:49:27 -03:00
Ferenc Arn
9a37ff1e34 Added various functions basic math classes. Also enabled math checks only for debug builds.
Added set_scale, set_rotation_euler, set_rotation_axis_angle. Addresses #2565 directly.
Added an euler angle constructor for Basis in GDScript and also exposed is_normalized for vectors and quaternions.
Various other changes mostly cosmetic in nature.
2017-04-06 13:03:56 -05:00
Rémi Verschelde
1a33d5e06f Merge pull request #8286 from Hinsbart/memleaks
Core: fix possible memory leaks.
2017-04-06 14:34:21 +02:00
Andreas Haas
a2734df7ed
Core: fix possible memory leaks. 2017-04-06 13:43:13 +02:00
Rémi Verschelde
2c4e4432af Merge pull request #8214 from tagcup/bounce_reflect_slide
Made slide and reflect active verbs acting on itself in Vector2 and V…
2017-04-05 01:23:09 +02:00
Rémi Verschelde
46bc14e66f Merge pull request #8246 from GodotNativeTools/dlscript-module
DLScript module
2017-04-04 00:25:03 +02:00
Karroffel
fd55308786 added dlscript module
This module was written by bojidar-bg and me, with the help of ClikCode and touilleMan.

This adds a module to Godot that enables the use of dynamic libraries as a source for scripts.
That also allows third party libraries to be linked to Godot more easily and without creating modules.

For a readme see https://github.com/GodotNativeTools/godot_headers/blob/master/README.md
2017-04-03 17:20:11 +02:00
Ferenc Arn
1a620bd5fa Made slide and reflect active verbs acting on itself in Vector2 and Vector3.
This is in alignment with other functions in vector classes.
Also added checks for normalization, fixed the sign of reflect (which now corresponds to reflection along a plane mathematically), added bounce method and updated docs.

Fixes #8201.
2017-04-03 10:02:12 -05:00
Karroffel
67f59bc2d9 increased maximum number of scripting languages 2017-04-03 16:10:26 +02:00
Rémi Verschelde
5b09dde3fe Merge pull request #8146 from supagu/astar
Added ability to change A-star cost function
2017-04-03 13:52:59 +02:00
Fabian Mathews
b541402417 Added ability to change A-star cost function 2017-04-01 16:36:22 +10:30
Karroffel
2281942fb3 Added methods for opening dynamic libraries to OS 2017-03-29 23:05:15 +02:00
Ferenc Arn
97d510531a Fix polar decomposition in 2D.
When performing polar decomposition in 2D as B = R.S, where R is rotation (with determinant +1) and S is scaling, use the convention that reflections are absorbed into S through a reflection around y axis.
In 3D, this is done by using a reflection along all three axes, but since the dimensionality is even in 2D, one axis needs to be chosen.

Fixes Matrix32::get_rotation and Matrix32::get_scale (which weren't properly fixed in #7445).
2017-03-29 12:04:49 -05:00
Rémi Verschelde
5cad9147f9 Merge pull request #8133 from Hinsbart/joy_constants
Input: Refactor JOY_* constants.
2017-03-24 22:53:16 +01:00
Rémi Verschelde
60a9debb99 Merge pull request #8132 from tagcup/vector3_angle_to
Use atan2 rather than acos in Vector3.angle_to.
2017-03-24 22:52:46 +01:00
Rémi Verschelde
beba97c0c3 Merge pull request #8122 from tagcup/axis_check_normalization
Explicitly documented that Transform.basis is not necessarily an orth…
2017-03-24 22:51:27 +01:00
Rémi Verschelde
98baec6880 Merge pull request #8109 from RandomShaper/warped-panning
Implement warped mouse panning for 2D & 3D editors
2017-03-24 22:50:39 +01:00
Rémi Verschelde
ca3596b043 Merge pull request #8098 from bojidar-bg/configfile-get-value-suppress
Suppress error messages when using ConfigFile::get_value and a default is given
2017-03-24 22:49:50 +01:00
Rémi Verschelde
296ece2c6a Merge pull request #7985 from Faless/enet_godot_sock_squash
Update ENet to use Godot sockets.
2017-03-24 22:47:18 +01:00
Rémi Verschelde
debeee56f7 Fix typos in source code using codespell
From https://github.com/lucasdemarchi/codespell
2017-03-24 21:45:31 +01:00
Andreas Haas
0d8f5660f6
Input: Refactor JOY_* constants.
**Breaking change**

Removed the `JOY_SNES_*` and `JOY_SEGA_*` constants. Imho there's no reason for a modern game engine to provide button aliases for decades-old hardware.
Also renamed `JOY_ANALOG_{0,1}_{X,Y}` to `JOY_ANALOG_{L,R}{X,Y}` and removed `JOY_ANALOG_2_*`.
2017-03-24 18:04:36 +01:00
Ferenc Arn
3730e0533c Use atan2 rather than acos in Vector3.angle_to.
Fixes #8111.
2017-03-24 12:03:33 -05:00
Fabio Alessandrelli
5f681d0b0f Allow non blocking UDP put_packet in C++.
- Add blocking mode option to PacketPeerUDP.
- put_packet returns ERR_UNAVAILABLE when operation would block.
- ENet module uses non-blocking UDP.
2017-03-24 02:30:11 +01:00
Ferenc Arn
6bb9b58b09 Explicitly documented that Transform.basis is not necessarily an orthogonal matrix.
Also added a check that in axis-angle rotations, axis is a normalized vector, and modified the docs accordingly.

Fixes #8113.
2017-03-23 12:27:00 -05:00
Pedro J. Estébanez
f5004b78d0 Implement warped mouse panning for 2D & 3D editors
Enabled by default as in Blender, but can be disabled separately for 2D & 3D;
the core functionality is in Input so this could be reused or even exposed to scripts in the future
2017-03-22 21:36:52 +01:00
Bojidar Marinov
927d15b815
Suppress error messages when using ConfigFile::get_value and a default is given
Fixes #8097
2017-03-21 19:56:54 +02:00
Andreas Haas
a69e449782
Input: bind parse_input_event()
When using get_tree().input_event(ev), the engine will JUST send the event down the SceneTree.
However, you won't get any of the benefits of the Input singleton:
- No InputMap actions will be emitted
- The internal input state won't be modified, so methods like `Input.get_mouse_pos()` or `Input.is_joy_button_pressed` won't return the expected output after sending the event.

This is fixed by using `Input.parse_input_event(ev)` instead.
I guess we'll also have to update the docs to reflect that this is the preferred method of sending custom InputEvents.
2017-03-19 09:20:44 +01:00
Karroffel
6ab3213a55 fixed ClassDB inconsistencies
fixes #7960
2017-03-13 21:17:31 +01:00
Rémi Verschelde
5dbf1809c6 A Whole New World (clang-format edition)
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
2017-03-05 16:44:50 +01:00
Rémi Verschelde
45438e9918 Style: prevent bogus macro formatting by clang-format
Also prevent formatting of thirdparty snippet
2017-03-05 16:29:53 +01:00
Karroffel
1531f6fe01 really fixed PTRCALL now 2017-03-05 16:20:20 +01:00
Rémi Verschelde
f4fb19d11a Merge pull request #7958 from karroffel/powerstate-ptrcall-fix
Added PowerState casting operator to Variant
2017-03-05 15:48:06 +01:00
Rémi Verschelde
e1c1d7d1d7 Add a bunch of missing Godot headers in own files 2017-03-05 15:47:28 +01:00
Karroffel
15838f3702 Added PowerState casting operator to Variant
Without it Godot does not build with PTRCALL_ENABLED
2017-03-05 15:32:16 +01:00
Rémi Verschelde
e6952cad3a Merge pull request #7950 from RandomShaper/expose-more-geom
Expose uncapped versions of closest-point-to-segment utilities
2017-03-05 12:04:23 +01:00
Pedro J. Estébanez
0e0b6ec443 Expose uncapped versions of closest-point-to-segment utilities 2017-03-04 23:02:27 +01:00
Julian Murgia
94103c0c02 Add API to access battery power state
Done:
- X11, server (tested)
- Windows (developed, would be nice to retest)
- OSX (not tested)
Prepared (not developed):
- Android (code is here, but may not compile)
- iphone
- winrt
- bb10
- haiku
- javascript
2017-03-04 18:04:29 +01:00
Rémi Verschelde
de530c1b23 Merge pull request #7940 from RandomShaper/expose-geometry
Expose Geometry::get_closest_point_to_segment_2d()
2017-03-04 17:00:34 +01:00
Pedro J. Estébanez
eaa6433b3b Expose Geometry::get_closest_point_to_segment_2d() 2017-03-04 01:55:12 +01:00
Rémi Verschelde
74eace2b14 Merge pull request #7911 from RandomShaper/single-field-prop-edit
Implement single-field property change for multinode edit
2017-03-02 11:47:11 +01:00
Pedro J. Estébanez
1e867cb9d4 Implement single-field property change for multinode edit 2017-03-02 10:42:05 +01:00
Rémi Verschelde
ee53f85bea Merge pull request #7882 from AlexHolly/PoolStringArray-join
added join to PoolStringArray
2017-03-02 08:00:28 +01:00
Leandro Motta Barros
0e5863c86a Fix RANDOM_MAX, which is 2^32-1 with PCG32. 2017-03-01 14:33:45 -03:00
AlexHolly
9f7ce79ea3 added join to PoolStringArray 2017-03-01 16:30:34 +01:00
Rémi Verschelde
a1cbe8e22b Merge pull request #7878 from RebelliousX/else
Bunch of missing `else` statements and general logic
2017-02-28 23:03:10 +01:00
Saracen
5e938f0001 Inf and NaN support added to GDScript. 2017-02-28 21:52:33 +00:00
Thaer Razeq
f50488a361 Various fixes detected using PVS-Studio static analyzer.
- 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
2017-02-28 07:52:02 -06:00
Rémi Verschelde
9c2542cf26 Merge pull request #7830 from volzhs/str-format-3
Fix zero padding formatting
2017-02-26 20:15:10 +01:00
Juan Linietsky
de0045cf1b -renamed globals.h to global_config.cpp (this seems to have caused a few modified files)
-.pck and .zip exporting redone, seems to be working..
2017-02-21 00:06:30 -03:00
volzhs
b8e58b2b7b Fix zero padding formatting 2017-02-18 00:20:05 +09:00
Hein-Pieter van Braam
b696beea65 Correct hash behavior for floating point numbers
This fixes HashMap where a key or part of a key is a floating point
number. To fix this the following has been done:

* HashMap now takes an extra template argument Comparator. This class
gets used to compare keys. The default Comperator now works correctly
for common types and floating point numbets.

* Variant implements ::hash_compare() now. This function implements
nan-safe comparison for all types with components that contain floating
point numbers.

* Variant now has a VariantComparator which uses Variant::hash_compare()
safely compare floating point components of variant's types.

* The hash functions for floating point numbers will now normalize NaN
values so that all floating point numbers that are NaN hash to the same
value.

C++ module writers that want to use HashMap internally in their modules
can now also safeguard against this crash by defining their on
Comperator class that safely compares their types.

GDScript users, or writers of modules that don't use HashMap internally
in their modules don't need to do anything.

This fixes #7354 and fixes #6947.
2017-02-16 18:44:29 +01:00
Juan Linietsky
da11d6d9e8 Many fixes to make exported scenes work better, still buggy. 2017-02-15 08:34:02 -03:00
Juan Linietsky
d7fd86d51a -begin of export work, not done yet
-fixes to make scenes exported from godot 2.x work
2017-02-15 08:30:32 -03:00
Juan Linietsky
04a6d2789e Revert "Make nan==nan true for GDScript" 2017-02-14 17:05:16 -03:00
Hein-Pieter van Braam
adcc211feb Make nan==nan true for GDScript
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
2017-02-14 13:32:23 +01:00
Hein-Pieter van Braam
411ee71b4d Rename the _MD macro to D_METHOD
This new name also makes its purpose a little clearer

This is a step towards fixing #56
2017-02-13 12:50:02 +01:00
Hein-Pieter van Braam
0f687f0ccb Remove use of _SCS from ADD_METHOD
This saves typing and is a step towards fixing #56
2017-02-13 10:37:47 +01:00
Rémi Verschelde
70b9aa379d Merge pull request #7581 from Faless/v6_wild_bind
TCP/UDP listen bind to address and bugfixes
2017-02-12 23:31:40 +01:00
Rémi Verschelde
70fff42df5 Merge pull request #7749 from Faless/fix_7697
HTTPClient properly handle partial data in non-blocking mode
2017-02-12 23:18:59 +01:00
Rémi Verschelde
5ce18cbdb9 Merge pull request #7743 from karroffel/json_parsing-3.0
JSON::parse reports errors on open-ended objects (master)
2017-02-12 23:17:08 +01:00
Nuno Donato
6b5c595e40 Added "Scots" locale name, fixing #7630 2017-02-08 14:54:28 +00:00
Fabio Alessandrelli
833994b294 HTTPClient properly handle partial data in non-blocking mode
Use block to send DVector::Write out of scope in
HTTPClient::read_response_body_chunk()
2017-02-07 11:01:53 +01:00
Juan Linietsky
6bfaa0f12c shadows were not working in-editor for nvidia, fixed now 2017-02-06 20:18:35 -03:00
Karroffel
d5071a940d JSON::parse reports errors on open-ended objects 2017-02-06 19:34:34 +00:00
Juan Linietsky
6f2e16306a Several bugfixes, improving the import workflow 2017-02-06 00:38:39 -03:00
Juan Linietsky
af3fabeb77 Ensure proper config version when reading the new configuration file. 2017-02-04 21:02:52 -03:00
Juan Linietsky
102b5fce85 Renamed engine.cfg to godot.cfg, to forcefully break compatibility with 2.x 2017-02-04 20:53:55 -03:00
volzhs
e3cf472651 Match ERROR_QUERY_FAILED enum with others 2017-02-02 21:15:47 +09:00
Rémi Verschelde
40e4c1f6ab Merge pull request #7689 from eska014/webgl2
Enable WebGL2 in web export, start fixing build
2017-02-02 08:18:42 +01:00
Rémi Verschelde
a506898137 Merge pull request #7681 from karroffel/classdb_type
corrected ClassDB::instance() return type
2017-02-02 08:15:43 +01:00
Rémi Verschelde
af6d59eed6 Merge pull request #7649 from Faless/fix_input_master
Keyboard Input modifiers do not block actions.
2017-02-02 08:07:47 +01:00
Juan Linietsky
b3aebcf6df CSV translation import plugin 2017-02-01 20:41:05 -03:00
Juan Linietsky
2cd2ca7bbc Lot of work in new importer, importing textures now works. 2017-02-01 09:46:36 -03:00
eska
e06edc67c0 Enable WebGL2 in web export, start fixing build
Will not yet compile
2017-02-01 10:21:04 +01:00
Karroffel
a7b1f9ee5a corrected ClassDB::insatnce() return type 2017-01-30 14:13:13 +01:00
Juan Linietsky
96de0141cc Removed import/export system, will start new one from scratch. 2017-01-25 21:57:08 -03:00
Fabio Alessandrelli
9100db7b94 Keyboard Input modifiers do not block actions.
This means, if you press "F" while holding "shift" and there is and
action registered for "F" that action should be pressed.
This commit restore this behaviour, lost when implementing
is_action_just_pressed.
If you want "blocking modifiers" you should code it via script.

Fixes 6826
2017-01-25 21:21:19 +01:00
Rémi Verschelde
831d9b925a Merge pull request #7563 from RayKoopa/extended_list_dir_begin
Add parameters to Directory.list_dir_begin() to skip navigational or hidden entries
2017-01-25 20:22:34 +01:00
Ilija Boshkov
1005a56e5a Added focus tracking in X11 and Windows classes, added new confined mouse mode (#7162) 2017-01-25 19:21:41 +01:00
Juan Linietsky
4c28f35b2c Merge pull request #7002 from RandomShaper/vcs-friendliness
Greater VCS friendliness
2017-01-25 14:52:40 -03:00
Juan Linietsky
7e1afeafd4 Audio bus editing is COMPLETE! 2017-01-25 14:31:52 -03:00
Ray Koopa
1ce9bbc8ed Added parameters to skip hidden and/or navigational file system entries 2017-01-24 21:07:02 +01:00
Juan Linietsky
87bb6cdc6f Ability to drag and drop around audio effects! 2017-01-24 00:19:31 -03:00