Commit graph

6756 commits

Author SHA1 Message Date
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
Hein-Pieter van Braam
3e5743ca36 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
2017-02-16 14:29:18 +01:00
Juan Linietsky
903a3aa5f0 a ton of bug fixes to the renderer 2017-02-16 08:55:43 -03:00
Rémi Verschelde
3fadcac7c4 Merge pull request #7814 from Hinsbart/timer_pause
SceneTreeTimer: Ability to set pause mode
2017-02-16 08:52:19 +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
Andreas Haas
4de29f9c7a
SceneTreeTimer: Ability to set pause mode
Adds an additional flag to SceneTree::create_timer() that tells it whether or not to process when the game is paused.
Defaults to false in order to not break existing functionality.
2017-02-15 08:02:08 +01:00
Juan Linietsky
9cdd364fc0 Merge pull request #7811 from godotengine/revert-7807-fix-7354
Revert "Make nan==nan true for GDScript"
2017-02-14 17:05:51 -03:00
Juan Linietsky
04a6d2789e Revert "Make nan==nan true for GDScript" 2017-02-14 17:05:16 -03:00
Rémi Verschelde
78336990f4 Merge pull request #7807 from hpvb/fix-7354
Make nan==nan true for GDScript
2017-02-14 16:04:36 +01: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
Rémi Verschelde
81edda18f3 Merge pull request #7803 from Hinsbart/spinbox_click
Spinbox: don't ignore double clicks.
2017-02-14 07:47:06 +01:00
Rémi Verschelde
fdbe1c3c61 Merge pull request #7801 from hpvb/fix-7796
Remove bounds check when resuming from yield. (fixes #7796)
2017-02-14 07:46:45 +01:00
Rémi Verschelde
fb4b4a30e7 Merge pull request #7792 from Hinsbart/inputmap_fixes
ProjectSettings: InputMap dialog fixes
2017-02-14 07:46:31 +01:00
Andreas Haas
dd4c2709e4
Spinbox: don't ignore double clicks.
Fixes the problem with spinboxes not updating when clicking too fast.
2017-02-14 00:57:49 +01:00
Ferenc Arn
eae94ba1c8 Use real_t as floating point type in physics code.
This is a continuation of an on-going work for 64-bit floating point builds, started in PR #7528. Covers physics, physics/joints and physics_2d code.

Also removed matrixToEulerXYZ function in favor of Basis::get_euler.
2017-02-13 17:42:02 -06:00
Rémi Verschelde
e837b25f55 Fix missing semicolon in previous commit 2017-02-13 23:46:25 +01:00
Hein-Pieter van Braam
e8611966de Remove bounds check when resuming from yield.
The code would get a pointer to the beginning of the call_args by using
operator[] at the stack Vector. This does bound checking. When there are
no call_args this bound check fails and the error mentioned in #7796
gets triggered.

This bound check is actually not necessary as call_args just gets set to
NULL and never dereferenced. This new code will just unconditionally set
the pointer to the place where the call_args are if there are any. There
is no NULL check for call_args anywhere so this is safe.

Fixes #7796
2017-02-13 21:59:05 +01:00
Rémi Verschelde
55dc24f753 Merge pull request #7797 from Brett-Mitchell/patch-1
Fix for issue #7766
2017-02-13 21:02:51 +01:00
Brett-Mitchell
6921e11805 Fix for issue #7766
Add initialization for OS_OSX.mouse_mode in OS_OSX::OS_OSX().  mouse_mode now defaults to OS::MOUSE_MODE_VISIBLE.
2017-02-13 12:55:26 -05:00
Rémi Verschelde
ea7e8c8e86 Merge pull request #7795 from hpvb/rename-md-macro
Rename the _MD macro to D_METHOD
2017-02-13 15:46:17 +01:00
Rémi Verschelde
f6859fd31b Merge pull request #7794 from GodotExplorer/pr-fix-texturebutton
Fix compile error with TextureButton
2017-02-13 15:40:41 +01:00
geequlim
4ebc30e303 Fix compile error with TextureButton
Export TextureButton::ResizeMode as its own enum values
2017-02-13 21:17:47 +08: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
Rémi Verschelde
bf64df4427 Merge pull request #7784 from hpvb/kill-scs-macro
Remove use of _SCS
2017-02-13 11:11:01 +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
Andreas Haas
92ac7067e6
ProjectSettings: InputMap dialog fixes
Now the selection jumps to the correct action after a new event has been added.
Also sets the default device id for Joypad button events to 0.
2017-02-13 07:58:29 +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
117a83fcb9 Merge pull request #7352 from Zylann/polyline
Polyline
2017-02-12 23:30:04 +01:00
Rémi Verschelde
37e75873ef Merge pull request #7789 from volzhs/update-script-button
Update attach/clear script tool bar icon in Scene panel
2017-02-12 23:29:04 +01:00
Rémi Verschelde
3cab47adba Merge pull request #7782 from SaracenOne/windows_relative_cursor_fix
Fix relative cursor data in CAPTURED mouse mode on Windows.
2017-02-12 23:26:19 +01:00
Rémi Verschelde
73cedc3901 Merge pull request #7775 from Hinsbart/particles_flip
Particles2D: implement texture flip parameters.
2017-02-12 23:25:34 +01:00
Rémi Verschelde
00b093d24d Merge pull request #7774 from hpvb/master
Add a simple signal handler for SIGCHLD on Unix
2017-02-12 23:25:20 +01:00
Rémi Verschelde
d417e91995 Merge pull request #7772 from Limb/fixgiprobeeditor
Remove memdelete of button in GIProbeEditor exit
2017-02-12 23:25:06 +01:00
Rémi Verschelde
43d947f54b Merge pull request #7771 from Limb/winaudiodriver
Close out audio drivers when exiting on Windows.
2017-02-12 23:24:09 +01:00
Rémi Verschelde
dc5f978f28 Merge pull request #7770 from Limb/removedx9
Removed DX9 Rasterizer in windows
2017-02-12 23:23:34 +01:00
Rémi Verschelde
b2db9279fa Merge pull request #7769 from GodotExplorer/pr-resizeable-texturebutton_3
Enhance TextureButton and TextureRect with resize
2017-02-12 23:22:41 +01:00
Rémi Verschelde
f3d339e33f Merge pull request #7768 from bojidar-bg/sc-multiple-names
Make _sc_ files work like ._sc_
2017-02-12 23:22:13 +01:00
Rémi Verschelde
bbc6543172 Merge pull request #7763 from Limb/fixwindowscompile
Fixed compilation issues with Visual Studio
2017-02-12 23:22:02 +01:00
Rémi Verschelde
d11f9f4817 Merge pull request #7746 from sanikoyes/Pr-fix-msvc-compile
Fix msvc compile error
2017-02-12 23:21:43 +01:00
Rémi Verschelde
c96fa0f23e Merge pull request #7757 from volzhs/save-debug-options
Save and restore debug options for each project
2017-02-12 23:20:48 +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
458bd83dfc Merge pull request #7747 from sanikoyes/Pr-fix-tween-transform2d
Fix tween Transform2D typo
2017-02-12 23:18:38 +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
Rémi Verschelde
ceac8a780e Merge pull request #7740 from magyar123/master
Add editor option for closing the output when stopping the game.
2017-02-12 23:16:14 +01:00
Rémi Verschelde
530de920d4 Merge pull request #7723 from lonesurvivor/gdscript-range-fix
Fix parsing bug which causes range(variable) to crash the engine
2017-02-12 23:13:08 +01:00
Rémi Verschelde
53b7bbfcce Merge pull request #7722 from RandomShaper/improve-touch-button
Fix touch button issues
2017-02-12 23:12:18 +01:00
Rémi Verschelde
d791f5f06e Merge pull request #7712 from kbake/deselect-selection-on-ctrl-home/end
Selected text is now deselected on ctrl+home/end
2017-02-12 23:09:34 +01:00
Rémi Verschelde
c51990ec9d Merge pull request #7706 from RandomShaper/touch-button-shape-master
Add shape property to TouchScreenButton
2017-02-12 23:09:16 +01:00
volzhs
b9c1d65d21 Update attach/clear script tool bar icon in Scene panel 2017-02-13 07:02:23 +09:00