Commit 26fddb77 by Rémi Verschelde

doc: Fix wrong references found by new makerst.py

Thanks @PJB3005
parent 7d22e162
......@@ -54,7 +54,7 @@
<argument index="5" name="optimize" type="bool" default="true">
</argument>
<description>
Blend an input. This is only useful for nodes created for an AnimationBlendTree. Time is a delta, unless "seek" is true, in which case it is absolute. A filter mode may be optionally passed.
Blend an input. This is only useful for nodes created for an [AnimationNodeBlendTree]. Time is a delta, unless "seek" is true, in which case it is absolute. A filter mode may be optionally passed.
</description>
</method>
<method name="blend_node">
......@@ -105,7 +105,7 @@
<return type="int">
</return>
<description>
Amount of inputs in this node, only useful for nodes that go into [AnimationBlendTree].
Amount of inputs in this node, only useful for nodes that go into [AnimationNodeBlendTree].
</description>
</method>
<method name="get_input_name">
......@@ -139,8 +139,7 @@
<return type="Array">
</return>
<description>
Get the property information for parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.
Format is similar to [Object.get_property_list]
Get the property information for parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. Format is similar to [method Object.get_property_list].
</description>
</method>
<method name="has_filter" qualifiers="virtual">
......
......@@ -125,7 +125,7 @@
The area's priority. Higher priority areas are processed first. Default value: 0.
</member>
<member name="space_override" type="int" setter="set_space_override_mode" getter="get_space_override_mode" enum="Area2D.SpaceOverride">
Override mode for gravity and damping calculations within this area. See [Area2D.SpaceOverride] for possible values.
Override mode for gravity and damping calculations within this area. See [enum Area2D.SpaceOverride] for possible values.
</member>
</members>
<signals>
......
......@@ -4,7 +4,7 @@
Base class for audio streams.
</brief_description>
<description>
Base class for audio streams. Audio streams are used for music playback, or other types of streamed sounds that don't fit or require more flexibility than a [Sample].
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>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/audio/audio_streams.html</link>
......
......@@ -63,7 +63,7 @@
If [code]true[/code], the button's state is pressed. Means the button is pressed down or toggled (if toggle_mode is active).
</member>
<member name="shortcut" type="ShortCut" setter="set_shortcut" getter="get_shortcut">
[Shortcut] associated to the button.
[ShortCut] associated to the button.
</member>
<member name="shortcut_in_tooltip" type="bool" setter="set_shortcut_in_tooltip" getter="is_shortcut_in_tooltip_enabled">
If [code]true[/code], the button will add information about its shortcut in the tooltip.
......
......@@ -124,6 +124,8 @@
<member name="offset_v" type="float" setter="set_v_offset" getter="get_v_offset">
The vertical offset of the camera, relative to the drag margins. Default value: [code]0[/code]
</member>
<member name="process_mode" type="int" setter="set_process_mode" getter="get_process_mode" enum="Camera2D.Camera2DProcessMode">
</member>
<member name="rotating" type="bool" setter="set_rotating" getter="is_rotating">
If [code]true[/code], the camera rotates with the target. Default value: [code]false[/code]
</member>
......@@ -144,5 +146,9 @@
<constant name="ANCHOR_MODE_DRAG_CENTER" value="1" enum="AnchorMode">
The camera's position takes into account vertical/horizontal offsets and the screen size.
</constant>
<constant name="CAMERA2D_PROCESS_PHYSICS" value="0" enum="Camera2DProcessMode">
</constant>
<constant name="CAMERA2D_PROCESS_IDLE" value="1" enum="Camera2DProcessMode">
</constant>
</constants>
</class>
......@@ -120,7 +120,7 @@
<argument index="1" name="stylebox" type="StyleBox">
</argument>
<description>
Overrides the [code]name[/code] [Stylebox] in the [member theme] resource the node uses. If [code]stylebox[/code] is empty, Godot clears the override.
Overrides the [code]name[/code] [StyleBox] in the [member theme] resource the node uses. If [code]stylebox[/code] is empty, Godot clears the override.
</description>
</method>
<method name="can_drop_data" qualifiers="virtual">
......
......@@ -53,7 +53,7 @@
<return type="PoolRealArray">
</return>
<description>
Returns the cache of tilts as a [RealArray].
Returns the cache of tilts as a [PoolRealArray].
</description>
</method>
<method name="get_baked_up_vectors" qualifiers="const">
......
......@@ -93,7 +93,7 @@
<argument index="1" name="action" type="String">
</argument>
<description>
Returns [true] if the given event is part of an existing action. This method ignores keyboard modifiers if the given [InputEvent] is not pressed (for proper release detection). See [method action_has_event] if you don't want this behavior.
Returns [code]true[/code] if the given event is part of an existing action. This method ignores keyboard modifiers if the given [InputEvent] is not pressed (for proper release detection). See [method action_has_event] if you don't want this behavior.
</description>
</method>
<method name="get_action_list">
......
......@@ -4,7 +4,7 @@
Base class for all 3D joints
</brief_description>
<description>
All 3D joints link two nodes, has a priority, and can decide if the two bodies of the nodes should be able to collide with each other
Joints are used to bind together two physics bodies. They have a solver priority and can define if the bodies of the two attached nodes should be able to collide with each other.
</description>
<tutorials>
</tutorials>
......@@ -17,13 +17,13 @@
If [code]true[/code], the two bodies of the nodes are not able to collide with each other.
</member>
<member name="nodes/node_a" type="NodePath" setter="set_node_a" getter="get_node_a">
The [Node], the first side of the Joint attaches to.
The node attached to the first side (A) of the joint.
</member>
<member name="nodes/node_b" type="NodePath" setter="set_node_b" getter="get_node_b">
The [Node], the second side of the Joint attaches to.
The node attached to the second side (B) of the joint.
</member>
<member name="solver/priority" type="int" setter="set_solver_priority" getter="get_solver_priority">
The order in which the solver is executed compared to the other [Joints], the lower, the earlier.
The priority used to define which solver is executed first for multiple joints. The lower the value, the higher the priority.
</member>
</members>
<constants>
......
......@@ -24,7 +24,7 @@
<return type="void">
</return>
<description>
Erases the [LineEdit] text.
Erases the [code]LineEdit[/code] text.
</description>
</method>
<method name="deselect">
......@@ -38,7 +38,7 @@
<return type="PopupMenu">
</return>
<description>
Returns the [PopupMenu] of this [code]LineEdit[/code]. By default, this menu is displayed when right-clicking on the [LineEdit].
Returns the [PopupMenu] of this [code]LineEdit[/code]. By default, this menu is displayed when right-clicking on the [code]LineEdit[/code].
</description>
</method>
<method name="menu_option">
......@@ -58,7 +58,7 @@
<argument index="1" name="to" type="int" default="-1">
</argument>
<description>
Selects characters inside [LineEdit] between [code]from[/code] and [code]to[/code]. By default [code]from[/code] is at the beginning and [code]to[/code] at the end.
Selects characters inside [code]LineEdit[/code] between [code]from[/code] and [code]to[/code]. By default [code]from[/code] is at the beginning and [code]to[/code] at the end.
[codeblock]
text = "Welcome"
select() # Welcome
......@@ -98,19 +98,19 @@
If [code]false[/code], existing text cannot be modified and new text cannot be added.
</member>
<member name="expand_to_text_length" type="bool" setter="set_expand_to_text_length" getter="get_expand_to_text_length">
If [code]true[/code], the [LineEdit] width will increase to stay longer than the [member text]. It will [b]not[/b] compress if the [member text] is shortened.
If [code]true[/code], the [code]LineEdit[/code] width will increase to stay longer than the [member text]. It will [b]not[/b] compress if the [member text] is shortened.
</member>
<member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" enum="Control.FocusMode">
Defines how the [LineEdit] can grab focus (Keyboard and mouse, only keyboard, or none). See [code]enum FocusMode[/code] in [Control] for details.
Defines how the [code]LineEdit[/code] can grab focus (Keyboard and mouse, only keyboard, or none). See [code]enum FocusMode[/code] in [Control] for details.
</member>
<member name="max_length" type="int" setter="set_max_length" getter="get_max_length">
Maximum amount of characters that can be entered inside the [LineEdit]. If [code]0[/code], there is no limit.
Maximum amount of characters that can be entered inside the [code]LineEdit[/code]. If [code]0[/code], there is no limit.
</member>
<member name="placeholder_alpha" type="float" setter="set_placeholder_alpha" getter="get_placeholder_alpha">
Opacity of the [member placeholder_text]. From [code]0[/code] to [code]1[/code].
</member>
<member name="placeholder_text" type="String" setter="set_placeholder" getter="get_placeholder">
Text shown when the [LineEdit] is empty. It is [b]not[/b] the [LineEdit]'s default value (see [member text]).
Text shown when the [code]LineEdit[/code] is empty. It is [b]not[/b] the [code]LineEdit[/code]'s default value (see [member text]).
</member>
<member name="secret" type="bool" setter="set_secret" getter="is_secret">
If [code]true[/code], every character is replaced with the secret character (see [member secret_character]).
......@@ -119,7 +119,7 @@
The character to use to mask secret input (defaults to "*"). Only a single character can be used as the secret character.
</member>
<member name="text" type="String" setter="set_text" getter="get_text">
String value of the [LineEdit].
String value of the [code]LineEdit[/code].
</member>
</members>
<signals>
......@@ -134,25 +134,25 @@
<argument index="0" name="new_text" type="String">
</argument>
<description>
Emitted when the user presses KEY_ENTER on the [code]LineEdit[/code].
Emitted when the user presses [code]KEY_ENTER[/code] on the [code]LineEdit[/code].
</description>
</signal>
</signals>
<constants>
<constant name="ALIGN_LEFT" value="0" enum="Align">
Aligns the text on the left hand side of the [LineEdit].
Aligns the text on the left hand side of the [code]LineEdit[/code].
</constant>
<constant name="ALIGN_CENTER" value="1" enum="Align">
Centers the text in the middle of the [LineEdit].
Centers the text in the middle of the [code]LineEdit[/code].
</constant>
<constant name="ALIGN_RIGHT" value="2" enum="Align">
Aligns the text on the right hand side of the [LineEdit].
Aligns the text on the right hand side of the [code]LineEdit[/code].
</constant>
<constant name="ALIGN_FILL" value="3" enum="Align">
Stretches whitespaces to fit the [LineEdit]'s width.
Stretches whitespaces to fit the [code]LineEdit[/code]'s width.
</constant>
<constant name="MENU_CUT" value="0" enum="MenuItems">
Cuts (Copies and clears) the selected text.
Cuts (copies and clears) the selected text.
</constant>
<constant name="MENU_COPY" value="1" enum="MenuItems">
Copies the selected text.
......@@ -161,10 +161,10 @@
Pastes the clipboard text over the selected text (or at the cursor's position).
</constant>
<constant name="MENU_CLEAR" value="3" enum="MenuItems">
Erases the whole [Linedit] text.
Erases the whole [code]LineEdit[/code] text.
</constant>
<constant name="MENU_SELECT_ALL" value="4" enum="MenuItems">
Selects the whole [Linedit] text.
Selects the whole [code]LineEdit[/code] text.
</constant>
<constant name="MENU_UNDO" value="5" enum="MenuItems">
Undoes the previous action.
......
......@@ -22,7 +22,7 @@
<return type="int" enum="Error">
</return>
<description>
Try locking this [code]Mutex[/code], does not block. Returns [OK] on success, [ERR_BUSY] otherwise.
Try locking this [code]Mutex[/code], does not block. Returns [code]OK[/code] on success, [code]ERR_BUSY[/code] otherwise.
</description>
</method>
<method name="unlock">
......
......@@ -35,7 +35,7 @@
<argument index="0" name="to_point" type="Vector3">
</argument>
<description>
Returns the owner of the [NavigationMesh] which contains the navigation point closest to the point given. This is usually a [NavigtionMeshInstance]. For meshes added via [method navmesh_add], returns the owner that was given (or [code]null[/code] if the [code]owner[/code] parameter was omitted).
Returns the owner of the [NavigationMesh] which contains the navigation point closest to the point given. This is usually a [NavigationMeshInstance]. For meshes added via [method navmesh_add], returns the owner that was given (or [code]null[/code] if the [code]owner[/code] parameter was omitted).
</description>
</method>
<method name="get_closest_point_to_segment">
......
......@@ -26,7 +26,7 @@
<argument index="0" name="to_point" type="Vector2">
</argument>
<description>
Returns the owner of the [NavigationPolygon] which contains the navigation point closest to the point given. This is usually a [NavigtionPolygonInstance]. For polygons added via [method navpoly_add], returns the owner that was given (or [code]null[/code] if the [code]owner[/code] parameter was omitted).
Returns the owner of the [NavigationPolygon] which contains the navigation point closest to the point given. This is usually a [NavigationPolygonInstance]. For polygons added via [method navpoly_add], returns the owner that was given (or [code]null[/code] if the [code]owner[/code] parameter was omitted).
</description>
</method>
<method name="get_simple_path">
......
......@@ -371,7 +371,7 @@
<argument index="0" name="dir" type="int" enum="OS.SystemDir">
</argument>
<description>
Returns the actual path to commonly used folders across different platforms. Available locations are specified in [OS.SystemDir].
Returns the actual path to commonly used folders across different platforms. Available locations are specified in [enum OS.SystemDir].
</description>
</method>
<method name="get_system_time_msecs" qualifiers="const">
......
......@@ -51,7 +51,7 @@
Animation speed randomness ratio. Default value: [code]0[/code].
</member>
<member name="color" type="Color" setter="set_color" getter="get_color">
Each particle's initial color. If the [Particle2D]'s [code]texture[/code] is defined, it will be multiplied by this color.
Each particle's initial color. If the [Particles2D]'s [code]texture[/code] is defined, it will be multiplied by this color.
</member>
<member name="color_ramp" type="Texture" setter="set_color_ramp" getter="get_color_ramp">
Each particle's color will vary along this [GradientTexture].
......
......@@ -18,7 +18,7 @@
<argument index="0" name="shape" type="Physics2DShapeQueryParameters">
</argument>
<description>
Checks how far the shape can travel toward a point. Note that both the shape and the motion are supplied through a [Physics2DShapeQueryParameters] object. The method will return an array with two floats between 0 and 1, both representing a fraction of [code]motion[/code]. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be [1, 1].
Checks how far the shape can travel toward a point. Note that both the shape and the motion are supplied through a [Physics2DShapeQueryParameters] object. The method will return an array with two floats between 0 and 1, both representing a fraction of [code]motion[/code]. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be [code][1, 1][/code].
If the shape can not move, the array will be empty.
</description>
</method>
......
......@@ -20,8 +20,8 @@
<argument index="1" name="motion" type="Vector3">
</argument>
<description>
Checks whether the shape can travel to a point. The method will return an array with two floats between 0 and 1, both representing a fraction of [code]motion[/code]. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be [1, 1].
If the shape can not move, the returned array will be [0, 0].
Checks whether the shape can travel to a point. The method will return an array with two floats between 0 and 1, both representing a fraction of [code]motion[/code]. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be [code][1, 1][/code].
If the shape can not move, the returned array will be [code][0, 0][/code].
</description>
</method>
<method name="collide_shape">
......
......@@ -884,7 +884,7 @@
<argument index="0" name="process_info" type="int" enum="PhysicsServer.ProcessInfo">
</argument>
<description>
Returns an Info defined by the [ProcessInfo] input given.
Returns an Info defined by the [enum PhysicsServer.ProcessInfo] input given.
</description>
</method>
<method name="hinge_joint_get_flag" qualifiers="const">
......
<?xml version="1.0" encoding="UTF-8" ?>
<class name="PoolByteArray" category="Built-In Types" version="3.1">
<brief_description>
Raw byte array.
A pooled [Array] of bytes.
</brief_description>
<description>
Raw byte array. Contains bytes. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
An [Array] specifically designed to hold bytes. Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
......@@ -17,7 +17,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
Create from a generic array.
Construct a new [code]PoolByteArray[/code]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
......@@ -40,7 +40,7 @@
<argument index="0" name="compression_mode" type="int" default="0">
</argument>
<description>
Returns a new [code]PoolByteArray[/code] with the data compressed. Set the compression mode using one of [File]'s COMPRESS_* constants.
Returns a new [code]PoolByteArray[/code] with the data compressed. Set the compression mode using one of [enum File.CompressionMode]'s constants.
</description>
</method>
<method name="decompress">
......@@ -51,21 +51,21 @@
<argument index="1" name="compression_mode" type="int" default="0">
</argument>
<description>
Returns a new [code]PoolByteArray[/code] with the data decompressed. Set buffer_size to the size of the uncompressed data. Set the compression mode using one of [File]'s COMPRESS_* constants.
Returns a new [code]PoolByteArray[/code] with the data decompressed. Set [code]buffer_size[/code] to the size of the uncompressed data. Set the compression mode using one of [enum File.CompressionMode]'s constants.
</description>
</method>
<method name="get_string_from_ascii">
<return type="String">
</return>
<description>
Returns a copy of the array's contents as [String]. Fast alternative to [method PoolByteArray.get_string_from_utf8] if the content is ASCII-only. Unlike the UTF-8 function this function maps every byte to a character in the array. Multibyte sequences will not be interpreted correctly. For parsing user input always use [method PoolByteArray.get_string_from_utf8].
Returns a copy of the array's contents as [String]. Fast alternative to [method get_string_from_utf8] if the content is ASCII-only. Unlike the UTF-8 function this function maps every byte to a character in the array. Multibyte sequences will not be interpreted correctly. For parsing user input always use [method get_string_from_utf8].
</description>
</method>
<method name="get_string_from_utf8">
<return type="String">
</return>
<description>
Returns a copy of the array's contents as [String]. Slower than [method PoolByteArray.get_string_from_ascii] but supports UTF-8 encoded data. Use this function if you are unsure about the source of the data. For user input this function should always be preferred.
Returns a copy of the array's contents as [String]. Slower than [method get_string_from_ascii] but supports UTF-8 encoded data. Use this function if you are unsure about the source of the data. For user input this function should always be preferred.
</description>
</method>
<method name="insert">
......@@ -76,7 +76,7 @@
<argument index="1" name="byte" type="int">
</argument>
<description>
Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
Insert a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
......
<?xml version="1.0" encoding="UTF-8" ?>
<class name="PoolColorArray" category="Built-In Types" version="3.1">
<brief_description>
Array of Colors
A pooled [Array] of [Color].
</brief_description>
<description>
Array of Color, Contains colors. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
An [Array] specifically designed to hold [Color]. Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
......@@ -17,7 +17,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
Create from a generic array.
Construct a new [code]PoolColorArray[/code]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
......@@ -42,7 +42,7 @@
<argument index="1" name="color" type="Color">
</argument>
<description>
Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
Insert a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
......
<?xml version="1.0" encoding="UTF-8" ?>
<class name="PoolIntArray" category="Built-In Types" version="3.1">
<brief_description>
Integer Array.
A pooled [Array] of integers ([int]).
</brief_description>
<description>
Integer Array. Contains integers. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
An [Array] specifically designed to hold integer values ([int]). Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
......@@ -17,7 +17,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
Create from a generic array.
Construct a new [code]PoolIntArray[/code]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
......@@ -31,7 +31,7 @@
<argument index="0" name="array" type="PoolIntArray">
</argument>
<description>
Append an [code]PoolIntArray[/code] at the end of this array.
Append a [code]PoolIntArray[/code] at the end of this array.
</description>
</method>
<method name="insert">
......@@ -42,7 +42,7 @@
<argument index="1" name="integer" type="int">
</argument>
<description>
Insert a new int at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
Insert a new int at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
......
<?xml version="1.0" encoding="UTF-8" ?>
<class name="PoolRealArray" category="Built-In Types" version="3.1">
<brief_description>
Real Array.
A pooled [Array] of reals ([float]).
</brief_description>
<description>
Real Array. Array of floating point values. Can only contain floats. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
An [Array] specifically designed to hold floating point values ([float]). Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
......@@ -17,7 +17,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
Create from a generic array.
Construct a new [code]PoolRealArray[/code]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
......@@ -31,7 +31,7 @@
<argument index="0" name="array" type="PoolRealArray">
</argument>
<description>
Append an [RealArray] at the end of this array.
Append a [code]PoolRealArray[/code] at the end of this array.
</description>
</method>
<method name="insert">
......@@ -42,7 +42,7 @@
<argument index="1" name="value" type="float">
</argument>
<description>
Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
Insert a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
......
<?xml version="1.0" encoding="UTF-8" ?>
<class name="PoolStringArray" category="Built-In Types" version="3.1">
<brief_description>
String Array.
A pooled [Array] of [String].
</brief_description>
<description>
String Array. Array of strings. Can only contain strings. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
An [Array] specifically designed to hold [String]. Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
......@@ -17,7 +17,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
Create from a generic array.
Construct a new [code]PoolStringArray[/code]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
......@@ -31,7 +31,7 @@
<argument index="0" name="array" type="PoolStringArray">
</argument>
<description>
Append an [StringArray] at the end of this array.
Append a [code]PoolStringArray[/code] at the end of this array.
</description>
</method>
<method name="insert">
......@@ -42,7 +42,7 @@
<argument index="1" name="string" type="String">
</argument>
<description>
Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
Insert a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
......@@ -56,7 +56,7 @@
<argument index="0" name="delimiter" type="String">
</argument>
<description>
Returns a [String] with each element of the array joined with the delimiter.
Returns a [String] with each element of the array joined with the given [code]delimiter[/code].
</description>
</method>
<method name="push_back">
......
<?xml version="1.0" encoding="UTF-8" ?>
<class name="PoolVector2Array" category="Built-In Types" version="3.1">
<brief_description>
An Array of Vector2.
A pooled [Array] of [Vector2].
</brief_description>
<description>
An Array specifically designed to hold Vector2. Note that this type is passed by value and not by reference.
An [Array] specifically designed to hold [Vector2]. Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
......@@ -17,7 +17,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
Construct a new [code]PoolVector2Array[/code]. Optionally, you can pass in an Array that will be converted.
Construct a new [code]PoolVector2Array[/code]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
......@@ -31,7 +31,7 @@
<argument index="0" name="array" type="PoolVector2Array">
</argument>
<description>
Append an [code]PoolVector2Array[/code] at the end of this array.
Append a [code]PoolVector2Array[/code] at the end of this array.
</description>
</method>
<method name="insert">
......@@ -42,7 +42,7 @@
<argument index="1" name="vector2" type="Vector2">
</argument>
<description>
Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
Insert a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
......
<?xml version="1.0" encoding="UTF-8" ?>
<class name="PoolVector3Array" category="Built-In Types" version="3.1">
<brief_description>
An Array of Vector3.
A pooled [Array] of [Vector3].
</brief_description>
<description>
An Array specifically designed to hold Vector3. Note that this type is passed by value and not by reference.
An [Array] specifically designed to hold [Vector3]. Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
......@@ -17,7 +17,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
Construct a new PoolVector3Array. Optionally, you can pass in an Array that will be converted.
Construct a new [code]PoolVector3Array[/code]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
......@@ -31,7 +31,7 @@
<argument index="0" name="array" type="PoolVector3Array">
</argument>
<description>
Append an [code]PoolVector3Array[/code] at the end of this array.
Append a [code]PoolVector3Array[/code] at the end of this array.
</description>
</method>
<method name="insert">
......@@ -42,7 +42,7 @@
<argument index="1" name="vector3" type="Vector3">
</argument>
<description>
Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
Insert a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
......
......@@ -111,7 +111,7 @@
<argument index="1" name="by" type="float">
</argument>
<description>
Returns a copy of the [code]Rect2[/code] grown a given amount of units towards the [Margin] direction.
Returns a copy of the [code]Rect2[/code] grown a given amount of units towards the [enum Margin] direction.
</description>
</method>
<method name="has_no_area">
......
......@@ -118,7 +118,7 @@
<return type="void">
</return>
<description>
Adds a [code][cell][/code] tag to the tag stack. Must be inside a [table] tag. See [method push_table] for details.
Adds a [code][cell][/code] tag to the tag stack. Must be inside a [code][table][/code] tag. See [method push_table] for details.
</description>
</method>
<method name="push_color">
......@@ -231,7 +231,7 @@
The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.
</member>
<member name="meta_underlined" type="bool" setter="set_meta_underline" getter="is_meta_underlined">
If [code]true[/code], the label underlines meta tags such as [url]{text}[/url]. Default value: [code]true[/code].
If [code]true[/code], the label underlines meta tags such as [code][url]{text}[/url][/code]. Default value: [code]true[/code].
</member>
<member name="override_selected_font_color" type="bool" setter="set_override_selected_font_color" getter="is_overriding_selected_font_color">
If [code]true[/code], the label uses the custom font color. Default value: [code]false[/code].
......@@ -264,7 +264,7 @@
<argument index="0" name="meta" type="Nil">
</argument>
<description>
Triggered when the user clicks on content between [url] tags. If the meta is defined in text, e.g. [code][url={"data"="hi"}]hi[/url][/code], then the parameter for this signal will be a [String] type. If a particular type or an object is desired, the [method push_meta] method must be used to manually insert the data into the tag stack.
Triggered when the user clicks on content between [code][url][/code] tags. If the meta is defined in text, e.g. [code][url={"data"="hi"}]hi[/url][/code], then the parameter for this signal will be a [String] type. If a particular type or an object is desired, the [method push_meta] method must be used to manually insert the data into the tag stack.
</description>
</signal>
<signal name="meta_hover_ended">
......
......@@ -20,7 +20,7 @@
<argument index="0" name="state" type="Physics2DDirectBodyState">
</argument>
<description>
Allows you to read and safely modify the simulation state for the object. Use this instead of [Node._physics_process] if you need to directly change the body's [code]position[/code] or other physics properties. By default, it works in addition to the usual physics behavior, but [member custom_integrator] allows you to disable the default behavior and write custom force integration for a body.
Allows you to read and safely modify the simulation state for the object. Use this instead of [method Node._physics_process] if you need to directly change the body's [code]position[/code] or other physics properties. By default, it works in addition to the usual physics behavior, but [member custom_integrator] allows you to disable the default behavior and write custom force integration for a body.
</description>
</method>
<method name="add_central_force">
......
......@@ -4,7 +4,7 @@
A helper node for displaying scrollable elements (e.g. lists).
</brief_description>
<description>
A ScrollContainer node with a [Control] child and scrollbar child ([HScrollbar], [VScrollBar], or both) will only draw the Control within the ScrollContainer area. Scrollbars will automatically be drawn at the right (for vertical) or bottom (for horizontal) and will enable dragging to move the viewable Control (and its children) within the ScrollContainer. Scrollbars will also automatically resize the grabber based on the minimum_size of the Control relative to the ScrollContainer. Works great with a [Panel] control. You can set EXPAND on children size flags, so they will upscale to ScrollContainer size if ScrollContainer size is bigger (scroll is invisible for chosen dimension).
A ScrollContainer node with a [Control] child and scrollbar child ([HScrollBar], [VScrollBar], or both) will only draw the Control within the ScrollContainer area. Scrollbars will automatically be drawn at the right (for vertical) or bottom (for horizontal) and will enable dragging to move the viewable Control (and its children) within the ScrollContainer. Scrollbars will also automatically resize the grabber based on the minimum_size of the Control relative to the ScrollContainer. Works great with a [Panel] control. You can set EXPAND on children size flags, so they will upscale to ScrollContainer size if ScrollContainer size is bigger (scroll is invisible for chosen dimension).
</description>
<tutorials>
</tutorials>
......
......@@ -15,14 +15,14 @@
<return type="int" enum="Error">
</return>
<description>
Lowers the [code]Semaphore[/code], allowing one more thread in. Returns [OK] on success, [ERR_BUSY] otherwise.
Lowers the [code]Semaphore[/code], allowing one more thread in. Returns [code]OK[/code] on success, [code]ERR_BUSY[/code] otherwise.
</description>
</method>
<method name="wait">
<return type="int" enum="Error">
</return>
<description>
Tries to wait for the [code]Semaphore[/code], if its value is zero, blocks until non-zero. Returns [OK] on success, [ERR_BUSY] otherwise.
Tries to wait for the [code]Semaphore[/code], if its value is zero, blocks until non-zero. Returns [code]OK[/code] on success, [code]ERR_BUSY[/code] otherwise.
</description>
</method>
</methods>
......
......@@ -4,7 +4,7 @@
Piston kind of slider between two bodies in 3D.
</brief_description>
<description>
Slides across the x-axis of the [Pivot] object.
Slides across the x-axis of the pivot object.
</description>
<tutorials>
</tutorials>
......
......@@ -4,8 +4,8 @@
Most basic 3D game object, parent of all 3D related nodes.
</brief_description>
<description>
Most basic 3D game object, with a 3D [Transform] and visibility settings. All other 3D game objects inherit from Spatial. Use Spatial as a parent node to move, scale, rotate and show/hide children in a 3D project.
Affine operations (rotate, scale, translate) happen in parent's local coordinate system, unless the Spatial object is set as top level. Affine operations in this coordinate system correspond to direct affine operations on the Spatial's transform. The word local below refers to this coordinate system. The coordinate system that is attached to the Spatial object itself is referred to as object-local coordinate system.
Most basic 3D game object, with a 3D [Transform] and visibility settings. All other 3D game objects inherit from Spatial. Use [code]Spatial[/code] as a parent node to move, scale, rotate and show/hide children in a 3D project.
Affine operations (rotate, scale, translate) happen in parent's local coordinate system, unless the [code]Spatial[/code] object is set as top level. Affine operations in this coordinate system correspond to direct affine operations on the [code]Spatial[/code]'s transform. The word local below refers to this coordinate system. The coordinate system that is attached to the [code]Spatial[/code] object itself is referred to as object-local coordinate system.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/introduction_to_3d.html</link>
......@@ -30,7 +30,7 @@
<return type="World">
</return>
<description>
Returns the current [World] resource this Spatial node is registered to.
Returns the current [World] resource this [code]Spatial[/code] node is registered to.
</description>
</method>
<method name="global_rotate">
......@@ -65,14 +65,14 @@
<return type="void">
</return>
<description>
Disables rendering of this node. Change Spatial Visible property to false.
Disables rendering of this node. Changes [member visible] to [code]false[/code].
</description>
</method>
<method name="is_local_transform_notification_enabled" qualifiers="const">
<return type="bool">
</return>
<description>
Returns whether node notifies about its local transformation changes. Spatial will not propagate this by default.
Returns whether node notifies about its local transformation changes. [code]Spatial[/code] will not propagate this by default.
</description>
</method>
<method name="is_scale_disabled" qualifiers="const">
......@@ -92,7 +92,7 @@
<return type="bool">
</return>
<description>
Returns whether the node notifies about its global and local transformation changes. Spatial will not propagate this by default.
Returns whether the node notifies about its global and local transformation changes. [code]Spatial[/code] will not propagate this by default.
</description>
</method>
<method name="is_visible_in_tree" qualifiers="const">
......@@ -132,7 +132,7 @@
<return type="void">
</return>
<description>
Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation by performing Gram-Schmidt orthonormalization on this node's [Transform3D].
Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation by performing Gram-Schmidt orthonormalization on this node's [Transform].
</description>
</method>
<method name="rotate">
......@@ -214,7 +214,7 @@
<return type="void">
</return>
<description>
Reset all transformations for this node. Set its [Transform3D] to identity matrix.
Reset all transformations for this node. Set its [Transform] to identity matrix.
</description>
</method>
<method name="set_ignore_transform_notification">
......@@ -232,7 +232,7 @@
<argument index="0" name="enable" type="bool">
</argument>
<description>
Set whether the node notifies about its local transformation changes. Spatial will not propagate this by default.
Set whether the node notifies about its local transformation changes. [code]Spatial[/code] will not propagate this by default.
</description>
</method>
<method name="set_notify_transform">
......@@ -241,14 +241,14 @@
<argument index="0" name="enable" type="bool">
</argument>
<description>
Set whether the node notifies about its global and local transformation changes. Spatial will not propagate this by default.
Set whether the node notifies about its global and local transformation changes. [code]Spatial[/code] will not propagate this by default.
</description>
</method>
<method name="show">
<return type="void">
</return>
<description>
Enables rendering of this node. Change Spatial Visible property to "True".
Enables rendering of this node. Changes [member visible] to [code]true[/code].
</description>
</method>
<method name="to_global" qualifiers="const">
......@@ -296,7 +296,7 @@
</methods>
<members>
<member name="gizmo" type="SpatialGizmo" setter="set_gizmo" getter="get_gizmo">
The SpatialGizmo for this node. Used for example in [EditorSpatialGizmo] as custom visualization and editing handles in Editor.
The [SpatialGizmo] for this node. Used for example in [EditorSpatialGizmo] as custom visualization and editing handles in Editor.
</member>
<member name="global_transform" type="Transform" setter="set_global_transform" getter="get_global_transform">
World space (global) [Transform] of this node.
......@@ -331,7 +331,7 @@
<constants>
<constant name="NOTIFICATION_TRANSFORM_CHANGED" value="29">
Spatial nodes receives this notification when their global transform changes. This means that either the current or a parent node changed its transform.
In order for NOTIFICATION_TRANSFORM_CHANGED to work user first needs to ask for it, with set_notify_transform(true).
In order for [code]NOTIFICATION_TRANSFORM_CHANGED[/code] to work, users first need to ask for it, with [method set_notify_transform].
</constant>
<constant name="NOTIFICATION_ENTER_WORLD" value="41">
Spatial nodes receives this notification when they are registered to new [World] resource.
......
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StaticBody" inherits="PhysicsBody" category="Core" version="3.1">
<brief_description>
Static body for 3D Physics.
Static body for 3D physics.
</brief_description>
<description>
Static body for 3D Physics. A static body is a simple body that is not intended to move. They don't consume any CPU resources in contrast to a [RigidBody3D] so they are great for scenario collision.
Static body for 3D physics. A static body is a simple body that is not intended to move. They don't consume any CPU resources in contrast to a [RigidBody] so they are great for scenario collision.
A static body can also be animated by using simulated motion mode. This is useful for implementing functionalities such as moving platforms. When this mode is active the body can be animated and automatically computes linear and angular velocity to apply in that frame and to influence other bodies.
Alternatively, a constant linear or angular velocity can be set for the static body, so even if it doesn't move, it affects other bodies as if it was moving (this is useful for simulating conveyor belts or conveyor wheels).
</description>
......
......@@ -19,7 +19,7 @@
<argument index="1" name="port" type="int">
</argument>
<description>
Connect to the specified host:port pair. A hostname will be resolved if valid. Returns [OK] on success or [FAILED] on failure.
Connect to the specified host:port pair. A hostname will be resolved if valid. Returns [code]OK[/code] on success or [code]FAILED[/code] on failure.
</description>
</method>
<method name="disconnect_from_host">
......@@ -47,7 +47,7 @@
<return type="int" enum="StreamPeerTCP.Status">
</return>
<description>
Return the status of the connection, one of STATUS_* enum.
Return the status of the connection, see [enum StreamPeerTCP.Status].
</description>
</method>
<method name="is_connected_to_host" qualifiers="const">
......
......@@ -459,7 +459,7 @@
<return type="bool">
</return>
<description>
Returns [code]true[/code] if this string is a valid identifier. A valid identifier may contain only letters, digits and underscores (_) and the first character may not be a digit.
Returns [code]true[/code] if this string is a valid identifier. A valid identifier may contain only letters, digits and underscores ([code]_[/code]) and the first character may not be a digit.
</description>
</method>
<method name="is_valid_integer">
......@@ -514,7 +514,7 @@
<argument index="0" name="expr" type="String">
</argument>
<description>
Does a simple expression match, where '*' matches zero or more arbitrary characters and '?' matches any single character except '.'.
Does a simple expression match, where [code]*[/code] matches zero or more arbitrary characters and [code]?[/code] matches any single character except '.'.
</description>
</method>
<method name="matchn">
......@@ -523,7 +523,7 @@
<argument index="0" name="expr" type="String">
</argument>
<description>
Does a simple case insensitive expression match, using ? and * wildcards (see [method match]).
Does a simple case insensitive expression match, using [code]?[/code] and [code]*[/code] wildcards (see [method match]).
</description>
</method>
<method name="md5_buffer">
......@@ -663,7 +663,7 @@
</argument>
<description>
Splits the string by a [code]divisor[/code] string and returns an array of the substrings, starting from right.
[b]Example:[/b] "One,Two,Three" will return ["One","Two","Three"] if split by ",".
[b]Example:[/b] [code]"One,Two,Three"[/code] will return [code]["One","Two","Three"][/code] if split by [code]","[/code].
If [code]maxsplit[/code] is specified, then it is number of splits to do, default is 0 which splits all the items.
</description>
</method>
......@@ -710,7 +710,7 @@
</argument>
<description>
Splits the string by a divisor string and returns an array of the substrings.
[b]Example:[/b] "One,Two,Three" will return ["One","Two","Three"] if split by ",".
[b]Example:[/b] [code]"One,Two,Three"[/code] will return [code]["One","Two","Three"][/code] if split by [code]","[/code].
If [code]maxsplit[/code] is given, at most maxsplit number of splits occur, and the remainder of the string is returned as the final element of the list (thus, the list will have at most maxsplit+1 elements)
</description>
</method>
......@@ -723,7 +723,7 @@
</argument>
<description>
Splits the string in floats by using a divisor string and returns an array of the substrings.
[b]Example:[/b] "1,2.5,3" will return [1,2.5,3] if split by ",".
[b]Example:[/b] [code]"1,2.5,3"[/code] will return [code][1,2.5,3][/code] if split by [code]","[/code].
</description>
</method>
<method name="strip_edges">
......@@ -752,7 +752,7 @@
<return type="PoolByteArray">
</return>
<description>
Converts the String (which is a character array) to [PoolByteArray] (which is an array of bytes). The conversion is sped up in comparison to to_utf8() with the assumption that all the characters the String contains are only ASCII characters.
Converts the String (which is a character array) to [PoolByteArray] (which is an array of bytes). The conversion is sped up in comparison to [method to_utf8] with the assumption that all the characters the String contains are only ASCII characters.
</description>
</method>
<method name="to_float">
......@@ -787,7 +787,7 @@
<return type="PoolByteArray">
</return>
<description>
Converts the String (which is an array of characters) to [PoolByteArray] (which is an array of bytes). The conversion is a bit slower than to_ascii(), but supports all UTF-8 characters. Therefore, you should prefer this function over to_ascii().
Converts the String (which is an array of characters) to [PoolByteArray] (which is an array of bytes). The conversion is a bit slower than [method to_ascii], but supports all UTF-8 characters. Therefore, you should prefer this function over [method to_ascii].
</description>
</method>
<method name="trim_prefix">
......
......@@ -21,7 +21,7 @@
Controls the texture's behavior when you resize the node's bounding rectangle, [b]only if[/b] [member expand] is [code]true[/code]. Set it to one of the [code]STRETCH_*[/code] constants. See the constants to learn more.
</member>
<member name="texture_click_mask" type="BitMap" setter="set_click_mask" getter="get_click_mask">
Pure black and white [Bitmap] image to use for click detection. On the mask, white pixels represent the button's clickable area. Use it to create buttons with curved shapes.
Pure black and white [BitMap] image to use for click detection. On the mask, white pixels represent the button's clickable area. Use it to create buttons with curved shapes.
</member>
<member name="texture_disabled" type="Texture" setter="set_disabled_texture" getter="get_disabled_texture">
Texture to display when the node is disabled. See [member BaseButton.disabled].
......
......@@ -46,7 +46,7 @@
</description>
</method>
<method name="autotile_get_bitmask">
<return type="int" enum="TileSet.AutotileBindings">
<return type="int">
</return>
<argument index="0" name="id" type="int">
</argument>
......@@ -146,7 +146,7 @@
</argument>
<argument index="1" name="bitmask" type="Vector2">
</argument>
<argument index="2" name="flag" type="int" enum="TileSet.AutotileBindings">
<argument index="2" name="flag" type="int">
</argument>
<description>
Sets the bitmask of the subtile from an autotile given its coordinates.
......
......@@ -3660,7 +3660,7 @@
<argument index="1" name="clear_mode" type="int" enum="VisualServer.ViewportClearMode">
</argument>
<description>
Sets the clear mode of a viewport. See VIEWPORT_CLEAR_MODE_* constants for options.
Sets the clear mode of a viewport. See [enum VisualServer.ViewportClearMode] for options.
</description>
</method>
<method name="viewport_set_debug_draw">
......@@ -3671,7 +3671,7 @@
<argument index="1" name="draw" type="int" enum="VisualServer.ViewportDebugDraw">
</argument>
<description>
Sets the debug draw mode of a viewport. See VIEWPORT_DEBUG_DRAW_* constants for options.
Sets the debug draw mode of a viewport. See [enum VisualServer.ViewportDebugDraw] for options.
</description>
</method>
<method name="viewport_set_disable_3d">
......@@ -4160,7 +4160,7 @@
The viewport is never cleared before drawing.
</constant>
<constant name="VIEWPORT_CLEAR_ONLY_NEXT_FRAME" value="2" enum="ViewportClearMode">
The viewport is cleared once, then the clear mode is set to [VIEWPORT_CLEAR_NEVER].
The viewport is cleared once, then the clear mode is set to [code]VIEWPORT_CLEAR_NEVER[/code].
</constant>
<constant name="VIEWPORT_MSAA_DISABLED" value="0" enum="ViewportMSAA">
Multisample antialiasing is disabled.
......
......@@ -52,7 +52,7 @@
<argument index="2" name="z" type="int">
</argument>
<description>
The [MeshLibrary] item index located at the grid-based X, Y and Z coordinates. If the cell is empty, [INVALID_CELL_ITEM] will be returned.
The [MeshLibrary] item index located at the grid-based X, Y and Z coordinates. If the cell is empty, [constant INVALID_CELL_ITEM] will be returned.
</description>
</method>
<method name="get_cell_item_orientation" qualifiers="const">
......
......@@ -4,7 +4,7 @@
A Visual Script node representing a constant from the base types.
</brief_description>
<description>
A Visual Script node representing a constant from base types, such as [Vector3.AXIS_X].
A Visual Script node representing a constant from base types, such as [constant Vector3.AXIS_X].
</description>
<tutorials>
</tutorials>
......
......@@ -193,13 +193,13 @@
Serialize a [Variant] to a string.
</constant>
<constant name="STR_TO_VAR" value="59" enum="BuiltinFunc">
Deserialize a [Variant] from a string serialized using [VAR_TO_STR].
Deserialize a [Variant] from a string serialized using [code]VAR_TO_STR[/code].
</constant>
<constant name="VAR_TO_BYTES" value="60" enum="BuiltinFunc">
Serialize a [Variant] to a [PoolByteArray].
</constant>
<constant name="BYTES_TO_VAR" value="61" enum="BuiltinFunc">
Deserialize a [Variant] from a [PoolByteArray] serialized using [VAR_TO_BYTES].
Deserialize a [Variant] from a [PoolByteArray] serialized using [code]VAR_TO_BYTES[/code].
</constant>
<constant name="COLORN" value="62" enum="BuiltinFunc">
Return the [Color] with the given name and alpha ranging from 0 to 1. Note: names are defined in color_names.inc.
......
......@@ -4,7 +4,7 @@
Gets a constant from a given class.
</brief_description>
<description>
This node returns a constant from a given class, such as [@GlobalScope.TYPE_INT]. See the given class' documentation for available constants.
This node returns a constant from a given class, such as [constant @GlobalScope.TYPE_INT]. See the given class' documentation for available constants.
[b]Input Ports:[/b]
none
[b]Output Ports:[/b]
......
......@@ -20,7 +20,7 @@
<argument index="1" name="reason" type="String" default="&quot;&quot;">
</argument>
<description>
Close this WebSocket connection. [code]code[/code] is the status code for the closure (see RFC6455 section 7.4 for a list of valid status codes). [reason] is the human readable reason for closing the connection (can be any UTF8 string, must be less than 123 bytes).
Close this WebSocket connection. [code]code[/code] is the status code for the closure (see RFC6455 section 7.4 for a list of valid status codes). [code]reason[/code] is the human readable reason for closing the connection (can be any UTF8 string, must be less than 123 bytes).
Note: To achieve a clean close, you will need to keep polling until either [signal WebSocketClient.connection_closed] or [signal WebSocketServer.client_disconnected] is received.
Note: HTML5 export might not support all status codes. Please refer to browsers-specific documentation for more details.
</description>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment