Browse Source

Merge pull request #42902 from akien-mga/3.2-cherrypicks

Cherry-picks for the 3.2 branch (future 3.2.4) - 5th batch
Rémi Verschelde 5 years ago
parent
commit
a239894827
100 changed files with 276 additions and 146 deletions
  1. 10 11
      SConstruct
  2. 2 0
      core/bind/core_bind.cpp
  3. 4 0
      core/io/http_client.cpp
  4. 38 19
      core/ustring.cpp
  5. 3 1
      doc/classes/AABB.xml
  6. 1 1
      doc/classes/ARVRCamera.xml
  7. 1 1
      doc/classes/ARVRController.xml
  8. 1 1
      doc/classes/ARVRInterface.xml
  9. 1 1
      doc/classes/ARVROrigin.xml
  10. 1 1
      doc/classes/ARVRPositionalTracker.xml
  11. 1 1
      doc/classes/ARVRServer.xml
  12. 2 1
      doc/classes/AnimatedSprite.xml
  13. 1 1
      doc/classes/AnimatedSprite3D.xml
  14. 9 9
      doc/classes/Animation.xml
  15. 1 1
      doc/classes/AnimationNode.xml
  16. 1 1
      doc/classes/AnimationNodeAdd2.xml
  17. 2 1
      doc/classes/AnimationNodeAdd3.xml
  18. 3 1
      doc/classes/AnimationNodeAnimation.xml
  19. 3 1
      doc/classes/AnimationNodeBlend2.xml
  20. 1 1
      doc/classes/AnimationNodeBlend3.xml
  21. 1 1
      doc/classes/AnimationNodeBlendSpace1D.xml
  22. 2 1
      doc/classes/AnimationNodeBlendSpace2D.xml
  23. 1 1
      doc/classes/AnimationNodeBlendTree.xml
  24. 2 1
      doc/classes/AnimationNodeOneShot.xml
  25. 3 1
      doc/classes/AnimationNodeOutput.xml
  26. 1 1
      doc/classes/AnimationNodeStateMachine.xml
  27. 1 1
      doc/classes/AnimationNodeStateMachinePlayback.xml
  28. 2 2
      doc/classes/AnimationNodeStateMachineTransition.xml
  29. 2 1
      doc/classes/AnimationNodeTimeScale.xml
  30. 1 1
      doc/classes/AnimationNodeTimeSeek.xml
  31. 3 1
      doc/classes/AnimationNodeTransition.xml
  32. 3 3
      doc/classes/AnimationPlayer.xml
  33. 2 2
      doc/classes/AnimationTree.xml
  34. 1 1
      doc/classes/AnimationTreePlayer.xml
  35. 8 4
      doc/classes/Area.xml
  36. 10 5
      doc/classes/Area2D.xml
  37. 1 1
      doc/classes/ArrayMesh.xml
  38. 1 0
      doc/classes/AudioEffect.xml
  39. 1 1
      doc/classes/AudioEffectDistortion.xml
  40. 1 1
      doc/classes/AudioEffectFilter.xml
  41. 1 1
      doc/classes/AudioEffectHighShelfFilter.xml
  42. 1 1
      doc/classes/AudioEffectLowShelfFilter.xml
  43. 2 1
      doc/classes/AudioEffectRecord.xml
  44. 1 0
      doc/classes/AudioEffectReverb.xml
  45. 4 1
      doc/classes/AudioServer.xml
  46. 4 1
      doc/classes/AudioStream.xml
  47. 1 1
      doc/classes/AudioStreamGenerator.xml
  48. 1 0
      doc/classes/AudioStreamPlayback.xml
  49. 6 1
      doc/classes/AudioStreamPlayer.xml
  50. 1 1
      doc/classes/AudioStreamPlayer2D.xml
  51. 1 1
      doc/classes/AudioStreamPlayer3D.xml
  52. 1 1
      doc/classes/BakedLightmap.xml
  53. 7 2
      doc/classes/Basis.xml
  54. 3 0
      doc/classes/BoxShape.xml
  55. 2 0
      doc/classes/Button.xml
  56. 1 1
      doc/classes/CPUParticles2D.xml
  57. 1 0
      doc/classes/Camera.xml
  58. 3 0
      doc/classes/Camera2D.xml
  59. 19 5
      doc/classes/CanvasItem.xml
  60. 3 2
      doc/classes/CanvasLayer.xml
  61. 1 0
      doc/classes/CapsuleShape.xml
  62. 1 1
      doc/classes/CharFXTransform.xml
  63. 1 1
      doc/classes/ClippedCamera.xml
  64. 4 1
      doc/classes/CollisionShape.xml
  65. 4 1
      doc/classes/CollisionShape2D.xml
  66. 3 0
      doc/classes/Color.xml
  67. 1 0
      doc/classes/ColorPicker.xml
  68. 2 0
      doc/classes/ColorPickerButton.xml
  69. 1 0
      doc/classes/ColorRect.xml
  70. 1 0
      doc/classes/ConcavePolygonShape.xml
  71. 4 3
      doc/classes/Control.xml
  72. 1 0
      doc/classes/ConvexPolygonShape.xml
  73. 3 0
      doc/classes/CylinderShape.xml
  74. 3 1
      doc/classes/Dictionary.xml
  75. 1 1
      doc/classes/DirectionalLight.xml
  76. 1 1
      doc/classes/Directory.xml
  77. 1 0
      doc/classes/DynamicFont.xml
  78. 1 0
      doc/classes/DynamicFontData.xml
  79. 1 1
      doc/classes/EditorImportPlugin.xml
  80. 1 1
      doc/classes/EditorPlugin.xml
  81. 1 1
      doc/classes/EditorScenePostImport.xml
  82. 1 1
      doc/classes/EditorSpatialGizmoPlugin.xml
  83. 5 2
      doc/classes/Environment.xml
  84. 3 2
      doc/classes/File.xml
  85. 8 8
      doc/classes/FuncRef.xml
  86. 2 1
      doc/classes/GIProbe.xml
  87. 1 0
      doc/classes/GIProbeData.xml
  88. 1 0
      doc/classes/GridContainer.xml
  89. 2 2
      doc/classes/HTTPClient.xml
  90. 2 2
      doc/classes/HTTPRequest.xml
  91. 1 1
      doc/classes/Image.xml
  92. 3 1
      doc/classes/Input.xml
  93. 4 2
      doc/classes/InputEvent.xml
  94. 3 1
      doc/classes/InputEventAction.xml
  95. 1 1
      doc/classes/InputEventJoypadButton.xml
  96. 1 1
      doc/classes/InputEventJoypadMotion.xml
  97. 1 1
      doc/classes/InputEventKey.xml
  98. 1 1
      doc/classes/InputEventMouse.xml
  99. 1 1
      doc/classes/InputEventMouseButton.xml
  100. 2 1
      doc/classes/InputEventMouseMotion.xml

+ 10 - 11
SConstruct

@@ -362,7 +362,7 @@ if selected_platform in platform_list:
         env.Prepend(CCFLAGS=["/std:c++14"])
         env.Prepend(CCFLAGS=["/std:c++14"])
 
 
     # Configure compiler warnings
     # Configure compiler warnings
-    if env.msvc:
+    if env.msvc:  # MSVC
         # Truncations, narrowing conversions, signed/unsigned comparisons...
         # Truncations, narrowing conversions, signed/unsigned comparisons...
         disable_nonessential_warnings = ["/wd4267", "/wd4244", "/wd4305", "/wd4018", "/wd4800"]
         disable_nonessential_warnings = ["/wd4267", "/wd4244", "/wd4305", "/wd4018", "/wd4800"]
         if env["warnings"] == "extra":
         if env["warnings"] == "extra":
@@ -375,25 +375,23 @@ if selected_platform in platform_list:
             env.Append(CCFLAGS=["/w"])
             env.Append(CCFLAGS=["/w"])
         # Set exception handling model to avoid warnings caused by Windows system headers.
         # Set exception handling model to avoid warnings caused by Windows system headers.
         env.Append(CCFLAGS=["/EHsc"])
         env.Append(CCFLAGS=["/EHsc"])
+
         if env["werror"]:
         if env["werror"]:
             env.Append(CCFLAGS=["/WX"])
             env.Append(CCFLAGS=["/WX"])
-        # Force to use Unicode encoding
-        env.Append(MSVC_FLAGS=["/utf8"])
-    else:  # Rest of the world
+    else:  # GCC, Clang
         version = methods.get_compiler_version(env) or [-1, -1]
         version = methods.get_compiler_version(env) or [-1, -1]
 
 
-        shadow_local_warning = []
-        all_plus_warnings = ["-Wwrite-strings"]
+        gcc_common_warnings = []
 
 
         if methods.using_gcc(env):
         if methods.using_gcc(env):
-            env.Append(CCFLAGS=["-Wno-misleading-indentation"])
+            gcc_common_warnings += ["-Wno-misleading-indentation"]
             if version[0] >= 7:
             if version[0] >= 7:
-                shadow_local_warning = ["-Wshadow-local"]
+                gcc_common_warnings += ["-Wshadow-local"]
 
 
         if env["warnings"] == "extra":
         if env["warnings"] == "extra":
             # Note: enable -Wimplicit-fallthrough for Clang (already part of -Wextra for GCC)
             # Note: enable -Wimplicit-fallthrough for Clang (already part of -Wextra for GCC)
             # once we switch to C++11 or later (necessary for our FALLTHROUGH macro).
             # once we switch to C++11 or later (necessary for our FALLTHROUGH macro).
-            env.Append(CCFLAGS=["-Wall", "-Wextra", "-Wno-unused-parameter"] + all_plus_warnings + shadow_local_warning)
+            env.Append(CCFLAGS=["-Wall", "-Wextra", "-Wwrite-strings", "-Wno-unused-parameter"] + gcc_common_warnings)
             env.Append(CXXFLAGS=["-Wctor-dtor-privacy", "-Wnon-virtual-dtor"])
             env.Append(CXXFLAGS=["-Wctor-dtor-privacy", "-Wnon-virtual-dtor"])
             if methods.using_gcc(env):
             if methods.using_gcc(env):
                 env.Append(
                 env.Append(
@@ -409,11 +407,12 @@ if selected_platform in platform_list:
                 if version[0] >= 9:
                 if version[0] >= 9:
                     env.Append(CCFLAGS=["-Wattribute-alias=2"])
                     env.Append(CCFLAGS=["-Wattribute-alias=2"])
         elif env["warnings"] == "all":
         elif env["warnings"] == "all":
-            env.Append(CCFLAGS=["-Wall"] + shadow_local_warning)
+            env.Append(CCFLAGS=["-Wall"] + gcc_common_warnings)
         elif env["warnings"] == "moderate":
         elif env["warnings"] == "moderate":
-            env.Append(CCFLAGS=["-Wall", "-Wno-unused"] + shadow_local_warning)
+            env.Append(CCFLAGS=["-Wall", "-Wno-unused"] + gcc_common_warnings)
         else:  # 'no'
         else:  # 'no'
             env.Append(CCFLAGS=["-w"])
             env.Append(CCFLAGS=["-w"])
+
         if env["werror"]:
         if env["werror"]:
             env.Append(CCFLAGS=["-Werror"])
             env.Append(CCFLAGS=["-Werror"])
         else:  # always enable those errors
         else:  # always enable those errors

+ 2 - 0
core/bind/core_bind.cpp

@@ -2501,11 +2501,13 @@ Error _Directory::rename(String p_from, String p_to) {
 	ERR_FAIL_COND_V_MSG(!d, ERR_UNCONFIGURED, "Directory must be opened before use.");
 	ERR_FAIL_COND_V_MSG(!d, ERR_UNCONFIGURED, "Directory must be opened before use.");
 	if (!p_from.is_rel_path()) {
 	if (!p_from.is_rel_path()) {
 		DirAccess *d = DirAccess::create_for_path(p_from);
 		DirAccess *d = DirAccess::create_for_path(p_from);
+		ERR_FAIL_COND_V_MSG(!d->file_exists(p_from), ERR_DOES_NOT_EXIST, "File does not exist.");
 		Error err = d->rename(p_from, p_to);
 		Error err = d->rename(p_from, p_to);
 		memdelete(d);
 		memdelete(d);
 		return err;
 		return err;
 	}
 	}
 
 
+	ERR_FAIL_COND_V_MSG(!d->file_exists(p_from), ERR_DOES_NOT_EXIST, "File does not exist.");
 	return d->rename(p_from, p_to);
 	return d->rename(p_from, p_to);
 }
 }
 Error _Directory::remove(String p_name) {
 Error _Directory::remove(String p_name) {

+ 4 - 0
core/io/http_client.cpp

@@ -100,6 +100,10 @@ void HTTPClient::set_connection(const Ref<StreamPeer> &p_connection) {
 
 
 	ERR_FAIL_COND_MSG(p_connection.is_null(), "Connection is not a reference to a valid StreamPeer object.");
 	ERR_FAIL_COND_MSG(p_connection.is_null(), "Connection is not a reference to a valid StreamPeer object.");
 
 
+	if (connection == p_connection) {
+		return;
+	}
+
 	close();
 	close();
 	connection = p_connection;
 	connection = p_connection;
 	status = STATUS_CONNECTED;
 	status = STATUS_CONNECTED;

+ 38 - 19
core/ustring.cpp

@@ -535,33 +535,52 @@ signed char String::naturalnocasecmp_to(const String &p_str) const {
 		}
 		}
 
 
 		while (*this_str) {
 		while (*this_str) {
-
-			if (!*that_str)
+			if (!*that_str) {
 				return 1;
 				return 1;
-			else if (IS_DIGIT(*this_str)) {
-
-				int64_t this_int, that_int;
-
-				if (!IS_DIGIT(*that_str))
+			} else if (IS_DIGIT(*this_str)) {
+				if (!IS_DIGIT(*that_str)) {
 					return -1;
 					return -1;
+				}
 
 
-				/* Compare the numbers */
-				this_int = to_int(this_str);
-				that_int = to_int(that_str);
+				// Keep ptrs to start of numerical sequences
+				const CharType *this_substr = this_str;
+				const CharType *that_substr = that_str;
 
 
-				if (this_int < that_int)
+				// Compare lengths of both numerical sequences, ignoring leading zeros
+				while (IS_DIGIT(*this_str)) {
+					this_str++;
+				}
+				while (IS_DIGIT(*that_str)) {
+					that_str++;
+				}
+				while (*this_substr == '0') {
+					this_substr++;
+				}
+				while (*that_substr == '0') {
+					that_substr++;
+				}
+				int this_len = this_str - this_substr;
+				int that_len = that_str - that_substr;
+
+				if (this_len < that_len) {
 					return -1;
 					return -1;
-				else if (this_int > that_int)
+				} else if (this_len > that_len) {
 					return 1;
 					return 1;
+				}
 
 
-				/* Skip */
-				while (IS_DIGIT(*this_str))
-					this_str++;
-				while (IS_DIGIT(*that_str))
-					that_str++;
-			} else if (IS_DIGIT(*that_str))
+				// If lengths equal, compare lexicographically
+				while (this_substr != this_str && that_substr != that_str) {
+					if (*this_substr < *that_substr) {
+						return -1;
+					} else if (*this_substr > *that_substr) {
+						return 1;
+					}
+					this_substr++;
+					that_substr++;
+				}
+			} else if (IS_DIGIT(*that_str)) {
 				return 1;
 				return 1;
-			else {
+			} else {
 				if (_find_upper(*this_str) < _find_upper(*that_str)) //more than
 				if (_find_upper(*this_str) < _find_upper(*that_str)) //more than
 					return -1;
 					return -1;
 				else if (_find_upper(*this_str) > _find_upper(*that_str)) //less than
 				else if (_find_upper(*this_str) > _find_upper(*that_str)) //less than

+ 3 - 1
doc/classes/AABB.xml

@@ -9,7 +9,9 @@
 		[b]Note:[/b] Unlike [Rect2], [AABB] does not have a variant that uses integer coordinates.
 		[b]Note:[/b] Unlike [Rect2], [AABB] does not have a variant that uses integer coordinates.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
+		<link title="Math tutorial index">https://docs.godotengine.org/en/3.2/tutorials/math/index.html</link>
+		<link title="Vector math">https://docs.godotengine.org/en/3.2/tutorials/math/vector_math.html</link>
+		<link title="Advanced vector math">https://docs.godotengine.org/en/3.2/tutorials/math/vectors_advanced.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="AABB">
 		<method name="AABB">

+ 1 - 1
doc/classes/ARVRCamera.xml

@@ -8,7 +8,7 @@
 		The position and orientation of this node is automatically updated by the ARVR Server to represent the location of the HMD if such tracking is available and can thus be used by game logic. Note that, in contrast to the ARVR Controller, the render thread has access to the most up-to-date tracking data of the HMD and the location of the ARVRCamera can lag a few milliseconds behind what is used for rendering as a result.
 		The position and orientation of this node is automatically updated by the ARVR Server to represent the location of the HMD if such tracking is available and can thus be used by game logic. Note that, in contrast to the ARVR Controller, the render thread has access to the most up-to-date tracking data of the HMD and the location of the ARVRCamera can lag a few milliseconds behind what is used for rendering as a result.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/vr/index.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/ARVRController.xml

@@ -9,7 +9,7 @@
 		The position of the controller node is automatically updated by the [ARVRServer]. This makes this node ideal to add child nodes to visualize the controller.
 		The position of the controller node is automatically updated by the [ARVRServer]. This makes this node ideal to add child nodes to visualize the controller.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/vr/index.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_controller_name" qualifiers="const">
 		<method name="get_controller_name" qualifiers="const">

+ 1 - 1
doc/classes/ARVRInterface.xml

@@ -8,7 +8,7 @@
 		Interfaces should be written in such a way that simply enabling them will give us a working setup. You can query the available interfaces through [ARVRServer].
 		Interfaces should be written in such a way that simply enabling them will give us a working setup. You can query the available interfaces through [ARVRServer].
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/vr/index.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_camera_feed_id">
 		<method name="get_camera_feed_id">

+ 1 - 1
doc/classes/ARVROrigin.xml

@@ -10,7 +10,7 @@
 		For example, if your character is driving a car, the ARVROrigin node should be a child node of this car. Or, if you're implementing a teleport system to move your character, you should change the position of this node.
 		For example, if your character is driving a car, the ARVROrigin node should be a child node of this car. Or, if you're implementing a teleport system to move your character, you should change the position of this node.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/vr/index.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/ARVRPositionalTracker.xml

@@ -9,7 +9,7 @@
 		The [ARVRController] and [ARVRAnchor] both consume objects of this type and should be used in your project. The positional trackers are just under-the-hood objects that make this all work. These are mostly exposed so that GDNative-based interfaces can interact with them.
 		The [ARVRController] and [ARVRAnchor] both consume objects of this type and should be used in your project. The positional trackers are just under-the-hood objects that make this all work. These are mostly exposed so that GDNative-based interfaces can interact with them.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/vr/index.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_hand" qualifiers="const">
 		<method name="get_hand" qualifiers="const">

+ 1 - 1
doc/classes/ARVRServer.xml

@@ -7,7 +7,7 @@
 		The AR/VR server is the heart of our Advanced and Virtual Reality solution and handles all the processing.
 		The AR/VR server is the heart of our Advanced and Virtual Reality solution and handles all the processing.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/vr/index.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="center_on_hmd">
 		<method name="center_on_hmd">

+ 2 - 1
doc/classes/AnimatedSprite.xml

@@ -8,7 +8,8 @@
 		[b]Note:[/b] You can associate a set of normal maps by creating additional [SpriteFrames] resources with a [code]_normal[/code] suffix. For example, having 2 [SpriteFrames] resources [code]run[/code] and [code]run_normal[/code] will make it so the [code]run[/code] animation uses the normal map.
 		[b]Note:[/b] You can associate a set of normal maps by creating additional [SpriteFrames] resources with a [code]_normal[/code] suffix. For example, having 2 [SpriteFrames] resources [code]run[/code] and [code]run_normal[/code] will make it so the [code]run[/code] animation uses the normal map.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link title="2D Sprite animation">https://docs.godotengine.org/en/latest/tutorials/2d/2d_sprite_animation.html</link>
+		<link title="2D Sprite animation">https://docs.godotengine.org/en/3.2/tutorials/2d/2d_sprite_animation.html</link>
+		<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="is_playing" qualifiers="const">
 		<method name="is_playing" qualifiers="const">

+ 1 - 1
doc/classes/AnimatedSprite3D.xml

@@ -7,7 +7,7 @@
 		Animations are created using a [SpriteFrames] resource, which can be configured in the editor via the SpriteFrames panel.
 		Animations are created using a [SpriteFrames] resource, which can be configured in the editor via the SpriteFrames panel.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link title="2D Sprite animation (also applies to 3D)">https://docs.godotengine.org/en/latest/tutorials/2d/2d_sprite_animation.html</link>
+		<link title="2D Sprite animation (also applies to 3D)">https://docs.godotengine.org/en/3.2/tutorials/2d/2d_sprite_animation.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="is_playing" qualifiers="const">
 		<method name="is_playing" qualifiers="const">

+ 9 - 9
doc/classes/Animation.xml

@@ -17,7 +17,7 @@
 		Animations are just data containers, and must be added to nodes such as an [AnimationPlayer] or [AnimationTreePlayer] to be played back. Animation tracks have different types, each with its own set of dedicated methods. Check [enum TrackType] to see available types.
 		Animations are just data containers, and must be added to nodes such as an [AnimationPlayer] or [AnimationTreePlayer] to be played back. Animation tracks have different types, each with its own set of dedicated methods. Check [enum TrackType] to see available types.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/index.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/animation/index.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_track">
 		<method name="add_track">
@@ -670,26 +670,26 @@
 				Returns the update mode of a value track.
 				Returns the update mode of a value track.
 			</description>
 			</description>
 		</method>
 		</method>
-		<method name="value_track_set_update_mode">
-			<return type="void">
+		<method name="value_track_interpolate" qualifiers="const">
+			<return type="Variant">
 			</return>
 			</return>
 			<argument index="0" name="track_idx" type="int">
 			<argument index="0" name="track_idx" type="int">
 			</argument>
 			</argument>
-			<argument index="1" name="mode" type="int" enum="Animation.UpdateMode">
+			<argument index="1" name="time_sec" type="float">
 			</argument>
 			</argument>
 			<description>
 			<description>
-				Sets the update mode (see [enum UpdateMode]) of a value track.
+				Returns the interpolated value at the given time (in seconds). The [code]track_idx[/code] must be the index of a value track.
 			</description>
 			</description>
 		</method>
 		</method>
-		<method name="value_track_interpolate" qualifiers="const">
-			<return type="float">
+		<method name="value_track_set_update_mode">
+			<return type="void">
 			</return>
 			</return>
 			<argument index="0" name="track_idx" type="int">
 			<argument index="0" name="track_idx" type="int">
 			</argument>
 			</argument>
-			<argument index="1" name="time_sec" type="float">
+			<argument index="1" name="mode" type="int" enum="Animation.UpdateMode">
 			</argument>
 			</argument>
 			<description>
 			<description>
-				Returns the interpolated value at the given time (in seconds). The [code]track_idx[/code] must be the index of a value track.
+				Sets the update mode (see [enum UpdateMode]) of a value track.
 			</description>
 			</description>
 		</method>
 		</method>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/AnimationNode.xml

@@ -8,7 +8,7 @@
 	Inherit this when creating nodes mainly for use in [AnimationNodeBlendTree], otherwise [AnimationRootNode] should be used instead.
 	Inherit this when creating nodes mainly for use in [AnimationNodeBlendTree], otherwise [AnimationRootNode] should be used instead.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_input">
 		<method name="add_input">

+ 1 - 1
doc/classes/AnimationNodeAdd2.xml

@@ -7,7 +7,7 @@
 		A resource to add to an [AnimationNodeBlendTree]. Blends two animations additively based on an amount value in the [code][0.0, 1.0][/code] range.
 		A resource to add to an [AnimationNodeBlendTree]. Blends two animations additively based on an amount value in the [code][0.0, 1.0][/code] range.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 2 - 1
doc/classes/AnimationNodeAdd3.xml

@@ -11,7 +11,8 @@
 		- A +add animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
 		- A +add animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link title="AnimationTree">https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 3 - 1
doc/classes/AnimationNodeAnimation.xml

@@ -7,7 +7,9 @@
 		A resource to add to an [AnimationNodeBlendTree]. Only features one output set using the [member animation] property. Use it as an input for [AnimationNode] that blend animations together.
 		A resource to add to an [AnimationNodeBlendTree]. Only features one output set using the [member animation] property. Use it as an input for [AnimationNode] that blend animations together.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link title="AnimationTree">https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
+		<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 3 - 1
doc/classes/AnimationNodeBlend2.xml

@@ -7,7 +7,9 @@
 		A resource to add to an [AnimationNodeBlendTree]. Blends two animations linearly based on an amount value in the [code][0.0, 1.0][/code] range.
 		A resource to add to an [AnimationNodeBlendTree]. Blends two animations linearly based on an amount value in the [code][0.0, 1.0][/code] range.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link title="AnimationTree">https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
+		<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/AnimationNodeBlend3.xml

@@ -11,7 +11,7 @@
 		- A +blend animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
 		- A +blend animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/AnimationNodeBlendSpace1D.xml

@@ -10,7 +10,7 @@
 		You can set the extents of the axis using the [member min_space] and [member max_space].
 		You can set the extents of the axis using the [member min_space] and [member max_space].
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_blend_point">
 		<method name="add_blend_point">

+ 2 - 1
doc/classes/AnimationNodeBlendSpace2D.xml

@@ -9,7 +9,8 @@
 		You can add vertices to the blend space with [method add_blend_point] and automatically triangulate it by setting [member auto_triangles] to [code]true[/code]. Otherwise, use [method add_triangle] and [method remove_triangle] to create up the blend space by hand.
 		You can add vertices to the blend space with [method add_blend_point] and automatically triangulate it by setting [member auto_triangles] to [code]true[/code]. Otherwise, use [method add_triangle] and [method remove_triangle] to create up the blend space by hand.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link title="AnimationTree">https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_blend_point">
 		<method name="add_blend_point">

+ 1 - 1
doc/classes/AnimationNodeBlendTree.xml

@@ -7,7 +7,7 @@
 		This node may contain a sub-tree of any other blend type nodes, such as mix, blend2, blend3, one shot, etc. This is one of the most commonly used roots.
 		This node may contain a sub-tree of any other blend type nodes, such as mix, blend2, blend3, one shot, etc. This is one of the most commonly used roots.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_node">
 		<method name="add_node">

+ 2 - 1
doc/classes/AnimationNodeOneShot.xml

@@ -7,7 +7,8 @@
 		A resource to add to an [AnimationNodeBlendTree]. This node will execute a sub-animation and return once it finishes. Blend times for fading in and out can be customized, as well as filters.
 		A resource to add to an [AnimationNodeBlendTree]. This node will execute a sub-animation and return once it finishes. Blend times for fading in and out can be customized, as well as filters.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link title="AnimationTree">https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_mix_mode" qualifiers="const">
 		<method name="get_mix_mode" qualifiers="const">

+ 3 - 1
doc/classes/AnimationNodeOutput.xml

@@ -6,7 +6,9 @@
 	<description>
 	<description>
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link title="AnimationTree">https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
+		<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/AnimationNodeStateMachine.xml

@@ -12,7 +12,7 @@
 		[/codeblock]
 		[/codeblock]
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_node">
 		<method name="add_node">

+ 1 - 1
doc/classes/AnimationNodeStateMachinePlayback.xml

@@ -12,7 +12,7 @@
 		[/codeblock]
 		[/codeblock]
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_current_node" qualifiers="const">
 		<method name="get_current_node" qualifiers="const">

+ 2 - 2
doc/classes/AnimationNodeStateMachineTransition.xml

@@ -5,13 +5,13 @@
 	<description>
 	<description>
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>
 	<members>
 	<members>
 		<member name="advance_condition" type="String" setter="set_advance_condition" getter="get_advance_condition" default="&quot;&quot;">
 		<member name="advance_condition" type="String" setter="set_advance_condition" getter="get_advance_condition" default="&quot;&quot;">
-			Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the [AnimationTree] that can be controlled from code (see [url=https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html#controlling-from-code][/url]). For example, if [member AnimationTree.tree_root] is an [AnimationNodeStateMachine] and [member advance_condition] is set to [code]"idle"[/code]:
+			Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the [AnimationTree] that can be controlled from code (see [url=https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html#controlling-from-code][/url]). For example, if [member AnimationTree.tree_root] is an [AnimationNodeStateMachine] and [member advance_condition] is set to [code]"idle"[/code]:
 			[codeblock]
 			[codeblock]
 			$animation_tree["parameters/conditions/idle"] = is_on_floor and (linear_velocity.x == 0)
 			$animation_tree["parameters/conditions/idle"] = is_on_floor and (linear_velocity.x == 0)
 			[/codeblock]
 			[/codeblock]

+ 2 - 1
doc/classes/AnimationNodeTimeScale.xml

@@ -7,7 +7,8 @@
 		Allows scaling the speed of the animation (or reversing it) in any children nodes. Setting it to 0 will pause the animation.
 		Allows scaling the speed of the animation (or reversing it) in any children nodes. Setting it to 0 will pause the animation.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link title="AnimationTree">https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
+		<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/AnimationNodeTimeSeek.xml

@@ -7,7 +7,7 @@
 		This node can be used to cause a seek command to happen to any sub-children of the graph. After setting the time, this value returns to -1.
 		This node can be used to cause a seek command to happen to any sub-children of the graph. After setting the time, this value returns to -1.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 3 - 1
doc/classes/AnimationNodeTransition.xml

@@ -7,7 +7,9 @@
 		Simple state machine for cases which don't require a more advanced [AnimationNodeStateMachine]. Animations can be connected to the inputs and transition times can be specified.
 		Simple state machine for cases which don't require a more advanced [AnimationNodeStateMachine]. Animations can be connected to the inputs and transition times can be specified.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link title="AnimationTree">https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
+		<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_input_caption" qualifiers="const">
 		<method name="get_input_caption" qualifiers="const">

+ 3 - 3
doc/classes/AnimationPlayer.xml

@@ -9,9 +9,9 @@
 		Updating the target properties of animations occurs at process time.
 		Updating the target properties of animations occurs at process time.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/getting_started/step_by_step/animations.html</link>
-		<link title="2D Sprite animation">https://docs.godotengine.org/en/latest/tutorials/2d/2d_sprite_animation.html</link>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/index.html</link>
+		<link title="Animation tutorial index">https://docs.godotengine.org/en/3.2/tutorials/animation/index.html</link>
+		<link title="2D Sprite animation">https://docs.godotengine.org/en/3.2/tutorials/2d/2d_sprite_animation.html</link>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_animation">
 		<method name="add_animation">

+ 2 - 2
doc/classes/AnimationTree.xml

@@ -7,8 +7,8 @@
 		Note: When linked with an [AnimationPlayer], several properties and methods of the corresponding [AnimationPlayer] will not function as expected. Playback and transitions should be handled using only the [AnimationTree] and its constituent [AnimationNode](s). The [AnimationPlayer] node should be used solely for adding, deleting, and editing animations.
 		Note: When linked with an [AnimationPlayer], several properties and methods of the corresponding [AnimationPlayer] will not function as expected. Playback and transitions should be handled using only the [AnimationTree] and its constituent [AnimationNode](s). The [AnimationPlayer] node should be used solely for adding, deleting, and editing animations.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
-		<link>https://github.com/godotengine/tps-demo</link>
+		<link title="AnimationTree">https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="advance">
 		<method name="advance">

+ 1 - 1
doc/classes/AnimationTreePlayer.xml

@@ -9,7 +9,7 @@
 		See [AnimationTree] for a more full-featured replacement of this node.
 		See [AnimationTree] for a more full-featured replacement of this node.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/animation/animation_tree.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_node">
 		<method name="add_node">

+ 8 - 4
doc/classes/Area.xml

@@ -7,6 +7,8 @@
 		3D area that detects [CollisionObject] nodes overlapping, entering, or exiting. Can also alter or override local physics parameters (gravity, damping).
 		3D area that detects [CollisionObject] nodes overlapping, entering, or exiting. Can also alter or override local physics parameters (gravity, damping).
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
+		<link title="GUI in 3D Demo">https://godotengine.org/asset-library/asset/127</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_collision_layer_bit" qualifiers="const">
 		<method name="get_collision_layer_bit" qualifiers="const">
@@ -87,7 +89,8 @@
 	</methods>
 	</methods>
 	<members>
 	<members>
 		<member name="angular_damp" type="float" setter="set_angular_damp" getter="get_angular_damp" default="0.1">
 		<member name="angular_damp" type="float" setter="set_angular_damp" getter="get_angular_damp" default="0.1">
-			The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. Values range from [code]0[/code] (no damping) to [code]1[/code] (full damping).
+			The rate at which objects stop spinning in this area. Represents the angular velocity lost per second.
+			See [member ProjectSettings.physics/3d/default_angular_damp] for more details about damping.
 		</member>
 		</member>
 		<member name="audio_bus_name" type="String" setter="set_audio_bus" getter="get_audio_bus" default="&quot;Master&quot;">
 		<member name="audio_bus_name" type="String" setter="set_audio_bus" getter="get_audio_bus" default="&quot;Master&quot;">
 			The name of the area's audio bus.
 			The name of the area's audio bus.
@@ -96,10 +99,10 @@
 			If [code]true[/code], the area's audio bus overrides the default audio bus.
 			If [code]true[/code], the area's audio bus overrides the default audio bus.
 		</member>
 		</member>
 		<member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer" default="1">
 		<member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer" default="1">
-			The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [member collision_mask]. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
+			The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [member collision_mask]. See [url=https://docs.godotengine.org/en/3.2/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
 		</member>
 		</member>
 		<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
 		<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
-			The physics layers this area scans to determine collision detection. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
+			The physics layers this area scans to determine collision detection. See [url=https://docs.godotengine.org/en/3.2/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
 		</member>
 		</member>
 		<member name="gravity" type="float" setter="set_gravity" getter="get_gravity" default="9.8">
 		<member name="gravity" type="float" setter="set_gravity" getter="get_gravity" default="9.8">
 			The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.
 			The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.
@@ -114,7 +117,8 @@
 			The area's gravity vector (not normalized). If gravity is a point (see [member gravity_point]), this will be the point of attraction.
 			The area's gravity vector (not normalized). If gravity is a point (see [member gravity_point]), this will be the point of attraction.
 		</member>
 		</member>
 		<member name="linear_damp" type="float" setter="set_linear_damp" getter="get_linear_damp" default="0.1">
 		<member name="linear_damp" type="float" setter="set_linear_damp" getter="get_linear_damp" default="0.1">
-			The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from [code]0[/code] (no damping) to [code]1[/code] (full damping).
+			The rate at which objects stop moving in this area. Represents the linear velocity lost per second.
+			See [member ProjectSettings.physics/3d/default_linear_damp] for more details about damping.
 		</member>
 		</member>
 		<member name="monitorable" type="bool" setter="set_monitorable" getter="is_monitorable" default="true">
 		<member name="monitorable" type="bool" setter="set_monitorable" getter="is_monitorable" default="true">
 			If [code]true[/code], other monitoring areas can detect this area.
 			If [code]true[/code], other monitoring areas can detect this area.

+ 10 - 5
doc/classes/Area2D.xml

@@ -7,7 +7,10 @@
 		2D area that detects [CollisionObject2D] nodes overlapping, entering, or exiting. Can also alter or override local physics parameters (gravity, damping).
 		2D area that detects [CollisionObject2D] nodes overlapping, entering, or exiting. Can also alter or override local physics parameters (gravity, damping).
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/physics/using_area_2d.html</link>
+		<link title="Using Area2D">https://docs.godotengine.org/en/3.2/tutorials/physics/using_area_2d.html</link>
+		<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
+		<link title="2D Pong Demo">https://godotengine.org/asset-library/asset/121</link>
+		<link title="2D Platformer Demo">https://godotengine.org/asset-library/asset/120</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_collision_layer_bit" qualifiers="const">
 		<method name="get_collision_layer_bit" qualifiers="const">
@@ -88,7 +91,8 @@
 	</methods>
 	</methods>
 	<members>
 	<members>
 		<member name="angular_damp" type="float" setter="set_angular_damp" getter="get_angular_damp" default="1.0">
 		<member name="angular_damp" type="float" setter="set_angular_damp" getter="get_angular_damp" default="1.0">
-			The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. Values range from [code]0[/code] (no damping) to [code]1[/code] (full damping).
+			The rate at which objects stop spinning in this area. Represents the angular velocity lost per second.
+			See [member ProjectSettings.physics/2d/default_angular_damp] for more details about damping.
 		</member>
 		</member>
 		<member name="audio_bus_name" type="String" setter="set_audio_bus_name" getter="get_audio_bus_name" default="&quot;Master&quot;">
 		<member name="audio_bus_name" type="String" setter="set_audio_bus_name" getter="get_audio_bus_name" default="&quot;Master&quot;">
 			The name of the area's audio bus.
 			The name of the area's audio bus.
@@ -97,10 +101,10 @@
 			If [code]true[/code], the area's audio bus overrides the default audio bus.
 			If [code]true[/code], the area's audio bus overrides the default audio bus.
 		</member>
 		</member>
 		<member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer" default="1">
 		<member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer" default="1">
-			The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [member collision_mask]. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
+			The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [member collision_mask]. See [url=https://docs.godotengine.org/en/3.2/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
 		</member>
 		</member>
 		<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
 		<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
-			The physics layers this area scans to determine collision detection. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
+			The physics layers this area scans to determine collision detection. See [url=https://docs.godotengine.org/en/3.2/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
 		</member>
 		</member>
 		<member name="gravity" type="float" setter="set_gravity" getter="get_gravity" default="98.0">
 		<member name="gravity" type="float" setter="set_gravity" getter="get_gravity" default="98.0">
 			The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.
 			The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.
@@ -115,7 +119,8 @@
 			The area's gravity vector (not normalized). If gravity is a point (see [member gravity_point]), this will be the point of attraction.
 			The area's gravity vector (not normalized). If gravity is a point (see [member gravity_point]), this will be the point of attraction.
 		</member>
 		</member>
 		<member name="linear_damp" type="float" setter="set_linear_damp" getter="get_linear_damp" default="0.1">
 		<member name="linear_damp" type="float" setter="set_linear_damp" getter="get_linear_damp" default="0.1">
-			The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from [code]0[/code] (no damping) to [code]1[/code] (full damping).
+			The rate at which objects stop moving in this area. Represents the linear velocity lost per second.
+			See [member ProjectSettings.physics/2d/default_linear_damp] for more details about damping.
 		</member>
 		</member>
 		<member name="monitorable" type="bool" setter="set_monitorable" getter="is_monitorable" default="true">
 		<member name="monitorable" type="bool" setter="set_monitorable" getter="is_monitorable" default="true">
 			If [code]true[/code], other monitoring areas can detect this area.
 			If [code]true[/code], other monitoring areas can detect this area.

+ 1 - 1
doc/classes/ArrayMesh.xml

@@ -26,7 +26,7 @@
 		[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive modes.
 		[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive modes.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/content/procedural_geometry/arraymesh.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/content/procedural_geometry/arraymesh.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_blend_shape">
 		<method name="add_blend_shape">

+ 1 - 0
doc/classes/AudioEffect.xml

@@ -7,6 +7,7 @@
 		Base resource for audio bus. Applies an audio effect on the bus that the resource is applied on.
 		Base resource for audio bus. Applies an audio effect on the bus that the resource is applied on.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="Audio Mic Record Demo">https://godotengine.org/asset-library/asset/527</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/AudioEffectDistortion.xml

@@ -9,7 +9,7 @@
 		By distorting the waveform the frequency content change, which will often make the sound "crunchy" or "abrasive". For games, it can simulate sound coming from some saturated device or speaker very efficiently.
 		By distorting the waveform the frequency content change, which will often make the sound "crunchy" or "abrasive". For games, it can simulate sound coming from some saturated device or speaker very efficiently.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link title="Audio buses">https://docs.godotengine.org/en/latest/tutorials/audio/audio_buses.html</link>
+		<link title="Audio buses">https://docs.godotengine.org/en/3.2/tutorials/audio/audio_buses.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/AudioEffectFilter.xml

@@ -7,7 +7,7 @@
 		Allows frequencies other than the [member cutoff_hz] to pass.
 		Allows frequencies other than the [member cutoff_hz] to pass.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link title="Audio buses">https://docs.godotengine.org/en/latest/tutorials/audio/audio_buses.html</link>
+		<link title="Audio buses">https://docs.godotengine.org/en/3.2/tutorials/audio/audio_buses.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/AudioEffectHighShelfFilter.xml

@@ -6,7 +6,7 @@
 	<description>
 	<description>
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link title="Audio buses">https://docs.godotengine.org/en/latest/tutorials/audio/audio_buses.html</link>
+		<link title="Audio buses">https://docs.godotengine.org/en/3.2/tutorials/audio/audio_buses.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/AudioEffectLowShelfFilter.xml

@@ -6,7 +6,7 @@
 	<description>
 	<description>
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link title="Audio buses">https://docs.godotengine.org/en/latest/tutorials/audio/audio_buses.html</link>
+		<link title="Audio buses">https://docs.godotengine.org/en/3.2/tutorials/audio/audio_buses.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 2 - 1
doc/classes/AudioEffectRecord.xml

@@ -7,7 +7,8 @@
 		Allows the user to record sound from a microphone. It sets and gets the format in which the audio file will be recorded (8-bit, 16-bit, or compressed). It checks whether or not the recording is active, and if it is, records the sound. It then returns the recorded sample.
 		Allows the user to record sound from a microphone. It sets and gets the format in which the audio file will be recorded (8-bit, 16-bit, or compressed). It checks whether or not the recording is active, and if it is, records the sound. It then returns the recorded sample.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/audio/recording_with_microphone.html</link>
+		<link title="Recording with microphone">https://docs.godotengine.org/en/3.2/tutorials/audio/recording_with_microphone.html</link>
+		<link title="Audio Mic Record Demo">https://godotengine.org/asset-library/asset/527</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_recording" qualifiers="const">
 		<method name="get_recording" qualifiers="const">

+ 1 - 0
doc/classes/AudioEffectReverb.xml

@@ -8,6 +8,7 @@
 		Simulates rooms of different sizes. Its parameters can be adjusted to simulate the sound of a specific room.
 		Simulates rooms of different sizes. Its parameters can be adjusted to simulate the sound of a specific room.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 4 - 1
doc/classes/AudioServer.xml

@@ -7,7 +7,10 @@
 		[AudioServer] is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface.
 		[AudioServer] is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/audio/audio_buses.html</link>
+		<link title="Audio buses">https://docs.godotengine.org/en/3.2/tutorials/audio/audio_buses.html</link>
+		<link title="Audio Device Changer Demo">https://godotengine.org/asset-library/asset/525</link>
+		<link title="Audio Mic Record Demo">https://godotengine.org/asset-library/asset/527</link>
+		<link title="Audio Spectrum Demo">https://godotengine.org/asset-library/asset/528</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_bus">
 		<method name="add_bus">

+ 4 - 1
doc/classes/AudioStream.xml

@@ -7,7 +7,10 @@
 		Base class for audio streams. Audio streams are used for sound effects and music playback, and support WAV (via [AudioStreamSample]) and OGG (via [AudioStreamOGGVorbis]) file formats.
 		Base class for audio streams. Audio streams are used for sound effects and music playback, and support WAV (via [AudioStreamSample]) and OGG (via [AudioStreamOGGVorbis]) file formats.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/audio/audio_streams.html</link>
+		<link title="Audio streams">https://docs.godotengine.org/en/3.2/tutorials/audio/audio_streams.html</link>
+		<link title="Audio Generator Demo">https://godotengine.org/asset-library/asset/526</link>
+		<link title="Audio Mic Record Demo">https://godotengine.org/asset-library/asset/527</link>
+		<link title="Audio Spectrum Demo">https://godotengine.org/asset-library/asset/528</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_length" qualifiers="const">
 		<method name="get_length" qualifiers="const">

+ 1 - 1
doc/classes/AudioStreamGenerator.xml

@@ -5,7 +5,7 @@
 	<description>
 	<description>
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://github.com/godotengine/godot-demo-projects/tree/master/audio/generator</link>
+		<link title="Audio Generator Demo">https://godotengine.org/asset-library/asset/526</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 0
doc/classes/AudioStreamPlayback.xml

@@ -7,6 +7,7 @@
 		Can play, loop, pause a scroll through audio. See [AudioStream] and [AudioStreamOGGVorbis] for usage.
 		Can play, loop, pause a scroll through audio. See [AudioStream] and [AudioStreamOGGVorbis] for usage.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="Audio Generator Demo">https://godotengine.org/asset-library/asset/526</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 6 - 1
doc/classes/AudioStreamPlayer.xml

@@ -7,7 +7,12 @@
 		Plays an audio stream non-positionally.
 		Plays an audio stream non-positionally.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/audio/audio_streams.html</link>
+		<link title="Audio streams">https://docs.godotengine.org/en/3.2/tutorials/audio/audio_streams.html</link>
+		<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
+		<link title="Audio Device Changer Demo">https://godotengine.org/asset-library/asset/525</link>
+		<link title="Audio Generator Demo">https://godotengine.org/asset-library/asset/526</link>
+		<link title="Audio Mic Record Demo">https://godotengine.org/asset-library/asset/527</link>
+		<link title="Audio Spectrum Demo">https://godotengine.org/asset-library/asset/528</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_playback_position">
 		<method name="get_playback_position">

+ 1 - 1
doc/classes/AudioStreamPlayer2D.xml

@@ -7,7 +7,7 @@
 		Plays audio that dampens with distance from screen center.
 		Plays audio that dampens with distance from screen center.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/audio/audio_streams.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/audio/audio_streams.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_playback_position">
 		<method name="get_playback_position">

+ 1 - 1
doc/classes/AudioStreamPlayer3D.xml

@@ -8,7 +8,7 @@
 		By default, audio is heard from the camera position. This can be changed by adding a [Listener] node to the scene and enabling it by calling [method Listener.make_current] on it.
 		By default, audio is heard from the camera position. This can be changed by adding a [Listener] node to the scene and enabling it by calling [method Listener.make_current] on it.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/audio/audio_streams.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/audio/audio_streams.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_playback_position">
 		<method name="get_playback_position">

+ 1 - 1
doc/classes/BakedLightmap.xml

@@ -8,7 +8,7 @@
 		[b]Note:[/b] This node has many known bugs and will be [url=https://godotengine.org/article/godot-40-will-get-new-modernized-lightmapper]rewritten for Godot 4.0[/url]. See [url=https://github.com/godotengine/godot/issues/30929]GitHub issue #30929[/url].
 		[b]Note:[/b] This node has many known bugs and will be [url=https://godotengine.org/article/godot-40-will-get-new-modernized-lightmapper]rewritten for Godot 4.0[/url]. See [url=https://github.com/godotengine/godot/issues/30929]GitHub issue #30929[/url].
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/3d/baked_lightmaps.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/3d/baked_lightmaps.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="bake">
 		<method name="bake">

+ 7 - 2
doc/classes/Basis.xml

@@ -10,8 +10,13 @@
 		For more information, read the "Matrices and transforms" documentation article.
 		For more information, read the "Matrices and transforms" documentation article.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html</link>
-		<link>https://docs.godotengine.org/en/latest/tutorials/3d/using_transforms.html</link>
+		<link title="Math tutorial index">https://docs.godotengine.org/en/3.2/tutorials/math/index.html</link>
+		<link title="Matrices and transforms">https://docs.godotengine.org/en/3.2/tutorials/math/matrices_and_transforms.html</link>
+		<link title="Using 3D transforms">https://docs.godotengine.org/en/3.2/tutorials/3d/using_transforms.html</link>
+		<link title="Matrix Transform Demo">https://godotengine.org/asset-library/asset/584</link>
+		<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
+		<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
+		<link title="2.5D Demo">https://godotengine.org/asset-library/asset/583</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="Basis">
 		<method name="Basis">

+ 3 - 0
doc/classes/BoxShape.xml

@@ -7,6 +7,9 @@
 		3D box shape that can be a child of a [PhysicsBody] or [Area].
 		3D box shape that can be a child of a [PhysicsBody] or [Area].
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="3D Physics Tests Demo">https://godotengine.org/asset-library/asset/675</link>
+		<link title="3D Kinematic Character Demo">https://godotengine.org/asset-library/asset/126</link>
+		<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 2 - 0
doc/classes/Button.xml

@@ -20,6 +20,8 @@
 		See also [BaseButton] which contains common properties and methods associated with this node.
 		See also [BaseButton] which contains common properties and methods associated with this node.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
+		<link title="OS Test Demo">https://godotengine.org/asset-library/asset/677</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/CPUParticles2D.xml

@@ -8,7 +8,7 @@
 		See also [Particles2D], which provides the same functionality with hardware acceleration, but may not run on older devices.
 		See also [Particles2D], which provides the same functionality with hardware acceleration, but may not run on older devices.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/2d/particle_systems_2d.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/2d/particle_systems_2d.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="convert_from_particles">
 		<method name="convert_from_particles">

+ 1 - 0
doc/classes/Camera.xml

@@ -7,6 +7,7 @@
 		Camera is a special node that displays what is visible from its current location. Cameras register themselves in the nearest [Viewport] node (when ascending the tree). Only one camera can be active per viewport. If no viewport is available ascending the tree, the camera will register in the global viewport. In other words, a camera just provides 3D display capabilities to a [Viewport], and, without one, a scene registered in that [Viewport] (or higher viewports) can't be displayed.
 		Camera is a special node that displays what is visible from its current location. Cameras register themselves in the nearest [Viewport] node (when ascending the tree). Only one camera can be active per viewport. If no viewport is available ascending the tree, the camera will register in the global viewport. In other words, a camera just provides 3D display capabilities to a [Viewport], and, without one, a scene registered in that [Viewport] (or higher viewports) can't be displayed.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="clear_current">
 		<method name="clear_current">

+ 3 - 0
doc/classes/Camera2D.xml

@@ -9,6 +9,9 @@
 		Note that the [Camera2D] node's [code]position[/code] doesn't represent the actual position of the screen, which may differ due to applied smoothing or limits. You can use [method get_camera_screen_center] to get the real position.
 		Note that the [Camera2D] node's [code]position[/code] doesn't represent the actual position of the screen, which may differ due to applied smoothing or limits. You can use [method get_camera_screen_center] to get the real position.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="2D Platformer Demo">https://godotengine.org/asset-library/asset/120</link>
+		<link title="2D Isometric Demo">https://godotengine.org/asset-library/asset/112</link>
+		<link title="2D HDR Demo">https://godotengine.org/asset-library/asset/110</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="align">
 		<method name="align">

+ 19 - 5
doc/classes/CanvasItem.xml

@@ -12,8 +12,9 @@
 		[b]Note:[/b] Unless otherwise specified, all methods that have angle parameters must have angles specified as [i]radians[/i]. To convert degrees to radians, use [method @GDScript.deg2rad].
 		[b]Note:[/b] Unless otherwise specified, all methods that have angle parameters must have angles specified as [i]radians[/i]. To convert degrees to radians, use [method @GDScript.deg2rad].
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/2d/2d_transforms.html</link>
-		<link>https://docs.godotengine.org/en/latest/tutorials/2d/custom_drawing_in_2d.html</link>
+		<link title="Viewport and canvas transforms">https://docs.godotengine.org/en/3.2/tutorials/2d/2d_transforms.html</link>
+		<link title="Custom drawing in 2D">https://docs.godotengine.org/en/3.2/tutorials/2d/custom_drawing_in_2d.html</link>
+		<link title="Audio Spectrum Demo">https://godotengine.org/asset-library/asset/528</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="_draw" qualifiers="virtual">
 		<method name="_draw" qualifiers="virtual">
@@ -472,6 +473,13 @@
 				Returns [code]true[/code] if local transform notifications are communicated to children.
 				Returns [code]true[/code] if local transform notifications are communicated to children.
 			</description>
 			</description>
 		</method>
 		</method>
+		<method name="is_set_as_toplevel" qualifiers="const">
+			<return type="bool">
+			</return>
+			<description>
+				Returns [code]true[/code] if the node is set as top-level. See [method set_as_toplevel].
+			</description>
+		</method>
 		<method name="is_transform_notification_enabled" qualifiers="const">
 		<method name="is_transform_notification_enabled" qualifiers="const">
 			<return type="bool">
 			<return type="bool">
 			</return>
 			</return>
@@ -504,6 +512,15 @@
 				Transformations issued by [code]event[/code]'s inputs are applied in local space instead of global space.
 				Transformations issued by [code]event[/code]'s inputs are applied in local space instead of global space.
 			</description>
 			</description>
 		</method>
 		</method>
+		<method name="set_as_toplevel">
+			<return type="void">
+			</return>
+			<argument index="0" name="enable" type="bool">
+			</argument>
+			<description>
+				If [code]enable[/code] is [code]true[/code], the node won't inherit its transform from parent canvas items.
+			</description>
+		</method>
 		<method name="set_notify_local_transform">
 		<method name="set_notify_local_transform">
 			<return type="void">
 			<return type="void">
 			</return>
 			</return>
@@ -553,9 +570,6 @@
 		<member name="show_behind_parent" type="bool" setter="set_draw_behind_parent" getter="is_draw_behind_parent_enabled" default="false">
 		<member name="show_behind_parent" type="bool" setter="set_draw_behind_parent" getter="is_draw_behind_parent_enabled" default="false">
 			If [code]true[/code], the object draws behind its parent.
 			If [code]true[/code], the object draws behind its parent.
 		</member>
 		</member>
-		<member name="toplevel" type="bool" setter="set_as_toplevel" getter="is_set_as_toplevel">
-			If [code]true[/code], the node will not inherit its transform from parent [CanvasItem]s.
-		</member>
 		<member name="show_on_top" type="bool" setter="_set_on_top" getter="_is_on_top">
 		<member name="show_on_top" type="bool" setter="_set_on_top" getter="_is_on_top">
 			If [code]true[/code], the object draws on top of its parent.
 			If [code]true[/code], the object draws on top of its parent.
 		</member>
 		</member>

+ 3 - 2
doc/classes/CanvasLayer.xml

@@ -7,8 +7,9 @@
 		Canvas drawing layer. [CanvasItem] nodes that are direct or indirect children of a [CanvasLayer] will be drawn in that layer. The layer is a numeric index that defines the draw order. The default 2D scene renders with index 0, so a [CanvasLayer] with index -1 will be drawn below, and one with index 1 will be drawn above. This is very useful for HUDs (in layer 1+ or above), or backgrounds (in layer -1 or below).
 		Canvas drawing layer. [CanvasItem] nodes that are direct or indirect children of a [CanvasLayer] will be drawn in that layer. The layer is a numeric index that defines the draw order. The default 2D scene renders with index 0, so a [CanvasLayer] with index -1 will be drawn below, and one with index 1 will be drawn above. This is very useful for HUDs (in layer 1+ or above), or backgrounds (in layer -1 or below).
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/2d/2d_transforms.html</link>
-		<link>https://docs.godotengine.org/en/latest/tutorials/2d/canvas_layers.html</link>
+		<link title="Viewport and canvas transforms">https://docs.godotengine.org/en/3.2/tutorials/2d/2d_transforms.html</link>
+		<link title="Canvas layers">https://docs.godotengine.org/en/3.2/tutorials/2d/canvas_layers.html</link>
+		<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_canvas" qualifiers="const">
 		<method name="get_canvas" qualifiers="const">

+ 1 - 0
doc/classes/CapsuleShape.xml

@@ -7,6 +7,7 @@
 		Capsule shape for collisions.
 		Capsule shape for collisions.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="3D Physics Tests Demo">https://godotengine.org/asset-library/asset/675</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/CharFXTransform.xml

@@ -7,7 +7,7 @@
 		By setting various properties on this object, you can control how individual characters will be displayed in a [RichTextEffect].
 		By setting various properties on this object, you can control how individual characters will be displayed in a [RichTextEffect].
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/gui/bbcode_in_richtextlabel.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/gui/bbcode_in_richtextlabel.html</link>
 		<link>https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project</link>
 		<link>https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>

+ 1 - 1
doc/classes/ClippedCamera.xml

@@ -90,7 +90,7 @@
 			If [code]true[/code], the camera stops on contact with [PhysicsBody]s.
 			If [code]true[/code], the camera stops on contact with [PhysicsBody]s.
 		</member>
 		</member>
 		<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
 		<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
-			The camera's collision mask. Only objects in at least one collision layer matching the mask will be detected. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
+			The camera's collision mask. Only objects in at least one collision layer matching the mask will be detected. See [url=https://docs.godotengine.org/en/3.2/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
 		</member>
 		</member>
 		<member name="margin" type="float" setter="set_margin" getter="get_margin" default="0.0">
 		<member name="margin" type="float" setter="set_margin" getter="get_margin" default="0.0">
 			The camera's collision margin. The camera can't get closer than this distance to a colliding object.
 			The camera's collision margin. The camera can't get closer than this distance to a colliding object.

+ 4 - 1
doc/classes/CollisionShape.xml

@@ -7,7 +7,10 @@
 		Editor facility for creating and editing collision shapes in 3D space. You can use this node to represent all sorts of collision shapes, for example, add this to an [Area] to give it a detection shape, or add it to a [PhysicsBody] to create a solid object. [b]IMPORTANT[/b]: this is an Editor-only helper to create shapes, use [method CollisionObject.shape_owner_get_shape] to get the actual shape.
 		Editor facility for creating and editing collision shapes in 3D space. You can use this node to represent all sorts of collision shapes, for example, add this to an [Area] to give it a detection shape, or add it to a [PhysicsBody] to create a solid object. [b]IMPORTANT[/b]: this is an Editor-only helper to create shapes, use [method CollisionObject.shape_owner_get_shape] to get the actual shape.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html</link>
+		<link title="Physics introduction">https://docs.godotengine.org/en/3.2/tutorials/physics/physics_introduction.html</link>
+		<link title="3D Kinematic Character Demo">https://godotengine.org/asset-library/asset/126</link>
+		<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="make_convex_from_brothers">
 		<method name="make_convex_from_brothers">

+ 4 - 1
doc/classes/CollisionShape2D.xml

@@ -7,7 +7,10 @@
 		Editor facility for creating and editing collision shapes in 2D space. You can use this node to represent all sorts of collision shapes, for example, add this to an [Area2D] to give it a detection shape, or add it to a [PhysicsBody2D] to create a solid object. [b]IMPORTANT[/b]: this is an Editor-only helper to create shapes, use [method CollisionObject2D.shape_owner_get_shape] to get the actual shape.
 		Editor facility for creating and editing collision shapes in 2D space. You can use this node to represent all sorts of collision shapes, for example, add this to an [Area2D] to give it a detection shape, or add it to a [PhysicsBody2D] to create a solid object. [b]IMPORTANT[/b]: this is an Editor-only helper to create shapes, use [method CollisionObject2D.shape_owner_get_shape] to get the actual shape.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html</link>
+		<link title="Physics introduction">https://docs.godotengine.org/en/3.2/tutorials/physics/physics_introduction.html</link>
+		<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
+		<link title="2D Pong Demo">https://godotengine.org/asset-library/asset/121</link>
+		<link title="2D Kinematic Character Demo">https://godotengine.org/asset-library/asset/113</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 3 - 0
doc/classes/Color.xml

@@ -11,6 +11,9 @@
 		[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/color_constants.png]Color constants cheatsheet[/url]
 		[url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/color_constants.png]Color constants cheatsheet[/url]
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="2D GD Paint Demo">https://godotengine.org/asset-library/asset/517</link>
+		<link title="Tween Demo">https://godotengine.org/asset-library/asset/146</link>
+		<link title="GUI Drag And Drop Demo">https://godotengine.org/asset-library/asset/133</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="Color">
 		<method name="Color">

+ 1 - 0
doc/classes/ColorPicker.xml

@@ -7,6 +7,7 @@
 		[Control] node displaying a color picker widget. It's useful for selecting a color from an RGB/RGBA colorspace.
 		[Control] node displaying a color picker widget. It's useful for selecting a color from an RGB/RGBA colorspace.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="Tween Demo">https://godotengine.org/asset-library/asset/146</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_preset">
 		<method name="add_preset">

+ 2 - 0
doc/classes/ColorPickerButton.xml

@@ -8,6 +8,8 @@
 		See also [BaseButton] which contains common properties and methods associated with this node.
 		See also [BaseButton] which contains common properties and methods associated with this node.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="GUI Drag And Drop Demo">https://godotengine.org/asset-library/asset/133</link>
+		<link title="2D GD Paint Demo">https://godotengine.org/asset-library/asset/517</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_picker">
 		<method name="get_picker">

+ 1 - 0
doc/classes/ColorRect.xml

@@ -7,6 +7,7 @@
 		Displays a colored rectangle.
 		Displays a colored rectangle.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 0
doc/classes/ConcavePolygonShape.xml

@@ -8,6 +8,7 @@
 		Note: when used for collision, [ConcavePolygonShape] is intended to work with static [PhysicsBody] nodes like [StaticBody] and will not work with [KinematicBody] or [RigidBody] with a mode other than Static.
 		Note: when used for collision, [ConcavePolygonShape] is intended to work with static [PhysicsBody] nodes like [StaticBody] and will not work with [KinematicBody] or [RigidBody] with a mode other than Static.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="3D Physics Tests Demo">https://godotengine.org/asset-library/asset/675</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_faces" qualifiers="const">
 		<method name="get_faces" qualifiers="const">

+ 4 - 3
doc/classes/Control.xml

@@ -14,8 +14,9 @@
 		[b]Note:[/b] Theme items are [i]not[/i] [Object] properties. This means you can't access their values using [method Object.get] and [method Object.set]. Instead, use [method get_color], [method get_constant], [method get_font], [method get_icon], [method get_stylebox], and the [code]add_*_override[/code] methods provided by this class.
 		[b]Note:[/b] Theme items are [i]not[/i] [Object] properties. This means you can't access their values using [method Object.get] and [method Object.set]. Instead, use [method get_color], [method get_constant], [method get_font], [method get_icon], [method get_stylebox], and the [code]add_*_override[/code] methods provided by this class.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/gui/index.html</link>
-		<link>https://docs.godotengine.org/en/latest/tutorials/2d/custom_drawing_in_2d.html</link>
+		<link title="GUI tutorial index">https://docs.godotengine.org/en/3.2/tutorials/gui/index.html</link>
+		<link title="Custom drawing in 2D">https://docs.godotengine.org/en/3.2/tutorials/2d/custom_drawing_in_2d.html</link>
+		<link title="All GUI Demos">https://github.com/godotengine/godot-demo-projects/tree/master/gui</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="_clips_input" qualifiers="virtual">
 		<method name="_clips_input" qualifiers="virtual">
@@ -889,7 +890,7 @@
 		</member>
 		</member>
 		<member name="rect_scale" type="Vector2" setter="set_scale" getter="get_scale" default="Vector2( 1, 1 )">
 		<member name="rect_scale" type="Vector2" setter="set_scale" getter="get_scale" default="Vector2( 1, 1 )">
 			The node's scale, relative to its [member rect_size]. Change this property to scale the node around its [member rect_pivot_offset]. The Control's [member hint_tooltip] will also scale according to this value.
 			The node's scale, relative to its [member rect_size]. Change this property to scale the node around its [member rect_pivot_offset]. The Control's [member hint_tooltip] will also scale according to this value.
-			[b]Note:[/b] This property is mainly intended to be used for animation purposes. Text inside the Control will look pixelated or blurry when the Control is scaled. To support multiple resolutions in your project, use an appropriate viewport stretch mode as described in the [url=https://docs.godotengine.org/en/latest/tutorials/viewports/multiple_resolutions.html]documentation[/url] instead of scaling Controls individually.
+			[b]Note:[/b] This property is mainly intended to be used for animation purposes. Text inside the Control will look pixelated or blurry when the Control is scaled. To support multiple resolutions in your project, use an appropriate viewport stretch mode as described in the [url=https://docs.godotengine.org/en/3.2/tutorials/viewports/multiple_resolutions.html]documentation[/url] instead of scaling Controls individually.
 			[b]Note:[/b] If the Control node is a child of a [Container] node, the scale will be reset to [code]Vector2(1, 1)[/code] when the scene is instanced. To set the Control's scale when it's instanced, wait for one frame using [code]yield(get_tree(), "idle_frame")[/code] then set its [member rect_scale] property.
 			[b]Note:[/b] If the Control node is a child of a [Container] node, the scale will be reset to [code]Vector2(1, 1)[/code] when the scene is instanced. To set the Control's scale when it's instanced, wait for one frame using [code]yield(get_tree(), "idle_frame")[/code] then set its [member rect_scale] property.
 		</member>
 		</member>
 		<member name="rect_size" type="Vector2" setter="_set_size" getter="get_size" default="Vector2( 0, 0 )">
 		<member name="rect_size" type="Vector2" setter="_set_size" getter="get_size" default="Vector2( 0, 0 )">

+ 1 - 0
doc/classes/ConvexPolygonShape.xml

@@ -7,6 +7,7 @@
 		Convex polygon shape resource, which can be added to a [PhysicsBody] or area.
 		Convex polygon shape resource, which can be added to a [PhysicsBody] or area.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="3D Physics Tests Demo">https://godotengine.org/asset-library/asset/675</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 3 - 0
doc/classes/CylinderShape.xml

@@ -7,6 +7,9 @@
 		Cylinder shape for collisions.
 		Cylinder shape for collisions.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
+		<link title="3D Physics Tests Demo">https://godotengine.org/asset-library/asset/675</link>
+		<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 3 - 1
doc/classes/Dictionary.xml

@@ -73,7 +73,9 @@
 		[/codeblock]
 		[/codeblock]
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/gdscript_basics.html#dictionary</link>
+		<link title="GDScript basics: Dictionary">https://docs.godotengine.org/en/3.2/getting_started/scripting/gdscript/gdscript_basics.html#dictionary</link>
+		<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
+		<link title="OS Test Demo">https://godotengine.org/asset-library/asset/677</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="clear">
 		<method name="clear">

+ 1 - 1
doc/classes/DirectionalLight.xml

@@ -7,7 +7,7 @@
 		A directional light is a type of [Light] node that models an infinite number of parallel rays covering the entire scene. It is used for lights with strong intensity that are located far away from the scene to model sunlight or moonlight. The worldspace location of the DirectionalLight transform (origin) is ignored. Only the basis is used to determine light direction.
 		A directional light is a type of [Light] node that models an infinite number of parallel rays covering the entire scene. It is used for lights with strong intensity that are located far away from the scene to model sunlight or moonlight. The worldspace location of the DirectionalLight transform (origin) is ignored. Only the basis is used to determine light direction.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/3d/lights_and_shadows.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/3d/lights_and_shadows.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/Directory.xml

@@ -24,7 +24,7 @@
 		[/codeblock]
 		[/codeblock]
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/getting_started/step_by_step/filesystem.html</link>
+		<link>https://docs.godotengine.org/en/3.2/getting_started/step_by_step/filesystem.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="change_dir">
 		<method name="change_dir">

+ 1 - 0
doc/classes/DynamicFont.xml

@@ -15,6 +15,7 @@
 		[b]Note:[/b] DynamicFont doesn't support features such as kerning, right-to-left typesetting, ligatures, text shaping, variable fonts and optional font features yet. If you wish to "bake" an optional font feature into a TTF font file, you can use [url=https://fontforge.org/]FontForge[/url] to do so. In FontForge, use [b]File &gt; Generate Fonts[/b], click [b]Options[/b], choose the desired features then generate the font.
 		[b]Note:[/b] DynamicFont doesn't support features such as kerning, right-to-left typesetting, ligatures, text shaping, variable fonts and optional font features yet. If you wish to "bake" an optional font feature into a TTF font file, you can use [url=https://fontforge.org/]FontForge[/url] to do so. In FontForge, use [b]File &gt; Generate Fonts[/b], click [b]Options[/b], choose the desired features then generate the font.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_fallback">
 		<method name="add_fallback">

+ 1 - 0
doc/classes/DynamicFontData.xml

@@ -7,6 +7,7 @@
 		Used with [DynamicFont] to describe the location of a vector font file for dynamic rendering at runtime.
 		Used with [DynamicFont] to describe the location of a vector font file for dynamic rendering at runtime.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/EditorImportPlugin.xml

@@ -49,7 +49,7 @@
 		[/codeblock]
 		[/codeblock]
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/plugins/editor/import_plugins.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/plugins/editor/import_plugins.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_import_options" qualifiers="virtual">
 		<method name="get_import_options" qualifiers="virtual">

+ 1 - 1
doc/classes/EditorPlugin.xml

@@ -7,7 +7,7 @@
 		Plugins are used by the editor to extend functionality. The most common types of plugins are those which edit a given node or resource type, import plugins and export plugins. See also [EditorScript] to add functions to the editor.
 		Plugins are used by the editor to extend functionality. The most common types of plugins are those which edit a given node or resource type, import plugins and export plugins. See also [EditorScript] to add functions to the editor.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/plugins/editor/index.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/plugins/editor/index.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_autoload_singleton">
 		<method name="add_autoload_singleton">

+ 1 - 1
doc/classes/EditorScenePostImport.xml

@@ -26,7 +26,7 @@
 		[/codeblock]
 		[/codeblock]
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/getting_started/workflow/assets/importing_scenes.html#custom-script</link>
+		<link>https://docs.godotengine.org/en/3.2/getting_started/workflow/assets/importing_scenes.html#custom-script</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_source_file" qualifiers="const">
 		<method name="get_source_file" qualifiers="const">

+ 1 - 1
doc/classes/EditorSpatialGizmoPlugin.xml

@@ -7,7 +7,7 @@
 		EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the documentation for more info.
 		EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the documentation for more info.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/plugins/editor/spatial_gizmos.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/plugins/editor/spatial_gizmos.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="add_material">
 		<method name="add_material">

+ 5 - 2
doc/classes/Environment.xml

@@ -12,8 +12,11 @@
 		These effects will only apply when the [Viewport]'s intended usage is "3D" or "3D Without Effects". This can be configured for the root Viewport with [member ProjectSettings.rendering/quality/intended_usage/framebuffer_allocation], or for specific Viewports via the [member Viewport.usage] property.
 		These effects will only apply when the [Viewport]'s intended usage is "3D" or "3D Without Effects". This can be configured for the root Viewport with [member ProjectSettings.rendering/quality/intended_usage/framebuffer_allocation], or for specific Viewports via the [member Viewport.usage] property.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/3d/environment_and_post_processing.html</link>
-		<link>https://docs.godotengine.org/en/latest/tutorials/3d/high_dynamic_range.html</link>
+		<link title="Environment and post-processing">https://docs.godotengine.org/en/3.2/tutorials/3d/environment_and_post_processing.html</link>
+		<link title="Light transport in game engines">https://docs.godotengine.org/en/3.2/tutorials/3d/high_dynamic_range.html</link>
+		<link title="3D Material Testers Demo">https://godotengine.org/asset-library/asset/123</link>
+		<link title="2D HDR Demo">https://godotengine.org/asset-library/asset/110</link>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="is_glow_level_enabled" qualifiers="const">
 		<method name="is_glow_level_enabled" qualifiers="const">

+ 3 - 2
doc/classes/File.xml

@@ -20,11 +20,12 @@
 		    file.close()
 		    file.close()
 		    return content
 		    return content
 		[/codeblock]
 		[/codeblock]
-		In the example above, the file will be saved in the user data folder as specified in the [url=https://docs.godotengine.org/en/latest/tutorials/io/data_paths.html]Data paths[/url] documentation.
+		In the example above, the file will be saved in the user data folder as specified in the [url=https://docs.godotengine.org/en/3.2/tutorials/io/data_paths.html]Data paths[/url] documentation.
 		[b]Note:[/b] To access project resources once exported, it is recommended to use [ResourceLoader] instead of the [File] API, as some files are converted to engine-specific formats and their original source files might not be present in the exported PCK package.
 		[b]Note:[/b] To access project resources once exported, it is recommended to use [ResourceLoader] instead of the [File] API, as some files are converted to engine-specific formats and their original source files might not be present in the exported PCK package.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/getting_started/step_by_step/filesystem.html</link>
+		<link title="File system">https://docs.godotengine.org/en/3.2/getting_started/step_by_step/filesystem.html</link>
+		<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="close">
 		<method name="close">

+ 8 - 8
doc/classes/FuncRef.xml

@@ -26,6 +26,13 @@
 				Calls the referenced function previously set in [member function] or [method @GDScript.funcref]. Contrarily to [method call_func], this method does not support a variable number of arguments but expects all parameters to be passed via a single [Array].
 				Calls the referenced function previously set in [member function] or [method @GDScript.funcref]. Contrarily to [method call_func], this method does not support a variable number of arguments but expects all parameters to be passed via a single [Array].
 			</description>
 			</description>
 		</method>
 		</method>
+		<method name="is_valid" qualifiers="const">
+			<return type="bool">
+			</return>
+			<description>
+				Returns whether the object still exists and has the function assigned.
+			</description>
+		</method>
 		<method name="set_instance">
 		<method name="set_instance">
 			<return type="void">
 			<return type="void">
 			</return>
 			</return>
@@ -35,16 +42,9 @@
 				The object containing the referenced function. This object must be of a type actually inheriting from [Object], not a built-in type such as [int], [Vector2] or [Dictionary].
 				The object containing the referenced function. This object must be of a type actually inheriting from [Object], not a built-in type such as [int], [Vector2] or [Dictionary].
 			</description>
 			</description>
 		</method>
 		</method>
-		<method name="is_valid" qualifiers="const">
-			<return type="bool">
-			</return>
-			<description>
-				Returns whether the object still exists and has the function assigned.
-			</description>
-		</method>
 	</methods>
 	</methods>
 	<members>
 	<members>
-		<member name="function" type="String" setter="set_function" getter="get_function">
+		<member name="function" type="String" setter="set_function" getter="get_function" default="&quot;&quot;">
 			The name of the referenced function.
 			The name of the referenced function.
 		</member>
 		</member>
 	</members>
 	</members>

+ 2 - 1
doc/classes/GIProbe.xml

@@ -8,7 +8,8 @@
 		Having [GIProbe]s in a scene can be expensive, the quality of the probe can be turned down in exchange for better performance in the [ProjectSettings] using [member ProjectSettings.rendering/quality/voxel_cone_tracing/high_quality].
 		Having [GIProbe]s in a scene can be expensive, the quality of the probe can be turned down in exchange for better performance in the [ProjectSettings] using [member ProjectSettings.rendering/quality/voxel_cone_tracing/high_quality].
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/3d/gi_probes.html</link>
+		<link title="GI probes">https://docs.godotengine.org/en/3.2/tutorials/3d/gi_probes.html</link>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="bake">
 		<method name="bake">

+ 1 - 0
doc/classes/GIProbeData.xml

@@ -5,6 +5,7 @@
 	<description>
 	<description>
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 0
doc/classes/GridContainer.xml

@@ -9,6 +9,7 @@
 		[b]Note:[/b] GridContainer only works with child nodes inheriting from Control. It won't rearrange child nodes inheriting from Node2D.
 		[b]Note:[/b] GridContainer only works with child nodes inheriting from Control. It won't rearrange child nodes inheriting from Node2D.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
+		<link title="OS Test Demo">https://godotengine.org/asset-library/asset/677</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 2 - 2
doc/classes/HTTPClient.xml

@@ -11,8 +11,8 @@
 		[b]Note:[/b] When performing HTTP requests from a project exported to HTML5, keep in mind the remote server may not allow requests from foreign origins due to [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/url]. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the [code]Access-Control-Allow-Origin: *[/code] HTTP header.
 		[b]Note:[/b] When performing HTTP requests from a project exported to HTML5, keep in mind the remote server may not allow requests from foreign origins due to [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/url]. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the [code]Access-Control-Allow-Origin: *[/code] HTTP header.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/networking/http_client_class.html</link>
-		<link>https://docs.godotengine.org/en/latest/tutorials/networking/ssl_certificates.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/networking/http_client_class.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/networking/ssl_certificates.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="close">
 		<method name="close">

+ 2 - 2
doc/classes/HTTPRequest.xml

@@ -67,8 +67,8 @@
 		[b]Note:[/b] When performing HTTP requests from a project exported to HTML5, keep in mind the remote server may not allow requests from foreign origins due to [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/url]. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the [code]Access-Control-Allow-Origin: *[/code] HTTP header.
 		[b]Note:[/b] When performing HTTP requests from a project exported to HTML5, keep in mind the remote server may not allow requests from foreign origins due to [url=https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS]CORS[/url]. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the [code]Access-Control-Allow-Origin: *[/code] HTTP header.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/networking/http_request_class.html</link>
-		<link>https://docs.godotengine.org/en/latest/tutorials/networking/ssl_certificates.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/networking/http_request_class.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/networking/ssl_certificates.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="cancel_request">
 		<method name="cancel_request">

+ 1 - 1
doc/classes/Image.xml

@@ -330,7 +330,7 @@
 			<argument index="0" name="path" type="String">
 			<argument index="0" name="path" type="String">
 			</argument>
 			</argument>
 			<description>
 			<description>
-				Loads an image from file [code]path[/code]. See [url=https://docs.godotengine.org/en/latest/getting_started/workflow/assets/importing_images.html#supported-image-formats]Supported image formats[/url] for a list of supported image formats and limitations.
+				Loads an image from file [code]path[/code]. See [url=https://docs.godotengine.org/en/3.2/getting_started/workflow/assets/importing_images.html#supported-image-formats]Supported image formats[/url] for a list of supported image formats and limitations.
 			</description>
 			</description>
 		</method>
 		</method>
 		<method name="load_jpg_from_buffer">
 		<method name="load_jpg_from_buffer">

+ 3 - 1
doc/classes/Input.xml

@@ -7,7 +7,9 @@
 		A singleton that deals with inputs. This includes key presses, mouse buttons and movement, joypads, and input actions. Actions and their events can be set in the [b]Input Map[/b] tab in the [b]Project &gt; Project Settings[/b], or with the [InputMap] class.
 		A singleton that deals with inputs. This includes key presses, mouse buttons and movement, joypads, and input actions. Actions and their events can be set in the [b]Input Map[/b] tab in the [b]Project &gt; Project Settings[/b], or with the [InputMap] class.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/inputs/index.html</link>
+		<link title="Inputs tutorial index">https://docs.godotengine.org/en/3.2/tutorials/inputs/index.html</link>
+		<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
+		<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="action_press">
 		<method name="action_press">

+ 4 - 2
doc/classes/InputEvent.xml

@@ -7,8 +7,10 @@
 		Base class of all sort of input event. See [method Node._input].
 		Base class of all sort of input event. See [method Node._input].
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
-		<link>https://docs.godotengine.org/en/latest/tutorials/2d/2d_transforms.html</link>
+		<link title="InputEvent">https://docs.godotengine.org/en/3.2/tutorials/inputs/inputevent.html</link>
+		<link title="Viewport and canvas transforms">https://docs.godotengine.org/en/3.2/tutorials/2d/2d_transforms.html</link>
+		<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
+		<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="accumulate">
 		<method name="accumulate">

+ 3 - 1
doc/classes/InputEventAction.xml

@@ -7,7 +7,9 @@
 		Contains a generic action which can be targeted from several types of inputs. Actions can be created from the [b]Input Map[/b] tab in the [b]Project &gt; Project Settings[/b] menu. See [method Node._input].
 		Contains a generic action which can be targeted from several types of inputs. Actions can be created from the [b]Input Map[/b] tab in the [b]Project &gt; Project Settings[/b] menu. See [method Node._input].
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html#actions</link>
+		<link title="InputEvent: Actions">https://docs.godotengine.org/en/3.2/tutorials/inputs/inputevent.html#actions</link>
+		<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
+		<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/InputEventJoypadButton.xml

@@ -7,7 +7,7 @@
 		Input event type for gamepad buttons. For gamepad analog sticks and joysticks, see [InputEventJoypadMotion].
 		Input event type for gamepad buttons. For gamepad analog sticks and joysticks, see [InputEventJoypadMotion].
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/inputs/inputevent.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/InputEventJoypadMotion.xml

@@ -7,7 +7,7 @@
 		Stores information about joystick motions. One [InputEventJoypadMotion] represents one axis at a time.
 		Stores information about joystick motions. One [InputEventJoypadMotion] represents one axis at a time.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/inputs/inputevent.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/InputEventKey.xml

@@ -7,7 +7,7 @@
 		Stores key presses on the keyboard. Supports key presses, key releases and [member echo] events.
 		Stores key presses on the keyboard. Supports key presses, key releases and [member echo] events.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/inputs/inputevent.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 		<method name="get_scancode_with_modifiers" qualifiers="const">
 		<method name="get_scancode_with_modifiers" qualifiers="const">

+ 1 - 1
doc/classes/InputEventMouse.xml

@@ -7,7 +7,7 @@
 		Stores general mouse events information.
 		Stores general mouse events information.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/inputs/inputevent.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 1 - 1
doc/classes/InputEventMouseButton.xml

@@ -7,7 +7,7 @@
 		Contains mouse click information. See [method Node._input].
 		Contains mouse click information. See [method Node._input].
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/inputs/mouse_and_input_coordinates.html</link>
+		<link>https://docs.godotengine.org/en/3.2/tutorials/inputs/mouse_and_input_coordinates.html</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

+ 2 - 1
doc/classes/InputEventMouseMotion.xml

@@ -8,7 +8,8 @@
 		[b]Note:[/b] By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, call [method Input.set_use_accumulated_input] with [code]false[/code] to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider implementing [url=https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm]Bresenham's line algorithm[/url] as well to avoid visible gaps in lines if the user is moving the mouse quickly.
 		[b]Note:[/b] By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, call [method Input.set_use_accumulated_input] with [code]false[/code] to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider implementing [url=https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm]Bresenham's line algorithm[/url] as well to avoid visible gaps in lines if the user is moving the mouse quickly.
 	</description>
 	</description>
 	<tutorials>
 	<tutorials>
-		<link>https://docs.godotengine.org/en/latest/tutorials/inputs/mouse_and_input_coordinates.html</link>
+		<link title="Mouse and input coordinates">https://docs.godotengine.org/en/3.2/tutorials/inputs/mouse_and_input_coordinates.html</link>
+		<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
 	</tutorials>
 	</tutorials>
 	<methods>
 	<methods>
 	</methods>
 	</methods>

Some files were not shown because too many files changed in this diff